diff --git a/src/tagstudio/qt/main_window.py b/src/tagstudio/qt/main_window.py index 88fdfb4fc..a0200182b 100644 --- a/src/tagstudio/qt/main_window.py +++ b/src/tagstudio/qt/main_window.py @@ -304,6 +304,34 @@ def setup_view_menu(self): self.show_filenames_action.setCheckable(True) self.view_menu.addAction(self.show_filenames_action) + self.view_menu.addSeparator() + + self.decrease_thumbnail_size_action = QAction( + Translations["menu.view.decrease_thumbnail_size"], self + ) + self.decrease_thumbnail_size_action.setShortcut( + QtCore.QKeyCombination( + QtCore.Qt.KeyboardModifier(QtCore.Qt.KeyboardModifier.ControlModifier), + QtCore.Qt.Key.Key_Minus, + ) + ) + self.decrease_thumbnail_size_action.setToolTip("Ctrl+-") + self.view_menu.addAction(self.decrease_thumbnail_size_action) + + self.increase_thumbnail_size_action = QAction( + Translations["menu.view.increase_thumbnail_size"], self + ) + self.increase_thumbnail_size_action.setShortcut( + QtCore.QKeyCombination( + QtCore.Qt.KeyboardModifier(QtCore.Qt.KeyboardModifier.ControlModifier), + QtCore.Qt.Key.Key_Equal, + ) + ) + self.increase_thumbnail_size_action.setToolTip("Ctrl+=") + self.view_menu.addAction(self.increase_thumbnail_size_action) + + self.view_menu.addSeparator() + self.addMenu(self.view_menu) def setup_tools_menu(self): diff --git a/src/tagstudio/qt/ts_qt.py b/src/tagstudio/qt/ts_qt.py index 036dac1c5..2c48a6275 100644 --- a/src/tagstudio/qt/ts_qt.py +++ b/src/tagstudio/qt/ts_qt.py @@ -486,9 +486,28 @@ def on_show_filenames_action(checked: bool): self.settings.show_filenames_in_grid ) + def on_decrease_thumbnail_size_action(): + new_val = self.main_window.thumb_size_combobox.currentIndex() + 1 + if not (new_val + 1) > len(self.main_window.THUMB_SIZES): + self.main_window.thumb_size_combobox.setCurrentIndex(new_val) + + self.main_window.menu_bar.decrease_thumbnail_size_action.triggered.connect( + on_decrease_thumbnail_size_action + ) + + def on_increase_thumbnail_size_action(): + new_val = self.main_window.thumb_size_combobox.currentIndex() - 1 + if not new_val < 0: + self.main_window.thumb_size_combobox.setCurrentIndex(new_val) + + self.main_window.menu_bar.increase_thumbnail_size_action.triggered.connect( + on_increase_thumbnail_size_action + ) + # endregion # region Tools Menu =========================================================== + def create_fix_unlinked_entries_modal(): if not hasattr(self, "unlinked_modal"): self.unlinked_modal = FixUnlinkedEntriesModal(self.lib, self) @@ -631,8 +650,9 @@ def _update_browsing_state(): ) # Thumbnail Size ComboBox + self.main_window.thumb_size_combobox.setCurrentIndex(2) # Default: Medium self.main_window.thumb_size_combobox.currentIndexChanged.connect( - lambda: self.thumb_size_callback(self.main_window.thumb_size_combobox.currentData()) + lambda: self.thumb_size_callback(self.main_window.thumb_size_combobox.currentIndex()) ) self._update_thumb_count() diff --git a/src/tagstudio/resources/translations/en.json b/src/tagstudio/resources/translations/en.json index a5bc23c9a..6f29bd9f2 100644 --- a/src/tagstudio/resources/translations/en.json +++ b/src/tagstudio/resources/translations/en.json @@ -217,6 +217,8 @@ "menu.tools.fix_duplicate_files": "Fix Duplicate &Files", "menu.tools.fix_unlinked_entries": "Fix &Unlinked Entries", "menu.tools": "&Tools", + "menu.view.decrease_thumbnail_size": "Decrease Thumbnail Size", + "menu.view.increase_thumbnail_size": "Increase Thumbnail Size", "menu.view": "&View", "menu.window": "Window", "namespace.create.description_color": "Tag colors use namespaces as color palette groups. All custom colors must be under a namespace group first.",