mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-10-11 08:48:25 +03:00
Feature: network state tuning
Signed-off-by: LorenEteval <loren.eteval@proton.me>
This commit is contained in:
committed by
Loren Eteval
parent
db2b69c5aa
commit
050e12dd6d
@@ -118,6 +118,3 @@ NETWORK_CONNECTIVITY_TEST_URL = 'http://cp.cloudflare.com'
|
||||
NETWORK_SPEED_TEST_URL = (
|
||||
f'http://speed.cloudflare.com/__down?during=download&bytes={95 * 1024 * 1024}'
|
||||
)
|
||||
|
||||
UNICODE_LARGE_RED_CIRCLE = '\U0001f534'
|
||||
UNICODE_LARGE_GREEN_CIRCLE = '\U0001f7e2'
|
||||
|
||||
@@ -47,6 +47,9 @@ class AppStyleSheet:
|
||||
'input': '#FFFFFF',
|
||||
'input_focus': '#F7FBFF',
|
||||
'danger': '#D9514E',
|
||||
'danger_soft': '#FDECEC',
|
||||
'success': '#2F817D',
|
||||
'success_soft': '#DDF1EF',
|
||||
'scroll_handle': '#B4C0CC',
|
||||
'scroll_handle_hover': '#96A5B4',
|
||||
},
|
||||
@@ -69,6 +72,9 @@ class AppStyleSheet:
|
||||
'input': '#232427',
|
||||
'input_focus': '#282D2F',
|
||||
'danger': '#F07178',
|
||||
'danger_soft': '#4A2528',
|
||||
'success': '#4FB6B2',
|
||||
'success_soft': '#1F3A3A',
|
||||
'scroll_handle': '#5B6067',
|
||||
'scroll_handle_hover': '#70767F',
|
||||
},
|
||||
@@ -472,6 +478,27 @@ class AppStyleSheet:
|
||||
background-color: {palette['panel']};
|
||||
}}
|
||||
|
||||
QLabel#NetworkStateLabel {{
|
||||
min-height: 22px;
|
||||
padding: 3px 10px;
|
||||
border: 1px solid {palette['border']};
|
||||
border-radius: 5px;
|
||||
background-color: {palette['raised']};
|
||||
color: {palette['muted']};
|
||||
}}
|
||||
|
||||
QLabel#NetworkStateLabel[networkState="success"] {{
|
||||
border-left: 4px solid {palette['success']};
|
||||
background-color: {palette['success_soft']};
|
||||
color: {palette['text']};
|
||||
}}
|
||||
|
||||
QLabel#NetworkStateLabel[networkState="failure"] {{
|
||||
border-left: 4px solid {palette['danger']};
|
||||
background-color: {palette['danger_soft']};
|
||||
color: {palette['text']};
|
||||
}}
|
||||
|
||||
QSplitter::handle {{
|
||||
background-color: {palette['border']};
|
||||
}}
|
||||
|
||||
@@ -435,6 +435,8 @@ class AppMainWindow(AppQMainWindow):
|
||||
# self.setStatusBar(QStatusBar(self))
|
||||
|
||||
self.networkState = AppQLabel(translatable=False)
|
||||
self.networkState.setObjectName('NetworkStateLabel')
|
||||
self.networkState.setVisible(False)
|
||||
|
||||
self.statusBar().addPermanentWidget(self.networkState)
|
||||
|
||||
@@ -501,24 +503,41 @@ class AppMainWindow(AppQMainWindow):
|
||||
|
||||
def resetNetworkState(self):
|
||||
self.networkState.setText('')
|
||||
self.networkState.setToolTip('')
|
||||
self.networkState.setProperty('networkState', '')
|
||||
self.networkState.setVisible(False)
|
||||
|
||||
self.refreshNetworkStateStyle()
|
||||
|
||||
def setNetworkState(self, success: bool, **kwargs):
|
||||
remark = Storage.Extras.UserServerRemark()
|
||||
|
||||
if success:
|
||||
if remark:
|
||||
self.networkState.setText(f'{remark} {UNICODE_LARGE_GREEN_CIRCLE}')
|
||||
else:
|
||||
self.resetNetworkState()
|
||||
else:
|
||||
errorString = kwargs.pop('errorString', '')
|
||||
if not remark:
|
||||
self.resetNetworkState()
|
||||
|
||||
if remark:
|
||||
self.networkState.setText(
|
||||
f'{remark} - {errorString} {UNICODE_LARGE_RED_CIRCLE}'
|
||||
)
|
||||
else:
|
||||
self.resetNetworkState()
|
||||
return
|
||||
|
||||
if success:
|
||||
self.networkState.setText(f'{_("Network OK")} - {remark}')
|
||||
self.networkState.setToolTip(remark)
|
||||
self.networkState.setProperty('networkState', 'success')
|
||||
|
||||
self.refreshNetworkStateStyle()
|
||||
|
||||
return
|
||||
|
||||
errorString = kwargs.pop('errorString', '')
|
||||
|
||||
self.networkState.setText(f'{_("Network error")} - {remark}')
|
||||
self.networkState.setToolTip(f'{remark}\n{errorString}'.strip())
|
||||
self.networkState.setProperty('networkState', 'failure')
|
||||
|
||||
self.refreshNetworkStateStyle()
|
||||
|
||||
def refreshNetworkStateStyle(self):
|
||||
self.networkState.style().unpolish(self.networkState)
|
||||
self.networkState.style().polish(self.networkState)
|
||||
self.networkState.setVisible(bool(self.networkState.text()))
|
||||
|
||||
@staticmethod
|
||||
def openApplicationFolder():
|
||||
|
||||
Reference in New Issue
Block a user