1
0
mirror of https://github.com/Escartem/AnimeWwise.git synced 2026-06-05 16:00:27 +08:00

add search bar

This commit is contained in:
Escartem
2024-07-29 11:06:54 +02:00
parent 6f5406eba0
commit 74bb79ee61
2 changed files with 41 additions and 6 deletions

28
app.py
View File

@@ -114,6 +114,8 @@ class AnimeWwise(QMainWindow):
self.extractSelected.clicked.connect(lambda: self.extractItems(False))
self.extractAll.clicked.connect(lambda: self.extractItems(True))
self.searchAsset.textChanged.connect(lambda: self.filterAsset())
# workers
@pyqtSlot(list)
def progressBarSlot(self, progress):
@@ -128,7 +130,7 @@ class AnimeWwise(QMainWindow):
def handleFinished(self, data):
if data["action"] == "load":
self.fileStructure = data["content"]
self.updateTreeWidget()
self.updateTreeWidget(self.fileStructure)
self.tabs.setTabEnabled(0, False)
self.tabs.setTabEnabled(1, True)
self.tabs.setTabEnabled(2, True)
@@ -178,16 +180,36 @@ class AnimeWwise(QMainWindow):
self.backgroundThread.start()
# page 2 - browsing
def filterAsset(self):
search = self.searchAsset.text()
if search == "":
self.updateTreeWidget(self.fileStructure)
return
result = self.searchFiles(self.fileStructure, search)
self.updateTreeWidget(result)
def searchFiles(self, data, substring, current_path=""):
result = {"folders": {}, "files": []}
result["files"] = [file for file in data.get("files", []) if substring in file[0]]
for folder_name, folder_data in data.get("folders", {}).items():
subfolder_result = self.searchFiles(folder_data, substring)
if subfolder_result["files"] or subfolder_result["folders"]:
result["folders"][folder_name] = subfolder_result
return result
def resetTreeWidget(self):
self.treeWidget.clear()
self.tabs.setTabEnabled(1, False)
def updateTreeWidget(self):
def updateTreeWidget(self, structure):
self.treeWidget.clear()
self.treeWidget.setColumnCount(3)
self.treeWidget.setHeaderLabels(["Name", "Offset", "Size", "Source"])
self.addItems(None, self.fileStructure)
self.addItems(None, structure)
self.treeWidget.expandAll()
self.treeWidget.header().setSectionResizeMode(0, QHeaderView.Stretch)

19
gui.ui
View File

@@ -39,7 +39,7 @@
</rect>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<property name="usesScrollButtons">
<bool>true</bool>
@@ -208,9 +208,9 @@
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<y>20</y>
<width>1081</width>
<height>611</height>
<height>591</height>
</rect>
</property>
<property name="columnCount">
@@ -222,6 +222,19 @@
</property>
</column>
</widget>
<widget class="QLineEdit" name="searchAsset">
<property name="geometry">
<rect>
<x>2</x>
<y>1</y>
<width>1081</width>
<height>21</height>
</rect>
</property>
<property name="placeholderText">
<string>Search something...</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="extractTab">
<attribute name="title">