This afternoon, I whipped up a little gramplet to show media thumbnails for a person. This includes images for the person, images for the person’s citations, and the images for the citations for the events.
I make heavy use of images of scans of original source documents in my citations, and I often refer back to them. That normally involves opening the event for a person, clicking on a citation, going to the gallery, clicking on the thumbnail, then right-clicking on “View”. A time-consuming series of steps.
I wanted an easy way to get to the images. With this simple gramplet, I can double-click on the thumbnail to quickly pull up an image.
Is anyone else interested in such a gramplet? Any comments on this gramplet? (At the moment it’s still pretty rough, and I can already see places for improvement.)
My Tree only has a very few images… so this isn’t a feature I will be able exercise too well.
But the other parts of Gramps seems to have settled on “Gallery” as the gramplets showing thumbnails. Since this a “one-man exhibition” of images in a Gallery, how about calling it a “Solo Gallery” gramplet?
A question about workflows… I can see how this could speed up gross access. But what about actually working a set of Images? Maybe there should be a Tagging functionality? So you can select (extended select, checkbox select) and apply Tags to images that have already been processed? Can they be sorted somehow?
And while you can look at all the images, can you find them again? After all, some are under citations, some under events some under event citations. Maybe they could have a columns with Category Icons & tag swatches beside them? So a vertical stack of
would be a Media object under a citation in an event for a person. No… that sucks. Maybe a rollover hint?
Finally, can you drag these Gramplet Media objects to the clipboard or open the object editor? If draggable to the Clipboard, the Clipboard context menus can make them the Active media object or open the editor. And you can reorganize their attachment points via drag’n’drop.
Here’s the context menu the Clipboard has for the same object. Maybe you could duplicate those options. Plus an option to add to Clipboard? Also if your menus use the same phrasing, it should be able to leverage the same translation phrases.
As the gramplet stands now, it could probably already meet my own needs.
Years ago, I started out with the intention of including document scans in citations just for my direct ancestors. But that quickly expanded out to anyone in my database. At the moment, I have about 5GB of media data. I try to extract as much information as I can out of a single record. But I often go back to double-check the data in cases of conflict, or when I want to try to tease out any additional insight. Having the scans in my database makes that so much easier than going back to the image repository. This type of gramplet will make that easier still.
The title is a working name. I would appreciate any suggestions for a better name. Perhaps “Deep Gallery”?
I am thinking about ways to link back to the object that uses the image. And I may add some buttons to filter the images. For example, limiting event citations to the events where the person is the primary participant. I also need to add family event citations, and name citations. (I’m tempted to see if it’s possible to code one generic deep dive through all the nested objects to get all of the media objects. But then I’d have to filter out stuff like Place images.)
Now, I’m using Gramps’ Photo class. That has the right-click option “Make Active Media”. I agree with your suggestion about a “See the media details” option on the right-click menu. I’m not sure I see a need to make the objects drag-capable. (Currently, Gramps already doesn’t support dragging in as many places as I’d like.)
Speaking of teasing out image information and Place images, I had to do some usual “teasing out” of information today. It was surprisingly difficult.
The process also might be of interest to you for extracting a bit more hidden information from your image collection.
One of my ancestral cemeteries is a smaller family plot that is evidently hard to find… the FindAGrave cemetery info lacked an address or map coordinates… and searches hadn’t turned up a cross-reference online that positively located it.
Then a thought struck… digital camera metadata on headstone photos might include GPS coordinates. So those coordinates could be copied to the Cemetery place definition.
The transparency of metadata made it hard to see which images have extra info to review. But there are metadata Gramplets for the Media view. (One that displayed and one that edited metadata.) They were detachable/undockable … so it was possible to arrange the Undocked Gramplets to see the additional information for images your Gramplet found… on a one-by-one basis by using the “Make the media active” context menu. (Although this worked tediously, it was still doable. Note that it was even harder to copy chunks of data out of the metadata and put them in to actionable data field in Gramps.)
While in metadata, some other info popped up that you might want to tease out of your archived images. The owner data metadata is a research lead. That person had timestamped access to (or actually had possession of) the artifact. So that person can be added to the artifact’s provenance.
(It turned out that my collection didn’t have an ancestor headstone photo in that particular cemetery. But the line of investigation wasn’t a dead end. I went back onto FindAGrave and listed all the interments for that cemetery and saw there were other headstone photos. One of those had GPS metadata.)
Hmmm. That’s an interesting idea… a Geography geocaching view that plots pins for (filtered subsets of) media objects having GPS coordinates.
Y’know… Your approach might make a good enhancement to eventually roll into the built-in Gallery Gramplets. There could be a “recursive dive” configuration option into a new universal Gallery Gramplet. Optionally showing thumbnails of media for all secondary objects instead of those of just the primary object.
Then, instead of separate Gramplets hard-coded for each category, it detects the ‘parent’ category of View splitbar and has its refresh be tied to changing of the active record in that Category.
Hmmm, I like the idea of a universal gallery gramplet. I’ll see what I can figure out. I’m not sure I see much usefulness apart from Person objects though.
If we want to generalize this further, perhaps we should have a gramplet that shows for any type of object a tree view of all child objects of any type. Call it a “Deep Object Browser”.
Regarding naming, I’m leaning towards “Deep Gallery”. Unlike the other myriad gallery gramplets, this has the concept of diving deep into the child objects.
Hmmm, looking at the existing Gramps code, it doesn’t look like it lends itself nicely to a universal deep dive type of addon. The methods for each type of object seem to be type-based, not generic. That is, coding for a deep dive would be procedural, and not OO style. I’m not sure how far I want to go down that particular development path.
I do not know how much of Gramps core is Procedural vs OO. Your Gramplet already does most of what the Gallery built-in Gramplet does in the People category gramplet. (Both are different from the functionalities of the Edit Person Gallery tab.) Maybe starting with your code as a base would be an alternative?
The 6 things the Person view Gallery does differently are:
the gallery objects are unlabeled.
the thumbnails are a larger scale
the thumbnail shown is of the Preview rectangle, not the full image
only the top-level image thumbnails are displayed
the “Make active Media” context menu is only available for image-type objects, not for placeholder icons. (This seems like an oversight.)
arrangement is horizontal rather than vertical
Neither gramplet has Configuration options. If the behavior differences could replicated with different option selections, then maybe that would be a good approach.
Regardless of whether your addon becomes a direct replacement, it would be nice if it had a configuration option for double-click action.
During data entry, it would be efficient if double-click opened the Gramps object editor. When using Gramps as a research tool, having double-click Launch the OS viewer/editor would probably be better. Perhaps you could make ANY of the Context menu actions the double-click. (And change the roll-over hint. Perhaps even indicate that Config selection in the Contextual pop-up menu as bold, italic or bulleted.) Naturally, always having the Actions as Context Menu options supports tech support because then the step-by-step instructions specifying Context Menu would always work.
@Nick-Hall would have to say if an Object Oriented module could be a candidate to replace a category spectrum of procedural modules in the core.
It might be instructional to re-purpose the built-in Galleries as add-on sample code.
The new gramplet looks useful; thanks for sharing it.
Another approach to such “deep” connections would be new filter rules such as “Media objects for people matching the <filter>”, “Media objects for events matching the <filter>”, “Media objects for citations matching the <filter>”, etc. Then one could create custom filters such as “Census page images for the active person”, “Death certificate images for (a particular cause of death)”, etc.
It seems it is complicated to filter media from people category. I’d made that try, it works fine but I can’t select media filter, just use it’s name: Adding a Match media filter in Persons filters
I was suggesting custom filters in the media category, not the people category. (And I just noticed that my post did not display the “<filter>” part correctly, so I fixed that.)
I am excited about your Image Gramplet. I have been adding images to the respective Galleries for a long time without much hope of them being useful. Please add the Places Gallery.
Since I don’t trust myself to deal with GitHub, I shall eagerly await your appearance in the Add-Ons.
Thanks for your feedback, everyone! I’m happy to see the interest.
First, I’d like to emphasize that I wrote this gramplet to address a specific (occacional) need in my own Gramps workflow. And what I have now meets that particular need. That is, I want to see the scanned images associated with citations in cases where I need to resolve possibly conflicting records, or when I want to tease some additional information out of a record.
Moving forward, I’d like to know how you see yourself using this gramplet. There are a number of other “gallery” gramplets, and at the moment, I’m not sure I see a need to supersede any of them.
At the moment, my todo list consists of the following:
Rename the gramplet to “Deep Gallery”.
Change the actions associated with clicking on the image thumbnail. The actions should be more or less the same as the actions associated with the thumbnail on the citation editor, “Gallery” tab.
Thanks for your great efforts, Hans.
Perhaps if the assembled images had their title next to them and also perhaps what/where they are to be found (eg citation to ‘source’ at ‘marriage’ of fred jones and betty smith). In that way information gaps (needing more enquiry) could be identified and multiple uses of an image could be found.
At the moment, I think I prefer the title below the image. In my own experience, the titles can get rather long. Currently, I’m sorting the images by the title.
Regarding putting a link to the object includes the image, that is something I had intended to do. Thanks for reminding me of that! Consider that #3 on my todo list. I think that will go into the right-click menu.
Regarding a link to the including object, I’m going to have to think about that. The problem is that a media object could be included in multiple places. The alternative is to open the media editor (already coded in my gramplet, but not yet uploaded to github) and then open the “References” tab.
The update includes additional options on the image thumbnail. Double-click now invokes the media editor. And the right-click menu includes additional actions.
I’ve added the plugin to my Gramps environment too. And it works like a charm, thank you very much for it!!
Besides, I have translated it into Dutch which is working fine too without issues.
The only thing I personally would find useful is for an image to be displayed enlarged when the mouse is hovered over it. But I can imagine that this would be difficult to implement.