mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
[ui] feature: themes
This commit is contained in:
@@ -1,16 +1,18 @@
|
||||
import gc
|
||||
from io import StringIO
|
||||
from typing import Optional
|
||||
|
||||
from PyQt5.QtCore import QSize, Qt, QCoreApplication
|
||||
from PyQt5.QtGui import QCursor
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QPushButton
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QPushButton, QHBoxLayout
|
||||
|
||||
from bauh import __app_name__
|
||||
from bauh.api.abstract.controller import SoftwareManager
|
||||
from bauh.api.abstract.view import MessageType
|
||||
from bauh.view.core.controller import GenericSoftwareManager
|
||||
from bauh.view.qt import dialog, css
|
||||
from bauh.view.qt import dialog
|
||||
from bauh.view.qt.components import to_widget, new_spacer
|
||||
from bauh.view.qt.dialog import ConfirmationDialog
|
||||
from bauh.view.qt.qt_utils import centralize
|
||||
from bauh.view.util import util
|
||||
from bauh.view.util.translation import I18n
|
||||
@@ -18,7 +20,7 @@ from bauh.view.util.translation import I18n
|
||||
|
||||
class SettingsWindow(QWidget):
|
||||
|
||||
def __init__(self, manager: SoftwareManager, i18n: I18n, screen_size: QSize, window: QWidget, parent: QWidget = None):
|
||||
def __init__(self, manager: SoftwareManager, i18n: I18n, screen_size: QSize, window: QWidget, parent: Optional[QWidget] = None):
|
||||
super(SettingsWindow, self).__init__(parent=parent, flags=Qt.CustomizeWindowHint | Qt.WindowTitleHint)
|
||||
self.setWindowTitle('{} ({})'.format(i18n['settings'].capitalize(), __app_name__))
|
||||
self.setLayout(QVBoxLayout())
|
||||
@@ -30,28 +32,34 @@ class SettingsWindow(QWidget):
|
||||
self.settings_model = self.manager.get_settings(screen_size.width(), screen_size.height())
|
||||
|
||||
tab_group = to_widget(self.settings_model, i18n)
|
||||
tab_group.setMinimumWidth(int(screen_size.width() / 3))
|
||||
tab_group.setObjectName('settings')
|
||||
self.layout().addWidget(tab_group)
|
||||
|
||||
action_bar = QToolBar()
|
||||
action_bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
|
||||
lower_container = QWidget()
|
||||
lower_container.setObjectName('lower_container')
|
||||
lower_container.setProperty('container', 'true')
|
||||
lower_container.setLayout(QHBoxLayout())
|
||||
lower_container.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
|
||||
|
||||
bt_close = QPushButton()
|
||||
bt_close.setObjectName('cancel')
|
||||
bt_close.setAutoDefault(True)
|
||||
bt_close.setCursor(QCursor(Qt.PointingHandCursor))
|
||||
bt_close.setText(self.i18n['close'].capitalize())
|
||||
bt_close.clicked.connect(lambda: self.close())
|
||||
action_bar.addWidget(bt_close)
|
||||
lower_container.layout().addWidget(bt_close)
|
||||
|
||||
action_bar.addWidget(new_spacer())
|
||||
lower_container.layout().addWidget(new_spacer())
|
||||
|
||||
bt_change = QPushButton()
|
||||
bt_change.setAutoDefault(True)
|
||||
bt_change.setObjectName('ok')
|
||||
bt_change.setCursor(QCursor(Qt.PointingHandCursor))
|
||||
bt_change.setStyleSheet(css.OK_BUTTON)
|
||||
bt_change.setText(self.i18n['change'].capitalize())
|
||||
bt_change.clicked.connect(self._save_settings)
|
||||
action_bar.addWidget(bt_change)
|
||||
lower_container.layout().addWidget(bt_change)
|
||||
|
||||
self.layout().addWidget(action_bar)
|
||||
self.layout().addWidget(lower_container)
|
||||
|
||||
def show(self):
|
||||
super(SettingsWindow, self).show()
|
||||
@@ -83,10 +91,10 @@ class SettingsWindow(QWidget):
|
||||
body=self.i18n['settings.changed.success.warning'],
|
||||
type_=MessageType.INFO)
|
||||
QCoreApplication.exit()
|
||||
elif dialog.ask_confirmation(title=self.i18n['warning'].capitalize(),
|
||||
body="<p>{}</p><p>{}</p>".format(self.i18n['settings.changed.success.warning'],
|
||||
self.i18n['settings.changed.success.reboot']),
|
||||
i18n=self.i18n):
|
||||
elif ConfirmationDialog(title=self.i18n['warning'].capitalize(),
|
||||
body="<p>{}</p><p>{}</p>".format(self.i18n['settings.changed.success.warning'],
|
||||
self.i18n['settings.changed.success.reboot']),
|
||||
i18n=self.i18n).ask():
|
||||
self.close()
|
||||
util.restart_app()
|
||||
else:
|
||||
@@ -109,4 +117,4 @@ class SettingsWindow(QWidget):
|
||||
msg.write('<p style="font-weight: bold">* ' + w + '</p><br/>')
|
||||
|
||||
msg.seek(0)
|
||||
dialog.show_message(title="Warning", body=msg.read(), type_=MessageType.WARNING)
|
||||
dialog.show_message(title=self.i18n['warning'].capitalize(), body=msg.read(), type_=MessageType.WARNING)
|
||||
|
||||
Reference in New Issue
Block a user