diff main/PreferencesDialog.cpp @ 686:7f7fba33b7de

Add network permission to prefs; make OSC support one of the things that depends on it
author Chris Cannam
date Thu, 12 Dec 2013 15:20:42 +0000
parents 17fe7e0c23a1
children c7945dad2f49
line wrap: on
line diff
--- a/main/PreferencesDialog.cpp	Wed Dec 11 22:00:09 2013 +0000
+++ b/main/PreferencesDialog.cpp	Thu Dec 12 15:20:42 2013 +0000
@@ -42,6 +42,8 @@
 #include "audioio/AudioTargetFactory.h"
 #include "base/ResourceFinder.h"
 
+#include "version.h"
+
 PreferencesDialog::PreferencesDialog(QWidget *parent) :
     QDialog(parent),
     m_audioDevice(0),
@@ -206,8 +208,13 @@
 #endif
 
     settings.beginGroup("Preferences");
+
     QString userLocale = settings.value("locale", "").toString();
     m_currentLocale = userLocale;
+    
+    QString permishTag = QString("network-permission-%1").arg(SV_VERSION);
+    m_networkPermission = settings.value(permishTag, false).toBool();
+
     settings.endGroup();
 
     QComboBox *locale = new QComboBox;
@@ -240,6 +247,11 @@
     connect(locale, SIGNAL(currentIndexChanged(int)),
             this, SLOT(localeChanged(int)));
 
+    QCheckBox *networkPermish = new QCheckBox;
+    networkPermish->setCheckState(m_networkPermission ? Qt::Checked : Qt::Unchecked);
+    connect(networkPermish, SIGNAL(stateChanged(int)),
+            this, SLOT(networkPermissionChanged(int)));
+
     QSpinBox *fontSize = new QSpinBox;
     int fs = prefs->getPropertyRangeAndValue("View Font Size", &min, &max,
                                              &deflt);
@@ -278,6 +290,10 @@
                        row, 0);
     subgrid->addWidget(locale, row++, 1, 1, 1);
 
+    subgrid->addWidget(new QLabel(tr("%1:").arg(tr("Allow network usage"))),
+                       row, 0);
+    subgrid->addWidget(networkPermish, row++, 1, 1, 1);
+
     subgrid->addWidget(new QLabel(tr("%1:").arg(prefs->getPropertyLabel
                                                 ("Temporary Directory Root"))),
                        row, 0);
@@ -508,6 +524,14 @@
 }
 
 void
+PreferencesDialog::networkPermissionChanged(int state)
+{
+    m_networkPermission = (state == Qt::Checked);
+    m_applyButton->setEnabled(true);
+    m_changesOnRestart = true;
+}
+
+void
 PreferencesDialog::showSplashChanged(int state)
 {
     m_showSplash = (state == Qt::Checked);
@@ -602,19 +626,17 @@
         AudioTargetFactory::getInstance()->getCallbackTargetNames();
 
     QSettings settings;
-
     settings.beginGroup("Preferences");
+    QString permishTag = QString("network-permission-%1").arg(SV_VERSION);
+    settings.setValue(permishTag, m_networkPermission);
     settings.setValue("audio-target", devices[m_audioDevice]);
+    settings.setValue("locale", m_currentLocale);
     settings.endGroup();
 
     settings.beginGroup("MainWindow");
     settings.setValue("sessiontemplate", m_currentTemplate);
     settings.endGroup();
 
-    settings.beginGroup("Preferences");
-    settings.setValue("locale", m_currentLocale);
-    settings.endGroup();
-
     m_applyButton->setEnabled(false);
 
     if (m_changesOnRestart) {