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

10
gui.ui
View File

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