From e3c43d2bdc042727d3336491033cb53b0e4c27c0 Mon Sep 17 00:00:00 2001 From: Björn Hagemeister Date: Wed, 7 May 2014 16:33:16 +0200 Subject: New feature: Blinking red dot in toolbar, while vnc server is started on client. --- src/client/toolbar/toolbar.cpp | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'src/client/toolbar/toolbar.cpp') diff --git a/src/client/toolbar/toolbar.cpp b/src/client/toolbar/toolbar.cpp index 8de9e31..74f89df 100644 --- a/src/client/toolbar/toolbar.cpp +++ b/src/client/toolbar/toolbar.cpp @@ -16,7 +16,8 @@ //______________________________________________________________________________ Toolbar::Toolbar(QWidget *parent) : - QWidget(parent), _ui(new Ui::Toolbar), _hideTimer(this), _connection(NULL) + QWidget(parent), _ui(new Ui::Toolbar), _hideTimer(this), _connection(NULL), + _blinkTimer(this),_cam32(":cam32.svg"), _camOff32(":cam_off32.svg") { /* Initialize the GUI */ _ui->setupUi(this); @@ -60,6 +61,10 @@ Toolbar::Toolbar(QWidget *parent) : _hideTimer.setSingleShot(true); connect(&_hideTimer, SIGNAL(timeout()), this, SLOT(hideBar())); _hideTimer.start(); // initially show PVS and hide later + + /* Setup blink timer */ + _blinkTimer.setInterval(500); + connect(&_blinkTimer, SIGNAL(timeout()), this, SLOT(cameraBlink())); } //______________________________________________________________________________ @@ -94,13 +99,32 @@ void Toolbar::enterEvent(QEvent* e) * Slots */ +void Toolbar::cameraBlink() +{ + static bool showRedDot = false; + if (!showRedDot) + { + _ui->icon_cam->setPixmap(_camOff32); + showRedDot = true; + } + else + { + _ui->icon_cam->setPixmap(_cam32); + showRedDot = false; + } + +} + void Toolbar::onVncServerIsRunning(int port, QString&, QString&) { if (port > 0){ + _blinkTimer.start(); + _ui->lblStatus->setStyleSheet("color:red"); _ui->lblStatus->setText(tr("Recording")); showBar(); } else { + _blinkTimer.stop(); _ui->lblStatus->setStyleSheet("color:green"); _ui->lblStatus->setText(tr("Online")); hideBar(); @@ -111,7 +135,7 @@ void Toolbar::onVncServerIsRunning(int port, QString&, QString&) void Toolbar::onDisconnected() { _connectWindow->setConnected(false); - if (_connection != NULL) + if (_connection != NULL) _connection->blockSignals(true); _connection = NULL; _ui->lblStatus->setStyleSheet("color:red"); @@ -149,13 +173,12 @@ void Toolbar::onDoDisconnect() //______________________________________________________________________________ void Toolbar::hideBar() { - // // Don't hide window if any menu is open or VNC Server is running from this client. + // Don't hide window if any menu is open or VNC Server is running from this client. if (_menu->isVisible() || VncServer::instance()->isVncServerRunning()) return; const QDesktopWidget desktop; const QRect primaryScreen = desktop.screenGeometry(); move(x(), primaryScreen.top() + 2 - height()); - //move(x(), primaryScreen.bottom() - 2); } //______________________________________________________________________________ @@ -164,5 +187,4 @@ void Toolbar::showBar() const QDesktopWidget desktop; const QRect primaryScreen = desktop.screenGeometry(); move(x(), primaryScreen.top()); - //move(x(), primaryScreen.bottom() - height()); } -- cgit v1.2.3-55-g7522