#define VNCVIEW_H
#include "remoteview.h"
-#include "vncclientthread.h"
-class KConfigGroup{};
+#include <QMap>
-#include <QClipboard>
+class QClipboard;
+class KConfigGroup {};
+class VncClientThread;
-extern "C" {
-#include <rfb/rfbclient.h>
-}
class VncView: public RemoteView
{
Q_OBJECT
public:
- explicit VncView(QWidget *parent = 0, const KUrl &url = KUrl(), RemoteView::Quality quality = RemoteView::Medium);
+ explicit VncView(QWidget *parent = 0, const KUrl &url = KUrl(), RemoteView::Quality quality = RemoteView::Medium, int listen_port = 0);
~VncView();
- QSize framebufferSize();
+ QSize framebufferSize() const;
QSize sizeHint() const;
QSize minimumSizeHint() const;
- void startQuitting();
- bool isQuitting();
+ bool isQuitting() const;
+ qreal zoomFactor() const { return m_horizontalFactor;} //assumes fixed aspect ratio
void reloadSettings();
bool start();
bool supportsScaling() const;
bool supportsLocalCursor() const;
-
+
void setQuality(int q);
void setViewOnly(bool viewOnly);
void showDotCursor(DotCursorState state);
- void sendKey(Qt::Key key);
-
- virtual void updateConfiguration();
+ void useFastTransformations(bool enabled);
+ QPoint cursorPosition() const { return QPoint(m_cursor_x, m_cursor_y); }
+ void setDisplayOff(bool off) { m_display_off = off; }
public slots:
- void enableScaling(bool scale);
- void scaleResize(int w, int h);
- void forceFullRepaint();
+ void setZoomLevel(int level = -1); //'level' doesn't correspond to actual magnification, though mapping is done here
+ void sendKey(Qt::Key key);
+ void sendKeySequence(QKeySequence keys);
+ void startQuitting();
protected:
void paintEvent(QPaintEvent *event);
bool event(QEvent *event);
void resizeEvent(QResizeEvent *event);
bool eventFilter(QObject *obj, QEvent *event);
+ void inputMethodEvent(QInputMethodEvent *event);
+
+private slots:
+ void mouseEventHandler(QMouseEvent *event = 0);
+
+ void updateImage(int x, int y, int w, int h);
+ void setCut(const QString &text);
+ void requestPassword();
+ void outputErrorMessage(const QString &message);
+ void clipboardSelectionChanged();
+ void clipboardDataChanged();
private:
- VncClientThread vncThread;
+ VncClientThread *m_vncThread;
QClipboard *m_clipboard;
bool m_initDone;
int m_buttonMask;
QMap<unsigned int, bool> m_mods;
int m_x, m_y, m_w, m_h;
- int cursor_x, cursor_y;
- bool m_repaint;
+ int m_cursor_x, m_cursor_y;
bool m_quitFlag;
bool m_firstPasswordTry;
- bool m_authenticaionCanceled;
bool m_dontSendClipboard;
qreal m_horizontalFactor;
qreal m_verticalFactor;
QImage m_frame;
bool m_forceLocalCursor;
- bool force_full_repaint;
- RemoteView::Quality quality;
- int left_zoom, right_zoom;
+ int m_left_zoom, m_right_zoom;
+ bool m_disable_tapping;
+ RemoteView::Quality m_quality;
+ int m_listen_port;
+ Qt::TransformationMode m_transformation_mode;
+ bool m_display_off;
void keyEventHandler(QKeyEvent *e);
void unpressModifiers();
void wheelEventHandler(QWheelEvent *event);
-
-private slots:
- void mouseEventHandler(QMouseEvent *event = 0);
-
- void updateImage(int x, int y, int w, int h);
- void setCut(const QString &text);
- void requestPassword();
- void outputErrorMessage(const QString &message);
- void clipboardSelectionChanged();
- void clipboardDataChanged();
};
#endif