author | treke <treke> | 2002-09-05 04:42:25 (UTC) |
---|---|---|
committer | treke <treke> | 2002-09-05 04:42:25 (UTC) |
commit | e2186a49cb5cbdf01b56f57818a15a760ff25b2e (patch) (unidiff) | |
tree | f22e7342c7a3adcccb6eed52a314fe8e301cc624 | |
parent | fd3239820e471044bf279a2964702573572859d6 (diff) | |
download | opie-e2186a49cb5cbdf01b56f57818a15a760ff25b2e.zip opie-e2186a49cb5cbdf01b56f57818a15a760ff25b2e.tar.gz opie-e2186a49cb5cbdf01b56f57818a15a760ff25b2e.tar.bz2 |
Added support for client side scaling of the screen. Slow, but sometimes usable.
-rw-r--r-- | noncore/comm/keypebble/krfbbuffer.cpp | 17 | ||||
-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 | 752 |
12 files changed, 461 insertions, 364 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 | |||
@@ -6,6 +6,8 @@ | |||
6 | #include <qapplication.h> | 6 | #include <qapplication.h> |
7 | #include "krfbdecoder.h" | 7 | #include "krfbdecoder.h" |
8 | #include "krfbbuffer.h" | 8 | #include "krfbbuffer.h" |
9 | #include "krfbconnection.h" | ||
10 | #include "krfbserver.h" | ||
9 | #include "krfbserverinfo.h" | 11 | #include "krfbserverinfo.h" |
10 | 12 | ||
11 | // | 13 | // |
@@ -86,6 +88,7 @@ void KRFBBuffer::drawRawRectChunk( void *data, | |||
86 | { | 88 | { |
87 | QImage img( w, h, 32 ); | 89 | QImage img( w, h, 32 ); |
88 | 90 | ||
91 | int scaleFactor=decoder->con->options()->scaleFactor; | ||
89 | int redMax = Swap16IfLE( decoder->format->redMax ); | 92 | int redMax = Swap16IfLE( decoder->format->redMax ); |
90 | int greenMax = Swap16IfLE( decoder->format->greenMax ); | 93 | int greenMax = Swap16IfLE( decoder->format->greenMax ); |
91 | int blueMax = Swap16IfLE( decoder->format->blueMax ); | 94 | int blueMax = Swap16IfLE( decoder->format->blueMax ); |
@@ -97,7 +100,8 @@ void KRFBBuffer::drawRawRectChunk( void *data, | |||
97 | 100 | ||
98 | uint r,g,b; | 101 | uint r,g,b; |
99 | 102 | ||
100 | for ( int j = 0; j < h; j++ ) { | 103 | |
104 | for ( int j = 0; j < h; j++) { | ||
101 | for ( int i = 0; i < w ; i++ ) { | 105 | for ( int i = 0; i < w ; i++ ) { |
102 | r = d[ j * w + i ]; | 106 | r = d[ j * w + i ]; |
103 | r = r >> decoder->format->redShift; | 107 | r = r >> decoder->format->redShift; |
@@ -187,8 +191,13 @@ void KRFBBuffer::drawRawRectChunk( void *data, | |||
187 | p.drawRect( x, y, w, h ); | 191 | p.drawRect( x, y, w, h ); |
188 | } | 192 | } |
189 | 193 | ||
190 | p.drawImage( x, y, img ); | 194 | if (scaleFactor > 1) { |
191 | 195 | p.drawImage( x/scaleFactor, y/scaleFactor, img.smoothScale(w/scaleFactor,h/scaleFactor) ); | |
192 | emit updated( x, y, w, h ); | 196 | emit updated( x/scaleFactor, y/scaleFactor, w/scaleFactor, h/scaleFactor ); |
197 | } | ||
198 | else { | ||
199 | p.drawImage( x, y, img); | ||
200 | emit updated( x, y, w, h ); | ||
201 | } | ||
193 | } | 202 | } |
194 | 203 | ||
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 | |||
@@ -22,7 +22,8 @@ KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) | |||
22 | this, SLOT( loggedIn() ) ); | 22 | this, SLOT( loggedIn() ) ); |
23 | 23 | ||
24 | loggedIn_ = false; | 24 | loggedIn_ = false; |
25 | QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); | 25 | |
26 | //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); | ||
26 | 27 | ||
27 | viewport()->setFocusPolicy( QWidget::StrongFocus ); | 28 | viewport()->setFocusPolicy( QWidget::StrongFocus ); |
28 | viewport()->setFocus(); | 29 | viewport()->setFocus(); |
@@ -104,6 +105,8 @@ void KRFBCanvas::viewportPaintEvent( QPaintEvent *e ) | |||
104 | QRect r = e->rect(); | 105 | QRect r = e->rect(); |
105 | 106 | ||
106 | if ( loggedIn_ ) { | 107 | if ( loggedIn_ ) { |
108 | QPixmap p; | ||
109 | |||
107 | bitBlt( viewport(), r.x(), r.y(), | 110 | bitBlt( viewport(), r.x(), r.y(), |
108 | connection_->buffer()->pixmap(), | 111 | connection_->buffer()->pixmap(), |
109 | r.x() + contentsX(), r.y() + contentsY(), | 112 | r.x() + contentsX(), r.y() + contentsY(), |
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 | |||
@@ -195,7 +195,7 @@ void KRFBDecoder::gotServerInit() | |||
195 | qWarning( "RedShift = %d, GreenShift = %d, BlueShift = %d", | 195 | qWarning( "RedShift = %d, GreenShift = %d, BlueShift = %d", |
196 | info->redShift, info->greenShift,info-> blueShift ); | 196 | info->redShift, info->greenShift,info-> blueShift ); |
197 | 197 | ||
198 | buf->resize( info->width, info->height ); | 198 | buf->resize( info->width/con->options()->scaleFactor, info->height /con->options()->scaleFactor); |
199 | 199 | ||
200 | // Wait for desktop name | 200 | // Wait for desktop name |
201 | qWarning( "Waiting for desktop name" ); | 201 | qWarning( "Waiting for desktop name" ); |
@@ -642,8 +642,9 @@ void KRFBDecoder::sendMouseEvent( QMouseEvent *e ) | |||
642 | } | 642 | } |
643 | } | 643 | } |
644 | 644 | ||
645 | CARD16 x = Swap16IfLE( e->x() ); | 645 | // HACK: Scaling |
646 | CARD16 y = Swap16IfLE( e->y() ); | 646 | CARD16 x = Swap16IfLE( e->x() * con->options()->scaleFactor ); |
647 | CARD16 y = Swap16IfLE( e->y() *con->options()->scaleFactor ); | ||
647 | 648 | ||
648 | con->write( &PointerEventId, 1 ); | 649 | con->write( &PointerEventId, 1 ); |
649 | con->write( &buttonMask, 1 ); | 650 | con->write( &buttonMask, 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 | |||
@@ -98,6 +98,9 @@ signals: | |||
98 | void error( const QString & ); | 98 | void error( const QString & ); |
99 | void status( const QString & ); | 99 | void status( const QString & ); |
100 | 100 | ||
101 | protected: | ||
102 | /** The connection to the server. */ | ||
103 | KRFBConnection *con; | ||
101 | private: | 104 | private: |
102 | State currentState; | 105 | State currentState; |
103 | 106 | ||
@@ -118,8 +121,6 @@ private: | |||
118 | 121 | ||
119 | /** Where we draw the data (and the source of our events). */ | 122 | /** Where we draw the data (and the source of our events). */ |
120 | KRFBBuffer *buf; | 123 | KRFBBuffer *buf; |
121 | /** The connection to the server. */ | ||
122 | KRFBConnection *con; | ||
123 | 124 | ||
124 | /** Info about the RFB server. */ | 125 | /** Info about the RFB server. */ |
125 | KRFBServerInfo *info; | 126 | KRFBServerInfo *info; |
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 | |||
@@ -9,6 +9,8 @@ KRFBServer::KRFBServer() | |||
9 | QString password; | 9 | QString password; |
10 | display=0; | 10 | display=0; |
11 | 11 | ||
12 | scaleFactor=1; | ||
13 | |||
12 | hexTile=0; | 14 | hexTile=0; |
13 | corre=0; | 15 | corre=0; |
14 | rre=0; | 16 | rre=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 | |||
@@ -29,6 +29,7 @@ public: | |||
29 | bool deIconify; | 29 | bool deIconify; |
30 | 30 | ||
31 | int updateRate; | 31 | int updateRate; |
32 | int scaleFactor; | ||
32 | }; | 33 | }; |
33 | 34 | ||
34 | #endif // KRFBOPTIONS_H | 35 | #endif // KRFBOPTIONS_H |
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 | |||
@@ -72,6 +72,7 @@ KVNC::KVNC( const char *name ) : QMainWindow( 0, name ) | |||
72 | stack->addWidget(canvas,get_unique_id()); | 72 | stack->addWidget(canvas,get_unique_id()); |
73 | setCentralWidget( stack ); | 73 | setCentralWidget( stack ); |
74 | 74 | ||
75 | |||
75 | connect( bookmarkSelector->bookmarkList, SIGNAL(doubleClicked(QListBoxItem *)), | 76 | connect( bookmarkSelector->bookmarkList, SIGNAL(doubleClicked(QListBoxItem *)), |
76 | this, SLOT(openConnection(QListBoxItem *)) ); | 77 | this, SLOT(openConnection(QListBoxItem *)) ); |
77 | connect( canvas->connection(), SIGNAL(statusChanged(const QString &)), | 78 | connect( canvas->connection(), SIGNAL(statusChanged(const QString &)), |
@@ -92,7 +93,10 @@ KVNC::KVNC( const char *name ) : QMainWindow( 0, name ) | |||
92 | stack->raiseWidget( bookmarkSelector ); | 93 | stack->raiseWidget( bookmarkSelector ); |
93 | 94 | ||
94 | 95 | ||
95 | QPEToolBar *bar = new QPEToolBar( this ); | 96 | bar= new QToolBar( this ); |
97 | setToolBarsMovable( false ); | ||
98 | setRightJustification(false); | ||
99 | |||
96 | 100 | ||
97 | QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), | 101 | QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), |
98 | QString::null, 0, this, 0 ); | 102 | QString::null, 0, this, 0 ); |
@@ -235,6 +239,7 @@ void KVNC::connected() | |||
235 | disconnectAction->setEnabled( true ); | 239 | disconnectAction->setEnabled( true ); |
236 | fullScreenAction->setEnabled( true ); | 240 | fullScreenAction->setEnabled( true ); |
237 | stack->raiseWidget(canvas); | 241 | stack->raiseWidget(canvas); |
242 | bar->hide(); | ||
238 | } | 243 | } |
239 | 244 | ||
240 | void KVNC::loggedIn() | 245 | void KVNC::loggedIn() |
@@ -254,6 +259,7 @@ void KVNC::disconnected() | |||
254 | disconnectAction->setEnabled( false ); | 259 | disconnectAction->setEnabled( false ); |
255 | fullScreenAction->setEnabled( false ); | 260 | fullScreenAction->setEnabled( false ); |
256 | stack->raiseWidget(bookmarkSelector); | 261 | stack->raiseWidget(bookmarkSelector); |
262 | bar->show(); | ||
257 | } | 263 | } |
258 | 264 | ||
259 | void KVNC::statusMessage( const QString &m ) | 265 | void KVNC::statusMessage( const QString &m ) |
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 | |||
@@ -4,7 +4,7 @@ | |||
4 | #define KVNC_H | 4 | #define KVNC_H |
5 | 5 | ||
6 | #include <qmainwindow.h> | 6 | #include <qmainwindow.h> |
7 | #include <qurl.h> | 7 | #include <qtoolbar.h> |
8 | #include <qwidgetstack.h> | 8 | #include <qwidgetstack.h> |
9 | #include "kvncbookmarkdlg.h" | 9 | #include "kvncbookmarkdlg.h" |
10 | 10 | ||
@@ -57,6 +57,7 @@ private: | |||
57 | QAction *disconnectAction; | 57 | QAction *disconnectAction; |
58 | QAction *ctlAltDelAction;; | 58 | QAction *ctlAltDelAction;; |
59 | QAction *connectAction; | 59 | QAction *connectAction; |
60 | QToolBar * bar; | ||
60 | 61 | ||
61 | KVNCBookmarkDlg * bookmarkSelector; | 62 | KVNCBookmarkDlg * bookmarkSelector; |
62 | QWidgetStack * stack; | 63 | QWidgetStack * stack; |
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 | |||
@@ -161,6 +161,8 @@ void KVNCBookmarkDlg::readBookmarks(void) | |||
161 | server->deIconify=val.toInt(); | 161 | server->deIconify=val.toInt(); |
162 | else if (key=="updaterate") | 162 | else if (key=="updaterate") |
163 | server->updateRate=val.toInt(); | 163 | server->updateRate=val.toInt(); |
164 | else if (key=="scalefactor") | ||
165 | server->scaleFactor=val.toInt(); | ||
164 | 166 | ||
165 | } | 167 | } |
166 | if (server){ | 168 | if (server){ |
@@ -200,6 +202,7 @@ void KVNCBookmarkDlg::writeBookmarks(void) | |||
200 | t << "\treadonly=" << server->readOnly << '\n'; | 202 | t << "\treadonly=" << server->readOnly << '\n'; |
201 | t << "\tdeiconify=" << server->deIconify << '\n'; | 203 | t << "\tdeiconify=" << server->deIconify << '\n'; |
202 | t << "\tupdaterate=" << server->updateRate << '\n'; | 204 | t << "\tupdaterate=" << server->updateRate << '\n'; |
205 | t << "\tscalefactor=" << server->scaleFactor << '\n'; | ||
203 | 206 | ||
204 | } | 207 | } |
205 | f.close(); | 208 | f.close(); |
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 | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <qframe.h> | 1 | #include <qframe.h> |
2 | #include <qvbox.h> | 2 | #include <qvbox.h> |
3 | #include <qcheckbox.h> | 3 | #include <qcheckbox.h> |
4 | #include <qcombobox.h> | ||
4 | #include <qspinbox.h> | 5 | #include <qspinbox.h> |
5 | #include <qlabel.h> | 6 | #include <qlabel.h> |
6 | #include <qlayout.h> | 7 | #include <qlayout.h> |
@@ -29,6 +30,12 @@ KVNCConnDlg::KVNCConnDlg( KRFBServer *options, | |||
29 | rre->setChecked( options->rre ); | 30 | rre->setChecked( options->rre ); |
30 | copyRect->setChecked( options->copyrect ); | 31 | copyRect->setChecked( options->copyrect ); |
31 | 32 | ||
33 | for (int i=0; i < scaleFactor->count(); ++i) { | ||
34 | if (scaleFactor->text(i).toInt()==tmpOptions.scaleFactor) { | ||
35 | scaleFactor->setCurrentItem(i); | ||
36 | } | ||
37 | } | ||
38 | |||
32 | // TODO | 39 | // TODO |
33 | hex->setEnabled( false ); | 40 | hex->setEnabled( false ); |
34 | corre->setEnabled( false ); | 41 | corre->setEnabled( false ); |
@@ -40,9 +47,12 @@ KVNCConnDlg::KVNCConnDlg( KRFBServer *options, | |||
40 | shared->setChecked( options->shared ); | 47 | shared->setChecked( options->shared ); |
41 | timeBox->setValue( options->updateRate ); | 48 | timeBox->setValue( options->updateRate ); |
42 | 49 | ||
50 | serverPassword->setEchoMode(QLineEdit::Password); | ||
43 | 51 | ||
44 | } | 52 | connect(togglePassword, SIGNAL( stateChanged(int) ), this, SLOT( showPassword(int) ) ); |
45 | 53 | ||
54 | |||
55 | } | ||
46 | KVNCConnDlg::~KVNCConnDlg() | 56 | KVNCConnDlg::~KVNCConnDlg() |
47 | { | 57 | { |
48 | } | 58 | } |
@@ -66,6 +76,7 @@ void KVNCConnDlg::save() | |||
66 | tmpOptions.password = serverPassword->text(); | 76 | tmpOptions.password = serverPassword->text(); |
67 | tmpOptions.display = serverDisplay->value(); | 77 | tmpOptions.display = serverDisplay->value(); |
68 | tmpOptions.name = serverBookmark->text(); | 78 | tmpOptions.name = serverBookmark->text(); |
79 | tmpOptions.scaleFactor = scaleFactor->currentText().toInt(); | ||
69 | 80 | ||
70 | if (!serverBookmark->text().isEmpty()) { | 81 | if (!serverBookmark->text().isEmpty()) { |
71 | if ( options) { | 82 | if ( options) { |
@@ -73,3 +84,11 @@ void KVNCConnDlg::save() | |||
73 | } | 84 | } |
74 | } | 85 | } |
75 | } | 86 | } |
87 | |||
88 | void KVNCConnDlg::showPassword(int show) | ||
89 | { | ||
90 | if (show) | ||
91 | serverPassword->setEchoMode(QLineEdit::Normal); | ||
92 | else | ||
93 | serverPassword->setEchoMode(QLineEdit::Password); | ||
94 | } | ||
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 | |||
@@ -20,6 +20,7 @@ class KVNCConnDlg : public KVNCConnDlgBase | |||
20 | void accept(); | 20 | void accept(); |
21 | private slots: | 21 | private slots: |
22 | void save(); | 22 | void save(); |
23 | void showPassword(int); | ||
23 | 24 | ||
24 | private: | 25 | private: |
25 | KRFBServer tmpOptions; | 26 | KRFBServer tmpOptions; |
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 | |||
@@ -11,8 +11,8 @@ | |||
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>984</width> | 14 | <width>260</width> |
15 | <height>676</height> | 15 | <height>242</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
@@ -22,397 +22,447 @@ | |||
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <vbox> | 25 | <widget> |
26 | <class>QTabWidget</class> | ||
26 | <property stdset="1"> | 27 | <property stdset="1"> |
27 | <name>margin</name> | 28 | <name>name</name> |
28 | <number>0</number> | 29 | <cstring>TabWidget3</cstring> |
29 | </property> | 30 | </property> |
30 | <property stdset="1"> | 31 | <property stdset="1"> |
31 | <name>spacing</name> | 32 | <name>geometry</name> |
32 | <number>6</number> | 33 | <rect> |
34 | <x>0</x> | ||
35 | <y>0</y> | ||
36 | <width>266</width> | ||
37 | <height>233</height> | ||
38 | </rect> | ||
33 | </property> | 39 | </property> |
34 | <widget> | 40 | <widget> |
35 | <class>QTabWidget</class> | 41 | <class>QWidget</class> |
36 | <property stdset="1"> | 42 | <property stdset="1"> |
37 | <name>name</name> | 43 | <name>name</name> |
38 | <cstring>TabWidget3</cstring> | 44 | <cstring>tab</cstring> |
39 | </property> | 45 | </property> |
40 | <widget> | 46 | <attribute> |
41 | <class>QWidget</class> | 47 | <name>title</name> |
48 | <string>Server</string> | ||
49 | </attribute> | ||
50 | <grid> | ||
42 | <property stdset="1"> | 51 | <property stdset="1"> |
43 | <name>name</name> | 52 | <name>margin</name> |
44 | <cstring>tab</cstring> | 53 | <number>11</number> |
45 | </property> | 54 | </property> |
46 | <attribute> | 55 | <property stdset="1"> |
47 | <name>title</name> | 56 | <name>spacing</name> |
48 | <string>Server</string> | 57 | <number>6</number> |
49 | </attribute> | 58 | </property> |
50 | <grid> | 59 | <widget row="2" column="1" rowspan="1" colspan="2" > |
60 | <class>QLineEdit</class> | ||
51 | <property stdset="1"> | 61 | <property stdset="1"> |
52 | <name>margin</name> | 62 | <name>name</name> |
53 | <number>11</number> | 63 | <cstring>serverPassword</cstring> |
54 | </property> | 64 | </property> |
55 | <property stdset="1"> | 65 | <property stdset="1"> |
56 | <name>spacing</name> | 66 | <name>autoMask</name> |
57 | <number>6</number> | 67 | <bool>true</bool> |
58 | </property> | 68 | </property> |
59 | <widget row="0" column="0" > | 69 | <property stdset="1"> |
60 | <class>QLabel</class> | 70 | <name>echoMode</name> |
61 | <property stdset="1"> | 71 | <enum>Password</enum> |
62 | <name>name</name> | 72 | </property> |
63 | <cstring>hostname</cstring> | 73 | </widget> |
64 | </property> | 74 | <widget row="3" column="1" > |
65 | <property stdset="1"> | 75 | <class>QCheckBox</class> |
66 | <name>text</name> | 76 | <property stdset="1"> |
67 | <string>Host Name:</string> | 77 | <name>name</name> |
68 | </property> | 78 | <cstring>togglePassword</cstring> |
69 | </widget> | 79 | </property> |
70 | <widget row="1" column="0" > | 80 | <property stdset="1"> |
71 | <class>QLabel</class> | 81 | <name>text</name> |
72 | <property stdset="1"> | 82 | <string>Show Password</string> |
73 | <name>name</name> | 83 | </property> |
74 | <cstring>TextLabel2_2</cstring> | 84 | </widget> |
75 | </property> | 85 | <widget row="2" column="0" > |
76 | <property stdset="1"> | 86 | <class>QLabel</class> |
77 | <name>text</name> | 87 | <property stdset="1"> |
78 | <string>Display Number:</string> | 88 | <name>name</name> |
79 | </property> | 89 | <cstring>TextLabel3</cstring> |
80 | </widget> | 90 | </property> |
81 | <widget row="2" column="1" rowspan="1" colspan="2" > | 91 | <property stdset="1"> |
82 | <class>QLineEdit</class> | 92 | <name>text</name> |
83 | <property stdset="1"> | 93 | <string>Password:</string> |
84 | <name>name</name> | 94 | </property> |
85 | <cstring>serverPassword</cstring> | 95 | </widget> |
86 | </property> | 96 | <widget row="4" column="1" rowspan="1" colspan="2" > |
87 | <property stdset="1"> | 97 | <class>QLineEdit</class> |
88 | <name>autoMask</name> | 98 | <property stdset="1"> |
89 | <bool>true</bool> | 99 | <name>name</name> |
90 | </property> | 100 | <cstring>serverBookmark</cstring> |
91 | </widget> | 101 | </property> |
92 | <widget row="1" column="1" rowspan="1" colspan="2" > | 102 | </widget> |
93 | <class>QSpinBox</class> | 103 | <widget row="4" column="0" > |
94 | <property stdset="1"> | 104 | <class>QLabel</class> |
95 | <name>name</name> | 105 | <property stdset="1"> |
96 | <cstring>serverDisplay</cstring> | 106 | <name>name</name> |
97 | </property> | 107 | <cstring>TextLabel1_2</cstring> |
98 | <property stdset="1"> | 108 | </property> |
99 | <name>maxValue</name> | 109 | <property stdset="1"> |
100 | <number>500</number> | 110 | <name>text</name> |
101 | </property> | 111 | <string>Bookmark Name:</string> |
102 | <property stdset="1"> | 112 | </property> |
103 | <name>minValue</name> | 113 | </widget> |
104 | <number>0</number> | 114 | <widget row="0" column="1" rowspan="1" colspan="2" > |
105 | </property> | 115 | <class>QLineEdit</class> |
116 | <property stdset="1"> | ||
117 | <name>name</name> | ||
118 | <cstring>serverHostname</cstring> | ||
119 | </property> | ||
120 | </widget> | ||
121 | <widget row="0" column="0" > | ||
122 | <class>QLabel</class> | ||
123 | <property stdset="1"> | ||
124 | <name>name</name> | ||
125 | <cstring>hostname</cstring> | ||
126 | </property> | ||
127 | <property stdset="1"> | ||
128 | <name>text</name> | ||
129 | <string>Host Name:</string> | ||
130 | </property> | ||
131 | </widget> | ||
132 | <widget row="1" column="0" > | ||
133 | <class>QLabel</class> | ||
134 | <property stdset="1"> | ||
135 | <name>name</name> | ||
136 | <cstring>TextLabel2_2</cstring> | ||
137 | </property> | ||
138 | <property stdset="1"> | ||
139 | <name>text</name> | ||
140 | <string>Display Number:</string> | ||
141 | </property> | ||
142 | </widget> | ||
143 | <widget row="1" column="1" rowspan="1" colspan="2" > | ||
144 | <class>QSpinBox</class> | ||
145 | <property stdset="1"> | ||
146 | <name>name</name> | ||
147 | <cstring>serverDisplay</cstring> | ||
148 | </property> | ||
149 | <property stdset="1"> | ||
150 | <name>maxValue</name> | ||
151 | <number>500</number> | ||
152 | </property> | ||
153 | <property stdset="1"> | ||
154 | <name>minValue</name> | ||
155 | <number>0</number> | ||
156 | </property> | ||
157 | <property stdset="1"> | ||
158 | <name>value</name> | ||
159 | <number>0</number> | ||
160 | </property> | ||
161 | </widget> | ||
162 | <spacer row="5" column="2" > | ||
163 | <property> | ||
164 | <name>name</name> | ||
165 | <cstring>Spacer2</cstring> | ||
166 | </property> | ||
167 | <property stdset="1"> | ||
168 | <name>orientation</name> | ||
169 | <enum>Vertical</enum> | ||
170 | </property> | ||
171 | <property stdset="1"> | ||
172 | <name>sizeType</name> | ||
173 | <enum>Expanding</enum> | ||
174 | </property> | ||
175 | <property> | ||
176 | <name>sizeHint</name> | ||
177 | <size> | ||
178 | <width>20</width> | ||
179 | <height>20</height> | ||
180 | </size> | ||
181 | </property> | ||
182 | </spacer> | ||
183 | </grid> | ||
184 | </widget> | ||
185 | <widget> | ||
186 | <class>QWidget</class> | ||
187 | <property stdset="1"> | ||
188 | <name>name</name> | ||
189 | <cstring>tab</cstring> | ||
190 | </property> | ||
191 | <attribute> | ||
192 | <name>title</name> | ||
193 | <string>Options</string> | ||
194 | </attribute> | ||
195 | <vbox> | ||
196 | <property stdset="1"> | ||
197 | <name>margin</name> | ||
198 | <number>11</number> | ||
199 | </property> | ||
200 | <property stdset="1"> | ||
201 | <name>spacing</name> | ||
202 | <number>6</number> | ||
203 | </property> | ||
204 | <widget> | ||
205 | <class>QLabel</class> | ||
206 | <property stdset="1"> | ||
207 | <name>name</name> | ||
208 | <cstring>TextLabel1</cstring> | ||
209 | </property> | ||
210 | <property stdset="1"> | ||
211 | <name>text</name> | ||
212 | <string>Check for screen updates every:</string> | ||
213 | </property> | ||
214 | </widget> | ||
215 | <widget> | ||
216 | <class>QLayoutWidget</class> | ||
217 | <property stdset="1"> | ||
218 | <name>name</name> | ||
219 | <cstring>Layout2</cstring> | ||
220 | </property> | ||
221 | <hbox> | ||
106 | <property stdset="1"> | 222 | <property stdset="1"> |
107 | <name>value</name> | 223 | <name>margin</name> |
108 | <number>0</number> | 224 | <number>0</number> |
109 | </property> | 225 | </property> |
110 | </widget> | ||
111 | <widget row="0" column="1" rowspan="1" colspan="2" > | ||
112 | <class>QLineEdit</class> | ||
113 | <property stdset="1"> | ||
114 | <name>name</name> | ||
115 | <cstring>serverHostname</cstring> | ||
116 | </property> | ||
117 | </widget> | ||
118 | <widget row="2" column="0" > | ||
119 | <class>QLabel</class> | ||
120 | <property stdset="1"> | ||
121 | <name>name</name> | ||
122 | <cstring>TextLabel3</cstring> | ||
123 | </property> | ||
124 | <property stdset="1"> | 226 | <property stdset="1"> |
125 | <name>text</name> | 227 | <name>spacing</name> |
126 | <string>Password:</string> | 228 | <number>6</number> |
127 | </property> | 229 | </property> |
128 | </widget> | 230 | <widget> |
129 | <widget row="3" column="1" rowspan="1" colspan="2" > | 231 | <class>QSpinBox</class> |
130 | <class>QLineEdit</class> | ||
131 | <property stdset="1"> | ||
132 | <name>name</name> | ||
133 | <cstring>serverBookmark</cstring> | ||
134 | </property> | ||
135 | </widget> | ||
136 | <widget row="3" column="0" > | ||
137 | <class>QLabel</class> | ||
138 | <property stdset="1"> | ||
139 | <name>name</name> | ||
140 | <cstring>TextLabel1_2</cstring> | ||
141 | </property> | ||
142 | <property stdset="1"> | ||
143 | <name>text</name> | ||
144 | <string>Bookmark Name:</string> | ||
145 | </property> | ||
146 | </widget> | ||
147 | <spacer row="5" column="2" > | ||
148 | <property> | ||
149 | <name>name</name> | ||
150 | <cstring>Spacer2</cstring> | ||
151 | </property> | ||
152 | <property stdset="1"> | ||
153 | <name>orientation</name> | ||
154 | <enum>Vertical</enum> | ||
155 | </property> | ||
156 | <property stdset="1"> | ||
157 | <name>sizeType</name> | ||
158 | <enum>Expanding</enum> | ||
159 | </property> | ||
160 | <property> | ||
161 | <name>sizeHint</name> | ||
162 | <size> | ||
163 | <width>20</width> | ||
164 | <height>20</height> | ||
165 | </size> | ||
166 | </property> | ||
167 | </spacer> | ||
168 | <widget row="4" column="1" > | ||
169 | <class>QLayoutWidget</class> | ||
170 | <property stdset="1"> | ||
171 | <name>name</name> | ||
172 | <cstring>Layout3</cstring> | ||
173 | </property> | ||
174 | <hbox> | ||
175 | <property stdset="1"> | 232 | <property stdset="1"> |
176 | <name>margin</name> | 233 | <name>name</name> |
177 | <number>0</number> | 234 | <cstring>timeBox</cstring> |
178 | </property> | 235 | </property> |
179 | <property stdset="1"> | 236 | <property stdset="1"> |
180 | <name>spacing</name> | 237 | <name>maxValue</name> |
181 | <number>6</number> | 238 | <number>500</number> |
182 | </property> | 239 | </property> |
183 | </hbox> | 240 | <property stdset="1"> |
184 | </widget> | 241 | <name>minValue</name> |
185 | </grid> | 242 | <number>1</number> |
186 | </widget> | 243 | </property> |
187 | <widget> | 244 | </widget> |
188 | <class>QWidget</class> | 245 | <widget> |
189 | <property stdset="1"> | 246 | <class>QLabel</class> |
190 | <name>name</name> | 247 | <property stdset="1"> |
191 | <cstring>tab</cstring> | 248 | <name>name</name> |
192 | </property> | 249 | <cstring>TextLabel2</cstring> |
193 | <attribute> | 250 | </property> |
194 | <name>title</name> | 251 | <property stdset="1"> |
195 | <string>Options</string> | 252 | <name>text</name> |
196 | </attribute> | 253 | <string>Milliseconds</string> |
197 | <vbox> | 254 | </property> |
255 | </widget> | ||
256 | </hbox> | ||
257 | </widget> | ||
258 | <widget> | ||
259 | <class>QCheckBox</class> | ||
198 | <property stdset="1"> | 260 | <property stdset="1"> |
199 | <name>margin</name> | 261 | <name>name</name> |
200 | <number>11</number> | 262 | <cstring>bit</cstring> |
201 | </property> | 263 | </property> |
202 | <property stdset="1"> | 264 | <property stdset="1"> |
203 | <name>spacing</name> | 265 | <name>text</name> |
204 | <number>6</number> | 266 | <string>Request 8-bit session</string> |
205 | </property> | 267 | </property> |
206 | <widget> | 268 | </widget> |
207 | <class>QLabel</class> | 269 | <widget> |
208 | <property stdset="1"> | 270 | <class>QCheckBox</class> |
209 | <name>name</name> | 271 | <property stdset="1"> |
210 | <cstring>TextLabel1</cstring> | 272 | <name>name</name> |
211 | </property> | 273 | <cstring>deIconify</cstring> |
274 | </property> | ||
275 | <property stdset="1"> | ||
276 | <name>text</name> | ||
277 | <string>Raise on bell</string> | ||
278 | </property> | ||
279 | </widget> | ||
280 | <widget> | ||
281 | <class>QCheckBox</class> | ||
282 | <property stdset="1"> | ||
283 | <name>name</name> | ||
284 | <cstring>shared</cstring> | ||
285 | </property> | ||
286 | <property stdset="1"> | ||
287 | <name>text</name> | ||
288 | <string>Request shared session</string> | ||
289 | </property> | ||
290 | </widget> | ||
291 | <widget> | ||
292 | <class>QLayoutWidget</class> | ||
293 | <property stdset="1"> | ||
294 | <name>name</name> | ||
295 | <cstring>Layout3</cstring> | ||
296 | </property> | ||
297 | <hbox> | ||
212 | <property stdset="1"> | 298 | <property stdset="1"> |
213 | <name>text</name> | 299 | <name>margin</name> |
214 | <string>Check for screen updates every:</string> | 300 | <number>0</number> |
215 | </property> | 301 | </property> |
216 | </widget> | ||
217 | <widget> | ||
218 | <class>QLayoutWidget</class> | ||
219 | <property stdset="1"> | 302 | <property stdset="1"> |
220 | <name>name</name> | 303 | <name>spacing</name> |
221 | <cstring>Layout2</cstring> | 304 | <number>6</number> |
222 | </property> | 305 | </property> |
223 | <hbox> | 306 | <widget> |
224 | <property stdset="1"> | 307 | <class>QComboBox</class> |
225 | <name>margin</name> | 308 | <item> |
226 | <number>0</number> | 309 | <property> |
227 | </property> | 310 | <name>text</name> |
228 | <property stdset="1"> | 311 | <string>1</string> |
229 | <name>spacing</name> | ||
230 | <number>6</number> | ||
231 | </property> | ||
232 | <widget> | ||
233 | <class>QSpinBox</class> | ||
234 | <property stdset="1"> | ||
235 | <name>name</name> | ||
236 | <cstring>timeBox</cstring> | ||
237 | </property> | ||
238 | <property stdset="1"> | ||
239 | <name>maxValue</name> | ||
240 | <number>500</number> | ||
241 | </property> | ||
242 | <property stdset="1"> | ||
243 | <name>minValue</name> | ||
244 | <number>1</number> | ||
245 | </property> | 312 | </property> |
246 | </widget> | 313 | </item> |
247 | <widget> | 314 | <item> |
248 | <class>QLabel</class> | 315 | <property> |
249 | <property stdset="1"> | 316 | <name>text</name> |
250 | <name>name</name> | 317 | <string>2</string> |
251 | <cstring>TextLabel2</cstring> | ||
252 | </property> | 318 | </property> |
253 | <property stdset="1"> | 319 | </item> |
320 | <item> | ||
321 | <property> | ||
254 | <name>text</name> | 322 | <name>text</name> |
255 | <string>Milliseconds</string> | 323 | <string>4</string> |
256 | </property> | 324 | </property> |
257 | </widget> | 325 | </item> |
258 | </hbox> | 326 | <property stdset="1"> |
259 | </widget> | 327 | <name>name</name> |
260 | <widget> | 328 | <cstring>scaleFactor</cstring> |
261 | <class>QCheckBox</class> | 329 | </property> |
262 | <property stdset="1"> | 330 | </widget> |
263 | <name>name</name> | 331 | <widget> |
264 | <cstring>bit</cstring> | 332 | <class>QLabel</class> |
265 | </property> | 333 | <property stdset="1"> |
266 | <property stdset="1"> | 334 | <name>name</name> |
267 | <name>text</name> | 335 | <cstring>TextLabel2_3</cstring> |
268 | <string>Request 8-bit session</string> | 336 | </property> |
269 | </property> | 337 | <property stdset="1"> |
270 | </widget> | 338 | <name>text</name> |
271 | <widget> | 339 | <string>Scale Factor</string> |
272 | <class>QCheckBox</class> | 340 | </property> |
273 | <property stdset="1"> | 341 | </widget> |
274 | <name>name</name> | 342 | </hbox> |
275 | <cstring>deIconify</cstring> | 343 | </widget> |
276 | </property> | 344 | <spacer> |
277 | <property stdset="1"> | 345 | <property> |
278 | <name>text</name> | 346 | <name>name</name> |
279 | <string>Raise on bell</string> | 347 | <cstring>Spacer2</cstring> |
280 | </property> | 348 | </property> |
281 | </widget> | 349 | <property stdset="1"> |
282 | <widget> | 350 | <name>orientation</name> |
283 | <class>QCheckBox</class> | 351 | <enum>Vertical</enum> |
284 | <property stdset="1"> | 352 | </property> |
285 | <name>name</name> | 353 | <property stdset="1"> |
286 | <cstring>shared</cstring> | 354 | <name>sizeType</name> |
287 | </property> | 355 | <enum>Expanding</enum> |
288 | <property stdset="1"> | 356 | </property> |
289 | <name>text</name> | 357 | <property> |
290 | <string>Request shared session</string> | 358 | <name>sizeHint</name> |
291 | </property> | 359 | <size> |
292 | </widget> | 360 | <width>20</width> |
293 | <spacer> | 361 | <height>20</height> |
294 | <property> | 362 | </size> |
295 | <name>name</name> | 363 | </property> |
296 | <cstring>Spacer2</cstring> | 364 | </spacer> |
297 | </property> | 365 | </vbox> |
298 | <property stdset="1"> | 366 | </widget> |
299 | <name>orientation</name> | 367 | <widget> |
300 | <enum>Vertical</enum> | 368 | <class>QWidget</class> |
301 | </property> | 369 | <property stdset="1"> |
302 | <property stdset="1"> | 370 | <name>name</name> |
303 | <name>sizeType</name> | 371 | <cstring>tab</cstring> |
304 | <enum>Expanding</enum> | 372 | </property> |
305 | </property> | 373 | <attribute> |
306 | <property> | 374 | <name>title</name> |
307 | <name>sizeHint</name> | 375 | <string>Encodings</string> |
308 | <size> | 376 | </attribute> |
309 | <width>20</width> | 377 | <vbox> |
310 | <height>20</height> | 378 | <property stdset="1"> |
311 | </size> | 379 | <name>margin</name> |
312 | </property> | 380 | <number>11</number> |
313 | </spacer> | 381 | </property> |
314 | </vbox> | ||
315 | </widget> | ||
316 | <widget> | ||
317 | <class>QWidget</class> | ||
318 | <property stdset="1"> | 382 | <property stdset="1"> |
319 | <name>name</name> | 383 | <name>spacing</name> |
320 | <cstring>tab</cstring> | 384 | <number>6</number> |
321 | </property> | 385 | </property> |
322 | <attribute> | 386 | <widget> |
323 | <name>title</name> | 387 | <class>QCheckBox</class> |
324 | <string>Encodings</string> | ||
325 | </attribute> | ||
326 | <vbox> | ||
327 | <property stdset="1"> | 388 | <property stdset="1"> |
328 | <name>margin</name> | 389 | <name>name</name> |
329 | <number>11</number> | 390 | <cstring>hex</cstring> |
330 | </property> | 391 | </property> |
331 | <property stdset="1"> | 392 | <property stdset="1"> |
332 | <name>spacing</name> | 393 | <name>enabled</name> |
333 | <number>6</number> | 394 | <bool>false</bool> |
334 | </property> | 395 | </property> |
335 | <widget> | 396 | <property stdset="1"> |
336 | <class>QCheckBox</class> | 397 | <name>text</name> |
337 | <property stdset="1"> | 398 | <string>Hextile encoding</string> |
338 | <name>name</name> | 399 | </property> |
339 | <cstring>hex</cstring> | 400 | </widget> |
340 | </property> | 401 | <widget> |
341 | <property stdset="1"> | 402 | <class>QCheckBox</class> |
342 | <name>enabled</name> | 403 | <property stdset="1"> |
343 | <bool>false</bool> | 404 | <name>name</name> |
344 | </property> | 405 | <cstring>corre</cstring> |
345 | <property stdset="1"> | 406 | </property> |
346 | <name>text</name> | 407 | <property stdset="1"> |
347 | <string>Hextile encoding</string> | 408 | <name>enabled</name> |
348 | </property> | 409 | <bool>false</bool> |
349 | </widget> | 410 | </property> |
350 | <widget> | 411 | <property stdset="1"> |
351 | <class>QCheckBox</class> | 412 | <name>text</name> |
352 | <property stdset="1"> | 413 | <string>CoRRE encoding</string> |
353 | <name>name</name> | 414 | </property> |
354 | <cstring>corre</cstring> | 415 | </widget> |
355 | </property> | 416 | <widget> |
356 | <property stdset="1"> | 417 | <class>QCheckBox</class> |
357 | <name>enabled</name> | 418 | <property stdset="1"> |
358 | <bool>false</bool> | 419 | <name>name</name> |
359 | </property> | 420 | <cstring>rre</cstring> |
360 | <property stdset="1"> | 421 | </property> |
361 | <name>text</name> | 422 | <property stdset="1"> |
362 | <string>CoRRE encoding</string> | 423 | <name>enabled</name> |
363 | </property> | 424 | <bool>false</bool> |
364 | </widget> | 425 | </property> |
365 | <widget> | 426 | <property stdset="1"> |
366 | <class>QCheckBox</class> | 427 | <name>text</name> |
367 | <property stdset="1"> | 428 | <string>RRE encoding</string> |
368 | <name>name</name> | 429 | </property> |
369 | <cstring>rre</cstring> | 430 | </widget> |
370 | </property> | 431 | <widget> |
371 | <property stdset="1"> | 432 | <class>QCheckBox</class> |
372 | <name>enabled</name> | 433 | <property stdset="1"> |
373 | <bool>false</bool> | 434 | <name>name</name> |
374 | </property> | 435 | <cstring>copyRect</cstring> |
375 | <property stdset="1"> | 436 | </property> |
376 | <name>text</name> | 437 | <property stdset="1"> |
377 | <string>RRE encoding</string> | 438 | <name>text</name> |
378 | </property> | 439 | <string>Copy rectangle encoding</string> |
379 | </widget> | 440 | </property> |
380 | <widget> | 441 | </widget> |
381 | <class>QCheckBox</class> | 442 | <spacer> |
382 | <property stdset="1"> | 443 | <property> |
383 | <name>name</name> | 444 | <name>name</name> |
384 | <cstring>copyRect</cstring> | 445 | <cstring>Spacer3</cstring> |
385 | </property> | 446 | </property> |
386 | <property stdset="1"> | 447 | <property stdset="1"> |
387 | <name>text</name> | 448 | <name>orientation</name> |
388 | <string>Copy rectangle encoding</string> | 449 | <enum>Vertical</enum> |
389 | </property> | 450 | </property> |
390 | </widget> | 451 | <property stdset="1"> |
391 | <spacer> | 452 | <name>sizeType</name> |
392 | <property> | 453 | <enum>Expanding</enum> |
393 | <name>name</name> | 454 | </property> |
394 | <cstring>Spacer3</cstring> | 455 | <property> |
395 | </property> | 456 | <name>sizeHint</name> |
396 | <property stdset="1"> | 457 | <size> |
397 | <name>orientation</name> | 458 | <width>20</width> |
398 | <enum>Vertical</enum> | 459 | <height>20</height> |
399 | </property> | 460 | </size> |
400 | <property stdset="1"> | 461 | </property> |
401 | <name>sizeType</name> | 462 | </spacer> |
402 | <enum>Expanding</enum> | 463 | </vbox> |
403 | </property> | ||
404 | <property> | ||
405 | <name>sizeHint</name> | ||
406 | <size> | ||
407 | <width>20</width> | ||
408 | <height>20</height> | ||
409 | </size> | ||
410 | </property> | ||
411 | </spacer> | ||
412 | </vbox> | ||
413 | </widget> | ||
414 | </widget> | 464 | </widget> |
415 | </vbox> | 465 | </widget> |
416 | </widget> | 466 | </widget> |
417 | <tabstops> | 467 | <tabstops> |
418 | <tabstop>TabWidget3</tabstop> | 468 | <tabstop>TabWidget3</tabstop> |