Modifing configuration page. Added executed string and expert

parameters.
new_installer
ivan 14 years ago
parent f3b76757f2
commit 25ba331c98

@ -5,11 +5,13 @@
#include <QComboBox>
#include <QLineEdit>
#include <QCheckBox>
#include <QApplication>
#include <QDebug>
PageConfiguration::PageConfiguration(const QString* language) :
PageConfiguration::PageConfiguration(const QString* disk, const QString* language) :
InstallerPage( ),
m_Disk(disk),
m_Lang(language)
{
setupUi();
@ -21,13 +23,25 @@ void PageConfiguration::setupUi()
m_labelHelp = new QLabel;
// mode
QHBoxLayout* hbox_builder = new QHBoxLayout;
m_labelBuilder = new QLabel;
m_chkboxBuilder = new QCheckBox;
m_chkboxBuilder->setLayoutDirection( Qt::RightToLeft );
hbox_builder->addWidget(m_labelBuilder);
hbox_builder->addWidget(m_chkboxBuilder);
QHBoxLayout* hbox_force = new QHBoxLayout;
m_labelForce = new QLabel;
m_chkboxForce = new QCheckBox;
m_chkboxForce->setLayoutDirection( Qt::RightToLeft );
hbox_force->addWidget(m_labelForce);
hbox_force->addWidget(m_chkboxForce);
// hostname
QHBoxLayout* hbox_hostname = new QHBoxLayout;
m_labelHostName = new QLabel;
m_editHostname = new QLineEdit;
m_editHostname->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_hostname->addWidget(m_labelHostName);
hbox_hostname->addWidget(m_editHostname);
@ -46,8 +60,13 @@ void PageConfiguration::setupUi()
hbox_timezone->addWidget(m_cmbboxTimezone);
// erase
QHBoxLayout* hbox_erase = new QHBoxLayout;
m_labelErase = new QLabel;
m_chkboxErase = new QCheckBox;
m_chkboxErase->setLayoutDirection( Qt::RightToLeft );
m_chkboxErase->setChecked(true);
hbox_erase->addWidget(m_labelErase);
hbox_erase->addWidget(m_chkboxErase);
// fs format
QHBoxLayout* hbox_fsformat = new QHBoxLayout;
@ -57,11 +76,36 @@ void PageConfiguration::setupUi()
hbox_fsformat->addWidget(m_cmbboxFormat);
// #-mbr-# [w] "on"
QHBoxLayout* hbox_writembr = new QHBoxLayout;
m_labelWriteMbr = new QLabel;
m_chkboxWriteMbr = new QCheckBox;
m_chkboxWriteMbr->setLayoutDirection( Qt::RightToLeft );
m_chkboxWriteMbr->setChecked(true);
hbox_writembr->addWidget(m_labelWriteMbr);
hbox_writembr->addWidget(m_chkboxWriteMbr);
// #-uuid-# [w] "off"
QHBoxLayout* hbox_useuuid = new QHBoxLayout;
m_labelUseUUID = new QLabel;
m_chkboxUseUUID = new QCheckBox;
m_chkboxUseUUID->setLayoutDirection( Qt::RightToLeft );
hbox_useuuid->addWidget(m_labelUseUUID);
hbox_useuuid->addWidget(m_chkboxUseUUID);
// composite
QHBoxLayout* hbox_composite = new QHBoxLayout;
m_labelComposite = new QLabel;
m_chkboxComposite = new QCheckBox;
m_chkboxComposite->setLayoutDirection( Qt::RightToLeft );
m_chkboxComposite->setChecked(true);
hbox_composite->addWidget(m_labelComposite);
hbox_composite->addWidget(m_chkboxComposite);
// extended parameters
m_chkboxExtParameters = new QCheckBox;
m_widgetExtParameters = new QWidget;
QVBoxLayout* vbox_extparam = new QVBoxLayout;
// #-type-# [w] ["hdd", "flash", "usb-hdd"]
QHBoxLayout* hbox_disktype = new QHBoxLayout;
@ -76,49 +120,83 @@ void PageConfiguration::setupUi()
m_cmbboxVideoDrv = new QComboBox;
hbox_videodrv->addWidget(m_labelVideoDrv);
hbox_videodrv->addWidget(m_cmbboxVideoDrv);
/*
// #-video_resolution-# [w] "1366x768"
QHBoxLayout* hbox_videores = new QHBoxLayout;
m_labelVideoRes = new QLabel;
m_editVideoRes = new QLineEdit;
m_editVideoRes->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_videores->addWidget(m_labelVideoRes);
hbox_videores->addWidget(m_editVideoRes);
*/
// composite
m_chkboxComposite = new QCheckBox;
m_chkboxComposite->setChecked(true);
/*
// #-scheduler-# [w] "cfq" [noop, deadline]
QHBoxLayout* hbox_cpushed = new QHBoxLayout;
m_labelIOShed = new QLabel;
m_cmbboxIOShed = new QComboBox;
hbox_cpushed->addWidget(m_labelIOShed);
hbox_cpushed->addWidget(m_cmbboxIOShed);
*/
vbox_extparam->addLayout(hbox_disktype);
vbox_extparam->addLayout(hbox_videodrv);
vbox_extparam->addLayout(hbox_videores);
vbox_extparam->addLayout(hbox_cpushed);
m_widgetExtParameters->setLayout(vbox_extparam);
m_widgetExtParameters->setVisible(false);
connect(m_chkboxExtParameters, SIGNAL(toggled(bool)), m_widgetExtParameters, SLOT(setVisible(bool)) );
// command
m_labelDescCommand = new QLabel;
m_labelCommand = new QLabel;
QFont fontCmd = QApplication::font();
fontCmd.setFamily("Droid Sans Mono");
m_labelCommand->setFont( fontCmd );
m_labelCommand->setWordWrap(true);
//
QVBoxLayout* vbox_1 = new QVBoxLayout;
vbox_1->addWidget( m_labelHelp );
vbox_1->addWidget(m_chkboxBuilder);
vbox_1->addWidget(m_chkboxForce);
vbox_1->addLayout(hbox_hostname);
vbox_1->addLayout(hbox_language);
vbox_1->addLayout(hbox_timezone);
vbox_1->addWidget(m_chkboxErase);
vbox_1->addLayout(hbox_fsformat);
vbox_1->addWidget(m_chkboxWriteMbr);
vbox_1->addWidget(m_chkboxUseUUID);
vbox_1->addLayout(hbox_disktype);
vbox_1->addLayout(hbox_videodrv);
//vbox_1->addLayout(hbox_videores);
vbox_1->addWidget(m_chkboxComposite);
//vbox_1->addLayout(hbox_cpushed);
vbox_1->addStretch();
QVBoxLayout* vbox_pageconf = new QVBoxLayout;
vbox_pageconf->addWidget( m_labelHelp );
vbox_pageconf->addLayout(hbox_builder);
vbox_pageconf->addLayout(hbox_force);
vbox_pageconf->addLayout(hbox_hostname);
vbox_pageconf->addLayout(hbox_language);
vbox_pageconf->addLayout(hbox_timezone);
vbox_pageconf->addLayout(hbox_erase);
vbox_pageconf->addLayout(hbox_fsformat);
vbox_pageconf->addLayout(hbox_writembr);
vbox_pageconf->addLayout(hbox_useuuid);
vbox_pageconf->addLayout(hbox_composite);
vbox_pageconf->addWidget(m_chkboxExtParameters);
vbox_pageconf->addWidget(m_widgetExtParameters);
vbox_pageconf->addStretch();
vbox_pageconf->addWidget(m_labelDescCommand);
vbox_pageconf->addWidget(m_labelCommand);
//
setLayout( vbox_1 );
setLayout( vbox_pageconf );
retranslateUi();
mapSignals();
}
void PageConfiguration::mapSignals()
{
connect(m_chkboxBuilder, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
connect(m_chkboxForce, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
connect(m_editHostname, SIGNAL(textChanged(QString)), this, SLOT(generateCommand()));
connect(m_cmbboxLanguage, SIGNAL(currentIndexChanged(int)), this, SLOT(generateCommand()));
connect(m_cmbboxTimezone, SIGNAL(currentIndexChanged(int)), this, SLOT(generateCommand()));
connect(m_chkboxErase, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
connect(m_cmbboxFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(generateCommand()));
connect(m_chkboxWriteMbr, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
connect(m_chkboxUseUUID, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
connect(m_cmbboxDiskType, SIGNAL(currentIndexChanged(int)), this, SLOT(generateCommand()));
connect(m_cmbboxVideoDrv, SIGNAL(currentIndexChanged(int)), this, SLOT(generateCommand()));
connect(m_editVideoRes, SIGNAL(textChanged(QString)), this, SLOT(generateCommand()));
connect(m_chkboxComposite, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
connect(m_cmbboxIOShed, SIGNAL(currentIndexChanged(int)), this, SLOT(generateCommand()));
connect(m_chkboxExtParameters, SIGNAL(toggled(bool)), this, SLOT(generateCommand()));
}
void PageConfiguration::retranslateUi()
@ -127,8 +205,8 @@ void PageConfiguration::retranslateUi()
m_labelHelp->setText( tr("Select parameters: ") );
m_chkboxBuilder->setText( tr("Installation for assembling") );
m_chkboxForce->setText( tr("Do not prompt before overwriting") );
m_labelBuilder->setText( tr("Installation for assembling") );
m_labelForce->setText( tr("Do not prompt before overwriting") );
m_labelHostName->setText( tr("Hostname: ") );
m_editHostname->setText( "calculate" );
@ -733,9 +811,9 @@ void PageConfiguration::retranslateUi()
m_cmbboxTimezone->addItem( "W-SU" );
m_cmbboxTimezone->addItem( "Zulu" );
m_chkboxErase->setText( tr("Format root partition before installing") );
m_chkboxWriteMbr->setText( tr("Install bootloader to MBR") );
m_chkboxUseUUID->setText( tr("Use UUID for mounting partitions") );
m_labelErase->setText( tr("Format root partition before installing") );
m_labelWriteMbr->setText( tr("Install bootloader to MBR") );
m_labelUseUUID->setText( tr("Use UUID for mounting partitions") );
m_labelDiskType->setText( tr("Disk type:") );
m_cmbboxDiskType->clear();
@ -743,7 +821,7 @@ void PageConfiguration::retranslateUi()
m_cmbboxDiskType->addItem("flash");
m_cmbboxDiskType->addItem("usb-hdd");
m_labelVideoDrv->setText("Video driver:");
m_labelVideoDrv->setText( tr("Video driver:") );
m_cmbboxVideoDrv->clear();
m_cmbboxVideoDrv->addItem("fglrx");
m_cmbboxVideoDrv->addItem("intel");
@ -752,18 +830,23 @@ void PageConfiguration::retranslateUi()
m_cmbboxVideoDrv->addItem("radeon");
m_cmbboxVideoDrv->addItem("vesa");
m_cmbboxVideoDrv->addItem("vmware");
/*
m_labelComposite->setText( tr("Use composite") );
m_chkboxExtParameters->setText( tr("Expert settings") );
m_labelVideoRes->setText( tr("Video resolution") );
m_editVideoRes->setText( "800x600" );
*/
m_chkboxComposite->setText( tr("Use composite") );
/*
m_labelIOShed->setText( tr("IO sheduler:") );
m_cmbboxIOShed->clear();
m_cmbboxIOShed->addItem("cfq");
m_cmbboxIOShed->addItem("noop");
m_cmbboxIOShed->addItem("deadline");
*/
m_labelDescCommand->setText( tr("Command for install:") );
}
@ -793,3 +876,32 @@ bool PageConfiguration::validate()
}
}
void PageConfiguration::generateCommand()
{
QString cmd = "calculate ";
cmd += m_chkboxBuilder->isChecked() ? "--build " : "";
cmd += m_chkboxForce->isChecked() ? "--force " : "";
cmd += QString("--disk=%1 ").arg( *m_Disk );
cmd += QString("--set-hostname=%1 ").arg( m_editHostname->text() );
cmd += QString("--set-lang=%1 ").arg( m_cmbboxLanguage->itemData(m_cmbboxLanguage->currentIndex()).toString() );
cmd += QString("--set-timezone=%1 ").arg( m_cmbboxTimezone->currentText() );
cmd += QString("--set-format=%1 ").arg( m_cmbboxFormat->currentText() );
cmd += m_chkboxErase->isChecked() ? "--set-erase=yes " : "";
cmd += m_chkboxWriteMbr->isChecked() ? "--set-mbr=yes " : "";
cmd += m_chkboxUseUUID->isChecked() ? "--set-uuid=yes " : "";
cmd += m_chkboxComposite->isChecked() ? "--set-composite=yes " : "";
if (m_chkboxExtParameters->isChecked())
{
cmd += QString("--set-type=%1 ").arg( m_cmbboxDiskType->currentText() );
cmd += QString("--set-video_drv=%1 ").arg( m_cmbboxVideoDrv->currentText() );
cmd += QString("--set-video_resolution=%1 ").arg( m_editVideoRes->text() );
cmd += QString("--set-scheduler=%1 ").arg( m_cmbboxIOShed->currentText() );
}
m_labelCommand->setText(cmd);
}
void PageConfiguration::show()
{
generateCommand();
}

@ -12,7 +12,7 @@ class PageConfiguration : public InstallerPage
{
Q_OBJECT
public:
explicit PageConfiguration(const QString* language);
explicit PageConfiguration(const QString* disk, const QString* language);
bool validate();
void retranslateUi();
@ -20,17 +20,27 @@ public:
protected:
void setupUi();
private:
void mapSignals();
public slots:
void show();
private slots:
void generateCommand();
signals:
void selectedSettings(InstallerSettings);
private:
const QString* m_Disk;
const QString* m_Lang;
QLabel* m_labelHelp;
QLabel* m_labelBuilder;
QCheckBox* m_chkboxBuilder;
QLabel* m_labelForce;
QCheckBox* m_chkboxForce;
QLabel* m_labelHostName;
@ -42,21 +52,32 @@ private:
QLabel* m_labelTimezone;
QComboBox* m_cmbboxTimezone;
QLabel* m_labelErase;
QCheckBox* m_chkboxErase;
QLabel* m_labelFormat;
QComboBox* m_cmbboxFormat;
QLabel* m_labelWriteMbr;
QCheckBox* m_chkboxWriteMbr;
QLabel* m_labelUseUUID;
QCheckBox* m_chkboxUseUUID;
QLabel* m_labelComposite;
QCheckBox* m_chkboxComposite;
QCheckBox* m_chkboxExtParameters;
QWidget* m_widgetExtParameters;
QLabel* m_labelDiskType;
QComboBox* m_cmbboxDiskType;
QLabel* m_labelVideoDrv;
QComboBox* m_cmbboxVideoDrv;
QLabel* m_labelVideoRes;
QLineEdit* m_editVideoRes;
QCheckBox* m_chkboxComposite;
QLabel* m_labelIOShed;
QComboBox* m_cmbboxIOShed;
QLabel* m_labelDescCommand;
QLabel* m_labelCommand;
};

@ -139,7 +139,7 @@ void PagePartitioning::show()
try {
part_list = libParted->getPartitionList(dev);
qDebug() << part_list.size();
//qDebug() << part_list.size();
}
catch(LibPartedError e)
{

@ -127,7 +127,7 @@ void SystemInstaller::setupInstallerPages()
connect( pagePartitoning, SIGNAL(selectedVolume(QString)), this, SLOT(selectVolume(QString)) );
m_PageManager->addPage(pagePartitoning);
PageConfiguration* pageConfiguration( new PageConfiguration(&m_CurrentLanguage) );
PageConfiguration* pageConfiguration( new PageConfiguration(&m_InstallSettings.disk, &m_CurrentLanguage) );
connect( pageConfiguration, SIGNAL(selectedSettings(InstallerSettings)),
this, SLOT(selectConfiguration(InstallerSettings))
);

Loading…
Cancel
Save