[ui][settings] more improvements and settings

This commit is contained in:
Vinícius Moreira
2020-01-27 19:05:46 -03:00
parent ce673dda5d
commit ab8b7d5f0b
11 changed files with 289 additions and 101 deletions

View File

@@ -1,3 +1,4 @@
import os
from pathlib import Path
from typing import Tuple
@@ -434,6 +435,9 @@ class FormQt(QGroupBox):
chooser = QLineEdit()
chooser.setReadOnly(True)
if c.file_path:
chooser.setText(c.file_path)
chooser.setPlaceholderText(self.i18n['view.components.file_chooser.placeholder'])
def open_chooser(e):
@@ -444,7 +448,12 @@ class FormQt(QGroupBox):
else:
exts = '{}} (*);;'.format(self.i18n['all_files'].capitalize())
file_path, _ = QFileDialog.getOpenFileName(self, self.i18n['file_chooser.title'], str(Path.home()), exts, options=options)
if c.file_path and os.path.isfile(c.file_path):
cur_path = c.file_path
else:
cur_path = str(Path.home())
file_path, _ = QFileDialog.getOpenFileName(self, self.i18n['file_chooser.title'], cur_path, exts, options=options)
if file_path:
c.file_path = file_path
@@ -457,7 +466,8 @@ class FormQt(QGroupBox):
chooser.mousePressEvent = open_chooser
return QLabel(c.label if c.label else ''), chooser
label = self._new_label(c)
return label, chooser
class TabGroupQt(QTabWidget):
@@ -465,6 +475,7 @@ class TabGroupQt(QTabWidget):
def __init__(self, model: TabGroupComponent, i18n: I18n, parent: QWidget = None):
super(TabGroupQt, self).__init__(parent=parent)
self.model = model
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
self.setTabPosition(QTabWidget.North)
for c in model.tabs:

View File

@@ -1,6 +1,7 @@
from io import StringIO
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QToolButton, QPushButton
from PyQt5.QtCore import QSize
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QSizePolicy, QPushButton
from bauh.api.abstract.controller import SoftwareManager
from bauh.api.abstract.view import MessageType
@@ -11,20 +12,22 @@ from bauh.view.util.translation import I18n
class SettingsWindow(QWidget):
def __init__(self, manager: SoftwareManager, i18n: I18n, parent: QWidget = None):
def __init__(self, manager: SoftwareManager, i18n: I18n, screen_size: QSize, parent: QWidget = None):
super(SettingsWindow, self).__init__(parent=parent)
self.setWindowTitle(i18n['settings'].capitalize())
self.setLayout(QVBoxLayout())
self.manager = manager
self.i18n = i18n
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
self.settings_model = self.manager.get_settings()
self.layout().addWidget(to_widget(self.settings_model, i18n))
tab_group = to_widget(self.settings_model, i18n)
tab_group.setMinimumWidth(int(screen_size.width() / 3))
self.layout().addWidget(tab_group)
action_bar = QToolBar()
action_bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
action_bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
bt_close = QPushButton()
bt_close.setText(self.i18n['close'].capitalize())

View File

@@ -1166,7 +1166,7 @@ class ManageWindow(QWidget):
gem_panel.show()
def show_settings_window(self):
self.settings_window = SettingsWindow(self.manager, self.i18n)
self.settings_window = SettingsWindow(self.manager, self.i18n, self.screen_size)
self.settings_window.setMinimumWidth(int(self.screen_size.width() / 4))
self.settings_window.resize(self.size())
self.settings_window.adjustSize()