on d9ef42c help sign in
unity8/plugins/Unity/Indicators/modelprinter.h
50 lines 1.6 kB history raw
1/*
2 * Copyright 2013 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)
32 Q_PROPERTY(QString text READ text NOTIFY textChanged)
33public:
34 ModelPrinter(QObject* parent=0);
36 void setSourceModel(QAbstractItemModel* sourceModel);
37 QAbstractItemModel* sourceModel() const;
39 Q_INVOKABLE QString text(const QModelIndex& index = QModelIndex()) const;
41Q_SIGNALS:
42 void modelChanged();
43 void textChanged();
45private:
46 QString recurseString(const QModelIndex& index, int level) const;
47 QAbstractItemModel* m_model;
48};
50#endif // MODELPRINTER_H