* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
+#include <QHeaderView>
#include <QTableWidget>
-#include <QtWidgets/QHeaderView>
+#include "client.h"
#include "corehighlightsettingspage.h"
#include "qtui.h"
-#include "client.h"
CoreHighlightSettingsPage::CoreHighlightSettingsPage(QWidget *parent)
: SettingsPage(tr("Interface"), tr("Core-Side Highlights"), parent)
setupRuleTable(ui.highlightTable);
setupRuleTable(ui.ignoredTable);
- ui.highlightNicksComboBox->addItem(tr("All Nicks from Identity"), HighlightRuleManager::AllNicks);
- ui.highlightNicksComboBox->addItem(tr("Current Nick"), HighlightRuleManager::CurrentNick);
- ui.highlightNicksComboBox->addItem(tr("None"), HighlightRuleManager::NoNick);
+ ui.highlightNicksComboBox->addItem(tr("All Nicks from Identity"), QVariant(HighlightRuleManager::AllNicks));
+ ui.highlightNicksComboBox->addItem(tr("Current Nick"), QVariant(HighlightRuleManager::CurrentNick));
+ 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(ui.highlightAdd, SIGNAL(clicked(bool)), this, SLOT(addNewHighlightRow()));
connect(ui.highlightRemove, SIGNAL(clicked(bool)), this, SLOT(removeSelectedHighlightRows()));
connect(Client::instance(), SIGNAL(connected()), this, SLOT(clientConnected()));
}
+
+void CoreHighlightSettingsPage::coreConnectionStateChanged(bool state)
+{
+ setEnabled(state);
+ if (state) {
+ load();
+ } else {
+ revert();
+ }
+}
+
void CoreHighlightSettingsPage::setupRuleTable(QTableWidget *table) const
{
table->verticalHeader()->hide();
table->setShowGrid(false);
- table->horizontalHeaderItem(RegExColumn)->setToolTip(
+ table->horizontalHeaderItem(CoreHighlightSettingsPage::RegExColumn)->setToolTip(
tr("<b>RegEx</b>: This option determines if the highlight rule should be interpreted as a <b>regular expression</b> or just as a keyword."));
- table->horizontalHeaderItem(RegExColumn)->setWhatsThis(
+ table->horizontalHeaderItem(CoreHighlightSettingsPage::RegExColumn)->setWhatsThis(
tr("<b>RegEx</b>: This option determines if the highlight rule should be interpreted as a <b>regular expression</b> or just as a keyword."));
- table->horizontalHeaderItem(CsColumn)->setToolTip(
+ table->horizontalHeaderItem(CoreHighlightSettingsPage::CsColumn)->setToolTip(
tr("<b>CS</b>: This option determines if the highlight rule should be interpreted <b>case sensitive</b>."));
- table->horizontalHeaderItem(CsColumn)->setWhatsThis(
+ table->horizontalHeaderItem(CoreHighlightSettingsPage::CsColumn)->setWhatsThis(
tr("<b>CS</b>: This option determines if the highlight rule should be interpreted <b>case sensitive</b>."));
- table->horizontalHeaderItem(ChanColumn)->setToolTip(
+ table->horizontalHeaderItem(CoreHighlightSettingsPage::ChanColumn)->setToolTip(
tr("<b>Channel</b>: This regular expression determines for which <b>channels</b> the highlight rule works. Leave blank to match any channel. Put <b>!</b> in the beginning to negate. Case insensitive."));
- table->horizontalHeaderItem(ChanColumn)->setWhatsThis(
+ table->horizontalHeaderItem(CoreHighlightSettingsPage::ChanColumn)->setWhatsThis(
tr("<b>Channel</b>: This regular expression determines for which <b>channels</b> the highlight rule works. Leave blank to match any channel. Put <b>!</b> in the beginning to negate. Case insensitive."));
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::CsColumn, QHeaderView::ResizeToContents);
table->horizontalHeader()->setResizeMode(CoreHighlightSettingsPage::ChanColumn, QHeaderView::ResizeToContents);
#else
- table->horizontalHeader()->setSectionResizeMode(EnableColumn, QHeaderView::ResizeToContents);
- table->horizontalHeader()->setSectionResizeMode(NameColumn, QHeaderView::Stretch);
- table->horizontalHeader()->setSectionResizeMode(RegExColumn, QHeaderView::ResizeToContents);
- table->horizontalHeader()->setSectionResizeMode(CsColumn, QHeaderView::ResizeToContents);
- table->horizontalHeader()->setSectionResizeMode(ChanColumn, QHeaderView::ResizeToContents);
+ 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::ChanColumn, QHeaderView::ResizeToContents);
#endif
}
void CoreHighlightSettingsPage::defaults()
{
- ui.highlightNicksComboBox->setCurrentIndex(ui.highlightNicksComboBox
- ->findData(QVariant(HighlightRuleManager::HighlightNickType::CurrentNick)));
+ int highlightNickType = HighlightRuleManager::HighlightNickType::CurrentNick;
+ int defaultIndex = ui.highlightNicksComboBox->findData(QVariant(highlightNickType));
+ ui.highlightNicksComboBox->setCurrentIndex(defaultIndex);
ui.nicksCaseSensitive->setChecked(false);
emptyHighlightTable();
emptyIgnoredTable();
if (ui.highlightTable->rowCount() != highlightList.size()) {
qDebug() << "something is wrong: ui.highlight and highlightList don't have the same size!";
}
- ui.highlightTable->clear();
+ ui.highlightTable->clearContents();
highlightList.clear();
}
if (ui.ignoredTable->rowCount() != ignoredList.size()) {
qDebug() << "something is wrong: ui.highlight and highlightList don't have the same size!";
}
- ui.ignoredTable->clear();
+ ui.ignoredTable->clearContents();
ignoredList.clear();
}
switch (item->column()) {
case CoreHighlightSettingsPage::EnableColumn:
highlightRule.isEnabled = (item->checkState() == Qt::Checked);
+ break;
case CoreHighlightSettingsPage::NameColumn:
if (item->text() == "")
item->setText(tr("this shouldn't be empty"));
switch (item->column()) {
case CoreHighlightSettingsPage::EnableColumn:
ignoredRule.isEnabled = (item->checkState() == Qt::Checked);
+ break;
case CoreHighlightSettingsPage::NameColumn:
if (item->text() == "")
item->setText(tr("this shouldn't be empty"));
}
}
- ui.highlightNicksComboBox
- ->setCurrentIndex(ui.highlightNicksComboBox->findData(QVariant(ruleManager->highlightNick())));
+ int highlightNickType = ruleManager->highlightNick();
+ ui.highlightNicksComboBox->setCurrentIndex(ui.highlightNicksComboBox->findData(QVariant(highlightNickType)));
ui.nicksCaseSensitive->setChecked(ruleManager->nicksCaseSensitive());
setChangedState(false);
_initialized = true;
+ } else {
+ defaults();
}
}
rule.sender, rule.chanName);
}
- auto highlightNickType = ui.highlightNicksComboBox->currentData().value<HighlightRuleManager::HighlightNickType>();
+ auto highlightNickType = ui.highlightNicksComboBox->itemData(ui.highlightNicksComboBox->currentIndex()).value<int>();
- clonedManager.setHighlightNick(highlightNickType);
+ clonedManager.setHighlightNick(HighlightRuleManager::HighlightNickType(highlightNickType));
clonedManager.setNicksCaseSensitive(ui.nicksCaseSensitive->isChecked());
ruleManager->requestUpdate(clonedManager.toVariantMap());
void CoreHighlightSettingsPage::widgetHasChanged()
{
setChangedState(true);
-}
\ No newline at end of file
+}