author | treke <treke> | 2002-11-17 18:30:27 (UTC) |
---|---|---|
committer | treke <treke> | 2002-11-17 18:30:27 (UTC) |
commit | bdecd392488dee486d302f683b91acf89708d4a6 (patch) (side-by-side diff) | |
tree | 987ed4ddd7c5d0df0ef03f7a949f74837edc9ec7 | |
parent | 44ffc30c0317e47f91ee20b3dc0b719a74d7991c (diff) | |
download | opie-bdecd392488dee486d302f683b91acf89708d4a6.zip opie-bdecd392488dee486d302f683b91acf89708d4a6.tar.gz opie-bdecd392488dee486d302f683b91acf89708d4a6.tar.bz2 |
Resized a couple dialogs to fit better. Now can synthesize right click
events from the corner menu. Still having problems with double click though
-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 @@ -7,12 +7,13 @@ #include <qpe/qpeapplication.h> #include <qapplication.h> #include <qclipboard.h> #include <qaction.h> #include <qpixmap.h> +#include <qpoint.h> #include <qapplication.h> #include <qmainwindow.h> #include <qiconset.h> KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) : QScrollView( parent, name ) @@ -24,12 +25,15 @@ KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) loggedIn_ = false; //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); viewport()->setFocusPolicy( QWidget::StrongFocus ); viewport()->setFocus(); + + nextRightClick=0; + nextDoubleClick=0; } KRFBCanvas::~KRFBCanvas() { } @@ -121,22 +125,43 @@ void KRFBCanvas::viewportUpdate( int x, int y, int w, int h ) { updateContents( x, y, w, 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 ); } @@ -164,16 +189,25 @@ void KRFBCanvas::clipboardChanged() connection_->sendCutText( qApp->clipboard()->text() ); } } 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)); connection_->buffer()->keyPressEvent( &QKeyEvent(QEvent::KeyRelease,Qt::Key_Control, 0,0)); 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 @@ -29,12 +29,14 @@ public slots: void openURL( const QUrl & ); void closeConnection(); void refresh(); void bell(); void sendCtlAltDel(void); + void markRightClick(void); + void markDoubleClick(void); protected: virtual void keyPressEvent( QKeyEvent * ); virtual void keyReleaseEvent( QKeyEvent * ); virtual void contentsMousePressEvent( QMouseEvent * ); virtual void contentsMouseReleaseEvent( QMouseEvent * ); @@ -45,12 +47,14 @@ protected: protected slots: void loggedIn(); void viewportUpdate( int x, int y, int w, int h ); void clipboardChanged(); private: + int nextRightClick; + int nextDoubleClick; KRFBConnection *connection_; QString password; bool loggedIn_; }; #endif // KRFBCANVAS_H 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 @@ -180,12 +180,24 @@ void KVNC::setupActions() disconnectAction = new QAction( tr("Disconnect"), QString::null, 0, 0 ); 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() { if ( fullscreen ) { canvas->releaseKeyboard(); @@ -235,12 +247,14 @@ void KVNC::connected() { static QString msg = tr( "Connected to remote host" ); statusMessage( msg ); ctlAltDelAction->setEnabled(true); disconnectAction->setEnabled( true ); fullScreenAction->setEnabled( true ); + doubleClickAction->setEnabled( false ); + rightClickAction->setEnabled( true ); stack->raiseWidget(canvas); bar->hide(); } void KVNC::loggedIn() { @@ -255,12 +269,14 @@ void KVNC::disconnected() toggleFullScreen(); static QString msg = tr( "Connection closed" ); statusMessage( msg ); ctlAltDelAction->setEnabled(false); disconnectAction->setEnabled( false ); fullScreenAction->setEnabled( false ); + doubleClickAction->setEnabled( false ); + rightClickAction->setEnabled( false ); stack->raiseWidget(bookmarkSelector); bar->show(); } void KVNC::statusMessage( const QString &m ) { 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 @@ -54,12 +54,14 @@ private: QPushButton *cornerButton; QAction *fullScreenAction; QAction *optionsAction; QAction *disconnectAction; QAction *ctlAltDelAction;; QAction *connectAction; + QAction *rightClickAction; + QAction *doubleClickAction; QToolBar * bar; KVNCBookmarkDlg * bookmarkSelector; QWidgetStack * stack; KRFBServer * curServer; }; 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 @@ -8,24 +8,27 @@ </property> <property stdset="1"> <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> </property> <widget> 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 @@ -8,38 +8,38 @@ </property> <property stdset="1"> <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> <string>VNC Viewer Connection</string> </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> <cstring>tab</cstring> </property> @@ -53,13 +53,13 @@ <number>11</number> </property> <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> </property> <property stdset="1"> @@ -79,12 +79,19 @@ <class>QCheckBox</class> <property stdset="1"> <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> <name>whatsThis</name> <string>Toggle obscuring the password</string> @@ -98,13 +105,13 @@ </property> <property stdset="1"> <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> </property> <property> @@ -120,13 +127,13 @@ </property> <property stdset="1"> <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> </property> <property> @@ -153,19 +160,26 @@ </property> <property stdset="1"> <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"> <name>minValue</name> <number>0</number> @@ -176,16 +190,16 @@ </property> <property> <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> </property> <property stdset="1"> @@ -209,136 +223,113 @@ <cstring>tab</cstring> </property> <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> <string>1</string> </property> @@ -356,156 +347,209 @@ </property> </item> <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> </property> <property stdset="1"> <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"> <name>name</name> <cstring>tab</cstring> </property> <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> </property> <property stdset="1"> <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> </property> <property stdset="1"> <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> </property> <property stdset="1"> <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> <tabstop>serverDisplay</tabstop> <tabstop>serverPassword</tabstop> |