Commit Graph

2959 Commits

Author SHA1 Message Date
David Capello
6c882e43d5 Rename Editor::m_cursorThick -> m_cursorOnScreen 2015-05-18 15:00:59 -03:00
David Capello
52cdea6cf0 Merge branch 'master' 2015-05-18 13:08:21 -03:00
Aurélien Gâteau
817b134f31 Add support for open_folder on Linux
Removed base::launcher::support_open_folder() as it would always return
true.
2015-05-15 22:37:58 +02: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
8c6c77e73a Remove deprecated GlobalSettingsObserver class 2015-05-13 11:23:26 -03:00
David Capello
06b53981d4 Replace ISettings::get/setRightClickMode() with Preferences class 2015-05-13 11:19:16 -03:00
David Capello
70f844380b Replace ISettings::get/setShowSpriteEditorScrollbars() with Preferences class 2015-05-13 10:41:55 -03:00
David Capello
c42ca3200f Remove (now) unused ISettings::get/setCenterOnZoom() 2015-05-13 10:34:00 -03:00
David Capello
aea07d06af Replace ISettings::get/setZoomWithScrollWheel() with Preferences class 2015-05-13 10:33:05 -03:00
David Capello
02d163b8d8 Add common keys in ui::Entry for OS X 2015-05-11 12:12:13 -03:00
David Capello
7450139898 Merge branch 'agateau-hide-hidden-files' 2015-05-11 12:02:14 -03:00
David Capello
15618c4fde Merge branch 'hide-hidden-files' of https://github.com/agateau/aseprite into agateau-hide-hidden-files 2015-05-11 12:01:31 -03:00
David Capello
5f82aa8f08 Fix split_filename_tests on OS X and Unix-like platforms 2015-05-11 11:44:56 -03:00
David Capello
96102e0e8c Remove lines that can fail in fs_tests 2015-05-11 11:33:20 -03:00
David Capello
bd7ad0cde0 Fix bug copying text on Windows clipboard
We were asking if the clipboard format was equal to Unicode Text to copy
Unicode text on it.
2015-05-11 11:26:37 -03:00
David Capello
7278f649f4 Select exact RGB match when we use eyedropper in RGB images
Fix #16
2015-05-11 11:25:53 -03:00
David Capello
2ac04c1c16 Show foreground/background color indicators in ColorBar
Related to #16 and #545
2015-05-11 10:53:50 -03:00
David Capello
9a6f635d31 Fix compilation error by implicit int <-> enum class conversion 2015-05-11 10:41:45 -03:00
David Capello
447bf3ef0b Add needed #include to use std::string type 2015-05-11 10:41:25 -03:00
David Capello
e05a635533 Fix usage of ImageRef shared pointer in app/util/clipboard.cpp 2015-05-11 10:41:11 -03:00
David Capello
063f1d173c Fix TipWindow() ctor signature 2015-05-11 10:40:37 -03:00
David Capello
cff735a7c8 Remove unused variables 2015-05-11 10:40:23 -03:00
David Capello
1583cd82bd Avoid using ESC key to close non-foreground windows 2015-05-11 09:53:45 -03:00
David Capello
300a5cc1cb Fix palette editor for one entry (non-selected range)
This fix the most common behavior where we are capable of use
eyedropper to pick just one color, and modify it with the editor.
2015-05-11 09:51:10 -03:00
David Capello
442d8c624a Fix triggering Editor's onCut() without mask when ColorBar's onCanCut() enables it
Asking for onCanCut/Copy/Paste/Clear just before onCut/Copy/Paste/Clear
in the same InputChainElement we ensure that the command for that specific
element can be used (and we aren't mixing onCans result of one input chain
element with the execution of the first input chain element command).
2015-05-11 09:37:39 -03:00
Aurélien Gâteau
1257060825 Do not list hidden files in file lists
This makes browsing $HOME a lot less cluttered.
2015-05-11 09:38:30 +02:00
David Capello
525e473fb5 Add relative mode in Palette Editor 2015-05-10 22:53:36 -03:00
David Capello
9fc7b993d4 Add ability to cut colors in the ColorBar 2015-05-10 21:36:46 -03:00
David Capello
cd1f764d85 Rename EditorState::onBefore/AfterChangeState to onLeave/EnterState()
This is to avoid confusion about the meaning of these callbacks.
2015-05-10 19:32:42 -03:00
David Capello
38526f3b9e Rename PaletteView::clearSelection() -> deselect() 2015-05-10 19:23:30 -03:00
David Capello
b5b59dece4 Add ability to clear colors from ColorBar 2015-05-10 19:19:48 -03:00
David Capello
c1324d196e Fix ColorBar::onCanPaste() to return true when we can still paste colors 2015-05-09 20:27:40 -03:00
David Capello
f395a0c768 Disable data recovery on trial mode 2015-05-09 20:18:10 -03:00
David Capello
2bbaa45844 Unify Cut/Copy/Paste/Clear handling with InputChain class 2015-05-09 19:55:33 -03:00
David Capello
e60236640a Destroy ColorMap remap information when Undo/Redo is executed 2015-05-09 16:18:27 -03:00
David Capello
11d86bb7c5 Add ability to copy colors using Ctrl + drag & drop 2015-05-09 15:57:46 -03:00
David Capello
cea0970d9d Fix several bugs with tooltip arrows/location
The tooltip arrow is now aligned to the target. And the tooltip is
relocated to the other side if it intersects its target bounds.
2015-05-09 13:20:57 -03:00
David Capello
06d1929729 Remove background color as an option in "New File" 2015-05-09 12:46:07 -03:00
David Capello
352eff2fd6 Add tooltips to ColorBar buttons 2015-05-09 12:30:05 -03:00
David Capello
62a3594598 Add ability to copy & paste colors with Ctrl+C and Ctrl+V
This commit includes the new doc::PalettePicks class. It's a helper
class to identify which entries are selected in the ColorBar.

