Added collections

This commit is contained in:
BarsTiger
2022-12-22 21:42:26 +02:00
parent 144705d1c3
commit b90410f15f
9 changed files with 246 additions and 25 deletions

View File

@@ -187,9 +187,9 @@ class Ui_MainWindow(object):
self.content.addWidget(self.pads_page) self.content.addWidget(self.pads_page)
self.browser_page = QtWidgets.QWidget() self.browser_page = QtWidgets.QWidget()
self.browser_page.setObjectName("browser_page") self.browser_page.setObjectName("browser_page")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.browser_page) self.browser_page_lay = QtWidgets.QVBoxLayout(self.browser_page)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.browser_page_lay.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2") self.browser_page_lay.setObjectName("browser_page_lay")
self.browser_page_tabs = QtWidgets.QTabWidget(self.browser_page) self.browser_page_tabs = QtWidgets.QTabWidget(self.browser_page)
self.browser_page_tabs.setObjectName("browser_page_tabs") self.browser_page_tabs.setObjectName("browser_page_tabs")
self.first_filebrowser_tab = QtWidgets.QWidget() self.first_filebrowser_tab = QtWidgets.QWidget()
@@ -218,11 +218,11 @@ class Ui_MainWindow(object):
self.browser_page_tabs.addTab(self.second_filebrowser_tab, "") self.browser_page_tabs.addTab(self.second_filebrowser_tab, "")
self.browser_page_options_tab = QtWidgets.QWidget() self.browser_page_options_tab = QtWidgets.QWidget()
self.browser_page_options_tab.setObjectName("browser_page_options_tab") self.browser_page_options_tab.setObjectName("browser_page_options_tab")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.browser_page_options_tab) self.browser_page_options_tab_lay = QtWidgets.QVBoxLayout(self.browser_page_options_tab)
self.verticalLayout_3.setObjectName("verticalLayout_3") self.browser_page_options_tab_lay.setObjectName("browser_page_options_tab_lay")
self.first_browser_parent_dir_path_label = QtWidgets.QLabel(self.browser_page_options_tab) self.first_browser_parent_dir_path_label = QtWidgets.QLabel(self.browser_page_options_tab)
self.first_browser_parent_dir_path_label.setObjectName("first_browser_parent_dir_path_label") self.first_browser_parent_dir_path_label.setObjectName("first_browser_parent_dir_path_label")
self.verticalLayout_3.addWidget(self.first_browser_parent_dir_path_label) self.browser_page_options_tab_lay.addWidget(self.first_browser_parent_dir_path_label)
self.first_browser_parent_dir_path_widget = QtWidgets.QWidget(self.browser_page_options_tab) self.first_browser_parent_dir_path_widget = QtWidgets.QWidget(self.browser_page_options_tab)
self.first_browser_parent_dir_path_widget.setObjectName("first_browser_parent_dir_path_widget") self.first_browser_parent_dir_path_widget.setObjectName("first_browser_parent_dir_path_widget")
self.first_browser_parent_dir_path_lay = QtWidgets.QHBoxLayout(self.first_browser_parent_dir_path_widget) self.first_browser_parent_dir_path_lay = QtWidgets.QHBoxLayout(self.first_browser_parent_dir_path_widget)
@@ -236,10 +236,10 @@ class Ui_MainWindow(object):
self.first_browser_parent_dir_button.setMinimumSize(QtCore.QSize(100, 30)) self.first_browser_parent_dir_button.setMinimumSize(QtCore.QSize(100, 30))
self.first_browser_parent_dir_button.setObjectName("first_browser_parent_dir_button") self.first_browser_parent_dir_button.setObjectName("first_browser_parent_dir_button")
self.first_browser_parent_dir_path_lay.addWidget(self.first_browser_parent_dir_button) self.first_browser_parent_dir_path_lay.addWidget(self.first_browser_parent_dir_button)
self.verticalLayout_3.addWidget(self.first_browser_parent_dir_path_widget) self.browser_page_options_tab_lay.addWidget(self.first_browser_parent_dir_path_widget)
self.second_browser_parent_dir_path_label = QtWidgets.QLabel(self.browser_page_options_tab) self.second_browser_parent_dir_path_label = QtWidgets.QLabel(self.browser_page_options_tab)
self.second_browser_parent_dir_path_label.setObjectName("second_browser_parent_dir_path_label") self.second_browser_parent_dir_path_label.setObjectName("second_browser_parent_dir_path_label")
self.verticalLayout_3.addWidget(self.second_browser_parent_dir_path_label) self.browser_page_options_tab_lay.addWidget(self.second_browser_parent_dir_path_label)
self.second_browser_parent_dir_path_widget = QtWidgets.QWidget(self.browser_page_options_tab) self.second_browser_parent_dir_path_widget = QtWidgets.QWidget(self.browser_page_options_tab)
self.second_browser_parent_dir_path_widget.setObjectName("second_browser_parent_dir_path_widget") self.second_browser_parent_dir_path_widget.setObjectName("second_browser_parent_dir_path_widget")
self.second_browser_parent_dir_path_lay = QtWidgets.QHBoxLayout(self.second_browser_parent_dir_path_widget) self.second_browser_parent_dir_path_lay = QtWidgets.QHBoxLayout(self.second_browser_parent_dir_path_widget)
@@ -254,14 +254,50 @@ class Ui_MainWindow(object):
self.second_browser_parent_dir_button.setMinimumSize(QtCore.QSize(100, 30)) self.second_browser_parent_dir_button.setMinimumSize(QtCore.QSize(100, 30))
self.second_browser_parent_dir_button.setObjectName("second_browser_parent_dir_button") self.second_browser_parent_dir_button.setObjectName("second_browser_parent_dir_button")
self.second_browser_parent_dir_path_lay.addWidget(self.second_browser_parent_dir_button) self.second_browser_parent_dir_path_lay.addWidget(self.second_browser_parent_dir_button)
self.verticalLayout_3.addWidget(self.second_browser_parent_dir_path_widget) self.browser_page_options_tab_lay.addWidget(self.second_browser_parent_dir_path_widget)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem) self.browser_page_options_tab_lay.addItem(spacerItem)
self.browser_page_tabs.addTab(self.browser_page_options_tab, "") self.browser_page_tabs.addTab(self.browser_page_options_tab, "")
self.verticalLayout_2.addWidget(self.browser_page_tabs) self.browser_page_lay.addWidget(self.browser_page_tabs)
self.content.addWidget(self.browser_page) self.content.addWidget(self.browser_page)
self.collections_page = QtWidgets.QWidget() self.collections_page = QtWidgets.QWidget()
self.collections_page.setObjectName("collections_page") self.collections_page.setObjectName("collections_page")
self.collections_page_lay = QtWidgets.QVBoxLayout(self.collections_page)
self.collections_page_lay.setContentsMargins(0, 0, 0, 0)
self.collections_page_lay.setObjectName("collections_page_lay")
self.collections_page_tabs = QtWidgets.QTabWidget(self.collections_page)
self.collections_page_tabs.setObjectName("collections_page_tabs")
self.collections_tab_in_tabs = QtWidgets.QWidget()
self.collections_tab_in_tabs.setObjectName("collections_tab_in_tabs")
self.collections_tab_in_tabs_lay = QtWidgets.QHBoxLayout(self.collections_tab_in_tabs)
self.collections_tab_in_tabs_lay.setContentsMargins(0, 0, 0, 0)
self.collections_tab_in_tabs_lay.setObjectName("collections_tab_in_tabs_lay")
self.collections_listwidget = QtWidgets.QListWidget(self.collections_tab_in_tabs)
self.collections_listwidget.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed)
self.collections_listwidget.setObjectName("collections_listwidget")
self.collections_tab_in_tabs_lay.addWidget(self.collections_listwidget)
self.this_collection_listwidget = QtWidgets.QListWidget(self.collections_tab_in_tabs)
self.this_collection_listwidget.setObjectName("this_collection_listwidget")
self.collections_tab_in_tabs_lay.addWidget(self.this_collection_listwidget)
self.collections_tab_in_tabs_lay.setStretch(0, 1)
self.collections_tab_in_tabs_lay.setStretch(1, 3)
self.collections_page_tabs.addTab(self.collections_tab_in_tabs, "")
self.edit_collections_tabs = QtWidgets.QWidget()
self.edit_collections_tabs.setObjectName("edit_collections_tabs")
self.edit_collections_tabs_lay = QtWidgets.QVBoxLayout(self.edit_collections_tabs)
self.edit_collections_tabs_lay.setContentsMargins(0, 0, 0, 0)
self.edit_collections_tabs_lay.setObjectName("edit_collections_tabs_lay")
self.edit_collections_paths_label = QtWidgets.QLabel(self.edit_collections_tabs)
self.edit_collections_paths_label.setObjectName("edit_collections_paths_label")
self.edit_collections_tabs_lay.addWidget(self.edit_collections_paths_label)
self.edit_collections_paths = QtWidgets.QListWidget(self.edit_collections_tabs)
self.edit_collections_paths.setStyleSheet("font: 15pt \"Segoe UI\";")
self.edit_collections_paths.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed)
self.edit_collections_paths.setDragEnabled(False)
self.edit_collections_paths.setObjectName("edit_collections_paths")
self.edit_collections_tabs_lay.addWidget(self.edit_collections_paths)
self.collections_page_tabs.addTab(self.edit_collections_tabs, "")
self.collections_page_lay.addWidget(self.collections_page_tabs)
self.content.addWidget(self.collections_page) self.content.addWidget(self.collections_page)
self.stream_page = QtWidgets.QWidget() self.stream_page = QtWidgets.QWidget()
self.stream_page.setObjectName("stream_page") self.stream_page.setObjectName("stream_page")
@@ -321,26 +357,26 @@ class Ui_MainWindow(object):
sizePolicy.setHeightForWidth(self.restream_options_group.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.restream_options_group.sizePolicy().hasHeightForWidth())
self.restream_options_group.setSizePolicy(sizePolicy) self.restream_options_group.setSizePolicy(sizePolicy)
self.restream_options_group.setObjectName("restream_options_group") self.restream_options_group.setObjectName("restream_options_group")
self.verticalLayout = QtWidgets.QVBoxLayout(self.restream_options_group) self.restream_options_group_lay = QtWidgets.QVBoxLayout(self.restream_options_group)
self.verticalLayout.setContentsMargins(-1, 5, -1, -1) self.restream_options_group_lay.setContentsMargins(-1, 5, -1, -1)
self.verticalLayout.setObjectName("verticalLayout") self.restream_options_group_lay.setObjectName("restream_options_group_lay")
self.restream_micro_checkbox = QtWidgets.QCheckBox(self.restream_options_group) self.restream_micro_checkbox = QtWidgets.QCheckBox(self.restream_options_group)
self.restream_micro_checkbox.setObjectName("restream_micro_checkbox") self.restream_micro_checkbox.setObjectName("restream_micro_checkbox")
self.verticalLayout.addWidget(self.restream_micro_checkbox) self.restream_options_group_lay.addWidget(self.restream_micro_checkbox)
self.input_device_restream_label = QtWidgets.QLabel(self.restream_options_group) self.input_device_restream_label = QtWidgets.QLabel(self.restream_options_group)
self.input_device_restream_label.setObjectName("input_device_restream_label") self.input_device_restream_label.setObjectName("input_device_restream_label")
self.verticalLayout.addWidget(self.input_device_restream_label) self.restream_options_group_lay.addWidget(self.input_device_restream_label)
self.input_device_restream_box = QtWidgets.QComboBox(self.restream_options_group) self.input_device_restream_box = QtWidgets.QComboBox(self.restream_options_group)
self.input_device_restream_box.setMinimumSize(QtCore.QSize(0, 30)) self.input_device_restream_box.setMinimumSize(QtCore.QSize(0, 30))
self.input_device_restream_box.setObjectName("input_device_restream_box") self.input_device_restream_box.setObjectName("input_device_restream_box")
self.verticalLayout.addWidget(self.input_device_restream_box) self.restream_options_group_lay.addWidget(self.input_device_restream_box)
self.output_device_restream_label = QtWidgets.QLabel(self.restream_options_group) self.output_device_restream_label = QtWidgets.QLabel(self.restream_options_group)
self.output_device_restream_label.setObjectName("output_device_restream_label") self.output_device_restream_label.setObjectName("output_device_restream_label")
self.verticalLayout.addWidget(self.output_device_restream_label) self.restream_options_group_lay.addWidget(self.output_device_restream_label)
self.output_device_restream_box = QtWidgets.QComboBox(self.restream_options_group) self.output_device_restream_box = QtWidgets.QComboBox(self.restream_options_group)
self.output_device_restream_box.setMinimumSize(QtCore.QSize(0, 30)) self.output_device_restream_box.setMinimumSize(QtCore.QSize(0, 30))
self.output_device_restream_box.setObjectName("output_device_restream_box") self.output_device_restream_box.setObjectName("output_device_restream_box")
self.verticalLayout.addWidget(self.output_device_restream_box) self.restream_options_group_lay.addWidget(self.output_device_restream_box)
self.audio_devices_settings_tab_lay.addWidget(self.restream_options_group, 0, QtCore.Qt.AlignTop) self.audio_devices_settings_tab_lay.addWidget(self.restream_options_group, 0, QtCore.Qt.AlignTop)
self.use_original_streaming_method_check = QtWidgets.QCheckBox(self.audio_devices_settings_tab) self.use_original_streaming_method_check = QtWidgets.QCheckBox(self.audio_devices_settings_tab)
self.use_original_streaming_method_check.setChecked(True) self.use_original_streaming_method_check.setChecked(True)
@@ -473,8 +509,10 @@ class Ui_MainWindow(object):
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.menu.setCurrentRow(-1) self.menu.setCurrentRow(-1)
self.content.setCurrentIndex(0)
self.pads_content.setCurrentIndex(0) self.pads_content.setCurrentIndex(0)
self.browser_page_tabs.setCurrentIndex(0) self.browser_page_tabs.setCurrentIndex(0)
self.collections_page_tabs.setCurrentIndex(0)
self.settings_tabs_widget.setCurrentIndex(0) self.settings_tabs_widget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow)
@@ -515,6 +553,9 @@ class Ui_MainWindow(object):
self.second_browser_parent_dir_box.setPlaceholderText(_translate("MainWindow", "C:\\")) self.second_browser_parent_dir_box.setPlaceholderText(_translate("MainWindow", "C:\\"))
self.second_browser_parent_dir_button.setText(_translate("MainWindow", "Choose folder")) self.second_browser_parent_dir_button.setText(_translate("MainWindow", "Choose folder"))
self.browser_page_tabs.setTabText(self.browser_page_tabs.indexOf(self.browser_page_options_tab), _translate("MainWindow", "Options")) self.browser_page_tabs.setTabText(self.browser_page_tabs.indexOf(self.browser_page_options_tab), _translate("MainWindow", "Options"))
self.collections_page_tabs.setTabText(self.collections_page_tabs.indexOf(self.collections_tab_in_tabs), _translate("MainWindow", "Collections"))
self.edit_collections_paths_label.setText(_translate("MainWindow", "Double click row to edit path to collection"))
self.collections_page_tabs.setTabText(self.collections_page_tabs.indexOf(self.edit_collections_tabs), _translate("MainWindow", "Edit collections"))
self.play_options_group.setTitle(_translate("MainWindow", "Play options")) self.play_options_group.setTitle(_translate("MainWindow", "Play options"))
self.output_device_play_label.setText(_translate("MainWindow", "Output device (or virtual mic input)")) self.output_device_play_label.setText(_translate("MainWindow", "Output device (or virtual mic input)"))
self.preview_device_play_label.setText(_translate("MainWindow", "Preview device (your headphones)")) self.preview_device_play_label.setText(_translate("MainWindow", "Preview device (your headphones)"))

