X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fhighlightsettingspage.cpp;h=6210f6f64f319026c8e3a8b972eef54b1da3e6af;hb=b627af388d570f48a03fd22ab024c07e82e0d503;hp=2fe2a0b4d92b0ce17f5c6c7da8f9065c374b6ed7;hpb=d82f98b8cf9c7c83f3aab1d7f010ccf8bdd2c003;p=quassel.git diff --git a/src/qtui/settingspages/highlightsettingspage.cpp b/src/qtui/settingspages/highlightsettingspage.cpp index 2fe2a0b4..6210f6f6 100644 --- a/src/qtui/settingspages/highlightsettingspage.cpp +++ b/src/qtui/settingspages/highlightsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,26 +20,45 @@ #include "highlightsettingspage.h" +#include "client.h" #include "qtui.h" #include "uisettings.h" #include HighlightSettingsPage::HighlightSettingsPage(QWidget *parent) - : SettingsPage(tr("Interface"), tr("Highlight"), parent) + : SettingsPage(tr("Interface"), tr("Local Highlights"), parent) { ui.setupUi(this); ui.highlightTable->verticalHeader()->hide(); ui.highlightTable->setShowGrid(false); - ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::RegExColumn)->setToolTip("RegEx: This option determines if the highlight rule should be interpreted as a regular expression or just as a keyword."); - ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::RegExColumn)->setWhatsThis("RegEx: This option determines if the highlight rule should be interpreted as a regular expression or just as a keyword."); - - ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->setToolTip("CS: This option determines if the highlight rule should be interpreted case sensitive."); - ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->setWhatsThis("CS: This option determines if the highlight rule should be interpreted case sensitive."); - - ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->setToolTip("Channel: This regular expression determines for which channels the highlight rule works. Leave blank to match any channel. Put ! in the beginning to negate. Case insensitive."); - ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->setWhatsThis("Channel: This regular expression determines for which channels the highlight rule works. Leave blank to match any channel. Put ! in the beginning to negate. Case insensitive."); + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::RegExColumn)->setToolTip( + tr("RegEx: This option determines if the highlight rule should be " + "interpreted as a regular expression or just as a keyword.")); + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::RegExColumn)->setWhatsThis( + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::RegExColumn)->toolTip()); + + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->setToolTip( + tr("CS: This option determines if the highlight rule should be interpreted " + "case sensitive.")); + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->setWhatsThis( + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::CsColumn)->toolTip()); + + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->setToolTip( + tr("

Channel: Semicolon separated list of channel names.

" + "

Example:
" + "#quassel*; #foobar; !#quasseldroid
" + "would match on #foobar and on any channel starting with #quassel except " + "for #quasseldroid
" + "

If only inverted names are specified, it will match anything except for " + "what's specified (implicit wildcard).

" + "

Example:
" + "!#quassel*; !#foobar
" + "would match anything except for #foobar or any channel starting with " + "#quassel

")); + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->setWhatsThis( + ui.highlightTable->horizontalHeaderItem(HighlightSettingsPage::ChanColumn)->toolTip()); #if QT_VERSION < 0x050000 ui.highlightTable->horizontalHeader()->setResizeMode(HighlightSettingsPage::NameColumn, QHeaderView::Stretch); @@ -78,7 +97,7 @@ bool HighlightSettingsPage::hasDefaults() const void HighlightSettingsPage::defaults() { - ui.highlightCurrentNick->setChecked(true); + ui.highlightNoNick->setChecked(true); ui.nicksCaseSensitive->setChecked(false); emptyTable(); @@ -90,6 +109,13 @@ void HighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool en { ui.highlightTable->setRowCount(ui.highlightTable->rowCount()+1); + QTableWidgetItem *enableItem = new QTableWidgetItem(""); + if (enable) + enableItem->setCheckState(Qt::Checked); + else + enableItem->setCheckState(Qt::Unchecked); + enableItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); + QTableWidgetItem *nameItem = new QTableWidgetItem(name); QTableWidgetItem *regexItem = new QTableWidgetItem(""); @@ -106,20 +132,34 @@ void HighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool en csItem->setCheckState(Qt::Unchecked); csItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); - QTableWidgetItem *enableItem = new QTableWidgetItem(""); - if (enable) - enableItem->setCheckState(Qt::Checked); - else - enableItem->setCheckState(Qt::Unchecked); - enableItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); - QTableWidgetItem *chanNameItem = new QTableWidgetItem(chanName); + enableItem->setToolTip(tr("Enable/disable this rule")); + nameItem->setToolTip(tr("Phrase to match")); + regexItem->setToolTip( + tr("RegEx: This option determines if the highlight rule should be " + "interpreted as a regular expression or just as a keyword.")); + csItem->setToolTip( + tr("CS: This option determines if the highlight rule should be interpreted " + "case sensitive.")); + chanNameItem->setToolTip( + tr("

Channel: Semicolon separated list of channel names.

" + "

Example:
" + "#quassel*; #foobar; !#quasseldroid
" + "would match on #foobar and on any channel starting with #quassel except " + "for #quasseldroid
" + "

If only inverted names are specified, it will match anything except for " + "what's specified (implicit wildcard).

" + "

Example:
" + "!#quassel*; !#foobar
" + "would match anything except for #foobar or any channel starting with " + "#quassel

")); + int lastRow = ui.highlightTable->rowCount()-1; + ui.highlightTable->setItem(lastRow, HighlightSettingsPage::EnableColumn, enableItem); 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); if (!self) @@ -187,6 +227,9 @@ void HighlightSettingsPage::tableChanged(QTableWidgetItem *item) switch (item->column()) { + case HighlightSettingsPage::EnableColumn: + highlightRule["Enable"] = (item->checkState() == Qt::Checked); + break; case HighlightSettingsPage::NameColumn: if (item->text() == "") item->setText(tr("this shouldn't be empty")); @@ -198,9 +241,6 @@ void HighlightSettingsPage::tableChanged(QTableWidgetItem *item) case HighlightSettingsPage::CsColumn: highlightRule["CS"] = (item->checkState() == Qt::Checked); break; - case HighlightSettingsPage::EnableColumn: - highlightRule["Enable"] = (item->checkState() == Qt::Checked); - break; case HighlightSettingsPage::ChanColumn: if (!item->text().isEmpty() && item->text().trimmed().isEmpty()) item->setText("");