[X2Go-Commits] [x2goclient] 02/02: Split Sessions config widget into Input/output and Media widgets. (Fixes: #643).

git-admin at x2go.org git-admin at x2go.org
Wed Nov 26 17:28:26 CET 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goclient.

commit c1d22807941c8f54986a04adf0b8d8ae1717f45d
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date:   Wed Nov 26 17:27:55 2014 +0100

    Split Sessions config widget into Input/output and Media widgets. (Fixes: #643).
---
 configdialog.cpp                        |   16 +-
 configdialog.h                          |    2 +
 debian/changelog                        |    5 +
 editconnectiondialog.cpp                |   12 +-
 editconnectiondialog.h                  |    2 +
 mediawidget.cpp                         |  338 +++++++++++++++++++++++++++++++
 editconnectiondialog.h => mediawidget.h |   76 +++----
 settingswidget.cpp                      |  264 +-----------------------
 settingswidget.h                        |   17 --
 x2goclient.pro                          |    4 +-
 10 files changed, 417 insertions(+), 319 deletions(-)

diff --git a/configdialog.cpp b/configdialog.cpp
index f85d8da..434a148 100644
--- a/configdialog.cpp
+++ b/configdialog.cpp
@@ -36,6 +36,7 @@
 #include "x2goclientconfig.h"
 #include "connectionwidget.h"
 #include "settingswidget.h"
+#include "mediawidget.h"
 
 
 #if defined ( Q_OS_WIN) && defined (CFGCLIENT )
@@ -279,8 +280,11 @@ ConfigDialog::ConfigDialog ( QWidget * parent,  Qt::WFlags f )
                                        ( ONMainWindow* ) parent,this );
         setWidg=new SettingsWidget ( QString::null,
                                      ( ONMainWindow* ) parent,this );
+        mediaWidget=new MediaWidget ( QString::null,
+                                     ( ONMainWindow* ) parent,this );
         conWidg->hide();
         setWidg->hide();
+        mediaWidget->hide();
 
         X2goSettings st ( "sessions" );
         cbStartEmbed->setChecked (
@@ -404,6 +408,7 @@ void ConfigDialog::slot_accepted()
                                  ( QVariant ) cbStartEmbed->isChecked() );
         st.setting()->sync();
         setWidg->saveSettings();
+        mediaWidget->saveSettings();
         conWidg->saveSettings();
     }
 #if defined ( Q_OS_WIN) && defined (CFGCLIENT )
@@ -573,15 +578,19 @@ void ConfigDialog::slotAdvClicked()
         advancedOptions->setText ( tr ( "Advanced options" ) +" >>" );
         conWidg->hide();
         setWidg->hide();
+        mediaWidget->hide();
         conWidg->setParent ( this );
         setWidg->setParent ( this );
+        mediaWidget->setParent (this);
+        tabWidg->removeTab ( 4 );
         tabWidg->removeTab ( 3 );
         tabWidg->removeTab ( 2 );
     }
     else
     {
         tabWidg->addTab ( conWidg,tr ( "&Connection" ) );
-        tabWidg->addTab ( setWidg, tr ( "&Settings" ) );
+        tabWidg->addTab ( setWidg, tr ( "&Input/Output" ) );
+        tabWidg->addTab ( mediaWidget, tr ( "&Media" ) );
         advancedOptions->setText ( tr ( "Advanced options" ) +" <<" );
     }
     advOptionsShown=!advOptionsShown;
@@ -625,6 +634,11 @@ void ConfigDialog::slotDefaults()
         setWidg->setDefaults();
     }
     break;
+    case 4:
+    {
+        mediaWidget->setDefaults();
+    }
+    break;
 #endif
     }
 
diff --git a/configdialog.h b/configdialog.h
index 148462e..8156f2a 100644
--- a/configdialog.h
+++ b/configdialog.h
@@ -30,6 +30,7 @@ class QButtonGroup;
 class PrintWidget;
 class ConnectionWidget;
 class SettingsWidget;
+class MediaWidget;
 class QTabWidget;
 class QGroupBox;
 #if defined (Q_OS_WIN) && defined (CFGCLIENT )
@@ -86,6 +87,7 @@ private:
     QButtonGroup* bgRadio;
     ConnectionWidget* conWidg;
     SettingsWidget* setWidg;
+    MediaWidget* mediaWidget;
 
 #if defined ( Q_OS_WIN) && defined (CFGCLIENT )
     XSettingsWidget* xsetWidg;
diff --git a/debian/changelog b/debian/changelog
index d5beff8..269b4eb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,11 @@ x2goclient (4.0.3.1-0x2go1) UNRELEASED; urgency=medium
   * New upstream release (4.0.3.1):
     - Update Danish translation file.
 
