mirror of
https://github.com/Escartem/AnimeWwise.git
synced 2026-06-11 20:20:25 +08:00
add search bar
This commit is contained in:
28
app.py
28
app.py
@@ -114,6 +114,8 @@ class AnimeWwise(QMainWindow):
|
|||||||
self.extractSelected.clicked.connect(lambda: self.extractItems(False))
|
self.extractSelected.clicked.connect(lambda: self.extractItems(False))
|
||||||
self.extractAll.clicked.connect(lambda: self.extractItems(True))
|
self.extractAll.clicked.connect(lambda: self.extractItems(True))
|
||||||
|
|
||||||
|
self.searchAsset.textChanged.connect(lambda: self.filterAsset())
|
||||||
|
|
||||||
# workers
|
# workers
|
||||||
@pyqtSlot(list)
|
@pyqtSlot(list)
|
||||||
def progressBarSlot(self, progress):
|
def progressBarSlot(self, progress):
|
||||||
@@ -128,7 +130,7 @@ class AnimeWwise(QMainWindow):
|
|||||||
def handleFinished(self, data):
|
def handleFinished(self, data):
|
||||||
if data["action"] == "load":
|
if data["action"] == "load":
|
||||||
self.fileStructure = data["content"]
|
self.fileStructure = data["content"]
|
||||||
self.updateTreeWidget()
|
self.updateTreeWidget(self.fileStructure)
|
||||||
self.tabs.setTabEnabled(0, False)
|
self.tabs.setTabEnabled(0, False)
|
||||||
self.tabs.setTabEnabled(1, True)
|
self.tabs.setTabEnabled(1, True)
|
||||||
self.tabs.setTabEnabled(2, True)
|
self.tabs.setTabEnabled(2, True)
|
||||||
@@ -178,16 +180,36 @@ class AnimeWwise(QMainWindow):
|
|||||||
self.backgroundThread.start()
|
self.backgroundThread.start()
|
||||||
|
|
||||||
# page 2 - browsing
|
# 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):
|
def resetTreeWidget(self):
|
||||||
self.treeWidget.clear()
|
self.treeWidget.clear()
|
||||||
self.tabs.setTabEnabled(1, False)
|
self.tabs.setTabEnabled(1, False)
|
||||||
|
|
||||||
def updateTreeWidget(self):
|
def updateTreeWidget(self, structure):
|
||||||
self.treeWidget.clear()
|
self.treeWidget.clear()
|
||||||
self.treeWidget.setColumnCount(3)
|
self.treeWidget.setColumnCount(3)
|
||||||
self.treeWidget.setHeaderLabels(["Name", "Offset", "Size", "Source"])
|
self.treeWidget.setHeaderLabels(["Name", "Offset", "Size", "Source"])
|
||||||
|
|
||||||
self.addItems(None, self.fileStructure)
|
self.addItems(None, structure)
|
||||||
|
|
||||||
self.treeWidget.expandAll()
|
self.treeWidget.expandAll()
|
||||||
self.treeWidget.header().setSectionResizeMode(0, QHeaderView.Stretch)
|
self.treeWidget.header().setSectionResizeMode(0, QHeaderView.Stretch)
|
||||||
|
|||||||
19
gui.ui
19
gui.ui
@@ -39,7 +39,7 @@
|
|||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="usesScrollButtons">
|
<property name="usesScrollButtons">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -208,9 +208,9 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>20</y>
|
||||||
<width>1081</width>
|
<width>1081</width>
|
||||||
<height>611</height>
|
<height>591</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="columnCount">
|
<property name="columnCount">
|
||||||
@@ -222,6 +222,19 @@
|
|||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
</widget>
|
</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>
|
||||||
<widget class="QWidget" name="extractTab">
|
<widget class="QWidget" name="extractTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
|||||||
Reference in New Issue
Block a user