1/***************************************************************************
2 * Copyright (C) 2005-2014 by the Quassel Project *
3 * devel@quassel-irc.org *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
20
21#ifndef _HIGHLIGHTSETTINGSPAGE_H_
22#define _HIGHLIGHTSETTINGSPAGE_H_
23
24#include <QVariantList>
25#include <QTableWidgetItem>
26
27#include "settingspage.h"
28#include "ui_highlightsettingspage.h"
29
30class HighlightSettingsPage : public SettingsPage
31{
32 Q_OBJECT
33
34public:
35 HighlightSettingsPage(QWidget *parent = 0);
36
37 bool hasDefaults() const;
38
39public slots:
40 void save();
41 void load();
42 void defaults();
43
44private slots:
45 void widgetHasChanged();
46 void addNewRow(QString name = tr("highlight rule"), bool regex = false, bool cs = false, bool enable = true, QString chanName = "", bool self = false);
47 void removeSelectedRows();
48 void selectRow(QTableWidgetItem *item);
49 void tableChanged(QTableWidgetItem *item);
50
51private:
52 Ui::HighlightSettingsPage ui;
53 QVariantList highlightList;
54 // QVariant -> QHash<QString, QVariant>:
55 // regex: bool
56 // name: QString
57 // enable: bool
58 enum column {
59 NameColumn = 0,
60 RegExColumn = 1,
61 CsColumn = 2,
62 EnableColumn = 3,
63 ChanColumn = 4,
64 ColumnCount = 5
65 };
66
67 void emptyTable();
68
69 bool testHasChanged();
70};
71
72
73#endif
74