I finally have some time and some motivation, so it's time for a new
project. I'm planning to add filters and grouping to Pan View.
First off, here's my usecase: A few weeks ago, I photographed a
25-hour-long endurance car race. I shot 4,100 frames. When I was
reviewing them, I found that sometimes I wanted to focus on certain
"sections" of the race, and at other times, I wanted to be able to
briefly skim the different sections. The sections might be "This was
morning prep." "This was the start." "That's when the car hit a
barrier." "This was sunset." And so on.
Geeqie can already encode all of the relevant metadata using Keywords,
so that's the obvious design choice there.
As for filters and grouping, SQL is a pretty obvious conceptual analog
for what I have in mind. Suppose that we have a PanView open to
/panview/path/, and that panview_filtered_keywords and
panview_grouped_keywords are arrays of keywords.
Here's PanView now:
SELECT * FROM images WHERE filename LIKE '/panview/path/%';
The filter step is this. Note that "&&" is the SQL operator to test for
SELECT * FROM images WHERE (filename LIKE '/panview/path/%') AND
(keywords && panview_filtered_keywords);
The grouping step is something like this — images that aren't in any
grouped sets are unaffected, and ones that are in grouped sets are
SELECT * FROM images WHERE (filename LIKE '/panview/path%') AND
NOT(keywords && panview_grouped_keywords)
SELECT first(*) FROM images WHERE (filename LIKE '/panview/path%') GROUP
BY GROUPING SETS (panview_grouped_keywords);
See a description of the GROUPING SETS behavior here:
"first" is just an aggregation strategy, but it could (and probably
should) just as well include some special UI treatment to show that the
thing being displayed is a group rather than just a single image.
Eventually, it could include a custom UI widget that allows scrolling
through all of the entries in the group in-place.
There are plenty of details yet to be ironed out, like "what happens if
an image has two keywords that are both in the panview_grouped_keywords
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
Geeqie-devel mailing list