X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fcorehighlightsettingspage.cpp;h=d8eaa9f9eb6365768eec9ff6dec8c7b8554c5bdc;hp=d4be7cf6ff5e04fcd844809c7f398c49ac18cf1f;hb=d0bfecae4adc8fe1458103b35de71b5620952f0f;hpb=e7ca039bcfdef8e22946b4402643ce107e89709c 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(); +}