|
|
|
#include "systeminstaller.h"
|
|
|
|
|
|
|
|
#include <QtGui>
|
|
|
|
#include <QStackedWidget>
|
|
|
|
#include <QPushButton>
|
|
|
|
#include <QGroupBox>
|
|
|
|
|
|
|
|
#include "pagemanager.h"
|
|
|
|
|
|
|
|
#include "pagelanguage.h"
|
|
|
|
#include "pagelicense.h"
|
|
|
|
#include "pagepartitioning.h"
|
|
|
|
#include "pageconfiguration.h"
|
|
|
|
#include "pageinstall.h"
|
|
|
|
#include "pagefinish.h"
|
|
|
|
|
|
|
|
#include "pagecfdisk.h"
|
|
|
|
|
|
|
|
SystemInstaller::SystemInstaller(QWidget *parent) :
|
|
|
|
QMainWindow(parent)
|
|
|
|
{
|
|
|
|
// need for QMainWindow
|
|
|
|
QWidget* centralWidget = new QWidget(this);
|
|
|
|
|
|
|
|
// buttons
|
|
|
|
QHBoxLayout* hbox_buttons = new QHBoxLayout;
|
|
|
|
|
|
|
|
m_butPrev = new QPushButton( tr("Prevoius") );
|
|
|
|
m_butNext = new QPushButton( tr("Next") );
|
|
|
|
|
|
|
|
hbox_buttons->addStretch();
|
|
|
|
hbox_buttons->addWidget( m_butPrev );
|
|
|
|
hbox_buttons->addWidget( m_butNext );
|
|
|
|
|
|
|
|
// right pannel = widget for pages + buttons
|
|
|
|
QStackedWidget* stackPages = new QStackedWidget;
|
|
|
|
|
|
|
|
QVBoxLayout* vbox_1 = new QVBoxLayout;
|
|
|
|
|
|
|
|
QGroupBox* group_box_page = new QGroupBox;
|
|
|
|
|
|
|
|
QVBoxLayout* group_box_page_l = new QVBoxLayout;
|
|
|
|
group_box_page_l->addWidget( stackPages );
|
|
|
|
|
|
|
|
group_box_page->setLayout( group_box_page_l );
|
|
|
|
|
|
|
|
vbox_1->addWidget( group_box_page );
|
|
|
|
vbox_1->addLayout( hbox_buttons );
|
|
|
|
|
|
|
|
// left pannel
|
|
|
|
QLabel* labelPages = new QLabel;
|
|
|
|
QGroupBox* group_box_list = new QGroupBox;
|
|
|
|
|
|
|
|
QVBoxLayout* group_box_list_l = new QVBoxLayout;
|
|
|
|
group_box_list_l->addWidget( labelPages );
|
|
|
|
|
|
|
|
group_box_list->setLayout( group_box_list_l );
|
|
|
|
|
|
|
|
// left + right pannels
|
|
|
|
QHBoxLayout* hbox_2 = new QHBoxLayout;
|
|
|
|
|
|
|
|
hbox_2->addWidget( group_box_list, 2 );
|
|
|
|
hbox_2->addLayout( vbox_1, 9);
|
|
|
|
|
|
|
|
// all window
|
|
|
|
QVBoxLayout* vbox_2 = new QVBoxLayout(centralWidget);
|
|
|
|
|
|
|
|
m_labelImage = new QLabel("");
|
|
|
|
m_labelImage->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
|
|
|
|
|
|
|
|
// logo
|
|
|
|
QImage logo( ":/img/calculate-logo.png" );
|
|
|
|
m_labelImage->setPixmap( QPixmap::fromImage(logo) );
|
|
|
|
|
|
|
|
vbox_2->addWidget( m_labelImage );
|
|
|
|
vbox_2->addLayout( hbox_2 );
|
|
|
|
|
|
|
|
setCentralWidget( centralWidget );
|
|
|
|
|
|
|
|
// minimum size for window TODO: remove magic numbers
|
|
|
|
setMinimumSize(800, 600);
|
|
|
|
QRect scr = QApplication::desktop()->screenGeometry();
|
|
|
|
move( scr.width() - scr.width()/2 - 800/2, scr.height() - scr.height()/2 - 600/2 );
|
|
|
|
|
|
|
|
// create PageManager and pages
|
|
|
|
m_PageManager = new PageManager(stackPages, labelPages, this);
|
|
|
|
|
|
|
|
PageLanguage* pageLanguage = new PageLanguage( tr("Language") );
|
|
|
|
connect( pageLanguage, SIGNAL(changeLanguage(int)), this, SLOT(changedLanguage(int)) );
|
|
|
|
|
|
|
|
m_PageManager->addPage(pageLanguage);
|
|
|
|
|
|
|
|
PageLicense* pageLicense = new PageLicense( tr("License") );
|
|
|
|
connect( pageLicense, SIGNAL(changeNext(bool)), this, SLOT(changedNext(bool)) );
|
|
|
|
m_PageManager->addPage(pageLicense);
|
|
|
|
|
|
|
|
PagePartitioning* pagePartitoning = new PagePartitioning( tr("Partitioning") );
|
|
|
|
connect( pagePartitoning, SIGNAL(manualyPartitioning(QString)), this, SLOT(doPartitioning(QString)) );
|
|
|
|
connect( pagePartitoning, SIGNAL(selectedVolume(QString)), this, SLOT(volumeSelect(QString)) );
|
|
|
|
m_PageManager->addPage(pagePartitoning);
|
|
|
|
|
|
|
|
PageConfiguration* pageConfiguration = new PageConfiguration( tr("Configuring") );
|
|
|
|
connect( pageConfiguration, SIGNAL(selectedSettings(InstallerSettings)),
|
|
|
|
this, SLOT(configurationSelect(InstallerSettings))
|
|
|
|
);
|
|
|
|
m_PageManager->addPage(pageConfiguration);
|
|
|
|
|
|
|
|
PageInstall* pageInstall = new PageInstall( tr("Installing"), &m_InstallSettings );
|
|
|
|
// connect( this, )
|
|
|
|
connect( pageInstall, SIGNAL(changeNext(bool)), this, SLOT(changedNext(bool)) );
|
|
|
|
connect( pageInstall, SIGNAL(changePrev(bool)), this, SLOT(changedPrev(bool)) );
|
|
|
|
m_PageManager->addPage(pageInstall);
|
|
|
|
|
|
|
|
PageFinish* pageFinish = new PageFinish( tr("Complete") );
|
|
|
|
m_PageManager->addPage(pageFinish);
|
|
|
|
|
|
|
|
m_PageManager->showFirst();
|
|
|
|
|
|
|
|
connect( m_butNext, SIGNAL(clicked()), m_PageManager, SLOT(showNext()) );
|
|
|
|
connect( m_butPrev, SIGNAL(clicked()), m_PageManager, SLOT(showPrevious()) );
|
|
|
|
}
|
|
|
|
|
|
|
|
SystemInstaller::~SystemInstaller()
|
|
|
|
{
|
|
|
|
delete m_PageManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SystemInstaller::changedNext(bool state)
|
|
|
|
{
|
|
|
|
m_butNext->setEnabled(state);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SystemInstaller::changedPrev(bool state)
|
|
|
|
{
|
|
|
|
m_butPrev->setEnabled(state);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SystemInstaller::changedLanguage(int lang)
|
|
|
|
{
|
|
|
|
Q_UNUSED(lang);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SystemInstaller::doPartitioning(QString disk)
|
|
|
|
{
|
|
|
|
m_PageCfdisk = new PageCfdisk("Partitioning", disk);
|
|
|
|
m_PageManager->showOnce(m_PageCfdisk);
|
|
|
|
connect( m_PageCfdisk, SIGNAL(completed()), this, SLOT(completePartitioning()) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void SystemInstaller::completePartitioning()
|
|
|
|
{
|
|
|
|
delete m_PageCfdisk;
|
|
|
|
m_PageManager->showPrevious();
|
|
|
|
}
|
|
|
|
|
|
|
|
void SystemInstaller::volumeSelect(QString volume)
|
|
|
|
{
|
|
|
|
qDebug() << "Selected volume is " << volume;
|
|
|
|
m_InstallSettings.disk = volume;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SystemInstaller::configurationSelect(InstallerSettings settings)
|
|
|
|
{
|
|
|
|
qDebug() << "Selected settings: ";
|
|
|
|
qDebug() << "Host: " << settings.host;
|
|
|
|
qDebug() << "FS: " << settings.fs;
|
|
|
|
qDebug() << "Language: " << settings.language;
|
|
|
|
qDebug() << "Timezone: " << settings.timezone;
|
|
|
|
|
|
|
|
// replace selected volume
|
|
|
|
settings.disk = m_InstallSettings.disk;
|
|
|
|
m_InstallSettings = settings;
|
|
|
|
}
|