waran/DistanceItem.h
Go to the documentation of this file.
00001 /***************************************************************************
00002 **
00003 **  This file is part of waran.
00004 **
00005 **  This file may be distributed and/or modified under the terms of the
00006 **  GNU General Public License version 2 or 3 as published by the Free
00007 **  Software Foundation and appearing in the file LICENSE.GPL included
00008 **  in the packaging of this file.
00009 **
00010 **  This file is distributed in the hope that it will be useful, but WITHOUT
00011 **  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 **  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
00013 **  more details.
00014 **
00015 **  You should have received a copy of the GNU General Public License
00016 **  along with this program. If not, see <http://www.gnu.org/licenses/>.
00017 **
00018 **  See http://www.geopsy.org for more information.
00019 **
00020 **  Created: 2013-04-07
00021 **  Authors:
00022 **    Marc Wathelet (ISTerre, Grenoble, France)
00023 **
00024 ***************************************************************************/
00025 
00026 #ifndef DISTANCEITEM_H
00027 #define DISTANCEITEM_H
00028 
00029 #include <QGpCoreTools.h>
00030 
00031 #include "Distance.h"
00032 
00033 class DistanceItem : public QAbstractTableModel
00034 {
00035   Q_OBJECT
00036 public:
00037   DistanceItem(QObject * parent=0);
00038   ~DistanceItem();
00039 
00040   void addPointName(const QString& n) {_pointNames.append(n);}
00041   const QStringList& pointNames() const {return _pointNames;}
00042   const QList<Distance>& distances() const {return _distances;}
00043 
00044   virtual int rowCount(const QModelIndex& parent) const;
00045   virtual int   columnCount(const QModelIndex& parent) const;
00046   virtual QVariant data(const QModelIndex & index, int role) const;
00047   virtual bool setData(const QModelIndex & index, const QVariant & value, int role=Qt::EditRole);
00048   virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;
00049   Qt::ItemFlags flags(const QModelIndex& index) const;
00050 
00051   void add();
00052   void remove(int index);
00053   bool load(const QString& fileName);
00054   bool save(const QString& fileName) const;
00055 signals:
00056   void pointNameChanged();
00057   void distanceChanged();
00058 private:
00059   QString nextPointName(const QString& n);
00060 
00061   QList<Distance> _distances;
00062   QStringList _pointNames;
00063 };
00064 
00065 #endif // DISTANCEITEM_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines