1
0
mirror of https://github.com/Escartem/AnimeWwise.git synced 2026-06-10 03:28:21 +08:00

fix many display and naming issues

This commit is contained in:
Escartem
2024-07-22 12:52:49 +02:00
parent 19dbfb1a67
commit 9fc7bb98fb
2 changed files with 78 additions and 51 deletions

45
app.py
View File

@@ -7,7 +7,7 @@ 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
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QThread, QMetaType from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QThread, QMetaType, Qt
QMetaType.type('QTextCursor') QMetaType.type('QTextCursor')
@@ -37,14 +37,17 @@ class BackgroundWorker(QObject):
def __init__(self, action, folders, _map, _format): def __init__(self, action, folders, _map, _format):
super().__init__() super().__init__()
self.action = action self.action = action
# TODO: dynamic args depending on action
self.folders = folders self.folders = folders
self.map = _map self.map = _map
self.format = _format self.format = _format
def run(self): def run(self):
fileStructure = extract.WwiseExtract(self.map, "mp3", *self.folders, progress="").load_folder() if self.action == "load":
print("Loading files and mapping if necessary...")
self.finished.emit(fileStructure) fileStructure = extract.WwiseExtract(self.map, "mp3", *self.folders, progress=self.progress.emit).load_folder()
print("Done !")
self.finished.emit({"action": "load", "content": fileStructure})
class AnimeWwise(QMainWindow): class AnimeWwise(QMainWindow):
def __init__(self): def __init__(self):
@@ -62,8 +65,6 @@ class AnimeWwise(QMainWindow):
# utils # utils
self.selectFolder = lambda: QFileDialog.getExistingDirectory(self, "Select Folder") self.selectFolder = lambda: QFileDialog.getExistingDirectory(self, "Select Folder")
# self.updateTreeView()
def setFolder(self, elem, folder): def setFolder(self, elem, folder):
path = self.selectFolder() path = self.selectFolder()
self.folders[folder] = path self.folders[folder] = path
@@ -77,7 +78,13 @@ class AnimeWwise(QMainWindow):
self.outputFormat.addItems(["mp3", "ogg"]) self.outputFormat.addItems(["mp3", "ogg"])
self.assetMap.addItems(["No map", *[f'{e["game"]} - v{e["version"]}' for e in self.maps["maps"]]]) self.assetMap.addItems(["No map", *[f'{e["game"]} - v{e["version"]}' for e in self.maps["maps"]]])
self.startButton.clicked.connect(lambda: self.start()) self.tabs.setTabEnabled(1, False)
self.tabs.setTabEnabled(2, False)
self.loadFilesButton.clicked.connect(lambda: self.start())
self.actionClearTreeView.triggered.connect(lambda: self.resetTreeView())
self.actionExit.triggered.connect(lambda: self.close())
def getMaps(self): def getMaps(self):
with open("maps/index.json", "r") as f: with open("maps/index.json", "r") as f:
@@ -104,6 +111,9 @@ class AnimeWwise(QMainWindow):
else: else:
_map = None _map = None
self.tabs.setTabEnabled(0, False)
self.resetTreeView()
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())
self.extractWorker.moveToThread(self.extractThread) self.extractWorker.moveToThread(self.extractThread)
@@ -118,9 +128,12 @@ class AnimeWwise(QMainWindow):
@pyqtSlot(dict) @pyqtSlot(dict)
def handleFinished(self, data): def handleFinished(self, data):
self.fileStructure = data if data["action"] == "load":
self.updateTreeView() self.fileStructure = data["content"]
self.tabs.setCurrentIndex(1) self.updateTreeView()
self.tabs.setTabEnabled(0, True)
self.tabs.setTabEnabled(1, True)
self.tabs.setCurrentIndex(1)
def _appendText(self, text): def _appendText(self, text):
cursor = self.console.textCursor() cursor = self.console.textCursor()
@@ -129,9 +142,15 @@ class AnimeWwise(QMainWindow):
self.console.setTextCursor(cursor) self.console.setTextCursor(cursor)
self.console.ensureCursorVisible() self.console.ensureCursorVisible()
def resetTreeView(self):
model = QStandardItemModel()
self.treeView.setModel(model)
self.tabs.setTabEnabled(1, False)
def updateTreeView(self): def updateTreeView(self):
model = QStandardItemModel() model = QStandardItemModel()
model.setHorizontalHeaderLabels(["Name", "Offset", "Size"]) model.setHorizontalHeaderLabels(["Name", "Offset", "Size"])
# TODO: non swappable columns
root_item = model.invisibleRootItem() root_item = model.invisibleRootItem()
self.addItems(root_item, self.fileStructure) self.addItems(root_item, self.fileStructure)
@@ -147,11 +166,15 @@ class AnimeWwise(QMainWindow):
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 = QStandardItem(folder_name)
folder_item.setCheckable(True)
# folder_item.setTristate(True)
parent.appendRow([folder_item, QStandardItem(""), QStandardItem("")]) parent.appendRow([folder_item, QStandardItem(""), QStandardItem("")])
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", [])):
parent.appendRow([QStandardItem(str(e)) for e in file]) file_item = QStandardItem(str(file[0]))
file_item.setCheckable(True)
parent.appendRow([file_item, QStandardItem(str(file[1])), QStandardItem(str(file[2]))])
if __name__ == "__main__": if __name__ == "__main__":
app = QApplication(sys.argv) app = QApplication(sys.argv)

