[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bkcm-grub2=5D_src=3A_Quote/unquote_GRUB_values_only_?=
From:       Konstantinos Smanis <konstantinos.smanis () gmail ! com>
Date:       2011-04-14 10:11:54
Message-ID: 20110414101154.16B6FA60AE () git ! kde ! org
[Download RAW message or body]

Git commit f062acd41fbfbb9b0eb2d636b01eb1f6bd7becf4 by Konstantinos Smanis.
Committed on 14/04/2011 at 11:57.
Pushed by ksmanis into branch 'master'.

Quote/unquote GRUB values only when saving.

Preserve the original (quoted) strings internally, but show them in a
user-friendly manner. Implemented to minimize changes made to internal
structures. Also useful for command substibutions using echo. For
example:

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

but the user doesn't see this ugly command, he only sees the result.

M  +151  -177  src/kcm_grub2.cpp     
M  +25   -24   src/kcm_grub2.h     

http://commits.kde.org/kcm-grub2/f062acd41fbfbb9b0eb2d636b01eb1f6bd7becf4

diff --git a/src/kcm_grub2.cpp b/src/kcm_grub2.cpp
index 601b11a..b3f1fee 100644
--- a/src/kcm_grub2.cpp
+++ b/src/kcm_grub2.cpp
@@ -63,16 +63,19 @@ void KCMGRUB2::load()
 
     bool ok;
     ui.comboBox_default->clear();
-    ui.comboBox_default->addItems(m_entries);
-    if (m_settings.value("GRUB_DEFAULT").compare("saved") == 0) {
+    foreach(const QString &entry, m_entries) {
+        ui.comboBox_default->addItem(unquoteWord(entry), entry);
+    }
+    QString grubDefault = unquoteWord(m_settings.value("GRUB_DEFAULT"));
+    if (grubDefault.compare("saved") == 0) {
         ui.radioButton_saved->setChecked(true);
     } else {
-        int entryIndex = m_entries.indexOf(m_settings.value("GRUB_DEFAULT"));
+        int entryIndex = \
ui.comboBox_default->findData(m_settings.value("GRUB_DEFAULT"));  if (entryIndex != \
-1) {  ui.radioButton_default->setChecked(true);
             ui.comboBox_default->setCurrentIndex(entryIndex);
         } else {
-            entryIndex = m_settings.value("GRUB_DEFAULT").toInt(&ok);
+            entryIndex = grubDefault.toInt(&ok);
             if (ok && entryIndex >= 0 && entryIndex < m_entries.size()) {
                 ui.radioButton_default->setChecked(true);
                 ui.comboBox_default->setCurrentIndex(entryIndex);
@@ -81,51 +84,45 @@ void KCMGRUB2::load()
             }
         }
     }
-    ui.checkBox_savedefault->setChecked(m_settings.value("GRUB_SAVEDEFAULT").compare("true") \
== 0); +    ui.checkBox_savedefault->setChecked(unquoteWord(m_settings.value("GRUB_SAVEDEFAULT")).compare("true") \
== 0);  
-    ui.spinBox_hiddenTimeout->blockSignals(true);
-    ui.spinBox_timeout->blockSignals(true);
-    int hiddenTimeout = m_settings.value("GRUB_HIDDEN_TIMEOUT").toInt(&ok);
-    if (ok && hiddenTimeout >= 0) {
-        ui.checkBox_hiddenTimeout->setChecked(hiddenTimeout > 0);
-        ui.spinBox_hiddenTimeout->setValue(hiddenTimeout);
+    int grubHiddenTimeout = \
unquoteWord(m_settings.value("GRUB_HIDDEN_TIMEOUT")).toInt(&ok); +    if (ok && \
grubHiddenTimeout >= 0) { +        \
ui.checkBox_hiddenTimeout->setChecked(grubHiddenTimeout > 0); +        \
ui.spinBox_hiddenTimeout->setValue(grubHiddenTimeout);  } else {
         kWarning() << "Invalid GRUB_HIDDEN_TIMEOUT value";
     }
-    ui.checkBox_hiddenTimeoutShowTimer->setChecked(m_settings.value("GRUB_HIDDEN_TIMEOUT_QUIET").compare("true") \
                != 0);
-    int timeout = m_settings.value("GRUB_TIMEOUT").toInt(&ok);
-    if (ok && timeout >= -1) {
-        ui.checkBox_timeout->setChecked(timeout > -1);
-        ui.radioButton_timeout0->setChecked(timeout == 0);
-        ui.radioButton_timeout->setChecked(timeout > 0);
-        ui.spinBox_timeout->setValue(timeout);
+    ui.checkBox_hiddenTimeoutShowTimer->setChecked(unquoteWord(m_settings.value("GRUB_HIDDEN_TIMEOUT_QUIET")).compare("true") \
!= 0); +    int grubTimeout = \
unquoteWord(m_settings.value("GRUB_TIMEOUT")).toInt(&ok); +    if (ok && grubTimeout \
>= -1) { +        ui.checkBox_timeout->setChecked(grubTimeout > -1);
+        ui.radioButton_timeout0->setChecked(grubTimeout == 0);
+        ui.radioButton_timeout->setChecked(grubTimeout > 0);
+        ui.spinBox_timeout->setValue(grubTimeout);
     } else {
         kWarning() << "Invalid GRUB_TIMEOUT value";
     }
-    ui.spinBox_hiddenTimeout->blockSignals(false);
-    ui.spinBox_timeout->blockSignals(false);
 
-    ui.comboBox_gfxmode->blockSignals(true);
-    ui.comboBox_gfxpayload->blockSignals(true);
     ui.comboBox_gfxmode->clear();
     ui.comboBox_gfxmode->addItems(m_gfxmodes);
-    ui.comboBox_gfxmode->setEditText(m_settings.value("GRUB_GFXMODE"));
+    ui.comboBox_gfxmode->setEditText(unquoteWord(m_settings.value("GRUB_GFXMODE")));
     ui.comboBox_gfxpayload->clear();
     ui.comboBox_gfxpayload->addItems(m_gfxmodes);
-    if (m_settings.value("GRUB_GFXPAYLOAD_LINUX").compare("text") == 0) {
+    QString grubGfxpayloadLinux = \
unquoteWord(m_settings.value("GRUB_GFXPAYLOAD_LINUX")); +    if \
(grubGfxpayloadLinux.compare("text") == 0) {  \
                ui.radioButton_gfxpayloadText->setChecked(true);
-    } else if (m_settings.value("GRUB_GFXPAYLOAD_LINUX").compare("keep") == 0) {
+    } else if (grubGfxpayloadLinux.compare("keep") == 0) {
         ui.radioButton_gfxpayloadKeep->setChecked(true);
     } else {
         ui.radioButton_gfxpayloadOther->setChecked(true);
-        ui.comboBox_gfxpayload->setEditText(m_settings.value("GRUB_GFXPAYLOAD_LINUX"));
 +        ui.comboBox_gfxpayload->setEditText(grubGfxpayloadLinux);
     }
-    ui.comboBox_gfxpayload->blockSignals(false);
-    ui.comboBox_gfxmode->blockSignals(false);
 
-    if (!m_settings.value("GRUB_COLOR_NORMAL").isEmpty()) {
-        int normalForegroundIndex = \
ui.comboBox_normalForeground->findData(m_settings.value("GRUB_COLOR_NORMAL").section('/', \
                0, 0));
-        int normalBackgroundIndex = \
ui.comboBox_normalBackground->findData(m_settings.value("GRUB_COLOR_NORMAL").section('/', \
1)); +    QString grubColorNormal = \
unquoteWord(m_settings.value("GRUB_COLOR_NORMAL")); +    if \
(!grubColorNormal.isEmpty()) { +        int normalForegroundIndex = \
ui.comboBox_normalForeground->findData(grubColorNormal.section('/', 0, 0)); +        \
int normalBackgroundIndex = \
ui.comboBox_normalBackground->findData(grubColorNormal.section('/', 1));  if \
(normalForegroundIndex == -1 || normalBackgroundIndex == -1) {  kWarning() << \
"Invalid GRUB_COLOR_NORMAL value";  }
@@ -136,9 +133,10 @@ void KCMGRUB2::load()
             ui.comboBox_normalBackground->setCurrentIndex(normalBackgroundIndex);
         }
     }
-    if (!m_settings.value("GRUB_COLOR_HIGHLIGHT").isEmpty()) {
-        int highlightForegroundIndex = \
ui.comboBox_highlightForeground->findData(m_settings.value("GRUB_COLOR_HIGHLIGHT").section('/', \
                0, 0));
-        int highlightBackgroundIndex = \
ui.comboBox_highlightBackground->findData(m_settings.value("GRUB_COLOR_HIGHLIGHT").section('/', \
1)); +    QString grubColorHighlight = \
unquoteWord(m_settings.value("GRUB_COLOR_HIGHLIGHT")); +    if \
(!grubColorHighlight.isEmpty()) { +        int highlightForegroundIndex = \
ui.comboBox_highlightForeground->findData(grubColorHighlight.section('/', 0, 0)); +   \
int highlightBackgroundIndex = \
                ui.comboBox_highlightBackground->findData(grubColorHighlight.section('/', \
                1));
         if (highlightForegroundIndex == -1 || highlightBackgroundIndex == -1) {
             kWarning() << "Invalid GRUB_COLOR_HIGHLIGHT value";
         }
@@ -150,46 +148,37 @@ void KCMGRUB2::load()
         }
     }
 
-    ui.kurlrequester_background->blockSignals(true);
-    ui.kurlrequester_theme->blockSignals(true);
-    ui.kurlrequester_background->setText(m_settings.value("GRUB_BACKGROUND"));
-    ui.kpushbutton_preview->setEnabled(!m_settings.value("GRUB_BACKGROUND").isEmpty());
                
-    ui.kurlrequester_theme->setText(m_settings.value("GRUB_THEME"));
-    ui.kurlrequester_background->blockSignals(false);
-    ui.kurlrequester_theme->blockSignals(false);
+    QString grubBackground = unquoteWord(m_settings.value("GRUB_BACKGROUND"));
+    ui.kurlrequester_background->setText(grubBackground);
+    ui.kpushbutton_preview->setEnabled(!grubBackground.isEmpty());
+    ui.kurlrequester_theme->setText(unquoteWord(m_settings.value("GRUB_THEME")));
 
-    ui.lineEdit_cmdlineDefault->setText(m_settings.value("GRUB_CMDLINE_LINUX_DEFAULT"));
                
-    ui.lineEdit_cmdline->setText(m_settings.value("GRUB_CMDLINE_LINUX"));
+    ui.lineEdit_cmdlineDefault->setText(unquoteWord(m_settings.value("GRUB_CMDLINE_LINUX_DEFAULT")));
 +    ui.lineEdit_cmdline->setText(unquoteWord(m_settings.value("GRUB_CMDLINE_LINUX")));
  
-    ui.lineEdit_terminal->setText(m_settings.value("GRUB_TERMINAL"));
-    if (m_settings.value("GRUB_TERMINAL").isEmpty()) {
-        ui.lineEdit_terminalInput->setText(m_settings.value("GRUB_TERMINAL_INPUT"));
-        ui.lineEdit_terminalOutput->setText(m_settings.value("GRUB_TERMINAL_OUTPUT"));
                
-    } else {
-        ui.lineEdit_terminalInput->setReadOnly(true);
-        ui.lineEdit_terminalOutput->setReadOnly(true);
-        ui.lineEdit_terminalInput->setText(m_settings.value("GRUB_TERMINAL"));
-        ui.lineEdit_terminalOutput->setText(m_settings.value("GRUB_TERMINAL"));
-    }
+    QString grubTerminal = unquoteWord(m_settings.value("GRUB_TERMINAL"));
+    ui.lineEdit_terminal->setText(grubTerminal);
+    ui.lineEdit_terminalInput->setReadOnly(!grubTerminal.isEmpty());
+    ui.lineEdit_terminalOutput->setReadOnly(!grubTerminal.isEmpty());
+    ui.lineEdit_terminalInput->setText(!grubTerminal.isEmpty() ? grubTerminal : \
unquoteWord(m_settings.value("GRUB_TERMINAL_INPUT"))); +    \
ui.lineEdit_terminalOutput->setText(!grubTerminal.isEmpty() ? grubTerminal : \
unquoteWord(m_settings.value("GRUB_TERMINAL_OUTPUT")));  
-    ui.lineEdit_distributor->setText(m_settings.value("GRUB_DISTRIBUTOR"));
-    ui.lineEdit_serial->setText(m_settings.value("GRUB_SERIAL_COMMAND"));
-    ui.lineEdit_initTune->setText(m_settings.value("GRUB_INIT_TUNE"));
+    ui.lineEdit_distributor->setText(unquoteWord(m_settings.value("GRUB_DISTRIBUTOR")));
 +    ui.lineEdit_serial->setText(unquoteWord(m_settings.value("GRUB_SERIAL_COMMAND")));
 +    ui.lineEdit_initTune->setText(unquoteWord(m_settings.value("GRUB_INIT_TUNE")));
 
-    ui.checkBox_uuid->setChecked(m_settings.value("GRUB_DISABLE_LINUX_UUID").compare("true") \
                != 0);
-    ui.checkBox_recovery->setChecked(m_settings.value("GRUB_DISABLE_RECOVERY").compare("true") \
                != 0);
-    ui.checkBox_osProber->setChecked(m_settings.value("GRUB_DISABLE_OS_PROBER").compare("true") \
!= 0); +    ui.checkBox_uuid->setChecked(unquoteWord(m_settings.value("GRUB_DISABLE_LINUX_UUID")).compare("true") \
!= 0); +    ui.checkBox_recovery->setChecked(unquoteWord(m_settings.value("GRUB_DISABLE_RECOVERY")).compare("true") \
!= 0); +    ui.checkBox_osProber->setChecked(unquoteWord(m_settings.value("GRUB_DISABLE_OS_PROBER")).compare("true") \
!= 0);  
     m_dirtyBits.fill(0);
     emit changed(false);
 }
 void KCMGRUB2::save()
 {
-    kDebug() << m_dirtyBits;
     if (m_dirtyBits.testBit(grubDefaultDirty)) {
         if (ui.radioButton_default->isChecked()) {
-            //TODO: Use m_entries instead?
-            m_settings["GRUB_DEFAULT"] = ui.comboBox_default->currentText();
+            m_settings["GRUB_DEFAULT"] = \
m_entries.at(ui.comboBox_default->currentIndex());  } else if \
(ui.radioButton_saved->isChecked()) {  m_settings["GRUB_DEFAULT"] = "saved";
         }
@@ -229,7 +218,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubGfxmodeDirty)) {
         QString gfxmode = ui.comboBox_gfxmode->currentText();
         if (!gfxmode.isEmpty()) {
-            m_settings["GRUB_GFXMODE"] = gfxmode;
+            m_settings["GRUB_GFXMODE"] = quoteWord(gfxmode);
         } else {
             m_settings.remove("GRUB_GFXMODE");
         }
@@ -242,7 +231,7 @@ void KCMGRUB2::save()
         } else {
             QString gfxPayload = ui.comboBox_gfxpayload->currentText();
             if (!gfxPayload.isEmpty()) {
-                m_settings["GRUB_GFXPAYLOAD_LINUX"] = gfxPayload;
+                m_settings["GRUB_GFXPAYLOAD_LINUX"] = quoteWord(gfxPayload);
             } else {
                 m_settings.remove("GRUB_GFXPAYLOAD_LINUX");
             }
@@ -269,7 +258,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubBackgroundDirty)) {
         QString background = ui.kurlrequester_background->url().toLocalFile();
         if (!background.isEmpty()) {
-            m_settings["GRUB_BACKGROUND"] = background;
+            m_settings["GRUB_BACKGROUND"] = quoteWord(background);
         } else {
             m_settings.remove("GRUB_BACKGROUND");
         }
@@ -277,7 +266,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubThemeDirty)) {
         QString theme = ui.kurlrequester_theme->url().toLocalFile();
         if (!theme.isEmpty()) {
-            m_settings["GRUB_THEME"] = theme;
+            m_settings["GRUB_THEME"] = quoteWord(theme);
         } else {
             m_settings.remove("GRUB_THEME");
         }
@@ -285,7 +274,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubCmdlineLinuxDefaultDirty)) {
         QString cmdlineLinuxDefault = ui.lineEdit_cmdlineDefault->text();
         if (!cmdlineLinuxDefault.isEmpty()) {
-            m_settings["GRUB_CMDLINE_LINUX_DEFAULT"] = cmdlineLinuxDefault;
+            m_settings["GRUB_CMDLINE_LINUX_DEFAULT"] = \
quoteWord(cmdlineLinuxDefault);  } else {
             m_settings.remove("GRUB_CMDLINE_LINUX_DEFAULT");
         }
@@ -293,7 +282,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubCmdlineLinuxDirty)) {
         QString cmdlineLinux = ui.lineEdit_cmdline->text();
         if (!cmdlineLinux.isEmpty()) {
-            m_settings["GRUB_CMDLINE_LINUX"] = cmdlineLinux;
+            m_settings["GRUB_CMDLINE_LINUX"] = quoteWord(cmdlineLinux);
         } else {
             m_settings.remove("GRUB_CMDLINE_LINUX");
         }
@@ -301,7 +290,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubTerminalDirty)) {
         QString terminal = ui.lineEdit_terminal->text();
         if (!terminal.isEmpty()) {
-            m_settings["GRUB_TERMINAL"] = terminal;
+            m_settings["GRUB_TERMINAL"] = quoteWord(terminal);
         } else {
             m_settings.remove("GRUB_TERMINAL");
         }
@@ -309,7 +298,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubTerminalInputDirty)) {
         QString terminalInput = ui.lineEdit_terminalInput->text();
         if (!terminalInput.isEmpty()) {
-            m_settings["GRUB_TERMINAL_INPUT"] = terminalInput;
+            m_settings["GRUB_TERMINAL_INPUT"] = quoteWord(terminalInput);
         } else {
             m_settings.remove("GRUB_TERMINAL_INPUT");
         }
@@ -317,7 +306,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubTerminalOutputDirty)) {
         QString terminalOutput = ui.lineEdit_terminalOutput->text();
         if (!terminalOutput.isEmpty()) {
-            m_settings["GRUB_TERMINAL_OUTPUT"] = terminalOutput;
+            m_settings["GRUB_TERMINAL_OUTPUT"] = quoteWord(terminalOutput);
         } else {
             m_settings.remove("GRUB_TERMINAL_OUTPUT");
         }
@@ -325,7 +314,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubDistributorDirty)) {
         QString distributor = ui.lineEdit_distributor->text();
         if (!distributor.isEmpty()) {
-            m_settings["GRUB_DISTRIBUTOR"] = distributor;
+            m_settings["GRUB_DISTRIBUTOR"] = quoteWord(distributor);
         } else {
             m_settings.remove("GRUB_DISTRIBUTOR");
         }
@@ -333,7 +322,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubSerialCommandDirty)) {
         QString serialCommand = ui.lineEdit_serial->text();
         if (!serialCommand.isEmpty()) {
-            m_settings["GRUB_SERIAL_COMMAND"] = serialCommand;
+            m_settings["GRUB_SERIAL_COMMAND"] = quoteWord(serialCommand);
         } else {
             m_settings.remove("GRUB_SERIAL_COMMAND");
         }
@@ -341,7 +330,7 @@ void KCMGRUB2::save()
     if (m_dirtyBits.testBit(grubInitTuneDirty)) {
         QString initTune = ui.lineEdit_initTune->text();
         if (!initTune.isEmpty()) {
-            m_settings["GRUB_INIT_TUNE"] = initTune;
+            m_settings["GRUB_INIT_TUNE"] = quoteWord(initTune);
         } else {
             m_settings.remove("GRUB_INIT_TUNE");
         }
@@ -371,11 +360,7 @@ void KCMGRUB2::save()
     QString config;
     QTextStream stream(&config, QIODevice::WriteOnly | QIODevice::Text);
     for (QHash<QString, QString>::const_iterator it = m_settings.constBegin(); it != \
                m_settings.constEnd(); it++) {
-        QString key = it.key(), value = it.value();
-        if (!value.startsWith('`') || !value.endsWith('`')) {
-            value = KShell::quoteArg(value);
-        }
-        stream << key << '=' << value << endl;
+        stream << it.key() << '=' << it.value() << endl;
     }
     if (!saveFile(Settings::configPaths().at(0), config)) {
         return;
@@ -387,58 +372,54 @@ void KCMGRUB2::save()
     }
 }
 
-void KCMGRUB2::updateGrubDefault()
+void KCMGRUB2::slotGrubDefaultChanged()
 {
     m_dirtyBits.setBit(grubDefaultDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubSavedefault(bool checked)
+void KCMGRUB2::slotGrubSavedefaultChanged()
 {
-    Q_UNUSED(checked)
     m_dirtyBits.setBit(grubSavedefaultDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubHiddenTimeout()
+void KCMGRUB2::slotGrubHiddenTimeoutChanged()
 {
     m_dirtyBits.setBit(grubHiddenTimeoutDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubHiddenTimeoutQuiet(bool checked)
+void KCMGRUB2::slotGrubHiddenTimeoutQuietChanged()
 {
-    Q_UNUSED(checked)
     m_dirtyBits.setBit(grubHiddenTimeoutQuietDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubTimeout()
+void KCMGRUB2::slotGrubTimeoutChanged()
 {
     m_dirtyBits.setBit(grubTimeoutDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubGfxmode(const QString &text)
+void KCMGRUB2::slotGrubGfxmodeChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubGfxmodeDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubGfxpayloadLinux()
+void KCMGRUB2::slotGrubGfxpayloadLinuxChanged()
 {
     m_dirtyBits.setBit(grubGfxpayloadLinuxDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubColorNormal()
+void KCMGRUB2::slotGrubColorNormalChanged()
 {
     m_dirtyBits.setBit(grubColorNormalDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubColorHighlight()
+void KCMGRUB2::slotGrubColorHighlightChanged()
 {
     m_dirtyBits.setBit(grubColorHighlightDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubBackground(const QString &text)
+void KCMGRUB2::slowGrubBackgroundChanged()
 {
-    Q_UNUSED(text)
-    ui.kpushbutton_preview->setEnabled(!text.isEmpty());
+    ui.kpushbutton_preview->setEnabled(!ui.kurlrequester_background->text().isEmpty());
  m_dirtyBits.setBit(grubBackgroundDirty);
     emit changed(true);
 }
@@ -449,7 +430,7 @@ void KCMGRUB2::previewGrubBackground()
         return;
     }
 
-    QDialog *dialog  = new QDialog(this);
+    QDialog *dialog = new QDialog(this);
     QLabel *label = new QLabel(dialog);
     label->setPixmap(QPixmap::fromImage(QImage::fromData(file.readAll())).scaled(QDesktopWidget().screenGeometry(this).size()));
  dialog->setAttribute(Qt::WA_DeleteOnClose);
@@ -464,84 +445,73 @@ void KCMGRUB2::createGrubBackground()
     convertDlg.exec();
 #endif
 }
-void KCMGRUB2::updateGrubTheme(const QString &text)
+void KCMGRUB2::slotGrubThemeChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubThemeDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubCmdlineLinuxDefault(const QString &text)
+void KCMGRUB2::slotGrubCmdlineLinuxDefaultChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubCmdlineLinuxDefaultDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubCmdlineLinux(const QString &text)
+void KCMGRUB2::slotGrubCmdlineLinuxChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubCmdlineLinuxDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubTerminal(const QString &text)
+void KCMGRUB2::slotGrubTerminalChanged()
 {
-    Q_UNUSED(text)
-    ui.lineEdit_terminalInput->setReadOnly(!text.isEmpty());
-    ui.lineEdit_terminalOutput->setReadOnly(!text.isEmpty());
-    ui.lineEdit_terminalInput->setText(!text.isEmpty() ? text : \
                m_settings.value("GRUB_TERMINAL_INPUT"));
-    ui.lineEdit_terminalOutput->setText(!text.isEmpty() ? text : \
m_settings.value("GRUB_TERMINAL_OUTPUT")); +    QString grubTerminal = \
ui.lineEdit_terminal->text(); +    \
ui.lineEdit_terminalInput->setReadOnly(!grubTerminal.isEmpty()); +    \
ui.lineEdit_terminalOutput->setReadOnly(!grubTerminal.isEmpty()); +    \
ui.lineEdit_terminalInput->setText(!grubTerminal.isEmpty() ? grubTerminal : \
unquoteWord(m_settings.value("GRUB_TERMINAL_INPUT"))); +    \
ui.lineEdit_terminalOutput->setText(!grubTerminal.isEmpty() ? grubTerminal : \
unquoteWord(m_settings.value("GRUB_TERMINAL_OUTPUT")));  \
m_dirtyBits.setBit(grubTerminalDirty);  emit changed(true);
 }
-void KCMGRUB2::updateGrubTerminalInput(const QString &text)
+void KCMGRUB2::slotGrubTerminalInputChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubTerminalInputDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubTerminalOutput(const QString &text)
+void KCMGRUB2::slotGrubTerminalOutputChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubTerminalOutputDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubDistributor(const QString &text)
+void KCMGRUB2::slotGrubDistributorChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubDistributorDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubSerialCommand(const QString &text)
+void KCMGRUB2::slotGrubSerialCommandChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubSerialCommandDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubInitTune(const QString& text)
+void KCMGRUB2::slotGrubInitTuneChanged()
 {
-    Q_UNUSED(text)
     m_dirtyBits.setBit(grubInitTuneDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubDisableLinuxUUID(bool checked)
+void KCMGRUB2::slotGrubDisableLinuxUuidChanged()
 {
-    Q_UNUSED(checked)
     m_dirtyBits.setBit(grubDisableLinuxUuidDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubDisableRecovery(bool checked)
+void KCMGRUB2::slotGrubDisableRecoveryChanged()
 {
-    Q_UNUSED(checked)
     m_dirtyBits.setBit(grubDisableRecoveryDirty);
     emit changed(true);
 }
-void KCMGRUB2::updateGrubDisableOsProber(bool checked)
+void KCMGRUB2::slotGrubDisableOsProberChanged()
 {
-    Q_UNUSED(checked)
     m_dirtyBits.setBit(grubDisableOsProberDirty);
     emit changed(true);
 }
 
-void KCMGRUB2::updateSuggestions()
+void KCMGRUB2::slotUpdateSuggestions()
 {
     if (!sender()->isWidgetType()) {
         return;
@@ -569,25 +539,25 @@ void KCMGRUB2::updateSuggestions()
         action->setChecked(lineEdit->text().contains(QRegExp(QString("\\b%1\\b").arg(action->data().toString()))));
  }
 }
-void KCMGRUB2::triggeredSuggestion(QAction *action)
+void KCMGRUB2::slotTriggeredSuggestion(QAction *action)
 {
     QLineEdit *lineEdit = 0;
-    void (KCMGRUB2::*updateFunction)(const QString &) = 0;
+    void (KCMGRUB2::*updateFunction)() = 0;
     if (ui.kpushbutton_cmdlineDefaultSuggestions->isDown()) {
         lineEdit = ui.lineEdit_cmdlineDefault;
-        updateFunction = &KCMGRUB2::updateGrubCmdlineLinuxDefault;
+        updateFunction = &KCMGRUB2::slotGrubCmdlineLinuxDefaultChanged;
     } else if (ui.kpushbutton_cmdlineSuggestions->isDown()) {
         lineEdit = ui.lineEdit_cmdline;
-        updateFunction = &KCMGRUB2::updateGrubCmdlineLinux;
+        updateFunction = &KCMGRUB2::slotGrubCmdlineLinuxChanged;
     } else if (ui.kpushbutton_terminalSuggestions->isDown()) {
         lineEdit = ui.lineEdit_terminal;
-        updateFunction = &KCMGRUB2::updateGrubTerminal;
+        updateFunction = &KCMGRUB2::slotGrubTerminalChanged;
     } else if (ui.kpushbutton_terminalInputSuggestions->isDown()) {
         lineEdit = ui.lineEdit_terminalInput;
-        updateFunction = &KCMGRUB2::updateGrubTerminalInput;
+        updateFunction = &KCMGRUB2::slotGrubTerminalInputChanged;
     } else if (ui.kpushbutton_terminalOutputSuggestions->isDown()) {
         lineEdit = ui.lineEdit_terminalOutput;
-        updateFunction = &KCMGRUB2::updateGrubTerminalOutput;
+        updateFunction = &KCMGRUB2::slotGrubTerminalOutputChanged;
     } else {
         return;
     }
@@ -598,7 +568,7 @@ void KCMGRUB2::triggeredSuggestion(QAction *action)
     } else {
         lineEdit->setText(lineEditText.isEmpty() ? action->data().toString() : \
lineEditText + ' ' + action->data().toString());  }
-    (this->*updateFunction)(lineEdit->text());
+    (this->*updateFunction)();
 }
 
 void KCMGRUB2::setupObjects()
@@ -702,59 +672,59 @@ void KCMGRUB2::setupObjects()
 }
 void KCMGRUB2::setupConnections()
 {
-    connect(ui.radioButton_default, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubDefault()));
-    connect(ui.comboBox_default, SIGNAL(activated(int)), this, \
                SLOT(updateGrubDefault()));
-    connect(ui.radioButton_saved, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubDefault()));
-    connect(ui.checkBox_savedefault, SIGNAL(clicked(bool)), this, \
SLOT(updateGrubSavedefault(bool))); +    connect(ui.radioButton_default, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubDefaultChanged())); +    \
connect(ui.comboBox_default, SIGNAL(activated(int)), this, \
SLOT(slotGrubDefaultChanged())); +    connect(ui.radioButton_saved, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubDefaultChanged())); +    \
connect(ui.checkBox_savedefault, SIGNAL(clicked(bool)), this, \
SLOT(slotGrubSavedefaultChanged()));  
-    connect(ui.checkBox_hiddenTimeout, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubHiddenTimeout()));
-    connect(ui.spinBox_hiddenTimeout, SIGNAL(valueChanged(int)), this, \
                SLOT(updateGrubHiddenTimeout()));
-    connect(ui.checkBox_hiddenTimeoutShowTimer, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubHiddenTimeoutQuiet(bool)));
-    connect(ui.checkBox_timeout, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubTimeout()));
-    connect(ui.radioButton_timeout0, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubTimeout()));
-    connect(ui.radioButton_timeout, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubTimeout()));
-    connect(ui.spinBox_timeout, SIGNAL(valueChanged(int)), this, \
SLOT(updateGrubTimeout())); +    connect(ui.checkBox_hiddenTimeout, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubHiddenTimeoutChanged())); +    \
connect(ui.spinBox_hiddenTimeout, SIGNAL(valueChanged(int)), this, \
SLOT(slotGrubHiddenTimeoutChanged())); +    \
connect(ui.checkBox_hiddenTimeoutShowTimer, SIGNAL(clicked(bool)), this, \
SLOT(slotGrubHiddenTimeoutQuietChanged())); +    connect(ui.checkBox_timeout, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubTimeoutChanged())); +    \
connect(ui.radioButton_timeout0, SIGNAL(clicked(bool)), this, \
SLOT(slotGrubTimeoutChanged())); +    connect(ui.radioButton_timeout, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubTimeoutChanged())); +    \
connect(ui.spinBox_timeout, SIGNAL(valueChanged(int)), this, \
SLOT(slotGrubTimeoutChanged()));  
-    connect(ui.comboBox_gfxmode, SIGNAL(editTextChanged(QString)), this, \
                SLOT(updateGrubGfxmode(QString)));
-    connect(ui.radioButton_gfxpayloadText, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubGfxpayloadLinux()));
-    connect(ui.radioButton_gfxpayloadKeep, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubGfxpayloadLinux()));
-    connect(ui.radioButton_gfxpayloadOther, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubGfxpayloadLinux()));
-    connect(ui.comboBox_gfxpayload, SIGNAL(editTextChanged(QString)), this, \
SLOT(updateGrubGfxpayloadLinux())); +    connect(ui.comboBox_gfxmode, \
SIGNAL(editTextChanged(QString)), this, SLOT(slotGrubGfxmodeChanged())); +    \
connect(ui.radioButton_gfxpayloadText, SIGNAL(clicked(bool)), this, \
SLOT(slotGrubGfxpayloadLinuxChanged())); +    connect(ui.radioButton_gfxpayloadKeep, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubGfxpayloadLinuxChanged())); +    \
connect(ui.radioButton_gfxpayloadOther, SIGNAL(clicked(bool)), this, \
SLOT(slotGrubGfxpayloadLinuxChanged())); +    connect(ui.comboBox_gfxpayload, \
SIGNAL(editTextChanged(QString)), this, SLOT(slotGrubGfxpayloadLinuxChanged()));  
-    connect(ui.comboBox_normalForeground, SIGNAL(activated(int)), this, \
                SLOT(updateGrubColorNormal()));
-    connect(ui.comboBox_normalBackground, SIGNAL(activated(int)), this, \
                SLOT(updateGrubColorNormal()));
-    connect(ui.comboBox_highlightForeground, SIGNAL(activated(int)), this, \
                SLOT(updateGrubColorHighlight()));
-    connect(ui.comboBox_highlightBackground, SIGNAL(activated(int)), this, \
SLOT(updateGrubColorHighlight())); +    connect(ui.comboBox_normalForeground, \
SIGNAL(activated(int)), this, SLOT(slotGrubColorNormalChanged())); +    \
connect(ui.comboBox_normalBackground, SIGNAL(activated(int)), this, \
SLOT(slotGrubColorNormalChanged())); +    connect(ui.comboBox_highlightForeground, \
SIGNAL(activated(int)), this, SLOT(slotGrubColorHighlightChanged())); +    \
connect(ui.comboBox_highlightBackground, SIGNAL(activated(int)), this, \
SLOT(slotGrubColorHighlightChanged()));  
-    connect(ui.kurlrequester_background, SIGNAL(textChanged(QString)), this, \
SLOT(updateGrubBackground(QString))); +    connect(ui.kurlrequester_background, \
                SIGNAL(textChanged(QString)), this, \
                SLOT(slowGrubBackgroundChanged()));
     connect(ui.kpushbutton_preview, SIGNAL(clicked(bool)), this, \
                SLOT(previewGrubBackground()));
     connect(ui.kpushbutton_create, SIGNAL(clicked(bool)), this, \
                SLOT(createGrubBackground()));
-    connect(ui.kurlrequester_theme, SIGNAL(textChanged(QString)), this, \
SLOT(updateGrubTheme(QString))); +    connect(ui.kurlrequester_theme, \
SIGNAL(textChanged(QString)), this, SLOT(slotGrubThemeChanged()));  
-    connect(ui.lineEdit_cmdlineDefault, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubCmdlineLinuxDefault(QString)));
-    connect(ui.kpushbutton_cmdlineDefaultSuggestions->menu(), SIGNAL(aboutToShow()), \
                this, SLOT(updateSuggestions()));
-    connect(ui.kpushbutton_cmdlineDefaultSuggestions->menu(), \
                SIGNAL(triggered(QAction*)), this, \
                SLOT(triggeredSuggestion(QAction*)));
-    connect(ui.lineEdit_cmdline, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubCmdlineLinux(QString)));
-    connect(ui.kpushbutton_cmdlineSuggestions->menu(), SIGNAL(aboutToShow()), this, \
                SLOT(updateSuggestions()));
