Add icons to buttons, connect buttons to slots

This commit is contained in:
Aleksey Samoilov 2025-02-09 19:30:54 +04:00
parent e9d5aee018
commit 6ad0e42093
43 changed files with 3189 additions and 52 deletions

View file

@ -0,0 +1 @@

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,12 @@
<RCC>
<qresource prefix="/icons">
<file alias="contrib">icons/contrib.svg</file>
<file alias="doc">icons/doc.svg</file>
<file alias="exit">icons/exit.svg</file>
<file alias="gparted">icons/gparted.svg</file>
<file alias="install">icons/install-system.svg</file>
<file alias="issue">icons/issue.svg</file>
<file alias="telegram">icons/telegram.svg</file>
<file alias="web">icons/web.svg</file>
</qresource>
</RCC>

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,141 @@
#!/usr/bin/env python3
# This file is part of Ubuntu Sway Remix project
# SPDX-FileCopyrightText: 2022 Aleksey Samoilov <samoilov.lex@gmail.com>
# 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 <https://www.gnu.org/licenses/>.
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()

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,303 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>664</width>
<height>473</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>664</width>
<height>473</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>664</width>
<height>473</height>
</size>
</property>
<property name="windowTitle">
<string/>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="logo">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="desc">
<property name="text">
<string>Want to learn more about the project? Please find the links below!</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="QPushButton" name="btnInstall">
<property name="text">
<string>Install TileOS</string>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">
<widget class="QPushButton" name="btnGprd">
<property name="text">
<string>Disk partitioning</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="btnWebsite">
<property name="text">
<string>Website</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="btnDoc">
<property name="text">
<string>Documentation</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="btnIssue">
<property name="text">
<string>Issue Tracker</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="btnContrib">
<property name="text">
<string>Contribute</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="btnWiki">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="btnTelegram">
<property name="text">
<string>Telegram Chat</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="btnQuit">
<property name="text">
<string>Quit</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="btnNext">
<property name="text">
<string>Next</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="logo2">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="desc2">
<property name="text">
<string>Advanced options</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="2">
<widget class="QPushButton" name="btnSoftware">
<property name="text">
<string>Install Software</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="btnPrev">
<property name="text">
<string>Previous</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="btnKvantum">
<property name="text">
<string>Change Qt theme</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="btnDisplay">
<property name="text">
<string>Display Settings</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="btnGTK">
<property name="text">
<string>Change GTK Theme</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="btnShell">
<property name="text">
<string>Change Shell</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="btnExit">
<property name="text">
<string>Quit</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="btnInput">
<property name="text">
<string>Input Settings</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkAutostart">
<property name="text">
<string>Autostart</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<tabstops>
<tabstop>btnInstall</tabstop>
<tabstop>btnGprd</tabstop>
<tabstop>btnWebsite</tabstop>
<tabstop>btnDoc</tabstop>
<tabstop>btnIssue</tabstop>
<tabstop>btnContrib</tabstop>
<tabstop>btnWiki</tabstop>
<tabstop>btnTelegram</tabstop>
<tabstop>btnQuit</tabstop>
<tabstop>btnNext</tabstop>
<tabstop>btnGTK</tabstop>
<tabstop>btnKvantum</tabstop>
<tabstop>btnDisplay</tabstop>
<tabstop>btnShell</tabstop>
<tabstop>btnInput</tabstop>
<tabstop>btnSoftware</tabstop>
<tabstop>btnPrev</tabstop>
<tabstop>btnExit</tabstop>
<tabstop>checkAutostart</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WarningMessage</class>
<widget class="QDialog" name="WarningMessage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>100</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>640</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>640</width>
<height>100</height>
</size>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Your system is already installed! If you wish to reinstall it, boot from the installation media.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>WarningMessage</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>319</x>
<y>78</y>
</hint>
<hint type="destinationlabel">
<x>319</x>
<y>49</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -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"))

View file

@ -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."))

Binary file not shown.

View file

