[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdenetwork/krdc
From:       Urs Wolfer <uwolfer () kde ! org>
Date:       2007-08-01 15:48:57
Message-ID: 1185983337.771057.28184.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 695197 by uwolfer:

* Better RDP (rdesktop) integration:
  * Option for sound output (local, remote, disabled).
  * Line Edit for additional rdesktop arguments. This way experienced users can use \
all rdesktop options inside KRDC, but the UI does not become bloaded. Probably I will \
more important and often used options to the UI later (if there are more...).

* Explanation in the RDP tooltip for port option.

BUG: 103934

 M  +6 -0      config/krdc.kcfg  
 M  +2 -2      mainwindow.cpp  
 M  +45 -5     rdp/rdphostpreferences.cpp  
 M  +6 -0      rdp/rdphostpreferences.h  
 M  +72 -9     rdp/rdppreferences.ui  
 M  +20 -0     rdp/rdpview.cpp  


--- trunk/KDE/kdenetwork/krdc/config/krdc.kcfg #695196:695197
@@ -43,5 +43,11 @@
     <entry name="ColorDepth" type="Int">
       <default>0</default>
     </entry>
+    <entry name="Sound" type="Int">
+      <default>0</default>
+    </entry>
+    <entry name="ExtraOptions" type="String">
+      <default></default>
+    </entry>
   </group>
 </kcfg>
--- trunk/KDE/kdenetwork/krdc/mainwindow.cpp #695196:695197
@@ -650,8 +650,8 @@
 
     QToolTip::showText(m_addressNavigator->pos() + pos() + \
                QPoint(m_addressNavigator->width(),
                                                                   \
                m_addressNavigator->height() + 20),
-                       i18n("Enter here the address.<br />"
-                            "<i>Example: rdpserver (host)</i>"), this);
+                       i18n("Enter here the address. Port is optional.<br />"
+                            "<i>Example: rdpserver:3389 (host:port)</i>"), this);
 }
 
 QList<RemoteView *> MainWindow::remoteViewList() const
--- trunk/KDE/kdenetwork/krdc/rdp/rdphostpreferences.cpp #695196:695197
@@ -88,7 +88,9 @@
     m_height(600),
     m_width(800),
     m_colorDepth(0),
-    m_keyboardLayout("en-us")
+    m_keyboardLayout("en-us"),
+    m_sound(0),
+    m_extraOptions(QString())
 {
     if (hostConfigured()) {
         if (showConfigAgain() || forceShow) {
@@ -120,6 +122,8 @@
     rdpUi.kcfg_Width->setValue(width());
     rdpUi.kcfg_ColorDepth->setCurrentIndex(colorDepth());
     rdpUi.kcfg_KeyboardLayout->setCurrentIndex(keymap2int(keyboardLayout()));
+    rdpUi.kcfg_Sound->setCurrentIndex(sound());
+    rdpUi.kcfg_ExtraOptions->setText(extraOptions());
 
     connect(rdpUi.resolutionComboBox, SIGNAL(currentIndexChanged(int)), \
SLOT(updateWidthHeight(int)));  
@@ -130,10 +134,12 @@
     if (dialog->exec() == KDialog::Accepted) {
         kDebug(5012) << "RdpHostPreferences config dialog accepted" << endl;
 
-       setHeight(rdpUi.kcfg_Height->value());
-       setWidth(rdpUi.kcfg_Width->value());
-       setColorDepth(rdpUi.kcfg_ColorDepth->currentIndex());
-       setKeyboardLayout(int2keymap(rdpUi.kcfg_KeyboardLayout->currentIndex()));
+        setHeight(rdpUi.kcfg_Height->value());
+        setWidth(rdpUi.kcfg_Width->value());
+        setColorDepth(rdpUi.kcfg_ColorDepth->currentIndex());
+        setKeyboardLayout(int2keymap(rdpUi.kcfg_KeyboardLayout->currentIndex()));
+        setSound(rdpUi.kcfg_Sound->currentIndex());
+        setExtraOptions(rdpUi.kcfg_ExtraOptions->text());
     }
 }
 
@@ -196,6 +202,16 @@
         setKeyboardLayout(int2keymap(m_element.firstChildElement("keyboardLayout").text().toInt()));
  else
         setKeyboardLayout(int2keymap(Settings::keyboardLayout()));
+
+    if (m_element.firstChildElement("sound") != QDomElement())
+        setSound(m_element.firstChildElement("sound").text().toInt());
+    else
+        setSound(Settings::sound());
+
+    if (m_element.firstChildElement("extraOptions") != QDomElement())
+        setExtraOptions(m_element.firstChildElement("extraOptions").text());
+    else
+        setExtraOptions(Settings::extraOptions());
 }
 
 void RdpHostPreferences::saveProtocolSpecificConfig()
@@ -206,6 +222,8 @@
     updateElement("width", QString::number(width()));
     updateElement("colorDepth", QString::number(colorDepth()));
     updateElement("keyboardLayout", QString::number(keymap2int(keyboardLayout())));
+    updateElement("sound", QString::number(sound()));
+    updateElement("extraOptions", extraOptions());
 }
 
 void RdpHostPreferences::setHeight(int height)
