Skip to content

Commit 6b345f6

Browse files
committed
[UI] minor bugfix (missing default category tag) and refactoring in AssetBrowser
1 parent 08a36e5 commit 6b345f6

File tree

2 files changed

+24
-25
lines changed

2 files changed

+24
-25
lines changed

src/preppipe_gui_pyside6/toolwidgets/assetbrowser.py

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -127,32 +127,14 @@ def load_tags(self):
127127
asset_manager = AssetManager.get_instance()
128128
self.assets_by_tag.clear()
129129

130-
background_tag = self.tag_manager.get_tr_background()
131-
character_tag = self.tag_manager.get_tr_character()
132-
other_tag = self.tag_manager.get_tr_other()
133-
134130
# 初始化基于资产类型的分类标签
135131
for asset_id in self.all_asset_ids:
136-
try:
137-
asset = asset_manager.get_asset(asset_id)
138-
if isinstance(asset, ImagePack):
139-
descriptor = ImagePack.get_descriptor_by_id(asset_id)
140-
if descriptor:
141-
pack_type = descriptor.get_image_pack_type()
142-
if pack_type == ImagePackDescriptor.ImagePackType.BACKGROUND:
143-
category_tag = background_tag
144-
elif pack_type == ImagePackDescriptor.ImagePackType.CHARACTER:
145-
category_tag = character_tag
146-
else:
147-
category_tag = other_tag
148-
149-
# 只添加资产到对应分类,不修改tags_dict
150-
if category_tag not in self.assets_by_tag:
151-
self.assets_by_tag[category_tag] = (None, [asset_id])
152-
continue
153-
self.assets_by_tag[category_tag][1].append(asset_id)
154-
except Exception:
155-
continue
132+
category_tag = str(self.tag_manager.get_asset_type_tag(asset_id).translatable)
133+
# 只添加资产到对应分类,不修改tags_dict
134+
if category_tag not in self.assets_by_tag:
135+
self.assets_by_tag[category_tag] = (None, [asset_id])
136+
else:
137+
self.assets_by_tag[category_tag][1].append(asset_id)
156138

157139
# 基于现有标签构建标签-资产对应关系
158140
for asset_id, tags in tags_dict.items():

src/preppipe_gui_pyside6/util/assettagmanager.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from typing import Optional, Any
66
from PySide6.QtCore import Signal, QObject
77
from ..settingsdict import SettingsDict
8+
from preppipe.assets.assetmanager import AssetManager
9+
from preppipe.util.imagepack import *
810
from preppipe.language import TranslationDomain, Translatable
911

1012
TR_gui_util_assettagmanager = TranslationDomain("gui_util_assettagmanager")
@@ -186,7 +188,22 @@ def get_recent_tags_display(self) -> list[str]:
186188
return display_tags
187189

188190
def get_asset_tags(self, asset_id: str) -> set[str]:
189-
return self.get_tags_dict().get(asset_id, set())
191+
result = set()
192+
result.update(self.get_tags_dict().get(asset_id, set()))
193+
result.add(self.get_asset_type_tag(asset_id).semantic)
194+
return result
195+
196+
def get_asset_type_tag(self, asset_id: str) -> AssetTagType:
197+
asset = AssetManager.get_instance().get_asset(asset_id)
198+
if isinstance(asset, ImagePack):
199+
descriptor = ImagePack.get_descriptor_by_id(asset_id)
200+
if descriptor:
201+
pack_type = descriptor.get_image_pack_type()
202+
if pack_type == ImagePackDescriptor.ImagePackType.BACKGROUND:
203+
return AssetTagType.BACKGROUND
204+
elif pack_type == ImagePackDescriptor.ImagePackType.CHARACTER:
205+
return AssetTagType.CHARACTER_SPRITE
206+
return AssetTagType.OTHER
190207

191208
def get_all_tags(self) -> set[str]:
192209
return {

0 commit comments

Comments
 (0)