This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2goclient. from 4b86435 - xsettingswidget: compile only on Windows. new 9dea920 Add support for new style command line options of xfreerdp on direct RDP connections. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 2 ++ src/onmainwindow.cpp | 81 +++++++++++++++++++++++++++++++++--------------- src/settingswidget.cpp | 72 ++++++++++++++++++++++++++++++++---------- src/settingswidget.h | 3 +- 4 files changed, 115 insertions(+), 43 deletions(-) -- Alioth's /srv/git/code.x2go.org/x2goclient.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit 9dea9204e7c05fc79a03dc960d48483caa93eaa9 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Aug 12 14:57:15 2015 +0200 Add support for new style command line options of xfreerdp on direct RDP connections. --- debian/changelog | 2 ++ src/onmainwindow.cpp | 81 +++++++++++++++++++++++++++++++++--------------- src/settingswidget.cpp | 72 ++++++++++++++++++++++++++++++++---------- src/settingswidget.h | 3 +- 4 files changed, 115 insertions(+), 43 deletions(-) diff --git a/debian/changelog b/debian/changelog index fb0049a..9bada0b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,8 @@ x2goclient (4.0.5.1-0x2go1) UNRELEASED; urgency=low [ Oleksandr Shneyder ] * New upstream release (4.0.5.1): - xsettingswidget: compile only on Windows. + - Add support for new style command line options of xfreerdp on direct RDP + connections. -- X2Go Release Manager <git-admin@x2go.org> Tue, 28 Jul 2015 06:05:27 +0200 diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index 30b5a10..35faced 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -3142,6 +3142,7 @@ void ONMainWindow::startDirectRDP() X2goSettings st ( "sessions" ); QString sid; + bool freeRDPNew=false; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else @@ -3161,6 +3162,11 @@ void ONMainWindow::startDirectRDP() QString client=st.setting()->value ( sid+"/rdpclient", ( QVariant ) "rdesktop").toString(); + if(client=="xfreerdpnew") + { + client="xfreerdp"; + freeRDPNew=true; + } QString host=st.setting()->value ( sid+"/host", ( QVariant ) "").toString(); QString port=st.setting()->value ( sid+"/rdpport", @@ -3183,43 +3189,68 @@ void ONMainWindow::startDirectRDP() QString userOpt; - if (user.length()>0) - { - userOpt=" -u "; - userOpt+=user+" "; - } - QString passOpt; - if (password.length()>0) - { - passOpt=" -p \""; - passOpt+=password+"\" "; - } - QString grOpt; - - if (fullscreen) + QString proxyCmd; + if(!freeRDPNew) { - grOpt=" -f "; - } - else if (maxRes) - { - QDesktopWidget wd; - grOpt=" -D -g "+QString::number( wd.screenGeometry().width())+"x"+QString::number(wd.screenGeometry().height())+" "; + if (user.length()>0) + { + userOpt=" -u "; + userOpt+=user+" "; + } + if (password.length()>0) + { + passOpt=" -p \""; + passOpt+=password+"\" "; + } + if (fullscreen) + { + grOpt=" -f "; + } + else if (maxRes) + { + QDesktopWidget wd; + grOpt=" -D -g "+QString::number( wd.screenGeometry().width())+"x"+QString::number(wd.screenGeometry().height())+" "; + } + else + { + grOpt=" -g "+QString::number(width)+"x"+QString::number(height); + } + proxyCmd=client +" "+params+ grOpt +userOpt+passOpt + host +":"+port ; } else { - grOpt=" -g "+QString::number(width)+"x"+QString::number(height); + if (user.length()>0) + { + userOpt=" /u:"; + userOpt+=user+" "; + } + if (password.length()>0) + { + passOpt=" /p:\""; + passOpt+=password+"\" "; + } + if (fullscreen) + { + grOpt=" /f "; + } + else if (maxRes) + { + QDesktopWidget wd; + grOpt=" /w:"+QString::number( wd.screenGeometry().width())+" /h:"+QString::number(wd.screenGeometry().height())+" "; + } + else + { + grOpt=" /w:"+QString::number(width)+" /h:"+QString::number(height); + } + proxyCmd= client +" "+params+ grOpt +userOpt+passOpt + "/v:"+host +":"+port ; } - - QString proxyCmd=client +" "+params+ grOpt +userOpt+passOpt + host +":"+port ; nxproxy->start ( proxyCmd ); - resumingSession.display="RDP"; resumingSession.server=host; resumingSession.sessionId=sessionExplorer->getLastSession()->name(); resumingSession.crTime=QDateTime::currentDateTime().toString("dd.MM.yy HH:mm:ss"); - showSessionStatus(); // QTimer::singleShot ( 30000,this,SLOT ( slotRestartProxy() ) ); proxyRunning=true; diff --git a/src/settingswidget.cpp b/src/settingswidget.cpp index e2c8881..09f8c3a 100644 --- a/src/settingswidget.cpp +++ b/src/settingswidget.cpp @@ -205,21 +205,24 @@ SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw, setLay->addWidget ( rdpBox ); rRdesktop=new QRadioButton ("rdesktop",rdpBox ); rRdesktop->setChecked(true); - rXfreeRDP=new QRadioButton ( "xfreerdp",rdpBox); + rXfreeRDPOld=new QRadioButton ( "xfreerdp (old style options)",rdpBox); + rXfreeRDPNew=new QRadioButton ( "xfreerdp (new style options)",rdpBox); QButtonGroup* rClient=new QButtonGroup(rdpBox); rClient->addButton ( rRdesktop ); - rClient->addButton ( rXfreeRDP ); + rClient->addButton ( rXfreeRDPOld ); + rClient->addButton ( rXfreeRDPNew ); rClient->setExclusive ( true ); QGridLayout *rdpLay=new QGridLayout(rdpBox); rdpLay->addWidget(rRdesktop,0,0); - rdpLay->addWidget(rXfreeRDP,1,0); - rdpLay->addWidget(new QLabel(tr("Additional parameters:")),2,0); - rdpLay->addWidget(new QLabel(tr("Command line:")),3,0); + rdpLay->addWidget(rXfreeRDPOld,1,0); + rdpLay->addWidget(rXfreeRDPNew,2,0); + rdpLay->addWidget(new QLabel(tr("Additional parameters:")),3,0); + rdpLay->addWidget(new QLabel(tr("Command line:")),4,0); cmdLine=new QLineEdit(rdpBox); cmdLine->setReadOnly(true); params=new QLineEdit(rdpBox); rdpLay->addWidget(cmdLine,4,0,1,2); - rdpLay->addWidget(params,2,1); + rdpLay->addWidget(params,3,1); connect (rClient, SIGNAL(buttonClicked(int)), this, SLOT(updateCmdLine())); connect (radio, SIGNAL(buttonClicked(int)), this, SLOT(updateCmdLine())); connect (params, SIGNAL(textChanged(QString)), this, SLOT(updateCmdLine())); @@ -390,8 +393,10 @@ void SettingsWidget::readConfig() QString client=st.setting()->value ( sessionId+"/rdpclient","rdesktop").toString(); if(client=="rdesktop") rRdesktop->setChecked(true); + else if(client=="xfreerdpnew") + rXfreeRDPNew->setChecked(true); else - rXfreeRDP->setChecked(true); + rXfreeRDPOld->setChecked(true); params->setText(st.setting()->value ( sessionId+"/directrdpsettings","").toString()); #endif #endif @@ -514,12 +519,21 @@ void SettingsWidget::saveSettings() st.setting()->setValue ( sessionId+"/maxdim", ( QVariant ) maxRes->isChecked() ); - if (rXfreeRDP->isChecked()) + if (rXfreeRDPOld->isChecked()) + { st.setting()->setValue ( sessionId+"/rdpclient", ( QVariant ) "xfreerdp" ); + } + else if (rXfreeRDPNew->isChecked()) + { + st.setting()->setValue ( sessionId+"/rdpclient", + ( QVariant ) "xfreerdpnew" ); + } else + { st.setting()->setValue ( sessionId+"/rdpclient", ( QVariant ) "rdesktop" ); + } st.setting()->setValue ( sessionId+"/directrdpsettings", ( QVariant ) params->text()); #endif @@ -617,19 +631,43 @@ void SettingsWidget::updateCmdLine() QString grOpt; - if (fs->isChecked()) + if(!rXfreeRDPNew->isChecked()) { - grOpt=" -f "; - } - if (maxRes->isChecked()) - { - grOpt=" -D -g <maxW>x<maxH>"; + if (fs->isChecked()) + { + grOpt=" -f "; + } + if (maxRes->isChecked()) + { + grOpt=" -D -g <maxW>x<maxH>"; + } + if (custom->isChecked()) + { + grOpt=" -g "+QString::number(width->value())+"x"+QString::number(height->value()); + } + cmdLine->setText(client +" "+params->text()+ grOpt +userOpt+" -p <"+tr("password")+"> "+ server+":"+port ); } - if (custom->isChecked()) + else { - grOpt=" -g "+QString::number(width->value())+"x"+QString::number(height->value()); + if (user.length()>0) + { + userOpt=" /u:"; + userOpt+=user; + } + if (fs->isChecked()) + { + grOpt=" /f "; + } + if (maxRes->isChecked()) + { + grOpt=" /w:<maxW> /h:<maxH>"; + } + if (custom->isChecked()) + { + grOpt=" /w:"+QString::number(width->value())+" /h:"+QString::number(height->value()); + } + cmdLine->setText(client +" "+params->text()+ grOpt +userOpt+" /p:<"+tr("password")+"> /v:"+ server+":"+port ); } - cmdLine->setText(client +" "+params->text()+ grOpt +userOpt+" -p <"+tr("password")+"> "+ server+":"+port ); #endif } #endif diff --git a/src/settingswidget.h b/src/settingswidget.h index e6d10d6..fc8c203 100644 --- a/src/settingswidget.h +++ b/src/settingswidget.h @@ -90,7 +90,8 @@ private: #ifdef Q_OS_LINUX QGroupBox *rdpBox; QRadioButton* rRdesktop; - QRadioButton* rXfreeRDP; + QRadioButton* rXfreeRDPOld; + QRadioButton* rXfreeRDPNew; QLineEdit* cmdLine; QLineEdit* params; QString server; -- Alioth's /srv/git/code.x2go.org/x2goclient.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git