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:
45
app.py
45
app.py
@@ -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
84
gui.ui
@@ -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/>
|
||||||
|
|||||||
Reference in New Issue
Block a user