Date: Sunday, January 4, 2015 @ 10:18:36
  Author: andrea
Revision: 228412

archrelease: copy trunk to extra-i686, extra-x86_64

Added:
  kdenetwork-krdc/repos/extra-i686/PKGBUILD
    (from rev 228411, kdenetwork-krdc/trunk/PKGBUILD)
  kdenetwork-krdc/repos/extra-i686/freerdp12.patch
    (from rev 228411, kdenetwork-krdc/trunk/freerdp12.patch)
  kdenetwork-krdc/repos/extra-x86_64/PKGBUILD
    (from rev 228411, kdenetwork-krdc/trunk/PKGBUILD)
  kdenetwork-krdc/repos/extra-x86_64/freerdp12.patch
    (from rev 228411, kdenetwork-krdc/trunk/freerdp12.patch)
Deleted:
  kdenetwork-krdc/repos/extra-i686/PKGBUILD
  kdenetwork-krdc/repos/extra-x86_64/PKGBUILD

------------------------------+
 /PKGBUILD                    |   82 +++++++++
 extra-i686/PKGBUILD          |   33 ---
 extra-i686/freerdp12.patch   |  345 +++++++++++++++++++++++++++++++++++++++++
 extra-x86_64/PKGBUILD        |   33 ---
 extra-x86_64/freerdp12.patch |  345 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 772 insertions(+), 66 deletions(-)

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD 2015-01-04 09:18:11 UTC (rev 228411)
+++ extra-i686/PKGBUILD 2015-01-04 09:18:36 UTC (rev 228412)
@@ -1,33 +0,0 @@
-# $Id$
-# Maintainer: Andrea Scarpino <and...@archlinux.org>
-
-pkgname=kdenetwork-krdc
-pkgver=4.14.3
-pkgrel=1
-pkgdesc='Remote Desktop Client'
-url='http://kde.org/applications/internet/krdc/'
-arch=('i686' 'x86_64')
-license=('GPL' 'LGPL' 'FDL')
-groups=('kde' 'kdenetwork')
-depends=('kdebase-runtime' 'telepathy-qt')
-makedepends=('cmake' 'automoc4' 'libvncserver' 'freerdp')
-optdepends=('libvncserver: VNC support'
-            'freerdp: RDP support'
-            'kdebase-keditbookmarks: to edit bookmarks')
-source=("http://download.kde.org/stable/${pkgver}/src/krdc-${pkgver}.tar.xz";)
-sha1sums=('e18b48757ab35b51520fd2972e498fc24f6b62ad')
-
-build() {
-  mkdir build
-  cd build
-  cmake ../krdc-${pkgver} \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DKDE4_BUILD_TESTS=OFF \
-    -DCMAKE_INSTALL_PREFIX=/usr
-  make
-}
-
-package() {
-  cd build
-  make DESTDIR=$pkgdir install
-}

