Changement de lib audio, suppression de quiloader

This commit is contained in:
2026-03-26 18:11:03 +01:00
parent 29437016c9
commit 3e75532517
4 changed files with 700 additions and 28 deletions
+7 -7
View File
@@ -26,7 +26,7 @@ a = Analysis(
(str(BASE_DIR / 'styles' / 'styles.qss'), 'styles'),
# UI (tu peux ajouter d'autres .ui ici)
(str(BASE_DIR / 'ui' / 'mainwindow_vertical_pager.ui'), 'ui'),
# (str(BASE_DIR / 'ui' / 'mainwindow_vertical_pager.ui'), 'ui'),
],
hiddenimports=[
"pypresence"
@@ -55,9 +55,9 @@ a = Analysis(
'PySide6.QtDesigner',
'PySide6.QtHelp',
'PySide6.QtLocation',
# 'PySide6.QtMultimedia', # Nécessaire pour l'audio
'PySide6.QtMultimedia', # Nécessaire pour l'audio
'PySide6.QtMultimediaWidgets',
# 'PySide6.QtNetwork', # Dépendance à QtMultimedia
'PySide6.QtNetwork', # Dépendance à QtMultimedia
'PySide6.QtNetworkAuth',
'PySide6.QtNfc',
'PySide6.QtOpenGL',
@@ -230,9 +230,9 @@ unwanted_dlls = [
'Qt6WebSockets',
'Qt6Sql',
'Qt6Test',
# 'Qt6OpenGL', # Dependance a Qt6UiTools
'Qt6OpenGL', # Dependance a Qt6UiTools
'Qt6PrintSupport',
# 'Qt6Xml', # Dependance fichier .ui
'Qt6Xml', # Dependance fichier .ui
'Qt6Help',
'Qt6Designer',
'Qt6Concurrent',
@@ -253,7 +253,7 @@ for item in a.binaries:
# "iconengines", # à garder pour les svg dans l'app
"tls",
"printsupport",
#"opengl",
"opengl", # <- ne pas mettre en exclude.
"qml",
"quick",
"webengine",
@@ -302,7 +302,7 @@ exe = EXE(
"msvcp140.dll"
],
runtime_tmpdir=None,
console=False,
console=True,
# 🔥 ONEFILE
onefile=True,
+23 -18
View File
@@ -1,6 +1,7 @@
from PySide6.QtCore import QFile, QBuffer, QByteArray, QIODevice
from PySide6.QtMultimedia import QMediaPlayer, QAudioOutput
from PySide6.QtCore import QFile
import cyminiaudio as cma
import tempfile
from config.config_manager import ConfigManager, VOLUME_KEY
from config.constants import Resources
@@ -13,32 +14,32 @@ class AudioController:
self._slider = slider
self._mute_btn = mute_btn
# Lecteur
self._player = QMediaPlayer()
self._output = QAudioOutput()
self._player.setAudioOutput(self._output)
self._player.setLoops(-1)
# Chargement du MP3 depuis les ressources Qt
mp3file = QFile(Resources.MP3.value)
mp3file.open(QFile.ReadOnly)
mp3data = mp3file.readAll()
mp3data = mp3file.readAll().data()
mp3file.close()
# Mise en buffer du MP3
self._buffer = QBuffer()
self._buffer.setData(QByteArray(mp3data))
self._buffer.open(QIODevice.ReadOnly)
self._player.setSourceDevice(self._buffer)
# 2. Créer un fichier temporaire "invisible" pour l'utilisateur
self.tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
self.tmp.write(mp3data)
self.tmp.close() # Libère le verrou pour le lecteur
# État initial du lecteur
volume = config.get_volume()
self._is_muted = volume == 0
self._is_muted = (volume == 0)
self._previous_volume = volume if volume != 0 else config.get_default(VOLUME_KEY)
self._apply_volume(volume, save=False)
self._refresh_mute_btn()
self._player.play()
# 3. Initialiser le moteur SANS le bloc 'with'
# En les stockant dans self, ils restent vivants en mémoire
self._audio_engine = cma.Engine()
self._sound = self._audio_engine.play(self.tmp.name)
self._sound.looping = True
# On force le volume du son pour correspondre à la config
self._sound.volume = volume / 100.0
# Connexions
self._slider.valueChanged.connect(self._on_slider_changed)
@@ -63,7 +64,9 @@ class AudioController:
def _on_slider_changed(self, value: int) -> None:
self._is_muted = value == 0
self._output.setVolume(value / 100.0)
if hasattr(self, '_sound'):
# cyminiaudio attend souvent un float entre 0.0 et 1.0
self._sound.volume = value / 100.0
self._config.set_volume(value)
self._refresh_mute_btn()
@@ -72,7 +75,9 @@ class AudioController:
self._slider.setValue(value)
self._slider.blockSignals(False)
self._output.setVolume(value / 100.0)
# Même correction ici
if hasattr(self, '_sound'):
self._sound.volume = value / 100.0
if save:
self._config.set_volume(value)
+18 -3
View File
@@ -1,14 +1,15 @@
import webbrowser
import os
from sys import platform
from os import environ
from PySide6 import QtGui
from PySide6.QtGui import QIcon
from PySide6.QtCore import Qt, QTimer
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QMainWindow, QSizePolicy
from PySide6.QtCore import QThread, Signal
from ui.ui_mainwindow_vertical_pager import Ui_MainWindow
from config.config_manager import ConfigManager
from config.constants import PlayerServerInfo, Urls
from tools.http_client import ApiError
@@ -34,6 +35,9 @@ class MainWindow(QMainWindow):
def __init__(self, bundle_dir: str, config_manager: ConfigManager):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.config = config_manager
self.stored_user_id = self.config.get_discord_user()
self.queue_thread = None
@@ -43,8 +47,8 @@ class MainWindow(QMainWindow):
self.remaining_time = 0 # en secondes
# UI
self.ui = QUiLoader().load(f"{bundle_dir}/ui/mainwindow_vertical_pager.ui", self)
self.setCentralWidget(self.ui.centralWidget())
# 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)
@@ -253,8 +257,19 @@ class MainWindow(QMainWindow):
self.queue_thread.stop()
self.queue_thread.wait() # Attend que le thread se termine proprement
self.config.save()
self.cleanup()
super().closeEvent(event)
def cleanup(self):
"""À appeler lors de la fermeture de la fenêtre principale"""
if hasattr(self, '_sound'):
self._sound.stop()
if hasattr(self, '_temp_mp3'):
try:
os.unlink(self._temp_mp3.name)
except OSError:
pass
# ------------------------------------------------------------------
# Change ui on runtime
# ------------------------------------------------------------------
+652
View File
@@ -0,0 +1,652 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'mainwindow_vertical_pageryBuDUs.ui'
##
## Created by: Qt User Interface Compiler version 6.10.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect,
QSize, Qt)
from PySide6.QtGui import (QIcon,
QPixmap)
from PySide6.QtWidgets import (QFrame, QHBoxLayout, QLabel,
QPushButton, QSizePolicy, QSlider,
QSpacerItem, QStackedWidget, QTextEdit, QVBoxLayout,
QWidget)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.setWindowModality(Qt.WindowModality.ApplicationModal)
MainWindow.resize(1199, 703)
sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QSize(1199, 703))
MainWindow.setMaximumSize(QSize(1199, 703))
MainWindow.setContextMenuPolicy(Qt.ContextMenuPolicy.NoContextMenu)
icon = QIcon()
icon.addFile(u":/assets/Icone.ico", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
MainWindow.setWindowIcon(icon)
self.main_container = QWidget(MainWindow)
self.main_container.setObjectName(u"main_container")
self.main_container.setMinimumSize(QSize(1199, 703))
self.main_container.setMaximumSize(QSize(1199, 703))
self.verticalLayout = QVBoxLayout(self.main_container)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.title_bar = QFrame(self.main_container)
self.title_bar.setObjectName(u"title_bar")
self.title_bar.setMinimumSize(QSize(1199, 50))
self.title_bar.setMaximumSize(QSize(1199, 50))
self.title_bar.setFrameShape(QFrame.Shape.NoFrame)
self.title_bar.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout = QHBoxLayout(self.title_bar)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.horizontalLayout.setContentsMargins(0, 9, 0, 0)
self.horizontalSpacer = QSpacerItem(1006, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer)
self.minimize_btn = QPushButton(self.title_bar)
self.minimize_btn.setObjectName(u"minimize_btn")
self.minimize_btn.setMinimumSize(QSize(0, 0))
self.minimize_btn.setMaximumSize(QSize(25, 25))
self.minimize_btn.setStyleSheet(u"")
self.minimize_btn.setIconSize(QSize(32, 32))
self.horizontalLayout.addWidget(self.minimize_btn)
self.horizontalSpacer1 = QSpacerItem(20, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer1)
self.close_btn = QPushButton(self.title_bar)
self.close_btn.setObjectName(u"close_btn")
self.close_btn.setMaximumSize(QSize(42, 42))
self.close_btn.setStyleSheet(u"")
icon1 = QIcon()
icon1.addFile(u":/assets/system-shutdown.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.close_btn.setIcon(icon1)
self.close_btn.setIconSize(QSize(32, 32))
self.horizontalLayout.addWidget(self.close_btn)
self.horizontalSpacer_3 = QSpacerItem(30, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(self.horizontalSpacer_3)
self.verticalLayout.addWidget(self.title_bar)
self.frame = QFrame(self.main_container)
self.frame.setObjectName(u"frame")
self.frame.setMinimumSize(QSize(1199, 0))
self.frame.setMaximumSize(QSize(1199, 658))
self.frame.setFrameShape(QFrame.Shape.NoFrame)
self.frame.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout1 = QHBoxLayout(self.frame)
self.horizontalLayout1.setSpacing(0)
self.horizontalLayout1.setObjectName(u"horizontalLayout1")
self.horizontalLayout1.setContentsMargins(0, 0, 0, 0)
self.left_column = QFrame(self.frame)
self.left_column.setObjectName(u"left_column")
self.left_column.setMinimumSize(QSize(450, 630))
self.left_column.setMaximumSize(QSize(450, 630))
self.left_column.setFrameShape(QFrame.Shape.NoFrame)
self.left_column.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_5 = QVBoxLayout(self.left_column)
self.verticalLayout_5.setSpacing(0)
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.logo_frame = QFrame(self.left_column)
self.logo_frame.setObjectName(u"logo_frame")
self.logo_frame.setFrameShape(QFrame.Shape.NoFrame)
self.logo_frame.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_5.addWidget(self.logo_frame)
self.frame_3 = QFrame(self.left_column)
self.frame_3.setObjectName(u"frame_3")
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.frame_3.sizePolicy().hasHeightForWidth())
self.frame_3.setSizePolicy(sizePolicy1)
self.frame_3.setMinimumSize(QSize(0, 100))
self.frame_3.setFrameShape(QFrame.Shape.NoFrame)
self.frame_3.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_6 = QHBoxLayout(self.frame_3)
self.horizontalLayout_6.setSpacing(0)
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
self.frame_5 = QFrame(self.frame_3)
self.frame_5.setObjectName(u"frame_5")
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth())
self.frame_5.setSizePolicy(sizePolicy2)
self.frame_5.setMinimumSize(QSize(0, 0))
self.frame_5.setFrameShape(QFrame.Shape.NoFrame)
self.frame_5.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_8 = QHBoxLayout(self.frame_5)
self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
self.queue_lbl = QLabel(self.frame_5)
self.queue_lbl.setObjectName(u"queue_lbl")
self.queue_lbl.setAutoFillBackground(False)
self.queue_lbl.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.horizontalLayout_8.addWidget(self.queue_lbl)
self.queue_position = QLabel(self.frame_5)
self.queue_position.setObjectName(u"queue_position")
self.queue_position.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.horizontalLayout_8.addWidget(self.queue_position)
self.horizontalSpacer_5 = QSpacerItem(80, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout_8.addItem(self.horizontalSpacer_5)
self.horizontalLayout_6.addWidget(self.frame_5)
self.verticalLayout_5.addWidget(self.frame_3)
self.frame_4 = QFrame(self.left_column)
self.frame_4.setObjectName(u"frame_4")
sizePolicy1.setHeightForWidth(self.frame_4.sizePolicy().hasHeightForWidth())
self.frame_4.setSizePolicy(sizePolicy1)
self.frame_4.setMinimumSize(QSize(0, 0))
self.frame_4.setMaximumSize(QSize(16777215, 50))
self.frame_4.setStyleSheet(u"")
self.frame_4.setFrameShape(QFrame.Shape.NoFrame)
self.frame_4.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_7 = QHBoxLayout(self.frame_4)
self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
self.audio_volume_adjust = QSlider(self.frame_4)
self.audio_volume_adjust.setObjectName(u"audio_volume_adjust")
self.audio_volume_adjust.setAutoFillBackground(False)
self.audio_volume_adjust.setStyleSheet(u"")
self.audio_volume_adjust.setValue(20)
self.audio_volume_adjust.setOrientation(Qt.Orientation.Horizontal)
self.audio_volume_adjust.setInvertedAppearance(False)
self.horizontalLayout_7.addWidget(self.audio_volume_adjust)
self.mute_btn = QPushButton(self.frame_4)
self.mute_btn.setObjectName(u"mute_btn")
self.mute_btn.setMinimumSize(QSize(32, 32))
icon2 = QIcon()
icon2.addFile(u":/assets/sound-speaker.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.mute_btn.setIcon(icon2)
self.mute_btn.setFlat(True)
self.horizontalLayout_7.addWidget(self.mute_btn)
self.horizontalSpacer_10 = QSpacerItem(180, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout_7.addItem(self.horizontalSpacer_10)
self.verticalLayout_5.addWidget(self.frame_4)
self.horizontalLayout1.addWidget(self.left_column)
self.right_column = QFrame(self.frame)
self.right_column.setObjectName(u"right_column")
self.right_column.setMinimumSize(QSize(0, 650))
self.right_column.setMaximumSize(QSize(700, 650))
self.right_column.setFrameShape(QFrame.Shape.NoFrame)
self.right_column.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout1 = QVBoxLayout(self.right_column)
self.verticalLayout1.setSpacing(0)
self.verticalLayout1.setObjectName(u"verticalLayout1")
self.verticalLayout1.setContentsMargins(0, 0, 0, 0)
self.title_frame = QFrame(self.right_column)
self.title_frame.setObjectName(u"title_frame")
sizePolicy1.setHeightForWidth(self.title_frame.sizePolicy().hasHeightForWidth())
self.title_frame.setSizePolicy(sizePolicy1)
self.title_frame.setMinimumSize(QSize(0, 140))
self.title_frame.setMaximumSize(QSize(16777215, 140))
self.title_frame.setFrameShape(QFrame.Shape.NoFrame)
self.title_frame.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_4 = QVBoxLayout(self.title_frame)
self.verticalLayout_4.setSpacing(0)
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
self.maintitle_label = QLabel(self.title_frame)
self.maintitle_label.setObjectName(u"maintitle_label")
self.verticalLayout_4.addWidget(self.maintitle_label, 0, Qt.AlignmentFlag.AlignHCenter)
self.verticalSpacer = QSpacerItem(20, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_4.addItem(self.verticalSpacer)
self.subtitle_label = QLabel(self.title_frame)
self.subtitle_label.setObjectName(u"subtitle_label")
self.subtitle_label.setMinimumSize(QSize(0, 0))
self.subtitle_label.setTextFormat(Qt.TextFormat.AutoText)
self.subtitle_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.verticalLayout_4.addWidget(self.subtitle_label)
self.verticalLayout1.addWidget(self.title_frame)
self.verticalSpacer_10 = QSpacerItem(20, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout1.addItem(self.verticalSpacer_10)
self.stackedWidget = QStackedWidget(self.right_column)
self.stackedWidget.setObjectName(u"stackedWidget")
self.stackedWidget.setMinimumSize(QSize(700, 482))
self.stackedWidget.setMaximumSize(QSize(700, 560))
self.stackedWidget.setFrameShape(QFrame.Shape.NoFrame)
self.main_page = QWidget()
self.main_page.setObjectName(u"main_page")
self.main_page.setMinimumSize(QSize(0, 482))
self.main_page.setMaximumSize(QSize(700, 482))
self.frame1 = QFrame(self.main_page)
self.frame1.setObjectName(u"frame1")
self.frame1.setGeometry(QRect(0, 0, 700, 482))
self.frame1.setMinimumSize(QSize(0, 0))
self.frame1.setMaximumSize(QSize(700, 650))
self.frame1.setFrameShape(QFrame.Shape.NoFrame)
self.frame1.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_10 = QVBoxLayout(self.frame1)
self.verticalLayout_10.setSpacing(0)
self.verticalLayout_10.setObjectName(u"verticalLayout_10")
self.verticalLayout_10.setContentsMargins(0, 0, 0, 0)
self.btn_frame = QFrame(self.frame1)
self.btn_frame.setObjectName(u"btn_frame")
sizePolicy1.setHeightForWidth(self.btn_frame.sizePolicy().hasHeightForWidth())
self.btn_frame.setSizePolicy(sizePolicy1)
self.btn_frame.setMaximumSize(QSize(16777215, 150))
self.btn_frame.setStyleSheet(u"")
self.btn_frame.setFrameShape(QFrame.Shape.NoFrame)
self.btn_frame.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_4 = QHBoxLayout(self.btn_frame)
self.horizontalLayout_4.setSpacing(0)
self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_6 = QVBoxLayout()
self.verticalLayout_6.setObjectName(u"verticalLayout_6")
self.verticalSpacer_7 = QSpacerItem(20, 0, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_6.addItem(self.verticalSpacer_7)
self.connexion_btn = QPushButton(self.btn_frame)
self.connexion_btn.setObjectName(u"connexion_btn")
self.connexion_btn.setMinimumSize(QSize(250, 50))
self.connexion_btn.setStyleSheet(u"")
icon3 = QIcon()
icon3.addFile(u":/assets/padlock-lock.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.connexion_btn.setIcon(icon3)
self.connexion_btn.setIconSize(QSize(32, 32))
self.verticalLayout_6.addWidget(self.connexion_btn)
self.verticalSpacer_8 = QSpacerItem(20, 15, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_6.addItem(self.verticalSpacer_8)
self.staff_btn = QPushButton(self.btn_frame)
self.staff_btn.setObjectName(u"staff_btn")
self.staff_btn.setMinimumSize(QSize(250, 50))
icon4 = QIcon()
icon4.addFile(u":/assets/tools-repair.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.staff_btn.setIcon(icon4)
self.staff_btn.setIconSize(QSize(32, 32))
self.verticalLayout_6.addWidget(self.staff_btn)
self.horizontalLayout_4.addLayout(self.verticalLayout_6)
self.horizontalSpacer_6 = QSpacerItem(30, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
self.horizontalLayout_4.addItem(self.horizontalSpacer_6)
self.verticalLayout_9 = QVBoxLayout()
self.verticalLayout_9.setObjectName(u"verticalLayout_9")
self.discord_btn = QPushButton(self.btn_frame)
self.discord_btn.setObjectName(u"discord_btn")
self.discord_btn.setMinimumSize(QSize(250, 50))
icon5 = QIcon()
icon5.addFile(u":/assets/discord-icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.discord_btn.setIcon(icon5)
self.discord_btn.setIconSize(QSize(32, 32))
self.verticalLayout_9.addWidget(self.discord_btn)
self.verticalSpacer_9 = QSpacerItem(15, 15, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_9.addItem(self.verticalSpacer_9)
self.intranet_btn = QPushButton(self.btn_frame)
self.intranet_btn.setObjectName(u"intranet_btn")
self.intranet_btn.setMinimumSize(QSize(250, 50))
icon6 = QIcon()
icon6.addFile(u":/assets/computer-tv.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.intranet_btn.setIcon(icon6)
self.intranet_btn.setIconSize(QSize(32, 32))
self.verticalLayout_9.addWidget(self.intranet_btn)
self.horizontalLayout_4.addLayout(self.verticalLayout_9)
self.verticalLayout_10.addWidget(self.btn_frame)
self.verticalSpacer_3 = QSpacerItem(20, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_10.addItem(self.verticalSpacer_3)
self.info_frame = QFrame(self.frame1)
self.info_frame.setObjectName(u"info_frame")
sizePolicy1.setHeightForWidth(self.info_frame.sizePolicy().hasHeightForWidth())
self.info_frame.setSizePolicy(sizePolicy1)
self.info_frame.setMinimumSize(QSize(0, 300))
self.info_frame.setStyleSheet(u"")
self.info_frame.setFrameShape(QFrame.Shape.StyledPanel)
self.info_frame.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_9 = QHBoxLayout(self.info_frame)
self.horizontalLayout_9.setSpacing(0)
self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
self.horizontalLayout_9.setContentsMargins(0, 0, 0, 0)
self.info_text = QTextEdit(self.info_frame)
self.info_text.setObjectName(u"info_text")
self.info_text.setReadOnly(True)
self.info_text.setTextInteractionFlags(Qt.TextInteractionFlag.NoTextInteraction)
self.horizontalLayout_9.addWidget(self.info_text)
self.verticalLayout_10.addWidget(self.info_frame)
self.stackedWidget.addWidget(self.main_page)
self.auth_discord_page = QWidget()
self.auth_discord_page.setObjectName(u"auth_discord_page")
self.auth_discord_page.setMinimumSize(QSize(0, 482))
self.auth_discord_page.setMaximumSize(QSize(700, 482))
self.frame_2 = QFrame(self.auth_discord_page)
self.frame_2.setObjectName(u"frame_2")
self.frame_2.setGeometry(QRect(0, 0, 700, 482))
self.frame_2.setMaximumSize(QSize(700, 16777215))
self.frame_2.setFrameShape(QFrame.Shape.NoFrame)
self.frame_2.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_2 = QVBoxLayout(self.frame_2)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.auth_discord_page_title = QFrame(self.frame_2)
self.auth_discord_page_title.setObjectName(u"auth_discord_page_title")
self.auth_discord_page_title.setMinimumSize(QSize(0, 80))
self.auth_discord_page_title.setMaximumSize(QSize(16777215, 80))
self.auth_discord_page_title.setFrameShape(QFrame.Shape.NoFrame)
self.auth_discord_page_title.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_2 = QHBoxLayout(self.auth_discord_page_title)
self.horizontalLayout_2.setSpacing(0)
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.horizontalSpacer_2 = QSpacerItem(292, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_2.addItem(self.horizontalSpacer_2)
self.discord_info_icon = QLabel(self.auth_discord_page_title)
self.discord_info_icon.setObjectName(u"discord_info_icon")
self.discord_info_icon.setMinimumSize(QSize(32, 32))
self.discord_info_icon.setMaximumSize(QSize(32, 32))
self.discord_info_icon.setPixmap(QPixmap(u":/assets/letter-i-info.svg"))
self.discord_info_icon.setScaledContents(True)
self.horizontalLayout_2.addWidget(self.discord_info_icon)
self.discord_info_title_label = QLabel(self.auth_discord_page_title)
self.discord_info_title_label.setObjectName(u"discord_info_title_label")
self.discord_info_title_label.setMinimumSize(QSize(180, 30))
self.discord_info_title_label.setScaledContents(True)
self.horizontalLayout_2.addWidget(self.discord_info_title_label)
self.horizontalSpacer_4 = QSpacerItem(291, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_2.addItem(self.horizontalSpacer_4)
self.verticalLayout_2.addWidget(self.auth_discord_page_title)
self.auth_discord_page_content = QFrame(self.frame_2)
self.auth_discord_page_content.setObjectName(u"auth_discord_page_content")
self.auth_discord_page_content.setMaximumSize(QSize(700, 16777215))
self.auth_discord_page_content.setFrameShape(QFrame.Shape.NoFrame)
self.auth_discord_page_content.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_3 = QVBoxLayout(self.auth_discord_page_content)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalSpacer_4 = QSpacerItem(0, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_3.addItem(self.verticalSpacer_4)
self.label_2 = QLabel(self.auth_discord_page_content)
self.label_2.setObjectName(u"label_2")
self.label_2.setMinimumSize(QSize(0, 50))
self.label_2.setMaximumSize(QSize(16777215, 50))
self.label_2.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.verticalLayout_3.addWidget(self.label_2)
self.verticalSpacer_2 = QSpacerItem(20, 30, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_3.addItem(self.verticalSpacer_2)
self.frame_8 = QFrame(self.auth_discord_page_content)
self.frame_8.setObjectName(u"frame_8")
self.frame_8.setFrameShape(QFrame.Shape.NoFrame)
self.frame_8.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_3 = QHBoxLayout(self.frame_8)
self.horizontalLayout_3.setSpacing(0)
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_3.addItem(self.horizontalSpacer_7)
self.discord_auth_btn = QPushButton(self.frame_8)
self.discord_auth_btn.setObjectName(u"discord_auth_btn")
self.discord_auth_btn.setMinimumSize(QSize(380, 50))
self.discord_auth_btn.setMaximumSize(QSize(250, 50))
self.discord_auth_btn.setIcon(icon5)
self.discord_auth_btn.setIconSize(QSize(32, 32))
self.horizontalLayout_3.addWidget(self.discord_auth_btn)
self.horizontalSpacer_8 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_3.addItem(self.horizontalSpacer_8)
self.verticalLayout_3.addWidget(self.frame_8)
self.verticalSpacer_5 = QSpacerItem(20, 200, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_3.addItem(self.verticalSpacer_5)
self.verticalLayout_2.addWidget(self.auth_discord_page_content)
self.stackedWidget.addWidget(self.auth_discord_page)
self.whitelist = QWidget()
self.whitelist.setObjectName(u"whitelist")
self.whitelist.setMinimumSize(QSize(700, 482))
self.whitelist.setMaximumSize(QSize(700, 482))
self.frame_6 = QFrame(self.whitelist)
self.frame_6.setObjectName(u"frame_6")
self.frame_6.setGeometry(QRect(0, 0, 700, 482))
self.frame_6.setMinimumSize(QSize(700, 482))
self.frame_6.setMaximumSize(QSize(700, 482))
self.frame_6.setFrameShape(QFrame.Shape.NoFrame)
self.frame_6.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_8 = QVBoxLayout(self.frame_6)
self.verticalLayout_8.setSpacing(0)
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
self.whitelist_page_title = QFrame(self.frame_6)
self.whitelist_page_title.setObjectName(u"whitelist_page_title")
self.whitelist_page_title.setMinimumSize(QSize(0, 80))
self.whitelist_page_title.setMaximumSize(QSize(16777215, 80))
self.whitelist_page_title.setFrameShape(QFrame.Shape.NoFrame)
self.whitelist_page_title.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_5 = QHBoxLayout(self.whitelist_page_title)
self.horizontalLayout_5.setSpacing(0)
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
self.horizontalSpacer_9 = QSpacerItem(292, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_5.addItem(self.horizontalSpacer_9)
self.whitelist_info_icon_labe = QLabel(self.whitelist_page_title)
self.whitelist_info_icon_labe.setObjectName(u"whitelist_info_icon_labe")
self.whitelist_info_icon_labe.setMinimumSize(QSize(32, 32))
self.whitelist_info_icon_labe.setMaximumSize(QSize(32, 32))
self.whitelist_info_icon_labe.setPixmap(QPixmap(u":/assets/letter-i-info.svg"))
self.whitelist_info_icon_labe.setScaledContents(True)
self.horizontalLayout_5.addWidget(self.whitelist_info_icon_labe)
self.whitelist_info_title_label = QLabel(self.whitelist_page_title)
self.whitelist_info_title_label.setObjectName(u"whitelist_info_title_label")
self.whitelist_info_title_label.setMinimumSize(QSize(180, 30))
self.whitelist_info_title_label.setScaledContents(True)
self.horizontalLayout_5.addWidget(self.whitelist_info_title_label)
self.horizontalSpacer_11 = QSpacerItem(291, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_5.addItem(self.horizontalSpacer_11)
self.verticalLayout_8.addWidget(self.whitelist_page_title)
self.frame_7 = QFrame(self.frame_6)
self.frame_7.setObjectName(u"frame_7")
self.frame_7.setMaximumSize(QSize(700, 16777215))
self.frame_7.setFrameShape(QFrame.Shape.NoFrame)
self.frame_7.setFrameShadow(QFrame.Shadow.Raised)
self.verticalLayout_7 = QVBoxLayout(self.frame_7)
self.verticalLayout_7.setSpacing(0)
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
self.verticalSpacer_6 = QSpacerItem(0, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_7.addItem(self.verticalSpacer_6)
self.whitelist_info_text = QLabel(self.frame_7)
self.whitelist_info_text.setObjectName(u"whitelist_info_text")
self.whitelist_info_text.setMinimumSize(QSize(0, 50))
self.whitelist_info_text.setMaximumSize(QSize(16777215, 50))
self.whitelist_info_text.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.verticalLayout_7.addWidget(self.whitelist_info_text)
self.verticalSpacer_11 = QSpacerItem(20, 30, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_7.addItem(self.verticalSpacer_11)
self.frame_9 = QFrame(self.frame_7)
self.frame_9.setObjectName(u"frame_9")
self.frame_9.setFrameShape(QFrame.Shape.NoFrame)
self.frame_9.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_10 = QHBoxLayout(self.frame_9)
self.horizontalLayout_10.setSpacing(0)
self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
self.horizontalLayout_10.setContentsMargins(0, 0, 0, 0)
self.horizontalSpacer_12 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_10.addItem(self.horizontalSpacer_12)
self.no_whitelist_btn = QPushButton(self.frame_9)
self.no_whitelist_btn.setObjectName(u"no_whitelist_btn")
self.no_whitelist_btn.setMinimumSize(QSize(380, 50))
self.no_whitelist_btn.setMaximumSize(QSize(250, 50))
icon7 = QIcon()
icon7.addFile(u":/assets/no_whitelist.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.no_whitelist_btn.setIcon(icon7)
self.no_whitelist_btn.setIconSize(QSize(32, 32))
self.horizontalLayout_10.addWidget(self.no_whitelist_btn)
self.horizontalSpacer_13 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_10.addItem(self.horizontalSpacer_13)
self.verticalLayout_7.addWidget(self.frame_9)
self.verticalSpacer_12 = QSpacerItem(20, 200, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_7.addItem(self.verticalSpacer_12)
self.verticalLayout_8.addWidget(self.frame_7)
self.stackedWidget.addWidget(self.whitelist)
self.verticalLayout1.addWidget(self.stackedWidget)
self.horizontalLayout1.addWidget(self.right_column)
self.verticalLayout.addWidget(self.frame)
MainWindow.setCentralWidget(self.main_container)
self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(2)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.minimize_btn.setText("")
self.close_btn.setText("")
self.queue_lbl.setText(QCoreApplication.translate("MainWindow", u"Position en file d'attente: ", None))
self.queue_position.setText(QCoreApplication.translate("MainWindow", u"-", None))
self.mute_btn.setText("")
self.maintitle_label.setText(QCoreApplication.translate("MainWindow", u"LA TANI\u00c8RE", None))
self.subtitle_label.setText(QCoreApplication.translate("MainWindow", u"Un espace pour se retrouver", None))
self.connexion_btn.setText(QCoreApplication.translate("MainWindow", u" Connexion", None))
self.staff_btn.setText(QCoreApplication.translate("MainWindow", u"staff", None))
self.discord_btn.setText(QCoreApplication.translate("MainWindow", u" Discord", None))
self.intranet_btn.setText(QCoreApplication.translate("MainWindow", u" Intranet", None))
self.discord_info_icon.setText("")
self.discord_info_title_label.setText(QCoreApplication.translate("MainWindow", u"Information", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"UNE PREMI\u00c8RE AUTHENTIFICATION AVEC DISCORD EST N\u00c9CESSAIRE.", None))
self.discord_auth_btn.setText(QCoreApplication.translate("MainWindow", u" M'authentifer avec Discord", None))
self.whitelist_info_icon_labe.setText("")
self.whitelist_info_title_label.setText(QCoreApplication.translate("MainWindow", u"Information", None))
self.whitelist_info_text.setText(QCoreApplication.translate("MainWindow", u"Tu n\u2019es pas whitelist\u00e9 sur le serveur.\n"
"Inscris-toi sur Discord, puis relance le launcher.", None))
self.no_whitelist_btn.setText(QCoreApplication.translate("MainWindow", u" Compris !", None))
# retranslateUi