-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 @@ -9,8 +9,9 @@ #include <qapplication.h> #include <qclipboard.h> #include <qaction.h> #include <qpixmap.h> +#include <qpoint.h> #include <qapplication.h> #include <qmainwindow.h> #include <qiconset.h> @@ -26,8 +27,11 @@ KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); viewport()->setFocusPolicy( QWidget::StrongFocus ); viewport()->setFocus(); + + nextRightClick=0; + nextDoubleClick=0; } KRFBCanvas::~KRFBCanvas() { @@ -123,18 +127,39 @@ 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_ ) connection_->buffer()->mouseEvent( e ); @@ -166,9 +191,8 @@ 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)); connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyPress,Qt::Key_Delete, 0,0)); @@ -176,4 +200,14 @@ void KRFBCanvas::sendCtlAltDel( void) connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyRelease,Qt::Key_Alt, 0,0)); 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 @@ -31,8 +31,10 @@ public slots: void refresh(); void bell(); void sendCtlAltDel(void); + void markRightClick(void); + void markDoubleClick(void); protected: virtual void keyPressEvent( QKeyEvent * ); virtual void keyReleaseEvent( QKeyEvent * ); @@ -47,8 +49,10 @@ protected slots: void viewportUpdate( int x, int y, int w, int h ); 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 @@ -182,8 +182,20 @@ void KVNC::setupActions() connect( disconnectAction, SIGNAL(activated()), 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() { @@ -237,8 +249,10 @@ void KVNC::connected() statusMessage( msg ); ctlAltDelAction->setEnabled(true); disconnectAction->setEnabled( true ); fullScreenAction->setEnabled( true ); + doubleClickAction->setEnabled( false ); + rightClickAction->setEnabled( true ); stack->raiseWidget(canvas); bar->hide(); } @@ -257,8 +271,10 @@ void KVNC::disconnected() statusMessage( msg ); 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 @@ -56,8 +56,10 @@ private: QAction *optionsAction; QAction *disconnectAction; QAction *ctlAltDelAction;; QAction *connectAction; + QAction *rightClickAction; + QAction *doubleClickAction; QToolBar * bar; KVNCBookmarkDlg * bookmarkSelector; QWidgetStack * stack; 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 @@ -10,20 +10,23 @@ <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>580</width> + <width>576</width> <height>480</height> </rect> </property> <property stdset="1"> <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> <number>6</number> 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 @@ -10,10 +10,10 @@ <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>256</width> - <height>242</height> + <width>253</width> + <height>408</height> </rect> </property> <property stdset="1"> <name>caption</name> @@ -21,23 +21,23 @@ </property> <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"> <name>name</name> @@ -55,9 +55,9 @@ <property stdset="1"> <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> <cstring>serverPassword</cstring> @@ -81,8 +81,15 @@ <name>name</name> <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> <property> @@ -100,9 +107,9 @@ <name>text</name> <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> <cstring>serverBookmark</cstring> @@ -122,9 +129,9 @@ <name>text</name> <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> <cstring>serverHostname</cstring> @@ -155,15 +162,22 @@ <name>text</name> <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> <property stdset="1"> @@ -178,12 +192,12 @@ <name>whatsThis</name> <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> <enum>Vertical</enum> @@ -211,132 +225,109 @@ <attribute> <name>title</name> <string>Options</string> </attribute> - <vbox> + <grid> <property stdset="1"> <name>margin</name> <number>11</number> </property> <property stdset="1"> <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> <property> <name>whatsThis</name> <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> <name>text</name> @@ -358,14 +349,21 @@ <property stdset="1"> <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> <cstring>TextLabel2_3</cstring> @@ -374,32 +372,49 @@ <name>text</name> <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> <property stdset="1"> @@ -409,18 +424,39 @@ <attribute> <name>title</name> <string>Encodings</string> </attribute> - <vbox> + <grid> <property stdset="1"> <name>margin</name> <number>11</number> </property> <property stdset="1"> <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> <cstring>hex</cstring> @@ -429,13 +465,20 @@ <name>enabled</name> <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> <cstring>corre</cstring> @@ -444,13 +487,20 @@ <name>enabled</name> <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> <cstring>rre</cstring> @@ -459,51 +509,45 @@ <name>enabled</name> <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> <property> <name>whatsThis</name> <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> <tabstop>serverHostname</tabstop> |