refs #248 added menu interface to start the XBus server

This commit is contained in:
Mathew Sutcliffe
2014-06-14 22:01:04 +01:00
parent 3b12ff93a3
commit 9669ebefe3
2 changed files with 11 additions and 0 deletions

View File

@@ -10,11 +10,17 @@ namespace XBus
CPlugin::CPlugin()
{
m_menu = CMenu::mainMenu().subMenu("XBus");
m_startServerMenuItems.push_back(m_menu.item("Start server on session bus", [this]{ startServer(BlackCore::CDBusServer::sessionDBusServer()); }));
m_startServerMenuItems.push_back(m_menu.item("Start server on system bus", [this]{ startServer(BlackCore::CDBusServer::systemDBusServer()); }));
m_startServerMenuItems.push_back(m_menu.item("Start server on localhost P2P", [this]{ startServer(BlackCore::CDBusServer::p2pAddress()); }));
}
void CPlugin::startServer(const QString &address)
{
Q_ASSERT(! m_server);
for (auto &item : m_startServerMenuItems) { item.setEnabled(false); }
m_server = new BlackCore::CDBusServer(address, this);
}

View File

@@ -11,12 +11,15 @@
//! \namespace XBus
#define NOMINMAX
#include "menus.h"
#pragma push_macro("interface")
#undef interface
#include "blackcore/dbus_server.h"
#pragma pop_macro("interface")
#include <QVector>
namespace XBus
{
/*!
@@ -31,6 +34,8 @@ namespace XBus
private:
BlackCore::CDBusServer *m_server = nullptr;
CMenu m_menu;
QVector<CMenuItem> m_startServerMenuItems;
void startServer(const QString &address);
};