Relative paths to images


Today, when I add an image to the image library, OpenLP stores the absolute path of that image. This is problematic in a multi-user scenario. In my church, several users, each using their private machines, cooperate on creating and presenting services. To facilitate cooperation, we have put the data folder (the one referred to as Data Location under advances settings) under Google Drive, so that it syncs to all the machines involved. This works great for songs and custom slides, since they are located inside the data folder. With images, however, this approach does not work. An image added to OpenLP on my machine will not be available on any of the other machines, because of the absolute paths. We usually put the images inside the data-folder, so the images themselves get synced, but the absolute path in OpenLP has to be updated on the other machines for the image to show up in OpenLP.

How do you solve multi-user cooperation with images in OpenLP?

Feature request: When an image is added to OpenLP, OpenLP should make a copy of the image into the data folder, and remember only the relative path of the image in relation to the data folder.


  • @ofossan a quick question in terms of implementation of your feature request: what should happen when the source image is updated?
  • @raoul My suggestion is that if the original image is changed, this should have no effect on OpenLP, since OpenLP should only be concerned with the copy of the image, located in the data folder. 

    In order to update the image, as seen inside OpenLP, the user could do one of two things:

    1. Locate the image copy inside the data folder, and change that image, or
    2. Right-click the image inside OpenLP, choose "Load a new image", and select the updated image from somewhere on the disk. OpenLP will then overwrite the copy in the data folder with this new image

    Option 1 is maybe not intuitive for non-technical users, but I think option 2 is. 

    Treating images this way will be more consistent with the way songs and custom slides are treated. Everything in the library should be stored in the data folder, in order to easily transfer the whole library to a different machine. 

    The way things are now, if a user needs to switch to a new machine, he/she will have to update the physical path of all the images in the library. 
  • Thanks @ofossan option 2 was what I was thinking, I just wanted to get a user's perspective :-)
  • I have a similar scenario to Ofossan. We have our church office, projection laptop and my own laptop connected via Dropbox, i.e. the OpenLP data directory is under dropbox, but the absolute path for each user is different, so when an image is added on one machine, the image paths in the database are broken on the others. Currently, the only way to get around this is to move the Dropbox root folder out of c:\users\<username> into c:\.  It would be far more sensible to store relative paths (to the configured OpenLP data path) in the database, then the data is truly movable, and shareable.
Sign In or Register to comment.