diff --git a/build/lib/tileos_welcome/__init__.py b/build/lib/tileos_welcome/__init__.py new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/build/lib/tileos_welcome/__init__.py @@ -0,0 +1 @@ + diff --git a/tileos_welcome/resources/label.png b/build/lib/tileos_welcome/data/label.png similarity index 100% rename from tileos_welcome/resources/label.png rename to build/lib/tileos_welcome/data/label.png diff --git a/build/lib/tileos_welcome/data/resources.qrc b/build/lib/tileos_welcome/data/resources.qrc new file mode 100644 index 0000000..eb514c7 --- /dev/null +++ b/build/lib/tileos_welcome/data/resources.qrc @@ -0,0 +1,12 @@ + + + icons/contrib.svg + icons/doc.svg + icons/exit.svg + icons/gparted.svg + icons/install-system.svg + icons/issue.svg + icons/telegram.svg + icons/web.svg + + diff --git a/tileos_welcome/resources/tileos-logo.svg b/build/lib/tileos_welcome/data/tileos-logo.svg similarity index 100% rename from tileos_welcome/resources/tileos-logo.svg rename to build/lib/tileos_welcome/data/tileos-logo.svg diff --git a/tileos_welcome/resources/tileos-welcome.desktop b/build/lib/tileos_welcome/data/tileos-welcome.desktop similarity index 100% rename from tileos_welcome/resources/tileos-welcome.desktop rename to build/lib/tileos_welcome/data/tileos-welcome.desktop diff --git a/build/lib/tileos_welcome/main.py b/build/lib/tileos_welcome/main.py new file mode 100644 index 0000000..926d61d --- /dev/null +++ b/build/lib/tileos_welcome/main.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python3 + +# This file is part of Ubuntu Sway Remix project + +# SPDX-FileCopyrightText: 2022 Aleksey Samoilov +# SPDX-License-Identifier: GPL-3.0-or-later + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os +import signal +import sys +import subprocess +from PyQt6.QtWidgets import (QApplication, QMainWindow) +from PyQt6.QtGui import QPixmap, QIcon +from PyQt6.QtCore import Qt, QDir +from tileos_welcome.ui_mainwindow import Ui_MainWindow + +def get_config_home(): + config_home = os.getenv('XDG_CONFIG_HOME') if os.getenv('XDG_CONFIG_HOME') else os.path.join( + os.getenv("HOME"), ".config/") + return config_home + +dir_name = os.path.dirname(__file__) +config_home = get_config_home() +user = os.getlogin() +desktop_file = os.path.join(dir_name, "data/tileos-welcome.desktop") +autostart_dir = os.path.join(config_home, "autostart/") +icons = os.path.join(dir_name, "data/icons") +autostart_desktop_file = os.path.join(config_home, autostart_dir, "tileos-welcome.desktop") + +class MainWindow(QMainWindow): + def __init__(self): + super(MainWindow, self).__init__() + self.ui = Ui_MainWindow() + self.ui.setupUi(self) + + # Icons for buttons + QDir.addSearchPath("icons", icons) + + # Background + page_label = os.path.join(dir_name, "data/label.png") + page_pixmap = QPixmap(page_label).scaled(600, 300, Qt.AspectRatioMode.KeepAspectRatio) + self.ui.logo.setPixmap(page_pixmap) + self.ui.logo2.setPixmap(page_pixmap) + + # Autostart (copying tileos-welcome.desktop to ~/.config/autostart) + if os.path.isfile(autostart_desktop_file): + self.ui.checkAutostart.setChecked(True) + + # Detect running compositor and adapt Wiki button text to it + if os.getenv("SWAYSOCK"): + self.ui.btnWiki.setText("Sway Wiki") + + # Page 1 + self.ui.btnGprd.clicked.connect(self.on_clicked_partition) + self.ui.btnGprd.setIcon(QIcon("icons:gparted.svg")) + self.ui.btnWebsite.clicked.connect(self.on_clicked_website) + self.ui.btnWebsite.setIcon(QIcon("icons:web.svg")) + self.ui.btnIssue.clicked.connect(self.on_clicked_tracker) + self.ui.btnIssue.setIcon(QIcon("icons:issue.svg")) + self.ui.btnContrib.clicked.connect(self.on_clicked_contribute) + self.ui.btnContrib.setIcon(QIcon("icons:contrib.svg")) + self.ui.btnTelegram.clicked.connect(self.on_clicked_telegram) + self.ui.btnTelegram.setIcon(QIcon("icons:telegram.svg")) + self.ui.btnNext.clicked.connect(self.on_page_switch) + self.ui.btnNext.setIcon(QIcon.fromTheme("go-next")) + self.ui.btnQuit.clicked.connect(self.exitApp) + self.ui.btnQuit.setIcon(QIcon("icons:exit.svg")) + + # Page 2 + self.ui.btnGTK.clicked.connect(self.on_clicked_gtk_theme) + self.ui.btnKvantum.clicked.connect(self.on_clicked_qt_theme) + self.ui.btnDisplay.clicked.connect(self.on_clicked_display_settings) + self.ui.btnInput.clicked.connect(self.on_clicked_input_settings) + self.ui.btnPrev.clicked.connect(self.on_page_switch) + self.ui.btnExit.clicked.connect(self.exitApp) + + def on_clicked_partition(self): + subprocess.run("xhost +si:localuser:root && pkexec /usr/sbin/gparted && xhost -si:localuser:root &", shell=True) + + def on_clicked_website(self): + subprocess.run(["xdg-open", "https://tile-os.com"]) + + # TODO documentation link + + def on_clicked_tracker(self): + subprocess.run(["xdg-open", "https://gitlab.com/tile-os/tileos/-/issues"]) + + def on_clicked_contribute(self): + subprocess.run(["xdg-open", "https://gitlab.com/tile-os"]) + + def on_clicked_telegram(self): + subprocess.run(["xdg-open", "https://t.me/tile_os"]) + + def on_clicked_gtk_theme(self): + subprocess.run("/usr/bin/nwg-look") + + def on_clicked_qt_theme(self): + subprocess.run("/usr/bin/kvantummanager") + + def on_clicked_display_settings(self): + subprocess.run("/usr/bin/nwg-displays") + + # TODO shell selector + + def on_clicked_input_settings(self): + subprocess.run("/usr/bin/sway-input-config") + + # TODO software manager + + def on_page_switch(self): + if self.ui.stackedWidget.currentIndex() == 0: + self.ui.stackedWidget.setCurrentIndex(1) + else: + self.ui.stackedWidget.setCurrentIndex(0) + + def exitApp(self): + self.close() + +def main(): + app = QApplication(["Welcome to TileOS!"]) + app.setDesktopFileName("tileos-welcome") + win = MainWindow() + win.show() + sys.exit(app.exec()) + +if __name__ == "__main__": + signal.signal(signal.SIGINT, signal.SIG_DFL) + main() \ No newline at end of file diff --git a/build/lib/tileos_welcome/resources.py b/build/lib/tileos_welcome/resources.py new file mode 100644 index 0000000..ab08fd5 --- /dev/null +++ b/build/lib/tileos_welcome/resources.py @@ -0,0 +1,1020 @@ +# Resource object code (Python 3) +# Created by: object code +# Created by: The Resource Compiler for Qt version 6.4.2 +# WARNING! All changes made in this file will be lost! + +from PySide6 import QtCore + +qt_resource_data = b"\ +\x00\x00\x07\xac\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221\x22>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x03\x8d\ +(\ +\xb5/\xfd`\xf2\x0a\x1d\x1c\x00\x06q|!0\x8f\xd2\ +\x06[\x9c:{\xd2\xcd>\xbd\xf6\x12\xcfE\xea\xc2\x1a\ +7\x91\xc8\xde\x5c\xc1n\xa56\x07\x05\x0c\x96\x10\x8a\x00\ +k\x00k\x00m\x7fE\xd4\x02\x16b:\xe2Y\xbc\xbd\ +\xeb\xa3\xbd3\x04\x08P(\x93\x07\x07\xb3\x80\x89\x80\xd0\ +\xb40\xcf\xde\xa1\xb6\xd7v\xff\xec\xf2\xbc\x0ej\x9f,\ +\xbd\x14\xea\xfcJ\xb1\x0c\xaa\x0d\xcf\x1ac%0\x8f\x86\ +bn'\x80a\x994\x11\x8a\x09\xe6\xe1@\xc1\xb0T\ +Jb\x89P\x10\x14@\x01\x83\xccCbbR\xa9p\ +\xb0\xb0H &\x0e\x92b\x9e\xccCbi\x98\x5c\x8a\ +q\xdc\xdd\x1d\x10\x15\x13\x96\x17\xbb\x5c.\x0e\x87\x00\x85\ +\xc5\x22a\x1e\x15\x09J\xc4EAXT\x08\x02\xf5;\ +\xbb\xc6\xd1\xbeKgYM\xa1\xb2(<\xe2dd\x8d\ +'\x0fm\xaf5\x9e/\x8f\x85]\xa8\xd0a\xf3\xf0\x90\ +\xd1g\xd98\x9a?\xbdE\x0a\x95\x04\xf5o\xb5\xc4\xa3\ +\xdc\x9cw\xb6\xa5\xc9{l\x87g9\xaf\x09\x8d\xeb\xa0\ +\xd3\xaa\xa5\xc3\x8b\x87}K\x19\xd5\x8bR\x13\xa2WB\ +e@\xea \x85^\xb5X\xdb(\x9d\xf1\x18\xd5\xee\xe4\ +6\x9e]a\xa4\xee\xa8&\xe5\xbco\x84\xd0\xb1\xfa)\ +a\x1b\xfe$\x94\xaa}PgN?\xfbO\xfe\xbe)\ +\x13S\xde.\x0f\xa7=Mi\xbbk\x15\x18\xcc\xe3\xa2\ +q\xa04\x15\x93\x06;\x1d\x17%\x86\xe0\x11!\xc7\xef\ +\x86l|k\x1f!nS~L<\x10H\x1d\xb2|\ +\xad\xe9k\x151#\xdb\x97\xda_\xa9\xdb\xf8uP\xe8\ +^\x95\xb0\xb6Yf\xc6C=K\xb5\xfb\xcc\x1b6\x0e\ +f:m\xdb\x00\x05\x10\x16\x15\x07\x01fB\x8c\xc5\xb8\ +\x09\xb5]^\xb5\x06\x12\xdf\xdd\xdda?7]\xe3\xfc\ +\xc9\xe9\xd62S\xe6;\xff\x94)r-e\x5c\xc4i\ +;\x93]\xa1f\xce3[\x98\xa1\ +E\x96\x0e\xe64\x9dG\xb9\xab{\x85\x96\xb0m\xd5~\ +v\xcb\x9e\x8ct9\xad\xf8\x0c.\x9b\x90\x02\x17B\xcd\ +\x06\x11g\x82\xb5\xecr\xe9\xb1\xad\x0d\x91\xe5\xd7\xde\x1d\ +.tq\xa5\xd4{\x00#3\xde\xb4\xe7\xcf\xf6\x03\x14\ +\x14\xa9\xa1\xfb\x0cK\x0c=\x9b\x98xe\x01-\x06(\ +\x22\xd3\xe3\x83f\xc3\x84\xe9\x89M\x9a=[\xcb\xcf\x83\ +\xf4v\xbf\x80\xb30\xcf\xa6o\x8d:\xeb~>\xbc1\ + #\xeb\xc9\xb2\xc6S\xe6:\x0d7\x90\x94\xc3\x9a\x1f\ +s\xac\xaa\x82[\x99\x88\x88\xca\xf57\xaa\xe0Hx\xb3\ +\x89\xfe\x1b\xa6\x85% W\xfeD\xb79F\xba\x87\x8e\ +\x1bZ\x8d;!\x92\xb5\x17\xa0\x93k\xe6\xb4\x82D\x88\ +\xfa\x99\xe7\x82&\xa4g[\x83\xd8\xa7A\xd7\xda\xca5\ +\xfd\x90\xaflY\xdd\xcb\xddsgWu\x85\xd8:#\ +\x06\x8f\xb6S\xe7\xed\x06\xe2:\xa4\xcd\xeb\x0d\x9d\xc2\x8d\ +/\x8e\x0c\x8c5t\xfd\x95\xbf\xf2\xa1\x7f\ +\x00\x00\x09z\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221\x22>\x0a \ +\x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x02\xd4\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221\x22>\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a <\ +/g>\x0a \x0a\x0a\ +\x00\x00\x0c\xdc\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221.1\x22>\x0a \x0a \x0a \x0a\ + \x0a \x0a \ +\ +\x0a \x0a\x0a\ +\x00\x00\x02p\ +(\ +\xb5/\xfd`,\x075\x13\x00\xf6]U\x1e0s\x1b\ +?\xf5\xce\xb8Q\xd5\xd87u\x9a\x9er\xe6!\x22J\ +\xca\xcc,W\xc4\x9b\x16\x06Y\x08\x03Y\x00J\x00F\ +\x00m\x0a\x14*\x95jB]\x91L\xe4i\x1d\xcb\x93\ +\xac\x93,\xc2n\xdd\x82\xe7\xaa\xa4H\x06\xc3\x10S\xc5\ +si\xf2\x92&\xeb\x90\x80\x04ce\x86\xb8`*\x8d\ +5m.\x8aRMT\xb2v\x86\xa0.I\xc5I\x16\ +\xednG\x14\x0b\xa3\xceQ\x0e\x87\x13E\x85\xccuQ\ +\x0c\xa1\xb9T,\x9d\xa4l4\x87\xac,\xe8T\xd6\x15\ +\xb1X\x98\x89\xe6\x12\xb1\xaed\x0c\xf9\x5c\xe4#\xa1\xeb\ +U\x97Q_;F\xb36B\xb66\xe8_t\xa8L\ +H\xe8\xda\xb5\xa1M)_\x1f\xe7&[\x9d?\xa8\x0e\ +\xbd^\xc7\xfa\x9d\x8b\xfc\xa7\xceIeC\xdf\xac1-\ +\x0c!I\x16\xce\x06\xe8\xfb\x93\x88\xd4 \x09\xfd\xbdo\ +\xba\x0e\xb5\xe6\x7fM\x9d\xb3?\xaeCm\x0e9\xceF\ +6n\x7f\xae\x0dr\xef\x17\xea\x7f\xb1\xad~\xb6\xfe\x06\ +a\xeb\xfd\xa8\xcb\x83\xe8\x1cw\x1f??\xc8\xadM\x80\ +\x1a\xbb\xde\xe6t\xa1\x17\x9d\x83\x1e\x80\x04e\xa3\x89\x0e\ +\x8d\xecv\xf7<\xa1v\xbb\xbf\xb6x\x8d\x8e\x91\xd5A\ +\xc8\xad\x1fT\xcfo\x03\xf3\xff\xe4\xd5z\x95\xa6\x8ad\ +U\xd2'\x1dB\xe7\xdewrs\xeeW\xbd\xf7\xb5S\ +\x91\xde\xf9\xfa\x9d\x0ew\x8e[\x99y\xd9-\xc7\xd7\x5c\ +\xb7{\xa01Y\x86F&\x8c\x82\x94$\xa5t\x80D\ +h\xaal\x1b,$`\x98\x02W\xa2\xd1\xcdA\x0a \ +\x0a \x0a \x0a\ + \ +\x0a \x0a\x0a\ +\x00\x00\x0d\x0b\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221.1\x22>\x0a \x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +" + +qt_resource_name = b"\ +\x00\x05\ +\x00o\xa6S\ +\x00i\ +\x00c\x00o\x00n\x00s\ +\x00\x04\ +\x00\x06\xcf\x04\ +\x00e\ +\x00x\x00i\x00t\ +\x00\x07\ +\x0eh\x9at\ +\x00g\ +\x00p\x00a\x00r\x00t\x00e\x00d\ +\x00\x03\ +\x00\x00kS\ +\x00d\ +\x00o\x00c\ +\x00\x05\ +\x00p\xaa\xb5\ +\x00i\ +\x00s\x00s\x00u\x00e\ +\x00\x03\ +\x00\x00}\xb2\ +\x00w\ +\x00e\x00b\ +\x00\x07\ +\x00Z\xa8\xcc\ +\x00i\ +\x00n\x00s\x00t\x00a\x00l\x00l\ +\x00\x08\ +\x0c+\xe7=\ +\x00t\ +\x00e\x00l\x00e\x00g\x00r\x00a\x00m\ +\x00\x07\ +\x0ae\xb82\ +\x00c\ +\x00o\x00n\x00t\x00r\x00i\x00b\ +" + +qt_resource_struct = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x002\x00\x00\x00\x00\x00\x01\x00\x00\x0bA\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x17\x97\ +\x00\x00\x01\x94\xb3\xfa\xb5^\ +\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00Z\x00\x04\x00\x00\x00\x01\x00\x00$w\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00>\x00\x00\x00\x00\x00\x01\x00\x00\x14\xbf\ +\x00\x00\x01\x94\xb3\xfa\xb5^\ +\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00,\xba\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00n\x00\x00\x00\x00\x00\x01\x00\x00&\xeb\ +\x00\x00\x01\x94\xb3\xfa\xb5^\ +\x00\x00\x00\x1e\x00\x04\x00\x00\x00\x01\x00\x00\x07\xb0\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/build/lib/tileos_welcome/ui/mainwindow.ui b/build/lib/tileos_welcome/ui/mainwindow.ui new file mode 100644 index 0000000..d226882 --- /dev/null +++ b/build/lib/tileos_welcome/ui/mainwindow.ui @@ -0,0 +1,303 @@ + + + MainWindow + + + + 0 + 0 + 664 + 473 + + + + + 0 + 0 + + + + + 664 + 473 + + + + + 664 + 473 + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Want to learn more about the project? Please find the links below! + + + Qt::AlignCenter + + + + + + + + + Install TileOS + + + + + + + Disk partitioning + + + + + + + Website + + + + + + + Documentation + + + + + + + Issue Tracker + + + + + + + Contribute + + + + + + + + + + + + + + Telegram Chat + + + + + + + Quit + + + + + + + Next + + + + + + + + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Advanced options + + + Qt::AlignCenter + + + + + + + + + Install Software + + + + + + + Previous + + + + + + + Change Qt theme + + + + + + + Display Settings + + + + + + + Change GTK Theme + + + + + + + Change Shell + + + + + + + Quit + + + + + + + Input Settings + + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Autostart + + + + + + + + + + btnInstall + btnGprd + btnWebsite + btnDoc + btnIssue + btnContrib + btnWiki + btnTelegram + btnQuit + btnNext + btnGTK + btnKvantum + btnDisplay + btnShell + btnInput + btnSoftware + btnPrev + btnExit + checkAutostart + + + + diff --git a/build/lib/tileos_welcome/ui/warning.ui b/build/lib/tileos_welcome/ui/warning.ui new file mode 100644 index 0000000..9e0da20 --- /dev/null +++ b/build/lib/tileos_welcome/ui/warning.ui @@ -0,0 +1,73 @@ + + + WarningMessage + + + + 0 + 0 + 640 + 100 + + + + + 0 + 0 + + + + + 640 + 100 + + + + + 640 + 100 + + + + + + + + + + Your system is already installed! If you wish to reinstall it, boot from the installation media. + + + true + + + + + + + QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + WarningMessage + accept() + + + 319 + 78 + + + 319 + 49 + + + + + diff --git a/build/lib/tileos_welcome/ui_mainwindow.py b/build/lib/tileos_welcome/ui_mainwindow.py new file mode 100644 index 0000000..2122f30 --- /dev/null +++ b/build/lib/tileos_welcome/ui_mainwindow.py @@ -0,0 +1,181 @@ +# Form implementation generated from reading ui file 'tileos_welcome/ui/mainwindow.ui' +# +# Created by: PyQt6 UI code generator 6.4.2 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(664, 473) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) + MainWindow.setSizePolicy(sizePolicy) + MainWindow.setMinimumSize(QtCore.QSize(664, 473)) + MainWindow.setMaximumSize(QtCore.QSize(664, 473)) + MainWindow.setWindowTitle("") + self.centralwidget = QtWidgets.QWidget(parent=MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout.setObjectName("verticalLayout") + self.stackedWidget = QtWidgets.QStackedWidget(parent=self.centralwidget) + self.stackedWidget.setObjectName("stackedWidget") + self.page = QtWidgets.QWidget() + self.page.setObjectName("page") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.page) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.logo = QtWidgets.QLabel(parent=self.page) + self.logo.setText("") + self.logo.setObjectName("logo") + self.verticalLayout_2.addWidget(self.logo) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding) + self.verticalLayout_2.addItem(spacerItem) + self.desc = QtWidgets.QLabel(parent=self.page) + self.desc.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) + self.desc.setObjectName("desc") + self.verticalLayout_2.addWidget(self.desc) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.btnInstall = QtWidgets.QPushButton(parent=self.page) + self.btnInstall.setObjectName("btnInstall") + self.gridLayout.addWidget(self.btnInstall, 0, 0, 1, 2) + self.btnGprd = QtWidgets.QPushButton(parent=self.page) + self.btnGprd.setObjectName("btnGprd") + self.gridLayout.addWidget(self.btnGprd, 0, 2, 1, 2) + self.btnWebsite = QtWidgets.QPushButton(parent=self.page) + self.btnWebsite.setObjectName("btnWebsite") + self.gridLayout.addWidget(self.btnWebsite, 1, 0, 1, 1) + self.btnDoc = QtWidgets.QPushButton(parent=self.page) + self.btnDoc.setObjectName("btnDoc") + self.gridLayout.addWidget(self.btnDoc, 1, 1, 1, 1) + self.btnIssue = QtWidgets.QPushButton(parent=self.page) + self.btnIssue.setObjectName("btnIssue") + self.gridLayout.addWidget(self.btnIssue, 1, 2, 1, 1) + self.btnContrib = QtWidgets.QPushButton(parent=self.page) + self.btnContrib.setObjectName("btnContrib") + self.gridLayout.addWidget(self.btnContrib, 1, 3, 1, 1) + self.btnWiki = QtWidgets.QPushButton(parent=self.page) + self.btnWiki.setText("") + self.btnWiki.setObjectName("btnWiki") + self.gridLayout.addWidget(self.btnWiki, 2, 0, 1, 1) + self.btnTelegram = QtWidgets.QPushButton(parent=self.page) + self.btnTelegram.setObjectName("btnTelegram") + self.gridLayout.addWidget(self.btnTelegram, 2, 1, 1, 1) + self.btnQuit = QtWidgets.QPushButton(parent=self.page) + self.btnQuit.setObjectName("btnQuit") + self.gridLayout.addWidget(self.btnQuit, 2, 2, 1, 1) + self.btnNext = QtWidgets.QPushButton(parent=self.page) + self.btnNext.setObjectName("btnNext") + self.gridLayout.addWidget(self.btnNext, 2, 3, 1, 1) + self.verticalLayout_2.addLayout(self.gridLayout) + self.verticalLayout_3.addLayout(self.verticalLayout_2) + self.stackedWidget.addWidget(self.page) + self.page_2 = QtWidgets.QWidget() + self.page_2.setObjectName("page_2") + self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.page_2) + self.verticalLayout_5.setObjectName("verticalLayout_5") + self.verticalLayout_4 = QtWidgets.QVBoxLayout() + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.logo2 = QtWidgets.QLabel(parent=self.page_2) + self.logo2.setText("") + self.logo2.setObjectName("logo2") + self.verticalLayout_4.addWidget(self.logo2) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding) + self.verticalLayout_4.addItem(spacerItem1) + self.desc2 = QtWidgets.QLabel(parent=self.page_2) + self.desc2.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) + self.desc2.setObjectName("desc2") + self.verticalLayout_4.addWidget(self.desc2) + self.gridLayout_2 = QtWidgets.QGridLayout() + self.gridLayout_2.setObjectName("gridLayout_2") + self.btnSoftware = QtWidgets.QPushButton(parent=self.page_2) + self.btnSoftware.setObjectName("btnSoftware") + self.gridLayout_2.addWidget(self.btnSoftware, 1, 2, 1, 1) + self.btnPrev = QtWidgets.QPushButton(parent=self.page_2) + self.btnPrev.setObjectName("btnPrev") + self.gridLayout_2.addWidget(self.btnPrev, 2, 0, 1, 1) + self.btnKvantum = QtWidgets.QPushButton(parent=self.page_2) + self.btnKvantum.setObjectName("btnKvantum") + self.gridLayout_2.addWidget(self.btnKvantum, 0, 1, 1, 1) + self.btnDisplay = QtWidgets.QPushButton(parent=self.page_2) + self.btnDisplay.setObjectName("btnDisplay") + self.gridLayout_2.addWidget(self.btnDisplay, 0, 2, 1, 1) + self.btnGTK = QtWidgets.QPushButton(parent=self.page_2) + self.btnGTK.setObjectName("btnGTK") + self.gridLayout_2.addWidget(self.btnGTK, 0, 0, 1, 1) + self.btnShell = QtWidgets.QPushButton(parent=self.page_2) + self.btnShell.setObjectName("btnShell") + self.gridLayout_2.addWidget(self.btnShell, 1, 0, 1, 1) + self.btnExit = QtWidgets.QPushButton(parent=self.page_2) + self.btnExit.setObjectName("btnExit") + self.gridLayout_2.addWidget(self.btnExit, 2, 2, 1, 1) + self.btnInput = QtWidgets.QPushButton(parent=self.page_2) + self.btnInput.setObjectName("btnInput") + self.gridLayout_2.addWidget(self.btnInput, 1, 1, 1, 1) + self.verticalLayout_4.addLayout(self.gridLayout_2) + self.verticalLayout_5.addLayout(self.verticalLayout_4) + self.stackedWidget.addWidget(self.page_2) + self.verticalLayout.addWidget(self.stackedWidget) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout.addItem(spacerItem2) + self.checkAutostart = QtWidgets.QCheckBox(parent=self.centralwidget) + self.checkAutostart.setObjectName("checkAutostart") + self.horizontalLayout.addWidget(self.checkAutostart) + self.verticalLayout.addLayout(self.horizontalLayout) + MainWindow.setCentralWidget(self.centralwidget) + + self.retranslateUi(MainWindow) + self.stackedWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + MainWindow.setTabOrder(self.btnInstall, self.btnGprd) + MainWindow.setTabOrder(self.btnGprd, self.btnWebsite) + MainWindow.setTabOrder(self.btnWebsite, self.btnDoc) + MainWindow.setTabOrder(self.btnDoc, self.btnIssue) + MainWindow.setTabOrder(self.btnIssue, self.btnContrib) + MainWindow.setTabOrder(self.btnContrib, self.btnWiki) + MainWindow.setTabOrder(self.btnWiki, self.btnTelegram) + MainWindow.setTabOrder(self.btnTelegram, self.btnQuit) + MainWindow.setTabOrder(self.btnQuit, self.btnNext) + MainWindow.setTabOrder(self.btnNext, self.btnGTK) + MainWindow.setTabOrder(self.btnGTK, self.btnKvantum) + MainWindow.setTabOrder(self.btnKvantum, self.btnDisplay) + MainWindow.setTabOrder(self.btnDisplay, self.btnShell) + MainWindow.setTabOrder(self.btnShell, self.btnInput) + MainWindow.setTabOrder(self.btnInput, self.btnSoftware) + MainWindow.setTabOrder(self.btnSoftware, self.btnPrev) + MainWindow.setTabOrder(self.btnPrev, self.btnExit) + MainWindow.setTabOrder(self.btnExit, self.checkAutostart) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + self.desc.setText(_translate("MainWindow", "Want to learn more about the project? Please find the links below!")) + self.btnInstall.setText(_translate("MainWindow", "Install TileOS")) + self.btnGprd.setText(_translate("MainWindow", "Disk partitioning")) + self.btnWebsite.setText(_translate("MainWindow", "Website")) + self.btnDoc.setText(_translate("MainWindow", "Documentation")) + self.btnIssue.setText(_translate("MainWindow", "Issue Tracker")) + self.btnContrib.setText(_translate("MainWindow", "Contribute")) + self.btnTelegram.setText(_translate("MainWindow", "Telegram Chat")) + self.btnQuit.setText(_translate("MainWindow", "Quit")) + self.btnNext.setText(_translate("MainWindow", "Next")) + self.desc2.setText(_translate("MainWindow", "Advanced options")) + self.btnSoftware.setText(_translate("MainWindow", "Install Software")) + self.btnPrev.setText(_translate("MainWindow", "Previous")) + self.btnKvantum.setText(_translate("MainWindow", "Change Qt theme")) + self.btnDisplay.setText(_translate("MainWindow", "Display Settings")) + self.btnGTK.setText(_translate("MainWindow", "Change GTK Theme")) + self.btnShell.setText(_translate("MainWindow", "Change Shell")) + self.btnExit.setText(_translate("MainWindow", "Quit")) + self.btnInput.setText(_translate("MainWindow", "Input Settings")) + self.checkAutostart.setText(_translate("MainWindow", "Autostart")) diff --git a/build/lib/tileos_welcome/ui_warning.py b/build/lib/tileos_welcome/ui_warning.py new file mode 100644 index 0000000..8dc66cd --- /dev/null +++ b/build/lib/tileos_welcome/ui_warning.py @@ -0,0 +1,41 @@ +# Form implementation generated from reading ui file 'tileos_welcome/ui/warning.ui' +# +# Created by: PyQt6 UI code generator 6.4.2 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_WarningMessage(object): + def setupUi(self, WarningMessage): + WarningMessage.setObjectName("WarningMessage") + WarningMessage.resize(640, 100) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(WarningMessage.sizePolicy().hasHeightForWidth()) + WarningMessage.setSizePolicy(sizePolicy) + WarningMessage.setMinimumSize(QtCore.QSize(640, 100)) + WarningMessage.setMaximumSize(QtCore.QSize(640, 100)) + WarningMessage.setWindowTitle("") + self.verticalLayout = QtWidgets.QVBoxLayout(WarningMessage) + self.verticalLayout.setObjectName("verticalLayout") + self.label = QtWidgets.QLabel(parent=WarningMessage) + self.label.setWordWrap(True) + self.label.setObjectName("label") + self.verticalLayout.addWidget(self.label) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=WarningMessage) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Ok) + self.buttonBox.setObjectName("buttonBox") + self.verticalLayout.addWidget(self.buttonBox) + + self.retranslateUi(WarningMessage) + self.buttonBox.accepted.connect(WarningMessage.accept) # type: ignore + QtCore.QMetaObject.connectSlotsByName(WarningMessage) + + def retranslateUi(self, WarningMessage): + _translate = QtCore.QCoreApplication.translate + self.label.setText(_translate("WarningMessage", "Your system is already installed! If you wish to reinstall it, boot from the installation media.")) diff --git a/dist/tileos_welcome-0.9.0-py3.11.egg b/dist/tileos_welcome-0.9.0-py3.11.egg index 22db2c0..3a73867 100644 Binary files a/dist/tileos_welcome-0.9.0-py3.11.egg and b/dist/tileos_welcome-0.9.0-py3.11.egg differ diff --git a/setup.py b/setup.py index 65d79a0..129ea8c 100644 --- a/setup.py +++ b/setup.py @@ -11,10 +11,10 @@ setup( url='https://gitlab.com/tile-os/tileos-welcome', packages=find_packages(), include_package_data=True, - package_data={"": ["resources/*", "ui/*"]}, + package_data={"": ["data/*", "ui/*"]}, data_files=[ - ('share/applications', ['tileos_welcome/resources/tileos-welcome.desktop']), - ('share/icons/hicolor/scalable/apps', ['tileos_welcome/resources/tileos-logo.svg']), + ('share/applications', ['tileos_welcome/data/tileos-welcome.desktop']), + ('share/icons/hicolor/scalable/apps', ['tileos_welcome/data/tileos-logo.svg']), ], install_requires=[], entry_points={ diff --git a/tileos_welcome.egg-info/PKG-INFO b/tileos_welcome.egg-info/PKG-INFO new file mode 100644 index 0000000..897500d --- /dev/null +++ b/tileos_welcome.egg-info/PKG-INFO @@ -0,0 +1,9 @@ +Metadata-Version: 2.1 +Name: tileos-welcome +Version: 0.9.0 +Summary: welcome app for TileOS +Home-page: https://gitlab.com/tile-os/tileos-welcome +Author: Aleksey Samoilov +Author-email: samoilov.lex@gmail.com +License: GPL-3 +License-File: LICENSE diff --git a/tileos_welcome.egg-info/SOURCES.txt b/tileos_welcome.egg-info/SOURCES.txt new file mode 100644 index 0000000..a597970 --- /dev/null +++ b/tileos_welcome.egg-info/SOURCES.txt @@ -0,0 +1,18 @@ +LICENSE +setup.py +tileos_welcome/__init__.py +tileos_welcome/main.py +tileos_welcome/resources.py +tileos_welcome/ui_mainwindow.py +tileos_welcome/ui_warning.py +tileos_welcome.egg-info/PKG-INFO +tileos_welcome.egg-info/SOURCES.txt +tileos_welcome.egg-info/dependency_links.txt +tileos_welcome.egg-info/entry_points.txt +tileos_welcome.egg-info/top_level.txt +tileos_welcome/data/label.png +tileos_welcome/data/resources.qrc +tileos_welcome/data/tileos-logo.svg +tileos_welcome/data/tileos-welcome.desktop +tileos_welcome/ui/mainwindow.ui +tileos_welcome/ui/warning.ui \ No newline at end of file diff --git a/tileos_welcome.egg-info/dependency_links.txt b/tileos_welcome.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tileos_welcome.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/tileos_welcome.egg-info/entry_points.txt b/tileos_welcome.egg-info/entry_points.txt new file mode 100644 index 0000000..f897636 --- /dev/null +++ b/tileos_welcome.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[gui_scripts] +tileos-welcome = tileos_welcome.main:main diff --git a/tileos_welcome.egg-info/top_level.txt b/tileos_welcome.egg-info/top_level.txt new file mode 100644 index 0000000..b5ab073 --- /dev/null +++ b/tileos_welcome.egg-info/top_level.txt @@ -0,0 +1 @@ +tileos_welcome diff --git a/tileos_welcome/resources/icons/contrib.svg b/tileos_welcome/data/icons/contrib.svg similarity index 100% rename from tileos_welcome/resources/icons/contrib.svg rename to tileos_welcome/data/icons/contrib.svg diff --git a/tileos_welcome/data/icons/display.svg b/tileos_welcome/data/icons/display.svg new file mode 100644 index 0000000..b05459e --- /dev/null +++ b/tileos_welcome/data/icons/display.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tileos_welcome/resources/icons/doc.svg b/tileos_welcome/data/icons/doc.svg similarity index 100% rename from tileos_welcome/resources/icons/doc.svg rename to tileos_welcome/data/icons/doc.svg diff --git a/tileos_welcome/resources/icons/exit.svg b/tileos_welcome/data/icons/exit.svg similarity index 100% rename from tileos_welcome/resources/icons/exit.svg rename to tileos_welcome/data/icons/exit.svg diff --git a/tileos_welcome/resources/icons/gparted.svg b/tileos_welcome/data/icons/gparted.svg similarity index 100% rename from tileos_welcome/resources/icons/gparted.svg rename to tileos_welcome/data/icons/gparted.svg diff --git a/tileos_welcome/data/icons/gtk-theme.svg b/tileos_welcome/data/icons/gtk-theme.svg new file mode 100644 index 0000000..9e00ea7 --- /dev/null +++ b/tileos_welcome/data/icons/gtk-theme.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tileos_welcome/data/icons/input.svg b/tileos_welcome/data/icons/input.svg new file mode 100644 index 0000000..127bd2a --- /dev/null +++ b/tileos_welcome/data/icons/input.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tileos_welcome/resources/icons/install-system.svg b/tileos_welcome/data/icons/install-system.svg similarity index 100% rename from tileos_welcome/resources/icons/install-system.svg rename to tileos_welcome/data/icons/install-system.svg diff --git a/tileos_welcome/resources/icons/issue.svg b/tileos_welcome/data/icons/issue.svg similarity index 100% rename from tileos_welcome/resources/icons/issue.svg rename to tileos_welcome/data/icons/issue.svg diff --git a/tileos_welcome/data/icons/shell.svg b/tileos_welcome/data/icons/shell.svg new file mode 100644 index 0000000..e90824c --- /dev/null +++ b/tileos_welcome/data/icons/shell.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tileos_welcome/data/icons/software.svg b/tileos_welcome/data/icons/software.svg new file mode 100644 index 0000000..e8aa03d --- /dev/null +++ b/tileos_welcome/data/icons/software.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tileos_welcome/data/icons/sway.png b/tileos_welcome/data/icons/sway.png new file mode 100644 index 0000000..a977650 Binary files /dev/null and b/tileos_welcome/data/icons/sway.png differ diff --git a/tileos_welcome/resources/icons/telegram.svg b/tileos_welcome/data/icons/telegram.svg similarity index 100% rename from tileos_welcome/resources/icons/telegram.svg rename to tileos_welcome/data/icons/telegram.svg diff --git a/tileos_welcome/data/icons/theme.svg b/tileos_welcome/data/icons/theme.svg new file mode 100644 index 0000000..d56a846 --- /dev/null +++ b/tileos_welcome/data/icons/theme.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/tileos_welcome/resources/icons/web.svg b/tileos_welcome/data/icons/web.svg similarity index 100% rename from tileos_welcome/resources/icons/web.svg rename to tileos_welcome/data/icons/web.svg diff --git a/tileos_welcome/data/label.png b/tileos_welcome/data/label.png new file mode 100644 index 0000000..812d8f7 Binary files /dev/null and b/tileos_welcome/data/label.png differ diff --git a/tileos_welcome/data/resources.qrc b/tileos_welcome/data/resources.qrc new file mode 100644 index 0000000..eb514c7 --- /dev/null +++ b/tileos_welcome/data/resources.qrc @@ -0,0 +1,12 @@ + + + icons/contrib.svg + icons/doc.svg + icons/exit.svg + icons/gparted.svg + icons/install-system.svg + icons/issue.svg + icons/telegram.svg + icons/web.svg + + diff --git a/tileos_welcome/data/tileos-logo.svg b/tileos_welcome/data/tileos-logo.svg new file mode 100644 index 0000000..6f2bb3e --- /dev/null +++ b/tileos_welcome/data/tileos-logo.svg @@ -0,0 +1 @@ +TileOS \ No newline at end of file diff --git a/tileos_welcome/data/tileos-welcome.desktop b/tileos_welcome/data/tileos-welcome.desktop new file mode 100644 index 0000000..293e4a6 --- /dev/null +++ b/tileos_welcome/data/tileos-welcome.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=TileOS Welcome +Exec=/usr/bin/tileos-welcome +Icon=tileos-logo.svg +Type=Application +Terminal=false +Categories=Settings; diff --git a/tileos_welcome/main.py b/tileos_welcome/main.py index bc52525..01985c7 100644 --- a/tileos_welcome/main.py +++ b/tileos_welcome/main.py @@ -22,10 +22,12 @@ import os import signal import sys import subprocess -from PyQt6.QtWidgets import (QApplication, QMainWindow) -from PyQt6.QtGui import QPixmap -from PyQt6.QtCore import Qt +from pathlib import Path +from PyQt6.QtWidgets import (QApplication, QMainWindow, QDialog) +from PyQt6.QtGui import QPixmap, QIcon +from PyQt6.QtCore import Qt, QDir from tileos_welcome.ui_mainwindow import Ui_MainWindow +from tileos_welcome.ui_warning import Ui_WarningMessage def get_config_home(): config_home = os.getenv('XDG_CONFIG_HOME') if os.getenv('XDG_CONFIG_HOME') else os.path.join( @@ -35,8 +37,9 @@ def get_config_home(): dir_name = os.path.dirname(__file__) config_home = get_config_home() user = os.getlogin() -desktop_file = os.path.join(dir_name, "resources/tileos-welcome.desktop") +desktop_file = os.path.join(dir_name, "data/tileos-welcome.desktop") autostart_dir = os.path.join(config_home, "autostart/") +icons = os.path.join(dir_name, "data/icons") autostart_desktop_file = os.path.join(config_home, autostart_dir, "tileos-welcome.desktop") class MainWindow(QMainWindow): @@ -45,8 +48,11 @@ class MainWindow(QMainWindow): self.ui = Ui_MainWindow() self.ui.setupUi(self) + # Icons for buttons + QDir.addSearchPath("icons", icons) + # Background - page_label = os.path.join(dir_name, "resources/label.png") + page_label = os.path.join(dir_name, "data/label.png") page_pixmap = QPixmap(page_label).scaled(600, 300, Qt.AspectRatioMode.KeepAspectRatio) self.ui.logo.setPixmap(page_pixmap) self.ui.logo2.setPixmap(page_pixmap) @@ -58,36 +64,67 @@ class MainWindow(QMainWindow): # Detect running compositor and adapt Wiki button text to it if os.getenv("SWAYSOCK"): self.ui.btnWiki.setText("Sway Wiki") + self.ui.btnWiki.setIcon(QIcon("icons:sway.png")) # Page 1 + self.ui.btnInstall.clicked.connect(self.on_clicked_install) + self.ui.btnInstall.setIcon(QIcon("icons:install-system.svg")) self.ui.btnGprd.clicked.connect(self.on_clicked_partition) + self.ui.btnGprd.setIcon(QIcon("icons:gparted.svg")) + self.ui.btnWebsite.clicked.connect(self.on_clicked_website) + self.ui.btnWebsite.setIcon(QIcon("icons:web.svg")) + self.ui.btnIssue.clicked.connect(self.on_clicked_tracker) + self.ui.btnIssue.setIcon(QIcon("icons:issue.svg")) + self.ui.btnContrib.clicked.connect(self.on_clicked_contribute) + self.ui.btnContrib.setIcon(QIcon("icons:contrib.svg")) + self.ui.btnTelegram.clicked.connect(self.on_clicked_telegram) + self.ui.btnTelegram.setIcon(QIcon("icons:telegram.svg")) self.ui.btnNext.clicked.connect(self.on_page_switch) + self.ui.btnNext.setIcon(QIcon.fromTheme("go-next")) self.ui.btnQuit.clicked.connect(self.exitApp) + self.ui.btnQuit.setIcon(QIcon("icons:exit.svg")) # Page 2 self.ui.btnGTK.clicked.connect(self.on_clicked_gtk_theme) + self.ui.btnGTK.setIcon(QIcon("icons:gtk-theme.svg")) self.ui.btnKvantum.clicked.connect(self.on_clicked_qt_theme) + self.ui.btnKvantum.setIcon(QIcon("icons:theme.svg")) self.ui.btnDisplay.clicked.connect(self.on_clicked_display_settings) + self.ui.btnDisplay.setIcon(QIcon("icons:display.svg")) + self.ui.btnShell.setIcon(QIcon("icons:shell.svg")) self.ui.btnInput.clicked.connect(self.on_clicked_input_settings) + self.ui.btnInput.setIcon(QIcon("icons:input.svg")) + self.ui.btnSoftware.setIcon(QIcon("icons:software.svg")) self.ui.btnPrev.clicked.connect(self.on_page_switch) + self.ui.btnPrev.setIcon(QIcon.fromTheme("go-previous")) self.ui.btnExit.clicked.connect(self.exitApp) + self.ui.btnExit.setIcon(QIcon("icons:exit.svg")) + + def on_clicked_install(self): + self.msg = WarningMessage() + self.msg.setWindowTitle("Warning!") + self.msg.setModal(True) + if Path(f'{"/usr/bin/calamares"}').is_file() and user == "tileos": + subprocess.run("/usr/bin/install-tileos") + else: + self.msg.show() def on_clicked_partition(self): subprocess.run("xhost +si:localuser:root && pkexec /usr/sbin/gparted && xhost -si:localuser:root &", shell=True) def on_clicked_website(self): - subprocess.run("xdg-open", "https://tile-os.com") + subprocess.run(["xdg-open", "https://tile-os.com"]) # TODO documentation link def on_clicked_tracker(self): - subprocess.run("xdg-open", "https://gitlab.com/tile-os/tileos/-/issues") + subprocess.run(["xdg-open", "https://gitlab.com/tile-os/tileos/-/issues"]) def on_clicked_contribute(self): - subprocess.run("xdg-open", "https://gitlab.com/tile-os") + subprocess.run(["xdg-open", "https://gitlab.com/tile-os"]) def on_clicked_telegram(self): - subprocess.run("xdg-open", "https://t.me/tile_os") + subprocess.run(["xdg-open", "https://t.me/tile_os"]) def on_clicked_gtk_theme(self): subprocess.run("/usr/bin/nwg-look") @@ -114,6 +151,13 @@ class MainWindow(QMainWindow): def exitApp(self): self.close() + +class WarningMessage(QDialog): + def __init__(self): + super().__init__() + self.warningDialog = Ui_WarningMessage() + self.warningDialog.setupUi(self) + def main(): app = QApplication(["Welcome to TileOS!"]) app.setDesktopFileName("tileos-welcome") diff --git a/tileos_welcome/resources.py b/tileos_welcome/resources.py new file mode 100644 index 0000000..ab08fd5 --- /dev/null +++ b/tileos_welcome/resources.py @@ -0,0 +1,1020 @@ +# Resource object code (Python 3) +# Created by: object code +# Created by: The Resource Compiler for Qt version 6.4.2 +# WARNING! All changes made in this file will be lost! + +from PySide6 import QtCore + +qt_resource_data = b"\ +\x00\x00\x07\xac\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221\x22>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x03\x8d\ +(\ +\xb5/\xfd`\xf2\x0a\x1d\x1c\x00\x06q|!0\x8f\xd2\ +\x06[\x9c:{\xd2\xcd>\xbd\xf6\x12\xcfE\xea\xc2\x1a\ +7\x91\xc8\xde\x5c\xc1n\xa56\x07\x05\x0c\x96\x10\x8a\x00\ +k\x00k\x00m\x7fE\xd4\x02\x16b:\xe2Y\xbc\xbd\ +\xeb\xa3\xbd3\x04\x08P(\x93\x07\x07\xb3\x80\x89\x80\xd0\ +\xb40\xcf\xde\xa1\xb6\xd7v\xff\xec\xf2\xbc\x0ej\x9f,\ +\xbd\x14\xea\xfcJ\xb1\x0c\xaa\x0d\xcf\x1ac%0\x8f\x86\ +bn'\x80a\x994\x11\x8a\x09\xe6\xe1@\xc1\xb0T\ +Jb\x89P\x10\x14@\x01\x83\xccCbbR\xa9p\ +\xb0\xb0H &\x0e\x92b\x9e\xccCbi\x98\x5c\x8a\ +q\xdc\xdd\x1d\x10\x15\x13\x96\x17\xbb\x5c.\x0e\x87\x00\x85\ +\xc5\x22a\x1e\x15\x09J\xc4EAXT\x08\x02\xf5;\ +\xbb\xc6\xd1\xbeKgYM\xa1\xb2(<\xe2dd\x8d\ +'\x0fm\xaf5\x9e/\x8f\x85]\xa8\xd0a\xf3\xf0\x90\ +\xd1g\xd98\x9a?\xbdE\x0a\x95\x04\xf5o\xb5\xc4\xa3\ +\xdc\x9cw\xb6\xa5\xc9{l\x87g9\xaf\x09\x8d\xeb\xa0\ +\xd3\xaa\xa5\xc3\x8b\x87}K\x19\xd5\x8bR\x13\xa2WB\ +e@\xea \x85^\xb5X\xdb(\x9d\xf1\x18\xd5\xee\xe4\ +6\x9e]a\xa4\xee\xa8&\xe5\xbco\x84\xd0\xb1\xfa)\ +a\x1b\xfe$\x94\xaa}PgN?\xfbO\xfe\xbe)\ +\x13S\xde.\x0f\xa7=Mi\xbbk\x15\x18\xcc\xe3\xa2\ +q\xa04\x15\x93\x06;\x1d\x17%\x86\xe0\x11!\xc7\xef\ +\x86l|k\x1f!nS~L<\x10H\x1d\xb2|\ +\xad\xe9k\x151#\xdb\x97\xda_\xa9\xdb\xf8uP\xe8\ +^\x95\xb0\xb6Yf\xc6C=K\xb5\xfb\xcc\x1b6\x0e\ +f:m\xdb\x00\x05\x10\x16\x15\x07\x01fB\x8c\xc5\xb8\ +\x09\xb5]^\xb5\x06\x12\xdf\xdd\xdda?7]\xe3\xfc\ +\xc9\xe9\xd62S\xe6;\xff\x94)r-e\x5c\xc4i\ +;\x93]\xa1f\xce3[\x98\xa1\ +E\x96\x0e\xe64\x9dG\xb9\xab{\x85\x96\xb0m\xd5~\ +v\xcb\x9e\x8ct9\xad\xf8\x0c.\x9b\x90\x02\x17B\xcd\ +\x06\x11g\x82\xb5\xecr\xe9\xb1\xad\x0d\x91\xe5\xd7\xde\x1d\ +.tq\xa5\xd4{\x00#3\xde\xb4\xe7\xcf\xf6\x03\x14\ +\x14\xa9\xa1\xfb\x0cK\x0c=\x9b\x98xe\x01-\x06(\ +\x22\xd3\xe3\x83f\xc3\x84\xe9\x89M\x9a=[\xcb\xcf\x83\ +\xf4v\xbf\x80\xb30\xcf\xa6o\x8d:\xeb~>\xbc1\ + #\xeb\xc9\xb2\xc6S\xe6:\x0d7\x90\x94\xc3\x9a\x1f\ +s\xac\xaa\x82[\x99\x88\x88\xca\xf57\xaa\xe0Hx\xb3\ +\x89\xfe\x1b\xa6\x85% W\xfeD\xb79F\xba\x87\x8e\ +\x1bZ\x8d;!\x92\xb5\x17\xa0\x93k\xe6\xb4\x82D\x88\ +\xfa\x99\xe7\x82&\xa4g[\x83\xd8\xa7A\xd7\xda\xca5\ +\xfd\x90\xaflY\xdd\xcb\xddsgWu\x85\xd8:#\ +\x06\x8f\xb6S\xe7\xed\x06\xe2:\xa4\xcd\xeb\x0d\x9d\xc2\x8d\ +/\x8e\x0c\x8c5t\xfd\x95\xbf\xf2\xa1\x7f\ +\x00\x00\x09z\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221\x22>\x0a \ +\x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x02\xd4\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221\x22>\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a <\ +/g>\x0a \x0a\x0a\ +\x00\x00\x0c\xdc\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221.1\x22>\x0a \x0a \x0a \x0a\ + \x0a \x0a \ +\ +\x0a \x0a\x0a\ +\x00\x00\x02p\ +(\ +\xb5/\xfd`,\x075\x13\x00\xf6]U\x1e0s\x1b\ +?\xf5\xce\xb8Q\xd5\xd87u\x9a\x9er\xe6!\x22J\ +\xca\xcc,W\xc4\x9b\x16\x06Y\x08\x03Y\x00J\x00F\ +\x00m\x0a\x14*\x95jB]\x91L\xe4i\x1d\xcb\x93\ +\xac\x93,\xc2n\xdd\x82\xe7\xaa\xa4H\x06\xc3\x10S\xc5\ +si\xf2\x92&\xeb\x90\x80\x04ce\x86\xb8`*\x8d\ +5m.\x8aRMT\xb2v\x86\xa0.I\xc5I\x16\ +\xednG\x14\x0b\xa3\xceQ\x0e\x87\x13E\x85\xccuQ\ +\x0c\xa1\xb9T,\x9d\xa4l4\x87\xac,\xe8T\xd6\x15\ +\xb1X\x98\x89\xe6\x12\xb1\xaed\x0c\xf9\x5c\xe4#\xa1\xeb\ +U\x97Q_;F\xb36B\xb66\xe8_t\xa8L\ +H\xe8\xda\xb5\xa1M)_\x1f\xe7&[\x9d?\xa8\x0e\ +\xbd^\xc7\xfa\x9d\x8b\xfc\xa7\xceIeC\xdf\xac1-\ +\x0c!I\x16\xce\x06\xe8\xfb\x93\x88\xd4 \x09\xfd\xbdo\ +\xba\x0e\xb5\xe6\x7fM\x9d\xb3?\xaeCm\x0e9\xceF\ +6n\x7f\xae\x0dr\xef\x17\xea\x7f\xb1\xad~\xb6\xfe\x06\ +a\xeb\xfd\xa8\xcb\x83\xe8\x1cw\x1f??\xc8\xadM\x80\ +\x1a\xbb\xde\xe6t\xa1\x17\x9d\x83\x1e\x80\x04e\xa3\x89\x0e\ +\x8d\xecv\xf7<\xa1v\xbb\xbf\xb6x\x8d\x8e\x91\xd5A\ +\xc8\xad\x1fT\xcfo\x03\xf3\xff\xe4\xd5z\x95\xa6\x8ad\ +U\xd2'\x1dB\xe7\xdewrs\xeeW\xbd\xf7\xb5S\ +\x91\xde\xf9\xfa\x9d\x0ew\x8e[\x99y\xd9-\xc7\xd7\x5c\ +\xb7{\xa01Y\x86F&\x8c\x82\x94$\xa5t\x80D\ +h\xaal\x1b,$`\x98\x02W\xa2\xd1\xcdA\x0a \ +\x0a \x0a \x0a\ + \ +\x0a \x0a\x0a\ +\x00\x00\x0d\x0b\ +<\ +svg xmlns=\x22http:\ +//www.w3.org/200\ +0/svg\x22 width=\x2232\ +\x22 height=\x2232\x22 ve\ +rsion=\x221.1\x22>\x0a \x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +" + +qt_resource_name = b"\ +\x00\x05\ +\x00o\xa6S\ +\x00i\ +\x00c\x00o\x00n\x00s\ +\x00\x04\ +\x00\x06\xcf\x04\ +\x00e\ +\x00x\x00i\x00t\ +\x00\x07\ +\x0eh\x9at\ +\x00g\ +\x00p\x00a\x00r\x00t\x00e\x00d\ +\x00\x03\ +\x00\x00kS\ +\x00d\ +\x00o\x00c\ +\x00\x05\ +\x00p\xaa\xb5\ +\x00i\ +\x00s\x00s\x00u\x00e\ +\x00\x03\ +\x00\x00}\xb2\ +\x00w\ +\x00e\x00b\ +\x00\x07\ +\x00Z\xa8\xcc\ +\x00i\ +\x00n\x00s\x00t\x00a\x00l\x00l\ +\x00\x08\ +\x0c+\xe7=\ +\x00t\ +\x00e\x00l\x00e\x00g\x00r\x00a\x00m\ +\x00\x07\ +\x0ae\xb82\ +\x00c\ +\x00o\x00n\x00t\x00r\x00i\x00b\ +" + +qt_resource_struct = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x08\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x002\x00\x00\x00\x00\x00\x01\x00\x00\x0bA\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x17\x97\ +\x00\x00\x01\x94\xb3\xfa\xb5^\ +\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00Z\x00\x04\x00\x00\x00\x01\x00\x00$w\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00>\x00\x00\x00\x00\x00\x01\x00\x00\x14\xbf\ +\x00\x00\x01\x94\xb3\xfa\xb5^\ +\x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00,\xba\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +\x00\x00\x00n\x00\x00\x00\x00\x00\x01\x00\x00&\xeb\ +\x00\x00\x01\x94\xb3\xfa\xb5^\ +\x00\x00\x00\x1e\x00\x04\x00\x00\x00\x01\x00\x00\x07\xb0\ +\x00\x00\x01\x94\xb3\xfa\xb5]\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/tileos_welcome/ui/mainwindow.ui b/tileos_welcome/ui/mainwindow.ui index 5df8b3c..d226882 100644 --- a/tileos_welcome/ui/mainwindow.ui +++ b/tileos_welcome/ui/mainwindow.ui @@ -74,6 +74,20 @@ + + + + Install TileOS + + + + + + + Disk partitioning + + + @@ -88,27 +102,6 @@ - - - - Install TileOS - - - - - - - Next - - - - - - - Disk partitioning - - - @@ -130,6 +123,13 @@ + + + + Telegram Chat + + + @@ -137,10 +137,10 @@ - - + + - Telegram Chat + Next @@ -277,6 +277,27 @@ + + btnInstall + btnGprd + btnWebsite + btnDoc + btnIssue + btnContrib + btnWiki + btnTelegram + btnQuit + btnNext + btnGTK + btnKvantum + btnDisplay + btnShell + btnInput + btnSoftware + btnPrev + btnExit + checkAutostart + diff --git a/tileos_welcome/ui/warning.ui b/tileos_welcome/ui/warning.ui new file mode 100644 index 0000000..9e0da20 --- /dev/null +++ b/tileos_welcome/ui/warning.ui @@ -0,0 +1,73 @@ + + + WarningMessage + + + + 0 + 0 + 640 + 100 + + + + + 0 + 0 + + + + + 640 + 100 + + + + + 640 + 100 + + + + + + + + + + Your system is already installed! If you wish to reinstall it, boot from the installation media. + + + true + + + + + + + QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + WarningMessage + accept() + + + 319 + 78 + + + 319 + 49 + + + + + diff --git a/tileos_welcome/ui_mainwindow.py b/tileos_welcome/ui_mainwindow.py index c231802..2122f30 100644 --- a/tileos_welcome/ui_mainwindow.py +++ b/tileos_welcome/ui_mainwindow.py @@ -45,21 +45,18 @@ class Ui_MainWindow(object): self.verticalLayout_2.addWidget(self.desc) self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") + self.btnInstall = QtWidgets.QPushButton(parent=self.page) + self.btnInstall.setObjectName("btnInstall") + self.gridLayout.addWidget(self.btnInstall, 0, 0, 1, 2) + self.btnGprd = QtWidgets.QPushButton(parent=self.page) + self.btnGprd.setObjectName("btnGprd") + self.gridLayout.addWidget(self.btnGprd, 0, 2, 1, 2) self.btnWebsite = QtWidgets.QPushButton(parent=self.page) self.btnWebsite.setObjectName("btnWebsite") self.gridLayout.addWidget(self.btnWebsite, 1, 0, 1, 1) self.btnDoc = QtWidgets.QPushButton(parent=self.page) self.btnDoc.setObjectName("btnDoc") self.gridLayout.addWidget(self.btnDoc, 1, 1, 1, 1) - self.btnInstall = QtWidgets.QPushButton(parent=self.page) - self.btnInstall.setObjectName("btnInstall") - self.gridLayout.addWidget(self.btnInstall, 0, 0, 1, 2) - self.btnNext = QtWidgets.QPushButton(parent=self.page) - self.btnNext.setObjectName("btnNext") - self.gridLayout.addWidget(self.btnNext, 2, 3, 1, 1) - self.btnGprd = QtWidgets.QPushButton(parent=self.page) - self.btnGprd.setObjectName("btnGprd") - self.gridLayout.addWidget(self.btnGprd, 0, 2, 1, 2) self.btnIssue = QtWidgets.QPushButton(parent=self.page) self.btnIssue.setObjectName("btnIssue") self.gridLayout.addWidget(self.btnIssue, 1, 2, 1, 1) @@ -70,12 +67,15 @@ class Ui_MainWindow(object): self.btnWiki.setText("") self.btnWiki.setObjectName("btnWiki") self.gridLayout.addWidget(self.btnWiki, 2, 0, 1, 1) - self.btnQuit = QtWidgets.QPushButton(parent=self.page) - self.btnQuit.setObjectName("btnQuit") - self.gridLayout.addWidget(self.btnQuit, 2, 2, 1, 1) self.btnTelegram = QtWidgets.QPushButton(parent=self.page) self.btnTelegram.setObjectName("btnTelegram") self.gridLayout.addWidget(self.btnTelegram, 2, 1, 1, 1) + self.btnQuit = QtWidgets.QPushButton(parent=self.page) + self.btnQuit.setObjectName("btnQuit") + self.gridLayout.addWidget(self.btnQuit, 2, 2, 1, 1) + self.btnNext = QtWidgets.QPushButton(parent=self.page) + self.btnNext.setObjectName("btnNext") + self.gridLayout.addWidget(self.btnNext, 2, 3, 1, 1) self.verticalLayout_2.addLayout(self.gridLayout) self.verticalLayout_3.addLayout(self.verticalLayout_2) self.stackedWidget.addWidget(self.page) @@ -138,19 +138,37 @@ class Ui_MainWindow(object): self.retranslateUi(MainWindow) self.stackedWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) + MainWindow.setTabOrder(self.btnInstall, self.btnGprd) + MainWindow.setTabOrder(self.btnGprd, self.btnWebsite) + MainWindow.setTabOrder(self.btnWebsite, self.btnDoc) + MainWindow.setTabOrder(self.btnDoc, self.btnIssue) + MainWindow.setTabOrder(self.btnIssue, self.btnContrib) + MainWindow.setTabOrder(self.btnContrib, self.btnWiki) + MainWindow.setTabOrder(self.btnWiki, self.btnTelegram) + MainWindow.setTabOrder(self.btnTelegram, self.btnQuit) + MainWindow.setTabOrder(self.btnQuit, self.btnNext) + MainWindow.setTabOrder(self.btnNext, self.btnGTK) + MainWindow.setTabOrder(self.btnGTK, self.btnKvantum) + MainWindow.setTabOrder(self.btnKvantum, self.btnDisplay) + MainWindow.setTabOrder(self.btnDisplay, self.btnShell) + MainWindow.setTabOrder(self.btnShell, self.btnInput) + MainWindow.setTabOrder(self.btnInput, self.btnSoftware) + MainWindow.setTabOrder(self.btnSoftware, self.btnPrev) + MainWindow.setTabOrder(self.btnPrev, self.btnExit) + MainWindow.setTabOrder(self.btnExit, self.checkAutostart) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate self.desc.setText(_translate("MainWindow", "Want to learn more about the project? Please find the links below!")) + self.btnInstall.setText(_translate("MainWindow", "Install TileOS")) + self.btnGprd.setText(_translate("MainWindow", "Disk partitioning")) self.btnWebsite.setText(_translate("MainWindow", "Website")) self.btnDoc.setText(_translate("MainWindow", "Documentation")) - self.btnInstall.setText(_translate("MainWindow", "Install TileOS")) - self.btnNext.setText(_translate("MainWindow", "Next")) - self.btnGprd.setText(_translate("MainWindow", "Disk partitioning")) self.btnIssue.setText(_translate("MainWindow", "Issue Tracker")) self.btnContrib.setText(_translate("MainWindow", "Contribute")) - self.btnQuit.setText(_translate("MainWindow", "Quit")) self.btnTelegram.setText(_translate("MainWindow", "Telegram Chat")) + self.btnQuit.setText(_translate("MainWindow", "Quit")) + self.btnNext.setText(_translate("MainWindow", "Next")) self.desc2.setText(_translate("MainWindow", "Advanced options")) self.btnSoftware.setText(_translate("MainWindow", "Install Software")) self.btnPrev.setText(_translate("MainWindow", "Previous")) diff --git a/tileos_welcome/ui_warning.py b/tileos_welcome/ui_warning.py new file mode 100644 index 0000000..8dc66cd --- /dev/null +++ b/tileos_welcome/ui_warning.py @@ -0,0 +1,41 @@ +# Form implementation generated from reading ui file 'tileos_welcome/ui/warning.ui' +# +# Created by: PyQt6 UI code generator 6.4.2 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_WarningMessage(object): + def setupUi(self, WarningMessage): + WarningMessage.setObjectName("WarningMessage") + WarningMessage.resize(640, 100) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(WarningMessage.sizePolicy().hasHeightForWidth()) + WarningMessage.setSizePolicy(sizePolicy) + WarningMessage.setMinimumSize(QtCore.QSize(640, 100)) + WarningMessage.setMaximumSize(QtCore.QSize(640, 100)) + WarningMessage.setWindowTitle("") + self.verticalLayout = QtWidgets.QVBoxLayout(WarningMessage) + self.verticalLayout.setObjectName("verticalLayout") + self.label = QtWidgets.QLabel(parent=WarningMessage) + self.label.setWordWrap(True) + self.label.setObjectName("label") + self.verticalLayout.addWidget(self.label) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=WarningMessage) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Ok) + self.buttonBox.setObjectName("buttonBox") + self.verticalLayout.addWidget(self.buttonBox) + + self.retranslateUi(WarningMessage) + self.buttonBox.accepted.connect(WarningMessage.accept) # type: ignore + QtCore.QMetaObject.connectSlotsByName(WarningMessage) + + def retranslateUi(self, WarningMessage): + _translate = QtCore.QCoreApplication.translate + self.label.setText(_translate("WarningMessage", "Your system is already installed! If you wish to reinstall it, boot from the installation media."))