Copied: kdenetwork-krdc/repos/extra-i686/PKGBUILD (from rev 228411, 
kdenetwork-krdc/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD                         (rev 0)
+++ extra-i686/PKGBUILD 2015-01-04 09:18:36 UTC (rev 228412)
@@ -0,0 +1,41 @@
+# $Id$
+# Maintainer: Andrea Scarpino <and...@archlinux.org>
+
+pkgname=kdenetwork-krdc
+pkgver=4.14.3
+pkgrel=2
+pkgdesc='Remote Desktop Client'
+url='http://kde.org/applications/internet/krdc/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+depends=('kdebase-runtime' 'telepathy-qt')
+makedepends=('cmake' 'automoc4' 'libvncserver' 'freerdp')
+optdepends=('libvncserver: VNC support'
+            'freerdp: RDP support'
+            'kdebase-keditbookmarks: to edit bookmarks')
+source=("http://download.kde.org/stable/${pkgver}/src/krdc-${pkgver}.tar.xz";
+        'freerdp12.patch')
+sha1sums=('e18b48757ab35b51520fd2972e498fc24f6b62ad'
+          'fe7478f60d9b4d8fa71cec104669abb6802efc1a')
+
+prepare() {
+  mkdir build
+
+  cd krdc-${pkgver}
+  patch -p1 -i "${srcdir}"/freerdp12.patch
+}
+
+build() {
+  cd build
+  cmake ../krdc-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DKDE4_BUILD_TESTS=OFF \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd build
+  make DESTDIR=$pkgdir install
+}

Copied: kdenetwork-krdc/repos/extra-i686/freerdp12.patch (from rev 228411, 
kdenetwork-krdc/trunk/freerdp12.patch)
===================================================================
--- extra-i686/freerdp12.patch                          (rev 0)
+++ extra-i686/freerdp12.patch  2015-01-04 09:18:36 UTC (rev 228412)
@@ -0,0 +1,345 @@
+From: Tony Murray <murrayt...@gmail.com>
+Date: Fri, 02 Jan 2015 15:36:40 +0000
+Subject: Support for FreeRDP 1.0.2 and newer. Including 1.1 and 1.2.
+X-Git-Url: 
http://quickgit.kde.org/?p=krdc.git&a=commitdiff&h=a9e514b29b5611e01c2c024157d36eaf416e0c5a
+---
+Support for FreeRDP 1.0.2 and newer. Including 1.1 and 1.2.
+
+FEATURE:
+BUG: 341284
+FIXED-IN: 14.12.1
+REVIEW: 115059
+---
+
+
+--- a/rdp/rdpview.cpp
++++ b/rdp/rdpview.cpp
+@@ -146,102 +146,205 @@
+         }
+     }
+ 
++    // Check the version of FreeRDP so we can use pre-1.1 switches if needed
++    QProcess *xfreeRDPVersionCheck = new QProcess(this);
++    xfreeRDPVersionCheck->start("xfreerdp", QStringList("--version"));
++    xfreeRDPVersionCheck->waitForFinished();
++    QString versionOutput = xfreeRDPVersionCheck->readAllStandardOutput();
++    xfreeRDPVersionCheck->deleteLater();
++
+     m_process = new QProcess(m_container);
+ 
+     QStringList arguments;
+ 
+-    int width, height;
+-    if (m_hostPreferences->width() > 0) {
+-        width = m_hostPreferences->width();
+-        height = m_hostPreferences->height();
++    if (versionOutput.contains(QLatin1String(" 1.0"))) {
++        kDebug(5012) << "Use FreeRDP 1.0 compatible arguments";
++
++        int width, height;
++        if (m_hostPreferences->width() > 0) {
++            width = m_hostPreferences->width();
++            height = m_hostPreferences->height();
++        } else {
++            width = this->parentWidget()->size().width();
++            height = this->parentWidget()->size().height();
++        }
++        arguments << "-g" << QString::number(width) + 'x' + 
QString::number(height);
++
++        arguments << "-k" << 
keymapToXfreerdp(m_hostPreferences->keyboardLayout());
++
++        if (!m_url.userName().isEmpty()) {
++            // if username contains a domain, it needs to be set with another 
parameter
++            if (m_url.userName().contains('\\')) {
++                const QStringList splittedName = m_url.userName().split('\\');
++                arguments << "-d" << splittedName.at(0);
++                arguments << "-u" << splittedName.at(1);
++            } else {
++                arguments << "-u" << m_url.userName();
++            }
++        } else {
++            arguments << "-u" << "";
++        }
++
++        arguments << "-D";  // request the window has no decorations
++        arguments << "-X" << QString::number(m_container->winId());
++        arguments << "-a" << QString::number((m_hostPreferences->colorDepth() 
+ 1) * 8);
++
++        switch (m_hostPreferences->sound()) {
++        case 1:
++            arguments << "-o";
++            break;
++        case 0:
++            arguments << "--plugin" << "rdpsnd";
++            break;
++        case 2:
++        default:
++            break;
++        }
++
++        if (!m_hostPreferences->shareMedia().isEmpty()) {
++            QStringList shareMedia;
++            shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" 
+ m_hostPreferences->shareMedia() << "--";
++            arguments += shareMedia;
++        }
++
++        QString performance;
++        switch (m_hostPreferences->performance()) {
++        case 0:
++            performance = 'm';
++            break;
++        case 1:
++            performance = 'b';
++            break;
++        case 2:
++            performance = 'l';
++            break;
++        default:
++            break;
++        }
++
++        arguments << "-x" << performance;
++
++        if (m_hostPreferences->console()) {
++            arguments << "-0";
++        }
++
++        if (m_hostPreferences->remoteFX()) {
++            arguments << "--rfx";
++        }
++
++        if (!m_hostPreferences->extraOptions().isEmpty()) {
++            const QStringList additionalArguments = 
KShell::splitArgs(m_hostPreferences->extraOptions());
++            arguments += additionalArguments;
++        }
++
++        // krdc has no support for certificate management yet; it would not 
be possbile to connect to any host:
++        // "The host key for example.com has changed" ...
++        // "Add correct host key in ~/.freerdp/known_hosts to get rid of this 
message."
++        arguments << "--ignore-certificate";
++
++        // clipboard sharing is activated in KRDC; user can disable it at 
runtime
++        arguments << "--plugin" << "cliprdr";
++
++        arguments << "-t" << QString::number(m_port);
++        arguments << m_host;
++
++        kDebug(5012) << "Starting xfreerdp with arguments: " << 
arguments.join(" ");
++
++        arguments.removeLast(); // host must be last, remove and re-add it 
after the password
++        if (!m_url.password().isNull())
++            arguments << "-p" << m_url.password();
++        arguments << m_host;
++
+     } else {
+-        width = this->parentWidget()->size().width();
+-        height = this->parentWidget()->size().height();
+-    }
+-    arguments << "-g" << QString::number(width) + 'x' + 
QString::number(height);
+-
+-    arguments << "-k" << 
keymapToXfreerdp(m_hostPreferences->keyboardLayout());
+-
+-    if (!m_url.userName().isEmpty()) {
+-        // if username contains a domain, it needs to be set with another 
parameter
+-        if (m_url.userName().contains('\\')) {
+-            const QStringList splittedName = m_url.userName().split('\\');
+-            arguments << "-d" << splittedName.at(0);
+-            arguments << "-u" << splittedName.at(1);
++        kDebug(5012) << "Use FreeRDP 1.1+ compatible arguments";
++
++        int width, height;
++        if (m_hostPreferences->width() > 0) {
++            width = m_hostPreferences->width();
++            height = m_hostPreferences->height();
+         } else {
+-            arguments << "-u" << m_url.userName();
+-        }
+-    } else {
+-        arguments << "-u" << "";
+-    }
+-
+-    if (!m_url.password().isNull())
+-        arguments << "-p" << m_url.password();
+-
+-    arguments << "-D";  // request the window has no decorations
+-    arguments << "-X" << QString::number(m_container->winId());
+-    arguments << "-a" << QString::number((m_hostPreferences->colorDepth() + 
1) * 8);
+-
+-    switch (m_hostPreferences->sound()) {
+-    case 1:
+-        arguments << "-o";
+-        break;
+-    case 0:
+-        arguments << "--plugin" << "rdpsnd";
+-        break;
+-    case 2:
+-    default:
+-        break;
+-    }
+-
+-    if (!m_hostPreferences->shareMedia().isEmpty()) {
+-        QStringList shareMedia;
+-        shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" + 
m_hostPreferences->shareMedia() << "--";
+-        arguments += shareMedia;
+-    }
+-
+-    QString performance;
+-    switch (m_hostPreferences->performance()) {
+-    case 0:
+-        performance = 'm';
+-        break;
+-    case 1:
+-        performance = 'b';
+-        break;
+-    case 2:
+-        performance = 'l';
+-        break;
+-    default:
+-        break;
+-    }
+-
+-    arguments << "-x" << performance;
+-
+-    if (m_hostPreferences->console()) {
+-        arguments << "-0";
+-    }
+-
+-    if (m_hostPreferences->remoteFX()) {
+-        arguments << "--rfx";
+-    }
+-
+-    if (!m_hostPreferences->extraOptions().isEmpty()) {
+-        const QStringList additionalArguments = 
KShell::splitArgs(m_hostPreferences->extraOptions());
+-        arguments += additionalArguments;
+-    }
+-
+-    // krdc has no support for certificate management yet; it would not be 
possbile to connect to any host:
+-    // "The host key for example.com has changed" ...
+-    // "Add correct host key in ~/.freerdp/known_hosts to get rid of this 
message."
+-    arguments << "--ignore-certificate";
+-
+-    // clipboard sharing is activated in KRDC; user can disable it at runtime
+-    arguments << "--plugin" << "cliprdr";
+-
+-    arguments << "-t" << QString::number(m_port);
+-    arguments << m_host;
+-
+-    kDebug(5012) << "Starting xfreerdp with arguments:" << arguments;
++            width = this->parentWidget()->size().width();
++            height = this->parentWidget()->size().height();
++        }
++        arguments << "-decorations";
++        arguments << "/w:" + QString::number(width);
++        arguments << "/h:" + QString::number(height);
++
++        arguments << "/kbd:" + 
keymapToXfreerdp(m_hostPreferences->keyboardLayout());
++
++        if (!m_url.userName().isEmpty()) {
++            // if username contains a domain, it needs to be set with another 
parameter
++            if (m_url.userName().contains('\\')) {
++                const QStringList splittedName = m_url.userName().split('\\');
++                arguments << "/d:" + splittedName.at(0);
++                arguments << "/u:" + splittedName.at(1);
++            } else {
++                arguments << "/u:" + m_url.userName();
++            }
++        } else {
++            arguments << "/u:";
++        }
++
++        arguments << "/parent-window:" + 
QString::number(m_container->winId());
++        arguments << "/bpp:" + 
QString::number((m_hostPreferences->colorDepth() + 1) * 8);
++        arguments << "/audio-mode:" + 
QString::number(m_hostPreferences->sound());
++
++        if (!m_hostPreferences->shareMedia().isEmpty()) {
++            QStringList shareMedia;
++            shareMedia << "/drive:media," + m_hostPreferences->shareMedia();
++            arguments += shareMedia;
++        }
++
++        QString performance;
++        switch (m_hostPreferences->performance()) {
++        case 0:
++            performance = "modem";
++            break;
++        case 1:
++            performance = "broadband";
++            break;
++        case 2:
++            performance = "lan";
++            break;
++        default:
++            break;
++        }
++
++        arguments << "/network:" + performance;
++
++        if (m_hostPreferences->console()) {
++            arguments << "/admin";
++        }
++
++        if (m_hostPreferences->remoteFX()) {
++            arguments << "/rfx";
++        }
++
++        if (!m_hostPreferences->extraOptions().isEmpty()) {
++            const QStringList additionalArguments = 
KShell::splitArgs(m_hostPreferences->extraOptions());
++            arguments += additionalArguments;
++        }
++
++        // krdc has no support for certificate management yet; it would not 
be possbile to connect to any host:
++        // "The host key for example.com has changed" ...
++        // "Add correct host key in ~/.freerdp/known_hosts to get rid of this 
message."
++        arguments << "/cert-ignore";
++
++        // clipboard sharing is activated in KRDC; user can disable it at 
runtime
++        arguments << "+clipboard";
++
++        arguments << "/port:" + QString::number(m_port);
++        arguments << "/v:" + m_host;
++
++        kDebug(5012) << "Starting xfreerdp with arguments: " << 
arguments.join(" ");
++
++        //avoid printing the password in debug
++        if (!m_url.password().isNull()) {
++            arguments << "/p:" + m_url.password();
++        }
++        kDebug(5012) << "Starting xfreerdp with arguments: " << 
arguments.join(" ");
++
++    }
+ 
+     setStatus(Connecting);
+ 
+@@ -302,7 +405,7 @@
+ 
+ void RdpView::processError(QProcess::ProcessError error)
+ {
+-    kDebug(5012) << "processError:" << error;
++    kDebug(5012) << error;
+     if (m_quitFlag) // do not try to show error messages while quitting 
(prevent crashes)
+         return;
+ 
+@@ -319,11 +422,11 @@
+ void RdpView::receivedStandardError()
+ {
+     const QString output(m_process->readAllStandardError());
+-    kDebug(5012) << "receivedStandardError:" << output;
++    kDebug(5012) << output;
+     QString line;
+     int i = 0;
+     while (!(line = output.section('\n', i, i)).isEmpty()) {
+-        
++
+         // the following error is issued by freerdp because of a bug in 
freerdp 1.0.1 and below;
+         // see: https://github.com/FreeRDP/FreeRDP/pull/576
+         //"X Error of failed request:  BadWindow (invalid Window parameter)
+@@ -345,7 +448,7 @@
+ void RdpView::receivedStandardOutput()
+ {
+     const QString output(m_process->readAllStandardOutput());
+-    kDebug(5012) << "receivedStandardOutput:" << output;
++    kDebug(5012) << output;
+     QString line;
+     int i = 0;
+     while (!(line = output.section('\n', i, i)).isEmpty()) {
+

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD       2015-01-04 09:18:11 UTC (rev 228411)
+++ extra-x86_64/PKGBUILD       2015-01-04 09:18:36 UTC (rev 228412)
@@ -1,33 +0,0 @@
-# $Id$
-# Maintainer: Andrea Scarpino <and...@archlinux.org>
-
-pkgname=kdenetwork-krdc
-pkgver=4.14.3
-pkgrel=1
-pkgdesc='Remote Desktop Client'
-url='http://kde.org/applications/internet/krdc/'
-arch=('i686' 'x86_64')
-license=('GPL' 'LGPL' 'FDL')
-groups=('kde' 'kdenetwork')
-depends=('kdebase-runtime' 'telepathy-qt')
-makedepends=('cmake' 'automoc4' 'libvncserver' 'freerdp')
-optdepends=('libvncserver: VNC support'
-            'freerdp: RDP support'
-            'kdebase-keditbookmarks: to edit bookmarks')
-source=("http://download.kde.org/stable/${pkgver}/src/krdc-${pkgver}.tar.xz";)
-sha1sums=('e18b48757ab35b51520fd2972e498fc24f6b62ad')
-
-build() {
-  mkdir build
-  cd build
-  cmake ../krdc-${pkgver} \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DKDE4_BUILD_TESTS=OFF \
-    -DCMAKE_INSTALL_PREFIX=/usr
-  make
-}
-
-package() {
-  cd build
-  make DESTDIR=$pkgdir install
-}

Copied: kdenetwork-krdc/repos/extra-x86_64/PKGBUILD (from rev 228411, 
kdenetwork-krdc/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD                               (rev 0)
+++ extra-x86_64/PKGBUILD       2015-01-04 09:18:36 UTC (rev 228412)
@@ -0,0 +1,41 @@
+# $Id$
+# Maintainer: Andrea Scarpino <and...@archlinux.org>
+
+pkgname=kdenetwork-krdc
+pkgver=4.14.3
+pkgrel=2
+pkgdesc='Remote Desktop Client'
+url='http://kde.org/applications/internet/krdc/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+depends=('kdebase-runtime' 'telepathy-qt')
+makedepends=('cmake' 'automoc4' 'libvncserver' 'freerdp')
+optdepends=('libvncserver: VNC support'
+            'freerdp: RDP support'
+            'kdebase-keditbookmarks: to edit bookmarks')
+source=("http://download.kde.org/stable/${pkgver}/src/krdc-${pkgver}.tar.xz";
+        'freerdp12.patch')
+sha1sums=('e18b48757ab35b51520fd2972e498fc24f6b62ad'
+          'fe7478f60d9b4d8fa71cec104669abb6802efc1a')
+
+prepare() {
+  mkdir build
+
+  cd krdc-${pkgver}
+  patch -p1 -i "${srcdir}"/freerdp12.patch
+}
+
+build() {
+  cd build
+  cmake ../krdc-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DKDE4_BUILD_TESTS=OFF \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd build
+  make DESTDIR=$pkgdir install
+}

Copied: kdenetwork-krdc/repos/extra-x86_64/freerdp12.patch (from rev 228411, 
kdenetwork-krdc/trunk/freerdp12.patch)
===================================================================
--- extra-x86_64/freerdp12.patch                                (rev 0)
+++ extra-x86_64/freerdp12.patch        2015-01-04 09:18:36 UTC (rev 228412)
@@ -0,0 +1,345 @@
+From: Tony Murray <murrayt...@gmail.com>
+Date: Fri, 02 Jan 2015 15:36:40 +0000
+Subject: Support for FreeRDP 1.0.2 and newer. Including 1.1 and 1.2.
+X-Git-Url: 
http://quickgit.kde.org/?p=krdc.git&a=commitdiff&h=a9e514b29b5611e01c2c024157d36eaf416e0c5a
+---
+Support for FreeRDP 1.0.2 and newer. Including 1.1 and 1.2.
+
+FEATURE:
+BUG: 341284
+FIXED-IN: 14.12.1
+REVIEW: 115059
+---
+
+
+--- a/rdp/rdpview.cpp
++++ b/rdp/rdpview.cpp
+@@ -146,102 +146,205 @@
+         }
+     }
+ 
++    // Check the version of FreeRDP so we can use pre-1.1 switches if needed
++    QProcess *xfreeRDPVersionCheck = new QProcess(this);
++    xfreeRDPVersionCheck->start("xfreerdp", QStringList("--version"));
++    xfreeRDPVersionCheck->waitForFinished();
++    QString versionOutput = xfreeRDPVersionCheck->readAllStandardOutput();
++    xfreeRDPVersionCheck->deleteLater();
++
+     m_process = new QProcess(m_container);
+ 
+     QStringList arguments;
+ 
+-    int width, height;
+-    if (m_hostPreferences->width() > 0) {
+-        width = m_hostPreferences->width();
+-        height = m_hostPreferences->height();
++    if (versionOutput.contains(QLatin1String(" 1.0"))) {
++        kDebug(5012) << "Use FreeRDP 1.0 compatible arguments";
++
++        int width, height;
++        if (m_hostPreferences->width() > 0) {
++            width = m_hostPreferences->width();
++            height = m_hostPreferences->height();
++        } else {
++            width = this->parentWidget()->size().width();
++            height = this->parentWidget()->size().height();
++        }
++        arguments << "-g" << QString::number(width) + 'x' + 
QString::number(height);
++
++        arguments << "-k" << 
keymapToXfreerdp(m_hostPreferences->keyboardLayout());
++
++        if (!m_url.userName().isEmpty()) {
++            // if username contains a domain, it needs to be set with another 
parameter
++            if (m_url.userName().contains('\\')) {
++                const QStringList splittedName = m_url.userName().split('\\');
++                arguments << "-d" << splittedName.at(0);
++                arguments << "-u" << splittedName.at(1);
++            } else {
++                arguments << "-u" << m_url.userName();
++            }
++        } else {
++            arguments << "-u" << "";
++        }
++
++        arguments << "-D";  // request the window has no decorations
++        arguments << "-X" << QString::number(m_container->winId());
++        arguments << "-a" << QString::number((m_hostPreferences->colorDepth() 
+ 1) * 8);
++
++        switch (m_hostPreferences->sound()) {
++        case 1:
++            arguments << "-o";
++            break;
++        case 0:
++            arguments << "--plugin" << "rdpsnd";
++            break;
++        case 2:
++        default:
++            break;
++        }
++
++        if (!m_hostPreferences->shareMedia().isEmpty()) {
++            QStringList shareMedia;
++            shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" 
+ m_hostPreferences->shareMedia() << "--";
++            arguments += shareMedia;
++        }
++
++        QString performance;
++        switch (m_hostPreferences->performance()) {
++        case 0:
++            performance = 'm';
++            break;
++        case 1:
++            performance = 'b';
++            break;
++        case 2:
++            performance = 'l';
++            break;
++        default:
++            break;
++        }
++
++        arguments << "-x" << performance;
++
++        if (m_hostPreferences->console()) {
++            arguments << "-0";
++        }
++
++        if (m_hostPreferences->remoteFX()) {
++            arguments << "--rfx";
++        }
++
++        if (!m_hostPreferences->extraOptions().isEmpty()) {
++            const QStringList additionalArguments = 
KShell::splitArgs(m_hostPreferences->extraOptions());
++            arguments += additionalArguments;
++        }
++
++        // krdc has no support for certificate management yet; it would not 
be possbile to connect to any host:
++        // "The host key for example.com has changed" ...
++        // "Add correct host key in ~/.freerdp/known_hosts to get rid of this 
message."
++        arguments << "--ignore-certificate";
++
++        // clipboard sharing is activated in KRDC; user can disable it at 
runtime
++        arguments << "--plugin" << "cliprdr";
++
++        arguments << "-t" << QString::number(m_port);
++        arguments << m_host;
++
++        kDebug(5012) << "Starting xfreerdp with arguments: " << 
arguments.join(" ");
++
++        arguments.removeLast(); // host must be last, remove and re-add it 
after the password
++        if (!m_url.password().isNull())
++            arguments << "-p" << m_url.password();
++        arguments << m_host;
++
+     } else {
+-        width = this->parentWidget()->size().width();
+-        height = this->parentWidget()->size().height();
+-    }
+-    arguments << "-g" << QString::number(width) + 'x' + 
QString::number(height);
+-
+-    arguments << "-k" << 
keymapToXfreerdp(m_hostPreferences->keyboardLayout());
+-
+-    if (!m_url.userName().isEmpty()) {
+-        // if username contains a domain, it needs to be set with another 
parameter
+-        if (m_url.userName().contains('\\')) {
+-            const QStringList splittedName = m_url.userName().split('\\');
+-            arguments << "-d" << splittedName.at(0);
+-            arguments << "-u" << splittedName.at(1);
++        kDebug(5012) << "Use FreeRDP 1.1+ compatible arguments";
++
++        int width, height;
++        if (m_hostPreferences->width() > 0) {
++            width = m_hostPreferences->width();
++            height = m_hostPreferences->height();
+         } else {
+-            arguments << "-u" << m_url.userName();
+-        }
+-    } else {
+-        arguments << "-u" << "";
+-    }
+-
+-    if (!m_url.password().isNull())
+-        arguments << "-p" << m_url.password();
+-
+-    arguments << "-D";  // request the window has no decorations
+-    arguments << "-X" << QString::number(m_container->winId());
+-    arguments << "-a" << QString::number((m_hostPreferences->colorDepth() + 
1) * 8);
+-
+-    switch (m_hostPreferences->sound()) {
+-    case 1:
+-        arguments << "-o";
+-        break;
+-    case 0:
+-        arguments << "--plugin" << "rdpsnd";
+-        break;
+-    case 2:
+-    default:
+-        break;
+-    }
+-
+-    if (!m_hostPreferences->shareMedia().isEmpty()) {
+-        QStringList shareMedia;
+-        shareMedia << "--plugin" << "rdpdr" << "--data" << "disk:media:" + 
m_hostPreferences->shareMedia() << "--";
+-        arguments += shareMedia;
+-    }
+-
+-    QString performance;
+-    switch (m_hostPreferences->performance()) {
+-    case 0:
+-        performance = 'm';
+-        break;
+-    case 1:
+-        performance = 'b';
+-        break;
+-    case 2:
+-        performance = 'l';
+-        break;
+-    default:
+-        break;
+-    }
+-
+-    arguments << "-x" << performance;
+-
+-    if (m_hostPreferences->console()) {
+-        arguments << "-0";
+-    }
+-
+-    if (m_hostPreferences->remoteFX()) {
+-        arguments << "--rfx";
+-    }
+-
+-    if (!m_hostPreferences->extraOptions().isEmpty()) {
+-        const QStringList additionalArguments = 
KShell::splitArgs(m_hostPreferences->extraOptions());
+-        arguments += additionalArguments;
+-    }
+-
+-    // krdc has no support for certificate management yet; it would not be 
possbile to connect to any host:
+-    // "The host key for example.com has changed" ...
+-    // "Add correct host key in ~/.freerdp/known_hosts to get rid of this 
message."
+-    arguments << "--ignore-certificate";
+-
+-    // clipboard sharing is activated in KRDC; user can disable it at runtime
+-    arguments << "--plugin" << "cliprdr";
+-
+-    arguments << "-t" << QString::number(m_port);
+-    arguments << m_host;
+-
+-    kDebug(5012) << "Starting xfreerdp with arguments:" << arguments;
++            width = this->parentWidget()->size().width();
++            height = this->parentWidget()->size().height();
++        }
++        arguments << "-decorations";
++        arguments << "/w:" + QString::number(width);
++        arguments << "/h:" + QString::number(height);
++
++        arguments << "/kbd:" + 
keymapToXfreerdp(m_hostPreferences->keyboardLayout());
++
++        if (!m_url.userName().isEmpty()) {
++            // if username contains a domain, it needs to be set with another 
parameter
++            if (m_url.userName().contains('\\')) {
++                const QStringList splittedName = m_url.userName().split('\\');
++                arguments << "/d:" + splittedName.at(0);
++                arguments << "/u:" + splittedName.at(1);
++            } else {
++                arguments << "/u:" + m_url.userName();
++            }
++        } else {
++            arguments << "/u:";
++        }
++
++        arguments << "/parent-window:" + 
QString::number(m_container->winId());
++        arguments << "/bpp:" + 
QString::number((m_hostPreferences->colorDepth() + 1) * 8);
++        arguments << "/audio-mode:" + 
QString::number(m_hostPreferences->sound());
++
++        if (!m_hostPreferences->shareMedia().isEmpty()) {
++            QStringList shareMedia;
++            shareMedia << "/drive:media," + m_hostPreferences->shareMedia();
++            arguments += shareMedia;
++        }
++
++        QString performance;
++        switch (m_hostPreferences->performance()) {
++        case 0:
++            performance = "modem";
++            break;
++        case 1:
++            performance = "broadband";
++            break;
++        case 2:
++            performance = "lan";
++            break;
++        default:
++            break;
++        }
++
++        arguments << "/network:" + performance;
++
++        if (m_hostPreferences->console()) {
++            arguments << "/admin";
++        }
++
++        if (m_hostPreferences->remoteFX()) {
++            arguments << "/rfx";
++        }
++
++        if (!m_hostPreferences->extraOptions().isEmpty()) {
++            const QStringList additionalArguments = 
KShell::splitArgs(m_hostPreferences->extraOptions());
++            arguments += additionalArguments;
++        }
++
++        // krdc has no support for certificate management yet; it would not 
be possbile to connect to any host:
++        // "The host key for example.com has changed" ...
++        // "Add correct host key in ~/.freerdp/known_hosts to get rid of this 
message."
++        arguments << "/cert-ignore";
++
++        // clipboard sharing is activated in KRDC; user can disable it at 
runtime
++        arguments << "+clipboard";
++
++        arguments << "/port:" + QString::number(m_port);
++        arguments << "/v:" + m_host;
++
++        kDebug(5012) << "Starting xfreerdp with arguments: " << 
arguments.join(" ");
++
++        //avoid printing the password in debug
++        if (!m_url.password().isNull()) {
++            arguments << "/p:" + m_url.password();
++        }
++        kDebug(5012) << "Starting xfreerdp with arguments: " << 
arguments.join(" ");
++
++    }
+ 
+     setStatus(Connecting);
+ 
+@@ -302,7 +405,7 @@
+ 
+ void RdpView::processError(QProcess::ProcessError error)
+ {
+-    kDebug(5012) << "processError:" << error;
++    kDebug(5012) << error;
+     if (m_quitFlag) // do not try to show error messages while quitting 
(prevent crashes)
+         return;
+ 
+@@ -319,11 +422,11 @@
+ void RdpView::receivedStandardError()
+ {
+     const QString output(m_process->readAllStandardError());
+-    kDebug(5012) << "receivedStandardError:" << output;
++    kDebug(5012) << output;
+     QString line;
+     int i = 0;
+     while (!(line = output.section('\n', i, i)).isEmpty()) {
+-        
++
+         // the following error is issued by freerdp because of a bug in 
freerdp 1.0.1 and below;
+         // see: https://github.com/FreeRDP/FreeRDP/pull/576
+         //"X Error of failed request:  BadWindow (invalid Window parameter)
+@@ -345,7 +448,7 @@
+ void RdpView::receivedStandardOutput()
+ {
+     const QString output(m_process->readAllStandardOutput());
+-    kDebug(5012) << "receivedStandardOutput:" << output;
++    kDebug(5012) << output;
+     QString line;
+     int i = 0;
+     while (!(line = output.section('\n', i, i)).isEmpty()) {
+

Reply via email to