qtnx: add my latets patches from the n810 work
authorwoglinde <heinold@inf.fu-berlin.de>
Thu, 27 Nov 2008 21:54:56 +0000 (22:54 +0100)
committerwoglinde <heinold@inf.fu-berlin.de>
Thu, 27 Nov 2008 21:54:56 +0000 (22:54 +0100)
* add patch for keychoose dialog
* integrate the stuff from the dodnx fork
  including the nxssh-proxy support
* add patch for choosing the keyboard
* add patch for delete session files
* bump PR
* add patch for detecting ssh dns errors

packages/qtnx/files/dodnx.patch [new file with mode: 0644]
packages/qtnx/files/keychooser.patch [new file with mode: 0644]
packages/qtnx/files/keymap.patch [new file with mode: 0644]
packages/qtnx/files/pro.patch
packages/qtnx/files/scroll.patch
packages/qtnx/files/sessionfiles.patch [new file with mode: 0644]
packages/qtnx/files/ssh_dnserror.patch [new file with mode: 0644]
packages/qtnx/qtnx.inc

diff --git a/packages/qtnx/files/dodnx.patch b/packages/qtnx/files/dodnx.patch
new file mode 100644 (file)
index 0000000..6c2a7e5
--- /dev/null
@@ -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/>
diff --git a/packages/qtnx/files/keychooser.patch b/packages/qtnx/files/keychooser.patch
new file mode 100644 (file)
index 0000000..5fed725
--- /dev/null
@@ -0,0 +1,126 @@
+Index: qtnx-0.9/qtnxwindow.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.cpp       2008-10-14 10:43:03.000000000 +0200
++++ qtnx-0.9/qtnxwindow.cpp    2008-10-14 10:43:03.000000000 +0200
+@@ -304,6 +304,7 @@
+ void QtNXWindow::startConnect()
+ {
+     string key = "";
++    string publicKey = "/usr/share/qtnx/id.key";
+     if (ui_lg.session->currentText() == tr("Create new session")) {
+         QMessageBox::critical(this, tr("Unconfigured"),
+@@ -345,11 +346,14 @@
+     else if (ui_lg.link->currentText() == tr("LAN"))
+         session.linkType = "lan";
+-    if (!config.key.empty()) {
+-        key = config.key;
++    if (!config.publicKey.empty()) {
++        publicKey = config.publicKey;
+         session.key = "supplied";
+     } else
++    {
+         session.key = "default";
++      publicKey = "/usr/share/qtnx/id.key";
++    }
+     if (config.sessionType == "unix-application")
+         session.customCommand = config.customCommand;
+@@ -365,13 +369,12 @@
+     m_NXClient->setDepth(getDepth());
+-    QString keyPath = "/usr/share/qtnx/id.key";
+ #ifdef Q_WS_MAC
+-    keyPath = binaryPath + "/id.key";
++    publicKey = binaryPath + "/id.key";
+ #endif
+-    m_NXClient->invokeNXSSH(keyPath.toStdString(), config.serverHost, config.encryption, "",
++    m_NXClient->invokeNXSSH(publicKey, config.serverHost, config.encryption, "",
+             config.serverPort);
+     processProbe->start(30);
+Index: qtnx-0.9/qtnxsettings.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxsettings.cpp     2008-10-14 10:43:03.000000000 +0200
++++ qtnx-0.9/qtnxsettings.cpp  2008-10-14 10:43:03.000000000 +0200
+@@ -17,6 +17,7 @@
+ #include <QFile>
+ #include <QDir>
++#include <QFileDialog>
+ #include "qtnxsettings.h"
+@@ -82,7 +83,7 @@
+         ui_sd.hostname->setText(QString::fromStdString(config.serverHost));
+         ui_sd.port->setValue(config.serverPort);
+-        if (config.key.empty())
++        if (config.publicKey.empty())
+             ui_sd.defaultKey->setChecked(true);
+         else {
+             ui_sd.defaultKey->setChecked(false);
+@@ -221,7 +222,7 @@
+ void QtNXSettings::keyChanged(int state)
+ {
+     if (state == Qt::Checked) {
+-        config.key = "";
++        config.publicKey = "";
+         ui_sd.setAuthKeyButton->setEnabled(false);
+     } else
+         ui_sd.setAuthKeyButton->setEnabled(true);
+@@ -265,15 +266,11 @@
+ void QtNXSettings::authKeyPressed()
+ {
+-    keyDialog = 0;
+-    delete keyDialog;
+-    keyDialog = new QDialog(this);
+-    ui_kd.setupUi(keyDialog);
+-    keyDialog->show();
+-    QTextDocument *doc_key = new QTextDocument(QString::fromStdString(config.key));
+-    ui_kd.key->setDocument(doc_key);
+-
+-    connect(keyDialog, SIGNAL(accepted()), this, SLOT(keyDialogAccept()));
++      QString publicKey = QFileDialog::getOpenFileName(this,
++                                                       tr("Open File"),
++                                                       ".qtnx",
++                                                       tr("Keyfiles (*.key )"));
++      config.publicKey = publicKey.toStdString();
+ }
+ void QtNXSettings::keyDialogAccept()
+Index: qtnx-0.9/nxwritexml.cpp
+===================================================================
+--- qtnx-0.9.orig/nxwritexml.cpp       2008-10-14 10:43:03.000000000 +0200
++++ qtnx-0.9/nxwritexml.cpp    2008-10-14 10:43:03.000000000 +0200
+@@ -123,6 +123,10 @@
+         escape(QString::fromStdString(sessionData.key)) <<
+         "\"></option>\n";
++    xml << "<option key=\"Public Authentication Key\" value=\"" <<
++        escape(QString::fromStdString(sessionData.publicKey)) <<
++        "\"></option>\n";
++
+     if (sessionData.encryption == true)
+         xml << "<option key=\"Use SSL Tunnelling\" value=\"True\">" <<
+             "</option>\n";
+Index: qtnx-0.9/nxparsexml.cpp
+===================================================================
+--- qtnx-0.9.orig/nxparsexml.cpp       2008-10-14 10:43:03.000000000 +0200
++++ qtnx-0.9/nxparsexml.cpp    2008-10-14 10:43:03.000000000 +0200
+@@ -119,6 +119,10 @@
+         sessionData->key = attributes.value("value").toStdString();
+     }
++    if (attributes.value("key") == "Public Authentication Key") {
++        sessionData->publicKey = attributes.value("value").toStdString();
++    }
++
+     if (attributes.value("key") == "Use SSL Tunnelling") {
+         if (attributes.value("value") == "True")
+             sessionData->encryption = true;
diff --git a/packages/qtnx/files/keymap.patch b/packages/qtnx/files/keymap.patch
new file mode 100644 (file)
index 0000000..ed37a23
--- /dev/null
@@ -0,0 +1,283 @@
+Index: qtnx-0.9/qtnxwindow.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.cpp       2008-10-13 14:35:29.000000000 +0200
++++ qtnx-0.9/qtnxwindow.cpp    2008-10-13 14:35:33.000000000 +0200
+@@ -315,8 +315,8 @@
+     session.imageCompressionMethod = config.imageCompressionMethod;
+     session.imageCompressionLevel = config.imageCompressionLevel;
+     session.geometry = config.geometry;
+-    session.keyboard = "defkeymap";
+-    session.kbtype = "pc102/defkeymap";
++    session.keyboard = config.keyboard;
++    session.kbtype = config.kbtype;
+     session.media = config.media;
+     session.agentServer = config.agentServer;
+     session.agentUser = config.agentUser;
+Index: qtnx-0.9/settingsdialog.ui
+===================================================================
+--- qtnx-0.9.orig/settingsdialog.ui    2008-10-13 14:35:32.000000000 +0200
++++ qtnx-0.9/settingsdialog.ui 2008-10-13 14:35:33.000000000 +0200
+@@ -43,14 +43,6 @@
+           <number>0</number>
+          </property>
+          <widget class="QWidget" name="basicTab" >
+-          <property name="geometry" >
+-           <rect>
+-            <x>0</x>
+-            <y>0</y>
+-            <width>436</width>
+-            <height>439</height>
+-           </rect>
+-          </property>
+           <attribute name="title" >
+            <string>Basic</string>
+           </attribute>
+@@ -598,47 +590,31 @@
+           </layout>
+          </widget>
+          <widget class="QWidget" name="advancedTab" >
+-          <property name="geometry" >
+-           <rect>
+-            <x>0</x>
+-            <y>0</y>
+-            <width>624</width>
+-            <height>496</height>
+-           </rect>
+-          </property>
+           <attribute name="title" >
+            <string>Advanced</string>
+           </attribute>
+-          <layout class="QVBoxLayout" name="_15" >
+-           <property name="spacing" >
+-            <number>6</number>
+-           </property>
+-           <property name="margin" >
+-            <number>9</number>
+-           </property>
++          <layout class="QVBoxLayout" name="verticalLayout_2" >
+            <item>
+             <widget class="QGroupBox" name="networkGroup" >
+              <property name="title" >
+               <string>Network</string>
+              </property>
+-             <layout class="QVBoxLayout" name="_16" >
+-              <property name="spacing" >
+-               <number>6</number>
++             <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="margin" >
+-               <number>9</number>
++              <property name="text" >
++               <string>Use SSH Tunneling</string>
+               </property>
+-              <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>
++              <property name="checked" >
++               <bool>true</bool>
++              </property>
++             </widget>
+             </widget>
+            </item>
+            <item>
+@@ -727,6 +703,108 @@
+             </widget>
+            </item>
+            <item>
++            <widget class="QGroupBox" name="groupBox_2" >
++             <property name="title" >
++              <string>Keyboard</string>
++             </property>
++             <layout class="QHBoxLayout" name="horizontalLayout" >
++              <item>
++               <layout class="QHBoxLayout" name="_21" >
++                <property name="spacing" >
++                 <number>6</number>
++                </property>
++                <property name="margin" >
++                 <number>0</number>
++                </property>
++                <item>
++                 <widget class="QLabel" name="keyboardLabel" >
++                  <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="keyboard" >
++                  <item>
++                   <property name="text" >
++                    <string>Standard</string>
++                   </property>
++                  </item>
++                  <item>
++                   <property name="text" >
++                    <string>Nokia N810</string>
++                   </property>
++                  </item>
++                 </widget>
++                </item>
++               </layout>
++              </item>
++              <item>
++               <layout class="QHBoxLayout" name="_22" >
++                <property name="spacing" >
++                 <number>6</number>
++                </property>
++                <property name="margin" >
++                 <number>0</number>
++                </property>
++                <item>
++                 <widget class="QLabel" name="languageLabel" >
++                  <property name="enabled" >
++                   <bool>true</bool>
++                  </property>
++                  <property name="sizePolicy" >
++                   <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
++                    <horstretch>0</horstretch>
++                    <verstretch>0</verstretch>
++                   </sizepolicy>
++                  </property>
++                  <property name="text" >
++                   <string>Language:</string>
++                  </property>
++                 </widget>
++                </item>
++                <item>
++                 <widget class="QComboBox" name="language" >
++                  <property name="enabled" >
++                   <bool>false</bool>
++                  </property>
++                  <item>
++                   <property name="text" >
++                    <string>de</string>
++                   </property>
++                  </item>
++                  <item>
++                   <property name="text" >
++                    <string>us</string>
++                   </property>
++                  </item>
++                 </widget>
++                </item>
++               </layout>
++              </item>
++              <item>
++               <spacer name="horizontalSpacer" >
++                <property name="orientation" >
++                 <enum>Qt::Horizontal</enum>
++                </property>
++                <property name="sizeHint" stdset="0" >
++                 <size>
++                  <width>40</width>
++                  <height>20</height>
++                 </size>
++                </property>
++               </spacer>
++              </item>
++             </layout>
++            </widget>
++           </item>
++           <item>
+             <spacer>
+              <property name="orientation" >
+               <enum>Qt::Vertical</enum>
+Index: qtnx-0.9/qtnxsettings.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxsettings.cpp     2008-10-13 14:07:34.000000000 +0200
++++ qtnx-0.9/qtnxsettings.cpp  2008-10-13 14:36:44.000000000 +0200
+@@ -43,6 +43,7 @@
+     connect(ui_sd.resolution, SIGNAL(currentIndexChanged(QString)), this, SLOT(resolutionChanged(QString)));
+     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.applyButton, SIGNAL(pressed()), this, SLOT(applyPressed()));
+     connect(ui_sd.okButton, SIGNAL(pressed()), this, SLOT(okPressed()));
+@@ -78,6 +79,16 @@
+             ui_sd.setAuthKeyButton->setEnabled(true);
+         }
++      if (config.keyboard == "defkeymap")
++      {
++          ui_sd.keyboard->setCurrentIndex(ui_sd.keyboard->findText(tr("Standard")));
++      } else if (QString(config.keyboard.data()).contains("nokiarx44"))
++      {
++          ui_sd.keyboard->setCurrentIndex(ui_sd.keyboard->findText(tr("Nokia N810")));
++          ui_sd.language->setCurrentIndex(ui_sd.language->findText(QString(config.keyboard.data()).right(2)));
++          ui_sd.language->setEnabled(true);
++      }
++
+         if (config.sessionType == "unix-kde") {
+             ui_sd.platform->setCurrentIndex(ui_sd.platform->findText(tr("UNIX")));
+             ui_sd.type->setCurrentIndex(ui_sd.type->findText(tr("KDE")));
+@@ -162,6 +173,15 @@
+     }
+ }
++void QtNXSettings::keyboardChanged(QString text)
++{
++    if (text == tr("Nokia N810")) {
++        ui_sd.language->setEnabled(true);
++    } else {
++        ui_sd.language->setEnabled(false);
++    }
++}
++
+ void QtNXSettings::platformChanged(QString text)
+ {
+ }
+@@ -230,8 +250,17 @@
+     config.serverPort = ui_sd.port->value();
+     // TODO: Add keyboard selection support
+-    config.keyboard = "defkeymap";
+-    config.kbtype = "pc102/defkeymap";
++
++    if (ui_sd.keyboard->currentText() == tr("Standard"))
++    {
++      config.keyboard = "defkeymap";
++      config.kbtype = "pc102/defkeymap";
++    } else if (ui_sd.keyboard->currentText() == tr("Nokia N810"))
++    {
++      config.keyboard =
++              "nokiarx44/" + ui_sd.language->currentText().toStdString();
++      config.kbtype = config.keyboard;
++    }
+     if (ui_sd.platform->currentText() == tr("UNIX")) {
+         if (ui_sd.type->currentText() == tr("KDE"))
+Index: qtnx-0.9/qtnxsettings.h
+===================================================================
+--- qtnx-0.9.orig/qtnxsettings.h       2008-10-13 14:07:34.000000000 +0200
++++ qtnx-0.9/qtnxsettings.h    2008-10-13 14:35:33.000000000 +0200
+@@ -38,6 +38,7 @@
+             void resolutionChanged(QString);
+         void compressionChanged(QString);
+         void platformChanged(QString);
++      void keyboardChanged(QString);
+         void typeChanged(QString);
+         void keyChanged(int);
+         void applyPressed();
index 2e1b10c..c11f39d 100644 (file)
@@ -1,5 +1,3 @@
-patch by Henning Heinold
-
 Index: qtnx-0.9/qtnx.pro
 ===================================================================
 --- qtnx-0.9.orig/qtnx.pro     2008-09-04 11:42:19.000000000 +0200
index 107c717..9fe4ab5 100644 (file)
@@ -1,6 +1,3 @@
-patch by Henning Heinold, so the configure-widget is
-scrollable
-
 Index: qtnx-0.9/settingsdialog.ui
 ===================================================================
 --- qtnx-0.9.orig/settingsdialog.ui    2008-09-03 21:32:51.716503112 +0200
diff --git a/packages/qtnx/files/sessionfiles.patch b/packages/qtnx/files/sessionfiles.patch
new file mode 100644 (file)
index 0000000..f39e29d
--- /dev/null
@@ -0,0 +1,1187 @@
+Index: qtnx-0.9/settingsdialog.ui
+===================================================================
+--- qtnx-0.9.orig/settingsdialog.ui    2008-10-15 14:31:27.000000000 +0200
++++ qtnx-0.9/settingsdialog.ui 2008-10-15 14:31:27.000000000 +0200
+@@ -5,8 +5,8 @@
+    <rect>
+     <x>0</x>
+     <y>0</y>
+-    <width>454</width>
+-    <height>559</height>
++    <width>480</width>
++    <height>570</height>
+    </rect>
+   </property>
+   <property name="windowTitle" >
+@@ -26,8 +26,8 @@
+        <rect>
+         <x>0</x>
+         <y>0</y>
+-        <width>432</width>
+-        <height>501</height>
++        <width>443</width>
++        <height>512</height>
+        </rect>
+       </property>
+       <property name="sizePolicy" >
+@@ -52,570 +52,548 @@
+           <attribute name="title" >
+            <string>Basic</string>
+           </attribute>
+-          <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="title" >
+-            <string>General</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="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>
+-            </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>0</number>
+-              </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>
+-            </item>
+-            <item>
+-             <layout class="QHBoxLayout" >
++          <layout class="QVBoxLayout" name="verticalLayout_2" >
++           <item>
++            <widget class="QGroupBox" name="generalGroup" >
++             <property name="title" >
++              <string>General</string>
++             </property>
++             <layout class="QVBoxLayout" >
+               <property name="spacing" >
+                <number>6</number>
+               </property>
+               <property name="margin" >
+-               <number>0</number>
++               <number>9</number>
+               </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>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>&amp;Set Authentication Key...</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </property>
+-               </widget>
++                <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>
+               </item>
+              </layout>
+-            </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" >
++            </widget>
++           </item>
++           <item>
++            <widget class="QGroupBox" name="serverGroup" >
++             <property name="title" >
++              <string>Server</string>
++             </property>
++             <layout class="QVBoxLayout" >
+               <property name="spacing" >
+                <number>6</number>
+               </property>
+               <property name="margin" >
+-               <number>0</number>
++               <number>9</number>
+               </property>
+               <item>
+-               <widget class="QLabel" name="platformLabel" >
+-                <property name="sizePolicy" >
+-                 <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+-                  <horstretch>0</horstretch>
+-                  <verstretch>0</verstretch>
+-                 </sizepolicy>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>Platform:</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </property>
+-               </widget>
+-              </item>
+-              <item>
+-               <widget class="QComboBox" name="platform" >
+                 <item>
+-                 <property name="text" >
+-                  <string>UNIX</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>Windows</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>VNC Proxy</string>
+-                 </property>
++                 <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>
+-               </widget>
++               </layout>
+               </item>
+               <item>
+-               <widget class="QLabel" name="typeLabel" >
+-                <property name="sizePolicy" >
+-                 <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+-                  <horstretch>0</horstretch>
+-                  <verstretch>0</verstretch>
+-                 </sizepolicy>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>Type:</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </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>
++                 <widget class="QCheckBox" name="defaultKey" >
++                  <property name="text" >
++                   <string>Use default key</string>
++                  </property>
++                  <property name="checked" >
++                   <bool>true</bool>
++                  </property>
++                 </widget>
+                 </item>
+                 <item>
+-                 <property name="text" >
+-                  <string>Custom</string>
+-                 </property>
++                 <widget class="QPushButton" name="setAuthKeyButton" >
++                  <property name="enabled" >
++                   <bool>false</bool>
++                  </property>
++                  <property name="text" >
++                   <string>&amp;Set Authentication Key...</string>
++                  </property>
++                 </widget>
+                 </item>
+-               </widget>
++               </layout>
+               </item>
++             </layout>
++            </widget>
++           </item>
++           <item>
++            <widget class="QGroupBox" name="desktopGroup" >
++             <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>
+-               <widget class="QLabel" name="linkLabel" >
+-                <property name="sizePolicy" >
+-                 <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+-                  <horstretch>0</horstretch>
+-                  <verstretch>0</verstretch>
+-                 </sizepolicy>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>Link:</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </property>
+-               </widget>
+-              </item>
+-              <item>
+-               <widget class="QComboBox" name="link" >
+                 <item>
+-                 <property name="text" >
+-                  <string>Modem</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>ISDN</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>ADSL</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>WAN</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>LAN</string>
+-                 </property>
++                 <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>
+-               </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>
++               </layout>
+               </item>
+               <item>
+-               <widget class="QPushButton" name="desktopSettingButton" >
+-                <property name="enabled" >
+-                 <bool>false</bool>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>&amp;Settings...</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </property>
+-               </widget>
++                <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>
+               </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" >
++            </widget>
++           </item>
++           <item>
++            <widget class="QGroupBox" name="groupBox" >
++             <property name="title" >
++              <string>Geometry</string>
++             </property>
++             <layout class="QVBoxLayout" >
+               <property name="spacing" >
+                <number>6</number>
+               </property>
+               <property name="margin" >
+-               <number>0</number>
++               <number>9</number>
+               </property>
+               <item>
+-               <widget class="QLabel" name="resolutionLabel" >
+-                <property name="sizePolicy" >
+-                 <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+-                  <horstretch>0</horstretch>
+-                  <verstretch>0</verstretch>
+-                 </sizepolicy>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>Resolution:</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </property>
+-               </widget>
+-              </item>
+-              <item>
+-               <widget class="QComboBox" name="resolution" >
+                 <item>
+-                 <property name="text" >
+-                  <string>640x480</string>
+-                 </property>
+-                </item>
+-                <item>
+-                 <property name="text" >
+-                  <string>800x600</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>1024x768</string>
+-                 </property>
++                 <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>
+                 </item>
+                 <item>
+-                 <property name="text" >
+-                  <string>Fullscreen</string>
+-                 </property>
++                 <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>
+-                 <property name="text" >
+-                  <string>Custom</string>
+-                 </property>
++                 <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>
+-               </widget>
++               </layout>
+               </item>
+               <item>
+-               <widget class="QLabel" name="compressionLabel" >
+-                <property name="sizePolicy" >
+-                 <sizepolicy vsizetype="Preferred" hsizetype="Fixed" >
+-                  <horstretch>0</horstretch>
+-                  <verstretch>0</verstretch>
+-                 </sizepolicy>
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
++                 <number>6</number>
+                 </property>
+-                <property name="text" >
+-                 <string>Compression:</string>
++                <property name="margin" >
++                 <number>0</number>
+                 </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>
++                 <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>
+-                 <property name="text" >
+-                  <string>Raw X11</string>
+-                 </property>
++                 <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>
+-               </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>
++               </layout>
+               </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" >
++               <layout class="QHBoxLayout" >
++                <property name="spacing" >
+                  <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 name="margin" >
++                 <number>0</number>
+                 </property>
+-               </widget>
++                <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>
+-            </item>
+-           </layout>
+-          </widget>
++            </widget>
++           </item>
++          </layout>
+          </widget>
+          <widget class="QWidget" name="advancedTab" >
+           <attribute name="title" >
+            <string>Advanced</string>
+           </attribute>
+-          <layout class="QVBoxLayout" name="verticalLayout_2" >
++          <layout class="QVBoxLayout" name="verticalLayout_4" >
+            <item>
+             <widget class="QGroupBox" name="networkGroup" >
+              <property name="title" >
+@@ -948,17 +926,29 @@
+             </widget>
+            </item>
+            <item>
+-            <spacer name="verticalSpacer" >
+-             <property name="orientation" >
+-              <enum>Qt::Vertical</enum>
+-             </property>
+-             <property name="sizeHint" stdset="0" >
+-              <size>
+-               <width>20</width>
+-               <height>40</height>
+-              </size>
++            <widget class="QGroupBox" name="logFilesGroup" >
++             <property name="title" >
++              <string>Sessionfiles</string>
+              </property>
+-            </spacer>
++             <layout class="QVBoxLayout" name="_3" >
++              <property name="spacing" >
++               <number>6</number>
++              </property>
++              <property name="margin" >
++               <number>9</number>
++              </property>
++              <item>
++               <widget class="QCheckBox" name="delSessionfiles" >
++                <property name="text" >
++                 <string>Delete Sessionfiles</string>
++                </property>
++                <property name="checked" >
++                 <bool>true</bool>
++                </property>
++               </widget>
++              </item>
++             </layout>
++            </widget>
+            </item>
+           </layout>
+          </widget>
+Index: qtnx-0.9/nxparsexml.cpp
+===================================================================
+--- qtnx-0.9.orig/nxparsexml.cpp       2008-10-15 14:31:27.000000000 +0200
++++ qtnx-0.9/nxparsexml.cpp    2008-10-15 14:31:27.000000000 +0200
+@@ -167,6 +167,13 @@
+         sessionData->proxyPass = attributes.value("value").toStdString();
+     }
++    if (attributes.value("key") == "Delete Sessionfiles") {
++        if (attributes.value("value") == "True")
++            sessionData->delSessionfiles = true;
++        else
++            sessionData->delSessionfiles = false;
++    }
++
+     return true;
+ }
+Index: qtnx-0.9/nxwritexml.cpp
+===================================================================
+--- qtnx-0.9.orig/nxwritexml.cpp       2008-10-15 14:31:27.000000000 +0200
++++ qtnx-0.9/nxwritexml.cpp    2008-10-15 14:31:27.000000000 +0200
+@@ -171,6 +171,14 @@
+         xml << "<option key=\"Enable Fullscreen Desktop\" value=\"False\">" <<
+             "</option>\n";
++   if (sessionData.delSessionfiles == true)
++        xml << "<option key=\"Delete Sessionfiles\" value=\"True\">" <<
++            "</option>\n";
++    else
++        xml << "<option key=\"Delete Sessionfiles\" value=\"False\">" <<
++            "</option>\n";
++
++
+     xml << "</NXClientLibSettings>\n";
+     file.close();
+Index: qtnx-0.9/qtnxsettings.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxsettings.cpp     2008-10-15 14:31:27.000000000 +0200
++++ qtnx-0.9/qtnxsettings.cpp  2008-10-15 14:31:27.000000000 +0200
+@@ -175,6 +175,7 @@
+         ui_sd.proxyPass->setText(QString::fromStdString(config.proxyPass));
+         ui_sd.encryption->setChecked(config.encryption);
++      ui_sd.delSessionfiles->setChecked(config.delSessionfiles);
+         ui_sd.memoryCache->setValue(config.cache);
+         ui_sd.diskCache->setValue(config.images);
+@@ -356,6 +357,11 @@
+     else
+         config.encryption = false;
++    if (ui_sd.delSessionfiles->checkState() == Qt::Checked)
++        config.delSessionfiles = true;
++    else
++        config.delSessionfiles = false;
++
+     config.cache = ui_sd.memoryCache->value();
+     config.images = ui_sd.diskCache->value();
+Index: qtnx-0.9/qtnxwindow.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.cpp       2008-10-15 14:31:27.000000000 +0200
++++ qtnx-0.9/qtnxwindow.cpp    2008-10-15 15:31:26.000000000 +0200
+@@ -86,6 +86,13 @@
+     connect(&callback, SIGNAL(atCapacity()), this, SLOT(handleAtCapacity()));
+     connect(&callback, SIGNAL(connectedSuccessfully()), this, SLOT(quit()));
++
++    if (config.delSessionfiles)
++    {
++          cout << "delete Session files" << endl;
++          statusBar->showMessage("delete Sessionfiles");
++          NXClientLib::deleteAllSessionfiles();
++    }
+ }
+ void QtNXWindow::updateLinkType(QString sessionName)
+Index: qtnx-0.9/qtnxwindow.h
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.h 2008-10-15 14:31:27.000000000 +0200
++++ qtnx-0.9/qtnxwindow.h      2008-10-15 14:31:27.000000000 +0200
+@@ -24,8 +24,10 @@
+ #include <QStatusBar>
+ #include <QTimer>
+-#include "nxclientlib.h"
+-#include "nxdata.h"
++#include <nxclientlib.h>
++#include <nxdata.h>
++
++
+ #include "nxparsexml.h"
+ #include "qtnxsessions.h"
diff --git a/packages/qtnx/files/ssh_dnserror.patch b/packages/qtnx/files/ssh_dnserror.patch
new file mode 100644 (file)
index 0000000..b4072c7
--- /dev/null
@@ -0,0 +1,51 @@
+Index: qtnx-0.9/qtnxwindow.cpp
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.cpp       2008-11-05 18:53:29.000000000 +0100
++++ qtnx-0.9/qtnxwindow.cpp    2008-11-05 18:54:39.000000000 +0100
+@@ -271,6 +271,15 @@
+     reinitialiseClient();
+ }
++void QtNXWindow::dnsFailed()
++{
++    QMessageBox::critical(this, tr("DNS Lookup Failure"),
++            tr("Are you really connected to the network?"), QMessageBox::Ok, QMessageBox::NoButton,
++            QMessageBox::NoButton);
++
++    reinitialiseClient();
++}
++
+ void QtNXWindow::handleAtCapacity()
+ {
+     QMessageBox::critical(this, tr("Server at capacity"),
+@@ -381,6 +390,7 @@
+     publicKey = binaryPath + "/id.key";
+ #endif
++    cout << "invoke backend" << endl;
+     m_NXClient->invokeNXSSH(publicKey, config.serverHost, config.encryption, "",
+             config.serverPort);
+@@ -602,6 +612,10 @@
+         case NXCL_PROCESS_ERROR:
+           handleStatus(tr("An error occurred running a helper program"));
+             break;
++       case NXCL_DNS_ERROR:
++          handleStatus(tr("DNS error occurred"));
++          dnsFailed();
++          break;
+         default:
+             break;
+     }
+Index: qtnx-0.9/qtnxwindow.h
+===================================================================
+--- qtnx-0.9.orig/qtnxwindow.h 2008-11-05 18:53:29.000000000 +0100
++++ qtnx-0.9/qtnxwindow.h      2008-11-05 18:53:29.000000000 +0100
+@@ -122,6 +122,7 @@
+         void resumeResumePressed(QString);
+         void sshContinue(QString);
+         void failedLogin();
++      void dnsFailed();
+         void showLogWindow();
+         void quit();
+     private:
index b203390..8380d2b 100644 (file)
@@ -2,7 +2,7 @@ DESCRIPTION = "This a the freesource nx client, build with qt"
 HOMEPAGE = "http://freenx.berlios.de/"
 SECTION = "libs"
 LICENSE = "GPL"
-PR = "r1"
+PR = "r2"
 
 DEPENDS = "libnxcl"
 
@@ -10,6 +10,11 @@ SRC_URI = "http://download.berlios.de/freenx/freenx-client-${PV}.tar.bz2 \
           file://pro.patch;patch=1 \
           file://id-path.patch;patch=1 \
           file://scroll.patch;patch=1 \
+           file://keymap.patch;patch=1 \
+           file://dodnx.patch;patch=1 \
+           file://keychooser.patch;patch=1 \
+           file://sessionfiles.patch;patch=1 \
+           file://ssh_dnserror.patch;patch=1 \
          "
 
 S = "${WORKDIR}/freenx-client-${PV}/qtnx"