rbeesoft 1.0.2__py3-none-any.whl → 1.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rbeesoft/app.py +22 -22
- rbeesoft/core/singleton.py +8 -8
- rbeesoft/core/utils/functions.py +9 -9
- rbeesoft/core/utils/logmanager.py +35 -35
- rbeesoft/core/utils/logmanagerlistener.py +2 -2
- rbeesoft/ui/components/__init__.py +0 -0
- rbeesoft/ui/components/splashscreen.py +121 -0
- rbeesoft/ui/constants.py +45 -44
- rbeesoft/ui/mainwindow.py +65 -126
- rbeesoft/ui/panels/defaultpanel.py +12 -12
- rbeesoft/ui/panels/logpanel.py +52 -52
- rbeesoft/ui/panels/mainpanel.py +80 -80
- rbeesoft/ui/panels/settingspanel.py +61 -61
- rbeesoft/ui/panels/stackedpanel.py +21 -21
- rbeesoft/ui/settings.py +31 -31
- rbeesoft/ui/utils.py +31 -31
- {rbeesoft-1.0.2.dist-info → rbeesoft-1.0.3.dist-info}/LICENSE +674 -674
- {rbeesoft-1.0.2.dist-info → rbeesoft-1.0.3.dist-info}/METADATA +1 -1
- rbeesoft-1.0.3.dist-info/RECORD +30 -0
- rbeesoft-1.0.2.dist-info/RECORD +0 -28
- {rbeesoft-1.0.2.dist-info → rbeesoft-1.0.3.dist-info}/WHEEL +0 -0
- {rbeesoft-1.0.2.dist-info → rbeesoft-1.0.3.dist-info}/entry_points.txt +0 -0
rbeesoft/ui/panels/logpanel.py
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
from PySide6.QtWidgets import (
|
|
2
|
-
QWidget,
|
|
3
|
-
QDockWidget,
|
|
4
|
-
QTextEdit,
|
|
5
|
-
QPushButton,
|
|
6
|
-
QVBoxLayout,
|
|
7
|
-
QLabel,
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
import rbeesoft.ui.constants as constants
|
|
11
|
-
|
|
12
|
-
from rbeesoft.core.utils.logmanagerlistener import LogManagerListener
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class LogPanel(QDockWidget, LogManagerListener):
|
|
16
|
-
def __init__(self):
|
|
17
|
-
super(LogPanel, self).__init__()
|
|
18
|
-
self._title_label = None
|
|
19
|
-
self._text_edit = None
|
|
20
|
-
self.init_layout()
|
|
21
|
-
|
|
22
|
-
def title_label(self):
|
|
23
|
-
if not self._title_label:
|
|
24
|
-
self._title_label = QLabel(constants.RBEESOFT_LOG_PANEL_TITLE)
|
|
25
|
-
return self._title_label
|
|
26
|
-
|
|
27
|
-
def text_edit(self):
|
|
28
|
-
if not self._text_edit:
|
|
29
|
-
self._text_edit = QTextEdit()
|
|
30
|
-
return self._text_edit
|
|
31
|
-
|
|
32
|
-
def init_layout(self):
|
|
33
|
-
clear_logs_button = QPushButton(constants.RBEESOFT_LOG_PANEL_CLEAR_LOGS_BUTTON)
|
|
34
|
-
clear_logs_button.clicked.connect(self.handle_clear_logs_button)
|
|
35
|
-
layout = QVBoxLayout()
|
|
36
|
-
# layout.addWidget(self.title_label())
|
|
37
|
-
layout.addWidget(self.text_edit())
|
|
38
|
-
layout.addWidget(clear_logs_button)
|
|
39
|
-
container = QWidget()
|
|
40
|
-
container.setLayout(layout)
|
|
41
|
-
self.setObjectName(constants.RBEESOFT_LOG_PANEL_NAME)
|
|
42
|
-
self.setWindowTitle(self.title_label().text())
|
|
43
|
-
self.setWidget(container)
|
|
44
|
-
|
|
45
|
-
def add_line(self, line):
|
|
46
|
-
self.text_edit().insertPlainText(line + '\n')
|
|
47
|
-
|
|
48
|
-
def handle_clear_logs_button(self):
|
|
49
|
-
self.text_edit().clear()
|
|
50
|
-
|
|
51
|
-
# implements(LogManagerListener)
|
|
52
|
-
def new_message(self, message):
|
|
1
|
+
from PySide6.QtWidgets import (
|
|
2
|
+
QWidget,
|
|
3
|
+
QDockWidget,
|
|
4
|
+
QTextEdit,
|
|
5
|
+
QPushButton,
|
|
6
|
+
QVBoxLayout,
|
|
7
|
+
QLabel,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
import rbeesoft.ui.constants as constants
|
|
11
|
+
|
|
12
|
+
from rbeesoft.core.utils.logmanagerlistener import LogManagerListener
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class LogPanel(QDockWidget, LogManagerListener):
|
|
16
|
+
def __init__(self):
|
|
17
|
+
super(LogPanel, self).__init__()
|
|
18
|
+
self._title_label = None
|
|
19
|
+
self._text_edit = None
|
|
20
|
+
self.init_layout()
|
|
21
|
+
|
|
22
|
+
def title_label(self):
|
|
23
|
+
if not self._title_label:
|
|
24
|
+
self._title_label = QLabel(constants.RBEESOFT_LOG_PANEL_TITLE)
|
|
25
|
+
return self._title_label
|
|
26
|
+
|
|
27
|
+
def text_edit(self):
|
|
28
|
+
if not self._text_edit:
|
|
29
|
+
self._text_edit = QTextEdit()
|
|
30
|
+
return self._text_edit
|
|
31
|
+
|
|
32
|
+
def init_layout(self):
|
|
33
|
+
clear_logs_button = QPushButton(constants.RBEESOFT_LOG_PANEL_CLEAR_LOGS_BUTTON)
|
|
34
|
+
clear_logs_button.clicked.connect(self.handle_clear_logs_button)
|
|
35
|
+
layout = QVBoxLayout()
|
|
36
|
+
# layout.addWidget(self.title_label())
|
|
37
|
+
layout.addWidget(self.text_edit())
|
|
38
|
+
layout.addWidget(clear_logs_button)
|
|
39
|
+
container = QWidget()
|
|
40
|
+
container.setLayout(layout)
|
|
41
|
+
self.setObjectName(constants.RBEESOFT_LOG_PANEL_NAME)
|
|
42
|
+
self.setWindowTitle(self.title_label().text())
|
|
43
|
+
self.setWidget(container)
|
|
44
|
+
|
|
45
|
+
def add_line(self, line):
|
|
46
|
+
self.text_edit().insertPlainText(line + '\n')
|
|
47
|
+
|
|
48
|
+
def handle_clear_logs_button(self):
|
|
49
|
+
self.text_edit().clear()
|
|
50
|
+
|
|
51
|
+
# implements(LogManagerListener)
|
|
52
|
+
def new_message(self, message):
|
|
53
53
|
self.add_line(message)
|
rbeesoft/ui/panels/mainpanel.py
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import webbrowser
|
|
2
|
-
|
|
3
|
-
from PySide6.QtWidgets import (
|
|
4
|
-
QWidget,
|
|
5
|
-
QLabel,
|
|
6
|
-
QPushButton,
|
|
7
|
-
QVBoxLayout,
|
|
8
|
-
QDockWidget,
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
import rbeesoft.ui.constants as constants
|
|
12
|
-
|
|
13
|
-
from rbeesoft.ui.settings import Settings
|
|
14
|
-
from rbeesoft.ui.panels.stackedpanel import StackedPanel
|
|
15
|
-
from rbeesoft.core.utils.logmanager import LogManager
|
|
16
|
-
|
|
17
|
-
LOG = LogManager()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class MainPanel(QDockWidget):
|
|
21
|
-
def __init__(self, parent):
|
|
22
|
-
super(MainPanel, self).__init__(parent)
|
|
23
|
-
self._settings = None
|
|
24
|
-
self._title_label = None
|
|
25
|
-
self._donate_button = None
|
|
26
|
-
self._stacked_panel = None
|
|
27
|
-
self._panels = {}
|
|
28
|
-
self.init_layout()
|
|
29
|
-
|
|
30
|
-
def init_layout(self):
|
|
31
|
-
layout = QVBoxLayout()
|
|
32
|
-
layout.addWidget(self.title_label())
|
|
33
|
-
# layout.addWidget(self.donate_button())
|
|
34
|
-
layout.addWidget(self.stacked_panel())
|
|
35
|
-
container = QWidget()
|
|
36
|
-
container.setLayout(layout)
|
|
37
|
-
self.setObjectName(constants.RBEESOFT_MAIN_PANEL_NAME)
|
|
38
|
-
self.setWidget(container)
|
|
39
|
-
|
|
40
|
-
# GETTERS
|
|
41
|
-
|
|
42
|
-
def settings(self):
|
|
43
|
-
if not self._settings:
|
|
44
|
-
self._settings = Settings()
|
|
45
|
-
return self._settings
|
|
46
|
-
|
|
47
|
-
def title_label(self):
|
|
48
|
-
if not self._title_label:
|
|
49
|
-
self._title_label = QLabel('')
|
|
50
|
-
self._title_label.setStyleSheet(constants.RBEESOFT_MAIN_PANEL_NAME_TITLE_LABEL_STYLESHEET)
|
|
51
|
-
return self._title_label
|
|
52
|
-
|
|
53
|
-
def donate_button(self):
|
|
54
|
-
if not self._donate_button:
|
|
55
|
-
self._donate_button = QPushButton(constants.RBEESOFT_DONATE_BUTTON_TEXT)
|
|
56
|
-
self._donate_button.setStyleSheet(constants.RBEESOFT_DONATE_BUTTON_STYLESHEET)
|
|
57
|
-
self._donate_button.clicked.connect(self.handle_donate_button)
|
|
58
|
-
return self._donate_button
|
|
59
|
-
|
|
60
|
-
def stacked_panel(self):
|
|
61
|
-
if not self._stacked_panel:
|
|
62
|
-
self._stacked_panel = StackedPanel()
|
|
63
|
-
return self._stacked_panel
|
|
64
|
-
|
|
65
|
-
def panels(self):
|
|
66
|
-
return self._panels
|
|
67
|
-
|
|
68
|
-
# ADDING PANELS
|
|
69
|
-
|
|
70
|
-
def add_panel(self, panel, name):
|
|
71
|
-
self.panels()[name] = panel.title()
|
|
72
|
-
self.stacked_panel().add_panel(panel, name)
|
|
73
|
-
|
|
74
|
-
def select_panel(self, name):
|
|
75
|
-
self.title_label().setText(self.panels().get(name))
|
|
76
|
-
self.stacked_panel().switch_to(name)
|
|
77
|
-
|
|
78
|
-
# EVENT HANDLERS
|
|
79
|
-
|
|
80
|
-
def handle_donate_button(self):
|
|
1
|
+
import webbrowser
|
|
2
|
+
|
|
3
|
+
from PySide6.QtWidgets import (
|
|
4
|
+
QWidget,
|
|
5
|
+
QLabel,
|
|
6
|
+
QPushButton,
|
|
7
|
+
QVBoxLayout,
|
|
8
|
+
QDockWidget,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
import rbeesoft.ui.constants as constants
|
|
12
|
+
|
|
13
|
+
from rbeesoft.ui.settings import Settings
|
|
14
|
+
from rbeesoft.ui.panels.stackedpanel import StackedPanel
|
|
15
|
+
from rbeesoft.core.utils.logmanager import LogManager
|
|
16
|
+
|
|
17
|
+
LOG = LogManager()
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class MainPanel(QDockWidget):
|
|
21
|
+
def __init__(self, parent):
|
|
22
|
+
super(MainPanel, self).__init__(parent)
|
|
23
|
+
self._settings = None
|
|
24
|
+
self._title_label = None
|
|
25
|
+
self._donate_button = None
|
|
26
|
+
self._stacked_panel = None
|
|
27
|
+
self._panels = {}
|
|
28
|
+
self.init_layout()
|
|
29
|
+
|
|
30
|
+
def init_layout(self):
|
|
31
|
+
layout = QVBoxLayout()
|
|
32
|
+
layout.addWidget(self.title_label())
|
|
33
|
+
# layout.addWidget(self.donate_button())
|
|
34
|
+
layout.addWidget(self.stacked_panel())
|
|
35
|
+
container = QWidget()
|
|
36
|
+
container.setLayout(layout)
|
|
37
|
+
self.setObjectName(constants.RBEESOFT_MAIN_PANEL_NAME)
|
|
38
|
+
self.setWidget(container)
|
|
39
|
+
|
|
40
|
+
# GETTERS
|
|
41
|
+
|
|
42
|
+
def settings(self):
|
|
43
|
+
if not self._settings:
|
|
44
|
+
self._settings = Settings()
|
|
45
|
+
return self._settings
|
|
46
|
+
|
|
47
|
+
def title_label(self):
|
|
48
|
+
if not self._title_label:
|
|
49
|
+
self._title_label = QLabel('')
|
|
50
|
+
self._title_label.setStyleSheet(constants.RBEESOFT_MAIN_PANEL_NAME_TITLE_LABEL_STYLESHEET)
|
|
51
|
+
return self._title_label
|
|
52
|
+
|
|
53
|
+
def donate_button(self):
|
|
54
|
+
if not self._donate_button:
|
|
55
|
+
self._donate_button = QPushButton(constants.RBEESOFT_DONATE_BUTTON_TEXT)
|
|
56
|
+
self._donate_button.setStyleSheet(constants.RBEESOFT_DONATE_BUTTON_STYLESHEET)
|
|
57
|
+
self._donate_button.clicked.connect(self.handle_donate_button)
|
|
58
|
+
return self._donate_button
|
|
59
|
+
|
|
60
|
+
def stacked_panel(self):
|
|
61
|
+
if not self._stacked_panel:
|
|
62
|
+
self._stacked_panel = StackedPanel()
|
|
63
|
+
return self._stacked_panel
|
|
64
|
+
|
|
65
|
+
def panels(self):
|
|
66
|
+
return self._panels
|
|
67
|
+
|
|
68
|
+
# ADDING PANELS
|
|
69
|
+
|
|
70
|
+
def add_panel(self, panel, name):
|
|
71
|
+
self.panels()[name] = panel.title()
|
|
72
|
+
self.stacked_panel().add_panel(panel, name)
|
|
73
|
+
|
|
74
|
+
def select_panel(self, name):
|
|
75
|
+
self.title_label().setText(self.panels().get(name))
|
|
76
|
+
self.stacked_panel().switch_to(name)
|
|
77
|
+
|
|
78
|
+
# EVENT HANDLERS
|
|
79
|
+
|
|
80
|
+
def handle_donate_button(self):
|
|
81
81
|
webbrowser.open(constants.RBEESOFT_DONATE_URL)
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
from PySide6.QtWidgets import (
|
|
2
|
-
QTableWidget,
|
|
3
|
-
QTableWidgetItem,
|
|
4
|
-
QHeaderView,
|
|
5
|
-
QVBoxLayout,
|
|
6
|
-
QSizePolicy,
|
|
7
|
-
)
|
|
8
|
-
from PySide6.QtCore import Qt
|
|
9
|
-
|
|
10
|
-
import rbeesoft.ui.constants as constants
|
|
11
|
-
|
|
12
|
-
from rbeesoft.ui.settings import Settings
|
|
13
|
-
from rbeesoft.ui.panels.defaultpanel import DefaultPanel
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class SettingsPanel(DefaultPanel):
|
|
17
|
-
def __init__(self):
|
|
18
|
-
super(SettingsPanel, self).__init__()
|
|
19
|
-
self.set_title(constants.RBEESOFT_SETTINGS_PANEL_TITLE)
|
|
20
|
-
self._title_label = None
|
|
21
|
-
self._settings = None
|
|
22
|
-
self._settings_table_widget = None
|
|
23
|
-
self.init_layout()
|
|
24
|
-
|
|
25
|
-
def settings(self):
|
|
26
|
-
if not self._settings:
|
|
27
|
-
self._settings = Settings()
|
|
28
|
-
return self._settings
|
|
29
|
-
|
|
30
|
-
def settings_table_widget(self):
|
|
31
|
-
if not self._settings_table_widget:
|
|
32
|
-
self._settings_table_widget = QTableWidget()
|
|
33
|
-
self._settings_table_widget.setSortingEnabled(True)
|
|
34
|
-
self._settings_table_widget.horizontalHeader().setVisible(True)
|
|
35
|
-
self._settings_table_widget.verticalHeader().setVisible(False)
|
|
36
|
-
self._settings_table_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
|
37
|
-
self._settings_table_widget.setRowCount(len(self.settings().allKeys()))
|
|
38
|
-
self._settings_table_widget.setColumnCount(2)
|
|
39
|
-
self._settings_table_widget.setAlternatingRowColors(True)
|
|
40
|
-
row_index = 0
|
|
41
|
-
for key in self.settings().allKeys():
|
|
42
|
-
self._settings_table_widget.setItem(row_index, 0, QTableWidgetItem(key))
|
|
43
|
-
value = self.settings().get(key)
|
|
44
|
-
if isinstance(value, str) or isinstance(value, int) or isinstance(value, bool) or isinstance(value, float):
|
|
45
|
-
self._settings_table_widget.setItem(row_index, 1, QTableWidgetItem(str(value)))
|
|
46
|
-
else:
|
|
47
|
-
self._settings_table_widget.setItem(row_index, 1, QTableWidgetItem(constants.RBEESOFT_SETTINGS_PANEL_CANNOT_DISPLAY_MESSAGE))
|
|
48
|
-
row_index += 1
|
|
49
|
-
self._settings_table_widget.resizeColumnsToContents()
|
|
50
|
-
self._settings_table_widget.sortItems(0, Qt.AscendingOrder)
|
|
51
|
-
self._settings_table_widget.setHorizontalHeaderLabels([
|
|
52
|
-
constants.RBEESOFT_SETTINGS_PANEL_NAME_COLUMN_NAME, constants.RBEESOFT_SETTINGS_PANEL_VALUE_COLUMN_NAME])
|
|
53
|
-
self._settings_table_widget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
|
|
54
|
-
self._settings_table_widget.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
|
|
55
|
-
self._settings_table_widget.horizontalHeader().setDefaultAlignment(Qt.AlignLeft | Qt.AlignVCenter)
|
|
56
|
-
return self._settings_table_widget
|
|
57
|
-
|
|
58
|
-
def init_layout(self):
|
|
59
|
-
layout = QVBoxLayout()
|
|
60
|
-
layout.addWidget(self.settings_table_widget())
|
|
61
|
-
self.setLayout(layout)
|
|
1
|
+
from PySide6.QtWidgets import (
|
|
2
|
+
QTableWidget,
|
|
3
|
+
QTableWidgetItem,
|
|
4
|
+
QHeaderView,
|
|
5
|
+
QVBoxLayout,
|
|
6
|
+
QSizePolicy,
|
|
7
|
+
)
|
|
8
|
+
from PySide6.QtCore import Qt
|
|
9
|
+
|
|
10
|
+
import rbeesoft.ui.constants as constants
|
|
11
|
+
|
|
12
|
+
from rbeesoft.ui.settings import Settings
|
|
13
|
+
from rbeesoft.ui.panels.defaultpanel import DefaultPanel
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class SettingsPanel(DefaultPanel):
|
|
17
|
+
def __init__(self):
|
|
18
|
+
super(SettingsPanel, self).__init__()
|
|
19
|
+
self.set_title(constants.RBEESOFT_SETTINGS_PANEL_TITLE)
|
|
20
|
+
self._title_label = None
|
|
21
|
+
self._settings = None
|
|
22
|
+
self._settings_table_widget = None
|
|
23
|
+
self.init_layout()
|
|
24
|
+
|
|
25
|
+
def settings(self):
|
|
26
|
+
if not self._settings:
|
|
27
|
+
self._settings = Settings()
|
|
28
|
+
return self._settings
|
|
29
|
+
|
|
30
|
+
def settings_table_widget(self):
|
|
31
|
+
if not self._settings_table_widget:
|
|
32
|
+
self._settings_table_widget = QTableWidget()
|
|
33
|
+
self._settings_table_widget.setSortingEnabled(True)
|
|
34
|
+
self._settings_table_widget.horizontalHeader().setVisible(True)
|
|
35
|
+
self._settings_table_widget.verticalHeader().setVisible(False)
|
|
36
|
+
self._settings_table_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
|
37
|
+
self._settings_table_widget.setRowCount(len(self.settings().allKeys()))
|
|
38
|
+
self._settings_table_widget.setColumnCount(2)
|
|
39
|
+
self._settings_table_widget.setAlternatingRowColors(True)
|
|
40
|
+
row_index = 0
|
|
41
|
+
for key in self.settings().allKeys():
|
|
42
|
+
self._settings_table_widget.setItem(row_index, 0, QTableWidgetItem(key))
|
|
43
|
+
value = self.settings().get(key)
|
|
44
|
+
if isinstance(value, str) or isinstance(value, int) or isinstance(value, bool) or isinstance(value, float):
|
|
45
|
+
self._settings_table_widget.setItem(row_index, 1, QTableWidgetItem(str(value)))
|
|
46
|
+
else:
|
|
47
|
+
self._settings_table_widget.setItem(row_index, 1, QTableWidgetItem(constants.RBEESOFT_SETTINGS_PANEL_CANNOT_DISPLAY_MESSAGE))
|
|
48
|
+
row_index += 1
|
|
49
|
+
self._settings_table_widget.resizeColumnsToContents()
|
|
50
|
+
self._settings_table_widget.sortItems(0, Qt.AscendingOrder)
|
|
51
|
+
self._settings_table_widget.setHorizontalHeaderLabels([
|
|
52
|
+
constants.RBEESOFT_SETTINGS_PANEL_NAME_COLUMN_NAME, constants.RBEESOFT_SETTINGS_PANEL_VALUE_COLUMN_NAME])
|
|
53
|
+
self._settings_table_widget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
|
|
54
|
+
self._settings_table_widget.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
|
|
55
|
+
self._settings_table_widget.horizontalHeader().setDefaultAlignment(Qt.AlignLeft | Qt.AlignVCenter)
|
|
56
|
+
return self._settings_table_widget
|
|
57
|
+
|
|
58
|
+
def init_layout(self):
|
|
59
|
+
layout = QVBoxLayout()
|
|
60
|
+
layout.addWidget(self.settings_table_widget())
|
|
61
|
+
self.setLayout(layout)
|
|
62
62
|
self.setObjectName(constants.RBEESOFT_SETTINGS_PANEL_NAME)
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
from PySide6.QtWidgets import QStackedWidget
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class StackedPanel(QStackedWidget):
|
|
5
|
-
def __init__(self):
|
|
6
|
-
super(StackedPanel, self).__init__()
|
|
7
|
-
self._current_panel_name = None
|
|
8
|
-
self._panels = {}
|
|
9
|
-
|
|
10
|
-
def add_panel(self, panel, name):
|
|
11
|
-
if name not in self._panels.keys():
|
|
12
|
-
self._panels[name] = panel
|
|
13
|
-
self._current_panel_name = name
|
|
14
|
-
self.addWidget(panel)
|
|
15
|
-
|
|
16
|
-
def current_panel_name(self):
|
|
17
|
-
return self._current_panel_name
|
|
18
|
-
|
|
19
|
-
def switch_to(self, name):
|
|
20
|
-
panel = self._panels[name]
|
|
21
|
-
self._current_panel_name = name
|
|
1
|
+
from PySide6.QtWidgets import QStackedWidget
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class StackedPanel(QStackedWidget):
|
|
5
|
+
def __init__(self):
|
|
6
|
+
super(StackedPanel, self).__init__()
|
|
7
|
+
self._current_panel_name = None
|
|
8
|
+
self._panels = {}
|
|
9
|
+
|
|
10
|
+
def add_panel(self, panel, name):
|
|
11
|
+
if name not in self._panels.keys():
|
|
12
|
+
self._panels[name] = panel
|
|
13
|
+
self._current_panel_name = name
|
|
14
|
+
self.addWidget(panel)
|
|
15
|
+
|
|
16
|
+
def current_panel_name(self):
|
|
17
|
+
return self._current_panel_name
|
|
18
|
+
|
|
19
|
+
def switch_to(self, name):
|
|
20
|
+
panel = self._panels[name]
|
|
21
|
+
self._current_panel_name = name
|
|
22
22
|
self.setCurrentWidget(panel)
|
rbeesoft/ui/settings.py
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
from PySide6.QtCore import QSettings
|
|
2
|
-
|
|
3
|
-
import rbeesoft.ui.constants as constants
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Settings(QSettings):
|
|
7
|
-
def __init__(self):
|
|
8
|
-
super(Settings, self).__init__(
|
|
9
|
-
QSettings.IniFormat,
|
|
10
|
-
QSettings.UserScope,
|
|
11
|
-
constants.RBEESOFT_BUNDLE_IDENTIFIER,
|
|
12
|
-
constants.RBEESOFT_NAME,
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
def prepend_bundle_identifier_and_name(self, name):
|
|
16
|
-
return '{}.{}.{}'.format(
|
|
17
|
-
constants.RBEESOFT_BUNDLE_IDENTIFIER,
|
|
18
|
-
constants.RBEESOFT_NAME,
|
|
19
|
-
name,
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
def get(self, name, default=None):
|
|
23
|
-
if not name.startswith(constants.RBEESOFT_BUNDLE_IDENTIFIER):
|
|
24
|
-
name = self.prepend_bundle_identifier_and_name(name)
|
|
25
|
-
value = self.value(name)
|
|
26
|
-
if value is None or value == '':
|
|
27
|
-
return default
|
|
28
|
-
return value
|
|
29
|
-
|
|
30
|
-
def set(self, name, value):
|
|
31
|
-
name = self.prepend_bundle_identifier_and_name(name)
|
|
1
|
+
from PySide6.QtCore import QSettings
|
|
2
|
+
|
|
3
|
+
import rbeesoft.ui.constants as constants
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Settings(QSettings):
|
|
7
|
+
def __init__(self):
|
|
8
|
+
super(Settings, self).__init__(
|
|
9
|
+
QSettings.IniFormat,
|
|
10
|
+
QSettings.UserScope,
|
|
11
|
+
constants.RBEESOFT_BUNDLE_IDENTIFIER,
|
|
12
|
+
constants.RBEESOFT_NAME,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def prepend_bundle_identifier_and_name(self, name):
|
|
16
|
+
return '{}.{}.{}'.format(
|
|
17
|
+
constants.RBEESOFT_BUNDLE_IDENTIFIER,
|
|
18
|
+
constants.RBEESOFT_NAME,
|
|
19
|
+
name,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
def get(self, name, default=None):
|
|
23
|
+
if not name.startswith(constants.RBEESOFT_BUNDLE_IDENTIFIER):
|
|
24
|
+
name = self.prepend_bundle_identifier_and_name(name)
|
|
25
|
+
value = self.value(name)
|
|
26
|
+
if value is None or value == '':
|
|
27
|
+
return default
|
|
28
|
+
return value
|
|
29
|
+
|
|
30
|
+
def set(self, name, value):
|
|
31
|
+
name = self.prepend_bundle_identifier_and_name(name)
|
|
32
32
|
self.setValue(name, value)
|
rbeesoft/ui/utils.py
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import sys
|
|
3
|
-
|
|
4
|
-
from PySide6.QtGui import QPixmap, QPainter, QColor
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def resource_path(relative_path):
|
|
8
|
-
base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
9
|
-
return os.path.join(base_path, relative_path)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def version(app_name):
|
|
13
|
-
with open(resource_path(f'{app_name}/resources/VERSION'), 'r') as f:
|
|
14
|
-
return f.readline().strip()
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def is_macos():
|
|
18
|
-
return sys.platform.startswith('darwin')
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def icon(parent, icon_type):
|
|
22
|
-
return parent.style().standardIcon(icon_type)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def set_opacity(pixmap, opacity):
|
|
26
|
-
result = QPixmap(pixmap.size())
|
|
27
|
-
result.fill(QColor(0, 0, 0, 0))
|
|
28
|
-
painter = QPainter(result)
|
|
29
|
-
painter.setOpacity(opacity)
|
|
30
|
-
painter.drawPixmap(0, 0, pixmap)
|
|
31
|
-
painter.end()
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
from PySide6.QtGui import QPixmap, QPainter, QColor
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def resource_path(relative_path):
|
|
8
|
+
base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
9
|
+
return os.path.join(base_path, relative_path)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def version(app_name):
|
|
13
|
+
with open(resource_path(f'{app_name}/resources/VERSION'), 'r') as f:
|
|
14
|
+
return f.readline().strip()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def is_macos():
|
|
18
|
+
return sys.platform.startswith('darwin')
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def icon(parent, icon_type):
|
|
22
|
+
return parent.style().standardIcon(icon_type)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def set_opacity(pixmap, opacity):
|
|
26
|
+
result = QPixmap(pixmap.size())
|
|
27
|
+
result.fill(QColor(0, 0, 0, 0))
|
|
28
|
+
painter = QPainter(result)
|
|
29
|
+
painter.setOpacity(opacity)
|
|
30
|
+
painter.drawPixmap(0, 0, pixmap)
|
|
31
|
+
painter.end()
|
|
32
32
|
return result
|