modernize: Use override instead of virtual
[quassel.git] / src / qtui / settingspages / corehighlightsettingspage.h
index 62abae8..03681e3 100644 (file)
@@ -40,28 +40,39 @@ public:
     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();
 
 private slots:
     void coreConnectionStateChanged(bool state);
     void widgetHasChanged();
-    void addNewHighlightRow(bool enable = true, const QString &name = tr("highlight rule"), bool regex = false,
+    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,
+    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 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
+     *
+     * Iterates through all local highlight rules, converting each into core-side highlight rules.
+     */
+    void importRules();
+
+    /**
+     * Event handler for core unspported Details button
+     */
+    void on_coreUnsupportedDetails_clicked();
+
 private:
     Ui::CoreHighlightSettingsPage ui;
 
@@ -83,7 +94,51 @@ private:
 
     void setupRuleTable(QTableWidget *highlightTable) const;
 
-    void importRules();
+    /**
+     * 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
+     *
+     * Shows or hides the UI warnings around core-side highlights according to core connection and
+     * core feature support.
+     *
+     * @param state  True if connected to core, otherwise false
+     */
+    void updateCoreSupportStatus(bool state);
+
+    int nextId();
 
     bool _initialized;
 };