Add an import button to import local rules into the new page
authorJanne Koschinski <janne@kuschku.de>
Thu, 21 Dec 2017 21:07:55 +0000 (22:07 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 28 Mar 2018 20:59:45 +0000 (22:59 +0200)
src/qtui/settingspages/corehighlightsettingspage.cpp
src/qtui/settingspages/corehighlightsettingspage.h
src/qtui/settingspages/corehighlightsettingspage.ui

index d4be7cf..d8eaa9f 100644 (file)
@@ -42,6 +42,7 @@ CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent)
 
     connect(ui.highlightAdd, SIGNAL(clicked(bool)), this, SLOT(addNewHighlightRow()));
     connect(ui.highlightRemove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedHighlightRows()));
+    connect(ui.highlightImport, SIGNAL(clicked(bool)), this, SLOT(importRules()));
 
     connect(ui.ignoredAdd, SIGNAL(clicked(bool)), this, SLOT(addNewIgnoredRow()));
     connect(ui.ignoredRemove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedIgnoredRows()));
@@ -470,3 +471,28 @@ void CoreHighlightSettingsPage::widgetHasChanged()
 {
     setChangedState(true);
 }
+
+void CoreHighlightSettingsPage::importRules() {
+    NotificationSettings notificationSettings;
+
+    auto clonedManager = HighlightRuleManager();
+    clonedManager.fromVariantMap(Client::highlightRuleManager()->toVariantMap());
+
+    for (const auto &variant : notificationSettings.highlightList()) {
+        auto highlightRule = variant.toMap();
+
+        clonedManager.addHighlightRule(
+                highlightRule["Name"].toString(),
+                highlightRule["RegEx"].toBool(),
+                highlightRule["CS"].toBool(),
+                highlightRule["Enable"].toBool(),
+                false,
+                "",
+                highlightRule["Channel"].toString()
+        );
+    }
+
+    Client::highlightRuleManager()->requestUpdate(clonedManager.toVariantMap());
+    setChangedState(false);
+    load();
+}
index fe0113f..bd4dd46 100644 (file)
@@ -80,5 +80,7 @@ private:
 
     void setupRuleTable(QTableWidget *highlightTable) const;
 
+    void importRules();
+
     bool _initialized;
 };
index 6ccf72b..11b64e2 100644 (file)
               </property>
              </spacer>
             </item>
+            <item>
+             <widget class="QPushButton" name="highlightImport">
+              <property name="text">
+               <string>Import</string>
+              </property>
+             </widget>
+            </item>
            </layout>
           </item>
          </layout>