Lomiri
Loading...
Searching...
No Matches
modelprinter.h
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 */
19
20#ifndef MODELPRINTER_H
21#define MODELPRINTER_H
22
23#include <QSortFilterProxyModel>
24class AyatanaMenuModel;
25
26// This class acts as a namespace only, with the addition that its enums
27// are registered to be exposed on the QML side.
28class ModelPrinter : public QObject
29{
30 Q_OBJECT
31
32 Q_PROPERTY(AyatanaMenuModel* model READ sourceModel WRITE setSourceModel NOTIFY modelChanged)
33 Q_PROPERTY(QString text READ text NOTIFY textChanged)
34public:
35 ModelPrinter(QObject* parent=nullptr);
36
37 void setSourceModel(AyatanaMenuModel* sourceModel);
38 AyatanaMenuModel* sourceModel() const;
39
40 Q_INVOKABLE QString text();
41
42Q_SIGNALS:
43 void modelChanged();
44 void textChanged();
45
46private:
47 QString getModelDataString(AyatanaMenuModel* sourceModel, int level);
48 QString getRowSring(AyatanaMenuModel* sourceModel, int index, int depth) const;
49 QString getVariantString(const QString& roleName, const QVariant &vData, int depth) const;
50 QString getVariantString(const QVariant&) const;
51
52 AyatanaMenuModel* m_model;
53 QList<AyatanaMenuModel*> m_children;
54};
55
56#endif // MODELPRINTER_H