1
0
Fork 0
mirror of synced 2024-05-18 19:42:54 +12:00

Store: Use ElideLabel for requirements

This commit is contained in:
loathingKernel 2023-03-12 14:01:11 +02:00
parent 6b15c0f2cf
commit d3b591952f
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
3 changed files with 15 additions and 11 deletions

View file

@ -1,7 +1,7 @@
import logging import logging
from PyQt5.QtCore import Qt, QUrl from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtGui import QFont, QDesktopServices from PyQt5.QtGui import QFont, QDesktopServices, QFontMetrics
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QWidget, QWidget,
QLabel, QLabel,
@ -15,13 +15,14 @@ from rare.shared import LegendaryCoreSingleton
from rare.shared.image_manager import ImageSize from rare.shared.image_manager import ImageSize
from rare.ui.components.tabs.store.shop_game_info import Ui_ShopGameInfo from rare.ui.components.tabs.store.shop_game_info import Ui_ShopGameInfo
from rare.utils.misc import icon from rare.utils.misc import icon
from rare.widgets.side_tab import SideTabWidget from rare.widgets.side_tab import SideTabWidget, SideTabContents
from rare.widgets.elide_label import ElideLabel
from .image_widget import ShopImageWidget from .image_widget import ShopImageWidget
logger = logging.getLogger("ShopInfo") logger = logging.getLogger("ShopInfo")
class ShopGameInfo(QWidget, Ui_ShopGameInfo): class ShopGameInfo(QWidget, Ui_ShopGameInfo, SideTabContents):
# TODO Design # TODO Design
def __init__(self, installed_titles: list, api_core, parent=None): def __init__(self, installed_titles: list, api_core, parent=None):
@ -61,6 +62,7 @@ class ShopGameInfo(QWidget, Ui_ShopGameInfo):
self.wishlist_button.setVisible(False) self.wishlist_button.setVisible(False)
def update_game(self, data: dict): def update_game(self, data: dict):
self.set_title.emit(data["title"])
self.title.setText(data["title"]) self.title.setText(data["title"])
self.title_str = data["title"] self.title_str = data["title"]
self.id_str = data["id"] self.id_str = data["id"]
@ -144,7 +146,7 @@ class ShopGameInfo(QWidget, Ui_ShopGameInfo):
self.tags.setText("") self.tags.setText("")
self.dev.setText(self.data.get("seller", {}).get("name", "")) self.dev.setText(self.data.get("seller", {}).get("name", ""))
return return
self.title.setText(self.game.title) # self.title.setText(self.game.title)
self.price.setFont(QFont()) self.price.setFont(QFont())
if self.game.price == "0" or self.game.price == 0: if self.game.price == "0" or self.game.price == 0:
@ -167,11 +169,11 @@ class ShopGameInfo(QWidget, Ui_ShopGameInfo):
bold_font = QFont() bold_font = QFont()
bold_font.setBold(True) bold_font.setBold(True)
fm = QFontMetrics(self.font())
if self.game.reqs: if self.game.reqs:
for system in self.game.reqs: for system in self.game.reqs:
req_widget = QWidget(self.requirements_tabs) req_widget = QWidget(self.requirements_tabs)
req_layout = QGridLayout(req_widget) req_layout = QGridLayout(req_widget)
req_layout.setSizeConstraint(QGridLayout.SetFixedSize)
req_widget.layout().setAlignment(Qt.AlignTop) req_widget.layout().setAlignment(Qt.AlignTop)
req_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) req_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
min_label = QLabel(self.tr("Minimum"), parent=req_widget) min_label = QLabel(self.tr("Minimum"), parent=req_widget)
@ -180,13 +182,13 @@ class ShopGameInfo(QWidget, Ui_ShopGameInfo):
rec_label.setFont(bold_font) rec_label.setFont(bold_font)
req_layout.addWidget(min_label, 0, 1) req_layout.addWidget(min_label, 0, 1)
req_layout.addWidget(rec_label, 0, 2) req_layout.addWidget(rec_label, 0, 2)
req_layout.setColumnStretch(1, 2)
req_layout.setColumnStretch(2, 2)
for i, (key, value) in enumerate(self.game.reqs.get(system, {}).items()): for i, (key, value) in enumerate(self.game.reqs.get(system, {}).items()):
req_layout.addWidget(QLabel(key, parent=req_widget), i + 1, 0) req_layout.addWidget(QLabel(key, parent=req_widget), i + 1, 0)
min_label = QLabel(value[0], parent=req_widget) min_label = ElideLabel(value[0], parent=req_widget)
min_label.setWordWrap(False)
req_layout.addWidget(min_label, i + 1, 1) req_layout.addWidget(min_label, i + 1, 1)
rec_label = QLabel(value[1], parent=req_widget) rec_label = ElideLabel(value[1], parent=req_widget)
rec_label.setWordWrap(False)
req_layout.addWidget(rec_label, i + 1, 2) req_layout.addWidget(rec_label, i + 1, 2)
self.requirements_tabs.addTab(req_widget, system) self.requirements_tabs.addTab(req_widget, system)
# self.req_group_box.layout().addWidget(req_tabs) # self.req_group_box.layout().addWidget(req_tabs)

View file

@ -12,7 +12,7 @@ from PyQt5.QtWidgets import (
from rare.shared.image_manager import ImageSize from rare.shared.image_manager import ImageSize
from rare.widgets.flow_layout import FlowLayout from rare.widgets.flow_layout import FlowLayout
from widgets.elide_label import ElideLabel from rare.widgets.elide_label import ElideLabel
from .image_widget import ShopImageWidget from .image_widget import ShopImageWidget

View file

@ -3,11 +3,12 @@ from PyQt5.QtWidgets import QMessageBox, QWidget
from rare.ui.components.tabs.store.wishlist import Ui_Wishlist from rare.ui.components.tabs.store.wishlist import Ui_Wishlist
from rare.utils.misc import icon from rare.utils.misc import icon
from rare.widgets.side_tab import SideTabContents
from .shop_api_core import ShopApiCore from .shop_api_core import ShopApiCore
from .game_widgets import WishlistWidget from .game_widgets import WishlistWidget
class Wishlist(QWidget, Ui_Wishlist): class Wishlist(QWidget, Ui_Wishlist, SideTabContents):
show_game_info = pyqtSignal(dict) show_game_info = pyqtSignal(dict)
update_wishlist_signal = pyqtSignal() update_wishlist_signal = pyqtSignal()
@ -32,6 +33,7 @@ class Wishlist(QWidget, Ui_Wishlist):
def update_wishlist(self): def update_wishlist(self):
self.setEnabled(False) self.setEnabled(False)
self.set_title.emit("Wishlist")
self.api_core.get_wishlist(self.set_wishlist) self.api_core.get_wishlist(self.set_wishlist)
def delete_from_wishlist(self, game): def delete_from_wishlist(self, game):