changeset 1850:60cbd11d6f9e plugin-path-config

Merge from default branch
author Chris Cannam
date Thu, 07 Jun 2018 14:56:59 +0100
parents 5c39e3d2ab5c (diff) 4af1e71eaa3f (current diff)
children 23357d224416
files
diffstat 7 files changed, 47 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/main/MainWindow.cpp	Thu Jun 07 14:56:37 2018 +0100
+++ b/main/MainWindow.cpp	Thu Jun 07 14:56:59 2018 +0100
@@ -3544,7 +3544,6 @@
 
     if (m_preferencesDialog &&
         m_preferencesDialog->isVisible()) {
-        closeSession(); // otherwise we'll have to wait for prefs changes
         m_preferencesDialog->applicationClosing(true);
     }
 
--- a/main/PreferencesDialog.cpp	Thu Jun 07 14:56:37 2018 +0100
+++ b/main/PreferencesDialog.cpp	Thu Jun 07 14:56:59 2018 +0100
@@ -40,6 +40,8 @@
 #include "widgets/IconLoader.h"
 #include "widgets/ColourMapComboBox.h"
 #include "widgets/ColourComboBox.h"
+#include "widgets/PluginPathConfigurator.h"
+#include "widgets/WidgetScale.h"
 #include "base/Preferences.h"
 #include "base/ResourceFinder.h"
 #include "layer/ColourMapper.h"
@@ -276,7 +278,7 @@
     tempDirButton->setIcon(IconLoader().load("fileopen"));
     connect(tempDirButton, SIGNAL(clicked()),
             this, SLOT(tempDirButtonClicked()));
-    tempDirButton->setFixedSize(QSize(24, 24));
+    tempDirButton->setFixedSize(WidgetScale::scaleQSize(QSize(24, 24)));
 
     QCheckBox *showSplash = new QCheckBox;
     m_showSplash = prefs->getShowSplash();
@@ -576,7 +578,17 @@
     
     m_tabOrdering[AudioIOTab] = m_tabs->count();
     m_tabs->addTab(frame, tr("A&udio I/O"));
- 
+
+    // Plugins tab
+
+    m_pluginPathConfigurator = new PluginPathConfigurator(this);
+    m_pluginPathConfigurator->setPaths(PluginPathSetter::getPaths());
+    connect(m_pluginPathConfigurator, SIGNAL(pathsChanged()),
+            this, SLOT(pluginPathsChanged()));
+    
+    m_tabOrdering[PluginTab] = m_tabs->count();
+    m_tabs->addTab(m_pluginPathConfigurator, tr("&Plugins"));
+    
     // General tab
 
     frame = new QFrame;
@@ -904,6 +916,13 @@
 }
 
 void
+PreferencesDialog::pluginPathsChanged()
+{
+    m_applyButton->setEnabled(true);
+    m_changesOnRestart = true;
+}
+
+void
 PreferencesDialog::okClicked()
 {
     applyClicked();
@@ -1005,6 +1024,8 @@
         emit coloursChanged();
         m_coloursChanged = false;
     }
+
+    PluginPathSetter::savePathSettings(m_pluginPathConfigurator->getPaths());
 }    
 
 void
--- a/main/PreferencesDialog.h	Thu Jun 07 14:56:37 2018 +0100
+++ b/main/PreferencesDialog.h	Thu Jun 07 14:56:59 2018 +0100
@@ -13,8 +13,8 @@
     COPYING included with this distribution for more information.
 */
 
-#ifndef _PREFERENCES_DIALOG_H_
-#define _PREFERENCES_DIALOG_H_
+#ifndef SV_PREFERENCES_DIALOG_H
+#define SV_PREFERENCES_DIALOG_H
 
 #include <QDialog>
 #include <QMap>
@@ -27,6 +27,7 @@
 class QLineEdit;
 class QTabWidget;
 class QComboBox;
+class PluginPathConfigurator;
 
 class PreferencesDialog : public QDialog
 {
@@ -41,7 +42,8 @@
         AudioIOTab,
         AppearanceTab,
         AnalysisTab,
-        TemplateTab
+        TemplateTab,
+        PluginTab
     };
     void switchToTab(Tab tab);
 
