mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2024-07-30 21:27:34 +00:00
split ThumbButton from ts_qt.py
This commit is contained in:
parent
63f8268fd4
commit
0364d3a95c
3 changed files with 5 additions and 5138 deletions
|
@ -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()
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue