[tor-commits] [vidalia-plugins/master] Finish tutorial plugin

chiiph at torproject.org chiiph at torproject.org
Tue Apr 17 22:49:15 UTC 2012


commit 3087bc3c51bbbe4f36aaa6bfa532f60869af1b77
Author: Tomás Touceda <chiiph at 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 at 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 at 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 at 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>



More information about the tor-commits mailing list