diff --git a/gui/gui.py b/gui/gui.py index f17df30..5901e1e 100644 --- a/gui/gui.py +++ b/gui/gui.py @@ -137,6 +137,10 @@ class Ui_MainWindow(object): self.filter_max_price_box.setProperty("value", 10000000) self.filter_max_price_box.setObjectName("filter_max_price_box") self.verticalLayout_3.addWidget(self.filter_max_price_box) + self.filter_show_owned_items_check = QtWidgets.QCheckBox(self.filter_lay) + self.filter_show_owned_items_check.setChecked(True) + self.filter_show_owned_items_check.setObjectName("filter_show_owned_items_check") + self.verticalLayout_3.addWidget(self.filter_show_owned_items_check) spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout_3.addItem(spacerItem1) self.filters_apply_button = QtWidgets.QPushButton(self.filter_lay) @@ -485,6 +489,7 @@ class Ui_MainWindow(object): self.filter_min_price_box.setPrefix(_translate("MainWindow", "$")) self.filter_max_price_label.setText(_translate("MainWindow", "Max price:")) self.filter_max_price_box.setPrefix(_translate("MainWindow", "$")) + self.filter_show_owned_items_check.setText(_translate("MainWindow", "Show owned items")) self.filters_apply_button.setText(_translate("MainWindow", "Apply filters")) self.properties_name.setText(_translate("MainWindow", "item_name")) self.properties_price.setText(_translate("MainWindow", "item_price")) diff --git a/gui/gui.ui b/gui/gui.ui index 433fe76..98ff0c6 100644 --- a/gui/gui.ui +++ b/gui/gui.ui @@ -593,6 +593,16 @@ p, li { white-space: pre-wrap; } + + + + Show owned items + + + true + + + diff --git a/gui/modules/core/items_list.py b/gui/modules/core/items_list.py index 18b703d..02181d5 100644 --- a/gui/modules/core/items_list.py +++ b/gui/modules/core/items_list.py @@ -1,6 +1,7 @@ import requests from gui.gui import Ui_MainWindow from modules.database import Database +from modules.config import Config from PyQt5 import QtWidgets, QtGui from gui.modules.handlers import fill_info @@ -22,8 +23,25 @@ def refill_list(ui: Ui_MainWindow): if not (ui.filter_class_box.currentText() == 'All' or item.item_class == ui.filter_class_box.currentText()): continue + if (not ui.filter_show_owned_items_check.isChecked()) and item.item_name in \ + Database.get().profiles[Config.get().profile].owned_items: + continue + list_item = QtWidgets.QListWidgetItem() - list_item.setText(f'{item.item_name} - ${"{:,}".format(item.price)}') + 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") + + list_item.setText(f'' + f'{"☑" if Config.get().profile and item.item_name in Database.get().profiles[Config.get().profile].owned_items else ""}' + f'{item.item_name} - ${"{:,}".format(item.price)}') pixmap = QtGui.QPixmap() try: pixmap.loadFromData(requests.get(item.image).content) diff --git a/gui/modules/handlers/fill_info.py b/gui/modules/handlers/fill_info.py index 5287580..5a010a7 100644 --- a/gui/modules/handlers/fill_info.py +++ b/gui/modules/handlers/fill_info.py @@ -2,12 +2,14 @@ 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() @@ -18,6 +20,17 @@ def on_item_click(ui: Ui_MainWindow, mode: str): 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}') diff --git a/gui/modules/handlers/on_item_remove.py b/gui/modules/handlers/on_item_remove.py index 9f8173f..a886428 100644 --- a/gui/modules/handlers/on_item_remove.py +++ b/gui/modules/handlers/on_item_remove.py @@ -9,6 +9,7 @@ def on_rm_click(ui: Ui_MainWindow): if ui.items_list.currentItem(): Database.remove_item( ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1]) + .replace("☑", "") ) items_list.refill_list(ui) refill_filters(ui)