How to: Categories Management - Categories Panel

Ideas for improvements and requests for new features in XnView MP

Moderators: XnTriq, helmut, xnview

Post Reply
User avatar
m.Th.
XnThusiast
Posts: 1664
Joined: Wed Aug 16, 2006 6:31 am
Contact:

How to: Categories Management - Categories Panel

Post by m.Th. »

A picture is worth 1000 words:
CatPanel.jpg
CatPanel.jpg (52.25 KiB) Viewed 5105 times
(Please be sure to see the entire picture - it seems that phpBB engine puts a scrollbar on the right)

This is a very quick draft of a panel which would make the Categories assignment much more easier. In the upper part we have a Drop Down Combo Box in which the user will type a text (pattern) and the engine after a small delay will show in the opened (dropped) list all the Categories which contain the entered text anywhere in the body of the Category. For example if someone will type "low", the engine will display "Low-Angle", "Flowers" and "Glow' (and any other category which contains "low" for that matter). The engine is easy to write using the pattern-matching capabilities of the SQL standard (have a look at "Like" and "Containing" operators). Don't be afraid about speed, it will be quite fast. At the moment of writting, we handle with such engines near to 100000 items from which the several tenths (or hundredths) which are displayed, are displayed (near to) real time in a much more complex setup (multi-user LAN, transaction control etc.).

On the bottom we have the classical "Sets" subsystem. In fact it is "Categories of Categories" (or in DAM language: Categories of Keywords). Besides one[*] special Set (the "Recently Used") the others are user-made and tames the common phenomenon which arises when one catalogs a folder of photos. Usually, such folders have interrelated photos, in most cases comming from the same memory card downloaded from camera. Hence, at that moment in time, the catalloger wants just a certain subset of categories with which he wants to work. Clicking on one category will assign that category to the current selection.

On the bottom of the form are several buttons to allow the management of the Sets (Add, Rename, Delete) and the items in the Sets (Add/Remove to/from Set). Beware, a category can be in 0, 1 or more Sets. For example "Portrait" can be in "Studio", "Weddings", "Sports" and in other sets. A button which isn't present in the draft above is "Assign Full Set" which will assign all the categories to the current selection of photos. From implementation POV it is a classical many-to-many relationship which can be modeled with few tables in the SQLite database.

There are plenty of programs which implement both features (for ex. Lightroom, AfterShootPro, IDImager, PhotoSupreme etc. etc. etc.) because these (together with keyboard shortcuts discussed in a previous message) are the bread-and-butter of keywording in photo management.

I'm at your disposition for any futher clarifications and discussions.

----
[*] there are also other special sets which can be maintained by the program (like "Suggested", "Related" etc.) but let's keep the things simple for the time being.
m. Th.

- Dark Themed XnViewMP 1.6 64bit on Win11 x64 -
User avatar
m.Th.
XnThusiast
Posts: 1664
Joined: Wed Aug 16, 2006 6:31 am
Contact:

Re: How to: Categories Management - Categories Panel

Post by m.Th. »

Some variations for the set list:

Bsides the simplest form of the list box, one can use the following enhancements:

