mirror of
https://github.com/Escartem/AnimeWwise.git
synced 2026-06-18 00:50:23 +08:00
fixed bugs
This commit is contained in:
61
app.py
61
app.py
@@ -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
10
gui.ui
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user