[ui] feature: themes

This commit is contained in:
Vinicius Moreira
2020-11-27 15:52:57 -03:00
parent 813c812030
commit 60228eec97
176 changed files with 11941 additions and 2985 deletions

View File

@@ -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)