From 494fb466ff24944160fb737e422e46f6d345f000 Mon Sep 17 00:00:00 2001 From: Christian Klinger Date: Fri, 13 May 2016 10:26:58 +0200 Subject: configurable quit button. --- src/client/toolbar/toolbar.cpp | 57 ++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 22 deletions(-) (limited to 'src/client/toolbar/toolbar.cpp') diff --git a/src/client/toolbar/toolbar.cpp b/src/client/toolbar/toolbar.cpp index f938494..83b1a9d 100644 --- a/src/client/toolbar/toolbar.cpp +++ b/src/client/toolbar/toolbar.cpp @@ -103,28 +103,8 @@ void Toolbar::init() connect(_connectWindow, SIGNAL(disconnect()), this, SLOT(onDoDisconnect())); connect(_connectWindow, SIGNAL(connected(ServerConnection*)), this, SLOT(onConnected(ServerConnection*))); - /* Setup menu */ - _menu = new QMenu(this); - _acnConnect = new QAction(tr("&Connect..."), this); - _acnDisconnect = new QAction(tr("&Disconnect"), this); - _acnDisconnect->setEnabled(false); - _acnAbout= new QAction(tr("&What's this?"), this); - _acnQuit = new QAction(tr("&Quit"), this); - - _menu->addAction(_acnConnect); - _menu->addAction(_acnDisconnect); - _menu->addSeparator(); - _menu->addAction(_acnAbout); - _menu->addSeparator(); - _menu->addAction(_acnQuit); - _ui->cmdMenu->setMenu(_menu); - - // Connect the signals - connect(_menu, SIGNAL(aboutToHide()), this, SLOT(hideBar())); - connect(_acnConnect, SIGNAL(triggered()), _connectWindow, SLOT(doShow())); - connect(_acnDisconnect, SIGNAL(triggered()), _connectWindow, SLOT(DoDisconnect())); - connect(_acnAbout, SIGNAL(triggered()), this, SLOT(showAboutDialog())); - connect(_acnQuit, SIGNAL(triggered()), this, SLOT(exit())); + /* Setup menu */ + initMenu(); /* Connect the signals from vnc server */ connect(VncServer::instance(), SIGNAL(started(int, QString&, QString&)), this, SLOT(onVncServerIsRunning(int))); @@ -148,6 +128,39 @@ void Toolbar::init() connect(&_blinkTimer, SIGNAL(timeout()), this, SLOT(cameraBlink())); } +/** + * This function should be called once from the main init() function which in + * turn should only be called by the constructor. + **/ +void Toolbar::initMenu() { + _menu = new QMenu(this); + _acnConnect = new QAction(tr("&Connect..."), this); + _acnDisconnect = new QAction(tr("&Disconnect"), this); + _acnDisconnect->setEnabled(false); + _acnAbout= new QAction(tr("&What's this?"), this); + _acnQuit = new QAction(tr("&Quit"), this); + + _menu->addAction(_acnConnect); + _menu->addAction(_acnDisconnect); + _menu->addSeparator(); + _menu->addAction(_acnAbout); + _menu->addSeparator(); + _menu->addAction(_acnQuit); + _ui->cmdMenu->setMenu(_menu); + + /* only add a "quit"-button when the configuration allows it. */ + SYSTEM_SETTINGS(conf); + + bool allow = conf.value("allowClientQuit").toBool(); + _acnQuit->setVisible(allow); + + // Connect the signals + connect(_menu, SIGNAL(aboutToHide()), this, SLOT(hideBar())); + connect(_acnConnect, SIGNAL(triggered()), _connectWindow, SLOT(doShow())); + connect(_acnDisconnect, SIGNAL(triggered()), _connectWindow, SLOT(DoDisconnect())); + connect(_acnAbout, SIGNAL(triggered()), this, SLOT(showAboutDialog())); + connect(_acnQuit, SIGNAL(triggered()), this, SLOT(exit())); +} /***************************************************************************//** * Destructor of the Toolbar. Destroys the widget. All this widget's children -- cgit v1.2.3-55-g7522