+  [ Oleksandr Shneyder ]
+  * New upstream release (4.0.3.1):
+    - Split Sessions config widget into Input/output and Media widgets.
+      (Fixes: #643).
+
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Tue, 21 Oct 2014 13:22:39 +0200
 
 x2goclient (4.0.3.0-0x2go1) unstable; urgency=low
diff --git a/editconnectiondialog.cpp b/editconnectiondialog.cpp
index 5cd0d3d..741a90a 100644
--- a/editconnectiondialog.cpp
+++ b/editconnectiondialog.cpp
@@ -27,6 +27,7 @@
 #include "sharewidget.h"
 #include "connectionwidget.h"
 #include "settingswidget.h"
+#include "mediawidget.h"
 
 EditConnectionDialog::EditConnectionDialog ( bool newSession, QString id, QWidget * par,
         int ind,Qt::WFlags f )
@@ -52,11 +53,13 @@ EditConnectionDialog::EditConnectionDialog ( bool newSession, QString id, QWidge
     sessSet=new SessionWidget ( newSession, id,parent );
     conSet=new ConnectionWidget ( id,parent );
     otherSet=new SettingsWidget ( id,parent );
+    mediaSet=new MediaWidget ( id,parent );
     exportDir=new ShareWidget ( id,parent );
 
     fr->addTab ( sessSet,tr ( "&Session" ) );
     fr->addTab ( conSet,tr ( "&Connection" ) );
-    fr->addTab ( otherSet,tr ( "&Settings" ) );
+    fr->addTab ( otherSet,tr ( "&Input/Output" ) );
+    fr->addTab ( mediaSet,tr ( "&Media" ) );
     if (! parent->getHideFolderSharing())
         fr->addTab ( exportDir,tr ( "&Shared folders" ) );
 
@@ -129,6 +132,7 @@ void EditConnectionDialog::slot_accepted()
     conSet->saveSettings();
     exportDir->saveSettings();
     otherSet->saveSettings();
+    mediaSet->saveSettings();
     sessSet->saveSettings();
 }
 
@@ -154,6 +158,11 @@ void EditConnectionDialog::slot_default()
     break;
     case 3:
     {
+        mediaSet->setDefaults();
+    }
+    break;
+    case 4:
+    {
         exportDir->setDefaults();
     }
     break;
@@ -165,6 +174,7 @@ void EditConnectionDialog::slot_directRDP(bool direct)
 {
     fr->setTabEnabled(1,!direct);
     fr->setTabEnabled(3,!direct);
+    fr->setTabEnabled(4,!direct);
     otherSet->setDirectRdp(direct);
 }
 #endif
diff --git a/editconnectiondialog.h b/editconnectiondialog.h
index 32b36dd..4012826 100644
--- a/editconnectiondialog.h
+++ b/editconnectiondialog.h
@@ -41,6 +41,7 @@ class QTreeView;
 class SessionWidget;
 class ConnectionWidget;
 class SettingsWidget;
+class MediaWidget;
 class ShareWidget;
 
 class EditConnectionDialog : public QDialog
@@ -55,6 +56,7 @@ private:
     SessionWidget* sessSet;
     ConnectionWidget* conSet;
     SettingsWidget* otherSet;
+    MediaWidget* mediaSet;
     ShareWidget* exportDir;
 
 
diff --git a/mediawidget.cpp b/mediawidget.cpp
new file mode 100644
index 0000000..b1e7df3
--- /dev/null
+++ b/mediawidget.cpp
@@ -0,0 +1,338 @@
+/**************************************************************************
+*   Copyright (C) 2005-2014 by Oleksandr Shneyder                         *
+*   o.shneyder at phoca-gmbh.de                                              *
+*                                                                         *
+*   This program is free software; you can redistribute it and/or modify  *
+*   it under the terms of the GNU General Public License as published by  *
+*   the Free Software Foundation; either version 2 of the License, or     *
+*   (at your option) any later version.                                   *
+*   This program is distributed in the hope that it will be useful,       *
+*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+*   GNU General Public License for more details.                          *
+*                                                                         *
+*   You should have received a copy of the GNU General Public License     *
+*   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
+***************************************************************************/
+
+#include "mediawidget.h"
+#include "onmainwindow.h"
+#include <QBoxLayout>
+#include <QRadioButton>
+#include <QLineEdit>
+#include <QCheckBox>
+#include <QSpinBox>
+#include <QGroupBox>
+#include <QButtonGroup>
+#include <QLabel>
+#include "x2gosettings.h"
+#include <QDir>
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QTimer>
+#include <QSplashScreen>
+#include "x2gologdebug.h"
+#include <QGridLayout>
+
+MediaWidget::MediaWidget ( QString id, ONMainWindow * mw,
+                           QWidget * parent, Qt::WindowFlags f )
+    : ConfigWidget ( id,mw,parent,f )
+{
+#ifdef Q_WS_HILDON
+    QTabWidget* tabSettings=new QTabWidget ( this );
+    QFrame* sbgr=new QFrame();
+    tabSettings->addTab ( sbgr,tr ( "Sound" ) );
+#else
+    sbgr=new QGroupBox ( tr ( "Sound" ),this );
+#endif
+    QVBoxLayout *sndLay=new QVBoxLayout ( sbgr );
+    QHBoxLayout* sLay=new QHBoxLayout ( );
+    QVBoxLayout* sLay_sys=new QVBoxLayout ( );
+    QVBoxLayout* sLay_opt=new QVBoxLayout ( );
+    sLay->addLayout ( sLay_sys );
+    sLay->addLayout ( sLay_opt );
+    QVBoxLayout* setLay=new QVBoxLayout ( this );
+
+    sound=new QCheckBox ( tr ( "Enable sound support" ),sbgr );
+    QButtonGroup* sndsys=new QButtonGroup;
+    pulse=new QRadioButton ( "PulseAudio",sbgr );
+    arts=new QRadioButton ( "arts",sbgr );
+    esd=new QRadioButton ( "esd",sbgr );
+    sndsys->addButton ( pulse,PULSE );
+    sndsys->addButton ( arts,ARTS );
+    sndsys->addButton ( esd,ESD );
+    sndsys->setExclusive ( true );
+    rbStartSnd=new QRadioButton ( tr ( "Start sound daemon" ),sbgr );
+    rbNotStartSnd=new QRadioButton (
+        tr ( "Use running sound daemon" ),sbgr );
+    cbSndSshTun=new QCheckBox (
+        tr ( "Use SSH port forwarding to tunnel\n"
+             "sound system connections through firewalls" ),sbgr );
+    cbDefSndPort=new QCheckBox ( tr ( "Use default sound port" ),sbgr );
+    sbSndPort=new QSpinBox ( sbgr );
+    sbSndPort->setMinimum ( 1 );
+    sbSndPort->setMaximum ( 99999999 );
+
+
+    QHBoxLayout *sndPortLay = new QHBoxLayout();
+    lSndPort=new QLabel ( tr ( "Sound port:" ),sbgr );
+    sndPortLay->addWidget ( lSndPort );
+    sndPortLay->addWidget ( sbSndPort );
+
+    sLay_sys->addWidget ( pulse );
+    sLay_sys->addWidget ( arts );
+    sLay_sys->addWidget ( esd );
+
+    sLay_opt->addWidget ( rbStartSnd );
+    sLay_opt->addWidget ( rbNotStartSnd );
+    sLay_opt->addWidget ( cbSndSshTun );
+    QFrame* hl=new QFrame ( sbgr );
+    hl->setFrameStyle ( QFrame::HLine | QFrame::Sunken );
+    sLay_opt->addWidget ( hl );
+    sLay_opt->addWidget ( cbDefSndPort );
+    sLay_opt->addLayout ( sndPortLay );
+    sndLay->addWidget ( sound );
+    sndLay->addLayout ( sLay );
+#ifdef Q_OS_WIN
+    arts->hide();
+    hl->hide();
+    cbDefSndPort->hide();
+    lSndPort->hide();
+    sbSndPort->hide();
+#endif
+
+
+    cbClientPrint=new QCheckBox ( tr ( "Client side printing support" ),
+                                  this );
+#ifdef Q_OS_DARWIN
+    arts->hide();
+    pulse->hide();
+    esd->setChecked ( true );
+#endif
+    setLay->addWidget(sbgr);
+    setLay->addWidget ( cbClientPrint );
+    setLay->addStretch();
+
+    connect ( sound,SIGNAL ( toggled ( bool ) ),this,
+              SLOT ( slot_sndToggled ( bool ) ) );
+    connect ( sndsys,SIGNAL ( buttonClicked ( int ) ),this,
+              SLOT ( slot_sndSysSelected ( int ) ) );
+    connect ( rbStartSnd,SIGNAL ( clicked ( ) ),this,
+              SLOT ( slot_sndStartClicked() ) );
+    connect ( rbNotStartSnd,SIGNAL ( clicked ( ) ),this,
+              SLOT ( slot_sndStartClicked() ) );
+    connect ( cbDefSndPort,SIGNAL ( toggled ( bool ) ),this,
+              SLOT ( slot_sndDefPortChecked ( bool ) ) );
+
+    setDefaults();
+    readConfig();
+}
+
+
+MediaWidget::~MediaWidget()
+{
+}
+
+void MediaWidget::slot_sndSysSelected ( int system )
+{
+    rbStartSnd->show();
+    rbNotStartSnd->show();
+    cbSndSshTun->hide();
+    cbDefSndPort->setChecked ( true );
+    cbDefSndPort->setEnabled ( true );
+
+    switch ( system )
+    {
+    case PULSE:
+    {
+        rbStartSnd->hide();
+        rbNotStartSnd->hide();
+        cbSndSshTun->show();
+        cbSndSshTun->setEnabled ( true );
+        break;
+    }
+    case ARTS:
+    {
+        cbDefSndPort->setChecked ( false );
+        cbDefSndPort->setEnabled ( false );
+        sbSndPort->setValue ( 20221 );
+        break;
+    }
+    case ESD:
+    {
+#ifdef Q_OS_WIN
+        rbStartSnd->hide();
+        rbNotStartSnd->hide();
+        cbSndSshTun->show();
+        cbSndSshTun->setEnabled ( false );
+        cbSndSshTun->setChecked ( true );
+#endif
+        sbSndPort->setValue ( 16001 );
+        break;
+    }
+    }
+    slot_sndStartClicked();
+}
+
+void MediaWidget::slot_sndToggled ( bool val )
+{
+    arts->setEnabled ( val );
+    pulse->setEnabled ( val );
+    esd->setEnabled ( val );
+
+    rbStartSnd->setEnabled ( val );
+    rbNotStartSnd->setEnabled ( val );
+
+    cbSndSshTun->setEnabled ( false );
+    if ( pulse->isChecked() )
+        cbSndSshTun->setEnabled ( val );
+    lSndPort->setEnabled ( val );
+    if ( !arts->isChecked() )
+        cbDefSndPort->setEnabled ( val );
+    sbSndPort->setEnabled ( val );
+    if ( val )
+        slot_sndStartClicked();
+
+}
+
+void MediaWidget::slot_sndStartClicked()
+{
+    bool start=rbStartSnd->isChecked();
+#ifdef Q_OS_WIN
+    start=false;
+#endif
+    if ( pulse->isChecked() )
+    {
+        lSndPort->setEnabled ( true );
+        sbSndPort->setEnabled ( true );
+        cbDefSndPort->setEnabled ( true &&sound->isChecked());
+    }
+    else
+    {
+        lSndPort->setEnabled ( !start );
+        sbSndPort->setEnabled ( !start );
+        cbDefSndPort->setEnabled ( !start );
+    }
+    if ( arts->isChecked() )
+        cbDefSndPort->setEnabled ( false );
+    if ( ( !start  && esd->isChecked() ) ||pulse->isChecked() )
+        slot_sndDefPortChecked ( cbDefSndPort->isChecked() );
+
+}
+
+void MediaWidget::slot_sndDefPortChecked ( bool val )
+{
+    sbSndPort->setEnabled ( !val );
+    lSndPort->setEnabled ( !val );
+    if ( val )
+    {
+        if ( pulse->isChecked() )
+            sbSndPort->setValue ( 4713 );
+        if ( arts->isChecked() )
+            sbSndPort->setValue ( 20221 );
+        if ( esd->isChecked() )
+            sbSndPort->setValue ( 16001 );
+    }
+
+}
+
+void MediaWidget::readConfig()
+{
+
+    X2goSettings st ( "sessions" );
+
+    bool snd=st.setting()->value (
+                 sessionId+"/sound",
+                 ( QVariant ) mainWindow->getDefaultUseSound()
+             ).toBool();
+    QString sndsys=st.setting()->value ( sessionId+"/soundsystem",
+                                         "pulse" ).toString();
+    bool startServ=st.setting()->value ( sessionId+"/startsoundsystem",
+                                         true ).toBool();
+    bool sndInTun=st.setting()->value ( sessionId+"/soundtunnel",
+                                        true ).toBool();
+    bool defSndPort=st.setting()->value ( sessionId+"/defsndport",
+                                          true ).toBool();
+    int sndPort= st.setting()->value ( sessionId+"/sndport",4713 ).toInt();
+    if ( startServ )
+        rbStartSnd->setChecked ( true );
+    else
+        rbNotStartSnd->setChecked ( true );
+
+    pulse->setChecked ( true );
+    slot_sndSysSelected ( PULSE );
+#ifdef Q_OS_WIN
+    if ( sndsys=="arts" )
+    {
+        sndsys="pulse";
+    }
+#endif
+    if ( sndsys=="arts" )
+    {
+        arts->setChecked ( true );
+        slot_sndSysSelected ( ARTS );
+    }
+#ifdef	Q_OS_DARWIN
+    sndsys="esd";
+#endif
+    if ( sndsys=="esd" )
+    {
+        esd->setChecked ( true );
+        slot_sndSysSelected ( ESD );
+    }
+    cbSndSshTun->setChecked ( sndInTun );
+    sound->setChecked ( snd );
+    if ( !defSndPort )
+        sbSndPort->setValue ( sndPort );
+    cbDefSndPort->setChecked ( defSndPort );
+    if ( sndsys=="arts" )
+        cbDefSndPort->setChecked ( false );
+    slot_sndToggled ( snd );
+    slot_sndStartClicked();
+
+    if(!sound)
+        cbDefSndPort->setEnabled(false);
+
+    cbClientPrint->setChecked ( st.setting()->value ( sessionId+"/print",
+                                true ).toBool() );
+}
+
+void MediaWidget::setDefaults()
+{
+    sound->setChecked ( true );
+    pulse->setChecked ( true );
+    slot_sndToggled ( true );
+    slot_sndSysSelected ( PULSE );
+    cbSndSshTun->setChecked ( true );
+    rbStartSnd->setChecked ( true );
+    cbClientPrint->setChecked ( true );
+}
+
+void MediaWidget::saveSettings()
+{
+    X2goSettings st ( "sessions" );
+
+    st.setting()->setValue ( sessionId+"/sound",
+                             ( QVariant ) sound->isChecked() );
+    if ( arts->isChecked() )
+        st.setting()->setValue ( sessionId+"/soundsystem",
+                                 ( QVariant ) "arts" );
+    if ( esd->isChecked() )
+        st.setting()->setValue ( sessionId+"/soundsystem",
+                                 ( QVariant ) "esd" );
+    if ( pulse->isChecked() )
+        st.setting()->setValue ( sessionId+"/soundsystem",
+                                 ( QVariant ) "pulse" );
+
+    st.setting()->setValue ( sessionId+"/startsoundsystem",
+                             ( QVariant ) rbStartSnd->isChecked() );
+    st.setting()->setValue ( sessionId+"/soundtunnel",
+                             ( QVariant ) cbSndSshTun->isChecked() );
+    st.setting()->setValue ( sessionId+"/defsndport",
+                             ( QVariant ) cbDefSndPort->isChecked() );
+    st.setting()->setValue ( sessionId+"/sndport",
+                             ( QVariant ) sbSndPort->value() );
+    st.setting()->setValue ( sessionId+"/print",
+                             ( QVariant ) cbClientPrint->isChecked() );
+    st.setting()->sync();
+}
diff --git a/editconnectiondialog.h b/mediawidget.h
similarity index 62%
copy from editconnectiondialog.h
copy to mediawidget.h
index 32b36dd..ceac786 100644
--- a/editconnectiondialog.h
+++ b/mediawidget.h
@@ -15,56 +15,56 @@
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 ***************************************************************************/
 
-#ifndef EDITCONNECTIONDIALOG_H
-#define EDITCONNECTIONDIALOG_H
+#ifndef MEDIAWIDGET_H
+#define MEDIAWIDGET_H
 
-#include "x2goclientconfig.h"
-#include <QStringList>
-#include <QDialog>
+#include <configwidget.h>
 
-class QLineEdit;
-class QPushButton;
-class QCheckBox;
+/**
+	@author Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+*/
 class QSpinBox;
-class QComboBox;
 class QRadioButton;
-class QSlider;
+class QCheckBox;
+class QLineEdit;
+class QSpinBox;
 class QLabel;
-class QTabWidget;
-class ONMainWindow;
-class QStandardItemModel;
-class QTreeView;
+class QPushButton;
+class QMainWindow;
+class QGroupBox;
 
-/**
-	@author Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
-*/
-class SessionWidget;
-class ConnectionWidget;
-class SettingsWidget;
-class ShareWidget;
 
-class EditConnectionDialog : public QDialog
+class MediaWidget : public ConfigWidget
 {
     Q_OBJECT
 public:
-    EditConnectionDialog ( bool newSession, QString id, QWidget * par,  int ind=0,
-                           Qt::WFlags f = 0 );
-    ~EditConnectionDialog();
-private:
-    QTabWidget *fr;
-    SessionWidget* sessSet;
-    ConnectionWidget* conSet;
-    SettingsWidget* otherSet;
-    ShareWidget* exportDir;
-
+    MediaWidget ( QString id, ONMainWindow * mw,
+                  QWidget * parent=0, Qt::WindowFlags f=0 );
+    ~MediaWidget();
+    void setDefaults();
+    void saveSettings();
 
 private slots:
-    void slot_changeCaption ( const QString& newName );
-    void slot_accepted();
-    void slot_default();
-#ifdef Q_OS_LINUX
-    void slot_directRDP(bool direct);
-#endif
+    void slot_sndSysSelected ( int system );
+    void slot_sndToggled ( bool val );
+    void slot_sndStartClicked();
+    void slot_sndDefPortChecked ( bool val );
+private:
+    enum {PULSE,ARTS,ESD};
+    QRadioButton* arts;
+    QRadioButton* pulse;
+    QRadioButton* esd;
+    QCheckBox* sound;
+    QRadioButton* rbStartSnd;
+    QRadioButton* rbNotStartSnd;
+    QCheckBox* cbSndSshTun;
+    QCheckBox* cbClientPrint;
+    QCheckBox* cbDefSndPort;
+    QLabel* lSndPort;
+    QSpinBox* sbSndPort;
+    QGroupBox *sbgr;
+private:
+    void readConfig();
 };
 
 #endif
diff --git a/settingswidget.cpp b/settingswidget.cpp
index 5b634a1..f16924e 100644
--- a/settingswidget.cpp
+++ b/settingswidget.cpp
@@ -43,18 +43,14 @@ SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw,
     QTabWidget* tabSettings=new QTabWidget ( this );
     QFrame* dgb=new QFrame();
     QFrame* kgb=new QFrame();
-    QFrame* sbgr=new QFrame();
     tabSettings->addTab ( dgb, tr ( "&Display" ) );
     tabSettings->addTab ( kgb,tr ( "&Keyboard" ) );
-    tabSettings->addTab ( sbgr,tr ( "Sound" ) );
 #else
     QGroupBox *dgb=new QGroupBox ( tr ( "&Display" ),this );
     clipGr=new QGroupBox ( tr ( "&Clipboard Mode" ),this );
     kgb=new QGroupBox ( tr ( "&Keyboard" ),this );
-    sbgr=new QGroupBox ( tr ( "Sound" ),this );
 #endif
     QVBoxLayout *dbLay = new QVBoxLayout ( dgb );
-    QVBoxLayout *sndLay=new QVBoxLayout ( sbgr );
     QVBoxLayout *cbLay=new QVBoxLayout ( clipGr );
     QHBoxLayout* sLay=new QHBoxLayout ( );
     QVBoxLayout* sLay_sys=new QVBoxLayout ( );
@@ -151,7 +147,9 @@ SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw,
     heightLabel->hide();
 #endif
 
-
+#ifdef Q_OS_DARWIN
+    kgb->hide();
+#endif
     rbClipBoth=new QRadioButton(tr("Bidirectional copy and paste"), clipGr);
     rbClipClient=new QRadioButton(tr("Copy and paste from client to server"), clipGr);
     rbClipServer=new QRadioButton(tr("Copy and paste from server to client"), clipGr);
@@ -197,68 +195,10 @@ SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw,
     kbLay->addWidget ( rbKbdSet);
     kbLay->addWidget( gbKbdString );
 
-    sound=new QCheckBox ( tr ( "Enable sound support" ),sbgr );
-    QButtonGroup* sndsys=new QButtonGroup;
-    pulse=new QRadioButton ( "PulseAudio",sbgr );
-    arts=new QRadioButton ( "arts",sbgr );
-    esd=new QRadioButton ( "esd",sbgr );
-    sndsys->addButton ( pulse,PULSE );
-    sndsys->addButton ( arts,ARTS );
-    sndsys->addButton ( esd,ESD );
-    sndsys->setExclusive ( true );
-    rbStartSnd=new QRadioButton ( tr ( "Start sound daemon" ),sbgr );
-    rbNotStartSnd=new QRadioButton (
-        tr ( "Use running sound daemon" ),sbgr );
-    cbSndSshTun=new QCheckBox (
-        tr ( "Use SSH port forwarding to tunnel\n"
-             "sound system connections through firewalls" ),sbgr );
-    cbDefSndPort=new QCheckBox ( tr ( "Use default sound port" ),sbgr );
-    sbSndPort=new QSpinBox ( sbgr );
-    sbSndPort->setMinimum ( 1 );
-    sbSndPort->setMaximum ( 99999999 );
-
-
-    QHBoxLayout *sndPortLay = new QHBoxLayout();
-    lSndPort=new QLabel ( tr ( "Sound port:" ),sbgr );
-    sndPortLay->addWidget ( lSndPort );
-    sndPortLay->addWidget ( sbSndPort );
-
-    sLay_sys->addWidget ( pulse );
-    sLay_sys->addWidget ( arts );
-    sLay_sys->addWidget ( esd );
-
-    sLay_opt->addWidget ( rbStartSnd );
-    sLay_opt->addWidget ( rbNotStartSnd );
-    sLay_opt->addWidget ( cbSndSshTun );
-    QFrame* hl=new QFrame ( sbgr );
-    hl->setFrameStyle ( QFrame::HLine | QFrame::Sunken );
-    sLay_opt->addWidget ( hl );
-    sLay_opt->addWidget ( cbDefSndPort );
-    sLay_opt->addLayout ( sndPortLay );
-    sndLay->addWidget ( sound );
-    sndLay->addLayout ( sLay );
-#ifdef Q_OS_WIN
-    arts->hide();
-    hl->hide();
-    cbDefSndPort->hide();
-    lSndPort->hide();
-    sbSndPort->hide();
-#endif
-
-
-    cbClientPrint=new QCheckBox ( tr ( "Client side printing support" ),
-                                  this );
-#ifdef	Q_OS_DARWIN
-    arts->hide();
-    pulse->hide();
-    esd->setChecked ( true );
-    kgb->hide();
-#endif
 #ifndef Q_WS_HILDON
     setLay->addWidget ( dgb );
     setLay->addWidget ( clipGr );
     setLay->addWidget ( kgb );
-    setLay->addWidget ( sbgr );
 #ifdef Q_OS_LINUX
 #ifdef CFGCLIENT
     rdpBox=new QGroupBox ( tr ( "RDP Client" ),this );
@@ -291,7 +231,6 @@ SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw,
     setLay->addWidget ( tabSettings );
 // 	cbClientPrint->hide();
 #endif //Q_WS_HILDON
-    setLay->addWidget ( cbClientPrint );
     setLay->addStretch();
 
     connect ( custom,SIGNAL ( toggled ( bool ) ),width,
@@ -314,16 +253,6 @@ SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw,
     connect ( kbRadio, SIGNAL (buttonClicked(QAbstractButton*)), this, SLOT(slot_kbdClicked()));
     connect ( cbSetDPI,SIGNAL ( toggled ( bool ) ),DPI,
               SLOT ( setEnabled ( bool ) ) );
-    connect ( sound,SIGNAL ( toggled ( bool ) ),this,
-              SLOT ( slot_sndToggled ( bool ) ) );
-    connect ( sndsys,SIGNAL ( buttonClicked ( int ) ),this,
-              SLOT ( slot_sndSysSelected ( int ) ) );
-    connect ( rbStartSnd,SIGNAL ( clicked ( ) ),this,
-              SLOT ( slot_sndStartClicked() ) );
-    connect ( rbNotStartSnd,SIGNAL ( clicked ( ) ),this,
-              SLOT ( slot_sndStartClicked() ) );
-    connect ( cbDefSndPort,SIGNAL ( toggled ( bool ) ),this,
-              SLOT ( slot_sndDefPortChecked ( bool ) ) );
 
     setDefaults();
 
@@ -346,10 +275,8 @@ void SettingsWidget::slot_kbdClicked()
 #ifdef Q_OS_LINUX
 void SettingsWidget::setDirectRdp(bool direct)
 {
-    cbClientPrint->setVisible(!direct);
     clipGr->setVisible(!direct);
     kgb->setVisible(!direct);
-    sbgr->setVisible(!direct);
     cbSetDPI->setVisible(!direct);
     cbXinerama->setVisible(!direct);
     display->setVisible(!direct);
@@ -420,108 +347,6 @@ void SettingsWidget::slot_hideIdentWins()
 }
 
 
-void SettingsWidget::slot_sndSysSelected ( int system )
-{
-    rbStartSnd->show();
-    rbNotStartSnd->show();
-    cbSndSshTun->hide();
-    cbDefSndPort->setChecked ( true );
-    cbDefSndPort->setEnabled ( true );
-
-    switch ( system )
-    {
-    case PULSE:
-    {
-        rbStartSnd->hide();
-        rbNotStartSnd->hide();
-        cbSndSshTun->show();
-        cbSndSshTun->setEnabled ( true );
-        break;
-    }
-    case ARTS:
-    {
-        cbDefSndPort->setChecked ( false );
-        cbDefSndPort->setEnabled ( false );
-        sbSndPort->setValue ( 20221 );
-        break;
-    }
-    case ESD:
-    {
-#ifdef Q_OS_WIN
-        rbStartSnd->hide();
-        rbNotStartSnd->hide();
-        cbSndSshTun->show();
-        cbSndSshTun->setEnabled ( false );
-        cbSndSshTun->setChecked ( true );
-#endif
-        sbSndPort->setValue ( 16001 );
-        break;
-    }
-    }
-    slot_sndStartClicked();
-}
-
-void SettingsWidget::slot_sndToggled ( bool val )
-{
-    arts->setEnabled ( val );
-    pulse->setEnabled ( val );
-    esd->setEnabled ( val );
-
-    rbStartSnd->setEnabled ( val );
-    rbNotStartSnd->setEnabled ( val );
-
-    cbSndSshTun->setEnabled ( false );
-    if ( pulse->isChecked() )
-        cbSndSshTun->setEnabled ( val );
-    lSndPort->setEnabled ( val );
-    if ( !arts->isChecked() )
-        cbDefSndPort->setEnabled ( val );
-    sbSndPort->setEnabled ( val );
-    if ( val )
-        slot_sndStartClicked();
-
-}
-
-void SettingsWidget::slot_sndStartClicked()
-{
-    bool start=rbStartSnd->isChecked();
-#ifdef Q_OS_WIN
-    start=false;
-#endif
-    if ( pulse->isChecked() )
-    {
-        lSndPort->setEnabled ( true );
-        sbSndPort->setEnabled ( true );
-        cbDefSndPort->setEnabled ( true &&sound->isChecked());
-    }
-    else
-    {
-        lSndPort->setEnabled ( !start );
-        sbSndPort->setEnabled ( !start );
-        cbDefSndPort->setEnabled ( !start );
-    }
-    if ( arts->isChecked() )
-        cbDefSndPort->setEnabled ( false );
-    if ( ( !start  && esd->isChecked() ) ||pulse->isChecked() )
-        slot_sndDefPortChecked ( cbDefSndPort->isChecked() );
-
-}
-
-void SettingsWidget::slot_sndDefPortChecked ( bool val )
-{
-    sbSndPort->setEnabled ( !val );
-    lSndPort->setEnabled ( !val );
-    if ( val )
-    {
-        if ( pulse->isChecked() )
-            sbSndPort->setValue ( 4713 );
-        if ( arts->isChecked() )
-            sbSndPort->setValue ( 20221 );
-        if ( esd->isChecked() )
-            sbSndPort->setValue ( 16001 );
-    }
-
-}
 
 void SettingsWidget::readConfig()
 {
@@ -643,60 +468,6 @@ void SettingsWidget::readConfig()
                              ).toBool() );
     slot_kbdClicked();
 
-    bool snd=st.setting()->value (
-                 sessionId+"/sound",
-                 ( QVariant ) mainWindow->getDefaultUseSound()
-             ).toBool();
-    QString sndsys=st.setting()->value ( sessionId+"/soundsystem",
-                                         "pulse" ).toString();
-    bool startServ=st.setting()->value ( sessionId+"/startsoundsystem",
-                                         true ).toBool();
-    bool sndInTun=st.setting()->value ( sessionId+"/soundtunnel",
-                                        true ).toBool();
-    bool defSndPort=st.setting()->value ( sessionId+"/defsndport",
-                                          true ).toBool();
-    int sndPort= st.setting()->value ( sessionId+"/sndport",4713 ).toInt();
-    if ( startServ )
-        rbStartSnd->setChecked ( true );
-    else
-        rbNotStartSnd->setChecked ( true );
-
-    pulse->setChecked ( true );
-    slot_sndSysSelected ( PULSE );
-#ifdef Q_OS_WIN
-    if ( sndsys=="arts" )
-    {
-        sndsys="pulse";
-    }
-#endif
-    if ( sndsys=="arts" )
-    {
-        arts->setChecked ( true );
-        slot_sndSysSelected ( ARTS );
-    }
-#ifdef	Q_OS_DARWIN
-    sndsys="esd";
-#endif
-    if ( sndsys=="esd" )
-    {
-        esd->setChecked ( true );
-        slot_sndSysSelected ( ESD );
-    }
-    cbSndSshTun->setChecked ( sndInTun );
-    sound->setChecked ( snd );
-    if ( !defSndPort )
-        sbSndPort->setValue ( sndPort );
-    cbDefSndPort->setChecked ( defSndPort );
-    if ( sndsys=="arts" )
-        cbDefSndPort->setChecked ( false );
-    slot_sndToggled ( snd );
-    slot_sndStartClicked();
-
-    if(!sound)
-        cbDefSndPort->setEnabled(false);
-
-    cbClientPrint->setChecked ( st.setting()->value ( sessionId+"/print",
-                                true ).toBool() );
 }
 
 void SettingsWidget::setDefaults()