@@ -252,4 +270,26 @@
     return m_keyboardLayout;
 }
 
+void RdpHostPreferences::setSound(int sound)
+{
+    if (sound >= 0)
+        m_sound = sound;
+}
+
+int RdpHostPreferences::sound() const
+{
+    return m_sound;
+}
+
+void RdpHostPreferences::setExtraOptions(const QString &extraOptions)
+{
+    if (!extraOptions.isNull())
+        m_extraOptions = extraOptions;
+}
+
+QString RdpHostPreferences::extraOptions() const
+{
+    return m_extraOptions;
+}
+
 #include "rdphostpreferences.moc"
--- trunk/KDE/kdenetwork/krdc/rdp/rdphostpreferences.h #695196:695197
@@ -43,6 +43,10 @@
     int colorDepth();
     void setKeyboardLayout(const QString &keyboardLayout);
     QString keyboardLayout() const;
+    void setSound(int sound);
+    int sound() const;
+    void setExtraOptions(const QString &extraOptions);
+    QString extraOptions() const;
 
 protected:
     void showDialog();
@@ -54,6 +58,8 @@
     int m_width;
     int m_colorDepth;
     QString m_keyboardLayout;
+    int m_sound;
+    QString m_extraOptions;
     Ui::RdpPreferences rdpUi;
 
 private slots:
--- trunk/KDE/kdenetwork/krdc/rdp/rdppreferences.ui #695196:695197
@@ -1,17 +1,9 @@
 <ui version="4.0" >
  <class>RdpPreferences</class>
  <widget class="QWidget" name="RdpPreferences" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>435</width>
-    <height>174</height>
-   </rect>
-  </property>
   <layout class="QVBoxLayout" >
    <item>
-    <widget class="QGroupBox" name="rdpGroupBox" >
+    <widget class="QGroupBox" name="connectionGroupBox" >
      <property name="title" >
       <string>Connection</string>
      </property>
@@ -406,10 +398,74 @@
         </item>
        </widget>
       </item>
+      <item row="4" column="1" >
+       <widget class="QComboBox" name="kcfg_Sound" >
+        <item>
+         <property name="text" >
+          <string>On this computer</string>
+         </property>
+        </item>
+        <item>
+         <property name="text" >
+          <string>On remote computer</string>
+         </property>
+        </item>
+        <item>
+         <property name="text" >
+          <string>Disable sound</string>
+         </property>
+        </item>
+       </widget>
+      </item>
+      <item row="4" column="0" >
+       <widget class="QLabel" name="soudLabel" >
+        <property name="text" >
+         <string>Sound:</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="expertGroupBox" >
+     <property name="title" >
+      <string>Expert options</string>
+     </property>
+     <layout class="QGridLayout" >
+      <item row="0" column="0" >
+       <widget class="QLabel" name="extraOptionsLabel" >
+        <property name="minimumSize" >
+         <size>
+          <width>116</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="text" >
+         <string>Extra options:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="KLineEdit" name="kcfg_ExtraOptions" >
+        <property name="minimumSize" >
+         <size>
+          <width>280</width>
+          <height>0</height>
+         </size>
+        </property>
+        <property name="whatsThis" >
+         <string>Here you can enter additional rdesktop options.</string>
+        </property>
+        <property name="showClearButton" stdset="0" >
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <spacer>
      <property name="orientation" >
       <enum>Qt::Vertical</enum>
@@ -424,6 +480,13 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>klineedit.h</header>
+  </customwidget>
+ </customwidgets>
  <tabstops>
   <tabstop>resolutionComboBox</tabstop>
   <tabstop>kcfg_Width</tabstop>
--- trunk/KDE/kdenetwork/krdc/rdp/rdpview.cpp #695196:695197
@@ -163,6 +163,26 @@
 
     arguments << "-X" << QString::number(m_container->winId());
     arguments << "-a" << QString::number((m_hostPreferences->colorDepth() + 1) * 8);
+
+    QString sound;
+    switch (m_hostPreferences->sound()) {
+    case 0:
+        sound = "local";
+        break;
+    case 1:
+        sound = "remote";
+        break;
+    case 2:
+    default:
+        sound = "off";
+    }
+    arguments << "-r" << "sound:" + sound;
+
+    if (!m_hostPreferences->extraOptions().isEmpty()) {
+        QStringList additionalArguments = m_hostPreferences->extraOptions().split(' \
'); +        arguments += additionalArguments;
+    }
+
     arguments << (m_host + ':' + QString::number(m_port));
 
     kDebug(5012) << arguments << endl;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic