/***************************************************************************
- * Copyright (C) 2005-2016 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 *
#include "qtui.h"
CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent)
- : SettingsPage(tr("Interface"), tr("Core-Side Highlights"), parent)
+ : SettingsPage(tr("Interface"), tr("Remote Highlights"), parent)
{
ui.setupUi(this);
this,
SLOT(selectIgnoredRow(QTableWidgetItem * )));
+ // 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()));
}
}
+void CoreHighlightSettingsPage::highlightNicksChanged(const int index) {
+ // Only allow toggling "Case sensitive" when a nickname will be highlighted
+ auto highlightNickType = ui.highlightNicksComboBox->itemData(index).value<int>();
+ ui.nicksCaseSensitive->setEnabled(highlightNickType != HighlightRuleManager::NoNick);
+}
+
void CoreHighlightSettingsPage::selectHighlightRow(QTableWidgetItem *item)
{
int row = item->row();
if (ui.highlightTable->rowCount() != highlightList.size()) {
qDebug() << "something is wrong: ui.highlight and highlightList don't have the same size!";
}
- ui.highlightTable->clearContents();
+ while (ui.highlightTable->rowCount()) {
+ ui.highlightTable->removeRow(0);
+ }
highlightList.clear();
}
if (ui.ignoredTable->rowCount() != ignoredList.size()) {
qDebug() << "something is wrong: ui.highlight and highlightList don't have the same size!";
}
- ui.ignoredTable->clearContents();
+ while (ui.ignoredTable->rowCount()) {
+ ui.ignoredTable->removeRow(0);
+ }
ignoredList.clear();
}
int highlightNickType = ruleManager->highlightNick();
ui.highlightNicksComboBox->setCurrentIndex(ui.highlightNicksComboBox->findData(QVariant(highlightNickType)));
+ // Trigger the initial update of nicksCaseSensitive being enabled or not
+ highlightNicksChanged(ui.highlightNicksComboBox->currentIndex());
ui.nicksCaseSensitive->setChecked(ruleManager->nicksCaseSensitive());
setChangedState(false);
setChangedState(false);
load();
}
+
+bool CoreHighlightSettingsPage::isSelectable() const {
+ return Client::isConnected() && Client::isCoreFeatureEnabled(Quassel::Feature::CoreSideHighlights);
+}