# HG changeset patch # User Chris Cannam # Date 1528379819 -3600 # Node ID 60cbd11d6f9e236a198a93d4c94266246228a391 # Parent 5c39e3d2ab5ca16e33f5ca33f2cad3bf72fe6df5# Parent 4af1e71eaa3f17bab11c379ce7dd73c6d379601a Merge from default branch diff -r 4af1e71eaa3f -r 60cbd11d6f9e main/MainWindow.cpp --- 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); } diff -r 4af1e71eaa3f -r 60cbd11d6f9e main/PreferencesDialog.cpp --- 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 diff -r 4af1e71eaa3f -r 60cbd11d6f9e main/PreferencesDialog.h --- 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 #include @@ -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; diff -r 4af1e71eaa3f -r 60cbd11d6f9e main/main.cpp --- 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 #include @@ -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) { diff -r 4af1e71eaa3f -r 60cbd11d6f9e repoint-lock.json --- 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" } } } diff -r 4af1e71eaa3f -r 60cbd11d6f9e repoint-project.json --- 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", diff -r 4af1e71eaa3f -r 60cbd11d6f9e sonic-visualiser.qrc --- 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 @@ icons/scalable/playselection.svg icons/scalable/playfollow.svg icons/scalable/play.svg + icons/scalable/plus.svg icons/scalable/record.svg icons/scalable/redo.svg icons/scalable/regions.svg