1. A Table (grid) in order to save space like in IDImager - NOT like in Lightroom which is fixed to 9 items :(

IDImager (best):

http://ptforum.photoolsweb.com/ubbthrea ... ger-02.jpg
You can see also the Sets defined. Also, you can see that IDImager has a check box in front of each category in order to assign them to the photo. Right click on the category brings up a pop-up menu.
In Tools | Settings.. is defined only how many columns the table will have. The table grows as needed when a new category is added.

Lightroom (no-no):

http://www.bernskiold.com/wp-content/up ... /step2.jpg

2. Checkboxes - with three states:
  • Checked (means all items from the selection have the said category)
  • Unchecked (none of the items from the selection have the said category)
  • Grayed (some of the items from the selection have the said category)
IMHO, is the best way to represent it. IDImager use colors but I don't think is very intuitive.

Btw, XnViewMP uses also checkboxes but for Grayed state the checkbox simply disappear! (I will fill a separate bug report for this)

--------------------
Hence, imho, the best way to represent the categories is in a table with checkboxes in each cell. Since there will be only one table with the categories (keywords) of the current set, the action of updating checkboxes will be pretty fast.

3. Assigned Categories Special Set

I do think that it is necessary to see all the keywords/categories of the current selection all at once. Lightroom and ASP does it in a text box (memo). Not pretty neat, imho. Especially when you consider that you must learn some symbols (eg. asterisk) to figure out that only some items have the said category. Much better is, as I said above, a grid with checkboxes. One can use a custom paint/mouse click engine to manage the checkbox functionality.

One can put the Assigned Categories in the same Categories Panel or separately like in almost all the programs. The present way in which XnView works, by checking in the Categories tree should remain IMHO but it would be very disfunctional if the Category Tree grows.
m. Th.

- Dark Themed XnViewMP 1.6 64bit on Win11 x64 -
User avatar
m.Th.
XnThusiast
Posts: 1664
Joined: Wed Aug 16, 2006 6:31 am
Contact:

Introducing Sets of Categories

Post by m.Th. »

After enough research about the best design & implementation about "The Set Lists" referenced in the posts above, which from now on we'll call them Sets of Categories, following the standard terminology from other DAMs in which the feature is called 'Sets of Keywords', it seems that the best solution would a very simple one, based mainly on Qt capabilities, which also positions us as THE best feature implementation in the market.

A single Set of Category IMHO should be like this:
Categories Sets.png
Relevant links:

Flow Layout Example: http://qt-project.org/doc/qt-4.8/layout ... ayout.html
(Perhaps) Importing Reusable Components: http://qt-project.org/doc/qt-4.8/qmlreu ... nents.html

The docking area would be the Categories Tree, the one which is now embedded in the Info Pane or (perhaps) another dedicated Assignment pane.

The collection of the Category Set objects should be maintained in a list, in order to give the possibility to show and hide them through a menu similar with the ones from View | Tree Pane and View | Info Pane. The new menu let us call it View | Assignments Pane

Also we must distinguish between system and custom (user) Category Sets.

System Category Sets are the onez maintained by the system:
- Assigned Categories: which show the assigned categories for the current selection
- History: which show the last 'x' (where x = 10..20) assigned categories
- Suggested: which using an algorithm (available upon request) will show the most possible categories for the next assignment

Custom Category Sets are the ones which user creates them by drag & drop or via menu (search, choose etc.).

-----
Of course, I'm available to discuss any design & implementation detail before going to the next step: CRUD menus for Category Sets and Category Label.
(For example a hint: Auto height should be done (IMHO) by aligning the flow panel at top and computing the height)
m. Th.

- Dark Themed XnViewMP 1.6 64bit on Win11 x64 -
User avatar
schultzter
Posts: 27
Joined: Tue Aug 26, 2014 4:38 pm
Location: Montreal, Qc
Contact:

Re: How to: Categories Management - Categories Panel

Post by schultzter »

Good morning...

Not sure if it's right to continue this thread, if not let me know and I'll start a new one.

I'm working through my catalog of photos, hoping this time to finally get it right. One thing I have an issue with in XnView MP is the Category Sets - Assigned interface. I would prefer if it showed me the categories assigned in a tree rather than an alphabetical series of labels/buttons. Since some of my photos already have categories from other photo-managers it's tough to know if the category that is there is the correct one (in the correct hierarchy) or an old one without a hierarchy.

Also, since there are issues with XnView MP applying parent categories consistently it would also help double-check that all categories are properly assigned.

Thanks,
Version 0.72 x64 (Dec 19 2014) on Arch Linux

Headed for the second star to the right and straight on 'til morning...
User avatar
m.Th.
XnThusiast
Posts: 1664
Joined: Wed Aug 16, 2006 6:31 am
Contact:

Re: How to: Categories Management - Categories Panel

Post by m.Th. »

I can answer you here but it is better to start a new thread I think because it is a little bit off-topic (albeit related) from this thread.
m. Th.

- Dark Themed XnViewMP 1.6 64bit on Win11 x64 -
User avatar
schultzter
Posts: 27
Joined: Tue Aug 26, 2014 4:38 pm
Location: Montreal, Qc
Contact:

Re: How to: Categories Management - Categories Panel

Post by schultzter »

m.Th. wrote:I can answer you here but it is better to start a new thread I think because it is a little bit off-topic (albeit related) from this thread.
Done, see here. Thanks,
Version 0.72 x64 (Dec 19 2014) on Arch Linux

Headed for the second star to the right and straight on 'til morning...
Post Reply