From 1a5709501f94014d41987b956338bb6424b9f90c Mon Sep 17 00:00:00 2001 From: sr Date: Mon, 4 Feb 2013 19:50:31 +0100 Subject: Initial commit --- src/server/connectionframe/connectionframe.h | 77 ++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/server/connectionframe/connectionframe.h (limited to 'src/server/connectionframe/connectionframe.h') diff --git a/src/server/connectionframe/connectionframe.h b/src/server/connectionframe/connectionframe.h new file mode 100644 index 0000000..2b78056 --- /dev/null +++ b/src/server/connectionframe/connectionframe.h @@ -0,0 +1,77 @@ +#ifndef _CONNECTIONFRAME_H_ +#define _CONNECTIONFRAME_H_ +#include + +class Client; + +class ConnectionFrame : public QGroupBox +{ + +Q_OBJECT + +private: + + QString _computerId; + + QBoxLayout *_mainLayout; + QBoxLayout *_iconLayout; + QLabel *_lblUserName; + QLabel *_lblHostName; + + QLabel *_icoCam, *_icoEye; + QList _icons; + + QPixmap _remoteScreen; + + QPoint _clickPoint; + QPoint _previousPosition; + + Client *_client; + + int _timerId, _timerCounter; + bool _selected; + bool _isTutor; + + void showDefaultThumb(); + void updateColor(); + QLabel* addIcon(const QIcon* icon); + +public: + ConnectionFrame(QWidget* parent, int width, int height); + virtual ~ConnectionFrame(); + + const QPixmap& getFramePixmap() const { return _remoteScreen; } + void setSize(int width, int height); + void assignClient(Client *client); + void setSelection(bool selected); + const inline bool selected() const { return _selected; } + + const QString& computerId() const { return _computerId; } + Client* client() const { return _client; } + + inline const bool isTutor() const { return _isTutor; } + inline void setTutor(bool b) { _isTutor = b; } + +protected: + void mouseDoubleClickEvent(QMouseEvent* event); + void mouseReleaseEvent(QMouseEvent* e); + void enterEvent(QEvent* event); + void leaveEvent(QEvent* event); + void mousePressEvent(QMouseEvent* event); + void mouseMoveEvent(QMouseEvent* event); + void paintEvent(QPaintEvent *event); + void timerEvent(QTimerEvent* event); + +signals: + void frameMoved(ConnectionFrame* frame); + void doubleClicked(ConnectionFrame* frame); + void clicked(ConnectionFrame* frame); + +private slots: + void onClientDisconnected(QObject* client); + void onThumbUpdated(Client* client, const QPixmap& thumb); + void onVncServerStateChange(Client* client); + void onVncClientStateChange(Client* client); +}; + +#endif -- cgit v1.2.3-55-g7522