Review Request 110429: Patch that implements resource categorizing via tags.
Sascha Suelzer
s_suelzer at lavabit.com
Thu May 16 00:04:38 BST 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/110429/
-----------------------------------------------------------
(Updated May 15, 2013, 11:04 p.m.)
Review request for Calligra.
Changes
-------
Added some instructions about how to use the interface since it is not very intuitive at this point.
Updated the issues.
Description (updated)
-------
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:
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.
Entering partial or full names of presets will show these presets in the
box, the search is case sensitive.
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.
- No way to assign resources to tags with the mouse. Textual filtering
works but isn't exactly friendly for pin point single changes.
A right click -> add resource to tag x would be friendlier.
- Some brush naming schemes can make things too complicated.
e.g. Brush1, Brush10, Brush11, Brush12 and only Brush1 should be tagged.
- 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/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, no problems I could detect.
Thanks,
Sascha Suelzer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20130515/2d5e4995/attachment.htm>
More information about the calligra-devel
mailing list