[tor-commits] [vidalia-plugins/master] Allow user to enable or disable bandwidth scheduler

chiiph at torproject.org chiiph at torproject.org
Tue Sep 25 22:29:33 UTC 2012


commit 025a6f5a0b54adf534ab90fb57be08f2272c3750
Author: Feroze Naina <ferozenaina at gmail.com>
Date:   Sun Aug 19 23:23:03 2012 +0530

    Allow user to enable or disable bandwidth scheduler
---
 bwscheduler/bwscheduler.js |   69 +++++++++++++++++++++++++++----------------
 bwscheduler/bwscheduler.ui |    4 +-
 2 files changed, 45 insertions(+), 28 deletions(-)

diff --git a/bwscheduler/bwscheduler.js b/bwscheduler/bwscheduler.js
index 1f8b754..2ce553b 100644
--- a/bwscheduler/bwscheduler.js
+++ b/bwscheduler/bwscheduler.js
@@ -5,6 +5,7 @@ importExtension("qt.uitools");
 importExtension("qt.network");
 
 var bwscheduler = {
+    SETTING_ENABLED: "BandwidthSchedulerEnabled",
 
     weekDays : ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
 
@@ -20,35 +21,37 @@ var bwscheduler = {
     },
 
     updateRate: function() {
-        torrc.clear(["BandwidthRate", "BandwidthBurst"]);
-
-        var currentTime = QTime.currentTime();
-        var today = new Date()
-
-        var size = this.settings.beginReadArray("schedules");
-
-        for (var i = 0; i < size; i++) {
-            this.settings.setArrayIndex(i);
-            var day = this.settings.value("cmbDay");
-            var startTime = QTime.fromString(this.settings.value("timeStart"), "hh:mm");
-            var endTime = QTime.fromString(this.settings.value("timeEnd"), "hh:mm");
-            var bwRate = this.settings.value("spinRate");
-            var bwUnit = this.settings.value("cmbUnit");
-
-            if (startTime <= currentTime && currentTime <= endTime) {
-                if (day == "Everyday") {
-                    torrc.setValue("BandwidthRate" , bwRate + " " + bwUnit);
-                    torrc.setValue("BandwidthBurst" , bwRate + " " + bwUnit);
-                }
-                else if (day == this.weekDays[today.getDay()]) {
-                    torrc.setValue("BandwidthRate" , bwRate + " " + bwUnit);
-                    torrc.setValue("BandwidthBurst" , bwRate + " " + bwUnit);
+        if (this.settings.value(this.SETTING_ENABLED) == "true") {
+            torrc.clear(["BandwidthRate", "BandwidthBurst"]);
+
+            var currentTime = QTime.currentTime();
+            var today = new Date()
+
+            var size = this.settings.beginReadArray("schedules");
+
+            for (var i = 0; i < size; i++) {
+                this.settings.setArrayIndex(i);
+                var day = this.settings.value("cmbDay");
+                var startTime = QTime.fromString(this.settings.value("timeStart"), "hh:mm");
+                var endTime = QTime.fromString(this.settings.value("timeEnd"), "hh:mm");
+                var bwRate = this.settings.value("spinRate");
+                var bwUnit = this.settings.value("cmbUnit");
+
+                if (startTime <= currentTime && currentTime <= endTime) {
+                    if (day == "Everyday") {
+                        torrc.setValue("BandwidthRate" , bwRate + " " + bwUnit);
+                        torrc.setValue("BandwidthBurst" , bwRate + " " + bwUnit);
+                    }
+                    else if (day == this.weekDays[today.getDay()]) {
+                        torrc.setValue("BandwidthRate" , bwRate + " " + bwUnit);
+                        torrc.setValue("BandwidthBurst" , bwRate + " " + bwUnit);
+                    }
                 }
             }
-        }
 
-        this.settings.endArray();
-        torrc.apply(torControl);
+            this.settings.endArray();
+            torrc.apply(torControl);
+        }
     },
 
     updateList: function() {
@@ -240,16 +243,30 @@ var bwscheduler = {
         if (this.btnDiscard == null)
             return this.tab;
 
+        this.chkEnabled['stateChanged(int)'].connect(this, this.toggleEnabled);
         this.btnAdd['clicked()'].connect(this, this.addService);
         this.btnRemove['clicked()'].connect(this, this.removeServices);
         this.btnApply['clicked()'].connect(this, this.applyServices);
         this.btnDiscard['clicked()'].connect(this, this.updateList);
 
+        this.chkEnabled.setCheckState((this.settings.value(this.SETTING_ENABLED, "false") == "true")?Qt.Checked:Qt.Unchecked);
+
         this.updateList();
 
         return this.tab;
     },
 
+    toggleEnabled: function() {
+        var enableScheduler = (this.chkEnabled.checkState() == Qt.Checked) ? true : false;
+        this.settings.setValue(this.SETTING_ENABLED, enableScheduler.toString());
+        this.scrollArea.setEnabled(enableScheduler);
+        this.btnAdd.setEnabled(enableScheduler);
+
+        if (! enableScheduler) {
+            torrc.clear(["BandwidthRate", "BandwidthBurst"]);
+            torrc.apply(torControl);
+        }
+    },
 
     stop: function() {
         vdebug("Tutorial at stop");
diff --git a/bwscheduler/bwscheduler.ui b/bwscheduler/bwscheduler.ui
index 9b270f6..4daf621 100644
--- a/bwscheduler/bwscheduler.ui
+++ b/bwscheduler/bwscheduler.ui
@@ -30,7 +30,7 @@
    <item row="1" column="0" colspan="6">
     <widget class="QScrollArea" name="scrollArea">
      <property name="enabled">
-      <bool>true</bool>
+      <bool>false</bool>
      </property>
      <property name="minimumSize">
       <size>
@@ -123,7 +123,7 @@
    <item row="0" column="4">
     <widget class="QPushButton" name="btnAdd">
      <property name="enabled">
-      <bool>true</bool>
+      <bool>false</bool>
      </property>
      <property name="minimumSize">
       <size>





More information about the tor-commits mailing list