-rw-r--r-- | noncore/comm/keypebble/krfbbuffer.cpp | 11 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbcanvas.cpp | 5 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbdecoder.cpp | 7 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbdecoder.h | 5 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbserver.cpp | 2 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbserver.h | 1 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvnc.cpp | 8 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvnc.h | 3 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvncbookmarkdlg.cpp | 3 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvncconndlg.cpp | 21 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvncconndlg.h | 1 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvncconndlgbase.ui | 180 |
12 files changed, 172 insertions, 75 deletions
diff --git a/noncore/comm/keypebble/krfbbuffer.cpp b/noncore/comm/keypebble/krfbbuffer.cpp index 5a52f31..f1cb929 100644 --- a/noncore/comm/keypebble/krfbbuffer.cpp +++ b/noncore/comm/keypebble/krfbbuffer.cpp @@ -7,4 +7,6 @@ #include "krfbdecoder.h" #include "krfbbuffer.h" +#include "krfbconnection.h" +#include "krfbserver.h" #include "krfbserverinfo.h" @@ -87,4 +89,5 @@ void KRFBBuffer::drawRawRectChunk( void *data, QImage img( w, h, 32 ); + int scaleFactor=decoder->con->options()->scaleFactor; int redMax = Swap16IfLE( decoder->format->redMax ); int greenMax = Swap16IfLE( decoder->format->greenMax ); @@ -98,4 +101,5 @@ void KRFBBuffer::drawRawRectChunk( void *data, uint r,g,b; + for ( int j = 0; j < h; j++ ) { for ( int i = 0; i < w ; i++ ) { @@ -188,7 +192,12 @@ void KRFBBuffer::drawRawRectChunk( void *data, } + if (scaleFactor > 1) { + p.drawImage( x/scaleFactor, y/scaleFactor, img.smoothScale(w/scaleFactor,h/scaleFactor) ); + emit updated( x/scaleFactor, y/scaleFactor, w/scaleFactor, h/scaleFactor ); + } + else { p.drawImage( x, y, img ); - emit updated( x, y, w, h ); } +} diff --git a/noncore/comm/keypebble/krfbcanvas.cpp b/noncore/comm/keypebble/krfbcanvas.cpp index 8b56795..896de7f 100644 --- a/noncore/comm/keypebble/krfbcanvas.cpp +++ b/noncore/comm/keypebble/krfbcanvas.cpp @@ -23,5 +23,6 @@ KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) loggedIn_ = false; - QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); + + //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); viewport()->setFocusPolicy( QWidget::StrongFocus ); @@ -105,4 +106,6 @@ void KRFBCanvas::viewportPaintEvent( QPaintEvent *e ) if ( loggedIn_ ) { + QPixmap p; + bitBlt( viewport(), r.x(), r.y(), connection_->buffer()->pixmap(), diff --git a/noncore/comm/keypebble/krfbdecoder.cpp b/noncore/comm/keypebble/krfbdecoder.cpp index a964c09..94e3b79 100644 --- a/noncore/comm/keypebble/krfbdecoder.cpp +++ b/noncore/comm/keypebble/krfbdecoder.cpp @@ -196,5 +196,5 @@ void KRFBDecoder::gotServerInit() info->redShift, info->greenShift,info-> blueShift ); - buf->resize( info->width, info->height ); + buf->resize( info->width/con->options()->scaleFactor, info->height /con->options()->scaleFactor); // Wait for desktop name @@ -643,6 +643,7 @@ void KRFBDecoder::sendMouseEvent( QMouseEvent *e ) } - CARD16 x = Swap16IfLE( e->x() ); - CARD16 y = Swap16IfLE( e->y() ); + // HACK: Scaling + CARD16 x = Swap16IfLE( e->x() * con->options()->scaleFactor ); + CARD16 y = Swap16IfLE( e->y() * con->options()->scaleFactor ); con->write( &PointerEventId, 1 ); diff --git a/noncore/comm/keypebble/krfbdecoder.h b/noncore/comm/keypebble/krfbdecoder.h index 4ba0185..db6271d 100644 --- a/noncore/comm/keypebble/krfbdecoder.h +++ b/noncore/comm/keypebble/krfbdecoder.h @@ -99,4 +99,7 @@ signals: void status( const QString & ); +protected: + /** The connection to the server. */ + KRFBConnection *con; private: State currentState; @@ -119,6 +122,4 @@ private: /** Where we draw the data (and the source of our events). */ KRFBBuffer *buf; - /** The connection to the server. */ - KRFBConnection *con; /** Info about the RFB server. */ diff --git a/noncore/comm/keypebble/krfbserver.cpp b/noncore/comm/keypebble/krfbserver.cpp index 5775f09..b47534e 100644 --- a/noncore/comm/keypebble/krfbserver.cpp +++ b/noncore/comm/keypebble/krfbserver.cpp @@ -10,4 +10,6 @@ KRFBServer::KRFBServer() display=0; + scaleFactor=1; + hexTile=0; corre=0; diff --git a/noncore/comm/keypebble/krfbserver.h b/noncore/comm/keypebble/krfbserver.h index f87eecc..e38e2d2 100644 --- a/noncore/comm/keypebble/krfbserver.h +++ b/noncore/comm/keypebble/krfbserver.h @@ -30,4 +30,5 @@ public: int updateRate; + int scaleFactor; }; diff --git a/noncore/comm/keypebble/kvnc.cpp b/noncore/comm/keypebble/kvnc.cpp index aa46e2f..b173004 100644 --- a/noncore/comm/keypebble/kvnc.cpp +++ b/noncore/comm/keypebble/kvnc.cpp @@ -73,4 +73,5 @@ KVNC::KVNC( const char *name ) : QMainWindow( 0, name ) setCentralWidget( stack ); + connect( bookmarkSelector->bookmarkList, SIGNAL(doubleClicked(QListBoxItem *)), this, SLOT(openConnection(QListBoxItem *)) ); @@ -93,5 +94,8 @@ KVNC::KVNC( const char *name ) : QMainWindow( 0, name ) - QPEToolBar *bar = new QPEToolBar( this ); + bar= new QToolBar( this ); + setToolBarsMovable( false ); + setRightJustification(false); + QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), @@ -236,4 +240,5 @@ void KVNC::connected() fullScreenAction->setEnabled( true ); stack->raiseWidget(canvas); + bar->hide(); } @@ -255,4 +260,5 @@ void KVNC::disconnected() fullScreenAction->setEnabled( false ); stack->raiseWidget(bookmarkSelector); + bar->show(); } diff --git a/noncore/comm/keypebble/kvnc.h b/noncore/comm/keypebble/kvnc.h index 6e0a385..82a24fc 100644 --- a/noncore/comm/keypebble/kvnc.h +++ b/noncore/comm/keypebble/kvnc.h @@ -5,5 +5,5 @@ #include <qmainwindow.h> -#include <qurl.h> +#include <qtoolbar.h> #include <qwidgetstack.h> #include "kvncbookmarkdlg.h" @@ -58,4 +58,5 @@ private: QAction *ctlAltDelAction;; QAction *connectAction; + QToolBar * bar; KVNCBookmarkDlg * bookmarkSelector; diff --git a/noncore/comm/keypebble/kvncbookmarkdlg.cpp b/noncore/comm/keypebble/kvncbookmarkdlg.cpp index 1f97d13..1e2f3c3 100644 --- a/noncore/comm/keypebble/kvncbookmarkdlg.cpp +++ b/noncore/comm/keypebble/kvncbookmarkdlg.cpp @@ -162,4 +162,6 @@ void KVNCBookmarkDlg::readBookmarks(void) else if (key=="updaterate") server->updateRate=val.toInt(); + else if (key=="scalefactor") + server->scaleFactor=val.toInt(); } @@ -201,4 +203,5 @@ void KVNCBookmarkDlg::writeBookmarks(void) t << "\tdeiconify=" << server->deIconify << '\n'; t << "\tupdaterate=" << server->updateRate << '\n'; + t << "\tscalefactor=" << server->scaleFactor << '\n'; } diff --git a/noncore/comm/keypebble/kvncconndlg.cpp b/noncore/comm/keypebble/kvncconndlg.cpp index 6873feb..2f073f8 100644 --- a/noncore/comm/keypebble/kvncconndlg.cpp +++ b/noncore/comm/keypebble/kvncconndlg.cpp @@ -2,4 +2,5 @@ #include <qvbox.h> #include <qcheckbox.h> +#include <qcombobox.h> #include <qspinbox.h> #include <qlabel.h> @@ -30,4 +31,10 @@ KVNCConnDlg::KVNCConnDlg( KRFBServer *options, copyRect->setChecked( options->copyrect ); + for (int i=0; i < scaleFactor->count(); ++i) { + if (scaleFactor->text(i).toInt()==tmpOptions.scaleFactor) { + scaleFactor->setCurrentItem(i); + } + } + // TODO hex->setEnabled( false ); @@ -41,7 +48,10 @@ KVNCConnDlg::KVNCConnDlg( KRFBServer *options, timeBox->setValue( options->updateRate ); + serverPassword->setEchoMode(QLineEdit::Password); + + connect(togglePassword, SIGNAL( stateChanged(int) ), this, SLOT( showPassword(int) ) ); -} +} KVNCConnDlg::~KVNCConnDlg() { @@ -67,4 +77,5 @@ void KVNCConnDlg::save() tmpOptions.display = serverDisplay->value(); tmpOptions.name = serverBookmark->text(); + tmpOptions.scaleFactor = scaleFactor->currentText().toInt(); if (!serverBookmark->text().isEmpty()) { @@ -74,2 +85,10 @@ void KVNCConnDlg::save() } } + +void KVNCConnDlg::showPassword(int show) +{ + if (show) + serverPassword->setEchoMode(QLineEdit::Normal); + else + serverPassword->setEchoMode(QLineEdit::Password); +} diff --git a/noncore/comm/keypebble/kvncconndlg.h b/noncore/comm/keypebble/kvncconndlg.h index fae7d62..5e84750 100644 --- a/noncore/comm/keypebble/kvncconndlg.h +++ b/noncore/comm/keypebble/kvncconndlg.h @@ -21,4 +21,5 @@ class KVNCConnDlg : public KVNCConnDlgBase private slots: void save(); + void showPassword(int); private: diff --git a/noncore/comm/keypebble/kvncconndlgbase.ui b/noncore/comm/keypebble/kvncconndlgbase.ui index df0d375..42765c1 100644 --- a/noncore/comm/keypebble/kvncconndlgbase.ui +++ b/noncore/comm/keypebble/kvncconndlgbase.ui @@ -12,6 +12,6 @@ <x>0</x> <y>0</y> - <width>984</width> - <height>676</height> + <width>260</width> + <height>242</height> </rect> </property> @@ -23,13 +23,4 @@ <name>layoutMargin</name> </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> <widget> <class>QTabWidget</class> @@ -38,4 +29,13 @@ <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> @@ -57,54 +57,57 @@ <number>6</number> </property> - <widget row="0" column="0" > - <class>QLabel</class> + <widget row="2" column="1" rowspan="1" colspan="2" > + <class>QLineEdit</class> <property stdset="1"> <name>name</name> - <cstring>hostname</cstring> + <cstring>serverPassword</cstring> </property> <property stdset="1"> - <name>text</name> - <string>Host Name:</string> + <name>autoMask</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>echoMode</name> + <enum>Password</enum> </property> </widget> - <widget row="1" column="0" > - <class>QLabel</class> + <widget row="3" column="1" > + <class>QCheckBox</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel2_2</cstring> + <cstring>togglePassword</cstring> </property> <property stdset="1"> <name>text</name> - <string>Display Number:</string> + <string>Show Password</string> </property> </widget> - <widget row="2" column="1" rowspan="1" colspan="2" > - <class>QLineEdit</class> + <widget row="2" column="0" > + <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>serverPassword</cstring> + <cstring>TextLabel3</cstring> </property> <property stdset="1"> - <name>autoMask</name> - <bool>true</bool> + <name>text</name> + <string>Password:</string> </property> </widget> - <widget row="1" column="1" rowspan="1" colspan="2" > - <class>QSpinBox</class> + <widget row="4" column="1" rowspan="1" colspan="2" > + <class>QLineEdit</class> <property stdset="1"> <name>name</name> - <cstring>serverDisplay</cstring> - </property> - <property stdset="1"> - <name>maxValue</name> - <number>500</number> + <cstring>serverBookmark</cstring> </property> + </widget> + <widget row="4" column="0" > + <class>QLabel</class> <property stdset="1"> - <name>minValue</name> - <number>0</number> + <name>name</name> + <cstring>TextLabel1_2</cstring> </property> <property stdset="1"> - <name>value</name> - <number>0</number> + <name>text</name> + <string>Bookmark Name:</string> </property> </widget> @@ -116,31 +119,43 @@ </property> </widget> - <widget row="2" column="0" > + <widget row="0" column="0" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel3</cstring> + <cstring>hostname</cstring> </property> <property stdset="1"> <name>text</name> - <string>Password:</string> + <string>Host Name:</string> </property> </widget> - <widget row="3" column="1" rowspan="1" colspan="2" > - <class>QLineEdit</class> + <widget row="1" column="0" > + <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>serverBookmark</cstring> + <cstring>TextLabel2_2</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Display Number:</string> </property> </widget> - <widget row="3" column="0" > - <class>QLabel</class> + <widget row="1" column="1" rowspan="1" colspan="2" > + <class>QSpinBox</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel1_2</cstring> + <cstring>serverDisplay</cstring> </property> <property stdset="1"> - <name>text</name> - <string>Bookmark Name:</string> + <name>maxValue</name> + <number>500</number> + </property> + <property stdset="1"> + <name>minValue</name> + <number>0</number> + </property> + <property stdset="1"> + <name>value</name> + <number>0</number> </property> </widget> @@ -166,21 +181,4 @@ </property> </spacer> - <widget row="4" column="1" > - <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> - </hbox> - </widget> </grid> </widget> @@ -291,4 +289,57 @@ </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> + <class>QComboBox</class> + <item> + <property> + <name>text</name> + <string>1</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>2</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>4</string> + </property> + </item> + <property stdset="1"> + <name>name</name> + <cstring>scaleFactor</cstring> + </property> + </widget> + <widget> + <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> <spacer> <property> @@ -413,5 +464,4 @@ </widget> </widget> - </vbox> </widget> <tabstops> |