Commit Graph

284 Commits

Author SHA1 Message Date
David Capello
67ce9473f8 Add option to include partial tiles in Import Sprite Sheet (fix #1161) 2016-07-01 10:24:44 -03:00
David Capello
4760a11348 Merge branch 'master' into beta 2016-06-06 18:02:30 -03:00
David Capello
af2c2838e0 Add new option to zoom sliding two fingers on OS X trackpad
It was requested here:
http://steamcommunity.com/app/431730/discussions/2/357286663677659387/
2016-05-27 13:15:13 -03:00
David Capello
73bda9bd19 Add new advanced options in New Sprite dialog to change the pixel ratio 2016-05-23 18:36:47 -03:00
David Capello
97d9b3cb31 Go to frame field in status bar isn't focused by default anymore (fix #1113) 2016-05-04 10:00:54 -03:00
David Capello
b60b76ff22 Add option to show layer edges 2016-05-03 16:23:38 -03:00
David Capello
6dc9bb984d New option for paint bucket using all layers as reference/stop fill (fix #969) 2016-05-03 15:31:27 -03:00
David Capello
a09b00dba8 Fix synchronization of different UI elements depending on the active tool
With this patch now the context bar shows the real active tool
preferences. For example, if we choose the option to use the Eraser
tool with right-click, now right-clicking will draw with the Eraser
brush size (instead of using the selected tool/left-click tool brush
size).

Changes:
* Removed the toolBox.activeTool() field from preferences
  (as the option isn't persisted between sessions)
* Added an observable app::tools::ActiveToolManager class to sync all
  UI elements that depend on the active tool and ink.
* Moved a lot of "active tool" logic from app::Editor to the
  new ActiveToolManager
* Moved app::tools::ToolLoopManager::Pointer as an indepedent
  app::tools::Pointer class
2016-04-25 15:20:53 -03:00
David Capello
2ce09c53dd Add customization for square aspect, draw from center, and move origin keys (fix #1028)
Some changes:
- Now ui::Keys aren't processed in app::tools side, they are processed
  in Editor side and converted to ToolLoopModifiers flags.
- Replace ToolLoop::getSelectionMode -> ToolLoop::getModifiers()
2016-04-04 18:46:48 -03:00
David Capello
8b161dac0a Add ShowBrushPreview command so the user can hide the brush preview with a keyboard shortcut (fix #792) 2016-03-24 14:45:28 -03:00
David Capello
9face9458e Add an option to change the "brush preview" style (related to #792) 2016-03-24 14:29:15 -03:00
David Capello
2af47fe907 Add option to toggle the selection edges visibility (fix #861) 2016-03-24 13:04:35 -03:00
David Capello
7a0a89e59e Add the new ColorTintShadeTone color picker (#707) 2016-02-26 11:18:46 -03:00
David Capello
30672ba144 Don't reset Screen Scale when the main window cannot be created
Should fix #860
2016-02-23 18:08:25 -03:00
David Capello
ff0c2c2770 Merge branch 'ryb-color-wheel' 2016-02-12 10:50:57 -03:00
David Capello
c1ae065c2c Add RYB color wheel (related to #707) 2016-02-12 10:49:33 -03:00
David Capello
7b8d9102e1 Add independent scroll/zoom values in preview window per document (fix #959) 2016-02-11 21:09:31 -03:00
David Capello
2fc447edd6 Disable GPU acceleration by default 2015-12-28 17:28:48 -03:00
David Capello
3543b086d1 Add option to keep the selection after Edit > Clear (fix #907) 2015-12-22 17:49:21 -03:00
David Capello
e79236b3a3 Add JSON data format into Export Sprite Sheet UI 2015-12-22 17:34:51 -03:00
David Capello
fcbb364085 Add "Play Once" option in "Play" button popup 2015-12-18 18:51:30 -03:00
David Capello
0cdc71bf05 Add possibility to save brush type/size/angle, fg/bg colors, ink type/opacity, shade, etc. into brush slots
Fix #904
2015-12-16 17:27:04 -03:00
David Capello
5dc149d308 Add "Select > Modify" commands to expand/contract/border the selection 2015-12-04 17:46:32 -03:00
David Capello
fb387cb6c2 Add options to export layers and frameTags meta JSON data from the UI 2015-12-03 12:42:33 -03:00
David Capello
4dbee12789 Add possibility to import/export sprite sheet matrices by columns
Fix #872
2015-12-03 11:38:59 -03:00
David Capello
3b0bf6daaa Add anti-aliasing checkbox in "Edit > Insert Text" option 2015-12-01 15:46:21 -03:00
David Capello
56854cdb9f Add symmetry mode (fix #208)
This is a first iteration of the feature, it doesn’t have handles to
move the symmetry line and it only contains two symmetry modes:
horizontal or vertical.

As an extra change, we have added the new Stroke type to wrap a vector
of gfx::Points and simplify some existing code in the ToolLoop.
2015-10-26 17:51:32 -03:00
David Capello
03c0367827 Add option to disable GPU acceleration 2015-10-05 21:18:42 -03:00
David Capello
1ac39ff85b Add simple "Edit > Insert Text" menu option (related to #28) 2015-09-23 17:38:45 -03:00
David Capello
3abea9c4b3 Use Preferences class to store the active theme 2015-09-18 11:56:45 -03:00
David Capello
4b064333cc Add color harmonies in the ColorWheel widget (issue #707) 2015-08-21 13:27:58 -03:00
David Capello
ff9693b29d Add support to export all/selected/one layer/frame/frame tag
This commit includes support to export tagged frames using the command
line --frame-tag option.

Fix #415, fix #570, fix #607, fix #745
2015-08-20 22:30:33 -03:00
David Capello
2b4c531e8e Add possibility to scroll with right click 2015-08-19 18:00:51 -03:00
David Capello
75a743f141 Separate pivot visibility and location options 2015-08-14 10:09:15 -03:00
David Capello
4302d12cb4 Move "New Sprite" preferences from raw get/set_config_*() to pref.xml 2015-08-12 15:35:46 -03:00
David Capello
da8eff0ec2 Add a basic RGB color wheel (related to #707) 2015-08-06 11:23:16 -03:00
David Capello
bf54fd26d3 Add option to put the onion skin behind the sprite
Fix #526 and fix #412
2015-07-31 15:55:06 -03:00
David Capello
80b47419fd Add an option to onionskin the current layer only (related to #526) 2015-07-31 14:30:11 -03:00
David Capello
7cfdf76b0e Add rotation pivot options in context bar (fix #370)
With these options we can configure to show the pivot and the default
location when we select a sprite area.
2015-07-29 16:35:34 -03:00
David Capello
41bb23f1f1 Change opaque/transparent selection by default depending on the layer 2015-07-27 11:43:48 -03:00
David Capello
35229e99a6 Add opaque/transparent mode in context bar for transformations (fix #546)
With this change now we add a "mask" image/parameter in rotation
functions. In this way we can identify which specific pixels are
inside the original mask/selection, and in opaque mode we can
include/scale/rotate all those pixels inside the mask, whatever
value they are, even if they are the mask color.

Fixes #730
2015-07-23 22:42:14 -03:00
David Capello
66ddc62a76 Add an option to share ink/opacity parameters between all tools 2015-07-23 10:07:07 -03:00
David Capello
be6779631b Modify eyedropper tool to pick colors with alpha and support several modes
Issue #286
2015-07-02 18:13:47 -03:00
David Capello
e9308c2d35 Add alpha channel in quantization (related to #286) 2015-07-02 11:18:43 -03:00
David Capello
401dd5362b Add option to change the "Stop" button behavior (fix #705) 2015-06-19 12:09:34 -03:00
David Capello
90f988d928 Add option to ignore grid limits in paint bucket or magic wand tools (fix 564) 2015-06-17 13:22:46 -03:00
David Capello
1af22f1ab7 Remember last frame/layer visited for each document (fix #486) 2015-06-15 11:29:12 -03:00
David Capello
0a1dfe0633 Merge branch 'onionskin'
Conflicts:
	src/app/ui/editor/play_state.cpp
	src/render/render.cpp
	third_party/gtest
2015-06-05 15:53:15 -03:00
David Capello
b3db9c4f7c Default FG color=white and default BG color=black 2015-06-05 01:05:43 -03:00
David Capello
e0fea708f8 Add option to resize the final output of "Save Copy As" command (fix #685) 2015-06-03 16:34:27 -03:00
David Capello
3388eaffde Show onion skinning depending on the configured loop section (fix #555)
There is a new option (per document) to disable this behavior.
2015-05-27 17:42:41 -03:00
David Capello
12e28960e4 Move Editor cursor color to pref.xml 2015-05-18 18:16:35 -03:00
David Capello
f6be0c3be6 Replace ISettings with Preferences
Changes:
* Move FreehandAlgorithm/InkType/RotationAlgorithm/SelectionMode to
  app::tools namespace
* Removed ISettings, IToolSettings, IBrushSettings, ISelectionSettings,
  and IColorSwatchesStore (and implementations from UISettingsImpl)
* Added app::tools::PreferenceGlue to do some adjustments that
  UIToolSettingsImpl was doing
* Remove signals from App related to brush size/angle changes, and current
  tool change (there events can be observed directly from Preferences)
* Remove ColorBar::FgColor/BgColor, these options can be observed from
  Preferences::colorBar.fg/bgColor
2015-05-18 16:53:25 -03:00
David Capello
41ed14f036 Replace ISettings::get/setAutoSelectLayer() with Preferences class 2015-05-13 11:57:13 -03:00
David Capello
00ff89529c Replace ISettings::get/setGrabAlpha() with Preferences class 2015-05-13 11:46:49 -03:00
David Capello
06b53981d4 Replace ISettings::get/setRightClickMode() with Preferences class 2015-05-13 11:19:16 -03:00
David Capello
d3dbc11451 Add options to change palette entry size 2015-05-08 14:59:52 -03:00
David Capello
97609b6504 Add option to change the zoom behavior with keys 2015-05-07 15:56:38 -03:00
David Capello
b2955d58ad Add option to change the zoom behavior with scroll wheel 2015-05-07 15:52:26 -03:00
David Capello
96769d061e Rename BrushPattern::ALIGNED_FROM_SRC to ALIGNED_TO_SRC 2015-04-27 11:45:00 -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
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
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
21a57ff793 Add "data recovery period" option 2015-04-09 07:46:55 -03:00
David Capello
9b692cb14a Add option to disable data recovery 2015-04-08 20:28:30 -03:00
David Capello
fd62a60472 Save ColorBar box size in preferences 2015-03-23 14:39:21 -03:00
David Capello
db17bacff3 Remember settings used to import a sprite sheet 2015-03-19 15:44:02 -03:00
David Capello
9d3d3d1f17 Add padding parameters to export sprite sheet (related to #78) 2015-03-19 14:39:37 -03:00
David Capello
63485449f6 Add an option in "Export Sprite Sheet" to open the generated sprite sheet 2015-03-19 10:17:40 -03:00
David Capello
50e9ed6326 Unify "Export Sprite Sheet" command with DocumentExporter 2015-03-17 16:43:51 -03:00
David Capello
58d302749c Use a FrameTag for the loop section (fix #557)
Changes:
* Paint FrameTags in Timeline with labels
* Add app::ui::FrameTagWindow
* Fix FrameTag::m_aniDir initialization
* Add warning for files that doesn't support frame tags
* Remove document preferences related to the active loop
2015-03-09 13:57:54 -03:00
David Capello
361a3084fd Merge branch 'new-workspace'
Conflicts:
	src/app/commands/cmd_open_file.cpp

Fixes:
	src/app/ui/timeline.cpp
2015-03-04 22:41:34 -03:00
David Capello
057532e7d7 Cache RSS news file 2015-03-04 19:24:37 -03:00
David Capello
b8ed98bd8b Add native file open/save dialog (only win32 at the moment, issue #321) 2015-03-02 16:07:35 -03:00
David Capello
8f8291a39b Hide colorbar and toolbar when we're in Home tab 2015-03-02 14:43:44 -03:00
David Capello
adf3e6c00d Add AniDir as a FrameTag property (it's persisted in .ase files) 2015-02-19 13:05:39 -03:00
David Capello
69ac11eea2 Remove IDocumentSettings and DocumentSettingsObserver
Document user options are completely replaced with DocumentPreferences.
2015-02-15 09:48:38 -03:00
David Capello
8387c7ba3e Fix XML error in pref.xml 2015-02-14 23:20:59 -03:00
David Capello
e55865843e Replace undo impl: replace undoers with cmds
Undoers were little objects to swap/revert an action. They didn't
execute the action itself, they just revert its previous state. Now
undoers were replaced with cmds: A cmd is an object that
executes/undoes/redoes just one action.

Changes:
* Remove old undo library and app/objects_container_impl.cpp
  (now we use the doc::ObjectId directly to store undo info)
* Remove all Undoers from app/undoers/
* Replace DocumentApi impl with little Cmds in app/cmd/, these
  cmds handle execute/undo/redo of each action at the logic layer
* Remove doc::Dirty object
* Remove doc::Settings: all undo configuration is in the app side
* Move undo options from app:ISettings to app::Preferences
* Rename UndoTransaction to Transaction
* Create a CmdSequence to store a sequence of Cmds (as now the new
  undo library doesn't support open/close groups)
* Add doc::get<T>(ObjectId) function to get any kind of object
  from the doc library by its ID
* Add Cel::document() and Sprite::document() members
* Add Sprite::cels(frame_t) to get all cels in the given frame
* Add Layer::displaceFrames() member function
* Move the "allow non-linear history" flag from undo2::UndoHistory
  to app::DocumentUndo
2015-01-18 22:05:33 -03:00
David Capello
06d18f1e8a Replace doc::FrameNumber with doc::frame_t 2014-12-28 20:39:11 -03:00
David Capello
da1358c5dc Unify all render code in one library
Changes:
* Create render library (move util/render.cpp to render/render.cpp)
* Move app::Zoom class to render::Zoom
* Remove doc::Image::merge() member function
* Add gfx::Clip helper class (to clip dst/src rectangles before a blit)
* Move doc::composite_image() to render::composite_image()
* Remove doc::Sprite::render()
* Replace Sprite::getPixel() with render::get_sprite_pixel()
* Remove doc::layer_render() function
* Convert DitheringMethod to a enum class
* Add AppRender to configure a render::Render with the app configuration
* Move checked background preferences as document-specific configuration
* Add doc::Sprite::layer() and palette() member functions
* Add doc::Layer::cel() member function
* Add doc::Palette::entry() member function()
* Add doc::frame_t type
* Move create_palette_from_rgb/convert_pixel_format to render library
* ExportSpriteSheet doesn't need a temporary image now that we can specify
  the source rectangle in the render routine
2014-12-28 11:06:11 -03:00
David Capello
73658399cc Add setting/preference classes/enums generator
Changes:
* Add a class (Option<T>) to get/set/listen changes to one specific
  preference option
* Add data/pref.xml with the metadata to generate types/classes (not it's
  quite easy to add new preferences)
* Modify the generator to support generation of .h and .cpp files of
  preference types
* Add code to migrate old options to new ones (and functions to delete
  old values)
* Only a couple of options were migrated at the moment, it is a WIP, in the
  future we should completely remove ISettings and direct calls
  to set/get_config_*
2014-12-14 20:19:31 -03:00