-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathmain.py
108 lines (78 loc) · 3.46 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# -*- coding: utf-8 -*-
import sys, collections, threading, os
from engineio import async_threading
#sys.path.append("/home/lakewik/PycharmProjects/storjguibeta/4/storj_gui_client")
print(os.path.dirname(os.path.realpath(__file__)))
import requests.packages.urllib3.packages.ordered_dict
from PyQt4 import QtCore, QtGui
from UI.utilities.account_manager import AccountManager
from UI.mainUI import MainUI
from UI.initial_window import InitialWindowUI
import configparser # needed for Windows package builder
from UI.resources.storj_tray_icon import StorjTrayIcon
from UI.resources.constants import SHOW_TRAY_ICON
from UI.resources.sync_constants import SYNC_ENABLED
from UI.utilities.synchronization_core import SyncObserverWorker
from UI.utilities.backend_config import Configuration
#from UI.utilities.storj_synchronization_daemon import StorjSynchronizationDaemon
from UI.utilities.storj_synchronization_background_server import start_storj_sync_server_thread
from UI.utilities.tools import Tools
from UI.resources.constants import RUN_IN_BACKGROUND_AFTER_CLOSE
from UI.enter_mnemonic import EnterMnemonicUI
from UI.generated_mnemonic import MnemonicGeneratedUI
from UI.flask_ownstorj.runserver import OwnStorjFlaskServer
if __name__ == "__main__":
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads)
app = QtGui.QApplication(sys.argv)
app.setQuitOnLastWindowClosed(False) # app can run in background
tools = Tools()
storj_gui_config_manager = Configuration()
locale = QtCore.QLocale.system().name()
qtTranslator = QtCore.QTranslator()
# try to load translation
storj_gui_config_manager.autosave_config_defaults()
if qtTranslator.load("" + locale, ":tra/"):
app.installTranslator(qtTranslator)
account_manager = AccountManager()
def run_ownstorj():
#tools.map_port_UPnP(5000, "OwnStorj Home Server")
own_storj_init = OwnStorjFlaskServer()
own_storj_init.run()
def init_ownstorj():
shard_upload_init_thread = threading.Thread(
target=run_ownstorj
)
shard_upload_init_thread.start()
if account_manager.if_logged_in():
#myapp = MainUI()
init_ownstorj()
myapp = EnterMnemonicUI()
#myapp = MnemonicGeneratedUI()
#start_storj_sync_server_thread()
def restore_from_tray(reason):
if reason == QtGui.QSystemTrayIcon.DoubleClick: # show main window when user double-clicked tray
#myapp.destroy(True, True)
main = MainUI()
main.show()
#if SYNC_ENABLED:
#tools.start_synchronization_observer()
if SHOW_TRAY_ICON:
style = app.style()
icon = QtGui.QIcon(style.standardPixmap(QtGui.QStyle.SP_FileIcon))
trayIcon = StorjTrayIcon(icon)
menu = QtGui.QMenu()
exitAction = menu.addAction("Exit")
sync_menu_action = menu.addAction("Show synchronization menu")
trayIcon.setContextMenu(menu)
trayIcon.setToolTip("test")
trayIcon.show()
QtCore.QObject.connect(exitAction, QtCore.SIGNAL('triggered()'), lambda: myapp.close())
trayIcon.activated.connect(restore_from_tray)
myapp.show()
else:
initial_window = InitialWindowUI()
initial_window.show()
# Apply default configuration
configuration = Configuration()
configuration.create_genesis_configuration()
sys.exit(app.exec_())