From 86d51b4a9cbee6f965d12b44b77952ff26ded9c0 Mon Sep 17 00:00:00 2001
From: Kevin Kofler <kevin.kofler@chello.at>
Date: Tue, 11 Nov 2014 14:37:05 +0100
Subject: [PATCH] keyboard: Pass settings directly, not through GlobalStorage.

Pass the settings from keyboard.conf directly to the
SetKeyboardLayoutJob rather than through GlobalStorage.
---
 src/modules/keyboard/KeyboardPage.cpp         |  7 +++++--
 src/modules/keyboard/KeyboardPage.h           |  3 ++-
 src/modules/keyboard/KeyboardViewStep.cpp     | 14 +++++++-------
 src/modules/keyboard/KeyboardViewStep.h       |  3 +++
 src/modules/keyboard/SetKeyboardLayoutJob.cpp | 12 +++++++-----
 src/modules/keyboard/SetKeyboardLayoutJob.h   |  6 +++++-
 6 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp
index d110bc7280..7170505c54 100644
--- a/src/modules/keyboard/KeyboardPage.cpp
+++ b/src/modules/keyboard/KeyboardPage.cpp
@@ -190,7 +190,8 @@ KeyboardPage::prettyStatus() const
 
 
 QList< Calamares::job_ptr >
-KeyboardPage::createJobs()
+KeyboardPage::createJobs( const QString& xOrgConfFileName,
+                          const QString& convertedKeymapPath )
 {
     QList< Calamares::job_ptr > list;
     QString selectedModel = m_models.value( ui->comboBoxModel->currentText(),
@@ -198,7 +199,9 @@ KeyboardPage::createJobs()
 
     Calamares::Job* j = new SetKeyboardLayoutJob( selectedModel,
                                                   m_selectedLayout,
-                                                  m_selectedVariant );
+                                                  m_selectedVariant,
+                                                  xOrgConfFileName,
+                                                  convertedKeymapPath );
     list.append( Calamares::job_ptr( j ) );
 
     return list;
diff --git a/src/modules/keyboard/KeyboardPage.h b/src/modules/keyboard/KeyboardPage.h
index 9cb75ae6b7..e4ed5b7155 100644
--- a/src/modules/keyboard/KeyboardPage.h
+++ b/src/modules/keyboard/KeyboardPage.h
@@ -48,7 +48,8 @@ public:
 
     QString prettyStatus() const;
 
-    QList< Calamares::job_ptr > createJobs();
+    QList< Calamares::job_ptr > createJobs( const QString& xOrgConfFileName,
+                                            const QString& convertedKeymapPath );
 
     void finalize();
 
diff --git a/src/modules/keyboard/KeyboardViewStep.cpp b/src/modules/keyboard/KeyboardViewStep.cpp
index 82d3d6d858..d613171e36 100644
--- a/src/modules/keyboard/KeyboardViewStep.cpp
+++ b/src/modules/keyboard/KeyboardViewStep.cpp
@@ -108,7 +108,7 @@ void
 KeyboardViewStep::onLeave()
 {
     m_widget->finalize();
-    m_jobs = m_widget->createJobs();
+    m_jobs = m_widget->createJobs( m_xOrgConfFileName, m_convertedKeymapPath );
     m_prettyStatus = m_widget->prettyStatus();
 }
 
@@ -123,23 +123,23 @@ KeyboardViewStep::setConfigurationMap( const QVariantMap& configurationMap )
          configurationMap.value( "xOrgConfFileName" ).type() == QVariant::String &&
          !configurationMap.value( "xOrgConfFileName" ).toString().isEmpty() )
     {
-        gs->insert( "keyboardXOrgConfFileName",
-                    configurationMap.value( "xOrgConfFileName" ) );
+        m_xOrgConfFileName = configurationMap.value( "xOrgConfFileName" )
+                                             .toString();
     }
     else
     {
-        gs->insert( "keyboardXOrgConfFileName", "00-keyboard.conf" );
+        m_xOrgConfFileName = "00-keyboard.conf";
     }
 
     if ( configurationMap.contains( "convertedKeymapPath" ) &&
          configurationMap.value( "convertedKeymapPath" ).type() == QVariant::String &&
          !configurationMap.value( "convertedKeymapPath" ).toString().isEmpty() )
     {
-        gs->insert( "keyboardConvertedKeymapPath",
-                    configurationMap.value( "convertedKeymapPath" ) );
+        m_convertedKeymapPath = configurationMap.value( "convertedKeymapPath" )
+                                                .toString();
     }
     else
     {
-        gs->remove( "keyboardConvertedKeymapPath" );
+        m_convertedKeymapPath = QString();
     }
 }
