1
0
Fork 0
mirror of synced 2024-07-05 22:51:11 +12:00
Rare/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py

68 lines
2.3 KiB
Python
Raw Normal View History

from logging import getLogger
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QHBoxLayout
from legendary.core import LegendaryCore
from legendary.models.game import Game
2021-12-24 22:09:50 +13:00
from rare.components.tabs.games.game_widgets.base_uninstalled_widget import (
BaseUninstalledWidget,
)
from rare.shared.image_manager import ImageSize
from rare.widgets.elide_label import ElideLabel
logger = getLogger("Uninstalled")
2022-06-22 11:38:04 +12:00
class UninstalledIconWidget(BaseUninstalledWidget):
def __init__(self, game: Game, core: LegendaryCore, pixmap):
2022-06-22 11:38:04 +12:00
super(UninstalledIconWidget, self).__init__(game, core, pixmap)
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
2022-06-22 11:38:04 +12:00
self.setObjectName(type(self).__name__)
layout.addWidget(self.image)
miniwidget = QWidget(self)
miniwidget.setFixedWidth(ImageSize.Display.size.width())
minilayout = QHBoxLayout()
minilayout.setContentsMargins(0, 0, 0, 0)
minilayout.setSpacing(0)
miniwidget.setLayout(minilayout)
self.title_label = ElideLabel(f"<h4>{game.app_title}</h4>", parent=miniwidget)
self.title_label.setAlignment(Qt.AlignTop)
self.title_label.setObjectName("game_widget")
minilayout.addWidget(self.title_label, stretch=2)
minilayout.setAlignment(Qt.AlignTop)
layout.addWidget(miniwidget)
self.info_label = ElideLabel(" ", parent=self)
self.info_label.setFixedWidth(ImageSize.Display.size.width())
self.leaveEvent(None)
self.info_label.setObjectName("info_label")
layout.addWidget(self.info_label)
self.setLayout(layout)
2021-04-05 20:57:11 +12:00
def mousePressEvent(self, e) -> None:
# left button
if e.button() == 1 and not self.installing:
self.install()
# right
elif e.button() == 2:
pass # self.showMenu(e)
2021-04-05 20:57:11 +12:00
def enterEvent(self, e):
if not self.installing:
2021-05-12 03:29:35 +12:00
self.info_label.setText(self.tr("Game Info"))
else:
self.info_label.setText(self.tr("Installation running"))
2021-04-05 20:57:11 +12:00
def leaveEvent(self, e):
if self.installing:
self.info_label.setText("Installation...")
else:
self.info_label.setText(" ") # invisible text, cheap way to always have vertical size in label