-    connect(ui.kpushbutton_cmdlineSuggestions->menu(), SIGNAL(triggered(QAction*)), \
this, SLOT(triggeredSuggestion(QAction*))); +    connect(ui.lineEdit_cmdlineDefault, \
SIGNAL(textEdited(QString)), this, SLOT(slotGrubCmdlineLinuxDefaultChanged())); +    \
connect(ui.kpushbutton_cmdlineDefaultSuggestions->menu(), SIGNAL(aboutToShow()), \
this, SLOT(slotUpdateSuggestions())); +    \
connect(ui.kpushbutton_cmdlineDefaultSuggestions->menu(), \
SIGNAL(triggered(QAction*)), this, SLOT(slotTriggeredSuggestion(QAction*))); +    \
connect(ui.lineEdit_cmdline, SIGNAL(textEdited(QString)), this, \
SLOT(slotGrubCmdlineLinuxChanged())); +    \
connect(ui.kpushbutton_cmdlineSuggestions->menu(), SIGNAL(aboutToShow()), this, \
SLOT(slotUpdateSuggestions())); +    \
connect(ui.kpushbutton_cmdlineSuggestions->menu(), SIGNAL(triggered(QAction*)), this, \
SLOT(slotTriggeredSuggestion(QAction*)));  
-    connect(ui.lineEdit_terminal, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubTerminal(QString)));
-    connect(ui.kpushbutton_terminalSuggestions->menu(), SIGNAL(aboutToShow()), this, \
                SLOT(updateSuggestions()));
