Actions: grouping vs. extensibility
Jakob Petsovits
jpetso at gmx.at
Mon Jul 16 03:23:59 PDT 2007
<jimmac> the major part of that all making sense is the generic type fallback
Hi list,
yesterday I started to tackle KDE's actions icons for icon naming spec
compliance, and I stumbled across a major bug in the spec, so to say, or at
least something that will make it impossible for us to comply while still
keeping the amount of shared icons in kdelibs that we intend to have.
The issue is the grouping of action icons by objects that the action operates
on, it conflicts with the concept of levels of specificity and in consequence
with sensible fallbacks. Sounds a bit theoretical, let's have an example
(the most visible one for that matter):
The spec has a series of document-* icons, like document-new, document-open,
document-save, and others. The problem with this approach is that there is no
generic fallback if I want to create or open something other than a document,
say, a project which consists of multiple documents. The specification in its
current form just creates a new "namespace" for the most common items
address-book, application, contact, document and window (for the "new"
action), but if we want to put something else into kdelibs (bookmark-new,
project-new, tab-new) we'll break the spec. Which is bad.
We have similar issues with the close, save and open actions.
The major logic error in the current approach is that icon names should be
sorted by their "base object". This approach works very well in all other
categories, but actions doesn't contain a set of item icons, it contains a
set of action icons, and thus the icons should be grouped by their actual
action, and only contain the specific object as an additional level of
specificity. The objects (document, window, etc.) should at maximum occur in
icon names that we know for sure will not apply to any other possible object.
Therefore, I demand that the spec is changed as follows:
* Add a "new" icon
"The icon for the create action."
Consequences for existing icons in the spec:
address-book-new -> new-address-book
appointment-new -> new-appointment
contact-new -> new-contact
document-new -> new-document
folder-new -> new-folder
window-new -> new-window
Opens up opportunities for:
new-mail
new-tab
new-bookmark
new-podcast (for audio players)
new-class (for integrated development environments)
new-document-drawing (and new-document-*)
new-menu-entry
...
* Add a "close" icon
"The icon for the close action."
Consequences for existing icons in the spec:
dialog-close and window-close -> remove,
those two can really be the same icon
Opens up opportunities for:
close-document
close-tab
close-project
* Remove the "document-" prefix
from the open, open-recent, save and save-as actions
Opens up opportunities for:
*-project instead of document-*-project which is ugly
using the save action also for "Apply" actions in settings dialogs
* Add an "edit" icon
"The icon for the edit action."
Opens up opportunities for:
edit-appointment
edit-contact
edit-todo
edit-bookmark
edit-format-cell
edit-preferences
edit-statusmessage-away
edit-track-pianoroll
...
* Rename "system-run" to "run"
Opens up opportunities for:
run-build (compile the current selection, used in IDEs)
run-build-file (compile a single file, used in IDEs as well)
run-validation (check an XML file for compliance)
...
I think these few changes should solve this issue of extensibility and
fallbacks. There might be a few other icons that we'll propose, but this
specific problem is pretty much a thing of the past if these changes go in.
Please don't dismiss this request lightly. We are going to have a lot more
icons than the spec demands, and we are going to put a lot of them into
kdelibs in order to share them among applications. I don't want to introduce
non-compliant icons, but if there's no compliant way to do it then we'll
prioritize KDE's needs over specification compliance.
Could you help us to achieve both?
Thanks,
Jakob
More information about the xdg
mailing list