changeset 1861:8c4df1f3fef7

Merge from branch plugin-path-config
author Chris Cannam
date Mon, 11 Jun 2018 14:42:56 +0100
parents 4af1e71eaa3f (current diff) d167d3a100d5 (diff)
children 5191ed1a6d6b
files repoint-lock.json
diffstat 10 files changed, 90 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/deploy/win64/build-32.bat	Thu Jun 07 14:56:37 2018 +0100
+++ b/deploy/win64/build-32.bat	Mon Jun 11 14:42:56 2018 +0100
@@ -37,10 +37,16 @@
 copy %QTDIR%\bin\Qt5Network.dll .\release
 copy %QTDIR%\bin\Qt5Xml.dll .\release
 copy %QTDIR%\bin\Qt5Svg.dll .\release
+copy %QTDIR%\bin\Qt5Test.dll .\release
 copy %QTDIR%\bin\libgcc_s_dw2-1.dll .\release
 copy %QTDIR%\bin\"libstdc++-6.dll" .\release
 copy %QTDIR%\bin\libwinpthread-1.dll .\release
 copy %QTDIR%\plugins\platforms\qminimal.dll .\release
 copy %QTDIR%\plugins\platforms\qwindows.dll .\release
 
+.\release\test-svcore-base
+.\release\test-svcore-system
+.\release\test-svcore-data-fileio
+.\release\test-svcore-data-model
+
 set PATH=%ORIGINALPATH%
--- a/deploy/win64/build-64.bat	Thu Jun 07 14:56:37 2018 +0100
+++ b/deploy/win64/build-64.bat	Mon Jun 11 14:42:56 2018 +0100
@@ -46,8 +46,14 @@
 copy %QTDIR%\bin\Qt5Network.dll .\release
 copy %QTDIR%\bin\Qt5Xml.dll .\release
 copy %QTDIR%\bin\Qt5Svg.dll .\release
+copy %QTDIR%\bin\Qt5Test.dll .\release
 copy %QTDIR%\plugins\platforms\qminimal.dll .\release
 copy %QTDIR%\plugins\platforms\qwindows.dll .\release
 copy ..\sv-dependency-builds\win64-msvc\lib\libsndfile-1.dll .\release
 
+.\release\test-svcore-base
+.\release\test-svcore-system
+.\release\test-svcore-data-fileio
+.\release\test-svcore-data-model
+
 set PATH=%ORIGINALPATH%
--- a/main/MainWindow.cpp	Thu Jun 07 14:56:37 2018 +0100
+++ b/main/MainWindow.cpp	Mon Jun 11 14:42:56 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	Mon Jun 11 14:42:56 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	Mon Jun 11 14:42:56 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	Mon Jun 11 14:42:56 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	Mon Jun 11 14:42:56 2018 +0100
@@ -1,19 +1,19 @@
 {
   "libraries": {
     "vamp-plugin-sdk": {
-      "pin": "328cb056da44"
+      "pin": "da86fb0bccb3"
     },
     "svcore": {
-      "pin": "7d9b537b6a1e"
+      "pin": "7459f4c4d7c3"
     },
     "svgui": {
-      "pin": "51e6125627fa"
+      "pin": "91670e4e76a6"
     },
     "svapp": {
-      "pin": "7da68349a0c5"
+      "pin": "ca96a514fbbb"
     },
     "checker": {
-      "pin": "cf18645ff411"
+      "pin": "ae74d39e9e4e"
     },
     "piper": {
       "pin": "dde809643316e7bb606fc14d66e55f07059bcf36"
@@ -40,7 +40,7 @@
       "pin": "a69c1527268d"
     },
     "icons/scalable": {
-      "pin": "42521013b9b1"
+      "pin": "1c6516ba7fc1"
     }
   }
 }
--- a/sonic-visualiser.pro	Thu Jun 07 14:56:37 2018 +0100
+++ b/sonic-visualiser.pro	Mon Jun 11 14:42:56 2018 +0100
@@ -10,6 +10,7 @@
 # IDE without causing great confusion if a test fails).
 SUBDIRS += \
         sub_test_svcore_base \
+        sub_test_svcore_system \
         sub_test_svcore_data_fileio \
         sub_test_svcore_data_model
 
@@ -22,6 +23,7 @@
 sub_base.file = base.pro
         
 sub_test_svcore_base.file = test-svcore-base.pro
+sub_test_svcore_system.file = test-svcore-system.pro
 sub_test_svcore_data_fileio.file = test-svcore-data-fileio.pro
 sub_test_svcore_data_model.file = test-svcore-data-model.pro
 
--- a/sonic-visualiser.qrc	Thu Jun 07 14:56:37 2018 +0100
+++ b/sonic-visualiser.qrc	Mon Jun 11 14:42:56 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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-svcore-system.pro	Mon Jun 11 14:42:56 2018 +0100
@@ -0,0 +1,33 @@
+
+TEMPLATE = app
+
+exists(config.pri) {
+    include(config.pri)
+}
+
+!exists(config.pri) {
+    include(noconfig.pri)
+}
+
+include(base.pri)
+
+CONFIG += console
+QT += network xml testlib
+QT -= gui
+
+win32-x-g++:QMAKE_LFLAGS += -Wl,-subsystem,console
+macx*: CONFIG -= app_bundle
+
+TARGET = test-svcore-system
+
+OBJECTS_DIR = o
+MOC_DIR = o
+
+include(svcore/system/test/files.pri)
+
+for (file, TEST_SOURCES) { SOURCES += $$sprintf("svcore/system/test/%1", $$file) }
+for (file, TEST_HEADERS) { HEADERS += $$sprintf("svcore/system/test/%1", $$file) }
+
+!win32* {
+    QMAKE_POST_LINK = ./$${TARGET}
+}