summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2018-05-25 06:20:58 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2018-05-27 06:26:01 -0400
commitd05e4dbb54b2a06e80e3367166982dc178f50c67 (patch)
treef9c3f6d56d4a93ac0c64845e8230fabe0fd57dbb
parent89de557499987455f2955c0ae1d46189daf9de88 (diff)
implement initsystem selection
-rw-r--r--src/libcalamares/GlobalStorage.cpp6
-rw-r--r--src/libcalamares/GlobalStorage.h2
-rw-r--r--src/libcalamares/PacstrapCppJob.cpp3
-rw-r--r--src/modules/netinstall/NetInstallPage.cpp34
-rw-r--r--src/modules/netinstall/NetInstallPage.h10
-rw-r--r--src/modules/netinstall/NetInstallViewStep.cpp7
-rw-r--r--src/modules/netinstall/netinstall.conf7
-rw-r--r--src/modules/netinstall/page_netinst.ui35
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">