mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-10 01:54:15 +02:00
[ui][settings] improvements
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QToolButton
|
||||
from io import StringIO
|
||||
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QToolButton, QPushButton
|
||||
|
||||
from bauh.api.abstract.controller import SoftwareManager
|
||||
from bauh.view.qt.components import to_widget
|
||||
from bauh.api.abstract.view import MessageType
|
||||
from bauh.view.qt import dialog
|
||||
from bauh.view.qt.components import to_widget, new_spacer
|
||||
from bauh.view.util.translation import I18n
|
||||
|
||||
|
||||
@@ -15,15 +19,39 @@ class SettingsWindow(QWidget):
|
||||
self.i18n = i18n
|
||||
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
|
||||
|
||||
settings_model = self.manager.get_settings()
|
||||
self.settings_model = self.manager.get_settings()
|
||||
|
||||
self.layout().addWidget(to_widget(settings_model, i18n))
|
||||
self.layout().addWidget(to_widget(self.settings_model, i18n))
|
||||
|
||||
action_bar = QToolBar()
|
||||
action_bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
|
||||
|
||||
bt_save = QToolButton()
|
||||
bt_save.setText('Save')
|
||||
bt_close = QPushButton()
|
||||
bt_close.setText(self.i18n['close'].capitalize())
|
||||
bt_close.clicked.connect(lambda: self.close())
|
||||
action_bar.addWidget(bt_close)
|
||||
|
||||
action_bar.addWidget(new_spacer())
|
||||
|
||||
bt_save = QPushButton()
|
||||
bt_save.setText(self.i18n['save'].capitalize())
|
||||
bt_save.clicked.connect(self._save_settings)
|
||||
action_bar.addWidget(bt_save)
|
||||
|
||||
self.layout().addWidget(action_bar)
|
||||
|
||||
def _save_settings(self):
|
||||
success, warnings = self.manager.save_settings(self.settings_model)
|
||||
|
||||
if success:
|
||||
self.close()
|
||||
else:
|
||||
msg = StringIO()
|
||||
msg.write("It was not possible to properly the settings\n")
|
||||
|
||||
for w in warnings:
|
||||
msg.write(w + '\n')
|
||||
|
||||
msg.seek(0)
|
||||
|
||||
dialog.show_message(title="Warning", body=msg.read(), type_=MessageType.WARNING)
|
||||
|
||||
Reference in New Issue
Block a user