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.flowlayout import FlowLayout, FlowWidget
|
||||||
from src.qt.main_window import Ui_MainWindow
|
from src.qt.main_window import Ui_MainWindow
|
||||||
from src.qt.helpers import open_file, FileOpenerHelper, FileOpenerLabel
|
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
|
import src.qt.resources_rc
|
||||||
|
|
||||||
# SIGQUIT is not defined on Windows
|
# SIGQUIT is not defined on Windows
|
||||||
|
@ -3014,69 +3014,6 @@ class ItemThumb(FlowWidget):
|
||||||
# e = self.lib.get_entry(self.item_id)
|
# e = self.lib.get_entry(self.item_id)
|
||||||
# e.remove_tag(1)
|
# 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):
|
class ThumbRenderer(QObject):
|
||||||
# finished = Signal()
|
# finished = Signal()
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
from .fields import FieldContainer, FieldWidget
|
from .fields import FieldContainer, FieldWidget
|
||||||
from .collage_icon import CollageIconRenderer
|
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