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

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