Skip to content
  • jcfr's avatar
    ENH: Support per user per revision extensions settings · e6fb116c
    jcfr authored
    There is now a clear distinction between:
     - userSettings -> i.e. ~/.config/NA-MIC/Slicer.ini
     - revisionUserSettings -> i.e. ~/.config/NA-MIC/Slicer-<revision>.ini
    
    The following slicer settings are now revision specific:
     - Extensions/ManagerEnabled
     - Extensions/ServerUrl
     - Extensions/InstallPath
     - Modules/AdditonalPath
     - Modules/IgnoreModules
    
    Additionally, the launcher version has also been updated to be able to
    consider settings associated with a user, application and revision. This is
    captured by the new parameter APPLICATION_REVISION, ORGANIZATION_DOMAIN,
    ORGANIZATION_NAME and USER_ADDITIONAL_SETTINGS_FILEBASENAME passed to the CMake
    function "ctkAppLauncherConfigure".
    
    qSlicerCoreApplication API has also been extended and now includes methods
    like:
      - QSettings* userSettings()  [settings() method is deprecated and kept for backward compatibility]
      - QSettings* revisionUserSettings()
      - QString launcherRevisionUserSettingsFilePath()
      - QString slicerUserSettingsFilePath()
      - QString slicerRevisionUserSettingsFilePath()
    
    In addition to the settings, the extensions install path is also revision
    specific, it means that it's now possible to have multiple version of slicer
    running with different set of extensions.
    
    Fixes #2791, #2143, #2720, #2533
    
    
    Since the version of the launcher is updated, launcher will return EXIT_FAILURE
    also when no application is been set in the launcher settings.
    
    Fixes #2767
    
    git-svn-id: http://svn.slicer.org/Slicer4/trunk@21482 3bd1e089-480b-0410-8dfb-8563597acbee
    e6fb116c