commit 025a6f5a0b54adf534ab90fb57be08f2272c3750 Author: Feroze Naina ferozenaina@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@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>
tor-commits@lists.torproject.org