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)