mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2026-02-01 15:49:09 +00:00
refactor: rename select_item() to toggle_item_selection()
This commit is contained in:
@@ -974,8 +974,21 @@ class QtDriver(DriverMixin, QObject):
|
||||
sa.setWidgetResizable(True)
|
||||
sa.setWidget(self.flow_container)
|
||||
|
||||
def select_item(self, item_id: int, append: bool, bridge: bool):
|
||||
"""Select one or more items in the Thumbnail Grid."""
|
||||
def toggle_item_selection(self, item_id: int, append: bool, bridge: bool):
|
||||
"""Toggle the selection of an item in the Thumbnail Grid.
|
||||
|
||||
If an item is not selected, this selects it. If an item is already selected, this will
|
||||
deselect it as long as append and bridge are False.
|
||||
|
||||
Args:
|
||||
item_id(int): The ID of the item/entry to select.
|
||||
append(bool): Whether or not to add this item to the previous selection
|
||||
or to restart the selection with this item.
|
||||
Setting to True acts like "Ctrl + Click" selecting.
|
||||
bridge(bool): Whether or not to select items in the visual range of the last item
|
||||
selected and this current item.
|
||||
Setting to True acts like "Shift + Click" selecting.
|
||||
"""
|
||||
logger.info("[QtDriver] Selecting Items:", item_id=item_id, append=append, bridge=bridge)
|
||||
|
||||
if append:
|
||||
@@ -1175,7 +1188,7 @@ class QtDriver(DriverMixin, QObject):
|
||||
item_thumb.assign_badge(BadgeType.FAVORITE, entry.is_favorite)
|
||||
item_thumb.update_clickable(
|
||||
clickable=(
|
||||
lambda checked=False, item_id=entry.id: self.select_item(
|
||||
lambda checked=False, item_id=entry.id: self.toggle_item_selection(
|
||||
item_id,
|
||||
append=(
|
||||
QGuiApplication.keyboardModifiers()
|
||||
|
||||
@@ -5,8 +5,8 @@ def test_update_selection_empty(qt_driver, library):
|
||||
panel = PreviewPanel(library, qt_driver)
|
||||
|
||||
# Clear the library selection (selecting 1 then unselecting 1)
|
||||
qt_driver.select_item(1, append=False, bridge=False)
|
||||
qt_driver.select_item(1, append=True, bridge=False)
|
||||
qt_driver.toggle_item_selection(1, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(1, append=True, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# FieldContainer should hide all containers
|
||||
@@ -18,7 +18,7 @@ def test_update_selection_single(qt_driver, library, entry_full):
|
||||
panel = PreviewPanel(library, qt_driver)
|
||||
|
||||
# Select the single entry
|
||||
qt_driver.select_item(entry_full.id, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(entry_full.id, append=False, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# FieldContainer should show all applicable tags and field containers
|
||||
@@ -32,8 +32,8 @@ def test_update_selection_multiple(qt_driver, library):
|
||||
panel = PreviewPanel(library, qt_driver)
|
||||
|
||||
# Select the multiple entries
|
||||
qt_driver.select_item(1, append=False, bridge=False)
|
||||
qt_driver.select_item(2, append=True, bridge=False)
|
||||
qt_driver.toggle_item_selection(1, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(2, append=True, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# FieldContainer should show mixed field editing
|
||||
@@ -47,7 +47,7 @@ def test_add_tag_to_selection_single(qt_driver, library, entry_full):
|
||||
assert {t.id for t in entry_full.tags} == {1000}
|
||||
|
||||
# Select the single entry
|
||||
qt_driver.select_item(entry_full.id, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(entry_full.id, append=False, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# Add new tag
|
||||
@@ -64,7 +64,7 @@ def test_add_same_tag_to_selection_single(qt_driver, library, entry_full):
|
||||
assert {t.id for t in entry_full.tags} == {1000}
|
||||
|
||||
# Select the single entry
|
||||
qt_driver.select_item(entry_full.id, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(entry_full.id, append=False, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# Add an existing tag
|
||||
@@ -94,7 +94,7 @@ def test_add_tag_to_selection_multiple(qt_driver, library):
|
||||
|
||||
# Select the multiple entries
|
||||
for i, e in enumerate(library.get_entries(with_joins=True), start=0):
|
||||
qt_driver.select_item(e.id, append=(True if i == 0 else False), bridge=False) # noqa: SIM210
|
||||
qt_driver.toggle_item_selection(e.id, append=(True if i == 0 else False), bridge=False) # noqa: SIM210
|
||||
panel.update_widgets()
|
||||
|
||||
# Add new tag
|
||||
@@ -122,7 +122,7 @@ def test_meta_tag_category(qt_driver, library, entry_full):
|
||||
library.add_tags_to_entry(1, entry_full.id)
|
||||
|
||||
# Select the single entry
|
||||
qt_driver.select_item(entry_full.id, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(entry_full.id, append=False, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# FieldContainer should hide all containers
|
||||
@@ -154,7 +154,7 @@ def test_custom_tag_category(qt_driver, library, entry_full):
|
||||
library.add_tags_to_entry(1, entry_full.id)
|
||||
|
||||
# Select the single entry
|
||||
qt_driver.select_item(entry_full.id, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(entry_full.id, append=False, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# FieldContainer should hide all containers
|
||||
|
||||
@@ -5,8 +5,8 @@ def test_update_selection_empty(qt_driver, library):
|
||||
panel = PreviewPanel(library, qt_driver)
|
||||
|
||||
# Clear the library selection (selecting 1 then unselecting 1)
|
||||
qt_driver.select_item(1, append=False, bridge=False)
|
||||
qt_driver.select_item(1, append=True, bridge=False)
|
||||
qt_driver.toggle_item_selection(1, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(1, append=True, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# Panel should disable UI that allows for entry modification
|
||||
@@ -18,7 +18,7 @@ def test_update_selection_single(qt_driver, library, entry_full):
|
||||
panel = PreviewPanel(library, qt_driver)
|
||||
|
||||
# Select the single entry
|
||||
qt_driver.select_item(entry_full.id, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(entry_full.id, append=False, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# Panel should enable UI that allows for entry modification
|
||||
@@ -30,8 +30,8 @@ def test_update_selection_multiple(qt_driver, library):
|
||||
panel = PreviewPanel(library, qt_driver)
|
||||
|
||||
# Select the multiple entries
|
||||
qt_driver.select_item(1, append=False, bridge=False)
|
||||
qt_driver.select_item(2, append=True, bridge=False)
|
||||
qt_driver.toggle_item_selection(1, append=False, bridge=False)
|
||||
qt_driver.toggle_item_selection(2, append=True, bridge=False)
|
||||
panel.update_widgets()
|
||||
|
||||
# Panel should enable UI that allows for entry modification
|
||||
|
||||
@@ -29,7 +29,7 @@ from src.qt.widgets.item_thumb import ItemThumb
|
||||
# assert thumb.isVisible() == (idx == 0)
|
||||
|
||||
|
||||
# def test_select_item_bridge(qt_driver, entry_min):
|
||||
# def test_toggle_item_selection_bridge(qt_driver, entry_min):
|
||||
# # mock some props since we're not running `start()`
|
||||
# qt_driver.autofill_action = Mock()
|
||||
# qt_driver.sort_fields_action = Mock()
|
||||
@@ -42,22 +42,22 @@ from src.qt.widgets.item_thumb import ItemThumb
|
||||
# assert len(qt_driver.item_thumbs) == 3
|
||||
|
||||
# # select first item
|
||||
# qt_driver.select_item(0, append=False, bridge=False)
|
||||
# qt_driver.toggle_item_selection(0, append=False, bridge=False)
|
||||
# assert qt_driver.selected == [0]
|
||||
|
||||
# # add second item to selection
|
||||
# qt_driver.select_item(1, append=False, bridge=True)
|
||||
# qt_driver.toggle_item_selection(1, append=False, bridge=True)
|
||||
# assert qt_driver.selected == [0, 1]
|
||||
|
||||
# # add third item to selection
|
||||
# qt_driver.select_item(2, append=False, bridge=True)
|
||||
# qt_driver.toggle_item_selection(2, append=False, bridge=True)
|
||||
# assert qt_driver.selected == [0, 1, 2]
|
||||
|
||||
# # select third item only
|
||||
# qt_driver.select_item(2, append=False, bridge=False)
|
||||
# qt_driver.toggle_item_selection(2, append=False, bridge=False)
|
||||
# assert qt_driver.selected == [2]
|
||||
|
||||
# qt_driver.select_item(0, append=False, bridge=True)
|
||||
# qt_driver.toggle_item_selection(0, append=False, bridge=True)
|
||||
# assert qt_driver.selected == [0, 1, 2]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user