Files
legacy/horsygui.py
2022-01-27 21:24:54 +02:00

137 lines
3.5 KiB
Python

import sys
import math
from PyQt5 import QtCore, QtGui, QtWidgets
import modules.gui as gui
# Initialize GUI
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = gui.Ui_MainWindow()
ui.setupUi(MainWindow)
UiMainWindow = QtWidgets.QMainWindow()
login_ui = gui.Ui_LoginWindow()
login_ui.setupUi(UiMainWindow)
UiDownloadWindow = QtWidgets.QMainWindow()
download_ui = gui.Ui_DownloadWindow()
download_ui.setupUi(UiDownloadWindow)
if __name__ == "__main__":
MainWindow.show()
# Functions
def refresh_gui():
installed_apps()
def installed_apps():
from modules.manager import apps_list
ui.installed_table.clear()
apps = apps_list(True)
ui.installed_table.setColumnCount(4)
ui.installed_table.setRowCount(math.ceil(len(apps) / 4))
for i in range(len(apps)):
ui.installed_table.setItem(i // 4, i % 4, QtWidgets.QTableWidgetItem(str(apps[i])))
def update_app():
try:
app_name = ui.installed_table.currentItem().text()
if app_name == "":
return
else:
from modules.gui_manager import install
install(app_name)
except:
return
def uninstall_app():
try:
app_name = ui.installed_table.currentItem().text()
if app_name == "":
return
else:
from modules.manager import uninstall
uninstall(app_name)
installed_apps()
except:
return
def search_gui():
from modules.search import search
search_query = ui.search_box.toPlainText()
if search_query == "":
return
else:
found = search(search_query, True)
ui.search_table.clear()
ui.search_table.setColumnCount(4)
ui.search_table.setRowCount(math.ceil(len(found) / 4))
for i in range(len(found)):
ui.search_table.setItem(i // 4, i % 4, QtWidgets.QTableWidgetItem(str(found[i])))
def install_app():
from modules.gui_manager import install
try:
app_name = ui.search_table.currentItem().text()
if app_name == "":
return
else:
install(app_name)
except:
return
def get_source_gui():
from modules.source import get_source
try:
app_name = ui.search_table.currentItem().text()
if app_name == "":
return
else:
source = get_source(app_name)
if source is not None:
gui.popup("Error", source)
except:
return
def info_gui():
from modules.search import info
try:
app_name = ui.search_table.currentItem().text()
if app_name == "":
return
else:
info = info(app_name, download_ui, UiDownloadWindow)
if info is not None:
gui.popup("Error", info)
except:
return
def upload_gui():
from modules.uploader import upload
gui.popup('Upload', str(upload(True, ui, login_ui, UiMainWindow)))
# Run functions on startup
if __name__ == "__main__":
installed_apps()
# Binds
ui.tabWidget.currentChanged.connect(refresh_gui)
ui.update_button.clicked.connect(update_app)
ui.delete_button.clicked.connect(uninstall_app)
ui.search_button.clicked.connect(search_gui)
ui.install_button.clicked.connect(install_app)
ui.source_button.clicked.connect(get_source_gui)
ui.info_button.clicked.connect(info_gui)
ui.search_table.itemDoubleClicked.connect(info_gui)
ui.upload_button.clicked.connect(upload_gui)
# Handle GUI exiting to exit whole program
sys.exit(app.exec_())