##// END OF EJS Templates
New Plugin Manager and interface to remove all the previous crap!...
New Plugin Manager and interface to remove all the previous crap! Let's use Qt plugin API and make it much simpler.

File last commit:

r91:acc9efbbe625 default
r118:de85e8465e67 tip 1.0
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;
}