adding item
This commit is contained in:
15
gui/gui.py
15
gui/gui.py
@@ -364,6 +364,20 @@ class Ui_MainWindow(object):
|
||||
spacerItem15 = QtWidgets.QSpacerItem(20, 154, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_11.addItem(spacerItem15)
|
||||
self.adding_item_main_layout.addWidget(self.new_item_image_page)
|
||||
self.new_item_finish_page = QtWidgets.QWidget()
|
||||
self.new_item_finish_page.setObjectName("new_item_finish_page")
|
||||
self.verticalLayout_12 = QtWidgets.QVBoxLayout(self.new_item_finish_page)
|
||||
self.verticalLayout_12.setObjectName("verticalLayout_12")
|
||||
spacerItem16 = QtWidgets.QSpacerItem(20, 176, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_12.addItem(spacerItem16)
|
||||
self.new_item_finish_label = QtWidgets.QLabel(self.new_item_finish_page)
|
||||
self.new_item_finish_label.setStyleSheet("font: 16pt \"Segoe UI\";")
|
||||
self.new_item_finish_label.setWordWrap(True)
|
||||
self.new_item_finish_label.setObjectName("new_item_finish_label")
|
||||
self.verticalLayout_12.addWidget(self.new_item_finish_label)
|
||||
spacerItem17 = QtWidgets.QSpacerItem(20, 175, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_12.addItem(spacerItem17)
|
||||
self.adding_item_main_layout.addWidget(self.new_item_finish_page)
|
||||
self.verticalLayout_5.addWidget(self.adding_item_main_layout)
|
||||
self.content.addWidget(self.add_page)
|
||||
self.verticalLayout_4.addWidget(self.content)
|
||||
@@ -406,6 +420,7 @@ class Ui_MainWindow(object):
|
||||
self.new_item_shop_label.setText(_translate("MainWindow", "Choose website, where you can get this item"))
|
||||
self.new_item_image_label.setText(_translate("MainWindow", "Paste here URL of image with item"))
|
||||
self.new_item_image_box.setPlaceholderText(_translate("MainWindow", "https://www.gtabase.com/images/jch-optimize/ng/images_gta-5_vehicles_planes_main_luxor-deluxe.webp"))
|
||||
self.new_item_finish_label.setText(_translate("MainWindow", "Fill all fields first"))
|
||||
import gui.images_rc
|
||||
|
||||
|
||||
|
||||
43
gui/gui.ui
43
gui/gui.ui
@@ -1259,6 +1259,49 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="new_item_finish_page">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||
<item>
|
||||
<spacer name="verticalSpacer_15">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>176</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="new_item_finish_label">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 16pt "Segoe UI";</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fill all fields first</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_16">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>175</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
from gui.gui import Ui_MainWindow
|
||||
from gui.modules.adding_item.write_item import add_item_if_can
|
||||
from data import common
|
||||
|
||||
|
||||
def on_add_button_click(ui: Ui_MainWindow):
|
||||
sender_page = ui.content.currentWidget()
|
||||
|
||||
ui.content.setCurrentWidget(ui.add_page)
|
||||
ui.adding_item_main_layout.setCurrentIndex(0)
|
||||
|
||||
ui.new_item_finish_label.setText("Fill all fields first")
|
||||
|
||||
ui.new_item_name_box.clear()
|
||||
ui.new_item_price_box.setValue(0)
|
||||
ui.new_item_class_box.clear()
|
||||
ui.new_item_type_box.clear()
|
||||
ui.new_item_type_box.addItem("Other")
|
||||
ui.new_item_shop_box.clear()
|
||||
ui.new_item_image_box.clear()
|
||||
|
||||
ui.new_item_class_box.addItems(common.items_class)
|
||||
ui.new_item_class_box.setCurrentIndex(len(common.items_class) - 1)
|
||||
ui.new_item_class_box.currentIndexChanged.connect(
|
||||
lambda: (
|
||||
ui.new_item_type_box.clear(),
|
||||
ui.new_item_type_box.addItems(
|
||||
common.vehicle_type if ui.new_item_class_box.currentText() == "Vehicle"
|
||||
else common.property_type if ui.new_item_class_box.currentText() == "Property"
|
||||
else ["Other"]
|
||||
)
|
||||
)
|
||||
)
|
||||
ui.new_item_shop_box.addItems(common.shop_sites)
|
||||
ui.new_item_shop_box.setCurrentIndex(len(common.shop_sites) - 1)
|
||||
|
||||
ui.next_adding_item_button.clicked.connect(
|
||||
lambda: (
|
||||
ui.adding_item_main_layout.setCurrentIndex(
|
||||
(lambda x: x if x <= ui.adding_item_main_layout.count() else ui.adding_item_main_layout.count())
|
||||
(ui.adding_item_main_layout.currentIndex() + 1)),
|
||||
ui.new_item_finish_label.setText("Item registered. Press exit button on left side" if
|
||||
ui.new_item_name_box.text() != "" and
|
||||
ui.new_item_price_box.value() != 0
|
||||
else "Fill all fields first! (Image is not required)"
|
||||
),
|
||||
add_item_if_can(ui)
|
||||
)
|
||||
)
|
||||
|
||||
ui.back_adding_item_button.clicked.connect(
|
||||
lambda: ui.adding_item_main_layout.setCurrentIndex(
|
||||
(lambda x: x if x >= 0 else 0)(ui.adding_item_main_layout.currentIndex() - 1)
|
||||
)
|
||||
)
|
||||
|
||||
ui.cancel_adding_item_button.clicked.connect(lambda: ui.content.setCurrentWidget(sender_page))
|
||||
|
||||
17
gui/modules/adding_item/write_item.py
Normal file
17
gui/modules/adding_item/write_item.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from modules.database import Database
|
||||
from modules.database.model import Item
|
||||
from gui.gui import Ui_MainWindow
|
||||
|
||||
|
||||
def add_item_if_can(ui: Ui_MainWindow):
|
||||
if {"", 0} & {ui.new_item_name_box.text(), ui.new_item_price_box.value()}:
|
||||
return
|
||||
|
||||
Database.add_item(Item(
|
||||
ui.new_item_name_box.text(),
|
||||
ui.new_item_class_box.currentText(),
|
||||
ui.new_item_type_box.currentText(),
|
||||
ui.new_item_shop_box.currentText(),
|
||||
ui.new_item_price_box.value(),
|
||||
ui.new_item_image_box.text() if ui.new_item_image_box.text() != "" else None
|
||||
))
|
||||
@@ -14,8 +14,12 @@ def refill_list(ui: Ui_MainWindow):
|
||||
list_item = QtWidgets.QListWidgetItem()
|
||||
list_item.setText(f'{item.item_name} - ${"{:,}".format(item.price)}')
|
||||
pixmap = QtGui.QPixmap()
|
||||
pixmap.loadFromData(requests.get(item.image).content)
|
||||
list_item.setIcon(QtGui.QIcon(pixmap))
|
||||
try:
|
||||
pixmap.loadFromData(requests.get(item.image).content)
|
||||
list_item.setIcon(QtGui.QIcon(pixmap))
|
||||
except Exception as e:
|
||||
print(f"Failed to load {item.image}, {e}")
|
||||
|
||||
ui.items_list.addItem(list_item)
|
||||
|
||||
else:
|
||||
|
||||
@@ -11,8 +11,12 @@ def on_item_click(ui: Ui_MainWindow, mode: str):
|
||||
]
|
||||
|
||||
pixmap = QtGui.QPixmap()
|
||||
pixmap.loadFromData(requests.get(item.image).content)
|
||||
ui.properties_image.setPixmap(pixmap)
|
||||
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}")
|
||||
|
||||
ui.properties_name.setText(item.item_name)
|
||||
ui.properties_price.setText(f'${"{:,}".format(item.price)}')
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from gui.gui import Ui_MainWindow
|
||||
from gui.modules.handlers import fill_info
|
||||
from gui.modules.handlers import on_item_remove
|
||||
from gui.modules.adding_item import on_add_click
|
||||
|
||||
|
||||
def register_handlers(ui: Ui_MainWindow):
|
||||
@@ -8,3 +9,5 @@ def register_handlers(ui: Ui_MainWindow):
|
||||
ui.items_list.itemDoubleClicked.connect(lambda: fill_info.on_item_click(ui, 'close'))
|
||||
|
||||
ui.delete_item_button.clicked.connect(lambda: on_item_remove.on_rm_click(ui))
|
||||
|
||||
ui.add_item_button.clicked.connect(lambda: on_add_click.on_add_button_click(ui))
|
||||
|
||||
@@ -5,6 +5,7 @@ from PyQt5.QtWidgets import QMainWindow
|
||||
from modules.config import Config
|
||||
from gui.modules.core import items_list
|
||||
from modules.database import Database
|
||||
from modules.database.model import Item
|
||||
|
||||
|
||||
def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
||||
@@ -18,3 +19,4 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
||||
GlobalBlur(MainWindow.winId(), acrylic=True)
|
||||
|
||||
items_list.refill_list(ui)
|
||||
Database.add_item(Item("aa", "aa", "aa", "aa", 10, "aa"))
|
||||
|
||||
Reference in New Issue
Block a user