commit 3087bc3c51bbbe4f36aaa6bfa532f60869af1b77 Author: Tomás Touceda chiiph@torproject.org Date: Tue Apr 17 19:48:18 2012 -0300
Finish tutorial plugin --- tutorial/tutorial.js | 75 ++++++++++++++++++++++++++++++++++++------ tutorial/tutorial.ui | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 11 deletions(-)
diff --git a/tutorial/tutorial.js b/tutorial/tutorial.js index 197928e..24d55f9 100644 --- a/tutorial/tutorial.js +++ b/tutorial/tutorial.js @@ -4,19 +4,60 @@ importExtension("qt.gui"); importExtension("qt.uitools");
var tutorial = { + From: "From", + Sent: "Sent", + Recv: "Recv", + start: function() { vdebug("Tutorial@start"); torControl["bandwidthUpdate(quint64, quint64)"].connect(this, this.saveBandwidth); + this.tab = new VidaliaTab("Display bandwidth history", "BandwidthHistory"); + + this.recv = parseInt(this.tab.getSetting(this.Sent, 0)); + this.sent = parseInt(this.tab.getSetting(this.Recv, 0)); + this.from = this.tab.getSetting(this.From, ""); + + if(this.from.length == 0) + this.from = QDateTime.currentDateTime().toString(); + + // null labels so that we don't update them until the GUI is created + this.lblFrom = null; + this.lblSent = null; + this.lblRecv = null; },
saveBandwidth: function(recv, sent) { vdebug("Tutorial::Recv", recv); vdebug("Totorial::Sent", sent); + + this.recv += recv; + this.sent += sent; + this.tab.saveSetting(this.Recv, this.recv); + this.tab.saveSetting(this.Sent, this.sent); + this.tab.saveSetting(this.From, this.from); + + if(this.lblFrom) + this.lblFrom.text = this.from; + if(this.lblSent) + this.lblSent.text = this.sent.toString(); + if(this.lblRecv) + this.lblRecv.text = this.recv.toString(); + }, + + resetCounters: function() { + this.recv = 0; + this.sent = 0; + this.from = QDateTime.currentDateTime().toString(); + this.saveBandwidth(0,0); },
buildGUI: function() { vdebug("Tutorial@buildGUI"); // Load the GUI file + + if(this.tab) + delete this.tab; + this.tab = new VidaliaTab("Display bandwidth history", "BandwidthHistory");
var file = new QFile(pluginPath+"/tutorial/tutorial.ui"); @@ -28,25 +69,37 @@ var tutorial = { this.tab.setLayout(layout); file.close();
- var groupBox = this.widget.children()[findWidget(this.widget, "browserBox")]; - if(groupBox == null) { + var grpBandwidth = this.widget.children()[findWidget(this.widget, "grpBandwidth")]; + if(grpBandwidth == null) + return this.tab; + + this.lblFrom = grpBandwidth.children()[findWidget(grpBandwidth, "lblFrom")]; + if(this.lblFrom == null) + return this.tab; + + this.lblSent = grpBandwidth.children()[findWidget(grpBandwidth, "lblSent")]; + if(this.lblSent == null) + return this.tab; + + this.lblRecv = grpBandwidth.children()[findWidget(grpBandwidth, "lblRecv")]; + if(this.lblRecv == null) + return this.tab; + + this.btnReset = grpBandwidth.children()[findWidget(grpBandwidth, "btnReset")]; + if(this.btnReset == null) return this.tab; - }
- this.btnSave = this.widget.children()[findWidget(this.widget, "btnSave")]; - if(this.btnSave != null) { - this.btnSave["clicked()"].connect(this, this.saveSettings); - } + this.lblFrom.text = this.from; + this.lblSent.text = this.sent.toString(); + this.lblRecv.text = this.recv.toString();
- this.btnLaunch = groupBox.children()[findWidget(groupBox, "btnLaunch")]; - if(this.btnLaunch != null) { - this.btnLaunch["clicked()"].connect(this, this.startSubProcess); - } + this.btnReset["clicked()"].connect(this, this.resetCounters);
return this.tab; },
stop: function() { vdebug("Tutorial@stop"); + this.saveBandwidth(0,0); }, }; diff --git a/tutorial/tutorial.ui b/tutorial/tutorial.ui new file mode 100644 index 0000000..317c70c --- /dev/null +++ b/tutorial/tutorial.ui @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QGroupBox" name="grpBandwidth"> + <property name="title"> + <string>Bandwidth history</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="2" column="0"> + <widget class="QLabel" name="lblSentLabel_2"> + <property name="text"> + <string><b>Recieved:</b></string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="lblSentLabel"> + <property name="text"> + <string><b>Sent:</b></string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="lblFromLabel"> + <property name="text"> + <string><b>From:</b></string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1" colspan="2"> + <widget class="QLabel" name="lblFrom"> + <property name="text"> + <string>TextLabel</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QLabel" name="lblSent"> + <property name="text"> + <string>TextLabel</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2"> + <widget class="QLabel" name="lblRecv"> + <property name="text"> + <string>TextLabel</string> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QPushButton" name="btnReset"> + <property name="text"> + <string>Reset</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui>