Add multiple languages (i18n) support.
Now you can add a version in profile manage page. Add install java button and dialog.
This commit is contained in:
@@ -116,13 +116,17 @@ class LauncherMainWindow(QMainWindow):
|
||||
"Suggestions are always welcome!")
|
||||
self.icon_label = QLabel()
|
||||
self.icon_label.setObjectName("icon_label")
|
||||
self.dev_info_box = QLabel(content)
|
||||
self.dev_info_box = QLabel(self.app.tr_text(content))
|
||||
self.dev_info_box.setObjectName("dev_info_box")
|
||||
self.dev_info_2 = QLabel(message)
|
||||
self.dev_info_2 = QLabel(self.app.tr_text(message))
|
||||
self.dev_info_2.setObjectName("dev_info_message")
|
||||
self.version_label = QLabel("Current version: {}".format(self.app.launcher_version))
|
||||
self.version_label = QLabel(self.app.tr_text(
|
||||
"Current version: {version}", version=self.app.launcher_version
|
||||
))
|
||||
self.version_label.setObjectName("version_label")
|
||||
self.repo_url_label = QLabel(f"<a href=\"{MAIN_REPO_URL}\">Main repo</a>")
|
||||
self.repo_url_label = QLabel(
|
||||
f'<a href="{MAIN_REPO_URL}">{self.app.tr_text("Main repo")}</a>'
|
||||
)
|
||||
self.repo_url_label.setObjectName("repo_url_label")
|
||||
self.repo_url_label.setOpenExternalLinks(True)
|
||||
|
||||
@@ -130,7 +134,7 @@ class LauncherMainWindow(QMainWindow):
|
||||
image = QPixmap(Path(self.app.resources_dir, "pictures", "in_progress.png"))
|
||||
self.icon_label.setPixmap(image.scaled(300, 300))
|
||||
else:
|
||||
self.icon_label.setText("Ouch. The icon is missing.")
|
||||
self.icon_label.setText(self.app.tr_text("Ouch. The icon is missing."))
|
||||
|
||||
# Dialog
|
||||
self.download_dialog = ProgressDialog(self)
|
||||
@@ -146,12 +150,13 @@ class LauncherMainWindow(QMainWindow):
|
||||
self.home_layout.addWidget(self.repo_url_label, alignment=Qt.AlignmentFlag.AlignHCenter)
|
||||
self.home_layout.addStretch()
|
||||
|
||||
# test page
|
||||
self.test_page = TestPage(
|
||||
app=self.app,
|
||||
parent=self,
|
||||
widget_manager=self.app.widget_manager
|
||||
)
|
||||
if self.app.debug:
|
||||
# test page
|
||||
self.test_page = TestPage(
|
||||
app=self.app,
|
||||
parent=self,
|
||||
widget_manager=self.app.widget_manager
|
||||
)
|
||||
|
||||
self.launch_profile_page = LaunchProfilePage(
|
||||
app=self.app,
|
||||
@@ -172,7 +177,8 @@ class LauncherMainWindow(QMainWindow):
|
||||
|
||||
# Add page
|
||||
self.central.addWidget(self.home_page)
|
||||
self.central.addWidget(self.test_page)
|
||||
if self.app.debug:
|
||||
self.central.addWidget(self.test_page)
|
||||
self.central.addWidget(self.account_page)
|
||||
self.central.addWidget(self.settings_page)
|
||||
self.central.addWidget(self.create_profile_page)
|
||||
@@ -190,18 +196,31 @@ class LauncherMainWindow(QMainWindow):
|
||||
# Toolbar
|
||||
|
||||
# Test Window btn
|
||||
self.open_test_page = self.toolbar.add_button(" Tests", icon=self.app.get_icon(Path(self.app.icon_dir, "debug.png")))
|
||||
self.open_test_page.setObjectName("open_test_page")
|
||||
if self.app.debug:
|
||||
self.open_test_page = self.toolbar.add_button(" Tests")
|
||||
self.app.set_reloadable_toolbutton_icon(
|
||||
self.open_test_page,
|
||||
Path(self.app.icon_dir, "debug.png"),
|
||||
)
|
||||
self.open_test_page.setObjectName("open_test_page")
|
||||
|
||||
# Launch profile btn
|
||||
self.open_launch_profile_page = self.toolbar.add_button(" Launch Profile",
|
||||
icon=self.app.get_icon(Path(self.app.icon_dir, "profile_default.png"), True))
|
||||
|
||||
# Home btn
|
||||
self.home_button = self.toolbar.add_button(" Home", icon=self.app.get_icon(Path(self.app.icon_dir, "home.png")))
|
||||
self.home_button = self.toolbar.add_button(" Home")
|
||||
self.app.set_reloadable_toolbutton_icon(
|
||||
self.home_button,
|
||||
Path(self.app.icon_dir, "home.png"),
|
||||
)
|
||||
|
||||
# Settings btn (will be moved to the bottom of the toolbar)
|
||||
self.open_settings_page = self.toolbar.add_button(" Settings", icon=self.app.get_icon(Path(self.app.icon_dir, "settings.png")))
|
||||
self.open_settings_page = self.toolbar.add_button(" Settings")
|
||||
self.app.set_reloadable_toolbutton_icon(
|
||||
self.open_settings_page,
|
||||
Path(self.app.icon_dir, "settings.png"),
|
||||
)
|
||||
|
||||
# Account btn (will be moved to the bottom (or last one item) of the toolbar
|
||||
self.open_account_page = self.toolbar.add_button(" Accounts", icon=self.app.get_icon(Path(self.app.icon_dir, "head.png"), True))
|
||||
@@ -209,8 +228,11 @@ class LauncherMainWindow(QMainWindow):
|
||||
# current account's avatar
|
||||
|
||||
# Profile btn
|
||||
self.open_create_profile_page = self.toolbar.add_button("Create Profile",
|
||||
icon=self.app.get_icon(Path(self.app.icon_dir, "add.png")))
|
||||
self.open_create_profile_page = self.toolbar.add_button("Create Profile")
|
||||
self.app.set_reloadable_toolbutton_icon(
|
||||
self.open_create_profile_page,
|
||||
Path(self.app.icon_dir, "add.png"),
|
||||
)
|
||||
|
||||
# manage profile
|
||||
self.open_manage_profile_page = self.toolbar.add_button(
|
||||
@@ -220,7 +242,8 @@ class LauncherMainWindow(QMainWindow):
|
||||
|
||||
# Bind tool buttons
|
||||
self.toolbar.addWidget(self.home_button)
|
||||
self.toolbar.addWidget(self.open_test_page)
|
||||
if self.app.debug:
|
||||
self.toolbar.addWidget(self.open_test_page)
|
||||
self.toolbar.addWidget(self.open_create_profile_page)
|
||||
self.toolbar.addWidget(self.open_launch_profile_page)
|
||||
self.toolbar.addWidget(self.open_manage_profile_page)
|
||||
@@ -238,9 +261,10 @@ class LauncherMainWindow(QMainWindow):
|
||||
lambda: self.set_current_page(self.home_page, self.home_button)
|
||||
)
|
||||
|
||||
self.open_test_page.clicked.connect(
|
||||
lambda: self.set_current_page(self.test_page, self.open_test_page)
|
||||
)
|
||||
if self.app.debug:
|
||||
self.open_test_page.clicked.connect(
|
||||
lambda: self.set_current_page(self.test_page, self.open_test_page)
|
||||
)
|
||||
|
||||
self.open_launch_profile_page.clicked.connect(
|
||||
lambda: self.set_current_page(self.launch_profile_page, self.open_launch_profile_page)
|
||||
@@ -266,6 +290,31 @@ class LauncherMainWindow(QMainWindow):
|
||||
self.bind_event()
|
||||
|
||||
self.set_current_page(self.home_page, self.home_button)
|
||||
self.app.i18n.language_changed.connect(self.retranslate_ui)
|
||||
self.retranslate_ui()
|
||||
|
||||
def retranslate_ui(self, *_args):
|
||||
tr = self.app.tr_text
|
||||
self.dev_info_box.setText(tr("Still digging!"))
|
||||
self.dev_info_2.setText(tr(
|
||||
"If you find an issue, you can report it in the main repository. "
|
||||
"Suggestions are always welcome!"
|
||||
))
|
||||
self.version_label.setText(
|
||||
tr("Current version: {version}", version=self.app.launcher_version)
|
||||
)
|
||||
self.repo_url_label.setText(
|
||||
f'<a href="{MAIN_REPO_URL}">{tr("Main repo")}</a>'
|
||||
)
|
||||
self.home_button.setText(" " + tr("Home"))
|
||||
self.open_launch_profile_page.setText(" " + tr("Launch Profile"))
|
||||
self.open_settings_page.setText(" " + tr("Settings"))
|
||||
self.open_account_page.setText(" " + tr("Accounts"))
|
||||
self.open_create_profile_page.setText(" " + tr("Create Profile"))
|
||||
self.open_manage_profile_page.setText(" " + tr("Manage Profiles"))
|
||||
if self.app.debug:
|
||||
self.open_test_page.setText(" " + tr("Tests"))
|
||||
self.toolbar.update_all()
|
||||
|
||||
@Slot(object)
|
||||
def ask_request(self, context: AskForRequest):
|
||||
@@ -309,8 +358,8 @@ class LauncherMainWindow(QMainWindow):
|
||||
@Slot(dict)
|
||||
def show_and_print_error(self, context: dict):
|
||||
error = context.get("error", None)
|
||||
title = context.get("title", "Error")
|
||||
message = context.get("message", "No content")
|
||||
title = context.get("title", self.app.tr_text("Error"))
|
||||
message = context.get("message", self.app.tr_text("No content"))
|
||||
|
||||
if isinstance(error, list):
|
||||
self.app.logger.error("".join(error))
|
||||
@@ -335,15 +384,15 @@ class LauncherMainWindow(QMainWindow):
|
||||
|
||||
@Slot(str)
|
||||
def show_error(self, message):
|
||||
messagebox.error(self, "Error", message=message)
|
||||
messagebox.error(self, self.app.tr_text("Error"), message=message)
|
||||
|
||||
@Slot(str)
|
||||
def show_warning(self, widget):
|
||||
messagebox.warning(self, "Warning", message=widget)
|
||||
messagebox.warning(self, self.app.tr_text("Warning"), message=widget)
|
||||
|
||||
@Slot(str)
|
||||
def show_info(self, widget):
|
||||
messagebox.info(self, "Info", message=widget)
|
||||
messagebox.info(self, self.app.tr_text("Info"), message=widget)
|
||||
|
||||
def set_current_page(self, page: QWidget, related_button: QToolButton):
|
||||
self.central.setCurrentWidget(page)
|
||||
|
||||
Reference in New Issue
Block a user