1
0
mirror of https://github.com/Escartem/AnimeWwise.git synced 2026-06-04 23:40:25 +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.QtGui import QTextCursor, QStandardItemModel, QStandardItem
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')
@@ -37,14 +37,17 @@ class BackgroundWorker(QObject):
def __init__(self, action, folders, _map, _format):
super().__init__()
self.action = action
# TODO: dynamic args depending on action
self.folders = folders
self.map = _map
self.format = _format
def run(self):
fileStructure = extract.WwiseExtract(self.map, "mp3", *self.folders, progress="").load_folder()
self.finished.emit(fileStructure)
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()
print("Done !")
self.finished.emit({"action": "load", "content": fileStructure})
class AnimeWwise(QMainWindow):
def __init__(self):
@@ -62,8 +65,6 @@ class AnimeWwise(QMainWindow):
# utils
self.selectFolder = lambda: QFileDialog.getExistingDirectory(self, "Select Folder")
# self.updateTreeView()
def setFolder(self, elem, folder):
path = self.selectFolder()
self.folders[folder] = path
@@ -77,7 +78,13 @@ class AnimeWwise(QMainWindow):
self.outputFormat.addItems(["mp3", "ogg"])
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):
with open("maps/index.json", "r") as f:
@@ -104,6 +111,9 @@ class AnimeWwise(QMainWindow):
else:
_map = None
self.tabs.setTabEnabled(0, False)
self.resetTreeView()
self.extractThread = QThread()
self.extractWorker = BackgroundWorker("load", self.folders, _map, self.outputFormat.currentText())
self.extractWorker.moveToThread(self.extractThread)
@@ -118,9 +128,12 @@ class AnimeWwise(QMainWindow):
@pyqtSlot(dict)
def handleFinished(self, data):
self.fileStructure = data
self.updateTreeView()
self.tabs.setCurrentIndex(1)
if data["action"] == "load":
self.fileStructure = data["content"]
self.updateTreeView()
self.tabs.setTabEnabled(0, True)
self.tabs.setTabEnabled(1, True)
self.tabs.setCurrentIndex(1)
def _appendText(self, text):
cursor = self.console.textCursor()
@@ -129,9 +142,15 @@ class AnimeWwise(QMainWindow):
self.console.setTextCursor(cursor)
self.console.ensureCursorVisible()
def resetTreeView(self):
model = QStandardItemModel()
self.treeView.setModel(model)
self.tabs.setTabEnabled(1, False)
def updateTreeView(self):
model = QStandardItemModel()
model.setHorizontalHeaderLabels(["Name", "Offset", "Size"])
# TODO: non swappable columns
root_item = model.invisibleRootItem()
self.addItems(root_item, self.fileStructure)
@@ -147,11 +166,15 @@ class AnimeWwise(QMainWindow):
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("")])
self.addItems(folder_item, folder_content)
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__":
app = QApplication(sys.argv)

84
gui.ui
View File

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