[kde-artists] Actions: grouping vs. extensibility

James Richard Tyrer tyrerj at acm.org
Mon Jul 16 14:30:25 PDT 2007

Jakob Petsovits wrote:
> <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
>     ...
I do see your point, but I think that the way that they are currently
arranged -- by classes according to what type of application they apply
to -- is also valid.  Either way is a valid application of set theory.
So, although (at least) theoretically, your suggestion is more correct
-- with a modifier following the object -- I see little to gain here; 
this isn't nearly as important as names that have the levels of 
specificity in the wrong order which does make it impossible to add more 
> * 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 miss the point here.  I don't think that "run" is a good base node for 
Compile, and "run" is one of the possible "system" actions.

More information about the xdg mailing list