diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2018-05-25 06:20:58 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2018-05-27 06:26:01 -0400 |
commit | d05e4dbb54b2a06e80e3367166982dc178f50c67 (patch) | |
tree | f9c3f6d56d4a93ac0c64845e8230fabe0fd57dbb | |
parent | 89de557499987455f2955c0ae1d46189daf9de88 (diff) |
implement initsystem selection
-rw-r--r-- | src/libcalamares/GlobalStorage.cpp | 6 | ||||
-rw-r--r-- | src/libcalamares/GlobalStorage.h | 2 | ||||
-rw-r--r-- | src/libcalamares/PacstrapCppJob.cpp | 3 | ||||
-rw-r--r-- | src/modules/netinstall/NetInstallPage.cpp | 34 | ||||
-rw-r--r-- | src/modules/netinstall/NetInstallPage.h | 10 | ||||
-rw-r--r-- | src/modules/netinstall/NetInstallViewStep.cpp | 7 | ||||
-rw-r--r-- | src/modules/netinstall/netinstall.conf | 7 | ||||
-rw-r--r-- | src/modules/netinstall/page_netinst.ui | 35 |
8 files changed, 88 insertions, 16 deletions
diff --git a/src/libcalamares/GlobalStorage.cpp b/src/libcalamares/GlobalStorage.cpp index 406c30056..7a160d7f8 100644 --- a/src/libcalamares/GlobalStorage.cpp +++ b/src/libcalamares/GlobalStorage.cpp @@ -169,8 +169,10 @@ GlobalStoragePythonWrapper::value( const std::string& key ) const const QString GS::HAS_ISOREPO_KEY = "has-isorepo"; const QString GS::IS_ONLINE_KEY = "hasInternet"; -const QString GS::INITSYSTEM_KEY = "default-initsystem" ; -const QString GS::DESKTOP_KEY = "default-desktop" ; +const QString GS::INITSYSTEM_KEY = "default-initsystem"; +const QString GS::DESKTOP_KEY = "default-desktop"; +const QString GS::INITSYSTEMS_KEY = "initsystems"; +const QString GS::INIT_NAME_KEY = "init-name"; const QString GS::DESKTOPS_KEY = "desktops"; const QString GS::DE_ICON_KEY = "de-icon"; const QString GS::DE_NAME_KEY = "de-name"; diff --git a/src/libcalamares/GlobalStorage.h b/src/libcalamares/GlobalStorage.h index 1a821a0fb..3a877f41c 100644 --- a/src/libcalamares/GlobalStorage.h +++ b/src/libcalamares/GlobalStorage.h @@ -108,6 +108,8 @@ public: static const QString IS_ONLINE_KEY; static const QString INITSYSTEM_KEY; static const QString DESKTOP_KEY; + static const QString INITSYSTEMS_KEY; + static const QString INIT_NAME_KEY; static const QString DESKTOPS_KEY; static const QString DE_ICON_KEY; static const QString DE_NAME_KEY; diff --git a/src/libcalamares/PacstrapCppJob.cpp b/src/libcalamares/PacstrapCppJob.cpp index 57c592481..9342a2adf 100644 --- a/src/libcalamares/PacstrapCppJob.cpp +++ b/src/libcalamares/PacstrapCppJob.cpp @@ -153,9 +153,6 @@ QString PacstrapCppJob::prettyStatusMessage() const { return thi Calamares::JobResult PacstrapCppJob::exec() { -// globalStorage->insert(GS::INITSYSTEM_KEY , OPENRC_PACKAGES_KEY) ; // TODO: per user option via globalStorage -globalStorage->insert(GS::INITSYSTEM_KEY , SYSTEMD_PACKAGES_KEY) ; // TODO: per user option via globalStorage - // cleanup from possibly aborted previous runs // Teardown() ; diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index 399043131..085749125 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -50,6 +50,7 @@ using CalamaresUtils::yamlToVariant; +const char NetInstallPage::INIT_COMBO_LABEL_TEXT[] = "Select Init System"; const char NetInstallPage::WMDE_COMBO_LABEL_TEXT[] = "Select Graphical Environment"; @@ -61,7 +62,9 @@ NetInstallPage::NetInstallPage( QWidget* parent ) { ui->setupUi( this ); + ui->initLabel->setText( tr( INIT_COMBO_LABEL_TEXT ) ); ui->wmDeLabel->setText( tr( WMDE_COMBO_LABEL_TEXT ) ); + ui->initCombobox->setToolTip( tr( INIT_COMBO_LABEL_TEXT ) ); ui->wmDeCombobox->setToolTip( tr( WMDE_COMBO_LABEL_TEXT ) ); } @@ -124,14 +127,29 @@ NetInstallPage::dataIsHere( QNetworkReply* reply ) } void -NetInstallPage::loadEnvironmentComboboxes(QVariantMap local_storage) +NetInstallPage::populateComboboxes(QVariantMap local_storage) { + QVariantMap initsystems_data = local_storage.value( GS::INITSYSTEMS_KEY ).toMap(); QVariantMap desktops_data = local_storage.value( GS::DESKTOPS_KEY ).toMap(); + QVariantMap::iterator initsystems_iter = initsystems_data.begin(); QVariantMap::iterator desktops_iter = desktops_data.begin(); + for ( ; initsystems_iter != initsystems_data.end(); ++initsystems_iter ) + { +cLog() << "NetInstallPage::populateComboboxes() initsystems_iter.key()=" << initsystems_iter.key(); + + QVariantMap initsystems_data = initsystems_iter.value().toMap(); + QVariant init_key = QVariant(initsystems_iter.key()); + QString init_name = initsystems_data.value( GS::INIT_NAME_KEY ).toString(); + + ui->initCombobox->addItem(init_name, init_key); + +cLog() << "NetInstallPage::populateComboboxes() added init_key=" << init_key << " init_name" << init_name; + } + for ( ; desktops_iter != desktops_data.end(); ++desktops_iter ) { -cLog() << "NetInstallPage::loadEnvironmentComboboxes() desktops_iter.key()=" << desktops_iter.key(); +cLog() << "NetInstallPage::populateComboboxes() desktops_iter.key()=" << desktops_iter.key(); QVariantMap desktops_data = desktops_iter.value().toMap(); QVariant de_key = QVariant(desktops_iter.key()); @@ -140,10 +158,10 @@ cLog() << "NetInstallPage::loadEnvironmentComboboxes() desktops_iter.key()=" << ui->wmDeCombobox->addItem(de_icon, de_name, de_key); -cLog() << "NetInstallPage::loadEnvironmentComboboxes() added de_icon=" << - desktops_data.value( GS::DE_ICON_KEY ).toString() << - " de_key=" << de_key << " de_name" << de_name; +cLog() << "NetInstallPage::populateComboboxes() added de_icon=" << desktops_data.value( GS::DE_ICON_KEY ).toString() << " de_key=" << de_key << " de_name" << de_name; } + + ui->initCombobox->setCurrentIndex( 1 ); ui->wmDeCombobox->setCurrentIndex( 0 ); } @@ -160,6 +178,12 @@ NetInstallPage::selectedPackages() const } QString +NetInstallPage::getInitSystem() const +{ + return ui->initCombobox->itemData(ui->initCombobox->currentIndex()).toString(); +} + +QString NetInstallPage::getWmDeKey() const { return ui->wmDeCombobox->itemData(ui->wmDeCombobox->currentIndex()).toString(); diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index 0d39b215b..e6520b728 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -53,7 +53,7 @@ public: // Loads icon, friendly name, and packages key for WM/DE options // from global storage and populate combobox options - void loadEnvironmentComboboxes(QVariantMap local_storage); + void populateComboboxes(QVariantMap local_storage); // Sets the "required" state of netinstall data. Influences whether // corrupt or unavailable data causes checkReady() to be emitted @@ -69,8 +69,13 @@ public: // this function does not have constant time. PackageModel::PackageItemDataList selectedPackages() const; + // Returns the value of the InitSystem combobox. + // This will determine which init-specific packages to install. + QString getInitSystem() const; + // Returns the value of the WD/DE combobox. - // This will determine which pacman.conf to use in the PacstrapCppJob modules. + // This will determine which pacman.conf to use + // and also which desktop-specific packages to install. QString getWmDeKey() const; @@ -95,6 +100,7 @@ private: PackageModel* m_groups; bool m_required; + static const char INIT_COMBO_LABEL_TEXT[]; static const char WMDE_COMBO_LABEL_TEXT[]; }; diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 2bc4f595c..62dbe70ee 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -179,9 +179,8 @@ NetInstallViewStep::onLeave() } Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); -// globalStorage->insert(GS::DESKTOP_KEY , MATE_PACKAGES_KEY ) ; // TODO: per user option via globalStorage -// globalStorage->insert(GS::DESKTOP_KEY , LXDE_PACKAGES_KEY) ; // TODO: per user option via globalStorage - gs->insert( GS::DESKTOP_KEY, m_widget->getWmDeKey() ) ; // TODO: + gs->insert( GS::INITSYSTEM_KEY, m_widget->getInitSystem() ) ; + gs->insert( GS::DESKTOP_KEY, m_widget->getWmDeKey() ) ; } @@ -201,7 +200,7 @@ NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_widget->loadGroupList(); } - m_widget->loadEnvironmentComboboxes( configurationMap ); + m_widget->populateComboboxes( configurationMap ); } void diff --git a/src/modules/netinstall/netinstall.conf b/src/modules/netinstall/netinstall.conf index 38c5ef51d..a640bb212 100644 --- a/src/modules/netinstall/netinstall.conf +++ b/src/modules/netinstall/netinstall.conf @@ -13,6 +13,13 @@ required: false +initsystems: + openrc: + init-name: OpenRC + systemd: + init-name: SystemD + + desktops: lxde: de-icon: /usr/share/calamares/branding/parabola/parabolaicon.png diff --git a/src/modules/netinstall/page_netinst.ui b/src/modules/netinstall/page_netinst.ui index ca70ed7fd..14aa67ce3 100644 --- a/src/modules/netinstall/page_netinst.ui +++ b/src/modules/netinstall/page_netinst.ui @@ -24,6 +24,41 @@ <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> + <widget class="QLabel" name="initLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>wmDeLabel</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="initCombobox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string/> + </property> + <property name="currentText"> + <string/> + </property> + <property name="currentIndex"> + <number>-1</number> + </property> + <property name="minimumContentsLength"> + <number>0</number> + </property> + </widget> + </item> + <item> <widget class="QLabel" name="wmDeLabel"> <property name="sizePolicy"> <sizepolicy hsizetype="Maximum" vsizetype="Preferred"> |