@@ -724,13 +495,6 @@ void SettingsWidget::setDefaults()
 
     slot_kbdClicked();
 
-    sound->setChecked ( true );
-    pulse->setChecked ( true );
-    slot_sndToggled ( true );
-    slot_sndSysSelected ( PULSE );
-    cbSndSshTun->setChecked ( true );
-    rbStartSnd->setChecked ( true );
-    cbClientPrint->setChecked ( true );
     cbXinerama->setChecked ( false );
 }
 
@@ -824,28 +588,6 @@ void SettingsWidget::saveSettings()
 
     st.setting()->setValue ( sessionId+"/type",
                              ( QVariant ) ktype );
-    st.setting()->setValue ( sessionId+"/sound",
-                             ( QVariant ) sound->isChecked() );
-    if ( arts->isChecked() )
-        st.setting()->setValue ( sessionId+"/soundsystem",
-                                 ( QVariant ) "arts" );
-    if ( esd->isChecked() )
-        st.setting()->setValue ( sessionId+"/soundsystem",
-                                 ( QVariant ) "esd" );
-    if ( pulse->isChecked() )
-        st.setting()->setValue ( sessionId+"/soundsystem",
-                                 ( QVariant ) "pulse" );
-
-    st.setting()->setValue ( sessionId+"/startsoundsystem",
-                             ( QVariant ) rbStartSnd->isChecked() );
-    st.setting()->setValue ( sessionId+"/soundtunnel",
-                             ( QVariant ) cbSndSshTun->isChecked() );
-    st.setting()->setValue ( sessionId+"/defsndport",
-                             ( QVariant ) cbDefSndPort->isChecked() );
-    st.setting()->setValue ( sessionId+"/sndport",
-                             ( QVariant ) sbSndPort->value() );
-    st.setting()->setValue ( sessionId+"/print",
-                             ( QVariant ) cbClientPrint->isChecked() );
     st.setting()->sync();
 }
 