-    connect(ui.kpushbutton_terminalSuggestions->menu(), SIGNAL(triggered(QAction*)), \
                this, SLOT(triggeredSuggestion(QAction*)));
-    connect(ui.lineEdit_terminalInput, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubTerminalInput(QString)));
-    connect(ui.kpushbutton_terminalInputSuggestions->menu(), SIGNAL(aboutToShow()), \
                this, SLOT(updateSuggestions()));
-    connect(ui.kpushbutton_terminalInputSuggestions->menu(), \
                SIGNAL(triggered(QAction*)), this, \
                SLOT(triggeredSuggestion(QAction*)));
-    connect(ui.lineEdit_terminalOutput, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubTerminalOutput(QString)));
-    connect(ui.kpushbutton_terminalOutputSuggestions->menu(), SIGNAL(aboutToShow()), \
                this, SLOT(updateSuggestions()));
-    connect(ui.kpushbutton_terminalOutputSuggestions->menu(), \
SIGNAL(triggered(QAction*)), this, SLOT(triggeredSuggestion(QAction*))); +    \
connect(ui.lineEdit_terminal, SIGNAL(textEdited(QString)), this, \
SLOT(slotGrubTerminalChanged())); +    \
connect(ui.kpushbutton_terminalSuggestions->menu(), SIGNAL(aboutToShow()), this, \
SLOT(slotUpdateSuggestions())); +    \
connect(ui.kpushbutton_terminalSuggestions->menu(), SIGNAL(triggered(QAction*)), \
this, SLOT(slotTriggeredSuggestion(QAction*))); +    \
connect(ui.lineEdit_terminalInput, SIGNAL(textEdited(QString)), this, \
SLOT(slotGrubTerminalInputChanged())); +    \
connect(ui.kpushbutton_terminalInputSuggestions->menu(), SIGNAL(aboutToShow()), this, \
SLOT(slotUpdateSuggestions())); +    \
connect(ui.kpushbutton_terminalInputSuggestions->menu(), SIGNAL(triggered(QAction*)), \
this, SLOT(slotTriggeredSuggestion(QAction*))); +    \
connect(ui.lineEdit_terminalOutput, SIGNAL(textEdited(QString)), this, \
SLOT(slotGrubTerminalOutputChanged())); +    \
connect(ui.kpushbutton_terminalOutputSuggestions->menu(), SIGNAL(aboutToShow()), \
this, SLOT(slotUpdateSuggestions())); +    \
connect(ui.kpushbutton_terminalOutputSuggestions->menu(), \
SIGNAL(triggered(QAction*)), this, SLOT(slotTriggeredSuggestion(QAction*)));  
-    connect(ui.lineEdit_distributor, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubDistributor(QString)));
-    connect(ui.lineEdit_serial, SIGNAL(textEdited(QString)), this, \
                SLOT(updateGrubSerialCommand(QString)));
