Skip to content

Commit

Permalink
Merge pull request #17 from DandyDev01/aliases_table
Browse files Browse the repository at this point in the history
Added display names to tags
  • Loading branch information
DandyDev01 authored Nov 19, 2024
2 parents 4f4ffc8 + 8df955a commit e929712
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 7 deletions.
4 changes: 1 addition & 3 deletions tagstudio/src/core/library/alchemy/library.py
Original file line number Diff line number Diff line change
Expand Up @@ -490,8 +490,7 @@ def search_tags(
with Session(self.engine) as session:
query = select(Tag)
query = query.options(
selectinload(Tag.subtags),
selectinload(Tag.aliases),
selectinload(Tag.subtags), selectinload(Tag.aliases), selectinload(Tag.parent_tags)
)

if search.tag:
Expand All @@ -513,7 +512,6 @@ def search_tags(
results=len(res),
)

session.expunge_all()
return res

def get_all_child_tag_ids(self, tag_id: int) -> list[int]:
Expand Down
23 changes: 21 additions & 2 deletions tagstudio/src/core/library/alchemy/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ class Tag(Base):

parent_tags: Mapped[set["Tag"]] = relationship(
secondary=TagSubtag.__tablename__,
primaryjoin="Tag.id == TagSubtag.child_id",
secondaryjoin="Tag.id == TagSubtag.parent_id",
primaryjoin="Tag.id == TagSubtag.parent_id",
secondaryjoin="Tag.id == TagSubtag.child_id",
back_populates="subtags",
)

Expand All @@ -76,6 +76,25 @@ def alias_strings(self) -> list[str]:
def alias_ids(self) -> list[int]:
return [tag.id for tag in self.aliases]

@property
def display_name(self) -> str:
if len(self.parent_tags) == 0:
return ""

parent_tag = list(self.parent_tags)[0]

if parent_tag is None:
return ""

display_name = ""

if parent_tag.shorthand.strip() == "" or parent_tag.shorthand is None:
display_name = " (" + parent_tag.name + ")"
else:
display_name = " (" + parent_tag.shorthand + ")"

return self.name + display_name

def __init__(
self,
name: str,
Expand Down
5 changes: 4 additions & 1 deletion tagstudio/src/qt/modals/tag_database.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,10 @@ def update_tags(self, query: str | None = None):
row = QHBoxLayout(container)
row.setContentsMargins(0, 0, 0, 0)
row.setSpacing(3)
tag_widget = TagWidget(tag, has_edit=True, has_remove=False)
display_name = tag.display_name
tag_widget = TagWidget(
tag, tag_display_name=display_name, has_edit=True, has_remove=False
)
tag_widget.on_edit.connect(lambda checked=False, t=tag: self.edit_tag(t))
row.addWidget(tag_widget)
self.scroll_layout.addWidget(container)
Expand Down
3 changes: 2 additions & 1 deletion tagstudio/src/qt/widgets/tag.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ def __init__(
tag: Tag,
has_edit: bool,
has_remove: bool,
tag_display_name: str = None,
on_remove_callback: FunctionType = None,
on_click_callback: FunctionType = None,
on_edit_callback: FunctionType = None,
Expand All @@ -124,7 +125,7 @@ def __init__(

self.bg_button = QPushButton(self)
self.bg_button.setFlat(True)
self.bg_button.setText(tag.name)
self.bg_button.setText(tag_display_name or tag.name)
if has_edit:
edit_action = QAction("Edit", self)
edit_action.triggered.connect(on_edit_callback)
Expand Down

0 comments on commit e929712

Please sign in to comment.