on 940f47f help sign in
unity8/plugins/Unity/Indicators/modelprinter.h
49 lines 1.5 kB history raw
1/*
2 * Copyright 2012 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Nick Dedekind <nick.dedekind@canonical.com>
18 */
20#ifndef MODELPRINTER_H
21#define MODELPRINTER_H
23#include <QSortFilterProxyModel>
25// This class acts as a namespace only, with the addition that its enums
26// are registered to be exposed on the QML side.
27class ModelPrinter : public QObject
29 Q_OBJECT
31 Q_PROPERTY(QAbstractItemModel* model READ sourceModel WRITE setSourceModel NOTIFY modelChanged)
32public:
33 ModelPrinter(QObject* parent=0);
35 void setSourceModel(QAbstractItemModel* sourceModel);
36 QAbstractItemModel* sourceModel() const;
38 Q_INVOKABLE QString getString(const QModelIndex& index = QModelIndex()) const;
40Q_SIGNALS:
41 void sourceChanged();
42 void modelChanged();
44private:
45 QString recurse_string(const QModelIndex& index, int level) const;
46 QAbstractItemModel* m_model;
47};
49#endif // MODELPRINTER_H