WIP: whitelist, queue
This commit is contained in:
@@ -8,14 +8,15 @@ from PySide6.QtUiTools import QUiLoader
|
||||
from PySide6.QtWidgets import QMainWindow, QSizePolicy
|
||||
|
||||
from config.config_manager import ConfigManager
|
||||
from config.constants import NO_STAFF, Urls, NO_WHITELIST
|
||||
from ui.custom_message_box import CustomMessageBox
|
||||
from config.constants import PlayerServerInfo, Urls
|
||||
from ui.hazard_stripes import HazardButton
|
||||
from controllers.audio_controller import AudioController
|
||||
from controllers.glow_animator import GlowAnimator
|
||||
from controllers.window_dragger import WindowDragger
|
||||
from discord import discord_oauth
|
||||
from tools.utils import quit_application
|
||||
from fivemserver.whitelistmanager import WhiteList
|
||||
from fivemserver.fivemlauncher import FiveMLauncher
|
||||
from fivemserver.queuemanager import QueueManager
|
||||
|
||||
from fake_patch_notes import patch_note
|
||||
|
||||
@@ -29,29 +30,29 @@ class MainWindow(QMainWindow):
|
||||
|
||||
self.config = config_manager
|
||||
|
||||
WhiteList.checkwhitelist(Urls.API_URL.value, self.config.get_discord_user())
|
||||
if PlayerServerInfo.is_whitelist:
|
||||
QueueManager(self.config.get_discord_user())
|
||||
|
||||
# UI
|
||||
self.ui = QUiLoader().load(f"{bundle_dir}/ui/mainwindow_vertical_pager.ui", self)
|
||||
self.setCentralWidget(self.ui.centralWidget())
|
||||
self.setWindowFlags(Qt.WindowType.FramelessWindowHint | Qt.WindowType.Window)
|
||||
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
||||
|
||||
# Par défaut on affiche la page normal pour la connexion au serveur
|
||||
self.ui.stackedWidget.setCurrentIndex(0)
|
||||
|
||||
if NO_WHITELIST:
|
||||
self.ui.stackedWidget.setCurrentIndex(2)
|
||||
# msg = CustomMessageBox(
|
||||
# title="La Tanière: Non whitelisté",
|
||||
# message="\n\nTu n'est pas whitelisté sur le serveur\n\n"
|
||||
# "Assure-toi de te faire whitelister.\n\n"
|
||||
# "Lorsque cela sera fait, relance le launcher.",
|
||||
# icon_type=CustomMessageBox.WARNING,
|
||||
# buttons=CustomMessageBox.OK
|
||||
# )
|
||||
# msg.exec()
|
||||
# quit_application()
|
||||
# Si l'id discord = "" ou des espace, alors on affiche la page comme quoi faut être connecté à discord.
|
||||
if config_manager.get_discord_user() == "" or config_manager.get_discord_user().isspace():
|
||||
self.ui.queue_lbl.hide()
|
||||
self.ui.queue_position.hide()
|
||||
self.ui.stackedWidget.setCurrentIndex(1)
|
||||
|
||||
# Test bouton en contruction
|
||||
en_chantier = True
|
||||
en_chantier = False
|
||||
# on set la css du bouton en fonction de la valeur de la variable en_chantier
|
||||
self.set_en_chantier(en_chantier)
|
||||
if en_chantier:
|
||||
old_btn = self.ui.connexion_btn
|
||||
parent_layout = self.ui.verticalLayout_6 # layout direct du bouton dans le .ui
|
||||
@@ -74,7 +75,7 @@ class MainWindow(QMainWindow):
|
||||
self.ui.connexion_btn.clicked.connect(self._on_connexion)
|
||||
|
||||
# centrage vertical du bouton connexion
|
||||
if NO_STAFF:
|
||||
if not PlayerServerInfo.is_staff:
|
||||
self.ui.staff_btn.hide()
|
||||
layout = self.ui.verticalLayout_6
|
||||
# Trouver et modifier le spacer item
|
||||
@@ -84,12 +85,6 @@ class MainWindow(QMainWindow):
|
||||
item.spacerItem().changeSize(20, 15, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
layout.invalidate() # Forcer le recalcul du layout
|
||||
break
|
||||
# self.ui.spacer_substitution.hide()
|
||||
|
||||
if config_manager.get_discord_user() == "" or config_manager.get_discord_user().isspace():
|
||||
self.ui.queue_lbl.hide()
|
||||
self.ui.queue_position.hide()
|
||||
self.ui.stackedWidget.setCurrentIndex(1)
|
||||
|
||||
self.ui.info_text.setMarkdown(patch_note)
|
||||
|
||||
@@ -100,6 +95,15 @@ class MainWindow(QMainWindow):
|
||||
|
||||
self._connect_signals()
|
||||
self._center_window()
|
||||
|
||||
# si le jouer n'est pas whitelisté, on affiche la page pour se faire whitelister
|
||||
if not PlayerServerInfo.is_whitelist:
|
||||
self.ui.stackedWidget.setCurrentIndex(2)
|
||||
|
||||
# pour le moment on cache les controle queue
|
||||
self.ui.queue_lbl.setVisible(False)
|
||||
self.ui.queue_position.setVisible(False)
|
||||
|
||||
self.show()
|
||||
|
||||
|
||||
@@ -131,7 +135,7 @@ class MainWindow(QMainWindow):
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def _on_connexion(self) -> None:
|
||||
pass # à implémenter
|
||||
FiveMLauncher.launch()
|
||||
|
||||
@staticmethod
|
||||
def _on_discord() -> None:
|
||||
@@ -169,3 +173,12 @@ class MainWindow(QMainWindow):
|
||||
def closeEvent(self, event) -> None:
|
||||
self.config.save()
|
||||
super().closeEvent(event)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Change ui on runtime
|
||||
# ------------------------------------------------------------------
|
||||
def set_en_chantier(self, valeur: bool):
|
||||
self.en_chantier = valeur # ta variable Python
|
||||
self.ui.connexion_btn.setProperty("en_chantier", valeur) # propriété Qt
|
||||
self.ui.connexion_btn.style().unpolish(self.ui.connexion_btn)
|
||||
self.ui.connexion_btn.style().polish(self.ui.connexion_btn)
|
||||
|
||||
Reference in New Issue
Block a user