@ -11,10 +11,10 @@ setup(
url='https://gitlab.com/tile-os/tileos-welcome', url='https://gitlab.com/tile-os/tileos-welcome',
packages=find_packages(), packages=find_packages(),
include_package_data=True, include_package_data=True,
package_data={"": ["resources/*", "ui/*"]}, package_data={"": ["data/*", "ui/*"]},
data_files=[ data_files=[
('share/applications', ['tileos_welcome/resources/tileos-welcome.desktop']), ('share/applications', ['tileos_welcome/data/tileos-welcome.desktop']),
('share/icons/hicolor/scalable/apps', ['tileos_welcome/resources/tileos-logo.svg']), ('share/icons/hicolor/scalable/apps', ['tileos_welcome/data/tileos-logo.svg']),
], ],
install_requires=[], install_requires=[],
entry_points={ entry_points={

View file

@ -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

View file

@ -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

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,2 @@
[gui_scripts]
tileos-welcome = tileos_welcome.main:main

View file

@ -0,0 +1 @@
tileos_welcome

View file

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" version="1.1">
<rect style="opacity:0.2" width="16" height="21" x="8" y="8" rx="1.25" ry="1.25"/>
<rect style="fill:#8e8e8e" width="16" height="21" x="8" y="7" rx="1.25" ry="1.25"/>
<rect style="opacity:0.2" width="26" height="20" x="3" y="6" rx="1.25" ry="1.25"/>
<path style="fill:#595959" d="m 3,22 v 1.75 C 3,24.4425 3.5575,25 4.25,25 h 23.5 C 28.4425,25 29,24.4425 29,23.75 V 22 Z"/>
<path style="fill:#333333" d="M 4.25,5 C 3.5575,5 3,5.5575 3,6.25 V 22 H 29 V 6.25 C 29,5.5575 28.4425,5 27.75,5 Z"/>
<rect style="opacity:0.1;fill:#ffffff" width="26" height="1" x="3" y="22"/>
<path style="fill:#ffffff;opacity:0.1" d="M 4.25 5 C 3.5575 5 3 5.5575 3 6.25 L 3 7.25 C 3 6.5575 3.5575 6 4.25 6 L 27.75 6 C 28.442 6 29 6.5575 29 7.25 L 29 6.25 C 29 5.5575 28.442 5 27.75 5 L 4.25 5 z"/>
</svg>

After

Width:  |  Height:  |  Size: 866 B

View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" version="1">
<path style="opacity:0.1" d="m 19,29 c 0,-1.656854 -1.343146,-12 -3,-12 -1.656854,0 -3,10.343146 -3,12 0,1.656854 1.343146,3 3,3 1.656854,0 3,-1.343146 3,-3 z"/>
<circle style="opacity:0.2" cx="16" cy="17" r="13"/>
<circle style="fill:#8e8e8e" cx="16" cy="16" r="13"/>
<path style="fill:#ff4c4c" d="M 22.363961,26.606602 C 21.192388,25.435029 14.828427,17.171573 16,16 c 1.171573,-1.171573 9.435029,5.192388 10.606602,6.363961 1.171573,1.171573 1.171572,3.071068 0,4.242641 -1.171573,1.171572 -3.071068,1.171573 -4.242641,0 z"/>
<path style="fill:#db4cb7" d="m 28,19 c -1.656854,0 -12,-1.343146 -12,-3 0,-1.656854 10.343146,-3 12,-3 1.656854,0 3,1.343146 3,3 0,1.656854 -1.343146,3 -3,3 z"/>
<path style="fill:#924ab4" d="M 26.606602,9.636039 C 25.435029,10.807612 17.171573,17.171573 16,16 14.828427,14.828427 21.192388,6.564971 22.363961,5.3933983 c 1.171573,-1.1715727 3.071068,-1.1715727 4.242641,0 1.171572,1.1715727 1.171572,3.071068 0,4.2426407 z"/>
<path style="opacity:0.1;fill:#ffffff" d="M 24.484375 4.515625 C 23.716608 4.515625 22.949068 4.8067918 22.363281 5.3925781 C 21.202781 6.5530785 14.952117 14.668911 15.972656 15.960938 C 16.717711 13.389272 21.375991 7.379868 22.363281 6.3925781 C 23.534854 5.2210054 25.435849 5.2210054 26.607422 6.3925781 C 27.065772 6.8509284 27.337787 7.4216224 27.4375 8.015625 C 27.593371 7.0907586 27.321139 6.1062958 26.607422 5.3925781 C 26.021635 4.8067918 25.252142 4.515625 24.484375 4.515625 z"/>
<path style="fill:#6c48b3" d="m 19,4 c 0,1.6568543 -1.343146,12 -3,12 -1.656854,0 -3,-10.3431457 -3,-12 0,-1.6568543 1.343146,-3 3,-3 1.656854,0 3,1.3431457 3,3 z"/>
<path style="fill:#476bd7" d="M 5.3933983,9.636039 C 6.564971,10.807612 14.828427,17.171573 16,16 17.171573,14.828427 10.807612,6.564971 9.636039,5.3933983 c -1.1715727,-1.1715727 -3.071068,-1.1715727 -4.2426407,0 -1.1715727,1.1715727 -1.1715727,3.071068 0,4.2426407 z"/>
<path style="opacity:0.1" d="M 4.5625 8.015625 C 4.4072485 8.9400038 4.6792916 9.9234322 5.3925781 10.636719 C 6.5641508 11.808292 14.828427 18.171573 16 17 C 16.184283 16.815717 16.166412 16.440952 16.027344 15.960938 C 16.017607 15.973265 16.011072 15.988928 16 16 C 14.828427 17.171573 6.5641508 10.808292 5.3925781 9.6367188 C 4.9347856 9.1789262 4.6625273 8.6088458 4.5625 8.015625 z"/>
<path style="fill:#47b1b1" d="m 4,19 c 1.656854,0 12,-1.343146 12,-3 0,-1.656854 -10.343146,-3 -12,-3 -1.656854,0 -3,1.343146 -3,3 0,1.656854 1.343146,3 3,3 z"/>
<path style="opacity:0.1" d="M 1.0507812 16.5 C 1.0232813 16.663236 1 16.828943 1 17 C 1 18.656854 2.343146 20 4 20 C 5.656854 20 16 18.656854 16 17 C 16 16.829224 15.866901 16.662983 15.667969 16.5 C 13.935309 17.917985 5.4858792 19 4 19 C 2.5147507 19 1.2902916 17.917097 1.0507812 16.5 z"/>
<path style="fill:#8bdb4c" d="M 9.636039,26.606602 C 10.807612,25.435029 17.171573,17.171573 16,16 14.828427,14.828427 6.5649713,21.192388 5.3933984,22.363961 c -1.1715729,1.171573 -1.1715727,3.071068 0,4.242641 1.1715727,1.171572 3.0710677,1.171573 4.2426406,0 z"/>
<path style="opacity:0.1" d="M 16.025391 17.039062 C 15.278989 19.611548 10.623822 25.618366 9.6367188 26.605469 C 8.4651458 27.777042 6.5641508 27.777041 5.3925781 26.605469 C 4.934292 26.147182 4.662249 25.578288 4.5625 24.984375 C 4.4066294 25.909241 4.6788604 26.893704 5.3925781 27.607422 C 6.5641508 28.778994 8.4651458 28.778995 9.6367188 27.607422 C 10.797472 26.446668 17.049325 18.328394 16.025391 17.039062 z"/>
<path style="fill:#ffdb4c" d="m 19,28 c 0,-1.656854 -1.343146,-12 -3,-12 -1.656854,0 -3,10.343146 -3,12 0,1.656854 1.343146,3 3,3 1.656854,0 3,-1.343146 3,-3 z"/>
<path style="fill:#ff4c4c" d="M 16 16 C 15.454003 16.545997 16.561006 18.639164 18 20.830078 C 17.9975 19.238017 17.562806 17.807063 17.039062 16.921875 C 16.397592 16.631164 16 16.321954 16 16 z"/>
<path style="opacity:0.1" d="M 15.974609 17.039062 C 14.950675 18.328394 21.202528 26.446668 22.363281 27.607422 C 23.534854 28.778995 25.435849 28.778994 26.607422 27.607422 C 27.321139 26.893704 27.59337 25.909241 27.4375 24.984375 C 27.337751 25.578288 27.065708 26.147182 26.607422 26.605469 C 25.435849 27.777041 23.534854 27.777042 22.363281 26.605469 C 21.376178 25.618366 16.721011 19.611548 15.974609 17.039062 z"/>
<path style="fill:#db4cb7" d="m 16,16 c -0.0084,0.278233 0.324957,0.591525 0.873864,0.84719 C 16.810238,16.315544 16.297056,15.996235 16,16 Z"/>
<path style="opacity:0.1;fill:#ffffff" d="M 16 1 C 14.343146 1 13 2.3431457 13 4 C 13 4.1296355 13.021158 4.3942214 13.037109 4.6210938 C 13.224968 3.1448585 14.472728 2 16 2 C 17.527272 2 18.775032 3.1448585 18.962891 4.6210938 C 18.978842 4.3942214 19 4.1296355 19 4 C 19 2.3431457 17.656854 1 16 1 z"/>
<path style="opacity:0.1;fill:#ffffff" d="M 7.515625 4.515625 C 6.747858 4.515625 5.9783645 4.8067918 5.3925781 5.3925781 C 4.6788604 6.1062958 4.4066294 7.0907586 4.5625 8.015625 C 4.6622127 7.4216224 4.9342278 6.8509284 5.3925781 6.3925781 C 6.5641508 5.2210054 8.465146 5.2210054 9.6367188 6.3925781 C 10.624009 7.379868 15.282289 13.389272 16.027344 15.960938 C 17.047883 14.668911 10.797219 6.5530785 9.6367188 5.3925781 C 9.0509324 4.8067918 8.283392 4.515625 7.515625 4.515625 z"/>
<path style="opacity:0.1" d="M 27.4375 8.015625 C 27.337473 8.6088458 27.065214 9.1789262 26.607422 9.6367188 C 25.435849 10.808292 17.171573 17.171573 16 16 C 15.988928 15.988928 15.982393 15.973265 15.972656 15.960938 C 15.833588 16.440952 15.815717 16.815717 16 17 C 17.171573 18.171573 25.435849 11.808292 26.607422 10.636719 C 27.320708 9.9234322 27.592751 8.9400038 27.4375 8.015625 z"/>
<path style="opacity:0.1" d="M 16.332031 16.5 C 16.133099 16.662983 16 16.829224 16 17 C 16 18.656854 26.343146 20 28 20 C 29.656854 20 31 18.656854 31 17 C 31 16.828943 30.976719 16.663236 30.949219 16.5 C 30.709708 17.917097 29.485249 19 28 19 C 26.514121 19 18.064691 17.917985 16.332031 16.5 z"/>
<path style="opacity:0.1" d="m 12.484921,10.698803 c -0.406892,0.171162 -0.596667,0.636528 -0.425505,1.043419 l 0.401285,0.953939 a 5.5775922,5.5775922 0 0 0 -0.803022,0.812221 l -0.957828,-0.390599 c -0.408745,-0.166685 -0.8718875,0.02815 -1.0385732,0.436886 l -0.6016876,1.47546 c -0.1666856,0.408746 0.028148,0.871889 0.4368842,1.038573 l 0.9537516,0.388938 a 5.5775922,5.5775922 0 0 0 0.0072,1.145021 l -0.9510365,0.400077 c -0.4068923,0.171163 -0.5966662,0.636528 -0.4255037,1.04342 l 0.6179159,1.468922 c 0.1711626,0.406891 0.6365283,0.596666 1.0434193,0.425503 L 11.696159,20.5393 a 5.5775922,5.5775922 0 0 0 0.812222,0.803021 l -0.390598,0.957828 c -0.166686,0.408745 0.02815,0.871888 0.436886,1.038573 l 1.475459,0.601688 c 0.408746,0.166686 0.871889,-0.02815 1.038574,-0.436884 l 0.388938,-0.953751 a 5.5775922,5.5775922 0 0 0 1.145022,-0.0072 l 0.400075,0.95107 c 0.171163,0.406893 0.636529,0.596667 1.043419,0.425504 l 1.468923,-0.617916 c 0.406891,-0.171162 0.596666,-0.636528 0.425504,-1.043419 l -0.401284,-0.953938 a 5.5775922,5.5775922 0 0 0 0.803023,-0.812222 l 0.957827,0.390597 c 0.408744,0.166687 0.871888,-0.02814 1.038574,-0.436885 l 0.601687,-1.475459 c 0.166685,-0.408747 -0.02815,-0.871889 -0.436886,-1.038574 l -0.953751,-0.388936 a 5.5775922,5.5775922 0 0 0 -0.0072,-1.145023 l 0.951069,-0.400075 c 0.406892,-0.171163 0.596667,-0.636529 0.425503,-1.04342 L 22.301229,13.484957 C 22.130067,13.078066 21.664701,12.88829 21.25781,13.059454 l -0.953938,0.401283 a 5.5775922,5.5775922 0 0 0 -0.812221,-0.803023 l 0.390598,-0.957827 c 0.166653,-0.408778 -0.02818,-0.871922 -0.436919,-1.038606 l -1.47546,-0.601689 c -0.408747,-0.1666853 -0.871889,0.02815 -1.038573,0.436885 l -0.388938,0.95375 a 5.5775922,5.5775922 0 0 0 -1.14502,0.0072 L 14.997268,10.506384 C 14.826106,10.099492 14.36074,9.9097176 13.953849,10.080879 Z"/>
<path style="fill:#4f4f4f" d="M 12.484921,9.6988021 C 12.078029,9.8699639 11.888254,10.33533 12.059416,10.742221 l 0.401285,0.953939 a 5.5775922,5.5775922 0 0 0 -0.803022,0.812221 l -0.957828,-0.390599 c -0.408745,-0.166685 -0.8718875,0.02815 -1.0385732,0.436886 l -0.6016876,1.47546 c -0.1666856,0.408746 0.028148,0.871889 0.4368842,1.038573 l 0.9537516,0.388938 a 5.5775922,5.5775922 0 0 0 0.0072,1.145021 L 9.5063895,17.002737 C 9.0994972,17.1739 8.9097233,17.639265 9.0808858,18.046157 l 0.6179159,1.468922 c 0.1711626,0.406891 0.6365283,0.596666 1.0434193,0.425503 l 0.953938,-0.401283 a 5.5775922,5.5775922 0 0 0 0.812222,0.803021 l -0.390598,0.957828 c -0.166686,0.408745 0.02815,0.871888 0.436886,1.038573 l 1.475459,0.601688 c 0.408746,0.166686 0.871889,-0.02815 1.038574,-0.436884 l 0.388938,-0.953751 a 5.5775922,5.5775922 0 0 0 1.145022,-0.0072 l 0.400075,0.95107 c 0.171163,0.406893 0.636529,0.596667 1.043419,0.425504 l 1.468923,-0.617916 c 0.406891,-0.171162 0.596666,-0.636528 0.425504,-1.043419 l -0.401284,-0.953938 a 5.5775922,5.5775922 0 0 0 0.803023,-0.812222 l 0.957827,0.390597 c 0.408744,0.166687 0.871888,-0.02814 1.038574,-0.436885 l 0.601687,-1.475459 c 0.166685,-0.408747 -0.02815,-0.871889 -0.436886,-1.038574 l -0.953751,-0.388936 a 5.5775922,5.5775922 0 0 0 -0.0072,-1.145023 l 0.951069,-0.400075 c 0.406892,-0.171163 0.596667,-0.636529 0.425503,-1.04342 L 22.301229,12.484956 C 22.130067,12.078065 21.664701,11.888289 21.25781,12.059453 l -0.953938,0.401283 a 5.5775922,5.5775922 0 0 0 -0.812221,-0.803023 l 0.390598,-0.957827 C 20.048902,10.291108 19.854068,9.8279638 19.44533,9.6612798 L 17.96987,9.0595906 c -0.408747,-0.1666849 -0.871889,0.028148 -1.038573,0.4368858 l -0.388938,0.9537496 a 5.5775922,5.5775922 0 0 0 -1.14502,0.0072 L 14.997268,9.5063829 C 14.826106,9.0994914 14.36074,8.9097166 13.953849,9.0808784 Z"/>
<circle style="opacity:0.2" cx="16" cy="17" r="3"/>
<circle style="fill:#ffffff" cx="16" cy="16" r="3"/>
</svg>

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" version="1">
<rect style="fill:#4f4f4f" width="28" height="20" x="2" y="6" rx="1.4" ry="1.4"/>
<path style="opacity:.1;fill:#ffffff" d="m3.4004 6c-0.7756 0-1.4004 0.6248-1.4004 1.4004v1c0-0.7756 0.6248-1.4004 1.4004-1.4004h25.2c0.775 0 1.4 0.6248 1.4 1.4004v-1c0-0.7756-0.625-1.4004-1.4-1.4004h-25.2z"/>
<path style="opacity:.2" d="m2 24.6v1c0 0.775 0.6248 1.4 1.4004 1.4h25.2c0.775 0 1.4-0.625 1.4-1.4v-1c0 0.775-0.625 1.4-1.4 1.4h-25.2c-0.7752 0-1.4-0.625-1.4-1.4z"/>
<circle style="opacity:.2" cx="5.5" cy="11.5" r="1.5"/>
<circle style="opacity:.2" cx="10.5" cy="11.5" r="1.5"/>
<circle style="opacity:.2" cx="15.5" cy="11.5" r="1.5"/>
<circle style="opacity:.2" cx="20.5" cy="11.5" r="1.5"/>
<circle style="opacity:.2" cx="25.5" cy="11.5" r="1.5"/>
<circle style="opacity:.2" cx="8.5" cy="17.5" r="1.5"/>
<circle style="opacity:.2" cx="13.5" cy="17.5" r="1.5"/>
<circle style="opacity:.2" cx="18.5" cy="17.5" r="1.5"/>
<circle style="opacity:.2" cx="23.5" cy="17.5" r="1.5"/>
<rect style="opacity:.2" width="20" height="3" x="6" y="22" rx=".75" ry=".75"/>
<circle style="fill:#e4e4e4" cx="5.5" cy="10.5" r="1.5"/>
<circle style="fill:#e4e4e4" cx="10.5" cy="10.5" r="1.5"/>
<circle style="fill:#e4e4e4" cx="15.5" cy="10.5" r="1.5"/>
<circle style="fill:#e4e4e4" cx="20.5" cy="10.5" r="1.5"/>
<circle style="fill:#ff8834" cx="25.5" cy="10.5" r="1.5"/>
<circle style="fill:#e4e4e4" cx="8.5" cy="16.5" r="1.5"/>
<circle style="fill:#e4e4e4" cx="13.5" cy="16.5" r="1.5"/>
<circle style="fill:#ff8834" cx="18.5" cy="16.5" r="1.5"/>
<circle style="fill:#e4e4e4" cx="23.5" cy="16.5" r="1.5"/>
<rect style="fill:#e4e4e4" width="20" height="3" x="6" y="21" rx=".75" ry=".75"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" version="1">
<rect style="opacity:0.2" width="28" height="25" x="2" y="4" rx="2.1" ry="2.083"/>
<rect style="fill:#4f4f4f" width="28" height="25" x="2" y="3" rx="2.1" ry="2.083"/>
<rect style="opacity:0.2" width="8" height="3" x="13" y="15" rx=".667" ry=".75"/>
<rect style="fill:#ffffff" width="8" height="3" x="13" y="14" rx=".667" ry=".75"/>
<rect style="opacity:0.2" width="8.382" height="2.794" x="-8.61" y="15.1" rx=".698" ry=".698" transform="matrix(0.72400602,-0.68979366,0.72400602,0.68979366,0,0)"/>
<rect style="fill:#a2a2a2" width="8.382" height="2.794" x="-7.88" y="14.38" rx=".698" ry=".698" transform="matrix(0.72400602,-0.68979366,0.72400602,0.68979366,0,0)"/>
<rect style="opacity:0.2" width="8.382" height="2.794" x="9.52" y="-3.02" rx=".698" ry=".698" transform="matrix(0.72400602,0.68979366,0.72400602,-0.68979366,0,0)"/>
<rect style="fill:#ffffff" width="8.382" height="2.794" x="8.79" y="-2.29" rx=".698" ry=".698" transform="matrix(0.72400602,0.68979366,0.72400602,-0.68979366,0,0)"/>
<path style="fill:#ffffff;opacity:0.1" d="M 4.0996094 3 C 2.9362094 3 2 3.9298178 2 5.0839844 L 2 6.0839844 C 2 4.9298178 2.9362094 4 4.0996094 4 L 27.900391 4 C 29.063791 4 30 4.9298178 30 6.0839844 L 30 5.0839844 C 30 3.9298178 29.063791 3 27.900391 3 L 4.0996094 3 z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" version="1">
<path fill="#e4e4e4" d="m12 3-2 2v3h-8v18.5c0 0.831 0.669 1.5 1.5 1.5h25c0.831 0 1.5-0.669 1.5-1.5v-18.5h-8v-3l-2-2zm0 2h8v3h-8z"/>
<path opacity=".2" d="m12 5v1h8v-1h-8zm-10 21.5v1c0 0.831 0.669 1.5 1.5 1.5h25c0.831 0 1.5-0.669 1.5-1.5v-1c0 0.831-0.669 1.5-1.5 1.5h-25c-0.831 0-1.5-0.669-1.5-1.5z"/>
<circle fill="#4ab3e4" cx="24.5" cy="23.5" r="7.5"/>
<path fill="#fff" d="m26 18.96v4.04l1.5-0.04-3 4.04-3-4.04h1.5v-4h3zm-5 8.0402h7v1h-7z"/>
<path fill-rule="evenodd" opacity=".2" d="m31.979 23.947a7.5 7.5 0 0 1 -7.479 7.053 7.5 7.5 0 0 1 -7.479 -6.947 7.5 7.5 0 0 0 -0.021 0.447 7.5 7.5 0 0 0 7.5 7.5 7.5 7.5 0 0 0 7.5 -7.5 7.5 7.5 0 0 0 -0.021 -0.553z"/>
</svg>

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" version="1.1">
<path fill="#253951" d="m3.3998 29c-0.7756 0-1.4-0.6194-1.4-1.3889v-1.6111h28v1.6111c0 0.7695-0.6244 1.3889-1.4 1.3889z"/>
<path fill="#1e88e5" d="m3.4004 4c-0.7756 0-1.4004 0.6192-1.4004 1.3887v20.612h28v-20.611c0-0.7695-0.625-1.3887-1.4-1.3887h-25.2z"/>
<path fill="#fff" opacity=".1" d="m3.4002 4c-0.7756 0-1.4004 0.6192-1.4004 1.3887v1c0-0.7695 0.6248-1.3887 1.4004-1.3887h25.2c0.775 0 1.4 0.6192 1.4 1.3887v-1c0-0.7695-0.625-1.3887-1.4-1.3887h-25.2z"/>
<rect opacity=".2" width="12" height="8" x="10" y="13" rx=".75" ry=".667"/>
<path fill="#fff" d="m10 14v5.334c0 0.369 0.334 0.666 0.75 0.666h10.5c0.416 0 0.75-0.297 0.75-0.666v-5.334h-12z"/>
<path fill="#253951" d="m10.75 12h10.5c0.416 0 0.75 0.297 0.75 0.667v1.333h-12v-1.3333c0-0.36933 0.3345-0.66667 0.75-0.66667z"/>
<rect opacity=".2" width="3" height="3" x="3" y="18" rx=".375" ry=".375"/>
<rect opacity=".2" width="3" height="3" x="3" y="6" rx=".375" ry=".375"/>
<rect fill="#fff" width="3" height="3" x="3" y="5" rx=".375" ry=".375"/>
<rect opacity=".2" width="3" height="3" x="3" y="10" rx=".375" ry=".375"/>
<rect fill="#fff" width="3" height="3" x="3" y="9" rx=".375" ry=".375"/>
<rect opacity=".2" width="3" height="3" x="3" y="14" rx=".375" ry=".375"/>
<rect fill="#fff" width="3" height="3" x="3" y="13" rx=".375" ry=".375"/>
<rect fill="#fff" width="3" height="3" x="3" y="17" rx=".375" ry=".375"/>
<path opacity=".2" d="m2 27.611v1c0 0.77 0.6248 1.389 1.4004 1.389h25.2c0.775 0 1.4-0.619 1.4-1.389v-1c0 0.77-0.625 1.389-1.4 1.389h-25.2c-0.7752 0-1.4-0.619-1.4-1.389z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,12 @@
<RCC>
<qresource prefix="/icons">
<file alias="contrib">icons/contrib.svg</file>
<file alias="doc">icons/doc.svg</file>
<file alias="exit">icons/exit.svg</file>
<file alias="gparted">icons/gparted.svg</file>
<file alias="install">icons/install-system.svg</file>
<file alias="issue">icons/issue.svg</file>
<file alias="telegram">icons/telegram.svg</file>
<file alias="web">icons/web.svg</file>
</qresource>
</RCC>

View file

@ -0,0 +1 @@
<svg id="svg1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3500 3500"><defs><style>.cls-1{fill:#939af4;}.cls-2{fill:#7dc4e4;}.cls-3,.cls-4,.cls-6{fill:#6993e8;}.cls-4,.cls-6{isolation:isolate;font-size:459.57px;font-family:ArialMT, Arial;}.cls-4{letter-spacing:-0.04em;}.cls-5{letter-spacing:0em;}</style></defs><path id="path37" class="cls-1" d="M1044.92,1110.65v663.73a105,105,0,0,0,52.51,90.94l574.83,331.88a35,35,0,0,0,52.5-30.31V1503.14a105,105,0,0,0-52.5-90.94l-574.83-331.87a35,35,0,0,0-52.51,30.32Z"/><path id="path37-2" data-name="path37" class="cls-2" d="M2479.78,1114.1a35,35,0,0,0-52.5-30.31l-574.83,331.86a105,105,0,0,0-52.5,90.94v663.75a35,35,0,0,0,52.5,30.32l574.83-331.88a105,105,0,0,0,52.5-90.94V1114.1Z"/><path id="path37-3" data-name="path37" class="cls-3" d="M2390.74,1017.36a35,35,0,0,0,.07-60.63L1816.4,624.14a105,105,0,0,0-105-.13L1136.16,955.18a35,35,0,0,0-.08,60.63l574.43,332.58a105,105,0,0,0,105,.13l575.22-331.16Z"/><text class="cls-4" transform="translate(1020.22 2740.76)">T<tspan class="cls-5" x="263.67" y="0">ile</tspan></text><text class="cls-6" transform="translate(1788.42 2740.76)">OS</text></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,7 @@
[Desktop Entry]
Name=TileOS Welcome
Exec=/usr/bin/tileos-welcome
Icon=tileos-logo.svg
Type=Application
Terminal=false
Categories=Settings;

View file

@ -22,10 +22,12 @@ import os
import signal import signal
import sys import sys
import subprocess import subprocess
from PyQt6.QtWidgets import (QApplication, QMainWindow) from pathlib import Path
from PyQt6.QtGui import QPixmap from PyQt6.QtWidgets import (QApplication, QMainWindow, QDialog)
from PyQt6.QtCore import Qt from PyQt6.QtGui import QPixmap, QIcon
from PyQt6.QtCore import Qt, QDir
from tileos_welcome.ui_mainwindow import Ui_MainWindow from tileos_welcome.ui_mainwindow import Ui_MainWindow
from tileos_welcome.ui_warning import Ui_WarningMessage
def get_config_home(): def get_config_home():
config_home = os.getenv('XDG_CONFIG_HOME') if os.getenv('XDG_CONFIG_HOME') else os.path.join( 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__) dir_name = os.path.dirname(__file__)
config_home = get_config_home() config_home = get_config_home()
user = os.getlogin() 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/") 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") autostart_desktop_file = os.path.join(config_home, autostart_dir, "tileos-welcome.desktop")
class MainWindow(QMainWindow): class MainWindow(QMainWindow):
@ -45,8 +48,11 @@ class MainWindow(QMainWindow):
self.ui = Ui_MainWindow() self.ui = Ui_MainWindow()
self.ui.setupUi(self) self.ui.setupUi(self)
# Icons for buttons
QDir.addSearchPath("icons", icons)
# Background # 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) page_pixmap = QPixmap(page_label).scaled(600, 300, Qt.AspectRatioMode.KeepAspectRatio)
self.ui.logo.setPixmap(page_pixmap) self.ui.logo.setPixmap(page_pixmap)
self.ui.logo2.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 # Detect running compositor and adapt Wiki button text to it
if os.getenv("SWAYSOCK"): if os.getenv("SWAYSOCK"):
self.ui.btnWiki.setText("Sway Wiki") self.ui.btnWiki.setText("Sway Wiki")
self.ui.btnWiki.setIcon(QIcon("icons:sway.png"))
# Page 1 # 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.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.clicked.connect(self.on_page_switch)
self.ui.btnNext.setIcon(QIcon.fromTheme("go-next"))
self.ui.btnQuit.clicked.connect(self.exitApp) self.ui.btnQuit.clicked.connect(self.exitApp)
self.ui.btnQuit.setIcon(QIcon("icons:exit.svg"))
# Page 2 # Page 2
self.ui.btnGTK.clicked.connect(self.on_clicked_gtk_theme) 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.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.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.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.clicked.connect(self.on_page_switch)
self.ui.btnPrev.setIcon(QIcon.fromTheme("go-previous"))
self.ui.btnExit.clicked.connect(self.exitApp) 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): def on_clicked_partition(self):
subprocess.run("xhost +si:localuser:root && pkexec /usr/sbin/gparted && xhost -si:localuser:root &", shell=True) subprocess.run("xhost +si:localuser:root && pkexec /usr/sbin/gparted && xhost -si:localuser:root &", shell=True)
def on_clicked_website(self): def on_clicked_website(self):
subprocess.run("xdg-open", "https://tile-os.com") subprocess.run(["xdg-open", "https://tile-os.com"])
# TODO documentation link # TODO documentation link
def on_clicked_tracker(self): 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): 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): 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): def on_clicked_gtk_theme(self):
subprocess.run("/usr/bin/nwg-look") subprocess.run("/usr/bin/nwg-look")
@ -114,6 +151,13 @@ class MainWindow(QMainWindow):
def exitApp(self): def exitApp(self):
self.close() self.close()
class WarningMessage(QDialog):
def __init__(self):
super().__init__()
self.warningDialog = Ui_WarningMessage()
self.warningDialog.setupUi(self)
def main(): def main():
app = QApplication(["Welcome to TileOS!"]) app = QApplication(["Welcome to TileOS!"])
app.setDesktopFileName("tileos-welcome") app.setDesktopFileName("tileos-welcome")

