diff --git a/gui/gui.py b/gui/gui.py
index 1ddffdc..b5ff269 100644
--- a/gui/gui.py
+++ b/gui/gui.py
@@ -78,7 +78,12 @@ class Ui_MainWindow(object):
item.setIcon(icon8)
self.menu.addItem(item)
self.centralwidget_lay.addWidget(self.menu)
- self.content = QtWidgets.QStackedWidget(self.centralwidget)
+ self.main_content_to_player_box = QtWidgets.QWidget(self.centralwidget)
+ self.main_content_to_player_box.setObjectName("main_content_to_player_box")
+ self.main_content_to_player_box_lay = QtWidgets.QVBoxLayout(self.main_content_to_player_box)
+ self.main_content_to_player_box_lay.setContentsMargins(0, 0, 0, 0)
+ self.main_content_to_player_box_lay.setObjectName("main_content_to_player_box_lay")
+ self.content = QtWidgets.QStackedWidget(self.main_content_to_player_box)
self.content.setObjectName("content")
self.pads_page = QtWidgets.QWidget()
self.pads_page.setObjectName("pads_page")
@@ -105,6 +110,7 @@ class Ui_MainWindow(object):
self.pads_collection_2_tab = QtWidgets.QWidget()
self.pads_collection_2_tab.setObjectName("pads_collection_2_tab")
self.pads_collection_2_tab_lay = QtWidgets.QVBoxLayout(self.pads_collection_2_tab)
+ self.pads_collection_2_tab_lay.setContentsMargins(0, 0, 0, 0)
self.pads_collection_2_tab_lay.setObjectName("pads_collection_2_tab_lay")
self.pads_collection_2_widget = QtWidgets.QWidget(self.pads_collection_2_tab)
self.pads_collection_2_widget.setMaximumSize(QtCore.QSize(16777215, 16777215))
@@ -115,8 +121,8 @@ class Ui_MainWindow(object):
self.pads_content.addTab(self.pads_collection_2_tab, "")
self.edit_pads_tab = QtWidgets.QWidget()
self.edit_pads_tab.setObjectName("edit_pads_tab")
- self.verticalLayout = QtWidgets.QVBoxLayout(self.edit_pads_tab)
- self.verticalLayout.setObjectName("verticalLayout")
+ self.edit_pads_tab_lay = QtWidgets.QVBoxLayout(self.edit_pads_tab)
+ self.edit_pads_tab_lay.setObjectName("edit_pads_tab_lay")
self.edit_collections_label = QtWidgets.QLabel(self.edit_pads_tab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -124,7 +130,7 @@ class Ui_MainWindow(object):
sizePolicy.setHeightForWidth(self.edit_collections_label.sizePolicy().hasHeightForWidth())
self.edit_collections_label.setSizePolicy(sizePolicy)
self.edit_collections_label.setObjectName("edit_collections_label")
- self.verticalLayout.addWidget(self.edit_collections_label)
+ self.edit_pads_tab_lay.addWidget(self.edit_collections_label)
self.edit_pads_collections_widget = QtWidgets.QWidget(self.edit_pads_tab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -132,9 +138,9 @@ class Ui_MainWindow(object):
sizePolicy.setHeightForWidth(self.edit_pads_collections_widget.sizePolicy().hasHeightForWidth())
self.edit_pads_collections_widget.setSizePolicy(sizePolicy)
self.edit_pads_collections_widget.setObjectName("edit_pads_collections_widget")
- self.horizontalLayout = QtWidgets.QHBoxLayout(self.edit_pads_collections_widget)
- self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
- self.horizontalLayout.setObjectName("horizontalLayout")
+ self.edit_pads_collections_widget_lay = QtWidgets.QHBoxLayout(self.edit_pads_collections_widget)
+ self.edit_pads_collections_widget_lay.setContentsMargins(0, 0, 0, 0)
+ self.edit_pads_collections_widget_lay.setObjectName("edit_pads_collections_widget_lay")
self.edit_first_pads_collection_widget = QtWidgets.QWidget(self.edit_pads_collections_widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
@@ -154,7 +160,7 @@ class Ui_MainWindow(object):
self.edit_first_pads_collection_list.setDragEnabled(False)
self.edit_first_pads_collection_list.setObjectName("edit_first_pads_collection_list")
self.edit_first_pads_collection_lay.addWidget(self.edit_first_pads_collection_list)
- self.horizontalLayout.addWidget(self.edit_first_pads_collection_widget)
+ self.edit_pads_collections_widget_lay.addWidget(self.edit_first_pads_collection_widget)
self.edit_second_pads_collection_widget = QtWidgets.QWidget(self.edit_pads_collections_widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
@@ -162,20 +168,20 @@ class Ui_MainWindow(object):
sizePolicy.setHeightForWidth(self.edit_second_pads_collection_widget.sizePolicy().hasHeightForWidth())
self.edit_second_pads_collection_widget.setSizePolicy(sizePolicy)
self.edit_second_pads_collection_widget.setObjectName("edit_second_pads_collection_widget")
- self.edit_first_pads_collection_lay_2 = QtWidgets.QVBoxLayout(self.edit_second_pads_collection_widget)
- self.edit_first_pads_collection_lay_2.setContentsMargins(0, 0, 0, 0)
- self.edit_first_pads_collection_lay_2.setObjectName("edit_first_pads_collection_lay_2")
+ self.edit_second_pads_collection_lay = QtWidgets.QVBoxLayout(self.edit_second_pads_collection_widget)
+ self.edit_second_pads_collection_lay.setContentsMargins(0, 0, 0, 0)
+ self.edit_second_pads_collection_lay.setObjectName("edit_second_pads_collection_lay")
self.edit_second_pads_collection_label = QtWidgets.QLabel(self.edit_second_pads_collection_widget)
self.edit_second_pads_collection_label.setObjectName("edit_second_pads_collection_label")
- self.edit_first_pads_collection_lay_2.addWidget(self.edit_second_pads_collection_label)
+ self.edit_second_pads_collection_lay.addWidget(self.edit_second_pads_collection_label)
self.edit_second_pads_collection_list = QtWidgets.QListWidget(self.edit_second_pads_collection_widget)
self.edit_second_pads_collection_list.setStyleSheet("font: 15pt \"Segoe UI\";")
self.edit_second_pads_collection_list.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed|QtWidgets.QAbstractItemView.SelectedClicked)
self.edit_second_pads_collection_list.setDragEnabled(True)
self.edit_second_pads_collection_list.setObjectName("edit_second_pads_collection_list")
- self.edit_first_pads_collection_lay_2.addWidget(self.edit_second_pads_collection_list)
- self.horizontalLayout.addWidget(self.edit_second_pads_collection_widget)
- self.verticalLayout.addWidget(self.edit_pads_collections_widget)
+ self.edit_second_pads_collection_lay.addWidget(self.edit_second_pads_collection_list)
+ self.edit_pads_collections_widget_lay.addWidget(self.edit_second_pads_collection_widget)
+ self.edit_pads_tab_lay.addWidget(self.edit_pads_collections_widget)
self.pads_content.addTab(self.edit_pads_tab, "")
self.pads_page_lay.addWidget(self.pads_content)
self.content.addWidget(self.pads_page)
@@ -197,7 +203,8 @@ class Ui_MainWindow(object):
self.settings_page = QtWidgets.QWidget()
self.settings_page.setObjectName("settings_page")
self.content.addWidget(self.settings_page)
- self.centralwidget_lay.addWidget(self.content)
+ self.main_content_to_player_box_lay.addWidget(self.content)
+ self.centralwidget_lay.addWidget(self.main_content_to_player_box)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
diff --git a/gui/gui.ui b/gui/gui.ui
index 5fd7132..f73c471 100644
--- a/gui/gui.ui
+++ b/gui/gui.ui
@@ -430,110 +430,61 @@ QListWidget:item:selected {
-
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- QTabWidget::North
-
-
- QTabWidget::Rounded
-
-
- 0
-
-
- true
-
-
-
-
- 16777215
- 16777215
-
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+
+ 0
-
- Pads collection 1
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
- Pads collection 2
-
-
- -
-
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ QTabWidget::North
+
+
+ QTabWidget::Rounded
+
+
+ 0
+
+
+ true
+
+
16777215
16777215
-
-
-
-
-
-
-
- Edit pads
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Double click row to add path to file
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
+
+ Pads collection 1
+
+
0
@@ -547,58 +498,69 @@ QListWidget:item:selected {
0
-
-
+
+
+
+
+
+
+
+
+ Pads collection 2
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 16777215
+ 16777215
+
+
+
+
+
+
+
+
+
+ Edit pads
+
+
+ -
+
-
+
0
0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Pads collection 1
-
-
-
- -
-
-
- font: 15pt "Segoe UI";
-
-
- QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked
-
-
- false
-
-
-
-
+
+ Double click row to add path to file
+
-
-
+
-
+
0
0
-
+
0
@@ -612,23 +574,91 @@ QListWidget:item:selected {
0
-
-
-
- Pads collection 2
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Pads collection 1
+
+
+
+ -
+
+
+ font: 15pt "Segoe UI";
+
+
+ QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked
+
+
+ false
+
+
+
+
-
-
-
- font: 15pt "Segoe UI";
-
-
- QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked
-
-
- true
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Pads collection 2
+
+
+
+ -
+
+
+ font: 15pt "Segoe UI";
+
+
+ QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked
+
+
+ true
+
+
+
+
@@ -636,19 +666,19 @@ QListWidget:item:selected {
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/gui/modules/pads/fill_pads_from_settings.py b/gui/modules/pads/fill_pads_from_settings.py
index fd730ef..84ef549 100644
--- a/gui/modules/pads/fill_pads_from_settings.py
+++ b/gui/modules/pads/fill_pads_from_settings.py
@@ -1,4 +1,5 @@
import os
+from modules.padslist import Pads
from gui.gui import Ui_MainWindow
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QMainWindow
@@ -22,12 +23,24 @@ def fill_pads(ui: Ui_MainWindow, MainWindow: QMainWindow):
button.setText(os.path.split(item)[-1] if os.path.exists(item) else "File doesn't exist")
button.clicked.connect(lambda: print(ui.first_pads_dict[MainWindow.sender().text()]
if MainWindow.sender().text() != "File doesn't exist" else None))
- print(ui.first_pads_dict)
+ print('First: ', ui.first_pads_dict)
+ Pads.update("first_pads", ui.first_pads_dict)
ui.pads_collection_1_lay.addWidget(button, i // 4, i % 4)
- for i in range(16):
- item = QtWidgets.QListWidgetItem()
- item.setFlags(
- QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled
- )
- ui.edit_second_pads_collection_list.addItem(item)
+ second_pads_list = \
+ [ui.edit_second_pads_collection_list.item(x).text() for x in range(ui.edit_second_pads_collection_list.count())]
+
+ for i in range(len(second_pads_list)):
+ item = second_pads_list[i]
+ if item == '':
+ continue
+ ui.second_pads_dict[os.path.split(item)[-1]] = item
+ button = QtWidgets.QPushButton()
+ button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
+ QtWidgets.QSizePolicy.Expanding))
+ button.setText(os.path.split(item)[-1] if os.path.exists(item) else "File doesn't exist")
+ button.clicked.connect(lambda: print(ui.second_pads_dict[MainWindow.sender().text()]
+ if MainWindow.sender().text() != "File doesn't exist" else None))
+ print('Second', ui.second_pads_dict)
+ Pads.update("second_pads", ui.second_pads_dict)
+ ui.pads_collection_2_lay.addWidget(button, i // 4, i % 4)
diff --git a/gui/modules/pads/handlers.py b/gui/modules/pads/handlers.py
index f6ece1f..453235d 100644
--- a/gui/modules/pads/handlers.py
+++ b/gui/modules/pads/handlers.py
@@ -14,3 +14,4 @@ def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow):
fill_settings(ui)
fill_pads(ui, MainWindow)
ui.edit_first_pads_collection_list.itemChanged.connect(lambda: fill_pads(ui, MainWindow))
+ ui.edit_second_pads_collection_list.itemChanged.connect(lambda: fill_pads(ui, MainWindow))
diff --git a/gui/modules/pads/initialize_pads_settings.py b/gui/modules/pads/initialize_pads_settings.py
index 47321bd..05915ca 100644
--- a/gui/modules/pads/initialize_pads_settings.py
+++ b/gui/modules/pads/initialize_pads_settings.py
@@ -1,3 +1,4 @@
+from modules.padslist import Pads
from gui.gui import Ui_MainWindow
from PyQt5 import QtWidgets, QtCore
@@ -8,6 +9,7 @@ def fill_settings(ui: Ui_MainWindow):
item.setFlags(
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled
)
+ item.setText(Pads.get().first_pads[list(Pads.get().first_pads)[i]] if i < len(Pads.get().first_pads) else "")
ui.edit_first_pads_collection_list.addItem(item)
for i in range(16):
@@ -15,4 +17,5 @@ def fill_settings(ui: Ui_MainWindow):
item.setFlags(
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled
)
+ item.setText(Pads.get().second_pads[list(Pads.get().second_pads)[i]] if i < len(Pads.get().second_pads) else "")
ui.edit_second_pads_collection_list.addItem(item)
diff --git a/modules/padslist/__init__.py b/modules/padslist/__init__.py
new file mode 100644
index 0000000..c6cd83a
--- /dev/null
+++ b/modules/padslist/__init__.py
@@ -0,0 +1 @@
+from .padslist import Pads
diff --git a/modules/padslist/model.py b/modules/padslist/model.py
new file mode 100644
index 0000000..83b1c80
--- /dev/null
+++ b/modules/padslist/model.py
@@ -0,0 +1,10 @@
+from dataclasses import dataclass
+from dataclasses_json import dataclass_json
+from typing import Dict
+
+
+@dataclass_json
+@dataclass(frozen=True)
+class PadsModel:
+ first_pads: Dict[str, str]
+ second_pads: Dict[str, str]
diff --git a/modules/padslist/padslist.py b/modules/padslist/padslist.py
new file mode 100644
index 0000000..52d2906
--- /dev/null
+++ b/modules/padslist/padslist.py
@@ -0,0 +1,43 @@
+from modules.padslist.model import PadsModel
+import json
+import os
+
+
+class Pads:
+ @staticmethod
+ def default():
+ return {
+ "first_pads": dict(),
+ "second_pads": dict()
+ }
+
+ @staticmethod
+ def fix() -> None:
+ try:
+ with open("data/config.pads", "w") as file:
+ json.dump(Pads.default(), file)
+ except FileNotFoundError:
+ if not os.path.exists('data'):
+ os.mkdir('data')
+ Pads.fix()
+
+ @staticmethod
+ def get() -> PadsModel:
+ try:
+ with open("data/config.pads", "r") as file:
+ return PadsModel.from_dict(json.load(file))
+ except:
+ Pads.fix()
+ return Pads.get()
+
+ @staticmethod
+ def update(key: str, value: str | None) -> dict:
+ with open("data/config.pads", "r") as file:
+ settings = json.load(file)
+
+ settings[key] = value
+
+ with open("data/config.pads", "w") as file:
+ json.dump(settings, file)
+
+ return settings