Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions src/tagstudio/qt/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
from pathlib import Path

import structlog
from PIL import Image, ImageQt
from PySide6 import QtCore
from PySide6.QtCore import QMetaObject, QSize, QStringListModel, Qt
from PySide6.QtGui import QAction
from PySide6.QtGui import QAction, QPixmap
from PySide6.QtWidgets import (
QComboBox,
QCompleter,
Expand All @@ -36,8 +37,10 @@
from tagstudio.core.library.alchemy.enums import SortingModeEnum
from tagstudio.qt.controller.widgets.preview_panel_controller import PreviewPanel
from tagstudio.qt.flowlayout import FlowLayout
from tagstudio.qt.helpers.color_overlay import theme_fg_overlay
from tagstudio.qt.pagination import Pagination
from tagstudio.qt.platform_strings import trash_term
from tagstudio.qt.resource_manager import ResourceManager
from tagstudio.qt.translations import Translations
from tagstudio.qt.widgets.landing import LandingWidget

Expand Down Expand Up @@ -430,6 +433,7 @@ class MainWindow(QMainWindow):

def __init__(self, driver: "QtDriver", parent: QWidget | None = None) -> None:
super().__init__(parent)
self.rm = ResourceManager()

# region Type declarations for variables that will be initialized in methods
# initialized in setup_search_bar
Expand Down Expand Up @@ -514,23 +518,27 @@ def setup_central_widget(self, driver: "QtDriver"):

def setup_search_bar(self):
"""Sets up Nav Buttons, Search Field, Search Button."""
nav_button_style = "font-size:14;font-weight:bold;"
self.search_bar_layout = QHBoxLayout()
self.search_bar_layout.setObjectName("search_bar_layout")
self.search_bar_layout.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)

self.back_button = QPushButton("<", self.central_widget)
self.back_button = QPushButton(self.central_widget)
back_icon: Image.Image = self.rm.get("bxs-left-arrow") # pyright: ignore[reportAssignmentType]
back_icon = theme_fg_overlay(back_icon, use_alpha=False)
self.back_button.setIcon(QPixmap.fromImage(ImageQt.ImageQt(back_icon)))
self.back_button.setObjectName("back_button")
self.back_button.setMinimumSize(QSize(0, 32))
self.back_button.setMinimumSize(QSize(32, 32))
self.back_button.setMaximumSize(QSize(32, 16777215))
self.back_button.setStyleSheet(nav_button_style)
self.search_bar_layout.addWidget(self.back_button)

self.forward_button = QPushButton(">", self.central_widget)
self.forward_button = QPushButton(self.central_widget)
forward_icon: Image.Image = self.rm.get("bxs-right-arrow") # pyright: ignore[reportAssignmentType]
forward_icon = theme_fg_overlay(forward_icon, use_alpha=False)
self.forward_button.setIcon(QPixmap.fromImage(ImageQt.ImageQt(forward_icon)))
self.forward_button.setIconSize(QSize(16, 16))
self.forward_button.setObjectName("forward_button")
self.forward_button.setMinimumSize(QSize(0, 32))
self.forward_button.setMinimumSize(QSize(32, 32))
self.forward_button.setMaximumSize(QSize(32, 16777215))
self.forward_button.setStyleSheet(nav_button_style)
self.search_bar_layout.addWidget(self.forward_button)

self.search_field = QLineEdit(self.central_widget)
Expand Down
16 changes: 13 additions & 3 deletions src/tagstudio/qt/pagination.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@

"""A pagination widget created for TagStudio."""

from PIL import Image, ImageQt
from PySide6.QtCore import QObject, QSize, Signal
from PySide6.QtGui import QIntValidator
from PySide6.QtGui import QIntValidator, QPixmap
from PySide6.QtWidgets import QHBoxLayout, QLabel, QLineEdit, QSizePolicy, QWidget

from tagstudio.qt.helpers.color_overlay import theme_fg_overlay
from tagstudio.qt.helpers.qbutton_wrapper import QPushButtonWrapper
from tagstudio.qt.resource_manager import ResourceManager


class Pagination(QWidget, QObject):
Expand All @@ -19,6 +22,7 @@ class Pagination(QWidget, QObject):

def __init__(self, parent=None) -> None:
super().__init__(parent)
self.rm = ResourceManager()
self.page_count: int = 0
self.current_page_index: int = 0
self.buffer_page_count: int = 4
Expand All @@ -39,7 +43,10 @@ def __init__(self, parent=None) -> None:

# [<] ----------------------------------
self.prev_button = QPushButtonWrapper()
self.prev_button.setText("<")
prev_icon: Image.Image = self.rm.get("bxs-left-arrow") # pyright: ignore[reportAssignmentType]
prev_icon = theme_fg_overlay(prev_icon, use_alpha=False)
self.prev_button.setIcon(QPixmap.fromImage(ImageQt.ImageQt(prev_icon)))
self.prev_button.setIconSize(QSize(12, 12))
self.prev_button.setMinimumSize(self.button_size)
self.prev_button.setMaximumSize(self.button_size)

Expand Down Expand Up @@ -89,7 +96,10 @@ def __init__(self, parent=None) -> None:

# ---------------------------------- [>]
self.next_button = QPushButtonWrapper()
self.next_button.setText(">")
next_icon: Image.Image = self.rm.get("bxs-right-arrow") # pyright: ignore[reportAssignmentType]
next_icon = theme_fg_overlay(next_icon, use_alpha=False)
self.next_button.setIcon(QPixmap.fromImage(ImageQt.ImageQt(next_icon)))
self.next_button.setIconSize(QSize(12, 12))
self.next_button.setMinimumSize(self.button_size)
self.next_button.setMaximumSize(self.button_size)

Expand Down
8 changes: 8 additions & 0 deletions src/tagstudio/qt/resources.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,5 +122,13 @@
"thumb_loading": {
"path": "qt/images/thumb_loading.png",
"mode": "pil"
},
"bxs-left-arrow": {
"path": "qt/images/bxs-left-arrow.png",
"mode": "pil"
},
"bxs-right-arrow": {
"path": "qt/images/bxs-right-arrow.png",
"mode": "pil"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.