on bionic help sign in
unity8/plugins/Unity/Indicators/modelprinter.h
56 lines 1.8 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>
24class UnityMenuModel;
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
30 Q_OBJECT
32 Q_PROPERTY(UnityMenuModel* model READ sourceModel WRITE setSourceModel NOTIFY modelChanged)
33 Q_PROPERTY(QString text READ text NOTIFY textChanged)
34public:
35 ModelPrinter(QObject* parent=nullptr);
37 void setSourceModel(UnityMenuModel* sourceModel);
38 UnityMenuModel* sourceModel() const;
40 Q_INVOKABLE QString text();
42Q_SIGNALS:
43 void modelChanged();
44 void textChanged();
46private:
47 QString getModelDataString(UnityMenuModel* sourceModel, int level);
48 QString getRowSring(UnityMenuModel* sourceModel, int index, int depth) const;
49 QString getVariantString(const QString& roleName, const QVariant &vData, int depth) const;
50 QString getVariantString(const QVariant&) const;
52 UnityMenuModel* m_model;
53 QList<UnityMenuModel*> m_children;
54};
56#endif // MODELPRINTER_H