2
* Copyright (C) 2013 Canonical, Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3, as published
6
* by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranties of
10
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11
* PURPOSE. See the GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License along
14
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Author: Marcus Tomlinson <marcus.tomlinson@canonical.com>
19
#ifndef QTGMENUIMPORTER_H
20
#define QTGMENUIMPORTER_H
28
typedef _GMenuModel GMenuModel;
31
typedef _GActionGroup GActionGroup;
36
class QtGMenuImporterPrivate;
38
class QtGMenuImporter final : public QObject
43
QtGMenuImporter( const QString& service, const QString& path, QObject* parent = 0 );
44
QtGMenuImporter( const QString& service, const QString& menu_path, const QString& actions_path,
45
QObject* parent = 0 );
46
virtual ~QtGMenuImporter();
48
GMenuModel* GetGMenuModel() const;
49
GActionGroup* GetGActionGroup() const;
51
std::shared_ptr< QMenu > GetQMenu() const;
56
void MenuItemsChanged();
58
void ActionAdded( QString action_name );
59
void ActionRemoved( QString action_name );
60
void ActionEnabled( QString action_name, bool enabled );
61
void ActionStateChanged( QString action_name, QVariant value );
64
Q_DISABLE_COPY (QtGMenuImporter)
65
std::unique_ptr< QtGMenuImporterPrivate > d;
68
} // namespace qtgmenu
70
#endif // QTGMENUIMPORTER_H