Network Settings: Adjust the bandwidth limit option with old Qt
authorOlivier Goffart <ogoffart@woboq.com>
Thu, 22 Oct 2015 15:57:34 +0000 (17:57 +0200)
committerOlivier Goffart <ogoffart@woboq.com>
Thu, 22 Oct 2015 15:57:34 +0000 (17:57 +0200)
- Disable the whole group box
- Add a tooltip explaining why it is disabled
- Make sure it is disabled in the settings in case of upgrade
- Do a runtime check in case the running Qt is greater

src/gui/networksettings.cpp
src/gui/networksettings.ui

index 2c5a22a713b6178f5272cbf07da582dd564c7886..6a21f0466482b6d9d449d23d2049df4f3265973b 100644 (file)
@@ -117,23 +117,29 @@ void NetworkSettings::loadProxySettings()
 
 void NetworkSettings::loadBWLimitSettings()
 {
+    ConfigFile cfgFile;
+
 #if QT_VERSION < QT_VERSION_CHECK(5,3,3)
-    // QNAM bandwith limiting only works with versions of Qt greater or equal to 5.3.3
+    // QNAM bandwidth limiting only works with versions of Qt greater or equal to 5.3.3
     // (It needs Qt commits 097b641 and b99fa32)
-    _ui->noDownloadLimitRadioButton->setChecked(true);
-    _ui->downloadLimitRadioButton->setEnabled(false);
-    _ui->noDownloadLimitRadioButton->setEnabled(false);
-    _ui->autoDownloadLimitRadioButton->setEnabled(false);
-
-    _ui->noUploadLimitRadioButton->setChecked(true);
-    _ui->uploadLimitRadioButton->setEnabled(false);
-    _ui->noUploadLimitRadioButton->setEnabled(false);
-    _ui->autoUploadLimitRadioButton->setEnabled(false);
-    return;
-#endif
 
-    ConfigFile cfgFile;
+    const char *v = qVersion(); // "x.y.z";
+    if (QLatin1String(v) < QLatin1String("5.3.3")) {
+        QString tooltip = tr("Qt >= 5.4 is required in order to use the bandwidth limit");
+        _ui->downloadBox->setEnabled(false);
+        _ui->uploadBox->setEnabled(false);
+        _ui->downloadBox->setToolTip(tooltip);
+        _ui->uploadBox->setToolTip(tooltip);
+        _ui->noDownloadLimitRadioButton->setChecked(true);
+        _ui->noUploadLimitRadioButton->setChecked(true);
+        if (cfgFile.useUploadLimit() != 0 || cfgFile.useDownloadLimit() != 0) {
+            // Update from old mirall that was using neon propagator jobs.
+            saveBWLimitSettings();
+        }
+        return;
+    }
 
+#endif
     int useDownloadLimit = cfgFile.useDownloadLimit();
     if ( useDownloadLimit >= 1 ) {
         _ui->downloadLimitRadioButton->setChecked(true);
index 9e4e319138fcd956e52e399b455242fbe408fd9f..60c5ae9c2d593b2a6a70289c00474ad259bf8fe6 100644 (file)
    <item row="1" column="0">
     <layout class="QHBoxLayout" name="horizontalLayout_5">
      <item>
-      <widget class="QGroupBox" name="groupBox">
+      <widget class="QGroupBox" name="downloadBox">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
          <horstretch>0</horstretch>
       </widget>
      </item>
      <item>
-      <widget class="QGroupBox" name="groupBox_2">
+      <widget class="QGroupBox" name="uploadBox">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
          <horstretch>0</horstretch>
           <property name="text">
            <string>Limit automatically</string>
           </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
          </widget>
         </item>
         <item row="0" column="0" colspan="2">
           <property name="text">
            <string>No limit</string>
           </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
          </widget>
         </item>
         <item row="2" column="1">