Review Request 110429: Patch that implements resource categorizing via tags.
Commit Hook
null at kde.org
Sat May 18 09:39:03 BST 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/110429/#review32723
-----------------------------------------------------------
This review has been submitted with commit a86b7b848a4a93ffc7ab427aa70827e410d40e64 by Boudewijn Rempt to branch master.
- Commit Hook
On May 18, 2013, 8:33 a.m., Sascha Suelzer wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/110429/
> -----------------------------------------------------------
>
> (Updated May 18, 2013, 8:33 a.m.)
>
>
> Review request for Calligra.
>
>
> Description
> -------
>
> Hi. :)
>
> I've attached a patch that improves the way the user can organize
> resources into named sets that can be added, deleted and chosen from a
> drop down menu that I've added to KoResourceItemChooser. This made the
> changes available to the paintoppreset choosers, the gradient choosers
> and the pattern choosers.
>
> Usage right now is:
>
> Mostly mouse based version:
> Right clicking any resource can assign it to or remove it from any tag.
> There is an option to create a new tag for the resource as well.
> It's fairly intuitive.
> -----------------------------------------------------------------------
>
> Mostly keyboard based version:
> Resource dockers and popups start with an unfiltered view, in this view
> the tag search bar at the bottom is disabled.
>
> To add a tag category, press the plus button and enter a name for the tag.
>
> This creates an empty view and enables the search text box at the bottom.
>
> Terms in double quotes "like this" will be matched to the resource name
> exactly.
>
> Entering terms without quotes will partial matching, good for filtering
> many resources. filtering eraser would remove all resources with eraser in
> their name.
>
> Putting an exclamation mark in front of a term will exclude the term from
> the set.
>
> Pressing enter saves the set and will clear the search box, so we don't end
> up with something like erase,sketch,fur,!paint,smudge_1,smudge_2,... etc
>
> Once a set is defined, it can be used as a search term as well.
> For example:
> We've created a set that contains all erasers and is called 'erasers'.
> If we switch to a different set and type [erasers] in the search box then
> all the items of that set will be added to the current set, exclusions work
> the same way.
>
> ============================================================================
> Remarks about the patch:
>
> Currently only adding and deleting categories is supported, renaming them
> is in the code but lacks an UI feature, which I was unable to implement.
> (I wanted the unfiltered view to be immutable and tried dis and enabling
> the editable state of the drop down box based on which index was active,
> but that introduced a segfault.)
> All in all the UI parts I've written aren't exactly amazing, maybe
> someone more experienced can take care of that? I can do it but it'd be
> slow since I have very little experience with that.
>
> I have removed the `show all' checkbox in the paintop preset docker and
> all references to that functionality since it made filtering a bit more
> complicated as well as just not making too much sense with the
> improvements to the tagging system.
>
> I have also removed the proxy adapter in KisPresetChooser since it
> didn't do anything useful after these changes, yet required attention
> since it overloaded some now improved functions.
>
> Current shortcomings of the system, most of them are UI related:
>
> - Since I used the already existing KoResourceTagging class to handle all
> the tagging bits, and ultimately save tags to disk, in alphabetical
> order, restarting Krita, and thus repopulating the combo boxes also
> fills them in alphabetical order and not in the order they might have
> been defined by the user.
>
> - Adding a new tag in a pop-up chooser closes the popup since I used an
> input dialog after failing to implement it with combobox editing.
>
> - Combo boxes aren't updated for all item choosers of the same kind.
> For example adding a few categories in the preset docker does not update
> the combo box in the preset chooser popup that can be found in the toolbar.
>
> I also had a crash at one point in time where some brush presets got
> changed around in master and clicking some resources in the brush preset
> box crashed the program, but I was not able to reproduce that after a
> clean rebuild of my local workspace and changing presets around
> externally, so it might not be an issue, but I'm including it for
> completeness sake.
>
>
> Diffs
> -----
>
> krita/plugins/extensions/dockers/dockerplugintemplate/presetdocker_dock.h 43fe4e3
> krita/plugins/extensions/dockers/dockerplugintemplate/presetdocker_dock.cpp 08466cf
> krita/plugins/extensions/dockers/presetdocker/presetdocker_dock.h 2a92777
> krita/plugins/extensions/dockers/presetdocker/presetdocker_dock.cpp 097ebd3
> krita/ui/forms/wdgpaintoppresets.ui c2560a5
> krita/ui/kis_config.h aaa1b3d
> krita/ui/kis_config.cc ae51c5c
> krita/ui/kis_paintop_box.cc 17cf40b
> krita/ui/kis_palette_manager.cpp 326590d
> krita/ui/widgets/kis_paintop_presets_chooser_popup.h 69880ee
> krita/ui/widgets/kis_paintop_presets_chooser_popup.cpp 9f5a7f8
> krita/ui/widgets/kis_preset_chooser.h 0433173
> krita/ui/widgets/kis_preset_chooser.cpp 01f1b7b
> krita/ui/widgets/kis_preset_selector_strip.cpp 068c745
> libs/widgets/CMakeLists.txt 4e6e362
> libs/widgets/KoResourceFiltering.h PRE-CREATION
> libs/widgets/KoResourceFiltering.cpp PRE-CREATION
> libs/widgets/KoResourceItemChooser.h 3bd790a
> libs/widgets/KoResourceItemChooser.cpp 61273fe
> libs/widgets/KoResourceItemView.h 63906cd
> libs/widgets/KoResourceItemView.cpp dfa2ba9
> libs/widgets/KoResourceModel.h d63d32a
> libs/widgets/KoResourceModel.cpp c25be97
> libs/widgets/KoResourceServer.h b363684
> libs/widgets/KoResourceServerAdapter.h bb5c414
>
> Diff: http://git.reviewboard.kde.org/r/110429/diff/
>
>
> Testing
> -------
>
> I have only tested for Krita.
> Apart from any bugs the new functionality might have it seems to not introduce any regression for any other components.
>
>
> Thanks,
>
> Sascha Suelzer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20130518/f7405f73/attachment.htm>
More information about the calligra-devel
mailing list