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