-rw-r--r-- | noncore/comm/keypebble/krfbcanvas.cpp | 40 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbcanvas.h | 4 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvnc.cpp | 16 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvnc.h | 2 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvncbookmarkdlgbase.ui | 7 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvncconndlgbase.ui | 314 |
6 files changed, 243 insertions, 140 deletions
diff --git a/noncore/comm/keypebble/krfbcanvas.cpp b/noncore/comm/keypebble/krfbcanvas.cpp index 918ce8b..049bbd4 100644 --- a/noncore/comm/keypebble/krfbcanvas.cpp +++ b/noncore/comm/keypebble/krfbcanvas.cpp @@ -10,6 +10,7 @@ #include <qclipboard.h> #include <qaction.h> #include <qpixmap.h> +#include <qpoint.h> #include <qapplication.h> #include <qmainwindow.h> #include <qiconset.h> @@ -27,6 +28,9 @@ KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) viewport()->setFocusPolicy( QWidget::StrongFocus ); viewport()->setFocus(); + + nextRightClick=0; + nextDoubleClick=0; } KRFBCanvas::~KRFBCanvas() @@ -124,16 +128,37 @@ void KRFBCanvas::viewportUpdate( int x, int y, int w, int h ) void KRFBCanvas::contentsMousePressEvent( QMouseEvent *e ) { - if ( loggedIn_ ) + + if (nextDoubleClick) { + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),LeftButton,LeftButton)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),NoButton,NoButton)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),NoButton,0)); + } if (nextRightClick) { + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),RightButton,RightButton)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),RightButton,0)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),NoButton,NoButton)); + connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),NoButton,0)); + } else if ( loggedIn_ ) connection_->buffer()->mouseEvent( e ); + + qDebug("Press"); + qDebug(QString::number(e->type()==QEvent::MouseButtonPress)); } void KRFBCanvas::contentsMouseReleaseEvent( QMouseEvent *e ) { - if ( loggedIn_ ) + if ( loggedIn_ && !nextRightClick && !nextDoubleClick) { connection_->buffer()->mouseEvent( e ); } + nextRightClick=0; + nextDoubleClick=0; + qDebug("Release"); + qDebug(QString::number(e->button())); +} + void KRFBCanvas::contentsMouseMoveEvent( QMouseEvent *e ) { if ( loggedIn_ ) @@ -167,7 +192,6 @@ void KRFBCanvas::clipboardChanged() void KRFBCanvas::sendCtlAltDel( void) { - qDebug("Here"); if ( loggedIn_ ) { connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Control, 0,0)); connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Alt, 0,0)); @@ -177,3 +201,13 @@ void KRFBCanvas::sendCtlAltDel( void) connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyRelease,Qt::Key_Delete, 0,0)); } } + +void KRFBCanvas::markDoubleClick( void) +{ + nextRightClick=1; +} + +void KRFBCanvas::markRightClick( void) +{ + nextRightClick=1; +} diff --git a/noncore/comm/keypebble/krfbcanvas.h b/noncore/comm/keypebble/krfbcanvas.h index cd3047c..5c7b949 100644 --- a/noncore/comm/keypebble/krfbcanvas.h +++ b/noncore/comm/keypebble/krfbcanvas.h @@ -32,6 +32,8 @@ public slots: void refresh(); void bell(); void sendCtlAltDel(void); + void markRightClick(void); + void markDoubleClick(void); protected: virtual void keyPressEvent( QKeyEvent * ); @@ -48,6 +50,8 @@ protected slots: void clipboardChanged(); private: + int nextRightClick; + int nextDoubleClick; KRFBConnection *connection_; QString password; bool loggedIn_; diff --git a/noncore/comm/keypebble/kvnc.cpp b/noncore/comm/keypebble/kvnc.cpp index ef57366..abdb1e0 100644 --- a/noncore/comm/keypebble/kvnc.cpp +++ b/noncore/comm/keypebble/kvnc.cpp @@ -183,6 +183,18 @@ void KVNC::setupActions() this, SLOT( closeConnection() ) ); disconnectAction->addTo( cornerMenu ); disconnectAction->setEnabled( false ); + + doubleClickAction = new QAction( tr("Next Click is Double Click"), QString::null, 0, 0 ); + connect( doubleClickAction, SIGNAL(activated()), + canvas, SLOT( markDoubleClick() ) ); + doubleClickAction->addTo( cornerMenu ); + doubleClickAction->setEnabled( false ); + + rightClickAction = new QAction( tr("Next Click is Right Click"), QString::null, 0, 0 ); + connect( rightClickAction, SIGNAL(activated()), + canvas, SLOT( markRightClick() ) ); + rightClickAction->addTo( cornerMenu ); + rightClickAction->setEnabled( false ); } void KVNC::toggleFullScreen() @@ -238,6 +250,8 @@ void KVNC::connected() ctlAltDelAction->setEnabled(true); disconnectAction->setEnabled( true ); fullScreenAction->setEnabled( true ); + doubleClickAction->setEnabled( false ); + rightClickAction->setEnabled( true ); stack->raiseWidget(canvas); bar->hide(); } @@ -258,6 +272,8 @@ void KVNC::disconnected() ctlAltDelAction->setEnabled(false); disconnectAction->setEnabled( false ); fullScreenAction->setEnabled( false ); + doubleClickAction->setEnabled( false ); + rightClickAction->setEnabled( false ); stack->raiseWidget(bookmarkSelector); bar->show(); } diff --git a/noncore/comm/keypebble/kvnc.h b/noncore/comm/keypebble/kvnc.h index 82a24fc..51c7151 100644 --- a/noncore/comm/keypebble/kvnc.h +++ b/noncore/comm/keypebble/kvnc.h @@ -57,6 +57,8 @@ private: QAction *disconnectAction; QAction *ctlAltDelAction;; QAction *connectAction; + QAction *rightClickAction; + QAction *doubleClickAction; QToolBar * bar; KVNCBookmarkDlg * bookmarkSelector; diff --git a/noncore/comm/keypebble/kvncbookmarkdlgbase.ui b/noncore/comm/keypebble/kvncbookmarkdlgbase.ui index 69d8a14..4ca4f26 100644 --- a/noncore/comm/keypebble/kvncbookmarkdlgbase.ui +++ b/noncore/comm/keypebble/kvncbookmarkdlgbase.ui @@ -11,7 +11,7 @@ <rect> <x>0</x> <y>0</y> - <width>580</width> + <width>576</width> <height>480</height> </rect> </property> @@ -19,10 +19,13 @@ <name>caption</name> <string>Bookmarks</string> </property> + <property> + <name>layoutMargin</name> + </property> <vbox> <property stdset="1"> <name>margin</name> - <number>11</number> + <number>0</number> </property> <property stdset="1"> <name>spacing</name> diff --git a/noncore/comm/keypebble/kvncconndlgbase.ui b/noncore/comm/keypebble/kvncconndlgbase.ui index de3f785..003aad2 100644 --- a/noncore/comm/keypebble/kvncconndlgbase.ui +++ b/noncore/comm/keypebble/kvncconndlgbase.ui @@ -11,8 +11,8 @@ <rect> <x>0</x> <y>0</y> - <width>256</width> - <height>242</height> + <width>253</width> + <height>408</height> </rect> </property> <property stdset="1"> @@ -22,21 +22,21 @@ <property> <name>layoutMargin</name> </property> - <widget> + <grid> + <property stdset="1"> + <name>margin</name> + <number>11</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget row="0" column="0" > <class>QTabWidget</class> <property stdset="1"> <name>name</name> <cstring>TabWidget3</cstring> </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>266</width> - <height>233</height> - </rect> - </property> <widget> <class>QWidget</class> <property stdset="1"> @@ -56,7 +56,7 @@ <name>spacing</name> <number>6</number> </property> - <widget row="2" column="1" rowspan="1" colspan="2" > + <widget row="2" column="1" > <class>QLineEdit</class> <property stdset="1"> <name>name</name> @@ -82,6 +82,13 @@ <cstring>togglePassword</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Show Password</string> </property> @@ -101,7 +108,7 @@ <string>Password:</string> </property> </widget> - <widget row="4" column="1" rowspan="1" colspan="2" > + <widget row="4" column="1" > <class>QLineEdit</class> <property stdset="1"> <name>name</name> @@ -123,7 +130,7 @@ <string>Bookmark Name:</string> </property> </widget> - <widget row="0" column="1" rowspan="1" colspan="2" > + <widget row="0" column="1" > <class>QLineEdit</class> <property stdset="1"> <name>name</name> @@ -156,13 +163,20 @@ <string>Display Number:</string> </property> </widget> - <widget row="1" column="1" rowspan="1" colspan="2" > + <widget row="1" column="1" > <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>serverDisplay</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>maxValue</name> <number>500</number> </property> @@ -179,10 +193,10 @@ <string>The display number of the VNC server</string> </property> </widget> - <spacer row="5" column="2" > + <spacer row="5" column="0" > <property> <name>name</name> - <cstring>Spacer2</cstring> + <cstring>Spacer4</cstring> </property> <property stdset="1"> <name>orientation</name> @@ -212,7 +226,7 @@ <name>title</name> <string>Options</string> </attribute> - <vbox> + <grid> <property stdset="1"> <name>margin</name> <number>11</number> @@ -221,71 +235,63 @@ <name>spacing</name> <number>6</number> </property> - <widget> - <class>QLabel</class> + <widget row="4" column="0" rowspan="1" colspan="3" > + <class>QCheckBox</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel1</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Check for screen updates every:</string> + <cstring>shared</cstring> </property> - </widget> - <widget> - <class>QLayoutWidget</class> <property stdset="1"> - <name>name</name> - <cstring>Layout2</cstring> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> </property> - <hbox> <property stdset="1"> - <name>margin</name> - <number>0</number> + <name>text</name> + <string>Request shared session</string> </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> + <property> + <name>whatsThis</name> + <string>Allow other users to connect to the VNC server</string> </property> - <widget> - <class>QSpinBox</class> - <property stdset="1"> + </widget> + <spacer row="6" column="1" > + <property> <name>name</name> - <cstring>timeBox</cstring> + <cstring>Spacer2</cstring> </property> <property stdset="1"> - <name>maxValue</name> - <number>500</number> + <name>orientation</name> + <enum>Vertical</enum> </property> <property stdset="1"> - <name>minValue</name> - <number>1</number> + <name>sizeType</name> + <enum>Expanding</enum> </property> <property> - <name>whatsThis</name> - <string>Delay between requesting updates from the server</string> - </property> - </widget> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel2</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Milliseconds</string> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> </property> - </widget> - </hbox> - </widget> - <widget> + </spacer> + <widget row="2" column="0" rowspan="1" colspan="3" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>bit</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Request 8-bit session</string> </property> @@ -294,48 +300,33 @@ <string>Request that the VNC server transfer 8 bit color</string> </property> </widget> - <widget> - <class>QCheckBox</class> + <widget row="1" column="0" rowspan="1" colspan="2" > + <class>QSpinBox</class> <property stdset="1"> <name>name</name> - <cstring>deIconify</cstring> + <cstring>timeBox</cstring> </property> <property stdset="1"> - <name>text</name> - <string>Raise on bell</string> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> </property> - </widget> - <widget> - <class>QCheckBox</class> <property stdset="1"> - <name>name</name> - <cstring>shared</cstring> + <name>maxValue</name> + <number>500</number> </property> <property stdset="1"> - <name>text</name> - <string>Request shared session</string> + <name>minValue</name> + <number>1</number> </property> <property> <name>whatsThis</name> - <string>Allow other users to connect to the VNC server</string> + <string>Delay between requesting updates from the server</string> </property> </widget> - <widget> - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout3</cstring> - </property> - <hbox> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget> + <widget row="5" column="0" > <class>QComboBox</class> <item> <property> @@ -359,12 +350,19 @@ <name>name</name> <cstring>scaleFactor</cstring> </property> + <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> <property> <name>whatsThis</name> <string>Scale the remote display to fit on the PDA (Slow)</string> </property> </widget> - <widget> + <widget row="5" column="1" rowspan="1" colspan="2" > <class>QLabel</class> <property stdset="1"> <name>name</name> @@ -375,30 +373,47 @@ <string>Scale Factor</string> </property> </widget> - </hbox> + <widget row="1" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Milliseconds</string> + </property> </widget> - <spacer> - <property> + <widget row="3" column="0" rowspan="1" colspan="3" > + <class>QCheckBox</class> + <property stdset="1"> <name>name</name> - <cstring>Spacer2</cstring> + <cstring>deIconify</cstring> </property> <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> </property> <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> + <name>text</name> + <string>Raise on bell</string> </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> + </widget> + <widget row="0" column="0" rowspan="1" colspan="3" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1</cstring> </property> - </spacer> - </vbox> + <property stdset="1"> + <name>text</name> + <string>Check for screen updates every:</string> + </property> + </widget> + </grid> </widget> <widget> <class>QWidget</class> @@ -410,7 +425,7 @@ <name>title</name> <string>Encodings</string> </attribute> - <vbox> + <grid> <property stdset="1"> <name>margin</name> <number>11</number> @@ -419,7 +434,28 @@ <name>spacing</name> <number>6</number> </property> - <widget> + <spacer row="4" column="1" > + <property> + <name>name</name> + <cstring>Spacer3</cstring> + </property> + <property stdset="1"> + <name>orientation</name> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget row="0" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> @@ -430,11 +466,18 @@ <bool>false</bool> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Hextile encoding</string> </property> </widget> - <widget> + <widget row="1" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> @@ -445,11 +488,18 @@ <bool>false</bool> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>CoRRE encoding</string> </property> </widget> - <widget> + <widget row="2" column="0" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> @@ -460,17 +510,31 @@ <bool>false</bool> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>RRE encoding</string> </property> </widget> - <widget> + <widget row="3" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>copyRect</cstring> </property> <property stdset="1"> + <name>sizePolicy</name> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + </sizepolicy> + </property> + <property stdset="1"> <name>text</name> <string>Copy rectangle encoding</string> </property> @@ -479,30 +543,10 @@ <string>Enable transmiting identical rectangles as references to existing data</string> </property> </widget> - <spacer> - <property> - <name>name</name> - <cstring>Spacer3</cstring> - </property> - <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> - </property> - <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - </vbox> + </grid> </widget> </widget> + </grid> </widget> <tabstops> <tabstop>TabWidget3</tabstop> |