diff --git a/src/modules/keyboard/KeyboardViewStep.h b/src/modules/keyboard/KeyboardViewStep.h
index 45c4580576..d88343bdaf 100644
--- a/src/modules/keyboard/KeyboardViewStep.h
+++ b/src/modules/keyboard/KeyboardViewStep.h
@@ -61,6 +61,9 @@ private:
     bool m_nextEnabled;
     QString m_prettyStatus;
 
+    QString m_xOrgConfFileName;
+    QString m_convertedKeymapPath;
+
     QList< Calamares::job_ptr > m_jobs;
 };
 
diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.cpp b/src/modules/keyboard/SetKeyboardLayoutJob.cpp
index 48196d14b5..1160759d1c 100644
--- a/src/modules/keyboard/SetKeyboardLayoutJob.cpp
+++ b/src/modules/keyboard/SetKeyboardLayoutJob.cpp
@@ -37,11 +37,15 @@
 
 SetKeyboardLayoutJob::SetKeyboardLayoutJob( const QString& model,
                                             const QString& layout,
-                                            const QString& variant )
+                                            const QString& variant,
+                                            const QString& xOrgConfFileName,
+                                            const QString& convertedKeymapPath )
     : Calamares::Job()
     , m_model( model )
     , m_layout( layout )
     , m_variant( variant )
+    , m_xOrgConfFileName( xOrgConfFileName )
+    , m_convertedKeymapPath( convertedKeymapPath )
 {
 }
 
@@ -243,14 +247,12 @@ SetKeyboardLayoutJob::exec()
     // Get the path to the destination's /etc/X11/xorg.conf.d/00-keyboard.conf
     QString xorgConfDPath = destDir.absoluteFilePath( "etc/X11/xorg.conf.d" );
     destDir.mkpath( xorgConfDPath );
-    QString keyboardConfFile = gs->value( "keyboardXOrgConfFileName" ).toString();
     QString keyboardConfPath = QDir( xorgConfDPath )
-                               .absoluteFilePath( keyboardConfFile );
+                               .absoluteFilePath( m_xOrgConfFileName );
 
     // Get the path to the destination's path to the converted key mappings
     QString convertedKeymapPath;
-    QString convertedKeymapPathSetting
-        = gs->value( "keyboardConvertedKeymapPath" ).toString();
+    QString convertedKeymapPathSetting = m_convertedKeymapPath;
     if ( !convertedKeymapPathSetting.isEmpty() )
     {
         while ( convertedKeymapPathSetting.startsWith( '/' ) )
diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.h b/src/modules/keyboard/SetKeyboardLayoutJob.h
index 710c9741a6..096a1fce31 100644
--- a/src/modules/keyboard/SetKeyboardLayoutJob.h
+++ b/src/modules/keyboard/SetKeyboardLayoutJob.h
@@ -29,7 +29,9 @@ class SetKeyboardLayoutJob : public Calamares::Job
 public:
     SetKeyboardLayoutJob( const QString& model,
                           const QString& layout,
-                          const QString& variant );
+                          const QString& variant,
+                          const QString& xOrgConfFileName,
+                          const QString& convertedKeymapPath );
 
     QString prettyName() const override;
     Calamares::JobResult exec() override;
@@ -44,6 +46,8 @@ private:
     QString m_model;
     QString m_layout;
     QString m_variant;
+    QString m_xOrgConfFileName;
+    QString m_convertedKeymapPath;
 };
 
 #endif /* SETKEYBOARDLAYOUTJOB_H */
-- 
GitLab