diff --git a/build.bat b/build.bat index 4886b6d..6bd918f 100644 --- a/build.bat +++ b/build.bat @@ -1 +1 @@ -pyinstaller --onefile --console --noconfirm --icon logo.ico daun.py \ No newline at end of file +pyinstaller --onefile --console --noconfirm --icon ui/logo.ico daun.py \ No newline at end of file diff --git a/logo.ico b/logo.ico deleted file mode 100644 index 29b0f20..0000000 Binary files a/logo.ico and /dev/null differ diff --git a/modules/thread.py b/modules/thread.py new file mode 100644 index 0000000..95d2041 --- /dev/null +++ b/modules/thread.py @@ -0,0 +1,11 @@ +# Module to easily create threads +import threading + + +def threaded(func): + """ + Decorator to start a function in a new thread + """ + def thr(*args, **kwargs): + threading.Thread(target=func, args=(*args,), kwargs={**kwargs, }).start() + return thr diff --git a/requirements.txt b/requirements.txt index 3cc7dcf..5e34caa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,6 @@ mss pyimgur psutil requests -pyinstaller \ No newline at end of file +pyinstaller +zstandard +nuitka \ No newline at end of file diff --git a/ui/main.py b/ui/main.py index 75af5f1..7265c30 100644 --- a/ui/main.py +++ b/ui/main.py @@ -23,7 +23,7 @@ class Ui_MainWindow(object): MainWindow.setWindowIcon(icon) MainWindow.setWindowOpacity(0.99) MainWindow.setStyleSheet("background-color: #202020;\n" -"color: #ffffff;") + "color: #ffffff;") self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.build_button = QtWidgets.QPushButton(self.centralwidget) @@ -33,50 +33,50 @@ class Ui_MainWindow(object): self.build_button.setFocusPolicy(QtCore.Qt.TabFocus) self.build_button.setContextMenuPolicy(QtCore.Qt.NoContextMenu) self.build_button.setStyleSheet("QPushButton {\n" -" color: white;\n" -" border-width: 1px;\n" -" border-radius:6px;\n" -" border-style: solid;\n" -" border-color: #303030;\n" -" background-color: #2c2d2e;\n" -" font: 10pt \"Segoe UI\";\n" -"}\n" -"QPushButton:hover{\n" -" border-width: 2px;\n" -" background-color: #323232;\n" -"}\n" -"QPushButton:pressed{\n" -" background-color: #262728;\n" -"}\n" -"QPushButton:disabled{\n" -" background-color: #434343;\n" -" border-color: #0000;\n" -"}") + " color: white;\n" + " border-width: 1px;\n" + " border-radius:6px;\n" + " border-style: solid;\n" + " border-color: #303030;\n" + " background-color: #2c2d2e;\n" + " font: 10pt \"Segoe UI\";\n" + "}\n" + "QPushButton:hover{\n" + " border-width: 2px;\n" + " background-color: #323232;\n" + "}\n" + "QPushButton:pressed{\n" + " background-color: #262728;\n" + "}\n" + "QPushButton:disabled{\n" + " background-color: #434343;\n" + " border-color: #0000;\n" + "}") self.build_button.setAutoDefault(False) self.build_button.setFlat(False) self.build_button.setObjectName("build_button") self.modules_list = QtWidgets.QListWidget(self.centralwidget) self.modules_list.setGeometry(QtCore.QRect(10, 70, 270, 310)) self.modules_list.setStyleSheet("QListWidget {\n" -" border-width: 1px;\n" -" border-radius:15px;\n" -" border-style: solid;\n" -" border-color: #303030;\n" -" padding: 10px;\n" -" background-color: #242424;\n" -" font: 10pt \"Segoe UI\";\n" -"}\n" -"\n" -"QScrollBar {\n" -" background: #959595;\n" -" width: 8px;\n" -"}\n" -"\n" -"QScrollBar::handle:vertical {\n" -" background: #303030;\n" -" min-height: 20px;\n" -"}\n" -"") + " border-width: 1px;\n" + " border-radius:15px;\n" + " border-style: solid;\n" + " border-color: #303030;\n" + " padding: 10px;\n" + " background-color: #242424;\n" + " font: 10pt \"Segoe UI\";\n" + "}\n" + "\n" + "QScrollBar {\n" + " background: #959595;\n" + " width: 8px;\n" + "}\n" + "\n" + "QScrollBar::handle:vertical {\n" + " background: #303030;\n" + " min-height: 20px;\n" + "}\n" + "") self.modules_list.setFrameShape(QtWidgets.QFrame.StyledPanel) self.modules_list.setFrameShadow(QtWidgets.QFrame.Raised) self.modules_list.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored) @@ -87,12 +87,12 @@ class Ui_MainWindow(object): self.desc_list = QtWidgets.QTextBrowser(self.centralwidget) self.desc_list.setGeometry(QtCore.QRect(285, 70, 270, 310)) self.desc_list.setStyleSheet("border-width: 1px;\n" -"border-radius:15px;\n" -"border-style: solid;\n" -"border-color: #303030;\n" -"padding: 10px;\n" -"background-color: #242424;\n" -"font: 10pt \"Segoe UI\";") + "border-radius:15px;\n" + "border-style: solid;\n" + "border-color: #303030;\n" + "padding: 10px;\n" + "background-color: #242424;\n" + "font: 10pt \"Segoe UI\";") self.desc_list.setFrameShape(QtWidgets.QFrame.StyledPanel) self.desc_list.setFrameShadow(QtWidgets.QFrame.Raised) self.desc_list.setAcceptRichText(True) @@ -101,82 +101,82 @@ class Ui_MainWindow(object): self.daun_builder_logo = QtWidgets.QTextBrowser(self.centralwidget) self.daun_builder_logo.setGeometry(QtCore.QRect(10, 10, 545, 50)) self.daun_builder_logo.setStyleSheet("border-width: 1px;\n" -"border-radius:15px;\n" -"border-style: solid;\n" -"border-color: #303030;\n" -"background-color: #242424;\n" -"font: 20pt \"Segoe UI\";") + "border-radius:15px;\n" + "border-style: solid;\n" + "border-color: #303030;\n" + "background-color: #242424;\n" + "font: 20pt \"Segoe UI\";") self.daun_builder_logo.setFrameShape(QtWidgets.QFrame.StyledPanel) self.daun_builder_logo.setFrameShadow(QtWidgets.QFrame.Raised) self.daun_builder_logo.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) self.daun_builder_logo.setObjectName("daun_builder_logo") - self.choose_button = QtWidgets.QPushButton(self.centralwidget) - self.choose_button.setGeometry(QtCore.QRect(450, 390, 101, 25)) - self.choose_button.setMouseTracking(False) - self.choose_button.setTabletTracking(False) - self.choose_button.setFocusPolicy(QtCore.Qt.TabFocus) - self.choose_button.setContextMenuPolicy(QtCore.Qt.NoContextMenu) - self.choose_button.setStyleSheet("QPushButton {\n" -" color: white;\n" -" border-width: 1px;\n" -" border-radius:6px;\n" -" border-style: solid;\n" -" border-color: #303030;\n" -" background-color: #2c2d2e;\n" -" font: 10pt \"Segoe UI\";\n" -"}\n" -"QPushButton:hover{\n" -" border-width: 2px;\n" -" background-color: #323232;\n" -"}\n" -"QPushButton:pressed{\n" -" background-color: #262728;\n" -"}\n" -"QPushButton:disabled{\n" -" background-color: #434343;\n" -" border-color: #0000;\n" -"}") - self.choose_button.setAutoDefault(False) - self.choose_button.setFlat(False) - self.choose_button.setObjectName("choose_button") + self.choose_folder_button = QtWidgets.QPushButton(self.centralwidget) + self.choose_folder_button.setGeometry(QtCore.QRect(450, 390, 101, 25)) + self.choose_folder_button.setMouseTracking(False) + self.choose_folder_button.setTabletTracking(False) + self.choose_folder_button.setFocusPolicy(QtCore.Qt.TabFocus) + self.choose_folder_button.setContextMenuPolicy(QtCore.Qt.NoContextMenu) + self.choose_folder_button.setStyleSheet("QPushButton {\n" + " color: white;\n" + " border-width: 1px;\n" + " border-radius:6px;\n" + " border-style: solid;\n" + " border-color: #303030;\n" + " background-color: #2c2d2e;\n" + " font: 10pt \"Segoe UI\";\n" + "}\n" + "QPushButton:hover{\n" + " border-width: 2px;\n" + " background-color: #323232;\n" + "}\n" + "QPushButton:pressed{\n" + " background-color: #262728;\n" + "}\n" + "QPushButton:disabled{\n" + " background-color: #434343;\n" + " border-color: #0000;\n" + "}") + self.choose_folder_button.setAutoDefault(False) + self.choose_folder_button.setFlat(False) + self.choose_folder_button.setObjectName("choose_folder_button") self.path_box = QtWidgets.QLineEdit(self.centralwidget) self.path_box.setGeometry(QtCore.QRect(285, 390, 160, 25)) self.path_box.setStyleSheet("border-width: 1px;\n" -"border-radius:5px;\n" -"border-style: solid;\n" -"border-color: #303030;\n" -"background-color: #242424;\n" -"font: 10pt \"Segoe UI\";") + "border-radius:5px;\n" + "border-style: solid;\n" + "border-color: #303030;\n" + "background-color: #242424;\n" + "font: 10pt \"Segoe UI\";") self.path_box.setObjectName("path_box") - self.choose_button_2 = QtWidgets.QPushButton(self.centralwidget) - self.choose_button_2.setGeometry(QtCore.QRect(285, 430, 160, 25)) - self.choose_button_2.setMouseTracking(False) - self.choose_button_2.setTabletTracking(False) - self.choose_button_2.setFocusPolicy(QtCore.Qt.TabFocus) - self.choose_button_2.setContextMenuPolicy(QtCore.Qt.NoContextMenu) - self.choose_button_2.setStyleSheet("QPushButton {\n" -" color: white;\n" -" border-width: 1px;\n" -" border-radius:6px;\n" -" border-style: solid;\n" -" border-color: #303030;\n" -" background-color: #2c2d2e;\n" -" font: 10pt \"Segoe UI\";\n" -"}\n" -"QPushButton:hover{\n" -" border-width: 2px;\n" -" background-color: #323232;\n" -"}\n" -"QPushButton:pressed{\n" -" background-color: #262728;\n" -"}\n" -"QPushButton:disabled{\n" -" background-color: #434343;\n" -" border-color: #0000;\n" -"}") - self.choose_button_2.setAutoDefault(False) - self.choose_button_2.setFlat(False) - self.choose_button_2.setObjectName("choose_button_2") + self.choose_icon_button = QtWidgets.QPushButton(self.centralwidget) + self.choose_icon_button.setGeometry(QtCore.QRect(285, 430, 160, 25)) + self.choose_icon_button.setMouseTracking(False) + self.choose_icon_button.setTabletTracking(False) + self.choose_icon_button.setFocusPolicy(QtCore.Qt.TabFocus) + self.choose_icon_button.setContextMenuPolicy(QtCore.Qt.NoContextMenu) + self.choose_icon_button.setStyleSheet("QPushButton {\n" + " color: white;\n" + " border-width: 1px;\n" + " border-radius:6px;\n" + " border-style: solid;\n" + " border-color: #303030;\n" + " background-color: #2c2d2e;\n" + " font: 10pt \"Segoe UI\";\n" + "}\n" + "QPushButton:hover{\n" + " border-width: 2px;\n" + " background-color: #323232;\n" + "}\n" + "QPushButton:pressed{\n" + " background-color: #262728;\n" + "}\n" + "QPushButton:disabled{\n" + " background-color: #434343;\n" + " border-color: #0000;\n" + "}") + self.choose_icon_button.setAutoDefault(False) + self.choose_icon_button.setFlat(False) + self.choose_icon_button.setObjectName("choose_icon_button") self.is_pyinstaller = QtWidgets.QRadioButton(self.centralwidget) self.is_pyinstaller.setGeometry(QtCore.QRect(20, 415, 80, 15)) self.is_pyinstaller.setStyleSheet("font: 10pt \"Segoe UI\";") @@ -193,24 +193,40 @@ class Ui_MainWindow(object): self.builder_bg = QtWidgets.QWidget(self.centralwidget) self.builder_bg.setGeometry(QtCore.QRect(10, 389, 121, 71)) self.builder_bg.setStyleSheet("border-width: 1px;\n" -"border-radius:15px;\n" -"border-style: solid;\n" -"border-color: #303030;\n" -"padding: 10px;\n" -"background-color: #242424;\n" -"font: 10pt \"Segoe UI\";") + "border-radius:15px;\n" + "border-style: solid;\n" + "border-color: #303030;\n" + "padding: 10px;\n" + "background-color: #242424;\n" + "font: 10pt \"Segoe UI\";") self.builder_bg.setObjectName("builder_bg") + self.options_bg = QtWidgets.QWidget(self.centralwidget) + self.options_bg.setGeometry(QtCore.QRect(140, 390, 141, 71)) + self.options_bg.setStyleSheet("border-width: 1px;\n" + "border-radius:15px;\n" + "border-style: solid;\n" + "border-color: #303030;\n" + "padding: 10px;\n" + "background-color: #242424;\n" + "font: 10pt \"Segoe UI\";") + self.options_bg.setObjectName("options_bg") + self.enable_console_button = QtWidgets.QCheckBox(self.centralwidget) + self.enable_console_button.setGeometry(QtCore.QRect(150, 400, 121, 17)) + self.enable_console_button.setStyleSheet("font: 10pt \"Segoe UI\";") + self.enable_console_button.setObjectName("enable_console_button") self.builder_bg.raise_() self.build_button.raise_() self.modules_list.raise_() self.desc_list.raise_() self.daun_builder_logo.raise_() - self.choose_button.raise_() + self.choose_folder_button.raise_() self.path_box.raise_() - self.choose_button_2.raise_() + self.choose_icon_button.raise_() self.is_pyinstaller.raise_() self.is_nuitka.raise_() self.label.raise_() + self.options_bg.raise_() + self.enable_console_button.raise_() MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) @@ -220,26 +236,31 @@ class Ui_MainWindow(object): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "daun builder")) self.build_button.setText(_translate("MainWindow", "Build it")) - self.desc_list.setHtml(_translate("MainWindow", "\n" -"\n" -"


