Files
KotoPad/gui/modules/pads/fill_pads_from_settings.py

64 lines
2.7 KiB
Python

import os
from modules.padslist import Pads
from gui.gui import Ui_MainWindow
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QMainWindow
from modules.player.player import Player
def fill_pads(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player):
ui.first_pads_dict = dict()
ui.second_pads_dict = dict()
first_pads_list = \
[ui.edit_first_pads_collection_list.item(x).text() for x in range(ui.edit_first_pads_collection_list.count())]
for i in reversed(range(ui.pads_collection_1_lay.count())):
ui.pads_collection_1_lay.itemAt(i).widget().setParent(None)
for i in range(len(first_pads_list)):
item = first_pads_list[i]
if item == '':
continue
ui.first_pads_dict[os.path.split(item)[-1][:24:]] = item
button = QtWidgets.QPushButton()
button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Expanding))
button.setText(os.path.split(item)[-1][:24:] if os.path.exists(item) else "File doesn't exist")
button.clicked.connect(
(
lambda: (
p.set_media(ui.first_pads_dict[MainWindow.sender().text()]),
p.play(ui)
) if MainWindow.sender().text() != "File doesn't exist" else None
)
)
Pads.update("first_pads", ui.first_pads_dict)
ui.pads_collection_1_lay.addWidget(button, i // 4, i % 4)
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 reversed(range(ui.pads_collection_2_lay.count())):
ui.pads_collection_2_lay.itemAt(i).widget().setParent(None)
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][:24:]] = item
button = QtWidgets.QPushButton()
button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Expanding))
button.setText(os.path.split(item)[-1][:24:] if os.path.exists(item) else "File doesn't exist")
button.clicked.connect(
(
lambda: (
p.set_media(ui.second_pads_dict[MainWindow.sender().text()]),
p.play(ui)
) if MainWindow.sender().text() != "File doesn't exist" else None
)
)
Pads.update("second_pads", ui.second_pads_dict)
ui.pads_collection_2_lay.addWidget(button, i // 4, i % 4)