View File

@@ -482,6 +482,9 @@ QListWidget:item:selected {
</property> </property>
<item> <item>
<widget class="QStackedWidget" name="content"> <widget class="QStackedWidget" name="content">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="pads_page"> <widget class="QWidget" name="pads_page">
<layout class="QVBoxLayout" name="pads_page_lay"> <layout class="QVBoxLayout" name="pads_page_lay">
<property name="leftMargin"> <property name="leftMargin">
@@ -707,7 +710,7 @@ QListWidget:item:selected {
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="browser_page"> <widget class="QWidget" name="browser_page">
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="browser_page_lay">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@@ -779,7 +782,7 @@ QListWidget:item:selected {
<attribute name="title"> <attribute name="title">
<string>Options</string> <string>Options</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="browser_page_options_tab_lay">
<item> <item>
<widget class="QLabel" name="first_browser_parent_dir_path_label"> <widget class="QLabel" name="first_browser_parent_dir_path_label">
<property name="text"> <property name="text">
@@ -904,7 +907,97 @@ QListWidget:item:selected {
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="collections_page"/> <widget class="QWidget" name="collections_page">
<layout class="QVBoxLayout" name="collections_page_lay">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QTabWidget" name="collections_page_tabs">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="collections_tab_in_tabs">
<attribute name="title">
<string>Collections</string>
</attribute>
<layout class="QHBoxLayout" name="collections_tab_in_tabs_lay" stretch="1,3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="collections_listwidget">
<property name="editTriggers">
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="this_collection_listwidget"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="edit_collections_tabs">
<attribute name="title">
<string>Edit collections</string>
</attribute>
<layout class="QVBoxLayout" name="edit_collections_tabs_lay">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="edit_collections_paths_label">
<property name="text">
<string>Double click row to edit path to collection</string>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="edit_collections_paths">
<property name="styleSheet">
<string notr="true">font: 15pt &quot;Segoe UI&quot;;</string>
</property>
<property name="editTriggers">
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set>
</property>
<property name="dragEnabled">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="stream_page"/> <widget class="QWidget" name="stream_page"/>
<widget class="QWidget" name="collab_page"/> <widget class="QWidget" name="collab_page"/>
<widget class="QWidget" name="download_page"/> <widget class="QWidget" name="download_page"/>
@@ -1013,7 +1106,7 @@ QListWidget:item:selected {
<property name="title"> <property name="title">
<string>Microphone restream options</string> <string>Microphone restream options</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="restream_options_group_lay">
<property name="topMargin"> <property name="topMargin">
<number>5</number> <number>5</number>
</property> </property>

View File

@@ -0,0 +1 @@
from .handlers import *

View File

@@ -0,0 +1,36 @@
from gui.gui import Ui_MainWindow
from modules.config import PathsConfig
import os
from gui.modules.core import popup
from modules.player.player import Player
def update_collections_lw(ui: Ui_MainWindow):
ui.all_collections_list = list()
ui.collections_listwidget.clear()
for item in PathsConfig.get().collections_list:
ui.all_collections_list.append([item.replace("\\", "/").split("/")[-1], item])
ui.collections_listwidget.addItem(item.replace("\\", "/").split("/")[-1])
def on_collection_click(ui: Ui_MainWindow):
ui.this_collection_listwidget.clear()
try:
ui.this_collection_listwidget.addItems(
[f for f in os.listdir(
ui.all_collections_list[ui.collections_listwidget.currentRow()][1]
)
if os.path.isfile(os.path.join(ui.all_collections_list[ui.collections_listwidget.currentRow()][1], f))]
)
except Exception as e:
print(e)
popup.popup("Error", "Cannot access files in this folder")
def on_collection_item_double(ui: Ui_MainWindow, p: Player):
p.set_media(os.path.join(
os.path.join(ui.all_collections_list[ui.collections_listwidget.currentRow()][1],
ui.this_collection_listwidget.currentItem().text())
))
p.play(ui)

View File

@@ -0,0 +1,11 @@
from gui.modules.collections.initialize import fill_collections_paths, on_path_setting_collection_change
from gui.modules.collections.collections import *
def register_handlers(ui: Ui_MainWindow, p: Player):
fill_collections_paths(ui)
update_collections_lw(ui)
ui.collections_page_tabs.currentChanged.connect(lambda: on_path_setting_collection_change(ui))
ui.collections_listwidget.itemClicked.connect(lambda: on_collection_click(ui))
ui.this_collection_listwidget.itemDoubleClicked.connect(lambda: on_collection_item_double(ui, p))

View File

@@ -0,0 +1,34 @@
from gui.gui import Ui_MainWindow
from modules.config import PathsConfig
from PyQt5 import QtWidgets, QtCore
from gui.modules.collections.collections import update_collections_lw
def on_path_setting_collection_change(ui: Ui_MainWindow):
all_collections = list(
filter(
lambda a: a != "",
list(
map(
lambda x: x.text(),
[ui.edit_collections_paths.item(x) for x in range(ui.edit_collections_paths.count())]
)
)
)
)
PathsConfig.update("collections_list", all_collections)
fill_collections_paths(ui)
update_collections_lw(ui)
def fill_collections_paths(ui: Ui_MainWindow):
ui.edit_collections_paths.clear()
collections = PathsConfig.get().collections_list
for i in range(420):
item = QtWidgets.QListWidgetItem()
item.setFlags(
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled
)
item.setText(collections[i] if i < len(collections) else "")
ui.edit_collections_paths.addItem(item)

View File

@@ -6,6 +6,7 @@ from gui.modules import player
from gui.modules import settings from gui.modules import settings
from gui.modules import restreammic from gui.modules import restreammic
from gui.modules import explorer from gui.modules import explorer
from gui.modules import collections
from modules.player.player import Player from modules.player.player import Player
from modules.restream.restream import Restreamer from modules.restream.restream import Restreamer
@@ -17,3 +18,4 @@ def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player, rs:
settings.register_handlers(ui) settings.register_handlers(ui)
restreammic.register_handlers(ui, MainWindow, rs) restreammic.register_handlers(ui, MainWindow, rs)
explorer.register_handlers(ui, p) explorer.register_handlers(ui, p)
collections.register_handlers(ui, p)

View File

@@ -1,5 +1,6 @@
from dataclasses import dataclass from dataclasses import dataclass
from dataclasses_json import dataclass_json from dataclasses_json import dataclass_json
from typing import List
@dataclass_json @dataclass_json
@@ -20,3 +21,4 @@ class ConfigModel:
class PathsModel: class PathsModel:
first_browser_path: str first_browser_path: str
second_browser_path: str second_browser_path: str
collections_list: List[str]

View File

@@ -8,7 +8,8 @@ class PathsConfig:
def default(): def default():
return { return {
"first_browser_path": "", "first_browser_path": "",
"second_browser_path": "" "second_browser_path": "",
"collections_list": list()
} }
@staticmethod @staticmethod
@@ -31,7 +32,7 @@ class PathsConfig:
return PathsConfig.get() return PathsConfig.get()
@staticmethod @staticmethod
def update(key: str, value: str | None) -> dict: def update(key: str, value: str | list | None) -> dict:
with open("data/config.path", "r") as file: with open("data/config.path", "r") as file:
settings = json.load(file) settings = json.load(file)