diff --git a/settingswidget.h b/settingswidget.h
index 9036529..bff8b56 100644
--- a/settingswidget.h
+++ b/settingswidget.h
@@ -51,15 +51,10 @@ public slots:
 #endif
 
 private slots:
-    void slot_sndSysSelected ( int system );
-    void slot_sndToggled ( bool val );
-    void slot_sndStartClicked();
-    void slot_sndDefPortChecked ( bool val );
     void slot_identDisplays();
     void slot_hideIdentWins();
     void slot_kbdClicked();
 private:
-    enum {PULSE,ARTS,ESD};
     QSpinBox* width;
     QSpinBox* height;
     QSpinBox* displayNumber;
@@ -67,9 +62,6 @@ private:
     QRadioButton* custom;
     QRadioButton* display;
     QRadioButton* maxRes;
-    QRadioButton* arts;
-    QRadioButton* pulse;
-    QRadioButton* esd;
     QRadioButton* rbKbdAuto;
     QRadioButton* rbKbdNoSet;
     QRadioButton* rbKbdSet;
@@ -77,16 +69,8 @@ private:
     QLineEdit* leModel;
     QLineEdit* leLayout;
     QLineEdit* leVariant;
-    QCheckBox* sound;
-    QRadioButton* rbStartSnd;
-    QRadioButton* rbNotStartSnd;
-    QCheckBox* cbSndSshTun;
-    QCheckBox* cbClientPrint;
-    QCheckBox* cbDefSndPort;
     QCheckBox* cbSetDPI;
     QCheckBox* cbXinerama;
