summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c351c94)
Signed-off-by: Bas Pape <baspape@gmail.com>
for(int i = 0; i < _highlightRules.count(); i++) {
const HighlightRule &rule = _highlightRules.at(i);
if(!rule.isEnabled)
for(int i = 0; i < _highlightRules.count(); i++) {
const HighlightRule &rule = _highlightRules.at(i);
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;
+ }
+ }
QRegExp rx;
if(rule.isRegExp) {
QRegExp rx;
if(rule.isRegExp) {
_highlightRules << HighlightRule(rule["Name"].toString(),
rule["Enable"].toBool(),
rule["CS"].toBool() ? Qt::CaseSensitive : Qt::CaseInsensitive,
_highlightRules << HighlightRule(rule["Name"].toString(),
rule["Enable"].toBool(),
rule["CS"].toBool() ? Qt::CaseSensitive : Qt::CaseInsensitive,
- rule["RegEx"].toBool());
+ rule["RegEx"].toBool(),
+ rule["Chan"].toString());
bool isEnabled;
Qt::CaseSensitivity caseSensitive;
bool isRegExp;
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;
};
QList<HighlightRule> _highlightRules;
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::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::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()));
connect(ui.add, SIGNAL(clicked(bool)), this, SLOT(addNewRow()));
connect(ui.remove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedRows()));
-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);
ui.highlightTable->setRowCount(ui.highlightTable->rowCount()+1);
QTableWidgetItem *nameItem = new QTableWidgetItem(name);
enableItem->setCheckState(Qt::Unchecked);
enableItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable);
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);
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;
QVariantMap highlightRule;
highlightRule["Name"] = name;
highlightRule["RegEx"] = regex;
highlightRule["CS"] = cs;
highlightRule["Enable"] = enable;
+ highlightRule["Chan"] = chanName;
highlightList.append(highlightRule);
}
highlightList.append(highlightRule);
}
case HighlightSettingsPage::EnableColumn:
highlightRule["Enable"] = (item->checkState() == Qt::Checked);
break;
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();
}
highlightList[item->row()] = highlightRule;
emit widgetHasChanged();
bool regex = highlightRule["RegEx"].toBool();
bool cs = highlightRule["CS"].toBool();
bool enable = highlightRule["Enable"].toBool();
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())
}
switch(notificationSettings.highlightNick())
private slots:
void widgetHasChanged();
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);
void removeSelectedRows();
void selectRow(QTableWidgetItem *item);
void tableChanged(QTableWidgetItem *item);
RegExColumn = 1,
CsColumn = 2,
EnableColumn = 3,
RegExColumn = 1,
CsColumn = 2,
EnableColumn = 3,
+ ChanColumn = 4,
+ ColumnCount = 5
<string>Enable</string>
</property>
</column>
<string>Enable</string>
</property>
</column>
+ <column>
+ <property name="text" >
+ <string>Chan</string>
+ </property>
+ </column>
</widget>
</item>
<item row="0" column="1" >
</widget>
</item>
<item row="0" column="1" >