cfgircnetworks.h
1 //------------------------------------------------------------------------------
2 // cfgircnetworks.h
3 //------------------------------------------------------------------------------
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library 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 GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 // 02110-1301 USA
19 //
20 //------------------------------------------------------------------------------
21 // Copyright (C) 2010 "Zalewa" <zalewapl@gmail.com>
22 //------------------------------------------------------------------------------
23 #ifndef __CFGIRCNETWORKS_H__
24 #define __CFGIRCNETWORKS_H__
25 
26 #include "gui/configuration/configpage.h"
27 #include "dptr.h"
28 #include <QtContainerFwd>
29 #include <QIcon>
30 
31 class IRCNetworkEntity;
32 class QModelIndex;
33 class QStandardItem;
34 
35 class CFGIRCNetworks : public ConfigPage
36 {
37  Q_OBJECT
38 
39  public:
40  CFGIRCNetworks(QWidget* parent = NULL);
41  ~CFGIRCNetworks();
42 
43  QIcon icon() const { return QIcon(":/flags/lan-small"); }
44  QString name() const { return tr("Networks"); }
45  QVector<IRCNetworkEntity*> networks();
46  void readSettings();
47  QString title() const { return tr("IRC - Networks"); }
48 
49  protected:
50  void saveSettings();
51 
52  private:
53  void addRecord(IRCNetworkEntity* pNetworkEntity);
54  void cleanUpTable();
55  QList<QStandardItem*> generateTableRecord(IRCNetworkEntity* pNetworkEntity);
56  IRCNetworkEntity* network(int row) const;
57  QList<IRCNetworkEntity> networksAsQList() const;
58 
62  IRCNetworkEntity* obtainNetworkEntity(QStandardItem* pItem) const;
63 
64  void prepareTable();
65  void saveNetworks();
66  IRCNetworkEntity* selectedNetwork();
67  int selectedRow();
68  void updateRecord(int row);
69 
71  private slots:
72  void addButtonClicked();
73  void editButtonClicked();
74  void removeButtonClicked();
75  void tableDoubleClicked(const QModelIndex& index);
76 };
77 
78 #endif
QIcon icon() const
Reimplement this to return a displayable icon for the ConfigPage.
void saveSettings()
Reimplement this to write settings to config from widgets.
QString title() const
Page title, by default returns the same string as name().
void readSettings()
Reimplement this to read settings from config into widgets.
Data structure that describes and defines a connection to an IRC network or server.
QString name() const
Reimplement this to return a list-displayable name for this ConfigPage.
Base class for configuration pages.
Definition: configpage.h:44