mirror of
https://github.com/Escartem/AnimeWwise.git
synced 2026-06-05 07:50:23 +08:00
fix many display and naming issues
This commit is contained in:
41
app.py
41
app.py
@@ -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,8 +128,11 @@ class AnimeWwise(QMainWindow):
|
||||
|
||||
@pyqtSlot(dict)
|
||||
def handleFinished(self, data):
|
||||
self.fileStructure = data
|
||||
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):
|
||||
@@ -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
84
gui.ui
@@ -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/>
|
||||
|
||||
Reference in New Issue
Block a user