GUI development

This commit is contained in:
BarsTiger
2022-01-27 09:49:13 +02:00
parent 64f7e5c795
commit f4807b0803
6 changed files with 334 additions and 12 deletions

View File

@@ -15,6 +15,10 @@ ui = gui.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
UiMainWindow = QtWidgets.QMainWindow()
login_ui = gui.Ui_LoginWindow()
login_ui.setupUi(UiMainWindow)
# Functions
def refresh_gui():
@@ -90,7 +94,8 @@ def get_source_gui():
def upload_gui():
from modules.uploader import upload
upload(True, ui)
upload(True, ui, login_ui)
# Run functions on startup
installed_apps()

View File

@@ -2,7 +2,7 @@ import json
import modules.vars as horsy_vars
def get_auth():
def get_auth(is_gui=False, login_ui=None):
with open(horsy_vars.horsypath + 'config.cfg') as f:
config = json.load(f)
@@ -12,16 +12,29 @@ def get_auth():
else:
raise Exception('No auth found')
except:
print('[!] No auth found, please login first')
print('email')
email = input('> ')
print('password')
password = input('> ')
config['auth'] = {'email': email, 'password': password}
if not is_gui:
print('[!] No auth found, please login first')
print('email')
email = input('> ')
print('password')
password = input('> ')
config['auth'] = {'email': email, 'password': password}
with open(horsy_vars.horsypath + 'config.cfg', 'w') as f:
json.dump(config, f)
print('[OK] Auth created')
return config['auth']
else:
login_ui.show()
login_ui.login_button.clicked.connect(lambda: get_auth(login_ui=login_ui))
def get_gui_auth(login_ui):
with open(horsy_vars.horsypath + 'config.cfg') as f:
config = json.load(f)
if login_ui.email_box.text() != '' and login_ui.password_box.text() != '':
with open(horsy_vars.horsypath + 'config.cfg', 'w') as f:
config['auth'] = {'email': login_ui.email_box.text(), 'password': login_ui.password_box.text()}
json.dump(config, f)
print('[OK] Auth created')
return config['auth']
def del_auth():

View File

@@ -676,6 +676,77 @@ class Ui_MainWindow(object):
self.horsy_text_lefttop.setText(_translate("MainWindow", "horsy"))
class Ui_LoginWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(292, 200)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(292, 200))
MainWindow.setMaximumSize(QtCore.QSize(292, 200))
MainWindow.setFocusPolicy(QtCore.Qt.NoFocus)
MainWindow.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
MainWindow.setWindowOpacity(0.98)
MainWindow.setStyleSheet("QWidget{\n"
" background-color: rgb(30, 30, 30);\n"
"}\n"
"")
MainWindow.setDockOptions(QtWidgets.QMainWindow.AllowTabbedDocks | QtWidgets.QMainWindow.AnimatedDocks)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.login_button = QtWidgets.QPushButton(self.centralwidget)
self.login_button.setEnabled(True)
self.login_button.setGeometry(QtCore.QRect(70, 140, 151, 50))
self.login_button.setMinimumSize(QtCore.QSize(0, 50))
self.login_button.setStyleSheet("QPushButton {\n"
" color: rgb(204, 204, 204);\n"
" border-width: 1px;\n"
" border-radius:6px;\n"
" border-style: solid;\n"
" background-color: rgb(28, 30, 33);\n"
" border-color: rgb(66, 143, 225);\n"
"}\n"
"QPushButton:hover{\n"
" border-width: 2px;\n"
"}\n"
"QPushButton:pressed{\n"
" background-color: rgb(50, 60, 63);\n"
"}\n"
"QPushButton:disabled{\n"
" border-width: 0px;\n"
" background-color: rgb(92, 99, 109);\n"
"}")
self.login_button.setObjectName("login_button")
self.email_box = QtWidgets.QLineEdit(self.centralwidget)
self.email_box.setGeometry(QtCore.QRect(20, 20, 251, 51))
self.email_box.setStyleSheet("background-color: rgb(74, 76, 83);\n"
"border-radius: 5px; \n"
"color: rgb(242, 242, 242);")
self.email_box.setObjectName("email_box")
self.password_box = QtWidgets.QLineEdit(self.centralwidget)
self.password_box.setGeometry(QtCore.QRect(20, 80, 251, 51))
self.password_box.setStyleSheet("background-color: rgb(74, 76, 83);\n"
"border-radius: 5px; \n"
"color: rgb(242, 242, 242);")
self.password_box.setInputMask("")
self.password_box.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.password_box.setObjectName("password_box")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Log in"))
self.login_button.setText(_translate("MainWindow", "Log in"))
self.email_box.setPlaceholderText(_translate("MainWindow", "email"))
self.password_box.setPlaceholderText(_translate("MainWindow", "Password"))
if __name__ == "__main__":
import sys

View File

