The branch, build-main has been updated via 188aa3277110f48cdc58754b69a7b1c9a9e63cdc (commit) via e43d7eb9a0e8654bbfc6c6a667c30d2f48eaf7df (commit) via f9f9efef4450485b53cf43100d1ad14ea8f96b16 (commit) via 3b20e0e71cf3c01b1f73ecee2014c4ddf5c07a3f (commit) via 93d11591928f54ff28a06edd10cb13494ef10d41 (commit) via db39c41e27721872a3c235298c42c41d202d35b6 (commit) via acc0632ba462e6e3be91bb70e812c00fcfb176c6 (commit) via 178a4015b4928a708fa37dd507c0a5f89fa152cf (commit) via c8b59f5802e87941dd8c8a462b8b6173e32eb8d9 (commit) via 437e34c48f017b0014bb422da512f2bcd0e07710 (commit) via 236d841becb21398f6137f6e8c569494f10ab11f (commit) via 0cf7b36b26b81dd2bbb650474ee8af71f82e2ff1 (commit) via ad93ba72500277997ffb92b966dc7d14a5fbe14a (commit) via 4a931302e089e07c9d9f01ca263c1c682ce00974 (commit) via a783ba67041653511cff25031dc9c81995225e66 (commit) via c56b99a96b23d2978231b5d3a892b658a727e363 (commit) via 4375d10a6834c67ddf638ea52a121d8e04840a0a (commit) from 5f90e9ae43cecf2e82ec10ae93e64a854383f763 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: .gitignore | 17 ++++ Makefile | 4 +- VERSION | 2 +- config_win.bat | 1 + configdialog.cpp | 2 +- debian/changelog | 36 ++++++++ desktop/x2goclient.desktop | 2 +- onmainwindow.cpp | 69 ++++++++++++++- onmainwindow.h | 7 ++- onmainwindow_part2.cpp | 11 ++- onmainwindow_part3.cpp | 93 +++++++++------------ onmainwindow_part4.cpp | 34 +++++--- onmainwindow_privat.h | 6 +- png/power-button.png | Bin 0 -> 762 bytes resources.rcc | 1 + sshmasterconnection.cpp | 4 + sshprocess.h | 5 +- version.h | 2 +- x2goclient.pro | 201 ++++++++++++++++++++++---------------------- x2goclient_de.ts | 4 +- x2goclient_en.ts | 2 +- x2goclient_fr.ts | 2 +- x2goclient_nb_no.ts | 4 +- x2goclient_ru.ts | 4 +- x2goclient_sv.ts | 39 +++++---- x2goclient_zh_tw.ts | 2 +- x2goplugin.rc | 10 +- 27 files changed, 348 insertions(+), 216 deletions(-) create mode 100644 .gitignore create mode 100644 png/power-button.png The diff of changes is: diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..721e32c --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Temporary object files/static libs. +*.[oa] + +# Generated by qmake. +moc_*.cpp +ui_*.h +qrc_resources.cpp + +# VIM temporary files. +.*.sw* + +# Generated by lrelease. +x2goclient_*.qm + +# Generated by qmake when building on OS X. +x2goclient.app + diff --git a/Makefile b/Makefile index 5831516..30c12dc 100755 --- a/Makefile +++ b/Makefile @@ -28,12 +28,12 @@ all: build build: build_client build_plugin build_man build_client: - lrelease-qt4 x2goclient.pro + lrelease x2goclient.pro mkdir -p $(CLIENT_DIR) && cd $(CLIENT_DIR) && qmake-qt4 ../x2goclient.pro cd $(CLIENT_DIR) && $(MAKE) build_plugin: - lrelease-qt4 x2goclient.pro + lrelease x2goclient.pro mkdir -p $(PLUGIN_DIR) && cd $(PLUGIN_DIR) && X2GO_CLIENT_TARGET=plugin qmake-qt4 ../x2goclient.pro cd $(PLUGIN_DIR) && $(MAKE) diff --git a/VERSION b/VERSION index 57055b8..bac3e99 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.99.1.0 +3.99.1.1 diff --git a/config_win.bat b/config_win.bat index 98f1987..695b3e2 100755 --- a/config_win.bat +++ b/config_win.bat @@ -1,4 +1,5 @@ mingw32-make distclean +lrelease x2goclient.pro set X2GO_CLIENT_TARGET= qmake diff --git a/configdialog.cpp b/configdialog.cpp index 6dad751..e8e2a43 100644 --- a/configdialog.cpp +++ b/configdialog.cpp @@ -4,7 +4,7 @@ // Description: // // -// Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de>, (C) 2006-2011 +// Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de>, (C) 2006-2012 // // Copyright: See COPYING file that comes with this distribution // diff --git a/debian/changelog b/debian/changelog index db8002c..43f67dd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,39 @@ +x2goclient (3.99.1.1-0~x2go1) unstable; urgency=low + + [ Oleksandr Shneyder ] + * New upstream version (3.99.1.1): + - not including <netinet/in.h> on Q_OS_WIN platform. + - not updating Xinerama configuration in "fullscreen" mode. + - command line argument "--xinerama": use Xinerama by default. + - improved support for use in TCE + command line argument --thinclient - running without window manager + command line argument --haltbt - button to shutdown the thin client + - Fix comments in copyright headers. + + [ Mike Gabriel ] + * New upstream version (3.99.1.1): + - Update copyright year in about window. Including all translations. + - Power button icon: make inner part transparent. Needed for people + with a dark GUI theme. + - Prettify x2goclient.pro. + + [ Mihai Moldovan ] + * New upstream version (3.99.1.1): + - Use the Mac OS X 10.5 SDK instead 10.6 to remain compatible with + Leopard. + - Add .gitignore file. + - The default of a 10 seconds SSH connection timeout is pretty low, + especially when using tcp_wrappers with the identd option turned on. + Wait for a 60 seconds timeout. + - On Mac OS X connect to Xserver via Unix file socket. + - Properly set DISPLAY environment variable on Mac OS X. + + [ Daniel Lindgren ] + * New upstream version (3.99.1.1): + - Update/improve Swedish translation after testing x2goclient on Windows. + + -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 07 Mar 2012 20:42:36 +0100 + x2goclient (3.99.1.0-0~x2go1) unstable; urgency=low [ Mike Gabriel ] diff --git a/desktop/x2goclient.desktop b/desktop/x2goclient.desktop index ba3e4ac..fd29411 100644 --- a/desktop/x2goclient.desktop +++ b/desktop/x2goclient.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Encoding=UTF-8 -Version=3.99.1.0 +Version=3.99.1.1 Type=Application Name=X2Go Client Exec=/usr/bin/x2goclient diff --git a/onmainwindow.cpp b/onmainwindow.cpp index a543ce1..aa15ae6 100644 --- a/onmainwindow.cpp +++ b/onmainwindow.cpp @@ -1,9 +1,9 @@ -/*************************************************************************** -* Copyright (C) 2005-2012 by Oleksandr Shneyder * -* oleksandr.shneyder@obviously-nice.de * +/************************************************************************** +* Copyright (C) 2005-2012 by Oleksandr Shneyder * +* oleksandr.shneyder@obviously-nice.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 F* +* 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. * * * @@ -57,6 +57,8 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) extLogin=false; startMaximized=false; startHidden=false; + thinMode=false; + showHaltBtn=false; defaultUseSound=true; defaultSetKbd=true; defaultSetDPI=false; @@ -64,6 +66,7 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) extStarted=false; defaultLink=2; defaultFullscreen=false; + defaultXinerama=false; acceptRsa=false; cardStarted=false; cardReady=false; @@ -392,6 +395,28 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) SLOT ( slotResize ( const QSize ) ) ); slotResize ( fr->size() ); + + +#ifdef Q_OS_LINUX + if (thinMode) + { + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(slotSyncX())); + timer->start(200); + } +#endif + if (showHaltBtn) + { + QPushButton* bHalt=new QPushButton(bgFrame); + QPixmap p(":/png/power-button.png"); + bHalt->setIcon(p); + bHalt->setFocusPolicy(Qt::NoFocus); + bHalt->setFixedSize(32,32); + bHalt->move(10,10); + bHalt->show(); + connect(bHalt,SIGNAL(clicked()),this, SLOT(slotShutdownThinClient())); + } + if (brokerMode) { broker=new HttpBrokerClient ( this, &config ); @@ -418,6 +443,12 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) connect( xineramaTimer, SIGNAL(timeout()), this, SLOT(slotConfigXinerama())); x2goDebug<<"ONMainWindows constructor finished, home Directory is:"<<homeDir<<endl; + if (thinMode) + { + showMaximized(); + activateWindow(); + raise(); + } } @@ -429,8 +460,38 @@ ONMainWindow::~ONMainWindow() x2goDebug<<"end of ONMainWindow destructor"; } +void ONMainWindow::slotShutdownThinClient() +{ + QFile file(QDir::homePath()+"/.halt"); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) + return; + + QTextStream out(&file); + out << "\n"; + file.close(); +} +void ONMainWindow::slotSyncX() +{ + if (proxyWinId) + { + if (!isHidden()) + hide(); +#ifdef Q_OS_LINUX + XSync(QX11Info::display(),false); +#endif + } + else + { + if (isHidden()) + { + showMaximized(); + activateWindow(); + raise(); + } + } +} void ONMainWindow::installTranslator() diff --git a/onmainwindow.h b/onmainwindow.h index 79d60e4..1f2f08f 100644 --- a/onmainwindow.h +++ b/onmainwindow.h @@ -132,6 +132,7 @@ struct x2goSession QString sndPort; QString fsPort; int colorDepth; + bool fullscreen; enum {DESKTOP,ROOTLESS,SHADOW} sessionType; QString command; void operator = ( const x2goSession& s ); @@ -464,6 +465,7 @@ private: bool startMaximized; bool startHidden; bool defaultUseSound; + bool defaultXinerama; bool cardStarted; bool defaultSetKbd; bool showExport; @@ -474,6 +476,7 @@ private: bool changeBrokerPass; bool connTest; bool embedMode; + bool thinMode; QString statusString; int defaultLink; int defaultQuality; @@ -626,6 +629,7 @@ private: bool proxyWinEmbedded; bool useLdap; bool showToolBar; + bool showHaltBtn; bool newSession; bool ldapOnly; bool isScDaemonOk; @@ -820,7 +824,6 @@ private slots: void slotChangeBrokerPass(); void slotTestConnection(); void slotCheckPortableDir(); - void readUsers(); void slotSelectedFromList ( UserButton* user ); void slotUnameEntered(); @@ -835,6 +838,8 @@ private slots: void slotSshConnectionOk(); void slotServSshConnectionOk(QString server); void slotChangeKbdLayout(const QString& layout); + void slotSyncX(); + void slotShutdownThinClient(); public slots: void slotConfig(); diff --git a/onmainwindow_part2.cpp b/onmainwindow_part2.cpp index 7d1a206..e8df279 100644 --- a/onmainwindow_part2.cpp +++ b/onmainwindow_part2.cpp @@ -730,6 +730,7 @@ void ONMainWindow::startNewSession() cmd+=sessTypeStr+QString::number ( shadowMode ) +"XSHAD"+ shadowUser+"XSHAD"+shadowDisplay; } + resumingSession.fullscreen=fullscreen; x2goDebug<<cmd<<endl; if ( managedMode ) { @@ -908,6 +909,7 @@ void ONMainWindow::resumeSession ( const x2goSession& s ) geometry=QString::number ( width ) +"x"+ QString::number ( height ); } + resumingSession.fullscreen=fullscreen; QString link; switch ( speed ) { @@ -1898,12 +1900,17 @@ void ONMainWindow::slotTunnelOk() env << "NX_CLIENT="+QCoreApplication::applicationFilePath (); #if defined ( Q_OS_WIN ) || defined ( Q_OS_DARWIN ) + // On Mac OS X, we want to make sure that DISPLAY is set to a proper value, + // but at the same time don't want to set the value ourselves but keep + // the provided one. QString disp=getXDisplay(); if ( disp==QString::null ) { //slotProxyerror ( QProcess::FailedToStart ); return; } +#endif // Q_OS_WIN || Q_OS_DARWIN +#if defined ( Q_OS_WIN ) if ( dispInd==-1 ) { env <<"DISPLAY=localhost:"+disp; @@ -1915,8 +1922,8 @@ void ONMainWindow::slotTunnelOk() /* x2goDebug<<"existing env DISPLAY("<<dispInd<< ") DISPLAY=localhost:"+disp<<endl;*/ } -#endif -#ifdef Q_OS_DARWIN +#endif // Q_OS_WIN +#if defined ( Q_OS_DARWIN ) //setting /usr/X11/bin to find xauth env.insert ( 0, diff --git a/onmainwindow_part3.cpp b/onmainwindow_part3.cpp index a2ff1e6..21434e2 100644 --- a/onmainwindow_part3.cpp +++ b/onmainwindow_part3.cpp @@ -1,9 +1,9 @@ -/*************************************************************************** -* Copyright (C) 2005-2012 by Oleksandr Shneyder * -* oleksandr.shneyder@obviously-nice.de * +/************************************************************************** +* Copyright (C) 2005-2012 by Oleksandr Shneyder * +* oleksandr.shneyder@obviously-nice.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 F* +* 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. * * * @@ -247,6 +247,22 @@ bool ONMainWindow::parseParameter ( QString param ) startMaximized=true; return true; } + if ( param=="--xinerama" ) + { + defaultXinerama=true; + return true; + } + if (param == "--thinclient") + { + thinMode=true; + startMaximized=true; + return true; + } + if (param == "--haltbt") + { + showHaltBtn=true; + return true; + } if ( param=="--hide" ) { startHidden=true; @@ -694,7 +710,10 @@ void ONMainWindow::showHelp() "--hide\t\t\t\t start hidden\n" "--portable\t\t\t start in \"portable\" mode\n" "--pgp-card\t\t\t use openPGP card authentication\n" + "--xinerama\t\t\t use Xinerama by default\n" "--ldap-printing\t\t\t allow client side printing in LDAP mode\n" + "--thinclient\t\t\t run without window manager\n" + "--haltbt\t\t\t show shutdown button\n" "--add-to-known-hosts\t\t add RSA key fingerprint to " ".ssh/known_hosts\n" "\t\t\t\t if authenticity of server can't be established\n\n" @@ -1520,7 +1539,7 @@ void ONMainWindow::slotSupport() void ONMainWindow::slotAbout() { QString aboutStr=tr ( - "</b><br> (C. 2006-2011 <b>obviously nice</b>: " + "</b><br> (C. 2006-2012 <b>obviously nice</b>: " "Oleksandr Shneyder, Heinz-Markus Graesing)<br>" ); if ( embedMode ) aboutStr+=tr ( "<br>x2goplugin mode was sponsored by " @@ -2035,63 +2054,29 @@ bool ONMainWindow::checkAgentProcess() #if defined ( Q_OS_DARWIN ) QString ONMainWindow::getXDisplay() { - QTcpSocket tcpSocket ( this ); - uint dispNumber=0; - QString xname,xdir,xopt; - dispNumber=0; - xdir=ConfigDialog::getXDarwinDirectory(); - xname=xdir+"/Contents/MacOS/X11"; - xopt=" -rootless :0"; + QLocalSocket unixSocket (this); + QString xsocket (getenv ("DISPLAY")); - //for newer versions of XQuartz start startx instead of X11.app - xname="/usr/X11/bin/startx"; - xopt=""; - tcpSocket.connectToHost ( "127.0.0.1",6000+dispNumber ); - - if ( tcpSocket.waitForConnected ( 3000 ) ) - { - tcpSocket.close(); - return QString::number ( dispNumber ); - } - if ( xname==QString::null ) + // OS X starts the X11 server automatically, as soon as the launchd UNIX socket + // is accessed. + // On user login, the DISPLAY environment variable is set to this said existing + // socket. + // By now, we should have a socket. Test, if connecting works. + if ((!xsocket.isEmpty ())) { - QMessageBox::critical ( - this,tr ( "Can't connect to X-Server" ), - tr ( - "Can't connect to X-Server\nPlease check your settings" - ) ); - slotConfig(); - return QString::null; - } - QProcess* pr=new QProcess ( this ); - pr->setWorkingDirectory ( xdir ); - pr->start ( xname+" "+xopt,QIODevice::NotOpen ); - if ( pr->waitForStarted ( 3000 ) ) - { -#ifdef Q_OS_DARWIN - //FIXME: the call of unistd.h sleep() do not work on all - // Mac OS X systems - system ( "sleep 3" ); -#endif + unixSocket.connectToServer (xsocket); - tcpSocket.connectToHost ( "127.0.0.1",6000+dispNumber ); - if ( tcpSocket.waitForConnected ( 1000 ) ) + if (unixSocket.waitForConnected (10000)) { - tcpSocket.close(); - return QString::number ( dispNumber ); + unixSocket.disconnectFromServer (); + return (xsocket); } - QMessageBox::critical ( - this,tr ( "Can't connect to X-Server" ), - tr ( - "Can't connect to X-Server\nPlease check your settings" - ) ); - slotConfig(); - return QString::null; } + // And if not, error out. QMessageBox::critical ( - this,QString::null, + this,tr ( "Can't connect to X server\nPlease check your settings" ), tr ( - "Can't start X Server\nPlease check your settings" ) ); + "Can't start X server\nPlease check your settings" ) ); slotConfig(); return QString::null; } diff --git a/onmainwindow_part4.cpp b/onmainwindow_part4.cpp index 39343a1..25ca9a1 100644 --- a/onmainwindow_part4.cpp +++ b/onmainwindow_part4.cpp @@ -1107,18 +1107,22 @@ void ONMainWindow::slotConfigXinerama() if (newGeometry==lastDisplayGeometry) return; lastDisplayGeometry=newGeometry; - x2goDebug<<"New proxy geometry: "<<lastDisplayGeometry<<endl; + x2goDebug<<"New proxy geometry: "<<lastDisplayGeometry<<endl; QDesktopWidget* root=QApplication::desktop(); QList<QRect> newXineramaScreens; for (int i=0; i< root->numScreens();++i) { - QRect intersection=root->screenGeometry(i).intersected(lastDisplayGeometry); + QRect intersection; + if (resumingSession.fullscreen) + intersection=root->screenGeometry(i); + else + intersection=root->screenGeometry(i).intersected(lastDisplayGeometry); if (!intersection.isNull()) { - x2goDebug<<"intersected with "<<i<<": "<<intersection<<endl; + x2goDebug<<"intersected with "<<i<<": "<<intersection<<endl; intersection.moveLeft(intersection.x()-lastDisplayGeometry.x()); intersection.moveTop(intersection.y()-lastDisplayGeometry.y()); - x2goDebug<<"xinerama screen: "<<intersection<<endl; + x2goDebug<<"xinerama screen: "<<intersection<<endl; newXineramaScreens<<intersection; } } @@ -1143,6 +1147,8 @@ void ONMainWindow::slotConfigXinerama() void ONMainWindow::slotXineramaConfigured() { + if (resumingSession.fullscreen) + return; if (xinSizeInc == -1) xinSizeInc=1; else @@ -1167,8 +1173,8 @@ void ONMainWindow::slotFindProxyWin() { #ifndef Q_OS_DARWIN x2goDebug<<"search proxy win: "<<"X2GO-"+resumingSession.sessionId; - proxyWinId=findWindow ( "X2GO-"+resumingSession.sessionId ); + bool xinerama=defaultXinerama; if ( proxyWinId ) { x2goDebug<<"proxy win found:"<<proxyWinId; @@ -1188,14 +1194,8 @@ void ONMainWindow::slotFindProxyWin() else st= new X2goSettings( "sessions" ); uint displays=QApplication::desktop()->numScreens(); - if (st->setting()->value ( sid+"/xinerama", - ( QVariant ) false ).toBool()) - { - x2goDebug<<"Starting xinerama timer\n"; - lastDisplayGeometry=QRect(); - xineramaScreens.clear(); - xineramaTimer->start(500); - } + xinerama=st->setting()->value ( sid+"/xinerama", + ( QVariant ) defaultXinerama ).toBool(); if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool()) { @@ -1209,6 +1209,14 @@ void ONMainWindow::slotFindProxyWin() return; } } + if (xinerama) + { + x2goDebug<<"Starting xinerama timer\n"; + lastDisplayGeometry=QRect(); + xineramaScreens.clear(); + xineramaTimer->start(500); + } + if ( embedMode ) { if ( config.rootless ) diff --git a/onmainwindow_privat.h b/onmainwindow_privat.h index 9e4375a..aa049f7 100644 --- a/onmainwindow_privat.h +++ b/onmainwindow_privat.h @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2005-2012 by Oleksandr Shneyder * - * oleksandr.shneyder@obviously-nice.de * + * Copyright (C) 2005-2012 by Oleksandr Shneyder * + * oleksandr.shneyder@obviously-nice.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 * @@ -66,7 +66,7 @@ #include <QFileDialog> #include <QHttp> #include <QUrl> -#include <QTcpSocket> +#include <QLocalSocket> #include <QPlastiqueStyle> #include "sshprocess.h" #include "imgframe.h" diff --git a/png/power-button.png b/png/power-button.png new file mode 100644 index 0000000..584cf2a Binary files /dev/null and b/png/power-button.png differ diff --git a/resources.rcc b/resources.rcc index e3b6a5e..0b2996e 100644 --- a/resources.rcc +++ b/resources.rcc @@ -12,6 +12,7 @@ <file>png/ico_mini.png</file> <file>png/sess_ico.png</file> <file>png/ico_440x180.png</file> + <file>png/power-button.png</file> <file>icons/128x128/x2go.png</file> <file>icons/128x128/x2gosession.png</file> <file>icons/128x128/create_file.png</file> diff --git a/sshmasterconnection.cpp b/sshmasterconnection.cpp index 2626346..9c6626a 100644 --- a/sshmasterconnection.cpp +++ b/sshmasterconnection.cpp @@ -137,6 +137,7 @@ void SshMasterConnection::run() #endif // int verbosity=SSH_LOG_PROTOCOL; + long timeout = 60; my_ssh_session = ssh_new(); if ( my_ssh_session == NULL ) @@ -153,6 +154,9 @@ void SshMasterConnection::run() ssh_options_set ( my_ssh_session, SSH_OPTIONS_SSH_DIR, (mainWnd->getHomeDirectory()+"/ssh").toAscii()); #endif // ssh_options_set(my_ssh_session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity); + + ssh_options_set(my_ssh_session, SSH_OPTIONS_TIMEOUT, &timeout); + if ( !sshConnect() ) { QString err=ssh_get_error ( my_ssh_session ); diff --git a/sshprocess.h b/sshprocess.h index 9d7a2b1..54e94b5 100644 --- a/sshprocess.h +++ b/sshprocess.h @@ -22,10 +22,13 @@ #ifndef SSHPROCESS_H #define SSHPROCESS_H -#include <netinet/in.h> #include <libssh/libssh.h> #include <QObject> +#ifndef Q_OS_WIN +#include <netinet/in.h> +#endif + class SshMasterConnection; diff --git a/version.h b/version.h index 00471b6..60acdf9 100644 --- a/version.h +++ b/version.h @@ -1 +1 @@ -#define VERSION "3.99.1.0" +#define VERSION "3.99.1.1" diff --git a/x2goclient.pro b/x2goclient.pro index 5c96688..16c5f06 100755 --- a/x2goclient.pro +++ b/x2goclient.pro @@ -12,13 +12,14 @@ CONFIG += $$(X2GO_LINUX_STATIC) FORMS += cupsprintsettingsdialog.ui cupsprintwidget.ui printdialog.ui printercmddialog.ui printwidget.ui xsettingsui.ui brokerpassdialog.ui contest.ui -TRANSLATIONS += x2goclient_en.ts -TRANSLATIONS += x2goclient_de.ts -TRANSLATIONS += x2goclient_ru.ts -TRANSLATIONS += x2goclient_nb_no.ts -TRANSLATIONS += x2goclient_sv.ts -TRANSLATIONS += x2goclient_fr.ts -TRANSLATIONS += x2goclient_zh_tw.ts +TRANSLATIONS += x2goclient_en.ts \ + x2goclient_de.ts \ + x2goclient_ru.ts \ + x2goclient_nb_no.ts \ + x2goclient_sv.ts \ + x2goclient_fr.ts \ + x2goclient_zh_tw.ts + HEADERS += configdialog.h \ editconnectiondialog.h \ exportdialog.h \ @@ -31,78 +32,78 @@ HEADERS += configdialog.h \ sshprocess.h \ SVGFrame.h \ userbutton.h \ - x2goclientconfig.h \ - x2gologdebug.h \ - printprocess.h \ - cupsprint.h \ - cupsprintwidget.h \ - cupsprintersettingsdialog.h \ - printwidget.h \ - printercmddialog.h \ - printdialog.h \ - wapi.h \ - sessionwidget.h \ - configwidget.h \ - connectionwidget.h \ - settingswidget.h \ - sharewidget.h \ - clicklineedit.h \ - httpbrokerclient.h \ - ongetpass.h \ - onmainwindow_privat.h \ - x2gosettings.h \ - brokerpassdlg.h \ - contest.h \ - xsettingswidget.h + x2goclientconfig.h \ + x2gologdebug.h \ + printprocess.h \ + cupsprint.h \ + cupsprintwidget.h \ + cupsprintersettingsdialog.h \ + printwidget.h \ + printercmddialog.h \ + printdialog.h \ + wapi.h \ + sessionwidget.h \ + configwidget.h \ + connectionwidget.h \ + settingswidget.h \ + sharewidget.h \ + clicklineedit.h \ + httpbrokerclient.h \ + ongetpass.h \ + onmainwindow_privat.h \ + x2gosettings.h \ + brokerpassdlg.h \ + contest.h \ + xsettingswidget.h SOURCES += sharewidget.cpp \ - settingswidget.cpp\ - configwidget.cpp \ - sessionwidget.cpp \ - connectionwidget.cpp \ - configdialog.cpp \ - editconnectiondialog.cpp \ - exportdialog.cpp \ - imgframe.cpp \ - LDAPSession.cpp \ - onmainwindow.cpp \ - onmainwindow_part2.cpp \ - onmainwindow_part3.cpp \ - onmainwindow_part4.cpp \ - sessionbutton.cpp \ - sessionmanagedialog.cpp \ - sshmasterconnection.cpp \ - sshprocess.cpp \ - SVGFrame.cpp \ - userbutton.cpp \ - x2gologdebug.cpp \ - printprocess.cpp \ - cupsprint.cpp \ - cupsprintwidget.cpp \ - cupsprintersettingsdialog.cpp \ - printwidget.cpp \ - printercmddialog.cpp \ - printdialog.cpp \ - wapi.cpp \ - clicklineedit.cpp \ - httpbrokerclient.cpp \ - ongetpass.cpp \ - x2gosettings.cpp \ - brokerpassdlg.cpp \ - contest.cpp \ - xsettingswidget.cpp + settingswidget.cpp\ + configwidget.cpp \ + sessionwidget.cpp \ + connectionwidget.cpp \ + configdialog.cpp \ + editconnectiondialog.cpp \ + exportdialog.cpp \ + imgframe.cpp \ + LDAPSession.cpp \ + onmainwindow.cpp \ + onmainwindow_part2.cpp \ + onmainwindow_part3.cpp \ + onmainwindow_part4.cpp \ + sessionbutton.cpp \ + sessionmanagedialog.cpp \ + sshmasterconnection.cpp \ + sshprocess.cpp \ + SVGFrame.cpp \ + userbutton.cpp \ + x2gologdebug.cpp \ + printprocess.cpp \ + cupsprint.cpp \ + cupsprintwidget.cpp \ + cupsprintersettingsdialog.cpp \ + printwidget.cpp \ + printercmddialog.cpp \ + printdialog.cpp \ + wapi.cpp \ + clicklineedit.cpp \ + httpbrokerclient.cpp \ + ongetpass.cpp \ + x2gosettings.cpp \ + brokerpassdlg.cpp \ + contest.cpp \ + xsettingswidget.cpp LIBS += -lssh plugin { -TARGET = x2goplugin + TARGET = x2goplugin } else{ -RC_FILE = x2goclient.rc -SOURCES += x2goclient.cpp -TARGET = x2goclient -DEFINES += CFGCLIENT -message(if you want to build x2goplugin you should export X2GO_CLIENT_TARGET=plugin) + RC_FILE = x2goclient.rc + SOURCES += x2goclient.cpp + TARGET = x2goclient + DEFINES += CFGCLIENT + message(if you want to build x2goplugin you should export X2GO_CLIENT_TARGET=plugin) } TEMPLATE = app @@ -111,47 +112,49 @@ INCLUDEPATH += . RESOURCES += resources.rcc linux-g++ { - message(building $$TARGET with ldap and cups) - LIBS += -lldap -lcups -lX11 -lXpm + message(building $$TARGET with ldap and cups) + LIBS += -lldap -lcups -lX11 -lXpm } linux-g++-64 { - message(building $$TARGET with ldap and cups) - LIBS += -lldap -lcups -lX11 -lXpm + message(building $$TARGET with ldap and cups) + LIBS += -lldap -lcups -lX11 -lXpm } x2go_linux_static { - message (linking all libs statically) - LIBS -= -lssh - LIBS += -lssh_static -lssl -lXpm - QMAKE_LFLAGS = -Bstatic $$QMAKE_LFLAGS + message (linking all libs statically) + LIBS -= -lssh + LIBS += -lssh_static -lssl -lXpm + QMAKE_LFLAGS = -Bstatic $$QMAKE_LFLAGS } macx { - message(building $$TARGET with ldap and cups) - LIBS += -lldap -lcups + message(building $$TARGET with ldap and cups) + LIBS += -framework LDAP -lcups -lcrypto -lssl -lz + CONFIG += x86 x86_64 } win32-* { - message(building $$TARGET for windows without ldap and cups) - LIBS += -lwinspool -lws2_32 - CONFIG += static release + message(building $$TARGET for windows without ldap and cups) + LIBS += -lwinspool -lws2_32 + CONFIG += static release } QT += svg network ICON =icons/x2go-mac.icns -QMAKE_MAC_SDK =/Developer/SDKs/MacOSX10.6.sdk - +QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk +QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5 plugin{ -DEFINES += CFGPLUGIN - linux-g++ { - include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) - } - linux-g++-64 { - include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) - } - win32-* { - DEFINES += QT_NODLL - CONFIG += qaxserver - include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) - } -RC_FILE = x2goplugin.rc + DEFINES += CFGPLUGIN + linux-g++ { + include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) + } + linux-g++-64 { + include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) + } + win32-* { + DEFINES += QT_NODLL + CONFIG += qaxserver + include(qtbrowserplugin-2.4_1-opensource/src/qtbrowserplugin.pri) + } + RC_FILE = x2goplugin.rc + } diff --git a/x2goclient_de.ts b/x2goclient_de.ts index 09baf25..157a4f2 100644 --- a/x2goclient_de.ts +++ b/x2goclient_de.ts @@ -1415,8 +1415,8 @@ sound system connections through firewalls</source> </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> - <translation></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <translation></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> </message> <message> <location filename="onmainwindow_part3.cpp" line="1588"/> diff --git a/x2goclient_en.ts b/x2goclient_en.ts index ff3ab11..1dfa80c 100644 --- a/x2goclient_en.ts +++ b/x2goclient_en.ts @@ -1364,7 +1364,7 @@ Unsaved documents will be lost</source> </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> <translation type="unfinished"></translation> </message> <message> diff --git a/x2goclient_fr.ts b/x2goclient_fr.ts index 02cf546..78387f4 100644 --- a/x2goclient_fr.ts +++ b/x2goclient_fr.ts @@ -1358,7 +1358,7 @@ Unsaved documents will be lost</source> </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> <translation type="unfinished"></translation> </message> <message> diff --git a/x2goclient_nb_no.ts b/x2goclient_nb_no.ts index f541e95..d14dbcf 100644 --- a/x2goclient_nb_no.ts +++ b/x2goclient_nb_no.ts @@ -1057,8 +1057,8 @@ </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> - <translation></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <translation></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> </message> <message> <location filename="onmainwindow_part3.cpp" line="1588"/> diff --git a/x2goclient_ru.ts b/x2goclient_ru.ts index 3bc79f4..ba0ed9b 100644 --- a/x2goclient_ru.ts +++ b/x2goclient_ru.ts @@ -1604,8 +1604,8 @@ Public key hash: </source> </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> - <translation></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <translation></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> </message> <message> <source>Can't read host rsa key:</source> diff --git a/x2goclient_sv.ts b/x2goclient_sv.ts index 94fcf10..32025c8 100644 --- a/x2goclient_sv.ts +++ b/x2goclient_sv.ts @@ -165,7 +165,7 @@ <message> <location filename="contest.cpp" line="150"/> <source>Socket operation timed out</source> - <translatorcomment>Hittade ingen bra översättning för socket</translatorcomment> + <translatorcomment>Couldn't find a good translation for socket</translatorcomment> <translation>Socketoperation överskred tidsgräns</translation> </message> <message> @@ -479,7 +479,7 @@ <message> <location filename="editconnectiondialog.cpp" line="109"/> <source>Session preferences - </source> - <translation>Sessionspreferenser - </translation> + <translation>Sessionsinställningar - </translation> </message> </context> <context> @@ -497,8 +497,7 @@ <message> <location filename="exportdialog.cpp" line="45"/> <source>&Preferences ...</source> - <translatorcomment>Kanske skulle "Egna inställningar" vara bättre.</translatorcomment> - <translation>&Preferenser...</translation> + <translation>&Inställningar...</translation> </message> <message> <location filename="exportdialog.cpp" line="46"/> @@ -527,13 +526,13 @@ <message> <location filename="httpbrokerclient.cpp" line="178"/> <source>us</source> - <translatorcomment>Språkkod för svenska i X.org</translatorcomment> + <translatorcomment>Swedish keyboard layout</translatorcomment> <translation>se</translation> </message> <message> <location filename="httpbrokerclient.cpp" line="181"/> <source>pc105/us</source> - <translatorcomment>Svenskt tangentbord</translatorcomment> + <translatorcomment>Swedish keyboard model</translatorcomment> <translation>pc105/se</translation> </message> <message> @@ -786,6 +785,7 @@ <message> <location filename="onmainwindow.cpp" line="673"/> <source>Session management...</source> + <translatorcomment>Added Alt shortcut, same letter as Ctrl shortcut (like &New session...)</translatorcomment> <translation>S&essionshantering...</translation> </message> <message> @@ -973,7 +973,7 @@ Använd dolt läge?</translation> <message> <location filename="onmainwindow.cpp" line="1905"/> <source>X2Go Link to session </source> - <translation>X2Go Länk till session</translation> + <translation>Länk till X2Go-session</translation> </message> <message> <location filename="onmainwindow.cpp" line="1955"/> @@ -1096,7 +1096,7 @@ Publik nyckel: </translation> <message> <location filename="onmainwindow_part2.cpp" line="417"/> <source>unknown</source> - <translation>okänd</translation> + <translation>okänt</translation> </message> <message> <location filename="onmainwindow_part2.cpp" line="482"/> @@ -1183,13 +1183,13 @@ Publik nyckel: </translation> <message> <location filename="onmainwindow_part2.cpp" line="1170"/> <source>24 or 32</source> - <translation>24- eller 32-</translation> + <translation>24 eller 32</translation> </message> <message> <location filename="onmainwindow_part2.cpp" line="1171"/> <location filename="onmainwindow_part2.cpp" line="1191"/> <source> bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway?</source> - <translation>bitar och startar om X-servern innan du återansluter till denna X2Go-session.<br>Återanslut session ändå?</translation> + <translation> bitar och startar om X-servern innan du återansluter till denna X2Go-session.<br>Återanslut session ändå?</translation> </message> <message> <location filename="onmainwindow_part2.cpp" line="1258"/> @@ -1381,8 +1381,8 @@ Data som ej sparats kommer att förloras</translation> </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> - <translation></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <translation></b><br> (© 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></translation> </message> <message> <location filename="onmainwindow_part3.cpp" line="1526"/> @@ -1503,7 +1503,7 @@ Uppdatera till en nyare version av x2goserver</translation> <message> <location filename="onmainwindow_part4.cpp" line="1658"/> <source>Keyboard layout:</source> - <translatorcomment>Verkar vara vanligt förekommande "svengelskt" ord</translatorcomment> + <translatorcomment>Swenglish, but commonly used.</translatorcomment> <translation>Tangentbordslayout:</translation> </message> <message> @@ -1740,7 +1740,7 @@ du kan installera sshd med (Debian/Ubuntu) <message> <location filename="printwidget.cpp" line="53"/> <source>Please configure your client side printing settings.<br><br>If you want to print the created file, you'll need an external application. Typically you can use <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>You can find further information <a href="http://www.x2go.org/index.php?id=49">here</a>.</source> - <translation>Konfigurera utskriftsinställningar för klienten.<br><br>Om du vill skriva ut den skapade filen så behöver du en extern applikation. Du kan oftast använda <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> och<a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Mer information finns <a href="http://www.x2go.org/index.php?id=49">här</a>.</translation> + <translation>Konfigurera utskriftsinställningar för klienten.<br><br>Om du vill skriva ut den skapade filen så behöver du en extern applikation. Du kan oftast använda <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> och <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Mer information finns <a href="http://www.x2go.org/index.php?id=49">här</a>.</translation> </message> </context> <context> @@ -1824,7 +1824,7 @@ Example: <message> <location filename="sessionbutton.cpp" line="116"/> <source>Session preferences...</source> - <translation>Sessionspreferenser...</translation> + <translation>Sessionsinställningar...</translation> </message> <message> <location filename="sessionbutton.cpp" line="120"/> @@ -1937,7 +1937,7 @@ Example: <message> <location filename="sessionmanagedialog.cpp" line="35"/> <source>E&xit</source> - <translation>&Avsluta</translation> + <translation>&Avbryt</translation> </message> <message> <location filename="sessionmanagedialog.cpp" line="41"/> @@ -1947,7 +1947,8 @@ Example: <message> <location filename="sessionmanagedialog.cpp" line="42"/> <source>&Session preferences</source> - <translation>&Sessionspreferenser</translation> + <translatorcomment>There are "..." on every other button so why not here ...</translatorcomment> + <translation>&Sessionsinställningar...</translation> </message> <message> <location filename="sessionmanagedialog.cpp" line="43"/> @@ -1981,7 +1982,7 @@ Example: <message> <location filename="sessionwidget.cpp" line="57"/> <source><< change icon</source> - <translation><< ändra ikon</translation> + <translation><< klicka för att ändra ikon</translation> </message> <message> <location filename="sessionwidget.cpp" line="60"/> @@ -2230,7 +2231,7 @@ Example: <location filename="settingswidget.cpp" line="178"/> <source>Use SSH port forwarding to tunnel sound system connections through firewalls</source> - <translatorcomment>Hittade ingen bra översättning för "port forwarding"</translatorcomment> + <translatorcomment>Couldn't find a good translation for port forwarding.</translatorcomment> <translation>Använd SSH port forwarding för att tunnla ljudström genom brandväggar</translation> </message> diff --git a/x2goclient_zh_tw.ts b/x2goclient_zh_tw.ts index 142418c..9525470 100644 --- a/x2goclient_zh_tw.ts +++ b/x2goclient_zh_tw.ts @@ -1372,7 +1372,7 @@ Unsaved documents will be lost</source> </message> <message> <location filename="onmainwindow_part3.cpp" line="1522"/> - <source></b><br> (C. 2006-2011 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> + <source></b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br></source> <translation type="unfinished"></translation> </message> <message> diff --git a/x2goplugin.rc b/x2goplugin.rc index dde2abb..73ed229 100644 --- a/x2goplugin.rc +++ b/x2goplugin.rc @@ -1,8 +1,8 @@ 1 TYPELIB "x2goplugin.rc" 1 VERSIONINFO - FILEVERSION 3,99,1,0 - PRODUCTVERSION 3,99,1,0 + FILEVERSION 3,99,1,1 + PRODUCTVERSION 3,99,1,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -21,13 +21,13 @@ BEGIN VALUE "FileDescription", "Allows you to start X2Go session in a webbrowser\0" VALUE "FileExtents", "x2go\0" VALUE "FileOpenName", "Configuration File for X2Go Session (*.x2go)\0" - VALUE "FileVersion", "3, 99, 1 ,0\0" + VALUE "FileVersion", "3, 99, 1 ,1\0" VALUE "InternalName", "x2goplugin\0" VALUE "LegalCopyright", "Copyright � 2010-2012 Obviously Nice\0" VALUE "MIMEType", "application/x2go\0" VALUE "OriginalFilename", "npx2goplugin.dll\0" - VALUE "ProductName", "X2GoClient Plug-in 3.99.1.0\0" - VALUE "ProductVersion", "3, 99, 1, 0\0" + VALUE "ProductName", "X2GoClient Plug-in 3.99.1.1\0" + VALUE "ProductVersion", "3, 99, 1, 1\0" END END BLOCK "VarFileInfo" hooks/post-receive -- x2goclient.git (X2Go Client) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2goclient.git" (X2Go Client).