1020
tileos_welcome/resources.py Normal file

File diff suppressed because it is too large Load diff

View file

@ -74,6 +74,20 @@
</item> </item>
<item> <item>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="QPushButton" name="btnInstall">
<property name="text">
<string>Install TileOS</string>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">
<widget class="QPushButton" name="btnGprd">
<property name="text">
<string>Disk partitioning</string>
</property>
</widget>
</item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QPushButton" name="btnWebsite"> <widget class="QPushButton" name="btnWebsite">
<property name="text"> <property name="text">
@ -88,27 +102,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0" colspan="2">
<widget class="QPushButton" name="btnInstall">
<property name="text">
<string>Install TileOS</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="btnNext">
<property name="text">
<string>Next</string>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">
<widget class="QPushButton" name="btnGprd">
<property name="text">
<string>Disk partitioning</string>
</property>
</widget>
</item>
<item row="1" column="2"> <item row="1" column="2">
<widget class="QPushButton" name="btnIssue"> <widget class="QPushButton" name="btnIssue">
<property name="text"> <property name="text">
@ -130,6 +123,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1">
<widget class="QPushButton" name="btnTelegram">
<property name="text">
<string>Telegram Chat</string>
</property>
</widget>
</item>
<item row="2" column="2"> <item row="2" column="2">
<widget class="QPushButton" name="btnQuit"> <widget class="QPushButton" name="btnQuit">
<property name="text"> <property name="text">
@ -137,10 +137,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="2" column="3">
<widget class="QPushButton" name="btnTelegram"> <widget class="QPushButton" name="btnNext">
<property name="text"> <property name="text">
<string>Telegram Chat</string> <string>Next</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -277,6 +277,27 @@
</layout> </layout>
</widget> </widget>
</widget> </widget>
<tabstops>
<tabstop>btnInstall</tabstop>
<tabstop>btnGprd</tabstop>
<tabstop>btnWebsite</tabstop>
<tabstop>btnDoc</tabstop>
<tabstop>btnIssue</tabstop>
<tabstop>btnContrib</tabstop>
<tabstop>btnWiki</tabstop>
<tabstop>btnTelegram</tabstop>
<tabstop>btnQuit</tabstop>
<tabstop>btnNext</tabstop>
<tabstop>btnGTK</tabstop>
<tabstop>btnKvantum</tabstop>
<tabstop>btnDisplay</tabstop>
<tabstop>btnShell</tabstop>
<tabstop>btnInput</tabstop>
<tabstop>btnSoftware</tabstop>
<tabstop>btnPrev</tabstop>
<tabstop>btnExit</tabstop>
<tabstop>checkAutostart</tabstop>
</tabstops>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>

