55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
import requests
|
|
from PyQt5 import QtWidgets, QtGui, QtCore
|
|
from gui.gui import Ui_MainWindow
|
|
from modules.database import Database
|
|
from modules.config import Config
|
|
|
|
|
|
def on_item_click(ui: Ui_MainWindow, mode: str):
|
|
if ui.items_list.currentItem():
|
|
item = Database.get().items[
|
|
ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1])
|
|
.replace("☑", "")
|
|
]
|
|
|
|
pixmap = QtGui.QPixmap()
|
|
try:
|
|
pixmap.loadFromData(requests.get(item.image).content)
|
|
ui.properties_image.setPixmap(pixmap)
|
|
except Exception as e:
|
|
ui.properties_image.clear()
|
|
print(f"Failed to load {item.image}, {e}")
|
|
|
|
if Config.get().profile:
|
|
ui.own_button.setEnabled(True)
|
|
|
|
if item.item_name in Database.get().profiles[Config.get().profile].owned_items:
|
|
ui.own_button.setText("Mark this item as unowned")
|
|
else:
|
|
ui.own_button.setText("Mark this item as owned")
|
|
else:
|
|
ui.own_button.setEnabled(False)
|
|
ui.own_button.setText("Select profile first")
|
|
|
|
ui.properties_name.setText(item.item_name)
|
|
ui.properties_price.setText(f'${"{:,}".format(item.price)}')
|
|
ui.properties_class_type.setText(f'{item.item_class} - {item.item_type}')
|
|
ui.properties_shop.setText(item.shop)
|
|
|
|
width = ui.item_properties_lay.geometry().width()
|
|
Ui_MainWindow.animation = QtCore.QPropertyAnimation(ui.item_properties_lay, b"minimumWidth")
|
|
Ui_MainWindow.animation.setDuration(300)
|
|
|
|
if width == 0 and mode != 'close':
|
|
Ui_MainWindow.animation.setStartValue(0)
|
|
Ui_MainWindow.animation.setEndValue(480)
|
|
|
|
Ui_MainWindow.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart)
|
|
Ui_MainWindow.animation.start()
|
|
elif mode == 'close':
|
|
Ui_MainWindow.animation.setStartValue(width)
|
|
Ui_MainWindow.animation.setEndValue(0)
|
|
|
|
Ui_MainWindow.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart)
|
|
Ui_MainWindow.animation.start()
|