[X2Go-Commits] [x2goclient] 01/02: Revert " - Split Sessions config widget into Input/output and Media widgets."

git-admin at x2go.org git-admin at x2go.org
Wed Nov 26 17:28:25 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 2bee7c55c3a2f15bd86ed7a93fafd90224ee2e62
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Nov 26 17:26:08 2014 +0100

    Revert "  - Split Sessions config widget into Input/output and Media widgets."
    
    This reverts commit 10478baa16054832791996831c98748e87c53337.
---
 configdialog.cpp         |   16 +--
 configdialog.h           |    2 -
 debian/changelog         |    5 -
 editconnectiondialog.cpp |   12 +-
 editconnectiondialog.h   |    2 -
 mediawidget.cpp          |  338 ----------------------------------------------
 mediawidget.h            |   70 ----------
 settingswidget.cpp       |  264 +++++++++++++++++++++++++++++++++++-
 settingswidget.h         |   17 +++
 x2goclient.pro           |    4 +-
 10 files changed, 281 insertions(+), 449 deletions(-)

diff --git a/configdialog.cpp b/configdialog.cpp
index 434a148..f85d8da 100644
--- a/configdialog.cpp
+++ b/configdialog.cpp
@@ -36,7 +36,6 @@
 #include "x2goclientconfig.h"
 #include "connectionwidget.h"
 #include "settingswidget.h"
-#include "mediawidget.h"
 
 
 #if defined ( Q_OS_WIN) && defined (CFGCLIENT )
@@ -280,11 +279,8 @@ 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 (
@@ -408,7 +404,6 @@ void ConfigDialog::slot_accepted()
                                  ( QVariant ) cbStartEmbed->isChecked() );
         st.setting()->sync();
         setWidg->saveSettings();
-        mediaWidget->saveSettings();
         conWidg->saveSettings();
     }
 #if defined ( Q_OS_WIN) && defined (CFGCLIENT )
@@ -578,19 +573,15 @@ 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 ( "&Input/Output" ) );
-        tabWidg->addTab ( mediaWidget, tr ( "&Media" ) );
+        tabWidg->addTab ( setWidg, tr ( "&Settings" ) );
         advancedOptions->setText ( tr ( "Advanced options" ) +" <<" );
     }
     advOptionsShown=!advOptionsShown;
@@ -634,11 +625,6 @@ void ConfigDialog::slotDefaults()
         setWidg->setDefaults();
     }
     break;
-    case 4:
-    {
-        mediaWidget->setDefaults();
-    }
-    break;
 #endif
     }
 
diff --git a/configdialog.h b/configdialog.h
index 8156f2a..148462e 100644
--- a/configdialog.h
+++ b/configdialog.h
@@ -30,7 +30,6 @@ class QButtonGroup;
 class PrintWidget;
 class ConnectionWidget;
 class SettingsWidget;
-class MediaWidget;
 class QTabWidget;
 class QGroupBox;
 #if defined (Q_OS_WIN) && defined (CFGCLIENT )
@@ -87,7 +86,6 @@ 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 4f33758..d5beff8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,11 +12,6 @@ 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: #770962).
-
  -- 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 741a90a..5cd0d3d 100644
--- a/editconnectiondialog.cpp
+++ b/editconnectiondialog.cpp
@@ -27,7 +27,6 @@
 #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 )
@@ -53,13 +52,11 @@ 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 ( "&Input/Output" ) );
-    fr->addTab ( mediaSet,tr ( "&Media" ) );
+    fr->addTab ( otherSet,tr ( "&Settings" ) );
     if (! parent->getHideFolderSharing())
         fr->addTab ( exportDir,tr ( "&Shared folders" ) );
 
@@ -132,7 +129,6 @@ void EditConnectionDialog::slot_accepted()
     conSet->saveSettings();
     exportDir->saveSettings();
     otherSet->saveSettings();
-    mediaSet->saveSettings();
     sessSet->saveSettings();
 }
 
