X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=torbrowser_launcher%2F__init__.py;h=ce542a472181b49327839122218d7f4aaba566e9;hb=a52b5a58dd08430fb82399b1e69c3c28a7574941;hp=57284a7141416f63120da130fa6f07c36bf2e754;hpb=41e39dc198b2f50da9fa44f95550a698310ec2af;p=torbrowser-launcher.git diff --git a/torbrowser_launcher/__init__.py b/torbrowser_launcher/__init__.py index 57284a7..ce542a4 100644 --- a/torbrowser_launcher/__init__.py +++ b/torbrowser_launcher/__init__.py @@ -26,16 +26,30 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from __future__ import print_function +import os +import sys +import argparse +import signal -import os, sys, argparse +from PyQt5 import QtCore, QtWidgets from .common import Common, SHARE from .settings import Settings from .launcher import Launcher + +class Application(QtWidgets.QApplication): + """ + Qt's QApplication class. It has been overridden to support threads. + """ + def __init__(self): + self.setAttribute(QtCore.Qt.AA_X11InitThreads, True) + QtWidgets.QApplication.__init__(self, sys.argv) + self.installEventFilter(self) + + def main(): - # parse arguments + # Parse arguments parser = argparse.ArgumentParser() parser.add_argument('--settings', action='store_true', dest='settings', help='Open Tor Browser Launcher settings') parser.add_argument('url', nargs='*', help='URL to load') @@ -44,7 +58,7 @@ def main(): settings = bool(args.settings) url_list = args.url - # load the version and print the banner + # Load the version and print the banner with open(os.path.join(SHARE, 'version')) as buf: tor_browser_launcher_version = buf.read().strip() @@ -54,14 +68,32 @@ def main(): print('https://github.com/micahflee/torbrowser-launcher') common = Common(tor_browser_launcher_version) + app = Application() - if settings: - # settings mode - app = Settings(common) + # Open the window + gui = None + if settings: + # Settings mode + gui = Settings(common, app) else: - # launcher mode - app = Launcher(common, url_list) + # Launcher mode + gui = Launcher(common, app, url_list) + + # Center the window + desktop = app.desktop() + window_size = gui.size() + gui.move( + (desktop.width() - window_size.width()) / 2, + (desktop.height() - window_size.height()) / 2 + ) + gui.show() + + # Allow ctrl-c to work + signal.signal(signal.SIGINT, signal.SIG_DFL) + + sys.exit(app.exec_()) + if __name__ == "__main__": main()