rendered paste bodydiff -ru a/src/qtui/qtuimessageprocessor.cpp b/src/qtui/qtuimessageprocessor.cpp--- a/src/qtui/qtuimessageprocessor.cpp 2009-06-08 00:00:00.000000000 +0000+++ b/src/qtui/qtuimessageprocessor.cpp 2009-06-08 00:00:00.000000000 +0000@@ -132,6 +132,18 @@ if(!rule.isEnabled) continue; + if(rule.chanName.size() > 0 && rule.chanName.compare(".*") != 0) {+ if(rule.chanName.startsWith("!")) {+ QRegExp rx(rule.chanName.mid(1), Qt::CaseInsensitive);+ if(rx.exactMatch(msg.bufferInfo().bufferName()))+ continue;+ } else {+ QRegExp rx(rule.chanName, Qt::CaseInsensitive);+ if(!rx.exactMatch(msg.bufferInfo().bufferName()))+ continue;+ }+ }+ bool match = false; if(rule.isRegExp) { QRegExp rx(rule.name, rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive);@@ -162,7 +174,8 @@ _highlightRules << HighlightRule(rule["Name"].toString(), rule["Enable"].toBool(), rule["CS"].toBool() ? Qt::CaseSensitive : Qt::CaseInsensitive,- rule["RegEx"].toBool());+ rule["RegEx"].toBool(),+ rule["Chan"].toString()); iter++; } }diff -ru a/src/qtui/qtuimessageprocessor.h b/src/qtui/qtuimessageprocessor.h--- a/src/qtui/qtuimessageprocessor.h 2009-06-08 00:00:00.000000000 +0000+++ b/src/qtui/qtuimessageprocessor.h 2009-06-08 00:00:00.000000000 +0000@@ -67,8 +67,9 @@ bool isEnabled; Qt::CaseSensitivity caseSensitive; bool isRegExp;- inline HighlightRule(const QString &name, bool enabled, Qt::CaseSensitivity cs, bool regExp)- : name(name), isEnabled(enabled), caseSensitive(cs), isRegExp(regExp) {}+ QString chanName;+ inline HighlightRule(const QString &name, bool enabled, Qt::CaseSensitivity cs, bool regExp, const QString &chanName)+ : name(name), isEnabled(enabled), caseSensitive(cs), isRegExp(regExp), chanName(chanName) {} }; QList<HighlightRule> _highlightRules;diff -ru a/src/qtui/settingspages/highlightsettingspage.cpp b/src/qtui/settingspages/highlightsettingspage.cpp--- a/src/qtui/settingspages/highlightsettingspage.cpp 2009-06-08 00:00:00.000000000 +0000+++ b/src/qtui/settingspages/highlightsettingspage.cpp 2009-06-08 00:00:00.000000000 +0000@@ -38,10 +38,14 @@ ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->setToolTip("<b>CS</b>: This option determines if the highlight rule should be interpreted <b>case sensitive</b>."); ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->setWhatsThis("<b>CS</b>: This option determines if the highlight rule should be interpreted <b>case sensitive</b>."); + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->setToolTip("<b>Chan</b>: This regular expression determines for which <b>Channels</b> the highlight rule works. Leave blank to match any channel. Put <b>!</b> in the beginning to negate. Case insensitive.");+ ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->setWhatsThis("<b>Chan</b>: This regular expression determines for which <b>Channels</b> the highlight rule works. Leave blank to match any channel. Put <b>!</b> in the beginning to negate. Case insensitive.");+ ui.highlightTable->horizontalHeader()->setResizeMode(HighlightSettingsPage::NameColumn, QHeaderView::Stretch); ui.highlightTable->horizontalHeader()->setResizeMode(HighlightSettingsPage::RegExColumn, QHeaderView::ResizeToContents); ui.highlightTable->horizontalHeader()->setResizeMode(HighlightSettingsPage::CsColumn, QHeaderView::ResizeToContents); ui.highlightTable->horizontalHeader()->setResizeMode(HighlightSettingsPage::EnableColumn, QHeaderView::ResizeToContents);+ ui.highlightTable->horizontalHeader()->setResizeMode(HighlightSettingsPage::ChanColumn, QHeaderView::ResizeToContents); connect(ui.add, SIGNAL(clicked(bool)), this, SLOT(addNewRow())); connect(ui.remove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedRows()));@@ -69,7 +73,7 @@ widgetHasChanged(); } -void HighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool enable) {+void HighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool enable, QString chanName) { ui.highlightTable->setRowCount(ui.highlightTable->rowCount()+1); QTableWidgetItem *nameItem = new QTableWidgetItem(name);@@ -95,17 +99,21 @@ enableItem->setCheckState(Qt::Unchecked); enableItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); + QTableWidgetItem *chanNameItem = new QTableWidgetItem(chanName);+ int lastRow = ui.highlightTable->rowCount()-1; ui.highlightTable->setItem(lastRow, HighlightSettingsPage::NameColumn, nameItem); ui.highlightTable->setItem(lastRow, HighlightSettingsPage::RegExColumn, regexItem); ui.highlightTable->setItem(lastRow, HighlightSettingsPage::CsColumn, csItem); ui.highlightTable->setItem(lastRow, HighlightSettingsPage::EnableColumn, enableItem);+ ui.highlightTable->setItem(lastRow, HighlightSettingsPage::ChanColumn, chanNameItem); QVariantMap highlightRule; highlightRule["Name"] = name; highlightRule["RegEx"] = regex; highlightRule["CS"] = cs; highlightRule["Enable"] = enable;+ highlightRule["Chan"] = chanName; highlightList.append(highlightRule); }@@ -168,6 +176,11 @@ case HighlightSettingsPage::EnableColumn: highlightRule["Enable"] = (item->checkState() == Qt::Checked); break;+ case HighlightSettingsPage::ChanColumn:+ if(item->text().size() > 0 && item->text().trimmed().size() == 0)+ item->setText("");+ highlightRule["Chan"] = item->text();+ break; } highlightList[item->row()] = highlightRule; emit widgetHasChanged();@@ -184,8 +197,9 @@ bool regex = highlightRule["RegEx"].toBool(); bool cs = highlightRule["CS"].toBool(); bool enable = highlightRule["Enable"].toBool();+ QString chanName = highlightRule["Chan"].toString(); - addNewRow(name, regex, cs, enable);+ addNewRow(name, regex, cs, enable, chanName); } switch(notificationSettings.highlightNick())diff -ru a/src/qtui/settingspages/highlightsettingspage.h b/src/qtui/settingspages/highlightsettingspage.h--- a/src/qtui/settingspages/highlightsettingspage.h 2009-06-08 00:00:00.000000000 +0000+++ b/src/qtui/settingspages/highlightsettingspage.h 2009-06-08 00:00:00.000000000 +0000@@ -42,7 +42,7 @@ private slots: void widgetHasChanged();- void addNewRow(QString name = tr("highlight rule"), bool regex = false, bool cs = true, bool enable = true);+ void addNewRow(QString name = tr("highlight rule"), bool regex = false, bool cs = true, bool enable = true, QString chanName = ""); void removeSelectedRows(); void selectRow(QTableWidgetItem *item); void tableChanged(QTableWidgetItem *item);@@ -59,7 +59,8 @@ RegExColumn = 1, CsColumn = 2, EnableColumn = 3,- ColumnCount = 4+ ChanColumn = 4,+ ColumnCount = 5 }; void emptyTable();diff -ru a/src/qtui/settingspages/highlightsettingspage.ui b/src/qtui/settingspages/highlightsettingspage.ui--- a/src/qtui/settingspages/highlightsettingspage.ui 2009-06-08 00:00:00.000000000 +0000+++ b/src/qtui/settingspages/highlightsettingspage.ui 2009-06-08 00:00:00.000000000 +0000@@ -47,6 +47,11 @@ <string>Enable</string> </property> </column>+ <column>+ <property name="text" >+ <string>Chan</string>+ </property>+ </column> </widget> </item> <item row="0" column="1" >