[ui][settings] improvements

This commit is contained in:
Vinícius Moreira
2020-01-24 13:21:46 -03:00
parent c8a4370ff0
commit f37e66a63c
10 changed files with 205 additions and 27 deletions

View File

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