Commit Graph

200 Commits

Author SHA1 Message Date
David Capello
d31f83e098 Add option to load/save default palette preset (fix #626)
Now the default palette is saved in the user configuration
directory, so we can set any palette as the default (it doesn't
matter if it's related or not to a file, it will be copied into
the user directory anyway).
2015-05-08 16:08:55 -03:00
David Capello
d3dbc11451 Add options to change palette entry size 2015-05-08 14:59:52 -03:00
David Capello
5437ccd2a2 Move palette menu to color bar options button 2015-05-08 14:36:54 -03:00
David Capello
24c3c3e3a3 Add '=' key has alternative to '+' (as in US keyboards plus sign is Shift+'=') 2015-05-06 18:02:59 -03:00
David Capello
1b25c4e9e9 Add slots in the ContextBar to select brushes with Alt+1, Alt+2, etc.
Now the ContextBar contains a set of brushes. The ChangeBrushCommand
supports a new "slot" parameter and "change" = "custom" to select a
specific custom brush from the ContextBar. Alt+1, Alt+2, etc. are mapped
to this ChangeBrushCommand (see changes in gui.xml).

Also, as the ButtonSet that represent different brushes in the ContextBar
uses icons generated from the brush, we don't need the skin parts that
represent each brush type (we can generate those icons from some standard
brushes). Those skin parts were removed.
2015-04-29 12:32:44 -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
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
672d2b7992 Add shortcut to set zoom to 50% (close #633) 2015-04-22 19:05:16 -03:00
David Capello
7448db3959 Add "View > Duplicate View" to create multiple views of the same document 2015-04-06 12:22:20 -03:00
David Capello
e6c0353e30 Fix Ctrl+Tab in OS X 2015-04-04 14:35:14 -03:00
David Capello
f475378d38 Add possibility to duplicate the current cel only (Alt+M) 2015-03-17 18:19:41 -03:00
David Capello
d36f10ee02 Add "Set Loop Section" option in frame popup menu 2015-03-12 15:37:09 -03:00
David Capello
0cb4b2234d Always load params when a command is executed
This is to avoid leaving commands with old params (a problem with
keyboard shortcuts). To make sure, we've changed arguments from Params*
to Params&, so we always have params to load.

Also, in this change we introduce a new way to give parameters to executed
commands from menu items using AppMenuItem::setContextParams(). Before
showing a popup, we can call setContextParams() to give extra params to
the command (e.g. the specific FrameTag to remove or change properties).
In this way "contextparams" attribute for <item> in gui.xml is not
available anymore.
2015-03-11 15:40:22 -03:00
David Capello
1177e02609 Add popup menu to FrameTags in the Timeline
Add a new contextparams attribute to menu items in gui.xml that are feed
by the UI with params (e.g. the FrameTag popup needs to know what exact
tag we should edit, and it's a command Param provided by the Timeline).
2015-03-10 16:44:18 -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
200e612670 Simplify Workspace implementation removing the possibility to split views/tabs
It's confusing to see two tabs when we split the view. In the future we
should be able to move tabs to create a split view.
2015-03-04 17:23:40 -03:00
David Capello
ff66ea025c Add support to close Home tab with middle mouse button or right-click popup menu 2015-02-22 21:18:53 -03:00
David Capello
2dac7f3869 Add Frame Tags Properties dialog/command 2015-02-20 11:42:59 -03:00
David Capello
6064debe13 Add support to close any kind of WorkspaceView (HomeView and DevConsoleView)
* Add WorkspaceView::onCloseView() member function
* Now DevConsoleView is inside MainWindow (just like HomeView)
2015-02-19 22:14:06 -03:00
David Capello
b2ccf7a017 Add copyright in gui.xml 2015-02-19 20:30:04 -03:00
David Capello
9f8505f490 Add Remove Frame Tag command 2015-02-18 11:44:54 -03:00
David Capello
9e734b2e8c Add NewFrameTag command 2015-02-17 16:12:10 -03:00
David Capello
d1d49c5038 Add TogglePreview command (rename "mini-editor" to "preview")
Renamed Preview to FullscreenPreview to avoid confusion.
As an extra "to do", we need to add command aliases, so Preview matches
FullscreenPreview (mainly to keep user defined keyboard shortcuts).
2015-02-10 09:07:04 -03:00
David Capello
52003da721 Merge branch 'feature/continuous-cels' 2015-02-09 11:42:01 -03:00
David Capello
5614b9b366 Add Export Sprite Sheet keyboard shortcut 2015-02-03 12:28:02 -03:00
David Capello
1321de9d58 Merge branch 'master' into feature/continuous-cels 2015-01-30 10:57:32 -03:00
David Capello
06636fd16e Merge branch '1.0'
Conflicts:
	src/app/file/gif_format.cpp
	src/app/file/gif_options.h
	src/app/ui/editor/moving_cel_state.cpp
	src/app/ui/editor/standby_state.cpp
	src/app/util/range_utils.cpp
2015-01-29 12:18:13 -03:00
Manuel Quiñones
bbb72de545 Fix link to the README in Help menu 2015-01-29 11:25:07 -03:00
David Capello
ce6dc3f790 Add shortcut to toggle the visibility of active layer (fix #587) 2015-01-29 10:32:19 -03:00
David Capello
9d5d911830 Update version to 1.0.9-dev 2015-01-25 19:51:59 -03:00
David Capello
d2ea95716f Add Unlink Cel command 2015-01-20 09:39:12 -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
709d23606a Remove minor comment in gui.xml 2014-12-13 19:33:26 -03:00
David Capello
5c9240d4d1 Add Ctrl+T to transform the cel content (close #560) 2014-12-13 19:32:58 -03:00
David Capello
afbd3b2d96 Optimize ToolLoop with modified regions of pixels
Here we avoid copying and clearing pixels that will not be used
in the whole tool loop process.
Changes:
* Add several member functions in ToolLoop to validate/invalidate regions
  of source/destination images so we know what regions are safe to use
  by inks and can be shown in the editor
* Add new DocumentObserver::onExposeSpritePixels() member to validate
  pixels that will be displayed in the editor
* Add Ink::needs/createSpecialSourceArea() member functions to validate
  extra areas for inks like blur or jumble
* Add undoers::ModifiedRegion to save the undo information about the
  modified region
* Add ShowHideDrawingCursor class
* Change "blur" tool policy from overlap to accumulate

(This is a real fix for issue #239)
2014-12-08 14:57:56 -03:00
David Capello
5aea29348e Merge branch '1.0'
Conflicts:
	data/gui.xml
	src/app/CMakeLists.txt
	src/app/color_utils.cpp
	src/app/color_utils.h
	src/app/commands/cmd_preview.cpp
	src/app/document_exporter.cpp
	src/app/document_exporter.h
	src/app/ui/editor/standby_state.cpp
	src/config.h
	src/main/resources_win32.rc
2014-12-03 11:15:09 -03:00
David Capello
08f846c83d Convert gui.xml to Unix EOLs 2014-12-02 01:47:54 -03:00
David Capello
a0c8b1f188 Update version to 1.0.8-dev 2014-11-30 21:09:50 -03:00
David Capello
934c9c3fe9 Merge branch '1.0' 2014-11-20 21:48:13 -03:00
David Capello
3645ffe2a5 Change Alt modifier to Shift+Alt to substract selection
This is to avoid conflicts with the eyedropper tool, which can be used
to change the background color.
2014-11-17 07:23:48 -03:00
David Capello
acfe155b24 Merge branch '1.0'
Conflicts:
	src/app/color_picker.cpp
	src/raster/sprite.h
2014-11-16 18:59:30 -03:00
David Capello
c64ee5729b Add "Auto Select Layer" check box to Move Tool (close #527) 2014-11-16 18:33:31 -03:00
David Capello
c0078809f7 Merge branch '1.0'
Conflicts:
	data/gui.xml
	src/config.h
	src/main/resources_win32.rc
2014-11-16 13:26:02 -03:00
David Capello
7b4cd3e136 Re-add Ctrl+Q for Windows and Linux 2014-11-16 12:30:06 -03:00
David Capello
497f0ffee0 Update version 1.0.7-dev 2014-11-13 11:12:25 -03:00
David Capello
228d1e39e6 Update gui.xml and resources_win32.rc versions 2014-11-12 23:35:14 -03:00
David Capello
8716214718 Add SetLoopSection command and F2 keyboard shortcut (close #491) 2014-11-08 19:57:46 -03:00
David Capello
f939ef5f02 Add keyboard shortcuts customization (close #253)
Changes:
* Add KeyboardShortcutsCommand and window
* Add SelectAccelerator window
* Replace modules/gui.cpp functions with app::KeyboardShortcuts and
  app::Key with the logic to load/save/handle keyboard shortcuts
* Change ui::Accelerator concept: now it represent just one keyboard
  shortcut, not a set of shortcuts
* Remove ui::Accelerator from ui::MenuItem, now the key is associated
  in app::AppMenuItem and it's a app::Key
* Add Command::onGetFriendlyName() to get a user friendly name of the
  command depending on its parameters
2014-10-29 11:58:03 -03:00
David Capello
d327ab536f Add "View > Show Pixel Grid" menu option to switch the pixel grid 2014-10-29 10:36:50 -03:00
David Capello
c6aedc117a Add Alt+Shift+G shortcut to toogle the pixel grid visibility (fix #504) 2014-10-26 00:48:15 -03:00
David Capello
21b0f64a34 Add Cmd+, and Ctrl+K keyboard shortcuts to open preferences 2014-10-25 11:49:24 -03:00
David Capello
4188fa1408 Add ReverseFramesCommand (fix #503) 2014-10-24 11:37:52 -03:00
David Capello
81d725e8c3 Update version to 1.0.6-dev 2014-10-23 10:58:09 -03:00
David Capello
546d3af5e8 Fix problems clearing background cels
- The background color to clear is calculated in one place: DocumentApi
- Rename RemoveCel command to ClearCel
2014-09-17 09:53:25 -03:00
David Capello
993ed28991 Update version to 1.0.5-dev 2014-09-09 08:52:22 -03:00
David Capello
a2107f5bd9 Mac OS X: Avoid Cocoa error beep when a Cmd+key is used
This change should be reverted in some way when the OS X menus
are implemented (issue #135)
2014-08-28 09:50:32 -03:00
David Capello
a122b2d3c6 Add Alt+C as shortcut for RemoveFrame 2014-08-28 09:04:49 -03:00
David Capello
d4f056100b Now we can rotate the current cel or a range of cels (related to issue #161) 2014-08-25 09:06:38 -03:00
David Capello
0aea78318a Now you can move the selection with arrow keys when it is visible 2014-08-25 00:55:54 -03:00
David Capello
355ecbb2af Add space bar as modifier
Now we can scroll with space bar + arrow keys
2014-08-24 23:40:33 -03:00
David Capello
4e061d1a56 Add , and . shortcuts to navigate frames 2014-08-24 23:32:17 -03:00
David Capello
522e9a0337 Add Shift/Alt modifiers to selection tools to change Union/Subtract modes (fix #217) 2014-08-24 19:19:38 -03:00
David Capello
6c571adbd4 Add Alt+B shortcut to create new empty frames 2014-08-24 18:01:52 -03:00
David Capello
7144457249 Change Ctrl+I (or Cmd+I) shortcut to ImportSpriteSheet (as InvestColor is generally not used in pixel art) 2014-08-19 08:22:04 -03:00
David Capello
6db36fe30b Add ZoomCommand so zoom keys are configured in gui.xml file 2014-08-13 00:22:29 -03:00
David Capello
626ec1d2ba Add MoveTaskCommand: now you can move the selection with Shift+arrow keys 2014-08-08 01:00:02 -03:00
David Capello
6d1602f278 Minor change in gui.xml 2014-08-07 20:26:02 -03:00
David Capello
fcfaacd4d7 Update version to 1.0.3-dev 2014-08-06 00:50:35 -03:00
David Capello
a856cdf8bd Add support for command key in Mac OS X platform
Other change:
- Fixed ui::Message::onlyCtrl/Shift/AltPressed() member functions
2014-08-06 00:42:50 -03:00
David Capello
958d8f922f Merge branch 'next' into dev 2014-07-11 01:15:30 -03:00
David Capello
0b8d88d6ee Add "slice" ink and tool (it is not yet implemented) 2014-06-27 22:58:38 -03:00
David Capello
abe957f037 Update version to 1.0.2 2014-06-15 12:03:23 -03:00
David Capello
9ac51fd0be Rename raster::Pen -> raster::Brush 2014-06-14 15:09:43 -03:00
David Capello
d8d637a056 New version 1.0.1 in dev 2014-06-09 22:05:19 -03:00
David Capello
391a5c0bf4 Add command to switch onion skin visibility 2014-05-08 08:47:45 -03:00
David Capello
fa204baf42 Easier way to reference the program website in commands 2014-05-05 21:28:58 -03:00
David Capello
e624b391c2 Fix quickref link 2014-05-05 21:28:20 -03:00
David Capello
6774ec89f9 Update URL in gui.xml 2014-05-03 17:05:54 -03:00
David Capello
c879d114e0 Version 1.0.0 2014-05-02 19:58:34 -03:00
David Capello
f60d1c5c4f Add "Cancel" option to cel_movement_popup (popup when you move cels in the Timeline) 2014-05-02 11:55:44 -03:00
David Capello
4c706afb90 New zoom tool 2014-04-19 20:08:21 -03:00
David Capello
71b7000c8a Update links 2014-04-12 12:28:34 -03:00
David Capello
b16bf981d0 Implement issue #265 - command/keyboard shortcut for "last export" operation
- Add doc::ExportData with information about the last export operation.
- Add RepeatLastExport command.
- Add SaveFileBaseCommand as base Command class, to accept "filename"
  param.
- Add parameters to ExportSpriteSheet so we can call it without UI
  from "repeat last export".
2014-03-29 16:58:35 -03:00
David Capello
ccdbfd1cf5 Remove Ctrl+Q shortcut for Exit (it remains reserved for other purposes in the future) 2014-03-29 15:42:13 -03:00
David Capello
9423b967ab Change selection behavior: left-click replace the selection
With this patch we replace the "unique/odd" behavior of Aseprite where
you add selection regions with left-click and remove with right-click.
Now by default you replace the selection with left-click (as in regular
gfx programs). Also you can change the selection tool behavior with
buttons/icons at the context bar (to select between replace/add/subtract).
2014-01-25 17:58:29 -03:00
David Capello
400a2c1993 Timeline: Add support to delete several cels at once 2013-12-22 18:52:25 -03:00
David Capello
ddf4a13490 Add the Palette menu with Load/Save commands 2013-11-15 16:56:50 -03:00
David Capello
b0cd01b425 Add the old "Animation Editor" as a timeline at the bottom of sprite editors (Workspace)
- Renamed AnimationEditor (dialogs/aniedit.h) to Timeline
  class (app/ui/timeline.h)
- Renamed FilmEditor command to Timeline
2013-11-10 18:27:11 -03:00
David Capello
337af9715e Minor change in document_tab_popup labels 2013-01-20 18:41:38 -03:00
David Capello
ed90055bf7 Replace modules/editors.cpp with widgets::Workspace class
Now we have one editor for each Document we want to edit. Before we were
creating one editor and switching the document on it, but now we have
several Editors (one for each opened Document). This simplifies the
Document implementation, because it doesn't need to know temporal
Editor information (like "preferred editor settings").

- Removed all code from modules/editors.cpp (legacy from C code).
- Removed PreferredEditorSettings class and
  Document::getPreferredEditorSettings().
- Added Workspace/WorkspaceView classes.
- Added DocumentView (a DocumentObserver).
- Added MiniEditorWindow class.
- Removed SelectFileCommand & CloseEditorCommand.
- Added TabView interface instead of using a raw void* in
  Tabs/TabsDelegate classes.
- Modified editors_draw_sprite() calls to Document::notifySpritePixelsModified
  notifications.
- The "current_editor" global variable wasn't removed because it's
  used in several places yet, but it will be removed in the near future.
  (Also this variable now can be NULL when we don't have an opened
  document.)
2013-01-20 18:40:37 -03:00
David Capello
3aad5a570c Update version to 0.9.6-dev 2012-08-24 21:42:46 -03:00
David Capello
6caaca8179 Advance to 0.9.4-dev version. 2012-07-11 18:32:07 -03:00
David Capello
9b9daca59f Add "LockAxis" key (Shift) to move the selection in X or Y axis only.
Now "Alt" modifier is the key used to snap to grid the selection.
2012-07-06 19:51:40 -03:00
David Capello
11d20a6e33 Add links to README file and Twitter account in Help menu. 2012-07-06 19:26:36 -03:00
David Capello
02e8c66da4 Remove signals and hooks in GUI code.
Several refactoring tasks where made:
- Removed the old Widget::id field (JID).
- Renamed Widget::get/setName to get/setId.
- Moved load_widget_from_xmlfile() to app::load_widget and WidgetLoader
  class.
- Removed jhook structure & jwidget_add_hook function. Hooks were replaced
  subclassing widgets.
- Added InitThemeEvent class and Widget::onInitTheme member function.
2012-06-15 23:37:59 -03:00
David Capello
1029792a25 Update gui.xml file to 0.9.3-dev. 2012-05-27 21:10:50 -03:00
David Capello
390c0136ad Update version of gui.xml file. 2012-04-05 19:35:14 -03:00
David Capello
55a4002ec5 Add posibility to scroll by-tiles using Ctrl+arrow keys (Paul Pridham idea).
+ Added ScrollCommand.
2012-04-04 00:49:13 -03:00
David Capello
3ed8d5b565 The version in the repository will be "-dev" always. 2012-02-14 20:01:02 -03:00
David Capello
7354bb83cb Update gui.xml version. 2012-02-14 18:41:37 -03:00