[X2Go-Commits] [x2goclient] 01/01: Add support for new style command line options of xfreerdp on direct RDP connections.
git-admin at x2go.org
git-admin at x2go.org
Wed Aug 12 14:57:22 CEST 2015
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 at 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 at 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
More information about the x2go-commits
mailing list