mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
Added UpdateThread to update_checker module, which checks for updates in a separate thread. And started implementing this in the OnionShareGui class, but have no finished
This commit is contained in:
parent
47c1488512
commit
dc1418cc3b
@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
from __future__ import division
|
from __future__ import division
|
||||||
import os, sys, subprocess, inspect, platform, argparse, threading, time, math, inspect, platform
|
import os, sys, subprocess, inspect, platform, argparse, threading, time, math, inspect
|
||||||
from PyQt5 import QtCore, QtWidgets, QtGui
|
from PyQt5 import QtCore, QtWidgets, QtGui
|
||||||
from PyQt5.QtCore import pyqtSlot
|
from PyQt5.QtCore import pyqtSlot
|
||||||
|
|
||||||
@ -31,6 +31,7 @@ from .file_selection import FileSelection
|
|||||||
from .server_status import ServerStatus
|
from .server_status import ServerStatus
|
||||||
from .downloads import Downloads
|
from .downloads import Downloads
|
||||||
from .alert import Alert
|
from .alert import Alert
|
||||||
|
from .update_checker import UpdateThread
|
||||||
|
|
||||||
class Application(QtWidgets.QApplication):
|
class Application(QtWidgets.QApplication):
|
||||||
"""
|
"""
|
||||||
@ -38,8 +39,8 @@ class Application(QtWidgets.QApplication):
|
|||||||
and the quick keyboard shortcut.
|
and the quick keyboard shortcut.
|
||||||
"""
|
"""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
platform = helpers.get_platform()
|
system = platform.system()
|
||||||
if platform == 'Linux':
|
if system == 'Linux':
|
||||||
self.setAttribute(QtCore.Qt.AA_X11InitThreads, True)
|
self.setAttribute(QtCore.Qt.AA_X11InitThreads, True)
|
||||||
QtWidgets.QApplication.__init__(self, sys.argv)
|
QtWidgets.QApplication.__init__(self, sys.argv)
|
||||||
self.installEventFilter(self)
|
self.installEventFilter(self)
|
||||||
@ -71,9 +72,20 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
|||||||
self.setWindowTitle('OnionShare')
|
self.setWindowTitle('OnionShare')
|
||||||
self.setWindowIcon(QtGui.QIcon(helpers.get_resource_path('images/logo.png')))
|
self.setWindowIcon(QtGui.QIcon(helpers.get_resource_path('images/logo.png')))
|
||||||
|
|
||||||
# the menu bar
|
# Menu bar
|
||||||
self.setMenuBar(Menu(self.qtapp))
|
self.setMenuBar(Menu(self.qtapp))
|
||||||
|
|
||||||
|
# Check for updates in a new thread, if enabled
|
||||||
|
system = platform.system()
|
||||||
|
if system == 'Windows' or system == 'Darwin':
|
||||||
|
settings = Settings()
|
||||||
|
settings.load()
|
||||||
|
if settings.get('use_autoupdate'):
|
||||||
|
# TODO: make updates actually work
|
||||||
|
print("Updating in another thread")
|
||||||
|
#t = UpdateThread()
|
||||||
|
#t.start()
|
||||||
|
|
||||||
def send_files(self, filenames=None):
|
def send_files(self, filenames=None):
|
||||||
"""
|
"""
|
||||||
Build the GUI in send files mode.
|
Build the GUI in send files mode.
|
||||||
|
@ -20,10 +20,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
from PyQt5 import QtCore
|
from PyQt5 import QtCore
|
||||||
import datetime, time, socks, socket, re, platform
|
import datetime, time, socks, socket, re, platform
|
||||||
|
|
||||||
from . import strings, helpers
|
|
||||||
from onionshare.settings import Settings
|
from onionshare.settings import Settings
|
||||||
from onionshare.onion import Onion
|
from onionshare.onion import Onion
|
||||||
|
|
||||||
|
from . import strings, helpers
|
||||||
|
from .alert import Alert
|
||||||
|
|
||||||
class UpdateCheckerTorError(Exception):
|
class UpdateCheckerTorError(Exception):
|
||||||
"""
|
"""
|
||||||
Error checking for updates because of some Tor connection issue.
|
Error checking for updates because of some Tor connection issue.
|
||||||
@ -127,3 +129,19 @@ class UpdateChecker(QtCore.QObject):
|
|||||||
|
|
||||||
# No updates are available
|
# No updates are available
|
||||||
self.update_not_available.emit()
|
self.update_not_available.emit()
|
||||||
|
|
||||||
|
class UpdateThread(QtCore.QThread):
|
||||||
|
def __init__(self):
|
||||||
|
super(UpdateThread, self).__init__()
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
u = UpdateChecker()
|
||||||
|
u.update_available.connect(self.update_available)
|
||||||
|
try:
|
||||||
|
u.check()
|
||||||
|
except:
|
||||||
|
# If update check fails, silently ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def update_available(update_url, installed_version, latest_version):
|
||||||
|
Alert(strings._("update_available", True).format(update_url, installed_version, latest_version))
|
||||||
|
Loading…
Reference in New Issue
Block a user