From: Janne Koschinski Date: Thu, 21 Dec 2017 21:07:55 +0000 (+0100) Subject: Add an import button to import local rules into the new page X-Git-Tag: travis-deploy-test~158 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=d0bfecae4adc8fe1458103b35de71b5620952f0f;ds=sidebyside Add an import button to import local rules into the new page --- diff --git a/src/qtui/settingspages/corehighlightsettingspage.cpp b/src/qtui/settingspages/corehighlightsettingspage.cpp index d4be7cf6..d8eaa9f9 100644 --- a/src/qtui/settingspages/corehighlightsettingspage.cpp +++ b/src/qtui/settingspages/corehighlightsettingspage.cpp @@ -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(); +} diff --git a/src/qtui/settingspages/corehighlightsettingspage.h b/src/qtui/settingspages/corehighlightsettingspage.h index fe0113f6..bd4dd465 100644 --- a/src/qtui/settingspages/corehighlightsettingspage.h +++ b/src/qtui/settingspages/corehighlightsettingspage.h @@ -80,5 +80,7 @@ private: void setupRuleTable(QTableWidget *highlightTable) const; + void importRules(); + bool _initialized; }; diff --git a/src/qtui/settingspages/corehighlightsettingspage.ui b/src/qtui/settingspages/corehighlightsettingspage.ui index 6ccf72b9..11b64e28 100644 --- a/src/qtui/settingspages/corehighlightsettingspage.ui +++ b/src/qtui/settingspages/corehighlightsettingspage.ui @@ -159,6 +159,13 @@ + + + + Import + + +