Commit Graph

3170 Commits

Author SHA1 Message Date
David Capello
96769d061e Rename BrushPattern::ALIGNED_FROM_SRC to ALIGNED_TO_SRC 2015-04-27 11:45:00 -03:00
David Capello
d9fb81e5d1 Now we can create brushes selecting the box directly (fix #154) 2015-04-27 11:31:48 -03:00
David Capello
215f594273 Minor renames in SelectBoxState 2015-04-27 10:19:53 -03:00
David Capello
dfeff22b2f Add possibility to create brushes from selection
Changes:
* Add doc::kImageBrushType
* Add doc::BrushPattern enum
* Add pattern and pattern origin properties to doc::Brush
* Add NewBrush and DiscardBrush commands (new Ctrl+B shortcut to create
  brushes)
* Add BrushInkProcessing
2015-04-27 00:08:04 -03:00
David Capello
98cd5056b3 Remove now unused doc::draw_brush() function 2015-04-26 16:29:23 -03:00
David Capello
4e6db14cae Use a PreviewToolLoopImpl to preview the current tool ink/point shape/etc
With this we can see the exact preview in real-time of the the left
click paiting (e.g. using real Indexed composition, ink, point shape, etc.)
We are able to preview blur, eraser, or flood fill preview too (anyway
these are not enabled at this moment).
Changes:
* Add render::ExtraType enum to indicate if the extra cel acts like a
  patch for the current cel (e.g. cursor), or as an extra layer for
  composition (e.g. selection/moving pixels)
* Add ExtraCelType property to app::Document and to render::Render
* Add ToolBox::getPointShapeById()
* As the current cursor preview depends on the current layer, when
  we change the current layer we've to update the Preview editor
  with the new selected layer (now we listen to
  Document:.onAfterLayerChanged())
* Add create_tool_loop_preview() and PreviewToolLoopImpl
2015-04-26 15:59:28 -03:00
David Capello
ae63d52027 Prepare sub point shape in SprayPointShape 2015-04-26 01:32:06 -03:00
David Capello
91eb3eecd4 Fix usage of CompressedImage scanelines width in BrushPointShape::transformPoint() 2015-04-25 21:36:33 -03:00
David Capello
bca87067eb Minor format changes in point_shapes.h 2015-04-25 20:03:25 -03:00
David Capello
8382d1ca8f Replace Brush::m_scanline with doc::CompressedImage 2015-04-25 20:01:03 -03:00
David Capello
4a05436252 Replace internal doc::Brush image with a doc::ImageRef 2015-04-25 19:41:07 -03:00
David Capello
3810cfc1fa Minor fix calling Alert::show() in ColorSelector:onFixWarningClick() 2015-04-25 16:52:14 -03:00
David Capello
eb60a4c3e7 Tabs: disable mouse wheel when we are dragging tabs 2015-04-24 19:29:57 -03:00
David Capello
c63ccf914f Keep last update information so we can show it again (fix #639)
Now the last update information retrieved from the HTTP request, is saved
in the configuration file so we can reuse it when the program is restarted.
Changes:
* Add support to compare two semvers
* Add new_version/new_url options to preferences
* Remove convert_to for base::Version (now this class is constructed from
  strings only)
2015-04-24 12:45:01 -03:00
David Capello
7e52e6d882 Use Preferences class to save the updater information 2015-04-23 19:51:53 -03:00
David Capello
d7bf504887 Fix flags to always compile with libcurl (as HomeView needs net-lib to load news) 2015-04-23 19:14:13 -03:00
David Capello
5ced5b2ee6 Don't define HomeView member functions needed for updater if ENABLE_UPDATER isn't defined (fix #624) 2015-04-23 19:05:11 -03:00
David Capello
2ea7ac6fbc Minor changes in options.xml 2015-04-23 18:33:22 -03:00
David Capello
cd07acb6a0 Don't wait in Document::lockToWrite() if timeout = 0
This fixes a lag problem using the arrow keys to move the selection
content.
2015-04-22 22:00:59 -03:00
David Capello
a2cbf3f285 Fix crash using --trim without --split-layers 2015-04-22 19:35:06 -03:00
David Capello
fe0b970131 Enable data recovery feature only if we're in GUI mode 2015-04-22 19:28:24 -03:00
David Capello
672d2b7992 Add shortcut to set zoom to 50% (close #633) 2015-04-22 19:05:16 -03:00
David Capello
f96293d1e8 Recover files with other filename to avoid confusion (related to #637) 2015-04-22 18:53:03 -03:00
David Capello
aeb1a799d7 Improve write/read stability of backup data
Now we backup 3 versions for each object. And when an object is saved
correctly on disk, a "magic number" is saved at the beginning of the file.
In this way we know that the file really represents the full object (and
a crash was not occurred in the middle of the process).
2015-04-22 16:46:57 -03:00
David Capello
8e6080af0b data_recovery.cpp: Fix TRACE() calls 2015-04-22 16:43:37 -03:00
David Capello
073831472c Catch exception if DocumentDestroyer cannot lock the document to close it 2015-04-22 16:42:55 -03:00
David Capello
134dad8d5f Use an object to implement crash::write_document() to avoid versions and dir params 2015-04-21 16:52:41 -03:00
David Capello
4b083030f1 Merge branch 'master' of git@github.com:aseprite/aseprite.git 2015-04-21 14:27:01 -03:00
David Capello
4e5860ce66 Remove (now) unnecessary update_screen_for_document() after saving process
If the sprite is locked and we cannot redraw the Editor, some defered
invalidations will be update the screen correctly.
2015-04-21 13:36:47 -03:00
David Capello
b699b92a3a Add defer_invalid_rect() to re-invalidate areas that we weren't able to paint
Sometimes, the Editor and Timeline widgets cannot be validated because the
document is locked (i.e. cannot be read). In these cases we can start a
timer to re-invalidate those areas again (and try to draw them when the
document is unlocked).
2015-04-21 13:31:24 -03:00
David Capello
34adca2933 Keep a render::Zoom instead of percentage "int" value in ZoomCommand() 2015-04-21 13:20:42 -03:00
David Capello
9fa26dc2f4 Fix problem saving transparent GIF and PNG files when the background layer is hidden 2015-04-21 13:20:36 -03:00
David Capello
2453f2de97 Add debug traces to see that we are waiting for a document lock 2015-04-21 12:15:33 -03:00
David Capello
44bf546d0d Don't wait for DocumentReader lock in Editor/Timeline::onPaint() 2015-04-21 12:14:56 -03:00
David Capello
0f4705e67b Remove unnecessary ContextWriter at the end of SpriteSizeCommand 2015-04-21 12:14:02 -03:00
David Capello
8e150dcbee We don't need a DocumentWriter lock to make the session backup 2015-04-21 11:06:46 -03:00
David Capello
e4f62942b7 Fix scroll issues when we clone a view 2015-04-21 10:24:42 -03:00
David Capello
e17804e9ff Remove unnecessary locks in app::Job 2015-04-20 17:30:01 -03:00
David Capello
395baa3296 Don't lock for write when we save a document (we just need to read it) 2015-04-20 17:28:10 -03:00
David Capello
fedf818cda Support more percentages as parameter in ZoomCommand (related to #633)
In this way we could have a command to set zoom to 50%
2015-04-20 16:57:24 -03:00
David Capello
21c4fd51d9 Move app::DocumentLocation to doc::Site
This is a first step to include the current selected range of layers
and frames inside the doc::Site structure. So in the future we'll not need
to know about the Timeline in commands that handle those ranges.
2015-04-20 16:27:09 -03:00
David Capello
c5cf848d37 Fix tab height when we're docking a tab in the empty main Tabs widget 2015-04-20 14:04:38 -03:00
David Capello
47d2d8f902 Support to clone tabs using Ctrl+drag (close #634) 2015-04-20 13:49:25 -03:00
David Capello
441c796c1a Add details about Retina display in INSTALL.md 2015-04-17 14:30:09 -03:00
David Capello
da342f29f3 Several changes related to UI scale
* UI scale is an experimental option (it needs app restart)
* We can change the Screen Scale without restarting the app now
* Hide reloading of skin data in SkinTheme::onRegenerate()
* Now setFontOfAllWidgets() is called from Theme::regenerate()
* Remove reload_default_font()
* Simplify gui_setup_screen()
2015-04-17 12:24:33 -03:00
David Capello
240149ef6f Add UI Scale option (as separated concept from Screen Scale)
With this change we don't adapt the UI Scale automatically depending of
the display size, as it cannot be adjusted dynamically anyway (as the app
must be restarted to take this change correctly).
2015-04-17 11:11:36 -03:00
David Capello
39859e9858 Disable Ctrl+Tab (and Ctrl+Shift+Tab) when we are dragging tabs 2015-04-17 09:49:49 -03:00
David Capello
61fa0b454f Tabs: Use selectTabInternal() in kMouseDownMessage handler 2015-04-17 09:28:52 -03:00
David Capello
81f41e6793 Fix crash pressing Ctrl+Tab (or Ctrl+Shift+Tab) when there are no tabs 2015-04-17 09:25:53 -03:00
David Capello
7e65cab22f Merge branch 'master' of git@github.com:aseprite/aseprite.git 2015-04-16 20:32:41 -03:00