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@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@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@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@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@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