@@ -158,11 +154,6 @@ void EditConnectionDialog::slot_default()
     break;
     case 3:
     {
-        mediaSet->setDefaults();
-    }
-    break;
-    case 4:
-    {
         exportDir->setDefaults();
     }
     break;
@@ -174,7 +165,6 @@ 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 4012826..32b36dd 100644
--- a/editconnectiondialog.h
+++ b/editconnectiondialog.h
@@ -41,7 +41,6 @@ class QTreeView;
 class SessionWidget;
 class ConnectionWidget;
 class SettingsWidget;
-class MediaWidget;
 class ShareWidget;
 
 class EditConnectionDialog : public QDialog
@@ -56,7 +55,6 @@ private:
     SessionWidget* sessSet;
     ConnectionWidget* conSet;
     SettingsWidget* otherSet;
-    MediaWidget* mediaSet;
     ShareWidget* exportDir;
 
 
diff --git a/mediawidget.cpp b/mediawidget.cpp
deleted file mode 100644
index b1e7df3..0000000
--- a/mediawidget.cpp
+++ /dev/null
@@ -1,338 +0,0 @@
-/**************************************************************************
-*   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/mediawidget.h b/mediawidget.h
deleted file mode 100644
index ceac786..0000000
--- a/mediawidget.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/**************************************************************************
-*   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/>. *
-***************************************************************************/
-
-#ifndef MEDIAWIDGET_H
-#define MEDIAWIDGET_H
-
-#include <configwidget.h>
-
-/**
-	@author Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
-*/
-class QSpinBox;
-class QRadioButton;
-class QCheckBox;
-class QLineEdit;
-class QSpinBox;
-class QLabel;
-class QPushButton;
-class QMainWindow;
-class QGroupBox;
-
-
-class MediaWidget : public ConfigWidget
-{
-    Q_OBJECT
-public:
-    MediaWidget ( QString id, ONMainWindow * mw,
-                  QWidget * parent=0, Qt::WindowFlags f=0 );
-    ~MediaWidget();
-    void setDefaults();
-    void saveSettings();
-
-private slots:
-    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 f16924e..5b634a1 100644
--- a/settingswidget.cpp
+++ b/settingswidget.cpp
@@ -43,14 +43,18 @@ 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 ( );
@@ -147,9 +151,7 @@ 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);
@@ -195,10 +197,68 @@ 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 );
@@ -231,6 +291,7 @@ 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,
@@ -253,6 +314,16 @@ 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();
 
@@ -275,8 +346,10 @@ 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);
@@ -347,6 +420,108 @@ 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()
 {
@@ -468,6 +643,60 @@ 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()
@@ -495,6 +724,13 @@ 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 );
 }
 
@@ -588,6 +824,28 @@ 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 bff8b56..9036529 100644
--- a/settingswidget.h
+++ b/settingswidget.h
@@ -51,10 +51,15 @@ 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;
@@ -62,6 +67,9 @@ private:
     QRadioButton* custom;
     QRadioButton* display;
     QRadioButton* maxRes;
+    QRadioButton* arts;
+    QRadioButton* pulse;
+    QRadioButton* esd;
     QRadioButton* rbKbdAuto;
     QRadioButton* rbKbdNoSet;
     QRadioButton* rbKbdSet;
@@ -69,8 +77,16 @@ 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;
@@ -81,6 +97,7 @@ 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 1c3ead1..e6eee01 100755
--- a/x2goclient.pro
+++ b/x2goclient.pro
@@ -62,7 +62,6 @@ HEADERS += configdialog.h \
            configwidget.h \
            connectionwidget.h \
            settingswidget.h \
-           mediawidget.h \
            sharewidget.h \
            clicklineedit.h \
            httpbrokerclient.h \
@@ -80,8 +79,7 @@ HEADERS += configdialog.h \
            folderexplorer.h
 
 SOURCES += sharewidget.cpp \
-           settingswidget.cpp \
-           mediawidget.cpp \
+           settingswidget.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