split ThumbButton from ts_qt.py

This commit is contained in:
Andrew Arneson 2024-04-27 19:15:44 -06:00
parent 63f8268fd4
commit 0364d3a95c
3 changed files with 5 additions and 5138 deletions

View file

@ -44,7 +44,7 @@ from src.core.utils.web import strip_web_protocol
from src.qt.flowlayout import FlowLayout, FlowWidget
from src.qt.main_window import Ui_MainWindow
from src.qt.helpers import open_file, FileOpenerHelper, FileOpenerLabel
from src.qt.widgets import FieldContainer, FieldWidget, CollageIconRenderer
from src.qt.widgets import FieldContainer, FieldWidget, CollageIconRenderer, ThumbButton
import src.qt.resources_rc
# SIGQUIT is not defined on Windows
@ -3014,69 +3014,6 @@ class ItemThumb(FlowWidget):
# e = self.lib.get_entry(self.item_id)
# e.remove_tag(1)
class ThumbButton(QPushButton):
def __init__(self, parent:QWidget, thumb_size:tuple[int,int]) -> None:
super().__init__(parent)
self.thumb_size:tuple[int,int] = thumb_size
self.hovered = False
self.selected = False
# self.clicked.connect(lambda checked: self.set_selected(True))
def paintEvent(self, event:QEvent) -> None:
super().paintEvent(event)
if self.hovered or self.selected:
painter = QPainter()
painter.begin(self)
painter.setRenderHint(QPainter.RenderHint.Antialiasing)
# painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_Source)
path = QPainterPath()
width = 3
radius = 6
path.addRoundedRect(QtCore.QRectF(width/2,width/2,self.thumb_size[0]-width, self.thumb_size[1]-width), radius, radius)
# color = QColor('#bb4ff0') if self.selected else QColor('#55bbf6')
# pen = QPen(color, width)
# painter.setPen(pen)
# # brush.setColor(fill)
# painter.drawPath(path)
if self.selected:
painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_HardLight)
color = QColor('#bb4ff0')
color.setAlphaF(0.5)
pen = QPen(color, width)
painter.setPen(pen)
painter.fillPath(path, color)
painter.drawPath(path)
painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_Source)
color = QColor('#bb4ff0') if not self.hovered else QColor('#55bbf6')
pen = QPen(color, width)
painter.setPen(pen)
painter.drawPath(path)
elif self.hovered:
painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_Source)
color = QColor('#55bbf6')
pen = QPen(color, width)
painter.setPen(pen)
painter.drawPath(path)
painter.end()
def enterEvent(self, event: QEnterEvent) -> None:
self.hovered = True
self.repaint()
return super().enterEvent(event)
def leaveEvent(self, event: QEvent) -> None:
self.hovered = False
self.repaint()
return super().leaveEvent(event)
def set_selected(self, value:bool) -> None:
self.selected = value
self.repaint()
class ThumbRenderer(QObject):
# finished = Signal()

View file

@ -1,2 +1,3 @@
from .fields import FieldContainer, FieldWidget
from .collage_icon import CollageIconRenderer
from .thumb_button import ThumbButton

File diff suppressed because it is too large Load diff