@@ -79,6 +81,7 @@
     void localeChanged(int);
     void networkPermissionChanged(int state);
     void retinaChanged(int state);
+    void pluginPathsChanged();
 
     void tempDirButtonClicked();
 
@@ -98,6 +101,8 @@
     QComboBox *m_audioPlaybackDeviceCombo;
     QComboBox *m_audioRecordDeviceCombo;
     void rebuildDeviceCombos();
+
+    PluginPathConfigurator *m_pluginPathConfigurator;
     
     QString m_currentTemplate;
     QStringList m_templates;
--- a/main/main.cpp	Thu Jun 07 14:56:37 2018 +0100
+++ b/main/main.cpp	Thu Jun 07 14:56:59 2018 +0100
@@ -24,9 +24,10 @@
 #include "data/fileio/FileSource.h"
 #include "widgets/TipDialog.h"
 #include "widgets/InteractiveFileFinder.h"
-#include "svapp/framework/TransformUserConfigurator.h"
+#include "framework/TransformUserConfigurator.h"
 #include "transform/TransformFactory.h"
-#include "svcore/plugin/PluginScan.h"
+#include "plugin/PluginScan.h"
+#include "plugin/PluginPathSetter.h"
 
 #include <QMetaType>
 #include <QApplication>
@@ -300,6 +301,8 @@
     }
     settings.endGroup();
 
+    PluginPathSetter::initialiseEnvironmentVariables();
+    
     QIcon icon;
     int sizes[] = { 16, 22, 24, 32, 48, 64, 128 };
     for (int i = 0; i < int(sizeof(sizes)/sizeof(sizes[0])); ++i) {
--- a/repoint-lock.json	Thu Jun 07 14:56:37 2018 +0100
+++ b/repoint-lock.json	Thu Jun 07 14:56:59 2018 +0100
@@ -4,16 +4,16 @@
       "pin": "328cb056da44"
     },
     "svcore": {
-      "pin": "7d9b537b6a1e"
+      "pin": "dcff44a76573"
     },
     "svgui": {
-      "pin": "51e6125627fa"
+      "pin": "11888b7e193d"
     },
     "svapp": {
       "pin": "7da68349a0c5"
     },
     "checker": {
-      "pin": "cf18645ff411"
+      "pin": "4154894d638c"
     },
     "piper": {
       "pin": "dde809643316e7bb606fc14d66e55f07059bcf36"
@@ -40,7 +40,7 @@
       "pin": "a69c1527268d"
     },
     "icons/scalable": {
-      "pin": "42521013b9b1"
+      "pin": "1c6516ba7fc1"
     }
   }
 }
--- a/repoint-project.json	Thu Jun 07 14:56:37 2018 +0100
+++ b/repoint-project.json	Thu Jun 07 14:56:59 2018 +0100
@@ -16,11 +16,13 @@
         },
         "svcore": {
             "vcs": "hg",
-            "service": "soundsoftware"
+            "service": "soundsoftware",
+            "branch": "plugin-path-config"
         },
         "svgui": {
             "vcs": "hg",
-            "service": "soundsoftware"
+            "service": "soundsoftware",
+            "branch": "plugin-path-config"
         },
         "svapp": {
             "vcs": "hg",
@@ -29,7 +31,8 @@
         "checker": {
             "vcs": "hg",
 	    "service": "soundsoftware",
-	    "repository": "vamp-plugin-load-checker"
+	    "repository": "vamp-plugin-load-checker",
+            "branch": "plugin-path-config"
         },
         "piper": {
             "vcs": "git",
--- a/sonic-visualiser.qrc	Thu Jun 07 14:56:37 2018 +0100
+++ b/sonic-visualiser.qrc	Thu Jun 07 14:56:59 2018 +0100
@@ -37,6 +37,7 @@
     <file>icons/scalable/playselection.svg</file>
     <file>icons/scalable/playfollow.svg</file>
     <file>icons/scalable/play.svg</file>
+    <file>icons/scalable/plus.svg</file>
     <file>icons/scalable/record.svg</file>
     <file>icons/scalable/redo.svg</file>
     <file>icons/scalable/regions.svg</file>