##// END OF EJS Templates
Pre-0.7 merged
Pre-0.7 merged

File last commit:

r91:acc9efbbe625 default
r107:c459540a6dbd merge 0.6
Show More
socexplorergui.cpp
93 lines | 2.0 KiB | text/x-c | CppLexer
#include "socexplorergui.h"
SocExplorerGUI* SocExplorerGUI::_self=NULL;
QMenuBar* SocExplorerGUI::m_mainMenuBar=NULL;
QMenu* SocExplorerGUI::m_fileMenu=NULL;
QMenu* SocExplorerGUI::m_SettingsMenu=NULL;
QList<QAction*>* SocExplorerGUI::m_queuedSettingActions=NULL;
QList<QAction*>* SocExplorerGUI::m_queuedFileMenuActions=NULL;
#define INIT() \
if(Q_UNLIKELY(_self==NULL))\
{\
init();\
}
SocExplorerGUI::SocExplorerGUI(QObject *parent) : QObject(parent)
{
m_queuedFileMenuActions = new QList<QAction*>();
m_queuedSettingActions = new QList<QAction*>();
}
void SocExplorerGUI::init()
{
_self=new SocExplorerGUI();
}
void SocExplorerGUI::registerMenuBar(QMenuBar *menuBar, QMenu *fileMenu, QMenu *SettingsMenu)
{
INIT();
m_mainMenuBar = menuBar;
if(m_mainMenuBar)
{
if(fileMenu==NULL)
m_fileMenu = m_mainMenuBar->addMenu(tr("File"));
else
m_fileMenu = fileMenu;
if(SettingsMenu==NULL)
m_SettingsMenu = m_mainMenuBar->addMenu(tr("Settings"));
else
m_SettingsMenu = SettingsMenu;
}
QAction* action;
foreach (action, *m_queuedSettingActions)
{
m_SettingsMenu->addAction(action);
}
foreach (action, *m_queuedFileMenuActions)
{
m_fileMenu->addAction(action);
}
}
QMenu *SocExplorerGUI::addMenu(const QString &title)
{
INIT();
if(m_mainMenuBar)
{
return m_mainMenuBar->addMenu(title);
}
return NULL;
}
bool SocExplorerGUI::addFileAction(QAction *action)
{
INIT();
if(m_fileMenu)
{
m_fileMenu->addAction(action);
return true;
}
else
{
m_queuedFileMenuActions->append(action);
}
return false;
}
bool SocExplorerGUI::addSettingsAction(QAction *action)
{
INIT();
if(m_SettingsMenu)
{
m_SettingsMenu->addAction(action);
return true;
}
else
{
m_queuedSettingActions->append(action);
}
return false;
}