Commit Graph

612 Commits

Author SHA1 Message Date
David Capello
b0877df0cb Show current color indicator in the color wheel 2015-08-21 12:34:06 -03:00
David Capello
dc9ee103f0 Make CelProperties dialog non-modal 2015-08-21 08:35:29 -03:00
David Capello
728432f9e5 Convert "Layer Properties" dialog in a non-modal window 2015-08-21 00:44:28 -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
dd6c028477 Add handle to resize the palette (fix #754) 2015-08-20 12:08:08 -03:00
David Capello
2b4c531e8e Add possibility to scroll with right click 2015-08-19 18:00:51 -03:00
David Capello
73c725827e Add "Duplicate Cels" command (fix #746) 2015-08-19 15:59:30 -03:00
David Capello
e35f85bff7 Add "Edit > New Sprite from Selection" command 2015-08-14 15:23:56 -03:00
David Capello
ab9d2da762 Fix shortcuts for Edit > Rotate menus 2015-08-14 11:00:19 -03:00
David Capello
75a743f141 Separate pivot visibility and location options 2015-08-14 10:09:15 -03:00
David Capello
32bf3314e6 Add a new simple/default ink
This ink behaves as alpha compositing but doesn't use the opacity slider
(opacity is used from current color's alpha channel). Also, in case that
we pick the mask color, it behaves as the eraser tool.
2015-08-13 13:26:52 -03:00
David Capello
f4d82ad2c0 Add "Link Cels" command in Timeline popup
From a comment in issue #746
2015-08-13 09:59:44 -03:00
David Capello
bb8c238423 Move scrollbar size to skin.xml 2015-08-12 16:56:19 -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
6b9c4c53ae Add icons in "New Sprite" dialog
Some changes needed to do this:
* Added support to show icon+text in ButtonSet items
* Added an extra parameter in Graphics::drawUIString() to avoid drawing
  the underscore
* Fixed expansion of ButtonSet items when the grid is resized
* Added support for Alt+mnemonic shortcuts in ButtonSet items
2015-08-12 12:38:07 -03:00
David Capello
6d532e56c5 Set RGBA has the default color mode for new sprites 2015-08-11 13:38:51 -03:00
David Capello
9d84089b0c Move "UI Elements Scaling" option from Experimental tab to General 2015-08-10 18:56:36 -03:00
David Capello
a34931db3d Remove ConfigureTools command
These options were replaced with commands in "View" menu.
2015-08-10 18:52:29 -03:00
David Capello
d796c88f6f Add TiledMode command and "View > Tiled Mode" submenu 2015-08-10 18:44:25 -03:00
David Capello
c159a3c4b5 Add SelectionAsGrid command 2015-08-10 18:27:53 -03:00
David Capello
b0a42ed4f1 Make color sliders style smaller 2015-08-06 11:23:39 -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
bc29cd4bc5 Set alpha compositing as default
And "replace pixel" and "set alpha" were merged into "copy color" ink.
2015-07-27 11:24:00 -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
7f4d4936e1 Re-implement GIF encoder
- Correct usage of disposal methods (and possibility to generate records
  with "restore previous frame" disposal method)
- Create color maps for each frame when necessary
- Remove options to dither RGB images (to simplify encoder)
2015-07-22 16:40:44 -03:00
David Capello
cee355ee61 Fix minor layout issues in the Preferences dialog 2015-07-18 13:29:23 -03:00
David Capello
8fd756c32a Add Edit > Shift commands (fix #681) 2015-07-06 18:48:55 -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
d80b984f00 Adjust default ink to be more pixel-art friendly (just replace RGBA values)
Now that we have alpha channel in color selector and palette entries, it's
nice to have as a default ink a more pixel-art friendly, i.e.
an ink that just replace RGBA values instead of doing alpha compositing.

Issue #286
2015-07-02 13:16:06 -03:00
David Capello
e9308c2d35 Add alpha channel in quantization (related to #286) 2015-07-02 11:18:43 -03:00
David Capello
78918c0df8 Improve ColorQuantization UI to select the # of colors for the new palette 2015-06-30 15:25:23 -03:00
David Capello
a12816c04e Add command to change the palette size manually with a number 2015-06-30 12:21:41 -03:00
David Capello
269ff609b7 Move warning icons from ColorSelector to ColorBar 2015-06-29 15:17:52 -03:00
David Capello
b7122b0ab3 Change label for ColorQuantization 2015-06-29 12:03:20 -03:00
David Capello
e98e2fe3e1 Use the generated widget from sprite_properties.xml in SpritePropertiesCommand 2015-06-22 11:20:10 -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
a0de785843 Change timeline_drop_layer/frame_deco style 2015-06-18 15:39:26 -03:00
David Capello
89e0392daa Add support for palettes with more less (and more) than 256 colors (fix #668)
With this commit we've removed doc::Palette::MaxColors constant.
2015-06-18 12:50:33 -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
9097dc75f5 Merge branch 'master' 2015-06-14 22:26:06 -03:00
David Capello
fb4b2e76c8 Add layer opacity property (fix #225) 2015-06-14 20:23:49 -03:00
Nsheppard01
1fd682f6d1 Create solarized.gpl
The Solarized Palette
2015-06-14 14:50:43 -07:00
David Capello
21ca87862c Add layer blending modes (fix #318)
- Added doc::BlendMode enum and doc::BlendFunc type
- Renamed LayerImage::getBlendMode() -> blendMode()
- BLEND_MODE_COPY is BlendMode::SRC now
- BLEND_MODE_NORMAL is BlendMode::NORMAL now
- Added app::cmd::SetLayerBlendMode
2015-06-13 21:29:16 -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
c6f2c48d66 Move the "new folder dialog" to its own xml to automatically generate its widget 2015-06-03 12:21:14 -03:00
David Capello
726013e0bd Use generated widget in app::FileSelector from file_selector.xml 2015-06-03 12:21:12 -03:00
David Capello
89f96926a4 Ask to overwrite files in Export Sprite Sheet command (fix #689) 2015-06-02 18:41:22 -03:00
David Capello
9723d1b6ec Now the file type combobox in FileSelector acts like a filter (fix #643) 2015-05-28 18:59:12 -03:00
David Capello
ac9717b121 Minor style change to file_selector.xml 2015-05-28 17:06:01 -03:00
David Capello
e8ff3b8cda Minor style change to select_accelerator.xml <grid> element 2015-05-28 17:00:37 -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
badbd42cbc Minor change in Palette menu 2015-05-21 11:15:44 -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
06d1929729 Remove background color as an option in "New File" 2015-05-09 12:46:07 -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
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
575e94e559 Add popup menu to sort palette colors 2015-05-08 13:03:06 -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
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
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
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
2ea7ac6fbc Minor changes in options.xml 2015-04-23 18:33:22 -03:00
David Capello
672d2b7992 Add shortcut to set zoom to 50% (close #633) 2015-04-22 19:05:16 -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
087b52213c Add new matrices to create an outline in RGB transparent layers 2015-04-16 11:08:35 -03:00
David Capello
b534f955ec Merge branch 'anticrash' 2015-04-09 13:51:39 -03:00
David Capello
1199c51187 Don't collapse main Tabs widget when there are no tabs
It's useful to keep the main Tabs always expanded to dock other tabs on it.
2015-04-09 11:01:39 -03:00
David Capello
21a57ff793 Add "data recovery period" option 2015-04-09 07:46:55 -03:00
David Capello
956ae0c565 Minor fix in Options dialog 2015-04-08 21:58:46 -03:00
David Capello
9b692cb14a Add option to disable data recovery 2015-04-08 20:28:30 -03:00
David Capello
a4478e9306 Add UI and logic to recover a backup session
Changes:
* Add DataRecoveryView
* Split SubObjectsIO into an interface and SubObjectsFromSprite
* Add a "setId" parameter to some doc::read_* functions (we need this
  functionality from session recovery)
2015-04-08 20:05:05 -03:00
David Capello
7a3c0a1eed Minor fixes in style for ButtonSet and StatusBar controls (mini Entry/Slider) 2015-04-07 11:29:36 -03:00
David Capello
fbb660da8d Fix selection parts for ButtonSet 2015-04-07 09:27:24 -03:00
David Capello
82c485a054 StatusBar: Improve animation buttons style using a ButtonSet
Also now the play button changes to a stop button when the animation is
begin played.
2015-04-07 02:29:33 -03:00
David Capello
3546f2c0e7 Add part of the Greek alphabet 2015-04-06 20:11:10 -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
e4667149f4 Make HomeView widget more responsive depending on its current size 2015-04-04 18:19:16 -03:00
David Capello
e6c0353e30 Fix Ctrl+Tab in OS X 2015-04-04 14:35:14 -03:00
David Capello
9dd944fc76 Add "docked" style for WorkspaceTabs 2015-04-01 10:27:22 -03:00
David Capello
fc48164f9d Make bitmap font rendering independent on Allegro FONT
* Change font.png/minifont.png to RGBA to simplify bitmap font reader
* Add she::LockedSurface::drawColoredRgbaSurface()
* Add CommonLockedSurface and CommonFont
* Remove she::System::defaultFont()
* Add she::System::loadBitmapFont()
2015-03-24 09:18:23 -03:00
David Capello
fd62a60472 Save ColorBar box size in preferences 2015-03-23 14:39:21 -03:00
David Capello
e2b8d2be31 Draw PaletteView selection like Timeline selection 2015-03-19 19:45:12 -03:00
David Capello
7d104f9ec1 Add timeline_outline_width dimension in skin.xml 2015-03-19 19:23:12 -03:00
David Capello
9302c5d1bb Move logic to import sprite sheet inside ImportSpriteSheetCommand::onExecute 2015-03-19 16:20:33 -03:00
David Capello
c2c83a8d54 Import Sprite Sheet: select current document by default 2015-03-19 15:52:20 -03:00
David Capello
db17bacff3 Remember settings used to import a sprite sheet 2015-03-19 15:44:02 -03:00
David Capello
be1ed24847 Add import_sprite_sheet.xml widget 2015-03-19 15:21:28 -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
f475378d38 Add possibility to duplicate the current cel only (Alt+M) 2015-03-17 18:19:41 -03:00
David Capello
50e9ed6326 Unify "Export Sprite Sheet" command with DocumentExporter 2015-03-17 16:43:51 -03:00
David Capello
602ca6a7b7 Center icons of timeline
Just in case we want to make timeline's cels biggers in the future.
2015-03-12 17:25:04 -03:00
David Capello
d36f10ee02 Add "Set Loop Section" option in frame popup menu 2015-03-12 15:37:09 -03:00
David Capello
a9fae58a98 Fix style for recent files/paths to avoid line breaks 2015-03-11 18:06:54 -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
f26183a82a Remove loop configuration from ConfigureTimelinePopup 2015-03-10 17:13:06 -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
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
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
37781c99ea Show blog posts in NewsListBox 2015-03-02 19:54:24 -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
6862e02805 Add list of recent files and folders in Home tab
* Add LinkLabel::onClick()
* Use Widget instead of ListItem in ListBox API
* Add TextRule::padding() and use it to calculate the preferred size
  for a skin::Style's rules
2015-03-02 11:18:33 -03:00
David Capello
bf27db12e6 Make the "new update" link more noticeable (using a special style) 2015-02-27 20:45:15 -03:00
David Capello
35623cae88 Move "new update" notification from menu bar to HomeView 2015-02-26 12:28:26 -03:00
David Capello
8eb8122bc0 Add widgets to HomeView (icon, new file, open file, and list boxes)
* Add widgets/home_view.xml
* Add possibility to specify style="..." and border="..." in XML widgets
* Add SkinStyleProperty
* Remove Label::get/setTextColor() (replaced with styles)
* Add <image> widget in WidgetLoader
* Paint labels, link labels, and views with styles
2015-02-26 09:53:19 -03:00
David Capello
8c6f55cc41 Add support to reorder tabs (close #118) 2015-02-24 20:10:22 -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
b52bcd8c95 Fix close icon style after clicking tabs 2015-02-20 08:53:52 -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
e850c8dbb0 Add an icon to "Home" tab 2015-02-19 21:44:22 -03:00
David Capello
b2ccf7a017 Add copyright in gui.xml 2015-02-19 20:30:04 -03:00
David Capello
4376647fcd Use generated FrameProperties widget in FramePropertiesCommand 2015-02-19 20:29:48 -03:00
David Capello
f4e01345c6 Add close/modified icon to tabs 2015-02-19 13:13:25 -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
9f8505f490 Add Remove Frame Tag command 2015-02-18 11:44:54 -03:00
David Capello
13611eb23e White text in Start tab 2015-02-17 16:28:53 -03:00
David Capello
9e734b2e8c Add NewFrameTag command 2015-02-17 16:12:10 -03:00
David Capello
de3e46d879 Draw Tabs widget using styles.
* Add background-repeat style rule to specify how to repeat the
  background image
* Remove PART_TAB_* skin parts from skin_parts.h
2015-02-17 16:03:00 -03:00
David Capello
11386543c8 Add <dimensions> to skin.xml 2015-02-17 12:22:46 -03:00
David Capello
ebdc2700c1 Replace app::skin::get_style() with SkinTheme::Styles 2015-02-17 11:43:25 -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
b12a2b5193 Add scope combo for Grid options in Preferences dialog
With this we make it clear what settings we're modifying: the global ones
or the active document ones.
2015-02-14 23:31:11 -03:00
David Capello
8387c7ba3e Fix XML error in pref.xml 2015-02-14 23:20:59 -03:00
David Capello
14cd8576f4 Move "center on zoom" option from General to Editor tab 2015-02-14 22:45:45 -03:00
David Capello
22f35ab249 Independent scroll/zoom in Preview window (part of issue #407) 2015-02-10 12:59:43 -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