X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fcorehighlightsettingspage.cpp;h=70cc84f7c9ba6b3c797d7e2d25a1bbbe35a46181;hp=68d60176c8f766b0d37d0fac733b09f8b32304f4;hb=b7447afe8e836376776dac26704e227a678d2913;hpb=63fc3ba0333a0555f6f04d49a45aa321b07d10ac diff --git a/src/qtui/settingspages/corehighlightsettingspage.cpp b/src/qtui/settingspages/corehighlightsettingspage.cpp index 68d60176..70cc84f7 100644 --- a/src/qtui/settingspages/corehighlightsettingspage.cpp +++ b/src/qtui/settingspages/corehighlightsettingspage.cpp @@ -24,10 +24,15 @@ #include "client.h" #include "corehighlightsettingspage.h" +#include "icon.h" #include "qtui.h" CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent) - : SettingsPage(tr("Interface"), tr("Remote Highlights"), parent) + : SettingsPage(tr("Interface"), + // In Monolithic mode, local highlights are replaced by remote highlights + Quassel::runMode() == Quassel::Monolithic ? + tr("Highlights") : tr("Remote Highlights"), + parent) { ui.setupUi(this); @@ -86,7 +91,24 @@ CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent) connect(Client::instance(), SIGNAL(connected()), this, SLOT(clientConnected())); // Warning icon - ui.coreUnsupportedIcon->setPixmap(QIcon::fromTheme("dialog-warning").pixmap(16)); + ui.coreUnsupportedIcon->setPixmap(icon::get("dialog-warning").pixmap(16)); + + // Set up client/monolithic remote highlights information + if (Quassel::runMode() == Quassel::Monolithic) { + // We're running in Monolithic mode, local highlights are considered legacy + ui.highlightImport->setText(tr("Import Legacy")); + ui.highlightImport->setToolTip(tr("Import highlight rules configured in %1.") + .arg(tr("Legacy Highlights").replace(" ", " "))); + // Re-use translations of "Legacy Highlights" as this is a word-for-word reference, forcing + // all spaces to be non-breaking + } else { + // We're running in client/split mode, local highlights are distinguished from remote + ui.highlightImport->setText(tr("Import Local")); + ui.highlightImport->setToolTip(tr("Import highlight rules configured in %1.") + .arg(tr("Local Highlights").replace(" ", " "))); + // Re-use translations of "Local Highlights" as this is a word-for-word reference, forcing + // all spaces to be non-breaking + } } void CoreHighlightSettingsPage::coreConnectionStateChanged(bool state) @@ -105,29 +127,57 @@ void CoreHighlightSettingsPage::setupRuleTable(QTableWidget *table) const table->verticalHeader()->hide(); table->setShowGrid(false); + table->horizontalHeaderItem(CoreHighlightSettingsPage::EnableColumn)->setToolTip( + tr("Enable/disable this rule")); + table->horizontalHeaderItem(CoreHighlightSettingsPage::EnableColumn)->setWhatsThis( + table->horizontalHeaderItem(CoreHighlightSettingsPage::EnableColumn)->toolTip()); + + table->horizontalHeaderItem(CoreHighlightSettingsPage::NameColumn)->setToolTip( + tr("Phrase to match")); + table->horizontalHeaderItem(CoreHighlightSettingsPage::NameColumn)->setWhatsThis( + table->horizontalHeaderItem(CoreHighlightSettingsPage::NameColumn)->toolTip()); + table->horizontalHeaderItem(CoreHighlightSettingsPage::RegExColumn)->setToolTip( - tr("RegEx: This option determines if the highlight rule should be " - "interpreted as a regular expression or just as a keyword.")); + tr("RegEx: This option determines if the highlight rule, Sender, and " + "Channel should be interpreted as regular expressions or just as " + "keywords.")); table->horizontalHeaderItem(CoreHighlightSettingsPage::RegExColumn)->setWhatsThis( table->horizontalHeaderItem(CoreHighlightSettingsPage::RegExColumn)->toolTip()); table->horizontalHeaderItem(CoreHighlightSettingsPage::CsColumn)->setToolTip( - tr("CS: This option determines if the highlight rule should be interpreted " - "case sensitive.")); + tr("CS: This option determines if the highlight rule, Sender, and " + "Channel should be interpreted case sensitive.")); table->horizontalHeaderItem(CoreHighlightSettingsPage::CsColumn)->setWhatsThis( table->horizontalHeaderItem(CoreHighlightSettingsPage::CsColumn)->toolTip()); + table->horizontalHeaderItem(CoreHighlightSettingsPage::SenderColumn)->setToolTip( + tr("
Sender: Semicolon separated list of nick!ident@host names, " + "leave blank to match any nickname.
" + "Example:
"
+ "Alice!*; Bob!*@example.com; Carol*!*; !Caroline!*
"
+ "would match on Alice, Bob with hostmask example.com, and "
+ "any nickname starting with Carol except for Caroline
"
+ "
If only inverted names are specified, it will match anything except for " + "what's specified (implicit wildcard).
" + "Example:
"
+ "!Announce*!*; !Wheatley!aperture@*
"
+ "would match anything except for Wheatley with ident aperture or "
+ "any nickname starting with Announce
Channel: Semicolon separated list of channel names.
" + tr("Channel: Semicolon separated list of channel names, leave blank to " + "match any name.
" "Example:
"
"#quassel*; #foobar; !#quasseldroid
"
- "would match on #foobar and on any channel starting with #quassel except "
- "for #quasseldroid
"
+ "would match on #foobar and 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 "
+ "would match anything except for #foobar or any channel starting with "
"#quassel
Sender: Semicolon separated list of nick!ident@host names, " + "leave blank to match any nickname.
" + "Example:
"
+ "Alice!*; Bob!*@example.com; Carol*!*; !Caroline!*
"
+ "would match on Alice, Bob with hostmask example.com, and "
+ "any nickname starting with Carol except for Caroline
"
+ "
If only inverted names are specified, it will match anything except for " + "what's specified (implicit wildcard).
" + "Example:
"
+ "!Announce*!*; !Wheatley!aperture@*
"
+ "would match anything except for Wheatley with ident aperture or "
+ "any nickname starting with Announce
Channel: Semicolon separated list of channel names.
" + tr("Channel: Semicolon separated list of channel names, leave blank to " + "match any name.
" "Example:
"
"#quassel*; #foobar; !#quasseldroid
"
- "would match on #foobar and on any channel starting with #quassel except "
- "for #quasseldroid
"
+ "would match on #foobar and 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 "
+ "would match anything except for #foobar or any channel starting with "
"#quassel
Channel: Semicolon separated list of channel names.
" "Example:
"
"#quassel*; #foobar; !#quasseldroid
"
- "would match on #foobar and on any channel starting with #quassel except "
+ "would match on #foobar and 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).
" @@ -593,28 +655,33 @@ void CoreHighlightSettingsPage::importRules() { const auto localHighlightList = notificationSettings.highlightList(); - // Re-use translations of "Local Highlights" as this is a word-for-word reference, forcing all - // spaces to non-breaking - const QString localHighlightsName = tr("Local Highlights").replace(" ", " "); + // Re-use translations of "Legacy/Local Highlights" as this is a word-for-word reference, + // forcing all spaces to non-breaking + QString localHighlightsName; + if (Quassel::runMode() == Quassel::Monolithic) { + localHighlightsName = tr("Legacy Highlights").replace(" ", " "); + } else { + localHighlightsName = tr("Local Highlights").replace(" ", " "); + } if (localHighlightList.count() == 0) { // No highlight rules exist to import, do nothing QMessageBox::information(this, - tr("No local highlights"), + tr("No highlights to import"), tr("No highlight rules in %1." ).arg(localHighlightsName)); return; } int ret = QMessageBox::question(this, - tr("Import local highlights?"), + tr("Import highlights?"), tr("Import all highlight rules from %1?" ).arg(localHighlightsName), QMessageBox::Yes|QMessageBox::No, QMessageBox::No); - if (ret == QMessageBox::No) { - // Only two options, Yes or No, just return if No + if (ret != QMessageBox::Yes) { + // Only two options, Yes or No, return if not Yes return; } @@ -641,7 +708,7 @@ void CoreHighlightSettingsPage::importRules() { // Give a heads-up that all succeeded QMessageBox::information(this, - tr("Imported local highlights"), + tr("Imported highlights"), tr("%1 highlight rules successfully imported." ).arg(QString::number(localHighlightList.count()))); }