@@ -16,7 +16,7 @@ def urlmatch(s):
return re.match("^https?://.*.(?:zip|exe)$", s) is not None
def upload(is_gui=False, ui=None):
def upload(is_gui=False, ui=None, login_ui=None):
if not is_gui:
print('Welcome to the uploader')
print('Before starting, please make sure you have done your project and [blink]uploaded[/] it to any hosting '
@@ -93,7 +93,7 @@ def upload(is_gui=False, ui=None):
}
else:
auth = get_auth()
auth = get_auth(is_gui)
project_name = ui.packagename_box.text()
if not matches(project_name) or len(project_name) > 64 or len(project_name) < 3:

92
uis/horsy_login.py Normal file
View File

@@ -0,0 +1,92 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\RAZNOE\prgrming\horsy\Source\client\uis\horsy_login.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(292, 200)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(292, 200))
MainWindow.setMaximumSize(QtCore.QSize(292, 200))
MainWindow.setFocusPolicy(QtCore.Qt.NoFocus)
MainWindow.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
MainWindow.setWindowOpacity(0.98)
MainWindow.setStyleSheet("QWidget{\n"
" background-color: rgb(30, 30, 30);\n"
"}\n"
"")
MainWindow.setDockOptions(QtWidgets.QMainWindow.AllowTabbedDocks|QtWidgets.QMainWindow.AnimatedDocks)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.login_button = QtWidgets.QPushButton(self.centralwidget)
self.login_button.setEnabled(True)
self.login_button.setGeometry(QtCore.QRect(70, 140, 151, 50))
self.login_button.setMinimumSize(QtCore.QSize(0, 50))
self.login_button.setStyleSheet("QPushButton {\n"
" color: rgb(204, 204, 204);\n"
" border-width: 1px;\n"
" border-radius:6px;\n"
" border-style: solid;\n"
" background-color: rgb(28, 30, 33);\n"
" border-color: rgb(66, 143, 225);\n"
"}\n"
"QPushButton:hover{\n"
" border-width: 2px;\n"
"}\n"
"QPushButton:pressed{\n"
" background-color: rgb(50, 60, 63);\n"
"}\n"
"QPushButton:disabled{\n"
" border-width: 0px;\n"
" background-color: rgb(92, 99, 109);\n"
"}")
self.login_button.setObjectName("login_button")
self.email_box = QtWidgets.QLineEdit(self.centralwidget)
self.email_box.setGeometry(QtCore.QRect(20, 20, 251, 51))
self.email_box.setStyleSheet("background-color: rgb(74, 76, 83);\n"
"border-radius: 5px; \n"
"color: rgb(242, 242, 242);")
self.email_box.setObjectName("email_box")
self.password_box = QtWidgets.QLineEdit(self.centralwidget)
self.password_box.setGeometry(QtCore.QRect(20, 80, 251, 51))
self.password_box.setStyleSheet("background-color: rgb(74, 76, 83);\n"
"border-radius: 5px; \n"
"color: rgb(242, 242, 242);")
self.password_box.setInputMask("")
self.password_box.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.password_box.setObjectName("password_box")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Log in"))
self.login_button.setText(_translate("MainWindow", "Log in"))
self.email_box.setPlaceholderText(_translate("MainWindow", "email"))
self.password_box.setPlaceholderText(_translate("MainWindow", "Password"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

141
uis/horsy_login.ui Normal file
View File

@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>292</width>
<height>200</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>292</width>
<height>200</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>292</width>
<height>200</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="windowTitle">
<string>Log in</string>
</property>
<property name="windowOpacity">
<double>0.980000000000000</double>
</property>
<property name="styleSheet">
<string notr="true">QWidget{
background-color: rgb(30, 30, 30);
}
</string>
</property>
<property name="dockOptions">
<set>QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks</set>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="login_button">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>70</x>
<y>140</y>
<width>151</width>
<height>50</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
color: rgb(204, 204, 204);
border-width: 1px;
border-radius:6px;
border-style: solid;
background-color: rgb(28, 30, 33);
border-color: rgb(66, 143, 225);
}
QPushButton:hover{
border-width: 2px;
}
QPushButton:pressed{
background-color: rgb(50, 60, 63);
}
QPushButton:disabled{
border-width: 0px;
background-color: rgb(92, 99, 109);
}</string>
</property>
<property name="text">
<string>Log in</string>
</property>
</widget>
<widget class="QLineEdit" name="email_box">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>251</width>
<height>51</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(74, 76, 83);
border-radius: 5px;
color: rgb(242, 242, 242);</string>
</property>
<property name="placeholderText">
<string>email</string>
</property>
</widget>
<widget class="QLineEdit" name="password_box">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>251</width>
<height>51</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(74, 76, 83);
border-radius: 5px;
color: rgb(242, 242, 242);</string>
</property>
<property name="inputMask">
<string/>
</property>
<property name="echoMode">
<enum>QLineEdit::PasswordEchoOnEdit</enum>
</property>
<property name="placeholderText">
<string>Password</string>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>