-    QLabel* lSndPort;
-    QSpinBox* sbSndPort;
     QSpinBox* DPI;
     QLabel* widthLabel;
     QLabel* heightLabel;
@@ -97,7 +81,6 @@ private:
     QPushButton* pbIdentDisp;
     QList <QMainWindow*> identWins;
     QGroupBox *kgb;
-    QGroupBox *sbgr;
     QGroupBox *clipGr;
     QRadioButton *rbClipBoth;
     QRadioButton *rbClipServer;
diff --git a/x2goclient.pro b/x2goclient.pro
index e6eee01..1c3ead1 100755
--- a/x2goclient.pro
+++ b/x2goclient.pro
@@ -62,6 +62,7 @@ HEADERS += configdialog.h \
            configwidget.h \
            connectionwidget.h \
            settingswidget.h \
+           mediawidget.h \
            sharewidget.h \
            clicklineedit.h \
            httpbrokerclient.h \
@@ -79,7 +80,8 @@ HEADERS += configdialog.h \
            folderexplorer.h
 
 SOURCES += sharewidget.cpp \
-           settingswidget.cpp\
+           settingswidget.cpp \
+           mediawidget.cpp \
            configwidget.cpp \
            sessionwidget.cpp \
            connectionwidget.cpp \

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git


More information about the x2go-commits mailing list