Added collections
This commit is contained in:
1
gui/modules/collections/__init__.py
Normal file
1
gui/modules/collections/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .handlers import *
|
||||
36
gui/modules/collections/collections.py
Normal file
36
gui/modules/collections/collections.py
Normal 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)
|
||||
11
gui/modules/collections/handlers.py
Normal file
11
gui/modules/collections/handlers.py
Normal 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))
|
||||
34
gui/modules/collections/initialize.py
Normal file
34
gui/modules/collections/initialize.py
Normal 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)
|
||||
@@ -6,6 +6,7 @@ from gui.modules import player
|
||||
from gui.modules import settings
|
||||
from gui.modules import restreammic
|
||||
from gui.modules import explorer
|
||||
from gui.modules import collections
|
||||
from modules.player.player import Player
|
||||
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)
|
||||
restreammic.register_handlers(ui, MainWindow, rs)
|
||||
explorer.register_handlers(ui, p)
|
||||
collections.register_handlers(ui, p)
|
||||
|
||||
Reference in New Issue
Block a user