This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2goclient. from bd4ea00 src/onmainwindow.cpp: convert server-reported time to human readable time in Qt's standard format in session list view. new 4eed9dc Support for rootless X2GoKdrive sessions. 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 | 1 + src/onmainwindow.cpp | 45 +++++++++++++++++++++++++++++++++++---------- src/onmainwindow.h | 2 +- 3 files changed, 37 insertions(+), 11 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/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 4eed9dc4beff2c1c53efbaf7861df484684b3bf6 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Thu Feb 17 12:44:22 2022 -0600 Support for rootless X2GoKdrive sessions. --- debian/changelog | 1 + src/onmainwindow.cpp | 45 +++++++++++++++++++++++++++++++++++---------- src/onmainwindow.h | 2 +- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index ec6f587..379d20b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -33,6 +33,7 @@ x2goclient (4.1.2.3-0x2go1) UNRELEASED; urgency=medium - Fix loading HTTP icon in pass dialog in broker mode. - Replace QFont::Thin with 0 to keep compatibility with Qt4. - Add special ACL for exported directories in Windows client. + - Support for rootless X2GoKdrive sessions. [ Ryan Schmidt ] * New upstream version (4.1.2.3): diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index bf6bc26..6eb2680 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -4204,6 +4204,10 @@ x2goSession ONMainWindow::getSessionFromString ( const QString& string ) { s.sessionType=x2goSession::KDRIVE; } + if ( st=='A') + { + s.sessionType=x2goSession::ROOTLESSKDRIVE; + } QString command=cmdinfo.mid ( 1 ); if ( command.length() >0 ) s.command=command; @@ -4632,6 +4636,10 @@ void ONMainWindow::startNewSession() } if(kdrive) sessTypeStr="K "; + if((rootless||resumingSession.published) && kdrive) + { + sessTypeStr="A "; + } QString dpiEnv; QString xdmcpEnv; QString xinerama_env = "X2GO_XINERAMA="; @@ -4844,12 +4852,12 @@ void ONMainWindow::resumeSession ( const x2goSession& s ) xorgMode=SAPP; xorgWidth=QString::number(width); xorgHeight=QString::number(height); - if(s.sessionType == x2goSession::KDRIVE) + if(s.sessionType == x2goSession::KDRIVE || s.sessionType == x2goSession::ROOTLESSKDRIVE) { x2goDebug<<"KDRIVE session, don't start X-Server"; slotSetWinServersReady(); } - if (! startXorgOnStart && (s.sessionType != x2goSession::KDRIVE)) + if (! startXorgOnStart && (s.sessionType != x2goSession::KDRIVE) && (s.sessionType != x2goSession::ROOTLESSKDRIVE)) startXOrg(); // #endif #else /* defined (Q_OS_WIN) */ @@ -4917,7 +4925,7 @@ void ONMainWindow::resumeSession ( const x2goSession& s ) type="query"; #endif - if (s.sessionId.indexOf("RPUBLISHED")!=-1) + if (s.sessionId.indexOf("RPUBLISHED")!=-1 || s.sessionId.indexOf("APUBLISHED")!=-1) { resumingSession.published=true; sbApps->setDisabled(true); @@ -5089,6 +5097,8 @@ void ONMainWindow::selectSession ( QStringList& sessions ) type=tr ( "shadow session" ); if ( s.sessionType==x2goSession::KDRIVE ) type=tr ( "X2GoKDrive session" ); + if ( s.sessionType==x2goSession::ROOTLESSKDRIVE ) + type=tr ( "X2GoKDrive single application" ); item= new QStandardItem ( type ); @@ -5646,6 +5656,7 @@ void ONMainWindow::slotRetResumeSess ( bool result, bool sound=true; bool kdrive=false; + bool rootless=false; int sndSystem=PULSE; QString sndPort; #if !defined (Q_OS_WIN) && !defined (Q_OS_DARWIN) @@ -5686,6 +5697,10 @@ void ONMainWindow::slotRetResumeSess ( bool result, kdrive=st->setting()->value ( sid+"/kdrive", ( QVariant ) false ).toBool(); + + rootless=st->setting()->value ( sid+"/rootless", + ( QVariant ) false ).toBool(); + sound=st->setting()->value ( sid+"/sound", ( QVariant ) true ).toBool(); QString sndsys=st->setting()->value ( @@ -5776,6 +5791,10 @@ void ONMainWindow::slotRetResumeSess ( bool result, { resumingSession.sessionType=x2goSession::KDRIVE; } + if(kdrive&&(rootless||resumingSession.published)) + { + resumingSession.sessionType=x2goSession::ROOTLESSKDRIVE; + } resumingSession.server=host; resumingSession.crTime=QDateTime::currentDateTime().toString ( Qt::ISODate ); @@ -5809,7 +5828,7 @@ void ONMainWindow::slotRetResumeSess ( bool result, else { - if(resumingSession.sessionType==x2goSession::KDRIVE) + if(resumingSession.sessionType==x2goSession::KDRIVE||resumingSession.sessionType==x2goSession::ROOTLESSKDRIVE) { qDebug()<<"resuming kdrive session"; } @@ -6150,7 +6169,7 @@ void ONMainWindow::slotTunnelOk(int) xmodExecuted=false; - qDebug()<<"RESUMING SESSION is KDRIVE: "<<(resumingSession.sessionType== x2goSession::KDRIVE); + qDebug()<<"RESUMING SESSION is KDRIVE: "<<((resumingSession.sessionType== x2goSession::KDRIVE)||(resumingSession.sessionType== x2goSession::ROOTLESSKDRIVE)); nxproxy=new QProcess; proxyErrString=""; @@ -6177,7 +6196,7 @@ void ONMainWindow::slotTunnelOk(int) // the provided one. QString disp="0"; - if(resumingSession.sessionType!= x2goSession::KDRIVE) + if(resumingSession.sessionType!= x2goSession::KDRIVE && resumingSession.sessionType!= x2goSession::ROOTLESSKDRIVE) { disp=getXDisplay(); if ( disp==QString::null ) @@ -6248,7 +6267,7 @@ void ONMainWindow::slotTunnelOk(int) #endif //Q_OS_DARWIN - if(resumingSession.sessionType==x2goSession::KDRIVE) + if(resumingSession.sessionType==x2goSession::KDRIVE || resumingSession.sessionType==x2goSession::ROOTLESSKDRIVE) { bool randr=false; bool fs=false; @@ -6312,6 +6331,10 @@ void ONMainWindow::slotTunnelOk(int) } options<<"--connect"<<"localhost"<<"--port"<<localGraphicPort<<"--title"<<resumingSession.sessionId<<"-S"<<"nx/nx,options="+dirpath+ "/options:"+resumingSession.display<<"--selection"<<clipboard; + if(resumingSession.sessionType==x2goSession::ROOTLESSKDRIVE) + { + options << "--rootless"; + } if(randr) { options<<"--randr"; @@ -6349,7 +6372,9 @@ void ONMainWindow::slotTunnelOk(int) #ifdef Q_OS_WIN if (xorgMode==WIN) { #endif - proxyWinTimer->start ( 300 ); +//don't search proxy for kdrive sessions + if(!(resumingSession.sessionType==x2goSession::KDRIVE || resumingSession.sessionType==x2goSession::ROOTLESSKDRIVE)) + proxyWinTimer->start ( 300 ); #ifdef Q_OS_WIN } #endif @@ -11879,7 +11904,7 @@ void ONMainWindow::slotFindProxyWin() setProxyWinTitle(); proxyWinTimer->stop(); - if (!embedMode && !(resumingSession.sessionType==x2goSession::KDRIVE)) + if (!embedMode && !(resumingSession.sessionType==x2goSession::KDRIVE) && !(resumingSession.sessionType==x2goSession::ROOTLESSKDRIVE)) { if (!useLdap) { @@ -11947,7 +11972,7 @@ void ONMainWindow::slotFindProxyWin() #ifdef Q_OS_WIN x2goDebug<<"Maximize proxy window: "<<maximizeProxyWin; - if ( !startEmbedded &&!(resumingSession.sessionType==x2goSession::KDRIVE)) + if ( !startEmbedded &&!(resumingSession.sessionType==x2goSession::KDRIVE)&&!(resumingSession.sessionType==x2goSession::ROOTLESSKDRIVE)) { if ( maximizeProxyWin ) { diff --git a/src/onmainwindow.h b/src/onmainwindow.h index f53c229..b69b4ea 100644 --- a/src/onmainwindow.h +++ b/src/onmainwindow.h @@ -152,7 +152,7 @@ struct x2goSession bool published; int colorDepth; bool fullscreen; - enum {DESKTOP,ROOTLESS,SHADOW, KDRIVE} sessionType; + enum {DESKTOP,ROOTLESS,SHADOW, KDRIVE, ROOTLESSKDRIVE} sessionType; QString command; void operator = ( const x2goSession& s ); }; -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git