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" },