on 5bc8421 help sign in
unity8/plugins/Unity/Indicators/rootactionstate.h
85 lines 2.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 ROOTACTIONSTATE_H
21#define ROOTACTIONSTATE_H
23#include "unityindicatorsglobal.h"
25#include <actionstateparser.h>
27class UnityMenuModel;
29class UNITYINDICATORS_EXPORT RootActionState : public ActionStateParser
31 Q_OBJECT
32 Q_PROPERTY(UnityMenuModel* menu READ menu WRITE setMenu NOTIFY menuChanged)
34 Q_PROPERTY(bool valid READ isValid NOTIFY validChanged)
35 Q_PROPERTY(QString leftLabel READ leftLabel NOTIFY leftLabelChanged)
36 Q_PROPERTY(QString rightLabel READ rightLabel NOTIFY rightLabelChanged)
37 Q_PROPERTY(QStringList icons READ icons NOTIFY iconsChanged)
38 Q_PROPERTY(QString accessibleName READ accessibleName NOTIFY accessibleNameChanged)
39 Q_PROPERTY(bool visible READ isVisible NOTIFY visibleChanged)
40public:
41 RootActionState(QObject *parent = 0);
42 virtual ~RootActionState();
44 UnityMenuModel* menu() const;
45 void setMenu(UnityMenuModel* menu);
47 int index() const;
48 void setIndex(int index);
50 bool isValid() const;
51 QString leftLabel() const;
52 QString rightLabel() const;
53 QStringList icons() const;
54 QString accessibleName() const;
55 bool isVisible() const;
57 // from ActionStateParser
58 virtual QVariant toQVariant(GVariant* state) const;
60Q_SIGNALS:
61 void updated();
63 void menuChanged();
64 void indexChanged();
66 void validChanged();
67 void leftLabelChanged();
68 void rightLabelChanged();
69 void iconsChanged();
70 void accessibleNameChanged();
71 void visibleChanged();
73private Q_SLOTS:
74 void onModelRowsAdded(const QModelIndex& parent, int start, int end);
75 void onModelRowsRemoved(const QModelIndex& parent, int start, int end);
76 void onModelDataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight, const QVector<int>&);
78private:
79 void updateActionState();
81 UnityMenuModel* m_menu;
82 QVariantMap m_cachedState;
83};
85#endif // ROOTACTIONSTATE_H