diff --git a/.gitignore b/.gitignore index d12088e..a47c7a5 100644 --- a/.gitignore +++ b/.gitignore @@ -312,3 +312,90 @@ http-client.private.env.json # Github Copilot persisted session migrations, see: https://github.com/microsoft/copilot-intellij-feedback/issues/712#issuecomment-3322062215 .idea/**/copilot.data.migration.*.xml + +# Covers JetBrains IDEs: IntelliJ, GoLand, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ +.idea/sonarlint.xml # see https://community.sonarsource.com/t/is-the-file-idea-idea-idea-sonarlint-xml-intended-to-be-under-source-control/121119 + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based HTTP Client +.idea/httpRequests +http-client.private.env.json + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# Apifox Helper cache +.idea/.cache/.Apifox_Helper +.idea/ApifoxUploaderProjectSetting.xml + +# Github Copilot persisted session migrations, see: https://github.com/microsoft/copilot-intellij-feedback/issues/712#issuecomment-3322062215 +.idea/**/copilot.data.migration.*.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/PyQt6_LaTaniere.iml b/.idea/PyQt6_LaTaniere.iml new file mode 100644 index 0000000..88a8457 --- /dev/null +++ b/.idea/PyQt6_LaTaniere.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..eb498d8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e5aedb7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..3de45c9 --- /dev/null +++ b/build.bat @@ -0,0 +1 @@ +pyinstaller --noconfirm --onedir --onefile --windowed --icon .\assets\Icone.ico --name "La Tanière Launcher" .\src\mainwindow.py --paths ".\.venv\Lib\site-packages\" --add-data ".\styles\styles.qss:styles" --add-data ".\ui\mainwindow.ui:ui" --hidden-import win11toast diff --git a/install.py b/install.py deleted file mode 100644 index 195a528..0000000 --- a/install.py +++ /dev/null @@ -1,60 +0,0 @@ -import os -import sys - -_all_ = [ - "PyQt6>=6.10.2", - "PyQt6-Qt6>=6.10.2", - "PyQt6_sip>=13.11.0", - "PySide6>=6.10.2", - "PySide6_Addons>=6.10.2", - "PySide6_Essentials>=6.10.2", - "shiboken6>=6.10.2", - "librt>=0.8.1", - "mypy>=1.19.1", - "mypy_extensions>=1.1.0", -] - -windows = [ - "typing_extensions>=4.15.0", - "win11toast>=0.36.3", - "winrt-runtime>=3.2.1", - "winrt-Windows.Data.Xml.Dom>=3.2.1", - "winrt-Windows.Foundation>=3.2.1", - "winrt-Windows.Foundation.Collections>=3.2.1", - "winrt-Windows.Globalization>=3.2.1", - "winrt-Windows.Graphics.Imaging>=3.2.1", - "winrt-Windows.Media.Core>=3.2.1", - "winrt-Windows.Media.Ocr>=3.2.1", - "winrt-Windows.Media.Playback>=3.2.1", - "winrt-Windows.Media.SpeechSynthesis>=3.2.1", - "winrt-Windows.Storage>=3.2.1", - "winrt-Windows.Storage.Streams>=3.2.1", - "winrt-Windows.UI.Notifications>=3.2.1", -] - -linux = [] # type: list[str] - -darwin = [] # type: list[str] - -def install(packages): - for package in packages: - os.system(f'python3 -m pip install "{package}"') - -if __name__ == "__main__": - - from sys import platform - - if hasattr(sys, 'real_prefix') or (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix): - print("Inside venv") - else: - print("Not in venv, quit.") - sys.exit() - - install(_all_) - if platform== 'windows': - install(windows) - if platform.startswith('linux'): - install(linux) - if platform == 'darwin': # MacOs - install(darwin) - diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 713b829..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,10 +0,0 @@ -[project] -name = "LaTaniere_UI" -version = "0.1.0" -description = "Add your description here" -readme = "README.md" -requires-python = ">=3.14" -dependencies = [ - "pyqt6>=6.10.2", -] - diff --git a/styles/styles.qss b/styles/styles.qss index 106c749..0f23c1a 100644 --- a/styles/styles.qss +++ b/styles/styles.qss @@ -1,8 +1,19 @@ #main_container { border-radius: 30px; - background-image: url(:/assets/background.png); + /*background-image: url(:/assets/background.png); background-repeat: no-repeat; - background-position: center; + background-position: center; */ + /*background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop: 0 #050a0f, + stop: 1 #0f172a);*/ + background: qradialgradient(cx:0.5, cy:0.5, radius:0.8, fx:0.5, fy:0.5, + stop: 0 #16213e, + stop: 1 #0a0e14); + + /*background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop: 0 #0d1117, + stop: 0.7 #0d1117, + stop: 1 #1e3a8a); /* Une pointe de bleu plus vif en bas à droite */ } QLabel#maintitle_label { @@ -24,26 +35,65 @@ QLabel#queue_lbl { } QPushButton#connexion_btn { - border-radius: 15px; + /* border-radius: 15px; background-color: rgb(255, 120, 0); - color: rgb(255, 255, 255); + color: rgb(255, 255, 255); */ + /* Dégradé chaleureux : Orange vers Orange-Rouge */ + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop: 0 #ff9d00, + stop: 1 #f56100); + + border-radius: 12px; + border: 1px solid #b34700; + color: white; + padding: 10px; } QPushButton#connexion_btn:hover { - background: #ffad66; + /* background: #ffad66; */ + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop: 0 #ffb338, + stop: 1 #ff7a29); + border: 1px solid #ffcc80; + /* Un léger halo autour du bouton */ + outline: none; +} + +QPushButton#connexionBtn:pressed { + background: #cc5200; + padding-top: 12px; /* Effet d'enfoncement */ } QPushButton#discord_btn, QPushButton#intranet_btn { - border-radius: 15px; + /*border-radius: 15px; background-color: rgb(32, 58, 67); - color: rgb(255, 255, 255); + color: rgb(255, 255, 255);*/ + background-color: rgba(32, 58, 67, 0.6); /* Bleu très sombre semi-transparent */ + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + color: #e2e8f0; + font-weight: bold; + padding: 8px 15px; +} + +QPushButton#discord_btn:hover { + background-color: rgba(88, 101, 242, 0.4); /* Fond bleu Discord translucide */ + border: 2px solid #7289da; /* Bordure plus épaisse et claire pour l'éclat */ + color: white; } -QPushButton#discord_btn:hover, QPushButton#intranet_btn:hover { - background: rgb(68, 124, 143); + /* background: rgb(68, 124, 143); */ + background-color: rgba(0, 242, 255, 0.15); /* Teinte turquoise légère en fond */ + border: 2px solid #00f2ff; /* Bordure turquoise vive et épaisse */ + color: #ffffff; +} + +QPushButton#discordBtn:pressed, QPushButton#intranetBtn:pressed { + background-color: #0f172a; + padding-top: 10px; /* Petit effet d'enfoncement */ } QPushButton#volume_btn { diff --git a/windows_requirements.txt b/windows_requirements.txt deleted file mode 100644 index e27d1ef..0000000 --- a/windows_requirements.txt +++ /dev/null @@ -1,15 +0,0 @@ -typing_extensions==4.15.0 -win11toast==0.36.3 -winrt-runtime==3.2.1 -winrt-Windows.Data.Xml.Dom==3.2.1 -winrt-Windows.Foundation==3.2.1 -winrt-Windows.Foundation.Collections==3.2.1 -winrt-Windows.Globalization==3.2.1 -winrt-Windows.Graphics.Imaging==3.2.1 -winrt-Windows.Media.Core==3.2.1 -winrt-Windows.Media.Ocr==3.2.1 -winrt-Windows.Media.Playback==3.2.1 -winrt-Windows.Media.SpeechSynthesis==3.2.1 -winrt-Windows.Storage==3.2.1 -winrt-Windows.Storage.Streams==3.2.1 -winrt-Windows.UI.Notifications==3.2.1