From a98536b9fbda7d7fb2ff78906c1a2d6331f33df2 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 15 Nov 2017 10:05:29 +0100 Subject: port to qt5 * got rid of the Win32/X11 differentiation * due to QT5, additional packages are needed to compile ** libqt5x11extras5-dev ** libqt5svg5-dev --- src/client/connectwindow/connectwindow.h | 2 +- src/client/toolbar/toolbar.h | 2 +- src/client/util/platform/blankscreen.cpp | 100 +++++++++++++++++++++++++ src/client/util/platform/blankscreen_Win32.cpp | 41 ---------- src/client/util/platform/blankscreen_X11.cpp | 100 ------------------------- src/client/vnc/vncwindow.h | 2 +- 6 files changed, 103 insertions(+), 144 deletions(-) create mode 100644 src/client/util/platform/blankscreen.cpp delete mode 100644 src/client/util/platform/blankscreen_Win32.cpp delete mode 100644 src/client/util/platform/blankscreen_X11.cpp (limited to 'src/client') diff --git a/src/client/connectwindow/connectwindow.h b/src/client/connectwindow/connectwindow.h index 53af662..51b1bf2 100644 --- a/src/client/connectwindow/connectwindow.h +++ b/src/client/connectwindow/connectwindow.h @@ -16,7 +16,7 @@ #ifndef PVSCONNECTWINDOW_H_ #define PVSCONNECTWINDOW_H_ -#include +#include #include #include #include diff --git a/src/client/toolbar/toolbar.h b/src/client/toolbar/toolbar.h index 47f385c..347871f 100644 --- a/src/client/toolbar/toolbar.h +++ b/src/client/toolbar/toolbar.h @@ -14,7 +14,7 @@ #ifndef PVSCLIENTGUI_H_ #define PVSCLIENTGUI_H_ -#include +#include #include "../util/room.h" class ServerConnection; diff --git a/src/client/util/platform/blankscreen.cpp b/src/client/util/platform/blankscreen.cpp new file mode 100644 index 0000000..ee644ca --- /dev/null +++ b/src/client/util/platform/blankscreen.cpp @@ -0,0 +1,100 @@ + +#include "blankscreen.h" + +#include +#include +#include +#include + +#include +#include + +#include +#include + +struct BlankScreen_Sysdep { + Display *dpy; +}; + +BlankScreen::BlankScreen() : QDialog(NULL) +{ + _sysdep = new BlankScreen_Sysdep; + _sysdep->dpy = XOpenDisplay(NULL); + if (_sysdep->dpy == NULL) + return; + + setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint); + setStyleSheet("background-color:#000"); + + _locked = false; + QTimer *upper = new QTimer(this); + connect(upper, SIGNAL(timeout()), this, SLOT(timer_moveToTop())); + upper->start(1111); +} + +BlankScreen::~BlankScreen() +{ + unlock(); + if (_sysdep->dpy != NULL) { + XCloseDisplay(_sysdep->dpy); + } + delete _sysdep; +} + +bool BlankScreen::lock(const QString& message) +{ + if (_locked) + return true; + if (_sysdep->dpy == NULL) + return false; + + _message = message; + + this->setGeometry(QApplication::desktop()->geometry()); + this->showFullScreen(); + this->activateWindow(); + this->raise(); + + // grabbing of keyboard and mouse + XGrabKeyboard(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, GrabModeAsync, GrabModeAsync, CurrentTime); + XGrabPointer(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, 0, GrabModeAsync, GrabModeAsync, None, 0, CurrentTime); + + + QProcess ungrabP; + ungrabP.start("/bin/bash", QStringList() << "/opt/openslx/pvs2/kb-lock.sh"); + ungrabP.waitForFinished(); + + _locked = true; + return true; +} + +bool BlankScreen::unlock() +{ + this->hide(); + if (!_locked) + return true; + if (_sysdep->dpy == NULL) + return false; + + // ungrabbing of keyboard and mouse + XUngrabPointer(_sysdep->dpy, CurrentTime); + XUngrabKeyboard(_sysdep->dpy, CurrentTime); + + XFlush(_sysdep->dpy); + + /* start the kb-unlock.sh script */ + QProcess regrabP; + regrabP.start("/bin/bash", QStringList() << "/opt/openslx/pvs2/kb-unlock.sh"); + regrabP.waitForFinished(); + + _locked = false; + return true; +} + +void BlankScreen::timer_moveToTop() +{ + if (this->isHidden()) + return; + activateWindow(); + raise(); +} diff --git a/src/client/util/platform/blankscreen_Win32.cpp b/src/client/util/platform/blankscreen_Win32.cpp deleted file mode 100644 index 1d1dd12..0000000 --- a/src/client/util/platform/blankscreen_Win32.cpp +++ /dev/null @@ -1,41 +0,0 @@ - -#include "blankscreen.h" -#include - -struct BlankScreen_Sysdep { - - bool locked; - QWidget* blankwin; - - QString lockMsg; - int blackColor, whiteColor; - int offX, offY; -}; - -BlankScreen::BlankScreen() -{ - _sysdep = new BlankScreen_Sysdep; - _sysdep->blankwin = new QWidget(0, Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); - _sysdep->blankwin->setWindowState(Qt::WindowFullScreen); - _sysdep->blankwin->show(); -} - -BlankScreen::~BlankScreen() -{ - delete _sysdep; -} - -void BlankScreen::draw(bool force) -{ - -} - -bool BlankScreen::lock(const QString& message) -{ - return true; -} - -bool BlankScreen::unlock() -{ - return true; -} diff --git a/src/client/util/platform/blankscreen_X11.cpp b/src/client/util/platform/blankscreen_X11.cpp deleted file mode 100644 index ee644ca..0000000 --- a/src/client/util/platform/blankscreen_X11.cpp +++ /dev/null @@ -1,100 +0,0 @@ - -#include "blankscreen.h" - -#include -#include -#include -#include - -#include -#include - -#include -#include - -struct BlankScreen_Sysdep { - Display *dpy; -}; - -BlankScreen::BlankScreen() : QDialog(NULL) -{ - _sysdep = new BlankScreen_Sysdep; - _sysdep->dpy = XOpenDisplay(NULL); - if (_sysdep->dpy == NULL) - return; - - setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint); - setStyleSheet("background-color:#000"); - - _locked = false; - QTimer *upper = new QTimer(this); - connect(upper, SIGNAL(timeout()), this, SLOT(timer_moveToTop())); - upper->start(1111); -} - -BlankScreen::~BlankScreen() -{ - unlock(); - if (_sysdep->dpy != NULL) { - XCloseDisplay(_sysdep->dpy); - } - delete _sysdep; -} - -bool BlankScreen::lock(const QString& message) -{ - if (_locked) - return true; - if (_sysdep->dpy == NULL) - return false; - - _message = message; - - this->setGeometry(QApplication::desktop()->geometry()); - this->showFullScreen(); - this->activateWindow(); - this->raise(); - - // grabbing of keyboard and mouse - XGrabKeyboard(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, GrabModeAsync, GrabModeAsync, CurrentTime); - XGrabPointer(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, 0, GrabModeAsync, GrabModeAsync, None, 0, CurrentTime); - - - QProcess ungrabP; - ungrabP.start("/bin/bash", QStringList() << "/opt/openslx/pvs2/kb-lock.sh"); - ungrabP.waitForFinished(); - - _locked = true; - return true; -} - -bool BlankScreen::unlock() -{ - this->hide(); - if (!_locked) - return true; - if (_sysdep->dpy == NULL) - return false; - - // ungrabbing of keyboard and mouse - XUngrabPointer(_sysdep->dpy, CurrentTime); - XUngrabKeyboard(_sysdep->dpy, CurrentTime); - - XFlush(_sysdep->dpy); - - /* start the kb-unlock.sh script */ - QProcess regrabP; - regrabP.start("/bin/bash", QStringList() << "/opt/openslx/pvs2/kb-unlock.sh"); - regrabP.waitForFinished(); - - _locked = false; - return true; -} - -void BlankScreen::timer_moveToTop() -{ - if (this->isHidden()) - return; - activateWindow(); - raise(); -} diff --git a/src/client/vnc/vncwindow.h b/src/client/vnc/vncwindow.h index 29f2e98..3247b12 100644 --- a/src/client/vnc/vncwindow.h +++ b/src/client/vnc/vncwindow.h @@ -14,7 +14,7 @@ #ifndef CLIENTVNCVIEWER_H_ #define CLIENTVNCVIEWER_H_ -#include +#include class VncThread; class QPainter; -- cgit v1.2.3-55-g7522