diff --git a/gui/gui.py b/gui/gui.py index fad5bac..1dccbee 100644 --- a/gui/gui.py +++ b/gui/gui.py @@ -22,9 +22,9 @@ class Ui_MainWindow(object): self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setStyleSheet("") self.centralwidget.setObjectName("centralwidget") - self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) - self.horizontalLayout.setContentsMargins(9, 9, 9, 9) - self.horizontalLayout.setObjectName("horizontalLayout") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout_4.setContentsMargins(9, 9, 9, 9) + self.verticalLayout_4.setObjectName("verticalLayout_4") self.content = QtWidgets.QStackedWidget(self.centralwidget) self.content.setObjectName("content") self.main_page = QtWidgets.QWidget() @@ -208,8 +208,165 @@ class Ui_MainWindow(object): self.content.addWidget(self.main_page) self.add_page = QtWidgets.QWidget() self.add_page.setObjectName("add_page") + self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.add_page) + self.verticalLayout_5.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_5.setObjectName("verticalLayout_5") + self.top_menu_add_item = QtWidgets.QWidget(self.add_page) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.top_menu_add_item.sizePolicy().hasHeightForWidth()) + self.top_menu_add_item.setSizePolicy(sizePolicy) + self.top_menu_add_item.setObjectName("top_menu_add_item") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.top_menu_add_item) + self.horizontalLayout.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout.setObjectName("horizontalLayout") + self.cancel_adding_item_button = QtWidgets.QPushButton(self.top_menu_add_item) + self.cancel_adding_item_button.setMinimumSize(QtCore.QSize(48, 48)) + self.cancel_adding_item_button.setMaximumSize(QtCore.QSize(48, 48)) + self.cancel_adding_item_button.setText("") + icon5 = QtGui.QIcon() + icon5.addPixmap(QtGui.QPixmap(":/img/img/cancel.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.cancel_adding_item_button.setIcon(icon5) + self.cancel_adding_item_button.setIconSize(QtCore.QSize(32, 32)) + self.cancel_adding_item_button.setObjectName("cancel_adding_item_button") + self.horizontalLayout.addWidget(self.cancel_adding_item_button) + self.back_adding_item_button = QtWidgets.QPushButton(self.top_menu_add_item) + self.back_adding_item_button.setMinimumSize(QtCore.QSize(48, 48)) + self.back_adding_item_button.setMaximumSize(QtCore.QSize(48, 48)) + self.back_adding_item_button.setText("") + icon6 = QtGui.QIcon() + icon6.addPixmap(QtGui.QPixmap(":/img/img/back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.back_adding_item_button.setIcon(icon6) + self.back_adding_item_button.setIconSize(QtCore.QSize(32, 32)) + self.back_adding_item_button.setObjectName("back_adding_item_button") + self.horizontalLayout.addWidget(self.back_adding_item_button) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem3) + self.next_adding_item_button = QtWidgets.QPushButton(self.top_menu_add_item) + self.next_adding_item_button.setMinimumSize(QtCore.QSize(48, 48)) + self.next_adding_item_button.setMaximumSize(QtCore.QSize(48, 48)) + self.next_adding_item_button.setText("") + icon7 = QtGui.QIcon() + icon7.addPixmap(QtGui.QPixmap(":/img/img/next.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.next_adding_item_button.setIcon(icon7) + self.next_adding_item_button.setIconSize(QtCore.QSize(32, 32)) + self.next_adding_item_button.setObjectName("next_adding_item_button") + self.horizontalLayout.addWidget(self.next_adding_item_button) + self.verticalLayout_5.addWidget(self.top_menu_add_item) + self.adding_item_main_layout = QtWidgets.QStackedWidget(self.add_page) + self.adding_item_main_layout.setObjectName("adding_item_main_layout") + self.new_item_name_page = QtWidgets.QWidget() + self.new_item_name_page.setObjectName("new_item_name_page") + self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.new_item_name_page) + self.verticalLayout_6.setObjectName("verticalLayout_6") + spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_6.addItem(spacerItem4) + self.new_item_name_label = QtWidgets.QLabel(self.new_item_name_page) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.new_item_name_label.sizePolicy().hasHeightForWidth()) + self.new_item_name_label.setSizePolicy(sizePolicy) + self.new_item_name_label.setObjectName("new_item_name_label") + self.verticalLayout_6.addWidget(self.new_item_name_label) + self.new_item_name_box = QtWidgets.QLineEdit(self.new_item_name_page) + self.new_item_name_box.setMinimumSize(QtCore.QSize(0, 50)) + self.new_item_name_box.setStyleSheet("font: 16pt \"Segoe UI\";") + self.new_item_name_box.setObjectName("new_item_name_box") + self.verticalLayout_6.addWidget(self.new_item_name_box) + spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_6.addItem(spacerItem5) + self.adding_item_main_layout.addWidget(self.new_item_name_page) + self.new_item_price_page = QtWidgets.QWidget() + self.new_item_price_page.setObjectName("new_item_price_page") + self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.new_item_price_page) + self.verticalLayout_7.setObjectName("verticalLayout_7") + spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_7.addItem(spacerItem6) + self.new_item_price_label = QtWidgets.QLabel(self.new_item_price_page) + self.new_item_price_label.setObjectName("new_item_price_label") + self.verticalLayout_7.addWidget(self.new_item_price_label) + self.new_item_price_box = QtWidgets.QSpinBox(self.new_item_price_page) + self.new_item_price_box.setMinimumSize(QtCore.QSize(0, 50)) + self.new_item_price_box.setStyleSheet("font: 16pt \"Segoe UI\";") + self.new_item_price_box.setMaximum(10000000) + self.new_item_price_box.setObjectName("new_item_price_box") + self.verticalLayout_7.addWidget(self.new_item_price_box) + spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_7.addItem(spacerItem7) + self.adding_item_main_layout.addWidget(self.new_item_price_page) + self.new_item_class_page = QtWidgets.QWidget() + self.new_item_class_page.setObjectName("new_item_class_page") + self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.new_item_class_page) + self.verticalLayout_8.setObjectName("verticalLayout_8") + spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_8.addItem(spacerItem8) + self.new_item_class_label = QtWidgets.QLabel(self.new_item_class_page) + self.new_item_class_label.setObjectName("new_item_class_label") + self.verticalLayout_8.addWidget(self.new_item_class_label) + self.new_item_class_box = QtWidgets.QComboBox(self.new_item_class_page) + self.new_item_class_box.setMinimumSize(QtCore.QSize(0, 50)) + self.new_item_class_box.setStyleSheet("font: 16pt \"Segoe UI\";") + self.new_item_class_box.setObjectName("new_item_class_box") + self.verticalLayout_8.addWidget(self.new_item_class_box) + spacerItem9 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_8.addItem(spacerItem9) + self.adding_item_main_layout.addWidget(self.new_item_class_page) + self.new_item_type_page = QtWidgets.QWidget() + self.new_item_type_page.setObjectName("new_item_type_page") + self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.new_item_type_page) + self.verticalLayout_9.setObjectName("verticalLayout_9") + spacerItem10 = QtWidgets.QSpacerItem(20, 154, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(spacerItem10) + self.new_item_type_label = QtWidgets.QLabel(self.new_item_type_page) + self.new_item_type_label.setObjectName("new_item_type_label") + self.verticalLayout_9.addWidget(self.new_item_type_label) + self.new_item_type_box = QtWidgets.QComboBox(self.new_item_type_page) + self.new_item_type_box.setMinimumSize(QtCore.QSize(0, 50)) + self.new_item_type_box.setStyleSheet("font: 16pt \"Segoe UI\";") + self.new_item_type_box.setObjectName("new_item_type_box") + self.verticalLayout_9.addWidget(self.new_item_type_box) + spacerItem11 = QtWidgets.QSpacerItem(20, 154, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_9.addItem(spacerItem11) + self.adding_item_main_layout.addWidget(self.new_item_type_page) + self.new_item_shop_page = QtWidgets.QWidget() + self.new_item_shop_page.setObjectName("new_item_shop_page") + self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.new_item_shop_page) + self.verticalLayout_10.setObjectName("verticalLayout_10") + spacerItem12 = QtWidgets.QSpacerItem(20, 154, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_10.addItem(spacerItem12) + self.new_item_shop_label = QtWidgets.QLabel(self.new_item_shop_page) + self.new_item_shop_label.setObjectName("new_item_shop_label") + self.verticalLayout_10.addWidget(self.new_item_shop_label) + self.new_item_shop_box = QtWidgets.QComboBox(self.new_item_shop_page) + self.new_item_shop_box.setMinimumSize(QtCore.QSize(0, 50)) + self.new_item_shop_box.setStyleSheet("font: 16pt \"Segoe UI\";") + self.new_item_shop_box.setObjectName("new_item_shop_box") + self.verticalLayout_10.addWidget(self.new_item_shop_box) + spacerItem13 = QtWidgets.QSpacerItem(20, 154, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_10.addItem(spacerItem13) + self.adding_item_main_layout.addWidget(self.new_item_shop_page) + self.new_item_image_page = QtWidgets.QWidget() + self.new_item_image_page.setObjectName("new_item_image_page") + self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.new_item_image_page) + self.verticalLayout_11.setObjectName("verticalLayout_11") + spacerItem14 = QtWidgets.QSpacerItem(20, 154, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_11.addItem(spacerItem14) + self.new_item_image_label = QtWidgets.QLabel(self.new_item_image_page) + self.new_item_image_label.setObjectName("new_item_image_label") + self.verticalLayout_11.addWidget(self.new_item_image_label) + self.new_item_image_box = QtWidgets.QLineEdit(self.new_item_image_page) + self.new_item_image_box.setMinimumSize(QtCore.QSize(0, 50)) + self.new_item_image_box.setStyleSheet("font: 16pt \"Segoe UI\";") + self.new_item_image_box.setObjectName("new_item_image_box") + self.verticalLayout_11.addWidget(self.new_item_image_box) + 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.verticalLayout_5.addWidget(self.adding_item_main_layout) self.content.addWidget(self.add_page) - self.horizontalLayout.addWidget(self.content) + self.verticalLayout_4.addWidget(self.content) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) @@ -240,6 +397,15 @@ class Ui_MainWindow(object): self.properties_shop.setText(_translate("MainWindow", "item_shop")) self.own_button.setText(_translate("MainWindow", "Mark this item as owned")) self.delete_item_button.setText(_translate("MainWindow", "Delete this item")) + self.new_item_name_label.setText(_translate("MainWindow", "Full item name")) + self.new_item_name_box.setPlaceholderText(_translate("MainWindow", "Buckingham Luxor Deluxe")) + self.new_item_price_label.setText(_translate("MainWindow", "Item price")) + self.new_item_price_box.setPrefix(_translate("MainWindow", "$")) + self.new_item_class_label.setText(_translate("MainWindow", "Choose item class")) + self.new_item_type_label.setText(_translate("MainWindow", "Choose item type")) + 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")) import gui.images_rc diff --git a/gui/gui.ui b/gui/gui.ui index 436229d..c682dcf 100644 --- a/gui/gui.ui +++ b/gui/gui.ui @@ -273,7 +273,7 @@ QSpinBox::down-button { - + 9 @@ -801,7 +801,468 @@ 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 + + + + + + + + + 48 + 48 + + + + + 48 + 48 + + + + + + + + :/img/img/back.png:/img/img/back.png + + + + 32 + 32 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 48 + 48 + + + + + 48 + 48 + + + + + + + + :/img/img/next.png:/img/img/next.png + + + + 32 + 32 + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + Full item name + + + + + + + + 0 + 50 + + + + font: 16pt "Segoe UI"; + + + Buckingham Luxor Deluxe + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Item price + + + + + + + + 0 + 50 + + + + font: 16pt "Segoe UI"; + + + $ + + + 10000000 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Choose item class + + + + + + + + 0 + 50 + + + + font: 16pt "Segoe UI"; + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + Choose item type + + + + + + + + 0 + 50 + + + + font: 16pt "Segoe UI"; + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + Choose website, where you can get this item + + + + + + + + 0 + 50 + + + + font: 16pt "Segoe UI"; + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + Paste here URL of image with item + + + + + + + + 0 + 50 + + + + font: 16pt "Segoe UI"; + + + https://www.gtabase.com/images/jch-optimize/ng/images_gta-5_vehicles_planes_main_luxor-deluxe.webp + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + + + diff --git a/gui/images.qrc b/gui/images.qrc index affbbfa..174b0f8 100644 --- a/gui/images.qrc +++ b/gui/images.qrc @@ -1,5 +1,8 @@ + img/next.png + img/back.png + img/cancel.png img/account.png img/icon.ico img/menu.png diff --git a/gui/images_rc.py b/gui/images_rc.py index bb41ce3..d0270eb 100644 --- a/gui/images_rc.py +++ b/gui/images_rc.py @@ -9,59 +9,90 @@ from PyQt5 import QtCore qt_resource_data = b"\ -\x00\x00\x03\x30\ +\x00\x00\x03\xb3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x02\xe5\x49\x44\x41\x54\x78\x9c\xed\x9b\xbd\x6e\ -\x13\x41\x14\x85\xbf\x9b\x90\x08\x25\x88\x0a\x70\x48\x47\x41\x12\ -\x40\xa1\x0e\x48\xa4\x42\x0a\x3d\xa2\x49\x05\x15\x82\x86\xe7\xa0\ -\x41\x02\xf1\xa7\x28\x0a\x1d\x0d\x11\x0f\x80\x78\x00\x78\x80\x84\ -\x9f\x8a\x2a\xb1\x0d\x0d\x42\x02\x62\x63\x1f\x8a\x5d\xa4\xc8\xda\ -\x59\x6f\x9c\xdd\x1d\x2f\x9e\x4f\x72\x73\x67\x3c\x3e\xf7\x78\x66\ -\x76\xbc\x7b\x0d\x81\x40\x20\x30\xc2\xd8\x20\x6f\x92\x64\x40\x0d\ -\x98\x01\x4e\xe4\xaa\xe8\xe0\x7c\x03\xea\x40\xc3\xcc\x54\xe8\x27\ -\x49\xba\x20\xe9\x99\xa4\xa6\x86\x8f\xa6\xa4\xa7\x92\xce\x17\x91\ -\xf8\xb4\xa4\x75\x49\x1d\x49\x7b\x3e\xb3\xec\x43\x4b\x91\xc6\x35\ -\x49\x53\x59\x72\xeb\xbb\x04\x24\xcd\x02\x6f\x80\xb3\xc0\xe4\x21\ -\xbd\x2c\x8b\x36\xf0\x11\x58\x31\xb3\xdd\xb4\x8e\xa9\x06\x48\x9a\ -\x06\xde\x03\x73\xc0\x44\x6e\xf2\xca\xe1\x9f\x09\x4b\x66\xf6\xd3\ -\xd5\x69\xac\xcf\x20\x0f\x89\xbe\xf9\xaa\x25\x0f\x91\xe6\x79\xe0\ -\x41\x5a\x27\xe7\x0c\x90\xb4\x00\x6c\xd1\xdf\xa4\x61\xa7\x0b\x5c\ -\x34\xb3\xad\xa4\xc6\xb4\xe4\xee\x01\x9d\x42\x24\x95\xcb\x1f\xe0\ -\xae\xab\x31\x71\x06\x28\xba\xce\x37\x80\x93\x05\x89\x2a\x9b\x26\ -\x30\x93\x74\x4e\x70\xcd\x80\x1a\xff\x4f\xf2\x00\xa7\x70\xe4\xe3\ -\x32\x60\xb6\x38\x2d\xde\x48\xcc\xc9\x65\xc0\xb1\x02\x85\xf8\xe2\ -\x78\x52\xd0\xc7\x0e\xdf\x1e\xb0\xad\x10\x8e\x94\xfd\x81\x44\x57\ -\x96\x75\xe0\x75\x4f\xfc\x3a\x70\x93\x92\xcf\x1c\x3e\x0c\x00\xf8\ -\x6c\x66\x6f\xf7\x07\x24\x2d\xfa\x10\x52\xf5\x43\xce\xa1\x09\x06\ -\xf8\x16\xe0\x9b\x60\x80\x6f\x01\xbe\x09\x06\xf8\x16\xe0\x9b\x91\ -\x37\x20\xaf\x83\x50\x9b\xe8\xc6\x43\x16\x26\x1d\x7d\xbb\x71\xdb\ -\x5e\xc6\x71\xc6\xc8\xe1\xd4\x98\x97\x01\x13\xc0\x73\xe0\x4b\x86\ -\xbe\x1d\x60\x33\x21\xfe\x2a\x1e\x67\x3c\xc3\x18\x67\x80\xdb\x99\ -\xd5\x1d\x14\x49\xcb\x03\xdc\x92\xbe\x52\x98\xa0\x7c\xf4\x2d\x27\ -\x8d\x35\xf2\x7b\x40\x30\xc0\xb7\x00\xdf\xe4\xf9\x73\x78\x55\xd2\ -\xe5\x0c\xfd\x3a\xc0\x4b\x33\xdb\xd9\x1f\x8c\x9f\x40\xad\x92\x7d\ -\x13\xcc\x85\x3c\x2f\x83\xb7\x32\xf6\x9d\x00\x5a\xc0\xa3\x9e\xf8\ -\x0d\xe0\x3e\xd9\xef\x0a\xb5\x19\xb2\xcb\x60\x56\x7e\x93\xbc\xf4\ -\xc6\x88\x8c\x39\x9a\x8b\xa2\x8c\x8c\xfc\x1e\x10\x0c\xf0\x2d\xc0\ -\x37\xc1\x00\xdf\x02\x7c\x13\x0c\xf0\x2d\xc0\x37\x23\x6f\x80\xaf\ -\x27\x43\x73\x92\xae\xf6\xc6\x7c\x08\xf1\x61\xc0\x38\x70\x27\x7e\ -\xf5\x52\xfa\xc3\x51\x1f\x4b\x20\xed\xd8\x5c\x7a\x31\x96\xcb\x80\ -\x1f\xa5\xaa\x28\x87\xef\x49\x41\x97\x01\x3b\x8e\x78\x95\x49\x2c\ -\x98\x74\x19\xd0\x04\xbe\x16\xa7\xa5\x74\x1a\x38\xf2\x49\x34\x20\ -\xae\xa6\xda\xc4\xc3\xa6\x54\x00\x2d\x60\xd3\x55\x49\x9e\x56\x28\ -\x39\x0f\x6c\x53\xfd\xb3\x42\x17\x58\x34\xb3\xed\xa4\x46\x67\x72\ -\x66\xf6\x09\xd8\xa0\xda\xb3\xa0\x0d\xac\xb9\x92\x87\xfe\xc5\xd2\ -\x53\xc0\x3b\x60\x81\xea\xd5\x0b\xb7\x81\x0f\x44\xc5\xd2\xbf\x5c\ -\x9d\x52\xa7\x77\x5c\x65\x7d\x8d\xa8\xea\xba\x4a\x33\xa1\x45\xb4\ -\x7c\x57\xd2\x92\x87\x0c\xeb\x3b\xbe\x7b\xbb\x04\xbc\x20\x5a\x4f\ -\xad\x3c\x14\x16\x44\x8b\x48\xe3\x06\x70\xc9\xcc\xea\xb9\x8e\x2e\ -\xe9\x9c\xa4\x27\x92\xea\x03\x3c\x9a\x2a\x9a\xba\xa4\xc7\x8a\xaa\ -\xdc\x33\x33\xd0\x9f\xa6\x62\x33\x6a\xc0\x69\x86\xe3\x4f\x53\xbb\ -\x66\xd6\xf0\xac\x23\x10\x08\x04\xaa\xc7\x5f\x97\x7c\xed\x09\x30\ -\x07\x1e\xe5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\xa7\x93\x00\x00\x03\x68\x49\x44\x41\x54\x78\x9c\xed\x9a\x4d\x8b\ +\x1d\x45\x14\x86\x9f\xe3\x90\x0f\x45\x51\x08\x19\x75\x32\x2e\x04\ +\x23\x83\xa8\x20\x04\x35\x22\x83\x48\x96\x0a\x41\x50\x7f\x87\xba\ +\x10\x5d\x65\x21\xe2\x4e\xf3\x03\x44\xa2\x1b\xc1\x4d\x04\x45\x31\ +\x09\x28\xf1\x6b\xa1\x9b\x18\xa3\xc4\x85\xa2\x99\x41\xf1\x83\x44\ +\xd1\x49\x32\x66\x1e\x17\x7d\x2f\xe8\x38\xc9\xed\xea\x9c\xee\x9e\ +\x90\x7e\xe0\x6e\x2e\xb7\xde\x3a\xef\xa1\x6e\xd7\xa9\x53\x0d\x03\ +\x03\x03\x03\x97\x31\xd1\xf5\x84\xea\x76\x60\x17\x30\x03\xcc\x8e\ +\xbe\x3e\x01\x2c\x02\x07\x23\xe2\x9b\xae\x63\x6a\x1d\x75\x93\xfa\ +\xa4\xfa\xa5\x93\x39\xaa\x3e\xa1\x6e\xea\x3b\xee\x14\xd4\x47\xd4\ +\xef\x6a\x18\x5f\xcd\xb7\xea\xee\xbe\xe3\x6f\x8c\x1a\xea\x1e\x75\ +\xa5\x81\xf9\x31\x2b\xea\x0b\xea\x15\x7d\xfb\x29\x46\x7d\xe5\x22\ +\x8c\xaf\xe6\xe5\xbe\xfd\x14\xa1\x3e\x9d\x68\x7e\xcc\x53\x7d\xfb\ +\xaa\x85\x7a\xb7\x7a\xae\x85\x04\xfc\xad\xee\xe8\xdb\xdf\x44\xd4\ +\x43\x2d\x98\x1f\xf3\x7e\xdf\xfe\x2e\x88\xba\xab\x45\xf3\x63\x1e\ +\xcc\x8c\x39\xfb\xe9\xfa\x78\xb2\xde\x5a\x3c\x96\x29\x96\x56\x09\ +\x5a\x6d\x55\x0b\xc0\x0d\x59\x9a\xe7\xe1\x27\x60\x26\x22\x56\x32\ +\xc4\x32\x57\xc0\x4d\xb4\x6f\x1e\xe0\x7a\x60\x5b\x96\x58\x66\x02\ +\x6e\x4c\xd4\x9a\xc4\x4c\x96\x50\x66\x02\xa6\x13\xb5\x3a\x9b\x2b\ +\x33\x01\xbf\x27\x6a\x4d\xe2\x54\x96\x50\x66\x02\x16\x13\xb5\x3a\ +\x9b\x2b\x33\x01\x3f\x00\xa7\x13\xf5\xce\xc7\x12\x55\xff\x20\x85\ +\xb4\x04\x44\xc4\x12\x70\x30\x4b\xef\x02\x1c\x88\x88\xb4\x44\x67\ +\x17\x42\xfb\x93\xf5\xd6\xe2\xcd\x4c\xb1\xd4\x96\x98\xba\x19\x38\ +\x4e\x55\x13\xb4\xc1\x02\x70\x6b\x44\xfc\x95\x25\x98\xba\x02\x46\ +\x4b\x73\x4f\xa6\xe6\x2a\x9e\xcd\x34\xdf\x0a\xea\x94\xfa\x4e\x0b\ +\x87\xa0\xb7\xbd\x54\x3a\x43\xea\x35\x56\xcd\xcd\x2c\xbe\x52\xaf\ +\xeb\xdb\x57\x11\xea\xac\xfa\x79\x82\xf9\xcf\xd4\xb4\xda\xbf\x53\ +\xd4\xab\xd4\xd7\x1a\x1a\x5f\x51\xf7\xa9\x57\xf6\xed\xe3\xa2\x51\ +\xef\x53\x3f\x2c\x30\x7f\x58\xdd\xd9\x45\x6c\x9d\xde\x0c\xa9\x73\ +\xc0\x6e\xaa\x9b\xa1\x6d\xfc\xf7\x66\xe8\x04\x70\x08\xd8\x1f\x11\ +\x5f\x77\x19\xd7\xc0\xc0\xc0\xc0\x65\x4b\xe3\x5d\x40\xbd\x1f\x78\ +\x88\xea\xe0\xb3\x21\x2d\xa2\x32\x96\x81\xef\x81\xb7\x22\xe2\xa3\ +\x4e\x66\x54\xa7\xd5\xf7\x1a\x16\x37\x6d\xf2\xae\xba\xb5\xd4\x4f\ +\xd1\x0a\xb0\xaa\xc7\x3f\x01\xe6\x4a\x27\xea\x88\x63\xc0\xce\x88\ +\xa8\xdd\x9f\x2c\x3d\x5d\x3d\xcf\xfa\x35\x0f\x70\x1b\xf0\x5c\xc9\ +\x80\xda\x2b\x40\xbd\x1a\xf8\x19\xd8\x5c\x18\x54\xd7\x9c\x06\xa6\ +\x23\xe2\x8f\x3a\x3f\x2e\x59\x01\x3b\x58\xff\xe6\xa1\x8a\xf1\xae\ +\xba\x3f\x2e\x49\xc0\x96\xf2\x58\x7a\xa3\xf6\xc3\xb0\x24\x01\x97\ +\x46\x37\xa6\xa2\x76\xac\x25\xa6\xfe\x6c\x10\x48\x5f\xd4\xfa\xff\ +\x43\x59\x02\xd2\x2e\x23\x3a\xa0\x76\xac\x25\xbb\xc0\x14\xf0\x0b\ +\xb0\xde\x7b\x73\x27\x81\x2d\x75\xdf\x1f\xa8\xbd\x02\x22\xe2\x1c\ +\xf0\x46\xd3\xa8\x3a\xe4\xf5\x92\x97\x27\x4a\x2b\xc1\x39\xe0\x08\ +\xfd\xd5\xfe\x93\x58\x06\x6e\x8f\x88\xe3\x75\x07\x14\x3d\xd9\x47\ +\xad\xaa\xbd\xa5\x51\x75\xc8\x8b\x25\xe6\xa1\xc1\x69\x50\xdd\x08\ +\x7c\x00\xdc\x5b\x3a\xb6\x65\x3e\x06\x1e\x88\x88\xe5\x92\x41\xc5\ +\x7b\x7b\x44\x9c\xa5\x3a\x06\x7f\x51\x3a\xb6\x45\x8e\x00\x0f\x97\ +\x9a\x87\x86\xc5\x4d\x44\xfc\x0a\xcc\xd3\xcd\x75\xf8\x24\x0e\x00\ +\xf3\x11\xf1\x5b\xe7\x33\x5b\xdd\x03\x3e\xa3\x2e\xf5\x70\xfe\x5f\ +\x1a\xcd\x3d\xd5\xb9\xf1\x35\x12\x31\xab\xee\x55\xcf\x74\x60\xfc\ +\xac\xfa\xaa\x7a\x73\xdf\xbe\xff\x87\xba\x7d\x94\x88\xc5\x16\x8c\ +\x2f\xa8\x2f\xa9\xb7\x64\xc6\xdc\xca\xcd\x90\xd5\x35\xf6\x3c\xf0\ +\x28\x70\x0f\x70\x07\xb0\xb1\x50\xe6\x0c\x70\x14\xf8\x94\xaa\x00\ +\x3b\x9c\xf5\x76\xe8\xbf\xe9\xe4\x6a\x4c\xdd\x40\xd5\xad\xb9\x93\ +\xea\x4d\xcf\x6b\xa9\x4a\xea\x71\x59\x7d\x72\xf4\x39\x05\xfc\x48\ +\xb5\xc3\x1c\x6b\xf2\x54\x1f\x18\x18\x18\x18\x28\xe0\x1f\x07\x8c\ +\x76\x28\x0c\x32\x8d\xaa\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x01\x36\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\xeb\x49\x44\x41\x54\x78\x9c\xed\xd8\x31\x6e\ +\xc2\x50\x10\x45\xd1\x3b\xe9\x91\x10\x69\x53\x53\x86\x32\x4b\xc8\ +\x96\xb2\x8a\x78\x1f\x28\x3b\x80\x3a\x3d\x2d\xa4\x4d\x8b\x14\x67\ +\x01\x9f\x02\x17\xd6\xe7\xd3\xc1\x88\x84\x7b\xca\xb1\x8b\x37\xd6\ +\xb8\x79\x20\x49\x92\x24\xe9\x1e\x45\x6b\x58\x4a\x79\x02\x3a\xe0\ +\x15\x98\xa4\x26\xba\xbc\x5f\x60\x05\xbc\x45\xc4\xae\x7e\x78\xf2\ +\x01\x86\xe5\x37\xc0\xec\xfa\xd9\x52\xed\x81\xe7\x88\xf8\x1e\x0f\ +\x1f\x1a\x2f\x76\xfc\xbf\xe5\xe1\xb8\xd3\x7b\x3d\x6c\x5d\x40\xcf\ +\xdf\x3f\xfb\x73\x7e\x22\x62\x3a\x1e\xb4\x2e\xa0\x24\x85\xb9\x09\ +\xad\x0f\xb0\x4e\x4f\x91\x67\x55\x0f\x5a\xbf\xc0\x1c\xf8\x04\x1e\ +\x33\x12\x25\xda\x03\x2f\x11\xf1\x35\x1e\x9e\x5c\x40\x44\x6c\x81\ +\x05\xb0\x04\xfa\x9c\x6c\x57\xd5\x03\x1f\x34\x96\x97\x24\x49\xf7\ +\xcd\x3e\xa0\x1e\xd8\x07\xd8\x07\xd8\x07\xd8\x07\xa4\xa7\xc8\x63\ +\x1f\x60\x1f\x20\x49\x92\x34\xb0\x0f\xa8\x07\xf6\x01\xf6\x01\xf6\ +\x01\xf6\x01\xe9\x29\xf2\xd8\x07\xd8\x07\x48\x92\x24\x49\x12\x70\ +\x00\x67\x69\x63\x5e\x7b\xf6\xed\x1f\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ \x00\x00\x78\x22\ \x00\ \x04\x20\x3e\x78\x9c\xec\xbd\x07\x54\x54\xcb\xd7\xe0\xfb\xff\x7f\ @@ -1987,68 +2018,115 @@ qt_resource_data = b"\ \xfa\x05\xe6\x7a\xbb\xd4\x27\x98\xe3\xaf\x33\x89\x1e\xfa\xe1\x25\ \x0a\x9a\xbf\x98\x7d\xc6\x39\x3f\xdb\xea\xd5\xff\x02\xf1\x29\xae\ \x82\ -\x00\x00\x03\xb3\ +\x00\x00\x01\xb0\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\ +\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\ +\xa8\x64\x00\x00\x01\x45\x49\x44\x41\x54\x78\x5e\xed\xdb\x3d\x4a\ +\xc4\x50\x18\x46\xe1\x20\xee\x40\xd4\x46\xb4\xb3\xb6\x72\x05\x2e\ +\x41\x45\xd4\xb5\xd8\xc4\x85\x45\x88\x45\xec\xf2\xe3\x52\x12\x49\ +\x32\xa3\x9e\xc0\x17\xe1\x12\x62\x21\x16\x7a\xbf\xf7\x69\x86\xcc\ +\xa4\x39\x2f\x33\x03\x13\x26\x89\x88\xfc\x8a\x3d\x1c\xc3\x0e\x7d\ +\x79\x40\xdf\xf7\xc3\x07\xb2\x2c\x7b\x3a\x84\xbd\x14\xbf\x33\x6c\ +\xb7\xdb\xf7\x29\x7e\xd6\x34\xcd\xab\x9b\x11\x6e\x60\xdd\x01\x37\ +\x23\x1c\xa1\x6d\xdb\xce\xba\x03\x6e\x46\xb8\xc4\x30\x0c\xa3\x75\ +\x07\xea\xba\x6e\x5c\x8c\x70\x8b\x71\x1c\x37\xd6\x1d\xa8\xaa\xaa\ +\x3e\x80\x9d\x1a\x2f\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\ +\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\ +\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x00\x8d\x80\x6b\xac\x5d\ +\x6d\x2e\x8a\xe2\x65\x17\x76\x6a\xbc\xbe\x7b\x27\x5c\xc0\x4e\xfb\ +\xb1\x1d\x7b\xfc\xb3\x36\x98\x62\xed\x30\xb0\xf6\x7c\x34\x5c\x7f\ +\x04\xee\xb0\xf6\xd6\x2f\xcb\xb2\xda\x87\x9d\x1a\x1f\xc5\x2b\x7e\ +\x49\xf1\x8a\x8f\x94\xe2\x15\xbf\xa4\x78\xc5\x47\x4a\xf1\x2b\xf1\ +\xd3\x05\x0e\xd7\xf1\x51\x5f\xdd\x51\xbc\xe2\x97\x14\xaf\xf8\x48\ +\x29\xde\x6b\xfc\x15\xdc\xfe\x5d\xfe\x04\x5d\xd7\xbd\x59\x6f\xc0\ +\xc5\x0d\x13\xf7\xb0\xde\x80\x9b\xbb\x45\xce\x61\xcd\x5f\x5c\xdd\ +\x34\x35\x49\xd3\xf4\x71\xfe\x02\xcc\xf3\xfc\xd9\x55\xfc\x6c\xfa\ +\x35\x77\x0a\x3b\x14\x91\xff\x20\x49\x3e\x01\xba\x26\x04\xe0\xd9\ +\xf1\x5c\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x03\x30\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x03\x68\x49\x44\x41\x54\x78\x9c\xed\x9a\x4d\x8b\ -\x1d\x45\x14\x86\x9f\xe3\x90\x0f\x45\x51\x08\x19\x75\x32\x2e\x04\ -\x23\x83\xa8\x20\x04\x35\x22\x83\x48\x96\x0a\x41\x50\x7f\x87\xba\ -\x10\x5d\x65\x21\xe2\x4e\xf3\x03\x44\xa2\x1b\xc1\x4d\x04\x45\x31\ -\x09\x28\xf1\x6b\xa1\x9b\x18\xa3\xc4\x85\xa2\x99\x41\xf1\x83\x44\ -\xd1\x49\x32\x66\x1e\x17\x7d\x2f\xe8\x38\xc9\xed\xea\x9c\xee\x9e\ -\x90\x7e\xe0\x6e\x2e\xb7\xde\x3a\xef\xa1\x6e\xd7\xa9\x53\x0d\x03\ -\x03\x03\x03\x97\x31\xd1\xf5\x84\xea\x76\x60\x17\x30\x03\xcc\x8e\ -\xbe\x3e\x01\x2c\x02\x07\x23\xe2\x9b\xae\x63\x6a\x1d\x75\x93\xfa\ -\xa4\xfa\xa5\x93\x39\xaa\x3e\xa1\x6e\xea\x3b\xee\x14\xd4\x47\xd4\ -\xef\x6a\x18\x5f\xcd\xb7\xea\xee\xbe\xe3\x6f\x8c\x1a\xea\x1e\x75\ -\xa5\x81\xf9\x31\x2b\xea\x0b\xea\x15\x7d\xfb\x29\x46\x7d\xe5\x22\ -\x8c\xaf\xe6\xe5\xbe\xfd\x14\xa1\x3e\x9d\x68\x7e\xcc\x53\x7d\xfb\ -\xaa\x85\x7a\xb7\x7a\xae\x85\x04\xfc\xad\xee\xe8\xdb\xdf\x44\xd4\ -\x43\x2d\x98\x1f\xf3\x7e\xdf\xfe\x2e\x88\xba\xab\x45\xf3\x63\x1e\ -\xcc\x8c\x39\xfb\xe9\xfa\x78\xb2\xde\x5a\x3c\x96\x29\x96\x56\x09\ -\x5a\x6d\x55\x0b\xc0\x0d\x59\x9a\xe7\xe1\x27\x60\x26\x22\x56\x32\ -\xc4\x32\x57\xc0\x4d\xb4\x6f\x1e\xe0\x7a\x60\x5b\x96\x58\x66\x02\ -\x6e\x4c\xd4\x9a\xc4\x4c\x96\x50\x66\x02\xa6\x13\xb5\x3a\x9b\x2b\ -\x33\x01\xbf\x27\x6a\x4d\xe2\x54\x96\x50\x66\x02\x16\x13\xb5\x3a\ -\x9b\x2b\x33\x01\x3f\x00\xa7\x13\xf5\xce\xc7\x12\x55\xff\x20\x85\ -\xb4\x04\x44\xc4\x12\x70\x30\x4b\xef\x02\x1c\x88\x88\xb4\x44\x67\ -\x17\x42\xfb\x93\xf5\xd6\xe2\xcd\x4c\xb1\xd4\x96\x98\xba\x19\x38\ -\x4e\x55\x13\xb4\xc1\x02\x70\x6b\x44\xfc\x95\x25\x98\xba\x02\x46\ -\x4b\x73\x4f\xa6\xe6\x2a\x9e\xcd\x34\xdf\x0a\xea\x94\xfa\x4e\x0b\ -\x87\xa0\xb7\xbd\x54\x3a\x43\xea\x35\x56\xcd\xcd\x2c\xbe\x52\xaf\ -\xeb\xdb\x57\x11\xea\xac\xfa\x79\x82\xf9\xcf\xd4\xb4\xda\xbf\x53\ -\xd4\xab\xd4\xd7\x1a\x1a\x5f\x51\xf7\xa9\x57\xf6\xed\xe3\xa2\x51\ -\xef\x53\x3f\x2c\x30\x7f\x58\xdd\xd9\x45\x6c\x9d\xde\x0c\xa9\x73\ -\xc0\x6e\xaa\x9b\xa1\x6d\xfc\xf7\x66\xe8\x04\x70\x08\xd8\x1f\x11\ -\x5f\x77\x19\xd7\xc0\xc0\xc0\xc0\x65\x4b\xe3\x5d\x40\xbd\x1f\x78\ -\x88\xea\xe0\xb3\x21\x2d\xa2\x32\x96\x81\xef\x81\xb7\x22\xe2\xa3\ -\x4e\x66\x54\xa7\xd5\xf7\x1a\x16\x37\x6d\xf2\xae\xba\xb5\xd4\x4f\ -\xd1\x0a\xb0\xaa\xc7\x3f\x01\xe6\x4a\x27\xea\x88\x63\xc0\xce\x88\ -\xa8\xdd\x9f\x2c\x3d\x5d\x3d\xcf\xfa\x35\x0f\x70\x1b\xf0\x5c\xc9\ -\x80\xda\x2b\x40\xbd\x1a\xf8\x19\xd8\x5c\x18\x54\xd7\x9c\x06\xa6\ -\x23\xe2\x8f\x3a\x3f\x2e\x59\x01\x3b\x58\xff\xe6\xa1\x8a\xf1\xae\ -\xba\x3f\x2e\x49\xc0\x96\xf2\x58\x7a\xa3\xf6\xc3\xb0\x24\x01\x97\ -\x46\x37\xa6\xa2\x76\xac\x25\xa6\xfe\x6c\x10\x48\x5f\xd4\xfa\xff\ -\x43\x59\x02\xd2\x2e\x23\x3a\xa0\x76\xac\x25\xbb\xc0\x14\xf0\x0b\ -\xb0\xde\x7b\x73\x27\x81\x2d\x75\xdf\x1f\xa8\xbd\x02\x22\xe2\x1c\ -\xf0\x46\xd3\xa8\x3a\xe4\xf5\x92\x97\x27\x4a\x2b\xc1\x39\xe0\x08\ -\xfd\xd5\xfe\x93\x58\x06\x6e\x8f\x88\xe3\x75\x07\x14\x3d\xd9\x47\ -\xad\xaa\xbd\xa5\x51\x75\xc8\x8b\x25\xe6\xa1\xc1\x69\x50\xdd\x08\ -\x7c\x00\xdc\x5b\x3a\xb6\x65\x3e\x06\x1e\x88\x88\xe5\x92\x41\xc5\ -\x7b\x7b\x44\x9c\xa5\x3a\x06\x7f\x51\x3a\xb6\x45\x8e\x00\x0f\x97\ -\x9a\x87\x86\xc5\x4d\x44\xfc\x0a\xcc\xd3\xcd\x75\xf8\x24\x0e\x00\ -\xf3\x11\xf1\x5b\xe7\x33\x5b\xdd\x03\x3e\xa3\x2e\xf5\x70\xfe\x5f\ -\x1a\xcd\x3d\xd5\xb9\xf1\x35\x12\x31\xab\xee\x55\xcf\x74\x60\xfc\ -\xac\xfa\xaa\x7a\x73\xdf\xbe\xff\x87\xba\x7d\x94\x88\xc5\x16\x8c\ -\x2f\xa8\x2f\xa9\xb7\x64\xc6\xdc\xca\xcd\x90\xd5\x35\xf6\x3c\xf0\ -\x28\x70\x0f\x70\x07\xb0\xb1\x50\xe6\x0c\x70\x14\xf8\x94\xaa\x00\ -\x3b\x9c\xf5\x76\xe8\xbf\xe9\xe4\x6a\x4c\xdd\x40\xd5\xad\xb9\x93\ -\xea\x4d\xcf\x6b\xa9\x4a\xea\x71\x59\x7d\x72\xf4\x39\x05\xfc\x48\ -\xb5\xc3\x1c\x6b\xf2\x54\x1f\x18\x18\x18\x18\x28\xe0\x1f\x07\x8c\ -\x76\x28\x0c\x32\x8d\xaa\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ +\xa7\x93\x00\x00\x02\xe5\x49\x44\x41\x54\x78\x9c\xed\x9b\xbd\x6e\ +\x13\x41\x14\x85\xbf\x9b\x90\x08\x25\x88\x0a\x70\x48\x47\x41\x12\ +\x40\xa1\x0e\x48\xa4\x42\x0a\x3d\xa2\x49\x05\x15\x82\x86\xe7\xa0\ +\x41\x02\xf1\xa7\x28\x0a\x1d\x0d\x11\x0f\x80\x78\x00\x78\x80\x84\ +\x9f\x8a\x2a\xb1\x0d\x0d\x42\x02\x62\x63\x1f\x8a\x5d\xa4\xc8\xda\ +\x59\x6f\x9c\xdd\x1d\x2f\x9e\x4f\x72\x73\x67\x3c\x3e\xf7\x78\x66\ +\x76\xbc\x7b\x0d\x81\x40\x20\x30\xc2\xd8\x20\x6f\x92\x64\x40\x0d\ +\x98\x01\x4e\xe4\xaa\xe8\xe0\x7c\x03\xea\x40\xc3\xcc\x54\xe8\x27\ +\x49\xba\x20\xe9\x99\xa4\xa6\x86\x8f\xa6\xa4\xa7\x92\xce\x17\x91\ +\xf8\xb4\xa4\x75\x49\x1d\x49\x7b\x3e\xb3\xec\x43\x4b\x91\xc6\x35\ +\x49\x53\x59\x72\xeb\xbb\x04\x24\xcd\x02\x6f\x80\xb3\xc0\xe4\x21\ +\xbd\x2c\x8b\x36\xf0\x11\x58\x31\xb3\xdd\xb4\x8e\xa9\x06\x48\x9a\ +\x06\xde\x03\x73\xc0\x44\x6e\xf2\xca\xe1\x9f\x09\x4b\x66\xf6\xd3\ +\xd5\x69\xac\xcf\x20\x0f\x89\xbe\xf9\xaa\x25\x0f\x91\xe6\x79\xe0\ +\x41\x5a\x27\xe7\x0c\x90\xb4\x00\x6c\xd1\xdf\xa4\x61\xa7\x0b\x5c\ +\x34\xb3\xad\xa4\xc6\xb4\xe4\xee\x01\x9d\x42\x24\x95\xcb\x1f\xe0\ +\xae\xab\x31\x71\x06\x28\xba\xce\x37\x80\x93\x05\x89\x2a\x9b\x26\ +\x30\x93\x74\x4e\x70\xcd\x80\x1a\xff\x4f\xf2\x00\xa7\x70\xe4\xe3\ +\x32\x60\xb6\x38\x2d\xde\x48\xcc\xc9\x65\xc0\xb1\x02\x85\xf8\xe2\ +\x78\x52\xd0\xc7\x0e\xdf\x1e\xb0\xad\x10\x8e\x94\xfd\x81\x44\x57\ +\x96\x75\xe0\x75\x4f\xfc\x3a\x70\x93\x92\xcf\x1c\x3e\x0c\x00\xf8\ +\x6c\x66\x6f\xf7\x07\x24\x2d\xfa\x10\x52\xf5\x43\xce\xa1\x09\x06\ +\xf8\x16\xe0\x9b\x60\x80\x6f\x01\xbe\x09\x06\xf8\x16\xe0\x9b\x91\ +\x37\x20\xaf\x83\x50\x9b\xe8\xc6\x43\x16\x26\x1d\x7d\xbb\x71\xdb\ +\x5e\xc6\x71\xc6\xc8\xe1\xd4\x98\x97\x01\x13\xc0\x73\xe0\x4b\x86\ +\xbe\x1d\x60\x33\x21\xfe\x2a\x1e\x67\x3c\xc3\x18\x67\x80\xdb\x99\ +\xd5\x1d\x14\x49\xcb\x03\xdc\x92\xbe\x52\x98\xa0\x7c\xf4\x2d\x27\ +\x8d\x35\xf2\x7b\x40\x30\xc0\xb7\x00\xdf\xe4\xf9\x73\x78\x55\xd2\ +\xe5\x0c\xfd\x3a\xc0\x4b\x33\xdb\xd9\x1f\x8c\x9f\x40\xad\x92\x7d\ +\x13\xcc\x85\x3c\x2f\x83\xb7\x32\xf6\x9d\x00\x5a\xc0\xa3\x9e\xf8\ +\x0d\xe0\x3e\xd9\xef\x0a\xb5\x19\xb2\xcb\x60\x56\x7e\x93\xbc\xf4\ +\xc6\x88\x8c\x39\x9a\x8b\xa2\x8c\x8c\xfc\x1e\x10\x0c\xf0\x2d\xc0\ +\x37\xc1\x00\xdf\x02\x7c\x13\x0c\xf0\x2d\xc0\x37\x23\x6f\x80\xaf\ +\x27\x43\x73\x92\xae\xf6\xc6\x7c\x08\xf1\x61\xc0\x38\x70\x27\x7e\ +\xf5\x52\xfa\xc3\x51\x1f\x4b\x20\xed\xd8\x5c\x7a\x31\x96\xcb\x80\ +\x1f\xa5\xaa\x28\x87\xef\x49\x41\x97\x01\x3b\x8e\x78\x95\x49\x2c\ +\x98\x74\x19\xd0\x04\xbe\x16\xa7\xa5\x74\x1a\x38\xf2\x49\x34\x20\ +\xae\xa6\xda\xc4\xc3\xa6\x54\x00\x2d\x60\xd3\x55\x49\x9e\x56\x28\ +\x39\x0f\x6c\x53\xfd\xb3\x42\x17\x58\x34\xb3\xed\xa4\x46\x67\x72\ +\x66\xf6\x09\xd8\xa0\xda\xb3\xa0\x0d\xac\xb9\x92\x87\xfe\xc5\xd2\ +\x53\xc0\x3b\x60\x81\xea\xd5\x0b\xb7\x81\x0f\x44\xc5\xd2\xbf\x5c\ +\x9d\x52\xa7\x77\x5c\x65\x7d\x8d\xa8\xea\xba\x4a\x33\xa1\x45\xb4\ +\x7c\x57\xd2\x92\x87\x0c\xeb\x3b\xbe\x7b\xbb\x04\xbc\x20\x5a\x4f\ +\xad\x3c\x14\x16\x44\x8b\x48\xe3\x06\x70\xc9\xcc\xea\xb9\x8e\x2e\ +\xe9\x9c\xa4\x27\x92\xea\x03\x3c\x9a\x2a\x9a\xba\xa4\xc7\x8a\xaa\ +\xdc\x33\x33\xd0\x9f\xa6\x62\x33\x6a\xc0\x69\x86\xe3\x4f\x53\xbb\ +\x66\xd6\xf0\xac\x23\x10\x08\x04\xaa\xc7\x5f\x97\x7c\xed\x09\x30\ +\x07\x1e\xe5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\x8a\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x01\x3f\x49\x44\x41\x54\x78\x9c\xed\x9b\x31\x2e\ +\x04\x61\x00\x46\x1f\x71\x03\x59\xdb\x08\x9d\x88\x4a\xe5\x04\x8e\ +\x80\x02\x67\x51\x39\x97\x44\xa1\x51\xb2\xae\x42\x62\x37\x9e\xc2\ +\x12\x24\x33\x5b\xd8\x7f\x7e\x3b\xf3\xbd\x72\x36\x99\x7c\xef\x4d\ +\x66\x8a\xd9\x5d\x08\x21\xac\x12\xea\x8e\xba\x59\x7b\x47\xe7\xa8\ +\x63\xf5\xd6\x0f\x5e\xd5\xab\xda\x9b\x3a\x63\x2e\xff\xe4\x4f\xde\ +\xd4\xc3\xbf\x9e\x7b\x7d\x19\x03\x4b\xa2\x8e\x81\x1b\xe0\xe0\xd7\ +\x47\x6b\xc0\x7e\xf7\x8b\x3a\xa4\xe1\xca\x7f\xf2\xac\x6e\xd7\xde\ +\x58\x8c\xb9\xfc\xa4\x41\x7e\xaa\x9e\xd4\xde\x58\x0c\x75\x4b\x7d\ +\x6c\x90\x9f\xa9\xe7\xb5\x37\x16\x23\xf2\x91\x8f\x7c\xe4\x23\x1f\ +\xf9\xc8\x47\xbe\x97\x44\x3e\xf2\x91\x8f\x7c\xe4\x23\x1f\xf9\xc8\ +\xf7\x92\xc8\x0f\x58\x7e\x43\xbd\x6f\x90\x9f\xaa\x67\xb5\x37\x16\ +\x45\x3d\x5e\xe5\x2b\xbf\x8c\x6f\x86\x6c\x39\x3e\x5b\xc2\xf9\xff\ +\x37\x83\xbf\x05\x00\xd4\x91\xfa\xd0\x72\x2b\x5c\xd4\xde\x58\x9c\ +\x44\x20\x11\x80\x44\x00\x12\x01\x48\x04\x20\x11\x80\x44\x00\x12\ +\x01\x48\x04\x20\x11\x80\x44\x00\xbe\x22\xb4\xbd\x40\x19\x44\x84\ +\x45\x6f\x91\x12\x21\x11\x12\x21\x11\x12\x21\x11\x12\x61\xb8\x11\ +\x16\xfd\x5c\xfe\xb4\xf6\xc6\xe2\xd8\xfe\x87\x89\x17\x75\xb7\xf6\ +\xc6\xe2\x2c\x88\x70\x59\x7b\x5f\x27\xb4\x44\x38\xaa\xbd\xad\x33\ +\xe6\x11\xee\xbe\x3d\x08\xaf\x6b\x6f\xaa\x82\xba\xa7\x8e\x6a\xef\ +\x08\xa1\x27\xbc\x03\x85\x53\x0e\x31\xd2\xc1\xa0\x73\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x4e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -2136,28 +2214,40 @@ qt_resource_data = b"\ \x63\x89\x12\xfa\xea\x6c\x93\xec\xd5\xd9\x39\x31\x22\x17\x24\xed\ \xbb\x66\xaf\xce\x5e\x67\x1a\xf2\x0f\xac\x40\xde\xa1\xce\xa5\x28\ \x34\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x01\x36\ +\x00\x00\x01\xf4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\xeb\x49\x44\x41\x54\x78\x9c\xed\xd8\x31\x6e\ -\xc2\x50\x10\x45\xd1\x3b\xe9\x91\x10\x69\x53\x53\x86\x32\x4b\xc8\ -\x96\xb2\x8a\x78\x1f\x28\x3b\x80\x3a\x3d\x2d\xa4\x4d\x8b\x14\x67\ -\x01\x9f\x02\x17\xd6\xe7\xd3\xc1\x88\x84\x7b\xca\xb1\x8b\x37\xd6\ -\xb8\x79\x20\x49\x92\x24\xe9\x1e\x45\x6b\x58\x4a\x79\x02\x3a\xe0\ -\x15\x98\xa4\x26\xba\xbc\x5f\x60\x05\xbc\x45\xc4\xae\x7e\x78\xf2\ -\x01\x86\xe5\x37\xc0\xec\xfa\xd9\x52\xed\x81\xe7\x88\xf8\x1e\x0f\ -\x1f\x1a\x2f\x76\xfc\xbf\xe5\xe1\xb8\xd3\x7b\x3d\x6c\x5d\x40\xcf\ -\xdf\x3f\xfb\x73\x7e\x22\x62\x3a\x1e\xb4\x2e\xa0\x24\x85\xb9\x09\ -\xad\x0f\xb0\x4e\x4f\x91\x67\x55\x0f\x5a\xbf\xc0\x1c\xf8\x04\x1e\ -\x33\x12\x25\xda\x03\x2f\x11\xf1\x35\x1e\x9e\x5c\x40\x44\x6c\x81\ -\x05\xb0\x04\xfa\x9c\x6c\x57\xd5\x03\x1f\x34\x96\x97\x24\x49\xf7\ -\xcd\x3e\xa0\x1e\xd8\x07\xd8\x07\xd8\x07\xd8\x07\xa4\xa7\xc8\x63\ -\x1f\x60\x1f\x20\x49\x92\x34\xb0\x0f\xa8\x07\xf6\x01\xf6\x01\xf6\ -\x01\xf6\x01\xe9\x29\xf2\xd8\x07\xd8\x07\x48\x92\x24\x49\x12\x70\ -\x00\x67\x69\x63\x5e\x7b\xf6\xed\x1f\x00\x00\x00\x00\x49\x45\x4e\ -\x44\xae\x42\x60\x82\ +\xa7\x93\x00\x00\x01\xa9\x49\x44\x41\x54\x78\x9c\xed\x9b\x41\x4e\ +\xc3\x30\x10\x45\x03\xe7\x42\x5d\x82\x44\x41\x62\x83\x38\x0f\x50\ +\x54\x15\xa9\x7b\x2e\x5b\x3d\x36\x1d\x61\x4a\xe2\xa6\x8e\xed\x99\ +\x31\x7e\x52\x56\x49\x26\xff\xfd\x5a\x91\x92\xb6\xc3\xd0\xe9\x74\ +\x3a\x9d\xce\x28\xc0\x0a\xd8\x02\x8f\xda\x59\x2e\x05\x78\x01\xbe\ +\x80\xfb\xd4\x01\x2b\xe0\xc0\x0f\x9b\xcc\x19\x8b\x01\x6c\xf8\xcd\ +\x73\xca\x90\x2d\x7f\x31\x5f\xc2\x88\x3c\xc0\x3e\x65\xd0\xc3\xc8\ +\x20\xd3\x25\x4c\xc8\xa7\xad\x80\x33\x03\xcd\x95\x50\x2c\x2b\xf0\ +\x36\x31\xf8\x33\x53\xf6\xc5\x14\xcf\x68\xb9\x84\x6a\xd9\x2c\x96\ +\x50\x3d\x93\xa5\x12\xd4\xb2\x58\x28\x41\x3d\x83\x66\x00\x75\x79\ +\xcd\x20\x66\xe4\x35\x02\x99\x93\xaf\x19\xcc\xac\xbc\x50\x32\xa0\ +\x79\x79\x01\x78\xcd\x1d\x34\x22\xbf\xcb\x99\x3d\x1b\x39\x4b\x70\ +\x27\x2f\xe4\x28\xc1\xad\xbc\xb0\xa4\x04\xf7\xf2\x42\x4a\x09\xcd\ +\xc8\x0b\x97\x94\xd0\x9c\xbc\x30\xa7\x84\x66\xe5\x05\xa6\xdf\xd6\ +\xbc\x1f\xb7\x31\xcc\xbd\x75\x5a\x44\x64\x25\xb4\xfb\xc9\x9f\x32\ +\xb3\x84\x36\xe5\x85\x33\x25\x54\x97\xbf\xae\x7d\xc1\x61\x18\xae\ +\x12\xf7\xf9\x87\xe9\xbb\x7d\x88\xad\x87\x9c\x5c\xcc\x94\x6f\xb3\ +\x84\x88\xfc\x2e\xb2\xaf\x8d\x12\x62\xf2\xc1\x31\xd9\x1f\xa5\x4d\ +\x30\x47\x3e\x38\xb6\xad\x12\x2e\x91\x0f\xce\x69\xa3\x84\x14\xf9\ +\xe0\x5c\xdf\x25\x2c\x91\x0f\x66\xf8\x2c\x21\x87\x7c\x30\xcb\x57\ +\x09\x39\xe5\x83\x99\x3e\x4a\x28\x21\x1f\xcc\xb6\x5d\x42\x49\xf9\ +\xe0\x1a\x36\x4b\x88\xc8\xb7\xff\xd5\x98\x46\x20\x33\x25\x68\x06\ +\x51\x2f\x41\x3d\x80\x66\x06\x0b\xf2\x6a\x59\x2c\xc9\x57\xcf\x64\ +\x51\xbe\x5a\x36\xcb\xf2\x42\xb1\x8c\xfc\xe7\x9f\xca\x02\x4f\x5e\ +\xe4\x85\x48\x09\xeb\x94\x61\x7b\x4f\xf2\xc2\x44\x09\x1f\x29\x83\ +\xee\xbc\xc9\x0b\x27\x25\x1c\x80\x9b\xd4\x41\xb7\xc7\x95\xe0\xf1\ +\x2f\x33\xeb\x63\x11\x69\xf2\x9d\x4e\xa7\xd3\xf9\x07\x7c\x03\xe6\ +\x36\x04\x96\x36\x44\xc8\x08\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ " qt_resource_name = b"\ @@ -2165,37 +2255,52 @@ qt_resource_name = b"\ \x00\x00\x70\x37\ \x00\x69\ \x00\x6d\x00\x67\ +\x00\x0b\ +\x0c\x98\x63\x87\ +\x00\x61\ +\x00\x63\x00\x63\x00\x6f\x00\x75\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x0c\x58\x59\x27\ +\x00\x6d\ +\x00\x65\x00\x6e\x00\x75\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x0a\x61\x42\x7f\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x69\x00\x63\x00\x6f\ +\x00\x08\ +\x0c\xf7\x59\xc7\ +\x00\x6e\ +\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x03\xc6\x59\xa7\ \x00\x70\ \x00\x6c\x00\x75\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ -\x0a\x61\x42\x7f\ -\x00\x69\ -\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x69\x00\x63\x00\x6f\ -\x00\x0b\ -\x0c\x98\x63\x87\ -\x00\x61\ -\x00\x63\x00\x63\x00\x6f\x00\x75\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x07\x9e\x5a\x47\ +\x00\x62\ +\x00\x61\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0b\xdf\x21\x47\ \x00\x73\ \x00\x65\x00\x74\x00\x74\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ -\x00\x08\ -\x0c\x58\x59\x27\ -\x00\x6d\ -\x00\x65\x00\x6e\x00\x75\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0a\ +\x09\xb2\x67\xc7\ +\x00\x63\ +\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct_v1 = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x03\ +\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x7e\xcb\ +\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x81\xff\ +\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x88\xdf\ +\x00\x00\x00\x3e\x00\x01\x00\x00\x00\x01\x00\x00\x04\xf1\ +\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x83\x8d\ +\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x03\xb7\ \x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x00\x22\x00\x01\x00\x00\x00\x01\x00\x00\x03\x34\ -\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x11\ -\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x84\x63\ -\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x5a\ +\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x17\ " qt_resource_struct_v2 = b"\ @@ -2203,18 +2308,24 @@ qt_resource_struct_v2 = b"\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x7e\xcb\ \x00\x00\x01\x82\x36\xc2\x4c\xa3\ -\x00\x00\x00\x22\x00\x01\x00\x00\x00\x01\x00\x00\x03\x34\ +\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x81\xff\ +\x00\x00\x01\x82\x5f\x53\x50\xd3\ +\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x88\xdf\ +\x00\x00\x01\x82\x5f\x56\xe8\x76\ +\x00\x00\x00\x3e\x00\x01\x00\x00\x00\x01\x00\x00\x04\xf1\ \x00\x00\x01\x7b\x68\xc3\x67\xb7\ -\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x11\ +\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x83\x8d\ \x00\x00\x01\x81\x68\xf5\xcd\x75\ -\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x84\x63\ +\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x03\xb7\ \x00\x00\x01\x81\x68\xf5\xcd\x75\ -\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x5a\ +\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\x82\x3f\x74\xb0\xd2\ +\x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7d\x17\ +\x00\x00\x01\x82\x5f\x5d\x42\x4b\ " qt_version = [int(v) for v in QtCore.qVersion().split('.')] diff --git a/gui/img/back.png b/gui/img/back.png new file mode 100644 index 0000000..ea24fdd Binary files /dev/null and b/gui/img/back.png differ diff --git a/gui/img/cancel.png b/gui/img/cancel.png new file mode 100644 index 0000000..61b42bb Binary files /dev/null and b/gui/img/cancel.png differ diff --git a/gui/img/next.png b/gui/img/next.png new file mode 100644 index 0000000..4c5b0a8 Binary files /dev/null and b/gui/img/next.png differ diff --git a/gui/modules/adding_item/__init__.py b/gui/modules/adding_item/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gui/modules/adding_item/on_add_click.py b/gui/modules/adding_item/on_add_click.py new file mode 100644 index 0000000..e69de29 diff --git a/gui/modules/core/items_list.py b/gui/modules/core/items_list.py new file mode 100644 index 0000000..81f425d --- /dev/null +++ b/gui/modules/core/items_list.py @@ -0,0 +1,23 @@ +import requests +from gui.gui import Ui_MainWindow +from modules.database import Database +from PyQt5 import QtWidgets, QtGui + + +def refill_list(ui: Ui_MainWindow): + ui.items_list.clear() + if Database.get().items: + ui.logo_if_empty.hide() + ui.items_list.show() + for item in Database.get().items: + item = Database.get().items[item] + 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)) + ui.items_list.addItem(list_item) + + else: + ui.logo_if_empty.show() + ui.items_list.hide() diff --git a/gui/modules/handlers/fill_info.py b/gui/modules/handlers/fill_info.py index ee33b40..8e452d3 100644 --- a/gui/modules/handlers/fill_info.py +++ b/gui/modules/handlers/fill_info.py @@ -5,18 +5,19 @@ from modules.database import Database def on_item_click(ui: Ui_MainWindow, mode: str): - item = Database.get().items[ - ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1]) - ] + if ui.items_list.currentItem(): + item = Database.get().items[ + ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1]) + ] - pixmap = QtGui.QPixmap() - pixmap.loadFromData(requests.get(item.image).content) - ui.properties_image.setPixmap(pixmap) + pixmap = QtGui.QPixmap() + pixmap.loadFromData(requests.get(item.image).content) + ui.properties_image.setPixmap(pixmap) - 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) + 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") diff --git a/gui/modules/handlers/on_item_remove.py b/gui/modules/handlers/on_item_remove.py index e69de29..ab610ed 100644 --- a/gui/modules/handlers/on_item_remove.py +++ b/gui/modules/handlers/on_item_remove.py @@ -0,0 +1,13 @@ +from gui.gui import Ui_MainWindow +from modules.database import Database +from gui.modules.core import items_list + + +def on_rm_click(ui: Ui_MainWindow): + from gui.modules.handlers import fill_info + if ui.items_list.currentItem(): + Database.remove_item( + ui.items_list.currentItem().text().removesuffix(' - ' + ui.items_list.currentItem().text().split(' - ')[-1]) + ) + items_list.refill_list(ui) + fill_info.on_item_click(ui, 'close') diff --git a/gui/modules/handlers/register.py b/gui/modules/handlers/register.py index 3505345..3ad54c8 100644 --- a/gui/modules/handlers/register.py +++ b/gui/modules/handlers/register.py @@ -1,7 +1,10 @@ from gui.gui import Ui_MainWindow from gui.modules.handlers import fill_info +from gui.modules.handlers import on_item_remove def register_handlers(ui: Ui_MainWindow): ui.items_list.currentItemChanged.connect(lambda: fill_info.on_item_click(ui, 'open')) 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)) diff --git a/gui/modules/initialize/setup_ui.py b/gui/modules/initialize/setup_ui.py index 275ef30..59b3e1f 100644 --- a/gui/modules/initialize/setup_ui.py +++ b/gui/modules/initialize/setup_ui.py @@ -1,15 +1,15 @@ -import requests from gui.gui import Ui_MainWindow from gui.modules.core.blur import GlobalBlur from gui.modules.initialize import styles -from PyQt5 import QtWidgets, QtGui from PyQt5.QtWidgets import QMainWindow from modules.config import Config +from gui.modules.core import items_list from modules.database import Database def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow): ui.logo_if_empty.hide() + ui.logo_if_empty.setMaximumSize(16777215, 16777215) ui.content.setCurrentIndex(0) @@ -17,16 +17,4 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow): if 'acrylic' in Config.get().theme: GlobalBlur(MainWindow.winId(), acrylic=True) - if Database.get().items: - for item in Database.get().items: - item = Database.get().items[item] - 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)) - ui.items_list.addItem(list_item) - - else: - ui.logo_if_empty.show() - ui.items_list.hide() + items_list.refill_list(ui) diff --git a/modules/database/database.py b/modules/database/database.py index c32eb1f..ce38bf0 100644 --- a/modules/database/database.py +++ b/modules/database/database.py @@ -13,3 +13,11 @@ class Database: with open(Config.get().database, 'w') as f: json.dump(default_database, f, indent=4) return DatabaseModel.from_dict(default_database) + + @staticmethod + def remove_item(item_name: str): + db = Database.get() + db.items.pop(item_name) + + with open(Config.get().database, 'w') as f: + json.dump(db.to_dict(), f, indent=4)