From 19ab5e198ecc5bdf9c14b3355f0a0a66820de9c1 Mon Sep 17 00:00:00 2001 From: xgui4 <134389196+xgui4@users.noreply.github.com> Date: Fri, 1 May 2026 16:02:17 -0400 Subject: [PATCH] update version, and ui --- default.nix | 2 +- flake.nix | 2 +- .../io.github.xgui4.lce_qt_launcher.yml | 2 +- packages/linux/stable/PKGBUILD | 2 +- .../windows/windows-setup-nigthly-preview.iss | 2 +- packages/windows/windows-setup-nigthly.iss | 2 +- packages/windows/windows-setup.iss | 2 +- pyproject.toml | 3 +- res.qrc | 6 ++-- src/form.ui | 27 ++++------------- src/instances.qml | 7 ----- src/lce_qt_launcher/__init__.py | 2 +- src/lce_qt_launcher/main.py | 4 +-- .../managers/instance_manager.py | 29 ++++++++++++++----- src/lce_qt_launcher/views/instance_view.py | 22 ++++++++++++++ src/lce_qt_launcher/views/launcher.py | 2 ++ uv.lock | 2 +- 17 files changed, 68 insertions(+), 50 deletions(-) delete mode 100644 src/instances.qml create mode 100644 src/lce_qt_launcher/views/instance_view.py diff --git a/default.nix b/default.nix index 036b5a2..ffa5403 100644 --- a/default.nix +++ b/default.nix @@ -2,7 +2,7 @@ pkgs.python3Packages.buildPythonApplication rec { pname = "lce-qt-launcher"; - version = "2026.4.26"; + version = "2026.5.1"; format = "pyproject"; src = ./.; diff --git a/flake.nix b/flake.nix index 6606877..2e804fb 100644 --- a/flake.nix +++ b/flake.nix @@ -42,7 +42,7 @@ packages.default = python.pkgs.buildPythonApplication { pname = "lce_qt_launcher"; - version = "0.0.1"; + version = "0.0.2.0"; format = "hatchling"; license = pkgs.lib.licenses.gpl3plus; diff --git a/packages/flatpak/io.github.xgui4.lce_qt_launcher.yml b/packages/flatpak/io.github.xgui4.lce_qt_launcher.yml index f4bb0c3..e9d0125 100644 --- a/packages/flatpak/io.github.xgui4.lce_qt_launcher.yml +++ b/packages/flatpak/io.github.xgui4.lce_qt_launcher.yml @@ -6,7 +6,7 @@ sdk: org.kde.Sdk name: LCE Qt Launcher command: lce_qt_launcher -summary: My First GTK App +summary: An Minecraft Legacy Console Launcher For GNU/Linux description: | This is a custom Minecraft LCE Launcher written in Python and Qt with Freedom and with GNU/Linux support in mind. diff --git a/packages/linux/stable/PKGBUILD b/packages/linux/stable/PKGBUILD index e2ca85d..033e5cd 100644 --- a/packages/linux/stable/PKGBUILD +++ b/packages/linux/stable/PKGBUILD @@ -1,6 +1,6 @@ # Maintainer: Xgui4 pkgname=lce-qt-launcher -pkgver=0.0.1 +pkgver=0.0.2.0 pkgrel=1 pkgdesc="A custom Minecraft LCE Launcher written with PySide6 (Python) with GNU/Linux support in mind. (Master/Stable Branch)" arch=('any') diff --git a/packages/windows/windows-setup-nigthly-preview.iss b/packages/windows/windows-setup-nigthly-preview.iss index b7b73d7..5c7f546 100644 --- a/packages/windows/windows-setup-nigthly-preview.iss +++ b/packages/windows/windows-setup-nigthly-preview.iss @@ -3,7 +3,7 @@ ; Non-commercial use only #define MyAppName "LCE Qt Launcher (Nightly Preview Inno Setup 7 Installer)" -#define MyAppVersion "2026.4.26" +#define MyAppVersion "2026.5.1" #define MyAppPublisher "Xgui4" #define MyAppURL "https://github.com/xgui4/lce-qt-launcher" #define MyAppExeName "main.exe" diff --git a/packages/windows/windows-setup-nigthly.iss b/packages/windows/windows-setup-nigthly.iss index 2889cc4..5b528a8 100644 --- a/packages/windows/windows-setup-nigthly.iss +++ b/packages/windows/windows-setup-nigthly.iss @@ -3,7 +3,7 @@ ; Non-commercial use only #define MyAppName "LCE Qt Launcher (Nightly)" -#define MyAppVersion "2026.4.26" +#define MyAppVersion "2026.5.1" #define MyAppPublisher "Xgui4" #define MyAppURL "https://github.com/xgui4/lce-qt-launcher" #define MyAppExeName "main.exe" diff --git a/packages/windows/windows-setup.iss b/packages/windows/windows-setup.iss index 7ddd4aa..08205a1 100644 --- a/packages/windows/windows-setup.iss +++ b/packages/windows/windows-setup.iss @@ -3,7 +3,7 @@ ; Non-commercial use only #define MyAppName "LCE Qt Launcher" -#define MyAppVersion "1.0.0.1" +#define MyAppVersion "1.0.2.0" #define MyAppPublisher "Xgui4" #define MyAppURL "https://github.com/xgui4/lce-qt-launcher" #define MyAppExeName "main.exe" diff --git a/pyproject.toml b/pyproject.toml index 4780554..51dff29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "hatchling.build" [project] name = "LCE-Qt-Launcher" -version = "0.0.1b1" +version = "0.0.2b0" description = "This is a custom Free/Libre Minecraft LCE Launcher written in Python and Qt. (Beta Build)" requires-python = ">3.10, <3.13" license = "GPL-3.0-or-later" @@ -26,6 +26,7 @@ dependencies = [ [project.scripts] lce-qt-launcher = "lce_qt_launcher.main:main" +lce-mod-managers = "lce_qt_launcher.managers.mod_managers:main" [project.urls] Repository = "https://github.com/xgui4/LCE-QT-Launcher" diff --git a/res.qrc b/res.qrc index 58fe35f..24331da 100644 --- a/res.qrc +++ b/res.qrc @@ -30,13 +30,13 @@ data/defaults_instances/default.lce_inst data/defaults_instances/legacy_evolved.lce_inst data/defaults_instances/neoLegacy.lce_inst + data/defaults_instances/hellishends.lce_inst + data/defaults_instances/360Revived.lce_inst + data/defaults_instances/revelation.lce_inst assets/languages/translations.json assets/languages/fr.json assets/languages/en.json - - src/instances.qml - diff --git a/src/form.ui b/src/form.ui index 8519bae..f704eea 100644 --- a/src/form.ui +++ b/src/form.ui @@ -58,7 +58,7 @@ QTabWidget::TabShape::Rounded - 1 + 0 false @@ -429,25 +429,15 @@ :/assets/chest.png:/assets/chest.png - Instances + Instances Lists - + false - - background-color: rgb(0, 0, 0); - - - QQuickWidget::ResizeMode::SizeRootObjectToView - - - - qrc:/ui/instances.qml - - + @@ -462,9 +452,9 @@ - + - + @@ -910,11 +900,6 @@ - - QQuickWidget - QWidget -
QtQuickWidgets/QQuickWidget
-
QWebEngineView QWidget diff --git a/src/instances.qml b/src/instances.qml deleted file mode 100644 index 1037ef2..0000000 --- a/src/instances.qml +++ /dev/null @@ -1,7 +0,0 @@ -import QtQuick 2.0 - -ListView { - Text{ - text : "Test" - } -} \ No newline at end of file diff --git a/src/lce_qt_launcher/__init__.py b/src/lce_qt_launcher/__init__.py index a95898f..2e7ca1e 100644 --- a/src/lce_qt_launcher/__init__.py +++ b/src/lce_qt_launcher/__init__.py @@ -1,7 +1,7 @@ from enum import StrEnum FALLBACK_APP_NAME = "LCE Qt Launcher" -FALLBACK_VERSION_NUMBER = "0.0.1b1" +FALLBACK_VERSION_NUMBER = "0.0.2b1" FALLBACK_LICENSE = "GPLv3" FALLBACK_LICENSE_LINK = "https://www.gnu.org/licenses/gpl-3.0" FALLBACK_GIT_REPO_URL = "https://github.com/xgui4/LCE-QT-Launcher" diff --git a/src/lce_qt_launcher/main.py b/src/lce_qt_launcher/main.py index af2856b..e6548ee 100755 --- a/src/lce_qt_launcher/main.py +++ b/src/lce_qt_launcher/main.py @@ -7,8 +7,8 @@ # nuitka-project: --include-data-dir=data=data # nuitka-project: --include-qt-plugins=sensible # nuitka-project: --windows-console-mode=force -# nuitka-project: --product-version="1.0.0.11" -# nuitka-project: --file-version="1.0.0.11" +# nuitka-project: --product-version="1.0.0.20" +# nuitka-project: --file-version="1.0.0.20" # nuitka-project: --file-description="Custom Free/Libre Minecraft LCE Launcher (Nightly)" # nuitka-projet: --include-distribution-metadata=lce-qt-launcher # nuitka-project: --copyright="Copyleft Xgui4 2026 (GPLv3)" diff --git a/src/lce_qt_launcher/managers/instance_manager.py b/src/lce_qt_launcher/managers/instance_manager.py index 3b91b91..1ccc5f1 100644 --- a/src/lce_qt_launcher/managers/instance_manager.py +++ b/src/lce_qt_launcher/managers/instance_manager.py @@ -20,6 +20,8 @@ import subprocess import json import os +SCHEME_VERSION = "https://raw.githubusercontent.com/xgui4/LCE-Qt-Launcher/refs/heads/beta/schemas/x-application-lce_inst.json" + class InstanceSource(Enum): """_summary_ The 4 Type of Instances (2 functional, the othes coming soon) """ @@ -146,7 +148,6 @@ _DEFAULT_INST_TYPE_STRING = "InstanceType.CLIENT_VANILLA" _DEFAULT_IMAGE = ":/assets/minecraft.png" _DEFAULT_NEWS_FEED = "https://github.com/MCLCE/minecraftconsoles/commits" _DEFAULT_VERSION = "nightly" -_DEFAULT_SERVERS: list[str] = [] class Instance: """_summary_ An config and inform an instance of Minecraft LCE Installed or to install @@ -163,7 +164,6 @@ class Instance: instance_type : InstanceType = _DEFAULT_INST_TYPE, news_feed : str = _DEFAULT_NEWS_FEED, version : str = _DEFAULT_VERSION, - servers : list[str] = _DEFAULT_SERVERS ) -> None: self.name: str = name self.installation_path: str = installation_path @@ -176,7 +176,6 @@ class Instance: self.image : str = image self.news_feed : str = news_feed self.version: str = version - self.servers: list[str] = servers def load_inst_from_dict(self, inst_dict: dict[str, str]) -> None: """_summary_ Load A JSON to a empty Instance Object to import it @@ -195,8 +194,6 @@ class Instance: self.image = inst_dict.get("image", _DEFAULT_IMAGE) self.news_feed = inst_dict.get("news_feed", _DEFAULT_NEWS_FEED) self.version = inst_dict.get("version", _DEFAULT_VERSION) - # self.servers = inst_dict.get("servers", _DEFAULT_SERVERS) - def get_download_url(self) -> str: """_summary_ Get the download URL of a Instance @@ -220,6 +217,23 @@ class Instance: else: raise RuntimeError("Not implemented yet!") + def to_dict(self) -> dict[str, str]: + dict_to_return : dict[str, str ] = { + "$schema" : SCHEME_VERSION, + "name" : self.name, + "installation_path" : self.installation_path, + "username" : self.username, + "exe_name" : self.exe_name, + "archive_file" : self.archive_file, + "repo_url" : self.repo_url, + "instance_source" : self.instance_source.name, + "instance_type" : self.instance_type.name, + "image" : self.image, + "news_feed" : self.news_feed, + "version" : self.version + } + return dict_to_return + def display(self) -> None: print(f"Name : {self.name}") print(f"=============================") @@ -283,14 +297,15 @@ class InstanceManager: Args: save_file (str): _description_ specified save file and location """ + full_save_file = save_file json_string : str = "" try: json_string = json.dumps(vars(self.instance), indent=4,) except: json_string = json.dumps(obj=vars(self.instance), indent=4, default=str) if not save_file.endswith(self._build_info.instance_extension): - save_file: str = save_file + self._build_info.instance_extension - with open(file=save_file, mode='w') as f: + full_save_file: str = save_file + self._build_info.instance_extension + with open(file=full_save_file, mode='w') as f: _ = f.write(json_string) def load_instance(self, save_file : str) -> None: diff --git a/src/lce_qt_launcher/views/instance_view.py b/src/lce_qt_launcher/views/instance_view.py new file mode 100644 index 0000000..b9303db --- /dev/null +++ b/src/lce_qt_launcher/views/instance_view.py @@ -0,0 +1,22 @@ +from PySide6.QtWidgets import QDialog, QHBoxLayout, QWidget +from PySide6.QtWebEngineWidgets import QWebEngineView +from PySide6.QtCore import QUrl + +from lce_qt_launcher.build_info import BuildInfo + +class InstanceView(QDialog): + """_summary_ #TODO docstring + + Args: + QDialog (_type_): _description_ + """ + def __init__(self, parent : QWidget, url : str, build_info : BuildInfo) -> None: + super().__init__() + browser_dialog = QDialog(parent) + webview = QWebEngineView() + webview.load(QUrl(url)) + browser_dialog.setWindowTitle(build_info.app_name) + layout = QHBoxLayout() + layout.addWidget(webview) + browser_dialog.setLayout(layout) + browser_dialog.show() \ No newline at end of file diff --git a/src/lce_qt_launcher/views/launcher.py b/src/lce_qt_launcher/views/launcher.py index 5e9a1e9..2ebf184 100644 --- a/src/lce_qt_launcher/views/launcher.py +++ b/src/lce_qt_launcher/views/launcher.py @@ -264,6 +264,8 @@ class Launcher(QMainWindow): open_github_issues = lambda : webbrowser.open(appContext.buildInfo.git_repo_url + "/issues") _ = self.ui.actionReport_a_Bugs_or_Sugess_a_feature.triggered.connect(open_github_issues) + self.ui.InstancesListTabMasterLayout + self.versionlabel: QLabel = QLabel(f"Version {buildInfo.version}") self.ui.statusbar.addPermanentWidget(self.versionlabel) holyday_label: QLabel = QLabel(holiday.get_holiday()) diff --git a/uv.lock b/uv.lock index 93ed6b8..51b6d36 100644 --- a/uv.lock +++ b/uv.lock @@ -465,7 +465,7 @@ wheels = [ [[package]] name = "lce-qt-launcher" -version = "0.0.1b1" +version = "0.0.2b0" source = { editable = "." } dependencies = [ { name = "hatch" },