LibEngsas
esettingsmodelitem.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2010 - 2012 EngSaS - Engineering Solutions and Services Langenbach. All rights reserved.
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17  MA 02110-1301 USA.
18 */
19 
20 #ifndef ESETTINGSMODELITEM_H
21 #define ESETTINGSMODELITEM_H
22 
23 #include "eglobal.h"
24 #include "eobject.h"
25 
26 class ESettingsWidget;
27 
28 #include <QString>
29 #include <QList>
30 
36 {
37  Q_OBJECT
38  public:
45  ESettingsModelItem(QString name, ESettingsWidget *widget, ESettingsModelItem *parent = 0);
51 
52  void setName(QString name);
56  QString name() const;
57  void setWidget(ESettingsWidget *widget);
63  ESettingsWidget* widget() const;
64 
65  void setParent(ESettingsModelItem *parent);
71  ESettingsModelItem* parent() const;
77  void addChild(ESettingsModelItem *item);
81  void addChild(ESettingsWidget *widget);
87  ESettingsModelItem* child(int row) const;
92  int childRow(ESettingsModelItem* child) const;
96  int rowCount() const;
97  bool save(QString &error);
98 
99  private slots:
101 
102  private:
103  ESettingsModelItem *myParent;
104  QList<ESettingsModelItem*> myChilds;
105  QString myName;
107 };
108 
109 #endif // ESETTINGSMODELITEM_H