1
0
Fork 0
mirror of synced 2024-06-17 01:54:46 +12:00

Login animation

This commit is contained in:
Dummerle 2020-11-27 17:58:16 +01:00
parent b17f2e52fe
commit 77ffefc664
8 changed files with 61 additions and 101 deletions

48
Launch.py Normal file
View file

@ -0,0 +1,48 @@
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import QDialog, QLabel, QProgressBar, QVBoxLayout
from legendary.core import LegendaryCore
from Rare.utils.RareUtils import download_images
class LaunchThread(QThread):
download_progess = pyqtSignal(int)
action = pyqtSignal(str)
def __init__(self, parent=None):
super(LaunchThread, self).__init__(parent)
def run(self):
self.action.emit("Login")
self.action.emit("Downloading Images")
download_images(self.download_progess)
self.action.emit("finish")
class LaunchDialog(QDialog):
def __init__(self, core: LegendaryCore):
super(LaunchDialog, self).__init__()
self.title = QLabel("<h3>Launching Rare</h3>")
self.thread = LaunchThread(self)
self.thread.download_progess.connect(self.update_pb)
self.thread.action.connect(self.info)
self.info_pb = QProgressBar()
self.info_pb.setMaximum(len(core.get_game_list()))
self.info_text = QLabel("Logging in")
self.layout = QVBoxLayout()
self.layout.addWidget(self.title)
self.layout.addWidget(self.info_pb)
self.layout.addWidget(self.info_text)
self.setLayout(self.layout)
self.thread.start()
def update_pb(self, i: int):
self.info_pb.setValue(i)
def info(self, text: str):
if text == "finish":
self.close()
self.info_text.setText(text)

View file

@ -53,6 +53,8 @@ class GameWidget(QWidget):
pixmap = QPixmap(f"../images/{game.app_name}/DieselGameBoxTall.png")
elif os.path.exists(f"../images/{game.app_name}/DieselGameBoxLogo.png"):
pixmap = QPixmap(f"../images/{game.app_name}/DieselGameBoxLogo.png")
else:
logger.warning("No Image found")
pixmap = pixmap.scaled(180, 240)
self.image = QLabel()
self.image.setPixmap(pixmap)

View file

@ -15,7 +15,7 @@ class LoginBrowser(QWebEngineView):
def __init__(self):
super(LoginBrowser, self).__init__()
def createWindow(self, QWebEnginePage_WebWindowType):
def createWindow(self, webengine_window_type):
return self

View file

@ -4,6 +4,7 @@ import sys
from PyQt5.QtWidgets import QApplication
from legendary.core import LegendaryCore
from Launch import LaunchDialog
from Rare.Login import LoginWindow
from Rare.MainWindow import MainWindow
@ -15,6 +16,7 @@ logger = logging.getLogger("Rare")
core = LegendaryCore()
def main():
app = QApplication(sys.argv)
@ -29,9 +31,10 @@ def main():
login_window = LoginWindow(core)
if not login_window.login():
return
launch_dialog = LaunchDialog(core)
launch_dialog.exec_()
mainwindow = MainWindow(core)
sys.exit(app.exec_())
app.exec_()
if __name__ == '__main__':

View file

@ -1,93 +0,0 @@
import logging
import sys
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import QTabWidget, QMainWindow, QWidget, QApplication, QDialog, QLabel, QProgressBar, QVBoxLayout
from Rare.Dialogs import LoginDialog
from Rare.TabWidgets import Settings, GameListInstalled, BrowserTab, GameListUninstalled, UpdateList
from Rare.utils import legendaryUtils
from Rare.utils.RareUtils import download_images
logging.basicConfig(
format='[%(name)s] %(levelname)s: %(message)s',
level=logging.INFO
)
logger = logging.getLogger("Rare")
class LaunchThread(QThread):
download_progess = pyqtSignal(int)
action = pyqtSignal(str)
def __init__(self, parent=None):
super(LaunchThread, self).__init__(parent)
def run(self):
self.action.emit("Login")
self.action.emit("Downloading Images")
download_images(self.download_progess)
self.action.emit("finish")
class LaunchDialog(QDialog):
def __init__(self):
super(LaunchDialog, self).__init__()
try:
if legendaryUtils.core.login():
self.title = QLabel("<h3>Launching Rare</h3>")
self.thread = LaunchThread(self)
self.thread.download_progess.connect(self.update_pb)
self.thread.action.connect(self.info)
self.info_pb = QProgressBar()
self.info_pb.setMaximum(len(legendaryUtils.get_games()))
self.info_text = QLabel("Logging in")
self.layout = QVBoxLayout()
self.layout.addWidget(self.title)
self.layout.addWidget(self.info_pb)
self.layout.addWidget(self.info_text)
self.setLayout(self.layout)
self.thread.start()
except:
logger.info("No login data found")
dia = LoginDialog()
code = dia.get_login()
if code == 1:
self.app.closeAllWindows()
logger.info("Exit login")
exit(0)
elif code == 0:
logger.info("Login successfully")
def update_pb(self, i: int):
self.info_pb.setValue(i)
def info(self, text: str):
if text == "finish":
self.close()
self.info_text.setText(text)
class Main():
def __init__(self):
self.app = QApplication(sys.argv)
self.launch_dia = LaunchDialog()
self.launch_dia.exec_()
self.window = MainWindow()
self.app.exec_()
def start(self):
pass
def main():
Main()
if __name__ == '__main__':
main()

View file

@ -15,6 +15,7 @@ logger = getLogger("TabWidgets")
class BrowserTab(QWebEngineView):
# TODO Save login
def __init__(self, parent):
super(BrowserTab, self).__init__(parent=parent)

View file

@ -6,8 +6,8 @@ from getpass import getuser
from PyQt5.QtCore import QProcess, QProcessEnvironment
from legendary.core import LegendaryCore
logger = logging.getLogger("LGD")
core = LegendaryCore()
logger = logging.getLogger("LegendaryUtils")
def get_installed():
@ -98,7 +98,6 @@ def launch_game(app_name: str, offline: bool = False, skip_version_check: bool =
def auth_import(lutris: bool = False, wine_prefix: str = None) -> bool:
print(lutris, wine_prefix)
# Linux
if not core.egl.appdata_path:
@ -167,8 +166,8 @@ def get_name():
def uninstall(app_name: str):
return
core.uninstall_game(core.get_installed_game(app_name), True, True)
core.uninstall_game(core.get_installed_game(app_name))
# logger.info("Uninstalling " + app_name)

View file

@ -1,4 +1,4 @@
requests>=2.25.0
legendary_gl>=0.20.3
legendary-gl>=0.20.3
Pillow>=8.0.1
PyQt5>=5.15.2