diff --git a/src/sakia/data/entities/user_parameters.py b/src/sakia/data/entities/user_parameters.py index 90945120195ffe5a07ccac6c9227af5dab192dc4..9bd51205ad63604cef636833f7991f448f4ae52e 100644 --- a/src/sakia/data/entities/user_parameters.py +++ b/src/sakia/data/entities/user_parameters.py @@ -19,6 +19,7 @@ class UserParameters: proxy_port = attr.ib(convert=int, default=8080) proxy_user = attr.ib(convert=str, default="") proxy_password = attr.ib(convert=str, default="") + dark_theme = attr.ib(convert=bool, default=False) def proxy(self): if self.enable_proxy is True: diff --git a/src/sakia/gui/navigation/network/table_model.py b/src/sakia/gui/navigation/network/table_model.py index d0606fe43ffdaf3df4c21796f555a1a5757022d2..30594f64347ba420b76043a9d5876633de208505 100644 --- a/src/sakia/gui/navigation/network/table_model.py +++ b/src/sakia/gui/navigation/network/table_model.py @@ -112,6 +112,9 @@ class NetworkFilterProxyModel(QSortFilterProxyModel): font.setBold(True) return font + if role == Qt.BackgroundColorRole and self.app.parameters.dark_theme: + return source_data.darker() + return source_data @@ -296,6 +299,7 @@ class NetworkTableModel(QAbstractTableModel): return node[col] if role == Qt.BackgroundColorRole: return NetworkTableModel.node_colors[node[NetworkTableModel.columns_types.index('state')]] + if role == Qt.ToolTipRole: return NetworkTableModel.node_states[node[NetworkTableModel.columns_types.index('state')]]() diff --git a/src/sakia/gui/preferences.py b/src/sakia/gui/preferences.py index 856b39aa5783477fffd55844418f9619f3e192f0..0976b485a4677dffbbd4dc5aed933fcc09bed385 100644 --- a/src/sakia/gui/preferences.py +++ b/src/sakia/gui/preferences.py @@ -49,6 +49,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): self.edit_proxy_username.setText(self.app.parameters.proxy_user) self.edit_proxy_password.setText(self.app.parameters.proxy_password) + self.checkbox_dark_theme.setChecked(self.app.parameters.dark_theme) + def handle_proxy_change(self): self.spinbox_proxy_port.setEnabled(self.checkbox_proxy.isChecked()) self.edit_proxy_address.setEnabled(self.checkbox_proxy.isChecked()) @@ -64,7 +66,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): proxy_address=self.edit_proxy_address.text(), proxy_port=self.spinbox_proxy_port.value(), proxy_user=self.edit_proxy_username.text(), - proxy_password=self.edit_proxy_password.text()) + proxy_password=self.edit_proxy_password.text(), + dark_theme=self.checkbox_dark_theme.isChecked()) self.app.save_parameters(parameters) # change UI translation self.app.switch_language() diff --git a/src/sakia/gui/preferences.ui b/src/sakia/gui/preferences.ui index dc5414d20c2e03914622e0beb80962c860e5410d..520a13aa4dda498b94180ef8a8f2637f322a92ae 100644 --- a/src/sakia/gui/preferences.ui +++ b/src/sakia/gui/preferences.ui @@ -96,7 +96,7 @@ <item> <widget class="QStackedWidget" name="stackedWidget"> <property name="currentIndex"> - <number>2</number> + <number>1</number> </property> <widget class="QWidget" name="page"> <layout class="QVBoxLayout" name="verticalLayout_7"> @@ -265,6 +265,33 @@ </item> </layout> </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_11"> + <property name="topMargin"> + <number>6</number> + </property> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="checkbox_dark_theme"> + <property name="text"> + <string>Dark Theme compatibility</string> + </property> + </widget> + </item> + </layout> + </item> <item> <spacer name="verticalSpacer_2"> <property name="orientation">