View file

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WarningMessage</class>
<widget class="QDialog" name="WarningMessage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>100</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>640</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>640</width>
<height>100</height>
</size>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Your system is already installed! If you wish to reinstall it, boot from the installation media.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>WarningMessage</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>319</x>
<y>78</y>
</hint>
<hint type="destinationlabel">
<x>319</x>
<y>49</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -45,21 +45,18 @@ class Ui_MainWindow(object):
self.verticalLayout_2.addWidget(self.desc) self.verticalLayout_2.addWidget(self.desc)
self.gridLayout = QtWidgets.QGridLayout() self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout") 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 = QtWidgets.QPushButton(parent=self.page)
self.btnWebsite.setObjectName("btnWebsite") self.btnWebsite.setObjectName("btnWebsite")
self.gridLayout.addWidget(self.btnWebsite, 1, 0, 1, 1) self.gridLayout.addWidget(self.btnWebsite, 1, 0, 1, 1)
self.btnDoc = QtWidgets.QPushButton(parent=self.page) self.btnDoc = QtWidgets.QPushButton(parent=self.page)
self.btnDoc.setObjectName("btnDoc") self.btnDoc.setObjectName("btnDoc")
self.gridLayout.addWidget(self.btnDoc, 1, 1, 1, 1) 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 = QtWidgets.QPushButton(parent=self.page)
self.btnIssue.setObjectName("btnIssue") self.btnIssue.setObjectName("btnIssue")
self.gridLayout.addWidget(self.btnIssue, 1, 2, 1, 1) self.gridLayout.addWidget(self.btnIssue, 1, 2, 1, 1)
@ -70,12 +67,15 @@ class Ui_MainWindow(object):
self.btnWiki.setText("") self.btnWiki.setText("")
self.btnWiki.setObjectName("btnWiki") self.btnWiki.setObjectName("btnWiki")
self.gridLayout.addWidget(self.btnWiki, 2, 0, 1, 1) 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 = QtWidgets.QPushButton(parent=self.page)
self.btnTelegram.setObjectName("btnTelegram") self.btnTelegram.setObjectName("btnTelegram")
self.gridLayout.addWidget(self.btnTelegram, 2, 1, 1, 1) 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_2.addLayout(self.gridLayout)
self.verticalLayout_3.addLayout(self.verticalLayout_2) self.verticalLayout_3.addLayout(self.verticalLayout_2)
self.stackedWidget.addWidget(self.page) self.stackedWidget.addWidget(self.page)
@ -138,19 +138,37 @@ class Ui_MainWindow(object):
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(0) self.stackedWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow) 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): def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
self.desc.setText(_translate("MainWindow", "Want to learn more about the project? Please find the links below!")) 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.btnWebsite.setText(_translate("MainWindow", "Website"))
self.btnDoc.setText(_translate("MainWindow", "Documentation")) 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.btnIssue.setText(_translate("MainWindow", "Issue Tracker"))
self.btnContrib.setText(_translate("MainWindow", "Contribute")) self.btnContrib.setText(_translate("MainWindow", "Contribute"))
self.btnQuit.setText(_translate("MainWindow", "Quit"))
self.btnTelegram.setText(_translate("MainWindow", "Telegram Chat")) 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.desc2.setText(_translate("MainWindow", "Advanced options"))
self.btnSoftware.setText(_translate("MainWindow", "Install Software")) self.btnSoftware.setText(_translate("MainWindow", "Install Software"))
self.btnPrev.setText(_translate("MainWindow", "Previous")) self.btnPrev.setText(_translate("MainWindow", "Previous"))

View file

@ -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."))