Review Request 119812: GSoC-14 project : Dirty Presets, Locked Settings and Cumulative Undo/Redo

Mohit Goyal mohit.bits2011 at gmail.com
Sun Aug 17 12:48:51 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119812/
-----------------------------------------------------------

Review request for Krita Extensions, Dmitry Kazakov and Boudewijn Rempt.


Repository: calligra


Description
-------

Dirty Presets, Locked Settings and Cumulative Undo/Redo -- Krita
(Please note -- apply the patch to calligra as there are some changes to Kundo2 as well)

Here is a complete patch for my GSoC project. 
To use these features, try the following :

Dirty Presets : Keeps temporary tweaks made to the preset till the session ends

1. Go to the Brush Editor box. Bottom left -- select "Temporarily save tweaks made to presets"
2. Any time you make a change to any setting in the preset -- the textbox will turn pink and a "+" symbol will appear on the icon. The Reload button is used to reset the tweaks for that particular preset

Locked Settings : Keeps settings constant across presets

1. In the brush editor box, for any paint option like "Size" on the left, there will be a "link" icon. Right click on that option to Lock the option. Now that particular setting will remain constant across all presets. If you cange it in one preset - the changes will reflect across all presets.
2. To unlock any option : right click on a locked option and click on Drop Locked Settings. You can either use these settings in the preset or load the last settings available in the preset.

Cumulative Undo/Redo
1. To use this feature, you will have to first have to go to Settings->Dockers->Undo History to activate the docker.
2. Next right click on <empty> or on any stroke in the undo docker and select "Use Cumulative Undo/Redo"
3. This feature merges commands together so the the user doesn't have to undo a particular group one by one and has a much larger undo history than the initial 30 strokes. The feature works on three configurable parameters :
                          Time before merging strokes together : While strokes are made, the code keeps checking for a particular timelapse of T seconds before it merges the groups together
                          Time to group the strokes : According to this parameter -- groups are made. Every stroke is put into the same group till two consecutive strokes have a time gap of more than T seconds. Then a new group is started.
                          Individual strokes to leave at the end : A user may want to keep the ability of Undoing/Redoing his last N strokes. Once N is crossed -- the earlier strokes are merged into the group's first stroke.
                          
For more clarification -- please check my blog www.kritawithmohit.wordpress.com. I will put a post for Cumulative Undo/Redo shortly explaining the feature.


