Furious-GUI 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Routing.py +8 -4
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Constants.py +5 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Settings.py +5 -4
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Translator.py +27 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Utility.py +19 -0
- Furious-GUI-0.2.2/Furious/Version.py +1 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/Application.py +2 -9
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/AssetViewer.py +3 -20
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/ConnectingProgressBar.py +18 -38
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/EditConfiguration.py +6 -12
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/EditRouting.py +343 -175
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/ExportQRCode.py +4 -8
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/LogViewer.py +3 -19
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/Widget.py +95 -11
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious_GUI.egg-info/PKG-INFO +19 -3
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/PKG-INFO +19 -3
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/README.md +18 -2
- Furious-GUI-0.2.0/Furious/Version.py +0 -1
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Connect.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/EditConfiguration.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Exit.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Export.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Import.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Language.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/Settings.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Action/__init__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Core/Configuration.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Core/Core.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Core/Intellisense.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Core/__init__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/font/CascadiaMono +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/font/LICENSE +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/hysteria/bypass-Iran.acl +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/hysteria/bypass-mainland-China.acl +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/hysteria/country.mmdb +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/xray/geoip.dat +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/xray/geosite.dat +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Data/xray/iran.dat +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Gui/Action.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Gui/Icon.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Gui/__init__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Process.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Proxy.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Resources.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/StartupOnBoot.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/Theme.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Utility/__init__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/IndentSpinBox.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/SystemTrayIcon.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/Widget/__init__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/__init__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious/__main__.py +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious_GUI.egg-info/SOURCES.txt +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious_GUI.egg-info/dependency_links.txt +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious_GUI.egg-info/entry_points.txt +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious_GUI.egg-info/requires.txt +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/Furious_GUI.egg-info/top_level.txt +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/LICENSE +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/setup.cfg +0 -0
- {Furious-GUI-0.2.0 → Furious-GUI-0.2.2}/setup.py +0 -0
|
@@ -46,8 +46,8 @@ BUILTIN_ROUTING_TABLE = {
|
|
|
46
46
|
],
|
|
47
47
|
},
|
|
48
48
|
Hysteria.name(): {
|
|
49
|
-
'acl':
|
|
50
|
-
'mmdb':
|
|
49
|
+
'acl': (DATA_DIR / 'hysteria' / 'bypass-mainland-China.acl').as_posix(),
|
|
50
|
+
'mmdb': (DATA_DIR / 'hysteria' / 'country.mmdb').as_posix(),
|
|
51
51
|
},
|
|
52
52
|
},
|
|
53
53
|
'Bypass Iran': {
|
|
@@ -91,8 +91,8 @@ BUILTIN_ROUTING_TABLE = {
|
|
|
91
91
|
],
|
|
92
92
|
},
|
|
93
93
|
Hysteria.name(): {
|
|
94
|
-
'acl':
|
|
95
|
-
'mmdb':
|
|
94
|
+
'acl': (DATA_DIR / 'hysteria' / 'bypass-Iran.acl').as_posix(),
|
|
95
|
+
'mmdb': (DATA_DIR / 'hysteria' / 'country.mmdb').as_posix(),
|
|
96
96
|
},
|
|
97
97
|
},
|
|
98
98
|
'Global': {
|
|
@@ -129,6 +129,10 @@ def routingToIndex():
|
|
|
129
129
|
if routing == currentRouting:
|
|
130
130
|
return i
|
|
131
131
|
|
|
132
|
+
return -1
|
|
133
|
+
except Exception:
|
|
134
|
+
# Any non-exit exceptions
|
|
135
|
+
|
|
132
136
|
return -1
|
|
133
137
|
else:
|
|
134
138
|
return index + len(BUILTIN_ROUTING)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from Furious.Action.Language import SUPPORTED_LANGUAGE
|
|
2
|
+
from Furious.Action.Routing import BUILTIN_ROUTING
|
|
2
3
|
from Furious.Utility.Constants import SYSTEM_LANGUAGE
|
|
3
4
|
from Furious.Utility.Utility import Switch
|
|
4
5
|
|
|
@@ -22,7 +23,9 @@ class Settings:
|
|
|
22
23
|
|
|
23
24
|
value = QtCore.QSettings().value(settings.name)
|
|
24
25
|
|
|
25
|
-
if
|
|
26
|
+
if value is not None and (
|
|
27
|
+
settings.protectedRange is None or value in settings.protectedRange
|
|
28
|
+
):
|
|
26
29
|
return value
|
|
27
30
|
|
|
28
31
|
# Value not in protected range. Set to default
|
|
@@ -55,7 +58,7 @@ SUPPORTED_SETTINGS = (
|
|
|
55
58
|
# Connected last time or not
|
|
56
59
|
Settings('Connect', Switch.RANGE),
|
|
57
60
|
# User Routing option
|
|
58
|
-
Settings('Routing'),
|
|
61
|
+
Settings('Routing', default=BUILTIN_ROUTING[0]),
|
|
59
62
|
# User Custom Routing object
|
|
60
63
|
Settings('CustomRouting'),
|
|
61
64
|
# User Configuration
|
|
@@ -66,8 +69,6 @@ SUPPORTED_SETTINGS = (
|
|
|
66
69
|
Settings('MainWidgetWindowSize'),
|
|
67
70
|
# Edit Routing Widget Window Size
|
|
68
71
|
Settings('RoutesWidgetWindowSize'),
|
|
69
|
-
# Edit Routing Widget Editor Window Size
|
|
70
|
-
Settings('RoutesEditorWindowSize'),
|
|
71
72
|
# Main Widget Section Size
|
|
72
73
|
Settings('ServerWidgetSectionSizeTable'),
|
|
73
74
|
# Edit Routing Widget Section Size
|
|
@@ -702,6 +702,33 @@ TRANSLATION = {
|
|
|
702
702
|
'ZH': '保存路由配置时出错',
|
|
703
703
|
'TW': '保存路由配置時出錯',
|
|
704
704
|
},
|
|
705
|
+
f'Edit {XrayCore.name()} Routing Rules': {
|
|
706
|
+
'ES': f'Editar Reglas de Enrutamiento de {XrayCore.name()}',
|
|
707
|
+
'ZH': f'编辑{XrayCore.name()}路由规则',
|
|
708
|
+
'TW': f'編輯{XrayCore.name()}路由規則',
|
|
709
|
+
},
|
|
710
|
+
f'Edit {Hysteria.name()} Routing Rules': {
|
|
711
|
+
'ES': f'Editar Reglas de Enrutamiento de {Hysteria.name()}',
|
|
712
|
+
'ZH': f'编辑{Hysteria.name()}路由规则',
|
|
713
|
+
'TW': f'編輯{Hysteria.name()}路由規則',
|
|
714
|
+
},
|
|
715
|
+
f'{XrayCore.name()} Routing Rules': {
|
|
716
|
+
'ES': f'Reglas de Enrutamiento de {XrayCore.name()}',
|
|
717
|
+
'ZH': f'{XrayCore.name()}路由规则',
|
|
718
|
+
'TW': f'{XrayCore.name()}路由規則',
|
|
719
|
+
},
|
|
720
|
+
f'Note: If acl is empty or does not exist, {APPLICATION_NAME} '
|
|
721
|
+
f'will fall back to proxy all traffic.': {
|
|
722
|
+
'ES': f'NOTA: Si la ACL está vacía o no existe, '
|
|
723
|
+
f'{APPLICATION_NAME} volverá a utilizar proxy para todo el tráfico.',
|
|
724
|
+
'ZH': f'注意:如果acl为空或不存在,{APPLICATION_NAME}将回落到代理所有流量。',
|
|
725
|
+
'TW': f'注意:如果acl為空或不存在,{APPLICATION_NAME}將回落到代理所有流量。',
|
|
726
|
+
},
|
|
727
|
+
f'Note: "Custom" will use acl and mmdb defined in current user configuration.': {
|
|
728
|
+
'ES': f'NOTA: "Personalizado" utilizará la acl y mmdb definidas en la configuración de usuario actual',
|
|
729
|
+
'ZH': f'注意:"自定义"将使用当前用户配置中定义的acl和mmdb。',
|
|
730
|
+
'TW': f'注意:"自定義"將使用當前用戶配置中定義的acl和mmdb。',
|
|
731
|
+
},
|
|
705
732
|
# Asset Viewer
|
|
706
733
|
'Asset File': {
|
|
707
734
|
'ES': 'Activos',
|
|
@@ -156,6 +156,25 @@ class SupportConnectedCallback:
|
|
|
156
156
|
ob.disconnectedCallback()
|
|
157
157
|
|
|
158
158
|
|
|
159
|
+
class NeedSyncSettings:
|
|
160
|
+
Object = list()
|
|
161
|
+
|
|
162
|
+
def __init__(self, *args, **kwargs):
|
|
163
|
+
super().__init__(*args, **kwargs)
|
|
164
|
+
|
|
165
|
+
NeedSyncSettings.Object.append(self)
|
|
166
|
+
|
|
167
|
+
def syncSettings(self):
|
|
168
|
+
raise NotImplementedError
|
|
169
|
+
|
|
170
|
+
@staticmethod
|
|
171
|
+
def syncAll():
|
|
172
|
+
for ob in NeedSyncSettings.Object:
|
|
173
|
+
assert isinstance(ob, NeedSyncSettings)
|
|
174
|
+
|
|
175
|
+
ob.syncSettings()
|
|
176
|
+
|
|
177
|
+
|
|
159
178
|
class SupportThemeChangedCallback:
|
|
160
179
|
Object = list()
|
|
161
180
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '0.2.2'
|
|
@@ -12,7 +12,7 @@ from Furious.Utility.Constants import (
|
|
|
12
12
|
SYSTEM_LANGUAGE,
|
|
13
13
|
DATA_DIR,
|
|
14
14
|
)
|
|
15
|
-
from Furious.Utility.Utility import SupportThemeChangedCallback
|
|
15
|
+
from Furious.Utility.Utility import SupportThemeChangedCallback, NeedSyncSettings
|
|
16
16
|
from Furious.Utility.Proxy import Proxy
|
|
17
17
|
from Furious.Utility.Settings import Settings
|
|
18
18
|
from Furious.Utility.Translator import gettext as _
|
|
@@ -265,14 +265,7 @@ class Application(SingletonApplication):
|
|
|
265
265
|
# if self.tray is not None:
|
|
266
266
|
# self.tray.ConnectAction.stopCore()
|
|
267
267
|
|
|
268
|
-
|
|
269
|
-
self.MainWidget.syncSettings()
|
|
270
|
-
|
|
271
|
-
if self.editRoutingWidget is not None:
|
|
272
|
-
self.editRoutingWidget.syncSettings()
|
|
273
|
-
|
|
274
|
-
if self.logViewerWidget is not None:
|
|
275
|
-
self.logViewerWidget.syncSettings()
|
|
268
|
+
NeedSyncSettings.syncAll()
|
|
276
269
|
|
|
277
270
|
def exit(self, exitcode=0):
|
|
278
271
|
if self.MainWidget is not None:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from Furious.Gui.Action import Action, Seperator
|
|
2
|
-
from Furious.Widget.Widget import ListWidget, Menu, MessageBox
|
|
2
|
+
from Furious.Widget.Widget import ListWidget, MainWindow, Menu, MessageBox
|
|
3
3
|
from Furious.Utility.Constants import APPLICATION_NAME, PLATFORM, GOLDEN_RATIO, ROOT_DIR
|
|
4
4
|
from Furious.Utility.Utility import (
|
|
5
5
|
StateContext,
|
|
@@ -14,7 +14,7 @@ from Furious.Utility.Translator import Translatable, gettext as _
|
|
|
14
14
|
|
|
15
15
|
from PySide6 import QtCore
|
|
16
16
|
from PySide6.QtGui import QFont
|
|
17
|
-
from PySide6.QtWidgets import QFileDialog, QListWidget, QListWidgetItem
|
|
17
|
+
from PySide6.QtWidgets import QFileDialog, QListWidget, QListWidgetItem
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
20
|
import shutil
|
|
@@ -136,9 +136,7 @@ class ExitAction(Action):
|
|
|
136
136
|
self.parent().hide()
|
|
137
137
|
|
|
138
138
|
|
|
139
|
-
class AssetViewerWidget(
|
|
140
|
-
Translatable, SupportConnectedCallback, SupportThemeChangedCallback, QMainWindow
|
|
141
|
-
):
|
|
139
|
+
class AssetViewerWidget(SupportThemeChangedCallback, MainWindow):
|
|
142
140
|
AssetDir = ROOT_DIR / APPLICATION_NAME / 'Data' / 'xray'
|
|
143
141
|
|
|
144
142
|
def __init__(self, *args, **kwargs):
|
|
@@ -251,17 +249,6 @@ class AssetViewerWidget(
|
|
|
251
249
|
else:
|
|
252
250
|
self.flushItemByTheme(darkdetect.theme())
|
|
253
251
|
|
|
254
|
-
def closeEvent(self, event):
|
|
255
|
-
event.ignore()
|
|
256
|
-
|
|
257
|
-
self.hide()
|
|
258
|
-
|
|
259
|
-
def connectedCallback(self):
|
|
260
|
-
self.setWindowIcon(bootstrapIcon('rocket-takeoff-connected-dark.svg'))
|
|
261
|
-
|
|
262
|
-
def disconnectedCallback(self):
|
|
263
|
-
self.setWindowIcon(bootstrapIcon('rocket-takeoff-window.svg'))
|
|
264
|
-
|
|
265
252
|
def themeChangedCallback(self, theme):
|
|
266
253
|
if PLATFORM == 'Linux' and getUbuntuRelease() == '20.04':
|
|
267
254
|
# Ubuntu 20.04 system dark theme does not
|
|
@@ -269,7 +256,3 @@ class AssetViewerWidget(
|
|
|
269
256
|
pass
|
|
270
257
|
else:
|
|
271
258
|
self.flushItemByTheme(theme)
|
|
272
|
-
|
|
273
|
-
def retranslate(self):
|
|
274
|
-
with StateContext(self):
|
|
275
|
-
self.setWindowTitle(_(self.windowTitle()))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from Furious.Utility.Constants import APPLICATION_NAME, GOLDEN_RATIO
|
|
1
|
+
from Furious.Utility.Constants import APPLICATION_NAME, GOLDEN_RATIO, Color
|
|
2
2
|
from Furious.Utility.Utility import (
|
|
3
3
|
bootstrapIcon,
|
|
4
4
|
StateContext,
|
|
@@ -31,18 +31,7 @@ class ConnectingProgressBar(Translatable, SupportConnectedCallback, QWidget):
|
|
|
31
31
|
# Create a progress bar widget
|
|
32
32
|
self.progressBar = QProgressBar(self)
|
|
33
33
|
self.progressBar.setRange(0, 100)
|
|
34
|
-
self.progressBar.setStyleSheet(
|
|
35
|
-
f'QProgressBar {{'
|
|
36
|
-
f' border-radius: 2px;'
|
|
37
|
-
f' text-align: center;'
|
|
38
|
-
f'}}'
|
|
39
|
-
f''
|
|
40
|
-
f'QProgressBar::chunk {{'
|
|
41
|
-
f' background-color: #43ACED;'
|
|
42
|
-
f' width: 10px;'
|
|
43
|
-
f' margin: 0.5px;'
|
|
44
|
-
f'}}'
|
|
45
|
-
)
|
|
34
|
+
self.progressBar.setStyleSheet(self.getStyleSheet(Color.LIGHT_BLUE))
|
|
46
35
|
|
|
47
36
|
# create a timer to update the progress bar
|
|
48
37
|
self.timer = QtCore.QTimer(self)
|
|
@@ -53,42 +42,33 @@ class ConnectingProgressBar(Translatable, SupportConnectedCallback, QWidget):
|
|
|
53
42
|
|
|
54
43
|
self.setLayout(self.layout)
|
|
55
44
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
self.hide()
|
|
60
|
-
|
|
61
|
-
def connectedCallback(self):
|
|
62
|
-
self.setWindowIcon(bootstrapIcon('rocket-takeoff-connected-dark.svg'))
|
|
63
|
-
|
|
64
|
-
self.progressBar.setStyleSheet(
|
|
45
|
+
@staticmethod
|
|
46
|
+
def getStyleSheet(color):
|
|
47
|
+
return (
|
|
65
48
|
f'QProgressBar {{'
|
|
66
49
|
f' border-radius: 2px;'
|
|
67
50
|
f' text-align: center;'
|
|
68
51
|
f'}}'
|
|
69
52
|
f''
|
|
70
53
|
f'QProgressBar::chunk {{'
|
|
71
|
-
f' background-color:
|
|
72
|
-
f'
|
|
73
|
-
f'
|
|
54
|
+
f' background-color: {color};'
|
|
55
|
+
f' width: 10px;'
|
|
56
|
+
f' margin: 0.5px;'
|
|
74
57
|
f'}}'
|
|
75
58
|
)
|
|
76
59
|
|
|
60
|
+
def closeEvent(self, event):
|
|
61
|
+
event.ignore()
|
|
62
|
+
|
|
63
|
+
self.hide()
|
|
64
|
+
|
|
65
|
+
def connectedCallback(self):
|
|
66
|
+
self.setWindowIcon(bootstrapIcon('rocket-takeoff-connected-dark.svg'))
|
|
67
|
+
self.progressBar.setStyleSheet(self.getStyleSheet(Color.LIGHT_RED_))
|
|
68
|
+
|
|
77
69
|
def disconnectedCallback(self):
|
|
78
70
|
self.setWindowIcon(bootstrapIcon('rocket-takeoff-window.svg'))
|
|
79
|
-
|
|
80
|
-
self.progressBar.setStyleSheet(
|
|
81
|
-
f'QProgressBar {{'
|
|
82
|
-
f' border-radius: 2px;'
|
|
83
|
-
f' text-align: center;'
|
|
84
|
-
f'}}'
|
|
85
|
-
f''
|
|
86
|
-
f'QProgressBar::chunk {{'
|
|
87
|
-
f' background-color: #43ACED;'
|
|
88
|
-
f' width: 10px;'
|
|
89
|
-
f' margin: 0.5px;'
|
|
90
|
-
f'}}'
|
|
91
|
-
)
|
|
71
|
+
self.progressBar.setStyleSheet(self.getStyleSheet(Color.LIGHT_BLUE))
|
|
92
72
|
|
|
93
73
|
def retranslate(self):
|
|
94
74
|
with StateContext(self):
|
|
@@ -5,6 +5,7 @@ from Furious.Core.Configuration import Configuration
|
|
|
5
5
|
from Furious.Gui.Action import Action, Seperator
|
|
6
6
|
from Furious.Widget.Widget import (
|
|
7
7
|
HeaderView,
|
|
8
|
+
MainWindow,
|
|
8
9
|
Menu,
|
|
9
10
|
MessageBox,
|
|
10
11
|
PushButton,
|
|
@@ -23,6 +24,7 @@ from Furious.Utility.Constants import (
|
|
|
23
24
|
APPLICATION_REPO_NAME,
|
|
24
25
|
PLATFORM,
|
|
25
26
|
GOLDEN_RATIO,
|
|
27
|
+
Color,
|
|
26
28
|
)
|
|
27
29
|
from Furious.Utility.Utility import (
|
|
28
30
|
Base64Encoder,
|
|
@@ -47,10 +49,8 @@ from PySide6.QtWidgets import (
|
|
|
47
49
|
QHBoxLayout,
|
|
48
50
|
QHeaderView,
|
|
49
51
|
QLabel,
|
|
50
|
-
QLineEdit,
|
|
51
52
|
QListWidget,
|
|
52
53
|
QListWidgetItem,
|
|
53
|
-
QMainWindow,
|
|
54
54
|
QPlainTextEdit,
|
|
55
55
|
QSplitter,
|
|
56
56
|
QStyledItemDelegate,
|
|
@@ -1089,7 +1089,7 @@ class NormalServerWidget(Translatable, SupportConnectedCallback, TableWidget):
|
|
|
1089
1089
|
self.setVerticalHeader(NormalServerVerticalHeader(self))
|
|
1090
1090
|
|
|
1091
1091
|
# Selection
|
|
1092
|
-
self.setSelectionColor(
|
|
1092
|
+
self.setSelectionColor(Color.LIGHT_BLUE)
|
|
1093
1093
|
self.setSelectionBehavior(QTableWidget.SelectionBehavior.SelectRows)
|
|
1094
1094
|
self.setSelectionMode(QTableWidget.SelectionMode.ExtendedSelection)
|
|
1095
1095
|
|
|
@@ -1592,12 +1592,12 @@ class NormalServerWidget(Translatable, SupportConnectedCallback, TableWidget):
|
|
|
1592
1592
|
super().keyPressEvent(event)
|
|
1593
1593
|
|
|
1594
1594
|
def connectedCallback(self):
|
|
1595
|
-
self.setSelectionColor(
|
|
1595
|
+
self.setSelectionColor(Color.LIGHT_RED_)
|
|
1596
1596
|
# Reactivate with possible color
|
|
1597
1597
|
self.activateItemByIndex(self.activatedItemIndex)
|
|
1598
1598
|
|
|
1599
1599
|
def disconnectedCallback(self):
|
|
1600
|
-
self.setSelectionColor(
|
|
1600
|
+
self.setSelectionColor(Color.LIGHT_BLUE)
|
|
1601
1601
|
# Reactivate with possible color
|
|
1602
1602
|
self.activateItemByIndex(self.activatedItemIndex)
|
|
1603
1603
|
|
|
@@ -1607,7 +1607,7 @@ class NormalServerWidget(Translatable, SupportConnectedCallback, TableWidget):
|
|
|
1607
1607
|
)
|
|
1608
1608
|
|
|
1609
1609
|
|
|
1610
|
-
class EditConfigurationWidget(
|
|
1610
|
+
class EditConfigurationWidget(MainWindow):
|
|
1611
1611
|
def __init__(self, *args, **kwargs):
|
|
1612
1612
|
super().__init__(*args, **kwargs)
|
|
1613
1613
|
|
|
@@ -1975,12 +1975,6 @@ class EditConfigurationWidget(Translatable, SupportConnectedCallback, QMainWindo
|
|
|
1975
1975
|
)
|
|
1976
1976
|
APP().EditorWidgetPointSize = str(self.plainTextEdit.font().pointSize())
|
|
1977
1977
|
|
|
1978
|
-
def connectedCallback(self):
|
|
1979
|
-
self.setWindowIcon(bootstrapIcon('rocket-takeoff-connected-dark.svg'))
|
|
1980
|
-
|
|
1981
|
-
def disconnectedCallback(self):
|
|
1982
|
-
self.setWindowIcon(bootstrapIcon('rocket-takeoff-window.svg'))
|
|
1983
|
-
|
|
1984
1978
|
def retranslate(self):
|
|
1985
1979
|
with StateContext(self):
|
|
1986
1980
|
if self.modified:
|