-    connect(ui.lineEdit_initTune, SIGNAL(textEdited(QString)), this, \
SLOT(updateGrubInitTune(QString))); +    connect(ui.lineEdit_distributor, \
SIGNAL(textEdited(QString)), this, SLOT(slotGrubDistributorChanged())); +    \
connect(ui.lineEdit_serial, SIGNAL(textEdited(QString)), this, \
SLOT(slotGrubSerialCommandChanged())); +    connect(ui.lineEdit_initTune, \
SIGNAL(textEdited(QString)), this, SLOT(slotGrubInitTuneChanged()));  
-    connect(ui.checkBox_uuid, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubDisableLinuxUUID(bool)));
-    connect(ui.checkBox_recovery, SIGNAL(clicked(bool)), this, \
                SLOT(updateGrubDisableRecovery(bool)));
-    connect(ui.checkBox_osProber, SIGNAL(clicked(bool)), this, \
SLOT(updateGrubDisableOsProber(bool))); +    connect(ui.checkBox_uuid, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubDisableLinuxUuidChanged())); +    \
connect(ui.checkBox_recovery, SIGNAL(clicked(bool)), this, \
SLOT(slotGrubDisableRecoveryChanged())); +    connect(ui.checkBox_osProber, \
SIGNAL(clicked(bool)), this, SLOT(slotGrubDisableOsProberChanged()));  }
 
 QString KCMGRUB2::convertToGRUBFileName(const QString &fileName)