We've removed the Copy/Paste buttons from the Palette Editor window.
2015-05-09 12:20:58 -03:00
David Capello
feb592db73 Remove Ramp and Quantize buttons from PaletteEntryEditor
These actions are now in the options above the ColorBar.
2015-05-08 17:37:41 -03:00
David Capello
1ef1f9e3e7 Add option for color quantization in the ColorBar options popup 2015-05-08 17:34:51 -03:00
David Capello
2995190d00 Fix crash making palette entries too small using scroll wheel 2015-05-08 17:00:44 -03:00
David Capello
ca1ebf02b5 Add option to create color gradients in the ColorBar 2015-05-08 16:55:08 -03:00
David Capello
5f46ffc5e0 Change position of "Remap" button so it's more noticeable 2015-05-08 16:17:42 -03:00
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
6a9382a975 Add option to reverse colors 2015-05-08 14:28:27 -03:00
David Capello
575e94e559 Add popup menu to sort palette colors 2015-05-08 13:03:06 -03:00
David Capello
dab8c96fa8 Fix bug getting ANSI clipboard text on Windows
Sometimes the clipboard content is in CF_TEXT format and there is
no implicit CF_UNICODETEXT conversion.
2015-05-07 22:56:02 -03:00
David Capello
bea61fab88 subpixelPos can be in [-1,0] range when we zoom outside sprite bounds 2015-05-07 21:50:15 -03:00
David Capello
146460ea1b Merge branch 'master' of git@github.com:aseprite/aseprite.git 2015-05-07 19:19:46 -03:00
David Capello
804330788b Add right-click popup menu in play buttons to change animation speed (fix #595) 2015-05-07 19:08:24 -03:00
Aurélien Gâteau
2855180dd9 Fix build with g++ 4.9 2015-05-07 22:59:10 +02:00
David Capello
ee3d4ca63c Improve zoom movement using a "subpixel" factor
This factor indicates exactly where the mouse is inside the zoomed pixel,
and uses it to locate the new zoom with the same factor (if it's possible).
2015-05-07 17:23:44 -03:00
David Capello
11929dfd60 Fix the mouse position in scroll wheel events from she layer 2015-05-07 17:21:37 -03:00
David Capello
b74727489d Fix limiting splitter position when it's hidden (with no bounds) 2015-05-07 15:59:29 -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
3d29adcbdf Fix zoom behavior when the zoom is changed from the center 2015-05-07 15:13:26 -03:00
David Capello
bfaf8a5921 Add ability to change the Preview zoom using 1...6 keys above the Preview 2015-05-07 14:43:33 -03:00
David Capello
35c8cc893b Add some help text in ContextBar when SelectBoxState is running 2015-05-07 13:11:44 -03:00
David Capello
18b067ee77 Add ContextBar::updateForCurrentTool() which is a common thing to do 2015-05-07 12:32:08 -03:00
David Capello
e398a1f21f Allow any size of boundaries for brushes
As now the eraser must show the boundaries of custom brushes, the fixed
maximum limit we were using (MAX_SAVED) for boundaries is not enough.
So now we use a std::vector for saved pixels.
2015-05-07 12:18:58 -03:00
David Capello
c90677333b Show current brush bounds for eraser tool (even for custom brushes) 2015-05-07 12:10:04 -03:00
David Capello
7b1b667a8a Fix problem resizing splitters with pixel-based position outside its own bounds (fix #663) 2015-05-07 11:40:39 -03:00
David Capello
cc2a5e8cc5 Pressing two times BrushTypeField was making its popup always visible
There was an ugly combination of events:
1. When ContextBar::BrushTypeField receives an onItemChange is because the
   mouse button is pressed on it (a kMouseDownMessage)
2. It shows the BrushPopup window (which is a PopupWindow
   with kCloseOnClickInOtherWindow click behavior)
3. When other click is made in BrushTypeField, the BrushPopup is closed
   because it is filtering messages (since it's
   kCloseOnClickInOtherWindow). This generates a kCloseMessage in the
   queue.
4. BrushTypeField::onItemChange() is executed again (for the same
   click in point 3), and it checks that the popup is closed (recently
   closed, by this click), so it shows the BrushPopup again.
5. The enqueued kCloseMessage is receved by PopupWindow, and it calls
   stopFilteringMessages().

So in this case we have a visible PopupWindow that is not filtering
messages. To fix this bug we have included a startFilteringMessages()
in kOpenMessage. So when the popup is shown again, it filters messages
and the popup cannot stay visible.
2015-05-06 19:58:41 -03:00
David Capello
f7465771b0 Add Ctrl+A (or Cmd+A) to select the whole text in ui::Entry 2015-05-06 18:11:29 -03:00
David Capello
9f39f4384c Add a menu option to lock/unlock each brush
This is an alternative to lock brushes using its keyboard shortcut.
2015-05-06 17:39:40 -03:00
David Capello
9dfd5ae0d3 Fix conflict between two classes named app::Item (in brush_popup.cpp and data_recovery_view.cpp)
This conflict was generating a crash when the "Recover Lost Sprites"
button was pressed.
2015-05-06 17:23:43 -03:00
David Capello
cb5fd3963f Fix problem where the cel opacity slider in StatusBar was not activated
After creating a new cel from a tool loop, we have to generate an
ActiveSiteChange notification (because now we have a cel in the active
position). In this way the StatusBar can update/enable the opacity slider.
2015-05-06 17:08:08 -03:00
David Capello
c6c7439566 Close autocomplete popup when we change the active folder in FileSelector 2015-05-06 16:58:32 -03:00
David Capello
05fb32bb84 Fix navigation keys for OS X and Windows
On OS X we can use Cmd+[ or Cmd+] to navigate the history. And Cmd+Up/Down
to go to the enclosing folder, or enter in a folder respectively.

On Windows we can use Alt+Left/Right to navigate the history. And Alt+Up
to go to the enclosing folder. (Alt+Down is an extra shortcut to enter
in the folder).
2015-05-06 16:47:43 -03:00
David Capello
4e911b7eea Esc key close the combobox popup 2015-05-06 16:27:45 -03:00
David Capello
a30f374bd5 Don't popup an empty listbox if the combobox is editable and has open-on-click style 2015-05-06 13:07:54 -03:00
David Capello
a0ea3ae07b Fix bug trying to remove one keyboard shortcut when other is removed instead
We've to regenerate all buttons that modify a specific keyboard shortcut
because they are listening the Click signal with the specific index of
the that shortcut. The index is given as parameter to the Signal connect()
function.

We've converted all buttons to shared pointers to simplify the code.
2015-05-06 12:13:35 -03:00
David Capello
decaa6510f Add TODO comment for SkinParts enum 2015-05-06 10:53:01 -03:00
David Capello
d0fe427805 SkinProperty doesn't have mini font by default 2015-05-06 10:50:21 -03:00
David Capello
eeb6d6e1b5 Fix problem resetting fonts after F5 for widgets with "mini font" (after theme is reloaded)
There are some widgets (e.g. fg/bg color buttons in the ColorBar, and
ContextBar's check-boxes) that use a "mini font". We could setup the mini
font in onInitTheme(), but the whole program is not ready to do something
like that (there are too much child_spacing/borders values that are set
outside onInitTheme).

A better way is to ask to the theme itself (Theme::getWidgetFont())
about what font to use for each specific widget. And the Widget::m_font
field can act as a cache of this requested font. So now the "mini font"
is specified in a SkinProperty's flag.
2015-05-05 19:14:33 -03:00
David Capello
fed03e7d7b Continue playing animation when we scroll 2015-05-05 15:31:25 -03:00
David Capello
91c2872908 Fix bug showing "&&" in About dialog 2015-05-05 13:41:27 -03:00
David Capello
a489efdf03 Use ContextObserver to update the StatusBar
Instead of calling StatusBar::updateUsingEditor(Editor*), now the StatusBar
is a ContextObserver that observe changes in the active doc::Site. The
Editor notifies a ActiveSiteChange event when the active frame/layer
is changed.

Fix #657
2015-05-05 13:24:26 -03:00
David Capello
c3d7a96a87 Replace ContextObserver::onActiveDocumentChange() with onActiveSiteChange() 2015-05-05 12:58:50 -03:00
David Capello
14d369404e Use new filename_formatter() in tests (fix #658) 2015-05-05 12:04:20 -03:00
David Capello
53e25770b1 Status bar should not eat Enter key when it isn't focused (fix #660) 2015-05-05 09:47:05 -03:00
David Capello
a4db7ff0eb Ignore current ink mode for custom brushes 2015-05-04 19:18:12 -03:00
David Capello
88930a6d69 Replace PRINTF with TRACE in TwoPointsController 2015-05-04 19:04:11 -03:00
David Capello
01cffe202e Fix comment in app/tools/controller.h's include guard 2015-05-04 19:03:50 -03:00
David Capello
bdf28c01de Fix problem initializing oldX/Width fields for the docked tab
This fixes a problem creating interpolation between random
oldX/Width values and x/width fields. I've added some special values
in the initialization of a Tab to know if we are using uninitialized
values oldX/Width/x/width values in the animation.
2015-05-04 18:16:29 -03:00
David Capello
ae03dd5461 Don't use last selected document as active document if UI is enabled
Related to bug found in #656. In this way, if the UI is enabled,
the active document is != null only if there is an active view for it.

Anyway, in batch mode we can potentially have a lot of bugs. There are
several UI commands that think that active view != null (and
current_editor != null) when the active document != null.
2015-05-04 16:25:28 -03:00
David Capello
4f33bef43c Command::short_name() is id() now
(Fix compilation in Release mode.)
2015-05-04 16:08:15 -03:00
David Capello
5538c5a749 Update all tabs (main Tabs and from subpanels) when a document is modified 2015-05-04 15:52:00 -03:00
David Capello
53e572eaf5 Rename TabsDelegate::isModifiedTab() to isTabModified() 2015-05-04 15:33:05 -03:00
David Capello
116f0a760e Merge branch 'master' of git@github.com:aseprite/aseprite.git 2015-05-04 14:58:38 -03:00
David Capello
139e0cb8f5 Fix issues autocompleting the file name field in FileSelector
Now the file name field is an editable ComboBox, so we don't
autocomplete/modify the text inside the entry box.

With this commit we modified the editable ComboBox behavior too:
* When the ListBox is shown, the focus remain in the Entry field (now
  the ListBox cannot have the focus when the ComboBox is editable).
* When Up/down keys are received by the Entry, they are given to the
  ListBox to change the selected item. But the focus returns to the
  Entry anyway.
2015-05-04 14:58:24 -03:00
David Capello
ca3fade50d Don't call focusFirstChild() if the Window doesn't want the focus 2015-05-04 12:50:04 -03:00
David Capello
9528cae9db Merge pull request #656 from blackmiaool/fix_new_brush
Fix crash using NewBrush when Home tab is selected
2015-05-04 11:57:26 -03:00
David Capello
6f8603bcb1 Merge pull request #655 from blackmiaool/fix_palette
Show checkbox in Palette > Palette Editor
2015-05-04 11:47:40 -03:00
David Capello
fa8afc02e9 Create new layers above the current one
We've added a "top" parameter to have the previous behavior.
2015-05-04 11:45:08 -03:00
blackmiaool
00b45c3bd7 Fix crash using NewBrush when Home tab is selected 2015-05-04 22:38:15 +08:00
David Capello
883629b563 Fix bug triggering global keyboard shortcuts when a combobox popup is open
When a combobox popup is open, it creates a new non-foreground top window
(which is sibling of the window where the combobox widget is). When the
popup receives a key press, and it doesn't use it, the key is passed to
its parent (a ui::Manager), and then the latter has to process it.

Before this commit, CustomizedGuiManager::onProcessMessage() was
filtering shortcuts for foreground window, but it was working only
when the key was pressed in the foreground window itself (not when a
combination of foreground and background windows were open). Now the
filter is done in Manager::onProcessMessage() (which returns true,
i.e. key was used, for every pressed key when a foreground window
is found in its children hierarchy).
2015-05-04 11:25:42 -03:00
David Capello
ac8387a408 Move some ui::Combobox member functions to the header file 2015-05-04 10:41:05 -03:00
David Capello
c219e4dc07 Minor format change in ui/widget.cpp 2015-05-04 10:40:23 -03:00
blackmiaool
1d98f51197 Show checkbox in Palette > Palette Editor menu item when the Palette Editor is visible 2015-05-04 13:02:58 +08:00
blackmiaool
b2257752b3 Select Home tab when it's not selected in HomeCommand 2015-05-04 10:33:33 +08:00
blackmiaool
ffab635acd add override
add onChecked() function to Timeline command
2015-05-02 20:51:49 +08:00
blackmiaool
e646ee7047 add onChecked() function to Timeline command 2015-05-02 17:28:22 +08:00
David Capello
a49a36d7e1 Change Command::short_name() to id() (and from const char* to std::string) 2015-05-01 19:41:18 -03:00
David Capello
82bcc090c0 Stop animation with right-click 2015-04-30 19:54:30 -03:00
David Capello
b8a319ed6b Stop the animation when a command is executed and the Editor is in PlayState
This is to restore an old behavior were the animation was stopped pressing
other keys (e.g. arrow keys to move to another frame or layer).
2015-04-30 19:44:20 -03:00
David Capello
20120f432a Fix crash trying to move an empty cel with Move tool 2015-04-30 17:26:46 -03:00
David Capello
91bacca270 Fix bug introduced in a2cbf3f285: trim transparent layers correctly 2015-04-30 17:04:11 -03:00
David Capello
b519901cef Add support to specify tags in --filename-format option (related to #607)
Now we can use "{tag}" (or "{innertag}") and "{outertag}" in the filename
format.
2015-04-30 17:02:57 -03:00
David Capello
c81aa88fc7 Add --format option to specify JSON array format (fix #641) 2015-04-30 12:33:32 -03:00
David Capello
35e951ec70 Merge branch 'build-fixes' of https://github.com/agateau/aseprite into agateau-build-fixes 2015-04-30 12:03:29 -03:00
David Capello
88a0e8c806 Merge branch 'brush' 2015-04-30 12:00:49 -03:00
David Capello
f1d522f548 Replace brush slots until the user presses the shortcut
We replace brush slots until the user presses its keyboard shortcut, which
means he is interested in reusing the brush. In this way, if we want to
keep a brush, we can press Ctrl+B, select the brush area, and then Alt+1
to keep the first brush, then the next brush slot will be used/replaced
until Alt+2 is pressed, etc.
2015-04-30 11:59:47 -03:00
David Capello
03faee9ce4 Add option to delete all brushes 2015-04-29 17:26:25 -03:00
David Capello
733d0a8e74 Minor fix in ButtonSet 2015-04-29 17:16:48 -03:00
David Capello
562df34f40 Show brushes in a ButtonSet with 3 columns 2015-04-29 17:16:43 -03:00
David Capello
f5b7fd84dc Connect to BrushPopup::BrushChange just one time 2015-04-29 16:34:21 -03:00
David Capello
2932add184 Fix BrushInkProcessing so we can use brushes between different pixel formats 2015-04-29 16:04:57 -03:00
David Capello
c5e79bb940 Optimize CompressedImage to get only bitmap information
When we create a CompressedImage from a Brush image, we want to know what
pixels are != the mask color, just to generate the PointShape (we don't
care the specific color of the scaneline/each pixel, that information is
used in the "ink processing" step).
2015-04-29 15:43:52 -03:00
David Capello
57156bddb7 Remove unused param 2015-04-29 15:00:17 -03:00
David Capello
edbff42dc8 We can delete brushes right-clicking them and selecting "Delete" 2015-04-29 15:00:05 -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
b08b226aef Move active brush information to ContextBar 2015-04-28 18:21:33 -03:00
David Capello
303bd120dc Keep one instance of BrushPopup in memory 2015-04-28 12:53:02 -03:00
David Capello
058682bcaa Avoid creating consecutive SelectBoxStates with Ctrl+B
If we press several times Ctrl+B, we could create several SelectBoxStates,
and as it backs to the previous state, it's like we will select several
brushes instead of backing to the original state.
2015-04-28 12:46:50 -03:00
David Capello
f09db4d9aa Add new BrushPopup (now the image brush is previewed)
This is the first step to create a bigger BrushPopup to select brushes
from an history of brushes. The general idea is to use Alt+1, Alt+2, etc.
to select different brushes from a stock.

Also the "discard brush" was removed. As the brush can be discarded
changing the brush type.
2015-04-28 12:38:15 -03:00
David Capello
274b903aad We can cancel the selection of the brush using the other mouse button 2015-04-27 15:28:17 -03:00
Aurélien Gâteau
ad1290b1c8 Fix build of document_api_test.cpp
Compiler could not find notifyActiveDocumentChanged.

/home/aurelien/src/aseprite/src/./doc/test_context.h: In instantiation of ‘void doc::TestContextT<Base>::onRemoveDocument(doc::Document*) [with Base = app::Context]’:
/home/aurelien/src/aseprite/src/app/document_api_tests.cpp:66:1:   required from here
/home/aurelien/src/aseprite/src/./doc/test_context.h:44:58: error: ‘notifyActiveDocumentChanged’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
         notifyActiveDocumentChanged(m_activeDoc = nullptr);
2015-04-27 18:08:21 +02:00
David Capello
8f500178fc Creating a brush with right-click clear the selected region with bg color (#154) 2015-04-27 13:03:02 -03:00
Aurélien Gâteau
db8f0e1f0d Fix aseprite binary link error
Was getting this when linking aseprite:

check_update.cpp:113: undefined reference to
net::HttpHeaders::setHeader(std::string const&, std::string const&)
2015-04-27 17:59:42 +02:00
David Capello
51b6def023 Remove the "New Brush" button from the ContextBar 2015-04-27 12:07:23 -03:00
David Capello
955383f91a Add xor-ed bounding box in SelectBoxState when QUICKBOX style is enabled
This is useful when we want to select a brush in a black image (the
DARKOUTSIDE style is not useful in this case).
2015-04-27 12:03:18 -03:00
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
be946ceab1 Minor change in cursor.cpp 2015-04-27 10:08:58 -03:00
David Capello
ceb469339d Draw transformation handles only in active editor (fix #82, fix #632) 2015-04-27 10:08: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
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