X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fcorehighlightsettingspage.h;h=a4712e876f5e3cb1febcf01e42a2e69d4aee3d17;hb=24c7de34254b5de4cf28045a6923a527e06f7290;hp=1a0ea7115b7fa9d4d08eb3d691ab96a699bea293;hpb=b627af388d570f48a03fd22ab024c07e82e0d503;p=quassel.git diff --git a/src/qtui/settingspages/corehighlightsettingspage.h b/src/qtui/settingspages/corehighlightsettingspage.h index 1a0ea711..a4712e87 100644 --- a/src/qtui/settingspages/corehighlightsettingspage.h +++ b/src/qtui/settingspages/corehighlightsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,8 +20,8 @@ #pragma once -#include #include +#include #include "highlightrulemanager.h" #include "settingspage.h" @@ -33,34 +33,54 @@ class CoreHighlightSettingsPage : public SettingsPage Q_OBJECT public: - explicit CoreHighlightSettingsPage(QWidget *parent = nullptr); + explicit CoreHighlightSettingsPage(QWidget* parent = nullptr); bool hasDefaults() const override; bool isSelectable() const override; public slots: - void save() override; - void load() override; - void defaults() override; + void save() final override; + void load() final override; + void defaults() final override; void revert(); void clientConnected(); +signals: + /** + * Signals the local highlight settings have been changed as part of cleaning up after + * importing the rules locally. + * + * @see CoreHighlightSettingsPage::importRules() + */ + void localHighlightsChanged(); + private slots: void coreConnectionStateChanged(bool state); void widgetHasChanged(); - void addNewHighlightRow(bool enable = true, const QString &name = tr("highlight rule"), bool regex = false, - bool cs = false, const QString &sender = "", const QString &chanName = "", + void addNewHighlightRow(bool enable = true, + int id = -1, + const QString& name = tr("highlight rule"), + bool regex = false, + bool cs = false, + const QString& sender = "", + const QString& chanName = "", bool self = false); - void addNewIgnoredRow(bool enable = true, const QString &name = tr("highlight rule"), bool regex = false, - bool cs = false, const QString &sender = "", const QString &chanName = "", bool self = false); + void addNewIgnoredRow(bool enable = true, + int id = -1, + const QString& name = tr("highlight rule"), + bool regex = false, + bool cs = false, + const QString& sender = "", + const QString& chanName = "", + bool self = false); void removeSelectedHighlightRows(); void removeSelectedIgnoredRows(); - void highlightNicksChanged(const int index); - void selectHighlightRow(QTableWidgetItem *item); - void selectIgnoredRow(QTableWidgetItem *item); - void highlightTableChanged(QTableWidgetItem *item); - void ignoredTableChanged(QTableWidgetItem *item); + void highlightNicksChanged(int index); + void selectHighlightRow(QTableWidgetItem* item); + void selectIgnoredRow(QTableWidgetItem* item); + void highlightTableChanged(QTableWidgetItem* item); + void ignoredTableChanged(QTableWidgetItem* item); /** Import local Highlight rules into the Core Highlight rules * @@ -79,7 +99,8 @@ private: HighlightRuleManager::HighlightRuleList highlightList; HighlightRuleManager::HighlightRuleList ignoredList; - enum column { + enum column + { EnableColumn = 0, NameColumn = 1, RegExColumn = 2, @@ -92,7 +113,45 @@ private: void emptyHighlightTable(); void emptyIgnoredTable(); - void setupRuleTable(QTableWidget *highlightTable) const; + void setupRuleTable(QTableWidget* highlightTable) const; + + /** + * Get tooltip for the specified rule table column + * + * @param tableColumn Column to retrieve tooltip + * @return Translated tooltip for the specified column + */ + QString getTableTooltip(column tableColumn) const; + + /** + * Setup tooltips and "What's this?" prompts for table entries + * + * @param enableWidget Enabled checkbox + * @param nameWidget Rule name + * @param regExWidget RegEx enabled + * @param csWidget Case-sensitive + * @param senderWidget Sender name + * @param chanWidget Channel name + */ + void setupTableTooltips( + QWidget* enableWidget, QWidget* nameWidget, QWidget* regExWidget, QWidget* csWidget, QWidget* senderWidget, QWidget* chanWidget) const; + + /** + * Setup tooltips and "What's this?" prompts for table entries + * + * @param enableWidget Enabled checkbox + * @param nameWidget Rule name + * @param regExWidget RegEx enabled + * @param csWidget Case-sensitive + * @param senderWidget Sender name + * @param chanWidget Channel name + */ + void setupTableTooltips(QTableWidgetItem* enableWidget, + QTableWidgetItem* nameWidget, + QTableWidgetItem* regExWidget, + QTableWidgetItem* csWidget, + QTableWidgetItem* senderWidget, + QTableWidgetItem* chanWidget) const; /** Update the UI to show core support for highlights * @@ -103,5 +162,7 @@ private: */ void updateCoreSupportStatus(bool state); + int nextId(); + bool _initialized; };