X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fhighlightsettingspage.cpp;h=4d169f2aa7631762dbfae9352bc6704748436f4d;hp=45567d1d5a73835d850084da1b63b01b1eaea772;hb=7a413a4808e9357e7d2c69840efe913b4c4ab0a3;hpb=6d55e659fa87565462d7f3e92da594fdcf9708a2 diff --git a/src/qtui/settingspages/highlightsettingspage.cpp b/src/qtui/settingspages/highlightsettingspage.cpp index 45567d1d..4d169f2a 100644 --- a/src/qtui/settingspages/highlightsettingspage.cpp +++ b/src/qtui/settingspages/highlightsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -27,7 +27,7 @@ HighlightSettingsPage::HighlightSettingsPage(QWidget *parent) - : SettingsPage(tr("Behaviour"), tr("Highlight"), parent) { + : SettingsPage(tr("Interface"), tr("Highlight"), parent) { ui.setupUi(this); ui.highlightTable->verticalHeader()->hide(); ui.highlightTable->setShowGrid(false); @@ -38,10 +38,14 @@ HighlightSettingsPage::HighlightSettingsPage(QWidget *parent) 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("Chan: 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("Chan: 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->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())); @@ -63,13 +67,13 @@ bool HighlightSettingsPage::hasDefaults() const { void HighlightSettingsPage::defaults() { ui.highlightCurrentNick->setChecked(true); - ui.nicksCaseSensitive->setChecked(true); + ui.nicksCaseSensitive->setChecked(false); emptyTable(); 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 @@ void HighlightSettingsPage::addNewRow(QString name, bool regex, bool cs, bool en 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["Name"] = name; + highlightRule["RegEx"] = regex; + highlightRule["CS"] = cs; + highlightRule["Enable"] = enable; + highlightRule["Chan"] = chanName; highlightList.append(highlightRule); } @@ -157,16 +165,21 @@ void HighlightSettingsPage::tableChanged(QTableWidgetItem *item) { case HighlightSettingsPage::NameColumn: if(item->text() == "") item->setText(tr("this shouldn't be empty")); - highlightRule["name"] = item->text(); + highlightRule["Name"] = item->text(); break; case HighlightSettingsPage::RegExColumn: - highlightRule["regex"] = (item->checkState() == Qt::Checked); + highlightRule["RegEx"] = (item->checkState() == Qt::Checked); break; case HighlightSettingsPage::CsColumn: - highlightRule["cs"] = (item->checkState() == Qt::Checked); + highlightRule["CS"] = (item->checkState() == Qt::Checked); break; case HighlightSettingsPage::EnableColumn: - highlightRule["enable"] = (item->checkState() == Qt::Checked); + 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; @@ -180,12 +193,13 @@ void HighlightSettingsPage::load() { foreach(QVariant highlight, notificationSettings.highlightList()) { QVariantMap highlightRule = highlight.toMap(); - QString name = highlightRule["name"].toString(); - bool regex = highlightRule["regex"].toBool(); - bool cs = highlightRule["cs"].toBool(); - bool enable = highlightRule["enable"].toBool(); + QString name = highlightRule["Name"].toString(); + 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())