X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fcorehighlightsettingspage.cpp;h=467991fb040edd827c10083619eabd0a03de5b31;hp=bad2400ae0c3d33b88d9be122ed64f6bc4d92574;hb=7678f2402fdb01b03b359a2266f1e7427894d82a;hpb=908c7068213307be405b80788996403a0ab9fd3c diff --git a/src/qtui/settingspages/corehighlightsettingspage.cpp b/src/qtui/settingspages/corehighlightsettingspage.cpp index bad2400a..467991fb 100644 --- a/src/qtui/settingspages/corehighlightsettingspage.cpp +++ b/src/qtui/settingspages/corehighlightsettingspage.cpp @@ -53,6 +53,7 @@ CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent) ui.highlightTable->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::RegExColumn, QHeaderView::ResizeToContents); ui.highlightTable->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::CsColumn, QHeaderView::ResizeToContents); ui.highlightTable->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::EnableColumn, QHeaderView::ResizeToContents); + ui.highlightTable->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::InverseColumn, QHeaderView::ResizeToContents); ui.highlightTable->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::ChanColumn, QHeaderView::ResizeToContents); #endif @@ -106,7 +107,7 @@ void CoreHighlightSettingsPage::defaults() } -void CoreHighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool enable, QString chanName, bool self) +void CoreHighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool enable, bool inverse, QString chanName, bool self) { ui.highlightTable->setRowCount(ui.highlightTable->rowCount()+1); @@ -133,6 +134,13 @@ void CoreHighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, boo enableItem->setCheckState(Qt::Unchecked); enableItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); + auto *inverseItem = new QTableWidgetItem(""); + if (inverse) + inverseItem->setCheckState(Qt::Checked); + else + inverseItem->setCheckState(Qt::Unchecked); + inverseItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); + auto *chanNameItem = new QTableWidgetItem(chanName); int lastRow = ui.highlightTable->rowCount()-1; @@ -140,12 +148,13 @@ void CoreHighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, boo ui.highlightTable->setItem(lastRow, CoreHighlightSettingsPage::RegExColumn, regexItem); ui.highlightTable->setItem(lastRow, CoreHighlightSettingsPage::CsColumn, csItem); ui.highlightTable->setItem(lastRow, CoreHighlightSettingsPage::EnableColumn, enableItem); + ui.highlightTable->setItem(lastRow, CoreHighlightSettingsPage::InverseColumn, inverseItem); ui.highlightTable->setItem(lastRow, CoreHighlightSettingsPage::ChanColumn, chanNameItem); if (!self) ui.highlightTable->setCurrentItem(nameItem); - highlightList << HighlightRuleManager::HighlightRule(name, regex, cs, enable, chanName); + highlightList << HighlightRuleManager::HighlightRule(name, regex, cs, enable, inverse, chanName); } @@ -215,6 +224,9 @@ void CoreHighlightSettingsPage::tableChanged(QTableWidgetItem *item) case CoreHighlightSettingsPage::EnableColumn: highlightRule.isEnabled = (item->checkState() == Qt::Checked); break; + case CoreHighlightSettingsPage::InverseColumn: + highlightRule.isInverse = (item->checkState() == Qt::Checked); + break; case CoreHighlightSettingsPage::ChanColumn: if (!item->text().isEmpty() && item->text().trimmed().isEmpty()) item->setText(""); @@ -232,7 +244,7 @@ void CoreHighlightSettingsPage::load() auto ruleManager = Client::highlightRuleManager(); for (HighlightRuleManager::HighlightRule rule : ruleManager->highlightRuleList()) { - addNewRow(rule.name, rule.isRegEx, rule.isCaseSensitive, rule.isEnabled, rule.chanName); + addNewRow(rule.name, rule.isRegEx, rule.isCaseSensitive, rule.isEnabled, rule.isInverse, rule.chanName); } switch (ruleManager->highlightNick()) @@ -270,7 +282,7 @@ void CoreHighlightSettingsPage::save() clonedManager.clear(); for (const HighlightRuleManager::HighlightRule &rule : highlightList) { - clonedManager.addHighlightRule(rule.name, rule.isRegEx, rule.isCaseSensitive, rule.isRegEx, rule.chanName); + clonedManager.addHighlightRule(rule.name, rule.isRegEx, rule.isCaseSensitive, rule.isEnabled, rule.isInverse, rule.chanName); } HighlightRuleManager::HighlightNickType highlightNickType = HighlightRuleManager::NoNick;