summaryrefslogtreecommitdiff
path: root/src/model/PlaceListModel.h
blob: d93a3f42a9354125e8ac125d6a77dae6d0e27cdb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
     This file is part of SecureShare
     (C) 2013 Bruno Cabral (and other contributing authors)

     SecureShare is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published
     by the Free Software Foundation; either version 3, or (at your
     option) any later version.

     SecureShare is distributed in the hope that it will be useful, but
     WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with SecureShare; see the file COPYING.  If not, write to the
     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     Boston, MA 02110-1301, USA.
*/

#ifndef PLACELISTMODEL_H
#define PLACELISTMODEL_H

#include <QAbstractListModel>

#include "social/place.h"


class PlaceListModel : public QAbstractListModel
{
  Q_OBJECT;

 public:

  enum PlaceListRoles
  {
    NAME = Qt::UserRole + 1,
    PUBKEY,
    TYPE,
    DESC,
    PLACELIST_ROLE_COUNT
  };

  explicit
    PlaceListModel (const QList<Place *> &data, QObject *parent = 0);

  Q_INVOKABLE int
    getCount ();

  Q_INVOKABLE Place *
    get (int index);

  Place *
    get (QModelIndex index);

#if FIXME
  bool
    contains (QString id);

  Place *
    get (QString key);
#endif

 public slots:

  void
    rowAddedSlot (Place *place);

  void
    rowModifiedSlot (int index);

 private:

  int
    rowCount (const QModelIndex & parent) const;
  QVariant
    data (const QModelIndex &index, int role) const;
  QHash<int, QByteArray>
    roleNames () const;

  const QList<Place *> &m_data;
  //QHash<QString, int> m_lookupIndex;
};

#endif