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 <QComboBox>
#include <QLineEdit> #include <QLineEdit>
#include <QCheckBox> #include <QCheckBox>
#include <QApplication>
#include <QDebug> #include <QDebug>
PageConfiguration::PageConfiguration(const QString* language) : PageConfiguration::PageConfiguration(const QString* disk, const QString* language) :
InstallerPage( ), InstallerPage( ),
m_Disk(disk),
m_Lang(language) m_Lang(language)
{ {
setupUi(); setupUi();
@ -21,13 +23,25 @@ void PageConfiguration::setupUi()
m_labelHelp = new QLabel; m_labelHelp = new QLabel;
// mode // mode
QHBoxLayout* hbox_builder = new QHBoxLayout;
m_labelBuilder = new QLabel;
m_chkboxBuilder = new QCheckBox; 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 = new QCheckBox;
m_chkboxForce->setLayoutDirection( Qt::RightToLeft );
hbox_force->addWidget(m_labelForce);
hbox_force->addWidget(m_chkboxForce);
// hostname // hostname
QHBoxLayout* hbox_hostname = new QHBoxLayout; QHBoxLayout* hbox_hostname = new QHBoxLayout;
m_labelHostName = new QLabel; m_labelHostName = new QLabel;
m_editHostname = new QLineEdit; m_editHostname = new QLineEdit;
m_editHostname->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_hostname->addWidget(m_labelHostName); hbox_hostname->addWidget(m_labelHostName);
hbox_hostname->addWidget(m_editHostname); hbox_hostname->addWidget(m_editHostname);
@ -46,8 +60,13 @@ void PageConfiguration::setupUi()
hbox_timezone->addWidget(m_cmbboxTimezone); hbox_timezone->addWidget(m_cmbboxTimezone);
// erase // erase
QHBoxLayout* hbox_erase = new QHBoxLayout;
m_labelErase = new QLabel;
m_chkboxErase = new QCheckBox; m_chkboxErase = new QCheckBox;
m_chkboxErase->setLayoutDirection( Qt::RightToLeft );
m_chkboxErase->setChecked(true); m_chkboxErase->setChecked(true);
hbox_erase->addWidget(m_labelErase);
hbox_erase->addWidget(m_chkboxErase);
// fs format // fs format
QHBoxLayout* hbox_fsformat = new QHBoxLayout; QHBoxLayout* hbox_fsformat = new QHBoxLayout;
@ -57,11 +76,36 @@ void PageConfiguration::setupUi()
hbox_fsformat->addWidget(m_cmbboxFormat); hbox_fsformat->addWidget(m_cmbboxFormat);
// #-mbr-# [w] "on" // #-mbr-# [w] "on"
QHBoxLayout* hbox_writembr = new QHBoxLayout;
m_labelWriteMbr = new QLabel;
m_chkboxWriteMbr = new QCheckBox; m_chkboxWriteMbr = new QCheckBox;
m_chkboxWriteMbr->setLayoutDirection( Qt::RightToLeft );
m_chkboxWriteMbr->setChecked(true); m_chkboxWriteMbr->setChecked(true);
hbox_writembr->addWidget(m_labelWriteMbr);
hbox_writembr->addWidget(m_chkboxWriteMbr);
// #-uuid-# [w] "off" // #-uuid-# [w] "off"
QHBoxLayout* hbox_useuuid = new QHBoxLayout;
m_labelUseUUID = new QLabel;
m_chkboxUseUUID = new QCheckBox; 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"] // #-type-# [w] ["hdd", "flash", "usb-hdd"]
QHBoxLayout* hbox_disktype = new QHBoxLayout; QHBoxLayout* hbox_disktype = new QHBoxLayout;
@ -76,49 +120,83 @@ void PageConfiguration::setupUi()
m_cmbboxVideoDrv = new QComboBox; m_cmbboxVideoDrv = new QComboBox;
hbox_videodrv->addWidget(m_labelVideoDrv); hbox_videodrv->addWidget(m_labelVideoDrv);
hbox_videodrv->addWidget(m_cmbboxVideoDrv); hbox_videodrv->addWidget(m_cmbboxVideoDrv);
/*
// #-video_resolution-# [w] "1366x768" // #-video_resolution-# [w] "1366x768"
QHBoxLayout* hbox_videores = new QHBoxLayout; QHBoxLayout* hbox_videores = new QHBoxLayout;
m_labelVideoRes = new QLabel; m_labelVideoRes = new QLabel;
m_editVideoRes = new QLineEdit; m_editVideoRes = new QLineEdit;
m_editVideoRes->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_videores->addWidget(m_labelVideoRes); hbox_videores->addWidget(m_labelVideoRes);
hbox_videores->addWidget(m_editVideoRes); hbox_videores->addWidget(m_editVideoRes);
*/
// composite
m_chkboxComposite = new QCheckBox;
m_chkboxComposite->setChecked(true);
/*
// #-scheduler-# [w] "cfq" [noop, deadline] // #-scheduler-# [w] "cfq" [noop, deadline]
QHBoxLayout* hbox_cpushed = new QHBoxLayout; QHBoxLayout* hbox_cpushed = new QHBoxLayout;
m_labelIOShed = new QLabel; m_labelIOShed = new QLabel;
m_cmbboxIOShed = new QComboBox; m_cmbboxIOShed = new QComboBox;
hbox_cpushed->addWidget(m_labelIOShed); hbox_cpushed->addWidget(m_labelIOShed);
hbox_cpushed->addWidget(m_cmbboxIOShed); 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; QVBoxLayout* vbox_pageconf = new QVBoxLayout;
vbox_1->addWidget( m_labelHelp ); vbox_pageconf->addWidget( m_labelHelp );
vbox_1->addWidget(m_chkboxBuilder); vbox_pageconf->addLayout(hbox_builder);
vbox_1->addWidget(m_chkboxForce); vbox_pageconf->addLayout(hbox_force);
vbox_1->addLayout(hbox_hostname); vbox_pageconf->addLayout(hbox_hostname);
vbox_1->addLayout(hbox_language); vbox_pageconf->addLayout(hbox_language);
vbox_1->addLayout(hbox_timezone); vbox_pageconf->addLayout(hbox_timezone);
vbox_1->addWidget(m_chkboxErase); vbox_pageconf->addLayout(hbox_erase);
vbox_1->addLayout(hbox_fsformat); vbox_pageconf->addLayout(hbox_fsformat);
vbox_1->addWidget(m_chkboxWriteMbr); vbox_pageconf->addLayout(hbox_writembr);
vbox_1->addWidget(m_chkboxUseUUID); vbox_pageconf->addLayout(hbox_useuuid);
vbox_1->addLayout(hbox_disktype); vbox_pageconf->addLayout(hbox_composite);
vbox_1->addLayout(hbox_videodrv); vbox_pageconf->addWidget(m_chkboxExtParameters);
//vbox_1->addLayout(hbox_videores); vbox_pageconf->addWidget(m_widgetExtParameters);
vbox_1->addWidget(m_chkboxComposite);
//vbox_1->addLayout(hbox_cpushed); vbox_pageconf->addStretch();
vbox_1->addStretch(); vbox_pageconf->addWidget(m_labelDescCommand);
vbox_pageconf->addWidget(m_labelCommand);
// //
setLayout( vbox_pageconf );
setLayout( vbox_1 );
retranslateUi(); 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() void PageConfiguration::retranslateUi()
@ -127,8 +205,8 @@ void PageConfiguration::retranslateUi()
m_labelHelp->setText( tr("Select parameters: ") ); m_labelHelp->setText( tr("Select parameters: ") );
m_chkboxBuilder->setText( tr("Installation for assembling") ); m_labelBuilder->setText( tr("Installation for assembling") );
m_chkboxForce->setText( tr("Do not prompt before overwriting") ); m_labelForce->setText( tr("Do not prompt before overwriting") );
m_labelHostName->setText( tr("Hostname: ") ); m_labelHostName->setText( tr("Hostname: ") );
m_editHostname->setText( "calculate" ); m_editHostname->setText( "calculate" );
@ -733,9 +811,9 @@ void PageConfiguration::retranslateUi()
m_cmbboxTimezone->addItem( "W-SU" ); m_cmbboxTimezone->addItem( "W-SU" );
m_cmbboxTimezone->addItem( "Zulu" ); m_cmbboxTimezone->addItem( "Zulu" );
m_chkboxErase->setText( tr("Format root partition before installing") ); m_labelErase->setText( tr("Format root partition before installing") );
m_chkboxWriteMbr->setText( tr("Install bootloader to MBR") ); m_labelWriteMbr->setText( tr("Install bootloader to MBR") );
m_chkboxUseUUID->setText( tr("Use UUID for mounting partitions") ); m_labelUseUUID->setText( tr("Use UUID for mounting partitions") );
m_labelDiskType->setText( tr("Disk type:") ); m_labelDiskType->setText( tr("Disk type:") );
m_cmbboxDiskType->clear(); m_cmbboxDiskType->clear();
@ -743,7 +821,7 @@ void PageConfiguration::retranslateUi()
m_cmbboxDiskType->addItem("flash"); m_cmbboxDiskType->addItem("flash");
m_cmbboxDiskType->addItem("usb-hdd"); m_cmbboxDiskType->addItem("usb-hdd");
m_labelVideoDrv->setText("Video driver:"); m_labelVideoDrv->setText( tr("Video driver:") );
m_cmbboxVideoDrv->clear(); m_cmbboxVideoDrv->clear();
m_cmbboxVideoDrv->addItem("fglrx"); m_cmbboxVideoDrv->addItem("fglrx");
m_cmbboxVideoDrv->addItem("intel"); m_cmbboxVideoDrv->addItem("intel");
@ -752,18 +830,23 @@ void PageConfiguration::retranslateUi()
m_cmbboxVideoDrv->addItem("radeon"); m_cmbboxVideoDrv->addItem("radeon");
m_cmbboxVideoDrv->addItem("vesa"); m_cmbboxVideoDrv->addItem("vesa");
m_cmbboxVideoDrv->addItem("vmware"); m_cmbboxVideoDrv->addItem("vmware");
/*
m_labelComposite->setText( tr("Use composite") );
m_chkboxExtParameters->setText( tr("Expert settings") );
m_labelVideoRes->setText( tr("Video resolution") ); m_labelVideoRes->setText( tr("Video resolution") );
m_editVideoRes->setText( "800x600" ); m_editVideoRes->setText( "800x600" );
*/
m_chkboxComposite->setText( tr("Use composite") );
/*
m_labelIOShed->setText( tr("IO sheduler:") ); m_labelIOShed->setText( tr("IO sheduler:") );
m_cmbboxIOShed->clear(); m_cmbboxIOShed->clear();
m_cmbboxIOShed->addItem("cfq"); m_cmbboxIOShed->addItem("cfq");
m_cmbboxIOShed->addItem("noop"); m_cmbboxIOShed->addItem("noop");
m_cmbboxIOShed->addItem("deadline"); 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 Q_OBJECT
public: public:
explicit PageConfiguration(const QString* language); explicit PageConfiguration(const QString* disk, const QString* language);
bool validate(); bool validate();
void retranslateUi(); void retranslateUi();
@ -20,17 +20,27 @@ public:
protected: protected:
void setupUi(); void setupUi();
private:
void mapSignals();
public slots: public slots:
void show();
private slots:
void generateCommand();
signals: signals:
void selectedSettings(InstallerSettings); void selectedSettings(InstallerSettings);
private: private:
const QString* m_Disk;
const QString* m_Lang; const QString* m_Lang;
QLabel* m_labelHelp; QLabel* m_labelHelp;
QLabel* m_labelBuilder;
QCheckBox* m_chkboxBuilder; QCheckBox* m_chkboxBuilder;
QLabel* m_labelForce;
QCheckBox* m_chkboxForce; QCheckBox* m_chkboxForce;
QLabel* m_labelHostName; QLabel* m_labelHostName;
@ -42,21 +52,32 @@ private:
QLabel* m_labelTimezone; QLabel* m_labelTimezone;
QComboBox* m_cmbboxTimezone; QComboBox* m_cmbboxTimezone;
QLabel* m_labelErase;
QCheckBox* m_chkboxErase; QCheckBox* m_chkboxErase;
QLabel* m_labelFormat; QLabel* m_labelFormat;
QComboBox* m_cmbboxFormat; QComboBox* m_cmbboxFormat;
QLabel* m_labelWriteMbr;
QCheckBox* m_chkboxWriteMbr; QCheckBox* m_chkboxWriteMbr;
QLabel* m_labelUseUUID;
QCheckBox* m_chkboxUseUUID; QCheckBox* m_chkboxUseUUID;
QLabel* m_labelComposite;
QCheckBox* m_chkboxComposite;
QCheckBox* m_chkboxExtParameters;
QWidget* m_widgetExtParameters;
QLabel* m_labelDiskType; QLabel* m_labelDiskType;
QComboBox* m_cmbboxDiskType; QComboBox* m_cmbboxDiskType;
QLabel* m_labelVideoDrv; QLabel* m_labelVideoDrv;
QComboBox* m_cmbboxVideoDrv; QComboBox* m_cmbboxVideoDrv;
QLabel* m_labelVideoRes; QLabel* m_labelVideoRes;
QLineEdit* m_editVideoRes; QLineEdit* m_editVideoRes;
QCheckBox* m_chkboxComposite;
QLabel* m_labelIOShed; QLabel* m_labelIOShed;
QComboBox* m_cmbboxIOShed; QComboBox* m_cmbboxIOShed;
QLabel* m_labelDescCommand;
QLabel* m_labelCommand;
}; };

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

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

Loading…
Cancel
Save