From d0bfecae4adc8fe1458103b35de71b5620952f0f Mon Sep 17 00:00:00 2001 From: Janne Koschinski Date: Thu, 21 Dec 2017 22:07:55 +0100 Subject: [PATCH] Add an import button to import local rules into the new page --- .../corehighlightsettingspage.cpp | 26 +++++++++++++++++++ .../settingspages/corehighlightsettingspage.h | 2 ++ .../corehighlightsettingspage.ui | 7 +++++ 3 files changed, 35 insertions(+) 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 + + + -- 2.20.1