")) - self.daun_builder_logo.setHtml(_translate("MainWindow", "\n" -"\n" -"

daun builder

")) - self.choose_button.setText(_translate("MainWindow", "Choose folder")) - self.choose_button_2.setText(_translate("MainWindow", "Choose custom icon")) + self.desc_list.setHtml(_translate("MainWindow", + "\n" + "\n" + "


")) + self.daun_builder_logo.setHtml(_translate("MainWindow", + "\n" + "\n" + "

daun builder

")) + self.choose_folder_button.setText(_translate("MainWindow", "Choose folder")) + self.choose_icon_button.setText(_translate("MainWindow", "Choose custom icon")) self.is_pyinstaller.setText(_translate("MainWindow", "pyinstaller")) self.is_nuitka.setText(_translate("MainWindow", "nuitka")) self.label.setText(_translate("MainWindow", "Choose builder")) -import images_rc + self.enable_console_button.setText(_translate("MainWindow", "Invisible window")) +import images_rc + if __name__ == "__main__": import sys + app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() diff --git a/ui/main.ui b/ui/main.ui index cdb9b09..8c2c534 100644 --- a/ui/main.ui +++ b/ui/main.ui @@ -168,7 +168,7 @@ font: 10pt "Segoe UI"; QFrame::Raised - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Segoe UI'; font-size:10pt; font-weight:400; font-style:normal;"> @@ -215,7 +215,7 @@ p, li { white-space: pre-wrap; } Qt::NoTextInteraction - + 450 @@ -286,7 +286,7 @@ background-color: #242424; font: 10pt "Segoe UI"; - + 285 @@ -409,17 +409,54 @@ background-color: #242424; font: 10pt "Segoe UI"; + + + + 140 + 390 + 141 + 71 + + + + border-width: 1px; +border-radius:15px; +border-style: solid; +border-color: #303030; +padding: 10px; +background-color: #242424; +font: 10pt "Segoe UI"; + + + + + + 150 + 400 + 121 + 17 + + + + font: 10pt "Segoe UI"; + + + Invisible window + + builder_bg build_button modules_list desc_list daun_builder_logo - choose_button + choose_folder_button path_box - choose_button_2 + choose_icon_button is_pyinstaller is_nuitka label + options_bg + enable_console_button