zim logo

 

Zim - A Desktop Wiki

Album Plugin

Priority: Low Difficulty: Medium Status: prototype

The idea is to have a plugin that turns zim into an image viewer. Insert an image widget in the main area of the application while reducing the text to a small buffer at the bottom of the screen. Now have a Store type that creates pages for image files in a directory, each directory will be considered an album. The text for each image is the subscript of the photo and is stored separately. The big advantage is that you now can link photos. Or e.g. by putting the names of the people in the photo in the text you can search for all photos with a certain person.

One design decision is whether to embed the album as a namespace in an existing notebook or to implement it as a separate "album" instance. In the second case interwiki linking (and the IPC framework) make it still possible to link to notes in another type of notebook.

If page has no image show image does not exist icon. (E.g. linking to a person would point to a top level page with an image of that person, or a top level gallery etc.) If a page is a folder show thumbnails unless there is an image. If a page has another type in it's header (e.g. tags) respect the type and just revert to parent class behavior (Files).

Implementation: See also SpecialPages

  • Store type Zim::Store::Album will inherit for either Files or Cached
  • The classes Zim::GUI::PageView::Image and Zim::GUI::PageView::Thumbnails implement the views
  • The Store sets a property for the Page object to tell the GUI which view to use
    • Views can use custom API on Page object
    • Parse Tree API should return valid tree including image and text. This is needed for export to work normally.
  • The config file for the "album" profile sets the default Store type to tie it all together

------

  • Repository::Album
    • prio 1
      • allow ImageView to toggle hide captions
      • save position HPane
      • thumbnail view on directory indexes
        • use _Thumbs for thumbnailing
        • make the home page also an index when toplevel
        • make it work correctly with nested folders
          • folder icon in thumbview
          • thumbview when has_children
      • check resolve links etc works as expected
      • make sure next / prev works correctly
      • copy / move / delete routines
      • multipartfile
        • "per directory" setting
        • setting for the name (default to Notes.txt)
          • header should tell that it is a multipart file
          • header should also include directory setting
        • do some caching etc ?
    • prio 2
      • option for bgcolor for transparent images
      • zoom in/out/1:1/fit (<ctrl>Up/Down/1/0)
      • rotate left/right (<ctrl>Left/Right)
        • all ops save image directly if jpg or png, else ask
      • tie scroll wheel to prev / next
      • what about thumbnails in backlink lists etc ?
        • assign type to page - use meta header