summaryrefslogtreecommitdiff
path: root/recipes/qtnx/files/dodnx.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/qtnx/files/dodnx.patch')
-rw-r--r--recipes/qtnx/files/dodnx.patch1919
1 files changed, 1919 insertions, 0 deletions
diff --git a/recipes/qtnx/files/dodnx.patch b/recipes/qtnx/files/dodnx.patch
new file mode 100644
index 0000000000..6c2a7e5888
--- /dev/null
+++ b/recipes/qtnx/files/dodnx.patch
@@ -0,0 +1,1919 @@
+Index: qtnx-0.9/keyboards
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ qtnx-0.9/keyboards 2008-10-14 10:43:03.000000000 +0200
+@@ -0,0 +1,86 @@
++al,0x041C,Albanian
++ar,0x0001,Arabic
++am,,Armenian
++az,,Azerbaijani
++bg,0x0402,Bulgarian
++by,0x0423,Belarusian
++be,,Belgian
++ben,,Bengali
++bs,,Bosnian
++mm,,Burmese
++hr,0x041A,Croatian
++hr_US,,Croatian (US)
++cz,0x0405,Czech
++cz_qwerty,,Czech (QWERTY)
++dk,0x0406,Danish
++nl,0x0413,Dutch (Netherlands)
++dvorak,,Dvorak
++us,0x0009,English
++en_US,0x0409,English (United States)
++gb,0x0809,English (United Kingdom)
++ca,0x1009,English (Canada)
++ee,0x0425,Estonian
++fi,0x040B,Finnish
++fr,0x040C,French (France)
++fr_latin9,,French (Alternative)
++ca_enhanced,0x0C0C,French (Canada)
++ge_la,,Georgian (latin)
++ge_ru,,Georgian (russian)
++de,0x0407,German (Germany)
++el,0x0408,Greek
++guj,,Gujarati
++gur,,Gurmukhi
++dev,0x0439,Hindi
++hu,0x040E,Hungarian
++hu_US,,Hungarian (US)
++hu_qwerty,,Hungarian (qwerty)
++is,0x040F,Icelandic
++iu,,Inuktitut
++ir,,Iranian
++ie,,Irish
++il,,Israeli
++il_phonetic,,Israeli (phonetic)
++it,0x0410,Italian (Italy)
++jp,0x0411,Japanese
++kan,,Kannada
++ko,0x0412,Korean
++la,,Latin America
++lv,0x0426,Latvian
++lt,0x0427,Lithuanian
++lt_std,,Lithuanian azerty standard
++mk,0x042F,FYRO Macedonian
++ml,0x043E,Malay (Malaysia)
++mt_US,,Maltese (US layout)
++ogham,,Ogham
++oriya,,Oriya
++no,0x0814,Norwegian
++pl,0x0415,Polish
++pl2,,Polish (qwertz)
++br,0x0416,Portuguese (Brazil)
++pt,0x0816,Portuguese (Portugal)
++ro,0x0418,Romanian
++ru,0x0419,Russian
++ru_yawerty,,Russian (cyrillic phonetic)
++se_FI,,Northern Saami (Finland)
++se_NO,,Northern Saami (Norway)
++se_SE,,Northern Saami (Sweden)
++sr,0x081A,Serbian
++sk,0x041B,Slovak
++si,0x0424,Slovenian
++es,0x040A,Spanish (Traditional Sort)
++se,0x041D,Swedish
++fr_CH,0x100c,Swiss French
++de_CH,0x0807,Swiss German
++syr,,Syriac
++tj,,Tajik
++tml,,Tamil
++tel,,Telugu
++th,0x041E,Thai
++th_tis,0x041E,Thai (TIS-820.2538)
++th_pat,,Thai (Pattachote)
++tr,0x041F,Turkish
++ua,0x0422,Ukrainian
++vn,0x042A,Vietnamese
++yu,,Yugoslavian
++fo,0x0438,Faroese
++nl-be,0x0813,Dutch (Belgian)
+Index: qtnx-0.9/qtnxsettings.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxsettings.cpp 2008-10-14 10:43:02.000000000 +0200
++++ qtnx-0.9/qtnxsettings.cpp 2008-10-14 14:02:04.000000000 +0200
+@@ -45,6 +45,8 @@
+ connect(ui_sd.imageCompressionType, SIGNAL(currentIndexChanged(QString)), this, SLOT(compressionChanged(QString)));
+ connect(ui_sd.keyboard, SIGNAL(currentIndexChanged(QString)), this, SLOT(keyboardChanged(QString)));
+ connect(ui_sd.defaultKey, SIGNAL(stateChanged(int)), this, SLOT(keyChanged(int)));
++ connect(ui_sd.useProxy, SIGNAL(stateChanged(int)), this, SLOT(proxyChanged(int)));
++ connect(ui_sd.proxyAuthenticated, SIGNAL(stateChanged(int)), this, SLOT(proxyAuthChanged(int)));
+ connect(ui_sd.applyButton, SIGNAL(pressed()), this, SLOT(applyPressed()));
+ connect(ui_sd.okButton, SIGNAL(pressed()), this, SLOT(okPressed()));
+ connect(ui_sd.cancelButton, SIGNAL(pressed()), this, SLOT(cancelPressed()));
+@@ -58,6 +60,14 @@
+ void QtNXSettings::parseFile()
+ {
+ if (!fileName.isEmpty()) {
++
++ config.useProxy = false;
++ config.proxyHost = "";
++ config.proxyPort = 8080;
++ config.proxyAuthenticated = false;
++ config.proxyPass = "";
++ config.proxyUser = "";
++
+ NXParseXML handler;
+ handler.setData(&config);
+
+@@ -145,6 +155,24 @@
+ }
+ }
+
++ if (config.useProxy == true) {
++ ui_sd.useProxy->setChecked(true);
++ ui_sd.proxyHost->setEnabled(true);
++ ui_sd.proxyPort->setEnabled(true);
++ ui_sd.proxyAuthenticated->setEnabled(true);
++ }
++
++ if (config.proxyAuthenticated == true) {
++ ui_sd.proxyAuthenticated->setChecked(true);
++ ui_sd.proxyUser->setEnabled(true);
++ ui_sd.proxyPass->setEnabled(true);
++ }
++
++ ui_sd.proxyHost->setText(QString::fromStdString(config.proxyHost));
++ ui_sd.proxyPort->setValue(config.proxyPort);
++ ui_sd.proxyUser->setText(QString::fromStdString(config.proxyUser));
++ ui_sd.proxyPass->setText(QString::fromStdString(config.proxyPass));
++
+ ui_sd.encryption->setChecked(config.encryption);
+ ui_sd.memoryCache->setValue(config.cache);
+ ui_sd.diskCache->setValue(config.images);
+@@ -199,6 +227,30 @@
+ ui_sd.setAuthKeyButton->setEnabled(true);
+ }
+
++void QtNXSettings::proxyChanged(int state)
++{
++ if (state == Qt::Checked) {
++ ui_sd.proxyHost->setEnabled(true);
++ ui_sd.proxyPort->setEnabled(true);
++ ui_sd.proxyAuthenticated->setEnabled(true);
++ } else {
++ ui_sd.proxyHost->setEnabled(false);
++ ui_sd.proxyPort->setEnabled(false);
++ ui_sd.proxyAuthenticated->setEnabled(false);
++ }
++}
++
++void QtNXSettings::proxyAuthChanged(int state)
++{
++ if (state == Qt::Checked) {
++ ui_sd.proxyUser->setEnabled(true);
++ ui_sd.proxyPass->setEnabled(true);
++ } else {
++ ui_sd.proxyUser->setEnabled(false);
++ ui_sd.proxyPass->setEnabled(false);
++ }
++}
++
+ void QtNXSettings::cancelPressed()
+ {
+ close();
+@@ -315,6 +367,25 @@
+ else
+ config.render = false;
+
++ if (ui_sd.useProxy->checkState() == Qt::Checked) {
++ config.useProxy = true;
++
++ if (ui_sd.proxyAuthenticated->checkState() == Qt::Checked)
++ {
++ config.proxyAuthenticated = true;
++ } else
++ {
++ config.proxyAuthenticated = false;
++ }
++ config.proxyHost = ui_sd.proxyHost->text().toStdString();
++ config.proxyPort = ui_sd.proxyPort->value();
++ config.proxyUser = ui_sd.proxyUser->text().toStdString();
++ config.proxyPass = ui_sd.proxyPass->text().toStdString();
++ } else
++ {
++ config.useProxy = false;
++ }
++
+ NXWriteXML writeData;
+ writeData.setSessionData(config);
+ writeData.write(QDir::homePath() + "/.qtnx/" + ui_sd.sessionName->text() + ".nxml");
+Index: qtnx-0.9/qtnxsettings.h
+===================================================================
+--- qtnx-0.9.orig/qtnxsettings.h 2008-10-14 10:43:02.000000000 +0200
++++ qtnx-0.9/qtnxsettings.h 2008-10-14 10:43:03.000000000 +0200
+@@ -34,13 +34,15 @@
+ QtNXSettings(QString);
+ ~QtNXSettings();
+ void parseFile();
+- public slots:
+- void resolutionChanged(QString);
++ public slots:
++ void resolutionChanged(QString);
+ void compressionChanged(QString);
+ void platformChanged(QString);
+ void keyboardChanged(QString);
+ void typeChanged(QString);
+ void keyChanged(int);
++ void proxyAuthChanged(int);
++ void proxyChanged(int);
+ void applyPressed();
+ void cancelPressed();
+ void okPressed();
+@@ -48,7 +50,7 @@
+ void authKeyPressed();
+ void keyDialogAccept();
+ void keyDialogReject();
+-signals:
++ signals:
+ void closing(QString);
+ private:
+ Ui::SettingsDialog ui_sd;
+Index: qtnx-0.9/qtnxwindow.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.cpp 2008-10-14 10:43:02.000000000 +0200
++++ qtnx-0.9/qtnxwindow.cpp 2008-10-14 14:02:04.000000000 +0200
+@@ -28,6 +28,10 @@
+ #include <CoreFoundation/CFBundle.h>
+ #endif
+
++#ifdef Q_CYGWIN_WIN
++ #include <Windows.h>
++#endif
++
+ using namespace nxcl;
+ using namespace std;
+
+@@ -125,16 +129,72 @@
+
+ #ifdef Q_CYGWIN_WIN
+ QString filePath = qApp->applicationDirPath();
++ QString tempPath = filePath;
+
+ // On Windows QtNX will ship with the NX system components in NX/ relative to the
+ // QtNX binary
+ filePath.append("/NX");
+ setenv("NX_SYSTEM", filePath.toStdString().c_str(), 1);
+ filePath.append("/bin");
++ tempPath.append("/NX/tmp/");
++ setenv("NX_TEMP", tempPath.toStdString().c_str(), 1);
++ setenv("TEMP", tempPath.toStdString().c_str(), 1);
+ m_NXClient->setCustomPath(filePath.toStdString());
+ #endif
++
++#ifdef Q_WS_X11
++ binaryPath = qApp->applicationDirPath();
++ QString libPath = binaryPath;
++
++ binaryPath.append("/bin");
++
++ m_NXClient->setCustomPath(binaryPath.toStdString());
++
++ libPath.append("/lib:");
++ libPath.append(getenv("LD_LIBRARY_PATH"));
++
++ cout << libPath.toStdString() << endl;
++ setenv("LD_LIBRARY_PATH", libPath.toStdString().c_str(), 1);
++#endif
++
+ }
+
++QString QtNXWindow::keyboardLayout()
++{
++#ifdef Q_CYGWIN_WIN
++ HKL dwlayout = GetKeyboardLayout(0);
++
++ WORD layout = LOWORD(dwlayout);
++
++ // On Windows QtNX will ship with the keyboards file in NX/ relative to the
++ // QtNX binary
++ QString filePath = qApp->applicationDirPath();
++ filePath.append("/NX/keyboards");
++
++ QFile keymaps(filePath);
++
++ bool ok;
++
++ if (keymaps.open(QIODevice::ReadOnly)) {
++ QTextStream stream(&keymaps);
++ QString line;
++
++ while (!stream.atEnd()) {
++ line = stream.readLine();
++
++ if (line.startsWith("#"))
++ continue;
++
++ if (line.section(",", 1, 1).toInt(&ok, 16) == (int)layout)
++ return line.section(",", 0, 0);
++ }
++ keymaps.close();
++ }
++#endif
++ return "defkeymap";
++}
++
++
+ void QtNXWindow::setupUI()
+ {
+ logWindow = new QDialog(0);
+@@ -259,6 +319,21 @@
+
+ setDefaultData();
+
++ if (config.useProxy) {
++ string proxyUsername("");
++ string proxyPassword("");
++
++ if (config.proxyAuthenticated) {
++ proxyUsername = config.proxyUser;
++ proxyPassword = config.proxyPass;
++ }
++
++ m_NXClient->setProxy(config.proxyHost,
++ proxyUsername,
++ proxyPassword,
++ config.proxyPort);
++ }
++
+ if (ui_lg.link->currentText() == tr("Modem"))
+ session.linkType = "modem";
+ else if (ui_lg.link->currentText() == tr("ISDN"))
+@@ -425,6 +500,8 @@
+
+ ui_lg.session->setCurrentIndex(
+ ui_lg.session->findText(sessionName));
++
++ parseXML();
+ }
+
+ void QtNXWindow::resumeNewPressed()
+@@ -482,16 +559,16 @@
+
+ switch (id) {
+ case NXCL_PROCESS_STARTED:
+- handleStatus(tr("Process started"));
++ handleStatus(tr("Starting login process"));
+ break;
+ case NXCL_PROCESS_EXITED:
+- handleStatus(tr("Process exited"));
++ handleStatus(tr(""));
+ break;
+ case NXCL_AUTH_FAILED:
+ handleStatus(tr("Invalid authentication key"));
+ break;
+ case NXCL_AUTHENTICATING:
+- handleStatus(tr("Authenticating client"));
++ handleStatus(tr("Authenticating"));
+ break;
+ case NXCL_LOGIN_FAILED:
+ handleStatus(tr("Invalid username or password"));
+@@ -501,7 +578,7 @@
+ handleStatus(tr("Host key verification failed"));
+ break;
+ case NXCL_INVOKE_PROXY:
+- handleStatus(tr("Starting NX proxy"));
++ handleStatus(tr("Loading remote desktop"));
+ break;
+ case NXCL_STARTING:
+ handleStatus(tr("Starting session"));
+@@ -510,10 +587,10 @@
+ handleStatus(tr("Finished connecting"));
+ break;
+ case NXCL_ALIVE:
+- handleStatus(tr("NX session active"));
++ handleStatus(tr("Session running"));
+ break;
+ case NXCL_PROCESS_ERROR:
+- handleStatus(tr("Process error"));
++ handleStatus(tr("An error occurred running a helper program"));
+ break;
+ default:
+ break;
+Index: qtnx-0.9/nxparsexml.cpp
+===================================================================
+--- qtnx-0.9.orig/nxparsexml.cpp 2008-10-14 10:11:40.000000000 +0200
++++ qtnx-0.9/nxparsexml.cpp 2008-10-14 14:02:04.000000000 +0200
+@@ -133,6 +133,36 @@
+ sessionData->fullscreen = false;
+ }
+
++ if (attributes.value("key") == "Use Proxy") {
++ if (attributes.value("value") == "True")
++ sessionData->useProxy = true;
++ else
++ sessionData->useProxy = false;
++ }
++
++ if (attributes.value("key") == "Proxy Host") {
++ sessionData->proxyHost = attributes.value("value").toStdString();
++ }
++
++ if (attributes.value("key") == "Proxy Port") {
++ sessionData->proxyPort = attributes.value("value").toInt();
++ }
++
++ if (attributes.value("key") == "Use Proxy Authentication") {
++ if (attributes.value("value") == "True")
++ sessionData->proxyAuthenticated = true;
++ else
++ sessionData->proxyAuthenticated = false;
++ }
++
++ if (attributes.value("key") == "Proxy Username") {
++ sessionData->proxyUser = attributes.value("value").toStdString();
++ }
++
++ if (attributes.value("key") == "Proxy Password") {
++ sessionData->proxyPass = attributes.value("value").toStdString();
++ }
++
+ return true;
+ }
+
+Index: qtnx-0.9/nxwritexml.cpp
+===================================================================
+--- qtnx-0.9.orig/nxwritexml.cpp 2008-10-14 10:11:40.000000000 +0200
++++ qtnx-0.9/nxwritexml.cpp 2008-10-14 14:02:04.000000000 +0200
+@@ -130,6 +130,36 @@
+ xml << "<option key=\"Use SSL Tunnelling\" value=\"False\">" <<
+ "</option>\n";
+
++ if (sessionData.useProxy == true)
++ xml << "<option key=\"Use Proxy\" value=\"True\">" <<
++ "</option>\n";
++ else
++ xml << "<option key=\"Use Proxy\" value=\"False\">" <<
++ "</option>\n";
++
++ xml << "<option key=\"Proxy Host\" value=\"" <<
++ escape(QString::fromStdString(sessionData.proxyHost)) <<
++ "\"></option>\n";
++
++ xml << "<option key=\"Proxy Port\" value=\"" <<
++ escape(QString::number(sessionData.proxyPort)) <<
++ "\"></option>\n";
++
++ if (sessionData.proxyAuthenticated == true)
++ xml << "<option key=\"Use Proxy Authentication\" value=\"True\">" <<
++ "</option>\n";
++ else
++ xml << "<option key=\"Use Proxy Authentication\" value=\"False\">" <<
++ "</option>\n";
++
++ xml << "<option key=\"Proxy Username\" value=\"" <<
++ escape(QString::fromStdString(sessionData.proxyUser)) <<
++ "\"></option>\n";
++
++ xml << "<option key=\"Proxy Password\" value=\"" <<
++ escape(QString::fromStdString(sessionData.proxyPass)) <<
++ "\"></option>\n";
++
+ if (sessionData.fullscreen == true)
+ xml << "<option key=\"Enable Fullscreen Desktop\" value=\"True\">" <<
+ "</option>\n";
+Index: qtnx-0.9/qtnxwindow.h
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.h 2008-10-14 10:11:40.000000000 +0200
++++ qtnx-0.9/qtnxwindow.h 2008-10-14 10:43:03.000000000 +0200
+@@ -126,11 +126,13 @@
+
+ // Decided to split up the code
+ void setupUI();
++ void parseXML();
+ void setDefaultData();
+ void initialiseClient();
+- void parseXML();
+ void reinitialiseClient();
+
++ QString keyboardLayout();
++
+ int getWidth();
+ int getHeight();
+ int getDepth();
+@@ -160,4 +162,5 @@
+
+ QString binaryPath;
+ };
++
+ #endif
+Index: qtnx-0.9/settingsdialog.ui
+===================================================================
+--- qtnx-0.9.orig/settingsdialog.ui 2008-10-14 10:43:02.000000000 +0200
++++ qtnx-0.9/settingsdialog.ui 2008-10-14 14:02:04.000000000 +0200
+@@ -5,8 +5,8 @@
+ <rect>
+ <x>0</x>
+ <y>0</y>
+- <width>480</width>
+- <height>543</height>
++ <width>454</width>
++ <height>559</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+@@ -15,13 +15,7 @@
+ <property name="modal" >
+ <bool>true</bool>
+ </property>
+- <layout class="QVBoxLayout" >
+- <property name="spacing" >
+- <number>6</number>
+- </property>
+- <property name="margin" >
+- <number>9</number>
+- </property>
++ <layout class="QVBoxLayout" name="verticalLayout_3" >
+ <item>
+ <widget class="QScrollArea" name="scrollArea" >
+ <property name="widgetResizable" >
+@@ -32,13 +26,25 @@
+ <rect>
+ <x>0</x>
+ <y>0</y>
+- <width>458</width>
+- <height>521</height>
++ <width>432</width>
++ <height>501</height>
+ </rect>
+ </property>
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Maximum" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <widget class="QTabWidget" name="layoutTabs" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Expanding" hsizetype="Maximum" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+@@ -46,548 +52,564 @@
+ <attribute name="title" >
+ <string>Basic</string>
+ </attribute>
+- <layout class="QVBoxLayout" name="_2" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QGroupBox" name="generalGroup" >
++ <property name="geometry" >
++ <rect>
++ <x>9</x>
++ <y>9</y>
++ <width>391</width>
++ <height>72</height>
++ </rect>
+ </property>
+- <property name="margin" >
+- <number>9</number>
++ <property name="title" >
++ <string>General</string>
+ </property>
+- <item>
+- <widget class="QGroupBox" name="generalGroup" >
+- <property name="title" >
+- <string>General</string>
+- </property>
+- <layout class="QVBoxLayout" name="_3" >
++ <layout class="QVBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>9</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="margin" >
+- <number>9</number>
++ <number>0</number>
+ </property>
+ <item>
+- <layout class="QHBoxLayout" name="_4" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QLabel" name="sessionNameLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>Session Name:</string>
+ </property>
+- <item>
+- <widget class="QLabel" name="sessionNameLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Session Name:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QLineEdit" name="sessionName" />
+- </item>
+- </layout>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="sessionName" />
+ </item>
+ </layout>
+- </widget>
+- </item>
+- <item>
+- <widget class="QGroupBox" name="serverGroup" >
+- <property name="title" >
+- <string>Server</string>
+- </property>
+- <layout class="QVBoxLayout" name="_5" >
++ </item>
++ </layout>
++ </widget>
++ <widget class="QGroupBox" name="serverGroup" >
++ <property name="geometry" >
++ <rect>
++ <x>9</x>
++ <y>87</y>
++ <width>391</width>
++ <height>106</height>
++ </rect>
++ </property>
++ <property name="title" >
++ <string>Server</string>
++ </property>
++ <layout class="QVBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>9</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="margin" >
+- <number>9</number>
++ <number>0</number>
+ </property>
+ <item>
+- <layout class="QHBoxLayout" name="_6" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QLabel" name="hostnameLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>Hostname:</string>
+ </property>
+- <item>
+- <widget class="QLabel" name="hostnameLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Hostname:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QLineEdit" name="hostname" />
+- </item>
+- <item>
+- <widget class="QLabel" name="portLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Port:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QSpinBox" name="port" >
+- <property name="minimum" >
+- <number>1</number>
+- </property>
+- <property name="maximum" >
+- <number>65535</number>
+- </property>
+- <property name="value" >
+- <number>22</number>
+- </property>
+- </widget>
+- </item>
+- </layout>
++ </widget>
+ </item>
+ <item>
+- <layout class="QHBoxLayout" name="_7" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QLineEdit" name="hostname" />
++ </item>
++ <item>
++ <widget class="QLabel" name="portLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>Port:</string>
+ </property>
+- <item>
+- <widget class="QCheckBox" name="defaultKey" >
+- <property name="text" >
+- <string>Use default key</string>
+- </property>
+- <property name="checked" >
+- <bool>true</bool>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QPushButton" name="setAuthKeyButton" >
+- <property name="enabled" >
+- <bool>false</bool>
+- </property>
+- <property name="text" >
+- <string>&amp;Set Authentication Key...</string>
+- </property>
+- </widget>
+- </item>
+- </layout>
++ </widget>
++ </item>
++ <item>
++ <widget class="QSpinBox" name="port" >
++ <property name="minimum" >
++ <number>1</number>
++ </property>
++ <property name="maximum" >
++ <number>65535</number>
++ </property>
++ <property name="value" >
++ <number>22</number>
++ </property>
++ </widget>
+ </item>
+ </layout>
+- </widget>
+- </item>
+- <item>
+- <widget class="QGroupBox" name="desktopGroup" >
+- <property name="title" >
+- <string>Desktop</string>
+- </property>
+- <layout class="QVBoxLayout" name="_8" >
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="margin" >
+- <number>9</number>
++ <number>0</number>
+ </property>
+ <item>
+- <layout class="QHBoxLayout" name="_9" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QCheckBox" name="defaultKey" >
++ <property name="text" >
++ <string>Use default key</string>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="checked" >
++ <bool>true</bool>
+ </property>
+- <item>
+- <widget class="QLabel" name="platformLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Platform:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QComboBox" name="platform" >
+- <item>
+- <property name="text" >
+- <string>UNIX</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>Windows</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>VNC Proxy</string>
+- </property>
+- </item>
+- </widget>
+- </item>
+- <item>
+- <widget class="QLabel" name="typeLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Type:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QComboBox" name="type" >
+- <item>
+- <property name="text" >
+- <string>KDE</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>GNOME</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>CDE</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>XDM</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>Custom</string>
+- </property>
+- </item>
+- </widget>
+- </item>
+- <item>
+- <widget class="QLabel" name="linkLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Link:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QComboBox" name="link" >
+- <item>
+- <property name="text" >
+- <string>Modem</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>ISDN</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>ADSL</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>WAN</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>LAN</string>
+- </property>
+- </item>
+- </widget>
+- </item>
+- </layout>
++ </widget>
+ </item>
+ <item>
+- <layout class="QHBoxLayout" name="_10" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QPushButton" name="setAuthKeyButton" >
++ <property name="enabled" >
++ <bool>false</bool>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>&amp;Set Authentication Key...</string>
+ </property>
+- <item>
+- <spacer>
+- <property name="orientation" >
+- <enum>Qt::Horizontal</enum>
+- </property>
+- <property name="sizeHint" stdset="0" >
+- <size>
+- <width>173</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </item>
+- <item>
+- <widget class="QPushButton" name="desktopSettingButton" >
+- <property name="enabled" >
+- <bool>false</bool>
+- </property>
+- <property name="text" >
+- <string>&amp;Settings...</string>
+- </property>
+- </widget>
+- </item>
+- </layout>
++ </widget>
+ </item>
+ </layout>
+- </widget>
+- </item>
+- <item>
+- <widget class="QGroupBox" name="groupBox" >
+- <property name="title" >
+- <string>Geometry</string>
+- </property>
+- <layout class="QVBoxLayout" name="_11" >
++ </item>
++ </layout>
++ </widget>
++ <widget class="QGroupBox" name="desktopGroup" >
++ <property name="geometry" >
++ <rect>
++ <x>9</x>
++ <y>199</y>
++ <width>391</width>
++ <height>105</height>
++ </rect>
++ </property>
++ <property name="title" >
++ <string>Desktop</string>
++ </property>
++ <layout class="QVBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>9</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <property name="margin" >
+- <number>9</number>
++ <number>0</number>
+ </property>
+ <item>
+- <layout class="QHBoxLayout" name="_12" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QLabel" name="platformLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>Platform:</string>
+ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QComboBox" name="platform" >
+ <item>
+- <widget class="QLabel" name="resolutionLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Resolution:</string>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>UNIX</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QComboBox" name="resolution" >
+- <item>
+- <property name="text" >
+- <string>640x480</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>800x600</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>1024x768</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>Fullscreen</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>Custom</string>
+- </property>
+- </item>
+- </widget>
++ <property name="text" >
++ <string>Windows</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QLabel" name="compressionLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Compression:</string>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>VNC Proxy</string>
++ </property>
+ </item>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLabel" name="typeLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="text" >
++ <string>Type:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QComboBox" name="type" >
+ <item>
+- <widget class="QComboBox" name="imageCompressionType" >
+- <item>
+- <property name="text" >
+- <string>PNG</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>JPEG</string>
+- </property>
+- </item>
+- <item>
+- <property name="text" >
+- <string>Raw X11</string>
+- </property>
+- </item>
+- </widget>
++ <property name="text" >
++ <string>KDE</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>GNOME</string>
++ </property>
+ </item>
+- </layout>
++ <item>
++ <property name="text" >
++ <string>CDE</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>XDM</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>Custom</string>
++ </property>
++ </item>
++ </widget>
+ </item>
+ <item>
+- <layout class="QHBoxLayout" name="_13" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QLabel" name="linkLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>Link:</string>
+ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QComboBox" name="link" >
+ <item>
+- <widget class="QLabel" name="qualityLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>JPEG Quality:</string>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>Modem</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QSlider" name="imageQualityLevel" >
+- <property name="enabled" >
+- <bool>false</bool>
+- </property>
+- <property name="minimum" >
+- <number>1</number>
+- </property>
+- <property name="maximum" >
+- <number>9</number>
+- </property>
+- <property name="pageStep" >
+- <number>9</number>
+- </property>
+- <property name="value" >
+- <number>6</number>
+- </property>
+- <property name="orientation" >
+- <enum>Qt::Horizontal</enum>
+- </property>
+- <property name="tickPosition" >
+- <enum>QSlider::TicksBelow</enum>
+- </property>
+- <property name="tickInterval" >
+- <number>1</number>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>ISDN</string>
++ </property>
+ </item>
+- </layout>
++ <item>
++ <property name="text" >
++ <string>ADSL</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>WAN</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>LAN</string>
++ </property>
++ </item>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>0</number>
++ </property>
++ <item>
++ <spacer>
++ <property name="orientation" >
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeHint" stdset="0" >
++ <size>
++ <width>173</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
+ </item>
+ <item>
+- <layout class="QHBoxLayout" name="_14" >
+- <property name="spacing" >
+- <number>6</number>
++ <widget class="QPushButton" name="desktopSettingButton" >
++ <property name="enabled" >
++ <bool>false</bool>
+ </property>
+- <property name="margin" >
+- <number>0</number>
++ <property name="text" >
++ <string>&amp;Settings...</string>
+ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ <widget class="QGroupBox" name="groupBox" >
++ <property name="geometry" >
++ <rect>
++ <x>9</x>
++ <y>310</y>
++ <width>391</width>
++ <height>133</height>
++ </rect>
++ </property>
++ <property name="title" >
++ <string>Geometry</string>
++ </property>
++ <layout class="QVBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>9</number>
++ </property>
++ <item>
++ <layout class="QHBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QLabel" name="resolutionLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="text" >
++ <string>Resolution:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QComboBox" name="resolution" >
+ <item>
+- <widget class="QCheckBox" name="render" >
+- <property name="text" >
+- <string>Use RENDER Extension</string>
+- </property>
+- <property name="checked" >
+- <bool>true</bool>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>640x480</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QLabel" name="widthLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Width:</string>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>800x600</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QSpinBox" name="width" >
+- <property name="enabled" >
+- <bool>false</bool>
+- </property>
+- <property name="maximum" >
+- <number>9999</number>
+- </property>
+- <property name="value" >
+- <number>800</number>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>1024x768</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QLabel" name="heightLabel" >
+- <property name="sizePolicy" >
+- <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+- <horstretch>0</horstretch>
+- <verstretch>0</verstretch>
+- </sizepolicy>
+- </property>
+- <property name="text" >
+- <string>Height:</string>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>Fullscreen</string>
++ </property>
+ </item>
+ <item>
+- <widget class="QSpinBox" name="height" >
+- <property name="enabled" >
+- <bool>false</bool>
+- </property>
+- <property name="maximum" >
+- <number>9999</number>
+- </property>
+- <property name="value" >
+- <number>600</number>
+- </property>
+- </widget>
++ <property name="text" >
++ <string>Custom</string>
++ </property>
+ </item>
+- </layout>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLabel" name="compressionLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="text" >
++ <string>Compression:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QComboBox" name="imageCompressionType" >
++ <item>
++ <property name="text" >
++ <string>PNG</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>JPEG</string>
++ </property>
++ </item>
++ <item>
++ <property name="text" >
++ <string>Raw X11</string>
++ </property>
++ </item>
++ </widget>
+ </item>
+ </layout>
+- </widget>
+- </item>
+- </layout>
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QLabel" name="qualityLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="text" >
++ <string>JPEG Quality:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QSlider" name="imageQualityLevel" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ <property name="minimum" >
++ <number>1</number>
++ </property>
++ <property name="maximum" >
++ <number>9</number>
++ </property>
++ <property name="pageStep" >
++ <number>9</number>
++ </property>
++ <property name="value" >
++ <number>6</number>
++ </property>
++ <property name="orientation" >
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="tickPosition" >
++ <enum>QSlider::TicksBelow</enum>
++ </property>
++ <property name="tickInterval" >
++ <number>1</number>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
++ <property name="spacing" >
++ <number>6</number>
++ </property>
++ <property name="margin" >
++ <number>0</number>
++ </property>
++ <item>
++ <widget class="QCheckBox" name="render" >
++ <property name="text" >
++ <string>Use RENDER Extension</string>
++ </property>
++ <property name="checked" >
++ <bool>true</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLabel" name="widthLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="text" >
++ <string>Width:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QSpinBox" name="width" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ <property name="maximum" >
++ <number>9999</number>
++ </property>
++ <property name="value" >
++ <number>800</number>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLabel" name="heightLabel" >
++ <property name="sizePolicy" >
++ <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++ <horstretch>0</horstretch>
++ <verstretch>0</verstretch>
++ </sizepolicy>
++ </property>
++ <property name="text" >
++ <string>Height:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QSpinBox" name="height" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ <property name="maximum" >
++ <number>9999</number>
++ </property>
++ <property name="value" >
++ <number>600</number>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
+ </widget>
+ <widget class="QWidget" name="advancedTab" >
+ <attribute name="title" >
+@@ -599,22 +621,24 @@
+ <property name="title" >
+ <string>Network</string>
+ </property>
+- <widget class="QCheckBox" name="encryption" >
+- <property name="geometry" >
+- <rect>
+- <x>11</x>
+- <y>28</y>
+- <width>396</width>
+- <height>22</height>
+- </rect>
+- </property>
+- <property name="text" >
+- <string>Use SSH Tunneling</string>
++ <layout class="QVBoxLayout" name="_2" >
++ <property name="spacing" >
++ <number>6</number>
+ </property>
+- <property name="checked" >
+- <bool>true</bool>
++ <property name="margin" >
++ <number>9</number>
+ </property>
+- </widget>
++ <item>
++ <widget class="QCheckBox" name="encryption" >
++ <property name="text" >
++ <string>Use SSH Tunneling</string>
++ </property>
++ <property name="checked" >
++ <bool>true</bool>
++ </property>
++ </widget>
++ </item>
++ </layout>
+ </widget>
+ </item>
+ <item>
+@@ -622,7 +646,7 @@
+ <property name="title" >
+ <string>Cache</string>
+ </property>
+- <layout class="QVBoxLayout" name="_17" >
++ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+@@ -630,7 +654,7 @@
+ <number>9</number>
+ </property>
+ <item>
+- <layout class="QHBoxLayout" name="_18" >
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+@@ -703,13 +727,13 @@
+ </widget>
+ </item>
+ <item>
+- <widget class="QGroupBox" name="groupBox_2" >
++ <widget class="QGroupBox" name="keyboardGroup" >
+ <property name="title" >
+ <string>Keyboard</string>
+ </property>
+- <layout class="QHBoxLayout" name="horizontalLayout" >
++ <layout class="QHBoxLayout" >
+ <item>
+- <layout class="QHBoxLayout" name="_21" >
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+@@ -746,7 +770,7 @@
+ </layout>
+ </item>
+ <item>
+- <layout class="QHBoxLayout" name="_22" >
++ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+@@ -789,7 +813,7 @@
+ </layout>
+ </item>
+ <item>
+- <spacer name="horizontalSpacer" >
++ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+@@ -805,7 +829,126 @@
+ </widget>
+ </item>
+ <item>
+- <spacer>
++ <widget class="QGroupBox" name="proxyGroup" >
++ <property name="title" >
++ <string>Proxy Settings</string>
++ </property>
++ <layout class="QHBoxLayout" >
++ <item>
++ <layout class="QVBoxLayout" >
++ <item>
++ <widget class="QCheckBox" name="useProxy" >
++ <property name="text" >
++ <string>Use proxy to connect</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
++ <item>
++ <widget class="QLabel" name="label_4" >
++ <property name="text" >
++ <string>Hostname:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="proxyHost" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
++ <item>
++ <widget class="QLabel" name="label_3" >
++ <property name="text" >
++ <string>Port:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QSpinBox" name="proxyPort" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ <property name="maximum" >
++ <number>32768</number>
++ </property>
++ <property name="value" >
++ <number>8080</number>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QVBoxLayout" >
++ <item>
++ <widget class="QCheckBox" name="proxyAuthenticated" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ <property name="text" >
++ <string>Proxy requires authentication</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <layout class="QHBoxLayout" >
++ <item>
++ <layout class="QVBoxLayout" >
++ <item>
++ <widget class="QLabel" name="label" >
++ <property name="text" >
++ <string>Username:</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLabel" name="label_2" >
++ <property name="text" >
++ <string>Password:</string>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ <item>
++ <layout class="QVBoxLayout" >
++ <item>
++ <widget class="QLineEdit" name="proxyUser" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QLineEdit" name="proxyPass" >
++ <property name="enabled" >
++ <bool>false</bool>
++ </property>
++ <property name="echoMode" >
++ <enum>QLineEdit::Password</enum>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </item>
++ </layout>
++ </widget>
++ </item>
++ <item>
++ <spacer name="verticalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+@@ -821,63 +964,60 @@
+ </widget>
+ </widget>
+ </item>
+- <item>
+- <layout class="QHBoxLayout" name="bottomLayout" >
+- <property name="spacing" >
+- <number>6</number>
+- </property>
+- <property name="margin" >
+- <number>0</number>
+- </property>
+- <item>
+- <widget class="QPushButton" name="cancelButton" >
+- <property name="text" >
+- <string>&amp;Cancel</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <spacer name="spacer" >
+- <property name="orientation" >
+- <enum>Qt::Horizontal</enum>
+- </property>
+- <property name="sizeHint" stdset="0" >
+- <size>
+- <width>40</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </item>
+- <item>
+- <widget class="QPushButton" name="okButton" >
+- <property name="text" >
+- <string>&amp;OK</string>
+- </property>
+- <property name="autoDefault" >
+- <bool>false</bool>
+- </property>
+- <property name="default" >
+- <bool>true</bool>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QPushButton" name="applyButton" >
+- <property name="text" >
+- <string>&amp;Apply</string>
+- </property>
+- <property name="autoDefault" >
+- <bool>false</bool>
+- </property>
+- </widget>
+- </item>
+- </layout>
+- </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
++ <item>
++ <layout class="QHBoxLayout" name="horizontalLayout" >
++ <property name="sizeConstraint" >
++ <enum>QLayout::SetMinimumSize</enum>
++ </property>
++ <item>
++ <widget class="QPushButton" name="cancelButton" >
++ <property name="text" >
++ <string>&amp;Cancel</string>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <spacer>
++ <property name="orientation" >
++ <enum>Qt::Horizontal</enum>
++ </property>
++ <property name="sizeHint" stdset="0" >
++ <size>
++ <width>40</width>
++ <height>20</height>
++ </size>
++ </property>
++ </spacer>
++ </item>
++ <item>
++ <widget class="QPushButton" name="okButton" >
++ <property name="text" >
++ <string>&amp;OK</string>
++ </property>
++ <property name="autoDefault" >
++ <bool>false</bool>
++ </property>
++ <property name="default" >
++ <bool>true</bool>
++ </property>
++ </widget>
++ </item>
++ <item>
++ <widget class="QPushButton" name="applyButton" >
++ <property name="text" >
++ <string>&amp;Apply</string>
++ </property>
++ <property name="autoDefault" >
++ <bool>false</bool>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
+ </layout>
+ </widget>
+ <resources/>