This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit 10478baa16054832791996831c98748e87c53337 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Nov 26 14:06:14 2014 +0100 - Split Sessions config widget into Input/output and Media widgets. (Fixes: #770962). --- 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..4f33758 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: #770962). + -- Mike Gabriel <mike.gabriel@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@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@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@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