84
gui.ui
View File

@@ -56,12 +56,12 @@
<property name="tabBarAutoHide"> <property name="tabBarAutoHide">
<bool>false</bool> <bool>false</bool>
</property> </property>
<widget class="QWidget" name="extractTab"> <widget class="QWidget" name="configTab">
<property name="enabled"> <property name="enabled">
<bool>true</bool> <bool>true</bool>
</property> </property>
<attribute name="title"> <attribute name="title">
<string>Extract</string> <string>Config</string>
</attribute> </attribute>
<widget class="QWidget" name="verticalLayoutWidget"> <widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry"> <property name="geometry">
@@ -161,6 +161,16 @@
</item> </item>
<item> <item>
<layout class="QGridLayout" name="settingsGrid"> <layout class="QGridLayout" name="settingsGrid">
<item row="2" column="0">
<widget class="QLabel" name="outputFormatLabel">
<property name="text">
<string>Output format</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="assetMap"/>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="assetMapLabel"> <widget class="QLabel" name="assetMapLabel">
<property name="text"> <property name="text">
@@ -168,13 +178,24 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="2" column="1">
<widget class="QComboBox" name="assetMap"/> <widget class="QComboBox" name="outputFormat">
<property name="currentText">
<string/>
</property>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QPushButton" name="startButton"> <widget class="Line" name="separatorB">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="loadFilesButton">
<property name="text"> <property name="text">
<string>Load file(s)</string> <string>Load file(s)</string>
</property> </property>
@@ -198,9 +219,9 @@
</property> </property>
</widget> </widget>
</widget> </widget>
<widget class="QWidget" name="tab_3"> <widget class="QWidget" name="extractTab">
<attribute name="title"> <attribute name="title">
<string>Page</string> <string>Extract</string>
</attribute> </attribute>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="layoutWidget">
<property name="geometry"> <property name="geometry">
@@ -250,32 +271,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QComboBox" name="outputFormat">
<property name="geometry">
<rect>
<x>529</x>
<y>400</y>
<width>261</width>
<height>22</height>
</rect>
</property>
<property name="currentText">
<string/>
</property>
</widget>
<widget class="QLabel" name="outputFormatLabel">
<property name="geometry">
<rect>
<x>260</x>
<y>400</y>
<width>262</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Output format</string>
</property>
</widget>
</widget> </widget>
</widget> </widget>
<widget class="QTextEdit" name="console"> <widget class="QTextEdit" name="console">
@@ -317,10 +312,14 @@
<property name="title"> <property name="title">
<string>File</string> <string>File</string>
</property> </property>
<addaction name="actionnot_working_here_yet"/> <addaction name="actionClearTreeView"/>
<addaction name="actionclear_table"/> <addaction name="separator"/>
<addaction name="actionExit"/>
</widget> </widget>
<widget class="QMenu" name="menuExtract"> <widget class="QMenu" name="menuExtract">
<property name="enabled">
<bool>false</bool>
</property>
<property name="title"> <property name="title">
<string>Extract</string> <string>Extract</string>
</property> </property>
@@ -337,17 +336,22 @@
</action> </action>
<action name="actionall"> <action name="actionall">
<property name="text"> <property name="text">
<string>all</string> <string>All files</string>
</property> </property>
</action> </action>
<action name="actionselected"> <action name="actionselected">
<property name="text"> <property name="text">
<string>selected</string> <string>Selected files</string>
</property> </property>
</action> </action>
<action name="actionclear_table"> <action name="actionClearTreeView">
<property name="text"> <property name="text">
<string>clear table</string> <string>Clear Table</string>
</property>
</action>
<action name="actionExit">
<property name="text">
<string>Exit</string>
</property> </property>
</action> </action>
</widget> </widget>
@@ -358,7 +362,7 @@
<tabstop>changeAltInput</tabstop> <tabstop>changeAltInput</tabstop>
<tabstop>outputPath</tabstop> <tabstop>outputPath</tabstop>
<tabstop>changeOutput</tabstop> <tabstop>changeOutput</tabstop>
<tabstop>startButton</tabstop> <tabstop>loadFilesButton</tabstop>
<tabstop>tabs</tabstop> <tabstop>tabs</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>