Diffs
-----

  libs/kundo2/kundo2view.cpp 24a0046 
  libs/widgets/KoResourceServer.h f1d3d10 
  libs/widgets/KoResourceServerAdapter.h 293fab6 
  libs/widgets/KoResourceServerObserver.h 8372105 
  krita/ui/CMakeLists.txt d739f0d 
  krita/ui/forms/wdgpaintopsettings.ui 40b1305 
  krita/ui/kis_categories_mapper.h 7e975dd 
  krita/ui/kis_categorized_item_delegate.h 851ccda 
  krita/ui/kis_categorized_item_delegate.cpp 8ae264b 
  krita/ui/kis_categorized_list_model.h fd3dcd2 
  krita/ui/kis_config.h 236f3c4 
  krita/ui/kis_config.cc c4cdb2f 
  krita/ui/kis_favorite_resource_manager.h a1010f4 
  krita/ui/kis_favorite_resource_manager.cpp 37c16f2 
  krita/ui/kis_paintop_box.h 4a636f8 
  krita/ui/kis_paintop_box.cc 6dbef61 
  krita/ui/kis_paintop_option.h cfb0841 
  krita/ui/kis_paintop_option.cpp ac3304c 
  krita/ui/kis_paintop_options_model.h 259cc71 
  krita/ui/kis_paintop_options_model.cpp 02e92b6 
  krita/ui/kis_paintop_options_widget.h 59e7401 
  krita/ui/kis_paintop_options_widget.cpp 9c462df 
  krita/ui/kis_resource_server_provider.h b5fef28 
  krita/ui/kis_resource_server_provider.cpp ab5d6a1 
  krita/ui/kis_view2.cpp a5e7c67 
  krita/ui/recorder/kis_recorded_paint_action_editor.cc f2f93ca 
  krita/ui/tests/kis_resource_server_provider_test.cpp c45cf9e 
  krita/ui/tool/strokes/freehand_stroke.cpp 1e22302 
  krita/ui/tool/strokes/kis_filter_stroke_strategy.cpp 41f820f 
  krita/ui/tool/strokes/kis_painter_based_stroke_strategy.h a4cc667 
  krita/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp ff09dab 
  krita/ui/widgets/kis_categorized_list_view.h 39476c4 
  krita/ui/widgets/kis_categorized_list_view.cpp 324fbfe 
  krita/ui/widgets/kis_paintop_list_widget.cpp f6d4116 
  krita/ui/widgets/kis_paintop_presets_chooser_popup.h 8c6d33c 
  krita/ui/widgets/kis_paintop_presets_chooser_popup.cpp 1380142 
  krita/ui/widgets/kis_paintop_presets_popup.h 8818d39 
  krita/ui/widgets/kis_paintop_presets_popup.cpp f5c18d3 
  krita/ui/widgets/kis_preset_chooser.cpp 9dae945 
  libs/kundo2/CMakeLists.txt dc138ec 
  libs/kundo2/kundo2group.cpp c6fea93 
  libs/kundo2/kundo2magicstring.h 6ec9b50 
  libs/kundo2/kundo2model.h f257faf 
  libs/kundo2/kundo2model.cpp d5f0450 
  libs/kundo2/kundo2stack.h 0bab840 
  libs/kundo2/kundo2stack.cpp 0ca715b 
  krita/plugins/extensions/resourcemanager/dlg_create_bundle.cpp 441b3e2 
  krita/plugins/extensions/resourcemanager/resourcebundle.cpp eded62e 
  krita/plugins/extensions/resourcemanager/resourcemanager.cpp 9d9065e 
  krita/plugins/extensions/resourcemanager/tests/ResourceBundleTest.h a739d54 
  krita/plugins/extensions/resourcemanager/tests/ResourceBundleTest.cpp 3337432 
  krita/sketch/models/PresetImageProvider.cpp d31cdad 
  krita/sketch/models/PresetModel.cpp 9c90aab 
  krita/plugins/extensions/dockers/historydocker/KisUndoModel.h 3e1787e 
  krita/plugins/extensions/dockers/historydocker/KisUndoModel.cpp 82575d0 
  krita/plugins/extensions/dockers/historydocker/KisUndoView.h 95a2357 
  krita/plugins/extensions/dockers/historydocker/KisUndoView.cpp 636052a 
  krita/plugins/extensions/dockers/historydocker/kis_history_docker_stack.h PRE-CREATION 
  krita/plugins/extensions/dockers/historydocker/kis_history_docker_stack.cpp PRE-CREATION 
  krita/plugins/extensions/dockers/presetdocker/presetdocker_dock.cpp 684f7b6 
  krita/pics/linked2.png PRE-CREATION 
  krita/pics/reload_preset.png PRE-CREATION 
  krita/plugins/extensions/dockers/historydocker/HistoryDock.cpp 228387e 
  krita/image/kisundo2/kisundo2qstack.h PRE-CREATION 
  krita/image/kisundo2/kisundo2stack.h PRE-CREATION 
  krita/image/kisundo2/kisundo2stack.cpp PRE-CREATION 
  krita/image/kisundo2/kisundo2stack_p.h PRE-CREATION 
  krita/image/kisundo2/kisundo2view.h PRE-CREATION 
  krita/image/kisundo2/kisundo2view.cpp PRE-CREATION 
  krita/image/recorder/kis_recorded_paint_action.cpp f9e5001 
  krita/libbrush/kis_brush_server.cpp 27ab727 
  krita/pics/CMakeLists.txt 01ad5fd 
  krita/image/kis_painter.cc 2d48181 
  krita/image/kis_post_execution_undo_adapter.cpp 363e000 
  krita/image/kis_properties_configuration.h 80680e1 
  krita/image/kis_properties_configuration.cc 17b94c8 
  krita/image/kis_transaction.h 9b10961 
  krita/image/kis_transaction_data.h d6acbee 
  krita/image/kis_transaction_data.cpp 0c3db1b 
  krita/image/kis_types.h 8af57f9 
  krita/image/kisundo2/kisundo2_export.h PRE-CREATION 
  krita/image/kisundo2/kisundo2command.h PRE-CREATION 
  krita/image/kisundo2/kisundo2group.h PRE-CREATION 
  krita/image/kisundo2/kisundo2group.cpp PRE-CREATION 
  krita/image/kisundo2/kisundo2model.h PRE-CREATION 
  krita/image/kisundo2/kisundo2model.cpp PRE-CREATION 
  krita/image/brushengine/kis_paint_information.cc 54ff402 
  krita/image/brushengine/kis_paintop.h d78d48b 
  krita/image/brushengine/kis_paintop.cc 304317a 
  krita/image/brushengine/kis_paintop_factory.cpp 085282b 
  krita/image/brushengine/kis_paintop_preset.h ccacd73 
  krita/image/brushengine/kis_paintop_preset.cpp 767de3e 
  krita/image/brushengine/kis_paintop_registry.cc 9915a8e 
  krita/image/brushengine/kis_paintop_settings.h 154bc29 
  krita/image/brushengine/kis_paintop_settings.cpp 5678d3f 
  krita/image/brushengine/kis_paintop_settings_widget.h a592824 
  krita/image/commands/kis_image_command.h 8933d09 
  krita/image/commands/kis_image_command.cpp 7cbe584 
  krita/image/commands_new/kis_saved_commands.h 01210c1 
  krita/image/commands_new/kis_saved_commands.cpp a18611d 
  krita/image/kis_config_widget.h 3cefc3c 
  krita/image/kis_indirect_painting_support.h be913df 
  krita/image/kis_indirect_painting_support.cpp b0dfdce 
  krita/image/kis_locked_settings.h PRE-CREATION 
  krita/image/kis_painter.h fa3137c 
  krita/CMakeLists.txt 3668a56 
  krita/gemini/MainWindow.cpp 49c68a4 
  krita/image/CMakeLists.txt ab21527 
  krita/image/brushengine/kis_locked_properties.h PRE-CREATION 
  krita/image/brushengine/kis_locked_properties.cc PRE-CREATION 
  krita/image/brushengine/kis_locked_properties_proxy.h PRE-CREATION 
  krita/image/brushengine/kis_locked_properties_proxy.cpp PRE-CREATION 
  krita/image/brushengine/kis_locked_properties_server.h PRE-CREATION 
  krita/image/brushengine/kis_locked_properties_server.cpp PRE-CREATION 
  krita/image/brushengine/kis_paint_information.h 678ef5e 

Diff: https://git.reviewboard.kde.org/r/119812/diff/


Testing
-------


Thanks,

Mohit Goyal

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kimageshop/attachments/20140817/81cb6a8b/attachment.html>


More information about the kimageshop mailing list