[Pkg-anonymity-tools] [onionshare] 48/140: added status bar to GUI, populated it with useful status messages

Ulrike Uhlig u-guest at moszumanska.debian.org
Mon Sep 29 20:33:46 UTC 2014


This is an automated email from the git hooks/post-receive script.

u-guest pushed a commit to branch master
in repository onionshare.

commit d1cd3c83ab12eeeab4abb4f41a1971608aef76ff
Author: Micah Lee <micah at micahflee.com>
Date:   Fri Aug 29 15:43:07 2014 -0700

    added status bar to GUI, populated it with useful status messages
---
 onionshare/onionshare.py         |  2 ++
 onionshare/strings.json          | 24 ++++--------------------
 onionshare_gui/onionshare_gui.py | 27 ++++++++++++++++++++++-----
 onionshare_gui/server_status.py  |  7 ++-----
 4 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/onionshare/onionshare.py b/onionshare/onionshare.py
index da1aba0..e38c38f 100644
--- a/onionshare/onionshare.py
+++ b/onionshare/onionshare.py
@@ -107,6 +107,7 @@ class OnionShare(object):
                 s.setproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9150)
                 s.connect((self.onion_host, 80))
                 ready = True
+
                 sys.stdout.write('{0}\n'.format(strings._('wait_for_hs_yup')))
             except TypeError as e:
                 sys.stdout.write('{0}\n'.format(strings._('wait_for_hs_nope')))
@@ -184,6 +185,7 @@ def main():
         sys.exit(e.args[0])
 
     # prepare files to share
+    print strings._("preparing_files")
     web.set_file_info(filenames)
     app.cleanup_filenames.append(web.zip_filename)
 
diff --git a/onionshare/strings.json b/onionshare/strings.json
index f1c0287..24d60c2 100644
--- a/onionshare/strings.json
+++ b/onionshare/strings.json
@@ -2,7 +2,8 @@
     "calculating_sha1": "Calculating SHA1 checksum.",
     "connecting_ctrlport": "Connecting to Tor control port to set up hidden service on port {0}.",
     "cant_connect_ctrlport": "Cannot connect to Tor control port on port {0}. Is Tor running?",
-    "wait_for_hs": "Waiting for hidden service to be ready:",
+    "preparing_files": "Preparing files to share.",
+    "wait_for_hs": "Waiting for HS to be ready:",
     "wait_for_hs_trying": "Trying...",
     "wait_for_hs_nope": "Not ready yet.",
     "wait_for_hs_yup": "Ready!",
@@ -14,8 +15,6 @@
     "size": "Size",
     "sha1_checksum": "SHA1 checksum",
     "download_page_loaded": "Download page loaded",
-    "download_started": "Download started",
-    "download_finished": "Download finished",
     "other_page_loaded": "Other page has been loaded",
     "tails_requires_root": "You must run OnionShare as root in Tails",
     "close_on_finish": "Stop server automatically",
@@ -38,7 +37,8 @@
     "gui_stop_server": "Stop Server",
     "gui_copy_url": "Copy URL",
     "gui_downloads": "Downloads:",