@@ -969,6 +939,10 @@ bool KCMGRUB2::readSettings()
     return false;
 }
 
+QString KCMGRUB2::quoteWord(const QString &word)
+{
+    return !word.startsWith('`') || !word.endsWith('`') ? KShell::quoteArg(word) : \
word; +}
 QString KCMGRUB2::unquoteWord(const QString &word)
 {
     KProcess echo(this);
@@ -1065,7 +1039,7 @@ void KCMGRUB2::parseSettings(const QString &config)
     while (!stream.atEnd()) {
         line = stream.readLine().trimmed();
         if (line.startsWith("GRUB_")) {
-            m_settings[line.section('=', 0, 0)] = unquoteWord(line.section('=', 1));
+            m_settings[line.section('=', 0, 0)] = line.section('=', 1);
         }
     }
 }
@@ -1134,7 +1108,7 @@ void KCMGRUB2::parseEntries(const QString &config)
                 }
             }
         }
-        m_entries.append(unquoteWord(entry));
+        m_entries.append(entry);
         entry.clear();
     }
 }
diff --git a/src/kcm_grub2.h b/src/kcm_grub2.h
index 05cc177..eae7c96 100644
--- a/src/kcm_grub2.h
+++ b/src/kcm_grub2.h
@@ -36,33 +36,33 @@ public:
     virtual void load();
     virtual void save();
 private Q_SLOTS:
-    void updateGrubDefault();
-    void updateGrubSavedefault(bool checked);
-    void updateGrubHiddenTimeout();
-    void updateGrubHiddenTimeoutQuiet(bool checked);
-    void updateGrubTimeout();
-    void updateGrubGfxmode(const QString &text);
-    void updateGrubGfxpayloadLinux();
-    void updateGrubColorNormal();
-    void updateGrubColorHighlight();
-    void updateGrubBackground(const QString &text);
+    void slotGrubDefaultChanged();
+    void slotGrubSavedefaultChanged();
+    void slotGrubHiddenTimeoutChanged();
+    void slotGrubHiddenTimeoutQuietChanged();
+    void slotGrubTimeoutChanged();
+    void slotGrubGfxmodeChanged();
+    void slotGrubGfxpayloadLinuxChanged();
+    void slotGrubColorNormalChanged();
+    void slotGrubColorHighlightChanged();
+    void slowGrubBackgroundChanged();
     void previewGrubBackground();
     void createGrubBackground();
-    void updateGrubTheme(const QString &text);
-    void updateGrubCmdlineLinuxDefault(const QString &text);
-    void updateGrubCmdlineLinux(const QString &text);
-    void updateGrubTerminal(const QString &text);
-    void updateGrubTerminalInput(const QString &text);
-    void updateGrubTerminalOutput(const QString &text);
-    void updateGrubDistributor(const QString &text);
-    void updateGrubSerialCommand(const QString &text);
-    void updateGrubInitTune(const QString &text);
-    void updateGrubDisableLinuxUUID(bool checked);
-    void updateGrubDisableRecovery(bool checked);
-    void updateGrubDisableOsProber(bool checked);
+    void slotGrubThemeChanged();
+    void slotGrubCmdlineLinuxDefaultChanged();
+    void slotGrubCmdlineLinuxChanged();
+    void slotGrubTerminalChanged();
+    void slotGrubTerminalInputChanged();
+    void slotGrubTerminalOutputChanged();
+    void slotGrubDistributorChanged();
+    void slotGrubSerialCommandChanged();
+    void slotGrubInitTuneChanged();
+    void slotGrubDisableLinuxUuidChanged();
+    void slotGrubDisableRecoveryChanged();
+    void slotGrubDisableOsProberChanged();
 
-    void updateSuggestions();
-    void triggeredSuggestion(QAction *action);
+    void slotUpdateSuggestions();
+    void slotTriggeredSuggestion(QAction *action);
 private:
     void setupObjects();
     void setupConnections();
@@ -79,6 +79,7 @@ private:
     bool readEntries();
     bool readSettings();
 
+    QString quoteWord(const QString &word);
     QString unquoteWord(const QString &word);
     void parseSettings(const QString &config);
     void parseEntries(const QString &config);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic