1
0
mirror of https://github.com/Escartem/AnimeWwise.git synced 2026-06-04 23:40:25 +08:00

fixed bugs

This commit is contained in:
Escartem
2024-07-23 10:47:07 +02:00
parent 6962841ab8
commit 5e46118f76
2 changed files with 43 additions and 28 deletions

61
app.py
View File

@@ -6,7 +6,7 @@ import mapper
import extract
from PyQt5 import uic
from PyQt5.QtGui import QTextCursor, QStandardItemModel, QStandardItem
from PyQt5.QtWidgets import QMessageBox, QMainWindow, QApplication, QFileDialog, QHeaderView
from PyQt5.QtWidgets import QMessageBox, QMainWindow, QApplication, QFileDialog, QHeaderView, QAbstractItemView, QTreeWidgetItem
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QThread, QMetaType, Qt
QMetaType.type('QTextCursor')
@@ -45,7 +45,7 @@ class BackgroundWorker(QObject):
def run(self):
if self.action == "load":
print("Loading files and mapping if necessary...")
fileStructure = extract.WwiseExtract(self.map, "mp3", *self.folders, progress=self.progress.emit).load_folder()
fileStructure = extract.WwiseExtract(self.map, "mp3", *self.folders.values(), progress=self.progress.emit).load_folder()
print("Done !")
self.finished.emit({"action": "load", "content": fileStructure})
@@ -83,7 +83,7 @@ class AnimeWwise(QMainWindow):
self.loadFilesButton.clicked.connect(lambda: self.start())
self.actionClearTreeView.triggered.connect(lambda: self.resetTreeView())
self.actionClearTreeView.triggered.connect(lambda: self.resetTreeWidget())
self.actionExit.triggered.connect(lambda: self.close())
def getMaps(self):
@@ -112,7 +112,7 @@ class AnimeWwise(QMainWindow):
_map = None
self.tabs.setTabEnabled(0, False)
self.resetTreeView()
self.resetTreeWidget()
self.extractThread = QThread()
self.extractWorker = BackgroundWorker("load", self.folders, _map, self.outputFormat.currentText())
@@ -130,7 +130,7 @@ class AnimeWwise(QMainWindow):
def handleFinished(self, data):
if data["action"] == "load":
self.fileStructure = data["content"]
self.updateTreeView()
self.updateTreeWidget()
self.tabs.setTabEnabled(0, True)
self.tabs.setTabEnabled(1, True)
self.tabs.setCurrentIndex(1)
@@ -142,39 +142,46 @@ class AnimeWwise(QMainWindow):
self.console.setTextCursor(cursor)
self.console.ensureCursorVisible()
def resetTreeView(self):
model = QStandardItemModel()
self.treeView.setModel(model)
def resetTreeWidget(self):
self.treeWidget.clear()
self.tabs.setTabEnabled(1, False)
def updateTreeView(self):
model = QStandardItemModel()
model.setHorizontalHeaderLabels(["Name", "Offset", "Size"])
# TODO: non swappable columns
def updateTreeWidget(self):
self.treeWidget.clear()
self.treeWidget.setColumnCount(3)
self.treeWidget.setHeaderLabels(["Name", "Offset", "Size"])
self.addItems(None, self.fileStructure)
root_item = model.invisibleRootItem()
self.addItems(root_item, self.fileStructure)
self.treeWidget.expandAll()
self.treeWidget.header().setSectionResizeMode(0, QHeaderView.Stretch)
self.treeWidget.header().setSectionResizeMode(1, QHeaderView.ResizeToContents)
self.treeWidget.header().setSectionResizeMode(2, QHeaderView.ResizeToContents)
self.treeWidget.setHeaderHidden(False)
self.treeView.setModel(model)
self.treeView.expandAll()
self.treeView.header().setSectionResizeMode(0, QHeaderView.Stretch)
self.treeView.header().setSectionResizeMode(1, QHeaderView.ResizeToContents)
self.treeView.header().setSectionResizeMode(2, QHeaderView.ResizeToContents)
self.treeWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.treeWidget.setDragDropMode(QAbstractItemView.NoDragDrop)
def addItems(self, parent, element):
for folder_name in sorted(element.get("folders", {}).keys()):
folder_content = element["folders"][folder_name]
folder_item = QStandardItem(folder_name)
folder_item.setCheckable(True)
# folder_item.setTristate(True)
parent.appendRow([folder_item, QStandardItem(""), QStandardItem("")])
folder_item = QTreeWidgetItem([folder_name, "", ""])
folder_item.setFlags(folder_item.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
folder_item.setCheckState(0, Qt.Unchecked)
if parent is None:
self.treeWidget.addTopLevelItem(folder_item)
else:
parent.addChild(folder_item)
self.addItems(folder_item, folder_content)
for file in sorted(element.get("files", [])):
file_item = QStandardItem(str(file[0]))
file_item.setCheckable(True)
parent.appendRow([file_item, QStandardItem(str(file[1])), QStandardItem(str(file[2]))])
file_item = QTreeWidgetItem([str(file[0]), str(file[1]), str(file[2])])
file_item.setFlags(file_item.flags() | Qt.ItemIsUserCheckable)
file_item.setCheckState(0, Qt.Unchecked)
if parent is None:
self.treeWidget.addTopLevelItem(file_item)
else:
parent.addChild(file_item)
if __name__ == "__main__":
app = QApplication(sys.argv)

10
gui.ui
View File

@@ -208,7 +208,7 @@
<attribute name="title">
<string>Browse</string>
</attribute>
<widget class="QTreeView" name="treeView">
<widget class="QTreeWidget" name="treeWidget">
<property name="geometry">
<rect>
<x>0</x>
@@ -217,6 +217,14 @@
<height>611</height>
</rect>
</property>
<property name="columnCount">
<number>1</number>
</property>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</widget>
<widget class="QWidget" name="extractTab">