#include "corehighlightsettingspage.h"
#include "icon.h"
#include "qtui.h"
+#include "util.h"
CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent)
: SettingsPage(tr("Interface"),
ui.highlightNicksComboBox->addItem(tr("None"), QVariant(HighlightRuleManager::NoNick));
coreConnectionStateChanged(Client::isConnected()); // need a core connection!
- connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool)));
+ connect(Client::instance(), &Client::coreConnectionStateChanged, this, &CoreHighlightSettingsPage::coreConnectionStateChanged);
- connect(ui.highlightAdd, SIGNAL(clicked(bool)), this, SLOT(addNewHighlightRow()));
- connect(ui.highlightRemove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedHighlightRows()));
- connect(ui.highlightImport, SIGNAL(clicked(bool)), this, SLOT(importRules()));
+ connect(ui.highlightAdd, &QAbstractButton::clicked, this, [this]() { addNewHighlightRow(); });
+ connect(ui.highlightRemove, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::removeSelectedHighlightRows);
+ connect(ui.highlightImport, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::importRules);
- connect(ui.ignoredAdd, SIGNAL(clicked(bool)), this, SLOT(addNewIgnoredRow()));
- connect(ui.ignoredRemove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedIgnoredRows()));
+ connect(ui.ignoredAdd, &QAbstractButton::clicked, this, [this]() { addNewIgnoredRow(); });
+ connect(ui.ignoredRemove, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::removeSelectedIgnoredRows);
// TODO: search for a better signal (one that emits everytime a selection has been changed for one item)
- connect(ui.highlightTable,
- SIGNAL(itemClicked(QTableWidgetItem * )),
- this,
- SLOT(selectHighlightRow(QTableWidgetItem * )));
- connect(ui.ignoredTable,
- SIGNAL(itemClicked(QTableWidgetItem * )),
- this,
- SLOT(selectIgnoredRow(QTableWidgetItem * )));
+ connect(ui.highlightTable, &QTableWidget::itemClicked, this, &CoreHighlightSettingsPage::selectHighlightRow);
+ connect(ui.ignoredTable, &QTableWidget::itemClicked, this, &CoreHighlightSettingsPage::selectIgnoredRow);
// Update the "Case sensitive" checkbox
- connect(ui.highlightNicksComboBox,
- SIGNAL(currentIndexChanged(int)),
- this,
- SLOT(highlightNicksChanged(int)));
-
- connect(ui.highlightNicksComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged()));
- connect(ui.nicksCaseSensitive, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+ connect(ui.highlightNicksComboBox, selectOverload<int>(&QComboBox::currentIndexChanged), this, &CoreHighlightSettingsPage::highlightNicksChanged);
+ connect(ui.highlightNicksComboBox, selectOverload<int>(&QComboBox::currentIndexChanged), this, &CoreHighlightSettingsPage::widgetHasChanged);
+ connect(ui.nicksCaseSensitive, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::widgetHasChanged);
- connect(ui.highlightAdd, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
- connect(ui.highlightRemove, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
+ connect(ui.highlightAdd, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::widgetHasChanged);
+ connect(ui.highlightRemove, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::widgetHasChanged);
- connect(ui.ignoredAdd, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
- connect(ui.ignoredRemove, SIGNAL(clicked()), this, SLOT(widgetHasChanged()));
+ connect(ui.ignoredAdd, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::widgetHasChanged);
+ connect(ui.ignoredRemove, &QAbstractButton::clicked, this, &CoreHighlightSettingsPage::widgetHasChanged);
connect(ui.highlightTable,
- SIGNAL(itemChanged(QTableWidgetItem * )),
+ &QTableWidget::itemChanged,
this,
- SLOT(highlightTableChanged(QTableWidgetItem * )));
+ &CoreHighlightSettingsPage::highlightTableChanged);
connect(ui.ignoredTable,
- SIGNAL(itemChanged(QTableWidgetItem * )),
+ &QTableWidget::itemChanged,
this,
- SLOT(ignoredTableChanged(QTableWidgetItem * )));
+ &CoreHighlightSettingsPage::ignoredTableChanged);
- connect(Client::instance(), SIGNAL(connected()), this, SLOT(clientConnected()));
+ connect(Client::instance(), &Client::connected, this, &CoreHighlightSettingsPage::clientConnected);
// Warning icon
ui.coreUnsupportedIcon->setPixmap(icon::get("dialog-warning").pixmap(16));
table->horizontalHeaderItem(CoreHighlightSettingsPage::SenderColumn),
table->horizontalHeaderItem(CoreHighlightSettingsPage::ChanColumn));
-#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
- table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::EnableColumn, QHeaderView::ResizeToContents);
- table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::NameColumn, QHeaderView::Stretch);
- table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::RegExColumn, QHeaderView::ResizeToContents);
- table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::CsColumn, QHeaderView::ResizeToContents);
- table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::ChanColumn, QHeaderView::ResizeToContents);
-#else
table->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::EnableColumn, QHeaderView::ResizeToContents);
table->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::NameColumn, QHeaderView::Stretch);
table->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::RegExColumn, QHeaderView::ResizeToContents);
table->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::CsColumn, QHeaderView::ResizeToContents);
+ table->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::SenderColumn, QHeaderView::ResizeToContents);
table->horizontalHeader()->setSectionResizeMode(CoreHighlightSettingsPage::ChanColumn, QHeaderView::ResizeToContents);
-#endif
}
return tr("Enable/disable this rule");
case CoreHighlightSettingsPage::NameColumn:
- return tr("Phrase to match");
+ return tr("Phrase to match, leave blank to match any message");
case CoreHighlightSettingsPage::RegExColumn:
return tr("<b>RegEx</b>: This option determines if the highlight rule, <i>Sender</i>, and "
"any nickname starting with <i>Announce</i></p>");
case CoreHighlightSettingsPage::ChanColumn:
- return tr("<p><b>Channel</b>: Semicolon separated list of channel names, leave blank to "
- "match any name.</p>"
+ return tr("<p><b>Channel</b>: Semicolon separated list of channel/query names, leave blank "
+ "to match any name.</p>"
"<p><i>Example:</i><br />"
"<i>#quassel*; #foobar; !#quasseldroid</i><br />"
"would match on <i>#foobar</i> and any channel starting with <i>#quassel</i> "
void CoreHighlightSettingsPage::clientConnected()
{
- connect(Client::highlightRuleManager(), SIGNAL(updated()), SLOT(revert()));
+ connect(Client::highlightRuleManager(), &SyncableObject::updated, this, &CoreHighlightSettingsPage::revert);
}
switch (item->column()) {
case CoreHighlightSettingsPage::EnableColumn:
- highlightRule.isEnabled = (item->checkState() == Qt::Checked);
+ highlightRule.setIsEnabled(item->checkState() == Qt::Checked);
break;
case CoreHighlightSettingsPage::NameColumn:
- if (item->text() == "")
- item->setText(tr("this shouldn't be empty"));
- highlightRule.name = item->text();
+ highlightRule.setContents(item->text());
break;
case CoreHighlightSettingsPage::RegExColumn:
- highlightRule.isRegEx = (item->checkState() == Qt::Checked);
+ highlightRule.setIsRegEx(item->checkState() == Qt::Checked);
break;
case CoreHighlightSettingsPage::CsColumn:
- highlightRule.isCaseSensitive = (item->checkState() == Qt::Checked);
+ highlightRule.setIsCaseSensitive(item->checkState() == Qt::Checked);
break;
case CoreHighlightSettingsPage::SenderColumn:
if (!item->text().isEmpty() && item->text().trimmed().isEmpty())
item->setText("");
- highlightRule.sender = item->text();
+ highlightRule.setSender(item->text());
break;
case CoreHighlightSettingsPage::ChanColumn:
if (!item->text().isEmpty() && item->text().trimmed().isEmpty())
item->setText("");
- highlightRule.chanName = item->text();
+ highlightRule.setChanName(item->text());
break;
}
highlightList[item->row()] = highlightRule;
switch (item->column()) {
case CoreHighlightSettingsPage::EnableColumn:
- ignoredRule.isEnabled = (item->checkState() == Qt::Checked);
+ ignoredRule.setIsEnabled(item->checkState() == Qt::Checked);
break;
case CoreHighlightSettingsPage::NameColumn:
- if (item->text() == "")
- item->setText(tr("this shouldn't be empty"));
- ignoredRule.name = item->text();
+ ignoredRule.setContents(item->text());
break;
case CoreHighlightSettingsPage::RegExColumn:
- ignoredRule.isRegEx = (item->checkState() == Qt::Checked);
+ ignoredRule.setIsRegEx(item->checkState() == Qt::Checked);
break;
case CoreHighlightSettingsPage::CsColumn:
- ignoredRule.isCaseSensitive = (item->checkState() == Qt::Checked);
+ ignoredRule.setIsCaseSensitive(item->checkState() == Qt::Checked);
break;
case CoreHighlightSettingsPage::SenderColumn:
if (!item->text().isEmpty() && item->text().trimmed().isEmpty())
item->setText("");
- ignoredRule.sender = item->text();
+ ignoredRule.setSender(item->text());
break;
case CoreHighlightSettingsPage::ChanColumn:
if (!item->text().isEmpty() && item->text().trimmed().isEmpty())
item->setText("");
- ignoredRule.chanName = item->text();
+ ignoredRule.setChanName(item->text());
break;
}
ignoredList[item->row()] = ignoredRule;
auto ruleManager = Client::highlightRuleManager();
if (ruleManager) {
for (auto &rule : ruleManager->highlightRuleList()) {
- if (rule.isInverse) {
- addNewIgnoredRow(rule.isEnabled,
- rule.id,
- rule.name,
- rule.isRegEx,
- rule.isCaseSensitive,
- rule.sender,
- rule.chanName);
+ if (rule.isInverse()) {
+ addNewIgnoredRow(rule.isEnabled(), rule.id(), rule.contents(), rule.isRegEx(),
+ rule.isCaseSensitive(), rule.sender(), rule.chanName());
}
else {
- addNewHighlightRow(rule.isEnabled, rule.id, rule.name, rule.isRegEx, rule.isCaseSensitive, rule.sender,
- rule.chanName);
+ addNewHighlightRow(rule.isEnabled(), rule.id(), rule.contents(), rule.isRegEx(),
+ rule.isCaseSensitive(), rule.sender(), rule.chanName());
}
}
clonedManager.clear();
for (auto &rule : highlightList) {
- clonedManager.addHighlightRule(rule.id, rule.name, rule.isRegEx, rule.isCaseSensitive, rule.isEnabled, false,
- rule.sender, rule.chanName);
+ clonedManager.addHighlightRule(rule.id(), rule.contents(), rule.isRegEx(),
+ rule.isCaseSensitive(), rule.isEnabled(), false,
+ rule.sender(), rule.chanName());
}
for (auto &rule : ignoredList) {
- clonedManager.addHighlightRule(rule.id, rule.name, rule.isRegEx, rule.isCaseSensitive, rule.isEnabled, true,
- rule.sender, rule.chanName);
+ clonedManager.addHighlightRule(rule.id(), rule.contents(), rule.isRegEx(),
+ rule.isCaseSensitive (), rule.isEnabled(), true,
+ rule.sender(), rule.chanName());
}
auto highlightNickType = ui.highlightNicksComboBox->itemData(ui.highlightNicksComboBox->currentIndex()).value<int>();
{
int max = 0;
for (int i = 0; i < highlightList.count(); i++) {
- int id = highlightList[i].id;
+ int id = highlightList[i].id();
if (id > max) {
max = id;
}
}
for (int i = 0; i < ignoredList.count(); i++) {
- int id = ignoredList[i].id;
+ int id = ignoredList[i].id();
if (id > max) {
max = id;
}