-    "gui_copied_url": "Copied URL to clipboard"
+    "gui_copied_url": "Copied URL to clipboard",
+    "gui_starting_server": "Please wait, starting server..."
 }, "no": {
     "calculating_sha1": "Kalkulerer SHA1 sjekksum.",
     "connecting_ctrlport": "Kobler til Tors kontroll-port for å sette opp en gjemt tjeneste på port {0}.",
@@ -50,8 +50,6 @@
     "sha1_checksum": "SHA1 sjekksum",
     "gui_copied_url": "Kopierte URL-en til utklippstavlen",
     "download_page_loaded": "Nedlastingsside lastet",
-    "download_started": "Nedlasting startet",
-    "download_finished": "Nedlasting fullført",
     "other_page_loaded": "En annen side har blitt lastet",
     "tails_requires_root": "OnionShare kan må kjøres som administrator i Tails",
     "close_on_finish": "Lukk automatisk",
@@ -67,8 +65,6 @@
     "sha1_checksum": "Suma de verificación SHA1",
     "gui_copied_url": "Copiar URL en el portapapeles",
     "download_page_loaded": "Descargar página cargada.",
-    "download_started": "Descarga comenzó",
-    "download_finished": "Descarga terminado",
     "other_page_loaded": "Otra página se ha cargado",
     "tails_requires_root": "Debe ejecutar OnionShare como root en Tails",
     "close_on_finish": "Cerrar automáticamente.",
@@ -93,8 +89,6 @@
     "sha1_checksum": "Firma SHA1",
     "gui_copied_url": "URL copiato negli appunti",
     "download_page_loaded": "Pagina di download caricata",
-    "download_started": "Download iniziato",
-    "download_finished": "Download finito",
     "other_page_loaded": "Un altra pagina é stata caricata",
     "tails_requires_root": "Con Tails devi avviare OnionShare come utente root",
     "close_on_finish": "Chiudi automaticamente",
@@ -110,8 +104,6 @@
     "sha1_checksum": "SHA1 controlecijfer",
     "gui_copied_url": "URL gekopieerd naar klembord",
     "download_page_loaded": "Download pagina geladen",
-    "download_started": "Download gestart",
-    "download_finished": "Download voltooid",
     "other_page_loaded": "Andere pagina is geladen",
     "tails_requires_root": "Je moet OnionShare als root draaien in Tails",
     "close_on_finish": "Sluit automatisch",
@@ -136,8 +128,6 @@
     "sha1_checksum": "Checksum SHA1",
     "gui_copied_url": "URL foi copiado para área de transferência",
     "download_page_loaded": "Página de download carregada",
-    "download_started": "Começou o download",
-    "download_finished": "Terminou o download",
     "other_page_loaded": "Outra página tem sido carregada",
     "tails_requires_root": "Tem que rodar o OnionShare como root no Tails",
     "close_on_finish": "Fechar automaticamente",
@@ -153,8 +143,6 @@
     "sha1_checksum": "SHA1 хешсумма",
     "gui_copied_url": "Ссылка скопирована в буфер обмена",
     "download_page_loaded": "Страница закачки загружена",
-    "download_started": "Загрузка начата",
-    "download_finished": "Загрузка закончена",
     "other_page_loaded": "Другая страница была загружена",
     "tails_requires_root": "Вы должны запустить OnionShare с правами root в Tails",
     "close_on_finish": "Закрыть автоматически",
@@ -171,8 +159,6 @@
     "sha1_checksum": "SHA1 Checksumme",
     "gui_copied_url": "URL in die Zwischenablage kopiert",
     "download_page_loaded": "Download-Seite geladen",
-    "download_started": "Download gestartet",
-    "download_finished": "Download abgeschlossen",
     "other_page_loaded": "Andere Seite wurde geladen",
     "tails_requires_root": "Du musst Onionshare in Tails als root ausführen",
     "close_on_finish": "Beende automatisch",
@@ -190,8 +176,6 @@
     "sha1_checksum": "SHA1 özeti",
     "gui_copied_url": "Panoya kopyalanan URL",
     "download_page_loaded": "İndirme sayfası yüklendi",
-    "download_started": "İndirme başladı",
-    "download_finished": "İndirme bitti",
     "other_page_loaded": "Diğer sayfa yüklendi",
     "tails_requires_root": "Tails'da OnionShare root olarak çalışır",
     "close_on_finish": "Kendiliğinden kapan",
diff --git a/onionshare_gui/onionshare_gui.py b/onionshare_gui/onionshare_gui.py
index 459772a..f0dc121 100644
--- a/onionshare_gui/onionshare_gui.py
+++ b/onionshare_gui/onionshare_gui.py
@@ -48,9 +48,11 @@ class OnionShareGui(QtGui.QWidget):
         self.server_status.server_started.connect(self.start_server)
         self.server_status.server_stopped.connect(self.file_selection.server_stopped)
         self.server_status.server_stopped.connect(self.stop_server)
+        self.start_server_finished.connect(self.clear_message)
         self.start_server_finished.connect(self.server_status.start_server_finished)
         self.stop_server_finished.connect(self.server_status.stop_server_finished)
         self.file_selection.file_list.files_updated.connect(self.server_status.update)
+        self.server_status.url_copied.connect(self.copy_url)
 
         # downloads
         self.downloads = Downloads()
@@ -58,12 +60,17 @@ class OnionShareGui(QtGui.QWidget):
         # options
         self.options = Options(web)
 
+        # status bar
+        self.status_bar = QtGui.QStatusBar()
+        self.status_bar.setSizeGripEnabled(False)
+
         # main layout
         self.layout = QtGui.QVBoxLayout()
         self.layout.addLayout(self.file_selection)
         self.layout.addLayout(self.server_status)
         self.layout.addLayout(self.downloads)
         self.layout.addLayout(self.options)
+        self.layout.addWidget(self.status_bar)
         self.setLayout(self.layout)
         self.show()
 
@@ -74,15 +81,18 @@ class OnionShareGui(QtGui.QWidget):
 
     def start_server(self):
         # start the hidden service
+        self.status_bar.showMessage(strings._('gui_starting_server').format(self.app.port))
         try:
             self.app.start_hidden_service(gui=True)
         except onionshare.NoTor as e:
             alert(e.args[0], QtGui.QMessageBox.Warning)
             self.server_status.stop_server()
+            self.status_bar.clearMessage()
             return
         except onionshare.TailsError as e:
             alert(e.args[0], QtGui.QMessageBox.Warning)
             self.server_status.stop_server()
+            self.status_bar.clearMessage()
             return
 
         # start onionshare service in new thread
@@ -128,12 +138,10 @@ class OnionShareGui(QtGui.QWidget):
                 done = True
 
         for event in events:
-            #if event["path"] != '/favicon.ico':
-            #    pass
-            #if event["type"] == web.REQUEST_LOAD:
-            #    pass
+            if event["type"] == web.REQUEST_LOAD:
+                self.status_bar.showMessage(strings._('download_page_loaded'), 2000)
 
-            if event["type"] == web.REQUEST_DOWNLOAD:
+            elif event["type"] == web.REQUEST_DOWNLOAD:
                 self.downloads.add_download(event["data"]["id"], web.zip_filesize)
 
             elif event["type"] == web.REQUEST_PROGRESS:
@@ -144,6 +152,15 @@ class OnionShareGui(QtGui.QWidget):
                     # close on finish?
                     if not web.get_stay_open():
                         self.server_status.stop_server()
+            
+            elif event["path"] != '/favicon.ico':
+                self.status_bar.showMessage('{0}: {1}'.format(strings._('other_page_loaded'), event["path"]), 2000)
+
+    def copy_url(self):
+        self.status_bar.showMessage(strings._('gui_copied_url'), 2000)
+
+    def clear_message(self):
+        self.status_bar.clearMessage()
 
 def alert(msg, icon=QtGui.QMessageBox.NoIcon):
     dialog = QtGui.QMessageBox()
diff --git a/onionshare_gui/server_status.py b/onionshare_gui/server_status.py
index b42caf8..950d388 100644
--- a/onionshare_gui/server_status.py
+++ b/onionshare_gui/server_status.py
@@ -7,6 +7,7 @@ from onionshare import strings, helpers
 class ServerStatus(QtGui.QVBoxLayout):
     server_started = QtCore.pyqtSignal()
     server_stopped = QtCore.pyqtSignal()
+    url_copied = QtCore.pyqtSignal()
 
     STATUS_STOPPED = 0
     STATUS_WORKING = 1
@@ -22,9 +23,6 @@ class ServerStatus(QtGui.QVBoxLayout):
         self.web = web
         self.file_selection = file_selection
 
-        # system tray icon (for notifications)
-        self.systray = QtGui.QSystemTrayIcon()
-
         # server layout
         self.status_image_stopped = QtGui.QImage('{0}/server_stopped.png'.format(common.onionshare_gui_dir))
         self.status_image_working = QtGui.QImage('{0}/server_working.png'.format(common.onionshare_gui_dir))
@@ -128,6 +126,5 @@ class ServerStatus(QtGui.QVBoxLayout):
             clipboard = self.qtapp.clipboard()
             clipboard.setText(url)
 
-        # todo: make this systray popup work
-        self.systray.showMessage(QtCore.QString("OnionShare"), QtCore.QString(strings._('gui_copied_url')))
+        self.url_copied.emit()
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/onionshare.git



More information about the Pkg-anonymity-tools mailing list