You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
installer-prompt/src/installerprompt.cpp

57 lines
1.7 KiB

#include <QProcess>
#include <QScreen>
#include "installerprompt.h"
#include "./ui_installerprompt.h"
InstallerPrompt::InstallerPrompt(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::InstallerPrompt)
{
ui->setupUi(this);
// Set the background image and scale it
QPixmap bg("/usr/share/lubuntu/installer-prompt/background.png");
QScreen *screen = QGuiApplication::primaryScreen();
QRect screenGeometry = screen->geometry();
int height = screenGeometry.height();
int width = screenGeometry.width();
bg = bg.scaled(width, height, Qt::IgnoreAspectRatio);
QPalette palette;
palette.setBrush(QPalette::Window, bg);
this->setPalette(palette);
// Resize the layout widget to the screen size.
ui->gridLayoutWidget->resize(width, height);
// Set the buttons to be translucent
ui->tryLubuntu->setAttribute(Qt::WA_TranslucentBackground);
ui->installLubuntu->setAttribute(Qt::WA_TranslucentBackground);
// Slots and signals
connect(ui->tryLubuntu, &QAbstractButton::clicked, this, &InstallerPrompt::tryLubuntu);
connect(ui->installLubuntu, &QAbstractButton::clicked, this, &InstallerPrompt::installLubuntu);
}
void InstallerPrompt::tryLubuntu()
{
QApplication::quit();
}
void InstallerPrompt::installLubuntu()
{
ui->tryLubuntu->setVisible(false);
ui->installLubuntu->setVisible(false);
QProcess *calamares = new QProcess(this);
calamares->start("/usr/libexec/lubuntu-installer");
// If Calamares exits, it either crashed or the user cancelled the installation. Exit the installer prompt (and start LXQt).
connect(calamares, &QProcess::finished, this, &InstallerPrompt::tryLubuntu);
}
InstallerPrompt::~InstallerPrompt()
{
delete ui;
}