diff --git a/gui/gui.py b/gui/gui.py
index 0777576..f15c5b7 100644
--- a/gui/gui.py
+++ b/gui/gui.py
@@ -590,10 +590,92 @@ class Ui_MainWindow(object):
self.horizontalLayout_8.addWidget(self.options_lay)
self.verticalLayout_15.addWidget(self.settings_layout)
self.content.addWidget(self.settings_page)
+ self.edit_item_page = QtWidgets.QWidget()
+ self.edit_item_page.setObjectName("edit_item_page")
+ self.verticalLayout_19 = QtWidgets.QVBoxLayout(self.edit_item_page)
+ self.verticalLayout_19.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout_19.setObjectName("verticalLayout_19")
+ self.topmenu_content = QtWidgets.QWidget(self.edit_item_page)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.topmenu_content.sizePolicy().hasHeightForWidth())
+ self.topmenu_content.setSizePolicy(sizePolicy)
+ self.topmenu_content.setObjectName("topmenu_content")
+ self.horizontalLayout_11 = QtWidgets.QHBoxLayout(self.topmenu_content)
+ self.horizontalLayout_11.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_11.setObjectName("horizontalLayout_11")
+ self.cancel_edit_button = QtWidgets.QPushButton(self.topmenu_content)
+ self.cancel_edit_button.setMinimumSize(QtCore.QSize(48, 48))
+ self.cancel_edit_button.setMaximumSize(QtCore.QSize(48, 48))
+ self.cancel_edit_button.setText("")
+ self.cancel_edit_button.setIcon(icon6)
+ self.cancel_edit_button.setIconSize(QtCore.QSize(32, 32))
+ self.cancel_edit_button.setObjectName("cancel_edit_button")
+ self.horizontalLayout_11.addWidget(self.cancel_edit_button)
+ spacerItem22 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_11.addItem(spacerItem22)
+ self.verticalLayout_19.addWidget(self.topmenu_content)
+ self.edit_old_item_name = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_old_item_name.setText("")
+ self.edit_old_item_name.setObjectName("edit_old_item_name")
+ self.verticalLayout_19.addWidget(self.edit_old_item_name)
+ self.edit_box_item_name_label = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_box_item_name_label.setObjectName("edit_box_item_name_label")
+ self.verticalLayout_19.addWidget(self.edit_box_item_name_label)
+ self.edit_box_item_name = QtWidgets.QLineEdit(self.edit_item_page)
+ self.edit_box_item_name.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_box_item_name.setObjectName("edit_box_item_name")
+ self.verticalLayout_19.addWidget(self.edit_box_item_name)
+ self.edit_box_price_label = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_box_price_label.setObjectName("edit_box_price_label")
+ self.verticalLayout_19.addWidget(self.edit_box_price_label)
+ self.edit_box_price = QtWidgets.QSpinBox(self.edit_item_page)
+ self.edit_box_price.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_box_price.setStyleSheet("")
+ self.edit_box_price.setMaximum(10000000)
+ self.edit_box_price.setObjectName("edit_box_price")
+ self.verticalLayout_19.addWidget(self.edit_box_price)
+ self.edit_box_item_class_label = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_box_item_class_label.setObjectName("edit_box_item_class_label")
+ self.verticalLayout_19.addWidget(self.edit_box_item_class_label)
+ self.edit_box_item_class = QtWidgets.QComboBox(self.edit_item_page)
+ self.edit_box_item_class.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_box_item_class.setObjectName("edit_box_item_class")
+ self.verticalLayout_19.addWidget(self.edit_box_item_class)
+ self.edit_box_item_type_label = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_box_item_type_label.setObjectName("edit_box_item_type_label")
+ self.verticalLayout_19.addWidget(self.edit_box_item_type_label)
+ self.edit_box_item_type = QtWidgets.QComboBox(self.edit_item_page)
+ self.edit_box_item_type.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_box_item_type.setObjectName("edit_box_item_type")
+ self.verticalLayout_19.addWidget(self.edit_box_item_type)
+ self.edit_box_shop_label = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_box_shop_label.setObjectName("edit_box_shop_label")
+ self.verticalLayout_19.addWidget(self.edit_box_shop_label)
+ self.edit_box_shop = QtWidgets.QComboBox(self.edit_item_page)
+ self.edit_box_shop.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_box_shop.setObjectName("edit_box_shop")
+ self.verticalLayout_19.addWidget(self.edit_box_shop)
+ self.edit_box_image_label = QtWidgets.QLabel(self.edit_item_page)
+ self.edit_box_image_label.setObjectName("edit_box_image_label")
+ self.verticalLayout_19.addWidget(self.edit_box_image_label)
+ self.edit_box_image = QtWidgets.QLineEdit(self.edit_item_page)
+ self.edit_box_image.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_box_image.setObjectName("edit_box_image")
+ self.verticalLayout_19.addWidget(self.edit_box_image)
+ spacerItem23 = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.verticalLayout_19.addItem(spacerItem23)
+ self.edit_save_button = QtWidgets.QPushButton(self.edit_item_page)
+ self.edit_save_button.setMinimumSize(QtCore.QSize(0, 30))
+ self.edit_save_button.setObjectName("edit_save_button")
+ self.verticalLayout_19.addWidget(self.edit_save_button)
+ self.content.addWidget(self.edit_item_page)
self.verticalLayout_4.addWidget(self.content)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
+ self.content.setCurrentIndex(4)
self.settings_toolbox.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
@@ -650,6 +732,14 @@ class Ui_MainWindow(object):
self.app_theme_box.setItemText(2, _translate("MainWindow", "Black acrylic"))
self.save_gui_setting_button.setText(_translate("MainWindow", "Save visual settings"))
self.settings_toolbox.setItemText(self.settings_toolbox.indexOf(self.gui_options_page), _translate("MainWindow", "Visual options"))
+ self.edit_box_item_name_label.setText(_translate("MainWindow", "Item name"))
+ self.edit_box_price_label.setText(_translate("MainWindow", "Price"))
+ self.edit_box_price.setPrefix(_translate("MainWindow", "$"))
+ self.edit_box_item_class_label.setText(_translate("MainWindow", "Item class"))
+ self.edit_box_item_type_label.setText(_translate("MainWindow", "Item type"))
+ self.edit_box_shop_label.setText(_translate("MainWindow", "Shop website"))
+ self.edit_box_image_label.setText(_translate("MainWindow", "Image URL"))
+ self.edit_save_button.setText(_translate("MainWindow", "Save"))
import gui.images_rc
diff --git a/gui/gui.ui b/gui/gui.ui
index a994140..49b1a6b 100644
--- a/gui/gui.ui
+++ b/gui/gui.ui
@@ -295,6 +295,9 @@ QToolBox::tab {
-
+
+ 0
+
@@ -1695,8 +1698,8 @@ p, li { white-space: pre-wrap; }
0
0
- 782
- 349
+ 296
+ 144
@@ -1862,8 +1865,8 @@ p, li { white-space: pre-wrap; }
0
0
- 782
- 349
+ 166
+ 95
@@ -1982,6 +1985,232 @@ p, li { white-space: pre-wrap; }
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 48
+ 48
+
+
+
+
+ 48
+ 48
+
+
+
+
+
+
+
+ :/img/img/cancel.png:/img/img/cancel.png
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Item name
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+
+ -
+
+
+ Price
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+
+
+
+ $
+
+
+ 10000000
+
+
+
+ -
+
+
+ Item class
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+
+ -
+
+
+ Item type
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+
+ -
+
+
+ Shop website
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+
+ -
+
+
+ Image URL
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 1
+
+
+
+
+ -
+
+
+
+ 0
+ 30
+
+
+
+ Save
+
+
+
+
+
diff --git a/gui/modules/edit/__init__.py b/gui/modules/edit/__init__.py
new file mode 100644
index 0000000..17f6795
--- /dev/null
+++ b/gui/modules/edit/__init__.py
@@ -0,0 +1 @@
+from .on_edit import *
diff --git a/gui/modules/edit/on_edit.py b/gui/modules/edit/on_edit.py
new file mode 100644
index 0000000..c7397a4
--- /dev/null
+++ b/gui/modules/edit/on_edit.py
@@ -0,0 +1,64 @@
+from gui.gui import Ui_MainWindow
+from data import common
+from gui.modules.core import items_list
+from modules.database import Database
+from modules.database.model import Item
+
+
+def fill_type_box(ui: Ui_MainWindow):
+ if ui.edit_box_item_class.currentText() == "Vehicle":
+ ui.edit_box_item_type.clear()
+ ui.edit_box_item_type.addItems(common.vehicle_type)
+ elif ui.edit_box_item_class.currentText() == "Property":
+ ui.edit_box_item_type.clear()
+ ui.edit_box_item_type.addItems(common.property_type)
+ else:
+ ui.edit_box_item_type.clear()
+ ui.edit_box_item_type.addItem("Other")
+
+
+def on_edit_item_click(ui: Ui_MainWindow):
+ item_to_edit_name = items_list.selected_item(ui)
+
+ if not item_to_edit_name:
+ return
+
+ item_to_edit = Database.get().items[item_to_edit_name]
+
+ ui.edit_old_item_name.setText(item_to_edit_name)
+
+ ui.edit_box_item_name.setText(item_to_edit.item_name)
+ ui.edit_box_price.setValue(item_to_edit.price)
+ ui.edit_box_item_class.addItems(common.items_class)
+ ui.edit_box_item_class.setCurrentText(item_to_edit.item_class)
+ ui.edit_box_item_type.addItem("Other")
+ ui.edit_box_item_type.addItem(item_to_edit.item_type)
+ ui.edit_box_item_type.setCurrentText(item_to_edit.item_type)
+ ui.edit_box_shop.addItems(common.shop_sites)
+ ui.edit_box_shop.setCurrentText(item_to_edit.shop)
+ ui.edit_box_image.setText(item_to_edit.image)
+
+ ui.content.setCurrentWidget(ui.edit_item_page)
+
+
+def on_save_edit(ui: Ui_MainWindow):
+ if {"", 0} & {ui.edit_box_item_name.text(), ui.edit_box_price.value()}:
+ return
+
+ db = Database.get()
+ db.items[ui.edit_box_item_name.text()] = Item(
+ ui.edit_box_item_name.text(),
+ ui.edit_box_item_class.currentText(),
+ ui.edit_box_item_type.currentText(),
+ ui.edit_box_shop.currentText(),
+ ui.edit_box_price.value(),
+ ui.edit_box_image.text() if ui.edit_box_image.text() != "" else None
+ )
+
+ if ui.edit_box_item_name.text() != ui.edit_old_item_name.text():
+ db.items.pop(ui.edit_old_item_name.text())
+
+ Database.write(db)
+
+ ui.content.setCurrentWidget(ui.main_page)
+ items_list.refill_list(ui)
diff --git a/gui/modules/handlers/register.py b/gui/modules/handlers/register.py
index 0854809..63847fc 100644
--- a/gui/modules/handlers/register.py
+++ b/gui/modules/handlers/register.py
@@ -6,6 +6,7 @@ from gui.modules.filters import menu
from gui.modules.core import items_list
from gui.modules import account
from gui.modules import settings
+from gui.modules import edit
def register_handlers(ui: Ui_MainWindow):
@@ -33,5 +34,11 @@ def register_handlers(ui: Ui_MainWindow):
ui.own_button.clicked.connect(lambda: account.owning.on_change_owning_clicked(ui))
+ ui.edit_item_button.clicked.connect(lambda: edit.on_edit.on_edit_item_click(ui))
+ ui.cancel_edit_button.clicked.connect(lambda: (ui.content.setCurrentWidget(ui.main_page),
+ items_list.refill_list(ui)))
+ ui.edit_box_item_class.currentTextChanged.connect(lambda: edit.on_edit.fill_type_box(ui))
+ ui.edit_save_button.clicked.connect(lambda: edit.on_edit.on_save_edit(ui))
+
on_add_click.register_add_handlers(ui)
settings.register_handlers(ui)