1 // Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2011 Dzmitry KAMIAHIN (dnk-88) <dnk-88@tut.by>
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2010 Winch Gate Property Limited
6 // Copyright (C) 2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
8 // This program is free software: you can redistribute it and/or modify
9 // it under the terms of the GNU Affero General Public License as
10 // published by the Free Software Foundation, either version 3 of the
11 // License, or (at your option) any later version.
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU Affero General Public License for more details.
18 // You should have received a copy of the GNU Affero General Public License
19 // along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #include "menu_manager.h"
25 #include <nel/misc/debug.h>
29 struct MenuManagerPrivate
31 MenuManagerPrivate(): m_menuBar(0) {}
33 typedef QHash
<QString
, QMenu
*> IdMenuMap
;
35 typedef QHash
<QString
, QAction
*> IdActionMap
;
36 IdActionMap m_actionMap
;
39 MenuManager::MenuManager(QMenuBar
*menuBar
, QObject
*parent
)
41 d(new MenuManagerPrivate())
43 d
->m_menuBar
= menuBar
;
46 MenuManager::~MenuManager()
52 void MenuManager::registerMenu(QMenu
*menu
, const QString
&id
)
54 menu
->setObjectName(id
);
55 d
->m_menuMap
.insert(id
, menu
);
58 void MenuManager::registerAction(QAction
*action
, const QString
&id
)
60 action
->setObjectName(id
);
61 d
->m_actionMap
.insert(id
, action
);
64 QMenu
*MenuManager::menu(const QString
&id
) const
67 if (!d
->m_menuMap
.contains(id
))
68 nlwarning("QMenu %s not found", id
.toUtf8().constData());
70 result
= d
->m_menuMap
.value(id
);
74 QAction
*MenuManager::action(const QString
&id
) const
77 if (!d
->m_actionMap
.contains(id
))
78 nlwarning("QAction %s not found", id
.toUtf8().constData());
80 result
= d
->m_actionMap
.value(id
);
84 void MenuManager::unregisterMenu(const QString
&id
)
86 d
->m_menuMap
.remove(id
);
89 void MenuManager::unregisterAction(const QString
&id
)
91 d
->m_actionMap
.remove(id
);
94 QMenuBar
*MenuManager::menuBar() const
99 } /* namespace Core */