x2goclient-4.0.5.1/AUTHORS0000644000000000000000000000016512675050177011707 0ustar Oleksandr Shneyder Heinz-Markus Graesing x2goclient-4.0.5.1/build_win_plugin.bat0000755000000000000000000000046412675050177014666 0ustar cd plugin_build mingw32-make copy release\npx2goplugin.dll d:\share\plugin\x2goplugin\ d: cd share\plugin\x2goplugin\ idc.exe npx2goplugin.dll /idl npx2goplugin.idl -version 1.0 midl npx2goplugin.idl /nologo /tlb npx2goplugin.tlb idc.exe npx2goplugin.dll /tlb npx2goplugin.tlb cd .. x2goclient-4.0.5.1/ChangeLog0000644000000000000000000031240012675050200012372 0ustar x2goclient (4.0.5.1-0x2go1) unstable; urgency=low [ Mihai Moldovan ] * New upstream release (4.0.5.1): - onmainwindow.cpp: include sshd PID file path option in quotes to support whitespaces within the var directory path on Windows. Add comment to revisit this later on non-Windows-platforms, too. Fixes: #916. - onmainwindow.cpp: do NOT reformat. Reverts most of the previous commit because it breaks code logic. - res/txt/packs: add adaptive method. - {macbuild.sh,x2goclient.pro}: pass MacPorts library and include path's to qmake. Due to the qt4-mac's changes, we do not automatically get these values automatically "appended" in a usable way anymore. - x2gosettings.cpp: let centralSettings () return false on Windows. - onmainwindow.cpp: be more precise in slotScDaemonError () regarding unknown and undefined errors. - onmainwindow.{cpp,h}: don't use a hardcoded path to xmodmap on OS X and handle errors more gracefully. Fixes: #487. - x2goclient.pro: fix typo --stdlib=... -> -stdlib=... Fixes: #973. - onmainwindow.cpp: add some more error handling for parsing the return value of x2golistsessions. As it turns out, it can happen that "invalid" strings are inserted in there, for instance by the perl interpreter itself. We need to skip over these, or the client crashes when splitting up the invalid lines. - macbuild.sh: add stdlib forcing. Should not be used unless you really know what you're doing. If you ponder using this, you probably don't. - res/resources.rcc: add Turkish translation file. Fixes: #987. - onmainwindow.cpp: use lowercase version of locale. Fixes: #953. Fixes loading up the nb_NO translation file, which is actually baked as nb_no into the binary. - sshmasterconnection.cpp: let challenge-auth-based login attempts fallback to normal password authentication if the initial challenge-auth-based attempt was unsuccessful. - sshmasterconnection.{cpp,h}: support variable number of challenge-auth-code-based prompts. - sshmasterconnection.cpp: don't check prompts for full string equality - a matching prefix is good enough. Amongst others, this fixes errors in conditions where the prompt does not contain a trailing whitespace, but X2Go Client expects one. - sshmasterconnection.cpp: add OATH TOTP prompt prefix. Fixes: #860. - res/i18n: refresh translation files again. - res/i18n/x2goclient_nb_no.ts: replace "X-Serv..." with "X.Org Server" where applicable. - res/i18n/x2goclient_nb_no.ts: correctly use "XQuartz" where necessary. - res/i18n/x2goclient_nb_no.ts: whitespace only. - res/i18n/x2goclient_nb_no.ts: fix up some "x2go" -> "X2Go" errors. - res/i18n/x2goclient_nb_no.ts: mark translation strings needing some care ("x2go..." -> "X2Go...") as unfinished for later fixup. - res/i18n/x2goclient_nb_no.ts: fix (meta data) typo introduced with last commit. - res/i18n/x2goclient_nl.ts: fixup translation by respecting the original messages' format and other changes. - res/i18n/x2goclient_de.ts: fixup translation by respecting the original messages' format, fixing typos and general improvements. - res/i18n/x2goclient_es.ts: fixup translation by respecting the original messages' format and other changes. - res/i18n/x2goclient_sv.ts: fixup translation by respecting the original messages' format and other changes. * debian/control: - Change apache2-dev | libc6-dev build dependency back to apache2-dev only. Otherwise, apache2-dev is not installed at all, even though theoretically available. The initial reasoning for this dependency type, apache2-dev not being available on all Ubuntu/Debian platforms, is not true anymore. - Change apache2-dev build dependency yet again to apache2-dev | apache2-threaded-dev. Turns out all Debian distros but wheezy (currently oldstable) have an apache2-dev package. Even oldoldstable (squeeze) does... [ 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. (Fixes: #772). - Replace "::" with "_" for the desktop link name on Windows. - Fix direct RDP in broker mode. - Fix crashing client when editing session from SessionManageDialog. Fixes: #921. - Configure audio input in pulseaudio on Windows. - Reconnect ssh broker in case of IO Error. - Reformat source onmainwindow.cpp. - Disable settings editing if a directory with central settings is exists. - Format long names on session buttons. - Central settings for Linux, Mac and Windows. - Fix VCXSRV parameter to disable PRIMARY clipboard in X2Go Client for Windows. Fixes: #927. - Fix reading settings for direct RDP connections in broker mode. - Auto accept RSA Keys for SSH Broker with --add-to-known-hosts option. [ Mike Gabriel ] * New upstream release (4.0.5.1): - xinerama.conf: Don't choke if screen coordintate lines in xinerama.conf start with a dash ("-"). (Fixes: #948). [ Mike DePaulo ] * New upstream release (4.0.5.1): - Windows: Update bundled Win32 OpenSSL from 1.0.1p to 1.0.1q, which fixes the multiple CVEs announced on 2015-12-03. - Windows: Upgrade Cygwin components to latest versions as of 2016-01-21, except for the Cygwin DLL which is still at 1.7.33 in order to avoid breaking folder sharing and printer sharing due to 1.7.34's ACL/permissions changes. (authorized_keys file would often have mode 660 instead of 600) The latest components include most notably: + openssh 6.8p1-1-x2go1 -> 7.1p2-1-x2go1 (security update) + openssl 1.0.2d-1 -> 1.0.2e-1 (security update) - Windows: Update nxproxy from 3.5.0.31 to 3.5.0.32 - Windows: Update Unicode NSIS from 2.46.5 to 2.50.0 Pre-release, which fixes the DLL hijacking security vuln (NSIS bug 1125.) - Windows: Update PuTTY from 0.64 to 0.66, which fixes CVE-2015-5309. - Windows: Remove libzip. libssh no longer uses it. [ Orion Poplawski ] * New upstream release (4.0.5.1): - ssh{process,masterconnection}.cpp: run bash as a login shell when invoking any command remotely. Fixes: #928. Because this opens the door for ~/.bash_logout and friend scripts to be executed, which may contain calls to ncurses' reset or clear, also set the TERM variable to dump to not have unexpected output on stderr at logout time. - sshmasterconnection.cpp: check correct variable for validity: public key instead of private key (again.) Fixes: #945. [ Klaus Ade Johnstad ] * New upstream version (4.0.5.1): - res/i18n/x2goclient_nb_no.ts: update Bokmål (Norway) translation file. [ Heinrich Schuchardt ] * New upstream version (4.0.5.1): - sshmasterconnection.cpp: don't fetch invalid proxy socket. Fixes: #1000. From http://doc.qt.io/qt-4.8/qabstractsocket.html#socketDescriptor: The socket descriptor is not available when QAbstractSocket is in UnconnectedState. So we have to connect to the proxy server first before retrieving the native socket. [ Daniel Lindgren ] * New upstream version (4.0.5.1): - res/i18n/x2goclient_sv.ts: update Swedish translation file. [ Sébastien Ducoulombier ] * New upstream version (4.0.5.1): - res/i18n/x2goclient_fr.ts: update French translation file. [ Jos Wolfkamp ] * New upstream version (4.0.5.1): - res/i18n/x2goclient_nl.ts: update Dutch translation file. [ Stefan Baur ] * New upstream release (4.0.5.1): - res/i18n/x2goclient_de.ts: update German translation file. [ Ricardo Díaz Martín ] * New upstream release (4.0.5.1): - res/i18n/x2goclient_es.ts: update Spanish translation file. -- X2Go Release Manager Thu, 24 Mar 2016 21:35:30 +0100 x2goclient (4.0.5.0-0x2go1) unstable; urgency=low [ Mihai Moldovan ] * New upstream release (4.0.5.0): - INSTALL: add more verbose instructions on how to build X2Go Client and friends. - onmainwindow.{cpp,h}: rename slotScDaemonOut() and slotScDaemonError() to slotScDaemonStdOut() and slotScDaemonStdErr(). I will need slotScDaemonError() later and the previous names were a bit of a misnomer. - x2goutils.{cpp,h}: add new show_RichText_Generic_MsgBox() main function designed to replace the show_RichText_WarningMsgBox() function. - x2goutils.{cpp,h}: make show_RichText_WarningMsgBox() use show_RichText_Generic_MsgBox (). - x2goutils.{cpp,h}: new show_RichText_ErrorMsgBox() function as a wrapper for show_RichText_Generic_MsgBox() with a critical icon. - onmainwindow.{cpp,h}: properly handle scdaemon errors with a message box and close the client. - onmainwindow.cpp: manipulate PATH and append /usr/lib/gnupg2/ to it when starting scdaemon. Fixes: #882. - x2goutils.h: add QMessageBox include, fixed compile error. - onmainwindow.cpp: fix typos leading to compile errors. - onmainwindow.cpp: add blocks to switch cases to fix a compile error. Also correctly append to informative_text on one occasion, instead of overwriting it. - x2goutils.cpp: correct typo to fix compile errors. - onmainwindow.cpp: drop a redundant variable and fix empty env check. - onmainwindow.cpp: add more newlines to scdaemon error output. Use trayQuit() method to really quit the client. - onmainwindow.cpp: add debugging output for new scdaemon PATH value. - onmainwindow.cpp: split up PATH value as printed in the error message box by a newline every 100 characters. Makes it look less ugly and fixes truncation issues. - sshprocess.cpp: export PATH variable when running commands. Otherwise, only the first one will respect the new PATH value. - sshprocess.cpp: wrap SSH command prelude and conclusion in double quotes. - sshprocess.cpp: wrap all remote commands with "bash" instead of the unspecific "sh". - onmainwindow.cpp: try to escape shell quotes correctly when using Kerberos/GSSApi when running the xmodmap keyboard sync command on OS X. - onmainwindow.cpp: also escape other shell quotes when using Kerberos/GSSApi. - onmainwindow.cpp: silence compiler warning by casting an int value to std::size_t. - onmainwindow.cpp: silence another compiler warning by not converting from string to int and back to string needlessly. Just use the string. No need for an OS X-specific variable anymore. - onmainwindow.cpp: fix compile error - use QString.toAscii () to get a valid C string representation for tr (). - onmainwindow.cpp: don't terminate if scdaemon exited with non-zero exit code. - sshprocess.cpp: don't use QProcess::start (QString). Qt is trying to be too smart and causes big trouble. Instead, use QProcess::start (QString, QStringList) and pass the arguments as a list. On Windows, Qt will automatically double quote the arguments and duplicate escaped double quotes or escape non-escaped double quotes. On UNIX-like platforms, each element of the list is passed as a unique argv element, so there's no need for quoting them (that's only a shell-internal thing to group arguments.) - sshprocess.cpp: add a bit more debugging - also print out the unmodified raw output of SSH commands. - onmainwindow.cpp: remove now-bogus double quote escaping. - sshmasterconnection.cpp: port QProcess::start () change. - sshprocess.cpp: whitespace/prettify only and a compile fix. - x2goclient.pro: reinstate old lrelease "search" behavior if qtPrepareTool() is not available. This should only happen on EPEL 6, which ships a broken Qt4 version... - onmainwindow.cpp: only set multidisplay mode for non-rootless sessions. - {ui/xsettingsui.ui,xsettingswidget.cpp}: add new "whole display" option for external X server configuration. Part of #883. - onmainwindow.cpp: rename "optionsmd" setting to "optionswholedisplay", which is more clear. - xsettingswidget.cpp: fix compile error: settings -> setting. - sessionmanagedialog.cpp: enable some debugging and make selected sessions configureable or deletable. Fixes: #909. [ Mike Gabriel ] * debian/control: + Add alternative D for nxproxy: qvd-nxproxy. Allows parallel installation of X2Go Client and the TheQVD client (perl-qvd-client). [ Mike DePaulo ] - Windows: Update bundled Win32 OpenSSL from 1.0.1m to 1.0.1p, which fixes the multiple CVEs announced on 2015-06-11 and CVE-2015-1793 (announced on 2015-07-09). - Windows: Upgrade the MSVC 2008 DLLs (9.0.21022.8) to the MSVC 2013 DLLs (12.0.21005.1), which Win32 OpenSSL now requires. - Windows: Only bundle msvcr120.dll; The other 2 MSVC DLLs aren't needed by Win32 OpenSSL. - Windows: Update bundled Cygwin OpenSSL from 1.0.2a-1 to 1.0.2d-1, which which fixes the multiple CVEs announced on 2015-06-11 and CVE-2015-1793 (announced on 2015-07-09). - Windows: Update bundled VcXsrv from 1.17.0.0-1 (X2Go/Arctica Build) to 1.17.0.0-3 (X2Go/Arctica Build) The differences relevant to X2Go are: + VcXsrv's bundled version of openssl was updated from 1.0.2a to 1.0.2d (fixes the multiple CVEs announced on 2015-06-11 and CVE-2015-1793 (announced on 2015-07-09). + Drop winmultiwindow.patch (Part of #883) + hw/xwin/glx: Don't create fbConfigs for un-accelerated pixelFormats This has the effect of disabling StaticColor under MultiWindow mode with -wgl (default) and -swrastwgl, and thus making X2Go sessions started from the Windows client able to be resumed on the client on a different OS or the client runing on Windows with different display settings. (Fixes: #696) - Linux: Fix desktop session icons (.desktop files) failing due to missing space between "x2goclient" and its 1st argument (e.g. "--session") (Fixes: #911) [ Henning Heinold ] * New upstream release (4.0.5.0): - x2goclient.pro: simplify lrelease path preparing for different OS and cross compiling. Fixes: #901. [ Oleksandr Shneyder ] * New upstream release (4.0.5.0): - onmainwindow.{cpp,h}: fix multimonitor mode on Windows. Run VcXsrv on selected screen without decorations. -- X2Go Release Manager Tue, 28 Jul 2015 04:48:20 +0200 x2goclient (4.0.4.0-0x2go1) unstable; urgency=low [ Mike DePaulo ] * New upstream release (4.0.4.0): - Windows: Do not delete saved PuTTY sessions when Kerberos 5 (GSSAPI) authentication is enabled (Fixes: #625/#789) - Windows: Fix "Connection failed" "pscp" error with folder sharing when Kerberos 5 (GSSAPI) auth is used, and the server-side home dir is at a path other than /home/$USER (Fixes: #868) - Windows: Fix audio (PulseAudio) when Kerberos 5 (GSSAPI) authentication is used (Fixes: #869) - Windows: Include debug build in the regular installer. It is an optional component during the install. It is not installed by default. - Windows: Include Pageant and PuTTYgen in the installer. They are optional components during the install. They are installed by default. - Windows: Add descriptions for the "components" in the installer (English language only at this time) - Windows: You can now view the version and some other info by: right-click on the installer -> Properties -> Details (English language only at this time) - Windows: Upgrade bundled PulseAudio from 5.0-rev18 to 6.0-11.1 (No known impacts to X2Go, except for the fact that many needed patches are now included in upstream PulseAudio.) - Windows: Upgrade bundled VcXsrv from 1.15.2.2-xp+vc2013+x2go1 to 1.17.0.0-1 (X2Go/Arctica Build) Note that X2Go Client for Windows 4.0.3.2-20150508 has an update to 1.15.2.6 (X2Go/Arctica), which fixes all the CVEs. The differences relevant to X2Go are: + Numerous X.org components were upgraded to new major/minor versions. + CVE-2015-0255 was fixed in VcXsrv itself + CVE-2015-3418 was fixed in VcXsrv itself + Font files no longer differ in each build due to timestamp differences + VcXsrv's bundled version of openssl was upgraded from 1.0.1k to 1.0.2a (fixes the multiple CVEs announced on 2015-03-19) + VcXsrv's bundled version of libXfont was upgraded from 1.4.8 to 1.5.1 (Fixes CVE-2015-1802 through CVE-2015-1804) + VcXsrv's bundled version of freetype was updated from 2.5.3 to 2.5.5 (fixes CVE-2014-9656 through CVE-2014-9675) - Windows: Update bundled Win32 OpenSSL from 1.0.1L to 1.0.1m, which fixes the multiple CVEs announced on 2015-03-19. Note that X2Go Client for Windows 4.0.3.2-20150329 has this update also. - Windows: Update bundled PuTTY from 0.63 to 0.64. In addition to other changes, CVE-2015-2157 has been fixed. - Windows: Upgrade libssh from 0.6.4 to 0.7.0 (while maintaining Pageant support). The differences relevant to X2Go are: + CVE-2015-3146 was fixed + Added support for ed25519 keys + Added SHA2 algorithms for HMAC Note that X2Go Client for Windows 4.0.3.2-20150508 has the update to 0.6.5, which fixes the CVE also. - Windows: Update bundled nxproxy (nx-libs-lite) from 3.5.0.27 to 3.5.0.31. (bugfix & feature update) - Windows: Update/Upgrade bundled Cygwin components to latest versions as of 2015-04-25 (except for the Cygwin DLL, which was upgraded but not to the latest version). Note that all the security fixes were included in updates to X2Go Client for Windows 4.0.3.2 + openssl 1.0.1k-1 -> 1.0.2a-1 (upgrade. includes security fixes for the multiple CVEs announced on 2015-03-19.) + libjpeg-turbo 1.8.1-1 -> 1.8.1-3 (security update for CVE-2014-9092) + libpng 1.5.21-2 -> libpng16 1.6.17-1 (upgrade, may improve X2Go performance when PNG compression is selected. Also includes the fix for CVE-2013-6954) + gcc 4.8.3-3 -> 4.9.2-3 (upgrade, may improve X2Go performance a little bit) + openssh 6.6p1-3-x2go1 -> 6.8p1-1-x2go1 (upgrade, probably not relevant to X2Go) + cygwin (DLL) 1.7.32-1 -> 1.7.33-1 (upgrade, probably not relevant to X2Go) + dash 0.5.8-2 -> 0.5.8-3 (feature update, not relevant to X2Go) + ncurses 5.9-20140524-1 -> 5.9-20150404-1 (update, probably not relevant to X2Go) + zlib 1.2.8-1 -> 1.2.8-3 (update, undocumented by Cygwin project) - Windows: Copy the exact version of each cygwin DLL from the cygwin binary tarballs rather than copying the "rebased" version from an X2Go developer's cygwin installation. What effect this will have on users is TBD. However, it does mean that we are distributing the exact DLLs that the Cygwin project provides, which is desirable for security. [ Mihai Moldovan ] * New upstream version (4.0.4.0): - Move *.cpp and *.h files to src/ and *.ts files to src/i18n/. - Reference src/ in Doxyfile. - Reference src/ and src/i18n/ in x2goclient.pro. - Move *.ui files to src/ui/ and reference in x2goclient.pro. - Translate and simplify header in x2goclient.pro. - Add x2goclientconfig.pri only containing a comment to override specific entries in x2goclient.pro in x2goclientconfig.pri. - Move resource files to src/res/ and reference in x2goclient.pro. - Reference changes in shipped Makefile. - Rename SRC_DIR to TOP_DIR in shipped Makefile. - Rename qtbrowserplugin--opensource to x2gobrowserplugin- and reference in x2goclient.pro. - Move x2goplugin.rc to x2gobrowserplugin-*/src/res/ and reference in x2goclient.pro. - Remove executability from x2goclient.pro. - Fix typos and update URL's in INSTALL file. - Fix typos and grammar in HOWTO.GPGCARD. - Add "X2Go Project" copyright to LICENSE file. - Replace backticks with $() and change spaces to tabs in Makefile.man2html. - Reformat README.OpenSSL-Exception. - Grammar fix in README.i18n. - Update .gitignore with more temporary files. - Make x2goclient.pro consistent: replace tabs with spaces, put quotes around messages, remove or add whitespace where applicable. - Move *.rc and *.rcc files back to top directory for now. Resources must be in the resource file's base directory or a sub-directory. - Move icons/ to img/icons/ and update references in + resources.rcc + COPYRIGHT.x2go-logos + Makefile + debian/x2goclient.install + macbuild.sh + nsis/x2goclient.nsi + src/onmainwindow.cpp + src/appdialog.cpp + src/folderbutton.cpp + src/folderexplorer.cpp + src/sessionbutton.cpp + src/sessionexplorer.cpp + src/sessionmanagedialog.cpp + src/sessionwidget.cpp + src/ui/helpdialog.ui + src/xsettingswidget.cpp - Move png/ to img/png/ and update references in resources.rcc and src/onmainwindow.cpp. - Move svg/ to img/svg/ and update references in resources.rcc, src/folderbutton.cpp, src/onmainwindow.cpp and src/sessionbutton.cpp. - Move *.ts files back to the top directory (they are resources.) - Move *.ts and *.qm files to i18n/ and update references in resources.rcc, x2goclient.pro and debian/rules. - Fix formatting errors in nsis/gpl.txt. - Fix whitespace errors in nsis/x2goclient.nsi. - Don't change the icons path in nsis/x2goclient.nsi. - Make nsis files non-executable. - Move x2go-logos/ to img/x2go-logos and update references in COPYRIGHT.x2go-logos. - Fix whitespace errors in x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc. - Move i18n/ to res/i18n/ and update references in debian/rules and x2goclient.pro. - Remove executability bit from src/sshmasterconnection.cpp and src/sshprocess.cpp. - Move img/ to res/img/ and update references in + COPYRIGHT.x2go-logos + Makefile + debian/x2goclient.install + macbuild.sh + x2goclient.pro + x2goclient.rc - Move + git.rcc + changelog.rcc + x2goclient.rc + resources.rcc to res/ and update references in x2goclient.pro and src/ui/helpdialog.ui. - Reference new src directory as include dir in x2goclient.pro. - Move txt/ to res/text/ and update references in + x2goclient.pro + Makefile + debian/rules + x2goclient.spec - Whitespace fix in Info.plist. - Use more quoting and curly braces for referencing variables in macbuild.sh. - Define TOP_DIR variable in macbuild.sh -- set to $PWD. - Define the new variables $SDK and $MACOSX_DEPLOYMENT_TARGET in macbuild.sh which can also be (pre-)set through the environment. Default to the 10.7 SDK and deployment target. Use the variables when calling qmake. - Specify -spec macx-g++ when using qmake in macbuild.sh. - Directly reference project file for qmake in macbuild.sh. - Use out-of-source build and do not overwrite the default shipped Makefile in macbuild.sh. - Also also specify the top dir when defining the path to the generated appbundle and dmg file in macbuild.sh. - Move Info.plist to res/ and update reference in x2goclient.pro. - Fix references of resources in macbuild.sh to access files from TOP_DIR. - Work around a bug in qmake generating incorrect make rules for embedding the OS X app bundle Info.plist file. - Work around another bug in qmake and copy icon "manually". - Define wrap_legacy_resources() function and use it to wrap legacy resource locations stored in old session config files. - Add some debugging output to sessionbuttons/userbutton to see what file path is being used as a pixmap (user photo/session icon.) - Add myself to copyright section in the x2goutils headers. - Change four spaces per indentation level to two spaces in x2goutils.cpp. - Add fixup_resources() to x2goutils to fix "broken" resource URI's. - Rename fixup_resources() and wrap_legacy_resources() to fixup_resource_URIs() and wrap_legacy_resource_URIs(). Update references. - Move res/Info.plist and macdmg.DS_Store to res/osxbundle/ and update references in x2goclient.pro and macbuild.sh. - Add debug mode selector via DEBUG env variable to macbuild.sh. - Enable more debugging if needed: change -g flag to -g3 -ggdb3 -gdwarf-4. - Select stdlib on OS X based on the passed or default SDK value. - Fix TOP_DIR handling in macbuild.sh. - Switch to BASH interpreter for macbuild.sh. - Also accept "FALSE" and "false" as binary values in macbuild.sh. - Make bundling optional (but enabled by default) via the new BUNDLE environment variable in macbuild.sh. - Enable -O2 in debug mode. Otherwise, debug mode would test different execution paths than release mode. - Add new UNUSED() macro to x2goutils.h and silence compiler warnings. - Fix some QMessageBox usages. There are many more places that need fixing... - Remove config_mac.sh. macbuild.sh handles this now. - Use the correct client build dir in macbuild.sh: client_build. - Only use --stdlib compiler flag on 10.7+. Unsupported on 10.6 and below. - Use sh default assignment instead of default value in macbuild.sh. Removes the need to redundantly specify the variable name. - App bundle and dmg file will be automatically removed when removing the client build directory. Remove redundancy from macbuild.sh. - Remove 'function' keyword in macbuild.sh, as it's causing undefined behavior according to SUS. - Define and implement new function 'make_boolean()' in macbuild.sh. Takes a pseudo-boolean value and outputs either 0 or 1. Use this function. - Move functions to the start of the macbuild.sh script. - New env var/parameter UNIVERSAL in macbuild.sh. Switches the build architecture to either exclusively x86_64 (UNIVERSAL=0) or both x86_64 and x86 (UNIVERSAL=1). - Add usage message to macbuild.sh obtainable via -h or --help. - x2goclient.pro.maemo: cleanup. + Reorder sections so that they match x2goclient.pro. + Adapt to new directory structure. + Various whitespace fixes. - Move OS X-specific stuff from general section to macx section in x2goclient.pro. - Move ICON definition up before it's actually used in the macx section in x2goclient.pro. - Windows: move building into client_build subdirectory. Also needs the changes in buildscripts.git. - Windows: convert and delete the other config or build scripts. Delete obsolete ones. - Windows: correctly reference windows icon. - x2goclient.spec: fix builds on Fedora and related due to failing removal of browserplugin directory. That's non-critical. - onmainwindow.cpp: actually call slotTunnelOk(int), do not generate a run time error by calling the non-existent function slotTunnelOk(). Fixes: #804. - onmainwindow.cpp: clarify message regarding missing SSH daemon host keys. Fixes: #793. - non_modal_messagebox.{cpp,h}: Add new Non_Modal_MessageBox class for non-modal message boxes. - onmainwindow.cpp: use Non_Modal_MessageBox::critical function to display errors relating to missing sshd host keys. Fixes: #794. - onmainwindow.cpp: also make the message about a non-running sshd non-modal. - {x2goclient.pro,res/osxbundle/{Info.plist,postbuild.sh}}: + Add new postbuild script to set the correct version in the processed Info.plist output file. + Use this script in x2goclient.pro as QMAKE_POST_LINK command. + Move Icon copying into that script. + Define version in x2goclient.pro. - onmainwindow.cpp: consolidate Windows and non-Windows sshd startup error message. - onmainwindow.cpp: typo fix (authoized_keys.) - onmainwindow.cpp: stop exporting directories (Printing, File Sharing) on sshd error. - onmainwindow.cpp: fix session icon not being displayed as tray icon (missed legacy resource URI wrapper call.) - configdialog.cpp: update XQuartz outdated version info message and links. Add MacPorts reference. - configdialog.cpp: reformat code, add MacPorts and XQuartz references, URL's and installation instructions, don't show outdated version warning when no XQuartz server is installed. Fixes: #792. - x2goutils.{h,cpp}: use QString references. - x2goutils.{h,cpp}: add new helper function show_RichText_WarningMsgBox. - configdialog.cpp: use new helper function show_RichText_WarningMsgBox to show proper errors. Format as HTML. Use hyperlinks. Rephrase XQuartz warning messages. - configdialog.cpp: return empty strings as paths to the XQuartz application if no valid one could be found in order to show the proper error message. - configdialog.cpp: rephrase another error message, use the new helper and reformat code. - onmainwindow.{cpp,h}: make slotTunnelOk parameter optional and use the non-parameter call for the QSingleShotTimer::timeout() signal. - x2goutils.{h,cpp}: split up show_RichText_WarningMsgBox() into the aforementioned function and a new convert_to_rich_text() helper function. - non_modal_messagebox.{h,cpp}: add new Non_Modal_MessageBox::critical() overloaded functions to be able to use informative text and a (forceful, if requested) conversion to rich text. - onmainwindow.cpp: prettify non-running sshd error message. - onmainwindow.cpp: prettify non-available host key error message. - onmainwindow.cpp: also use usermode sshd on OS X, if no global daemon is running. - onmainwindow.cpp: on OS X, specify sshd's PID file location in its server config. - onmainwindow.cpp: wait 3 seconds before checking sshd startup state to allow it to come up. - onmainwindow.cpp: adapt SSH host key warning message to new usermode sshd possibilities. - configdialog.cpp: make XQuartz detection algorithm QStringList-based and add MacPorts location. - onmainwindow.cpp: do not define Ctrl+Q two times. Made it unusable on Linux and Windows. (Fixes: #830). - onmainwindow:cpp: correctly pass escaped single quote when writing remote xinerama config file. Post-fixup for #797. - {onmainwindow.cpp,README.i18n}: fix localization -- resource strings were not correctly updated. Fixes: #828. - onmainwindow.cpp: quote commands for generating pulse-client.conf correctly, add more quotes and use absolute file path for pulse cookie. - version.h: add include guard. - help.{cpp,h}: add skeleton for new help system. - help.{cpp,h}: add sanitizing helpers. - help.cpp: populate pretty_print: fetch max length of params. - help.cpp: get terminal window sizes on UNIX-based and Windows operating systems. - help.cpp: complete pretty printer function. - help.cpp: "copy" old command line parameters. - help.cpp: document broker options. Fixes: #851. - help.cpp: actually output the help message. - help.{cpp,h}: also pass the help message on (for display in graphical mode.) - x2goclient.pro{,.maemo}: add new help.{cpp,h} files. - onmainwindow.cpp: replace old help system with new one. - {{onmainwindow,help}.cpp},help.h}: fix misc. build errors. - help.h: fix run time error by actually giving QTextStream a "device" to write to. - help.cpp: clear current string if completely written onto one line. - help.cpp: enable debugging for pretty_print(). --debug must be supplied before --help for this to work. - help.cpp: fix splitting algorithm to step over a space character, but include hyphens correctly into the current line. - help.cpp: don't let qCritical() add even more spaces or quotes around the help message. - help.cpp: add support for newlines within descriptions. - help.cpp: use new newline feature for some options. - help.cpp: trying to split at hyphens was a bad idea. Remove that part. - help.cpp: fix a compile warning (by including winsock2.h) and error (caused by a typo) on Windows. - help.cpp: hardcode indentation value to 2 (for the first spaces) + maximum length of parameters + 4 (for the trailing 4 spaces). Calculations via terminal_cols and remaining do not work, if terminal_cols is unknown. - x2goutils.{cpp,h}: implement new git_changelog_extract_commit_sha helper, extracting the most recent commit shasum from a git changelog string. - help.cpp: use new git_changelog_extract_commit_sha() helper while building the help prelude. - helpdialog.cpp: change to monospaced font. - helpdialog.cpp: use QT_VERSION macro to select either a monospaced or typewriter font (Qt < 4.7.0 only supports TypeWriter.) - x2goutils.{cpp,h}: add new font_is_monospaced() helper. - helpdialog.cpp: try harder to set a monospaced font. - helpdialog.cpp: lower font size to have more space for text. - ui/helpdialog.ui: almost double the window size. - help.cpp: typo fix for --git-info. - help.{cpp,h}: provide string splitting logic as separate split_long_line() function. Use this in pretty_print(). - help.cpp: simplify pretty_print() and make it also split lines for non-terminal output or when the terminal width is unknown. - help.{cpp,h}: add a boolean terminal_output parameter to the pretty_print() function family. Controls terminal width auto-detection and automatic printing to stderr. - onmainwindow.cpp: don't let a potential terminal affect the help string shown in the GUI. - help.h: lower default splitting length to 100 characters. - onmainwindow.cpp: fix up pulse config file generation and PULSE_CLIENTCONFIG setting once more. - {macbuild,res/osxbundle/postbuild}.sh: add support for git information if not building from a tag. Also includes build date. - {{configdialog,onmainwindow}.cpp,x2goutils.{cpp,h}}: new helper functions show_XQuartz_not_found_error(), show_XQuartz_start_error() and show_XQuartz_generic_error(). The first two are calling the latter one. Replace previous messages in configdialog.cpp and onmainwindow.cpp with the helpers, because they are supposed to pop up a dialog showing almost the same message. - x2goutils.cpp: fix compile error. tr () is a member of QObject and must be explicitly marked as such in a free function. - {configdialog.{cpp,h},onmainwindow.cpp}: miscellaneous typo fixes - no functional changes. - onmainwindow.cpp: whitespace changes to installTranslator() only. - onmainwindow.cpp: correctly let Qt fetch the UI display language for Qt 4.8.0 and higher. The old "compat" behavior is retained for older versions of Qt, which do not have the semantics of a UI display language. Fixes: #845. - config_win.bat: enable release by default, fetch command line parameter and compare against debug. Enable debug and console features in that case. - onmainwindow.{cpp,h}: follow-up to last translation fix. Actually handle English locales correctly and don't duplicate code too much. - onmainwindow.{cpp,h}: make new get_translator() function static. Correct typo in implementation. - onmainwindow.h: include used types/headers. - onmainwindow.cpp: correctly call QLocale::uiLanguages (). - onmainwindow.cpp: copy strings before manipulating them. - onmainwindow.h: make get_translator() const. Does not change any state. - onmainwindow.cpp: fix compile error triggered by a missing parenthesis/typo. - onmainwindow.cpp: workaround https://bugreports.qt.io/browse/QTBUG-25973. - onmainwindow.h: revert const-qualifier for get_translator(). It's static and can't have any cv-qualifier. - copy-deps-win32.bat: actually let xcopy error correctly. - general: improve debug output and error messages. Affects: + LDAPSession.cpp + configdialog.cpp + contest.cpp + cupsprintersettingsdialog.cpp + exportdialog.cpp + folderexplorer.cpp + httpbrokerclient.cpp + onmainwindow.cpp + onmainwindow.h + printdialog.cpp + printprocess.cpp + printwidget.cpp + sessionbutton.cpp + sessionexplorer.cpp + sessionmanagedialog.cpp + sessionwidget.cpp + settingswidget.cpp + sharewidget.cpp + sshmasterconnection.cpp + sshprocess.cpp + wapi.cpp - sshmasterconnection.cpp: fix typo in last commit leading to a compile failure, correct content, remove superfluous newlines. - sessionexplorer.cpp: use a better shared logic for generating an arguments list for calling x2goclient.exe from a desktop shortcut. Respect the tray icon option also on Windows. Fixes: #871. [ Fernando Pedemonte ] * New upstream release (4.0.4.0): - onmainwindow.cpp: fix bad quoting when writing remote xinerama config file. Fixes: #797. [ René Genz ] * New upstream release (4.0.4.0): - {LICENSE,debian/copyright}: fix typo in URL of obviously-nice.de. Fixes: #811. [ Mike Gabriel ] * New upstream release (4.0.4.0): - onmainwindow.cpp: fix desktop sharing via session broker. Fixes: #584. [ Jason Alavaliant ] * New upstream release (4.0.4.0): - onmainwindow.cpp: handle %i and %c format flags in desktop files correctly: remove the %i flag and replace %c with the application name. Fixes: #827. [ Nicolas Husson ] * New upstream release (4.0.4.0): - src/{onmainwindow,sshmasterconnection}.cpp: enable use of SSH proxy configuration with x2goplugin. Fixes: #798. + v2: refactor patch, fix whitespace issues. (Mihai Moldovan) [ Stefan Baur ] * New upstream release (4.0.4.0): - general: fix spelling and English language syntax issues. Fixes: #389. + v2: apply more fixes in the original changes context. (Mihai Moldovan) -- X2Go Release Manager Tue, 26 May 2015 21:09:14 +0200 x2goclient (4.0.3.2-0x2go1) unstable; urgency=medium [ Oleksandr Shneyder ] * New upstream release (4.0.3.2): - Fix placement of session folders in session card column. (Fixes: #681). - Send empty message in x2gohelper to stop AppStarting cursor. (Fixes: #616). - Fix multiple creations of modmap timer (OS_DARWIN). [ Mike Gabriel ] * New upstream release (4.0.3.2): - Add several info/error/debug log message while hunting down #702. - Use app.setQuitOnLastWindowClosed(false) for the X2Go Client QtApplication to assure that X2Go Client does not arbitrarily exit during a running session. This fixes X2Go Client crashes that occur when printing via the CUPS-X2Go printing mechanism with activate print dialog popup on incoming print jobs and minimized main window. (Fixes: #702). - Be more exact when reporting rev forwarding tunnel request failures to the GUI user. Include the purpose of the tunnel (NX, audio, foldersharing) in the error message. - Enable debugging in sshprocess.cpp and sshmasterconnection.cpp if --debug is given. - sshmasterconnection.cpp: Fix several grammar issues in error messages. - When sharing a client-side folder, do not write the SSH pub key to client-side authorized_keys file if the folder-to-be-shared does not exist on the client. (Partially solves #405). - Fix string concatenation/layout of error message when tunnel I/O errors occur. - Improve debugging/logging the SSH connections made by X2Go Client. - Fix quotes when calling remote commands via SSH (esp. allow same quoting/ escaping style for libssh and openSSH+Krb based connections). (Fixes: #720). - FIXME: Disable PubkeyAuthentication _and_ PasswordAuthentication if GSSAPI authentication is activated. This is counter intuitive, though, and requires several other fixes in the authentication code. * x2goclient.spec: - Always set BuildRoot: parameter. [ Sergey Savko ] * New upstream release (4.0.3.2): - Prevent passwordless re-logins into X2Go Session Broker if --broker-autologoff is used on the cmdline. (Fixes: #782). - Add new cmdline option --broker-noauth-use-session-username. When --broker-noauth is used, the broker does not know on behalf of which user to operate. This new option enables username syncing. When logging into X2Go Server, that username will be sent to the broker and be used for querying X2Go Broker Agents etc. (Fixes: #781). [ Heinrich Schuchardt ] * New upstream release (4.0.3.2): - Base the layout dialogue "Session ID" (which shows up when starting a connection) on typographic points (instead of pixels). (Fixes: #713). [ Jason Alavaliant ] * New upstream verson (4.0.3.2): - Use QUrl::toPercentEncoding() method to properly encode passwords sent to X2Go Session Broker. (Fixes: #705). [ Mike DePaulo ] * New upstream release (4.0.3.2): - Windows: Win32 OpenSSL updates from 1.0.1j to 1.0.1L, which fixes the CVEs announced on 2015-01-08. - Windows: Cygwin OpenSSL updated from 1.0.1j-1 to 1.0.1k-1, which fixes the CVEs announced on 2015-01-08. - Windows: Bundle new version of VcXsrv: 1.15.2.2-xp+vc2013+x2go1. The differences from 1.15.2.1-xp+vc2013+x2go1 are that its bundled OpenSSL has been updated to 1.0.1k, and that xorg-server CVE-2014-8091..8103 have been fixed. - Windows: Update libssh from 0.6.3 to 0.6.4 (while maintaining Pageant support). This fixes CVE-2014-8132, which shouldn't affect x2goclient because x2goclient uses the SSH client functionality, not the SSH server functionality. 0.6.4 also added 4 features related to ECDSA keys. - Windows: Fix compatibility with PulseAudio 6.0 - Windows: Remove workaround for audio input with old versions of PulseAudio (calling parec once per second) (Fixes: #742) Thanks George Trakatelis (uom.edu.gr) for submitting this change. - Windows: Enable X2Go Client for Windows to build under VS2010 nmake (but not the VS2010 IDE due to a Qt4 Visual Studio Add-in limitation) Note that the official builds are still build under MinGW. (Fixes: #642) Thanks George Trakatelis (uom.edu.gr) for submitting this feature. - Windows: Make builds easier, and updating bundled dependencies easier, by adding copy-deps-win32.bat. It copies the exact version of each dependency (DLL, executable, data, folder, etc) from x2goclient-contrib.git. [ Kaan Ozdincer ] * New upstream version (4.0.3.2): - Add Turkish translation file. -- X2Go Release Manager Thu, 19 Feb 2015 12:49:22 +0100 x2goclient (4.0.3.1-0x2go1) unstable; urgency=medium [ Mike Gabriel ] * New upstream release (4.0.3.1): - Fully rework x2goclient man page. Add many options that haven't been documented so far. - Make sound options configurable via X2Go Session Broker. (Fixes: #652). - Fix (cross-user) desktop sharing since introduction of clipboard mode feature. - Update several translation files after splitting of session profile's "Settings" tab into "Input/Output" and "Media". Translations for these two new tabs derived from the i18n files of PyHoca-GUI. [ Mark Pedersen-Cook ] * 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: #643). -- Mike Gabriel Thu, 27 Nov 2014 11:00:17 +0100 x2goclient (4.0.3.0-0x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream release (4.0.3.0): - Disallow server-side users to override X2Go Server commands via ~/bin (or similar). (Fixes: #336). - Avoid unitialised variables on early calls of ONMainWindow::closeEvent() or ONMainWindow::closeClient(). (Fixes: #253). - Update translation files. Add empty Portuguese translation. Update qt_.qm files from Debian unstable as of today. - Update German translation file (after session folder feature got added). - Makefile.man2html: Test if man2html exists. If not, don't fail. - Honor exports (client-side shared folders) from broker session profiles. Thanks to Ming Song for providing a patch for this (Fixes: 612). * debian/control: + Add B-D: apache2-dev. On squeeze / lucid builds, this is a superfluous B-D, but for later Debian/Ubuntu versions, this smoothes the installation of the x2goplugin-provide bin:package. + Update B-D: apache2-dev | libc6-dev. The apache2-dev package does not exist on all Debian/Ubuntu versions. * x2goclient.spec: + Adapt to building for openSUSE/SLES. + openSUSE: Make Qt4 Linguist tools available for Makefile. + Upgrade versioned BR for libssh-devel (0.6.3 or patched 0.5.5). + The libqt4-linguist split off happened in openSUSE 13.1. + Add x2goclient-rpmlintrc file. + In openSUSE, it is openldap2-devel, in Fedora/RHEL it is openldap-devel. + In openSUSE, openssh is openssh (not openssh-clients / openssh-server). [ Oleksandr Shneyder ] * New upstream release (4.0.3.0): - Fix running x2goclient without arguments on Windows. (Fixes: #522). - Save proxy output in $HOME/S-$SESSION-ID/session.log if debugging is enabled. - Fork x2goclient on windows and terminate child processes if X2Go Client crashed. (Fixes: #159). - Add "clipboard" parameter to session profile and to command line options. (Fixes: #258). - Replace qCritical() with printError() by argument parsing. - Update translation files. - Update russian translation. - Update string "&Clipboard Mode" and translate in russian translation file. - Grammar fix in russian translation. - Add x2gohelper to start X2Go Client on Windows and clean child processes if X2Go Client crashes. (Fixes: #525). - On Windows rename x2goclient.exe to x2goclient-mainprocess.exe and x2gohelper.exe to x2goclient.exe. - Start x2gohelper from X2Go Client. Revert name changing of X2Go Client and x2gohelper. - Add Makefile for x2gohelper. - Add support for sessions folders. - Add folder explorer: a GUI to manage of session subfolders. - Support for sessions subfolders in sessionmanagedialog. - Session name autocompletion only for sessions in current folder. - Support for session subfolders and command-line options "--session" and "--sessionid". - Disable session explorer "back" button if user sessions are disabled. - Include in sessionexplorer.cpp. - Remove deprecated workaround in wapi.cpp. - Save folder icons Base64 coded. Save icons under General\icon_. (Fixes: #580). - Fix placing sessions folders in broker mode. - Fix onmainwindow.cpp after 76ae96781f1d2d5754ee4751539d5de47f1d0297. - Add support for session selection in broker mode. [ Mike DePaulo ] * New upstream release (4.0.3.0): - Make X2Go Client aware of the Cinnamon (CINNAMON) desktop environment. (Fixes: #571) - Make X2Go Client aware of the Trinity (TRINITY) desktop environment. (Fixes: #609) - Make X2Go Client aware of the Openbox (OPENBOX) window manager. (Fixes: #607) - Make X2Go Client aware of the IceWM (ICEWM) window manager. (Fixes: #608) - Windows: Fix not being able to add the server to the known_hosts file when the username has non-English characters. (Fixes: #566) (NOTE: This fix only works when the non-English characters are in the same language as the Windows "system locale" AKA "Language for non-Unicode programs." Bug #611 was written for fixing the issue for languages other than the system locale.) Thanks George Trakatelis (uom.edu.gr) for submitting part of this fix. - Windows: Install VcXsrv "misc" fonts by default, and make all 4 font groups optional: misc, 75dpi, 100dpi and others (Fixes: #108) Note: The fact that all the fonts are included makes the installer about 30MB larger. - Windows: Bundle new version of VcXsrv: 1.15.2.1-xp+vc2013+x2go1 This new version is based on upstream VcXsrv 1.15.2.0, but still compatible with Windows XP. It also has its bundled OpenSSL updated to 1.0.1j. It is compiled with Microsoft Visual C++ 2013 and contains 1 X2Go-specific change, winmultiwindow.patch. This patch fixes an issue when resizing the NX-proxy window on specific multiple monitor setups. (Thanks Oleksandr Shneyder for the patch) (Fixes: #568) (Fixes: #594) - Windows: Port from MinGW 4.4 + Qt 4.8.5 to MinGW 4.8.2 + Qt 4.8.6, including fix for QTBUG-38706 (Fixes: #474, #603) - Windows: Fix missing VcXsrv/zlib1.dll . The impact of this bug was that VcXsrv would not start if the cwd was changed from the x2goclient directory. (The start menu and desktop shortcuts do have the x2goclient directory as the cwd. So they were not affected.) (Fixes: #587) - Windows: Make the desktop shortcut optional during install, but still the default. - Windows: Upgrade libssh from 0.5.5 to 0.6.3. This fixes connecting to hpn-enabled SSH servers. The Pageant support patch from the KDE Windows project was ported to 0.6.3 by myself and Mike Frederick. (Gmail: psududemike) (Fixes: #590) - Windows: Win32 OpenSSL updated from 1.0.1h to 1.0.1j, which fixes the CVEs announced on 2014-08-06 & 2014-10-15. - Windows: Replace Cygwin Bash (sh.exe) with Cygwin Dash (ash.exe renamed to sh.exe). This also means fewer Cygwin .DLLs are bundled. (Fixes: #636) - Windows: cygwin packages (excluding OpenSSH, which is at the patched version of 6.6.1p1-3-x2go1) updated from latest versions as of 2014-06-09 to latest versions as of 2014-10-18. This includes openssl 1.0.1j-1, which fixes the CVEs announced on 2014-08-06 & 2014-10.15. (Cygwin openssl was also individually updated in 4.0.2.1+hotfix1+build2, but only to 1.0.1i-1.) - Windows: Build nxproxy.exe with Cygwin's libpng 1.5.x rather than 1.2.x. (This may improve performance when PNG compression is selected.) - Windows: Build cygwin openssh without krb5 or tcp_wrappers support because X2Go Client for Windows does not use either feature. (On Windows, Kerberos 5 (GSSAPI) support is provided by PuTTY.) - Windows: Fix text not being rendered properly at end of NSIS installer (Fixes: #597) [ Stefan Baur ] * New upstream version (4.0.3.0): - Update German translation file. [ Ricardo Díaz Martín ] * New upstream version (4.0.3.0): - Update Spanish translation file. [ Martti Pitkanen ] * New upstream version (4.0.3.0): - Update Finnish translation file. [ Jos Wolfram ] * New upstream version (4.0.3.0): - Update Dutch translation file. [ Robert Parts ] * New upstream version (4.0.3.0): - Add Estonian translation file. [ Klaus Ade Johnstad ] * New upstream version (4.0.3.0): - Update Bokmal (Norway) translation file. [ Daniel Lindgren ] * New upstream version (4.0.3.0): - Update Swedish translation file. * Translation status: OK - Updating 'x2goclient/x2goclient_de.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) INCOMPLETE - Updating 'x2goclient/x2goclient_da.qm'... Generated 536 translation(s) (526 finished and 10 unfinished) Ignored 30 untranslated source text(s) OK - Updating 'x2goclient/x2goclient_es.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) OK - Updating 'x2goclient/x2goclient_et.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) OK - Updating 'x2goclient/x2goclient_fi.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) INCOMPLETE - Updating 'x2goclient/x2goclient_fr.qm'... Generated 254 translation(s) (201 finished and 53 unfinished) Ignored 312 untranslated source text(s) OK - Updating 'x2goclient/x2goclient_nb_no.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) OK - Updating 'x2goclient/x2goclient_nl.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) UNTRANSLATED - Updating 'x2goclient/x2goclient_pt.qm'... Generated 0 translation(s) (0 finished and 0 unfinished) Ignored 566 untranslated source text(s) INCOMPLETE - Updating 'x2goclient/x2goclient_ru.qm'... Generated 552 translation(s) (543 finished and 9 unfinished) Ignored 14 untranslated source text(s) OK - Updating 'x2goclient/x2goclient_sv.qm'... Generated 566 translation(s) (566 finished and 0 unfinished) INCOMPLETE - Updating 'x2goclient/x2goclient_zh_tw.qm'... Generated 397 translation(s) (372 finished and 25 unfinished) Ignored 169 untranslated source text(s) -- Mike Gabriel Tue, 21 Oct 2014 12:38:56 +0200 x2goclient (4.0.2.1-0x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream release (4.0.2.1): - Fix FTBFS on arm64 (and others) architecture. (Fixes: #498). - Only show session name in notification bubbles with debugging enabled. (Fixes: #364). - New command line option (--keep-trayicon). With that options set, we force X2Go client to only use the default "accelerated X" as system tray icon (and prohibit usage of the session's icon as tray icon). (Fixes: #365). - Provide more meaningful messages on SSH errors (host pub key not found, export pub key not found, authorized_keys file not found). For SSHd startup failures provide different messages on Windows and non-Windows machines. (Fixes: #235). FIXME: add detection code to report SSH daemon startup failures. - Add new cmdline option --hide-foldersharing. If used, all GUI elements related to exporting client-side folders to X2Go sessions get hidden. (Fixes: #514). - Update COPYING file (to update FSF address). * debian/control: + Add dbg:package x2goplugin-dbg. [ Clemens Lang ] * New upstream version (4.0.2.1): - Re-add Info.plist file (which got removed by accident in commit 91cf6c6). (Fixes: #502). [ Oleksandr Shneyder ] * New upstream release (4.0.2.1): - Hide GSSAPI options on direct RDP connections. (Fixes: #478). - Search X-Server in /Applications/Utilities/XQuartz.app on Mac. - Wrong cmd line option throw error dialog if running not from terminal. - Add command line option "close-disconnect", which make client close after session is disconnected. - Don't start pulse on Windows, until we really have to start a session that requires pulse support. - Check if sound is activated before starting pulse. - Fix starting sshd on Win XP. (Fixes: #421). - Fix "fullscreen" mode on Windows 7 with multiple monitors. [ Mike DePaulo ] * New upstream release (4.0.2.1): - Windows: Reduce the size of NSIS installer by several MB by switching to lzma solid compression - Windows: Prevent high PulseAudio CPU usage on Windows XP by lowering PulseAudio's CPU priority from "high" to "normal" on XP specifically. Also do so on Windows Server 2003 (R2) (Fixes #526) - Windows: Enable PulseAudio log when --debug is passed. - Windows: Fix compatibility with current PulseAudio master branch - Windows: cygwin packages (inluding patched OpenSSH 6.6.1p1-3) updated from latest versions as of 2014-04-08 to latest versions as of 2014-06-09. This includes openssl 1.0.1h-1, which fixes the 6 CVEs announced on 2014-06-05. (Cygwin openssl was also individually updated to 1.0.1h-1 in 4.0.2.0+build4.) This also includes migrating from libjpeg to libjpeg-turbo, which reduces CPU usage of nxproxy.) - Windows: Download and compile nx-libs-lite from the release tarball, rather than from git, so that the patches are actually applied - Windows: nx-libs-lite updated from 3.5.0.22 to 3.5.0.27 (linked against aforementioned cygwin package versions) - Windows: Win32 OpenSSL updated from 1.0.1g to 1.0.1h, which fixes the 6 CVEs announced on 2014-06-05. (Win32 OpenSSL was also updated to 1.0.1h in 4.0.2.0+build3.) - Windows: VcXsrv (XP Compatible) updated from 1.14.3.1 to 1.14.3.2. Fixes CVE-2014-0209, CVE-2014-0210, and CVE-2014-0211 (VcXsrv was also updated to 1.14.3.2 in 4.0.2.0+build2.) - Windows: Switch from regular NSIS 2.46 to Unicode NSIS 2.46.5 (Fixes: #528) -- Mike Gabriel Fri, 11 Jul 2014 12:23:59 +0200 x2goclient (4.0.2.0-0x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (4.0.2.0): - Revrite SSH Classes to support libssh fix. - Add Class HelpDialog to show options in scroll area. - Fix authentication on SSH Broker with key + passphrase. - Set modmap timer timeout to 10 sec on Mac. - Fix running xmodmap if X2Go Client not started from terminal. - Setting keyboard modifiers with xmodmap. - Fix multimonitor support on Linux. - Display more version info. Parameters --version, --git, --changelog. - Don't show GUI dialog for --version, --help, etc, if started from terminal on linux and mac. - If no user in session config, display system username in pass form. - Check if txt/changelog and txt/git exist on config phase. Rename option "--git" to "--git-info". - Change x2goclient.nsi for nightly builds. [ Josh Lukens ] * New upstream version (4.0.2.0): - Switch to QNetworkAccessManager. Appropriately set content type header to "application/x-www-form-urlencoded" for HTTP post requests. (Fixes: #440, #138). - Fix copy+paste errors in QNetworkAccessManager code. - Provide support for dynamic authentication IDs. This is a requirement for using the broker client against brokers that use some sort of OTP authentication mechanism. (Fixes: #446). [ Mike Gabriel ] * New upstream version (4.0.2.0): - Drop create_text.sh again, implement changelog copying in distro build files. Implement Git history creation for nightly builds in build scripts. - Rename txt/git to txt/git-info (make it compliant with cmdline options). - Allow starting shadow sessions from the command line with option --hidden being enabled. (Fixes: #349). * debian/control: + Build-depend on libssh-dev (>= 0.5.4-2). + Bump Standards: to 3.9.5. No changes needed. * debian/rules: + Copy debian/changelog into txt/ subfolder during dh_auto_configure. + Create txt/git-info files for ChangeLog.git if it exists. * x2goclient.spec: + Copy ChangeLog (or debian/changelog) into txt/ subfolder during %setup. + Copy ChangeLog.gitlog (if present) into txt/ subfolder during %setup. + B-R (epel-7): man2html-core (same as for Fedora builds). [ Mike DePaulo ] * New upstream version (4.0.2.0): - Decrease HelpDialog's tab width from 320 to 30 (the width of 10 spaces.) (Fixes: #453) - Windows: Fix compatibility with PulseAudio 3.0 & later through new cookie handling. (Fixes: #422) - Windows: Upgrade included PulseAudio from 1.1 to 5.0. The 5.0 build is patched for X2Go bug #363. and available here: https://build.opensuse.org/project/show/home:mikedep333:branches:home:\ mkbosmans:mingw32:pulseaudio - Windows: Reapply KDE on Windows's patch for Pageant support to libssh 0.5.5. (Fixes: #448) -- Mike Gabriel Thu, 10 Apr 2014 13:47:56 +0200 x2goclient (4.0.1.6-0x2go1) unstable; urgency=low * x2goclient.spec: + B-R (epel-7): man2html-core (same as for Fedora builds). (Cherry-picked from already released version 4.0.2.0). -- Mike Gabriel Fri, 11 Jul 2014 12:25:47 +0200 x2goclient (4.0.1.5-0x2go1) unstable; urgency=low * Build fix release (4.0.1.5): - Add x2goclient_nl.ts to x2goclient.pro, so that the .qm file gets generated during build. (Fixes: #473). -- Mike Gabriel Thu, 10 Apr 2014 17:47:27 +0200 x2goclient (4.0.1.4-0x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (4.0.1.4): - Increase ssh_select timeout to 0.5 sec. - Set mod map from client to server on Mac, hide keyboard settings on Mac. - Fix mod map on Mac with kerberos. - Fix focus on pass form. [ Orion Poplawski ] * New upstream version (4.0.1.4): - Fix password connection with libssh 0.6.0. (Fixes: 420). - Don't use ancient Debianism's for ssh options (ProtocolKeepAlives). (Fixes: #434). [ Martti Pitkanen ] * New upstream version (4.0.1.4): - Update Finnish translation file. [ Robert Parts ] * New upstream version (4.0.1.4): - Add new translation of X2Go Client to Estonian. [ Nicolai Hansen ] * New upstream version (4.0.1.4): - Update Danish translation file. [ Jos ] * New upstream version (4.0.1.4): - Add new translation of X2Go Client to Dutch. -- Mike Gabriel Thu, 10 Apr 2014 13:46:33 +0200 x2goclient (4.0.1.3-0x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (4.0.1.3): - changed keyboard settings. Supported modes: auto, none and config with model/layout(variant) - Enables forwarding (delegation) of GSSAPI credentials to the server. - Make GSSAPI delegation configurable. - Update Russian translation file. - Rewrite SSH Classes to support libssh fix. - Set mod map from client to server on Mac, hide keyboard settings on Mac. - Fix mod map on Mac with kerberos. - Fix focus on pass form. [ Orion Poplawski ] * New upstream version (4.0.1.3): - Protect x2goplugin.html. Make it only available from the local host. [ Mike Gabriel ] * New upstream version (4.0.1.3): - Fix scan for pulseaudio cookie file. Issue got introduced in X2Go Client 4.0.1.2 and let pulseaudio sound setup fail completely in the Linux X2Go Client of that version. (Fixes: #384). - Minor update of the German translation file. [ Klaus Ade Johnstad ] * New upstream version (4.0.1.3): - Update Bokmal translation file. [ Ricardo Díaz Martín ] * New upstream version (4.0.1.3): - Update Spanish translation file. [ Daniel Lindgren ] * New upstream version (4.0.1.3): - Update Swedish translation file. [ Stefan Baur ] * New upstream version (4.0.1.3): - Update German translation file. [ Martti Pitkanen ] * New upstream version (4.0.1.3): - New translation of X2Go Client to Finnish. -- Mike Gabriel Wed, 22 Jan 2014 08:56:30 +0100 x2goclient (4.0.1.2-0x2go2) unstable; urgency=low [ Mike Gabriel ] * New upstream version (4.0.1.2): - Provide Keywords: key in .desktop file. - Add NSIS packaging files for win32 builds to source tree. (Files provided by Oleksandr Shneyder, thanks!!!). - Rename win32 desktop and startmenu icon from "X2goClient" to "X2Go Client". - Store broker HTTPS certificate exceptions in $HOME/.x2go/ssl/exceptions (before: $HOME/ssl/exceptions). (Fixes: #328). - Perform sanity checks on data that comes in from X2Go Servers. Prohibit the execution of arbitrary code via the ~/.bashrc file. (Fixes: #333). - Add option --broker-cacertfile. Allow usage of non-system-wide installed (self-signed) SSL certificate chains for https (SSL) session broker connections. (Fixes: #311). - Update man page for new --tray-icon cmdline option. - Update man page for --broker-url. Explain the syntax of . - Properly handle (=expand) the "~" character in key filenames. (Brought to attention by Eldamir on IRC. Thanks!). - Expand tilde operator for all other file paths handed over to X2Go Client via sessions file or cmdline parameter. - Syntax fix of x2goclient.desktop file. - Test for various file locations of the pulseaudio cookie file. - Allow patching of qmake-qt4 executable path in Makefile. - Make qmake-qt4 and lrelease path in Makefile easily replacable (as RHEL-5 does not have those tools in $PATH). - Make sure that build_client and build_plugin are not build with parallel make. - Make x2goplugin-provider installable via Makefile. * Pull-in packaging changes from Debian. * debian/source/format: + Switch to format 1.0. * x2goclient.spec: + Ship x2goclient.spec (RPM package definitions) in upstream project. (Thanks to the Fedora package maintainers). + Clear (Fedora package) changelog. + Make package build on Fedora/EPEL versions that do not have the qtbrowserplugin package. + For EPEL-5 builds: replace full path to qmake-qt4 and lrelease. + Split up package into bin:packages: x2goclient, x2goplugin, x2goplugin-provider. + Make sure lrelease-qt4 is executed (not just lrelease). [ Ricardo Díaz Martín ] * New upstream versino (4.0.1.2): - Strip whitespaces off of user name, host name and other strings when loading / saving session profiles.(Fixes: #315). - New option --tray-icon. Force showing the tray icon, even for hidden sessions. Also allow creation of .desktop files with --tray-icon optionally being enabled. (Fixes: #316). - Update Spanish translation. [ Oleksandr Shneyder ] * New upstream version (4.0.1.2): - Support for keys "shadowuser" "shadowdisplay" and "shadowmode" in config file. This allows choosing the default display for shadow sessions. - Support for GSSApi(Kerberos 5) authentication. Using ssh/scp commands on Linux and Mac and plink/pscp on Windows. - Support for ChallengeResponseAuthentication (Google Authenticator) - Setting main window focus on mac (Fixes: #139). - Additional check if authentication with GSSApi successfull - c121b7e2d3d83abdc2d7a29637bc3294e38b2ec3 broke checking if remote command produce only stderr and not stdout. It made x2goclient crash if x2gostartagent send LIMIT error. Current commit fixes this issue. - SshMasterConnection should use current user name if no user name is specified in session settings - GSSApi(Kerberos 5) authentication for sshproxy and sshbroker - fixed GSSApi(Kerberos 5) authentication for sshproxy and sshbroker on windows [ Heinrich Schuchardt ] * New upstream version (4.0.1.2): - Handle SSH host key changes more elegantly and allow user interaction if such a host key change occurs. (Fixes: #241). [ Michael DePaulo ] * New upstream version (4.0.1.2): - win32: Add uninstall information to Add/Remove Programs. (Fixes: #230). -- Mike Gabriel Tue, 17 Dec 2013 15:21:38 +0100 x2goclient (4.0.1.1-0~x2go1) unstable; urgency=low [ Nicolai Hansen ] * New upstream version (4.0.1.1): - Update Danish translation file. [ Terje Andersen ] * New upstream version (4.0.1.1): - Update Norwegian Bokmaal translation file. [ Oleksandr Shneyder ] * New upstream version (4.0.1.1): - Use "127.0.0.1" instead of localhost to avoid wrong IPv6 hostname resolution. (Fixes: #151). - Wait for x2gocmdexitmessage to return before closing in hidden mode. - Support for published applications in X2Go Plugin - Support for "shadow" mode in X2Go Plugin [ Mike Gabriel ] * New upstream version (4.0.1.1): - If a priv SSH key has been specified, skip the autologin procedure. Let's consider a given SSH private key that fails to log the user in as an overall login failure. (Fixes: #141). - Avoid multiple selectUserSession requests when in broker mode. - Properly set the remote server address received via selectUserSession method when in broker mode. (Fixes: #226). - Fix segmentation fault that started occurring since the custom trayIcon patch was applied. Segfault only occurred if the tray icon was not used. - Show session name in notification bubbles. - Update German translation. - Add cmdline option --broker-autologoff: Enforce re-authentication against X2Go Session Broker after a session has been suspended or terminated. (Fixes: #179). - Enable full access desktop sharing across user accounts. (Fixes: #222). - Make X2Go Client aware of the MATE desktop environment. - Make X2Go Client work in SSH broker mode without the need of a auth-id file. [ Heinrich Schuchardt ] * New upstream version (4.0.1.1): - Call ssh_clean_pubkey_hash() for deallocating public key hashes instead of just calling free(). Required under MS Windows as documented in libssh2 API. (Fixes: #243). (For further details see: http://api.libssh.org/master/group__libssh__session.html). * Provide bin:package with debug symbols for X2Go Client. (Fixes: #255). [ Ezra Bühler ] * New upstream version (4.0.1.1): - Fix auto-resume when session type is »Single Application«. (Fixes: #183). [ Ricardo Díaz Martín ] * New upstream version (4.0.1.1): - Fix detection of maximum screen area available for a session. (Fixes: #165). - Use the session icon as tray icon, pop up notification bubble that informs about current session actions. (Fixes: #177). - Allow for setting maximum available desktop size as window size via the session profile card. Unfortunately, this feature is for now only available on Linux. (Fixes: #214). [ Otto Kjell ] * New upstream version (4.0.1.1): - Enable debug mode through cmd line parameter. (Fixes: #142). - Standardize output to stdout+stderr and make it parseable. [ Orion Poplawski ] * New upstream version (4.0.1.1): - Instead of using a hard-code DPI of 96, use local DPI settings for new sessions if not explicitly set in session profile (Fixes: #164). [ Daniel Lindgren ] * New upstream version (4.0.1.1): - Update Swedish translation file. [ Ricardo Díaz Martín ] * New upstream version (4.0.1.1): - Update Spanish translation file. -- Mike Gabriel Wed, 11 Sep 2013 12:06:02 +0200 x2goclient (4.0.1.0-0~x2go1) unstable; urgency=low [ Frédéric Motte ] * New upstream version (4.0.1.0): - Add French translation file. [ Oleksandr Shneyder ] * New upstream version (4.0.1.0): - Launching parec to init pulseaudio input only on Windows. - Hide profilecard area on broker authentication. - Fix ONMainWindow layout in broker mode. - Set passphrase for key to reverse SSH connection. Fix closing client after getting passphrase (Fixes: #137) - Support for recent cygwin API on Windows. - Add checkbox for -noclipboardprimary argument for internal vcxsrv. [ Mike Gabriel ] * New upstream version (4.0.1.0): - Fix position shifts of broker login widget on repetetive authentication failures. (Fixes: #71). -- Mike Gabriel Fri, 22 Mar 2013 23:15:45 +0100 x2goclient (4.0.0.4-0~x2go1) unstable; urgency=low [ Clemens Lang ] * New upstream version (4.0.0.4): - Add scripts and additional files for building X2Go Client disk images for Mac OS X. (Fixes: #131). [ Mike Gabriel ] * New upstream version (4.0.0.4): - Update man page: Add broker relevant cmdline options. -- Mike Gabriel Mon, 04 Mar 2013 05:46:16 +0100 x2goclient (4.0.0.3-0~x2go1) unstable; urgency=low * Fix version in version.h, VERSION and x2goplugin.rc. -- Mike Gabriel Wed, 13 Feb 2013 14:37:24 +0100 x2goclient (4.0.0.2-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (4.0.0.2): - More icon updates needed. Discovered during Debian package update. [ Orion Poplawski ] * New upstream version (4.0.0.2): - Fix .desktop file, fix FSF address. (Fixes: #88). [ Oleksandr Shneyder ] * New upstream version (4.0.0.2): - Fix support for RSA Keys in X2Go Broker code. - Set autologin as false by default. Quote session ID in SSH broker code - Support for session key "usebrokerpassforproxy" - use broker pass for authentication on proxy. - Fix X2Go Logo. - Terminate nxproxy from X2Go Client if connection to server is lost. (Fixes: #100) - Fix building x2goplugin. -- Mike Gabriel Tue, 12 Feb 2013 19:29:53 +0100 x2goclient (4.0.0.1-0~x2go1) unstable; urgency=low * Bugfix release (4.0.0.1): - Replace symlink at svg/x2gologo.svg with copied file. Fixes tarball release esp. for MS Windows builds. -- Mike Gabriel Wed, 02 Jan 2013 12:19:01 +0100 x2goclient (4.0.0.0-0~x2go1) unstable; urgency=low [ Christoffer Krakou ] * New upstream version (4.0.0.0): - Update Danish translation. - Update Danish translation (SSH proxy feature). [ Daniel Lindgren ] * New upstream version (4.0.0.0): - Update Swedish translation. [ Ezra Bühler ] * New upstream version (4.0.0.0): - Make it possible to resume a session using the keyboard only. Also fix the tab order in the resume session dialog by changing the focus policy of the main window. (Fixes: #80). [ Heinz-M. Graesing ] * New upstream version (4.0.0.0): - Update refurbished X2Go Logo set. License for the X2Go Logos is GPL-2.0+. The inner X2Go logo background is now white (non-transparent) which should fix poor display results for X2Go icons in application menus using a dark theme. (Fixes: #59). [ Jan Engelhardt ] * New upstream version (4.0.0.0): - Fix Debian-like Qt path (qmake will handle it internally). [ Oleksandr Shneyder ] * New upstream version (4.0.0.0): - Translation files updated. - Russian translation updated. - Add support for pgp cards in broker mode. - Fix displaying ssh proxy box in session settings if sessions type changed. (Fixes: #61). - Init config.brokerAutologin with false. (Fixes: #72). - Make sure x2goclient closes if broker has no sessions. Fixes appearing session profile dialog if client is configured to minimize to systray. (Fixes: #73). - Update license headers. - Add "author" entry in UI files. - Add OpenSSL license exception. [ Ricardo Diaz ] * New upstream version (4.0.0.0): - Update Spanish translation file. [ Mike Gabriel ] * New upstream version (4.0.0.0): - Update German translation file. - Get rid of br html tags in client<->broker communication (Fixes: #81). - Bump version to 4.0.0.0 (for Baikal bundle release). [ Terje Andersen ] * New upstream version (4.0.0.0): - Update Bokmal (Norway) translation file. -- Mike Gabriel Sun, 30 Dec 2012 15:34:02 +0100 x2goclient (3.99.3.0-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.3.0): - Rebuild i18n files, add x2goclient_dk.ts for the new Danish translator (Christoffer Krakou). - Update German translation. - Run X2Go-proxied RDP session with fullscreen mode as sessions of X2Go session type "D". (Fixes: #22) - Allow pass-through of username and password for X2Go-proxied RDP sessions. The strings X2GO_USER and X2GO_PASSWORD in rdpoptions will be replaced by username+password enter into X2Go Clients login dialog. Only replace username+password if they received a value from the login widget of the main window. - Drop i18n idea to translate English to English. - Fix creation of session profile icon on desktop. The .desktop files need the x-bit set. Also: add a compatibility profile name rewrite for PyHoca-GUI profile names containing a slash, PyHoca-GUI uses a slash as separator character for submenu cascades. - Use ,,printf'' instead of ,,echo -e'' (Bashism). Fixes creation of xinerama.conf files. - Add XFCE as possible session type. (Fixes: #51) * /debian/control: + Maintainer change in package: X2Go Developers . + Add rdesktop and xfreerdp to Recommends. + Priority: optional. + Bin:package x2goplugin-provider: depend on x2goplugin. * New bin:package (all): x2goplugin-provider. Provide basic Apache2 configuration for a demo x2goplugin website. * Bump Standards version to 3.9.3. [ Daniel Lindgren ] * New upstream version (3.99.3.0): - Update Swedish translation. [ Terje Andersen ] * New upstream version (3.99.3.0): - Update Norwegian Bokmal translation. [ Christoffer Krakou ] * New upstream version (3.99.3.0): - Add Danish translation to x2goclient. - Proof read Danish translation. - Update DirectRDP in Danish translation. [ Oleksandr Shneyder ] * New upstream version (3.99.3.0): - Add settings for direct RDP connection. - Implement direct RDP connection using standalone client. - Build direct RDP feature only for linux. - Add DEFINES += __linux__ to project file when building linux binaries (need to define Q_OS_LINUX in moc generator). - Update "ts" files. - Fixed label "SSH port" and "RDP port" to "SSH port:" and "RDP port:". Update "ts" files once again. - Add translation for label "RDP port:". Update "ts" files updated Russian translation. - Add translation for checkbox "Direct RDP Connection" and update Russian and German translation. - Restart pulse server on windows if it crashed. - Show "Advanced Options" button only if RDP session chosen. - Fixing kbd focus issue for all kinds of sessions in thinclient mode. (Fixes: #20). - Add command line parameter --ssh-key and --autologin. - Disable check box "use default sound port" if sound disabled. - Add support for HTTP proxy - developed by Heinrich Schuchardt (xypron.glpk@gmx.de). (Fixes: #34). - Add support for SSH proxy in class SshMasterConnection. - SshMasterConnection emit signal to GUI thread if it need a passphrase to decrypt a ssh key. GUI thread use input dialog to read a passphrase from user. - Add support for SSH proxy (HTTP and SSH) to X2Go Client GUI. - Clean some broker code. - It is possible to add several ssh keys from commandline in form: --ssh-key=[user@][server:][port:] it can be useful for TCE or login over broker. - Improve broker code, add support for "usebrokerpass" config variable to use broker pass for ssh auth on X2Go server. - Commandline options --broker-noauth. - Support for SSH broker. --broker-user removed, use username in broker url instead. - Reduce listen interval for ssh-tunnel to 100 msec. - Fix visibility of SSH-proxy box with direct RDP sessions. - SshProcess is only usable over SshMasterConnection. - Fixing SSH proxy support for Windows. - Hide system tray icon before close. - Fix error "Failed to resolve hostname" in plugin mode (Fixes: #55). - Do not show "RDP Settings" group box in plugin mode (Fixes: #56). [ Ricardo Diaz ] * New upstream version (3.99.3.0): - Add Spanish translation file. - Update Spanish translation file. -- Mike Gabriel Wed, 07 Nov 2012 16:07:43 +0100 x2goclient (3.99.2.2-0~x2go2) unstable; urgency=low * Add Conflicts/Replaces for x2goclient-gtk. -- Mike Gabriel Mon, 20 Aug 2012 09:58:47 +0200 x2goclient (3.99.2.2-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.2.2): - Drop Encoding key from .desktop file (as it is deprecated according to latest FreeDesktop.org specs). - Correct spelling for mis-spelled work ,,authentication''. - Allow QMAKE_* parameters that are needed for hardening x2goclient (see http://wiki.debian.org/Hardening). - Provide CPPFLAGS for QMAKE_CFLAGS _and_ QMAKE_CXXFLAGS. Provide them as first build parameters. - Allow x2goclient to connect to user accounts that have other shells than /bin/sh and alike configured as default shell. Also: removal bashisms in shell execution commands. - X2Go resume session slot: double click on a selected session is supposed to resume that session. To make this feature functional for running sessions the session has to be suspended first. [ Oleksandr Shneyder ] * New upstream version (3.99.2.2): - Fixing X2Go Plugin - Cleaning code: double click on running session. Instead of using function "sleep" starting resume-session after suspend-session is returned. -- Mike Gabriel Fri, 10 Aug 2012 10:08:52 +0200 x2goclient (3.99.2.1-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.2.1): - Not starting smart card daemon before users are loaded in LDAP mode. - Merging onmainwindow_part*.cpp into onmainwindow.cpp - Support recent pulseuadio on windows - removing %USERPROFILE%\.x2go\pulse\.pulse\%COMPUTERNAME%-runtime\pid if exists under windows - --user= set username in session mode if this field is blank in session settings. - --autostart= launch "app" by session start in "published applications" mode [ Daniel Lindgren ] * New upstream version (3.99.2.1): - Swedish i18n update for published applications. [ Terje Andersen ] * New upstream version (3.99.2.1): - Norwegian (Bokmal) i18n update for published applications. [ Stefan Baur ] * New upstream version (3.99.2.1): - German i18n update for published applications. [ Mike Gabriel ] * New upstream version (3.99.2.1): - Add Ubuntu-2d (Unity) support to X2Go Client. -- Mike Gabriel Fri, 08 Jun 2012 12:52:07 +0200 x2goclient (3.99.2.0-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.2.0): - Support for "published applications". Sponsored by Stefan Baur (http://www.baur-itcs.de). - Command line argument "--session-conf=": path to alternative session config. - Fixed bug "light font colour on light background" by dark colour schema. - Make X2Go system tray icon not transparent. - Replace text on buttons "Application", "Share folder", "Suspend", "Terminate" with icons to fit in dialog window. - Support for SVG icons for published applications - Set "nofocus" policy for tool buttons. - Some improvements when using pgp card. - Setting TCP_NODELAY for sockets on reverse tunnel and ssh session. - Support for category X2Go-Top to display published applications on top of application menu. - Exporting PULSE_CLIENTCONFIG when running published applications. -- Mike Gabriel Wed, 04 Apr 2012 11:52:07 +0200 x2goclient (3.99.1.1-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.1.1): - not including 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 Wed, 07 Mar 2012 20:42:36 +0100 x2goclient (3.99.1.0-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.1.0): - Update German translation file (thanks to Stefan Baur). - Build .qm translation files on the fly during build. - Fix for zh_TW translation: add qt_zh_TW.qm file from Qt4.8. - Add language property to the French translation file. - Update qt_.qm files from Qt4.8 (as in current Debian sid). - Rename x2goclient_nb.ts to x2goclient_nb_no.ts. - Update all translation files (lupdate), translate unfinished translation tags in x2goclient_de.ts. - Provide empty translation file x2goclient_en.ts. - Fix misspelled word ,,Authentification'' -> ,,Authentication''. - Fix misspelled word ,,recieved'' -> ,,received''. - Update date and release version in man page. [ Mihai Moldovan ] * New upstream version (3.99.1.0): - Mac OS patch: Raise the stack space to 2MB for secondary threads. It previously used the 512KB system default. [ Daniel Lindgren ] * New upstream version (3.99.1.0): - Add Swedish translation file. - Fine-tune Swedish translation file. [ Terje Andersen ] * New upstream version (3.99.1.0): - Add Norwegian (Bokmal) translation. Qt4 lacks Norwegian/Bokmal support, so some of the widgets may stay in English. - Fine-tune/fix Norwegian (Bokmal) translation. [ Jan Engelhardt ] * New upstream version (3.99.1.0): - Use /cgi-bin/man/ path in web'ified man pages. - Use ,,${MAKE}'' instead of ,,make'' in Makefile. - Include in sshprocess.h to fix missing struct sockaddr_in. [ Oleksandr Shneyder ] * New upstream version (3.99.1.0): - Get new ports from x2goresume-session if reserved ports are busy - Fix segmentation fault by failed SSH connection to X2Go server -- Mike Gabriel Wed, 22 Feb 2012 14:49:49 +0100 x2goclient (3.99.0.6-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.0.6): - Update copyright section in ssmasterconnection.h/cpp and sshprocess.h/cpp. - Traditional Chinese(zh_TW) translation for x2goclient from Liu Arlo . -- Mike Gabriel Wed, 01 Feb 2012 13:52:40 +0100 x2goclient (3.99.0.5-0~x2go1) unstable; urgency=low [ Mike Gabriel ] * New upstream version (3.99.0.5): - Rename in human readable text strings ,,X2go'' to ,,X2Go''. - Fix version string on man page. [ Oleksandr Shneyder ] * New upstream version (3.99.0.5): - Waiting for SshMasterConnection thread to be finished before deleting it (segfault by wrong authentication fix). -- Mike Gabriel Fri, 27 Jan 2012 12:43:04 +0100 x2goclient (3.99.0.4-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.0.4): - Enabled support for Xinerama -- Mike Gabriel Wed, 18 Jan 2012 14:53:20 +0100 x2goclient (3.99.0.3-0~x2go4) unstable; urgency=low [ Mike Gabriel ] * Rename icon title in /debian/menu file. * Also split package dependencies for x2goplugin. * Add libxpm-dev as build-dependency. * Revert version number in version.h and x2goplugin.rc to 3.99.0.3. [ Guido Günther ] * Split package dependencies for SSH server/client. [ Oleksandr Shneyder ] * New upstream version (3.99.0.3): - LDAP: ssh port for every x2goserver can be specified in Server entry, parameter "l" - Change title of proxy window to session name - Change icon of proxy window (only on Linux) - Multi-display support: x2goclient can be configured to fit proxy window on one of the existing displays. - Multi-display support: support for xinerama (temporarily disabled--support in x2goagent needed) - Add -lXpm in project file. -- Mike Gabriel Wed, 18 Jan 2012 14:50:31 +0100 x2goclient (3.99.0.2-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * New upstream version (3.99.0.2): - QTcpSocket working not correct with some Antiviral software ( for example Avast) under windows. Fixing this by replacing it with Winsocks - Connectivity test dialog to use with a broker -- Mike Gabriel Fri, 25 Nov 2011 11:27:42 +0100 x2goclient (3.99.0.1-0~x2go1) unstable; urgency=low * New upstream version (3.99.0.1): - Set TCP_NODELAY (equals: turn Nagle off) for SSH graphical port forwarding tunnel. - Include cups/ppd.h in cupsprint.h, fixes build on Debian wheezy/sid. - Add build_man/clean_man stanzas to Makefile. * Explicitly use source format 3.0 (native). * Build-depend on libssh-dev (>=0.4.7). * Update menu file in /debian folder (rename title to ,,X2Go Client (Qt)''). * Do not run man2html from rules file anymore. -- Mike Gabriel Wed, 12 Oct 2011 11:11:50 +0200 x2goclient (3.99.0.0-0~x2go1) unstable; urgency=low [ Oleksandr Shneyder ] * fixed loadbalancing in LDAP mode on multiply X2Go servers * fixed session crash by pulling out of smart card -- Mike Gabriel Wed, 20 Jul 2011 16:33:08 +0200 x2goclient (3.0.1.21-0~x2go1) unstable; urgency=low * changes in windows plugin -- Oleksandr Shneyder Thu, 30 Jun 2011 18:45:25 +0200 x2goclient (3.0.1.20-0~x2go1) unstable; urgency=low * support menu * custom background * custom icon on broker auth dialog * fixed creation of desktop icons on windows -- Oleksandr Shneyder Fri, 08 Apr 2011 19:18:30 +0200 x2goclient (3.0.1.19-0~x2go1) unstable; urgency=low * Support to get sessions from for web broker -- Oleksandr Shneyder Thu, 29 Mar 2011 18:34:08 +0200 x2goclient (3.0.1.18-0~x2go3) unstable; urgency=low * Add ssh (server) as runtime dependency * React to Debian bug #627990, prefer man2html-base over man2html. * Use x2goumount-session instead of old x2goumount_session command. -- Mike Gabriel Thu, 14 Jul 2011 09:07:59 +0200 x2goclient (3.0.1.18-0~x2go2) unstable; urgency=low * adds man page skel (TODO: options) * fixes all open lintian issues -- Mike Gabriel Tue, 17 May 2011 20:16:55 +0200 x2goclient (3.0.1.18-0~x2go1) unstable; urgency=low * change of version numbering pattern * adds x2goclient-cli project as example file to x2goclient package -- Mike Gabriel Tue, 22 Mar 2011 01:50:27 +0100 x2goclient (3.01-18) unstable; urgency=low * Support for custom X-Servers under windows -- Oleksandr Shneyder Thu, 17 Feb 2011 18:15:03 +0100 x2goclient (3.01-17) unstable; urgency=low * Minimize X2Go Client to system tray thank Joachim Langenbach for patch -- Oleksandr Shneyder Thu, 27 Jan 2011 12:32:29 +0100 x2goclient (3.01-16) unstable; urgency=low * qtbrowserplugin sources shipped with x2goclient * removed x2goclient.pri, export "X2GO_CLIENT_TARGET=plugin" to configure x2goplugin -- Oleksandr Shneyder Thu, 13 Jan 2011 19:24:50 +0100 x2goclient (3.01-15) unstable; urgency=low * add support for libssh-0.4.7 -- Oleksandr Shneyder Tue, 04 Jan 2011 18:48:43 +0100 x2goclient (3.01-14) unstable; urgency=low * use libssh instead of ssh -- Oleksandr Shneyder Fri, 03 Dec 2010 18:31:45 +0000 x2goclient (3.01-13) unstable; urgency=low * workaround for "Full Screen" mode in windows * x2goplugin based on qtbrowserplugin * support for clipboard in windows -- Oleksandr Shneyder Tue, 03 Aug 2010 17:12:05 +0200 x2goclient (3.01-12) unstable; urgency=low * portable mode -- Oleksandr Shneyder Thu, 29 Jul 2010 17:43:06 +0200 x2goclient (3.01-11) unstable; urgency=low * plugin config options sound, exportfs, adsl, compression, quality, dpi, kbdlayout, kbdtype -- Oleksandr Shneyder Tue, 29 Jun 2010 18:12:48 +0200 x2goclient (3.01-10) unstable; urgency=low * plugin config options showstatusbar and showtoolbar -- Oleksandr Shneyder Thu, 24 Jun 2010 18:48:27 +0200 x2goclient (3.01-9) unstable; urgency=low * fixed dir export in LDAP mode -- Oleksandr Shneyder Tue, 08 Jun 2010 17:14:11 +0200 x2goclient (3.01-8) unstable; urgency=low * embeded mode for firefox plugin * fixed "host key varification failed" message * updated interface * support for fs encodings -- Oleksandr Shneyder Tue, 13 Apr 2010 18:15:30 +0200 x2goclient (3.01-7) unstable; urgency=low * fixed connection to localhost * fixed undefined shadow mode by ldap sessions -- Oleksandr Shneyder Mon, 01 Feb 2010 19:19:54 +0100 x2goclient (3.01-6) unstable; urgency=low * fixed ldap support * shadow sessions * xdmcp sessions * commandline option for printing in LDAP mode -- Oleksandr Shneyder Fri, 28 Jan 2010 19:38:11 +0100 x2goclient (3.01-5) unstable; urgency=low * fixed gpg-card with older gpg version -- Oleksandr Shneyder Fri, 27 Nov 2009 00:00:31 +0100 x2goclient (3.01-4) unstable; urgency=low * set x2goagents dpi option * fixed rsa/dsa keys with password * session limit error message * warning by terminating session * fixed help message * save pulseaudio client.conf and cookie on server * in session directory not in ~/.pulse/client.conf * (do not owerwrite local pulse settings for remote user) * copy pulse cookie-file to remote system * try to load module-native-protocol-tcp * dependency for openssh-server in deb * set keyboard layout by default * add ssh option ServerAliveInterval=300 * check if port free when starting tunnel for nxproxy * windows: * Start own build of X Server * Start one X server per x2goclient * Start own build of PulseAudio * Start one PulseAudio server per x2goclient * Start one sshd per x2goclient * printing and viewing pdf in windows using ShellExec * make x2goclient work if username have spaces and unicode symbols -- Oleksandr Shneyder Wed, 14 Oct 2009 10:10:25 +0200 x2goclient (3.01-3) unstable; urgency=low * smart card works with gpg 2.0.11-1 -- Oleksandr Shneyder Thu, 24 Sep 2009 21:31:45 +0200 x2goclient (3.01-2) unstable; urgency=low * Use x2goclient as SSH_ASKPASS program -- Oleksandr Shneyder Fri, 31 Jul 2009 19:49:02 +0200 x2goclient (3.01-1) unstable; urgency=low * create desktop icon * start rdesktop session * start LXDE session * fixed error "ssh password with special symbols" thank Phillip Krause -- Oleksandr Shneyder Mon, 15 Jun 2009 19:35:38 +0200 x2goclient (3.00-1) unstable; urgency=low * Client side printing support -- Oleksandr Shneyder Tue, 24 Feb 2009 21:50:45 +0100 x2goclient (2.99-3) unstable; urgency=low * make sshfs mount work if user home is not in /home/ -- Oleksandr Shneyder Mon, 02 Feb 2009 22:05:49 +0100 x2goclient (2.99-2) unstable; urgency=low * fixed ssh key in path with -- Oleksandr Shneyder Mon, 26 Jan 2009 23:15:46 +0100 x2goclient (2.99-1) unstable; urgency=low * PulseAudio support * you can use running arts or esd daemons * use blowfish cipher for ssh tunnels * reverse ssh tunnel for fs export (sshfs) -- Oleksandr Shneyder Thu, 15 Jan 2009 19:03:58 +0100 x2goclient (2.0.1-24) unstable; urgency=low * command line options: * --session= start session "session" * --user= preselect user "username" (LDAP mode) * --hide do not show x2goclient (start hidden) -- Oleksandr Shneyder Tue, 09 Dec 2008 21:30:07 +0100 x2goclient (2.0.1-23) unstable; urgency=low * fixed: use listed in ldap x2goserver for "x2gogetservers" request instead ldapserver itself * fixed: do not display error by initldap in slot_rereadUsers * fixed: libldap dependencies in package -- Oleksandr Shneyder Mon, 08 Dec 2008 22:28:27 +0100 x2goclient (2.0.1-22) unstable; urgency=low * xorg dependency in control file -- Oleksandr Shneyder Tue, 25 Nov 2008 19:21:18 +0100 x2goclient (2.0.1-21) unstable; urgency=low * fixed pass error with gpg card -- Oleksandr Shneyder Thu, 20 Nov 2008 19:10:33 +0100 x2goclient (2.0.1-20) unstable; urgency=low * fixed resizing by session selecting -- Oleksandr Shneyder Wed, 19 Nov 2008 18:56:10 +0100 x2goclient (2.0.1-19) unstable; urgency=low * Fixes in traslation -- Oleksandr Shneyder Tue, 04 Nov 2008 19:57:59 +0100 x2goclient (2.0.1-18) unstable; urgency=low * Fixed check for sudo config error -- Oleksandr Shneyder Mon, 13 Oct 2008 22:20:21 +0200 x2goclient (2.0.1-17) unstable; urgency=low * Fixed: command with arguments * Error massages (sudo config, can't execute command) -- Oleksandr Shneyder Thu, 09 Oct 2008 21:45:05 +0200 x2goclient (2.0.1-16) unstable; urgency=low * LDAP factor -- Oleksandr Shneyder Thu, 09 Oct 2008 21:52:21 +0200 x2goclient (2.0.1-15) unstable; urgency=low * Fixed sess_tv columns * Change Xmap for hildon -- Oleksandr Shneyder Wed, 01 Oct 2008 22:57:35 +0200 x2goclient (2.0.1-14) unstable; urgency=low * fixed editconnectiondialog -- Oleksandr Shneyder Wed, 01 Oct 2008 21:18:08 +0200 x2goclient (2.0.1-13) unstable; urgency=low * Fixed "black buttons" on button focus with new qt -- Oleksandr Shneyder Mon, 16 Jun 2008 21:08:01 +0000 x2goclient (2.0.1-12) unstable; urgency=low * Client ssh port in settings dialog * Sound system selections in session dialog * "Mini mode" for modes < "800x600" -- Oleksandr Shneyder Fri, 14 Mar 2008 21:03:48 +0100 x2goclient (2.0.1-11) unstable; urgency=low * Mac OS X support * Fixed Error '"visual != -1" in file itemviews/qheaderview.cpp' by compiling with qt >=4.3 * Fixed mouse tracking on SessionButton -- Oleksandr Shneyder Thu, 10 Jan 2008 21:54:24 +0100 x2goclient (2.0.1-10) unstable; urgency=low * russian translation -- Oleksandr Shneyder Mon, 1 Oct 2007 22:23:58 +0200 x2goclient (2.0.1-9) unstable; urgency=low * Added widget for ssh port select in editsessiondialog * ssh port to connect in command line options * client ssh port (for sshfs) in command line options -- Oleksandr Shneyder Fri, 21 Sep 2007 19:31:59 +0200 x2goclient (2.0.1-8) unstable; urgency=low * Fixed export directories with " " in path * Fixed SessionButton frame size by empty session * Compare session and display color depth * MS Windows support -- Oleksandr Shneyder Thu, 13 Sep 2007 19:30:59 +0200 x2goclient (2.0.1-7) unstable; urgency=low * esd support -- Oleksandr Shneyder Tue, 7 Aug 2007 18:33:32 +0200 x2goclient (2.0.1-6) unstable; urgency=low * OpenPGP smart cards support -- Oleksandr Shneyder Fri, 3 Aug 2007 19:40:27 +0200 x2goclient (2.0.1-5) unstable; urgency=low * extern auth (usb, smartcard) support -- Oleksandr Shneyder Tue, 26 Jun 2007 21:54:48 +0200 x2goclient (2.0.1-4) unstable; urgency=low * minimized reaction time by many LDAP users -- Oleksandr Shneyder Thu, 1 Mar 2007 21:15:14 +0100 x2goclient (2.0.1-3) unstable; urgency=low * Failover LDAP Server config * reload new users from LDAP -- Oleksandr Shneyder Thu, 1 Mar 2007 22:15:14 +0100 x2goclient (2.0.1-2) unstable; urgency=low * Updated German translation * Add "wrong password!" in ssh error message -- Oleksandr Shneyder Mon, 26 Feb 2007 20:25:02 +0100 x2goclient (2.0.1-1) unstable; urgency=low * Initial release -- Oleksandr Shneyder Fri, 2 Feb 2007 21:36:59 +0100 x2goclient-4.0.5.1/config_linux_plugin.sh0000755000000000000000000000013212675050177015232 0ustar #!/bin/bash make distclean lrelease x2goclient.pro X2GO_CLIENT_TARGET=plugin qmake-qt4 x2goclient-4.0.5.1/config_linux.sh0000755000000000000000000000004612675050177013660 0ustar #!/bin/bash make distclean qmake-qt4 x2goclient-4.0.5.1/config_linux_static_plugin.sh0000755000000000000000000000030312675050177016601 0ustar #!/bin/bash make distclean lrelease x2goclient.pro export X2GO_LINUX_STATIC=x2go_linux_static X2GO_CLIENT_TARGET=plugin /usr/local/Trolltech/Qt-4.8.5/bin/qmake -config release -spec linux-g++ x2goclient-4.0.5.1/config_linux_static.sh0000755000000000000000000000021112675050177015221 0ustar #!/bin/bash make distclean X2GO_LINUX_STATIC=x2go_linux_static /usr/local/Trolltech/Qt-4.7.1/bin/qmake -config release -spec linux-g++ x2goclient-4.0.5.1/config_win.bat0000755000000000000000000000047112675050177013454 0ustar rmdir /s /q client_build rmdir /s /q plugin_build mingw32-make clean mkdir client_build cd client_build lrelease ..\x2goclient.pro set X2GO_CLIENT_TARGET= set config=release if [%1]==[debug] set config=debug console qmake ..\x2goclient.pro CONFIG+="%config%" cd .. cd x2gohelper mingw32-make clean cd .. x2goclient-4.0.5.1/config_win_plugin.bat0000755000000000000000000000015312675050177015027 0ustar rmdir /s /q plugin_build mkdir plugin_build set X2GO_CLIENT_TARGET=plugin qmake ..\x2goclient.pro cd .. x2goclient-4.0.5.1/copy-deps-win32.bat0000755000000000000000000000244112675050177014174 0ustar if "%~3"=="" ( echo "Usage: copy-deps-win32.bat path-to-x2goclient-contrib path-to-OpenSSL-Win32 destination" goto :a ) xcopy /E /Y %1\cygwin\20160121-1_bin %3\ || exit /b %errorlevel% del %3\nxproxy.exe.unstripped %3\libXcomp.a %3\libXcomp.dll.a || exit /b %errorlevel% xcopy /E /Y %1\libssh\0.7.0-x2go1-mingw482_bin\bin\libssh.dll %3\ || exit /b %errorlevel% xcopy /E /Y %1\MinGW-DLLs\i686-4.8.2-release-posix-dwarf-rt_v3-rev3\libgcc_s_dw2-1.dll %3\ || exit /b %errorlevel% xcopy /E /Y %1\MinGW-DLLs\i686-4.8.2-release-posix-dwarf-rt_v3-rev3\libstdc++-6.dll %3\ || exit /b %errorlevel% xcopy /E /Y %1\MinGW-DLLs\i686-4.8.2-release-posix-dwarf-rt_v3-rev3\libwinpthread-1.dll %3\ || exit /b %errorlevel% xcopy /E /Y %1\MSVC-DLLs\2013-12.0.21005.1-x86\msvcr120.dll %3\ || exit /b %errorlevel% xcopy /E /Y %1\pulse\6.0-11.1_bin %3\ || exit /b %errorlevel% xcopy /E /Y %1\PuTTY\0.66_bin %3\ || exit /b %errorlevel% xcopy /E /Y /I %1\VcXsrv\1.17.0.0-3_bin %3\VcXsrv || exit /b %errorlevel% xcopy /E /Y %1\zlib\1.2.8_bin\zlib1.dll %3\ || exit /b %errorlevel% xcopy /E /Y %1\zlib\x86-mingw4-1.2.7-1_bin\bin\libz.dll %3\ || exit /b %errorlevel% xcopy /E /Y %2\bin\ssleay32.dll %3\ || exit /b %errorlevel% xcopy /E /Y %2\bin\libeay32.dll %3\ || exit /b %errorlevel% :a x2goclient-4.0.5.1/COPYING0000644000000000000000000004325412675050177011700 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. x2goclient-4.0.5.1/COPYRIGHT.x2go-logos0000644000000000000000000000166012675050177014132 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: X2Go-artwork [~X] Upstream-Contact: Heinz-M. Graesing Files: res/img/x2go-logos/mksizedsymbols.sh Copyright: 2005-2016 Heinz-M. Graesing License: GPL-2.0+ res/img/x2go-logos/x2go-logo-colored.svg res/img/x2go-logos/x2go-logo.svg res/img/x2go-logos/x2go-logo-rotated.svg res/img/x2go-logos/x2go-mascot.svg Copyright: 2005-2016 Heinz-M. Grasesing License: GPL-2.0+ Files: res/img/icons/16x16/x2goclient.png res/img/icons/32x32/x2goclient.png res/img/icons/48x48/x2goclient.png res/img/icons/64x64/x2goclient.png res/img/icons/128x128/x2goclient.png Copyright: 2005-2016 Heinz-M. Graesing License: GPL-2.0+ x2goclient-4.0.5.1/desktop/x2goclient.desktop0000644000000000000000000000052012675050177015754 0ustar [Desktop Entry] Version=1.0 Type=Application Name=X2Go Client Exec=x2goclient Icon=x2goclient StartupWMClass=x2goclient X-Window-Icon=x2goclient X-HildonDesk-ShowInToolbar=true X-Osso-Type=application/x-executable Terminal=false Categories=Qt;KDE;Network; Keywords=Terminal,Client,Remote,Desktop,Published,Applications,Session,Profile; x2goclient-4.0.5.1/Doxyfile0000644000000000000000000002374612675050177012357 0ustar # Doxyfile 1.4.1-KDevelop #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = x2goclient PROJECT_NUMBER = $VERSION$ OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = /home/admin/ STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = src FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.cs \ *.php \ *.php3 \ *.inc \ *.m \ *.mm \ *.dox \ *.C \ *.CC \ *.C++ \ *.II \ *.I++ \ *.H \ *.HH \ *.H++ \ *.CS \ *.PHP \ *.PHP3 \ *.M \ *.MM \ *.C \ *.H \ *.tlh \ *.diff \ *.patch \ *.moc \ *.xpm \ *.dox RECURSIVE = yes EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = .build_doxygen/doxygen/html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = .build_doxygen/doxygen/latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = .build_doxygen/doxygen/rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = YES MAN_OUTPUT = .build_doxygen/man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = .build_doxygen/doxygen/xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = x2goclient.tag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO x2goclient-4.0.5.1/examples/x2goclient-cli0000755000000000000000000003220412675050177015225 0ustar #!/usr/bin/perl ############################################################################ # Copyright (C) 2005-2016 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 # # 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, write to the # # Free Software Foundation, Inc., # # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ use File::Path; use Proc::Simple; use Term::ReadPassword; use Getopt::Long; use strict; my $user; my $server; my $geometry="fullscreen"; my $link="lan"; my $pack="16m-jpeg-9"; my $type="unix-kde"; my $stype="desktop"; my $kbdlay="us"; my $kbdtype="pc105/us"; my $setkbd="0"; my $accept=0; my $sound=1; my $cmd="startkde"; my $ssh_key=0; my $port="22"; system ("rm -rf ~/.x2go/ssh/askpass*"); sub printpass { my $prog=shift; my $pass=shift; open (F,">$prog") or die "Couldn't open $prog for writing"; print F '#!/usr/bin/perl $param=shift;'; print F " open (F,\">$prog.log\");"; print F ' print F $param; close (F); if($param =~ m/RSA key/) {'; if($accept){ print F 'print "yes\n";';} else{ print F 'print "no\n";';} print F ' } else {'; print F " print \"$pass\\n\"; }"; close(F); chmod (0700, $prog); } sub checkstat { my $prog=shift; open (F,"<$prog.log") or return; my @outp; my $ln=; for(my $i=0;$ln;$i++) { @outp[$i]=$ln; $ln=; } close(F); if(join(" ",@outp) =~ m/Are you sure you want to continue connecting/) { print "@outp[0]@outp[1]"; print "If you are sure you want to continue connecting, please launch this programm with --add-to-known-hosts yes\n"; exit; } } sub hidepass { my $prog=shift; open (F,">$prog") or die "Couldn't open $prog for writing"; print F "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; close(F); } my $pack_methods= "nopack 8 64 256 512 4k 32k 64k 256k 2m 16m 256-rdp 256-rdp-compressed 32k-rdp 32k-rdp-compressed 64k-rdp 64k-rdp-compressed 16m-rdp 16m-rdp-compressed rfb-hextile rfb-tight rfb-tight-compressed 8-tight 64-tight 256-tight 512-tight 4k-tight 32k-tight 64k-tight 256k-tight 2m-tight 16m-tight 8-jpeg-% 64-jpeg 256-jpeg 512-jpeg 4k-jpeg 32k-jpeg 64k-jpeg 256k-jpeg 2m-jpeg 16m-jpeg-% 8-png-jpeg-% 64-png-jpeg 256-png-jpeg 512-png-jpeg 4k-png-jpeg 32k-png-jpeg 64k-png-jpeg 256k-png-jpeg 2m-png-jpeg 16m-png-jpeg-% 8-png-% 64-png 256-png 512-png 4k-png 32k-png 64k-png 256k-png 2m-png 16m-png-% 16m-rgb-% 16m-rle-%"; sub printargs { print "Usage: $0 --user --server [Options]\nOptions:\ --help Print this message\ --help-pack Print availabel pack methods --user Connect as user 'username'\ --server Connect to 'hostname'\ --command Run command 'cmd', default value 'startkde' --port SSH port, default 22 --ssh-key Us 'fname' as a key for ssh connection --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established, default value 'no' --use-sound Start sound server and ssh tunel for sound connections, default value 'yes' nxagent options: --geometry x Set window size, default value 'fullscreen' --link Set link type, default 'lan' --pack Use pack method, default '16m-jpeg-9' --session-type Session type, 'desktop' or 'application' default 'desktop' --kbd-layout Use keyboard layout, default 'us' --kbd-type Set Keyboard type, default 'pc105/us'\n"; exit; } sub printpack { my $m=$pack_methods; $m=~s/%/[0-9]/g; print "$m\n"; exit; } sub check_pack { my $p=shift; if($p =~ m/%/) { return 0; } my @arr=split("-","$p"); my $pm=$pack_methods; if(@arr>1) { my $qa=@arr[@arr-1]; my @vals=unpack('cc',$qa); if($qa ge '0' && $qa le '9' && @vals == 1) { $pm=~s/%/$qa/g; } } my @met=split("\n","$pm"); for(my $i=0;$i<@met;$i++) { if(@met[$i] eq $p) { return 1; } } return 0; } sub getindex { my @sess=@_; print("Number\tStatus\t\tCreation time\t\tDisplay\tClient IP\n"); for(my $i=1;$i<=@sess;$i++) { my @vals=split('\\|',"@sess[$i-1]"); my $status=@vals[4]; if(@vals[4] eq 'S') { $status='Suspended' } elsif(@vals[4] eq 'R') { $status='Running ' } print "$i)\t$status\t@vals[5]\t@vals[2]\t@vals[7]\n"; } print "Enter numer of session to resume or 'n' to start new session: "; my $answ=; chomp($answ); if($answ > 0 && $answ <= @sess) { my @vals=split('\\|',"@sess[$answ-1]"); if(@vals[4] eq 'R') { print("Session is already running on @vals[7], continue? (y/n): "); my $nansw=; chomp($nansw); if($nansw eq 'y') { return $answ; } else { return -1; } } else { return $answ; } } elsif ($answ eq "n") { return 0; } else { print "Input Error\n"; return -1; } } GetOptions("user=s" => \$user, "server=s" => \$server, "command=s" => \$cmd, "port=s" => \$port, "ssh-key=s" => \$ssh_key, "add-to-known-hosts=s" => \$accept, "use-sound=s" => \$sound, "geometry=s" => \$geometry, "link=s" => \$link, "pack=s" => \$pack, "session-type=s" => \$stype, "kbd-layout=s" => \$kbdlay, "kbd-type=s" => \$kbdtype, 'help-pack' => \&printpack, 'help' => \&printargs) or printargs; printargs unless (($user and $server)); if($ssh_key) { if ( ! -e $ssh_key) { print "Error, $ssh_key not exists\n"; exit; } } if($kbdlay or $kbdtype) { $setkbd=1; } if(($link ne "modem" )&&($link ne "isdn")&&($link ne "adsl")&&($link ne "wan")&&($link ne "lan")) { print "Error parsing command line, wrong \"link\" argument\n"; printargs; exit; } if(! check_pack($pack) ) { print "Error parsing command line, wrong \"pack\" argument\n"; printargs; exit; } if($accept) { if($accept eq "yes") { $accept=1; } elsif($accept eq "no") { $accept=0; } else { print "Error parsing command line, wrong \"add-to-known-hosts\" argument\n"; printargs; exit; } } if($sound != 1) { if($sound eq "yes") { $sound=1; } elsif($sound eq "no") { $sound=0; } else { print "Error parsing command line, wrong \"use-sound\" argument\n"; printargs; exit; } } my $nxroot="$ENV{'HOME'}/.x2go"; my $dirpath="$nxroot/ssh"; eval { mkpath($dirpath) }; if ($@) { print "Couldn't create $dirpath: $@"; exit; } my $askpass="$dirpath/askpass"; my $pass; my $sessions; if(!$ssh_key) { $pass=read_password('Password:'); printpass $askpass,$pass; $sessions=`DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server "export HOSTNAME&&x2golistsessions"`; hidepass $askpass; checkstat $askpass; } else { $sessions=`ssh -p $port -i $ssh_key $user\@$server "export HOSTNAME&&x2golistsessions"`; } my @sess=split("\n","$sessions"); my $newses=0; my $snum=-1;#index of session+1,-1 - error, -0 - new session if (@sess == 0) { $newses=1; } else { my @lines=split('\\|',"@sess[0]"); my $status=@lines[4]; if($status eq 'S' && @sess == 1) { $snum=0; } else { while($snum==-1) { $snum=getindex(@sess); } if($snum == 0) { $newses=1; } else { $snum--; } } } my $disp; my $snd_port; my $gr_port; my $cookie; my $agentpid; my $sname; my $t="D"; if( $stype eq "application" ) { $t="R"; } if($newses) { my $outp; if(! $ssh_key) { printpass $askpass,$pass; $outp=`DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server "x2gostartagent $geometry $link $pack $type $kbdlay $kbdtype $setkbd $t"`; hidepass $askpass; checkstat $askpass; } else { $outp=`ssh -p $port -i $ssh_key $user\@$server "x2gostartagent $geometry $link $pack $type $kbdlay $kbdtype $setkbd $t"`; } my @lines=split("\n","$outp"); $disp=@lines[0]; $cookie=@lines[1]; $agentpid=@lines[2]; $sname=@lines[3]; $gr_port=@lines[4]; $snd_port=@lines[5]; # print ":$disp $cookie $agentpid $sname $gr_port $snd_port\n"; } else { my @lines=split('\\|',"@sess[$snum]"); $agentpid=@lines[0]; $sname=@lines[1]; $disp=@lines[2]; my $status=@lines[4]; $cookie=@lines[6]; $gr_port=@lines[8]; $snd_port=@lines[9]; if($status eq 'R') { if(! $ssh_key) { printpass $askpass,$pass; system("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server \"setsid x2gosuspend-session $sname\""); hidepass $askpass; checkstat $askpass; } else { system("ssh -p $port -i $ssh_key $user\@$server \"setsid x2gosuspend-session $sname\""); } sleep (1); } if(! $ssh_key) { printpass $askpass,$pass; system("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server \"setsid x2goresume-session $sname $geometry $link $pack $kbdlay $kbdtype $setkbd\""); hidepass $askpass; checkstat $askpass; } else { system("ssh -p $port -i $ssh_key $user\@$server \"setsid x2goresume-session $sname $geometry $link $pack $kbdlay $kbdtype $setkbd\""); } } my $tunnel = Proc::Simple->new(); my $snd_tun; my $snd_server; if($sound) { $snd_tun= Proc::Simple->new(); $snd_server= Proc::Simple->new(); $snd_server->start("artsd -u -N -p $snd_port"); } if( !$ssh_key) { printpass $askpass,$pass; $tunnel->start("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port -N -L $gr_port:localhost:$gr_port $user\@$server"); if($sound) { $snd_tun->start("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port -N -R $snd_port:localhost:$snd_port $user\@$server"); } } else { $tunnel->start("ssh -p $port -i $ssh_key -N -L $gr_port:localhost:$gr_port $user\@$server"); if($sound) { $snd_tun->start("ssh -p $port -i $ssh_key -N -R $snd_port:localhost:$snd_port $user\@$server"); } } sleep 2; $dirpath="$nxroot/S-$sname"; eval { mkpath($dirpath) }; if ($@) { print "Couldn't create $dirpath: $@"; hidepass $askpass; exit; } my $nx_host="nx/nx,composite=1,root=$nxroot,connect=localhost,cookie=$cookie,port=$gr_port,errors=$dirpath/session"; open (FILE,">$dirpath/options")or die "Couldnt't open $dirpath/options for writing"; print FILE "$nx_host:$disp"; close (FILE); my $proxy = Proc::Simple->new(); $proxy->start("LD_LIBRARY_PATH=\$X2GO_LIB nxproxy -S nx/nx,options=$dirpath/options:$disp 2>>$dirpath/session"); if($newses) { if(! $ssh_key) { system("DISPLAY=:0 SSH_ASKPASS=$askpass setsid ssh -p $port $user\@$server \"setsid x2goruncommand $disp $agentpid $sname $snd_port $cmd arts $t >& /dev/null & exit \""); } else { system("ssh -p $port -i $ssh_key $user\@$server \"setsid x2goruncommand $disp $agentpid $sname $snd_port $cmd arts $t>& /dev/null & exit \""); } } #hidepass $askpass; #checkstat $askpass; while($proxy->poll()) { sleep(1); } $tunnel->kill(); if($sound) { $snd_server->kill(); $snd_tun->kill(); } system ("rm -rf ~/.x2go/ssh/askpass*"); x2goclient-4.0.5.1/HOWTO.GPGCARD0000644000000000000000000001033712675050177012532 0ustar x2goclient smartcard HOWTO: 1. gpg card configuration: user@x2goclient$ gpg --card-edit Application ID ...: D2760001240102000000000000420000 Version ..........: 2.0 Manufacturer .....: test card Serial number ....: 00000042 Name of cardholder: [not set] Language prefs ...: de Sex ..............: unspecified URL of public key : [not set] Login data .......: [not set] Private DO 1 .....: [not set] Private DO 2 .....: [not set] Signature PIN ....: forced Max. PIN lengths .: 24 24 24 PIN retry counter : 3 0 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none] Command> admin Admin commands are allowed Command> sex Sex ((M)ale, (F)emale or space): M gpg: 3 Admin PIN attempts remaining before card is permanently locked Admin PIN Command> login Login data (account name): beispielb Command> generate Make off-card backup of encryption key? (Y/n) n Please note that the factory settings of the PINs are PIN = `123456' Admin PIN = `12345678' You should change them using the command --change-pin PIN Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) " Real name: Bert Beispiel Email address: bert.beispiel@x2go-test.org Comment: Test user You selected this USER-ID: "Bert Beispiel (Test user) " Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (17 seconds) gpg: signatures created so far: 0 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (14 seconds) gpg: signatures created so far: 1 gpg: signatures created so far: 2 gpg: generating new key gpg: please wait while key is being generated ... gpg: key generation completed (13 seconds) gpg: signatures created so far: 3 gpg: signatures created so far: 4 gpg: key 8CE52B35 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model gpg: depth: 0 valid: 8 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 8u pub 1024R/8CE52B35 2009-09-24 Key fingerprint = 2475 8498 7FF4 2727 B476 F72E 7BF2 CFE9 8CE5 2B35 uid Bert Beispiel (Test user) sub 1024R/C7151669 2009-09-24 sub 1024R/593801C0 2009-09-24 Command> quit IMPORTANT: login Name is a name of user on remote system 2. configuring ssh connection 2.1 start gpg-agent with ssh support Be sure, that pinentry-x2go is installed. For test purposes you can use other pinentry program, but for x2goclient pinentry-x2go is required (pinentry-x2go-gtk if you are using the gtk-version of x2goclient) user@x2goclient$ gpg-agent --enable-ssh-support --daemon --pinentry-program /usr/bin/pinentry-x2go GPG_AGENT_INFO=/tmp/gpg-Xh4lY7/S.gpg-agent:24620:1; export GPG_AGENT_INFO; SSH_AUTH_SOCK=/tmp/gpg-LO41WU/S.gpg-agent.ssh; export SSH_AUTH_SOCK; SSH_AGENT_PID=24620; export SSH_AGENT_PID; 2.2 export SSH environment variables (copy gpg-agent output in console) user@x2goclient$ GPG_AGENT_INFO=/tmp/gpg-Xh4lY7/S.gpg-agent:24620:1; export GPG_AGENT_INFO; user@x2goclient$ SSH_AUTH_SOCK=/tmp/gpg-LO41WU/S.gpg-agent.ssh; export SSH_AUTH_SOCK; user@x2goclient$ SSH_AGENT_PID=24620; export SSH_AGENT_PID; 2.3 You can check the key on your smartcard with: user@x2goclient$ ssh-add -l 1024 ef:d5:8c:37:cb:38:01:8d:c2:30:00:ac:93:a2:43:98 cardno:000000000042 (RSA) 2.4 Copy the public part of your key to the remote computer user@x2goclient$ ssh-copy-id beispielb@x2goserver beispielb@x2goserver's password: Now try logging in into the machine, e.g., via "ssh 'beispielb@x2goserver'", and check: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. 2.5 Testing ssh connection TBD x2goclient-4.0.5.1/INSTALL0000644000000000000000000000254712675050177011676 0ustar Requirements ================== Before use this program you need to install: Qt4: http://download.qt.io/archive/qt/ nxcomp + nxproxy: http://code.x2go.org/releases/source/nx-libs/ You may want also install the PulseAudio sound server and client to enable sound support http://www.freedesktop.org/wiki/Software/PulseAudio/Download/ Building ================== Edit the Makefile to suit your needs. Variables that may need modifications are: - QMAKE_BINARY - LRELEASE_BINARY Variables that are being used by the install targets called later and might need modifications are: - PREFIX - ETCDIR Everything else should be left as-is. ------------------ On Linux-based systems, run: make all to build both X2Go Client and X2Go Plugin or make build_client to build X2Go Client only or make build_plugin to build X2Go Plugin only. Installing ================== On Linux-based systems, run: make install to install X2Go Client, X2Go Plugin, man pages and the plugin provider. Alternatively, use one of the targets: - install_client: for X2Go Client only - install_plugin: for X2Go Plugin only - install_man: for the man pages only - install_pluginprovider: for the plugin provider only Uninstalling ================== On Linux-based systems, use the same procedure as lined out in the "Installing" section, but replace "install" with "uninstall". x2goclient-4.0.5.1/LICENSE0000644000000000000000000000170212675050177011642 0ustar Copyright (C) 2005-2016 Obviously Nice -- http://www.obviously-nice.de Copyright (C) 2007-2016 X2Go Project -- http://wiki.x2go.org 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 . Copyright (C) 2005-2016 Oleksandr Shneyder Copyright (C) 2005-2016 Heinz-Markus Graesing Copyright (C) 2007-2016 X2Go Project x2goclient-4.0.5.1/macbuild.sh0000755000000000000000000001201312675050177012751 0ustar #!/bin/bash make_boolean() { OPTION="${1}" case "${OPTION}" in ("0"|"no"|""|"No"|"nO"|"NO"|"false"|"FALSE") OPTION="0";; (*) OPTION="1";; esac printf "${OPTION}" } phase() { echo echo "***" echo "*** ${1}..." echo "***" echo } usage() { exec >&2 NO_VAL="0, no, NO, No, nO, false or FALSE" printf "$(basename ${0}): usage\n\n" printf "Accepted environment variables:\n" printf "\tSDK:\t\t\t\tsets the target SDK [string]\n\t\t\t\t\tdefault: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk\n" printf "\tMACOSX_DEPLOYMENT_TARGET:\tsets the deployment target (specific OS X version to optimize/build for) [string]\n\t\t\t\t\tdefault: 10.7\n" printf "\tSTDLIB:\t\t\t\tsets a specific stdlib variant. Must be used with FORCE_STDLIB to have any effect. [string]\n\t\t\t\t\tdefault: autodetect\n" printf "\tFORCE_STDLIB:\t\t\tforces a specific C++ stdlib version. If you use this, also specify STDLIB. YOU SHOULD NEVER USE THIS, UNLESS YOU KNOW WHAT YOU ARE DOING! [boolean]\n\t\t\t\t\tdefault: disabled\n" printf "\tDEBUG\t\t\t\tenables or disables debug builds [boolean]\n\t\t\t\t\tdefault: disabled\n" printf "\tBUNDLE\t\t\t\tenables or disables library bundling and the creation of a .dmg installer [boolean]\n\t\t\t\t\tdefault: enabled\n" printf "\tUNIVERSAL\t\t\tenables or disables x86 support. x86_64 support is always enabled [boolean]\n\t\t\t\t\tdefault: enabled\n" printf "\n" printf "Boolean values help:\n" printf "\ta value of ${NO_VAL} will be treated as false\n" printf "\tany other value will be treated as true\n" exit 2 } MATCH_HELP='(^((-h)|(--help))([ ]|$))|([ ]+((-h)|(--help))([ ]|$))' [ -n "${*}" ] && [[ "${*}" =~ ${MATCH_HELP} ]] && usage NAME="x2goclient" TOP_DIR="$(dirname "$0")" [[ "${TOP_DIR}" == /* ]] || TOP_DIR="${PWD}/${TOP_DIR#./}" BUILD_DIR="${TOP_DIR}/client_build" APPBUNDLE="${BUILD_DIR}/${NAME}.app" DMGFILE="${BUILD_DIR}/${NAME}.dmg" PROJECT="${TOP_DIR}/${NAME}.pro" PKG_DMG="${TOP_DIR}/pkg-dmg" NXPROXY="$(which nxproxy)" : ${SDK:="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk"} : ${MACOSX_DEPLOYMENT_TARGET:="10.7"} : ${FORCE_STDLIB:="0"} : ${DEBUG:="0"} : ${BUNDLE:="1"} : ${UNIVERSAL:="1"} FORCE_STDLIB="$(make_boolean "${FORCE_STDLIB}")" DEBUG="$(make_boolean "${DEBUG}")" BUNDLE="$(make_boolean "${BUNDLE}")" UNIVERSAL="$(make_boolean "${UNIVERSAL}")" [ "${DEBUG}" -eq "0" ] && BUILD_MODE="release" || BUILD_MODE="debug" BUILD_ARCH="x86_64" [ "${UNIVERSAL}" -eq "1" ] && BUILD_ARCH="${BUILD_ARCH} x86" if [ "${FORCE_STDLIB}" -eq "1" ]; then if [[ -z "${STDLIB}" ]]; then echo "stdlib forcing enabled, but STDLIB not passed." >&2 exit 1 fi if [[ "${STDLIB}" != "libc++" && "${STDLIB}" != "libstdc++" ]]; then echo "stdlib forcing enabled, but STDLIB contains illegal value. Legal values: libc++, libstdc++" >&2 exit 1 fi else SDK_MINOR_VERSION="$(/usr/bin/perl -pe 's#.*?10\.(\d+).*?\.sdk$#\1#' <<< "${SDK}")" MATCH_NUMBERS='^[0-9]+$' if [[ "${SDK_MINOR_VERSION}" =~ ${MATCH_NUMBERS} ]]; then [ "${SDK_MINOR_VERSION}" -gt "6" ] && STDLIB="libstdc++" [ "${SDK_MINOR_VERSION}" -gt "8" ] && STDLIB="libc++" else echo "Unable to determine OS X version. Unknown value '${SDK_MINOR_VERSION}'." >&2 exit 1 fi fi set -e phase "Cleaning" make clean # Create gitlog. git --no-pager log --since "2 years ago" --format="%ai %aN (%h) %n%n%x09*%w(68,0,10) %s%d%n" > "ChangeLog.gitlog" mv "ChangeLog.gitlog" "res/txt/git-info" # Copy debian changelog as the general changelog. cp -a "debian/changelog" "res/txt/" [ -e "${BUILD_DIR}" ] && rm -rf "${BUILD_DIR}" mkdir "${BUILD_DIR}" pushd "${BUILD_DIR}" phase "Running lrelease" lrelease "${PROJECT}" # WILL BE REMOVED IN OTHER BRANCH - ONLY HERE FOR COMPAT REASONS MACPORTS_PREFIX="/opt/local" phase "Running qmake" qmake -config "${BUILD_MODE}" -spec macx-g++ "${PROJECT}" \ CONFIG+="${BUILD_ARCH}" \ QMAKE_MAC_SDK="${SDK}" \ QMAKE_MACOSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}" \ OSX_STDLIB="${STDLIB}" \ MACPORTS_INCLUDE_PATH="${MACPORTS_PREFIX}/include" \ MACPORTS_LIBRARY_PATH="${MACPORTS_PREFIX}/lib" phase "Running make" make -j2 phase "Copying nxproxy" mkdir -p "${APPBUNDLE}/Contents/exe" cp "${NXPROXY}" "${APPBUNDLE}/Contents/exe" if [ "${BUNDLE}" = "1" ]; then dylibbundler \ --fix-file "${APPBUNDLE}/Contents/exe/nxproxy" \ --bundle-deps \ --dest-dir "${APPBUNDLE}/Contents/Frameworks" \ --install-path "@executable_path/../Frameworks/" \ --create-dir phase "Bundling up using macdeployqt" macdeployqt "${APPBUNDLE}" -verbose=2 phase "Creating DMG" ${PKG_DMG} \ --source "${APPBUNDLE}" \ --sourcefile \ --target "${DMGFILE}" \ --volname "x2goclient" \ --verbosity 2 \ --mkdir "/.background" \ --copy "${TOP_DIR}/res/img/png/macinstaller_background.png:/.background" \ --copy "${TOP_DIR}/res/osxbundle/macdmg.DS_Store:/.DS_Store" \ --copy "${TOP_DIR}/LICENSE" \ --copy "${TOP_DIR}/COPYING" \ --symlink "/Applications: " \ --icon "${TOP_DIR}/res/img/icons/x2go-mac.icns" \ --format "UDBZ" fi popd x2goclient-4.0.5.1/Makefile0000755000000000000000000001266512675050177012312 0ustar #!/usr/bin/make -f TOP_DIR=$(CURDIR) CLIENT_DIR=$(TOP_DIR)/client_build CLIENT_BINARY=$(CLIENT_DIR)/x2goclient PLUGIN_DIR=$(TOP_DIR)/plugin_build PLUGIN_BINARY=$(PLUGIN_DIR)/libx2goplugin.so SHELL=/bin/bash INSTALL_DIR=install -d -o root -g root -m 755 INSTALL_FILE=install -o root -g root -m 644 INSTALL_SYMLINK=ln -s -f INSTALL_PROGRAM=install -o root -g root -m 755 RM_FILE=rm -f RM_DIR=rmdir -p --ignore-fail-on-non-empty DESTDIR= PREFIX=/usr/local ETCDIR=/etc/x2go BINDIR=$(PREFIX)/bin SHAREDIR=$(PREFIX)/share MANDIR=$(SHAREDIR)/man MOZPLUGDIR=$(PREFIX)/lib/mozilla/plugins QMAKE_BINARY=qmake-qt4 LRELEASE_BINARY=lrelease-qt4 LDFLAGS+=-lldap -lcups -lX11 -lXpm all: build build: build_man build_pluginprovider $(MAKE) build_client $(MAKE) build_plugin build_client: $(LRELEASE_BINARY) x2goclient.pro mkdir -p $(CLIENT_DIR) && cd $(CLIENT_DIR) && $(QMAKE_BINARY) QMAKE_CFLAGS="${CPPFLAGS} ${CFLAGS}" QMAKE_CXXFLAGS="${CPPFLAGS} ${CXXFLAGS}" QMAKE_LFLAGS="${LDFLAGS}" ../x2goclient.pro cd $(CLIENT_DIR) && $(MAKE) build_plugin: $(LRELEASE_BINARY) x2goclient.pro mkdir -p $(PLUGIN_DIR) && cd $(PLUGIN_DIR) && X2GO_CLIENT_TARGET=plugin $(QMAKE_BINARY) QMAKE_CFLAGS="${CPPFLAGS} ${CFLAGS}" QMAKE_CXXFLAGS="${CPPFLAGS} ${CXXFLAGS}" QMAKE_LFLAGS="${LDFLAGS}" ../x2goclient.pro cd $(PLUGIN_DIR) && $(MAKE) build_pluginprovider: build_man: ${MAKE} -f Makefile.man2html build clean: clean_client clean_plugin clean_man clean_pluginprovider find . -maxdepth 3 -name '*.o' -exec rm -vf {} + -type f find . -maxdepth 3 -name 'moc_*.cpp' -exec rm -vf {} + -type f find . -maxdepth 3 -name 'ui_*.h' -exec rm -vf {} + -type f find . -maxdepth 3 -name 'qrc_*.cpp' -exec rm -vf {} + -type f rm -f x2goclient rm -f x2goclient.tag rm -f res/txt/changelog rm -f res/txt/git-info clean_client: rm -fr $(CLIENT_DIR) clean_plugin: rm -fr $(PLUGIN_DIR) clean_pluginprovider: clean_man: make -f Makefile.man2html clean install: install_client install_plugin install_man install_pluginprovider install_client: $(INSTALL_DIR) $(DESTDIR)$(BINDIR)/ $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/applications $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/x2goclient/icons $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/icons/hicolor/128x128/apps $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/icons/hicolor/16x16/apps $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/icons/hicolor/64x64/apps $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/icons/hicolor/32x32/apps $(INSTALL_PROGRAM) $(CLIENT_DIR)/x2goclient $(DESTDIR)$(BINDIR)/x2goclient $(INSTALL_FILE) desktop/x2goclient.desktop $(DESTDIR)$(SHAREDIR)/applications/x2goclient.desktop $(INSTALL_FILE) res/img/icons/x2goclient.xpm $(DESTDIR)$(SHAREDIR)/x2goclient/icons/x2goclient.xpm $(INSTALL_FILE) res/img/icons/128x128/x2goclient.png $(DESTDIR)$(SHAREDIR)/x2goclient/icons/x2goclient.png $(INSTALL_FILE) res/img/icons/128x128/x2gosession.png $(DESTDIR)$(SHAREDIR)/x2goclient/icons/x2gosession.png $(INSTALL_FILE) res/img/icons/128x128/x2goclient.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/128x128/apps/x2goclient.png $(INSTALL_FILE) res/img/icons/16x16/x2goclient.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/16x16/apps/x2goclient.png $(INSTALL_FILE) res/img/icons/64x64/x2goclient.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/64x64/apps/x2goclient.png $(INSTALL_FILE) res/img/icons/32x32/x2goclient.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/32x32/apps/x2goclient.png install_plugin: $(INSTALL_DIR) $(DESTDIR)$(MOZPLUGDIR)/ $(INSTALL_PROGRAM) $(PLUGIN_DIR)/libx2goplugin.so $(DESTDIR)$(MOZPLUGDIR)/libx2goplugin.so install_pluginprovider: $(INSTALL_DIR) $(DESTDIR)$(ETCDIR)/plugin-provider $(INSTALL_FILE) provider/etc/x2goplugin-apache.conf $(DESTDIR)$(ETCDIR)/x2goplugin-apache.conf $(INSTALL_FILE) provider/share/x2goplugin.html $(DESTDIR)$(ETCDIR)/plugin-provider/x2goplugin.html $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/x2go/plugin/ $(INSTALL_SYMLINK) ../../../../$(ETCDIR)/plugin-provider/x2goplugin.html $(DESTDIR)$(SHAREDIR)/x2go/plugin/x2goplugin.html install_man: $(INSTALL_DIR) $(DESTDIR)$(MANDIR)/ $(INSTALL_DIR) $(DESTDIR)$(MANDIR)/man1 $(INSTALL_FILE) man/man1/x2goclient.1 $(DESTDIR)$(MANDIR)/man1/x2goclient.1 gzip -f $(DESTDIR)$(MANDIR)/man1/x2goclient.1 uninstall: uninstall_client uninstall_plugin uninstall_man uninstall_client: $(RM_FILE) $(BINDIR)/x2goclient $(RM_FILE) $(SHAREDIR)/applications/x2goclient.desktop $(RM_FILE) $(SHAREDIR)/x2goclient/icons/x2goclient.png $(RM_FILE) $(SHAREDIR)/x2goclient/icons/x2goclient.xpm $(RM_FILE) $(SHAREDIR)/x2goclient/icons/x2gosession.png $(RM_FILE) $(SHAREDIR)/icons/hicolor/128x128/apps/x2goclient.png $(RM_FILE) $(SHAREDIR)/icons/hicolor/16x16/apps/x2goclient.png $(RM_FILE) $(SHAREDIR)/icons/hicolor/64x64/apps/x2goclient.png $(RM_FILE) $(SHAREDIR)/icons/hicolor/32x32/apps/x2goclient.png $(RM_DIR) $(SHAREDIR)/applications $(RM_DIR) $(SHAREDIR)/x2goclient/icons $(RM_DIR) $(SHAREDIR)/icons/hicolor/128x128/apps $(RM_DIR) $(SHAREDIR)/icons/hicolor/16x16/apps $(RM_DIR) $(SHAREDIR)/icons/hicolor/64x64/apps $(RM_DIR) $(SHAREDIR)/icons/hicolor/32x32/apps uninstall_plugin: $(RM_FILE) $(MOZPLUGDIR)/libx2goplugin.so $(RM_DIR) $(MOZPLUGDIR)/ uninstall_pluginprovider: $(RM_FILE) $(ETCDIR)/x2goplugin-apache.conf $(RM_FILE) $(ETCDIR)/plugin-provider/x2goplugin.html $(RM_DIR) $(ETCDIR)/plugin-provider $(RM_DIR) $(ETCDIR) $(RM_FILE) $(SHAREDIR)/x2go/plugin/x2goplugin.html $(RM_DIR) $(SHAREDIR)/x2go/plugin/ $(RM_DIR) $(SHAREDIR)/x2go/ uninstall_man: $(RM_FILE) $(MANDIR)/man1/x2goclient.1.gz $(RM_DIR) $(MANDIR)/man1 x2goclient-4.0.5.1/Makefile.docupload0000644000000000000000000000112712675050177014247 0ustar #!/usr/bin/make -f # Makefile.docupload file - for x2goclient # Copyright (C) 2010-2016 by Mike Gabriel , GPLv3 applies to this file VERSION=$(head -n1 debian/changelog | sed 's,.*(\(.*\)).*,\1,' | cut -d"-" -f1) DOC_HOST="code.x2go.org" DOC_PATH="/srv/sites/x2go.org/packages/doc/x2goclient/man/" DOC_USER="x2go-admin" doc: docbuild docupload docbuild: make -f Makefile.man2html build_man2html docupload: ssh -l${DOC_USER} ${DOC_HOST} "{ mkdir -p ${DOC_PATH}; rm -Rfv ${DOC_PATH}/*; }" scp -r .build_man2html/html/* ${DOC_USER}@${DOC_HOST}:${DOC_PATH}/ x2goclient-4.0.5.1/Makefile.man2html0000644000000000000000000000112312675050177014013 0ustar #!/usr/bin/make -f MAN2HTML_BIN = $(shell which man2html) MAN2HTML_SRC = man BUILD_DIR = .build_man2html MAN2HTML_DEST = $(BUILD_DIR)/html man_pages = $(cd $(MAN2HTML_SRC) && find * -type f) all: build build: build_man2html build_man2html: if [ -n "$(MAN2HTML_BIN)" ]; then \ mkdir -p $(MAN2HTML_DEST); \ for man_page in $(man_pages); do mkdir -p $$(dirname $(MAN2HTML_DEST)/$$man_page); done; \ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done; \ fi clean: clean_man2html clean_man2html: rm -Rf $(BUILD_DIR) x2goclient-4.0.5.1/man/man1/x2goclient.10000644000000000000000000002376412675050177014420 0ustar '\" -*- coding: utf-8 -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH x2goclient 1 "May 2015" "Version 4.0.5.1" "X2Go Client (Qt4)" .SH NAME x2goclient \- Client application to launch server-side X2Go sessions. .SH SYNOPSIS 'nh .fi .ad l \fBx2goclient\fR .SH DESCRIPTION \fBx2goclient\fR is a GUI application for launching server-side X2Go sessions. .PP .SH HELP AND DEBUG OPTIONS \fBx2goclient\fR has the following help and debugging options: .TP \*(T<\fB\-\-help\fR\*(T> Show available command line options. .TP \*(T<\fB\-\-help\-pack\fR\*(T> Show available pack methods and exit. .TP \*(T<\fB\-v, \-\-version\fR\*(T> Output X2Go Client version to stderr. .TP \*(T<\fB\-\-debug\fR\*(T> Enable extensive console output for debugging X2Go Client. .TP \*(T<\fB\-\-changelog\fR\*(T> Show changelog file. .TP \*(T<\fB\-\-git\-info\fR\*(T> Show Git commit history (not available on all X2Go Client builds). .SH GUI OPTIONS The following options can be used for controlling the GUI behaviour: .TP \*(T<\fB\-\-no\-menu\fR\*(T> Hide menu-/toolbar (default: false). .TP \*(T<\fB\-\-maximize\fR\*(T> Start client maximized (default: false). .TP \*(T<\fB\-\-hide\fR\*(T> Hide client (start hidden, default: false). .TP \*(T<\fB\-\-keep\-trayicon\fR\*(T> Always keep the "accelerated X" icon in the system tray. Without this option the default behaviour is: Switch the tray icon to the session's icon on successful session startup/resumption. .TP \*(T<\fB\-\-tray\-icon\fR\*(T> Show tray icon (default: false). This option overrides the global tray icon settings and also forces the tray icon to be shown in hidden X2Go Client mode. .TP \*(T<\fB\-\-hide\-foldersharing\fR\*(T> Hide all elements in X2Go Client GUI that are related to folder sharing. .TP \*(T<\fB\-\-close\-disconnect\fR\*(T> Close X2Go Client after a session got disconnected. .TP \*(T<\fB\-\-client\-ssh\-port\fR\*(T> Local ssh port (for filesystem export, default: 22). .TP \*(T<\fB\-\-autostart=\fR\*(T> Launch by session start in "published applications" mode. This parameter should go along with --session=, where the given session profile should be configured as a session profile of type "Published Applications". .TP \*(T<\fB\-\-support\-menu=\fR\*(T> Add a "Support..." submenu item to X2Go Client's "Help" menu. The support information is provided via a simple HTML file. Example: .sp .if n \{\ .RS 4 .\} .nf \fI

IT-Support for X2Go

DAS-NETZWERKTEAM | Mike Gabriel:
support@das-netzwerkteam.de

Thanks for using X2Go... \fR .fi .if n \{\ .RE .\} .TP \*(T<\fB\-\-background=\fR\*(T> Use a custom/branded background image (SVG format) for X2Go Client's main window (i.e. replace the blue gradient area in X2Go Client by some background of your own (business/workgroup/project). .SH SESSION PROFILE DEFAULTS You can set certain defaults for session profiles via command line switches using the following options: .TP \*(T<\fB\-\-user\fR\*(T> Pre-selection of user at client startup (LDAP mode only). .TP \*(T<\fB\-\-command=\fR\*(T> Default command for session startup. .TP \*(T<\fB\-\-ssh\-port\fR\*(T> Use this default TCP/IP port for connection (default: 22). .TP \*(T<\fB\-\-ssh\-key\fR\*(T> Use this SSH private key file by default. .TP \*(T<\fB\-\-autologin\fR\*(T> By default, search for standard SSH key file names or try using an SSH agent. .TP \*(T<\fB\-\-link\fR\*(T> Set default link type (modem,isdn,adsl,wan or lan, default: adsl). .TP \*(T<\fB\-\-pack\fR\*(T> Set default pack method (default: '16m-jpeg'). .TP \*(T<\fB\-\-quality\fR\*(T> Set default image quality(0-9, default: 9). .TP \*(T<\fB\-\-set\-kbd\fR\*(T> Overwrite current keyboard settings, no override by default. .TP \*(T<\fB\-\-kbd\-layout\fR\*(T> Set keyboard layout (default: 'de'). .TP \*(T<\fB\-\-kbd\-type\fR\*(T> Set keyboard type (default: pc105/us, depend on our clients language setup, though). .TP \*(T<\fB\-\-clipboard=\fR\*(T> Set default clipboard mode. .TP \*(T<\fB\-\-geometry=x|fullscreen\fR\*(T> Set default geometry, default '800x600'. .TP \*(T<\fB\-\-dpi=\fR\*(T> set DPI of X2Go Agent to , default set to same as local display. .TP \*(T<\fB\-\-sound\fR\*(T> Activate sound for session, not enabled by default. .TP \*(T<\fB\-\-sound\-system\fR\*(T> Which soundsystem to use: arts, esd, pulse (default: pulse). .TP \*(T<\fB\-\-xinerama\fR\*(T> Use Xinerama by default. .TP \*(T<\fB\-\-session-icon=<128x128px-icon-png-file>\fR\*(T> Use a custom session icon by default. .SH THIN CLIENT OPTIONS The following command line options are primarily interesting if \fBx2goclient\fR is used as a login manager on X2Go thin clients. .TP \*(T<\fB\-\-thinclient\fR\*(T> Let X2Go Client run without window manager. .TP \*(T<\fB\-\-sessionid=\fR\*(T> Pre-selection of a session profile (by its session profile ID) at client startup. .TP \*(T<\fB\-\-session=\fR\*(T> Pre-selection of a session profile (by its session profile name) at client startup. .TP \*(T<\fB\-\-no\-session\-edit\fR\*(T> Disable session editing. .TP \*(T<\fB\-\-pgp\-card\fR\*(T> Use openPGP Card authentication (default: false). .TP \*(T<\fB\-\-external\-login=\fR\*(T> Authenticate via SMART card, path to login notification file. .TP \*(T<\fB\-\-add\-to\-known\-hosts\fR\*(T> Add DSA/RSA host key fingerprint to .ssh/known_hosts in case of "authenticity of server can't be established". .TP \*(T<\fB\-\-read\-exports\-from\fR\*(T> Specifies a directory where some external mechanism (e.g. script) can notify \fBx2goclient\fR on new block devices (CD/DVDs, USB sticks, etc.). .TP \*(T<\fB\-\-haltbt\fR\*(T> Show a "Shutdown" button in the top left corner of X2Go Client. When pressed, X2Go Client will create the file $HOME/.halt. An external script has to watch for this file and trigger a thinclient shutdown once it appears. .SH PORTABLE OPTIONS X2Go Client can be installed on a USB-Flashdrive as a portable applications. If installed that way, the following options support the portable setup of X2Go Client: .TP \*(T<\fB\-\-portable\fR\*(T> Start X2Go Client in "portable" mode. This implies... (TODO). .TP \*(T<\fB\-\-home=\fR\*(T> Set the users home directory. This is the directory where X2Go Client will store settings and cache files. .TP \*(T<\fB\-\-session\-conf=\fR\*(T> Path to alternative session profile config (default: $HOME/.x2goclient/sessions). .TP \*(T<\fB\-\-clean-all-files\fR\*(T> In portable mode, X2Go Client removes several directories it has created (and probably directories you don't want to have removed on a normal system): \fI$HOME/.ssh $HOME/ssh $HOME/.x2go\fR If \fI\-\-clean\-all\-files\fR is used on the command line, also the directory containing the configuration files of X2Go Client gets removed: \fI$HOME/.x2goclient\fR .SH BROKER OPTIONS In case you want to retrieve \fBx2goclient\fR session profiles from an X2Go Session Broker use the following options: .TP \*(T<\fB\-\-broker\-url=\fR\*(T> Specify the of the X2Go Session Broker. X2Go Client can access http:// and ssh:// style URLs. Syntax of for HTTP brokerage: http(s)://:@:/path/to/broker Syntax of for SSH brokerage: ssh://:@:/usr/bin/x2gobroker (or any executable that provides the broker via SSH). .TP \*(T<\fB\-\-broker\-cacertfile=\fR\*(T> Specify a special (self-signed) root-CACert file that shall get used when connecting to an X2Go Session Broker via https (SSL). .TP \*(T<\fB\-\-broker\-noauth\fR\*(T> The X2Go Session Broker is accessible without authentication. .TP \*(T<\fB\-\-broker-krblogin\fR\*(T> Login to X2Go Session Broker via GSSAPI. Only supported with ssh:// broker URLs. .TP \*(T<\fB\-\-auth\-id=\fR\*(T> Use this for authenticating against the X2Go Session Broker. This option mostly makes sense together with \fI--broker-autologin\fR or \fI--broker-ssh-key\fR. .TP \*(T<\fB\-\-broker\-autologin\fR\*(T> For SSH based X2Go Session Brokers. If an SSH agent is available or default key files exist then try those for authentication against the X2Go Session Broker. .TP \*(T<\fB\-\-broker\-autologoff\fR\*(T> Enforce re-authentication against X2Go Session Broker after a session has been suspended or terminated. .TP \*(T<\fB\-\-broker\-ssh\-key=\fR\*(T> For SSH based X2Go Session Brokers. Full path to a valid SSH private key file. .TP \*(T<\fB\-\-broker\-name=\fR\*(T> Currently unused... .TP \*(T<\fB\-\-connectivity-test\fR\*(T> Run a connectivity test against X2Go Session Broker. Not supported by all broker implementations. .TP \*(T<\fB\-\-change-broker-pass\fR\*(T> Send a change-password request to an X2Go Session Broker. Not supported by all broker implementations. .TP \*(T<\fB\-\-broker-noauth-with-session-username\fR\*(T> Informs the broker to use the username you entered for X2Go Server authentication when selecting a server/session. Only has functionality if --broker-noauth is used. .SH LDAP OPTIONS (deprecated) NOTE: LDAP support won't be continued in X2Go Client 2 (next generation of X2Go Client). .PP A slightly different approach than X2Go Client's LDAP functionality is available via the X2Go Session Brokerage feature. .PP In case you want to control \fBx2goclient\fR via an LDAP server use the following options: .TP \*(T<\fB\-\-ldap=\fR\*(T> Start with LDAP support (disabled by default). Example: --ldap=ldapserver:389:o=organization,c=de .TP \*(T<\fB\-\-ldap1=\fR\*(T> Failover LDAP URI No. 1. .TP \*(T<\fB\-\-ldap2=\fR\*(T> Failover LDAP URI No. 2. .TP \*(T<\fB\-\-ldap-printing\fR\*(T> Allow client side printing in LDAP mode. .PP .SH AUTHOR This manual has been written by Mike Gabriel for the X2Go project (http://www.x2go.org). x2goclient-4.0.5.1/nsis/gpl.txt0000644000000000000000000004326112675050177013142 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. x2goclient-4.0.5.1/nsis/icons/win-install.ico0000644000000000000000000000206612675050177015665 0ustar (& N( """"""333333"""""!33333!0!0333!00!00!03!0333!0!33333!( @4DD0DCd36ff34D3D06ff40eeee6ff4C333306ff4D06ff4D06ff4D0""D00VVVS33""D03330330""03@4d3C3""03C30""3DDDDDC306ffDfffffc306ff3333334303C33D`3C044D3Ff3DDDDC406CD@330DffffC030d4ff@3336C06@ff@6C0`3306C0060`ff6C060`f6C060`6C060``6C060`ff6C0606C063333336C06DDDDDDDC0fffffffc04DDDDDDF033333330??x2goclient-4.0.5.1/nsis/icons/win-uninstall.ico0000644000000000000000000000206612675050177016230 0ustar (& N( wxwwwGwDwwxwpwxwx{{w{w ( @wwxwxxwwxwwwwxwwwwxwwwwxLGwwwwxLDwwwwxLDGwwwxLDDwwwxLD@wwwxD@wwwx@wwwxxw@wwwxwwwwxxwpwwwxpwwpxpwwwwwwwwwwwwwwwpwpp sp{s? ?x2goclient-4.0.5.1/nsis/make_installer.sh0000755000000000000000000000010312675050177015134 0ustar #!/bin/bash upx x2goclient/x2goclient.exe makensis x2goclient.nsi x2goclient-4.0.5.1/nsis/x2goclient.nsi0000644000000000000000000002767512675050177014423 0ustar ;NSIS Modern User Interface ;Multilingual Example Script ;Written by Joost Verburg !include "MUI.nsh" !include "FileFunc.nsh" !include "Sections.nsh" !insertmacro Locate ;-------------------------------- ;General RequestExecutionLevel admin !define VERSION "X2GOCLIENT_VERSION" !define FILENAME "x2goclient-${VERSION}-setup.exe" Name "x2goclient ${VERSION}" Caption "x2goclient ${VERSION}" OutFile "${FILENAME}" !define MUI_ICON icons\win-install.ico !define MUI_UNICON icons\win-uninstall.ico ;Default installation folder InstallDir "$PROGRAMFILES\x2goclient" ;NSIS 2.46 defaults to zlib. Setting this reduces the size of a default ;(no fonts) build by about 24% SetCompressor /SOLID lzma ;Get installation folder from registry if available InstallDirRegKey HKLM "Software\x2goclient" "" ;-------------------------------- ;Check if user is admin Section userInfo::getAccountType pop $0 strCmp $0 "Admin" +3 messageBox MB_OK $(ADM_RIGHT) abort SectionEnd ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING ;-------------------------------- ;Language Selection Dialog Settings ;Remember the installer language !define MUI_LANGDLL_REGISTRY_ROOT "HKLM" !define MUI_LANGDLL_REGISTRY_KEY "Software\x2goclient" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" ;------------------------------ ;Variables Var STARTMENU_FOLDER Var MUI_TEMP !define UNINSTALL_REGKEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\x2goclient" !define UNINSTALL_DISPLAYNAME "X2Go Client for Windows" !define UNINSTALL_PUBLISHER "X2Go Project" !define UNINSTALL_DISPLAYVERSION ${VERSION} !define UNINSTALL_URL "http://www.x2go.org" ;-------------------------------- ;Pages !insertmacro MUI_PAGE_LICENSE "gpl.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !define MUI_STARTMENUPAGE_DEFAULTFOLDER "X2Go Client for Windows" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\x2goclient" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU "Application" $STARTMENU_FOLDER !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_PAGE_FINISH ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Russian" ;------------------------------ ; File Properties ; This gets truncated to a.b.c.d VIProductVersion "${UNINSTALL_DISPLAYVERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} "InternalName" "x2goclient" VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${UNINSTALL_DISPLAYNAME}" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Installer for ${UNINSTALL_DISPLAYNAME}" VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${UNINSTALL_PUBLISHER}" VIAddVersionKey /LANG=${LANG_ENGLISH} "OriginalFilename" "${FILENAME}" ; Due to NSIS "Feature Request" #270, this gets overriden by VIProductVersion VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${UNINSTALL_DISPLAYVERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${UNINSTALL_DISPLAYVERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "GPL-2+" ;-------------------------------- ;Reserve Files ;If you are using solid compression, files that are required before ;the actual installation should be stored first in the data block, ;because this will make your installer start faster. !insertmacro MUI_RESERVEFILE_LANGDLL ;-------------------------------- ;Installer Sections ;"Recommended" is the default because it is specified 1st. InstType "Recommended" InstType "Full" InstType "Minimal" Section "X2Go Client (required)" base SetShellVarContext all SectionIn RO SetOutPath "$INSTDIR" File /a /x x2goclient.debug.exe /x pageant.exe /x puttygen.exe "x2goclient\*.*" File /r "x2goclient\pulse" File /r /x "fonts" "x2goclient\VcXsrv" ;Store installation folder WriteRegStr HKLM "Software\x2goclient" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" CreateShortCut "$INSTDIR\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" ;Cleanup previous icon names (prior to X2Go Client 4.0.1.2) Delete "$INSTDIR\X2goClient.lnk" Delete "$SMPROGRAMS\$STARTMENU_FOLDER\X2goClient.lnk" Delete "$DESKTOP\X2goClient.lnk" !insertmacro MUI_STARTMENU_WRITE_END ;Add uninstall information to Add/Remove Programs ;http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs WriteRegStr HKLM ${UNINSTALL_REGKEY} "InstallLocation" "$INSTDIR" WriteRegStr HKLM ${UNINSTALL_REGKEY} "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" WriteRegStr HKLM ${UNINSTALL_REGKEY} "DisplayIcon" "$INSTDIR\x2goclient.exe" WriteRegStr HKLM ${UNINSTALL_REGKEY} "DisplayName" "${UNINSTALL_DISPLAYNAME}" WriteRegStr HKLM ${UNINSTALL_REGKEY} "Publisher" "${UNINSTALL_PUBLISHER}" WriteRegStr HKLM ${UNINSTALL_REGKEY} "DisplayVersion" "${UNINSTALL_DISPLAYVERSION}" WriteRegStr HKLM ${UNINSTALL_REGKEY} "HelpLink" "${UNINSTALL_URL}" WriteRegStr HKLM ${UNINSTALL_REGKEY} "URLInfoAbout" "${UNINSTALL_URL}" WriteRegStr HKLM ${UNINSTALL_REGKEY} "URLUpdateInfo" "${UNINSTALL_URL}" WriteRegDWORD HKLM ${UNINSTALL_REGKEY} "NoModify" 1 WriteRegDWORD HKLM ${UNINSTALL_REGKEY} "NoRepair" 1 SectionEnd ;x2goclient bug 108 fix SectionGroup "Fonts" fonts ;Empirical testing shows that "misc" fixes compatibility for the majority ;of applications with font compatibility programs. ;So lets make "misc" be part of "recommended", and therefore the default. ; ;As of VcXsrv-xp 1.14.3.2 ;misc is 412 files at 6.80 MB (7.94 MB on disk) Section "misc" fonts-misc SectionIn 1 2 SetOutPath "$INSTDIR\VcXsrv\fonts\" File "x2goclient\VcXsrv\fonts\fonts.conf" File /r "x2goclient\VcXsrv\fonts\misc" SectionEnd ;As of VcXsrv-xp 1.14.3.2 ;75dpi is 1,897 files at 10.7 MB (15.6 MB on disk) Section "75dpi" fonts-75dpi SectionIn 2 SetOutPath "$INSTDIR\VcXsrv\fonts\" File "x2goclient\VcXsrv\fonts\fonts.conf" File /r "x2goclient\VcXsrv\fonts\75dpi" SectionEnd ;As of VcXsrv-xp 1.14.3.2 ;100dpi is 1,897 files at 12.3 MB (16.8 MB on disk) Section "100dpi" fonts-100dpi SectionIn 2 SetOutPath "$INSTDIR\VcXsrv\fonts\" File "x2goclient\VcXsrv\fonts\fonts.conf" File /r "x2goclient\VcXsrv\fonts\100dpi" SectionEnd ;As of VcXsrv-xp 1.14.3.2 ;everything else is 466 files at 12.8MB (13.8 MB on disk) Section "others" fonts-others SectionIn 2 SetOutPath "$INSTDIR\VcXsrv\fonts\" File "x2goclient\VcXsrv\fonts\fonts.conf" File /r "x2goclient\VcXsrv\fonts\cyrillic" File /r "x2goclient\VcXsrv\fonts\encodings" File /r "x2goclient\VcXsrv\fonts\OTF" File /r "x2goclient\VcXsrv\fonts\Speedo" File /r "x2goclient\VcXsrv\fonts\terminus-font" File /r "x2goclient\VcXsrv\fonts\TTF" File /r "x2goclient\VcXsrv\fonts\Type1" SectionEnd SectionGroupEnd SectionGroup "PuTTY Key Utilities" puttykeyutils Section "Pageant" pageant SectionIn 1 2 SetOutPath "$INSTDIR" File "x2goclient\pageant.exe" CreateShortCut "$INSTDIR\Pageant.lnk" "$INSTDIR\pageant.exe" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Pageant.lnk" "$INSTDIR\pageant.exe" SectionEnd Section "PuTTYgen" puttygen SectionIn 1 2 SetOutPath "$INSTDIR" File "x2goclient\puttygen.exe" CreateShortCut "$INSTDIR\PuTTYgen.lnk" "$INSTDIR\puttygen.exe" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\PuTTYgen.lnk" "$INSTDIR\puttygen.exe" SectionEnd SectionGroupEnd Section "Desktop Shortcut" desktopshortcut SectionIn 1 2 # When you run SetOutPath,you set the "Start in" dir for the shortcut. # This "Start in" dir must exist for the shortcut to work. SetOutPath "$INSTDIR" CreateShortCut "$DESKTOP\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" SectionEnd Section "Debug Build" debugbuild SectionIn 2 SetOutPath "$INSTDIR" File "x2goclient\x2goclient.debug.exe" CreateShortCut "$INSTDIR\X2Go Client (Debug).lnk" "$INSTDIR\x2goclient.debug.exe" "--debug" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\X2Go Client (Debug).lnk" "$INSTDIR\x2goclient.debug.exe" "--debug" SectionEnd Section -EstimatedSize SectionIn RO ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 IntFmt $0 "0x%08X" $0 WriteRegDWORD HKLM ${UNINSTALL_REGKEY} "EstimatedSize" "$0" SectionEnd ;------------------------------------------- ;Descriptions LangString ADM_RIGHT ${LANG_ENGLISH} "You have to be Administrator on this computer to install X2Go Client" LangString ADM_RIGHT ${LANG_GERMAN} "Sie brauchen Administratorenrechte um X2go Client zu installieren" LangString ADM_RIGHT ${LANG_RUSSIAN} " , X2Go Client, " LangString DESC_base ${LANG_ENGLISH} "The regular build of X2Go Client and all its required dependencies" LangString DESC_fonts ${LANG_ENGLISH} "Fonts are required for certain legacy/proprietary apps to run properly." LangString DESC_puttykeyutils ${LANG_ENGLISH} "Utilities from the PuTTY project for SSH public key authentication" LangString DESC_pageant ${LANG_ENGLISH} "PuTTY SSH authentication agent. Use this to load private keys into RAM so that you are not repeatedly prompted for the key's password." LangString DESC_puttygen ${LANG_ENGLISH} "PuTTY key generator && converter. Note that keys for Pageant must be in PuTTY format, but key files on disk must be in OpenSSH format." LangString DESC_desktopshortcut ${LANG_ENGLISH} "Desktop shortcut" LangString DESC_debugbuild ${LANG_ENGLISH} "A build of X2Go Client with console debugging output. Install and use this if you are reporting a bug." !Insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${base} $(DESC_base) !insertmacro MUI_DESCRIPTION_TEXT ${fonts} $(DESC_fonts) !insertmacro MUI_DESCRIPTION_TEXT ${fonts-misc} $(DESC_fonts) !insertmacro MUI_DESCRIPTION_TEXT ${fonts-75dpi} $(DESC_fonts) !insertmacro MUI_DESCRIPTION_TEXT ${fonts-100dpi} $(DESC_fonts) !insertmacro MUI_DESCRIPTION_TEXT ${fonts-others} $(DESC_fonts) !insertmacro MUI_DESCRIPTION_TEXT ${puttykeyutils} $(DESC_puttykeyutils) !insertmacro MUI_DESCRIPTION_TEXT ${pageant} $(DESC_pageant) !insertmacro MUI_DESCRIPTION_TEXT ${puttygen} $(DESC_puttygen) !insertmacro MUI_DESCRIPTION_TEXT ${desktopshortcut} $(DESC_desktopshortcut) !insertmacro MUI_DESCRIPTION_TEXT ${debugbuild} $(DESC_debugbuild) !Insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;Installer Functions Function .onInit !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd ;-------------------------------- ;Uninstaller Section Section "Uninstall" SetShellVarContext all !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\X2Go Client.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\X2Go Client (Debug).lnk" Delete "$SMPROGRAMS\$MUI_TEMP\Pageant.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\PuTTYgen.lnk" Delete "$DESKTOP\X2Go Client.lnk" StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" startMenuDeleteLoop: ClearErrors RMDir $MUI_TEMP GetFullPathName $MUI_TEMP "$MUI_TEMP\.." IfErrors startMenuDeleteLoopDone StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop startMenuDeleteLoopDone: RMDir /r "$INSTDIR" DeleteRegKey HKLM "Software\x2goclient" DeleteRegKey HKLM "${UNINSTALL_REGKEY}" SectionEnd ;-------------------------------- ;Uninstaller Functions Function un.onInit !insertmacro MUI_UNGETLANGUAGE FunctionEnd x2goclient-4.0.5.1/pkg-dmg0000755000000000000000000014426412675050177012124 0ustar #!/usr/bin/perl # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is pkg-dmg, a Mac OS X disk image (.dmg) packager # # The Initial Developer of the Original Code is # Mark Mentovai . # Portions created by the Initial Developer are Copyright (C) 2005 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** use strict; use warnings; =pod =head1 NAME B - Mac OS X disk image (.dmg) packager =head1 SYNOPSIS B B<--source> I B<--target> I [B<--format> I] [B<--volname> I] [B<--tempdir> I] [B<--mkdir> I] [B<--copy> I[:I]] [B<--symlink> I[:I]] [B<--license> I] [B<--resource> I] [B<--icon> I] [B<--attribute> I:I[:I...] [B<--idme>] [B<--sourcefile>] [B<--verbosity> I] [B<--dry-run>] =head1 DESCRIPTION I takes a directory identified by I and transforms it into a disk image stored as I. The disk image will occupy the least space possible for its format, or the least space that the authors have been able to figure out how to achieve. =head1 OPTIONS =over 5 ==item B<--source> I Identifies the directory that will be packaged up. This directory is not touched, a copy will be made in a temporary directory for staging purposes. See B<--tempdir>. ==item B<--target> I The disk image to create. If it exists and is not in use, it will be overwritten. If I already contains a suitable extension, it will be used unmodified. If no extension is present, or the extension is incorrect for the selected format, the proper extension will be added. See B<--format>. ==item B<--format> I The format to create the disk image in. Valid values for I are: - UDZO - zlib-compressed, read-only; extension I<.dmg> - UDBZ - bzip2-compressed, read-only; extension I<.dmg>; create and use on 10.4 ("Tiger") and later only - UDRO - uncompressed, read-only; extension I<.dmg> - UDRW - uncompressed, read-write; extension I<.dmg> - UDSP - uncompressed, read-write, sparse; extension I<.sparseimage> UDZO is the default format. See L for a description of these formats. =item B<--volname> I The name of the volume in the disk image. If not specified, I defaults to the name of the source directory from B<--source>. =item B<--tempdir> I A temporary directory to stage intermediate files in. I must have enough space available to accommodate twice the size of the files being packaged. If not specified, defaults to the same directory that the I is to be placed in. B will remove any temporary files it places in I. =item B<--mkdir> I Specifies a directory that should be created in the disk image. I and any ancestor directories will be created. This is useful in conjunction with B<--copy>, when copying files to directories that may not exist in I. B<--mkdir> may appear multiple times. =item B<--copy> I[:I] Additional files to copy into the disk image. If I is specified, I is copied to the location I identifies, otherwise, I is copied to the root of the new volume. B<--copy> provides a way to package up a I by adding files to it without modifying the original I. B<--copy> may appear multiple times. This option is useful for adding .DS_Store files and window backgrounds to disk images. =item B<--symlink> I[:I] Like B<--copy>, but allows symlinks to point out of the volume. Empty symlink destinations are interpreted as "like the source path, but inside the dmg" This option is useful for adding symlinks to external resources, e.g. to /Applications. =item B<--license> I A plain text file containing a license agreement to be displayed before the disk image is mounted. English is the only supported language. To include license agreements in other languages, in multiple languages, or to use formatted text, prepare a resource and use L<--resource>. =item B<--resource> I A resource file to merge into I. If I is UDZO, UDBZ, or UDRO, the disk image will be flattened to a single-fork file that contains the resource but may be freely transferred without any special encodings. I must be in a format suitable for L. See L for a description of the format, and L for a discussion on flattened disk images. B<--resource> may appear multiple times. This option is useful for adding license agreements and other messages to disk images. =item B<--icon> I Specifies an I file that will be used as the icon for the root of the volume. This file will be copied to the new volume and the custom icon attribute will be set on the root folder. =item B<--attribute> I:I[:I...] Sets the attributes of I to the attribute list in I. See L =item B<--idme> Enable IDME to make the disk image "Internet-enabled." The first time the image is mounted, if IDME processing is enabled on the system, the contents of the image will be copied out of the image and the image will be placed in the trash with IDME disabled. =item B<--sourcefile> If this option is present, I is treated as a file, and is placed as a file within the volume's root folder. Without this option, I is treated as the volume root itself. =item B<--verbosity> I Adjusts the level of loudness of B. The possible values for I are: 0 - Only error messages are displayed. 1 - Print error messages and command invocations. 2 - Print everything, including command output. The default I is 2. =item B<--dry-run> When specified, the commands that would be executed are printed, without actually executing them. When commands depend on the output of previous commands, dummy values are displayed. =back =head1 NON-OPTIONS =over 5 =item Resource forks aren't copied. =item The root folder of the created volume is designated as the folder to open when the volume is mounted. See L. =item All files in the volume are set to be world-readable, only writable by the owner, and world-executable when appropriate. All other permissions bits are cleared. =item When possible, disk images are created without any partition tables. This is what L refers to as I<-layout NONE>, and saves a handful of kilobytes. The alternative, I, contains a partition table that is not terribly handy on disk images that are not intended to represent any physical disk. =item Read-write images are created with journaling off. Any read-write image created by this tool is expected to be transient, and the goal of this tool is to create images which consume a minimum of space. =back =head1 EXAMPLE pkg-dmg --source /Applications/DeerPark.app --target ~/DeerPark.dmg --sourcefile --volname DeerPark --icon ~/DeerPark.icns --mkdir /.background --copy DeerParkBackground.png:/.background/background.png --copy DeerParkDSStore:/.DS_Store --symlink /Applications:"/Drag to here" =head1 REQUIREMENTS I has been tested with Mac OS X releases 10.2 ("Jaguar") through 10.4 ("Tiger"). Certain adjustments to behavior are made depending on the host system's release. Mac OS X 10.3 ("Panther") or later are recommended. =head1 LICENSE MPL 1.1/GPL 2.0/LGPL 2.1. Your choice. =head1 AUTHOR Mark Mentovai =head1 SEE ALSO L, L, L, L, L, L, L =cut use Fcntl; use POSIX; use Getopt::Long; sub argumentEscape(@); sub cleanupDie($); sub command(@); sub commandInternal($@); sub commandInternalVerbosity($$@); sub commandOutput(@); sub commandOutputVerbosity($@); sub commandVerbosity($@); sub copyFiles($@); sub diskImageMaker($$$$$$$$); sub giveExtension($$); sub hdidMountImage($@); sub isFormatReadOnly($); sub licenseMaker($$); sub pathSplit($); sub setAttributes($@); sub trapSignal($); sub usage(); # Variables used as globals my(@gCleanup, %gConfig, $gDarwinMajor, $gDryRun, $gVerbosity); # Use the commands by name if they're expected to be in the user's # $PATH (/bin:/sbin:/usr/bin:/usr/sbin). Otherwise, go by absolute # path. These may be overridden with --config. %gConfig = ('cmd_bless' => 'bless', 'cmd_chmod' => 'chmod', 'cmd_diskutil' => 'diskutil', 'cmd_du' => 'du', 'cmd_hdid' => 'hdid', 'cmd_hdiutil' => 'hdiutil', 'cmd_mkdir' => 'mkdir', 'cmd_mktemp' => 'mktemp', 'cmd_Rez' => '/usr/bin/Rez', 'cmd_rm' => 'rm', 'cmd_rsync' => 'rsync', 'cmd_SetFile' => '/usr/bin/SetFile', # create_directly indicates whether hdiutil create supports # -srcfolder and -srcdevice. It does on >= 10.3 (Panther). # This is fixed up for earlier systems below. If false, # hdiutil create is used to create empty disk images that # are manually filled. 'create_directly' => 1, # If hdiutil attach -mountpoint exists, use it to avoid # mounting disk images in the default /Volumes. This reduces # the likelihood that someone will notice a mounted image and # interfere with it. Only available on >= 10.3 (Panther), # fixed up for earlier systems below. # # This is presently turned off for all systems, because there # is an infrequent synchronization problem during ejection. # diskutil eject might return before the image is actually # unmounted. If pkg-dmg then attempts to clean up its # temporary directory, it could remove items from a read-write # disk image or attempt to remove items from a read-only disk # image (or a read-only item from a read-write image) and fail, # causing pkg-dmg to abort. This problem is experienced # under Tiger, which appears to eject asynchronously where # previous systems treated it as a synchronous operation. # Using hdiutil attach -mountpoint didn't always keep images # from showing up on the desktop anyway. 'hdiutil_mountpoint' => 0, # hdiutil makehybrid results in optimized disk images that # consume less space and mount more quickly. Use it when # it's available, but that's only on >= 10.3 (Panther). # If false, hdiutil create is used instead. Fixed up for # earlier systems below. 'makehybrid' => 1, # hdiutil create doesn't allow specifying a folder to open # at volume mount time, so those images are mounted and # their root folders made holy with bless -openfolder. But # only on >= 10.3 (Panther). Earlier systems are out of luck. # Even on Panther, bless refuses to run unless root. # Fixed up below. 'openfolder_bless' => 1, # It's possible to save a few more kilobytes by including the # partition only without any partition table in the image. # This is a good idea on any system, so turn this option off. # # Except it's buggy. "-layout NONE" seems to be creating # disk images with more data than just the partition table # stripped out. You might wind up losing the end of the # filesystem - the last file (or several) might be incomplete. 'partition_table' => 1, # To create a partition table-less image from something # created by makehybrid, the hybrid image needs to be # mounted and a new image made from the device associated # with the relevant partition. This requires >= 10.4 # (Tiger), presumably because earlier systems have # problems creating images from devices themselves attached # to images. If this is false, makehybrid images will # have partition tables, regardless of the partition_table # setting. Fixed up for earlier systems below. 'recursive_access' => 1); # --verbosity $gVerbosity = 2; # --dry-run $gDryRun = 0; # %gConfig fix-ups based on features and bugs present in certain releases. my($ignore, $uname_r, $uname_s); ($uname_s, $ignore, $uname_r, $ignore, $ignore) = POSIX::uname(); if($uname_s eq 'Darwin') { ($gDarwinMajor, $ignore) = split(/\./, $uname_r, 2); # $major is the Darwin major release, which for our purposes, is 4 higher # than the interesting digit in a Mac OS X release. if($gDarwinMajor <= 6) { # <= 10.2 (Jaguar) # hdiutil create does not support -srcfolder or -srcdevice $gConfig{'create_directly'} = 0; # hdiutil attach does not support -mountpoint $gConfig{'hdiutil_mountpoint'} = 0; # hdiutil mkhybrid does not exist $gConfig{'makehybrid'} = 0; } if($gDarwinMajor <= 7) { # <= 10.3 (Panther) # Can't mount a disk image and then make a disk image from the device $gConfig{'recursive_access'} = 0; # bless does not support -openfolder on 10.2 (Jaguar) and must run # as root under 10.3 (Panther) $gConfig{'openfolder_bless'} = 0; } } else { # If it's not Mac OS X, just assume all of those good features are # available. They're not, but things will fail long before they # have a chance to make a difference. # # Now, if someone wanted to document some of these private formats... print STDERR ($0.": warning, not running on Mac OS X, ". "this could be interesting.\n"); } # Non-global variables used in Getopt my(@attributes, @copyFiles, @createSymlinks, $iconFile, $idme, $licenseFile, @makeDirs, $outputFormat, @resourceFiles, $sourceFile, $sourceFolder, $targetImage, $tempDir, $volumeName); # --format $outputFormat = 'UDZO'; # --idme $idme = 0; # --sourcefile $sourceFile = 0; # Leaving this might screw up the Apple tools. delete $ENV{'NEXT_ROOT'}; # This script can get pretty messy, so trap a few signals. $SIG{'INT'} = \&trapSignal; $SIG{'HUP'} = \&trapSignal; $SIG{'TERM'} = \&trapSignal; Getopt::Long::Configure('pass_through'); GetOptions('source=s' => \$sourceFolder, 'target=s' => \$targetImage, 'volname=s' => \$volumeName, 'format=s' => \$outputFormat, 'tempdir=s' => \$tempDir, 'mkdir=s' => \@makeDirs, 'copy=s' => \@copyFiles, 'symlink=s' => \@createSymlinks, 'license=s' => \$licenseFile, 'resource=s' => \@resourceFiles, 'icon=s' => \$iconFile, 'attribute=s' => \@attributes, 'idme' => \$idme, 'sourcefile' => \$sourceFile, 'verbosity=i' => \$gVerbosity, 'dry-run' => \$gDryRun, 'config=s' => \%gConfig); # "hidden" option not in usage() if(@ARGV) { # All arguments are parsed by Getopt usage(); exit(1); } if($gVerbosity<0 || $gVerbosity>2) { usage(); exit(1); } if(!defined($sourceFolder) || $sourceFolder eq '' || !defined($targetImage) || $targetImage eq '') { # --source and --target are required arguments usage(); exit(1); } # Make sure $sourceFolder doesn't contain trailing slashes. It messes with # rsync. while(substr($sourceFolder, -1) eq '/') { chop($sourceFolder); } if(!defined($volumeName)) { # Default volumeName is the name of the source directory. my(@components); @components = pathSplit($sourceFolder); $volumeName = pop(@components); } my(@tempDirComponents, $targetImageFilename); @tempDirComponents = pathSplit($targetImage); $targetImageFilename = pop(@tempDirComponents); if(defined($tempDir)) { @tempDirComponents = pathSplit($tempDir); } else { # Default tempDir is the same directory as what is specified for # targetImage $tempDir = join('/', @tempDirComponents); } # Ensure that the path of the target image has a suitable extension. If # it didn't, hdiutil would add one, and we wouldn't be able to find the # file. # # Note that $targetImageFilename is not being reset. This is because it's # used to build other names below, and we don't need to be adding all sorts # of extra unnecessary extensions to the name. my($originalTargetImage, $requiredExtension); $originalTargetImage = $targetImage; if($outputFormat eq 'UDSP') { $requiredExtension = '.sparseimage'; } else { $requiredExtension = '.dmg'; } $targetImage = giveExtension($originalTargetImage, $requiredExtension); if($targetImage ne $originalTargetImage) { print STDERR ($0.": warning: target image extension is being added\n"); print STDERR (' The new filename is '. giveExtension($targetImageFilename,$requiredExtension)."\n"); } # Make a temporary directory in $tempDir for our own nefarious purposes. my(@output, $tempSubdir, $tempSubdirTemplate); $tempSubdirTemplate=join('/', @tempDirComponents, 'pkg-dmg.'.$$.'.XXXXXXXX'); if(!(@output = commandOutput($gConfig{'cmd_mktemp'}, '-d', $tempSubdirTemplate)) || $#output != 0) { cleanupDie('mktemp failed'); } if($gDryRun) { (@output)=($tempSubdirTemplate); } ($tempSubdir) = @output; push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_rm'}, '-rf', $tempSubdir);}); my($tempMount, $tempRoot, @tempsToMake); $tempRoot = $tempSubdir.'/stage'; $tempMount = $tempSubdir.'/mount'; push(@tempsToMake, $tempRoot); if($gConfig{'hdiutil_mountpoint'}) { push(@tempsToMake, $tempMount); } if(command($gConfig{'cmd_mkdir'}, @tempsToMake) != 0) { cleanupDie('mkdir tempRoot/tempMount failed'); } # This cleanup object is not strictly necessary, because $tempRoot is inside # of $tempSubdir, but the rest of the script relies on this object being # on the cleanup stack and expects to remove it. push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_rm'}, '-rf', $tempRoot);}); # If $sourceFile is true, it means that $sourceFolder is to be treated as # a file and placed as a file within the volume root, as opposed to being # treated as the volume root itself. rsync will do this by default, if no # trailing '/' is present. With a trailing '/', $sourceFolder becomes # $tempRoot, instead of becoming an entry in $tempRoot. if(command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', '--copy-unsafe-links', $sourceFolder.($sourceFile?'':'/'),$tempRoot) != 0) { cleanupDie('rsync failed'); } if(@makeDirs) { my($makeDir, @tempDirsToMake); foreach $makeDir (@makeDirs) { if($makeDir =~ /^\//) { push(@tempDirsToMake, $tempRoot.$makeDir); } else { push(@tempDirsToMake, $tempRoot.'/'.$makeDir); } } if(command($gConfig{'cmd_mkdir'}, '-p', @tempDirsToMake) != 0) { cleanupDie('mkdir failed'); } } # copy files and/or create symlinks copyFiles($tempRoot, 'copy', @copyFiles); copyFiles($tempRoot, 'symlink', @createSymlinks); if($gConfig{'create_directly'}) { # If create_directly is false, the contents will be rsynced into a # disk image and they would lose their attributes. setAttributes($tempRoot, @attributes); } if(defined($iconFile)) { if(command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', '--copy-unsafe-links', $iconFile, $tempRoot.'/.VolumeIcon.icns') != 0) { cleanupDie('rsync failed for volume icon'); } # It's pointless to set the attributes of the root when diskutil create # -srcfolder is being used. In that case, the attributes will be set # later, after the image is already created. if(isFormatReadOnly($outputFormat) && (command($gConfig{'cmd_SetFile'}, '-a', 'C', $tempRoot) != 0)) { cleanupDie('SetFile failed'); } } if(command($gConfig{'cmd_chmod'}, '-R', 'a+rX,a-st,u+w,go-w', $tempRoot) != 0) { cleanupDie('chmod failed'); } my($unflattenable); if(isFormatReadOnly($outputFormat)) { $unflattenable = 1; } else { $unflattenable = 0; } diskImageMaker($tempRoot, $targetImage, $outputFormat, $volumeName, $tempSubdir, $tempMount, $targetImageFilename, defined($iconFile)); if(defined($licenseFile) && $licenseFile ne '') { my($licenseResource); $licenseResource = $tempSubdir.'/license.r'; if(!licenseMaker($licenseFile, $licenseResource)) { cleanupDie('licenseMaker failed'); } push(@resourceFiles, $licenseResource); # Don't add a cleanup object because licenseResource is in tempSubdir. } if(@resourceFiles) { # Add resources, such as a license agreement. # Only unflatten read-only and compressed images. It's not supported # on other image times. if($unflattenable && (command($gConfig{'cmd_hdiutil'}, 'unflatten', $targetImage)) != 0) { cleanupDie('hdiutil unflatten failed'); } # Don't push flatten onto the cleanup stack. If we fail now, we'll be # removing $targetImage anyway. # Type definitions come from Carbon.r. if(command($gConfig{'cmd_Rez'}, 'Carbon.r', @resourceFiles, '-a', '-o', $targetImage) != 0) { cleanupDie('Rez failed'); } # Flatten. This merges the resource fork into the data fork, so no # special encoding is needed to transfer the file. if($unflattenable && (command($gConfig{'cmd_hdiutil'}, 'flatten', $targetImage)) != 0) { cleanupDie('hdiutil flatten failed'); } } # $tempSubdir is no longer needed. It's buried on the stack below the # rm of the fresh image file. Splice in this fashion is equivalent to # pop-save, pop, push-save. splice(@gCleanup, -2, 1); # No need to remove licenseResource separately, it's in tempSubdir. if(command($gConfig{'cmd_rm'}, '-rf', $tempSubdir) != 0) { cleanupDie('rm -rf tempSubdir failed'); } if($idme) { if(command($gConfig{'cmd_hdiutil'}, 'internet-enable', '-yes', $targetImage) != 0) { cleanupDie('hdiutil internet-enable failed'); } } # Done. exit(0); # argumentEscape(@arguments) # # Takes a list of @arguments and makes them shell-safe. sub argumentEscape(@) { my(@arguments); @arguments = @_; my($argument, @argumentsOut); foreach $argument (@arguments) { $argument =~ s%([^A-Za-z0-9_\-/.=+,])%\\$1%g; push(@argumentsOut, $argument); } return @argumentsOut; } # cleanupDie($message) # # Displays $message as an error message, and then runs through the # @gCleanup stack, performing any cleanup operations needed before # exiting. Does not return, exits with exit status 1. sub cleanupDie($) { my($message); ($message) = @_; print STDERR ($0.': '.$message.(@gCleanup?' (cleaning up)':'')."\n"); while(@gCleanup) { my($subroutine); $subroutine = pop(@gCleanup); &$subroutine; } exit(1); } # command(@arguments) # # Runs the specified command at the verbosity level defined by $gVerbosity. # Returns nonzero on failure, returning the exit status if appropriate. # Discards command output. sub command(@) { my(@arguments); @arguments = @_; return commandVerbosity($gVerbosity,@arguments); } # commandInternal($command, @arguments) # # Runs the specified internal command at the verbosity level defined by # $gVerbosity. # Returns zero(!) on failure, because commandInternal is supposed to be a # direct replacement for the Perl system call wrappers, which, unlike shell # commands and C equivalent system calls, return true (instead of 0) to # indicate success. sub commandInternal($@) { my(@arguments, $command); ($command, @arguments) = @_; return commandInternalVerbosity($gVerbosity, $command, @arguments); } # commandInternalVerbosity($verbosity, $command, @arguments) # # Run an internal command, printing a bogus command invocation message if # $verbosity is true. # # If $command is unlink: # Removes the files specified by @arguments. Wraps unlink. # # If $command is symlink: # Creates the symlink specified by @arguments. Wraps symlink. sub commandInternalVerbosity($$@) { my(@arguments, $command, $verbosity); ($verbosity, $command, @arguments) = @_; if($command eq 'unlink') { if($verbosity || $gDryRun) { print(join(' ', 'rm', '-f', argumentEscape(@arguments))."\n"); } if($gDryRun) { return $#arguments+1; } return unlink(@arguments); } elsif($command eq 'symlink') { if($verbosity || $gDryRun) { print(join(' ', 'ln', '-s', argumentEscape(@arguments))."\n"); } if($gDryRun) { return 1; } my($source, $target); ($source, $target) = @arguments; return symlink($source, $target); } } # commandOutput(@arguments) # # Runs the specified command at the verbosity level defined by $gVerbosity. # Output is returned in an array of lines. undef is returned on failure. # The exit status is available in $?. sub commandOutput(@) { my(@arguments); @arguments = @_; return commandOutputVerbosity($gVerbosity, @arguments); } # commandOutputVerbosity($verbosity, @arguments) # # Runs the specified command at the verbosity level defined by the # $verbosity argument. Output is returned in an array of lines. undef is # returned on failure. The exit status is available in $?. # # If an error occurs in fork or exec, an error message is printed to # stderr and undef is returned. # # If $verbosity is 0, the command invocation is not printed, and its # stdout is not echoed back to stdout. # # If $verbosity is 1, the command invocation is printed. # # If $verbosity is 2, the command invocation is printed and the output # from stdout is echoed back to stdout. # # Regardless of $verbosity, stderr is left connected. sub commandOutputVerbosity($@) { my(@arguments, $verbosity); ($verbosity, @arguments) = @_; my($pid); if($verbosity || $gDryRun) { print(join(' ', argumentEscape(@arguments))."\n"); } if($gDryRun) { return(1); } if (!defined($pid = open(*COMMAND, '-|'))) { printf STDERR ($0.': fork: '.$!."\n"); return undef; } elsif ($pid) { # parent my(@lines); while(!eof(*COMMAND)) { my($line); chop($line = ); if($verbosity > 1) { print($line."\n"); } push(@lines, $line); } close(*COMMAND); if ($? == -1) { printf STDERR ($0.': fork: '.$!."\n"); return undef; } elsif ($? & 127) { printf STDERR ($0.': exited on signal '.($? & 127). ($? & 128 ? ', core dumped' : '')."\n"); return undef; } return @lines; } else { # child; this form of exec is immune to shell games if(!exec {$arguments[0]} (@arguments)) { printf STDERR ($0.': exec: '.$!."\n"); exit(-1); } } } # commandVerbosity($verbosity, @arguments) # # Runs the specified command at the verbosity level defined by the # $verbosity argument. Returns nonzero on failure, returning the exit # status if appropriate. Discards command output. sub commandVerbosity($@) { my(@arguments, $verbosity); ($verbosity, @arguments) = @_; if(!defined(commandOutputVerbosity($verbosity, @arguments))) { return -1; } return $?; } # copyFiles($tempRoot, $method, @arguments) # # Copies files or create symlinks in the disk image. # See --copy and --symlink descriptions for details. # If $method is 'copy', @arguments are interpreted as source:target, if $method # is 'symlink', @arguments are interpreted as symlink:target. sub copyFiles($@) { my(@fileList, $method, $tempRoot); ($tempRoot, $method, @fileList) = @_; my($file, $isSymlink); $isSymlink = ($method eq 'symlink'); foreach $file (@fileList) { my($source, $target); ($source, $target) = split(/:/, $file); if(!defined($target) and $isSymlink) { # empty symlink targets would result in an invalid target and fail, # but they shall be interpreted as "like source path, but inside dmg" $target = $source; } if(!defined($target)) { $target = $tempRoot; } elsif($target =~ /^\//) { $target = $tempRoot.$target; } else { $target = $tempRoot.'/'.$target; } my($success); if($isSymlink) { $success = commandInternal('symlink', $source, $target); } else { $success = !command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', '--copy-unsafe-links', $source, $target); } if(!$success) { cleanupDie('copyFiles failed for method '.$method); } } } # diskImageMaker($source, $destination, $format, $name, $tempDir, $tempMount, # $baseName, $setRootIcon) # # Creates a disk image in $destination of format $format corresponding to the # source directory $source. $name is the volume name. $tempDir is a good # place to write temporary files, which should be empty (aside from the other # things that this script might create there, like stage and mount). # $tempMount is a mount point for temporary disk images. $baseName is the # name of the disk image, and is presently unused. $setRootIcon is true if # a volume icon was added to the staged $source and indicates that the # custom volume icon bit on the volume root needs to be set. sub diskImageMaker($$$$$$$$) { my($baseName, $destination, $format, $name, $setRootIcon, $source, $tempDir, $tempMount); ($source, $destination, $format, $name, $tempDir, $tempMount, $baseName, $setRootIcon) = @_; if(isFormatReadOnly($format)) { my($uncompressedImage); if($gConfig{'makehybrid'}) { my($hybridImage); $hybridImage = giveExtension($tempDir.'/hybrid', '.dmg'); if(command($gConfig{'cmd_hdiutil'}, 'makehybrid', '-hfs', '-hfs-volume-name', $name, ($gConfig{'openfolder_bless'} ? ('-hfs-openfolder', $source) : ()), '-ov', $source, '-o', $hybridImage) != 0) { cleanupDie('hdiutil makehybrid failed'); } $uncompressedImage = $hybridImage; # $source is no longer needed and will be removed before anything # else can fail. splice in this form is the same as pop/push. splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $hybridImage);}); if(command($gConfig{'cmd_rm'}, '-rf', $source) != 0) { cleanupDie('rm -rf failed'); } if(!$gConfig{'partition_table'} && $gConfig{'recursive_access'}) { # Even if we do want to create disk images without partition tables, # it's impossible unless recursive_access is set. my($rootDevice, $partitionDevice, $partitionMountPoint); if(!(($rootDevice, $partitionDevice, $partitionMountPoint) = hdidMountImage($tempMount, '-readonly', $hybridImage))) { cleanupDie('hdid mount failed'); } push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_diskutil'}, 'eject', $rootDevice);}); my($udrwImage); $udrwImage = giveExtension($tempDir.'/udrw', '.dmg'); if(command($gConfig{'cmd_hdiutil'}, 'create', '-format', 'UDRW', '-ov', '-srcdevice', $partitionDevice, $udrwImage) != 0) { cleanupDie('hdiutil create failed'); } $uncompressedImage = $udrwImage; # Going to eject before anything else can fail. Get the eject off # the stack. pop(@gCleanup); # $hybridImage will be removed soon, but until then, it needs to # stay on the cleanup stack. It needs to wait until after # ejection. $udrwImage is staying around. Make it appear as # though it's been done before $hybridImage. # # splice in this form is the same as popping one element to # @tempCleanup and pushing the subroutine. my(@tempCleanup); @tempCleanup = splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $udrwImage);}); push(@gCleanup, @tempCleanup); if(command($gConfig{'cmd_diskutil'}, 'eject', $rootDevice) != 0) { cleanupDie('diskutil eject failed'); } # Pop unlink of $uncompressedImage pop(@gCleanup); if(commandInternal('unlink', $hybridImage) != 1) { cleanupDie('unlink hybridImage failed: '.$!); } } } else { # makehybrid is not available, fall back to making a UDRW and # converting to a compressed image. It ought to be possible to # create a compressed image directly, but those come out far too # large (journaling?) and need to be read-write to fix up the # volume icon anyway. Luckily, we can take advantage of a single # call back into this function. my($udrwImage); $udrwImage = giveExtension($tempDir.'/udrw', '.dmg'); diskImageMaker($source, $udrwImage, 'UDRW', $name, $tempDir, $tempMount, $baseName, $setRootIcon); # The call back into diskImageMaker already removed $source. $uncompressedImage = $udrwImage; } # The uncompressed disk image is now in its final form. Compress it. # Jaguar doesn't support hdiutil convert -ov, but it always allows # overwriting. # bzip2-compressed UDBZ images can only be created and mounted on 10.4 # and later. The bzip2-level imagekey is only effective when creating # images in 10.5. In 10.4, bzip2-level is harmlessly ignored, and the # default value of 1 is always used. if(command($gConfig{'cmd_hdiutil'}, 'convert', '-format', $format, ($format eq 'UDZO' ? ('-imagekey', 'zlib-level=9') : ()), ($format eq 'UDBZ' ? ('-imagekey', 'bzip2-level=9') : ()), (defined($gDarwinMajor) && $gDarwinMajor <= 6 ? () : ('-ov')), $uncompressedImage, '-o', $destination) != 0) { cleanupDie('hdiutil convert failed'); } # $uncompressedImage is going to be unlinked before anything else can # fail. splice in this form is the same as pop/push. splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $destination);}); if(commandInternal('unlink', $uncompressedImage) != 1) { cleanupDie('unlink uncompressedImage failed: '.$!); } # At this point, the only thing that the compressed block has added to # the cleanup stack is the removal of $destination. $source has already # been removed, and its cleanup entry has been removed as well. } elsif($format eq 'UDRW' || $format eq 'UDSP') { my(@extraArguments); if(!$gConfig{'partition_table'}) { @extraArguments = ('-layout', 'NONE'); } if($gConfig{'create_directly'}) { # Use -fs HFS+ to suppress the journal. if(command($gConfig{'cmd_hdiutil'}, 'create', '-format', $format, @extraArguments, '-fs', 'HFS+', '-volname', $name, '-ov', '-srcfolder', $source, $destination) != 0) { cleanupDie('hdiutil create failed'); } # $source is no longer needed and will be removed before anything # else can fail. splice in this form is the same as pop/push. splice(@gCleanup, -1, 1, sub {commandInternalVerbosity(0, 'unlink', $destination);}); if(command($gConfig{'cmd_rm'}, '-rf', $source) != 0) { cleanupDie('rm -rf failed'); } } else { # hdiutil create does not support -srcfolder or -srcdevice, it only # knows how to create blank images. Figure out how large an image # is needed, create it, and fill it. This is needed for Jaguar. # Use native block size for hdiutil create -sectors. delete $ENV{'BLOCKSIZE'}; my(@duOutput, $ignore, $sizeBlocks, $sizeOverhead, $sizeTotal, $type); if(!(@output = commandOutput($gConfig{'cmd_du'}, '-s', $tempRoot)) || $? != 0) { cleanupDie('du failed'); } ($sizeBlocks, $ignore) = split(' ', $output[0], 2); # The filesystem itself takes up 152 blocks of its own blocks for the # filesystem up to 8192 blocks, plus 64 blocks for every additional # 4096 blocks or portion thereof. $sizeOverhead = 152 + 64 * POSIX::ceil( (($sizeBlocks - 8192) > 0) ? (($sizeBlocks - 8192) / (4096 - 64)) : 0); # The number of blocks must be divisible by 8. my($mod); if($mod = ($sizeOverhead % 8)) { $sizeOverhead += 8 - $mod; } # sectors is taken as the size of a disk, not a filesystem, so the # partition table eats into it. if($gConfig{'partition_table'}) { $sizeOverhead += 80; } # That was hard. Leave some breathing room anyway. Use 1024 sectors # (512kB). These read-write images wouldn't be useful if they didn't # have at least a little free space. $sizeTotal = $sizeBlocks + $sizeOverhead + 1024; # Minimum sizes - these numbers are larger on Jaguar than on later # systems. Just use the Jaguar numbers, since it's unlikely to wind # up here on any other release. if($gConfig{'partition_table'} && $sizeTotal < 8272) { $sizeTotal = 8272; } if(!$gConfig{'partition_table'} && $sizeTotal < 8192) { $sizeTotal = 8192; } # hdiutil create without -srcfolder or -srcdevice will not accept # -format. It uses -type. Fortunately, the two supported formats # here map directly to the only two supported types. if ($format eq 'UDSP') { $type = 'SPARSE'; } else { $type = 'UDIF'; } if(command($gConfig{'cmd_hdiutil'}, 'create', '-type', $type, @extraArguments, '-fs', 'HFS+', '-volname', $name, '-ov', '-sectors', $sizeTotal, $destination) != 0) { cleanupDie('hdiutil create failed'); } push(@gCleanup, sub {commandInternalVerbosity(0, 'unlink', $destination);}); # The rsync will occur shortly. } my($mounted, $rootDevice, $partitionDevice, $partitionMountPoint); $mounted=0; if(!$gConfig{'create_directly'} || $gConfig{'openfolder_bless'} || $setRootIcon) { # The disk image only needs to be mounted if: # create_directly is false, because the content needs to be copied # openfolder_bless is true, because bless -openfolder needs to run # setRootIcon is true, because the root needs its attributes set. if(!(($rootDevice, $partitionDevice, $partitionMountPoint) = hdidMountImage($tempMount, $destination))) { cleanupDie('hdid mount failed'); } $mounted=1; push(@gCleanup, sub {commandVerbosity(0, $gConfig{'cmd_diskutil'}, 'eject', $rootDevice);}); } if(!$gConfig{'create_directly'}) { # Couldn't create and copy directly in one fell swoop. Now that # the volume is mounted, copy the files. --copy-unsafe-links is # unnecessary since it was used to copy everything to the staging # area. There can be no more unsafe links. if(command($gConfig{'cmd_rsync'}, '-aC', '--include', '*.so', $source.'/',$partitionMountPoint) != 0) { cleanupDie('rsync to new volume failed'); } # We need to get the rm -rf of $source off the stack, because it's # being cleaned up here. There are two items now on top of it: # removing the target image and, above that, ejecting it. Splice it # out. my(@tempCleanup); @tempCleanup = splice(@gCleanup, -2); # The next splice is the same as popping once and pushing @tempCleanup. splice(@gCleanup, -1, 1, @tempCleanup); if(command($gConfig{'cmd_rm'}, '-rf', $source) != 0) { cleanupDie('rm -rf failed'); } } if($gConfig{'openfolder_bless'}) { # On Tiger, the bless docs say to use --openfolder, but only # --openfolder is accepted on Panther. Tiger takes it with a single # dash too. Jaguar is out of luck. if(command($gConfig{'cmd_bless'}, '-openfolder', $partitionMountPoint) != 0) { cleanupDie('bless failed'); } } setAttributes($partitionMountPoint, @attributes); if($setRootIcon) { # When "hdiutil create -srcfolder" is used, the root folder's # attributes are not copied to the new volume. Fix up. if(command($gConfig{'cmd_SetFile'}, '-a', 'C', $partitionMountPoint) != 0) { cleanupDie('SetFile failed'); } } if($mounted) { # Pop diskutil eject pop(@gCleanup); if(command($gConfig{'cmd_diskutil'}, 'eject', $rootDevice) != 0) { cleanupDie('diskutil eject failed'); } } # End of UDRW/UDSP section. At this point, $source has been removed # and its cleanup entry has been removed from the stack. } else { cleanupDie('unrecognized format'); print STDERR ($0.": unrecognized format\n"); exit(1); } } # giveExtension($file, $extension) # # If $file does not end in $extension, $extension is added. The new # filename is returned. sub giveExtension($$) { my($extension, $file); ($file, $extension) = @_; if(substr($file, -length($extension)) ne $extension) { return $file.$extension; } return $file; } # hdidMountImage($mountPoint, @arguments) # # Runs the hdid command with arguments specified by @arguments. # @arguments may be a single-element array containing the name of the # disk image to mount. Returns a three-element array, with elements # corresponding to: # - The root device of the mounted image, suitable for ejection # - The device corresponding to the mounted partition # - The mounted partition's mount point # # If running on a system that supports easy mounting at points outside # of the default /Volumes with hdiutil attach, it is used instead of hdid, # and $mountPoint is used as the mount point. # # The root device will differ from the partition device when the disk # image contains a partition table, otherwise, they will be identical. # # If hdid fails, undef is returned. sub hdidMountImage($@) { my(@arguments, @command, $mountPoint); ($mountPoint, @arguments) = @_; my(@output); if($gConfig{'hdiutil_mountpoint'}) { @command=($gConfig{'cmd_hdiutil'}, 'attach', @arguments, '-mountpoint', $mountPoint); } else { @command=($gConfig{'cmd_hdid'}, @arguments); } if(!(@output = commandOutput(@command)) || $? != 0) { return undef; } if($gDryRun) { return('/dev/diskX','/dev/diskXsY','/Volumes/'.$volumeName); } my($line, $restOfLine, $rootDevice); foreach $line (@output) { my($device, $mountpoint); if($line !~ /^\/dev\//) { # Consider only lines that correspond to /dev entries next; } ($device, $restOfLine) = split(' ', $line, 2); if(!defined($rootDevice) || $rootDevice eq '') { # If this is the first device seen, it's the root device to be # used for ejection. Keep it. $rootDevice = $device; } if($restOfLine =~ /(\/.*)/) { # The first partition with a mount point is the interesting one. It's # usually Apple_HFS and usually the last one in the list, but beware of # the possibility of other filesystem types and the Apple_Free partition. # If the disk image contains no partition table, the partition will not # have a type, so look for the mount point by looking for a slash. $mountpoint = $1; return($rootDevice, $device, $mountpoint); } } # No mount point? This is bad. If there's a root device, eject it. if(defined($rootDevice) && $rootDevice ne '') { # Failing anyway, so don't care about failure commandVerbosity(0, $gConfig{'cmd_diskutil'}, 'eject', $rootDevice); } return undef; } # isFormatReadOnly($format) # # Returns true if $format corresponds to a read-only disk image format. # Returns false otherwise. sub isFormatReadOnly($) { my($format); ($format) = @_; return $format eq 'UDZO' || $format eq 'UDBZ' || $format eq 'UDRO'; } # licenseMaker($text, $resource) # # Takes a plain text file at path $text and creates a license agreement # resource containing the text at path $license. English-only, and # no special formatting. This is the bare-bones stuff. For more # intricate license agreements, create your own resource. # # ftp://ftp.apple.com/developer/Development_Kits/SLAs_for_UDIFs_1.0.dmg sub licenseMaker($$) { my($resource, $text); ($text, $resource) = @_; if(!sysopen(*TEXT, $text, O_RDONLY)) { print STDERR ($0.': licenseMaker: sysopen text: '.$!."\n"); return 0; } if(!sysopen(*RESOURCE, $resource, O_WRONLY|O_CREAT|O_EXCL)) { print STDERR ($0.': licenseMaker: sysopen resource: '.$!."\n"); return 0; } print RESOURCE << '__EOT__'; // See /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Script.h for language IDs. data 'LPic' (5000) { // Default language ID, 0 = English $"0000" // Number of entries in list $"0001" // Entry 1 // Language ID, 0 = English $"0000" // Resource ID, 0 = STR#/TEXT/styl 5000 $"0000" // Multibyte language, 0 = no $"0000" }; resource 'STR#' (5000, "English") { { // Language (unused?) = English "English", // Agree "Agree", // Disagree "Disagree", __EOT__ # This stuff needs double-quotes for interpolations to work. print RESOURCE (" // Print, ellipsis is 0xC9\n"); print RESOURCE (" \"Print\xc9\",\n"); print RESOURCE (" // Save As, ellipsis is 0xC9\n"); print RESOURCE (" \"Save As\xc9\",\n"); print RESOURCE (' // Descriptive text, curly quotes are 0xD2 and 0xD3'. "\n"); print RESOURCE (' "If you agree to the terms of this license '. "agreement, click \xd2Agree\xd3 to access the software. If you ". "do not agree, press \xd2Disagree.\xd3\"\n"); print RESOURCE << '__EOT__'; }; }; // Beware of 1024(?) byte (character?) line length limitation. Split up long // lines. // If straight quotes are used ("), remember to escape them (\"). // Newline is \n, to leave a blank line, use two of them. // 0xD2 and 0xD3 are curly double-quotes ("), 0xD4 and 0xD5 are curly // single quotes ('), 0xD5 is also the apostrophe. data 'TEXT' (5000, "English") { __EOT__ while(!eof(*TEXT)) { my($line); chop($line = ); while(defined($line)) { my($chunk); # Rez doesn't care for lines longer than (1024?) characters. Split # at less than half of that limit, in case everything needs to be # backwhacked. if(length($line)>500) { $chunk = substr($line, 0, 500); $line = substr($line, 500); } else { $chunk = $line; $line = undef; } if(length($chunk) > 0) { # Unsafe characters are the double-quote (") and backslash (\), escape # them with backslashes. $chunk =~ s/(["\\])/\\$1/g; print RESOURCE ' "'.$chunk.'"'."\n"; } } print RESOURCE ' "\n"'."\n"; } close(*TEXT); print RESOURCE << '__EOT__'; }; data 'styl' (5000, "English") { // Number of styles following = 1 $"0001" // Style 1. This is used to display the first two lines in bold text. // Start character = 0 $"0000 0000" // Height = 16 $"0010" // Ascent = 12 $"000C" // Font family = 1024 (Lucida Grande) $"0400" // Style bitfield, 0x1=bold 0x2=italic 0x4=underline 0x8=outline // 0x10=shadow 0x20=condensed 0x40=extended $"00" // Style, unused? $"02" // Size = 12 point $"000C" // Color, RGB $"0000 0000 0000" }; __EOT__ close(*RESOURCE); return 1; } # pathSplit($pathname) # # Splits $pathname into an array of path components. sub pathSplit($) { my($pathname); ($pathname) = @_; return split(/\//, $pathname); } # setAttributes($root, @attributeList) # # @attributeList is an array, each element of which must be in the form # :. is a list of attributes, per SetFile. is a file # which is taken as relative to $root (even if it appears as an absolute # path.) SetFile is called to set the attributes on each file in # @attributeList. sub setAttributes($@) { my(@attributes, $root); ($root, @attributes) = @_; my($attribute); foreach $attribute (@attributes) { my($attrList, $file, @fileList, @fixedFileList); ($attrList, @fileList) = split(/:/, $attribute); if(!defined($attrList) || !@fileList) { cleanupDie('--attribute requires :'); } @fixedFileList=(); foreach $file (@fileList) { if($file =~ /^\//) { push(@fixedFileList, $root.$file); } else { push(@fixedFileList, $root.'/'.$file); } } if(command($gConfig{'cmd_SetFile'}, '-a', $attrList, @fixedFileList)) { cleanupDie('SetFile failed to set attributes'); } } return; } sub trapSignal($) { my($signalName); ($signalName) = @_; cleanupDie('exiting on SIG'.$signalName); } sub usage() { print STDERR ( "usage: pkg-dmg --source \n". " --target \n". " [--format ] (default: UDZO)\n". " [--volname ] (default: same name as source)\n". " [--tempdir ] (default: same dir as target)\n". " [--mkdir ] (make directory in image)\n". " [--copy [:]] (extra files to add)\n". " [--symlink [:]] (extra symlinks to add)\n". " [--license ] (plain text license agreement)\n". " [--resource ] (flat .r files to merge)\n". " [--icon ] (volume icon)\n". " [--attribute :] (set file attributes)\n". " [--idme] (make Internet-enabled image)\n". " [--sourcefile] (treat --source as a file)\n". " [--verbosity ] (0, 1, 2; default=2)\n". " [--dry-run] (print what would be done)\n"); return; } x2goclient-4.0.5.1/portable/manifest.u3i0000644000000000000000000000112512675050177014674 0ustar x2goclient.ico Portable X2Go Client for Windows x2go Portable X2Go Client for Windows 3 x2goclient-4.0.5.1/portable/stopu3client.cpp0000644000000000000000000000347112675050177015612 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 * * 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, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ /* this is helper program to stop running in "portable" mode X2Go Client before U3 USB-drive will be unmounted */ #include int main() { HWND wid=FindWindowEx(0,0,0,"X2Go Client - U3"); while(wid) { HWND prevWid=wid; wid=FindWindowEx(0,wid,0,"X2Go Client - U3"); PostMessage(prevWid,WM_CLOSE,0,0); } return 0; } x2goclient-4.0.5.1/provider/etc/x2goplugin-apache.conf0000644000000000000000000000057012675050177017430 0ustar Alias /x2goplugin.html /usr/share/x2go/plugin/x2goplugin.html # Apache 2.4 Require local # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 x2goclient-4.0.5.1/provider/share/x2goplugin.html0000644000000000000000000000151512675050177016557 0ustar X2Go Application Service
x2goclient-4.0.5.1/README.i18n0000644000000000000000000000563112675050177012300 0ustar Translating X2Go Client ====================== Translating with Qt-Linguist ------------------------ X2Go Client uses Quick Translation mechanism (.qm, .ts files). The translation files can be found in the main folder of X2Go Client of this source project. New team member --- new language for X2Go Client ----------------------------------------------- If you are a new member in the x2go-i18n team, the first we say is: WELCOME!!! and THANKS!!! for the time you give to the X2Go project. And, if you are new to the team and language files for the language you want to feel responsible for do not yet exist, please subscribe to this mailing list first: http://lists.x2go.org/listinfo/x2go-i18n Once you are subscribed, send an email to x2go-i18n@lists.x2go.org that explains your willingness to translate this-and-that language. The developers will then provide a language file for you in the above mentioned /po folder. Git cloning ----------- Next thing to do is to obtained the latest sources from X2Go Git. $ # git needs to be installed, on Debian/Ubuntu this is $ aptitude install git # <----for debian $ sudo apt-get install git # <----for ubuntu $ # then checkout the code $ git clone git://code.x2go.org/x2goclient.git In your current working directory there should now be a subfolder named ,,x2goclient''. Creating Your Language File --------------------------- First, copy the file x2goclient_de.ts, for instance via the terminal. You can do this by running the following commands: 1. cd x2goclient/res/i18n 2. cp x2goclient_de.ts "x2goclient_da.ts ". Now, the file is ready for editing to your desired language. Editing Your Language File -------------------------- The tool needed for editing qt translation files is ,,linguist-qt4'' $ open Ubuntu Software Center, search for ,,Qt 4 Linguist'' and install it from there # <--for ubuntu Now open your language file in /x2goclient/res/i18n/x2goclient_.ts and edit it with linguist-qt4. NOTE: Make sure you translate all boldly marked items: non-translated as well as fuzzy (i.e., inaccurate) items. Sending in the Translation File ------------------------------- When done, please send the complete translation file /x2goclient/res/i18n/x2goclient_.ts to x2go-i18n@lists.x2go.org and remove your working copy of X2Go Client from your system (or read how to use Git and keep the folder.) Next time... ------------ You will get informed on x2go-i18n if a translation update is necessary. So check your mails there regularly. For updating a translation, keep the X2Go Client source project folder and read more about Git by yourself. Alternatively, just remove the folder (once you have sent in the translation file) and start with this documentation all over again. THANKS AGAIN FOR YOUR TIME!!! light+love, Mike Gabriel x2goclient-4.0.5.1/README.OpenSSL-Exception0000644000000000000000000000127612675050177014741 0ustar In addition, as a special exception, the copyright holders give permission to link the code of portions of this program with the OpenSSL library under certain conditions as described in each individual source file, and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL. If you modify file(s) with this exception, you may extend this exception to your version of the file(s), but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. If you delete this exception statement from all source files in the program, then also delete it here. x2goclient-4.0.5.1/res/changelog.rcc0000644000000000000000000000011612675050177014044 0ustar txt/changelog x2goclient-4.0.5.1/res/git.rcc0000644000000000000000000000011512675050177012677 0ustar txt/git-info x2goclient-4.0.5.1/res/i18n/qt_da.qm0000644000000000000000000035066212675050177013650 0ustar +R@gA߽BCgDE%FzGH#IvP QdRSdTUVwWX Ys]E;$;9;J ;f;ME(O$IO4)W}ELmEp3(5+;M+;G%+;M+O!+OF1E@FH4qHYaWHIbJJJ\KLDiLPSHRe,Zr([`[`v\}_*B_51NEPTEGW;$bZ$Y5,yy[p%Pf!9bMEFExA%%Y:֍#֍֍֍0$0IU0000yC55 DL, D`I+",Mb,3=>H9d<pF55AJ#Q%UT%UTD(Ŏ^+*4-ct>t-ctKA25va?tx"CoC0CeD"D1nM TSžaR?UOeWfPl tl=voR7Nornw^x |{yHcGdWT22{W{'Zb.MRAiXP dvyiur { Yd\ ĭ"l)6R-q/=N(1$1$@5~m>< ?2?N|*MkmNky2UiW~]`B`jtd{lg9lyzl}doi`3vty?%vty1e"QYD)T6F66y^qId%+ OyRsTި=~.XN+':alEEmmQ{R=8ANAoy,[yLCR7CR5n5B'f_ mMMymEkEuw#w I ;%/!eV]&k)){*/e);j;>ByFEOQZfQ`\c/!`cփ#@fg&4jC]q82tu.*u(}ka1f~ny $.$Ieb(*ʁhrH^KR֊=, nJ.,ZfZ;yA8&H.X/ZIxS:Mu-R>YMl!YMvA^h^*i0osscwlrxaۊ<N8]]Y\I6I#I$7IHII2I3IxPIY #i ]y ;uI!! !E!! uDp3uDzDxoL,H,, F,,4Y,P]O״ɘe5$ 4fRfRZN[`dc.SePqsVIV^fRTi4 d8 ` 'ycS $%C+"&~d)2C+,Q?"\?>ug{KNLM>RV|e]I]gk%y^(l{y5t&5tkF\&:`f!G%jUص=ǥ{ '+'+3 +M`_)t{yt;gxAgr19\gJ(lsgr*Ͼ%:U%sC-5$C^{/ƨƨ5X˾ҝzi:է?4Z>zQߺڠOfgfI^Y!؁ $~bZ~b`zoME!+uxh+3//04~h6 'c? 2vADGk_Gb_}LAUM:Or+PѧHQy[Sn U UUUD:UTHZZZZK[ [x]k*Z^n_peipizkQ=oNTy;a{{2}u%>}w}w+}wk}sqr8Bvhtټt#..+D3PPiUDYt2tvtMt?_ $+t FʢCʢ{ƴdDdd8dSd_0j$59Gэ:+NS5UVUJdBhWwǞ  Y 'V+|,Dhg/2NO6q?;CU]^DJ0#KKl]U|\arCt|(^l|h|}wZر}$r}$*}$jϗZfDcq`K<If+[·>··J׳= ߊ/xEj Hum%5_T<i~pi9%qqwZ#%'.5kE!==Le?9?CtIcP"V%sV%tXU Y`_bD(bGfdWgA!hIdli$x1 )z*2|QRp d́UzNc.}B@IrsX\xmk^]Xeon"&XbQ†5tiaCKdʴ5 ʴ5yʶ~^ Ԅ~}۔#D}d.F5(F5AYptINIYAs D, }$N qet ڤ ڤ>H ڥ@ d1) E Eɇ Ac Ac\ - 35 35I  >=  V nU [ Y+ K& T9 팤 %'S 9 "- =@ qg!  Dc  }M oO )S */ .> 7u ; =j B J"R K2r RۮP Ty . T^f Uj4 ] ]J[ ` ` ` `; b c( cE d4+ e eZB e{ f1m f* g5U gn k, rD"#R t $ %p6 , ,TR 7 M t\D `~ n, tv0 ˔i P2 Pw[ n w 68O >> :; f ( f V 4 .hW s sXv AArd 9x H 9A  m, #-t$ #-tG 0N7 A6D CUh E9 Id L[ L2u Lw Mc\K S V ]$B f)r f)V_ f= io> m`* wN yrE o H HT 5 $Wm .@) " i n & P nc % J> JX  t. kNv Ӈ& M $m N>x ̺i -Dj .2 ۷a r: k+ km U){ . <) ?z c K 0$o h ׄ z+i  o  za Ic %h $ xH! ] .;0 7Fq >r >t >uQ >r >} > > >{ ?t|V DT I6 I: P@ : RV\ RVvn RV S.3 SG* S Yz] Y [U1 hۮc? j7oSx p;v B " TA3 T T* T  & Ck Ц c S )d )dHi T T .A . . . .l . N % 1 a aE y)G ҂  %e ueh f | " 9X tt a: :b| K ʜ9 #= (I$+z +>< 0EB 64, ;ɾP FgT K95 Pt Pt{ feJ feaP gx iFC iZ id jӮ m9] n u% u9w v& v{ w w*g wjT w}2 w}* w}j |[ l v J ^ } RV Pup  xN UR ɰey  XG &8 Q R D7 [ +I t5 t5z 1 I {o ) *PRq w T4]y ogT5_*2*x/E3/EV/EBI_|fOOXRuUx[ }Da.Igc-.nyGevɅy$~~r>Ug44WRS^hǗi:LB1YUvEr9ݖ-[yrt  WlD"# &"#<$U\%4K%4_-vS0i)#0#1c81cC2wT"D+]HJd}K0L$.c5$c5l"g3FiCmhpՒyC,p{~a"j6$bp&&`[X/>b^1XMNRp Epl"~Ur4nrNky56BPt28>XM<dwUVi Luk fane Close Tab CloseButton Om %1About %1MAC_APPLICATION_MENUSkjul %1Hide %1MAC_APPLICATION_MENUSkjul andre Hide OthersMAC_APPLICATION_MENUIndstillinger &Preferences...MAC_APPLICATION_MENUSlut %1Quit %1MAC_APPLICATION_MENUTjenesterServicesMAC_APPLICATION_MENUVis alleShow AllMAC_APPLICATION_MENUTilgngelighed AccessibilityPhonon::Kommunikation CommunicationPhonon::SpilGamesPhonon:: MusikMusicPhonon::Meddelelser NotificationsPhonon::VideoPhonon::<html>Skifter til audio-playback-enheden, <b>%1</b><br/>der lige er blevet tilgngelig og har en hjere prference.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput<html>Audio-playback-enheden<b>%1</b> virker ikke.<br/>Falder tilbage til <b>%2</b>.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput6G tilbage til enheden '%1'Revert back to device '%1'Phonon::AudioOutputAdvarsel: Det ser ikke ud til, at base GStreamer plugins er installeret. Al audio- og videosupport er deaktiveret~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::BackendAdvarsel: Det ser ikke ud til, at gstreamer0.10-plugins-good pakken er installeret. Nogle videofunktioner er deaktiveret.Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendDer mangler et codec. Flgende codecs skal installeres for at afspille dette indhold: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObject<Kunne ikke afkode mediekilden.Could not decode media source.Phonon::Gstreamer::MediaObjectDKunne ikke lokalisere mediekilden.Could not locate media source.Phonon::Gstreamer::MediaObjectnKunne ikke bne lydenheden. Enheden er allerede i brug.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObject8Kunne ikke bne mediekilden.Could not open media source.Phonon::Gstreamer::MediaObjectUgyldig kilde.Invalid source type.Phonon::Gstreamer::MediaObject"Tilladelse ngtetPermission denied Phonon::MMF Volume: %1%Phonon::VolumeSlider,%1, %2 ikke definerede%1, %2 not definedQ3Accel4Tvetydig %1 ikke behandletAmbiguous %1 not handledQ3AccelSletDelete Q3DataTable FalskFalse Q3DataTable IndstInsert Q3DataTable SandtTrue Q3DataTableOpdaterUpdate Q3DataTablej%1 Filen blev ikke fundet. Kontrollr sti og filnavn.+%1 File not found. Check path and filename. Q3FileDialog &Slet&Delete Q3FileDialog&Nej&No Q3FileDialog&OK&OK Q3FileDialog&bn&Open Q3FileDialog &Omdb&Rename Q3FileDialog&Gem&Save Q3FileDialog&Usorteret &Unsorted Q3FileDialog&Ja&Yes Q3FileDialogf<qt>Er du sikker p, at du vil slette %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogAlle filer (*) All Files (*) Q3FileDialog Alle filer (*.*)All Files (*.*) Q3FileDialogAttributter Attributes Q3FileDialogTilbageBack Q3FileDialogAnnullerCancel Q3FileDialog0Kopir eller flyt en filCopy or Move a File Q3FileDialogOpret ny folderCreate New Folder Q3FileDialogDatoDate Q3FileDialogSlet %1 Delete %1 Q3FileDialogDetaljevisning Detail View Q3FileDialogKatalogDir Q3FileDialogKataloger Directories Q3FileDialogKatalog: Directory: Q3FileDialogFejlError Q3FileDialogFilFile Q3FileDialogFil&navn: File &name: Q3FileDialogFil&type: File &type: Q3FileDialogFind katalogFind Directory Q3FileDialogUtilgngelig Inaccessible Q3FileDialogListevisning List View Q3FileDialogKig &i: Look &in: Q3FileDialogNavnName Q3FileDialogNy folder New Folder Q3FileDialogNy folder %1 New Folder %1 Q3FileDialogNy folder 1 New Folder 1 Q3FileDialogEn mappe opOne directory up Q3FileDialogbnOpen Q3FileDialogbnOpen  Q3FileDialogVis filindholdPreview File Contents Q3FileDialog$Vis filinformationPreview File Info Q3FileDialogGen&indlsR&eload Q3FileDialogSkrivebeskyttet Read-only Q3FileDialogLs-skriv Read-write Q3FileDialogLs: %1Read: %1 Q3FileDialogGem somSave As Q3FileDialogVlg et katalogSelect a Directory Q3FileDialog$Vis s&kjulte filerShow &hidden files Q3FileDialogStrrelseSize Q3FileDialog SortrSort Q3FileDialog$Sortr efter &dato Sort by &Date Q3FileDialog$Sortr efter n&avn Sort by &Name Q3FileDialog.Sortr efter s&trrelse Sort by &Size Q3FileDialogSpecielSpecial Q3FileDialog&Symlink til katalogSymlink to Directory Q3FileDialogSymlink til FilSymlink to File Q3FileDialog&Symlink til SpecielSymlink to Special Q3FileDialogType Q3FileDialogWrite-only Write-only Q3FileDialogSkriv: %1 Write: %1 Q3FileDialogkataloget the directory Q3FileDialog filenthe file Q3FileDialogsymlinket the symlink Q3FileDialog:Kunne ikke oprette katalog %1Could not create directory %1 Q3LocalFs$Kunne ikke bne %1Could not open %1 Q3LocalFs4Kunne ikke lse katalog %1Could not read directory %1 Q3LocalFsLKunne ikke fjerne fil eller katalog %1%Could not remove file or directory %1 Q3LocalFs4Kunne ikke omdbe %1 to %2Could not rename %1 to %2 Q3LocalFs(Kunne ikke skrive %1Could not write %1 Q3LocalFsTilpas... Customize... Q3MainWindowLinie opLine up Q3MainWindow8Brugeren stoppede handlingenOperation stopped by the userQ3NetworkProtocolAnnullerCancelQ3ProgressDialog UdfrApply Q3TabDialogAnnullerCancel Q3TabDialogStandarderDefaults Q3TabDialog HjlpHelp Q3TabDialogOK Q3TabDialogK&opir&Copy Q3TextEdit&St ind&Paste Q3TextEdit&Gendan&Redo Q3TextEdit&Fortryd&Undo Q3TextEditRydClear Q3TextEdit &KlipCu&t Q3TextEditMarkr alt Select All Q3TextEditLukClose Q3TitleBarLukker vinduetCloses the window Q3TitleBar`Indeholder kommandoer til indstilling af vinduet*Contains commands to manipulate the window Q3TitleBarViser vinduets navn og indeholder kontroller til indstilling af vinduetFDisplays the name of the window and contains controls to manipulate it Q3TitleBar4Gr vinduet til fuld skrmMakes the window full screen Q3TitleBarMaksimrMaximize Q3TitleBarMinimerMinimize Q3TitleBar&Flytter vinduet vkMoves the window out of the way Q3TitleBar`Stter et maksimeret vindue til normal strrelse&Puts a maximized window back to normal Q3TitleBarGendan ned Restore down Q3TitleBarGendan op Restore up Q3TitleBarSystem Q3TitleBarMere...More... Q3ToolBar(ukendt) (unknown) Q3UrlOperatorProtokollen '%1' understtter ikke kopiering eller flytning af filer eller katalogerIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperator|Protokollen '%1' understtter ikke oprettelse af nye kataloger;The protocol `%1' does not support creating new directories Q3UrlOperatorhProtokollen '%1' understtter ikke hentning af filer0The protocol `%1' does not support getting files Q3UrlOperatortProtokollen '%1' understtter ikke opremsning af kataloger6The protocol `%1' does not support listing directories Q3UrlOperatordProtokollen '%1' understtter ikke upload af filer0The protocol `%1' does not support putting files Q3UrlOperatorProtokollen '%1' understtter ikke, at filer eller kataloger fjernes@The protocol `%1' does not support removing files or directories Q3UrlOperatorProtokollen '%1' understtter ikke, at filer eller kataloger omdbes@The protocol `%1' does not support renaming files or directories Q3UrlOperatorDProtokollen '%1' understttes ikke"The protocol `%1' is not supported Q3UrlOperator&Annuller&CancelQ3Wizard &Udfr&FinishQ3Wizard &Hjlp&HelpQ3Wizard&Nste >&Next >Q3Wizard< &Tilbage< &BackQ3Wizard$Forbindelse afvistConnection refusedQAbstractSocket,Forbindelsen timed outConnection timed outQAbstractSocket*Host blev ikke fundetHost not foundQAbstractSocket<Netvrket er ikke tilgngeligtNetwork unreachableQAbstractSocketDSocket-operation ikke understttet$Operation on socket is not supportedQAbstractSocket*Socket ikke forbundetSocket is not connectedQAbstractSocket4Socket-operation timed outSocket operation timed outQAbstractSocket&Vlg alle &Select AllQAbstractSpinBox&Trin op&Step upQAbstractSpinBoxTrin &ned Step &downQAbstractSpinBoxTryk pPressQAccessibleButtonFjern markeringUncheckQAccessibleButtonAktivrActivate QApplicationBAktiverer programmets hovedvindue#Activates the program's main window QApplicationbEksekverbar '%1' krver Qt %2, ikke fundet Qt %3.,Executable '%1' requires Qt %2, found Qt %3. QApplication8Inkompatibel Qt Library fejlIncompatible Qt Library Error QApplicationQT_LAYOUT_DIRECTION QApplication&Annuller&Cancel QAxSelectCOM &Objekt: COM &Object: QAxSelectOK QAxSelect(Vlg ActiveX-kontrolSelect ActiveX Control QAxSelectKryds afCheck QCheckBoxSl til/fraToggle QCheckBoxFjern markeringUncheck QCheckBox(&Fj til egne farver&Add to Custom Colors QColorDialog&Basisfarver &Basic colors QColorDialog&Egne farver&Custom colors QColorDialog &Grn:&Green: QColorDialog &Rd:&Red: QColorDialog &Mt:&Sat: QColorDialog &Vr:&Val: QColorDialogAl&fa-kanal:A&lpha channel: QColorDialog Bl&:Bl&ue: QColorDialog Ton&e:Hu&e: QColorDialogVlg farve Select Color QColorDialogLukClose QComboBox FalskFalse QComboBoxbnOpen QComboBox SandtTrue QComboBox&%1: Findes allerede%1: already existsQCoreApplication%1: Findes ikke%1: does not existQCoreApplication(%1: ftok mislykkedes%1: ftok failedQCoreApplication %1: ngle er tom%1: key is emptyQCoreApplication2%1: Ikke flere ressourcer%1: out of resourcesQCoreApplication*%1: Tilladelse ngtet%1: permission deniedQCoreApplication2%1: kunne ikke lave ngle%1: unable to make keyQCoreApplicationBKunne ikke gennemfre transaktionUnable to commit transaction QDB2Driver8Kunne ikke skabe forbindelseUnable to connect QDB2DriverHKunne ikke tilbagetrkke transaktionUnable to rollback transaction QDB2Driver<Kunne ikke aktivere autocommitUnable to set autocommit QDB2Driver2Kunne ikke binde variabelUnable to bind variable QDB2Result6Kunne ikke udfre statementUnable to execute statement QDB2Result.Kunne ikke hente frsteUnable to fetch first QDB2Result,Kunne ikke hente nsteUnable to fetch next QDB2Result0Kunne ikke hente post %1Unable to fetch record %1 QDB2Result6Kunne ikke forberede udsagnUnable to prepare statement QDB2ResultAM QDateTimeEditPM QDateTimeEditam QDateTimeEditpm QDateTimeEditQDialQDial SliderHandleQDialSpeedometer SpeedoMeterQDial UdfrtDoneQDialogHvad er dette? What's This?QDialog&Annuller&CancelQDialogButtonBox&Luk&CloseQDialogButtonBox&Nej&NoQDialogButtonBox&OKQDialogButtonBox&Gem&SaveQDialogButtonBox&Ja&YesQDialogButtonBox AfbrydAbortQDialogButtonBox UdfrApplyQDialogButtonBoxAnnullerCancelQDialogButtonBoxLukCloseQDialogButtonBox"Luk uden at gemmeClose without SavingQDialogButtonBox KassrDiscardQDialogButtonBoxGem ikke Don't SaveQDialogButtonBox HjlpHelpQDialogButtonBoxIgnorerIgnoreQDialogButtonBoxNe&j til alle N&o to AllQDialogButtonBoxOKQDialogButtonBoxbnOpenQDialogButtonBoxNulstilResetQDialogButtonBox,Gendan standardvrdierRestore DefaultsQDialogButtonBoxPrv igenRetryQDialogButtonBoxGemSaveQDialogButtonBoxGem alleSave AllQDialogButtonBoxJa til &alle Yes to &AllQDialogButtonBoxndringsdato Date Modified QDirModelTypeKind QDirModelNavnName QDirModelStrrelseSize QDirModelType QDirModelLukClose QDockWidgetLstDock QDockWidgetFlydendeFloat QDockWidget MindreLessQDoubleSpinBoxMereMoreQDoubleSpinBox&OK QErrorMessage,&Vis denne besked igen&Show this message again QErrorMessageDebug-besked:Debug Message: QErrorMessageFatal fejl: Fatal Error: QErrorMessageAdvarsel:Warning: QErrorMessage@Kunne ikke oprette %1 til outputCannot create %1 for outputQFile4Kan ikke bne %1 til inputCannot open %1 for inputQFile0Kan ikke bne til outputCannot open for outputQFile0Kan ikke fjerne kildefilCannot remove source fileQFile,Destinationsfil findesDestination file existsQFile,Kunne ikke skrive blokFailure to write blockQFile%1 Katalog kunne ikke findes. Kontrollr, at det rigtige katalognavn er indtastet.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Filen kunne ikke findes. Kontrollr, at det rigtige filnavn er indtastet.A%1 File not found. Please verify the correct file name was given. QFileDialog\%1 findes allerede. nsker du at erstatte den?-%1 already exists. Do you want to replace it? QFileDialog &Vlg&Choose QFileDialog &Slet&Delete QFileDialog&Ny folder &New Folder QFileDialog&bn&Open QFileDialog &Omdb&Rename QFileDialog&Gem&Save QFileDialogn'%1' er skrivebeskyttet. nsker du alligevel at slette?9'%1' is write protected. Do you want to delete it anyway? QFileDialogAlle filer (*) All Files (*) QFileDialog Alle filer (*.*)All Files (*.*) QFileDialogLEr du sikker p, at '%1' skal slettes?!Are sure you want to delete '%1'? QFileDialogTilbageBack QFileDialog8Kunne ikke slette kataloget.Could not delete directory. QFileDialogOpret ny folderCreate New Folder QFileDialogDetaljevisning Detail View QFileDialogKataloger Directories QFileDialogKatalog: Directory: QFileDialogDrevDrive QFileDialogFilFile QFileDialog&Filnavn: File &name: QFileDialogFiler af typen:Files of type: QFileDialogFind katalogFind Directory QFileDialogFremForward QFileDialogListevisning List View QFileDialog Sg i:Look in: QFileDialogMin computer My Computer QFileDialogNy folder New Folder QFileDialogbnOpen QFileDialog(Ovenliggende katalogParent Directory QFileDialogAktuelle steder Recent Places QFileDialog FjernRemove QFileDialogGem somSave As QFileDialogVisShow  QFileDialog$Vis s&kjulte filerShow &hidden files QFileDialog UkendtUnknown QFileDialog %1 GB%1 GBQFileSystemModel %1 KB'%1 KBQFileSystemModel %1 MB%1 MBQFileSystemModel %1 TB%1 TBQFileSystemModel%1 bytes%1 bytesQFileSystemModel<b>Navnet, %1, kan ikke benyttes.</b><p>Brug et andet navn med frre tegn og ingen kommatering.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelComputerQFileSystemModelndringsdato Date ModifiedQFileSystemModel Ugyldigt filnavnInvalid filenameQFileSystemModelTypeKindQFileSystemModelMin computer My ComputerQFileSystemModelNavnNameQFileSystemModelStrrelseSizeQFileSystemModelTypeQFileSystemModelAlleAny QFontDatabaseArabiskArabic QFontDatabaseArmenskArmenian QFontDatabaseBengalskBengali QFontDatabaseSortBlack QFontDatabaseFedBold QFontDatabaseKyrilliskCyrillic QFontDatabaseDemi QFontDatabase Demi Bold QFontDatabase Devanagari QFontDatabasegeorgisk Georgian QFontDatabase GrskGreek QFontDatabaseGujarati QFontDatabaseGurmukhi QFontDatabaseHebriskHebrew QFontDatabase KursivItalic QFontDatabaseJapanskJapanese QFontDatabaseKannada QFontDatabaseKhmer QFontDatabaseKoreanskKorean QFontDatabaseLao QFontDatabaseLatin QFontDatabaseLysLight QFontDatabase Malayalam QFontDatabaseMyanmar QFontDatabaseNormal QFontDatabase SkrtOblique QFontDatabaseOgham QFontDatabaseOriya QFontDatabaseRunic QFontDatabase$Forenklet kinesiskSimplified Chinese QFontDatabaseSinhala QFontDatabaseSymbol QFontDatabase SyriskSyriac QFontDatabaseTamil QFontDatabaseTelugu QFontDatabaseThaana QFontDatabaseThailandskThai QFontDatabaseTibetanskTibetan QFontDatabase*Traditionelt kinesiskTraditional Chinese QFontDatabaseVietnamesisk Vietnamese QFontDatabaseS&krifttype&Font QFontDialog&Strrelse&Size QFontDialog&Understreg &Underline QFontDialogEffekterEffects QFontDialog S&til Font st&yle QFontDialogEksempelSample QFontDialogVlg skrifttype Select Font QFontDialog&Overstreget Stri&keout QFontDialogSkr&ivesystemWr&iting System QFontDialogDndring af katalog mislykkedes: %1Changing directory failed: %1QFtpTilsluttet vrtConnected to hostQFtp$Tilsluttet vrt %1Connected to host %1QFtpHForbindelse til vrt mislykkedes: %1Connecting to host failed: %1QFtp$Forbindelse lukketConnection closedQFtp,Dataforbindelse afvist&Connection refused for data connectionQFtp<Forbindelse til vrt %1 afvistConnection refused to host %1QFtpDForbindelsen timed out til host %1Connection timed out to host %1QFtp2Forbindelse til %1 lukketConnection to %1 closedQFtpJOprettelse af katalog mislykkedes: %1Creating directory failed: %1QFtpDDownloading af fil mislykkedes: %1Downloading file failed: %1QFtpVrt %1 fundet Host %1 foundQFtp&Vrt %1 ikke fundetHost %1 not foundQFtpVrt fundet Host foundQFtpXOpremsning af katalogindhold mislykkedes: %1Listing directory failed: %1QFtp*Login mislykkedes: %1Login failed: %1QFtp"Ingen forbindelse Not connectedQFtpJDet mislykkedes at fjerne katalog: %1Removing directory failed: %1QFtpBDet mislykkedes at fjerne fil: %1Removing file failed: %1QFtpUkendt fejl Unknown errorQFtp@Uploading af fil mislykkedes: %1Uploading file failed: %1QFtpSl til/fraToggle QGroupBox Hostnavn manglerNo host name given QHostInfoUkendt fejl Unknown error QHostInfo Vrt ikke fundetHost not foundQHostInfoAgent Hostnavn manglerNo host name givenQHostInfoAgent$Ukendt adressetypeUnknown address typeQHostInfoAgentUkendt fejl Unknown errorQHostInfoAgent0Autentificering pkrvetAuthentication requiredQHttpTilsluttet vrtConnected to hostQHttp$Tilsluttet vrt %1Connected to host %1QHttp$Forbindelse lukketConnection closedQHttp$Forbindelse afvistConnection refusedQHttpRForbindelse blev afvist (eller tid udlb)!Connection refused (or timed out)QHttp2Forbindelse til %1 lukketConnection to %1 closedQHttpData er delagtData corruptedQHttpXSkrivefejl mens der blev skrevet til enheden Error writing response to deviceQHttp4HTTP anmodning mislykkedesHTTP request failedQHttpDer blevet anmodet om en HTTPS-forbindelse, men SSL understttelse er ikke kompileret ind:HTTPS connection requested but SSL support not compiled inQHttpVrt %1 fundet Host %1 foundQHttp&Vrt %1 ikke fundetHost %1 not foundQHttpVrt fundet Host foundQHttp6Vrt krver autentificeringHost requires authenticationQHttp2Ugyldig HTTP chunked bodyInvalid HTTP chunked bodyQHttp0Ugyldig HTTP-svar-headerInvalid HTTP response headerQHttp8Ingen server at forbinde tilNo server set to connect toQHttp8Krver proxy-autentificeringProxy authentication requiredQHttp8Proxy krver autentificeringProxy requires authenticationQHttp8Foresprgsel blev annulleretRequest abortedQHttp2SSL handshake mislykkedesSSL handshake failedQHttpPServeren afsluttede uventet forbindelsen%Server closed connection unexpectedlyQHttp:Ukendt autentifikationsmetodeUnknown authentication methodQHttpUkendt fejl Unknown errorQHttp>En ukendt protokol blev angivetUnknown protocol specifiedQHttp,Forkert indholdslngdeWrong content lengthQHttp0Autentificering pkrvetAuthentication requiredQHttpSocketEngine>Modtog ikke HTTP-svar fra proxy(Did not receive HTTP response from proxyQHttpSocketEngineNFejl under kommunikation med HTTP-proxy#Error communicating with HTTP proxyQHttpSocketEnginexFejl under fortolking af autentificeringsanmodning fra proxy/Error parsing authentication request from proxyQHttpSocketEngineHProxy-forbindelse afsluttede i utide#Proxy connection closed prematurelyQHttpSocketEngine2Proxy-forbindelse ngtedeProxy connection refusedQHttpSocketEngine2Proxy ngtede forbindelseProxy denied connectionQHttpSocketEngineBProxy-serverforbindelse timed out!Proxy server connection timed outQHttpSocketEngine<Proxy-server kunne ikke findesProxy server not foundQHttpSocketEngineDKunne ikke pbegynde transaktionenCould not start transaction QIBaseDriverLDer opstod fejl ved bning af databaseError opening database QIBaseDriverFKunne ikke gennemfre transaktionenUnable to commit transaction QIBaseDriverLKunne ikke tilbagetrkke transaktionenUnable to rollback transaction QIBaseDriver:Kunne ikke allokere statementCould not allocate statement QIBaseResultFKunne ikke beskrive input-statement"Could not describe input statement QIBaseResult:Kunne ikke beskrive statementCould not describe statement QIBaseResult<Kunne ikke hente nste elementCould not fetch next item QIBaseResult,Kunne ikke finde arrayCould not find array QIBaseResult4Kunne ikke hente arraydataCould not get array data QIBaseResultDKunne ikke hente foresprgselsinfoCould not get query info QIBaseResultFKunne ikke hente udsagnsinformationCould not get statement info QIBaseResult6Kunne ikke forberede udsagnCould not prepare statement QIBaseResultDKunne ikke pbegynde transaktionenCould not start transaction QIBaseResult.Kunne ikke lukke udsagnUnable to close statement QIBaseResultFKunne ikke gennemfre transaktionenUnable to commit transaction QIBaseResult.Kunne ikke oprette BLOBUnable to create BLOB QIBaseResult<Kunne ikke udfre foresprgselUnable to execute query QIBaseResult(Kunne ikke bne BLOBUnable to open BLOB QIBaseResult(Kunne ikke lse BLOBUnable to read BLOB QIBaseResult,Kunne ikke skrive BLOBUnable to write BLOB QIBaseResult<Ingen plads tilbage p enhedenNo space left on device QIODevice:Fil eller katalog findes ikkeNo such file or directory QIODevice"Tilladelse ngtetPermission denied QIODevice6Der er for mange bne filerToo many open files QIODeviceUkendt fejl Unknown error QIODevice*Mac OS X input-metodeMac OS X input method QInputContext(Windows input-metodeWindows input method QInputContextXIM QInputContext XIM input-metodeXIM input method QInputContext"Indtast en vrdi:Enter a value: QInputDialogBKan ikke indlse bibliotek %1: %2Cannot load library %1: %2QLibraryDKan ikke lse symbol "%1" i %2: %3$Cannot resolve symbol "%1" in %2: %3QLibraryLKan ikke afregistrere bibliotek %1: %2Cannot unload library %1: %2QLibraryjPlugin-verifikationsdata er sat forkert sammen i '%1')Plugin verification data mismatch in '%1'QLibraryPFilen '%1' er ikke et gyldigt Qt-plugin.'The file '%1' is not a valid Qt plugin.QLibrary|Plugin '%1' bruger inkompatibelt Qt-bibliotek. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryPlugin '%1' bruger inkompatibelt Qt-bibliotek. (Ikke muligt at mikse debug og release-biblioteker)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryPlugin '%1' bruger inkompatibelt Qt-bibliotek. Forventet build key "%2", hentede "%3"'OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibrary*DSO blev ikke fundet.!The shared library was not found.QLibraryUkendt fejl' Unknown errorQLibrary&Kopir&Copy QLineEdit&St ind&Paste QLineEdit&Gendan&Redo QLineEdit&Fortryd&Undo QLineEdit K&lipCu&t QLineEditSletDelete QLineEditMarkr alt Select All QLineEdit$%1: Adresse i brug%1: Address in use QLocalServer%1: Navnefejl%1: Name error QLocalServer*%1: Tilladelse ngtet%1: Permission denied QLocalServer$%1: Ukendt fejl %2%1: Unknown error %2 QLocalServer(%1: Forbindelsesfejl%1: Connection error QLocalSocket,%1: Forbindelse afvist%1: Connection refused QLocalSocket2%1: Datagram er for stort%1: Datagram too large QLocalSocket"%1: Ugyldigt navn%1: Invalid name QLocalSocket4%1: Den anden ende lukkede%1: Remote closed QLocalSocket0%1: Fejl i socket-adgang%1: Socket access error QLocalSocket:%1: Socket-handling timed out%1: Socket operation timed out QLocalSocket6%1: Fejl i socket-ressource%1: Socket resource error QLocalSocketN%1: Socket-handlingen understttes ikke)%1: The socket operation is not supported QLocalSocket%1: Ukendt fejl%1: Unknown error QLocalSocket$%1: Ukendt fejl %2%1: Unknown error %2 QLocalSocketDKunne ikke pbegynde transaktionenUnable to begin transaction QMYSQLDriverFKunne ikke gennemfre transaktionenUnable to commit transaction QMYSQLDriver&Kunne ikke forbindeUnable to connect QMYSQLDriver6Kunne ikke bne databasen 'Unable to open database ' QMYSQLDriverLKunne ikke tilbagetrkke transaktionenUnable to rollback transaction QMYSQLDriver4Kunne ikke binde udvrdierUnable to bind outvalues QMYSQLResult0Kunne ikke tildele vrdiUnable to bind value QMYSQLResultHKunne ikke udfre nste foresprgselUnable to execute next query QMYSQLResult<Kunne ikke udfre foresprgselUnable to execute query QMYSQLResult0Kunne ikke udfre udsagnUnable to execute statement QMYSQLResult*Kunne ikke hente dataUnable to fetch data QMYSQLResult6Kunne ikke forberede udsagnUnable to prepare statement QMYSQLResult6Kunne ikke nulstille udsagnUnable to reset statement QMYSQLResult>Kunne ikke gemme nste resultatUnable to store next result QMYSQLResult6Kunne ikke gemme resultatetUnable to store result QMYSQLResultDKunne ikke gemme udsagnsresultater!Unable to store statement results QMYSQLResult(Uden titel) (Untitled)QMdiArea %1 - [%2] QMdiSubWindow&Luk&Close QMdiSubWindow &Flyt&Move QMdiSubWindow&Gendan&Restore QMdiSubWindow&Strrelse&Size QMdiSubWindow- [%1] QMdiSubWindowLukClose QMdiSubWindow HjlpHelp QMdiSubWindowMa&ksimr Ma&ximize QMdiSubWindowMaksimrMaximize QMdiSubWindowMenu QMdiSubWindowMi&nimr Mi&nimize QMdiSubWindowMinimrMinimize QMdiSubWindow GendanRestore QMdiSubWindowGendan Ned Restore Down QMdiSubWindow SkyggeShade QMdiSubWindowBliv &oppe Stay on &Top QMdiSubWindowFjern skyggeUnshade QMdiSubWindowLukCloseQMenu UdfrExecuteQMenubnOpenQMenu Om QtAbout Qt QMessageBox HjlpHelp QMessageBox"Skjul detaljer...Hide Details... QMessageBoxOK QMessageBoxVis detaljer...Show Details... QMessageBoxMarkr IM Select IMQMultiInputContext<Multiple input metode-switcherMultiple input method switcherQMultiInputContextPluginMultiple input metode-switcher, der benytter tekstkontrollernes kontekstmenuerMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginZEn anden socket lytter allerede p samme port4Another socket is already listening on the same portQNativeSocketEngine~Forsg p at bruge IPv6-socket p en platform uden IPv6-support=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine$Forbindelse afvistConnection refusedQNativeSocketEngine,Forbindelsen timed outConnection timed outQNativeSocketEngineXDatagrammet var for stort til at blive sendtDatagram was too large to sendQNativeSocketEngine0Vrt er ikke tilgngeligHost unreachableQNativeSocketEngine2Ugyldig socket-deskriptorInvalid socket descriptorQNativeSocketEngineNetvrksfejl Network errorQNativeSocketEngine:Netvrksoperationen timed outNetwork operation timed outQNativeSocketEngine<Netvrket er ikke tilgngeligtNetwork unreachableQNativeSocketEngine,Handling p non-socketOperation on non-socketQNativeSocketEngine*Ikke flere ressourcerOut of resourcesQNativeSocketEngine"Tilladelse ngtetPermission deniedQNativeSocketEngine>Protokoltypen understttes ikkeProtocol type not supportedQNativeSocketEngine8Adressen er ikke tilgngeligThe address is not availableQNativeSocketEngine*Adressen er beskyttetThe address is protectedQNativeSocketEngineJDen bundne adresse er allerede i brug#The bound address is already in useQNativeSocketEnginePProxytypen er ugyldig til denne handling,The proxy type is invalid for this operationQNativeSocketEngineBFjern-hosten lukkede forbindelsen%The remote host closed the connectionQNativeSocketEnginePKunne ikke initialisere broadcast-socket%Unable to initialize broadcast socketQNativeSocketEngineVKunne ikke initialisere non-blocking socket(Unable to initialize non-blocking socketQNativeSocketEngine8Kunne ikke modtage en beskedUnable to receive a messageQNativeSocketEngine4Kunne ikke sende en beskedUnable to send a messageQNativeSocketEngine"Kunne ikke skriveUnable to writeQNativeSocketEngineUkendt fejl Unknown errorQNativeSocketEngineDSocket-operation ikke understttetUnsupported socket operationQNativeSocketEngine8Der opstod fejl i at bne %1Error opening %1QNetworkAccessCacheBackendUgyldig URI: %1Invalid URI: %1QNetworkAccessDataBackendbFjern-host lukkede forbindelsen for tidligt p %13Remote host closed the connection prematurely on %1QNetworkAccessDebugPipeBackend*Socket-fejl p %1: %2Socket error on %1: %2QNetworkAccessDebugPipeBackendVSkrivefejl mens der blev skrevet til %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackendJKan ikke bne %1: Stien er et katalog#Cannot open %1: Path is a directoryQNetworkAccessFileBackend@Der opstod fejl i at bne %1: %2Error opening %1: %2QNetworkAccessFileBackendLLsefejl mens der blev lst fra %1: %2Read error reading from %1: %2QNetworkAccessFileBackendLAnmodning om at bne ikke-lokal fil %1%Request for opening non-local file %1QNetworkAccessFileBackendVSkrivefejl mens der blev skrevet til %1: %2Write error writing to %1: %2QNetworkAccessFileBackend>Kan ikke bne %1: Er et katalogCannot open %1: is a directoryQNetworkAccessFtpBackendJDer opstod fejl i at downloade %1: %2Error while downloading %1: %2QNetworkAccessFtpBackendFDer opstod fejl i at uploade %1: %2Error while uploading %1: %2QNetworkAccessFtpBackendpDer opstod fejl i at logge p %1: Autentificering krves0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackend@Ingen passende proxy blev fundetNo suitable proxy foundQNetworkAccessFtpBackend@Ingen passende proxy blev fundetNo suitable proxy foundQNetworkAccessHttpBackendpDer opstod fejl i at downloade %1 - serveren svarede: %2)Error downloading %1 - server replied: %2 QNetworkReply4Protokollen "%1" er ukendtProtocol "%1" is unknown QNetworkReply0Handling blev annulleretOperation canceledQNetworkReplyImplDKunne ikke pbegynde transaktionenUnable to begin transaction QOCIDriverFKunne ikke gennemfre transaktionenUnable to commit transaction QOCIDriver.Kunne ikke initialisereUnable to initialize QOCIDriver&Kunne ikke logge pUnable to logon QOCIDriverLKunne ikke tilbagetrkke transaktionenUnable to rollback transaction QOCIDriver4Kunne ikke allokere udsagnUnable to alloc statement QOCIResultZKunne ikke tildele kolonne til batch-udfrsel'Unable to bind column for batch execute QOCIResult0Kunne ikke tildele vrdiUnable to bind value QOCIResult<Kunne ikke udfre batch-udsagn!Unable to execute batch statement QOCIResult0Kunne ikke udfre udsagnUnable to execute statement QOCIResult6Kunne ikke g til den nsteUnable to goto next QOCIResult6Kunne ikke forberede udsagnUnable to prepare statement QOCIResultFKunne ikke gennemfre transaktionenUnable to commit transaction QODBCDriver&Kunne ikke forbindeUnable to connect QODBCDriver:Kunne ikke sl auto-udfr fraUnable to disable autocommit QODBCDriver:Kunne ikke sl auto-udfr tilUnable to enable autocommit QODBCDriverLKunne ikke tilbagetrkke transaktionenUnable to rollback transaction QODBCDriverQODBCResult::reset: Kunne ikke indstille 'SQL_CURSOR_STATIC' til udsagnsattribut. Kontrollr ODBC-driver-konfigurationenyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult6Kunne ikke tildele variabelUnable to bind variable QODBCResult0Kunne ikke udfre udsagnUnable to execute statement QODBCResult Kunne ikke henteUnable to fetch QODBCResult6Kunne ikke hente den frsteUnable to fetch first QODBCResult6Kunne ikke hente den sidsteUnable to fetch last QODBCResult4Kunne ikke hente den nsteUnable to fetch next QODBCResult8Kunne ikke hente den forrigeUnable to fetch previous QODBCResult6Kunne ikke forberede udsagnUnable to prepare statement QODBCResultHjemHomeQObjectNavnNameQPPDOptionsModel VrdiValueQPPDOptionsModel@Kunne ikke pbegynde transaktionCould not begin transaction QPSQLDriverBKunne ikke gennemfre transaktionCould not commit transaction QPSQLDriverHKunne ikke tilbagetrkke transaktionCould not rollback transaction QPSQLDriver8Kunne ikke skabe forbindelseUnable to connect QPSQLDriver&Kunne ikke tilmeldeUnable to subscribe QPSQLDriver$Kunne ikke afmeldeUnable to unsubscribe QPSQLDriver>Kunne ikke oprette foresprgselUnable to create query QPSQLResult6Kunne ikke forberede udsagnUnable to prepare statement QPSQLResultCentimeter (cm)Centimeters (cm)QPageSetupWidgetFormQPageSetupWidget Hjde:Height:QPageSetupWidget Inches (in)QPageSetupWidgetLandskab LandscapeQPageSetupWidgetMargenerMarginsQPageSetupWidgetMillimeter (mm)Millimeters (mm)QPageSetupWidget OrientationQPageSetupWidgetSidestrrelse: Page size:QPageSetupWidget PapirPaperQPageSetupWidgetPapirkilde: Paper source:QPageSetupWidgetPoint (pt) Points (pt)QPageSetupWidgetPortrtPortraitQPageSetupWidget Omvendt landskabReverse landscapeQPageSetupWidgetOmvendt portrtReverse portraitQPageSetupWidget Vidde:Width:QPageSetupWidgetMargen - bund bottom marginQPageSetupWidget Margen - venstre left marginQPageSetupWidgetMargen - hjre right marginQPageSetupWidgetMargen - verst top marginQPageSetupWidget2Plugin blev ikke indlst.The plugin was not loaded. QPluginLoaderUkendt fejl Unknown error QPluginLoaderX%1 findes allerede. nsker du at overskrive?/%1 already exists. Do you want to overwrite it? QPrintDialogP%1 er et katalog. Vlg et andet filnavn.7%1 is a directory. Please choose a different file name. QPrintDialog &Indstillinger<< &Options << QPrintDialog &Indstillinger>> &Options >> QPrintDialog&Udskriv&Print QPrintDialogB<qt>nsker du at overskrive?</qt>%Do you want to overwrite it? QPrintDialogA0 QPrintDialogA0 (841 x 1189 mm) QPrintDialogA1 QPrintDialogA1 (594 x 841 mm) QPrintDialogA2 QPrintDialogA2 (420 x 594 mm) QPrintDialogA3 QPrintDialogA3 (297 x 420 mm) QPrintDialogA4 QPrintDialog%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5 QPrintDialogA5 (148 x 210 mm) QPrintDialogA6 QPrintDialogA6 (105 x 148 mm) QPrintDialogA7 QPrintDialogA7 (74 x 105 mm) QPrintDialogA8 QPrintDialogA8 (52 x 74 mm) QPrintDialogA9 QPrintDialogA9 (37 x 52 mm) QPrintDialogAliasser: %1 Aliases: %1 QPrintDialogB0 QPrintDialogB0 (1000 x 1414 mm) QPrintDialogB1 QPrintDialogB1 (707 x 1000 mm) QPrintDialogB10 QPrintDialogB10 (31 x 44 mm) QPrintDialogB2 QPrintDialogB2 (500 x 707 mm) QPrintDialogB3 QPrintDialogB3 (353 x 500 mm) QPrintDialogB4 QPrintDialogB4 (250 x 353 mm) QPrintDialogB5 QPrintDialog%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6 QPrintDialogB6 (125 x 176 mm) QPrintDialogB7 QPrintDialogB7 (88 x 125 mm) QPrintDialogB8 QPrintDialogB8 (62 x 88 mm) QPrintDialogB9 QPrintDialogB9 (44 x 62 mm) QPrintDialogC5E QPrintDialogC5E (163 x 229 mm) QPrintDialogBrugerdefineretCustom QPrintDialogDLE QPrintDialogDLE (110 x 220 mm) QPrintDialog Executive QPrintDialog)Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogbFilen %1 kan ikke skrives. Vlg et andet filnavn.=File %1 is not writable. Please choose a different file name. QPrintDialogFil findes File exists QPrintDialogFolio QPrintDialogFolio (210 x 330 mm) QPrintDialogLedger QPrintDialogLedger (432 x 279 mm) QPrintDialogLegal QPrintDialog%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogLetter QPrintDialog&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogLokal fil Local file QPrintDialogOK QPrintDialogUdskrivPrint QPrintDialog$Udskriv til fil...Print To File ... QPrintDialogUdskriv alle Print all QPrintDialogUdskriftsomrde Print range QPrintDialog"Udskriv markeredePrint selection QPrintDialog*Udskriv til fil (PDF)Print to File (PDF) QPrintDialog8Udskriv til fil (Postscript)Print to File (Postscript) QPrintDialogTabloid QPrintDialogTabloid (279 x 432 mm) QPrintDialogj'Fra'-vrdien kan ikke vre strre end 'til'-vrdien.7The 'From' value cannot be greater than the 'To' value. QPrintDialogUS Common #10 Envelope QPrintDialog%US Common #10 Envelope (105 x 241 mm) QPrintDialogSkriv %1 fil Write %1 file QPrintDialog lokalt forbundetlocally connected QPrintDialog Ukendtunknown QPrintDialog%1%QPrintPreviewDialogLukCloseQPrintPreviewDialog"Eksportr til PDF Export to PDFQPrintPreviewDialog0Eksportr til PostScriptExport to PostScriptQPrintPreviewDialogFrste side First pageQPrintPreviewDialogTilpas sidenFit pageQPrintPreviewDialogTilpas bredde Fit widthQPrintPreviewDialogLandskab LandscapeQPrintPreviewDialogSidste side Last pageQPrintPreviewDialogNste side Next pageQPrintPreviewDialogSideopstning Page SetupQPrintPreviewDialogSideopstning Page setupQPrintPreviewDialogPortrtPortraitQPrintPreviewDialogForrige side Previous pageQPrintPreviewDialogUdskrivPrintQPrintPreviewDialogVis udskrift Print PreviewQPrintPreviewDialogVis sideopslagShow facing pagesQPrintPreviewDialog4Vis oversigt af alle siderShow overview of all pagesQPrintPreviewDialogVis enkelt sideShow single pageQPrintPreviewDialogZoom indZoom inQPrintPreviewDialogZoom udZoom outQPrintPreviewDialogAvanceretAdvancedQPrintPropertiesWidgetFormFormQPrintPropertiesWidgetSidePageQPrintPropertiesWidgetSamordneCollateQPrintSettingsOutput FarveColorQPrintSettingsOutputFarvetilstand Color ModeQPrintSettingsOutput KopierCopiesQPrintSettingsOutputKopier:Copies:QPrintSettingsOutputDobbelsidetDuplex PrintingQPrintSettingsOutputFormQPrintSettingsOutputGrskala GrayscaleQPrintSettingsOutputBog Long sideQPrintSettingsOutput IngenNoneQPrintSettingsOutputValgmulighederOptionsQPrintSettingsOutput,UdskriftsindstillingerOutput SettingsQPrintSettingsOutputSider fra Pages fromQPrintSettingsOutputUdskriv alle Print allQPrintSettingsOutputUdskriv sider Print rangeQPrintSettingsOutputOmvendtReverseQPrintSettingsOutputValg SelectionQPrintSettingsOutput Tavle Short sideQPrintSettingsOutputtiltoQPrintSettingsOutput &Navn:&Name: QPrintWidget... QPrintWidgetForm QPrintWidgetPlacering: Location: QPrintWidgetUdskrifts&fil: Output &file: QPrintWidget&Egenskaber P&roperties QPrintWidgetVis udskriftPreview QPrintWidget'Printer QPrintWidgetType: QPrintWidgetZKunne ikke bne input redirection for lsning,Could not open input redirection for readingQProcess`Kunne ikke bne output redirection for skrivning-Could not open output redirection for writingQProcess6Fejl ved lsning fra procesError reading from processQProcess:Fejl ved skrivning til procesError writing to processQProcess.Intet program defineretNo program definedQProcessProces crashedeProcess crashedQProcess2Proces-operation time outProcess operation timed outQProcess<Ressource fejl (fork fejl): %1!Resource error (fork failure): %1QProcessAnnullerCancelQProgressDialogbnOpen QPushButtonKontrollrCheck QRadioButton2drlig char class syntaksbad char class syntaxQRegExp0drlig lookahead syntaksbad lookahead syntaxQRegExp2drlig gentagelsessyntaksbad repetition syntaxQRegExp>deaktiveret funktion blev brugtdisabled feature usedQRegExp$ugyldigt oktal-talinvalid octal valueQRegExp(nede interne grnsemet internal limitQRegExp6Manglende venstre delimitermissing left delimQRegExp*der opstod ingen fejlno error occurredQRegExp$uventet afslutningunexpected endQRegExpLDer opstod fejl ved bning af databaseError opening databaseQSQLite2DriverDKunne ikke pbegynde transaktionenUnable to begin transactionQSQLite2DriverFKunne ikke gennemfre transaktionenUnable to commit transactionQSQLite2Driver6Kunne ikke udfre statementUnable to execute statementQSQLite2Result6Kunne ikke hente resultaterUnable to fetch resultsQSQLite2ResultNDer opstod fejl ved lukning af databaseError closing database QSQLiteDriverLDer opstod fejl ved bning af databaseError opening database QSQLiteDriverDKunne ikke pbegynde transaktionenUnable to begin transaction QSQLiteDriverBKunne ikke gennemfre transaktionUnable to commit transaction QSQLiteDriverHKunne ikke tilbagetrkke transaktionUnable to rollback transaction QSQLiteDriver&Ingen foresprgeselNo query QSQLiteResult:Misforhold i parametertllingParameter count mismatch QSQLiteResult2Unable to bind parametersUnable to bind parameters QSQLiteResult0Kunne ikke udfre udsagnUnable to execute statement QSQLiteResult,Kunne ikke hente rkkeUnable to fetch row QSQLiteResult6Kunne ikke nulstille udsagnUnable to reset statement QSQLiteResultSletDeleteQScriptBreakpointsWidgetFortstContinueQScriptDebuggerLukCloseQScriptDebuggerCodeFinderWidgetNavnNameQScriptDebuggerLocalsModel VrdiValueQScriptDebuggerLocalsModelNavnNameQScriptDebuggerStackModelSgSearchQScriptEngineDebuggerLukCloseQScriptNewBreakpointWidgetBundBottom QScrollBarVenstre kant Left edge QScrollBarLinie ned Line down QScrollBarLinie opLine up QScrollBarSide ned Page down QScrollBarSide venstre Page left QScrollBarSide hjre Page right QScrollBarSide verstPage up QScrollBarPlaceringPosition QScrollBarHjre kant Right edge QScrollBarScroll ned Scroll down QScrollBarScroll her Scroll here QScrollBar$Scroll til venstre Scroll left QScrollBar Scroll til hjre Scroll right QScrollBarScroll op Scroll up QScrollBar verstTop QScrollBar&%1: Findes allerede%1: already exists QSharedMemory<%1: create size is less then 0%1: create size is less then 0 QSharedMemory%1: Findes ikke%1: doesn't exists QSharedMemory(%1: ftok mislykkedes%1: ftok failed QSharedMemory*%1: Ugyldig strrelse%1: invalid size QSharedMemory %1: ngle er tom%1: key is empty QSharedMemory$%1: Ikke vedhftet%1: not attached QSharedMemory2%1: Ikke flere ressourcer%1: out of resources QSharedMemory*%1: Tilladelse ngtet%1: permission denied QSharedMemoryL%1: Strrelsesforesprgsel mislykkedes%1: size query failed QSharedMemoryT%1: System-plagte strrelsesrestriktioner$%1: system-imposed size restrictions QSharedMemory&%1: Kunne ikke lse%1: unable to lock QSharedMemory8%1: Kunne ikke oprette ngle%1: unable to make key QSharedMemory8%1: Kunne ikke oprette ngle%1: unable to set key on lock QSharedMemory8%1: Kunne ikke oprette ngle%1: unable to unlock QSharedMemory$%1: ukendt fejl %2%1: unknown error %2 QSharedMemory+ QShortcutAlt QShortcutTilbageBack QShortcutTilbage Backspace QShortcut"Tilbage-tabulatorBacktab QShortcut Bass Boost QShortcutBass ned Bass Down QShortcutBass opBass Up QShortcutRing tilCall QShortcut Caps Lock QShortcut'CapsLock QShortcutRydClear QShortcutLukClose QShortcutKontekst1Context1 QShortcutKontekst2Context2 QShortcutKontekst3Context3 QShortcutKontekst4Context4 QShortcut KopirCopy QShortcutCtrl QShortcutKlipCut QShortcutDel QShortcutDelete QShortcutNedDown QShortcutEnd QShortcutEnter QShortcutEsc QShortcutEscape QShortcutF%1 QShortcut Favorites QShortcutVendFlip QShortcutFremForward QShortcut Lg pHangup QShortcut HjlpHelp QShortcutHome QShortcutStartside Home Page QShortcutIns QShortcutInsert QShortcutStart (0) Launch (0) QShortcutStart (1) Launch (1) QShortcutStart (2) Launch (2) QShortcutStart (3) Launch (3) QShortcutStart (4) Launch (4) QShortcutStart (5) Launch (5) QShortcutStart (6) Launch (6) QShortcutStart (7) Launch (7) QShortcutStart (8) Launch (8) QShortcutStart (9) Launch (9) QShortcutStart (A) Launch (A) QShortcutStart (B) Launch (B) QShortcutStart (C) Launch (C) QShortcutStart (D) Launch (D) QShortcutStart (E) Launch (E) QShortcutStart (F) Launch (F) QShortcutStart mail Launch Mail QShortcutStart Media Launch Media QShortcutVenstreLeft QShortcutMedia nste Media Next QShortcut Media Play QShortcutMedia forrigeMedia Previous QShortcut Media Record QShortcut Media Stop QShortcutMenu QShortcutMeta QShortcut MusikMusic QShortcutNejNo QShortcutNum Lock QShortcutNumLock QShortcut Number Lock QShortcutbn URLOpen URL QShortcut Page Down QShortcutPage Up QShortcutSt indPaste QShortcutPause QShortcutPgDown QShortcutPgUp QShortcutUdskrivPrint QShortcut Print Screen QShortcutOpdaterRefresh QShortcutGenindlsReload QShortcutReturn QShortcut HjreRight QShortcutGemSave QShortcut Scroll Lock QShortcut ScrollLock QShortcutSgSearch QShortcutVgSelect QShortcutShift QShortcutSpace QShortcutStandby QShortcutStop QShortcutSysReq QShortcutSystem Request QShortcutTab QShortcutDiskant ned Treble Down QShortcutDiskant op Treble Up QShortcutOpUp QShortcutLydstyrke ned Volume Down QShortcutLydstyrke mute Volume Mute QShortcutLydstyrke op Volume Up QShortcutJaYes QShortcutSide ned Page downQSliderSide venstre Page leftQSliderSide hjre Page rightQSliderSide opPage upQSliderPlaceringPositionQSlider:Adressetype understttes ikkeAddress type not supportedQSocks5SocketEngineRForbindelse ikke tilladt a SOCKSv5-server(Connection not allowed by SOCKSv5 serverQSocks5SocketEngineHProxy-forbindelse afsluttede i utide&Connection to proxy closed prematurelyQSocks5SocketEngine2Proxy-forbindelse ngtedeConnection to proxy refusedQSocks5SocketEngineBProxy-serverforbindelse timed outConnection to proxy timed outQSocks5SocketEngine4General SOCKSv5 serverfejlGeneral SOCKSv5 server failureQSocks5SocketEngine:Netvrksoperationen timed outNetwork operation timed outQSocks5SocketEngineBProxy autentificering mislykkedesProxy authentication failedQSocks5SocketEngineJProxy autentificering mislykkedes: %1Proxy authentication failed: %1QSocks5SocketEngine8Proxy-host kunne ikke findesProxy host not foundQSocks5SocketEngine8SOCKS version 5 protokolfejlSOCKS version 5 protocol errorQSocks5SocketEngineDSOCKSv5-kommando ikke understttetSOCKSv5 command not supportedQSocks5SocketEngineTTL udlbet TTL expiredQSocks5SocketEngineDUkendt SOCKSv5 proxy fejlkode 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineAnnullerCancelQSoftKeyManagerValgmulighederOptionsQSoftKeyManagerVgSelectQSoftKeyManager MindreLessQSpinBoxMereMoreQSpinBoxAnnullerCancelQSql>Skal dine ndringer annulleres?Cancel your edits?QSqlBekrftConfirmQSqlSletDeleteQSql Slet denne post?Delete this record?QSql IndstInsertQSqlNejNoQSqlGem ndringer? Save edits?QSqlOpdaterUpdateQSqlJaYesQSqlTKan ikke give et certifikat uden ngle, %1,Cannot provide a certificate with no key, %1 QSslSocketjDer opstod fejl under oprettelse af SSL-kontekst (%1)Error creating SSL context (%1) QSslSocketfDer opstod fejl under oprettelse af SSL-session, %1Error creating SSL session, %1 QSslSocketfDer opstod fejl under oprettelse af SSL-session, %1Error creating SSL session: %1 QSslSocketTDer opstod en fejl under SSL handshake: %1Error during SSL handshake: %1 QSslSocketrDer opstod fejl under indlsning af lokalt certifikat, %1#Error loading local certificate, %1 QSslSockethDer opstod fejl under indlsning af privat ngle, %1Error loading private key, %1 QSslSocketNDer opstod en fejl under lsning af: %1Error while reading: %1 QSslSocketFUgyldig eller tom chifferliste (%1)!Invalid or empty cipher list (%1) QSslSocket4Kunne ikke skrive data: %1Unable to write data: %1 QSslSocketLDer opstod fejl ved bning af databaseError opening database QSymSQLDriverDKunne ikke pbegynde transaktionenUnable to begin transaction QSymSQLDriver:Misforhold i parametertllingParameter count mismatch QSymSQLResult2Unable to bind parametersUnable to bind parameters QSymSQLResult,Kunne ikke hente rkkeUnable to fetch row QSymSQLResult6Kunne ikke nulstille udsagnUnable to reset statement QSymSQLResultZEn anden socket lytter allerede p samme port4Another socket is already listening on the same portQSymbianSocketEngine~Forsg p at bruge IPv6-socket p en platform uden IPv6-support=Attempt to use IPv6 socket on a platform with no IPv6 supportQSymbianSocketEngine$Forbindelse afvistConnection refusedQSymbianSocketEngine,Forbindelsen timed outConnection timed outQSymbianSocketEngineXDatagrammet var for stort til at blive sendtDatagram was too large to sendQSymbianSocketEngine0Vrt er ikke tilgngeligHost unreachableQSymbianSocketEngine2Ugyldig socket-deskriptorInvalid socket descriptorQSymbianSocketEngineNetvrksfejl Network errorQSymbianSocketEngine:Netvrksoperationen timed outNetwork operation timed outQSymbianSocketEngine<Netvrket er ikke tilgngeligtNetwork unreachableQSymbianSocketEngine,Handling p non-socketOperation on non-socketQSymbianSocketEngine*Ikke flere ressourcerOut of resourcesQSymbianSocketEngine"Tilladelse ngtetPermission deniedQSymbianSocketEngine>Protokoltypen understttes ikkeProtocol type not supportedQSymbianSocketEngine8Adressen er ikke tilgngeligThe address is not availableQSymbianSocketEngine*Adressen er beskyttetThe address is protectedQSymbianSocketEngineJDen bundne adresse er allerede i brug#The bound address is already in useQSymbianSocketEnginePProxytypen er ugyldig til denne handling,The proxy type is invalid for this operationQSymbianSocketEngineBFjern-hosten lukkede forbindelsen%The remote host closed the connectionQSymbianSocketEnginePKunne ikke initialisere broadcast-socket%Unable to initialize broadcast socketQSymbianSocketEngineVKunne ikke initialisere non-blocking socket(Unable to initialize non-blocking socketQSymbianSocketEngine8Kunne ikke modtage en beskedUnable to receive a messageQSymbianSocketEngine4Kunne ikke sende en beskedUnable to send a messageQSymbianSocketEngine"Kunne ikke skriveUnable to writeQSymbianSocketEngineDSocket-operation ikke understttetUnsupported socket operationQSymbianSocketEngine&%1: Findes allerede%1: already existsQSystemSemaphore%1: Findes ikke%1: does not existQSystemSemaphore2%1: Ikke flere ressourcer%1: out of resourcesQSystemSemaphore*%1: Tilladelse ngtet%1: permission deniedQSystemSemaphore$%1: Ukendt fejl %2%1: unknown error %2QSystemSemaphore@Kunne ikke etablere forbindelsenUnable to open connection QTDSDriver4Kunne ikke bruge databasenUnable to use database QTDSDriverAktivrActivateQTabBarLukCloseQTabBarTryk pPressQTabBar$Scroll til venstre Scroll LeftQTabBar Scroll til hjre Scroll RightQTabBarDSocket-operation ikke understttet$Operation on socket is not supported QTcpServer&Kopir&Copy QTextControl&St ind&Paste QTextControl&Gendan&Redo QTextControl&Fortryd&Undo QTextControlKopir l&inkCopy &Link Location QTextControl K&lipCu&t QTextControlSletDelete QTextControlMarkr alt Select All QTextControlbnOpen QToolButtonTryk pPress QToolButtonJDenne platform understtter ikke IPv6#This platform does not support IPv6 QUdpSocket GendanDefault text for redo actionRedo QUndoGroupFortrydDefault text for undo actionUndo QUndoGroup <tom> QUndoModel GendanDefault text for redo actionRedo QUndoStackFortrydDefault text for undo actionUndo QUndoStack Insert Unicode control characterQUnicodeControlCharacterMenu$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenuLRM Left-to-right markQUnicodeControlCharacterMenu#LRO Start of left-to-right overrideQUnicodeControlCharacterMenuPDF Pop directional formattingQUnicodeControlCharacterMenu$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenuRLM Right-to-left markQUnicodeControlCharacterMenu#RLO Start of right-to-left overrideQUnicodeControlCharacterMenuZWJ Zero width joinerQUnicodeControlCharacterMenuZWNJ Zero width non-joinerQUnicodeControlCharacterMenuZWSP Zero width spaceQUnicodeControlCharacterMenu"Kan ikke vise URLCannot show URL QWebFrame.Kan ikke vise MIME-typeCannot show mimetype QWebFrame"Filen findes ikkeFile does not exist QWebFrame$Anmodning blokeretRequest blocked QWebFrame(Anmodning annulleretRequest cancelled QWebFrame"%1 (%2x%3 pixels)%1 (%2x%3 pixels)QWebPage %n fil%n filer %n file(s)QWebPage"Tilfj til ordbogAdd To DictionaryQWebPageFedBoldQWebPageBundBottomQWebPageXKr grammatikkontrol sammen med stavekontrolCheck Grammar With SpellingQWebPage Kr stavekontrolCheck SpellingQWebPage@Kr stavekontrol mens der tastesCheck Spelling While TypingQWebPageVlg fil Choose FileQWebPage,Ryd aktuelle sgningerClear recent searchesQWebPage KopirCopyQWebPageKopir billede Copy ImageQWebPageKopir link Copy LinkQWebPageKlipCutQWebPageStandardDefaultQWebPage8Slet til slutningen af ordetDelete to the end of the wordQWebPage2Slet til starten af ordetDelete to the start of the wordQWebPageRetning DirectionQWebPageSkrifttyperFontsQWebPageG tilbageGo BackQWebPageG frem Go ForwardQWebPage@Skjul stave- og grammatikkontrolHide Spelling and GrammarQWebPageIgnorrIgnoreQWebPageIgnorr Ignore Grammar context menu itemIgnoreQWebPageInsert ny linieInsert a new lineQWebPage(Indst et nyt afsnitInsert a new paragraphQWebPageInspicrInspectQWebPage KursivItalicQWebPage*JavaScript alert - %1JavaScript Alert - %1QWebPage.JavaScript Bekrft - %1JavaScript Confirm - %1QWebPage,JavaScript Prompt - %1JavaScript Prompt - %1QWebPageVenstre kant Left edgeQWebPageSl op i ordbogLook Up In DictionaryQWebPageNFlyt markr til slutningen af sektionen'Move the cursor to the end of the blockQWebPagePFlyt markr til slutningen af dokumentet*Move the cursor to the end of the documentQWebPageHFlyt markr til slutningen af linien&Move the cursor to the end of the lineQWebPage4Flyt markr til nste tegn%Move the cursor to the next characterQWebPage6Flyt markr til nste linie Move the cursor to the next lineQWebPage2Flyt markr til nste ord Move the cursor to the next wordQWebPage8Flyt markr til forrige tegn)Move the cursor to the previous characterQWebPage:Flyt markr til forrige linie$Move the cursor to the previous lineQWebPage6Flyt markr til forrige ord$Move the cursor to the previous wordQWebPageHFlyt markr til starten af sektionen)Move the cursor to the start of the blockQWebPageJFlyt markr til starten af dokumentet,Move the cursor to the start of the documentQWebPageBFlyt markr til starten af linien(Move the cursor to the start of the lineQWebPage8Der er ikke fundet nogen gtNo Guesses FoundQWebPage0Der er ikke valgt en filNo file selectedQWebPage0Ingen aktuelle sgningerNo recent searchesQWebPagebn faneblad Open FrameQWebPagebn billede Open ImageQWebPagebn link Open LinkQWebPage bn i nyt vindueOpen in New WindowQWebPage KonturOutlineQWebPageSide ned Page downQWebPageSide venstre Page leftQWebPageSide hjre Page rightQWebPageSide verstPage upQWebPageSt indPasteQWebPage$Aktuelle sgningerRecent searchesQWebPageGenindlsReloadQWebPageNulstilResetQWebPageHjre kant Right edgeQWebPageGem billede Save ImageQWebPageGem link... Save Link...QWebPageScroll ned Scroll downQWebPageScroll her Scroll hereQWebPage$Scroll til venstre Scroll leftQWebPage Scroll til hjre Scroll rightQWebPageScroll op Scroll upQWebPageSg p nettetSearch The WebQWebPageMarkr alt Select AllQWebPage@Vlg til slutningen af sektionenSelect to the end of the blockQWebPageBVlg til slutningen af dokumentet!Select to the end of the documentQWebPage:Vlg til slutningen af linienSelect to the end of the lineQWebPage&Vlg til nste tegnSelect to the next characterQWebPage(Vlg til nste linieSelect to the next lineQWebPage$Vlg til nste ordSelect to the next wordQWebPage*Vlg til forrige tegn Select to the previous characterQWebPage,Vlg til forrige linieSelect to the previous lineQWebPage(Vlg til forrige ordSelect to the previous wordQWebPage:Vlg til starten af sektionen Select to the start of the blockQWebPage<Vlg til starten af dokumentet#Select to the start of the documentQWebPage4Vlg til starten af linienSelect to the start of the lineQWebPage<Vis stave- og grammatikkontrolShow Spelling and GrammarQWebPageStavekontrolSpellingQWebPageStopStopQWebPageSendSubmitQWebPageSendQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPageTekstretningText DirectionQWebPagePDette er et sgeindeks. Indtast sgeord:3This is a searchable index. Enter search keywords: QWebPageTopQWebPageUnderstreget UnderlineQWebPage UkendtUnknownQWebPage$Web-inspektr - %2Web Inspector - %2QWebPageHvad er dette? What's This?QWhatsThisAction*QWidget&Afslut&FinishQWizard &Hjlp&HelpQWizard &Nste&NextQWizard&Nste >&Next >QWizard< &Tilbage< &BackQWizardAnnullerCancelQWizard UdfrCommitQWizardFortstContinueQWizard FrdigDoneQWizardG tilbageGo BackQWizard HjlpHelpQWizard %1 - [%2] QWorkspace&Luk&Close QWorkspace &Flyt&Move QWorkspace&Gendan&Restore QWorkspace&Strrelse&Size QWorkspace&Fjern skygge&Unshade QWorkspaceLukClose QWorkspaceMa&ksimr Ma&ximize QWorkspaceMi&nimr Mi&nimize QWorkspaceMinimerMinimize QWorkspaceGendan ned Restore Down QWorkspaceSk&yggeSh&ade QWorkspaceBliv p &toppen Stay on &Top QWorkspaceEnkodningsdeklaration eller fri deklaration forventet ved lsning af XML-deklarationYencoding declaration or standalone declaration expected while reading the XML declarationQXmlVfejl i tekstdeklaration p en ekstern enhed3error in the text declaration of an external entityQXmlZder opstod fejl under fortolking af kommentar$error occurred while parsing commentQXmlVder opstod fejl under fortolking af indhold$error occurred while parsing contentQXmltder opstod fejl under fortolking af dokumenttypedefinition5error occurred while parsing document type definitionQXmlVder opstod fejl under fortolking af element$error occurred while parsing elementQXmlZder opstod fejl under fortolking af reference&error occurred while parsing referenceQXmlDFejltilstand rejst af datamodtagererror triggered by consumerQXmlxEksternt parset generel entitetsreference ikke tilladt i DTD;external parsed general entity reference not allowed in DTDQXmlEksternt parset generel entitetsreference ikke tilladt i attributvrdiGexternal parsed general entity reference not allowed in attribute valueQXmlfintern generel entitetsreference ikke tilladt i DTD4internal general entity reference not allowed in DTDQXmlPUgyldigt navn for processing instruction'invalid name for processing instructionQXml"bogstav forventetletter is expectedQXmlLmere end n definition p dokumenttype&more than one document type definitionQXml*der opstod ingen fejlno error occurredQXml&rekursive entiteterrecursive entitiesQXmlpfri deklaration forventet ved lsning af XML-deklarationAstandalone declaration expected while reading the XML declarationQXml tag mismatchQXmluventet tegnunexpected characterQXml2uventet afslutning p filunexpected end of fileQXmlZufortolket enhedsreference i forkert kontekst*unparsed entity reference in wrong contextQXmldversion forventet under lsning af XML-deklaration2version expected while reading the XML declarationQXmlBForkert vrdi for fri deklaration&wrong value for standalone declarationQXmlF%1 er en ugyldig PUBLIC identifier.#%1 is an invalid PUBLIC identifier. QXmlStreamB%1 er et ugyldigt enkodningsnavn.%1 is an invalid encoding name. QXmlStream\%1 er et ugyldigt processing-instruction-navn.-%1 is an invalid processing instruction name. QXmlStream, men fik ' , but got ' QXmlStream*Attribut redefineret.Attribute redefined. QXmlStreamBEnkodning %1 er ikke understttetEncoding %1 is unsupported QXmlStreamFIndhold med forkert enkodning lst.(Encountered incorrectly encoded content. QXmlStream:Enheden '%1' ikke deklareret.Entity '%1' not declared. QXmlStreamForventet Expected  QXmlStream&Forventet tegndata.Expected character data. QXmlStreamDEkstra indhold sidst i dokumentet.!Extra content at end of document. QXmlStream<Ulovligt navnerumsdeklaration.Illegal namespace declaration. QXmlStream$Ugyldigt XML-tegn.Invalid XML character. QXmlStream$Ugyldigt XML-navn.Invalid XML name. QXmlStream8Ugyldigt XML-versionsstreng.Invalid XML version string. QXmlStreamFUgyldig attribut i XML-deklaration.%Invalid attribute in XML declaration. QXmlStream,Ugyldig tegnreference.Invalid character reference. QXmlStream$Ugyldigt dokument.Invalid document. QXmlStream(Ugyldig enhedsvrdi.Invalid entity value. QXmlStreamJUgyldigt processing-instruction-navn.$Invalid processing instruction name. QXmlStreamJNDATA i parameterentitetsdeklaration.&NDATA in parameter entity declaration. QXmlStreamJNavnerumsprfiks '%1' ikke deklareret"Namespace prefix '%1' not declared QXmlStream@bner og afslutter tag-mismatch. Opening and ending tag mismatch. QXmlStream<Dokument sluttede for tidligt.Premature end of document. QXmlStream2Rekursiv entitet opdaget.Recursive entity detected. QXmlStreambReference til ekstern enhed '%1' i attributvrdi.5Reference to external entity '%1' in attribute value. QXmlStreamFReference to ufortolket enhed '%1'."Reference to unparsed entity '%1'. QXmlStreamJSekvens ']]>' ikke tilladt i indhold.&Sequence ']]>' not allowed in content. QXmlStream(Start-tag forventet.Start tag expected. QXmlStreampDen frie pseudo-attribut skal optrde efter enkodningen.?The standalone pseudo attribute must appear after the encoding. QXmlStreamUventet ' Unexpected ' QXmlStreamHUventet tegn '%1' i public id vrdi./Unexpected character '%1' in public id literal. QXmlStream<XML-version understttes ikke.Unsupported XML version. QXmlStreamZXML-deklaration ikke i starten af dokumentet.)XML declaration not at start of document. QXmlStreamVgSelectQmlJSDebugger::QmlToolBarN%1 er ikke en gyldig vrdi af typen %2.#%1 is not a valid value of type %2. QtXmlPatternsEn %1-attribut skal have en gyldig %2 som vrdi, hvilket %3 ikke er.>An %1-attribute must have a valid %2 as value, which %3 isn't. QtXmlPatternsbEn %1-attribut med vrdi %2 er allerede erklret.8An %1-attribute with value %2 has already been declared. QtXmlPatternsNMindst en komponent skal vre tilstede.'At least one component must be present. QtXmlPatternsvMindst en tidskomponent skal optrde efter %1-skillemrket.?At least one time component must appear after the %1-delimiter. QtXmlPatterns>Dag %1 er ugyldig for mnet %2.Day %1 is invalid for month %2. QtXmlPatternsJDag %1 er udenfor intervallet %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatternsDivision af vrdi af typen %1 med %2 (ikke et tal) er ikke tilladt.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatternsRDivision (%1) med nul (%2) er udefineret.(Division (%1) by zero (%2) is undefined. QtXmlPatternsElement %1 kan ikke serialiseres fordi det optrder udenfor dokument-elementet.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatterns`Heltalsdivision (%1) med nul (%2) er udefineret.0Integer division (%1) by zero (%2) is undefined. QtXmlPatterns`Modulusdivision (%1) med nul (%2) er udefineret.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatternsNMned %1 er udenfor intervallet %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatterns Netvrk timeout.Network timeout. QtXmlPatternshIngen operand i en heltalsdivision, %1, kan vre %2.1No operand in an integer division, %1, can be %2. QtXmlPatternsPOverflow: Kan ikke reprsentere dato %1."Overflow: Can't represent date %1. QtXmlPatternsLOverflow: Dato kan ikke reprsenteres.$Overflow: Date can't be represented. QtXmlPatternsDen frste operand i en heltalsdivision, %1, kan ikke vre uendeligt (%2).FThe first operand in an integer division, %1, cannot be infinity (%2). QtXmlPatternsxDen anden operand i en division, %1, kan ikke vre nul (%2).:The second operand in a division, %1, cannot be zero (%2). QtXmlPatternsDTidspunkt %1:%2:%3.%4 er ugyldigt.Time %1:%2:%3.%4 is invalid. QtXmlPatternsTidspunkt 24:%1:%2.%3 er ugyldigt. Timetal er 24, men minutter, sekunder og millisekunder er ikke alle 0; _Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternslVed cast til %1 fra %2, kan kildevrdien ikke vre %3.:When casting to %1 from %2, the source value cannot be %3. QtXmlPatternsRr %1 er ugyldigt da det begynder med %2.-Year %1 is invalid because it begins with %2. QtXmlPatternsx2goclient-4.0.5.1/res/i18n/qt_de.qm0000644000000000000000000120211212675050177013637 0ustar y+NDy;3?91(E ErE]@Xr%<%%yBx֍D֍֍Z֍85B0L0L000F05!5G 5 DK D/]+PJ,,sH5sH5/H5yH5"H5#LUlL!VE%f@ fi5f0f) fffg>lXB<[D]~`]Ce0C`_`y85ad5ciceFIee0:fL'd yp 7~xn^w{Qh<HtJ3g!nzGvSg`$&S.u(2(4+(4+(4'(5+(5,#*0*yM%*yx*y*T9*0\*0+F+FU+L.+f7;+fU+zg1+M+x++zga+7+ ++: +?++įM+įx+įW+g4rt72:7Y=:9;l=^@BjHC:DC:F0iFn4CFn4GiH/ Hw9LHw9HI'1GIaIe,I#J+NJ+<J6NJ6hJ6J6J6J6J6mJ6!J6(J6=MJ6J6WJcbJlKQOK%DL ALZA_L4LiLb<M5\Mb4MezM M~,N2NBԭO|hVPFEQ`PFE PFE Q IQ4]R4R|TR̼#$R5:SS8^TT8TUTʴ38THSU?^6U| U}6V1V1AVl@=VOVWV VWVڪV6VEX~WaYW5WWT<WTXWTYvX~~X9ZfXeX6X˙XZY6YY]Y*Z+^ Zg^BZkkZ8 Z'[;^"p[=U[f3b5[f3\\]4\]4my\]4\ͪ\"\\catgclGrUNRt>|^|^|Agcw  $v v`DV~ԱG# fB)CeMdW^4L57.h6C1dsIAI=Ⱦ[FgȆ,IRl,ɂÉyXtDD,%TEfRnSɵnmɵn^ɵnfɵnɵnɵn ɵn ɵn,ui]FI B BPT51*N';YgnMՅ1lN*va-K,q.pT8v۔8* > Hd`zB#8,-ɤ{Ya<pc525#Qm%UT%UT(Ŏ,)9.I*4j-cti-ct.%23 5v̷d< m<3%<=>X?2?N!@E@VB!S"FR BMNkyUiW~$]F`o`ưjtHlglyzn%l}Ͻoivtyjvty/.ShN6$15ml %" =H7=%9^G4)j; k6 ]6x6S]^CaM[xPRTۅ=!~.Md\s+E+hEi+{Q=8A;bτ !gN`/nAAjm[yLQt$&CCvTDnU:d8px95[mM;ME<EInwKw)6eQ^ I[ ~jڎZn 4Rymf!e&)d{*/ed* +\+N5,1,N~6 ;O;?4TByEcK>F :IQK~NjOZf\S~,\cn"\If`FbF b}cփR,fg&4jC,mn3qyqntulu(HF{>r}kaq}7R>Cr7~ H݈?m_yz7>K'$ $J:2RV+]:(duSC,.OʁIr^K3L&֊h}*>לS ހ.c nS,a6.*dhSҕ?q";yω$"aO-VI,ߓAyqCn9 n47^3/0JqHA=o&H`u&s,n. q/_04rg4!D5I-5>8w?oBM#C,IxSeJKRL=MOR.#R>XE%ۊYM=)YMJ)^mdKnh^SiYn5nLnorsscoscw(=x0/^AR2p"%Npۊh#at);TQNc](b]&MI:*IKILQIIIrwItI(%ZQLIMIYMiMyNLQLLM KLIOwNNNO9NAuDAuDO(Do66,4,y@,,?,t,2]<>^JrN+hVX|.b_>q.-ɘeA˓J5$AK 4T8fR>fR(G>*&<3U/Z_k97NC1NF');3|Q~FcWD S5PqEsVVfR|kTǵ5-Hu[ 3 ɛ Q O^*ΜdHi' \=b lK"o$$%CT)&~4&P)2qN)d+,53&5P8Q'8QU;_?"?>u?%lFu[KNK-M9N>}O>$2RU5ƶV|6]\]e}eg^VkXy^P{yw?Ji5tZ05tF)Z:*Ξz6C8 ZrG%;nlnn#aصǥ'k]+]H+s+GD`ȴn,t7{y]2_;8Y/ xA8rv9\7`Qs7SϾW6N%ea%E:{dbKYC- d7Ż5VUüN *.C^Oƨ5ƨu˾fҝz>Lل7t)Qi{է?t؊=&؊=@Z>i}ezܓ7vܳߺfNft|$롥`#+!GY~@N~mk'^!DDs p $ .$~b(z~b/o@oMpt$ `!c%?bj'()ў+uL+3,8O/}/g/1v4~6 \8<Y? 2 AB>NIDD 1EFgVG<-G0 Gb.uHULAUCM~/4OriPѧXQMRCHSnrTemU3UkKUUYUT[dX!YĻ7!ZZ=Z>1Z>gZ>[[-]k*(>]c4^n_PgR_P_pt`u0d`Hd`\e?iBoiOkQm?$CoNmxy; {Z{sG}uWg}w*R}wh}wپ}ahs-op~z~~G=~F<ly l{r-'bHp~z~~E;~D:BivttYd'w.*.h3XP[iUV>h#ru<kfL5DY|^vt\tJthtN! w*-nl@_ V+a9+\UsȄMFnC xʢqʢlʬQƴdrdddʤd^0؛59b}эiʖ,+W$oNS㵾SW)ukgy U{UdrT>eB*hws/ 2,%Y ;^f# b !"X'9X+RE,D0/Rn2342 5@5Wm6D7D9!|:]:%TM?;-CU]CUaDE[GtqINkJ0מJ%&KAKqQ~TU|{''9էNxqBinӏ-nҺK<f+¡E.PYͮ;·i·-f·ýQ$׳:NU:nTT~=1 wnv/MVfC;uun9-nde6Ht_U*/7WE:yȥ›NvU@ON'u:c%5/TpA e~އi~8RWJb$%i9%MwbJ!B##%%%d"'-.g.5kE =l=5'=<?z?@J=@T[CtI2QEfeNPT,PV%F1V%GXU &Z+`/awPbD`bGqffdfܠgAHhI3i$9kn>wx1 <z*29|+|QRdJd4+U:Oc(.:z$c.R4C5<^\QIl#3V(rNXm;^ewnJYb†5i1 Cwq~VUFʴ5ʴ5ʶI"ϡ$ы#֬D8^ YJӞԄ~۔#]D'N6dAF5Q%F5^YpW+>u4N|&D6I=I&oAs9 r# }$ qeH= ڤ ڤ! ڥ dp E6 E  AcB Ac* k n-' *u 35 35 6M a WMN `B? ba bb5 b`,U b`P d& gU~ i3X kk laL lf~ lu^ ok& qv qv qzd? tNG ua xq |o& ~0 | |9 Y n & Gq Jm  tBM t* ? . & . p ;   ) F>,@  3`  o le, ]  [ o 7  B ҉ 4 KB > >v = U kK   g T n"  N\  9>4 VL &r u"̻  Y+3 Y> 05 KOV  @ 팤 E9 l~rJ %' MNBK 5 O T /O CJ n = q7  Dj o }ֺ 9,W oM Ą( De  e $g )p */9r .> 5 741w 7u ;t  e( ee% e{4 f1> f* g5U gn hY k,D rD"KZ t>7l m v" :f f 9 f !  4a  .8  * s< s$ ~̂ AAD 9 1  9 05[ r?  m,E 55 ݡEP ! #-t #-th ' 0Nb 5 5\J Aw) CU9 E9B I L\ L\6 L] Mc\ O@ P..x] R SdR Vj W7 ZU2 \OtO ]$om ` ck f)9h f)!W f= io> j\4 l#[* lub m`S| n|nB wB xRL yr z {n }Qf ~L8R >  _V H7o H `4  n|m СDl $#K .@c:  I if <R _ t N yr g / zdo D+ % Jr /: ̺: &C N&S -D; .w! x ۷ ru k, k U U)Py T>T{ <R k> 0 W 0U    $r\( ӳ ~ z+ײ  A  N  I3 + 9N %9:  N? Vk A> L< s xHVQ R I "s ] !pb $v %6b )Ε .fT 2 7FD =ю< >E) >F >H >Uz >l >w > > > > > ?t| A^ B~X/ DT3 Fn0 G)? Ia Ie J> L Mb^w P@I QT RV+N RV RV RnO S.tG SG# S T~ Y Yu [ \ eN hۮ2 j7o m( pf sL uE v` Y Bg  Tm T T TI ۼ i q A a. 3B B /. ,( ,2 S )d )d" T~ R^ p .n| .^ . .[ . . . | q] >a y .'B a+ a P yQ : yX e.w x2l C ' N> =  hN ҂ Ӵ&c ء ߢ.& d ># % uq t  jz |0t 5 b# Je Xtn| n~ 9 ) t #  a{ s ._ BC :bQ Uqc   ʜd f f f $\ >aQ ,  ! $.z  2 #$ #= %n@ '. (I$i- (NN +>g +ks 0E 641 ;ɾ Cn Fg K9 LcV Pt Pt R"yв S,` T> `K c= dB) fe( fe˧ g  gC hQ$/ iFCB i& iB jN$ j1 jӮe kGno l" m9 m9'[ n s'~ uW( ux< uzf v 9 v&X v{ N w)Y wg w w}) w}h w} ynŦ |[ P uec > J < v JXc b r | ^ %  @)  $^ }u R %7" P  xN "X U| ɰec FjL  X? bv Y' &   x D@ ) +2  t5 t5 z.  ? >q  D )48 Pv S1$RL;bpw>Y @a(T_7-'(6&<RnN{gT_\ r!a&-Q*\l*+1/E^/E1/E4Qt%.7SԨIEI.I_QKNaOO}iS5XRu XZZo[ 4[ Ga.a.Mwa%"gck%i$nyGsW;#v6v<vɅGIy$ "y?."H~TT%Gi>eF[8=a4@}NNH>4^)''v4ʢy;~+OSkCNS^ 5BǗO4:}.Z5DBZC5ܰL3LӮ`vRӮ`JӮ`lPA֒ HFryݖmU[y4^hurF"yjj:a x G . : #GRlDn?ǵ4"#L"#$UE%4%4.'*2K,-Y-vc0i)Q0R1cU1c2wTQDTjF74}GHEJdS[JKp2L$.W!][{+&\O1c5*c5ctg3iC7iT*clpGqiiv)٭yCU{`w{~aO6$VCL&2&DDH$t6{2c`n?Y|[ >)?nL0ͣX;;$t >bMN Ef"~gdL%r^r-1kyp֠U"k"'T044Lnl >AB Pt2ck dUwiqSchlieen Close Tab CloseButtonUngltige URL Invalid URL FakeReplyber %1About %1MAC_APPLICATION_MENU%1 ausblendenHide %1MAC_APPLICATION_MENU"Andere ausblenden Hide OthersMAC_APPLICATION_MENU Einstellungen...Preferences...MAC_APPLICATION_MENU%1 beendenQuit %1MAC_APPLICATION_MENUDiensteServicesMAC_APPLICATION_MENUAlle anzeigenShow AllMAC_APPLICATION_MENUEingabehilfen AccessibilityPhonon::Kommunikation CommunicationPhonon:: SpieleGamesPhonon:: MusikMusicPhonon::$Benachrichtigungen NotificationsPhonon:: VideoVideoPhonon:: <html>Es wird zum Audiogert <b>%1</b> geschaltet, <br/>da es hher priorisiert ist oder spezifisch fr diesen Stream konfiguriert wurde.</html>Switching to the audio playback device %1
which has higher preference or is specifically configured for this stream.Phonon::AudioOutput<html>Das Audiogert <b>%1</b> wurde aktiviert,<br/>da es gerade verfgbar und hher priorisiert ist.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput<html>Das Audiogert <b>%1</b> funktioniert nicht.<br/>Es wird stattdessen <b>%2</b> verwendet.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput:Zurckschalten zum Gert '%1'Revert back to device '%1'Phonon::AudioOutputAchtung: Die grundlegenden GStreamer-Plugins sind nicht installiert. Die Audio- und Video-Untersttzung steht nicht zur Verfgung.~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::BackendAchtung: Das Paket gstreamer0.10-plugins-good ist nicht installiert. Einige Video-Funktionen stehen nicht zur Verfgung.Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendEs sind nicht alle erforderlichen Codecs installiert. Um diesen Inhalt abzuspielen, muss der folgende Codec installiert werden: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObject`Das Abspielen konnte nicht gestartet werden. Bitte berprfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass das Paket libgstreamer-plugins-base installiert ist.wCannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.Phonon::Gstreamer::MediaObject\Die Medienquelle konnte nicht gefunden werden.Could not decode media source.Phonon::Gstreamer::MediaObject\Die Medienquelle konnte nicht gefunden werden.Could not locate media source.Phonon::Gstreamer::MediaObjectDas Audiogert konnte nicht geffnet werden, da es bereits in Benutzung ist.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObject\Die Medienquelle konnte nicht geffnet werden.Could not open media source.Phonon::Gstreamer::MediaObject@Ungltiger Typ der Medienquelle.Invalid source type.Phonon::Gstreamer::MediaObjectVDer Skript-Hilfsassistent des Codecs fehlt.&Missing codec helper script assistant.Phonon::Gstreamer::MediaObjectzDie Installation des Codec-Plugins ist fehlgeschlagen fr: %0.Plugin codec installation failed for codec: %0Phonon::Gstreamer::MediaObject$Zugriff verweigert Access denied Phonon::MMF"Existiert bereitsAlready exists Phonon::MMFAudio-Ausgabe Audio Output Phonon::MMFxAudio- oder Videokomponenten konnten nicht abgespielt werden-Audio or video components could not be played Phonon::MMF0Fehler bei Audio-AusgabeAudio output error Phonon::MMFZEs konnte keine Verbindung hergestellt werdenCould not connect Phonon::MMFDRM-Fehler DRM error Phonon::MMF"Fehler im Decoder Decoder error Phonon::MMFGetrennt Disconnected Phonon::MMF*Bereits in VerwendungIn use Phonon::MMF.Unzureichende BandweiteInsufficient bandwidth Phonon::MMFUngltige URL Invalid URL Phonon::MMF(Ungltiges ProtokollInvalid protocol Phonon::MMF Multicast-FehlerMulticast error Phonon::MMF\Fehler bei der Kommunikation ber das NetzwerkNetwork communication error Phonon::MMF0Netzwerk nicht verfgbarNetwork unavailable Phonon::MMFKein FehlerNo error Phonon::MMFNicht gefunden Not found Phonon::MMFNicht bereit Not ready Phonon::MMF"Nicht untersttzt Not supported Phonon::MMFFEs ist kein Speicher mehr verfgbar Out of memory Phonon::MMFberlaufOverflow Phonon::MMFBPfad konnte nicht gefunden werdenPath not found Phonon::MMF$Zugriff verweigertPermission denied Phonon::MMFJFehler bei Proxy-Server-KommunikationProxy server error Phonon::MMF<Proxy-Server nicht untersttztProxy server not supported Phonon::MMFServer alert Server alert Phonon::MMF6Streaming nicht untersttztStreaming not supported Phonon::MMF$Audio-AusgabegertThe audio output device Phonon::MMFUnterlauf Underflow Phonon::MMF.Unbekannter Fehler (%1)Unknown error (%1) Phonon::MMF0Fehler bei Video-AusgabeVideo output error Phonon::MMF(Fehler beim DownloadDownload error Phonon::MMF::AbstractMediaPlayerHDer URL konnte nicht geffnet werdenError opening URL Phonon::MMF::AbstractMediaPlayerLDie Datei konnte nicht geffnet werdenError opening file Phonon::MMF::AbstractMediaPlayerTDie Ressource konnte nicht geffnet werdenError opening resource Phonon::MMF::AbstractMediaPlayerDie Quelle konnte nicht geffnet werden: Ressource nicht geffnet)Error opening source: resource not opened Phonon::MMF::AbstractMediaPlayerLDas Laden des Clips ist fehlgeschlagenLoading clip failed Phonon::MMF::AbstractMediaPlayer^Das Abspielen ist im Grundzustand nicht mglichNot ready to play Phonon::MMF::AbstractMediaPlayer"Abspielen beendetPlayback complete Phonon::MMF::AbstractMediaPlayer\Die Lautstrke konnte nicht eingestellt werdenSetting volume failed Phonon::MMF::AbstractMediaPlayerRDie Position konnte nicht bestimmt werdenGetting position failed Phonon::MMF::AbstractVideoPlayerJDer Clip konnte nicht geffnet werdenOpening clip failed Phonon::MMF::AbstractVideoPlayer2Fehler bei Pause-Funktion Pause failed Phonon::MMF::AbstractVideoPlayer8Suchoperation fehlgeschlagen Seek failed Phonon::MMF::AbstractVideoPlayer %1 Hz%1 HzPhonon::MMF::AudioEqualizerRDie Position konnte nicht bestimmt werdenGetting position failedPhonon::MMF::AudioPlayer8Fehler bei der Video-AnzeigeVideo display errorPhonon::MMF::DsaVideoPlayerAktiviertEnabledPhonon::MMF::EffectFactoryDHochfrequenz-Abklingverhltnis (%)Decay HF ratio (%) Phonon::MMF::EnvironmentalReverb Abklingzeit (ms)Decay time (ms) Phonon::MMF::EnvironmentalReverbDichte (%) Density (%) Phonon::MMF::EnvironmentalReverbDiffusion (%) Diffusion (%) Phonon::MMF::EnvironmentalReverb4Verzgerung des Echos (ms)Reflections delay (ms) Phonon::MMF::EnvironmentalReverb*Strke des Echos (mB)Reflections level (mB) Phonon::MMF::EnvironmentalReverb<Verzgerung des Nachhalls (ms)Reverb delay (ms) Phonon::MMF::EnvironmentalReverb2Strke des Nachhalls (mB)Reverb level (mB) Phonon::MMF::EnvironmentalReverb8Hochfrequenz-Pegel des Raums Room HF level Phonon::MMF::EnvironmentalReverb(Pegel des Raums (mB)Room level (mB) Phonon::MMF::EnvironmentalReverbDie Quelle konnte nicht geffnet werden: Der Medientyp konnte nicht bestimmt werden8Error opening source: media type could not be determinedPhonon::MMF::MediaObjectDie Quelle konnte nicht geffnet werden: Die Ressource ist komprimiert,Error opening source: resource is compressedPhonon::MMF::MediaObjectxDie Quelle konnte nicht geffnet werden: Ungltige Ressource(Error opening source: resource not validPhonon::MMF::MediaObjectDie Quelle konnte nicht geffnet werden: Dieser Typ wird nicht untersttzt(Error opening source: type not supportedPhonon::MMF::MediaObjectDer angeforderte Internetzugriffspunkt konnte nicht gesetzt werdenFailed to set requested IAPPhonon::MMF::MediaObjectStrke (%) Level (%)Phonon::MMF::StereoWidening8Fehler bei der Video-AnzeigeVideo display errorPhonon::MMF::SurfaceVideoPlayerStummschaltungMutedPhonon::VolumeSliderLautstrke: %1% Volume: %1%Phonon::VolumeSlider6%1, %2 sind nicht definiert%1, %2 not definedQ3Accel\Mehrdeutige %1 knnen nicht verarbeitet werdenAmbiguous %1 not handledQ3AccelLschenDelete Q3DataTable FalschFalse Q3DataTableEinfgenInsert Q3DataTableWahrTrue Q3DataTableAktualisierenUpdate Q3DataTable%1 Datei kann nicht gefunden werden. berprfen Sie Pfad und Dateinamen.+%1 File not found. Check path and filename. Q3FileDialog&Lschen&Delete Q3FileDialog &Nein&No Q3FileDialog&OK&OK Q3FileDialog&ffnen&Open Q3FileDialog&Umbenennen&Rename Q3FileDialogS&peichern&Save Q3FileDialog&Unsortiert &Unsorted Q3FileDialog&Ja&Yes Q3FileDialogv<qt>Sind Sie sicher, dass Sie %1 "%2" lschen mchten?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog Alle Dateien (*) All Files (*) Q3FileDialog$Alle Dateien (*.*)All Files (*.*) Q3FileDialogAttribute Attributes Q3FileDialog ZurckBack Q3FileDialogAbbrechenCancel Q3FileDialog>Datei kopieren oder verschiebenCopy or Move a File Q3FileDialog,Neuen Ordner erstellenCreate New Folder Q3FileDialog DatumDate Q3FileDialog%1 lschen Delete %1 Q3FileDialogAusfhrlich Detail View Q3FileDialogVerzeichnisDir Q3FileDialogVerzeichnisse Directories Q3FileDialogVerzeichnis: Directory: Q3FileDialog FehlerError Q3FileDialog DateiFile Q3FileDialogDatei&name: File &name: Q3FileDialogDatei&typ: File &type: Q3FileDialog$Verzeichnis suchenFind Directory Q3FileDialogGesperrt Inaccessible Q3FileDialog Liste List View Q3FileDialogSu&chen in: Look &in: Q3FileDialogNameName Q3FileDialog"Neues Verzeichnis New Folder Q3FileDialog(Neues Verzeichnis %1 New Folder %1 Q3FileDialog&Neues Verzeichnis 1 New Folder 1 Q3FileDialog,Ein Verzeichnis zurckOne directory up Q3FileDialog ffnenOpen Q3FileDialog ffnenOpen  Q3FileDialog4Vorschau des Datei-InhaltsPreview File Contents Q3FileDialog@Vorschau der Datei-InformationenPreview File Info Q3FileDialogErne&ut ladenR&eload Q3FileDialogNur Lesen Read-only Q3FileDialogLesen/Schreiben Read-write Q3FileDialogLesen: %1Read: %1 Q3FileDialogSpeichern unterSave As Q3FileDialog4Whlen Sie ein VerzeichnisSelect a Directory Q3FileDialog8&Versteckte Dateien anzeigenShow &hidden files Q3FileDialog GreSize Q3FileDialogSortierenSort Q3FileDialog*Nach &Datum sortieren Sort by &Date Q3FileDialog*Nach &Namen sortieren Sort by &Name Q3FileDialog*Nach &Gre sortieren Sort by &Size Q3FileDialogSpezialattributSpecial Q3FileDialog6Verknpfung mit VerzeichnisSymlink to Directory Q3FileDialog*Verknpfung mit DateiSymlink to File Q3FileDialog8Verknpfung mit SpezialdateiSymlink to Special Q3FileDialogTypType Q3FileDialogNur Schreiben Write-only Q3FileDialogSchreiben: %1 Write: %1 Q3FileDialogdas Verzeichnis the directory Q3FileDialogdie Dateithe file Q3FileDialogdie Verknpfung the symlink Q3FileDialogJKonnte Verzeichnis nicht erstellen %1Could not create directory %1 Q3LocalFs@Konnte nicht geffnet werden: %1Could not open %1 Q3LocalFsBKonnte Verzeichnis nicht lesen %1Could not read directory %1 Q3LocalFs\Konnte Datei oder Verzeichnis nicht lschen %1%Could not remove file or directory %1 Q3LocalFsRKonnte nicht umbenannt werden: %1 nach %2Could not rename %1 to %2 Q3LocalFsFKonnte nicht geschrieben werden: %1Could not write %1 Q3LocalFsAnpassen... Customize... Q3MainWindowAusrichtenLine up Q3MainWindowBOperation von Benutzer angehaltenOperation stopped by the userQ3NetworkProtocolAbbrechenCancelQ3ProgressDialogAnwendenApply Q3TabDialogAbbrechenCancel Q3TabDialog VoreinstellungenDefaults Q3TabDialog HilfeHelp Q3TabDialogOKOK Q3TabDialog&Kopieren&Copy Q3TextEditEinf&gen&Paste Q3TextEdit"Wieder&herstellen&Redo Q3TextEdit&Rckgngig&Undo Q3TextEditLschenClear Q3TextEdit&AusschneidenCu&t Q3TextEditAlles auswhlen Select All Q3TextEditSchlieenClose Q3TitleBar(Schliet das FensterCloses the window Q3TitleBarVEnthlt Befehle zum ndern der Fenstergre*Contains commands to manipulate the window Q3TitleBarvZeigt den Namen des Fensters und enthlt Befehle zum ndernFDisplays the name of the window and contains controls to manipulate it Q3TitleBarVollbildmodusMakes the window full screen Q3TitleBarMaximierenMaximize Q3TitleBarMinimierenMinimize Q3TitleBar*Minimiert das FensterMoves the window out of the way Q3TitleBarRStellt ein maximiertes Fenster wieder her&Puts a maximized window back to normal Q3TitleBarRStellt ein minimiertes Fenster wieder her&Puts a minimized window back to normal Q3TitleBar Wiederherstellen Restore down Q3TitleBar Wiederherstellen Restore up Q3TitleBar SystemSystem Q3TitleBarMehr...More... Q3ToolBar(unbekannt) (unknown) Q3UrlOperatorDas Protokoll `%1' untersttzt nicht das Kopieren oder Verschieben von Dateien oder VerzeichnissenIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorDas Protokoll `%1' untersttzt nicht das Anlegen neuer Verzeichnisse;The protocol `%1' does not support creating new directories Q3UrlOperatortDas Protokoll `%1' untersttzt nicht das Laden von Dateien0The protocol `%1' does not support getting files Q3UrlOperatorDas Protokoll `%1' untersttzt nicht das Auflisten von Verzeichnissen6The protocol `%1' does not support listing directories Q3UrlOperator|Das Protokoll `%1' untersttzt nicht das Speichern von Dateien0The protocol `%1' does not support putting files Q3UrlOperatorDas Protokoll `%1' untersttzt nicht das Lschen von Dateien oder Verzeichnissen@The protocol `%1' does not support removing files or directories Q3UrlOperatorDas Protokoll `%1' untersttzt nicht das Umbenennen von Dateien oder Verzeichnissen@The protocol `%1' does not support renaming files or directories Q3UrlOperatorRDas Protokoll `%1' wird nicht untersttzt"The protocol `%1' is not supported Q3UrlOperator&Abbrechen&CancelQ3WizardAb&schlieen&FinishQ3Wizard &Hilfe&HelpQ3Wizard&Weiter >&Next >Q3Wizard< &Zurck< &BackQ3Wizard*Verbindung verweigertConnection refusedQAbstractSockethDas Zeitlimit fr die Verbindung wurde berschrittenConnection timed outQAbstractSocketHRechner konnte nicht gefunden werdenHost not foundQAbstractSocketBDas Netzwerk ist nicht erreichbarNetwork unreachableQAbstractSocketZDiese Socket-Operation wird nicht untersttzt$Operation on socket is not supportedQAbstractSocketNicht verbundenSocket is not connectedQAbstractSocketfDas Zeitlimit fr die Operation wurde berschrittenSocket operation timed outQAbstractSocket &Alles auswhlen &Select AllQAbstractSpinBox&Inkrementieren&Step upQAbstractSpinBox&Dekrementieren Step &downQAbstractSpinBoxAnkreuzenCheckQAccessibleButtonDrckenPressQAccessibleButtonLschenUncheckQAccessibleButtonAktivierenActivate QApplicationPAktiviert das Hauptfenster der Anwendung#Activates the program's main window QApplicationDie Anwendung '%1' bentigt Qt %2; es wurde aber Qt %3 gefunden.,Executable '%1' requires Qt %2, found Qt %3. QApplicationDDie Qt-Bibliothek ist inkompatibelIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Abbrechen&Cancel QAxSelectCOM-&Objekt: COM &Object: QAxSelectOKOK QAxSelect2ActiveX-Element auswhlenSelect ActiveX Control QAxSelectAnkreuzenCheck QCheckBoxUmschaltenToggle QCheckBoxLschenUncheck QCheckBoxRZu benutzerdefinierten Farben &hinzufgen&Add to Custom Colors QColorDialogGrundfar&ben &Basic colors QColorDialog4&Benutzerdefinierte Farben&Custom colors QColorDialog &Grn:&Green: QColorDialog &Rot:&Red: QColorDialog&Sttigung:&Sat: QColorDialog&Helligkeit:&Val: QColorDialogA&lphakanal:A&lpha channel: QColorDialog Bla&u:Bl&ue: QColorDialogFarb&ton:Hu&e: QColorDialogFarbauswahl Select Color QColorDialogSchlieenClose QComboBox FalschFalse QComboBox ffnenOpen QComboBoxWahrTrue QComboBox*%1: existiert bereits%1: already existsQCoreApplication$%1: Nicht existent%1: does not existQCoreApplicationD%1: ftok-Aufruf ist fehlgeschlagen%1: ftok failedQCoreApplicationH%1: Ungltige Schlsselangabe (leer)%1: key is emptyQCoreApplicationF%1: Keine Ressourcen mehr verfgbar%1: out of resourcesQCoreApplication,%1: Zugriff verweigert%1: permission deniedQCoreApplicationR%1: Es kann kein Schlssel erzeugt werden%1: unable to make keyQCoreApplication2%1: Unbekannter Fehler %2%1: unknown error %2QCoreApplicationDie Transaktion kann nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QDB2DriverREs kann keine Verbindung aufgebaut werdenUnable to connect QDB2DriverDie Transaktion kann nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QDB2DriverP'autocommit' kann nicht aktiviert werdenUnable to set autocommit QDB2DriverNDie Variable kann nicht gebunden werdenUnable to bind variable QDB2ResultNDer Befehl kann nicht ausgefhrt werdenUnable to execute statement QDB2Result\Der erste Datensatz kann nicht abgeholt werdenUnable to fetch first QDB2Result`Der nchste Datensatz kann nicht abgeholt werdenUnable to fetch next QDB2ResultVDer Datensatz %1 kann nicht abgeholt werdenUnable to fetch record %1 QDB2ResultTDer Befehl kann nicht initialisiert werdenUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditBDie Klasse Animation ist abstraktAnimation is an abstract classQDeclarativeAbstractAnimationDie Eigenschaft "%1" existiert nicht und kann daher nicht animiert werden)Cannot animate non-existent property "%1"QDeclarativeAbstractAnimationDie Eigenschaft "%1" ist schreibgeschtzt und kann daher nicht animiert werden&Cannot animate read-only property "%1"QDeclarativeAbstractAnimationREs kann keine Zeitdauer <0 gesetzt werdenCannot set a duration of < 0QDeclarativeAnchorAnimationEin Baseline-Anker darf nicht zusammen mit weiteren Ankerangaben fr oben, unten und vertikal zentriert verwendet werden.SBaseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.QDeclarativeAnchorsEs kann kein Anker zu einer horizontalen oder vertikalen Kante angegeben werden.3Cannot anchor a horizontal edge to a vertical edge.QDeclarativeAnchorsVertikale und horizontale Kanten knnen nicht mit Ankern verbunden werden.3Cannot anchor a vertical edge to a horizontal edge.QDeclarativeAnchorsfEin Element kann keinen Anker zu sich selbst haben.Cannot anchor item to self.QDeclarativeAnchorstEs kann kein Anker zu einem Null-Element angegeben werden.Cannot anchor to a null item.QDeclarativeAnchorsDas Ziel eines Anker muss ein Elternelement oder Element der gleichen Ebene sein.8Cannot anchor to an item that isn't a parent or sibling.QDeclarativeAnchorsAnkerangaben fr links, rechts und horizontal zentriert drfen nicht zusammen auftreten.0Cannot specify left, right, and hcenter anchors.QDeclarativeAnchorsAnkerangaben fr oben, unten und vertikal zentriert drfen nicht zusammen auftreten.0Cannot specify top, bottom, and vcenter anchors.QDeclarativeAnchorsBei der Operation 'centerIn' wurde eine potentielle Endlosschleife der Anker festgestellt.*Possible anchor loop detected on centerIn.QDeclarativeAnchorsBei der Flloperation wurde eine potentielle Endlosschleife der Anker festgestellt.&Possible anchor loop detected on fill.QDeclarativeAnchorsBei einem horizontalen Anker wurde eine potentielle Endlosschleife der Anker festgestellt.3Possible anchor loop detected on horizontal anchor.QDeclarativeAnchorsBei einem vertikalen Anker wurde eine potentielle Endlosschleife der Anker festgestellt.1Possible anchor loop detected on vertical anchor.QDeclarativeAnchorsDiese Version der Qt-Bibliothek wurde ohne Untersttzung fr die Klasse QMovie erstellt'Qt was built without support for QMovieQDeclarativeAnimatedImageN'Application' ist eine abstrakte Klasse Application is an abstract classQDeclarativeApplicationDie zu einem Behavior-Element gehrende Animation kann nicht gendert werden.3Cannot change the animation assigned to a Behavior.QDeclarativeBehaviorBei der fr die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt'Binding loop detected for property "%1"QDeclarativeBindingBei der fr die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt'Binding loop detected for property "%1"QDeclarativeCompiledBindingsT"%1" kann nicht auf "%2" angewandt werden"%1" cannot operate on "%2"QDeclarativeCompilerz"%1.%2" ist in dieser Version der Komponente nicht verfgbar 5"%1.%2" is not available due to component versioning.QDeclarativeCompilerP"%1.%2" ist in %3 %4.%5 nicht verfgbar.%"%1.%2" is not available in %3 %4.%5.QDeclarativeCompilerrDie Alias-Eigenschaft berschreitet die Grenzen des Alias#Alias property exceeds alias boundsQDeclarativeCompilerAn dieser Stelle knnen keine Eigenschaften des Typs 'attached' verwendet werden'Attached properties cannot be used hereQDeclarativeCompilerlListen kann nur eine einzige Bindung zugewiesen werden$Can only assign one binding to listsQDeclarativeCompilerBei einer Eigenschaft, die Teil einer Gruppierung ist, ist keine direkte Wertzuweisung zulssig4Cannot assign a value directly to a grouped propertyQDeclarativeCompilerEinem Signal knnen keine Werte zugewiesen werden (es wird ein Skript erwartet)@Cannot assign a value to a signal (expecting a script to be run)QDeclarativeCompilerEine Zuweisung mehrerer Werte an eine Skript-Eigenschaft ist nicht zulssig2Cannot assign multiple values to a script propertyQDeclarativeCompilerEine Zuweisung mehrerer Werte an eine einfache Eigenschaft ist nicht zulssig4Cannot assign multiple values to a singular propertyQDeclarativeCompilerhZuweisung eines Objekts an eine Liste nicht zulssigCannot assign object to listQDeclarativeCompilertZuweisung eines Objekts an eine Eigenschaft nicht zulssig Cannot assign object to propertyQDeclarativeCompilerZuweisung eines einfachen Werts (primitive) an eine Liste nicht zulssig!Cannot assign primitives to listsQDeclarativeCompilerEs kann keine Zuweisung erfolgen, da keine Vorgabe-Eigenschaft existiert.Cannot assign to non-existent default propertyQDeclarativeCompilerEs kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert+Cannot assign to non-existent property "%1"QDeclarativeCompilerhEs kann keine leere Komponentenangabe erzeugt werden+Cannot create empty component specificationQDeclarativeCompilerEine als 'FINAL' ausgewiesene Eigenschaft kann nicht berschrieben werdenCannot override FINAL propertyQDeclarativeCompilerKomponenten drfen auer id keine weiteren Eigenschaften enthalten;Component elements may not contain properties other than idQDeclarativeCompilerzKomponentenobjekte knnen keine neuen Funktionen deklarieren./Component objects cannot declare new functions.QDeclarativeCompilerKomponentenobjekte knnen keine neuen Eigenschaften deklarieren.0Component objects cannot declare new properties.QDeclarativeCompilertKomponentenobjekte knnen keine neuen Signale deklarieren.-Component objects cannot declare new signals.QDeclarativeCompilerXMehrfaches Auftreten der Vorgabe-EigenschaftDuplicate default propertyQDeclarativeCompilerRMehrfaches Auftreten eines MethodennamensDuplicate method nameQDeclarativeCompilerZMehrfaches Auftreten eines EigenschaftsnamensDuplicate property nameQDeclarativeCompilerNMehrfaches Auftreten eines SignalnamensDuplicate signal nameQDeclarativeCompilerLDas Element kann nicht erzeugt werden.Element is not creatable.QDeclarativeCompiler6Leere EigenschaftszuweisungEmpty property assignmentQDeclarativeCompiler*Leere SignalzuweisungEmpty signal assignmentQDeclarativeCompilerzDer Id-Wert berdeckt eine globale Eigenschaft aus JavaScript-ID illegally masks global JavaScript propertyQDeclarativeCompilernId-Werte drfen nicht mit einem Grobuchstaben beginnen)IDs cannot start with an uppercase letterQDeclarativeCompilertId-Werte drfen nur Buchstaben oder Unterstriche enthalten7IDs must contain only letters, numbers, and underscoresQDeclarativeCompiler|Id-Werte mssen mit einem Buchstaben oder Unterstrich beginnen*IDs must start with a letter or underscoreQDeclarativeCompiler6Ungltiger Name fr MethodeIllegal method nameQDeclarativeCompiler>Ungltiger Name der EigenschaftIllegal property nameQDeclarativeCompiler4Ungltiger Name fr SignalIllegal signal nameQDeclarativeCompilerXAngegebene Signalzuweisung ist nicht korrekt'Incorrectly specified signal assignmentQDeclarativeCompilerVUngltige Quellangabe bei Alias-EigenschaftInvalid alias locationQDeclarativeCompilerUngltige Alias-Referenz. Eine Alias-Referenz muss in der Form <id>, <id>.<property> or <id>.<value property>.<property> angegeben werdenzInvalid alias reference. An alias reference must be specified as , . or ..QDeclarativeCompilerUngltige Referenzierung einer Alias-Eigenschaft. Der Id-Wert "%1" konnte nicht gefunden werden/Invalid alias reference. Unable to find id "%1"QDeclarativeCompilerLUngltige Zuweisung des Bezugselements"Invalid attached object assignmentQDeclarativeCompiler<Inhalt der Komponente ungltig$Invalid component body specificationQDeclarativeCompilerDUngltige Komponentenspezifikation"Invalid component id specificationQDeclarativeCompiler6Ungltiger (leerer) Id-WertInvalid empty IDQDeclarativeCompiler^Falsche Gruppierung bei Zugriff auf EigenschaftInvalid grouped property accessQDeclarativeCompiler|Ungltige Zuweisung bei Eigenschaft: "%1" ist schreibgeschtzt9Invalid property assignment: "%1" is a read-only propertyQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird ein dreidimensionaler Vektor erwartet/Invalid property assignment: 3D vector expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird ein boolescher Wert erwartet-Invalid property assignment: boolean expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Farbspezifikation erwartet+Invalid property assignment: color expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Datumsangabe erwartet*Invalid property assignment: date expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Datumsangabe erwartet.Invalid property assignment: datetime expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird ein Ganzzahlwert erwartet)Invalid property assignment: int expectedQDeclarativeCompiler~Ungltige Zuweisung bei Eigenschaft: Es wird eine Zahl erwartet,Invalid property assignment: number expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Koordinatenangabe fr einen Punkt erwartet+Invalid property assignment: point expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es werden Parameter fr ein Rechteck erwartet*Invalid property assignment: rect expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird ein Skript erwartet,Invalid property assignment: script expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Grenangabe erwartet*Invalid property assignment: size expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Zeichenkette erwartet,Invalid property assignment: string expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine Zeitangabe erwartet*Invalid property assignment: time expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Unbekannter Aufzhlungswert0Invalid property assignment: unknown enumerationQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Es wird eine vorzeichenloser Ganzzahlwert erwartet2Invalid property assignment: unsigned int expectedQDeclarativeCompilerUngltige Zuweisung bei Eigenschaft: Der Typ "%1" ist nicht untersttzt2Invalid property assignment: unsupported type "%1"QDeclarativeCompiler|Ungltige Zuweisung bei Eigenschaft: Es wird eine URL erwartet)Invalid property assignment: url expectedQDeclarativeCompilerPUngltige Schachtelung von EigenschaftenInvalid property nestingQDeclarativeCompiler<Ungltiger Typ der EigenschaftInvalid property typeQDeclarativeCompilerLUngltige Verwendung von EigenschaftenInvalid property useQDeclarativeCompilerhUngltige Verwendung einer Eigenschaft des Typs 'Id'Invalid use of id propertyQDeclarativeCompilerLUngltige Verwendung eines NamensraumsInvalid use of namespaceQDeclarativeCompilerxMethodennamen drfen nicht mit einem Grobuchstaben beginnen3Method names cannot begin with an upper case letterQDeclarativeCompilerDAlias-Eigenschaft ohne QuellangabeNo property alias locationQDeclarativeCompilerfEs existiert kein Bezugselement fr die EigenschaftNon-existent attached objectQDeclarativeCompilerpKein gltiger Name einer Eigenschaft des Typs 'attached'Not an attached property nameQDeclarativeCompilerBZuweisung an Eigenschaft erwartetProperty assignment expectedQDeclarativeCompilerbDer Eigenschaft wurde bereits ein Wert zugewiesen*Property has already been assigned a valueQDeclarativeCompilerEigenschaftsnamen drfen nicht mit einem Grobuchstaben beginnen5Property names cannot begin with an upper case letterQDeclarativeCompilerhMehrfache Zuweisung eines Wertes an eine Eigenschaft!Property value set multiple timesQDeclarativeCompilertSignalnamen drfen nicht mit einem Grobuchstaben beginnen3Signal names cannot begin with an upper case letterQDeclarativeCompilerTEinzelne Zuweisung an Eigenschaft erwartet#Single property assignment expectedQDeclarativeCompilerBUnerwartete Zuweisung des ObjektsUnexpected object assignmentQDeclarativeCompiler.ID-Wert nicht eindeutigid is not uniqueQDeclarativeCompiler*Ungltige (leere) URLInvalid empty URLQDeclarativeComponentLcreateObject: Der Wert ist kein Objekt$createObject: value is not an objectQDeclarativeComponentEs kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens "%1" existiert+Cannot assign to non-existent property "%1"QDeclarativeConnectionspVerbindungen: Verschachtelte Objekte sind nicht zulssig'Connections: nested objects not allowedQDeclarativeConnections:Verbindungen: Skript erwartetConnections: script expectedQDeclarativeConnections4Verbindungen: SyntaxfehlerConnections: syntax errorQDeclarativeConnections:Schreibgeschtzte TransaktionRead-only TransactionQDeclarativeEngineLDie SQL-Transaktion ist fehlgeschlagenSQL transaction failedQDeclarativeEngineSQL: Die Version der Datenbank entspricht nicht der erwarteten VersionSQL: database version mismatchQDeclarativeEngine~Die Version %2 kann nicht verwendet werden; es wird %1 bentigt'Version mismatch: expected %1, found %2QDeclarativeEnginev'executeSql' wurde auerhalb von 'transaction()' aufgerufen'executeSql called outside transaction()QDeclarativeEngine<callback fehlt bei Transaktiontransaction: missing callbackQDeclarativeEngineP'back' kann nur einmal zugewiesen werdenback is a write-once propertyQDeclarativeFlipableR'front' kann nur einmal zugewiesen werdenfront is a write-once propertyQDeclarativeFlipableHDas Verzeichnis "%1" existiert nicht"%1": no such directoryQDeclarativeImportDatabaseB- %1 ist kein gltiger Namensraum- %1 is not a namespaceQDeclarativeImportDatabase^- geschachtelte Namensrume sind nicht zulssig- nested namespaces not allowedQDeclarativeImportDatabaseDie Gro/Kleinschreibung des Dateinamens "%2" stimmt nicht berein {1"?} File name case mismatch for "%1"QDeclarativeImportDatabased"qmldir" und Namensraum fehlen bei dem Import "%1"*import "%1" has no qmldir and no namespaceQDeclarativeImportDatabaseXist mehrdeutig. Es kommt in %1 und in %2 vor#is ambiguous. Found in %1 and in %2QDeclarativeImportDatabaseist mehrdeutig. Es kommt in %1 in den Version %2.%3 und %4.%5 vor4is ambiguous. Found in %1 in version %2.%3 and %4.%5QDeclarativeImportDatabase4wird rekursiv instanziiertis instantiated recursivelyQDeclarativeImportDatabaseist kein Typ is not a typeQDeclarativeImportDatabase&Lokales Verzeichnislocal directoryQDeclarativeImportDatabase@Modul "%1" ist nicht installiertmodule "%1" is not installedQDeclarativeImportDatabasefModul "%1" Plugin "%2" konnte nicht gefunden werden!module "%1" plugin "%2" not foundQDeclarativeImportDatabase\Modul "%1" Version %2.%3 ist nicht installiert*module "%1" version %2.%3 is not installedQDeclarativeImportDatabasepDas Plugin des Moduls "%1" kann nicht geladen werden: %2+plugin cannot be loaded for module "%1": %2QDeclarativeImportDatabaseTastennavigation ist nur ber Eigenschaften des Typs 'attached' verfgbar7KeyNavigation is only available via attached properties!QDeclarativeKeyNavigationAttachedDie Untersttzung fr Tasten ist nur ber Eigenschaften des Typs 'attached' verfgbar.Keys is only available via attached propertiesQDeclarativeKeysAttachedEigenschaften des Typs 'attached' knnen nur mit Elementen der Klasse Item verwendet werden7LayoutDirection attached property only works with Items#QDeclarativeLayoutMirroringAttachedLayoutMirroring ist nur in Verbindung mit Eigenschaften des Typs "attached" mglich9LayoutMirroring is only available via attached properties#QDeclarativeLayoutMirroringAttachedpListElement kann keine geschachtelten Elemente enthalten+ListElement: cannot contain nested elementsQDeclarativeListModelzListElement: Die "id"-Eigenschaft kann nicht verwendet werden.ListElement: cannot use reserved "id" propertyQDeclarativeListModelListElement: Es kann kein Skript fr den Wert der Eigenschaft verwendet werden1ListElement: cannot use script for property valueQDeclarativeListModelfListModel: Die Eigenschaft '%1' ist nicht definiert"ListModel: undefined property '%1'QDeclarativeListModel@append: Der Wert ist kein Objektappend: value is not an objectQDeclarativeListModelpinsert: Der Index %1 ist auerhalb des gltigen Bereichsinsert: index %1 out of rangeQDeclarativeListModel@insert: Der Wert ist kein Objektinsert: value is not an objectQDeclarativeListModelJmove: Auerhalb des gltigen Bereichsmove: out of rangeQDeclarativeListModelpremove: Der Index %1 ist auerhalb des gltigen Bereichsremove: index %1 out of rangeQDeclarativeListModeljset: Der Index %1 ist auerhalb des gltigen Bereichsset: index %1 out of rangeQDeclarativeListModel:set: Der Wert ist kein Objektset: value is not an objectQDeclarativeListModelrDas Laden nicht-visueller Elemente ist nicht untersttzt.4Loader does not support loading non-visual elements.QDeclarativeLoaderDas Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden5Unable to preserve appearance under complex transformQDeclarativeParentAnimationDas Erscheinungsbild kann bei einer nicht-uniformen Skalierung nicht beibehalten werden5Unable to preserve appearance under non-uniform scaleQDeclarativeParentAnimationDas Erscheinungsbild kann bei einer Skalierung mit 0 nicht beibehalten werden.Unable to preserve appearance under scale of 0QDeclarativeParentAnimationDas Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden5Unable to preserve appearance under complex transformQDeclarativeParentChangeDas Erscheinungsbild kann bei einer nicht-uniformen Skalierung nicht beibehalten werden5Unable to preserve appearance under non-uniform scaleQDeclarativeParentChangeDas Erscheinungsbild kann bei einer Skalierung mit 0 nicht beibehalten werden.Unable to preserve appearance under scale of 0QDeclarativeParentChangebEs wird eine Typangabe fr den Parameter erwartetExpected parameter typeQDeclarativeParserDTypangabe fr Eigenschaft erwartetExpected property typeQDeclarativeParserBEs wird das Element '%1' erwartetExpected token `%1'QDeclarativeParser8Es wird ein Typname erwartetExpected type nameQDeclarativeParserEin Bezeichner darf nicht mit einem numerischen Literal beginnen,Identifier cannot start with numeric literalQDeclarativeParser$Ungltiges ZeichenIllegal characterQDeclarativeParser0Ungltige Escape-SequenzIllegal escape sequenceQDeclarativeParser>Ungltige Syntax des Exponenten%Illegal syntax for exponential numberQDeclarativeParser@Ungltige Unicode-Escape-SequenzIllegal unicode escape sequenceQDeclarativeParser<Ungltige Id-Angabe bei ImportInvalid import qualifier IDQDeclarativeParserdUngltiger Modifikator fr den Typ der EigenschaftInvalid property type modifierQDeclarativeParserdUngltiger Modifikator '%0' bei regulrem Ausdruck$Invalid regular expression flag '%0'QDeclarativeParserEine JavaScript-Deklaration ist auerhalb eines Skriptelementes nicht zulssig-JavaScript declaration outside Script elementQDeclarativeParserrDer Import einer Bibliothek erfordert eine Versionsangabe!Library import requires a versionQDeclarativeParserhMehrfache Zuweisung eines Wertes an eine Eigenschaft!Property value set multiple timesQDeclarativeParserp'read-only' wird an dieser Stelle noch nicht untersttztReadonly not yet supportedQDeclarativeParserDer reservierte Name "Qt" kann nicht als Bezeichner verwendet werden1Reserved name "Qt" cannot be used as an qualifierQDeclarativeParserDer fr den Skript-Import angegebene Qualifizierer muss eindeutig sein.(Script import qualifiers must be unique.QDeclarativeParserxDer Skript-Import erfordert die Angabe eines Qualifizierers."Script import requires a qualifierQDeclarativeParserSyntaxfehler Syntax errorQDeclarativeParserTKommentar am Dateiende nicht abgeschlossenUnclosed comment at end of fileQDeclarativeParser\Zeichenkette am Zeilenende nicht abgeschlossenUnclosed string at end of lineQDeclarativeParserModifikator fr den Typ der Eigenschaft an dieser Stelle nicht zulssig!Unexpected property type modifierQDeclarativeParser2Unerwartetes Element '%1'Unexpected token `%1'QDeclarativeParservBackslash-Sequenz in regulrem Ausdruck nicht abgeschlossen2Unterminated regular expression backslash sequenceQDeclarativeParser`Klasse im regulren Ausdruck nicht abgeschlossen%Unterminated regular expression classQDeclarativeParserLRegulrer Ausdruck nicht abgeschlossen'Unterminated regular expression literalQDeclarativeParserREs kann keine Zeitdauer <0 gesetzt werdenCannot set a duration of < 0QDeclarativePauseAnimation4Fehlschlag beim ffnen: %1Cannot open: %1QDeclarativePixmap<Fehler beim Dekodieren: %1: %2Error decoding: %1: %2QDeclarativePixmapVBilddaten konnten nicht erhalten werden: %1%Failed to get image from provider: %1QDeclarativePixmapREs kann keine Zeitdauer <0 gesetzt werdenCannot set a duration of < 0QDeclarativePropertyAnimationEs kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert+Cannot assign to non-existent property "%1"QDeclarativePropertyChangesDie Eigenschaft "%1" ist schreibgeschtzt und kann daher nicht zugewiesen werden(Cannot assign to read-only property "%1"QDeclarativePropertyChangesDie Erzeugung von Objekten, die einem Zustand zugeordnet sind, wird von PropertyChanges nicht untersttzt.APropertyChanges does not support creating state-specific objects.QDeclarativePropertyChanges`Cursor-Delegate konnte nicht instanziiert werden%Could not instantiate cursor delegateQDeclarativeTextInputVCursor-Delegate konnte nicht geladen werdenCould not load cursor delegateQDeclarativeTextInput %1 %2%1 %2QDeclarativeTypeLoadervDer Namensraum %1 kann nicht als Typangabe verwendet werden%Namespace %1 cannot be used as a typeQDeclarativeTypeLoaderBDas Skript %1 ist nicht verfgbarScript %1 unavailableQDeclarativeTypeLoader<Der Typ %1 ist nicht verfgbarType %1 unavailableQDeclarativeTypeLoaderxDer Signal-Eigenschaft %1 kann kein Objekt zugewiesen werden-Cannot assign an object to signal property %1QDeclarativeVMEDer Eigenschaft der Schnittstelle kann kein Objekt zugewiesen werden*Cannot assign object to interface propertyQDeclarativeVMEhZuweisung eines Objekts an eine Liste nicht zulssigCannot assign object to listQDeclarativeVMEDer Objekttyp %1 kann nicht zugewiesen werden, da keine Vorgabe-Methode existiert3Cannot assign object type %1 with no default methodQDeclarativeVMEzDer Wert '%1' kann der Eigenschaft %2 nicht zugewiesen werden%Cannot assign value %1 to property %2QDeclarativeVMEEs kann keine Verbindung zwischen dem Signal %1 und dem Slot %2 hergestellt werden, da sie nicht zusammenpassen0Cannot connect mismatched signal/slot %1 %vs. %2QDeclarativeVMEEs knnen keine Eigenschaften auf %1 gesetzt werden, da es 'null' ist)Cannot set properties on %1 as it is nullQDeclarativeVME^Es konnte kein 'attached'-Objekt erzeugt werden Unable to create attached objectQDeclarativeVME`Es konnte kein Objekt des Typs %1 erzeugt werden"Unable to create object of type %1QDeclarativeVMEXDelegate-Komponente muss vom Typ 'Item' sein%Delegate component must be Item type.QDeclarativeVisualDataModelDiese Version der Qt-Bibliothek wurde ohne Untersttzung fr xmlpatterns erstellt,Qt was built without support for xmlpatternsQDeclarativeXmlListModel`Eine XmlRole-Abfrage darf nicht mit '/' beginnen(An XmlRole query must not start with '/'QDeclarativeXmlListModelRolerEine XmlListModel-Abfrage muss mit '/' oder "//" beginnen1An XmlListModel query must start with '/' or "//"QDeclarativeXmlRoleList QDialQDialQDialSchieberegler SliderHandleQDialTachometer SpeedoMeterQDial FertigDoneQDialogDirekthilfe What's This?QDialog&Abbrechen&CancelQDialogButtonBoxSchl&ieen&CloseQDialogButtonBox &Nein&NoQDialogButtonBox&OK&OKQDialogButtonBoxS&peichern&SaveQDialogButtonBox&Ja&YesQDialogButtonBoxAbbrechenAbortQDialogButtonBoxAnwendenApplyQDialogButtonBoxAbbrechenCancelQDialogButtonBoxSchlieenCloseQDialogButtonBox0Schlieen ohne SpeichernClose without SavingQDialogButtonBoxVerwerfenDiscardQDialogButtonBoxNicht speichern Don't SaveQDialogButtonBox HilfeHelpQDialogButtonBoxIgnorierenIgnoreQDialogButtonBoxN&ein, keine N&o to AllQDialogButtonBoxOKOKQDialogButtonBox ffnenOpenQDialogButtonBoxZurcksetzenResetQDialogButtonBox VoreinstellungenRestore DefaultsQDialogButtonBoxWiederholenRetryQDialogButtonBoxSpeichernSaveQDialogButtonBoxAlles speichernSave AllQDialogButtonBoxJa, &alle Yes to &AllQDialogButtonBoxnderungsdatum Date Modified QDirModelArtKind QDirModelNameName QDirModel GreSize QDirModelTypType QDirModelSchlieenClose QDockWidgetAndockenDock QDockWidgetHerauslsenFloat QDockWidgetWenigerLessQDoubleSpinBoxMehrMoreQDoubleSpinBox&OK&OK QErrorMessage<Diese Meldung wieder an&zeigen&Show this message again QErrorMessageDebug-Ausgabe:Debug Message: QErrorMessageFehler: Fatal Error: QErrorMessageAchtung:Warning: QErrorMessage:%1 kann nicht erstellt werdenCannot create %1 for outputQFileN%1 kann nicht zum Lesen geffnet werdenCannot open %1 for inputQFileVDas ffnen zum Schreiben ist fehlgeschlagenCannot open for outputQFileRDie Quelldatei kann nicht entfernt werdenCannot remove source fileQFile>Die Zieldatei existiert bereitsDestination file existsQFile\Der Datenblock konnte nicht geschrieben werdenFailure to write blockQFileEs ist kein Datei-Engine verfgbar oder der gegenwrtig aktive Engine untersttzt die UnMap-Erweiterung nichtBNo file engine available or engine does not support UnMapExtensionQFileEine sequentielle Datei kann nicht durch blockweises Kopieren umbenannt werden0Will not rename sequential file using block copyQFile%1 Das Verzeichnis konnte nicht gefunden werden. Stellen Sie sicher, dass der Verzeichnisname richtig ist.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Die Datei konnte nicht gefunden werden. Stellen Sie sicher, dass der Dateiname richtig ist.A%1 File not found. Please verify the correct file name was given. QFileDialog|Die Datei %1 existiert bereits. Soll sie berschrieben werden?-%1 already exists. Do you want to replace it? QFileDialog&Auswhlen&Choose QFileDialog&Lschen&Delete QFileDialog$&Neues Verzeichnis &New Folder QFileDialog&ffnen&Open QFileDialog&Umbenennen&Rename QFileDialogS&peichern&Save QFileDialog'%1' ist schreibgeschtzt. Mchten Sie die Datei trotzdem lschen?9'%1' is write protected. Do you want to delete it anyway? QFileDialog AliasAlias QFileDialog Alle Dateien (*) All Files (*) QFileDialog$Alle Dateien (*.*)All Files (*.*) QFileDialog^Sind Sie sicher, dass Sie '%1' lschen mchten?!Are sure you want to delete '%1'? QFileDialog ZurckBack QFileDialog0Wechsle zu DetailansichtChange to detail view mode QFileDialog0Wechsle zu ListenansichtChange to list view mode QFileDialogBKonnte Verzeichnis nicht lschen.Could not delete directory. QFileDialog,Neuen Ordner erstellenCreate New Folder QFileDialog,Neuen Ordner erstellenCreate a New Folder QFileDialogDetails Detail View QFileDialogVerzeichnisse Directories QFileDialogVerzeichnis: Directory: QFileDialogLaufwerkDrive QFileDialog DateiFile QFileDialogDatei&name: File &name: QFileDialog Ordner File Folder QFileDialog"Dateien des Typs:Files of type: QFileDialog$Verzeichnis suchenFind Directory QFileDialog OrderFolder QFileDialogVorwrtsForward QFileDialog ZurckGo back QFileDialogVor Go forward QFileDialogFGehe zum bergeordneten VerzeichnisGo to the parent directory QFileDialog Liste List View QFileDialogSuchen in:Look in: QFileDialogMein Computer My Computer QFileDialog"Neues Verzeichnis New Folder QFileDialog ffnenOpen QFileDialog4bergeordnetes VerzeichnisParent Directory QFileDialogZuletzt besucht Recent Places QFileDialogLschenRemove QFileDialogSpeichern unterSave As QFileDialog"Symbolischer LinkShortcut QFileDialogAnzeigen Show  QFileDialog8&Versteckte Dateien anzeigenShow &hidden files QFileDialogUnbekanntUnknown QFileDialog %1 GB%1 GBQFileSystemModel %1 KB%1 KBQFileSystemModel %1 MB%1 MBQFileSystemModel %1 TB%1 TBQFileSystemModel%1 byte %1 byte(s)QFileSystemModel%1 Byte%1 bytesQFileSystemModel<b>Der Name "%1" kann nicht verwendet werden.</b><p>Versuchen Sie, die Sonderzeichen zu entfernen oder einen krzeren Namen zu verwenden.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelComputerComputerQFileSystemModelnderungsdatum Date ModifiedQFileSystemModel(Ungltiger DateinameInvalid filenameQFileSystemModelArtKindQFileSystemModelMein Computer My ComputerQFileSystemModelNameNameQFileSystemModel GreSizeQFileSystemModelTypTypeQFileSystemModelAlleAny QFontDatabaseArabischArabic QFontDatabaseArmenischArmenian QFontDatabaseBengalischBengali QFontDatabaseSchwarzBlack QFontDatabaseFettBold QFontDatabaseKyrillischCyrillic QFontDatabaseSemiDemi QFontDatabaseHalbfett Demi Bold QFontDatabaseDevanagari Devanagari QFontDatabaseGeorgischGeorgian QFontDatabaseGriechischGreek QFontDatabaseGujaratiGujarati QFontDatabaseGurmukhiGurmukhi QFontDatabaseHebrischHebrew QFontDatabase KursivItalic QFontDatabaseJapanischJapanese QFontDatabaseKannadaKannada QFontDatabase KhmerKhmer QFontDatabaseKoreanischKorean QFontDatabaseLaotischLao QFontDatabaseLateinischLatin QFontDatabase LeichtLight QFontDatabaseMalayalam Malayalam QFontDatabaseMyanmarMyanmar QFontDatabaseN'KoN'Ko QFontDatabase NormalNormal QFontDatabaseSchrggestelltOblique QFontDatabase OghamOgham QFontDatabase OriyaOriya QFontDatabase RunenRunic QFontDatabase0Chinesisch (Kurzzeichen)Simplified Chinese QFontDatabaseSinhalaSinhala QFontDatabase SymbolSymbol QFontDatabaseSyrischSyriac QFontDatabaseTamilischTamil QFontDatabase TeluguTelugu QFontDatabase ThaanaThaana QFontDatabaseThailndischThai QFontDatabaseTibetischTibetan QFontDatabase0Chinesisch (Langzeichen)Traditional Chinese QFontDatabaseVietnamesisch Vietnamese QFontDatabase&Schriftart&Font QFontDialog &Gre&Size QFontDialog&Unterstrichen &Underline QFontDialogEffekteEffects QFontDialogSchrifts&til Font st&yle QFontDialogBeispielSample QFontDialog(Schriftart auswhlen Select Font QFontDialog Durch&gestrichen Stri&keout QFontDialog&SchriftsystemWr&iting System QFontDialog`ndern des Verzeichnisses ist fehlgeschlagen: %1Changing directory failed: %1QFtp<Verbindung mit Rechner bestehtConnected to hostQFtp0Verbunden mit Rechner %1Connected to host %1QFtpZVerbindung mit Rechner ist fehlgeschlagen: %1Connecting to host failed: %1QFtp$Verbindung beendetConnection closedQFtp\Verbindung fr die Daten Verbindung verweigert&Connection refused for data connectionQFtp8Verbindung mit %1 verweigertConnection refused to host %1QFtpxDas Zeitlimit fr die Verbindung zu '%1' wurde berschrittenConnection timed out to host %1QFtp2Verbindung mit %1 beendetConnection to %1 closedQFtpfErstellen des Verzeichnisses ist fehlgeschlagen: %1Creating directory failed: %1QFtp\Herunterladen der Datei ist fehlgeschlagen: %1Downloading file failed: %1QFtp&Rechner %1 gefunden Host %1 foundQFtpNRechner %1 konnte nicht gefunden werdenHost %1 not foundQFtp Rechner gefunden Host foundQFtpzDer Inhalt des Verzeichnisses kann nicht angezeigt werden: %1Listing directory failed: %1QFtp@Anmeldung ist fehlgeschlagen: %1Login failed: %1QFtp Keine Verbindung Not connectedQFtpbLschen des Verzeichnisses ist fehlgeschlagen: %1Removing directory failed: %1QFtpPLschen der Datei ist fehlgeschlagen: %1Removing file failed: %1QFtp$Unbekannter Fehler Unknown errorQFtpTHochladen der Datei ist fehlgeschlagen: %1Uploading file failed: %1QFtpUmschaltenToggle QGroupBox@Es wurde kein Hostname angegebenNo host name given QHostInfo$Unbekannter Fehler Unknown error QHostInfoHRechner konnte nicht gefunden werdenHost not foundQHostInfoAgent,Ungltiger RechnernameInvalid hostnameQHostInfoAgent@Es wurde kein Hostname angegebenNo host name givenQHostInfoAgent*Unbekannter AdresstypUnknown address typeQHostInfoAgent$Unbekannter Fehler Unknown errorQHostInfoAgent.Unbekannter Fehler (%1)Unknown error (%1)QHostInfoAgent<Authentifizierung erforderlichAuthentication requiredQHttp<Verbindung mit Rechner bestehtConnected to hostQHttp0Verbunden mit Rechner %1Connected to host %1QHttp$Verbindung beendetConnection closedQHttp*Verbindung verweigertConnection refusedQHttpdVerbindung verweigert oder Zeitlimit berschritten!Connection refused (or timed out)QHttp2Verbindung mit %1 beendetConnection to %1 closedQHttp2Die Daten sind verflschtData corruptedQHttpBeim Schreiben der Antwort auf das Ausgabegert ist ein Fehler aufgetreten Error writing response to deviceQHttp6HTTP-Anfrage fehlgeschlagenHTTP request failedQHttpDie angeforderte HTTPS-Verbindung kann nicht aufgebaut werden, da keine SSL-Untersttzung vorhanden ist:HTTPS connection requested but SSL support not compiled inQHttp&Rechner %1 gefunden Host %1 foundQHttpNRechner %1 konnte nicht gefunden werdenHost %1 not foundQHttp Rechner gefunden Host foundQHttp^Der Hostrechner verlangt eine AuthentifizierungHost requires authenticationQHttpnDer Inhalt (chunked body) der HTTP-Antwort ist ungltigInvalid HTTP chunked bodyQHttpTDer Kopfteil der HTTP-Antwort ist ungltigInvalid HTTP response headerQHttplFr die Verbindung wurde kein Server-Rechner angegebenNo server set to connect toQHttpHProxy-Authentifizierung erforderlichProxy authentication requiredQHttp`Der Proxy-Server verlangt eine AuthentifizierungProxy requires authenticationQHttp2Anfrage wurde abgebrochenRequest abortedQHttppIm Ablauf des SSL-Protokolls ist ein Fehler aufgetreten.SSL handshake failedQHttphDer Server hat die Verbindung unerwartet geschlossen%Server closed connection unexpectedlyQHttpHUnbekannte AuthentifizierungsmethodeUnknown authentication methodQHttp$Unbekannter Fehler Unknown errorQHttpXEs wurde ein unbekanntes Protokoll angegebenUnknown protocol specifiedQHttp,Ungltige LngenangabeWrong content lengthQHttp<Authentifizierung erforderlichAuthentication requiredQHttpSocketEngineFKeine HTTP-Antwort vom Proxy-Server(Did not receive HTTP response from proxyQHttpSocketEnginebFehler bei der Kommunikation mit dem Proxy-Server#Error communicating with HTTP proxyQHttpSocketEngineFehler beim Auswerten der Authentifizierungsanforderung des Proxy-Servers/Error parsing authentication request from proxyQHttpSocketEnginejDer Proxy-Server hat die Verbindung vorzeitig beendet#Proxy connection closed prematurelyQHttpSocketEnginevDer Proxy-Server hat den Aufbau einer Verbindung verweigertProxy connection refusedQHttpSocketEnginevDer Proxy-Server hat den Aufbau einer Verbindung verweigertProxy denied connectionQHttpSocketEngineBei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit berschritten!Proxy server connection timed outQHttpSocketEngineVEs konnte kein Proxy-Server gefunden werdenProxy server not foundQHttpSocketEngineXEs konnte keine Transaktion gestartet werdenCould not start transaction QIBaseDriverhDie Datenbankverbindung konnte nicht geffnet werdenError opening database QIBaseDriverDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QIBaseDriverDie Transaktion konnte nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QIBaseDriverZDie Allokation des Befehls ist fehlgeschlagenCould not allocate statement QIBaseResult~Es konnte keine Beschreibung des Eingabebefehls erhalten werden"Could not describe input statement QIBaseResultpEs konnte keine Beschreibung des Befehls erhalten werdenCould not describe statement QIBaseResult`Das nchste Element konnte nicht abgeholt werdenCould not fetch next item QIBaseResultJDas Feld konnte nicht gefunden werdenCould not find array QIBaseResultbDie Daten des Feldes konnten nicht gelesen werdenCould not get array data QIBaseResultDie erforderlichen Informationen zur Abfrage sind nicht verfgbarCould not get query info QIBaseResultZEs ist keine Information zum Befehl verfgbarCould not get statement info QIBaseResultXDer Befehl konnte nicht initialisiert werdenCould not prepare statement QIBaseResultXEs konnte keine Transaktion gestartet werdenCould not start transaction QIBaseResultTDer Befehl konnte nicht geschlossen werdenUnable to close statement QIBaseResultDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QIBaseResultDEs konnte kein BLOB erzeugt werdenUnable to create BLOB QIBaseResultRDer Befehl konnte nicht ausgefhrt werdenUnable to execute query QIBaseResultJDer BLOB konnte nicht geffnet werdenUnable to open BLOB QIBaseResultHDer BLOB konnte nicht gelesen werdenUnable to read BLOB QIBaseResultPDer BLOB konnte nicht geschrieben werdenUnable to write BLOB QIBaseResultbKein freier Speicherplatz auf dem Gert vorhandenNo space left on device QIODevicevDie Datei oder das Verzeichnis konnte nicht gefunden werdenNo such file or directory QIODevice$Zugriff verweigertPermission denied QIODevice2Zu viele Dateien geffnetToo many open files QIODevice$Unbekannter Fehler Unknown error QIODeviceFEPFEP QInputContext.Mac OS X-EingabemethodeMac OS X input method QInputContext,S60-FEP-EingabemethodeS60 FEP input method QInputContext,Windows-EingabemethodeWindows input method QInputContextXIMXIM QInputContext$XIM-EingabemethodeXIM input method QInputContext2Geben Sie einen Wert ein:Enter a value: QInputDialogV'%1' ist keine gltige ELF-Objektdatei (%2)"'%1' is an invalid ELF object (%2)QLibrary<'%1' ist keine ELF-Objektdatei'%1' is not an ELF objectQLibraryF'%1' ist keine ELF-Objektdatei (%2)'%1' is not an ELF object (%2)QLibrary^Die Bibliothek %1 kann nicht geladen werden: %2Cannot load library %1: %2QLibraryjDas Symbol "%1" kann in %2 nicht aufgelst werden: %3$Cannot resolve symbol "%1" in %2: %3QLibrary`Die Bibliothek %1 kann nicht entladen werden: %2Cannot unload library %1: %2QLibraryhDie Prfdaten des Plugins '%1' stimmen nicht berein)Plugin verification data mismatch in '%1'QLibraryVDie Datei '%1' ist kein gltiges Qt-Plugin.'The file '%1' is not a valid Qt plugin.QLibraryDas Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibrary0Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (Im Debug- bzw. Release-Modus erstellte Bibliotheken knnen nicht zusammen verwendet werden.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryDas Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. Erforderlicher build-spezifischer Schlssel "%2", erhalten "%3"OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibrarynDie dynamische Bibliothek konnte nicht gefunden werden.!The shared library was not found.QLibrary$Unbekannter Fehler Unknown errorQLibrary&Kopieren&Copy QLineEditEinf&gen&Paste QLineEdit"Wieder&herstellen&Redo QLineEdit&Rckgngig&Undo QLineEdit&AusschneidenCu&t QLineEditLschenDelete QLineEditAlles auswhlen Select All QLineEditL%1: Die Adresse wird bereits verwendet%1: Address in use QLocalServer*%1: Fehlerhafter Name%1: Name error QLocalServer,%1: Zugriff verweigert%1: Permission denied QLocalServer2%1: Unbekannter Fehler %2%1: Unknown error %2 QLocalServer,%1: Zugriff verweigert%1: Access denied QLocalSocket*%1: Verbindungsfehler%1: Connection error QLocalSocketT%1: Der Verbindungsaufbau wurde verweigert%1: Connection refused QLocalSocket:%1: Das Datagramm ist zu gro%1: Datagram too large QLocalSocket&%1: Ungltiger Name%1: Invalid name QLocalSocketn%1: Die Verbindung wurde von der Gegenseite geschlossen%1: Remote closed QLocalSocketL%1: Fehler beim Zugriff auf den Socket%1: Socket access error QLocalSocketV%1: Zeitberschreitung bei Socket-Operation%1: Socket operation timed out QLocalSocketJ%1: Socket-Fehler (Ressourcenproblem)%1: Socket resource error QLocalSocketb%1: Diese Socket-Operation wird nicht untersttzt)%1: The socket operation is not supported QLocalSocket,%1: Unbekannter Fehler%1: Unknown error QLocalSocket2%1: Unbekannter Fehler %2%1: Unknown error %2 QLocalSocketTEs kann keine Transaktion gestartet werdenUnable to begin transaction QMYSQLDriverDie Transaktion kann nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QMYSQLDriverREs kann keine Verbindung aufgebaut werdenUnable to connect QMYSQLDriverhDie Datenbankverbindung kann nicht geffnet werden 'Unable to open database ' QMYSQLDriverDie Transaktion kann nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QMYSQLDriver\Die Ausgabewerte konnten nicht gebunden werdenUnable to bind outvalues QMYSQLResultJDer Wert konnte nicht gebunden werdenUnable to bind value QMYSQLResultbDie folgende Abfrage kann nicht ausgefhrt werdenUnable to execute next query QMYSQLResultTDie Abfrage konnte nicht ausgefhrt werdenUnable to execute query QMYSQLResultRDer Befehl konnte nicht ausgefhrt werdenUnable to execute statement QMYSQLResultLEs konnten keine Daten abgeholt werdenUnable to fetch data QMYSQLResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QMYSQLResultXDer Befehl konnte nicht zurckgesetzt werdenUnable to reset statement QMYSQLResultfDas folgende Ergebnis kann nicht gespeichert werdenUnable to store next result QMYSQLResultXDas Ergebnis konnte nicht gespeichert werdenUnable to store result QMYSQLResultvDie Ergebnisse des Befehls konnten nicht gespeichert werden!Unable to store statement results QMYSQLResult(Unbenannt) (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindowSchl&ieen&Close QMdiSubWindowVer&schieben&Move QMdiSubWindow"Wieder&herstellen&Restore QMdiSubWindowGre &ndern&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindowSchlieenClose QMdiSubWindow HilfeHelp QMdiSubWindowMa&ximieren Ma&ximize QMdiSubWindowMaximierenMaximize QMdiSubWindowMenMenu QMdiSubWindowM&inimieren Mi&nimize QMdiSubWindowMinimierenMinimize QMdiSubWindow WiederherstellenRestore QMdiSubWindow Wiederherstellen Restore Down QMdiSubWindowAufrollenShade QMdiSubWindow.Im &Vordergrund bleiben Stay on &Top QMdiSubWindowHerabrollenUnshade QMdiSubWindowSchlieenCloseQMenuAusfhrenExecuteQMenu ffnenOpenQMenuOptionenActionsQMenuBar~<h3>ber Qt</h3><p>Dieses Programm verwendet Qt Version %1.</p>8

About Qt

This program uses Qt version %1.

 QMessageBoxber QtAbout Qt QMessageBox HilfeHelp QMessageBox*Details ausblenden...Hide Details... QMessageBoxOKOK QMessageBox*Details einblenden...Show Details... QMessageBox0Eingabemethode auswhlen Select IMQMultiInputContext<Umschalter fr EingabemethodenMultiple input method switcherQMultiInputContextPluginMehrfachumschalter fr Eingabemethoden, der das Kontextmen des Text-Widgets verwendetMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPlugin^Auf diesem Port hrt bereits ein anderer Socket4Another socket is already listening on the same portQNativeSocketEngineEs wurde versucht, einen IPv6-Socket auf einem System ohne IPv6-Untersttzung zu verwenden=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine*Verbindung verweigertConnection refusedQNativeSocketEnginehDas Zeitlimit fr die Verbindung wurde berschrittenConnection timed outQNativeSocketEngine|Das Datagram konnte nicht gesendet werden, weil es zu gro istDatagram was too large to sendQNativeSocketEngineTDer Zielrechner kann nicht erreicht werdenHost unreachableQNativeSocketEngine8Ungltiger Socket-DeskriptorInvalid socket descriptorQNativeSocketEngineNetzwerkfehler Network errorQNativeSocketEnginefDas Zeitlimit fr die Operation wurde berschrittenNetwork operation timed outQNativeSocketEngineBDas Netzwerk ist nicht erreichbarNetwork unreachableQNativeSocketEnginehOperation kann nur auf einen Socket angewandt werdenOperation on non-socketQNativeSocketEngine4Keine Ressourcen verfgbarOut of resourcesQNativeSocketEngine$Zugriff verweigertPermission deniedQNativeSocketEngineHDas Protokoll wird nicht untersttztProtocol type not supportedQNativeSocketEngine>Die Adresse ist nicht verfgbarThe address is not availableQNativeSocketEngine2Die Adresse ist geschtztThe address is protectedQNativeSocketEngine\Die angegebene Adresse ist bereits in Gebrauch#The bound address is already in useQNativeSocketEngine|Die Operation kann mit dem Proxy-Typ nicht durchgefhrt werden,The proxy type is invalid for this operationQNativeSocketEnginehDer entfernte Rechner hat die Verbindung geschlossen%The remote host closed the connectionQNativeSocketEnginelDer Broadcast-Socket konnte nicht initialisiert werden%Unable to initialize broadcast socketQNativeSocketEngine|Der nichtblockierende Socket konnte nicht initialisiert werden(Unable to initialize non-blocking socketQNativeSocketEngineVDie Nachricht konnte nicht empfangen werdenUnable to receive a messageQNativeSocketEngineTDie Nachricht konnte nicht gesendet werdenUnable to send a messageQNativeSocketEnginebDer Schreibvorgang konnte nicht ausgefhrt werdenUnable to writeQNativeSocketEngine$Unbekannter Fehler Unknown errorQNativeSocketEngineD Socket-Kommando nicht untersttztUnsupported socket operationQNativeSocketEngine>%1 konnte nicht geffnet werdenError opening %1QNetworkAccessCacheBackend$Ungltiger URI: %1Invalid URI: %1QNetworkAccessDataBackendDer entfernte Rechner hat die Verbindung zu %1 vorzeitig beendet3Remote host closed the connection prematurely on %1QNetworkAccessDebugPipeBackend0Socket-Fehler bei %1: %2Socket error on %1: %2QNetworkAccessDebugPipeBackend>Fehler beim Schreiben zu %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackend%1 kann nicht geffnet werden: Der Pfad spezifiziert ein Verzeichnis#Cannot open %1: Path is a directoryQNetworkAccessFileBackendF%1 konnte nicht geffnet werden: %2Error opening %1: %2QNetworkAccessFileBackendfBeim Lesen von der Datei %1 trat ein Fehler auf: %2Read error reading from %1: %2QNetworkAccessFileBackendfAnforderung zum ffnen einer Datei ber Netzwerk %1%Request for opening non-local file %1QNetworkAccessFileBackendLFehler beim Schreiben zur Datei %1: %2Write error writing to %1: %2QNetworkAccessFileBackend%1 kann nicht geffnet werden: Es handelt sich um ein VerzeichnisCannot open %1: is a directoryQNetworkAccessFtpBackendbBeim Herunterladen von %1 trat ein Fehler auf: %2Error while downloading %1: %2QNetworkAccessFtpBackendZBeim Hochladen von %1 trat ein Fehler auf: %2Error while uploading %1: %2QNetworkAccessFtpBackendDie Anmeldung bei %1 ist fehlgeschlagen: Es ist eine Authentifizierung erforderlich0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackendlEs konnte kein geeigneter Proxy-Server gefunden werdenNo suitable proxy foundQNetworkAccessFtpBackendlEs konnte kein geeigneter Proxy-Server gefunden werdenNo suitable proxy foundQNetworkAccessHttpBackendbDer Zugriff auf das Netzwerk ist nicht gestattet.Network access is disabled.QNetworkAccessManagerBeim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2)Error downloading %1 - server replied: %2 QNetworkReply<Fehler bei Netzwerkverbindung.Network session error. QNetworkReply@Das Protokoll "%1" ist unbekanntProtocol "%1" is unknown QNetworkReplyJDas Netzwerk ist zurzeit ausgefallen.Temporary network failure. QNetworkReply*Operation abgebrochenOperation canceledQNetworkReplyImpl0Ungltige Konfiguration.Invalid configuration.QNetworkSession&Fehler beim Roaming Roaming errorQNetworkSessionPrivateImpltDas Roaming wurde abgebrochen oder ist hier nicht mglich.'Roaming was aborted or is not possible.QNetworkSessionPrivateImplDie Verbindung wurde vom Benutzer oder vom Betriebssystem unterbrochen!Session aborted by user or systemQNetworkSessionPrivateImplzDie angeforderte Operation wird vom System nicht untersttzt.7The requested operation is not supported by the system.QNetworkSessionPrivateImplDie Verbindung wurde vom Benutzer oder vom Betriebssystem unterbrochen..The session was aborted by the user or system.QNetworkSessionPrivateImplrDie angegebene Konfiguration kann nicht verwendet werden.+The specified configuration cannot be used.QNetworkSessionPrivateImpl$Unbekannter FehlerUnidentified ErrorQNetworkSessionPrivateImplTUnbekannter Fehler bei Netzwerkverbindung.Unknown session error.QNetworkSessionPrivateImplXEs konnte keine Transaktion gestartet werdenUnable to begin transaction QOCIDriverDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QOCIDriver<Initialisierung fehlgeschlagenUnable to initialize QOCIDriver8Logon-Vorgang fehlgeschlagenUnable to logon QOCIDriverDie Transaktion konnte nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QOCIDriverZDie Allokation des Befehls ist fehlgeschlagenUnable to alloc statement QOCIResultDie Spalte konnte nicht fr den Stapelverarbeitungs-Befehl gebunden werden'Unable to bind column for batch execute QOCIResultJDer Wert konnte nicht gebunden werdenUnable to bind value QOCIResultzDer Stapelverarbeitungs-Befehl konnte nicht ausgefhrt werden!Unable to execute batch statement QOCIResultRDer Befehl konnte nicht ausgefhrt werdenUnable to execute statement QOCIResultXDer Anweisungstyp kann nicht bestimmt werdenUnable to get statement type QOCIResultJKann nicht zum nchsten Element gehenUnable to goto next QOCIResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QOCIResultDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QODBCDriverREs kann keine Verbindung aufgebaut werdenUnable to connect QODBCDriverEs kann keine Verbindung aufgebaut werden weil der Treiber die bentigte Funktionalitt nicht vollstndig untersttztEUnable to connect - Driver doesn't support all functionality required QODBCDriverX'autocommit' konnte nicht deaktiviert werdenUnable to disable autocommit QODBCDriverT'autocommit' konnte nicht aktiviert werdenUnable to enable autocommit QODBCDriverDie Transaktion konnte nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QODBCDriver(QODBCResult::reset: 'SQL_CURSOR_STATIC' konnte nicht als Attribut des Befehls gesetzt werden. Bitte prfen Sie die Konfiguration Ihres ODBC-TreibersyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResultRDie Variable konnte nicht gebunden werdenUnable to bind variable QODBCResultRDer Befehl konnte nicht ausgefhrt werdenUnable to execute statement QODBCResultLEs konnten keine Daten abgeholt werdenUnable to fetch QODBCResult`Der erste Datensatz konnte nicht abgeholt werdenUnable to fetch first QODBCResultbDer letzte Datensatz konnte nicht abgeholt werdenUnable to fetch last QODBCResultdDer nchste Datensatz konnte nicht abgeholt werdenUnable to fetch next QODBCResulthDer vorherige Datensatz konnte nicht abgeholt werdenUnable to fetch previous QODBCResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QODBCResult"%1" ist bereits als Name einer Rolle vergeben und wird daher deaktiviert.:"%1" duplicates a previous role name and will be disabled.QObjectPos1HomeQObjectHRechner konnte nicht gefunden werdenHost not foundQObject.PulseAudio-Sound-ServerPulseAudio Sound ServerQObject.Ungltige Abfrage: "%1"invalid query: "%1"QObjectNameNameQPPDOptionsModelWertValueQPPDOptionsModelXEs konnte keine Transaktion gestartet werdenCould not begin transaction QPSQLDriverDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Could not commit transaction QPSQLDriverDie Transaktion konnte nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Could not rollback transaction QPSQLDriverREs kann keine Verbindung aufgebaut werdenUnable to connect QPSQLDriverHDie Registrierung ist fehlgeschlagenUnable to subscribe QPSQLDriver`Die Registrierung konnte nicht aufgehoben werdenUnable to unsubscribe QPSQLDriverLEs konnte keine Abfrage erzeugt werdenUnable to create query QPSQLResultXDer Befehl konnte nicht initialisiert werdenUnable to prepare statement QPSQLResultZentimeter (cm)Centimeters (cm)QPageSetupWidgetFormularFormQPageSetupWidget Hhe:Height:QPageSetupWidgetZoll (in) Inches (in)QPageSetupWidgetQuerformat LandscapeQPageSetupWidget RnderMarginsQPageSetupWidgetMillimeter (mm)Millimeters (mm)QPageSetupWidgetAusrichtung OrientationQPageSetupWidgetSeitengre: Page size:QPageSetupWidget PapierPaperQPageSetupWidgetPapierquelle: Paper source:QPageSetupWidgetPunkte (pt) Points (pt)QPageSetupWidgetHochformatPortraitQPageSetupWidget,Umgekehrtes QuerformatReverse landscapeQPageSetupWidget,Umgekehrtes HochformatReverse portraitQPageSetupWidgetBreite:Width:QPageSetupWidgetUnterer Rand bottom marginQPageSetupWidgetLinker Rand left marginQPageSetupWidgetRechter Rand right marginQPageSetupWidgetOberer Rand top marginQPageSetupWidget>Das Plugin wurde nicht geladen.The plugin was not loaded. QPluginLoader$Unbekannter Fehler Unknown error QPluginLoader|Die Datei %1 existiert bereits. Soll sie berschrieben werden?/%1 already exists. Do you want to overwrite it? QPrintDialog%1 ist ein Verzeichnis. Bitte whlen Sie einen anderen Dateinamen.7%1 is a directory. Please choose a different file name. QPrintDialog$&Einstellungen <<  &Options << QPrintDialog"&Einstellungen >> &Options >> QPrintDialog&Drucken&Print QPrintDialogN<qt>Soll sie berschrieben werden?</qt>%Do you want to overwrite it? QPrintDialogA0A0 QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialogA1A1 QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialogA2A2 QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialogA3A3 QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogA4A4 QPrintDialog"A4 (210 x 297 mm)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5A5 QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialogA6A6 QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialogA7A7 QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8A8 QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9A9 QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialogB0B0 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialogB1B1 QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialogB10B10 QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialogB2B2 QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialogB3B3 QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialogB4B4 QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogB5B5 QPrintDialog"B5 (176 x 250 mm)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6B6 QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialogB7B7 QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8B8 QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9B9 QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialogC5EC5E QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog"BenutzerdefiniertCustom QPrintDialogDLEDLE QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogExecutive Executive QPrintDialogNExecutive (7,5 x 10 Zoll, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogDie Datei %1 ist schreibgeschtzt. Bitte whlen Sie einen anderen Dateinamen.=File %1 is not writable. Please choose a different file name. QPrintDialog6Die Datei existiert bereits File exists QPrintDialog FolioFolio QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog LedgerLedger QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialog LegalLegal QPrintDialogFLegal (8,5 x 14 Zoll, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialog LetterLetter QPrintDialogHLetter (8,5 x 11 Zoll, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogLokale Datei Local file QPrintDialogOKOK QPrintDialogDruckenPrint QPrintDialog(In Datei drucken ...Print To File ... QPrintDialogAlles drucken Print all QPrintDialog&Diese Seite druckenPrint current page QPrintDialogBereich drucken Print range QPrintDialogAuswahl druckenPrint selection QPrintDialog(In PDF-Datei druckenPrint to File (PDF) QPrintDialog6In Postscript-Datei druckenPrint to File (Postscript) QPrintDialogTabloidTabloid QPrintDialog,Tabloid (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogDie Angabe fr die erste Seite darf nicht grer sein als die fr die letzte Seite.7The 'From' value cannot be greater than the 'To' value. QPrintDialog,US Common #10 EnvelopeUS Common #10 Envelope QPrintDialogJUS Common #10 Envelope (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog,Schreiben der Datei %1 Write %1 file QPrintDialog direkt verbundenlocally connected QPrintDialogunbekanntunknown QPrintDialog%1%%1%QPrintPreviewDialogSchlieenCloseQPrintPreviewDialogPDF exportieren Export to PDFQPrintPreviewDialog,PostScript exportierenExport to PostScriptQPrintPreviewDialogErste Seite First pageQPrintPreviewDialogSeite anpassenFit pageQPrintPreviewDialogBreite anpassen Fit widthQPrintPreviewDialogQuerformat LandscapeQPrintPreviewDialogLetzte Seite Last pageQPrintPreviewDialogNchste Seite Next pageQPrintPreviewDialog Seite einrichten Page SetupQPrintPreviewDialog Seite einrichten Page setupQPrintPreviewDialogHochformatPortraitQPrintPreviewDialogVorige Seite Previous pageQPrintPreviewDialogDruckenPrintQPrintPreviewDialogDruckvorschau Print PreviewQPrintPreviewDialogBGegenberliegende Seiten anzeigenShow facing pagesQPrintPreviewDialog,bersicht aller SeitenShow overview of all pagesQPrintPreviewDialog.Einzelne Seite anzeigenShow single pageQPrintPreviewDialogVergrernZoom inQPrintPreviewDialogVerkleinernZoom outQPrintPreviewDialogErweitertAdvancedQPrintPropertiesWidgetFormularFormQPrintPropertiesWidget SeitePageQPrintPropertiesWidgetSortierenCollateQPrintSettingsOutput FarbeColorQPrintSettingsOutputFarbmodus Color ModeQPrintSettingsOutput Anzahl ExemplareCopiesQPrintSettingsOutput"Anzahl Exemplare:Copies:QPrintSettingsOutput Current PageQPrintSettingsOutputDuplexdruckDuplex PrintingQPrintSettingsOutputFormularFormQPrintSettingsOutputGraustufen GrayscaleQPrintSettingsOutputLange Seite Long sideQPrintSettingsOutputKeinNoneQPrintSettingsOutputOptionenOptionsQPrintSettingsOutput(AusgabeeinstellungenOutput SettingsQPrintSettingsOutputSeiten von Pages fromQPrintSettingsOutputAlles drucken Print allQPrintSettingsOutputBereich drucken Print rangeQPrintSettingsOutputUmgekehrtReverseQPrintSettingsOutputAuswahl SelectionQPrintSettingsOutputKurze Seite Short sideQPrintSettingsOutputbistoQPrintSettingsOutput &Name:&Name: QPrintWidget...... QPrintWidgetFormularForm QPrintWidgetStandort: Location: QPrintWidgetAusgabe&datei: Output &file: QPrintWidget&Eigenschaften P&roperties QPrintWidgetVorschauPreview QPrintWidgetDruckerPrinter QPrintWidgetTyp:Type: QPrintWidgetvDie Eingabeumleitung konnte nicht zum Lesen geffnet werden,Could not open input redirection for readingQProcessvDie Ausgabeumleitung konnte nicht zum Lesen geffnet werden-Could not open output redirection for writingQProcessPDas Lesen vom Prozess ist fehlgeschlagenError reading from processQProcessXDas Schreiben zum Prozess ist fehlgeschlagenError writing to processQProcess@Es wurde kein Programm angegebenNo program definedQProcess4Der Prozess ist abgestrztProcess crashedQProcess`Das Starten des Prozesses ist fehlgeschlagen: %1Process failed to start: %1QProcess$ZeitberschreitungProcess operation timed outQProcessLRessourcenproblem ("fork failure"): %1!Resource error (fork failure): %1QProcessAbbrechenCancelQProgressDialog ffnenOpen QPushButtonAnkreuzenCheck QRadioButton@falsche Syntax fr Zeichenklassebad char class syntaxQRegExp8falsche Syntax fr Lookaheadbad lookahead syntaxQRegExpBfalsche Syntax fr Wiederholungenbad repetition syntaxQRegExpLdeaktivierte Eigenschaft wurde benutztdisabled feature usedQRegExp&ungltige Kategorieinvalid categoryQRegExp(ungltiges Intervallinvalid intervalQRegExp*ungltiger Oktal-Wertinvalid octal valueQRegExp.internes Limit erreichtmet internal limitQRegExp2fehlende linke Begrenzungmissing left delimQRegExpkein Fehlerno error occurredQRegExp"unerwartetes Endeunexpected endQRegExphDie Datenbankverbindung konnte nicht geffnet werdenError opening databaseQSQLite2DriverXEs konnte keine Transaktion gestartet werdenUnable to begin transactionQSQLite2DriverDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transactionQSQLite2DriverhDie Transaktion kann nicht rckgngig gemacht werdenUnable to rollback transactionQSQLite2DriverRDer Befehl konnte nicht ausgefhrt werdenUnable to execute statementQSQLite2ResultRDas Ergebnis konnte nicht abgeholt werdenUnable to fetch resultsQSQLite2ResultnDie Datenbankverbindung konnte nicht geschlossen werdenError closing database QSQLiteDriverhDie Datenbankverbindung konnte nicht geffnet werdenError opening database QSQLiteDriverXEs konnte keine Transaktion gestartet werdenUnable to begin transaction QSQLiteDriverDie Transaktion konnte nicht durchgefhrt werden (Operation 'commit' fehlgeschlagen)Unable to commit transaction QSQLiteDriverDie Transaktion konnte nicht rckgngig gemacht werden (Operation 'rollback' fehlgeschlagen)Unable to rollback transaction QSQLiteDriverKein AbfrageNo query QSQLiteResultFDie Anzahl der Parameter ist falschParameter count mismatch QSQLiteResultTDie Parameter konnte nicht gebunden werdenUnable to bind parameters QSQLiteResultRDer Befehl konnte nicht ausgefhrt werdenUnable to execute statement QSQLiteResultTDer Datensatz konnte nicht abgeholt werdenUnable to fetch row QSQLiteResultXDer Befehl konnte nicht zurckgesetzt werdenUnable to reset statement QSQLiteResultBedingung ConditionQScriptBreakpointsModelAusgelst Hit-countQScriptBreakpointsModelIDIDQScriptBreakpointsModelAuslsen nach Ignore-countQScriptBreakpointsModel StelleLocationQScriptBreakpointsModelEinmal auslsen Single-shotQScriptBreakpointsModelLschenDeleteQScriptBreakpointsWidgetNeuNewQScriptBreakpointsWidget&&Suche im Skript...&Find in Script...QScriptDebuggerKonsole lschen Clear ConsoleQScriptDebugger*Debug-Ausgabe lschenClear Debug OutputQScriptDebugger*Fehlerausgabe lschenClear Error LogQScriptDebugger WeiterContinueQScriptDebugger Ctrl+FCtrl+FQScriptDebuggerCtrl+F10Ctrl+F10QScriptDebugger Ctrl+GCtrl+GQScriptDebuggerDebuggenDebugQScriptDebuggerF10F10QScriptDebuggerF11F11QScriptDebuggerF3F3QScriptDebuggerF5F5QScriptDebuggerF9F9QScriptDebugger&&Nchste Fundstelle Find &NextQScriptDebugger2&Vorhergehende FundstelleFind &PreviousQScriptDebuggerGehe zu Zeile Go to LineQScriptDebuggerUnterbrechen InterruptQScriptDebugger Zeile:Line:QScriptDebugger(Bis Cursor ausfhren Run to CursorQScriptDebugger:Bis zu neuem Skript ausfhrenRun to New ScriptQScriptDebuggerShift+F11 Shift+F11QScriptDebuggerShift+F3Shift+F3QScriptDebuggerShift+F5Shift+F5QScriptDebugger(Einzelschritt herein Step IntoQScriptDebugger(Einzelschritt herausStep OutQScriptDebugger$Einzelschritt ber Step OverQScriptDebugger*Haltepunkt umschaltenToggle BreakpointQScriptDebugger<img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Die Suche hat das Ende erreichtJ Search wrappedQScriptDebuggerCodeFinderWidget:Gro/Kleinschreibung beachtenCase SensitiveQScriptDebuggerCodeFinderWidgetSchlieenCloseQScriptDebuggerCodeFinderWidgetNchsteNextQScriptDebuggerCodeFinderWidget VorigePreviousQScriptDebuggerCodeFinderWidgetGanze Worte Whole wordsQScriptDebuggerCodeFinderWidgetNameNameQScriptDebuggerLocalsModelWertValueQScriptDebuggerLocalsModel EbeneLevelQScriptDebuggerStackModel StelleLocationQScriptDebuggerStackModelNameNameQScriptDebuggerStackModelBedingung:Breakpoint Condition: QScriptEdit.Haltepunkt deaktivierenDisable Breakpoint QScriptEdit*Haltepunkt aktivierenEnable Breakpoint QScriptEdit*Haltepunkt umschaltenToggle Breakpoint QScriptEditHaltepunkte BreakpointsQScriptEngineDebuggerKonsoleConsoleQScriptEngineDebuggerDebug-Ausgabe Debug OutputQScriptEngineDebuggerFehlerausgabe Error LogQScriptEngineDebugger Geladene SkripteLoaded ScriptsQScriptEngineDebugger Lokale VariablenLocalsQScriptEngineDebugger$Qt Script DebuggerQt Script DebuggerQScriptEngineDebugger SucheSearchQScriptEngineDebugger StapelStackQScriptEngineDebuggerAnsichtViewQScriptEngineDebuggerSchlieenCloseQScriptNewBreakpointWidgetEndeBottom QScrollBarLinker Rand Left edge QScrollBar*Eine Zeile nach unten Line down QScrollBarAusrichtenLine up QScrollBar*Eine Seite nach unten Page down QScrollBar*Eine Seite nach links Page left QScrollBar,Eine Seite nach rechts Page right QScrollBar(Eine Seite nach obenPage up QScrollBarPositionPosition QScrollBarRechter Rand Right edge QScrollBar&Nach unten scrollen Scroll down QScrollBar Hierher scrollen Scroll here QScrollBar&Nach links scrollen Scroll left QScrollBar(Nach rechts scrollen Scroll right QScrollBar$Nach oben scrollen Scroll up QScrollBar AnfangTop QScrollBarV%1: Die Unix-Schlsseldatei existiert nicht%1: UNIX key file doesn't exist QSharedMemory*%1: existiert bereits%1: already exists QSharedMemoryv%1: Die Grenangabe fr die Erzeugung ist kleiner als Null%1: create size is less then 0 QSharedMemory&%1: existiert nicht%1: doesn't exist QSharedMemory&%1: existiert nicht%1: doesn't exists QSharedMemoryD%1: ftok-Aufruf ist fehlgeschlagen%1: ftok failed QSharedMemory&%1: Ungltige Gre%1: invalid size QSharedMemoryH%1: Ungltige Schlsselangabe (leer)%1: key is empty QSharedMemory&%1: nicht verbunden%1: not attached QSharedMemoryF%1: Keine Ressourcen mehr verfgbar%1: out of resources QSharedMemory,%1: Zugriff verweigert%1: permission denied QSharedMemoryX%1: Die Abfrage der Gre ist fehlgeschlagen%1: size query failed QSharedMemoryl%1: Ein systembedingtes Limit der Gre wurde erreicht$%1: system-imposed size restrictions QSharedMemory6%1: Sperrung fehlgeschlagen%1: unable to lock QSharedMemoryR%1: Es kann kein Schlssel erzeugt werden%1: unable to make key QSharedMemoryt%1: Es kann kein Schlssel fr die Sperrung gesetzt werden%1: unable to set key on lock QSharedMemory^%1: Die Sperrung konnte nicht aufgehoben werden%1: unable to unlock QSharedMemory2%1: Unbekannter Fehler %2%1: unknown error %2 QSharedMemory++ QShortcut,Lesezeichen hinzufgen Add Favorite QShortcut*Helligkeit einstellenAdjust Brightness QShortcutAltAlt QShortcutAnwendung linksApplication Left QShortcut Anwendung rechtsApplication Right QShortcut$Audiospur wechselnAudio Cycle Track QShortcutAudio vorspulen Audio Forward QShortcut>Audio zufllige Auswahl spielenAudio Random Play QShortcut"Audio wiederholen Audio Repeat QShortcut Audio rckspulen Audio Rewind QShortcutAbwesendAway QShortcut ZurckBack QShortcut(Hinterstes nach vorn Back Forward QShortcutRcktaste Backspace QShortcutRck-TabBacktab QShortcutBass-Boost Bass Boost QShortcut Bass - Bass Down QShortcut Bass +Bass Up QShortcutBatterieBattery QShortcutBluetooth Bluetooth QShortcutBuchBook QShortcutBrowserBrowser QShortcutCDCD QShortcutRechner Calculator QShortcut AnrufCall QShortcutScharfstellen Camera Focus QShortcutAuslserCamera Shutter QShortcutFeststelltaste Caps Lock QShortcutFeststelltasteCapsLock QShortcutLschenClear QShortcutZugriff lschen Clear Grab QShortcutSchlieenClose QShortcutCode-Eingabe Code input QShortcutCommunity Community QShortcutKontext1Context1 QShortcutKontext2Context2 QShortcutKontext3Context3 QShortcutKontext4Context4 QShortcutKopierenCopy QShortcutStrgCtrl QShortcutAusschneidenCut QShortcutDOSDOS QShortcutEntfDel QShortcutLschenDelete QShortcutAnzeigenDisplay QShortcutDokumente Documents QShortcut RunterDown QShortcutEisu Shift Eisu Shift QShortcutEisu toggle Eisu toggle QShortcutAuswerfenEject QShortcutEndeEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoriten Favorites QShortcutFinanzenFinance QShortcutUmdrehenFlip QShortcutVorwrtsForward QShortcut SpielGame QShortcutLosGo QShortcutHangeulHangul QShortcutHangeul-Banja Hangul Banja QShortcutHangeul Ende Hangul End QShortcutHangeul-Hanja Hangul Hanja QShortcutHangeul-Jamo Hangul Jamo QShortcutHangeul-Jeonja Hangul Jeonja QShortcut"Hangeul-PostHanjaHangul PostHanja QShortcut Hangeul-PreHanjaHangul PreHanja QShortcutHangeul-Romaja Hangul Romaja QShortcutHangeul SpecialHangul Special QShortcutHangeul Anfang Hangul Start QShortcutAuflegenHangup QShortcutHankakuHankaku QShortcut HilfeHelp QShortcut HenkanHenkan QShortcutHibernate Hibernate QShortcutHiraganaHiragana QShortcut"Hiragana KatakanaHiragana Katakana QShortcutVerlaufHistory QShortcutPos1Home QShortcutHome Office Home Office QShortcutStartseite Home Page QShortcut&Empfohlene Verweise Hot Links QShortcut EinfgIns QShortcutEinfgenInsert QShortcutKana Lock Kana Lock QShortcutKana Shift Kana Shift QShortcut KanjiKanji QShortcutKatakanaKatakana QShortcut6Tastaturbeleuchtung dunklerKeyboard Brightness Down QShortcut4Tastaturbeleuchtung hellerKeyboard Brightness Up QShortcut6Tastaturbeleuchtung Ein/AusKeyboard Light On/Off QShortcutTastaturmen Keyboard Menu QShortcut WahlwiederholungLast Number Redial QShortcut(0) starten Launch (0) QShortcut(1) starten Launch (1) QShortcut(2) starten Launch (2) QShortcut(3) starten Launch (3) QShortcut(4) starten Launch (4) QShortcut(5) starten Launch (5) QShortcut(6) starten Launch (6) QShortcut(7) starten Launch (7) QShortcut(8) starten Launch (8) QShortcut(9) starten Launch (9) QShortcut(A) starten Launch (A) QShortcut(B) starten Launch (B) QShortcut(C) starten Launch (C) QShortcut(D) starten Launch (D) QShortcut(E) starten Launch (E) QShortcut(F) starten Launch (F) QShortcutMail starten Launch Mail QShortcut*Medienspieler starten Launch Media QShortcut LinksLeft QShortcutBeleuchtung LightBulb QShortcut LogoffLogoff QShortcutWeiterleitung Mail Forward QShortcut MarktMarket QShortcut MassyoMassyo QShortcutNchster Media Next QShortcut Pause Media Pause QShortcutWiedergabe Media Play QShortcutVorherigerMedia Previous QShortcutAufzeichnen Media Record QShortcut Stopp Media Stop QShortcutVersammlungMeeting QShortcutMenMenu QShortcutMen PBMenu PB QShortcutMessenger Messenger QShortcutMetaMeta QShortcutMonitor dunklerMonitor Brightness Down QShortcutMonitor hellerMonitor Brightness Up QShortcutMuhenkanMuhenkan QShortcut$Mehrere VorschlgeMultiple Candidate QShortcut MusikMusic QShortcutMeine OrteMy Sites QShortcutNachrichtenNews QShortcutNeinNo QShortcut*Zahlen-FeststelltasteNum Lock QShortcut*Zahlen-FeststelltasteNumLock QShortcut*Zahlen-Feststelltaste Number Lock QShortcutURL ffnenOpen URL QShortcut OptionOption QShortcutBild abwrts Page Down QShortcutBild aufwrtsPage Up QShortcutEinfgenPaste QShortcut PausePause QShortcutBild abwrtsPgDown QShortcutBild aufwrtsPgUp QShortcutTelefonPhone QShortcut BilderPictures QShortcutAusschalten Power Off QShortcut(Vorheriger VorschlagPrevious Candidate QShortcut DruckPrint QShortcut$Bildschirm drucken Print Screen QShortcutAktualisierenRefresh QShortcutNeu ladenReload QShortcutAntwortenReply QShortcut ReturnReturn QShortcut RechtsRight QShortcut RomajiRomaji QShortcut Fenster rotierenRotate Windows QShortcutRotation KB Rotation KB QShortcutRotation PB Rotation PB QShortcutSpeichernSave QShortcut"Bildschirmschoner Screensaver QShortcut*Rollen-Feststelltaste Scroll Lock QShortcut*Rollen-Feststelltaste ScrollLock QShortcut SuchenSearch QShortcutAuswhlenSelect QShortcut SendenSend QShortcutUmschaltShift QShortcutShopShop QShortcutSchlafmodusSleep QShortcutLeertasteSpace QShortcut&Rechtschreibprfung Spellchecker QShortcut"Bildschirm teilen Split Screen QShortcutSpreadsheet Spreadsheet QShortcutStandbyStandby QShortcutAbbrechenStop QShortcutUntertitelSubtitle QShortcut HilfeSupport QShortcut PauseSuspend QShortcut SysReqSysReq QShortcutSystem RequestSystem Request QShortcutTabTab QShortcutTask-Leiste Task Panel QShortcutTerminalTerminal QShortcutZeitTime QShortcut"Anrufen/AufhngenToggle Call/Hangup QShortcut Wiedergabe/PauseToggle Media Play/Pause QShortcutWerkzeugeTools QShortcutHauptmenTop Menu QShortcutTourokuTouroku QShortcut ReiseTravel QShortcutHhen - Treble Down QShortcutHhen + Treble Up QShortcutUltra Wide BandUltra Wide Band QShortcutHochUp QShortcut VideoVideo QShortcutAnsichtView QShortcutSprachwahl Voice Dial QShortcutLautstrke - Volume Down QShortcutTon aus Volume Mute QShortcutLautstrke + Volume Up QShortcutInternetWWW QShortcutAufweckenWake Up QShortcut WebCamWebCam QShortcutDrahtlosWireless QShortcut TextverarbeitungWord Processor QShortcutXFerXFer QShortcutJaYes QShortcutZenkakuZenkaku QShortcutZenkaku HankakuZenkaku Hankaku QShortcutVergrernZoom In QShortcutVerkleinernZoom Out QShortcut iTouchiTouch QShortcut*Eine Seite nach unten Page downQSlider*Eine Seite nach links Page leftQSlider,Eine Seite nach rechts Page rightQSlider(Eine Seite nach obenPage upQSliderPositionPositionQSliderNDieser Adresstyp wird nicht untersttztAddress type not supportedQSocks5SocketEngine`Der SOCKSv5-Server hat die Verbindung verweigert(Connection not allowed by SOCKSv5 serverQSocks5SocketEnginejDer Proxy-Server hat die Verbindung vorzeitig beendet&Connection to proxy closed prematurelyQSocks5SocketEnginevDer Proxy-Server hat den Aufbau einer Verbindung verweigertConnection to proxy refusedQSocks5SocketEngineBei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit berschrittenConnection to proxy timed outQSocks5SocketEngine~Allgemeiner Fehler bei der Kommunikation mit dem SOCKSv5-ServerGeneral SOCKSv5 server failureQSocks5SocketEnginefDas Zeitlimit fr die Operation wurde berschrittenNetwork operation timed outQSocks5SocketEnginetDie Authentifizierung beim Proxy-Server ist fehlgeschlagenProxy authentication failedQSocks5SocketEngine|Die Authentifizierung beim Proxy-Server ist fehlgeschlagen: %1Proxy authentication failed: %1QSocks5SocketEngineZDer Proxy-Server konnte nicht gefunden werdenProxy host not foundQSocks5SocketEngineDProtokoll-Fehler (SOCKS Version 5)SOCKS version 5 protocol errorQSocks5SocketEngine\Dieses SOCKSv5-Kommando wird nicht untersttztSOCKSv5 command not supportedQSocks5SocketEngineTTL verstrichen TTL expiredQSocks5SocketEngine|Unbekannten Fehlercode vom SOCKSv5-Proxy-Server erhalten: 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineAbbrechenCancelQSoftKeyManager FertigDoneQSoftKeyManagerBeendenExitQSoftKeyManagerOKOKQSoftKeyManagerOptionenOptionsQSoftKeyManagerAuswhlenSelectQSoftKeyManagerWenigerLessQSpinBoxMehrMoreQSpinBoxAbbrechenCancelQSql*nderungen verwerfen?Cancel your edits?QSqlBesttigenConfirmQSqlLschenDeleteQSql2Diesen Datensatz lschen?Delete this record?QSqlEinfgenInsertQSqlNeinNoQSql*nderungen speichern? Save edits?QSqlAktualisierenUpdateQSqlJaYesQSqlOhne Schlssel kann kein Zertifikat zur Verfgung gestellt werden, %1,Cannot provide a certificate with no key, %1 QSslSocketnEs konnte keine SSL-Kontextstruktur erzeugt werden (%1)Error creating SSL context (%1) QSslSocket\Es konnte keine SSL-Sitzung erzeugt werden, %1Error creating SSL session, %1 QSslSocket\Es konnte keine SSL-Sitzung erzeugt werden: %1Error creating SSL session: %1 QSslSocketvIm Ablauf des SSL-Protokolls ist ein Fehler aufgetreten: %1Error during SSL handshake: %1 QSslSocketjDas lokale Zertifikat konnte nicht geladen werden, %1#Error loading local certificate, %1 QSslSocketjDer private Schlssel konnte nicht geladen werden, %1Error loading private key, %1 QSslSocketRBeim Lesen ist ein Fehler aufgetreten: %1Error while reading: %1 QSslSocketPUngltige oder leere Schlsselliste (%1)!Invalid or empty cipher list (%1) QSslSocket`Keines der Zertifikate konnte verifiziert werden!No certificates could be verified QSslSocketKein FehlerNo error QSslSocketxEines der Zertifikate der Zertifizierungsstelle ist ungltig%One of the CA certificates is invalid QSslSocketDer private Schlssel passt nicht zum ffentlichen Schlssel, %1+Private key does not certify public key, %1 QSslSocketrDie Lnge des basicConstraints-Pfades wurde berschrittenDie Adresse ist nicht verfgbarThe address is not availableQSymbianSocketEngine2Die Adresse ist geschtztThe address is protectedQSymbianSocketEngine\Die angegebene Adresse ist bereits in Gebrauch#The bound address is already in useQSymbianSocketEngine|Die Operation kann mit dem Proxy-Typ nicht durchgefhrt werden,The proxy type is invalid for this operationQSymbianSocketEnginehDer entfernte Rechner hat die Verbindung geschlossen%The remote host closed the connectionQSymbianSocketEnginelDer Broadcast-Socket konnte nicht initialisiert werden%Unable to initialize broadcast socketQSymbianSocketEngine|Der nichtblockierende Socket konnte nicht initialisiert werden(Unable to initialize non-blocking socketQSymbianSocketEngineVDie Nachricht konnte nicht empfangen werdenUnable to receive a messageQSymbianSocketEngineTDie Nachricht konnte nicht gesendet werdenUnable to send a messageQSymbianSocketEnginebDer Schreibvorgang konnte nicht ausgefhrt werdenUnable to writeQSymbianSocketEngine$Unbekannter Fehler Unknown errorQSymbianSocketEngineD Socket-Kommando nicht untersttztUnsupported socket operationQSymbianSocketEngine*%1: Existiert bereits%1: already existsQSystemSemaphore$%1: Nicht existent%1: does not existQSystemSemaphoreF%1: Keine Ressourcen mehr verfgbar%1: out of resourcesQSystemSemaphore,%1: Zugriff verweigert%1: permission deniedQSystemSemaphore2%1: Unbekannter Fehler %2%1: unknown error %2QSystemSemaphoredDie Datenbankverbindung kann nicht geffnet werdenUnable to open connection QTDSDriverRDie Datenbank kann nicht verwendet werdenUnable to use database QTDSDriverAktivierenActivateQTabBarSchlieenCloseQTabBarDrckenPressQTabBar&Nach links scrollen Scroll LeftQTabBar(Nach rechts scrollen Scroll RightQTabBarZDiese Socket-Operation wird nicht untersttzt$Operation on socket is not supported QTcpServer&Kopieren&Copy QTextControlEinf&gen&Paste QTextControl"Wieder&herstellen&Redo QTextControl&Rckgngig&Undo QTextControl,&Link-Adresse kopierenCopy &Link Location QTextControl&AusschneidenCu&t QTextControlLschenDelete QTextControlAlles auswhlen Select All QTextControl ffnenOpen QToolButtonDrckenPress QToolButtonJDiese Plattform untersttzt kein IPv6#This platform does not support IPv6 QUdpSocket WiederherstellenDefault text for redo actionRedo QUndoGroupRckgngigDefault text for undo actionUndo QUndoGroup <leer> QUndoModel WiederherstellenDefault text for redo actionRedo QUndoStackRckgngigDefault text for undo actionUndo QUndoStack@Unicode-Kontrollzeichen einfgen Insert Unicode control characterQUnicodeControlCharacterMenuHLRE Start of left-to-right embedding$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu,LRM Left-to-right markLRM Left-to-right markQUnicodeControlCharacterMenuFLRO Start of left-to-right override#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Pop directional formattingPDF Pop directional formattingQUnicodeControlCharacterMenuHRLE Start of right-to-left embedding$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu,RLM Right-to-left markRLM Right-to-left markQUnicodeControlCharacterMenuFRLO Start of right-to-left override#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu*ZWJ Zero width joinerZWJ Zero width joinerQUnicodeControlCharacterMenu4ZWNJ Zero width non-joinerZWNJ Zero width non-joinerQUnicodeControlCharacterMenu*ZWSP Zero width spaceZWSP Zero width spaceQUnicodeControlCharacterMenuFDer URL kann nicht angezeigt werdenCannot show URL QWebFrameVDieser Mime-Typ kann nicht angezeigt werdenCannot show mimetype QWebFrame2Die Datei existiert nichtFile does not exist QWebFrameDas Laden des Rahmens wurde durch eine nderung der Richtlinien unterbrochen'Frame load interrupted by policy change QWebFrame0Anfrage wurde abgewiesenRequest blocked QWebFrame2Anfrage wurde abgebrochenRequest cancelled QWebFrame %1 (%2x%3 Pixel)%1 (%2x%3 pixels)QWebPageR%1 Tage %2 Stunden %3 Minuten %4 Sekunden&%1 days %2 hours %3 minutes %4 secondsQWebPageB%1 Stunden %2 Minuten %3 Sekunden%1 hours %2 minutes %3 secondsQWebPage,%1 Minuten %2 Sekunden%1 minutes %2 secondsQWebPage%1 Sekunden %1 secondsQWebPageEine Datei%n Dateien %n file(s)QWebPage.In Wrterbuch aufnehmenAdd To DictionaryQWebPage,Linksbndig ausrichten Align LeftQWebPage.Rechtsbndig ausrichten Align RightQWebPageAudio-Element Audio ElementQWebPageBAudio-Steuerung und Statusanzeige2Audio element playback controls and status displayQWebPageAbspielenBegin playbackQWebPageFettBoldQWebPageEndeBottomQWebPageZentrierenCenterQWebPagebGrammatik mit Rechtschreibung zusammen berprfenCheck Grammar With SpellingQWebPage,Rechtschreibung prfenCheck SpellingQWebPagebRechtschreibung whrend des Schreibens berprfenCheck Spelling While TypingQWebPageDurchsuchen Choose FileQWebPageBGespeicherte Suchanfragen lschenClear recent searchesQWebPageKopierenCopyQWebPageGrafik kopieren Copy ImageQWebPage*Link-Adresse kopieren Copy LinkQWebPage Status des FilmsCurrent movie statusQWebPage*Abspielzeit des FilmsCurrent movie timeQWebPageAusschneidenCutQWebPageVorgabeDefaultQWebPage>Bis zum Ende des Wortes lschenDelete to the end of the wordQWebPageBBis zum Anfang des Wortes lschenDelete to the start of the wordQWebPageSchreibrichtung DirectionQWebPageSpielzeit Elapsed TimeQWebPage FontsFontsQWebPageVollbild-TasteFullscreen ButtonQWebPage ZurckGo BackQWebPageVor Go ForwardQWebPageXRechtschreibung und Grammatik nicht anzeigenHide Spelling and GrammarQWebPageIgnorierenIgnoreQWebPageIgnorieren Ignore Grammar context menu itemIgnoreQWebPage Unbegrenzte ZeitIndefinite timeQWebPageEinrckenIndentQWebPage4Liste mit Punkten einfgenInsert Bulleted ListQWebPage4Nummerierte Liste einfgenInsert Numbered ListQWebPage&Neue Zeile einfgenInsert a new lineQWebPage0Neuen Abschnitt einfgenInsert a new paragraphQWebPage PrfenInspectQWebPage KursivItalicQWebPage.JavaScript-Hinweis - %1JavaScript Alert - %1QWebPage6JavaScript-Besttigung - %1JavaScript Confirm - %1QWebPage.JavaScript-Problem - %1JavaScript Problem - %1QWebPageFJavaScript-Eingabeaufforderung - %1JavaScript Prompt - %1QWebPageAusrichtenJustifyQWebPageLinker Rand Left edgeQWebPage*Von links nach rechts Left to RightQWebPage Live-bertragungLive BroadcastQWebPageLdt... Loading...QWebPage2Im Wrterbuch nachschauenLook Up In DictionaryQWebPage Fehlendes PluginMissing Plug-inQWebPageRPositionsmarke auf Ende des Blocks setzen'Move the cursor to the end of the blockQWebPageXPositionsmarke auf Ende des Dokuments setzen*Move the cursor to the end of the documentQWebPageHPositionsmarke auf Zeilenende setzen&Move the cursor to the end of the lineQWebPageTPositionsmarke auf nchstes Zeichen setzen%Move the cursor to the next characterQWebPageNPositionsmarke auf nchste Zeile setzen Move the cursor to the next lineQWebPageNPositionsmarke auf nchstes Wort setzen Move the cursor to the next wordQWebPageXPositionsmarke auf vorheriges Zeichen setzen)Move the cursor to the previous characterQWebPageRPositionsmarke auf vorherige Zeile setzen$Move the cursor to the previous lineQWebPagePPositionsmarke auf vorherige Wort setzen$Move the cursor to the previous wordQWebPageVPositionsmarke auf Anfang des Blocks setzen)Move the cursor to the start of the blockQWebPage\Positionsmarke auf Anfang des Dokuments setzen,Move the cursor to the start of the documentQWebPageLPositionsmarke auf Zeilenanfang setzen(Move the cursor to the start of the lineQWebPageAbspielzeitMovie time scrubberQWebPageJGriff zur Einstellung der AbspielzeitMovie time scrubber thumbQWebPage Stummschalttaste Mute ButtonQWebPage.Schalte Tonspuren stummMute audio tracksQWebPage2Keine Vorschlge gefundenNo Guesses FoundQWebPage:Es ist keine Datei ausgewhltNo file selectedQWebPageJEs existieren noch keine SuchanfragenNo recent searchesQWebPageFrame ffnen Open FrameQWebPage<Grafik in neuem Fenster ffnen Open ImageQWebPageAdresse ffnen Open LinkQWebPage.In neuem Fenster ffnenOpen in New WindowQWebPage&Einrckung aufhebenOutdentQWebPage UmrissOutlineQWebPage*Eine Seite nach unten Page downQWebPage*Eine Seite nach links Page leftQWebPage,Eine Seite nach rechts Page rightQWebPage(Eine Seite nach obenPage upQWebPageEinfgenPasteQWebPage<Einfgen und dem Stil anpassenPaste and Match StyleQWebPage PausePauseQWebPagePause-Knopf Pause ButtonQWebPage PausePause playbackQWebPageAbspielknopf Play ButtonQWebPage>Film im Vollbildmodus abspielenPlay movie in full-screen modeQWebPage,Bisherige SuchanfragenRecent searchesQWebPagebMaximal Anzahl von Weiterleitungen wurde erreichtRedirection limit reachedQWebPageNeu ladenReloadQWebPage"Verbleibende ZeitRemaining TimeQWebPage6Verbleibende Zeit des FilmsRemaining movie timeQWebPage,Formatierung entfernenRemove formattingQWebPageRcksetzenResetQWebPage<Setze Film auf Echtzeit zurck#Return streaming movie to real-timeQWebPage0Kehre zu Echtzeit zurckReturn to Real-time ButtonQWebPageRckspultaste Rewind ButtonQWebPage"Film zurckspulen Rewind movieQWebPageRechter Rand Right edgeQWebPage*Von rechts nach links Right to LeftQWebPage,Grafik speichern unter Save ImageQWebPage.Ziel speichern unter... Save Link...QWebPage&Nach unten scrollen Scroll downQWebPage Hierher scrollen Scroll hereQWebPage&Nach links scrollen Scroll leftQWebPage(Nach rechts scrollen Scroll rightQWebPage$Nach oben scrollen Scroll upQWebPageIm Web suchenSearch The WebQWebPageRcklauftasteSeek Back ButtonQWebPageVorlauftasteSeek Forward ButtonQWebPage2Schnelles RckwrtssuchenSeek quickly backQWebPage0Schnelles VorwrtssuchenSeek quickly forwardQWebPageAlles auswhlen Select AllQWebPageBBis zum Ende des Blocks markierenSelect to the end of the blockQWebPageHBis zum Ende des Dokuments markieren!Select to the end of the documentQWebPage8Bis zum Zeilenende markierenSelect to the end of the lineQWebPageDBis zum nchsten Zeichen markierenSelect to the next characterQWebPage@Bis zur nchsten Zeile markierenSelect to the next lineQWebPage>Bis zum nchsten Wort markierenSelect to the next wordQWebPageHBis zum vorherigen Zeichen markieren Select to the previous characterQWebPageDBis zur vorherigen Zeile markierenSelect to the previous lineQWebPageBBis zum vorherigen Wort markierenSelect to the previous wordQWebPageFBis zum Anfang des Blocks markieren Select to the start of the blockQWebPageLBis zum Anfang des Dokuments markieren#Select to the start of the documentQWebPage<Bis zum Zeilenanfang markierenSelect to the start of the lineQWebPageLRechtschreibung und Grammatik anzeigenShow Spelling and GrammarQWebPageSchiebereglerSliderQWebPage&Schieberegler-Griff Slider ThumbQWebPageRechtschreibungSpellingQWebPageStatusanzeigeStatus DisplayQWebPageAbbrechenStopQWebPageDurchgestrichen StrikethroughQWebPage SendenSubmitQWebPage SendenQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPageTiefstellung SubscriptQWebPageHochstellung SuperscriptQWebPageSchreibrichtungText DirectionQWebPageDas Skript dieser Webseite ist fehlerhaft. Mchten Sie es anhalten?RThe script on this page appears to have a problem. Do you want to stop the script?QWebPageDieser Index verfgt ber eine Suchfunktion. Geben Sie einen Suchbegriff ein:3This is a searchable index. Enter search keywords: QWebPage AnfangTopQWebPageUnterstrichen UnderlineQWebPageUnbekanntUnknownQWebPage>Abstelltaste fr Stummschaltung Unmute ButtonQWebPageJStummschaltung der Tonspuren aufhebenUnmute audio tracksQWebPageVideo-Element Video ElementQWebPageBVideo-Steuerung und Statusanzeige2Video element playback controls and status displayQWebPage$Web Inspector - %2Web Inspector - %2QWebPageDirekthilfe What's This?QWhatsThisAction**QWidgetAb&schlieen&FinishQWizard &Hilfe&HelpQWizard&Weiter&NextQWizard&Weiter >&Next >QWizard< &Zurck< &BackQWizardAbbrechenCancelQWizardAnwendenCommitQWizard WeiterContinueQWizard FertigDoneQWizard ZurckGo BackQWizard HilfeHelpQWizard%1 - [%2] %1 - [%2] QWorkspaceSchl&ieen&Close QWorkspaceVer&schieben&Move QWorkspace"Wieder&herstellen&Restore QWorkspace&Gre ndern&Size QWorkspace&Herabrollen&Unshade QWorkspaceSchlieenClose QWorkspaceMa&ximieren Ma&ximize QWorkspaceM&inimieren Mi&nimize QWorkspaceMinimierenMinimize QWorkspace Wiederherstellen Restore Down QWorkspace&AufrollenSh&ade QWorkspace.Im &Vordergrund bleiben Stay on &Top QWorkspacefehlende Kodierung-Deklaration oder Standalone-Deklaration beim Parsen der XML-DeklarationYencoding declaration or standalone declaration expected while reading the XML declarationQXmlhFehler in der Text-Deklaration einer externen Entity3error in the text declaration of an external entityQXmlFFehler beim Parsen eines Kommentars$error occurred while parsing commentQXmlZFehler beim Parsen des Inhalts eines Elements$error occurred while parsing contentQXmlXFehler beim Parsen der Dokumenttypdefinition5error occurred while parsing document type definitionQXmlBFehler beim Parsen eines Elements$error occurred while parsing elementQXmlBFehler beim Parsen einer Referenz&error occurred while parsing referenceQXml4Konsument lste Fehler auserror triggered by consumerQXmlrin der DTD sind keine externen Entity-Referenzen erlaubt ;external parsed general entity reference not allowed in DTDQXmlin einem Attribut-Wert sind keine externen Entity-Referenzen erlaubtGexternal parsed general entity reference not allowed in attribute valueQXmlin einer DTD ist keine interne allgemeine Entity-Referenz erlaubt4internal general entity reference not allowed in DTDQXmldkein gltiger Name fr eine Processing-Instruktion'invalid name for processing instructionQXml^ein Buchstabe ist an dieser Stelle erforderlichletter is expectedQXml>mehrere Dokumenttypdefinitionen&more than one document type definitionQXmlkein Fehlerno error occurredQXml rekursive Entityrecursive entitiesQXml~fehlende Standalone-Deklaration beim Parsen der XML DeklarationAstandalone declaration expected while reading the XML declarationQXmlXElement-Tags sind nicht richtig geschachtelt tag mismatchQXml(unerwartetes Zeichenunexpected characterQXml6unerwartetes Ende der Dateiunexpected end of fileQXml~nicht-analysierte Entity-Referenz im falschen Kontext verwendet*unparsed entity reference in wrong contextQXml`fehlende Version beim Parsen der XML-Deklaration2version expected while reading the XML declarationQXmlXfalscher Wert fr die Standalone-Deklaration&wrong value for standalone declarationQXmlXFehler %1 in %2, bei Zeile %3, Spalte %4: %5)Error %1 in %2, at line %3, column %4: %5QXmlPatternistCLI&Fehler %1 in %2: %3Error %1 in %2: %3QXmlPatternistCLIUnbekannter OrtUnknown locationQXmlPatternistCLITWarnung in %1, bei Zeile %2, Spalte %3: %4(Warning in %1, at line %2, column %3: %4QXmlPatternistCLI"Warnung in %1: %2Warning in %1: %2QXmlPatternistCLI^%1 ist keine gltige Angabe fr eine PUBLIC-Id.#%1 is an invalid PUBLIC identifier. QXmlStreamX%1 ist kein gltiger Name fr die Kodierung.%1 is an invalid encoding name. QXmlStreamt%1 ist kein gltiger Name fr eine Prozessing-Instruktion.-%1 is an invalid processing instruction name. QXmlStream@erwartet, stattdessen erhalten ' , but got ' QXmlStream<Redefinition eines Attributes.Attribute redefined. QXmlStreamNDie Kodierung %1 wird nicht untersttztEncoding %1 is unsupported QXmlStreampEs wurde Inhalt mit einer ungltigen Kodierung gefunden.(Encountered incorrectly encoded content. QXmlStreamJDie Entity '%1' ist nicht deklariert.Entity '%1' not declared. QXmlStreamEs wurde  Expected  QXmlStream@Es wurden Zeichendaten erwartet.Expected character data. QXmlStreamXberzhliger Inhalt nach Ende des Dokuments.!Extra content at end of document. QXmlStreamBUngltige Namensraum-Deklaration.Illegal namespace declaration. QXmlStream.Ungltiges XML-Zeichen.Invalid XML character. QXmlStream(Ungltiger XML-Name.Invalid XML name. QXmlStream:Ungltige XML-Versionsangabe.Invalid XML version string. QXmlStreamhDie XML-Deklaration enthlt ein ungltiges Attribut.%Invalid attribute in XML declaration. QXmlStream4Ungltige Zeichenreferenz.Invalid character reference. QXmlStream(Ungltiges Dokument.Invalid document. QXmlStream.Ungltiger Entity-Wert.Invalid entity value. QXmlStreambDer Name der Prozessing-Instruktion ist ungltig.$Invalid processing instruction name. QXmlStreamxEine Parameter-Entity-Deklaration darf kein NDATA enthalten.&NDATA in parameter entity declaration. QXmlStreambDer Namensraum-Prfix '%1' wurde nicht deklariert"Namespace prefix '%1' not declared QXmlStreamDie Anzahl der ffnenden Elemente stimmt nicht mit der Anzahl der schlieenden Elemente berein. Opening and ending tag mismatch. QXmlStream>Vorzeitiges Ende des Dokuments.Premature end of document. QXmlStreamXEs wurde eine rekursive Entity festgestellt.Recursive entity detected. QXmlStreamvIm Attributwert wurde die externe Entity '%1' referenziert.5Reference to external entity '%1' in attribute value. QXmlStreambEs wurde die ungeparste Entity '%1' referenziert."Reference to unparsed entity '%1'. QXmlStreamfIm Inhalt ist die Zeichenfolge ']]>' nicht erlaubt.&Sequence ']]>' not allowed in content. QXmlStreamDer Wert fr das 'Standalone'-Attribut kann nur 'yes' oder 'no' sein."Standalone accepts only yes or no. QXmlStream6ffnendes Element erwartet.Start tag expected. QXmlStreamDas Standalone-Pseudoattribut muss der Kodierung unmittelbar folgen.?The standalone pseudo attribute must appear after the encoding. QXmlStream8Ungltig an dieser Stelle '  Unexpected ' QXmlStreamr'%1' ist kein gltiges Zeichen in einer public-id-Angabe./Unexpected character '%1' in public id literal. QXmlStreamRDiese XML-Version wird nicht untersttzt.Unsupported XML version. QXmlStreamDie XML-Deklaration befindet sich nicht am Anfang des Dokuments.)XML declaration not at start of document. QXmlStreamAuswhlenSelectQmlJSDebugger::QmlToolBarWerkzeugeToolsQmlJSDebugger::QmlToolBarVergrernZoom InQmlJSDebugger::ZoomToolVerkleinernZoom OutQmlJSDebugger::ZoomToolDie Ausdrcke %1 und %2 passen jeweils auf den Anfang oder das Ende einer beliebigen Zeile.,%1 and %2 match the start and end of a line. QtXmlPatternsDas Attribut %1 aus %2 muss die Verwendung '%3' spezifizieren, wie im Basistyp %4.9%1 attribute in %2 must have %3 use like in base type %4. QtXmlPatternsDas Attribut %1 in einem abgeleiteten komplexen Typ muss wie im Basistyp '%2' sein.B%1 attribute in derived complex type must be %2 like in base type. QtXmlPatternsDas Attribut %1 des Elements %2 enthlt ungltigen Inhalt: {%3} ist kein Wert des Typs %4.T%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. QtXmlPatternsDas Attribut %1 des Elements %2 enthlt ungltigen Inhalt: {%3}.:%1 attribute of %2 element contains invalid content: {%3}. QtXmlPatternsDer Wert des Attributs %1 des Elements %2 ist grer als der des Attributs %3.>%1 attribute of %2 element has larger value than %3 attribute. QtXmlPatternsrDas Attribut %1 des Elements %2 kann nur %3 oder %4 sein.,%1 attribute of %2 element must be %3 or %4. QtXmlPatternsDas Attribut %1 des Elements %2 muss %3, %4 oder eine Liste der URIs enthalten.A%1 attribute of %2 element must contain %3, %4 or a list of URIs. QtXmlPatternsDer Wert des Attributs %1 des Elements %2 muss entweder %3 oder die anderen Werte enthalten.F%1 attribute of %2 element must either contain %3 or the other values. QtXmlPatternsDas Attribut %1 des Elements %2 kann nur einen der Werte %3 oder %4 haben.9%1 attribute of %2 element must have a value of %3 or %4. QtXmlPatternsnDas Attribut %1 des Elements %2 muss den Wert %3 haben.3%1 attribute of %2 element must have a value of %3. QtXmlPatternsDas Attribut %1 des Elements %2 muss den Wert %3 haben, da das Attribut %4 gesetzt ist.R%1 attribute of %2 element must have the value %3 because the %4 attribute is set. QtXmlPatternsfDas Attribut %1 des Elements %2 kann nicht %3 sein.*%1 attribute of %2 element must not be %3. QtXmlPatterns:%1 kann nicht bestimmt werden%1 cannot be retrieved QtXmlPatterns~%1 kann keinen komplexen Basistyp haben, der '%2' spezifiziert./%1 cannot have complex base type that has a %2. QtXmlPatternsh%1 enthlt eine Facette %2 mit ungltigen Daten: %3.+%1 contains %2 facet with invalid data: %3. QtXmlPatterns6%1 enthlt ungltige Daten.%1 contains invalid data. QtXmlPatterns%1 enthlt Oktette, die in der Kodierung %2 nicht zulssig sind.E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatternsDas Element %2 (%1) ist keine gltige Einschrnkung des berschriebenen Elements (%3): %4.L%1 element %2 is not a valid restriction of the %3 element it redefines: %4. QtXmlPatternsDer Wert des Attributs %2 des Elements %1 kann nur %3 oder %4 sein.C%1 element cannot have %2 attribute with value other than %3 or %4. QtXmlPatternsvDer Wert des Attributs %2 des Elements %1 kann nur %3 sein.=%1 element cannot have %2 attribute with value other than %3. QtXmlPatternsDas Element %1 hat weder das Attribut %2 noch ein Unterelement %3.9%1 element has neither %2 attribute nor %3 child element. QtXmlPatternshDas Element %1 ist in diesem Kontext nicht zulssig.*%1 element is not allowed in this context. QtXmlPatternsfDas Element %1 ist in diesem Bereich nicht zulssig'%1 element is not allowed in this scope QtXmlPatternsWenn das Attribut %3 vorhanden ist, darf das Element %1 nicht im Element %2 vorkommen.G%1 element is not allowed inside %2 element if %3 attribute is present. QtXmlPatternsDas Element %1 kann nicht den Zielnamensraum %3 als Wert des Attributs '%2' spezifizieren.Y%1 element is not allowed to have the same %2 attribute value as the target namespace %3. QtXmlPatternsDas Element %1 muss entweder das Attribut %2 spezifizieren oder ber eines der Unterelemente %3 oder %4 verfgen.F%1 element must have either %2 attribute or %3 or %4 as child element. QtXmlPatternsDas Element %1 muss eines der Attribute %2 oder %3 spezifizieren./%1 element must have either %2 or %3 attribute. QtXmlPatternsDie Attribute %2 und %3 knnen nicht zusammen im Element %1 erscheinen.6%1 element must not have %2 and %3 attribute together. QtXmlPatternspDas Element %1 erfordert eines der Attribute %2 oder %3..%1 element requires either %2 or %3 attribute. QtXmlPatternsDas Element %1 darf kein Attribut %3 haben, wenn das Unterelement %2 vorhanden ist.>%1 element with %2 child element must not have a %3 attribute. QtXmlPatternsIn einem Schema ohne Namensraum muss das Element %1 ein Attribut %2 haben.V%1 element without %2 attribute is not allowed inside schema without target namespace. QtXmlPatternspDie Facetten %1 und %2 knnen nicht zusammen erscheinen.-%1 facet and %2 facet cannot appear together. QtXmlPatternsDie Facette %1 kann nicht %2 sein, wenn die Facette %3 des Basistyps %4 ist.5%1 facet cannot be %2 if %3 facet of base type is %4. QtXmlPatternsDie Facette %1 kann nicht %2 oder %3 sein, wenn die Facette %4 des Basistyps %5 ist.;%1 facet cannot be %2 or %3 if %4 facet of base type is %5. QtXmlPatternslDie Facette %1 steht im Widerspruch zu der Facette %2. %1 facet collides with %2 facet. QtXmlPatternstDie Facette %1 enthlt einen ungltigen regulren Ausdruck,%1 facet contains invalid regular expression QtXmlPatternshDie Facette %1 enthlt einen ungltigen Wert %2: %3.'%1 facet contains invalid value %2: %3. QtXmlPatternsDie Facette %1 muss grer oder gleich der Facette %2 des Basistyps sein.=%1 facet must be equal or greater than %2 facet of base type. QtXmlPatternsDie Facette %1 muss grer als die Facette %2 des Basistyps sein.4%1 facet must be greater than %2 facet of base type. QtXmlPatternsDie Facette %1 muss grer oder gleich der Facette %2 des Basistyps sein.@%1 facet must be greater than or equal to %2 facet of base type. QtXmlPatterns|Die Facette %1 muss kleiner der Facette %2 des Basistyps sein.1%1 facet must be less than %2 facet of base type. QtXmlPatternshDie Facette %1 muss kleiner als die Facette %2 sein.$%1 facet must be less than %2 facet. QtXmlPatternsDie Facette %1 muss kleiner oder gleich der Facette %2 des Basistyps sein.=%1 facet must be less than or equal to %2 facet of base type. QtXmlPatternsxDie Facette %1 muss kleiner oder gleich der Facette %2 sein.0%1 facet must be less than or equal to %2 facet. QtXmlPatternsDie Facette %1 muss denselben Wert wie die Facette %2 des Basistyps haben.;%1 facet must have the same value as %2 facet of base type. QtXmlPatternsBei %1 unterscheidet sich die Anzahl der Felder von der der Identittseinschrnkung %2, auf die es verweist.W%1 has a different number of fields from the identity constraint %2 that it references. QtXmlPatterns|%1 hat ein Attributssuchmuster, nicht jedoch sein Basistyp %2.7%1 has attribute wildcard but its base type %2 has not. QtXmlPatterns^%1 hat eine zirkulre Vererbung im Basistyp %2.,%1 has inheritance loop in its base type %2. QtXmlPatternsT%1 ist ein komplexer Typ. Eine "cast"-Operation zu komplexen Typen ist nicht mglich. Es knnen allerdings "cast"-Operationen zu atomare Typen wie %2 durchgefhrt werden.s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns.%1 ist kein gltiges %2%1 is an invalid %2 QtXmlPatterns%1 ist kein gltiger Modifikator fr regulre Ausdrcke. Gltige Modifikatoren sind:?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatternsH%1 ist kein gltiger Namensraum-URI.%1 is an invalid namespace URI. QtXmlPatternsV%1 ist kein gltiger regulrer Ausdruck: %2/%1 is an invalid regular expression pattern: %2 QtXmlPatternsd%1 ist kein gltiger Name fr einen Vorlagenmodus.$%1 is an invalid template mode name. QtXmlPatternsD%1 ist ein unbekannter Schema-Typ.%1 is an unknown schema type. QtXmlPatternsPDie Kodierung %1 wird nicht untersttzt.%1 is an unsupported encoding. QtXmlPatternsJ%1 ist kein gltiges XML-1.0-Zeichen.$%1 is not a valid XML 1.0 character. QtXmlPatternst%1 ist kein gltiger Name fr eine Processing-Instruktion.4%1 is not a valid name for a processing-instruction. QtXmlPatternsR%1 ist kein gltiger numerischer Literal."%1 is not a valid numeric literal. QtXmlPatterns%1 ist kein gltiger Zielname einer Processing-Anweisung, es muss ein %2 Wert wie zum Beispiel %3 sein.Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatternsL%1 ist kein gltiger Wert des Typs %2.#%1 is not a valid value of type %2. QtXmlPatternsN%1 ist keine ganzzahlige Minutenangabe.$%1 is not a whole number of minutes. QtXmlPatterns%1 darf nicht durch Erweiterung von %2 abgeleitet werden, da letzterer sie als final deklariert.S%1 is not allowed to derive from %2 by extension as the latter defines it as final. QtXmlPatterns%1 darf nicht durch Listen von %2 abgeleitet werden, da letzterer sie als final deklariert.N%1 is not allowed to derive from %2 by list as the latter defines it as final. QtXmlPatterns%1 darf nicht durch Einschrnkung von %2 abgeleitet werden, da letzterer sie als final deklariert.U%1 is not allowed to derive from %2 by restriction as the latter defines it as final. QtXmlPatterns%1 darf nicht durch Vereinigung von %2 abgeleitet werden, da sie letzterer sie als final deklariert.O%1 is not allowed to derive from %2 by union as the latter defines it as final. QtXmlPatternst%1 darf keinen Typ eines Mitglieds desselben Namens haben.E%1 is not allowed to have a member type with the same name as itself. QtXmlPatterns:%1 darf keine Facetten haben.%%1 is not allowed to have any facets. QtXmlPatterns%1 ist kein atomarer Typ. "cast"-Operation knnen nur zu atomaren Typen durchgefhrt werden.C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatterns%1 befindet sich nicht unter den Attributdeklarationen im Bereich. Schema-Import wird nicht untersttzt.g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatterns0%1 ist nach %2 ungltig. %1 is not valid according to %2. QtXmlPatternsL%1 ist kein gltiger Wert des Typs %2.&%1 is not valid as a value of type %2. QtXmlPatterns\Der Ausdruck '%1' schliet Zeilenvorschbe ein%1 matches newline characters QtXmlPatternsAuf %1 muss %2 oder %3 folgen; es kann nicht am Ende der Ersetzung erscheinen.J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatternsDas Attribut %1 des abgeleiteten Suchmusters ist keine gltige Einschrnkung des Attributs '%2' des BasissuchmustersH%1 of derived wildcard is not a valid restriction of %2 of base wildcard QtXmlPatternsDas Attribut %1 oder %2 des Verweises %3 entspricht nicht der Attributsdeklaration %4.T%1 or %2 attribute of reference %3 does not match with the attribute declaration %4. QtXmlPatterns%1 verweist auf eine Identittseinschrnkung %2, die weder ein '%3' noch ein '%4' Element ist.A%1 references identity constraint %2 that is no %3 or %4 element. QtXmlPatternsx%1 verweist auf ein unbekanntes Element %4 ('%2' oder '%3').*%1 references unknown %2 or %3 element %4. QtXmlPatterns%1 erfordert mindestens ein Argument; die Angabe %3 ist daher ungltig.%1 erfordert mindestens %n Argumente; die Angabe %3 ist daher ungltig.=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatternsr%1 hat nur %n Argument; die Angabe %2 ist daher ungltig.t%1 hat nur %n Argumente; die Angabe %2 ist daher ungltig.9%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns"%1 wurde gerufen.%1 was called. QtXmlPatternsDie Facetten %1, %2, %3, %4, %5 und %6 sind bei Vererbung durch Listen nicht zulssig.F%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. QtXmlPatternsDas Attribut '%1' enthlt einen ungltigen qualifizierten Namen: %2.2'%1' attribute contains invalid QName content: %2. QtXmlPatternsJEin Kommentar darf %1 nicht enthaltenA comment cannot contain %1 QtXmlPatternsLEin Kommentar darf nicht auf %1 enden.A comment cannot end with a %1. QtXmlPatternsEs wurde ein Sprachkonstrukt angetroffen, was in der aktuellen Sprache (%1) nicht erlaubt ist.LA construct was encountered which is disallowed in the current language(%1). QtXmlPatternsDie Deklaration des Default-Namensraums muss vor Funktions-, Variablen- oder Optionsdeklaration erfolgen.^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatternsEs wurde ein fehlerhafter direkter Element-Konstruktor gefunden. %1 endet mit %2.EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatternsnEs existiert bereits eine Funktion mit der Signatur %1.0A function already exists with the signature %1. QtXmlPatternsEin Bibliotheksmodul kann nicht direkt ausgewertet werden, er muss von einem Hauptmodul importiert werden.VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatternsDer Parameter einer Funktion kann nicht als Tunnel deklariert werden.
Can not process unknown element %1, expected elements are: %2. QtXmlPatternsDas Unterelement fehlt im Bereich; mgliche Unterelemente wren: %1.HChild element is missing in that scope, possible child elements are: %1. QtXmlPatterns4Zirkulrer Verweis bei %1. Circular group reference for %1. QtXmlPatternsFZirkulre Vererbung im Basistyp %1.%Circular inheritance of base type %1. QtXmlPatternsVZirkulre Vererbung bei der Vereinigung %1.!Circular inheritance of union %1. QtXmlPatterns Der komplexe Typ %1 kann nicht durch Erweiterung von %2 abgeleitet werden, da letzterer ein '%3'-Element in seinem Inhaltsmodell hat.nComplex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. QtXmlPatternsDer komplexe Typ %1 kann nicht vom Basistyp %2 abgeleitet werden%3.6Complex type %1 cannot be derived from base type %2%3. QtXmlPatternsDer komplexe Typ %1 enthlt ein Attribut %2 mit einer Einschrnkung des Werts, dessen Typ aber von %3 abgeleitet ist._Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. QtXmlPatternshDer komplexe Typ %1 enthlt das Attribut %2 doppelt.,Complex type %1 contains attribute %2 twice. QtXmlPatternsDie Attributgruppe %1 enthlt zwei verschiedene Attribute mit Typen, die beide von %2 abgeleitet sind.WComplex type %1 contains two different attributes that both have types derived from %2. QtXmlPatternsDer komplexe Typ %1 hat ein dupliziertes Element %2 in seinem Inhaltsmodell.?Complex type %1 has duplicated element %2 in its content model. QtXmlPatternsnDer komplexe Typ %1 hat nicht-deterministischen Inhalt..Complex type %1 has non-deterministic content. QtXmlPatternsZDer komplexe Typ %1 kann nicht abstrakt sein..Complex type %1 is not allowed to be abstract. QtXmlPatternshDer komplexe Typ %1 kann nur einfachen Inhalt haben.)Complex type %1 must have simple content. QtXmlPatternsDer komplexe Typ %1 kann nur einen einfachen Typ als Basisklasse %2 haben.DComplex type %1 must have the same simple type as its base class %2. QtXmlPatternsDer komplexe Typ %1 einfachen Inhalts darf nicht vom komplexen Basistyp %2 abgeleitet werden.PComplex type %1 with simple content cannot be derived from complex base type %2. QtXmlPatternsDer komplexe Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden.OComplex type of derived element %1 cannot be validly derived from base element. QtXmlPatternsrEs wurde bereits eine Komponente mit der ID %1 definiert.1Component with ID %1 has been defined previously. QtXmlPatternsDas Inhaltsmodell des komplexen Typs %1 ist keine gltige Erweiterung des Inhaltsmodells von %2.QContent model of complex type %1 is not a valid extension of content model of %2. QtXmlPatternsDer Inhalt des Attributs %1 des Elements %2 kann nicht vom Namensraum %3 stammen.DContent of %1 attribute of %2 element must not be from namespace %3. QtXmlPatternsDer Inhalt des Attributs %1 entspricht nicht der definierten Einschrnkung des Werts.@Content of attribute %1 does not match defined value constraint. QtXmlPatternsDer Inhalt des Attributs %1 entspricht nicht seiner Typdefinition: %2.?Content of attribute %1 does not match its type definition: %2. QtXmlPatternsDer Inhalt des Elements %1 entspricht nicht der definierten Einschrnkung des Werts.>Content of element %1 does not match defined value constraint. QtXmlPatternsDer Inhalt des Elements %1 entspricht nicht seiner Typdefinition: %2.=Content of element %1 does not match its type definition: %2. QtXmlPatternsPDaten vom Typ %1 knnen nicht leer sein.,Data of type %1 are not allowed to be empty. QtXmlPatternspDie Datumsangabe entspricht nicht der Suchmusterfacette./Date time content does not match pattern facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'maxExclusive'.8Date time content does not match the maxExclusive facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'maxInclusive'.8Date time content does not match the maxInclusive facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'minExclusive'.8Date time content does not match the minExclusive facet. QtXmlPatternszDie Datumsangabe entspricht nicht der Facette 'minInclusive'.8Date time content does not match the minInclusive facet. QtXmlPatterns~Die Datumsangabe ist nicht in der Aufzhlungsfacette enthalten.9Date time content is not listed in the enumeration facet. QtXmlPatternsbDie Tagesangabe %1 ist fr den Monat %2 ungltig.Day %1 is invalid for month %2. QtXmlPatternslDie Tagesangabe %1 ist auerhalb des Bereiches %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatternszDie Dezimalzahl entspricht nicht der Facette 'fractionDigit'.;Decimal content does not match in the fractionDigits facet. QtXmlPatternsvDie Dezimalzahl entspricht nicht der Facette 'totalDigits'.8Decimal content does not match in the totalDigits facet. QtXmlPatternshFr das Attribut %1 ist keine Deklaration verfgbar.,Declaration for attribute %1 does not exist. QtXmlPatternsfFr das Element %1 ist keine Deklaration verfgbar.*Declaration for element %1 does not exist. QtXmlPatternsErweiterung muss als Vererbungsmethode fr %1 verwendet werden, da der Basistyp %2 ein einfacher Typ ist.TDerivation method of %1 must be extension because the base type %2 is a simple type. QtXmlPatternsDas abgeleitete Attribut %1 existiert in der Basisdefinition nicht.;Derived attribute %1 does not exist in the base definition. QtXmlPatternsDas abgeleitete Attribut %1 entspricht nicht dem Suchmuster in der Basisdefinition.HDerived attribute %1 does not match the wildcard in the base definition. QtXmlPatternsDie abgeleitete Definition enthlt ein Element %1, was in der Basisdefinition nicht existiertUDerived definition contains an %1 element that does not exists in the base definition QtXmlPatternsDas abgeleitete Element %1 kann kein 'nillable'-Attribut haben, da das Basiselement keines spezifiziert.FDerived element %1 cannot be nillable as base element is not nillable. QtXmlPatternsDas abgeleitete Element %1 hat eine schwchere Einschrnkung des Wertes als der Basispartikel.BDerived element %1 has weaker value constraint than base particle. QtXmlPatternsIm abgeleiteten Element %1 fehlt Einschrnkung des Wertes, wie sie im Basispartikel definiert ist.KDerived element %1 is missing value constraint as defined in base particle. QtXmlPatternsDer abgeleitete Partikel gestattet Inhalt, der fr den Basispartikel nicht zulssig ist.IDerived particle allows content that is not allowed in the base particle. QtXmlPatterns\Das Element %1 fehlt im abgeleiteten Partikel.'Derived particle is missing element %1. QtXmlPatternsDas abgeleitete Suchmuster ist keine Untermenge des Basissuchmusters.6Derived wildcard is not a subset of the base wildcard. QtXmlPatternsDie Division eines Werts des Typs %1 durch %2 (kein numerischer Wert) ist nicht zulssig.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatternsDie Division eines Werts des Typs %1 durch %2 oder %3 (positiv oder negativ Null) ist nicht zulssig.LDividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. QtXmlPatternslDie Division (%1) durch Null (%2) ist nicht definiert.(Division (%1) by zero (%2) is undefined. QtXmlPatternsBDas Dokument ist kein XML-Schema.Document is not a XML schema. QtXmlPatternstDie Gleitkommazahl entspricht nicht der Suchmusterfacette.,Double content does not match pattern facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'maxExclusive'.5Double content does not match the maxExclusive facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'maxInclusive'.5Double content does not match the maxInclusive facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'minExclusive'.5Double content does not match the minExclusive facet. QtXmlPatterns~Die Gleitkommazahl entspricht nicht der Facette 'minInclusive'.5Double content does not match the minInclusive facet. QtXmlPatternsDie Gleitkommazahl ist nicht in der Aufzhlungsfacette enthalten.6Double content is not listed in the enumeration facet. QtXmlPatternshDer Elementname %1 kommt im Element %2 mehrfach vor.*Duplicated element names %1 in %2 element. QtXmlPatternsbIm einfachen Typ %1 kommen Facetten mehrfach vor.$Duplicated facets in simple type %1. QtXmlPatternsDie Angabe der Zeitdauer entspricht nicht der Suchmusterfacette..Duration content does not match pattern facet. QtXmlPatternsDie Angabe der Zeitdauer entspricht nicht der Facette 'maxExclusive'.7Duration content does not match the maxExclusive facet. QtXmlPatternsDie Angabe der Zeitdauer entspricht nicht der Facette 'maxInclusive'.7Duration content does not match the maxInclusive facet. QtXmlPatternsDie Angabe der Zeitdauer entspricht nicht der Facette 'minExclusive'.7Duration content does not match the minExclusive facet. QtXmlPatternsDie Angabe der Zeitdauer entspricht nicht der Facette 'minInclusive'.7Duration content does not match the minInclusive facet. QtXmlPatternsDie Angabe der Zeitdauer ist nicht in der Aufzhlungsfacette enthalten.8Duration content is not listed in the enumeration facet. QtXmlPatternsDie Namen von Vorlagenparametern mssen eindeutig sein, %1 existiert bereits.CEach name of a template parameter must be unique; %1 is duplicated. QtXmlPatternsDer effektive boolesche Wert einer Sequenz aus zwei oder mehreren atomaren Werten kann nicht berechnet werden.aEffective Boolean Value cannot be calculated for a sequence containing two or more atomic values. QtXmlPatternsJDas Element %1 ist bereits definiert.Element %1 already defined. QtXmlPatternsDas Element %1 kann nicht serialisiert werden, da es auerhalb des Dokumentenelements erscheint.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatternshDas Element %1 kann keinen Sequenzkonstruktor haben..Element %1 cannot have a sequence constructor. QtXmlPatternsZDas Element %1 kann keine Kindelemente haben. Element %1 cannot have children. QtXmlPatternsRDas Element %1 enthlt ungltigen Inhalt.$Element %1 contains invalid content. QtXmlPatternsZDas Element %1 enthlt unzulssige Attribute.+Element %1 contains not allowed attributes. QtXmlPatterns`Das Element %1 enthlt unzulssigen Unterinhalt..Element %1 contains not allowed child content. QtXmlPatternsjDas Element %1 enthlt ein unzulssiges Unterelement..Element %1 contains not allowed child element. QtXmlPatterns^Das Element %1 enthlt unzulssigen Textinhalt.-Element %1 contains not allowed text content. QtXmlPatternsdDas Element %1 enthlt zwei Attribute des Typs %2..Element %1 contains two attributes of type %2. QtXmlPatternsfDas Element %1 enthlt ein unbekanntes Attribut %2.)Element %1 contains unknown attribute %2. QtXmlPatternsDas Element %1 entspricht nicht der Namensraumeinschrnkung des Basispartikels.LElement %1 does not match namespace constraint of wildcard in base particle. QtXmlPatternsEs existieren zwei Vorkommen verschiedenen Typs des Elements %1.-Element %1 exists twice with different types. QtXmlPatternsVDas Element %1 ist als abstrakt deklariert.#Element %1 is declared as abstract. QtXmlPatternsNBeim Element %1 fehlt ein Unterelement.$Element %1 is missing child element. QtXmlPatterns\Das Element %1 fehlt im abgeleiteten Partikel.*Element %1 is missing in derived particle. QtXmlPatternspBei dem Element %1 fehlt ein erforderliches Attribut %2.,Element %1 is missing required attribute %2. QtXmlPatternsdDas Element %1 darf nicht an dieser Stelle stehen.+Element %1 is not allowed at this location. QtXmlPatternsDas Element %1 ist in diesem Bereich nicht zulssig; mglich wren: %2.CElement %1 is not allowed in this scope, possible elements are: %2. QtXmlPatternsDas Element %1 darf keine Einschrnkung des Werts haben, wenn der Basistyp komplex ist.QElement %1 is not allowed to have a value constraint if its base type is complex. QtXmlPatternsDas Element %1 darf keine Einschrnkung des Werts haben, wenn sein Typ von %2 abgeleitet ist.TElement %1 is not allowed to have a value constraint if its type is derived from %2. QtXmlPatternsDas Element %1 kann nicht zu einer Substitutionsgruppe gehren, da es kein globales Element ist.\Element %1 is not allowed to have substitution group affiliation as it is no global element. QtXmlPatternsjDas Element %1 ist in diesem Bereich nicht definiert.(Element %1 is not defined in this scope. QtXmlPatterns|Das Element %1 hat das Attribut 'nillable' nicht spezifiziert.Element %1 is not nillable. QtXmlPatternsFDas Element %1 muss zuletzt stehen.Element %1 must come last. QtXmlPatternsDas Element %1 muss mindestens eines der Attribute %2 oder %3 haben.=Element %1 must have at least one of the attributes %2 or %3. QtXmlPatternsDas Element %1 muss entweder ein %2-Attribut haben oder es muss ein Sequenzkonstruktor verwendet werden.EElement %1 must have either a %2-attribute or a sequence constructor. QtXmlPatternstDas Element hat Inhalt, obwohl es 'nillable' spezifiziert.1Element contains content although it is nillable. QtXmlPatternsVDie Elementgruppe %1 ist bereits definiert.!Element group %1 already defined. QtXmlPatternsEs kann kein leerer Partikel von einem Partikel abgeleitet werden, der nicht leer ist.9Empty particle cannot be derived from non-empty particle. QtXmlPatternsUngltiger Inhalt einer Aufzhlungsfacette: {%1} ist kein Wert des Typs %2.KEnumeration facet contains invalid content: {%1} is not a value of type %2. QtXmlPatternsJDas Feld %1 hat keinen einfachen Typ.Field %1 has no simple type. QtXmlPatternsEine Beschrnkung auf einen festen Wert ist nicht zulssig, wenn das Element 'nillable' spezifiziert.:Fixed value constraint not allowed if element is nillable. QtXmlPatternsDie feste Einschrnkung des Wertes des Elements %1 unterscheidet sich von der Einschrnkung des Wertes des Basispartikels.TFixed value constraint of element %1 differs from value constraint in base particle. QtXmlPatternsJDer ID-Wert '%1' ist nicht eindeutig.ID value '%1' is not unique. QtXmlPatternsjDie Identittseinschrnkung %1 ist bereits definiert.'Identity constraint %1 already defined. QtXmlPatternsWenn beide Werte mit Zeitzonen angegeben werden, mssen diese bereinstimmen. %1 und %2 sind daher unzulssig.bIf both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. QtXmlPatternsDas Element %1 darf keines der Attribute %3 oder %4 haben, solange es nicht das Attribut %2 hat.EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatterns0Es kann kein Prfix angegeben werden, wenn das erste Argument leer oder eine leere Zeichenkette (kein Namensraum) ist. Es wurde der Prfix %1 angegeben.If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatternsIm Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein.PIn a namespace constructor, the value for a namespace cannot be an empty string. QtXmlPatternsIn einem vereinfachten Stylesheet-Modul muss das Attribut %1 vorhanden sein.@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatternsBei einem XSL-T-Suchmuster drfen nur die Achsen %2 oder %3 verwendet werden, nicht jedoch %1.DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatternsBei einem XSL-T-Suchmuster darf die Funktion %1 kein drittes Argument haben.>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatternsBei einem XSL-T-Suchmuster drfen nur die Funktionen %1 und %2, nicht jedoch %3 zur Suche verwendet werden.OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatternsBei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Literal oder eine Variablenreferenz sein.yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsBei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Zeichenketten-Literal sein.hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatternsIn der Ersetzung kann %1 nur verwendet werden, um sich selbst oder %2 schtzen, nicht jedoch fr %3MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatternsIn der Ersetzung muss auf %1 eine Ziffer folgen, wenn es nicht durch ein Escape-Zeichen geschtzt ist.VIn the replacement string, %1 must be followed by at least one digit when not escaped. QtXmlPatterns|Die Ganzzahldivision (%1) durch Null (%2) ist nicht definiert.0Integer division (%1) by zero (%2) is undefined. QtXmlPatternslDer Inhalt des qualifizierten Namens ist ungltig: %1.Invalid QName content: %1. QtXmlPatternsPDer Prfix %1 kann nicht gebunden werden+It is not possible to bind to the prefix %1 QtXmlPatternsZDer Prfix %1 kann nicht redeklariert werden.*It is not possible to redeclare prefix %1. QtXmlPatterns<%1 kann nicht bestimmt werden.'It will not be possible to retrieve %1. QtXmlPatterns`Attribute drfen nicht auf andere Knoten folgen.AIt's not possible to add attributes after any other kind of node. QtXmlPatternstDer Subtyp %1 des Elements %2 kann nicht aufgelst werden..Item type %1 of %2 element cannot be resolved. QtXmlPatternsDer Elementtyp des Basistyps entspricht nicht dem Elementtyp von %1.6Item type of base type does not match item type of %1. QtXmlPatternsDer Elementtyp des einfachen Typs %1 kann kein komplexer Typ sein.5Item type of simple type %1 cannot be a complex type. QtXmlPatternsDie Einschrnkung des Schlssels %1 enthlt nicht vorhandene Felder.)Key constraint %1 contains absent fields. QtXmlPatternsDie Einschrnkung des Schlssels %1 verweist auf das Element %2, was 'nillable' spezifiziert.:Key constraint %1 contains references nillable element %2. QtXmlPatternshDer Listeninhalt entspricht nicht der Lngenfacette.)List content does not match length facet. QtXmlPatternstDer Listeninhalt entspricht nicht der Facette 'maxLength'.,List content does not match maxLength facet. QtXmlPatternstDer Listeninhalt entspricht nicht der Facette 'minLength'.,List content does not match minLength facet. QtXmlPatternspDer Listeninhalt entspricht nicht der Suchmusterfacette.*List content does not match pattern facet. QtXmlPatterns~Der Listeninhalt ist nicht in der Aufzhlungsfacette enthalten.4List content is not listed in the enumeration facet. QtXmlPatternsBDas geladene Schema ist ungltig.Loaded schema file is invalid. QtXmlPatternsPGro/Kleinschreibung wird nicht beachtetMatches are case insensitive QtXmlPatternsDer Typ %1 des Mitglieds darf nicht vom Typ %2 des Mitglieds vom Basistyp %4 von %3 sein.JMember type %1 cannot be derived from member type %2 of %3's base type %4. QtXmlPatternstDer Subtyp %1 des Elements %2 kann nicht aufgelst werden.0Member type %1 of %2 element cannot be resolved. QtXmlPatternsDer Typ eines Mitglieds des einfachen Typs %1 kann kein komplexer Typ sein.7Member type of simple type %1 cannot be a complex type. QtXmlPatternsModul-Importe mssen vor Funktions-, Variablen- oder Optionsdeklarationen stehen.MModule imports must occur before function, variable, and option declarations. QtXmlPatternszDie Modulo-Division (%1) durch Null (%2) ist nicht definiert.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatternsnDie Monatsangabe %1 ist auerhalb des Bereiches %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatterns\Fr das Feld %1 wurden mehrere Werte gefunden.'More than one value found for field %1. QtXmlPatternsDie Multiplikation eines Werts des Typs %1 mit %2 oder %3 (positiv oder negativ unendlich) ist nicht zulssig.YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatternsDer Namensraum %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.ONamespace %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsNamensraums-Deklarationen mssen vor Funktions- Variablen- oder Optionsdeklarationen stehen.UNamespace declarations must occur before function, variable, and option declarations. QtXmlPatternsDer Namensraum-Prfix des qualifizierten Namens %1 ist nicht definiert.5Namespace prefix of qualified name %1 is not defined. QtXmlPatternspDas Zeitlimit der Netzwerkoperation wurde berschritten.Network timeout. QtXmlPatternsdFr das Element %1 ist keine Definition verfgbar.'No definition for element %1 available. QtXmlPatternsExterne Funktionen werden nicht untersttzt. Alle untersttzten Funktionen knnen direkt verwendet werden, ohne sie als extern zu deklarieren{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatterns\Es ist keine Funktion des Namens %1 verfgbar.&No function with name %1 is available. QtXmlPatterns^Es existiert keine Funktion mit der Signatur %1*No function with signature %1 is available QtXmlPatternsnEs existiert keine Namensraum-Bindung fr den Prfix %1-No namespace binding exists for the prefix %1 QtXmlPatternszEs existiert keine Namensraum-Bindung fr den Prfix %1 in %23No namespace binding exists for the prefix %1 in %2 QtXmlPatternsDer referenzierte Wert der Schlsselreferenz %1 konnte nicht gefunden werden./No referenced value found for key reference %1. QtXmlPatternsbEs ist kein Schema fr die Validierung definiert.!No schema defined for validation. QtXmlPatternsXEs existiert keine Vorlage mit dem Namen %1.No template by name %1 exists. QtXmlPatternsEs ist kein Wert fr die externe Variable des Namens %1 verfgbar.=No value is available for the external variable with name %1. QtXmlPatternsREs existiert keine Variable des Namens %1No variable with name %1 exists QtXmlPatternsFr die Einschrnkung %1 wurde ein nicht eindeutiger Wert gefunden.)Non-unique value found for constraint %1. QtXmlPatternsEs muss ein fallback-Ausdruck vorhanden sein, da keine pragma-Ausdrcke untersttzt werden^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatternsLDie Notation %1 ist bereits definiert.Notation %1 already defined. QtXmlPatternsDer Inhalt der Notation ist nicht in der Aufzhlungsfacette enthalten.8Notation content is not listed in the enumeration facet. QtXmlPatternsBei Vererbung durch Vereinigung sind nur die Facetten %1 und %2 zulssig.8Only %1 and %2 facets are allowed when derived by union. QtXmlPatternstDer Anfrage-Prolog darf nur eine %1-Deklaration enthalten.6Only one %1 declaration can occur in the query prolog. QtXmlPatternsVEs darf nur ein einziges %1-Element stehen.Only one %1-element can appear. QtXmlPatternsEs wird nur Unicode Codepoint Collation untersttzt (%1). %2 wird nicht untersttzt.IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatternszAn %2 kann nur der Prfix %1 gebunden werden (und umgekehrt).5Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatternsDer Operator %1 kann nicht auf atomare Werte der Typen %2 und %3 angewandt werden.>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatternsvDer Operator %1 kann nicht auf den Typ %2 angewandt werden.&Operator %1 cannot be used on type %2. QtXmlPatternslDas Datum %1 kann nicht dargestellt werden (berlauf)."Overflow: Can't represent date %1. QtXmlPatternsfDas Datum kann nicht dargestellt werden (berlauf).$Overflow: Date can't be represented. QtXmlPatterns Parse-Fehler: %1Parse error: %1 QtXmlPatternsnDer Partikel enthlt nicht-deterministische Suchmuster..Particle contains non-deterministic wildcards. QtXmlPatternsDer Prfix %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.LPrefix %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsbDer Prfix %1 wurde bereits im Prolog deklariert.,Prefix %1 is already declared in the prolog. QtXmlPatternsxDer Prfix des qualifizierten Namens %1 ist nicht definiert.+Prefix of qualified name %1 is not defined. QtXmlPatternsDie Wandlung von %1 zu %2 kann zu einem Verlust an Genauigkeit fhren./Promoting %1 to %2 may cause loss of precision. QtXmlPatternsDer Inhalt des qualifizierten Namens entspricht nicht der Suchmusterfacette.+QName content does not match pattern facet. QtXmlPatternsDer Inhalt des qualifizierten Namens ist nicht in der Aufzhlungsfacette enthalten.5QName content is not listed in the enumeration facet. QtXmlPatternsvDer Verweis %1 des Elements %2 kann nicht aufgelst werden..Reference %1 of %2 element cannot be resolved. QtXmlPatternsnDie erforderliche Kardinalitt ist %1 (gegenwrtig %2)./Required cardinality is %1; got cardinality %2. QtXmlPatternsrDer erforderliche Typ ist %1, es wurde aber %2 angegeben.&Required type is %1, but %2 was found. QtXmlPatternsEs wird ein XSL-T-1.0-Stylesheet mit einem Prozessor der Version 2.0 verarbeitet.5Running an XSL-T 1.0 stylesheet with a 2.0 processor. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'totalDigits'.?Signed integer content does not match in the totalDigits facet. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert entspricht nicht der Suchmusterfacette.4Signed integer content does not match pattern facet. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'maxExclusive'.=Signed integer content does not match the maxExclusive facet. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'maxInclusive'.=Signed integer content does not match the maxInclusive facet. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'minExclusive'.=Signed integer content does not match the minExclusive facet. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette 'minInclusive'.=Signed integer content does not match the minInclusive facet. QtXmlPatternsDer vorzeichenbehaftete Ganzzahlwert ist nicht in der Aufzhlungsfacette enthalten.>Signed integer content is not listed in the enumeration facet. QtXmlPatternsDer einfache Typ %1 kann nur einen einfachen. atomaren Basistyp haben.=Simple type %1 can only have simple atomic type as base type. QtXmlPatterns%1 darf nicht von %2 abgeleitet werden, da letzterer die Einschrnkung als final deklariert.PSimple type %1 cannot derive from %2 as the latter defines restriction as final. QtXmlPatternsDer einfache Typ %1 kann nicht den unmittelbaren Basistyp %2 haben./Simple type %1 cannot have direct base type %2. QtXmlPatternsDer einfache Typ %1 enthlt einen nicht erlaubten Facettentyp %2.2Simple type %1 contains not allowed facet type %2. QtXmlPatternsjDer einfache Typ %1 darf nicht den Basistyp %2 haben.3Simple type %1 is not allowed to have base type %2. QtXmlPatternsdDer einfache Typ %1 darf nur die Facette %2 haben.0Simple type %1 is only allowed to have %2 facet. QtXmlPatternsjDer einfache Typ enthlt eine unzulssige Facette %1.*Simple type contains not allowed facet %1. QtXmlPatternsDer einfache Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden.NSimple type of derived element %1 cannot be validly derived from base element. QtXmlPatternsnDer angegebene Typ %1 ist im Schema nicht spezifiziert.-Specified type %1 is not known to the schema. QtXmlPatternsDer angebenene Typ %1 kann nicht durch den Elementtyp %2 substituiert werden.DSpecified type %1 is not validly substitutable with element type %2. QtXmlPatternsDie Angabe von use='prohibited' in einer Attributgruppe hat keinerlei Auswirkungen.DSpecifying use='prohibited' inside an attribute group has no effect. QtXmlPatterns~Der Zeichenketteninhalt entspricht nicht der Suchmusterfacette.,String content does not match pattern facet. QtXmlPatternsvDer Zeichenketteninhalt entspricht nicht der Lngenfacette./String content does not match the length facet. QtXmlPatternsDer Zeichenketteninhalt entspricht nicht der Lngenfacette (Maximumangabe).2String content does not match the maxLength facet. QtXmlPatternsDer Zeichenketteninhalt entspricht nicht der Lngenfacette (Minimumangabe).2String content does not match the minLength facet. QtXmlPatternsDer Zeichenketteninhalt ist nicht in der Aufzhlungsfacette enthalten.6String content is not listed in the enumeration facet. QtXmlPatternsrDie Substitutionsgruppe %1 hat eine zirkulre Definition..Substitution group %1 has circular definition. QtXmlPatternsDie Substitutionsgruppe %1 des Elements %2 kann nicht aufgelst werden.7Substitution group %1 of %2 element cannot be resolved. QtXmlPatternsDer Zielnamensraum %1 des importierten Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2.tTarget namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. QtXmlPatternsDer Zielnamensraum %1 des eingebundenen Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2.tTarget namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. QtXmlPatterns`An dieser Stelle drfen keine Textknoten stehen.,Text nodes are not allowed at this location. QtXmlPatternsText- oder Entittsreferenzen sind innerhalb eines %1-Elements nicht zulssig.7Text or entity references not allowed inside %1 element QtXmlPatternsZDie %1-Achse wird in XQuery nicht untersttzt$The %1-axis is unsupported in XQuery QtXmlPatternsDie Deklaration %1 ist unzulssig, da Schema-Import nicht untersttzt wird.WThe Schema Import feature is not supported, and therefore %1 declarations cannot occur. QtXmlPatterns%1-Ausdrcke knnen nicht verwendet werden, da Schemavalidierung nicht untersttzt wird. VThe Schema Validation Feature is not supported. Hence, %1-expressions may not be used. QtXmlPatternsJDer URI darf kein Fragment enthalten.The URI cannot have a fragment QtXmlPatternshNur das erste %2-Element darf das Attribut %1 haben.9The attribute %1 can only appear on the first %2 element. QtXmlPatterns%2 darf nicht das Attribut %1 haben, wenn es ein Kindelement von %3 ist.?The attribute %1 cannot appear on %2, when it is a child of %3. QtXmlPatternsDer Code-Punkt %1 aus %2 mit der Kodierung %3 ist kein gltiges XML-Zeichen.QThe codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. QtXmlPatternsDie Daten einer Processing-Anweisung drfen nicht die Zeichenkette %1 enthaltenAThe data of a processing instruction cannot contain the string %1 QtXmlPatterns^Fr eine Kollektion ist keine Vorgabe definiert#The default collection is undefined QtXmlPatternsDie Kodierung %1 ist ungltig; sie darf nur aus lateinischen Buchstaben bestehen und muss dem regulren Ausdruck %2 entsprechen.The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. QtXmlPatternsDas erste Argument von %1 darf nicht vom Typ %2 sein; es muss numerisch, xs:yearMonthDuration oder xs:dayTimeDuration sein.uThe first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. QtXmlPatternsDas erste Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein.PThe first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatterns8Es ist kein Fokus definiert.The focus is undefined. QtXmlPatternsDie Initialisierung der Variable %1 hngt von ihrem eigenem Wert ab3The initialization of variable %1 depends on itself QtXmlPatternstDas Element %1 entspricht nicht dem erforderlichen Typ %2./The item %1 did not match the required type %2. QtXmlPatternsDas Schlsselwort %1 kann nicht mit einem anderen Modusnamen zusammen verwendet werden.5The keyword %1 cannot occur with any other mode name. QtXmlPatternsDer letzte Schritt eines Pfades kann entweder nur Knoten oder nur atomare Werte enthalten. Sie drfen nicht zusammen auftreten.kThe last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. QtXmlPatternsFModul-Import wird nicht untersttzt*The module import feature is not supported QtXmlPatterns`Der Name %1 hat keinen Bezug zu einem Schematyp..The name %1 does not refer to any schema type. QtXmlPatternsDer Name eines berechneten Attributes darf keinen Namensraum-URI %1 mit dem lokalen Namen %2 haben.ZThe name for a computed attribute cannot have the namespace URI %1 with the local name %2. QtXmlPatternsHDer Name der gebundenen Variablen eines for-Ausdrucks muss sich von dem der Positionsvariable unterscheiden. Die zwei Variablen mit dem Namen %1 stehen im Konflikt.The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. QtXmlPatternsDer Name eines Erweiterungsausdrucks muss sich in einem Namensraum befinden.;The name of an extension expression must be in a namespace. QtXmlPatternsDer Name einer Option muss einen Prfix haben. Es gibt keine Namensraum-Vorgabe fr Optionen.TThe name of an option must have a prefix. There is no default namespace for options. QtXmlPatterns@Der Namensraum %1 ist reserviert und kann daher von nutzerdefinierten Funktionen nicht verwendet werden (fr diesen Zweck gibt es den vordefinierten Prfix %2).The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. QtXmlPatternsDer Namensraum-URI darf nicht leer sein, wenn er an den Prfix %1 gebunden ist.JThe namespace URI cannot be the empty string when binding to a prefix, %1. QtXmlPatternsDer Namensraum-URI im Namen eines berechneten Attributes darf nicht %1 sein.DThe namespace URI in the name for a computed attribute cannot be %1. QtXmlPatternsEin Namensraum-URI muss eine Konstante sein und darf keine eingebetteten Ausdrcke verwenden.IThe namespace URI must be a constant and cannot use enclosed expressions. QtXmlPatterns Der Namensraum einer nutzerdefinierten Funktion aus einem Bibliotheksmodul muss dem Namensraum des Moduls entsprechen (%1 anstatt %2) The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 QtXmlPatternsrDie Normalisierungsform %1 wird nicht untersttzt. Die untersttzten Normalisierungsformen sind %2, %3, %4 and %5, und "kein" (eine leere Zeichenkette steht fr "keine Normalisierung").The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). QtXmlPatternsEs existiert kein entsprechendes %2 fr den bergebenen Parameter %1.;The parameter %1 is passed, but no corresponding %2 exists. QtXmlPatternsEs wurde kein entsprechendes %2 fr den erforderlichen Parameter %1 angegeben.BThe parameter %1 is required, but no corresponding %2 is supplied. QtXmlPatternsPDer Prfix %1 kann nicht gebunden werdenThe prefix %1 cannot be bound. QtXmlPatternsDer Prfix %1 kann nicht gebunden werden. Er ist bereits per Vorgabe an den Namensraum %2 gebunden.SThe prefix %1 cannot be bound. By default, it is already bound to the namespace %2. QtXmlPatternsDer Prfix muss ein gltiger %1 sein. Das ist bei %2 nicht der Fall./The prefix must be a valid %1, which %2 is not. QtXmlPatternsDer bergeordnete Knoten des zweiten Arguments der Funktion %1 muss ein Dokumentknoten sein, was bei %2 nicht der Fall ist.gThe root node of the second argument to function %1 must be a document node. %2 is not a document node. QtXmlPatternsDas zweite Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein.QThe second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatternsDer Zielname einer Processing-Anweisung kann nicht %1 (unabhngig von Gro/Kleinschreibung) sein. %2 ist daher ungltig.~The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. QtXmlPatterns`Der Ziel-Namensraum von %1 darf nicht leer sein.-The target namespace of a %1 cannot be empty. QtXmlPatternsDer Wert des Attributs %1 des Elements %2 kann nur %3 oder %4 sein, nicht jedoch %5.IThe value for attribute %1 on element %2 must either be %3 or %4, not %5. QtXmlPatternsDer Wert des Attributs %1 muss vom Typ %2 sein, was bei %3 nicht der Fall ist.=The value of attribute %1 must be of type %2, which %3 isn't. QtXmlPatternsDer Wert eines XSL-T-Versionsattributes muss vom Typ %1 sein, was bei %2 nicht der Fall ist.TThe value of the XSL-T version attribute must be a value of type %1, which %2 isn't. QtXmlPatternsHDie Variable %1 wird nicht verwendetThe variable %1 is unused QtXmlPatternsEs existiert ein IDREF-Wert, fr den keine zugehrige ID vorhanden ist: %1.6There is one IDREF value with no corresponding ID: %1. QtXmlPatterns%1 kann nicht verwendet werden, da dieser Prozessor keine Schemas untersttzt.CThis processor is not Schema-aware and therefore %1 cannot be used. QtXmlPatternsPDie Zeitangabe %1:%2:%3.%4 ist ungltig.Time %1:%2:%3.%4 is invalid. QtXmlPatternsDie Zeitangabe 24:%1:%2.%3 ist ungltig. Bei der Stundenangabe 24 mssen Minuten, Sekunden und Millisekunden 0 sein._Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternsDie zuoberst stehenden Elemente eines Stylesheets drfen sich nicht im Null-Namensraum befinden, was bei %1 der Fall ist.NTop level stylesheet elements must be in a non-null namespace, which %1 isn't. QtXmlPatternsEs wurden zwei Namensraum-Deklarationsattribute gleichen Namens (%1) gefunden.Unbekanntes XSL-T-Attribut: %1.Unknown XSL-T attribute %1. QtXmlPatternsdDie Facette %2 enthlt eine ungltige Notation %1.%Unknown notation %1 used in %2 facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'totalDigits'.AUnsigned integer content does not match in the totalDigits facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert entspricht nicht der Suchmusterfacette.6Unsigned integer content does not match pattern facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'maxExclusive'.?Unsigned integer content does not match the maxExclusive facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'maxInclusive'.?Unsigned integer content does not match the maxInclusive facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'minExclusive'.?Unsigned integer content does not match the minExclusive facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert entspricht nicht der Facette 'minInclusive'.?Unsigned integer content does not match the minInclusive facet. QtXmlPatternsDer vorzeichenlose Ganzzahlwert ist nicht in der Aufzhlungsfacette enthalten.@Unsigned integer content is not listed in the enumeration facet. QtXmlPatternsnDer Wert %1 des Typs %2 berschreitet das Maximum (%3).)Value %1 of type %2 exceeds maximum (%3). QtXmlPatternspDer Wert %1 des Typs %2 unterschreitet das Minimum (%3).*Value %1 of type %2 is below minimum (%3). QtXmlPatternsDie Einschrnkung des Werts des Attributs %1 ist nicht vom Typ des Attributs: %2.?Value constraint of attribute %1 is not of attributes type: %2. QtXmlPatternsDie Einschrnkung des Werts des abgeleiteten Attributs %1 entspricht nicht der Einschrnkung des Werts des Basisattributs.[Value constraint of derived attribute %1 does not match value constraint of base attribute. QtXmlPatternsDie Einschrnkung des Werts des Elements %1 ist nicht vom Typ des Elements: %2.;Value constraint of element %1 is not of elements type: %2. QtXmlPatternsDie Variett der Typen von %1 muss entweder atomar oder eine Vereinigung sein.:Variety of item type of %1 must be either atomic or union. QtXmlPatterns^Die Variett der Typen von %1 muss atomar sein.-Variety of member types of %1 must be atomic. QtXmlPatternsDie Version %1 wird nicht untersttzt. Die untersttzte Version von XQuery ist 1.0.AVersion %1 is not supported. The supported XQuery version is 1.0. QtXmlPatternsPW3C XML Schema identity constraint field(W3C XML Schema identity constraint field QtXmlPatternsVW3C XML Schema identity constraint selector+W3C XML Schema identity constraint selector QtXmlPatternsDer Defaultwert eines erforderlichen Parameters kann weder durch ein %1-Attribut noch durch einen Sequenzkonstruktor angegeben werden. rWhen a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. QtXmlPatternsEs kann kein Sequenzkonstruktor verwendet werden, wenn %2 ein Attribut %1 hat.JWhen attribute %1 is present on %2, a sequence constructor cannot be used. QtXmlPatternsBei einer "cast"-Operation von %1 zu %2 darf der Wert nicht %3 sein.:When casting to %1 from %2, the source value cannot be %3. QtXmlPatternsHBei einer "cast"-Operation zum Typ %1 oder abgeleitetenTypen muss der Quellwert ein Zeichenketten-Literal oder ein Wert gleichen Typs sein. Der Typ %2 ist ungltig.When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. QtXmlPatterns6Bei der Verwendung der Funktion %1 zur Auswertung innerhalb eines Suchmusters muss das Argument eine Variablenreferenz oder ein Zeichenketten-Literal sein.vWhen function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. QtXmlPatternsLeerzeichen werden entfernt, sofern sie nicht in Zeichenklassen erscheinenOWhitespace characters are removed, except when they appear in character classes QtXmlPatternsDas Suchmuster im abgeleiteten Partikel ist keine gltige Untermenge des Suchmusters des Basispartikels.PWildcard in derived particle is not a valid subset of wildcard in base particle. QtXmlPatternsp%1 ist keine gltige Jahresangabe, da es mit %2 beginnt.-Year %1 is invalid because it begins with %2. QtXmlPatternsleerempty QtXmlPatternsgenau ein exactly one QtXmlPatterns ein oder mehrere one or more QtXmlPatternsDas 'processContent'-Attribut des Basissuchmusters muss schwcher sein als das des abgeleiteten Suchmusters.EprocessContent of base wildcard must be weaker than derived wildcard. QtXmlPatternsDas processContent-Attribut des Suchmusters des abgeleiteten Partikels ist schwcher als das Suchmuster des Basispartikels.XprocessContent of wildcard in derived particle is weaker than wildcard in base particle. QtXmlPatternsxsi:noNamespaceSchemaLocation kann nicht nach dem ersten Element oder Attribut ohne Namensraum erscheinen.^xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. QtXmlPatternsxsi:schemaLocation namespace %1 wurde im Instanzdokument bereits spezifiziert.Vxsi:schemaLocation namespace %1 has already appeared earlier in the instance document. QtXmlPatterns"kein oder mehrere zero or more QtXmlPatternskein oder ein zero or one QtXmlPatternsx2goclient-4.0.5.1/res/i18n/qt_es.qm0000644000000000000000000025352712675050177013675 0ustar 000:05&5f DA DUQ+{,C6,U++z3g+$+<+H+V+j++į+į~q+į+3;69F0i6G<Hw9Hw9=<I-:I1<IJ+J+ԋJ6J64J6=J6BJ6J6J6J6ˑJ6J6ԼJ6SJ6 KM:LZ֡LiL4Lb "M5CO|4TPFE [PFEPFETLU?^9U|:V1"V1UVlVVW-qWWWTWTX?X<X˙@XzYYPZg \]40\]4\]4\\at.\|^H|^v;tvV$f^IA*[@Iދyɵn5Bɵnjɵnqɵnɵn]ɵnɵn*afR Bf B,MqIH0\<&p85 5#Q%UT@%UT (ŎR*42C>CCeD"D1\!MaR?I&fPlloR.w^c|{y?W y22k.CR. dywursO "l([),-^/=NT1$T1$5~Z< w?NNky]`7/`"-Y  M7o)t6;66^^D~=~./E=E Џ[{8A A\[yWLgCC\n7H3ŗɏMMEYIEbww!e&1)*/eY;;bByF:O Zf`cփCf3CjCRq u(ؔ~,$d$$S(^% n,ll;yA&HlH.*/kIxS1R>8jYMYYMc4h^"di'sscw͘Yۊ4!N/]]III0I=tIIIIIڞYiyRٮ&b6rIܺB~ێuD]suDe,Do,7,~,,,m,ɘe5$fR |fRONPc%<lPq`mV>VfRH. yt$%C"?"KN(MR ]i]pk0y^{y<FPkHG%Wصǥ4̑t+++;tZ{yr"1%1k%`C-5ƨƨ˾qnҝz i է?Z>6f0f )~bOf~bUo!o+3/f/6 8D*GXGbTULAUPѧ=SnUUuUUZZ#Z[ZՓ[S[]k*O0^n"e i]iekQ7oN0y;{{}u}w}w}w+5gzvtft.o.MPDD t*$tcttZ-_ AFʢ8ʢ)d9zdAdd59n >U!UB&Cw<yu n+gG2D?6_0CU]*D%KU|arơtT}wZ}$}$}$iZpK<?/ X/dEWHu%5TTi~%15.35kE;XU MbDbGx gAi$Ex1 Qz*2ҧdZUӍzDmXvnb,CAʴ5,ʴ5ZԄiDd!F5 "F5OYI %IN>As' 9 }$U qea ڤ ڤ E_ E Ac AcQ 35 35 K!?J bb b`P b` i3& lah lf xq, | | t" tP .0"  E *~   > >& r K  T %' D > =+4  ) */t 7u$ ;z] =W B{ Rۮ( T^F ] ] `jP ` ` ` c(W d; e eN f1[S gn# k, rD"= tB m, #-t #-t 0N. A E9b L) L" Mc\AW So Vtz ]$6 f) f)Jf io>' m`! w yr; H HH ,j $K .@  i B   j J JL - t. k Ӈ f N>x ̺W -DX< .| k k U)e < 0ߍ  ]%  d  xHh .2T 7F#k >`% >a >b0 >h >vd >} >| > > >b >S DTO I- I1 RVQ RV RV_ S. S Y [  j7oG p2 Brm & T5 TU T T  s 8 Sr )d )dY  .6/ .kB .O . a? a y ҂/N  X t” a :bf. ʜ0 +>3 0E ;ɾ= Pt Ptv feR fe{ g iFCL iN i׵ n4 uy u- w w w w}j w}Q w} |[: Zx c ^ }{ R 4 XZ &:q ?  D t5 t5: 4  ) !T+\gT+*)*]/E+2/E/EzI_fXRu [ a.>nyG9VvɅ8y$~hSu^B( #ݖ3[yhrI R L1"#Ș"#$UO%4A%4T-v 0i)01c1cN2wTݯD"HJdgL$.c5Ϧc5xiCyC#{~a9`[+2 LpNFkyPt2/kNOČǏ)i;Acerca de %1About %1MAC_APPLICATION_MENUOcultar %1Hide %1MAC_APPLICATION_MENUOcultar otros Hide OthersMAC_APPLICATION_MENUPreferencias &Preferences...MAC_APPLICATION_MENUSalir de %1Quit %1MAC_APPLICATION_MENUServiciosServicesMAC_APPLICATION_MENUMostrar todoShow AllMAC_APPLICATION_MENU Permiso denegadoPermission denied Phonon::MMFHLa secuencia %1, %2 no est definida%1, %2 not definedQ3Accel>Secuencia ambigua %1 no tratadaAmbiguous %1 not handledQ3Accel BorrarDelete Q3DataTable FalsoFalse Q3DataTableInsertarInsert Q3DataTableVerdaderoTrue Q3DataTableActualizarUpdate Q3DataTable%1 Fichero no encontrado. Compruebe la ruta y el nombre del fichero.+%1 File not found. Check path and filename. Q3FileDialog&Borrar&Delete Q3FileDialog&No&No Q3FileDialog&Aceptar&OK Q3FileDialog &Abrir&Open Q3FileDialog$Cambia&r de nombre&Rename Q3FileDialog&Guardar&Save Q3FileDialog&Sin ordenar &Unsorted Q3FileDialog&S&Yes Q3FileDialogT<qt>Seguro que desea borrar %1 %2?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog,Todos los ficheros (*) All Files (*) Q3FileDialog0Todos los ficheros (*.*)All Files (*.*) Q3FileDialogAtributos Attributes Q3FileDialog,Precedente (histrico)Back Q3FileDialogCancelarCancel Q3FileDialog2Copiar o mover un ficheroCopy or Move a File Q3FileDialog.Crear una nueva carpetaCreate New Folder Q3FileDialog FechaDate Q3FileDialogBorrar %1 Delete %1 Q3FileDialogVista detallada Detail View Q3FileDialogDirectorioDir Q3FileDialogDirectorios Directories Q3FileDialogDirectorio: Directory: Q3FileDialog ErrorError Q3FileDialogFicheroFile Q3FileDialog&&Nombre de fichero: File &name: Q3FileDialog"&Tipo de fichero: File &type: Q3FileDialog.Buscar en el directorioFind Directory Q3FileDialogInaccesible Inaccessible Q3FileDialogVista de lista List View Q3FileDialogBuscar &en: Look &in: Q3FileDialog NombreName Q3FileDialogNueva carpeta New Folder Q3FileDialog Nueva carpeta %1 New Folder %1 Q3FileDialogNueva carpeta 1 New Folder 1 Q3FileDialog2Ir al directorio superiorOne directory up Q3FileDialog AbrirOpen Q3FileDialog Abrir Open  Q3FileDialogHContenido del fichero previsualizadoPreview File Contents Q3FileDialogLInformacin del fichero previsualizadoPreview File Info Q3FileDialogR&ecargarR&eload Q3FileDialogSlo lectura Read-only Q3FileDialog"Lectura-escritura Read-write Q3FileDialogLectura: %1Read: %1 Q3FileDialogGuardar comoSave As Q3FileDialog2Seleccionar un directorioSelect a Directory Q3FileDialog:Mostrar los fic&heros ocultosShow &hidden files Q3FileDialog TamaoSize Q3FileDialogOrdenarSort Q3FileDialog$Ordenar por &fecha Sort by &Date Q3FileDialog&Ordenar por &nombre Sort by &Name Q3FileDialog&Ordenar por &tamao Sort by &Size Q3FileDialog Fichero especialSpecial Q3FileDialog@Enlace simblico a un directorioSymlink to Directory Q3FileDialog:Enlace simblico a un ficheroSymlink to File Q3FileDialogLEnlace simblico a un fichero especialSymlink to Special Q3FileDialogTipoType Q3FileDialogSlo escritura Write-only Q3FileDialogEscritura: %1 Write: %1 Q3FileDialogel directorio the directory Q3FileDialogel ficherothe file Q3FileDialog&el enlace simblico the symlink Q3FileDialogJNo fue posible crear el directorio %1Could not create directory %1 Q3LocalFs.No fue posible abrir %1Could not open %1 Q3LocalFsHNo fue posible leer el directorio %1Could not read directory %1 Q3LocalFsdNo fue posible eliminar el fichero o directorio %1%Could not remove file or directory %1 Q3LocalFsPNo fue posible cambiar el nombre %1 a %2Could not rename %1 to %2 Q3LocalFs4No fue posible escribir %1Could not write %1 Q3LocalFsPersonalizar... Customize... Q3MainWindowAlinearLine up Q3MainWindowBOperacin detenida por el usuarioOperation stopped by the userQ3NetworkProtocolCancelarCancelQ3ProgressDialogAplicarApply Q3TabDialogCancelarCancel Q3TabDialog&Valores por omisinDefaults Q3TabDialog AyudaHelp Q3TabDialogAceptarOK Q3TabDialog&Copiar&Copy Q3TextEdit &Pegar&Paste Q3TextEdit&Rehacer&Redo Q3TextEdit&Deshacer&Undo Q3TextEditLimpiarClear Q3TextEditCor&tarCu&t Q3TextEdit Seleccionar todo Select All Q3TextEdit CerrarClose Q3TitleBar"Cierra la ventanaCloses the window Q3TitleBarTContiene rdenes para manipular la ventana*Contains commands to manipulate the window Q3TitleBarMuestra el nombre de la ventana y contiene controles para manipularlaFDisplays the name of the window and contains controls to manipulate it Q3TitleBarNMuestra la ventana en pantalla completaMakes the window full screen Q3TitleBarMaximizarMaximize Q3TitleBarMinimizarMinimize Q3TitleBar"Aparta la ventanaMoves the window out of the way Q3TitleBarfDevuelve una ventana maximizada a su aspecto normal&Puts a maximized window back to normal Q3TitleBarRestaurar abajo Restore down Q3TitleBar Restaurar arriba Restore up Q3TitleBarSistemaSystem Q3TitleBar Ms...More... Q3ToolBar(desconocido) (unknown) Q3UrlOperatorEl protocolo %1 no permite copiar o mover ficheros o directoriosIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorjEl protocolo %1 no permite crear nuevos directorios;The protocol `%1' does not support creating new directories Q3UrlOperatorZEl protocolo %1 no permite recibir ficheros0The protocol `%1' does not support getting files Q3UrlOperatorEl protocolo %1 no permite listar los ficheros de un directorio6The protocol `%1' does not support listing directories Q3UrlOperatorXEl protocolo %1 no permite enviar ficheros0The protocol `%1' does not support putting files Q3UrlOperatorxEl protocolo %1 no permite eliminar ficheros o directorios@The protocol `%1' does not support removing files or directories Q3UrlOperatorEl protocolo %1 no permite cambiar de nombre ficheros o directorios@The protocol `%1' does not support renaming files or directories Q3UrlOperatorJEl protocolo %1 no est contemplado"The protocol `%1' is not supported Q3UrlOperator&Cancelar&CancelQ3Wizard&Terminar&FinishQ3Wizard &Ayuda&HelpQ3WizardSiguie&nte >&Next >Q3Wizard< &Anterior< &BackQ3Wizard$Conexin rechazadaConnection refusedQAbstractSocket"Conexin expiradaConnection timed outQAbstractSocket(Equipo no encontradoHost not foundQAbstractSocket Red inalcanzableNetwork unreachableQAbstractSocket6El socket no est conectadoSocket is not connectedQAbstractSocket2Operacin socket expiradaSocket operation timed outQAbstractSocket"&Seleccionar todo &Select AllQAbstractSpinBox&Aumentar&Step upQAbstractSpinBoxRe&ducir Step &downQAbstractSpinBox MarcarCheckQAccessibleButton PulsarPressQAccessibleButtonDesmarcarUncheckQAccessibleButtonActivarActivate QApplicationPActiva la ventana principal del programa#Activates the program's main window QApplicationlEl ejecutable %1 requiere Qt %2 (se encontr Qt %3).,Executable '%1' requires Qt %2, found Qt %3. QApplicationBError: biblioteca Qt incompatibleIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Cancelar&Cancel QAxSelect&Objeto COM: COM &Object: QAxSelectAceptarOK QAxSelect<Seleccionar un control ActiveXSelect ActiveX Control QAxSelect MarcarCheck QCheckBoxConmutarToggle QCheckBoxDesmarcarUncheck QCheckBoxH&Aadir a los colores personalizados&Add to Custom Colors QColorDialog Colores &bsicos &Basic colors QColorDialog.&Colores personalizados&Custom colors QColorDialog&Verde:&Green: QColorDialog &Rojo:&Red: QColorDialog&Saturacin:&Sat: QColorDialog&Valor:&Val: QColorDialogCanal a&lfa:A&lpha channel: QColorDialog Az&ul:Bl&ue: QColorDialog &Tono:Hu&e: QColorDialog CerrarClose QComboBox FalsoFalse QComboBox AbrirOpen QComboBoxVerdaderoTrue QComboBox@Incapaz de enviar la transaccinUnable to commit transaction QDB2DriverBImposible establecer una conexinUnable to connect QDB2Driver@Incapaz de anular la transaccinUnable to rollback transaction QDB2DriverLIncapaz de activar el envo automticoUnable to set autocommit QDB2Driver>No es posible ligar la variableUnable to bind variable QDB2ResultBImposible ejecutar la instruccinUnable to execute statement QDB2Result<Imposible recuperar el primeroUnable to fetch first QDB2Result@Imposible recuperar el siguienteUnable to fetch next QDB2Result@Imposible obtener el registro %1Unable to fetch record %1 QDB2ResultBImposible preparar la instruccinUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEdit QDialQDialQDial$Asa del deslizador SliderHandleQDialVelocmetro SpeedoMeterQDialTerminarDoneQDialogQu es esto? What's This?QDialog&Cancelar&CancelQDialogButtonBox&Cerrar&CloseQDialogButtonBox&No&NoQDialogButtonBox&Aceptar&OKQDialogButtonBox&Guardar&SaveQDialogButtonBox&S&YesQDialogButtonBoxInterrumpirAbortQDialogButtonBoxAplicarApplyQDialogButtonBoxCancelarCancelQDialogButtonBox CerrarCloseQDialogButtonBox$Cerrar sin guardarClose without SavingQDialogButtonBoxDescartarDiscardQDialogButtonBoxNo guardar Don't SaveQDialogButtonBox AyudaHelpQDialogButtonBoxIgnorarIgnoreQDialogButtonBoxN&o a todo N&o to AllQDialogButtonBoxAceptarOKQDialogButtonBox AbrirOpenQDialogButtonBoxReinicializarResetQDialogButtonBoxJRestaurar los valores predeterminadosRestore DefaultsQDialogButtonBoxReintentarRetryQDialogButtonBoxGuardarSaveQDialogButtonBoxGuardar todoSave AllQDialogButtonBoxS a &todo Yes to &AllQDialogButtonBox&ltima modificacin Date Modified QDirModel ClaseKind QDirModel NombreName QDirModel TamaoSize QDirModelTipoType QDirModel CerrarClose QDockWidgetAncladaDock QDockWidgetFlotanteFloat QDockWidget MenosLessQDoubleSpinBoxMsMoreQDoubleSpinBox&Aceptar&OK QErrorMessage<Mo&strar este mensaje de nuevo&Show this message again QErrorMessage,Mensaje de depuracin:Debug Message: QErrorMessageError fatal: Fatal Error: QErrorMessage Aviso:Warning: QErrorMessage%1 Directorio no encontrado. Verique que el nombre del directorio es correcto.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Fichero no encontrado. Verifique que el nombre del fichero es correcto.A%1 File not found. Please verify the correct file name was given. QFileDialogZEl fichero %1 ya existe. Desea reemplazarlo?-%1 already exists. Do you want to replace it? QFileDialog&Seleccionar&Choose QFileDialog&Borrar&Delete QFileDialog&Nueva carpeta &New Folder QFileDialog &Abrir&Open QFileDialog$Cambia&r de nombre&Rename QFileDialog&Guardar&Save QFileDialog%1 est protegido contra escritura. Desea borrarlo de todas formas?9'%1' is write protected. Do you want to delete it anyway? QFileDialog,Todos los ficheros (*) All Files (*) QFileDialog0Todos los ficheros (*.*)All Files (*.*) QFileDialog<Seguro que desea borrar %1?!Are sure you want to delete '%1'? QFileDialog(Anterior (histrico)Back QFileDialogHNo fue posible borrar el directorio.Could not delete directory. QFileDialog.Crear una nueva carpetaCreate New Folder QFileDialogVista detallada Detail View QFileDialogDirectorios Directories QFileDialogDirectorio: Directory: QFileDialog UnidadDrive QFileDialogFicheroFile QFileDialog&&Nombre de fichero: File &name: QFileDialog"Ficheros de tipo:Files of type: QFileDialog.Buscar en el directorioFind Directory QFileDialog*Siguiente (histrico)Forward QFileDialogVista de lista List View QFileDialogVer en:Look in: QFileDialogMi equipo My Computer QFileDialogNueva carpeta New Folder QFileDialog AbrirOpen QFileDialog&Directorio superiorParent Directory QFileDialogEliminarRemove QFileDialogGuardar comoSave As QFileDialogMostrar Show  QFileDialog:Mostrar los fic&heros ocultosShow &hidden files QFileDialogDesconocidoUnknown QFileDialog %1 GiB%1 GBQFileSystemModel %1 KiB%1 KBQFileSystemModel %1 MiB%1 MBQFileSystemModel %1 TiB%1 TBQFileSystemModel%1 bytes%1 bytesQFileSystemModel<b>No se puede utilizar el nombre %1.</b><p>Intente usar otro nombre con menos caracteres o sin signos de puntuacin.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModel EquipoComputerQFileSystemModel&ltima modificacin Date ModifiedQFileSystemModel6Nombre de fichero no vlidoInvalid filenameQFileSystemModel ClaseKindQFileSystemModelMi equipo My ComputerQFileSystemModel NombreNameQFileSystemModel TamaoSizeQFileSystemModelTipoTypeQFileSystemModel&Tipo de letra&Font QFontDialog&Tamao&Size QFontDialogS&ubrayado &Underline QFontDialogEfectosEffects QFontDialog2&Estilo del tipo de letra Font st&yle QFontDialogMuestraSample QFontDialog8Seleccionar un tipo de letra Select Font QFontDialog&Tachado Stri&keout QFontDialog*Sistema de escr&ituraWr&iting System QFontDialogDFallo del cambio de directorio: %1Changing directory failed: %1QFtp&Conectado al equipoConnected to hostQFtp,Conectado al equipo %1Connected to host %1QFtpPLa conexin con el equipo ha fallado: %1Connecting to host failed: %1QFtp Conexin cerradaConnection closedQFtpRConexin para conexin de datos rechazada&Connection refused for data connectionQFtp>Conexin rechazada al equipo %1Connection refused to host %1QFtp*Conexin a %1 cerradaConnection to %1 closedQFtpRFallo de la creacin de un directorio: %1Creating directory failed: %1QFtpHFallo de la descarga del fichero: %1Downloading file failed: %1QFtp(Equipo %1 encontrado Host %1 foundQFtp.Equipo %1 no encontradoHost %1 not foundQFtp"Equipo encontrado Host foundQFtpPEl listado del directorio ha fallado: %1Listing directory failed: %1QFtp4Identificacin fallida: %1Login failed: %1QFtpNo conectado Not connectedQFtpJEliminacin de directorio fallida: %1Removing directory failed: %1QFtpDEliminacin de fichero fallida: %1Removing file failed: %1QFtp"Error desconocido Unknown errorQFtpFEl envo del fichero ha fallado: %1Uploading file failed: %1QFtpConmutarToggle QGroupBox"Error desconocido Unknown error QHostInfo(Equipo no encontradoHost not foundQHostInfoAgent:Direccin de tipo desconocidoUnknown address typeQHostInfoAgent"Error desconocido Unknown errorQHostInfoAgent0Se precisa autenticacinAuthentication requiredQHttp&Conectado al equipoConnected to hostQHttp,Conectado al equipo %1Connected to host %1QHttp Conexin cerradaConnection closedQHttp$Conexin rechazadaConnection refusedQHttp*Conexin a %1 cerradaConnection to %1 closedQHttp,Solicitud HTTP fallidaHTTP request failedQHttp(Equipo %1 encontrado Host %1 foundQHttp.Equipo %1 no encontradoHost %1 not foundQHttp"Equipo encontrado Host foundQHttp0Fragmento HTTP no vlidoInvalid HTTP chunked bodyQHttpHCabecera de respuesta HTTP no vlidaInvalid HTTP response headerQHttpfNo se ha indicado ningn servidor al que conectarseNo server set to connect toQHttp>El proxy requiere autenticacinProxy authentication requiredQHttp,Solicitud interrumpidaRequest abortedQHttpZEl servidor cerr la conexin inesperadamente%Server closed connection unexpectedlyQHttp"Error desconocido Unknown errorQHttp<Longitud del contenido errneaWrong content lengthQHttp0Se precisa autenticacinAuthentication requiredQHttpSocketEngineJNo fue posible iniciar la transaccinCould not start transaction QIBaseDriver>Error al abrir la base de datosError opening database QIBaseDriver@Incapaz de enviar la transaccinUnable to commit transaction QIBaseDriver@Incapaz de anular la transaccinUnable to rollback transaction QIBaseDriverJNo fue posible asignar la instruccinCould not allocate statement QIBaseResultdNo fue posible describir la instruccin de entrada"Could not describe input statement QIBaseResultNNo fue posible describir la instruccinCould not describe statement QIBaseResultXNo fue posible obtener el elemento siguienteCould not fetch next item QIBaseResultBNo fue posible encontrar la tablaCould not find array QIBaseResultXNo fue posible obtener los datos de la tablaCould not get array data QIBaseResulthNo fue posible obtener informacin sobre la consultaCould not get query info QIBaseResultnNo fue posible obtener informacin sobre la instruccinCould not get statement info QIBaseResultLNo fue posible preparar la instruccinCould not prepare statement QIBaseResultJNo fue posible iniciar la transaccinCould not start transaction QIBaseResultHNo fue posible cerrar la instruccinUnable to close statement QIBaseResult@Incapaz de enviar la transaccinUnable to commit transaction QIBaseResult.Imposible crear un BLOBUnable to create BLOB QIBaseResultFNo fue posible ejecutar la consultaUnable to execute query QIBaseResult.Imposible abrir el BLOBUnable to open BLOB QIBaseResult,Imposible leer el BLOBUnable to read BLOB QIBaseResult4Imposible escribir el BLOBUnable to write BLOB QIBaseResultDNo queda espacio en el dispositivoNo space left on device QIODevicebNo hay ningn fichero o directorio con ese nombreNo such file or directory QIODevice Permiso denegadoPermission denied QIODeviceXDemasiados ficheros abiertos simultneamenteToo many open files QIODevice"Error desconocido Unknown error QIODevice4Mtodo de entrada Mac OS XMac OS X input method QInputContext2Mtodo de entrada WindowsWindows input method QInputContextXIMXIM QInputContext*Mtodo de entrada XIMXIM input method QInputContext|Los datos de verificacin del complemento no coinciden en %1)Plugin verification data mismatch in '%1'QLibrarydEl fichero %1 no es un complemento de Qt vlido.'The file '%1' is not a valid Qt plugin.QLibraryEl complemento %1 usa una biblioteca Qt incompatible. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryEl complemento %1 usa una biblioteca Qt incompatible. (No se pueden mezclar las bibliotecas debug y release.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryEl complemento %1 usa una biblioteca Qt incompatible. Se esperaba la clave %2, pero se ha recibido %3OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryZNo se ha encontrado la biblioteca compartida.!The shared library was not found.QLibrary"Error desconocido Unknown errorQLibrary&Copiar&Copy QLineEdit &Pegar&Paste QLineEdit&Rehacer&Redo QLineEdit&Deshacer&Undo QLineEditCor&tarCu&t QLineEdit BorrarDelete QLineEdit Seleccionar todo Select All QLineEditHNo es posible iniciar la transaccinUnable to begin transaction QMYSQLDriverFNo es posible enviar la transaccinUnable to commit transaction QMYSQLDriverJNo es posible establecer una conexinUnable to connect QMYSQLDriverDImposible abrir la base de datos 'Unable to open database ' QMYSQLDriverFNo es posible anular la transaccinUnable to rollback transaction QMYSQLDriverRNo es posible ligar los valores de salidaUnable to bind outvalues QMYSQLResult8No es posible ligar el valorUnable to bind value QMYSQLResultDNo es posible ejecutar la consultaUnable to execute query QMYSQLResultJNo es posible ejecutar la instruccinUnable to execute statement QMYSQLResult>No es posible obtener los datosUnable to fetch data QMYSQLResultJNo es posible preparar la instruccinUnable to prepare statement QMYSQLResultTNo es posible reinicializar la instruccinUnable to reset statement QMYSQLResultHNo es posible almacenar el resultadoUnable to store result QMYSQLResultpNo es posible almacenar los resultados de la instruccin!Unable to store statement results QMYSQLResult%1 - [%2] %1 - [%2] QMdiSubWindow&Cerrar&Close QMdiSubWindow &Mover&Move QMdiSubWindow&Restaurar&Restore QMdiSubWindowRedimen&sionar&Size QMdiSubWindow CerrarClose QMdiSubWindow AyudaHelp QMdiSubWindowMa&ximizar Ma&ximize QMdiSubWindowMaximizarMaximize QMdiSubWindowMenMenu QMdiSubWindowMi&nimizar Mi&nimize QMdiSubWindowMinimizarMinimize QMdiSubWindowRestaurar abajo Restore Down QMdiSubWindow6Permanecer en &primer plano Stay on &Top QMdiSubWindow CerrarCloseQMenuEjecutarExecuteQMenu AbrirOpenQMenuAcerca de QtAbout Qt QMessageBox AyudaHelp QMessageBox.Ocultar los detalles...Hide Details... QMessageBoxAceptarOK QMessageBox.Mostrar los detalles...Show Details... QMessageBoxSeleccionar IM Select IMQMultiInputContextTSeleccionador de varios mtodos de entradaMultiple input method switcherQMultiInputContextPluginSeleccionador de varios mtodos de entrada que usa el men contextual de los elementos de textoMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginbYa hay otro socket escuchando por el mismo puerto4Another socket is already listening on the same portQNativeSocketEngineIntento de usar un socket IPv6 sobre una plataforma que no contempla IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine$Conexin rechazadaConnection refusedQNativeSocketEngine"Conexin expiradaConnection timed outQNativeSocketEnginepEl datagrama era demasiado grande para poder ser enviadoDatagram was too large to sendQNativeSocketEngine$Equipo inaccesibleHost unreachableQNativeSocketEngine<Descriptor de socket no vlidoInvalid socket descriptorQNativeSocketEngineError de red Network errorQNativeSocketEngine>La operacin de red ha expiradoNetwork operation timed outQNativeSocketEngine Red inalcanzableNetwork unreachableQNativeSocketEngine8Operacin sobre un no-socketOperation on non-socketQNativeSocketEngine,Insuficientes recursosOut of resourcesQNativeSocketEngine Permiso denegadoPermission deniedQNativeSocketEngine:Tipo de protocolo no admitidoProtocol type not supportedQNativeSocketEngine>La direccin no est disponibleThe address is not availableQNativeSocketEngine6La direccin est protegidaThe address is protectedQNativeSocketEngineHLa direccin enlazada ya est en uso#The bound address is already in useQNativeSocketEngineNEl equipo remoto ha cerrado la conexin%The remote host closed the connectionQNativeSocketEngineVImposible inicializar el socket de difusin%Unable to initialize broadcast socketQNativeSocketEngineZImposible inicializar el socket no bloqueante(Unable to initialize non-blocking socketQNativeSocketEngine8Imposible recibir un mensajeUnable to receive a messageQNativeSocketEngine6Imposible enviar un mensajeUnable to send a messageQNativeSocketEngine$Imposible escribirUnable to writeQNativeSocketEngine"Error desconocido Unknown errorQNativeSocketEngine8Operacin socket no admitidaUnsupported socket operationQNativeSocketEngineHNo es posible iniciar la transaccinUnable to begin transaction QOCIDriver8La inicializacin ha falladoUnable to initialize QOCIDriver4No es posible abrir sesinUnable to logon QOCIDriverHNo es posible asignar la instruccinUnable to alloc statement QOCIResultvNo es posible ligar la columna para una ejecucin por lotes'Unable to bind column for batch execute QOCIResult8No es posible ligar el valorUnable to bind value QOCIResult^No es posible ejecutar la instruccin por lotes!Unable to execute batch statement QOCIResultJNo es posible ejecutar la instruccinUnable to execute statement QOCIResult@No es posible pasar al siguienteUnable to goto next QOCIResultJNo es posible preparar la instruccinUnable to prepare statement QOCIResultFNo es posible enviar la transaccinUnable to commit transaction QODBCDriverJNo es posible establecer una conexinUnable to connect QODBCDriverZNo es posible inhabilitar el envo automticoUnable to disable autocommit QODBCDriverVNo es posible habilitar el envo automticoUnable to enable autocommit QODBCDriverFNo es posible anular la transaccinUnable to rollback transaction QODBCDriver QODBCResult::reset: No es posible establecer SQL_CURSOR_STATIC como atributo de instruccin. Compruebe la configuracin de su controlador ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult>No es posible ligar la variableUnable to bind variable QODBCResultJNo es posible ejecutar la instruccinUnable to execute statement QODBCResult<Imposible recuperar el primeroUnable to fetch first QODBCResultDNo es posible obtener el siguienteUnable to fetch next QODBCResultJNo es posible preparar la instruccinUnable to prepare statement QODBCResult InicioHomeQObject(Equipo no encontradoHost not foundQObject NombreNameQPPDOptionsModel ValorValueQPPDOptionsModelJNo fue posible iniciar la transaccinCould not begin transaction QPSQLDriverHNo fue posible enviar la transaccinCould not commit transaction QPSQLDriverHNo fue posible anular la transaccinCould not rollback transaction QPSQLDriverBNo es posible establecer conexinUnable to connect QPSQLDriver>No es posible crear la consultaUnable to create query QPSQLResultApaisado LandscapeQPageSetupWidget"Tamao de pgina: Page size:QPageSetupWidget"Fuente del papel: Paper source:QPageSetupWidgetVerticalPortraitQPageSetupWidget<El complemento no fue cargado.The plugin was not loaded. QPluginLoader"Error desconocido Unknown error QPluginLoaderJ%1 ya existe. Desea sobrescribirlo?/%1 already exists. Do you want to overwrite it? QPrintDialogv%1 es un directorio. Elija un nombre de fichero diferente.7%1 is a directory. Please choose a different file name. QPrintDialog><qt>Desea sobrescribirlo?</qt>%Do you want to overwrite it? QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogNA4 (210 x 297 mm, 8,26 x 11,7 pulgadas)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogNB5 (176 x 250 mm, 6,93 x 9,84 pulgadas)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogVEjecutivo (7,5 x 10 pulgadas, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogNo se puede escribir en el fichero %1. Elija un nombre de fichero diferente.=File %1 is not writable. Please choose a different file name. QPrintDialog"El fichero existe File exists QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogNLegal (8,5 x 14 pulgadas, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogNCarta (8,5 x 11 pulgadas, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogAceptarOK QPrintDialogImprimirPrint QPrintDialog*Imprimir a fichero...Print To File ... QPrintDialogImprimir todo Print all QPrintDialog*Imprimir el intervalo Print range QPrintDialog*Imprimir la seleccinPrint selection QPrintDialog.Tabloide (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogDSobre US Common #10 (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog(conectado localmentelocally connected QPrintDialogdesconocidounknown QPrintDialog CerrarCloseQPrintPreviewDialogApaisado LandscapeQPrintPreviewDialogVerticalPortraitQPrintPreviewDialogRecopilarCollateQPrintSettingsOutput CopiasCopiesQPrintSettingsOutputOpcionesOptionsQPrintSettingsOutputPginas Pages fromQPrintSettingsOutputImprimir todo Print allQPrintSettingsOutput*Imprimir el intervalo Print rangeQPrintSettingsOutputSeleccin SelectionQPrintSettingsOutputatoQPrintSettingsOutputImpresoraPrinter QPrintWidgetCancelarCancelQProgressDialog AbrirOpen QPushButton MarcarCheck QRadioButtonVsintaxis no vlida para clase de caracteresbad char class syntaxQRegExpBsintaxis no vlida para lookaheadbad lookahead syntaxQRegExpDsintaxis no vlida para repeticinbad repetition syntaxQRegExpXse ha usado una caracterstica no habilitadadisabled feature usedQRegExp*valor octal no vlidoinvalid octal valueQRegExp8se alcanz el lmite internomet internal limitQRegExp<falta el delimitador izquierdomissing left delimQRegExp>no se ha producido ningn errorno error occurredQRegExpfin inesperadounexpected endQRegExp>Error al abrir la base de datosError opening databaseQSQLite2DriverHNo es posible iniciar la transaccinUnable to begin transactionQSQLite2DriverFNo es posible enviar la transaccinUnable to commit transactionQSQLite2DriverJNo es posible ejecutar la instruccinUnable to execute statementQSQLite2ResultHNo es posible obtener los resultadosUnable to fetch resultsQSQLite2Result@Error al cerrar la base de datosError closing database QSQLiteDriver>Error al abrir la base de datosError opening database QSQLiteDriverHNo es posible iniciar la transaccinUnable to begin transaction QSQLiteDriverFNo es posible enviar la transaccinUnable to commit transaction QSQLiteDriver>Nmero de parmetros incorrectoParameter count mismatch QSQLiteResultDNo es posible ligar los parmetrosUnable to bind parameters QSQLiteResultJNo es posible ejecutar la instruccinUnable to execute statement QSQLiteResult:No es posible obtener la filaUnable to fetch row QSQLiteResultTNo es posible reinicializar la instruccinUnable to reset statement QSQLiteResult BorrarDeleteQScriptBreakpointsWidgetSiguienteContinueQScriptDebugger CerrarCloseQScriptDebuggerCodeFinderWidget NombreNameQScriptDebuggerLocalsModel ValorValueQScriptDebuggerLocalsModel NombreNameQScriptDebuggerStackModelBsquedaSearchQScriptEngineDebugger CerrarCloseQScriptNewBreakpointWidgetParte inferiorBottom QScrollBarBorde izquierdo Left edge QScrollBar"Alinear por abajo Line down QScrollBarAlinearLine up QScrollBar,Una pgina hacia abajo Page down QScrollBar2Una pgina a la izquierda Page left QScrollBar.Una pgina a la derecha Page right QScrollBar.Una pgina hacia arribaPage up QScrollBarPosicinPosition QScrollBarBorde derecho Right edge QScrollBar*Desplazar hacia abajo Scroll down QScrollBar(Desplazar hasta aqu Scroll here QScrollBar8Desplazar hacia la izquierda Scroll left QScrollBar4Desplazar hacia la derecha Scroll right QScrollBar,Desplazar hacia arriba Scroll up QScrollBarParte superiorTop QScrollBar++ QShortcutAltAlt QShortcut(Anterior (histrico)Back QShortcut Borrar Backspace QShortcut*Tabulador hacia atrsBacktab QShortcut(Potenciar los graves Bass Boost QShortcut Bajar los graves Bass Down QShortcut Subir los gravesBass Up QShortcut LlamarCall QShortcut*Bloqueo de maysculas Caps Lock QShortcutBloq MaysCapsLock QShortcutLimpiarClear QShortcut CerrarClose QShortcutContexto1Context1 QShortcutContexto2Context2 QShortcutContexto3Context3 QShortcutContexto4Context4 QShortcutCtrlCtrl QShortcutSuprDel QShortcut BorrarDelete QShortcut AbajoDown QShortcutFinEnd QShortcut IntroEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoritos Favorites QShortcutVoltearFlip QShortcut*Siguiente (histrico)Forward QShortcutDescolgarHangup QShortcut AyudaHelp QShortcut InicioHome QShortcut Pgina de inicio Home Page QShortcutInsIns QShortcutInsertarInsert QShortcutLanzar (0) Launch (0) QShortcutLanzar (1) Launch (1) QShortcutLanzar (2) Launch (2) QShortcutLanzar (3) Launch (3) QShortcutLanzar (4) Launch (4) QShortcutLanzar (5) Launch (5) QShortcutLanzar (6) Launch (6) QShortcutLanzar (7) Launch (7) QShortcutLanzar (8) Launch (8) QShortcutLanzar (9) Launch (9) QShortcutLanzar (A) Launch (A) QShortcutLanzar (B) Launch (B) QShortcutLanzar (C) Launch (C) QShortcutLanzar (D) Launch (D) QShortcutLanzar (E) Launch (E) QShortcutLanzar (F) Launch (F) QShortcutLanzar correo Launch Mail QShortcutLanzar medio Launch Media QShortcutIzquierdaLeft QShortcutSiguiente medio Media Next QShortcut&Reproducir el medio Media Play QShortcutMedio anteriorMedia Previous QShortcutGrabar medio Media Record QShortcut Detener el medio Media Stop QShortcutMenMenu QShortcutMetaMeta QShortcutNoNo QShortcutBloq numNum Lock QShortcutBloq NumNumLock QShortcut Bloqueo numrico Number Lock QShortcutAbrir URLOpen URL QShortcutAvanzar pgina Page Down QShortcut"Retroceder pginaPage Up QShortcut PausaPause QShortcut Av PgPgDown QShortcut Re PgPgUp QShortcutImpr PantPrint QShortcut"Imprimir pantalla Print Screen QShortcutActualizarRefresh QShortcutRetornoReturn QShortcutDerechaRight QShortcutGuardarSave QShortcut4Bloqueo del desplazamiento Scroll Lock QShortcutBloq Despl ScrollLock QShortcutBsquedaSearch QShortcutSeleccionarSelect QShortcutMayShift QShortcutEspacioSpace QShortcut ReposoStandby QShortcutDetenerStop QShortcut PetSisSysReq QShortcut(Peticin del sistemaSystem Request QShortcutTabuladorTab QShortcut Bajar los agudos Treble Down QShortcut Subir los agudos Treble Up QShortcut ArribaUp QShortcut Bajar el volumen Volume Down QShortcutSilenciar Volume Mute QShortcut Subir el volumen Volume Up QShortcutSYes QShortcut,Una pgina hacia abajo Page downQSlider2Una pgina a la izquierda Page leftQSlider.Una pgina a la derecha Page rightQSlider.Una pgina hacia arribaPage upQSliderPosicinPositionQSlider>La operacin de red ha expiradoNetwork operation timed outQSocks5SocketEngineCancelarCancelQSoftKeyManagerTerminarDoneQSoftKeyManager SalirExitQSoftKeyManagerAceptarOKQSoftKeyManagerOpcionesOptionsQSoftKeyManagerSeleccionarSelectQSoftKeyManager MenosLessQSpinBoxMsMoreQSpinBoxCancelarCancelQSql:Cancelar sus modificaciones?Cancel your edits?QSqlConfirmarConfirmQSql BorrarDeleteQSql,Borrar este registro?Delete this record?QSqlInsertarInsertQSqlNoNoQSql8Guardar las modificaciones? Save edits?QSqlActualizarUpdateQSqlSYesQSqljNo se puede proporcionar un certificado sin clave, %1,Cannot provide a certificate with no key, %1 QSslSocketFError al crear el contexto SSL (%1)Error creating SSL context (%1) QSslSocket@Error al crear la sesin SSL, %1Error creating SSL session, %1 QSslSocket@Error al crear la sesin SSL: %1Error creating SSL session: %1 QSslSocket>Error durante el saludo SSL: %1Error during SSL handshake: %1 QSslSocketPError al cargar el certificado local, %1#Error loading local certificate, %1 QSslSocketHError al cargar la clave privada, %1Error loading private key, %1 QSslSocket"Error al leer: %1Error while reading: %1 QSslSocketLLista de cifras vaca o no vlida (%1)!Invalid or empty cipher list (%1) QSslSocketHNo es posible escribir los datos: %1Unable to write data: %1 QSslSocket"Error desconocido Unknown error QSslSocket"Error desconocido Unknown error QStateMachine>Error al abrir la base de datosError opening database QSymSQLDriverHNo es posible iniciar la transaccinUnable to begin transaction QSymSQLDriver>Nmero de parmetros incorrectoParameter count mismatch QSymSQLResultDNo es posible ligar los parmetrosUnable to bind parameters QSymSQLResult:No es posible obtener la filaUnable to fetch row QSymSQLResultTNo es posible reinicializar la instruccinUnable to reset statement QSymSQLResultbYa hay otro socket escuchando por el mismo puerto4Another socket is already listening on the same portQSymbianSocketEngineIntento de usar un socket IPv6 sobre una plataforma que no contempla IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQSymbianSocketEngine$Conexin rechazadaConnection refusedQSymbianSocketEngine"Conexin expiradaConnection timed outQSymbianSocketEnginepEl datagrama era demasiado grande para poder ser enviadoDatagram was too large to sendQSymbianSocketEngine$Equipo inaccesibleHost unreachableQSymbianSocketEngine<Descriptor de socket no vlidoInvalid socket descriptorQSymbianSocketEngineError de red Network errorQSymbianSocketEngine>La operacin de red ha expiradoNetwork operation timed outQSymbianSocketEngine Red inalcanzableNetwork unreachableQSymbianSocketEngine8Operacin sobre un no-socketOperation on non-socketQSymbianSocketEngine,Insuficientes recursosOut of resourcesQSymbianSocketEngine Permiso denegadoPermission deniedQSymbianSocketEngine:Tipo de protocolo no admitidoProtocol type not supportedQSymbianSocketEngine>La direccin no est disponibleThe address is not availableQSymbianSocketEngine6La direccin est protegidaThe address is protectedQSymbianSocketEngineHLa direccin enlazada ya est en uso#The bound address is already in useQSymbianSocketEngineNEl equipo remoto ha cerrado la conexin%The remote host closed the connectionQSymbianSocketEngineVImposible inicializar el socket de difusin%Unable to initialize broadcast socketQSymbianSocketEngineZImposible inicializar el socket no bloqueante(Unable to initialize non-blocking socketQSymbianSocketEngine8Imposible recibir un mensajeUnable to receive a messageQSymbianSocketEngine6Imposible enviar un mensajeUnable to send a messageQSymbianSocketEngine$Imposible escribirUnable to writeQSymbianSocketEngine"Error desconocido Unknown errorQSymbianSocketEngine8Operacin socket no admitidaUnsupported socket operationQSymbianSocketEngine>No es posible abrir la conexinUnable to open connection QTDSDriverNNo es posible utilizar la base de datosUnable to use database QTDSDriverActivarActivateQTabBar CerrarCloseQTabBar PulsarPressQTabBar8Desplazar hacia la izquierda Scroll LeftQTabBar4Desplazar hacia la derecha Scroll RightQTabBar&Copiar&Copy QTextControl &Pegar&Paste QTextControl&Rehacer&Redo QTextControl&Deshacer&Undo QTextControl>Copiar la ubicacin del en&laceCopy &Link Location QTextControlCor&tarCu&t QTextControl BorrarDelete QTextControl Seleccionar todo Select All QTextControl AbrirOpen QToolButton PulsarPress QToolButton>La plataforma no contempla IPv6#This platform does not support IPv6 QUdpSocketRehacerDefault text for redo actionRedo QUndoGroupDeshacerDefault text for undo actionUndo QUndoGroup<vaco> QUndoModelRehacerDefault text for redo actionRedo QUndoStackDeshacerDefault text for undo actionUndo QUndoStackHInsertar carcter de control Unicode Insert Unicode control characterQUnicodeControlCharacterMenuHLRE Start of left-to-right embedding$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu,LRM Left-to-right markLRM Left-to-right markQUnicodeControlCharacterMenuFLRO Start of left-to-right override#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Pop directional formattingPDF Pop directional formattingQUnicodeControlCharacterMenuHRLE Start of right-to-left embedding$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu,RLM Right-to-left markRLM Right-to-left markQUnicodeControlCharacterMenuFRLO Start of right-to-left override#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu*ZWJ Zero width joinerZWJ Zero width joinerQUnicodeControlCharacterMenu4ZWNJ Zero width non-joinerZWNJ Zero width non-joinerQUnicodeControlCharacterMenu*ZWSP Zero width spaceZWSP Zero width spaceQUnicodeControlCharacterMenuParte inferiorBottomQWebPagePrecedenteGo BackQWebPageIgnorarIgnoreQWebPageIgnorar Ignore Grammar context menu itemIgnoreQWebPageBorde izquierdo Left edgeQWebPage,Una pgina hacia abajo Page downQWebPage2Una pgina a la izquierda Page leftQWebPage.Una pgina a la derecha Page rightQWebPage.Una pgina hacia arribaPage upQWebPage PausaPauseQWebPageReinicializarResetQWebPageBorde derecho Right edgeQWebPage*Desplazar hacia abajo Scroll downQWebPage(Desplazar hasta aqu Scroll hereQWebPage8Desplazar hacia la izquierda Scroll leftQWebPage4Desplazar hacia la derecha Scroll rightQWebPage,Desplazar hacia arriba Scroll upQWebPage Seleccionar todo Select AllQWebPageDetenerStopQWebPageParte superiorTopQWebPageDesconocidoUnknownQWebPageQu es esto? What's This?QWhatsThisAction**QWidget&Terminar&FinishQWizard &Ayuda&HelpQWizardSiguie&nte >&Next >QWizard< &Anterior< &BackQWizardCancelarCancelQWizard EnviarCommitQWizardSiguienteContinueQWizardTerminarDoneQWizardPrecedenteGo BackQWizard AyudaHelpQWizard%1 - [%2] %1 - [%2] QWorkspace&Cerrar&Close QWorkspace &Mover&Move QWorkspace&Restaurar&Restore QWorkspace&Tamao&Size QWorkspaceQ&uitar sombra&Unshade QWorkspace CerrarClose QWorkspaceMa&ximizar Ma&ximize QWorkspaceMi&nimizar Mi&nimize QWorkspaceMinimizarMinimize QWorkspaceRestaurar abajo Restore Down QWorkspaceSombre&arSh&ade QWorkspace6Permanecer en &primer plano Stay on &Top QWorkspacese esperaba una declaracin de codificacin o declaracin autnoma al leer la declaracin XMLYencoding declaration or standalone declaration expected while reading the XML declarationQXmlnerror en la declaracin de texto de una entidad externa3error in the text declaration of an external entityQXmlzse ha producido un error durante el anlisis de un comentario$error occurred while parsing commentQXmltse ha producido un error durante el anlisis del contenido$error occurred while parsing contentQXmlse ha producido un error durante el anlisis de la definicin de tipo de documento5error occurred while parsing document type definitionQXmlvse ha producido un error durante el anlisis de un elemento$error occurred while parsing elementQXml|se ha producido un error durante el anlisis de una referencia&error occurred while parsing referenceQXml4error debido al consumidorerror triggered by consumerQXmlno se permiten referencias a entidades externas generales ya analizadas en la DTD;external parsed general entity reference not allowed in DTDQXmlno se permiten referencias a entidades externas generales ya analizadas en el valor de un atributoGexternal parsed general entity reference not allowed in attribute valueQXmlno se permiten referencias a entidades internas generales en la DTD4internal general entity reference not allowed in DTDQXml\nombre de instruccin de tratamiento no vlido'invalid name for processing instructionQXml*se esperaba una letraletter is expectedQXmlTms de una definicin de tipo de documento&more than one document type definitionQXml>no se ha producido ningn errorno error occurredQXml(entidades recursivasrecursive entitiesQXmlse esperaba una declaracin independiente al leer la declaracin XMLAstandalone declaration expected while reading the XML declarationQXml.etiqueta desequilibrada tag mismatchQXml&carcter inesperadounexpected characterQXml2fin de fichero inesperadounexpected end of fileQXmltreferencia a entidad no analizada en un contexto no vlido*unparsed entity reference in wrong contextQXmlbse esperaba la versin al leer la declaracin XML2version expected while reading the XML declarationQXml^valor errneo para la declaracin independiente&wrong value for standalone declarationQXmlP%1 no es un identificador PUBLIC vlido.#%1 is an invalid PUBLIC identifier. QXmlStreamT%1 es un nombre de codificacin no vlido.%1 is an invalid encoding name. QXmlStreamt%1 es un nombre de instruccin de procesamiento no vlido.-%1 is an invalid processing instruction name. QXmlStream., pero se ha recibido ' , but got ' QXmlStream(Atributo redefinido.Attribute redefined. QXmlStream>No se admite la codificacin %1Encoding %1 is unsupported QXmlStream`Encontrado contenido codificado incorrectamente.(Encountered incorrectly encoded content. QXmlStream4Entidad %1 no declarada.Entity '%1' not declared. QXmlStreamSe esperaba  Expected  QXmlStream>Se esperaban datos de carcter.Expected character data. QXmlStreamNContenido extra al final del documento.!Extra content at end of document. QXmlStreamRDeclaracin de espacio de nombres ilegal.Illegal namespace declaration. QXmlStream.Carcter XML no vlido.Invalid XML character. QXmlStream*Nombre XML no vlido.Invalid XML name. QXmlStream@Cadena de versin XML no vlida.Invalid XML version string. QXmlStreamRAtributo no vlido en la declaracin XML.%Invalid attribute in XML declaration. QXmlStreamBReferencia un carcter no vlido.Invalid character reference. QXmlStream(Documento no vlido.Invalid document. QXmlStream<Valor de la entidad no vlido.Invalid entity value. QXmlStreambNombre de instruccin de procesamiento no vlido.$Invalid processing instruction name. QXmlStream\NDATA en una declaracin de entidad parmetro.&NDATA in parameter entity declaration. QXmlStream^Prefijo de espacio de nombres %1 no declarado"Namespace prefix '%1' not declared QXmlStream`Las etiquetas de apertura y cierre no coinciden. Opening and ending tag mismatch. QXmlStream<Final prematuro del documento.Premature end of document. QXmlStream8Detectada entidad recursiva.Recursive entity detected. QXmlStream~Referencia a una entidad externa %1 en el valor del atributo.5Reference to external entity '%1' in attribute value. QXmlStreamVReferencia a una entidad no analizada %1."Reference to unparsed entity '%1'. QXmlStreamZSecuencia ]]> no permitida en el contenido.&Sequence ']]>' not allowed in content. QXmlStreamJStandalone slo acepta s o no."Standalone accepts only yes or no. QXmlStream>Se esperaba etiqueta de inicio.Start tag expected. QXmlStreamEl pseudoatributo standalone debe aparece despus de la codificacin.?The standalone pseudo attribute must appear after the encoding. QXmlStream No se esperaba ' Unexpected ' QXmlStreamCarcter %1 inesperado en un literal de identificacin pblico./Unexpected character '%1' in public id literal. QXmlStream0Versin XML no admitida.Unsupported XML version. QXmlStreamlLa declaracin XML no est al principio del documento.)XML declaration not at start of document. QXmlStreamSeleccionarSelectQmlJSDebugger::QmlToolBarx2goclient-4.0.5.1/res/i18n/qt_fr.qm0000644000000000000000000077372512675050177013704 0ustar fgIfufJfn"f@fgߥl9=D?)`?B;)HBl`A4y"5C3gweE%H% E yK ~W=^V\sQHt 3W!nv7$<&S."(2F(4(4(4'(5%(5Y*yK*yY*y*T#*0Z,*08+Fj+F؞+Lc+f5+f +ze+L+Yv+l+zeW+6 +5+ t+$+j++įLR+įY+į+e3d4r7}:9;=@l@fBjHC:_C:|pF0iFn4Fn4GHw9JHw9I'ITI^Ic$IpJ+LJ+J6M4J6fJ6[J6J6jJ6mJ6ؾJ6>J6 =J6 lJ6sJ6zJcbJGK&L #LZ$,L3\LgLb;M5MbϯM$NO|fXPFEPPFEl;PFEQ +;QR-R|йR̼R^SS8^TNT7Tʴ1TG)U?^ U|6U} V13V1Vl>VV9]V9VoV VE:#W^WW)WTҕWTܥWT;/X~X9<XX˙cX<|Y!YlY?YYZ+?Zg?Z"0Z [;^[[=D[f3C[f3[\L\]4e\]4M\]4xm\}\\\EatgclGt>{|^|^})|Ac`?WvvՋTԱ) -f+Z)CGMdoͥ4L05\]ͦ.[6CdIAGF[Eg+I4ÉyʴXtDDQ%6EHvɵnk/ɵnBɵnHɵnaɵn&ɵn3ɵnɵn[~/B B Bw*';bM1<)dadO2q˟pTI۔ >QHbHvBJ8,+ɤ\CE<Kp65?5wD#Q%UT%UTz(Ŏ*4-ct2Ƨ3jRllsl2l2[oR_hpN u&v̲v̲Kw^x|{yc~GfI2B4!թW"2m/2".Rz%PXQ=& dyP,T ta ʯ0=_9efZ?y#O$^(NurJTE20uTSIQY   ~y Yd $!g)"l$,m%%'&Xdl)^C-,/=ND/Xt1$1$v5~'< O}<3 G=Ï>?2?N.FRkNkyUixWHW~]X]y]E`m*`jthlglyzOl}oiKvty.C$>1l%a" ;;ztF4.N)LOU 66i6k^+VKYD7RsT='~.H>0E7Eb{=,8A9τn~A* K[yLGQtC7CUn2nme>mjMiM1E&wE1nwIw 0 D6e34^L!9 I +ڎ$nNU 4'G!e&)FN*/eF+C+=,0,N]1E:ϭ;;t?4]ByɲEcF£F_NjO{tOZf\[ \cNA\+`hb+5b-Ccփ3fg&4 VjCmniqX*qV|tuM>u(* {>}kaQ}Q!5~g:(_y,{ZK&$$$kf4+a(Fu4ʁr<^lK1L֊fyE nd,D"q;yω#a:OY-?I+~T>a5AX. nn2z7^h+=&HC&p,no,}-./C$4!'25*8j/?C"IxScK8L LOۭR>UXm YM&YM1^=>eh^RiXLn nn^sscssw 'x/^r2 "%)ۊf!ate] }]n&~m`I8IJIJI"IIQISII ZQI.Y.i/6y/r-. .F.-V-I0/0&0b0/uD*uD5D:o,3$,Z,>,",T ,s]>}U%کr/VQk_o>[ɘe$5$@ 4:k8EfR=fRG>;ݿ <FU?_)9N&*N(&zQ~(cUSPq-VfR|T3*Tb  Q N] `])K& @b^h l- "o$!$%CR&~& )2R)H*46+2,o/`,53 528282;_?"c?>uAqFuKNDK-MN>FRuU5V| 3Z=]A ]Ge~g$Zg^8k9y^OR{y<w?Ji05t;F+>+R+D`net6G{ŷ 1;"c/xA"r)9\!B s!RϾ 6NN%cS%.i:{/DzC-57UC^6qƨ3ƨUR˾Hq^Eҝz=لgiZiէ?T:؊=!؊=Z>&i}Ggz|ܓ7 ߺfft[ 롥a`+!).=Nzm|D$&^!YDDˆ 3  fUhq$g~b~bo?+MQt `N!F/%?D'')ў>U+u3+3x,8/X//14~6 >y8Ƈ<j? 26ARDG%GbLAUOrKPѧQ4RC*PSnT}2UULU"Uz.UT@YĻ Z Z!6Z!nZ![a[n]k*w]^nW_PH_P_p`u?d`d`e=i+!i67kQm?$QoNZxy;b{{Rz}u9&}w/}wJ%}w}Tahse1$)lL6Mr'aBXvttYd&.s.Jf3PiUש> tu 5wDߨY\^sttZt2zttu1)-nQl_ 8aUs~ Ff,CPaʢnʢʬTƴUdodfddd59E+ei8эif+I{LK9ŶNqnLiqK<Υ·C·Fý ׳ j/4xfCet@)Ueˇ7TE$Hcw|kȥvU#ON`u8%5$TR3 e~;i~6W+DM Yb i9%hbc##%c%%d"\'-..^5kE;V==?[?`@J $@TCtIEfkNP6P:\V%.KV%/XU 5Zd~`)`Ny%awbDB8bGSqfdmgAGhI,i$lsf;x1 z*2|QR dUdKJ{jU2c(.mzPc.84,C5DzQ+^eXmm%eVnIq$5;b†5iZCU(ʴ5jOʴ5ʶls`8>^ >dg}Ԅ۔#ݤD'NkdAF5OF5kYp=+>4Nxa&DgI<IAs8 o }$hG qe0 ڤ* ڤt* ڥ dPM Ed6 E;  AcA Ac L *& 35~ 35 x< `Bv b bbR b`0 b`U d 7 gU^U i3WX kk: la lf lr qvV qvS qzF tN uw[ xq |oA | |{ 0 J  tA% tS _ . F  4  W" )7 F>    le [$ = v@ OY  x BN ҉Ԍ 4 , > >s0 <{ UV M I e8 n_F VB % / u" Y+ 0 KM  쉥Y 팤 E l~v %' 4# 1  / > C,r P. = q!  D 8 }O 9 o Ąɡ  ) ) ) */K .>_ 5T 7u ;U >m ox v" :d f 7d f  4D ." G ( s: s AA, 9v 1| 9id 05 r" 2 m,D 5 ݡ'  2 ! #-t #-t} #$ ' . 0N_ 5 AVR CU# E9Am G] I LZX L֘ Mc\+ P..t RS SF VK W Z71 [S \Ots ]$l c f)7 f) % f= io> l#< luDe m`R@ w@ xRN yr }QH  u H5 H ; G ]  n) С' $  .@D H iI <QT Ad = L ZD   zdP & %͓ J: J a t t. k" ӇMd  M# K) N>T# / ̺$o & -D%p .X; x ۷R c>1= r8p k k U)6 T>6 <P !  07 $r= J  *  5 IL * %#0 g Nq 80  xH; `V I ~ y !p~ $A %6b )Ε .d8 2; 7F >-g >. >0 >: >Mk >X >Y >w >o. >q >q ?t|+ DT2< G(C I^ Ic L Mb@ P@ QTM RV RVW S.Sv SG Sy YA Ym [ hۮ j7o m( pd sL u'` vv = BIp  Tk Tb" T TD  J n  B  ͽ  ,' ,13 S )dO )d~c T^  ;>~ .l& .B .c" . .N .q .=  P  ah a{w Pz yP= p# uh e.# x0 c hNp ɾd% ɾd'@ e ̈́^w[ >J ҂ ӏ Ӵ [! ~ >d@ % u t. R$ m  | j b#8 I Xt n 9$ ) tT ٣ aY  % :b7N Uqz E a ʜb fR fo fW    $) #  RK #$ #=5 %nr; % (I$J (N & +>e +k 0E 64 ;ɾ Fg K9 Ptl Pt R"y S,B T>? W / ^Uh cq dBb fe fe gі hQ$. iFC$ i. i% jN jӮ kGnK l" m9 n u8 u% uY_ v o+ v& v{ w d wIc w w} w}I w} |[> uG0 ' 2/ < J= bݚ Տ | ^M K }W# S R< %7p7  xN` ": U]; ɰe F h X>i MoX bn~ Y &   x^W D?  +- t5kW t5٪ ' X >' l S )2 1 Q$RQw>YK @ab5T\,\o%(igT]@pSWpS}!a$+4 &-԰'*Z*+6,/E[/E/Ex4Qt$7SI_7K=OO]S5XRu2X\[ [ ha.Ha. a%!gcLNi$(nyGvɅFy$y?.~9%/Q>-se(^n>4vg&l'"4SL&xN5^X : tZ5DBY>z55L3Ӯ`rӮ`Ӯ`!A$rZݖYmU؁v[y;4^<rF ejj ' )] 9G  G lD<-"# "#r$UD6%4q%4'z*],-i8-v0i)3s04M1c1cy2wT2<A<(RDS.F74[HCJd9)KOL$.ޤO{PdWWZ[{*c5c5cd#g33iCQlmhxpqiiv)NyCT#{`l{~a1]6$/&m&qDuD0$t{gg`n@+[9>Bͣ:X:^tN E["~gd[L_r\Arv4-1n&ky[֠U "'T/S44LnEBoP+pt2`a^.r3dNUiFermer l'onglet Close Tab CloseButton<indfini> Debugger::JSAgentWatchData0[Tableau de longueur %1][Array of length %1]Debugger::JSAgentWatchDataFausse erreur ! Fake error! FakeReplyURL invalide Invalid URL FakeReply propos de %1About %1MAC_APPLICATION_MENUMasquer %1Hide %1MAC_APPLICATION_MENU$Masquer les autres Hide OthersMAC_APPLICATION_MENUPrfrences...Preferences...MAC_APPLICATION_MENUQuitter %1Quit %1MAC_APPLICATION_MENUServicesServicesMAC_APPLICATION_MENUTout afficherShow AllMAC_APPLICATION_MENUAccessibilit AccessibilityPhonon::Communication CommunicationPhonon::JeuxGamesPhonon::MusiqueMusicPhonon::Notifications NotificationsPhonon:: VidoVideoPhonon::><html>Basculement vers le priphrique audio <b>%1</b><br/>dont le niveau de prfrence est plus lev ou qui est spcifiquement configur pour ce flux.</html>Switching to the audio playback device %1
which has higher preference or is specifically configured for this stream.Phonon::AudioOutput&<html>Basculement vers le priphrique audio <b>%1</b><br/>qui vient juste d'tre disponible et dont le niveau de prfrence est plus lev.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput<html>Le priphrique audio <b>%1</b> ne fonctionne pas.<br/>Repli sur <b>%2</b>.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput8Revenir au priphrique '%1'Revert back to device '%1'Phonon::AudioOutputAttention: Vous n'avez apparemment pas installes les plugins de base de GStreamer. Le support audio et vido est dsactiv~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::Backend Attention: Vous n'avez apparemment pas install le paquet gstreamer0.10-plugins-good. Des fonctionnalits vido ont t desactives.Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendUn codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObjectImpossible de dmarrer la lecture. Vrifiez votre installation de GStreamer et assurez-vous d'avoir install libgstreamer-plugins-base.wCannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.Phonon::Gstreamer::MediaObjectLImpossible de dcoder le mdia source.Could not decode media source.Phonon::Gstreamer::MediaObjectPImpossible de localiser le mdia source.Could not locate media source.Phonon::Gstreamer::MediaObjectImpossible d'ouvrir le priphrique audio. Celui-ci est dj en cours d'utilisation.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObjectHImpossible d'ouvrir le mdia source.Could not open media source.Phonon::Gstreamer::MediaObject0Type de source invalide.Invalid source type.Phonon::Gstreamer::MediaObjectZAssistant de script d'aide au codec manquant.&Missing codec helper script assistant.Phonon::Gstreamer::MediaObjecthchec de l'installation du plugin pour le codec : %0.Plugin codec installation failed for codec: %0Phonon::Gstreamer::MediaObject(Autorisation refuse Access denied Phonon::MMFExiste djAlready exists Phonon::MMFSortie audio Audio Output Phonon::MMFfLes composants audio ou vido n'ont pas pu tre lus-Audio or video components could not be played Phonon::MMF,Erreur de sortie audioAudio output error Phonon::MMF(Connexion impossibleCould not connect Phonon::MMFErreur GDN DRM error Phonon::MMF$Erreur du dcodeur Decoder error Phonon::MMFDconnect Disconnected Phonon::MMFUtilisIn use Phonon::MMF6Bande passante insuffisanteInsufficient bandwidth Phonon::MMFURL invalide Invalid URL Phonon::MMF$Protocole invalideInvalid protocol Phonon::MMF Erreur multicastMulticast error Phonon::MMF<Erreur de communication rseauNetwork communication error Phonon::MMF*Rseau non disponibleNetwork unavailable Phonon::MMFAucune erreurNo error Phonon::MMFIntrouvable Not found Phonon::MMFPas prt Not ready Phonon::MMFNon support Not supported Phonon::MMF(Mmoire insuffisante Out of memory Phonon::MMFDpassementOverflow Phonon::MMF$Chemin introuvablePath not found Phonon::MMF(Autorisation refusePermission denied Phonon::MMF.Erreur du serveur proxyProxy server error Phonon::MMF4Serveur proxy non supportProxy server not supported Phonon::MMFAlerte serveur Server alert Phonon::MMF,Streaming non supportStreaming not supported Phonon::MMF8Priphrique audio de sortieThe audio output device Phonon::MMFSoupassement Underflow Phonon::MMF(Erreur inconnue (%1)Unknown error (%1) Phonon::MMF,Erreur de sortie vidoVideo output error Phonon::MMF0Erreur de tlchargementDownload error Phonon::MMF::AbstractMediaPlayerFErreur lors de l'ouverture de l'URLError opening URL Phonon::MMF::AbstractMediaPlayerJErreur lors de l'ouverture du fichierError opening file Phonon::MMF::AbstractMediaPlayerTerreur lors de l'ouverture de la ressourceError opening resource Phonon::MMF::AbstractMediaPlayer~erreur lors de l'ouverture de la source : ressource non ouverte)Error opening source: resource not opened Phonon::MMF::AbstractMediaPlayer8chec de l'ouverture du clipLoading clip failed Phonon::MMF::AbstractMediaPlayer*Pas prt pour lectureNot ready to play Phonon::MMF::AbstractMediaPlayer Lecture terminePlayback complete Phonon::MMF::AbstractMediaPlayer:Le rglage du volume a chouSetting volume failed Phonon::MMF::AbstractMediaPlayerFL'obtention de la position a chouGetting position failed Phonon::MMF::AbstractVideoPlayer8L'ouverture du clip a chouOpening clip failed Phonon::MMF::AbstractVideoPlayer2La mise en pause a chou Pause failed Phonon::MMF::AbstractVideoPlayer*La recherche a chou Seek failed Phonon::MMF::AbstractVideoPlayer %1 Hz%1 HzPhonon::MMF::AudioEqualizerFL'obtention de la position a chouGetting position failedPhonon::MMF::AudioPlayer6Erreur de l'affichage vidoVideo display errorPhonon::MMF::DsaVideoPlayer ActivEnabledPhonon::MMF::EffectFactory,Ratio HF du dclin (%)Decay HF ratio (%) Phonon::MMF::EnvironmentalReverb(Temps de dclin (ms)Decay time (ms) Phonon::MMF::EnvironmentalReverbDensit (%) Density (%) Phonon::MMF::EnvironmentalReverbDiffusion (%) Diffusion (%) Phonon::MMF::EnvironmentalReverb*Dlai rflexions (ms)Reflections delay (ms) Phonon::MMF::EnvironmentalReverb,Niveau rflexions (mB)Reflections level (mB) Phonon::MMF::EnvironmentalReverb6Dlai de rverbration (ms)Reverb delay (ms) Phonon::MMF::EnvironmentalReverb8Niveau de rverbration (mB)Reverb level (mB) Phonon::MMF::EnvironmentalReverbNiveau HF pice Room HF level Phonon::MMF::EnvironmentalReverb"Niveau pice (mB)Room level (mB) Phonon::MMF::EnvironmentalReverbErreur lors de l'ouverture de la source: type de mdia non dtermin8Error opening source: media type could not be determinedPhonon::MMF::MediaObject|Erreur lors de l'ouverture de la source : ressource compresse,Error opening source: resource is compressedPhonon::MMF::MediaObjectxErreur lors de l'ouverture de la source : ressource invalide(Error opening source: resource not validPhonon::MMF::MediaObjectvErreur lors de l'ouverture de la source: type non support(Error opening source: type not supportedPhonon::MMF::MediaObjectEchec lors de l'tablissement du point d'accs Internet requisFailed to set requested IAPPhonon::MMF::MediaObjectNiveau (%) Level (%)Phonon::MMF::StereoWidening6Erreur de l'affichage vidoVideo display errorPhonon::MMF::SurfaceVideoPlayerSon coupMutedPhonon::VolumeSliderVolume: %1% Volume: %1%Phonon::VolumeSliderHLa squence %1, %2 n'est pas dfinie%1, %2 not definedQ3Accel>Squence ambigu %1 non traiteAmbiguous %1 not handledQ3AccelSupprimerDelete Q3DataTableFauxFalse Q3DataTableInsrerInsert Q3DataTableVraiTrue Q3DataTableActualiserUpdate Q3DataTable%1 Impossible de trouver le fichier. Vrifiez le chemin et le nom du fichier.+%1 File not found. Check path and filename. Q3FileDialogSuppri&mer&Delete Q3FileDialog&Non&No Q3FileDialog&OK&OK Q3FileDialog&Ouvrir&Open Q3FileDialog&Renommer&Rename Q3FileDialog&Enregistrer&Save Q3FileDialog&Non tri &Unsorted Q3FileDialog&Oui&Yes Q3FileDialogb<qt>Voulez-vous vraiment supprimer %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog*Tous les fichiers (*) All Files (*) Q3FileDialog.Tous les fichiers (*.*)All Files (*.*) Q3FileDialogAttributs Attributes Q3FileDialog,Prcdent (historique)Back Q3FileDialogAnnulerCancel Q3FileDialog6Copie ou dplace un fichierCopy or Move a File Q3FileDialog0Crer un nouveau dossierCreate New Folder Q3FileDialogDateDate Q3FileDialogSupprimer %1 Delete %1 Q3FileDialog$Affichage dtaill Detail View Q3FileDialogDossierDir Q3FileDialogDossiers Directories Q3FileDialogDossier:  Directory: Q3FileDialog ErreurError Q3FileDialogFichierFile Q3FileDialog$&Nom de fichier:  File &name: Q3FileDialog&&Type de fichier:  File &type: Q3FileDialog0Chercher dans le dossierFind Directory Q3FileDialogInaccessible Inaccessible Q3FileDialogAffichage liste List View Q3FileDialog"Chercher &dans:  Look &in: Q3FileDialogNomName Q3FileDialogNouveau dossier New Folder Q3FileDialog$Nouveau dossier %1 New Folder %1 Q3FileDialog"Nouveau dossier 1 New Folder 1 Q3FileDialog.Aller au dossier parentOne directory up Q3FileDialog OuvrirOpen Q3FileDialog OuvrirOpen  Q3FileDialog>Contenu du fichier prvisualisPreview File Contents Q3FileDialogHInformations du fichier prvisualisPreview File Info Q3FileDialogR&echargerR&eload Q3FileDialogLecture seule Read-only Q3FileDialog Lecture-criture Read-write Q3FileDialogLecture: %1Read: %1 Q3FileDialog Enregistrer sousSave As Q3FileDialog.Slectionner un dossierSelect a Directory Q3FileDialog:Afficher les fic&hiers cachsShow &hidden files Q3FileDialog TailleSize Q3FileDialogTriSort Q3FileDialogTrier par &date Sort by &Date Q3FileDialogTrier par &nom Sort by &Name Q3FileDialog"Trier par ta&ille Sort by &Size Q3FileDialogFichier spcialSpecial Q3FileDialog>Lien symbolique vers un dossierSymlink to Directory Q3FileDialog>Lien symbolique vers un fichierSymlink to File Q3FileDialogNLien symbolique vers un fichier spcialSymlink to Special Q3FileDialogTypeType Q3FileDialogcriture seule Write-only Q3FileDialogcriture: %1 Write: %1 Q3FileDialogle dossier the directory Q3FileDialogle fichierthe file Q3FileDialog$le lien symbolique the symlink Q3FileDialogBImpossible de crer le dossier %1Could not create directory %1 Q3LocalFs,Impossible d'ouvrir %1Could not open %1 Q3LocalFs@Impossible de lire le dossier %1Could not read directory %1 Q3LocalFs`Impossible de supprimer le fichier ou dossier %1%Could not remove file or directory %1 Q3LocalFs>Impossible de renommer %1 en %2Could not rename %1 to %2 Q3LocalFs,Impossible d'crire %1Could not write %1 Q3LocalFs Personnaliser... Customize... Q3MainWindowAlignerLine up Q3MainWindowNOpration interrompue par l'utilisateurOperation stopped by the userQ3NetworkProtocolAnnulerCancelQ3ProgressDialogAppliquerApply Q3TabDialogAnnulerCancel Q3TabDialogPar dfautDefaults Q3TabDialogAideHelp Q3TabDialogOKOK Q3TabDialogCop&ier&Copy Q3TextEditCo&ller&Paste Q3TextEdit&Rtablir&Redo Q3TextEdit&Annuler&Undo Q3TextEditEffacerClear Q3TextEditCo&uperCu&t Q3TextEdit"Tout slectionner Select All Q3TextEdit FermerClose Q3TitleBar Ferme la fentreCloses the window Q3TitleBar`Contient des commandes pour manipuler la fentre*Contains commands to manipulate the window Q3TitleBarAffiche le nom de la fentre et contient des contrles pour la manipulerFDisplays the name of the window and contains controls to manipulate it Q3TitleBarBAffiche la fentre en plein cranMakes the window full screen Q3TitleBarMaximiserMaximize Q3TitleBarRduireMinimize Q3TitleBar8Dplace la fentre l'cartMoves the window out of the way Q3TitleBar\Rend une fentre minimise son aspect normal&Puts a maximized window back to normal Q3TitleBar\Rend une fentre minimise son aspect normal&Puts a minimized window back to normal Q3TitleBar Restaurer en bas Restore down Q3TitleBar"Restaurer en haut Restore up Q3TitleBarSystmeSystem Q3TitleBarPlus...More... Q3ToolBar(inconnu) (unknown) Q3UrlOperatorLe protocole `%1' ne permet pas de copier ou de dplacer des fichiersIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorzLe protocole `%1' ne permet pas de crer de nouveaux dossiers;The protocol `%1' does not support creating new directories Q3UrlOperatorpLe protocole `%1' ne permet pas de recevoir des fichiers0The protocol `%1' does not support getting files Q3UrlOperatorLe protocole `%1' ne permet pas de lister les fichiers d'un dossier6The protocol `%1' does not support listing directories Q3UrlOperatorlLe protocole `%1' ne permet pas d'envoyer des fichiers0The protocol `%1' does not support putting files Q3UrlOperatorLe protocole `%1' ne permet pas de supprimer des fichiers ou des dossiers@The protocol `%1' does not support removing files or directories Q3UrlOperatorLe protocole `%1' ne permet pas de renommer des fichiers ou des dossiers@The protocol `%1' does not support renaming files or directories Q3UrlOperator@Le protocole '%1' n'est pas gr"The protocol `%1' is not supported Q3UrlOperator&Annuler&CancelQ3Wizard&Terminer&FinishQ3Wizard &Aide&HelpQ3Wizard&Suivant >&Next >Q3Wizard< &Prcdent< &BackQ3Wizard"Connexion refuseConnection refusedQAbstractSocket"Connexion expireConnection timed outQAbstractSocket Hte introuvableHost not foundQAbstractSocket:Rseau impossible rejoindreNetwork unreachableQAbstractSocketDOpration sur socket non supporte$Operation on socket is not supportedQAbstractSocket8Le socket n'est pas connectSocket is not connectedQAbstractSocket0Opration socket expireSocket operation timed outQAbstractSocket$Tout &slectionner &Select AllQAbstractSpinBox&Augmenter&Step upQAbstractSpinBox&Diminuer Step &downQAbstractSpinBox CocherCheckQAccessibleButtonAppuyerPressQAccessibleButtonDcocherUncheckQAccessibleButtonActiverActivate QApplicationRActive la fentre principale du programme#Activates the program's main window QApplicationbL'excutable '%1' requiert Qt %2 (Qt %3 prsent).,Executable '%1' requires Qt %2, found Qt %3. QApplicationJErreur: bibliothque Qt incompatibleIncompatible Qt Library Error QApplicationLTRTranslate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.QT_LAYOUT_DIRECTION QApplication&Annuler&Cancel QAxSelect&Objet COM:  COM &Object: QAxSelectOKOK QAxSelect@Slectionner un contrle ActiveXSelect ActiveX Control QAxSelect CocherCheck QCheckBoxChangerToggle QCheckBoxDcocherUncheck QCheckBoxH&Ajouter aux couleurs personnalises&Add to Custom Colors QColorDialog"Couleurs de &base &Basic colors QColorDialog0&Couleurs personnalises&Custom colors QColorDialog&Vert: &Green: QColorDialog&Rouge: &Red: QColorDialog&Saturation: &Sat: QColorDialog&Valeur: &Val: QColorDialogCanal a&lpha: A&lpha channel: QColorDialogBle&u: Bl&ue: QColorDialog&Teinte: Hu&e: QColorDialog0Slectionner une couleur Select Color QColorDialog FermerClose QComboBoxFauxFalse QComboBox OuvrirOpen QComboBoxVraiTrue QComboBox %1 : existe djQSystemSemaphore%1: already existsQCoreApplication"%1 : n'existe pasQSystemSemaphore%1: does not existQCoreApplication$%1 : ftok a chouQSystemSemaphore%1: ftok failedQCoreApplication%1 : cl videQSystemSemaphore%1: key is emptyQCoreApplicationF%1 : plus de ressources disponiblesQSystemSemaphore%1: out of resourcesQCoreApplication.%1: permission refuse%1: permission deniedQCoreApplication>%1 : impossible de crer la clQSystemSemaphore%1: unable to make keyQCoreApplication.%1 : erreur inconnue %2QSystemSemaphore%1: unknown error %2QCoreApplicationJIncapable de soumettre la transactionUnable to commit transaction QDB2DriverBIncapable d'tablir une connexionUnable to connect QDB2DriverDIncapable d'annuler la transactionUnable to rollback transaction QDB2DriverLImpossible d'activer l'auto-soumissionUnable to set autocommit QDB2DriverBImpossible d'attacher la variableUnable to bind variable QDB2Result@Impossible d'excuter la requteUnable to execute statement QDB2ResultDImpossible de rcuprer le premierUnable to fetch first QDB2ResultDImpossible de rcuprer le suivantUnable to fetch next QDB2ResultVImpossible de rcuprer l'enregistrement %1Unable to fetch record %1 QDB2ResultBImpossible de prparer la requteUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditHL'animation est une classe abstraiteAnimation is an abstract classQDeclarativeAbstractAnimationbImpossible d'animer la proprit inexistante "%1")Cannot animate non-existent property "%1"QDeclarativeAbstractAnimationlImpossible d'animer la proprit en lecture seule "%1"&Cannot animate read-only property "%1"QDeclarativeAbstractAnimationZImpossible de slectionner une dure ngativeCannot set a duration of < 0QDeclarativeAnchorAnimationL'ancre baseline ne peut pas etre combine l'usage des ancres haut, bas ou vcenter.SBaseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.QDeclarativeAnchorstImpossible d'ancrer un bord horizontal un bord vertical.3Cannot anchor a horizontal edge to a vertical edge.QDeclarativeAnchorstImpossible d'ancrer un bord vertical un bord horizontal.3Cannot anchor a vertical edge to a horizontal edge.QDeclarativeAnchorsRImpossible d'ancrer l'lment lui mme.Cannot anchor item to self.QDeclarativeAnchorsJImpossible d'ancrer un lment nul.Cannot anchor to a null item.QDeclarativeAnchorsImpossible d'ancrer un lment qui n'est pas un parent ou partage le mme parent.8Cannot anchor to an item that isn't a parent or sibling.QDeclarativeAnchorsImpossible de spcifier la fois une ancre gauche, droite et hcenter.0Cannot specify left, right, and hcenter anchors.QDeclarativeAnchorsImpossible de spcifier la fois une ancre haut, bas et vcenter.0Cannot specify top, bottom, and vcenter anchors.QDeclarativeAnchorszBoucle potentielle dans les ancres dtecte pour le centrage.*Possible anchor loop detected on centerIn.QDeclarativeAnchorsBoucle potentielle dans les ancres dtecte pour le remplissage.&Possible anchor loop detected on fill.QDeclarativeAnchorsBoucle potentielle dans les ancres dtecte pour l'ancre horizontale.3Possible anchor loop detected on horizontal anchor.QDeclarativeAnchorsBoucle potentielle dans les ancres dtecte pour l'ancre verticale.1Possible anchor loop detected on vertical anchor.QDeclarativeAnchorsNQt a t compil sans support de QMovie'Qt was built without support for QMovieQDeclarativeAnimatedImageHApplication est une classe abstraite Application is an abstract classQDeclarativeApplicationzImpossible de changer l'animation affecte un comportement.3Cannot change the animation assigned to a Behavior.QDeclarativeBehaviorrBoucle dtecte dans l'affectation pour la proprit "%1"'Binding loop detected for property "%1"QDeclarativeBindingrBoucle dtecte dans l'affectation pour la proprit "%1"'Binding loop detected for property "%1"QDeclarativeCompiledBindingsTL'alias de proprit n'a pas d'emplacementQDeclarativeCompiler@"%1" ne peut pas oprer sur "%2""%1" cannot operate on "%2"QDeclarativeCompilerz"%1.%2" n'est pas disponible dans cette version du composant.5"%1.%2" is not available due to component versioning.QDeclarativeCompilerV"%1.%2" n'est pas disponible dans %3 %4.%5.%"%1.%2" is not available in %3 %4.%5.QDeclarativeCompilerjLa configuration spcifie ne peut tre utilise ici.'Attached properties cannot be used hereQDeclarativeCompilerVUn seul lien peut tre assign des listes$Can only assign one binding to listsQDeclarativeCompilerImpossible d'assigner directement une valeur une proprit groupe4Cannot assign a value directly to a grouped propertyQDeclarativeCompilerImpossible d'assigner une valeur un signal (un script excuter est attendu)@Cannot assign a value to a signal (expecting a script to be run)QDeclarativeCompilerImpossible d'assigner plusieurs valeurs une proprit de script2Cannot assign multiple values to a script propertyQDeclarativeCompilerImpossible d'assigner plusieurs valeurs une proprit singulire4Cannot assign multiple values to a singular propertyQDeclarativeCompilerTImpossible d'assigner un objet une listeCannot assign object to listQDeclarativeCompiler\Impossible d'assigner un objet une proprit Cannot assign object to propertyQDeclarativeCompilerbImpossible d'assigner des primitives des listes!Cannot assign primitives to listsQDeclarativeCompilerxImpossible d'attacher une proprit par dfaut inexistante.Cannot assign to non-existent default propertyQDeclarativeCompilerlImpossible d'attacher une proprit inexistante "%1"+Cannot assign to non-existent property "%1"QDeclarativeCompilernImpossible de crer une spcification du composant vide+Cannot create empty component specificationQDeclarativeCompilerTImpossible de remplacer la proprit FINALCannot override FINAL propertyQDeclarativeCompilerLes lments du composant ne peuvent pas contenir des proprits autres que id;Component elements may not contain properties other than idQDeclarativeCompilerLes objets composants ne peuvent pas dclarer de nouvelles fonctions./Component objects cannot declare new functions.QDeclarativeCompilerLes objets composants ne peuvent pas dclarer de nouvelles proprits.0Component objects cannot declare new properties.QDeclarativeCompilerLes objets composants ne peuvent pas dclarer de nouveaux signaux.-Component objects cannot declare new signals.QDeclarativeCompiler<Proprit par dfaut en doubleDuplicate default propertyQDeclarativeCompiler0Nom de mthode en doubleDuplicate method nameQDeclarativeCompiler4Nom de proprit en doubleDuplicate property nameQDeclarativeCompiler.Nom de signal en doubleDuplicate signal nameQDeclarativeCompiler<Impossible de crer l'lment.Element is not creatable.QDeclarativeCompiler:Affectation de proprit videEmpty property assignmentQDeclarativeCompiler4Affectation de signal videEmpty signal assignmentQDeclarativeCompilerlid masque illgalement la proprit JavaScript globale-ID illegally masks global JavaScript propertyQDeclarativeCompilerfLes ids ne peuvent pas commencer par une majuscule)IDs cannot start with an uppercase letterQDeclarativeCompilerLes ids ne peuvent contenir que des lettres, des nombres ou des tirets bas7IDs must contain only letters, numbers, and underscoresQDeclarativeCompilerpLes ids doivent commencer par une lettre ou un tiret bas*IDs must start with a letter or underscoreQDeclarativeCompiler.Nom de mthode invalideIllegal method nameQDeclarativeCompiler2Nom de proprit invalideIllegal property nameQDeclarativeCompiler,Nom de signal invalideIllegal signal nameQDeclarativeCompilerhL'affectation du signal est incorrectement spcifie'Incorrectly specified signal assignmentQDeclarativeCompilervRfrence d'alias invalide. Impossible de trouver l'id "%1"/Invalid alias reference. Unable to find id "%1"QDeclarativeCompilerZL'affectation de l'objet attach est invalide"Invalid attached object assignmentQDeclarativeCompilertLe corps de la spcification du composant n'est pas valide$Invalid component body specificationQDeclarativeCompilerXL'id de composant spcifie n'est pas valide"Invalid component id specificationQDeclarativeCompiler id vide invalideInvalid empty IDQDeclarativeCompilerLAccs invalide une proprit groupeInvalid grouped property accessQDeclarativeCompilerAffectation de proprit invalide : "%1"est une proprit en lecture seule9Invalid property assignment: "%1" is a read-only propertyQDeclarativeCompilerlAffectation de proprit invalide : vecteur 3D attendu/Invalid property assignment: 3D vector expectedQDeclarativeCompilerfAffectation de proprit invalide : boolen attendu-Invalid property assignment: boolean expectedQDeclarativeCompilerhAffectation de proprit invalide : couleur attendue+Invalid property assignment: color expectedQDeclarativeCompilerbAffectation de proprit invalide : date attendue*Invalid property assignment: date expectedQDeclarativeCompilervAffectation de proprit invalide : date et heure attendues.Invalid property assignment: datetime expectedQDeclarativeCompiler^Affectation de proprit invalide : int attendu)Invalid property assignment: int expectedQDeclarativeCompilerdAffectation de proprit invalide : nombre attendu,Invalid property assignment: number expectedQDeclarativeCompilerbAffectation de proprit invalide : point attendu+Invalid property assignment: point expectedQDeclarativeCompilerjAffectation de proprit invalide : rectangle attendu*Invalid property assignment: rect expectedQDeclarativeCompilerdAffectation de proprit invalide : script attendu,Invalid property assignment: script expectedQDeclarativeCompilerfAffectation de proprit invalide : taille attendue*Invalid property assignment: size expectedQDeclarativeCompilerfAffectation de proprit invalide : chane attendue,Invalid property assignment: string expectedQDeclarativeCompilerdAffectation de proprit invalide : heure attendue*Invalid property assignment: time expectedQDeclarativeCompilerpAffectation de proprit invalide : numration inconnue0Invalid property assignment: unknown enumerationQDeclarativeCompilerpAffectation de proprit invalide : unsigned int attendu2Invalid property assignment: unsigned int expectedQDeclarativeCompilertAffectation de proprit invalide : type "%1" non support2Invalid property assignment: unsupported type "%1"QDeclarativeCompiler`Affectation de proprit invalide : url attendue)Invalid property assignment: url expectedQDeclarativeCompilerBImbrication de proprit invalideInvalid property nestingQDeclarativeCompiler4Type de proprit invalideInvalid property typeQDeclarativeCompilerDLa proprit utilise est invalideInvalid property useQDeclarativeCompilerNUtilisation invalide de la proprit idInvalid use of id propertyQDeclarativeCompilerJUtilisation invalide d'espace de nomsInvalid use of namespaceQDeclarativeCompilerLes noms des mthodes ne peuvent pas commencer par une majuscule3Method names cannot begin with an upper case letterQDeclarativeCompiler0Objet attach inexistantNon-existent attached objectQDeclarativeCompilerRCe n'est pas un nom de proprit attacheNot an attached property nameQDeclarativeCompilerBAffectation de proprit attendueProperty assignment expectedQDeclarativeCompiler\Une valeur a dj t attribue la proprit*Property has already been assigned a valueQDeclarativeCompilerLes noms des proprits ne peuvent pas commencer par une majuscule5Property names cannot begin with an upper case letterQDeclarativeCompilerXValeur de proprit attribue plusieurs fois!Property value set multiple timesQDeclarativeCompiler|Les noms de signaux ne peuvent pas commencer par une majuscule3Signal names cannot begin with an upper case letterQDeclarativeCompiler^Une seule affectation de proprit est attendue#Single property assignment expectedQDeclarativeCompiler<Affectation d'objet inattendueUnexpected object assignmentQDeclarativeCompiler*l'id n'est pas uniqueid is not uniqueQDeclarativeCompiler"URL vide invalideInvalid empty URLQDeclarativeComponentfcreateObject : la valeur fournie n'est pas un objet$createObject: value is not an objectQDeclarativeComponenthImposible d'assigner la proprit inexistante "%1"+Cannot assign to non-existent property "%1"QDeclarativeConnectionsrConnexions: les lments imbriqus ne sont pas autoriss'Connections: nested objects not allowedQDeclarativeConnections6Connexions: script attenduConnections: script expectedQDeclarativeConnections<Connexions: erreur de syntaxeConnections: syntax errorQDeclarativeConnections8Transaction en lecture seuleRead-only TransactionQDeclarativeEngine8la transaction SQL a choueSQL transaction failedQDeclarativeEnginenSQL : la version de la base de donnes est incompatibleSQL: database version mismatchQDeclarativeEngine\Version incompatible: %1 attendue, %2 trouve'Version mismatch: expected %1, found %2QDeclarativeEnginedexecuteSql a t appel en dehors de transaction()'executeSql called outside transaction()QDeclarativeEngine^transaction: la fonction de rappel est absentetransaction: missing callbackQDeclarativeEnginePback est une proprit criture uniqueback is a write-once propertyQDeclarativeFlipableRfront est une proprit criture uniquefront is a write-once propertyQDeclarativeFlipableB"%1" : le rpertoire n'existe pas"%1": no such directoryQDeclarativeImportDatabase@- %1 n'est pas un espace de noms- %1 is not a namespaceQDeclarativeImportDatabasej- les espaces de noms imbriqus ne sont pas autoriss- nested namespaces not allowedQDeclarativeImportDatabasepl'importation "%1" n'a pas de qmldir ni d'espace de noms*import "%1" has no qmldir and no namespaceQDeclarativeImportDatabaseJest ambigu. Trouv dans %1 et dans %2#is ambiguous. Found in %1 and in %2QDeclarativeImportDatabasevest ambigu. Trouv dans %1 dans les versions %2.%3 et %4.%54is ambiguous. Found in %1 in version %2.%3 and %4.%5QDeclarativeImportDatabase6est instanci rcursivementis instantiated recursivelyQDeclarativeImportDatabase"n'est pas un type is not a typeQDeclarativeImportDatabase rpertoire locallocal directoryQDeclarativeImportDatabaseBle module "%1" n'est pas installmodule "%1" is not installedQDeclarativeImportDatabase`le plugin "%2" du module "%1" n'a pas t trouv!module "%1" plugin "%2" not foundQDeclarativeImportDatabasefla version %2.%3 du module "%1" n'est pas installe*module "%1" version %2.%3 is not installedQDeclarativeImportDatabasepimpossible de charger le plugin pour le module "%1" : %2+plugin cannot be loaded for module "%1": %2QDeclarativeImportDatabaseKeyNavigation est disponible uniquement via les proprits attaches7KeyNavigation is only available via attached properties!QDeclarativeKeyNavigationAttachedvKeys est disponible uniquement via les proprits attaches.Keys is only available via attached propertiesQDeclarativeKeysAttachedrListElement: ne peut pas contenir des lments imbriqus+ListElement: cannot contain nested elementsQDeclarativeListModelzListElement: ne peut pas utiliser la proprit rserve "id".ListElement: cannot use reserved "id" propertyQDeclarativeListModelListElement: ne peut pas utiliser script comme valeur pour une proprit1ListElement: cannot use script for property valueQDeclarativeListModelHListModel: proprit indfinie '%1'"ListModel: undefined property '%1'QDeclarativeListModelLappend : une valeur n'est pas un objetappend: value is not an objectQDeclarativeListModel~insert : l'index %1 est hors de la plage de valeurs admissiblesinsert: index %1 out of rangeQDeclarativeListModelLinsert : une valeur n'est pas un objetinsert: value is not an objectQDeclarativeListModel\move : hors de la plage de valeurs admissiblesmove: out of rangeQDeclarativeListModel~remove : l'index %1 est hors de la plage de valeurs admissiblesremove: index %1 out of rangeQDeclarativeListModelvset : l'index %1 est hors de la plage de valeurs admissibleset: index %1 out of rangeQDeclarativeListModelFset : une valeur n'est pas un objetset: value is not an objectQDeclarativeListModelLe chargeur n'est pas compatible avec le chargement d'lments non-visuels.4Loader does not support loading non-visual elements.QDeclarativeLoaderImpossible de conserver l'aspect lors d'une transformation complexe5Unable to preserve appearance under complex transformQDeclarativeParentAnimationImpossible de conserver l'aspect lors d'une mise l'chelle non uniforme5Unable to preserve appearance under non-uniform scaleQDeclarativeParentAnimationImpossible de conserver l'aspect lors d'une mise l'chelle gale 0.Unable to preserve appearance under scale of 0QDeclarativeParentAnimationImpossible de conserver l'aspect lors d'une transformation complexe5Unable to preserve appearance under complex transformQDeclarativeParentChangeImpossible de conserver l'aspect lors d'une mise l'chelle non uniforme5Unable to preserve appearance under non-uniform scaleQDeclarativeParentChangeImpossible de conserver l'aspect lors d'une mise l'chelle gale 0.Unable to preserve appearance under scale of 0QDeclarativeParentChange2Type de paramtre attenduExpected parameter typeQDeclarativeParser2Type de proprit attenduExpected property typeQDeclarativeParser$jeton attendu '%1'Expected token `%1'QDeclarativeParser&Nom de type attenduExpected type nameQDeclarativeParserjImpossible de commencer un identifiant par un chiffre,Identifier cannot start with numeric literalQDeclarativeParser"Caractre illgalIllegal characterQDeclarativeParser>Squence d'chappement illgaleIllegal escape sequenceQDeclarativeParserVSyntaxe illgale pour un nombre exponentiel%Illegal syntax for exponential numberQDeclarativeParserNSquence d'chappement Unicode illgaleIllegal unicode escape sequenceQDeclarativeParserLqualificatif id d'importation invalideInvalid import qualifier IDQDeclarativeParser^Modificateur invalide pour le type de propritInvalid property type modifierQDeclarativeParser`Drapeau '%0' invalid pour l'expression rgulire$Invalid regular expression flag '%0'QDeclarativeParserhDclaration JavaScript en dehors de l'lment Script-JavaScript declaration outside Script elementQDeclarativeParser^L'importation de bibliothque exige une version!Library import requires a versionQDeclarativeParserdvaleur de proprit attribue plusieurs reprises!Property value set multiple timesQDeclarativeParserZLa lecture seule n'est pas encore implmenteReadonly not yet supportedQDeclarativeParser"Qt" est un nom rserv et ne peut pas tre utilis comme qualificatif1Reserved name "Qt" cannot be used as an qualifierQDeclarativeParser~Les qualificatifs d'importation de script doivent tre uniques.(Script import qualifiers must be unique.QDeclarativeParserZL'importation de script exige un qualificatif"Script import requires a qualifierQDeclarativeParser"Erreur de syntaxe Syntax errorQDeclarativeParserJCommentaire non ferm en fin de ligneUnclosed comment at end of fileQDeclarativeParser^Chane de caractres non ferme en fin de ligneUnclosed string at end of lineQDeclarativeParser`Modificateur inattendu pour le type de proprit!Unexpected property type modifierQDeclarativeParser(jeton inattendu '%1'Unexpected token `%1'QDeclarativeParservSquence antislash non termine pour l'expression rgulire2Unterminated regular expression backslash sequenceQDeclarativeParser^Classe non termine pour l'expression rgulire%Unterminated regular expression classQDeclarativeParser^lment non termin pour l'expression rgulire'Unterminated regular expression literalQDeclarativeParserHImpossible d'attribuer une dure < 0Cannot set a duration of < 0QDeclarativePauseAnimation0Impossible d'ouvrir: %1Cannot open: %1QDeclarativePixmap8Erreur de dcodage: %1: %2Error decoding: %1: %2QDeclarativePixmap`Impossible d'obtenir l'image du fournisseur: %1%Failed to get image from provider: %1QDeclarativePixmapHImpossible d'attribuer une dure < 0Cannot set a duration of < 0QDeclarativePropertyAnimationhNe peut pas assigner la proprit inexistante "%1"+Cannot assign to non-existent property "%1"QDeclarativePropertyChangesrNe peut pas assigner la proprit en lecture seule "%1"(Cannot assign to read-only property "%1"QDeclarativePropertyChangesPropertyChanges n'est pas compatible avec la cration d'objets spcifiques un tat.APropertyChanges does not support creating state-specific objects.QDeclarativePropertyChangesZImpossible d'instancier le dlgu de curseur%Could not instantiate cursor delegateQDeclarativeTextInputVImpossible de charger le dlgu de curseurCould not load cursor delegateQDeclarativeTextInput %1 %2%1 %2QDeclarativeTypeLoadertL'espace de noms %1 ne peut pas tre utilis comme un type%Namespace %1 cannot be used as a typeQDeclarativeTypeLoader>Le type %1 n'est pas disponibleType %1 unavailableQDeclarativeTypeLoaderxImpossible d'assigner un objet la proprit %1 d'un signal-Cannot assign an object to signal property %1QDeclarativeVMEzImpossible d'assigner un objet la proprit d'une interface*Cannot assign object to interface propertyQDeclarativeVMETImpossible d'assigner un objet une listeCannot assign object to listQDeclarativeVMEImpossible d'assigner un objet de type %1 sans mthode par dfaut3Cannot assign object type %1 with no default methodQDeclarativeVMEhImpossible d'assigner la valeur %1 la proprit %2%Cannot assign value %1 to property %2QDeclarativeVMEImpossible de connecter le signal/slot %1 %vs. %2 pour cause d'incompatibilit0Cannot connect mismatched signal/slot %1 %vs. %2QDeclarativeVMEImpossible d'attribuer les proprits %1 car ce dernier est nul)Cannot set properties on %1 as it is nullQDeclarativeVMEHImpossible de crer un objet attach Unable to create attached objectQDeclarativeVMENImpossible de crer un objet de type %1"Unable to create object of type %1QDeclarativeVMEXUn composant dlgu doit tre de type Item.%Delegate component must be Item type.QDeclarativeVisualDataModel\Qt a t compil sans support pour xmlpatterns,Qt was built without support for xmlpatternsQDeclarativeXmlListModelbUne requte XmlRole ne doit pas commencer par '/'(An XmlRole query must not start with '/'QDeclarativeXmlListModelRolenUne requte XmlListModel doit commencer par '/' ou "//"1An XmlListModel query must start with '/' or "//"QDeclarativeXmlRoleList QDialQDialQDial"Poigne du slider SliderHandleQDialTachymtre SpeedoMeterQDialTerminerDoneQDialog*Qu'est-ce que c'est? What's This?QDialog&Annuler&CancelQDialogButtonBox&Fermer&CloseQDialogButtonBox&Non&NoQDialogButtonBox&OK&OKQDialogButtonBoxEnregi&strer&SaveQDialogButtonBox&Oui&YesQDialogButtonBoxAbandonnerAbortQDialogButtonBoxAppliquerApplyQDialogButtonBoxAnnulerCancelQDialogButtonBox FermerCloseQDialogButtonBox.Fermer sans enregistrerClose without SavingQDialogButtonBox$Ne pas enregistrerDiscardQDialogButtonBox$Ne pas enregistrer Don't SaveQDialogButtonBoxAideHelpQDialogButtonBoxIgnorerIgnoreQDialogButtonBoxNon to&ut N&o to AllQDialogButtonBoxOKOKQDialogButtonBox OuvrirOpenQDialogButtonBoxRinitialiserResetQDialogButtonBox@Restaurer les valeurs par dfautRestore DefaultsQDialogButtonBoxRessayerRetryQDialogButtonBoxEnregistrerSaveQDialogButtonBox Tout EnregistrerSave AllQDialogButtonBoxOui &tout Yes to &AllQDialogButtonBox*Dernire Modification Date Modified QDirModelTypeMatch OS X FinderKind QDirModelNomName QDirModel TailleSize QDirModelTypeAll other platformsType QDirModel FermerClose QDockWidgetAttacherDock QDockWidgetDtacherFloat QDockWidget MoinsLessQDoubleSpinBoxPlusMoreQDoubleSpinBox&OK&OK QErrorMessage>&Afficher ce message de nouveau&Show this message again QErrorMessage,Message de dbogage: Debug Message: QErrorMessage Erreur fatale:  Fatal Error: QErrorMessage Avertissement: Warning: QErrorMessageHImpossible de crer %1 pour critureCannot create %1 for outputQFileFImpossible d'ouvrir %1 pour lectureCannot open %1 for inputQFileBImpossible d'ouvrir pour critureCannot open for outputQFileRImpossible de supprimer le fichier sourceCannot remove source fileQFile:Le fichier destination existeDestination file existsQFile6Impossible d'crire un blocFailure to write blockQFileAucun moteur de fichier disponible ou celui-ci ne supporte pas UnMapExtensionBNo file engine available or engine does not support UnMapExtensionQFile|Ne renommera pas le fichier squentiel avec la copie par blocs0Will not rename sequential file using block copyQFile%1 Dossier introuvable. Veuillez vrifier que le nom du dossier est correct.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Fichier introuvable. Veuillez vrifier que le nom du fichier est correct.A%1 File not found. Please verify the correct file name was given. QFileDialogdLe fichier %1 existe dj. Voulez-vous l'craser?-%1 already exists. Do you want to replace it? QFileDialog&Choisir&Choose QFileDialogSuppri&mer&Delete QFileDialog &Nouveau dossier &New Folder QFileDialog&Ouvrir&Open QFileDialog&Renommer&Rename QFileDialog&Enregistrer&Save QFileDialog'%1' est protg en criture. Voulez-vous quand mme le supprimer?9'%1' is write protected. Do you want to delete it anyway? QFileDialog AliasMac OS X FinderAlias QFileDialog*Tous les fichiers (*) All Files (*) QFileDialog.Tous les fichiers (*.*)All Files (*.*) QFileDialogRtes-vous sr de vouloir supprimer '%1'?!Are sure you want to delete '%1'? QFileDialog,Prcdent (historique)Back QFileDialog$Affichage dtaillChange to detail view mode QFileDialogAffichage listeChange to list view mode QFileDialogFImpossible de supprimer le dossier.Could not delete directory. QFileDialog0Crer un nouveau dossierCreate New Folder QFileDialog0Crer un nouveau dossierCreate a New Folder QFileDialog$Affichage dtaill Detail View QFileDialogDossiers Directories QFileDialogDossier:  Directory: QFileDialog UnitDrive QFileDialogFichierFile QFileDialog$&Nom de fichier:  File &name: QFileDialogFichier DossierMatch Windows Explorer File Folder QFileDialog&Fichiers de type: Files of type: QFileDialog0Chercher dans le dossierFind Directory QFileDialogDossierAll other platformsFolder QFileDialogSuccesseurForward QFileDialogPrcdentGo back QFileDialogSuivant Go forward QFileDialogDossier parentGo to the parent directory QFileDialogAffichage liste List View QFileDialogVoir dans: Look in: QFileDialog Poste de travail My Computer QFileDialogNouveau dossier New Folder QFileDialog OuvrirOpen QFileDialogDossier parentParent Directory QFileDialog(Emplacements rcents Recent Places QFileDialogSupprimerRemove QFileDialog Enregistrer sousSave As QFileDialogRaccourciAll other platformsShortcut QFileDialogAfficherShow  QFileDialog:Afficher les fic&hiers cachsShow &hidden files QFileDialogInconnuUnknown QFileDialog %1 Go%1 GBQFileSystemModel %1 Ko%1 KBQFileSystemModel %1 Mo%1 MBQFileSystemModel %1 To%1 TBQFileSystemModel%1 octet(s) %1 byte(s)QFileSystemModel%1 octets%1 bytesQFileSystemModel<b>Le nom "%1" ne peut pas tre utilis.</b><p>Essayez un autre nom avec moins de caractres ou sans ponctuation.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelOrdinateurComputerQFileSystemModel*Dernire modification Date ModifiedQFileSystemModel.Nom de fichier invalideInvalid filenameQFileSystemModelTypeMatch OS X FinderKindQFileSystemModel Poste de travail My ComputerQFileSystemModelNomNameQFileSystemModel TailleSizeQFileSystemModelTypeAll other platformsTypeQFileSystemModelTousAny QFontDatabase ArabeArabic QFontDatabaseArmnienArmenian QFontDatabaseBengaliBengali QFontDatabaseExtra-grasBlack QFontDatabaseGrasBold QFontDatabaseCyrilliqueCyrillic QFontDatabaseDemiDemi QFontDatabaseDemi-gras Demi Bold QFontDatabaseDvanagari Devanagari QFontDatabaseGorgienGeorgian QFontDatabaseGrecGreek QFontDatabaseGujaratiGujarati QFontDatabaseGurmukhiGurmukhi QFontDatabase HbreuHebrew QFontDatabaseItaliqueItalic QFontDatabaseJaponaisJapanese QFontDatabaseKannadaKannada QFontDatabase KhmerKhmer QFontDatabase CorenKorean QFontDatabaseLaoLao QFontDatabase LatinLatin QFontDatabase MaigreLight QFontDatabaseMalayalam Malayalam QFontDatabaseMyanmarMyanmar QFontDatabaseN'KoN'Ko QFontDatabase NormalNormal QFontDatabaseObliqueOblique QFontDatabase OghamOgham QFontDatabase OriyaOriya QFontDatabaseRuniqueRunic QFontDatabase"Chinois SimplifiSimplified Chinese QFontDatabaseSinhalaSinhala QFontDatabaseSymboleSymbol QFontDatabaseSyriaqueSyriac QFontDatabase TamoulTamil QFontDatabase TeluguTelugu QFontDatabase ThnaThaana QFontDatabaseThaThai QFontDatabaseTibtainTibetan QFontDatabase(Chinois TraditionnelTraditional Chinese QFontDatabaseVietnamien Vietnamese QFontDatabase&Police&Font QFontDialog&Taille&Size QFontDialog&Soulign &Underline QFontDialog EffetsEffects QFontDialog St&yle de police Font st&yle QFontDialogExempleSample QFontDialog$Choisir une police Select Font QFontDialog &Barr Stri&keout QFontDialog&&Systme d'critureWr&iting System QFontDialogFchec du changement de dossier: %1Changing directory failed: %1QFtp"Connect l'hteConnected to hostQFtp(Connect l'hte %1Connected to host %1QFtpBchec de la connexion l'hte %1Connecting to host failed: %1QFtp Connexion fermeConnection closedQFtp0Connexion donne refuse&Connection refused for data connectionQFtp:Connexion l'hte %1 refuseConnection refused to host %1QFtp@Connexion expire vers l'hte %1Connection timed out to host %1QFtp*Connexion %1 fermeConnection to %1 closedQFtpLchec de la cration d'un dossier: %1Creating directory failed: %1QFtpNchec du tlchargement du fichier: %1Downloading file failed: %1QFtpHte %1 trouv Host %1 foundQFtp&Hte %1 introuvableHost %1 not foundQFtpHte trouv Host foundQFtp@chec du listage du dossier: %1Listing directory failed: %1QFtp&chec du login: %1Login failed: %1QFtpNon connect Not connectedQFtpRchec de la suppression d'un dossier: %1Removing directory failed: %1QFtpRchec de la suppression d'un fichier: %1Removing file failed: %1QFtpErreur inconnue Unknown errorQFtp<chec du tldchargement: %1Uploading file failed: %1QFtpChangerToggle QGroupBox<Aucun nom d'hte n'a t donnNo host name given QHostInfoErreur inconnue Unknown error QHostInfo Hte introuvableHost not foundQHostInfoAgent&Nom d'hte invalideInvalid hostnameQHostInfoAgent<Aucun nom d'hte n'a t donnNo host name givenQHostInfoAgent.Adresse de type inconnuUnknown address typeQHostInfoAgentErreur inconnue Unknown errorQHostInfoAgent(Erreur inconnue (%1)Unknown error (%1)QHostInfoAgent0Authentification requiseAuthentication requiredQHttp"Connect l'hteConnected to hostQHttp(Connect l'hte %1Connected to host %1QHttp Connexion fermeConnection closedQHttp"Connexion refuseConnection refusedQHttpFConnexion refuse (ou dlai expir)!Connection refused (or timed out)QHttp*Connexion %1 fermeConnection to %1 closedQHttp$Donnes corrompuesData corruptedQHttpNErreur lors de l'criture de la rponse Error writing response to deviceQHttp0chec de la requte HTTPHTTP request failedQHttpzConnexion HTTPS requise mais le support SSL n'est pas compil:HTTPS connection requested but SSL support not compiled inQHttpHte %1 trouv Host %1 foundQHttp&Hte %1 introuvableHost %1 not foundQHttpHte trouv Host foundQHttpHL'hte requiert une authentificationHost requires authenticationQHttp,Fragment HTTP invalideInvalid HTTP chunked bodyQHttp>Entte de rponse HTTP invalideInvalid HTTP response headerQHttp,Aucun serveur spcifiNo server set to connect toQHttpLLe proxy requiert une authentificationProxy authentication requiredQHttpLLe proxy requiert une authentificationProxy requires authenticationQHttp&Requte interrompueRequest abortedQHttp>La poigne de main SSL a chouSSL handshake failedQHttpHConnexion interrompue par le serveur%Server closed connection unexpectedlyQHttpFMthode d'authentification inconnueUnknown authentication methodQHttpErreur inconnue Unknown errorQHttp4Protocole spcifi inconnuUnknown protocol specifiedQHttp8Longueur du contenu invalideWrong content lengthQHttp0Authentification requiseAuthentication requiredQHttpSocketEngineNPas de rponse HTTP de la part du proxy(Did not receive HTTP response from proxyQHttpSocketEngineTErreur de communication avec le proxy HTTP#Error communicating with HTTP proxyQHttpSocketEnginenErreur dans le reqte d'authentification reue du proxy/Error parsing authentication request from proxyQHttpSocketEnginepLa connexion au serveur proxy a t ferme prmaturment#Proxy connection closed prematurelyQHttpSocketEngine4Connexion au proxy refuseProxy connection refusedQHttpSocketEngine<Le proxy a rejet la connexionProxy denied connectionQHttpSocketEngineLLa connexion au serveur proxy a expir!Proxy server connection timed outQHttpSocketEngine2Serveur proxy introuvableProxy server not foundQHttpSocketEngineNLa transaction n'a pas pu tre dmarreCould not start transaction QIBaseDriverPErreur d'ouverture de la base de donnesError opening database QIBaseDriverJIncapable de soumettre la transactionUnable to commit transaction QIBaseDriverDIncapable d'annuler la transactionUnable to rollback transaction QIBaseDriver>Impossible d'allouer la requteCould not allocate statement QIBaseResult@Impossible de dcrire la requte"Could not describe input statement QIBaseResult@Impossible de dcrire la requteCould not describe statement QIBaseResultRImpossible de rcuperer l'lment suivantCould not fetch next item QIBaseResult@Impossible de trouver le tableauCould not find array QIBaseResultVImpossible de trouver le tableau de donnesCould not get array data QIBaseResultdImpossible d'avoir les informations sur la requteCould not get query info QIBaseResultdImpossible d'avoir les informations sur la requteCould not get statement info QIBaseResultBImpossible de prparer la requteCould not prepare statement QIBaseResultJImpossible de dmarrer la transactionCould not start transaction QIBaseResult>Impossible de fermer la requteUnable to close statement QIBaseResultJIncapable de soumettre la transactionUnable to commit transaction QIBaseResult6Impossible de crer un BLOBUnable to create BLOB QIBaseResult@Impossible d'excuter la requteUnable to execute query QIBaseResult6Impossible d'ouvrir le BLOBUnable to open BLOB QIBaseResult4Impossible de lire le BLOBUnable to read BLOB QIBaseResult6Impossible d'crire le BLOBUnable to write BLOB QIBaseResultVAucun espace disponible sur le priphriqueNo space left on device QIODeviceDAucun fichier ou dossier de ce nomNo such file or directory QIODevice(Autorisation refusePermission denied QIODeviceLTrop de fichiers ouverts simultanmentToo many open files QIODeviceErreur inconnue Unknown error QIODevice$Processeur frontalFEP QInputContext2Mthode d'entre Mac OS XMac OS X input method QInputContextPMthode de saisie processeur frontal S60S60 FEP input method QInputContext0Mthode d'entre WindowsWindows input method QInputContextXIMXIM QInputContext(Mthode d'entre XIMXIM input method QInputContext(Entrer une valeur: Enter a value: QInputDialogN'%1' n'est pas un objet ELF valide (%2)"'%1' is an invalid ELF object (%2)QLibrary6'%1' n'est pas un objet ELF'%1' is not an ELF objectQLibrary@'%1' n'est pas un objet ELF (%2)'%1' is not an ELF object (%2)QLibraryZImpossible de charger la bibliothque %1: %2Cannot load library %1: %2QLibraryfImpossible de rsoudre le symbole "%1" dans %2: %3$Cannot resolve symbol "%1" in %2: %3QLibrary^Impossible de dcharger la bibliothque %1: %2Cannot unload library %1: %2QLibrarylDonnes de vrification du plugin diffrente dans '%1')Plugin verification data mismatch in '%1'QLibrary\Le fichier '%1' n'est pas un plugin Qt valide.'The file '%1' is not a valid Qt plugin.QLibraryLe plugin '%1' utilise une bibliothque Qt incompatible. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryLe plugin '%1' utilise une bibliothque Qt incompatible. (Il est impossible de mlanger des bibliothques 'debug' et 'release'.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryLe plugin '%1' utilise une bibliothque Qt incompatible. Cl attendue "%2", reue "%3"OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryRLa bibliothque partage est introuvable.!The shared library was not found.QLibraryErreur inconnue Unknown errorQLibraryCop&ier&Copy QLineEditCo&ller&Paste QLineEdit&Rtablir&Redo QLineEdit&Annuler&Undo QLineEditCo&uperCu&t QLineEditSupprimerDelete QLineEdit"Tout slectionner Select All QLineEdit4%1: Address dj utilise%1: Address in use QLocalServer$%1: Erreur de nom%1: Name error QLocalServer.%1: Permission refuse%1: Permission denied QLocalServer.%1: Erreur inconnue %2%1: Unknown error %2 QLocalServer2%1 : Autorisation refuse%1: Access denied QLocalSocket0%1: Erreur de connexion%1: Connection error QLocalSocket,%1: Connexion refuse%1: Connection refused QLocalSocket4%1: Datagramme trop grand%1: Datagram too large QLocalSocket"%1: Nom invalide%1: Invalid name QLocalSocket*%1: Connexion ferme%1: Remote closed QLocalSocket:%1: Erreur d'accs au socket%1: Socket access error QLocalSocket@%1: L'opration socket a expir%1: Socket operation timed out QLocalSocketD%1: Erreur de ressource du socket%1: Socket resource error QLocalSocketH%1: L'opration n'est pas supporte)%1: The socket operation is not supported QLocalSocket(%1: erreur inconnue%1: Unknown error QLocalSocket.%1: Erreur inconnue %2%1: Unknown error %2 QLocalSocketJImpossible de dmarrer la transactionUnable to begin transaction QMYSQLDriverLImpossible de soumettre la transactionUnable to commit transaction QMYSQLDriverDImpossible d'tablir une connexionUnable to connect QMYSQLDriverPImpossible d'ouvrir la base de donnes 'Unable to open database ' QMYSQLDriverFImpossible d'annuler la transactionUnable to rollback transaction QMYSQLDriverVImpossible d'attacher les valeurs de sortieUnable to bind outvalues QMYSQLResult>Impossible d'attacher la valeurUnable to bind value QMYSQLResultRImpossible d'excuterla prochaine requteUnable to execute next query QMYSQLResult@Impossible d'excuter la requteUnable to execute query QMYSQLResult@Impossible d'excuter la requteUnable to execute statement QMYSQLResultFImpossible de rcuperer des donnesUnable to fetch data QMYSQLResultHImpossible de prparer l'instructionUnable to prepare statement QMYSQLResultRImpossible de rinitialiser l'instructionUnable to reset statement QMYSQLResultTImpossible de stocker le prochain rsultatUnable to store next result QMYSQLResultBImpossible de stocker le rsultatUnable to store result QMYSQLResultbImpossible de stocker les rsultats de la requte!Unable to store statement results QMYSQLResult(Sans titre) (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindow&Fermer&Close QMdiSubWindow&Dplacer&Move QMdiSubWindow&Restaurer&Restore QMdiSubWindow&Taille&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindow FermerClose QMdiSubWindowAideHelp QMdiSubWindowMa&ximiser Ma&ximize QMdiSubWindowMaximiserMaximize QMdiSubWindowMenuMenu QMdiSubWindowRd&uire Mi&nimize QMdiSubWindowRduireMinimize QMdiSubWindowRestaurerRestore QMdiSubWindow Restaurer en bas Restore Down QMdiSubWindow OmbrerShade QMdiSubWindow.&Rester au premier plan Stay on &Top QMdiSubWindowRestaurerUnshade QMdiSubWindow FermerCloseQMenuExcuterExecuteQMenu OuvrirOpenQMenuActionsActionsQMenuBar<h3> propos de Qt</h3><p>Ce programme utilise Qt version %1.</p>8

About Qt

This program uses Qt version %1.

 QMessageBox d<p>Qt est une bibliothque logicielle C++ pour le dveloppement d applications multiplateformes.</p><p>Qt fournit une portabilit source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d Unix. Qt est galement disponible pour appareils intgrs comme Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence diffrentes conues pour s adapter aux besoins d utilisateurs varis.</p><p>Qt concde sous notre contrat de licence commerciale est destine au dveloppement de logiciels propritaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concde sous la LGPL GNU version 2.1 est destine au dveloppement d applications Qt (propritaires ou libres) condition que vous vous conformiez aux conditions gnrales de la LGPL GNU version 2.1.</p><p>Qt concde sous la licence publique gnrale GNU version 3.0 est destine au dveloppement d applications Qt lorsque vous souhaitez utiliser ces applications avec d autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http: //qt.digia.com/product/licensing">qt.digia.com/product/licensing</a> pour un aperu des concessions de licences Qt.</p><p>Copyright (C) 2012 Digia Plc et/ou ses filiales.</p><p>Qt est un produit Digia. Voir <a href="http: //qt.digia.com/">qt.digia.com</a> pour de plus amples informations.</p>

Qt is a C++ toolkit for cross-platform application development.

Qt provides single-source portability across MS Windows, Mac OS X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.

Qt is available under three different licensing options designed to accommodate the needs of our various users.

Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.

Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.

Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.

Please see qt.digia.com/product/licensing for an overview of Qt licensing.

Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).

Qt is a Digia product. See qt.digia.com for more information.

 QMessageBox propos de QtAbout Qt QMessageBoxAideHelp QMessageBox*Cacher les dtails...Hide Details... QMessageBoxOKOK QMessageBox,Montrer les dtails...Show Details... QMessageBoxSlectionner IM Select IMQMultiInputContextDSlectionneur de mthode de saisieMultiple input method switcherQMultiInputContextPluginSlectionneur de mthode de saisie qui utilise le menu contextuel des widgets de texteMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginXUn autre socket coute dj sur le mme port4Another socket is already listening on the same portQNativeSocketEngineTentative d'utiliser un socket IPv6 sur une plateforme qui ne supporte pas IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine"Connexion refuseConnection refusedQNativeSocketEngine"Connexion expireConnection timed outQNativeSocketEngine^Le datagramme tait trop grand pour tre envoyDatagram was too large to sendQNativeSocketEngine"Hte inaccessibleHost unreachableQNativeSocketEngine<Descripteur de socket invalideInvalid socket descriptorQNativeSocketEngineErreur rseau Network errorQNativeSocketEngine6L'opration rseau a expirNetwork operation timed outQNativeSocketEngine:Rseau impossible rejoindreNetwork unreachableQNativeSocketEngine0Operation sur non-socketOperation on non-socketQNativeSocketEngine(Manque de ressourcesOut of resourcesQNativeSocketEngine(Autorisation refusePermission deniedQNativeSocketEngine"Protocol non grProtocol type not supportedQNativeSocketEngine<L'adresse n'est pas disponibleThe address is not availableQNativeSocketEngine,L'adresse est protgeThe address is protectedQNativeSocketEngine@L'adresse lie est dj en usage#The bound address is already in useQNativeSocketEnginedLe type de proxy est invalide pour cette opration,The proxy type is invalid for this operationQNativeSocketEngineFL'hte distant a ferm la connexion%The remote host closed the connectionQNativeSocketEngineXImpossible d'initialiser le socket broadcast%Unable to initialize broadcast socketQNativeSocketEngineZImpossible d'initialiser le socket asynchrone(Unable to initialize non-blocking socketQNativeSocketEngineBImpossible de recevoir un messageUnable to receive a messageQNativeSocketEngine>Impossible d'envoyer un messageUnable to send a messageQNativeSocketEngine&Impossible d'crireUnable to writeQNativeSocketEngineErreur inconnue Unknown errorQNativeSocketEngine<Opration socket non supporteUnsupported socket operationQNativeSocketEngine@Erreur lors de l'ouverture de %1Error opening %1QNetworkAccessCacheBackend"URI invalide: %1Invalid URI: %1QNetworkAccessDataBackend|L'hte distant a ferm sa connexion de faon prmature sur %13Remote host closed the connection prematurely on %1QNetworkAccessDebugPipeBackend8Erreur de socket sur %1: %2Socket error on %1: %2QNetworkAccessDebugPipeBackendLErreur lors de l'criture dans %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackendbImpossible d'ouvrir %1: le chemin est un dossier#Cannot open %1: Path is a directoryQNetworkAccessFileBackendJErreur lors de l'ouverture de %1: %2Error opening %1: %2QNetworkAccessFileBackend8Erreur de lecture de %1: %2Read error reading from %1: %2QNetworkAccessFileBackendRRequte d'ouverture de fichier distant %1%Request for opening non-local file %1QNetworkAccessFileBackend8Erreur d'criture de %1: %2Write error writing to %1: %2QNetworkAccessFileBackendbImpossible d'ouvrir %1: le chemin est un dossierCannot open %1: is a directoryQNetworkAccessFtpBackendPErreur lors du tlchargement de %1: %2Error while downloading %1: %2QNetworkAccessFtpBackendBErreur lors de l'envoi de %1: %2Error while uploading %1: %2QNetworkAccessFtpBackenddConnexion %1 a chou: authentification requise0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackend$Aucun proxy trouvNo suitable proxy foundQNetworkAccessFtpBackend$Aucun proxy trouvNo suitable proxy foundQNetworkAccessHttpBackend@L'accs au rseau est dsactiv.Network access is disabled.QNetworkAccessManager~Erreur lors du tlchargement de %1 - le serveur a rpondu: %2)Error downloading %1 - server replied: %2 QNetworkReply2Erreur de session rseau.Network session error. QNetworkReply:Le protocole "%1" est inconnuProtocol "%1" is unknown QNetworkReply2Erreur rseau temporaire.Temporary network failure. QNetworkReply"Opration annuleOperation canceledQNetworkReplyImpl.Configuration invalide.Invalid configuration.QNetworkSession"Erreur de roaming Roaming errorQNetworkSessionPrivateImplTLe roaming a t annul ou est impossible.'Roaming was aborted or is not possible.QNetworkSessionPrivateImpl^Session annule par l'utilisateur ou le systme!Session aborted by user or systemQNetworkSessionPrivateImpllL'opration requise n'est pas suporte par le systme.7The requested operation is not supported by the system.QNetworkSessionPrivateImplrla session a t annule par l'utilisateur ou le systme..The session was aborted by the user or system.QNetworkSessionPrivateImplbLa configuration spcifie ne peut tre utilise.+The specified configuration cannot be used.QNetworkSessionPrivateImplErreur inconnueUnidentified ErrorQNetworkSessionPrivateImpl6Erreur de session inconnue.Unknown session error.QNetworkSessionPrivateImplJImpossible de dmarrer la transactionUnable to begin transaction QOCIDriverNImpossible d'enregistrer la transactionUnable to commit transaction QOCIDriver2L'initialisation a chou QOCIDriverUnable to initialize QOCIDriver>Impossible d'ouvrir une sessionUnable to logon QOCIDriverFImpossible d'annuler la transactionUnable to rollback transaction QOCIDriver>Impossible d'allouer la requteUnable to alloc statement QOCIResultrImpossible d'attacher la colonne pour une execution batch'Unable to bind column for batch execute QOCIResult>Impossible d'attacher la valeurUnable to bind value QOCIResultRImpossible d'excuter l'instruction batch!Unable to execute batch statement QOCIResult@Impossible d'exctuer la requteUnable to execute statement QOCIResultTImpossible d'obtenir le type de la requteUnable to get statement type QOCIResult>Impossible de passer au suivantUnable to goto next QOCIResultBImpossible de prparer la requteUnable to prepare statement QOCIResultJIncapable de soumettre la transactionUnable to commit transaction QODBCDriverBIncapable d'tablir une connexionUnable to connect QODBCDriverImpossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalits ncessairesEUnable to connect - Driver doesn't support all functionality required QODBCDriverJImpossible de dsactiver l'autocommitUnable to disable autocommit QODBCDriverBImpossible d'activer l'autocommitUnable to enable autocommit QODBCDriverDIncapable d'annuler la transactionUnable to rollback transaction QODBCDriver"QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requte. Veuillez vrifier la configuration de votre pilote ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResultBImpossible d'attacher la variableUnable to bind variable QODBCResult@Impossible d'exctuer la requteUnable to execute statement QODBCResult.Impossible de rcuprerUnable to fetch QODBCResultDImpossible de rcuprer le premierUnable to fetch first QODBCResultDImpossible de rcuprer le dernierUnable to fetch last QODBCResultDImpossible de rcuprer le suivantUnable to fetch next QODBCResultHImpossible de rcuprer le prcedentUnable to fetch previous QODBCResultBImpossible de prparer la requteUnable to prepare statement QODBCResult"%1" est un doublon d'un nom de role existant et sera dsactiv.:"%1" duplicates a previous role name and will be disabled.QObject DbutHomeQObject Hte introuvableHost not foundQObject2Serveur de son PulseAudioPulseAudio Sound ServerQObject.Requte invalide : "%1"invalid query: "%1"QObjectNomNameQPPDOptionsModel ValeurValueQPPDOptionsModelJImpossible de dmarrer la transactionCould not begin transaction QPSQLDriverLImpossible de soumettre la transactionCould not commit transaction QPSQLDriverFImpossible d'annuler la transactionCould not rollback transaction QPSQLDriverDImpossible d'tablir une connexionUnable to connect QPSQLDriver0Impossible de s'inscrireUnable to subscribe QPSQLDriver8Impossible de se dsinscrireUnable to unsubscribe QPSQLDriver<Impossible de crer la requteUnable to create query QPSQLResultBImpossible de prparer la requteUnable to prepare statement QPSQLResult Centimtres (cm)Centimeters (cm)QPageSetupWidgetFormulaireFormQPageSetupWidgetHauteur: Height:QPageSetupWidgetPouces (in) Inches (in)QPageSetupWidgetPaysage LandscapeQPageSetupWidget MargesMarginsQPageSetupWidget Millimtres (mm)Millimeters (mm)QPageSetupWidgetOrientation OrientationQPageSetupWidgetDimensions:  Page size:QPageSetupWidget PapierPaperQPageSetupWidget&Source du papier:  Paper source:QPageSetupWidgetPoints (pts) Points (pt)QPageSetupWidgetPortraitPortraitQPageSetupWidgetPaysage inversReverse landscapeQPageSetupWidget Portrait inversReverse portraitQPageSetupWidgetLargeur: Width:QPageSetupWidgetmarge basse bottom marginQPageSetupWidgetmarge gauche left marginQPageSetupWidgetmarge droite right marginQPageSetupWidgetmarge haute top marginQPageSetupWidget:Le plugin n'a pas t charg.The plugin was not loaded. QPluginLoaderErreur inconnue Unknown error QPluginLoaderD%1 existe. Voulez-vous l'craser?/%1 already exists. Do you want to overwrite it? QPrintDialog%1 est un dossier. Veuillez choisir un nom de fichier diffrent.7%1 is a directory. Please choose a different file name. QPrintDialog &Options << QPrintDialog &Options >> QPrintDialogIm&primer&Print QPrintDialog@<qt>voulez-vous l'craser?</qt>%Do you want to overwrite it? QPrintDialogA0 QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialogA1 QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialogA2 QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialogA3 QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogA4 QPrintDialog"A4 (210 x 297 mm)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5 QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialogA6 QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialogA7 QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8 QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9 QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialogB0 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialogB1 QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialogB10 QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialogB2 QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialogB3 QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialogB4 QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogB5 QPrintDialog"B5 (176 x 250 mm)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6 QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialogB7 QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8 QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9 QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialogC5E QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialogPersonnalisCustom QPrintDialogDLE QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialog Executive QPrintDialogRExecutive (7,5 x 10 pouces, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogImpossible d'crire dans le fichier %1. Veuillez choisir un nom de fichier diffrent.=File %1 is not writable. Please choose a different file name. QPrintDialog"Le fichier existe File exists QPrintDialogFolio QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialogLedger QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogLegal QPrintDialogJLegal (8.5 x 14 pouces, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogLetter QPrintDialogLLetter (8,5 x 11 pouces, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogFichier local Local file QPrintDialogOKOK QPrintDialogImprimerPrint QPrintDialog6Imprimer dans un fichier...Print To File ... QPrintDialogImprimer tout Print all QPrintDialog2Imprimer la page courantePrint current page QPrintDialog*Imprimer la slection Print range QPrintDialog*Imprimer la slectionPrint selection QPrintDialog<Imprimer dans un fichier (PDF)Print to File (PDF) QPrintDialogJImprimer dans un fichier (PostScript)Print to File (Postscript) QPrintDialogTabloid QPrintDialog.Tablode (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialog|La valeur 'de' ne peut pas tre plus grande que la valeur ''.7The 'From' value cannot be greater than the 'To' value. QPrintDialogUS Common #10 Envelope QPrintDialogJUS Common #10 Envelope (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog,Ecriture du fichier %1 Write %1 file QPrintDialog"connect en locallocally connected QPrintDialoginconnuunknown QPrintDialog%1%%1%QPrintPreviewDialog FermerCloseQPrintPreviewDialog"Exporter vers PDF Export to PDFQPrintPreviewDialog0Exporter vers PostScriptExport to PostScriptQPrintPreviewDialogPremire page First pageQPrintPreviewDialogAjuster la pageFit pageQPrintPreviewDialog$Ajuster la largeur Fit widthQPrintPreviewDialogPaysage LandscapeQPrintPreviewDialogDernire page Last pageQPrintPreviewDialogPage suivante Next pageQPrintPreviewDialogMise en page Page SetupQPrintPreviewDialogMise en page Page setupQPrintPreviewDialogPortraitPortraitQPrintPreviewDialogPage prcdente Previous pageQPrintPreviewDialogImprimerPrintQPrintPreviewDialog.Aperu avant impression Print PreviewQPrintPreviewDialog&Afficher deux pagesShow facing pagesQPrintPreviewDialogLAfficher un aperu de toutes les pagesShow overview of all pagesQPrintPreviewDialog.Afficher une seule pageShow single pageQPrintPreviewDialogZoom avantZoom inQPrintPreviewDialogZoom arrireZoom outQPrintPreviewDialog AvancAdvancedQPrintPropertiesWidgetFormulaireFormQPrintPropertiesWidgetPageQPrintPropertiesWidgetAssemblerCollateQPrintSettingsOutputCouleurColorQPrintSettingsOutputMode de couleur Color ModeQPrintSettingsOutput CopiesCopiesQPrintSettingsOutputCopies : Copies:QPrintSettingsOutputPage courante Current PageQPrintSettingsOutput(Impression en duplexDuplex PrintingQPrintSettingsOutputFormulaireFormQPrintSettingsOutputDgrad de gris GrayscaleQPrintSettingsOutputCt long Long sideQPrintSettingsOutput AucunNoneQPrintSettingsOutputOptionsOptionsQPrintSettingsOutput(Paramtres de sortieOutput SettingsQPrintSettingsOutput Pages Pages fromQPrintSettingsOutputImprimer tout Print allQPrintSettingsOutput*Imprimer la slection Print rangeQPrintSettingsOutputInverseReverseQPrintSettingsOutputSlection SelectionQPrintSettingsOutputCt court Short sideQPrintSettingsOutputtoQPrintSettingsOutput&Nom: &Name: QPrintWidget... QPrintWidgetFormulaireForm QPrintWidgetEmplacement:  Location: QPrintWidget*&Fichier de sortie:  Output &file: QPrintWidgetP&roprits P&roperties QPrintWidget PrvisualisationPreview QPrintWidgetImprimantePrinter QPrintWidgetType : Type: QPrintWidgetlImpossible d'ouvrir la redirection d'entre en lecture,Could not open input redirection for readingQProcesstImpossible d'ouvrir la redirection de sortie pour criture-Could not open output redirection for writingQProcess<Erreur de lecture du processusError reading from processQProcessFErreur d"criture vers le processusError writing to processQProcess,Aucun programme dfiniNo program definedQProcess*Le processus plantProcess crashedQProcessNLe dmarrage du processus a chou: %1Process failed to start: %1QProcess>Operation de processus a expirProcess operation timed outQProcess<Erreur de ressouce (fork): %1!Resource error (fork failure): %1QProcessAnnulerCancelQProgressDialog OuvrirOpen QPushButton CocherCheck QRadioButtonRsyntaxe invalide pour classe de caractrebad char class syntaxQRegExp>syntaxe invalide pour lookaheadbad lookahead syntaxQRegExp@syntaxe invalide pour rptitionbad repetition syntaxQRegExp"option dsactivedisabled feature usedQRegExp$catgorie invalideinvalid categoryQRegExp&intervalle invalideinvalid intervalQRegExp,valeur octale invalideinvalid octal valueQRegExp0rencontr limite internemet internal limitQRegExp4dlmiteur gauche manquantmissing left delimQRegExp>aucune erreur ne s'est produiteno error occurredQRegExpfin impromptueunexpected endQRegExp`Erreur lors de l'ouverture de la base de donnesError opening databaseQSQLite2DriverJImpossible de dmarrer la transactionUnable to begin transactionQSQLite2DriverLImpossible de soumettre la transactionUnable to commit transactionQSQLite2DriverHImpossible de rpter la transactionUnable to rollback transactionQSQLite2Driver@Impossible d'excuter la requteUnable to execute statementQSQLite2ResultJImpossible de rcuprer les rsultatsUnable to fetch resultsQSQLite2ResultbErreur lors de la fermeture de la base de donnesError closing database QSQLiteDriver`Erreur lors de l'ouverture de la base de donnesError opening database QSQLiteDriverJImpossible de dmarrer la transactionUnable to begin transaction QSQLiteDriverJIncapable de soumettre la transactionUnable to commit transaction QSQLiteDriverFImpossible d'annuler la transactionUnable to rollback transaction QSQLiteDriverPas de requteNo query QSQLiteResult<Nombre de paramtres incorrectParameter count mismatch QSQLiteResultHImpossible d'attacher les paramtresUnable to bind parameters QSQLiteResult@Impossible d'excuter la requteUnable to execute statement QSQLiteResultBImpossible de rcuprer la rangeUnable to fetch row QSQLiteResultLImpossible de rinitialiser la requteUnable to reset statement QSQLiteResultCondition ConditionQScriptBreakpointsModelNombre de coups Hit-countQScriptBreakpointsModelIdentifiantIDQScriptBreakpointsModel Nombre d'ignors Ignore-countQScriptBreakpointsModelLieuLocationQScriptBreakpointsModelUn seul coup Single-shotQScriptBreakpointsModelSupprimerDeleteQScriptBreakpointsWidget CrerNewQScriptBreakpointsWidget6&Chercher dans le script...&Find in Script...QScriptDebugger$Effacer la console Clear ConsoleQScriptDebuggerBEffacer les rsultats du dbogageClear Debug OutputQScriptDebugger8Effacer le journal d'erreursClear Error LogQScriptDebuggerContinuerContinueQScriptDebugger Ctrl+FCtrl+FQScriptDebuggerCtrl+F10Ctrl+F10QScriptDebugger Ctrl+GCtrl+GQScriptDebuggerDboguerDebugQScriptDebuggerF10F10QScriptDebuggerF11F11QScriptDebuggerF3F3QScriptDebuggerF5F5QScriptDebuggerF9F9QScriptDebugger"Rsultat &suivant Find &NextQScriptDebugger&Chercher &prcdentFind &PreviousQScriptDebugger Aller la ligne Go to LineQScriptDebuggerInterrompre InterruptQScriptDebuggerLigne: Line:QScriptDebugger&Excuter au curseur Run to CursorQScriptDebugger4Excuter au nouveau scriptRun to New ScriptQScriptDebuggerShift+F11 Shift+F11QScriptDebuggerShift+F3Shift+F3QScriptDebuggerShift+F5Shift+F5QScriptDebugger$Pas pas dtaill Step IntoQScriptDebugger"Pas pas sortantStep OutQScriptDebugger&Pas pas principal Step OverQScriptDebugger2Basculer le point d'arrtToggle BreakpointQScriptDebugger<img src=": /qt/scripttools/debugging/images/wrap.png">&nbsp;La recherche est revenue au dbutJ Search wrappedQScriptDebuggerCodeFinderWidget&Sensible la casseCase SensitiveQScriptDebuggerCodeFinderWidget FermerCloseQScriptDebuggerCodeFinderWidgetSuivantNextQScriptDebuggerCodeFinderWidgetPrcdentPreviousQScriptDebuggerCodeFinderWidgetMots complets Whole wordsQScriptDebuggerCodeFinderWidgetNomNameQScriptDebuggerLocalsModel ValeurValueQScriptDebuggerLocalsModel NiveauLevelQScriptDebuggerStackModelEmplacementLocationQScriptDebuggerStackModelNomNameQScriptDebuggerStackModel:Condition du point d'arrt: Breakpoint Condition: QScriptEdit6Dsactiver le point d'arrtDisable Breakpoint QScriptEdit0Activer le point d'arrtEnable Breakpoint QScriptEdit2Basculer le point d'arrtToggle Breakpoint QScriptEditPoints d'arrt BreakpointsQScriptEngineDebuggerConsoleConsoleQScriptEngineDebugger*Rsultats du dbogage Debug OutputQScriptEngineDebugger"Journal d'erreurs Error LogQScriptEngineDebuggerScripts chargsLoaded ScriptsQScriptEngineDebugger LocauxLocalsQScriptEngineDebugger,Dbogueur de script QtQt Script DebuggerQScriptEngineDebuggerChercherSearchQScriptEngineDebuggerPileStackQScriptEngineDebuggerAffichageViewQScriptEngineDebugger FermerCloseQScriptNewBreakpointWidget En basBottom QScrollBarBord gauche Left edge QScrollBarAligner en-bas Line down QScrollBarAlignerLine up QScrollBarPage suivante Page down QScrollBarPage prcdente Page left QScrollBarPage suivante Page right QScrollBarPage prcdentePage up QScrollBarPositionPosition QScrollBarBord droit Right edge QScrollBar&Dfiler vers le bas Scroll down QScrollBar"Dfiler jusqu'ici Scroll here QScrollBar,Dfiler vers la gauche Scroll left QScrollBar,Dfiler vers la droite Scroll right QScrollBar(Dfiler vers le haut Scroll up QScrollBarEn hautTop QScrollBarR%1: le fichier de cls UNIX n'existe pas%1: UNIX key file doesn't exist QSharedMemory %1: existe dj%1: already exists QSharedMemoryR%1: taille de cration est infrieur 0%1: create size is less then 0 QSharedMemory"%1: n'existe pas%1: doesn't exist QSharedMemory"%1: n'existe pas%1: doesn't exists QSharedMemory$%1: ftok a chou%1: ftok failed QSharedMemory(%1: taille invalide%1: invalid size QSharedMemory%1: cl vide%1: key is empty QSharedMemory %1: non attach%1: not attached QSharedMemoryF%1: plus de ressources disponibles%1: out of resources QSharedMemory.%1: permission refuse%1: permission denied QSharedMemoryD%1: la requte de taille a chou%1: size query failed QSharedMemoryj%1: le systme impose des restrictions sur la taille$%1: system-imposed size restrictions QSharedMemory<%1: impossible de vrrouiller%1: unable to lock QSharedMemory>%1: impossible de crer la cl%1: unable to make key QSharedMemoryV%1: impossible d'affecter la cl au verrou%1: unable to set key on lock QSharedMemory@%1: impossible de dverrouiller%1: unable to unlock QSharedMemory.%1: erreur inconnue %2%1: unknown error %2 QSharedMemory++ QShortcutAjouter favori Add Favorite QShortcut(Rgler la luminositAdjust Brightness QShortcutAltAlt QShortcut$Application gaucheApplication Left QShortcut$Application droiteApplication Right QShortcut,Audio rpter la pisteAudio Cycle Track QShortcutAudio avant Audio Forward QShortcut.Audio lecture alatoireAudio Random Play QShortcutAudio rpter Audio Repeat QShortcutAudio arrire Audio Rewind QShortcut AbsentAway QShortcut,Prcdent (historique)Back QShortcutRetour avant Back Forward QShortcutEffacement Backspace QShortcutTab arrBacktab QShortcutGraves fort Bass Boost QShortcutGraves bas Bass Down QShortcutGraves hautBass Up QShortcutBatterieBattery QShortcutBluetooth Bluetooth QShortcut LivreBook QShortcutNavigateurBrowser QShortcutCDCD QShortcutCalculatrice Calculator QShortcutAppelerCall QShortcut(Focus appareil photo Camera Focus QShortcut4Dclencheur appareil photoCamera Shutter QShortcutVerr Maj Caps Lock QShortcutVerr majCapsLock QShortcutEffacerClear QShortcut Effacer la prise Clear Grab QShortcut FermerClose QShortcut Code input QShortcutCommunaut Community QShortcutContexte1Context1 QShortcutContexte2Context2 QShortcutContexte3Context3 QShortcutContexte4Context4 QShortcut CopierCopy QShortcutCtrlCtrl QShortcut CouperCut QShortcutDOSDOS QShortcut SupprDel QShortcutSupprimerDelete QShortcutAffichageDisplay QShortcutDocuments Documents QShortcutBasDown QShortcut Eisu Shift QShortcut Eisu toggle QShortcutjecterEject QShortcutFinEnd QShortcut EntreEnter QShortcut chapEsc QShortcutchapementEscape QShortcutF%1F%1 QShortcutPrfrs Favorites QShortcutFinancesFinance QShortcutRetournerFlip QShortcut.Successeur (historique)Forward QShortcutJeuGame QShortcut AllerGo QShortcutHangul QShortcut Hangul Banja QShortcutHangul Fin Hangul End QShortcut Hangul Hanja QShortcut Hangul Jamo QShortcut Hangul Jeonja QShortcutHangul PostHanja QShortcutHangul PreHanja QShortcut Hangul Romaja QShortcutHangul Special QShortcutHangul dbut Hangul Start QShortcutRaccrocherHangup QShortcutHankaku QShortcutAideHelp QShortcutHenkan QShortcutHiberner Hibernate QShortcutHiragana QShortcutHiragana Katakana QShortcutHistoriqueHistory QShortcut DbutHome QShortcut"Bureau domicile Home Office QShortcutPage d'accueil Home Page QShortcutLiens chauds Hot Links QShortcut InserIns QShortcutInsrerInsert QShortcut Kana Lock QShortcut Kana Shift QShortcutKanji QShortcutKatakana QShortcut@Baisser la luminosit du clavierKeyboard Brightness Down QShortcutDAugmenter la luminosit du clavierKeyboard Brightness Up QShortcut2Avec/sans lumire clavierKeyboard Light On/Off QShortcutMenu du clavier Keyboard Menu QShortcutBisLast Number Redial QShortcutLancer (0) Launch (0) QShortcutLancer (1) Launch (1) QShortcutLancer (2) Launch (2) QShortcutLancer (3) Launch (3) QShortcutLancer (4) Launch (4) QShortcutLancer (5) Launch (5) QShortcutLancer (6) Launch (6) QShortcutLancer (7) Launch (7) QShortcutLancer (8) Launch (8) QShortcutLancer (9) Launch (9) QShortcutLancer (A) Launch (A) QShortcutLancer (B) Launch (B) QShortcutLancer (C) Launch (C) QShortcutLancer (D) Launch (D) QShortcutLancer (E) Launch (E) QShortcutLancer (F) Launch (F) QShortcutLancer courrier Launch Mail QShortcutLancer mdia Launch Media QShortcut GaucheLeft QShortcutAmpoule LightBulb QShortcut$Fermer une sessionLogoff QShortcut*Faire suivre l'e-mail Mail Forward QShortcut MarchMarket QShortcutMassyo QShortcutMdia suivant Media Next QShortcutMdia pause Media Pause QShortcutMdia dmarrer Media Play QShortcutMdia prcdentMedia Previous QShortcut"Mdia enregistrer Media Record QShortcutMdia arrt Media Stop QShortcutRunionMeeting QShortcutMenuMenu QShortcutMenu PBMenu PB QShortcut,Messagerie instantane Messenger QShortcutMtaMeta QShortcutBBaisser la luminosit du moniteurMonitor Brightness Down QShortcutFAugmenter la luminosit du moniteurMonitor Brightness Up QShortcutMuhenkan QShortcut"Candidat multipleMultiple Candidate QShortcutMusiqueMusic QShortcutMes sitesMy Sites QShortcutActualitsNews QShortcutNonNo QShortcutVerr numNum Lock QShortcutVerr numNumLock QShortcut,Verrouillage numrique Number Lock QShortcutOuvrir URLOpen URL QShortcut OptionOption QShortcutPage bas Page Down QShortcutPage hautPage Up QShortcut CollerPaste QShortcut PausePause QShortcutPage suivPgDown QShortcutPage prcPgUp QShortcutTlphonePhone QShortcut ImagesPictures QShortcut*Couper l'alimentation Power Off QShortcut$Candidat prcdentPrevious Candidate QShortcutImprimerPrint QShortcutCapture d'cran Print Screen QShortcutRafrachirRefresh QShortcutRechargerReload QShortcutRpondreReply QShortcut RetourReturn QShortcut DroiteRight QShortcutRomaji QShortcut0Faire tourner la fentreRotate Windows QShortcutRotation KB Rotation KB QShortcutRotation PB Rotation PB QShortcutEnregistrerSave QShortcut&conomiseur d'cran Screensaver QShortcut Arrt dfilement Scroll Lock QShortcutArrt dfil ScrollLock QShortcutRechercheSearch QShortcutSlectionnerSelect QShortcutEnvoyerSend QShortcutMajShift QShortcutMagasinShop QShortcut DormirSleep QShortcut EspaceSpace QShortcut2Correcteur orthographique Spellchecker QShortcut Partager l'cran Split Screen QShortcut"Feuille de calcul Spreadsheet QShortcutAttenteStandby QShortcutArrterStop QShortcutSous-titreSubtitle QShortcutSupporterSupport QShortcutSuspendreSuspend QShortcutSystSysReq QShortcutSystmeSystem Request QShortcutTabTab QShortcut"Panneau de tches Task Panel QShortcutTerminalTerminal QShortcut HeureTime QShortcut(Dcrocher/RaccrocherToggle Call/Hangup QShortcut&Mdia Lecture/PauseToggle Media Play/Pause QShortcut OutilsTools QShortcutHaut du menuTop Menu QShortcutTouroku QShortcutVoyagerTravel QShortcutAigus bas Treble Down QShortcutAigus haut Treble Up QShortcut Bande ultralargeUltra Wide Band QShortcutHautUp QShortcut VidoVideo QShortcutAffichageView QShortcutCommande vocale Voice Dial QShortcutVolume bas Volume Down QShortcutVolume muet Volume Mute QShortcutVolume haut  Volume Up QShortcutWWWWWW QShortcutRveillerWake Up QShortcutWebcamraWebCam QShortcutSans filWireless QShortcut&Traitement de texteWord Processor QShortcutXFerXFer QShortcutOuiYes QShortcutZenkaku QShortcutZenkaku Hankaku QShortcutAgrandirZoom In QShortcutRtrcirZoom Out QShortcut iTouchiTouch QShortcutPage suivante Page downQSliderPage prcdente Page leftQSliderPage suivante Page rightQSliderPage prcdentePage upQSliderPositionPositionQSlider6Type d'adresse non supportAddress type not supportedQSocks5SocketEnginePConnexion refuse par le serveur SOCKSv5(Connection not allowed by SOCKSv5 serverQSocks5SocketEngineNconnexion au proxy ferme prmaturment&Connection to proxy closed prematurelyQSocks5SocketEngine4Connexion au proxy refuseConnection to proxy refusedQSocks5SocketEngine4Connexion au proxy expireConnection to proxy timed outQSocks5SocketEngineDErreur gnrale du serveur SOCKSv5General SOCKSv5 server failureQSocks5SocketEngine6L'opration rseau a expirNetwork operation timed outQSocks5SocketEngineBL'authentification proxy a chouProxy authentication failedQSocks5SocketEngineLL'authentification proxy a chou: %1Proxy authentication failed: %1QSocks5SocketEngine,Hte proxy introuvableProxy host not foundQSocks5SocketEngineFErreur de protocole SOCKS version 5SOCKS version 5 protocol errorQSocks5SocketEngine<Commande SOCKSv5 non supporteSOCKSv5 command not supportedQSocks5SocketEngineTTL expir TTL expiredQSocks5SocketEngineHErreur proxy SOCKSv5 inconnue: 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineAnnulerCancelQSoftKeyManagerTerminerDoneQSoftKeyManagerQuitterExitQSoftKeyManagerOKOKQSoftKeyManagerOptionsOptionsQSoftKeyManagerSlectionnerSelectQSoftKeyManager MoinsLessQSpinBoxPlusMoreQSpinBoxAnnulerCancelQSql6Annuler vos modifications?Cancel your edits?QSqlConfirmerConfirmQSqlSupprimerDeleteQSql<Supprimer cet enregistrement?Delete this record?QSqlInsrerInsertQSqlNonNoQSql>Enregistrer les modifications? Save edits?QSqlActualiserUpdateQSqlOuiYesQSql`Impossible de fournir un certificat sans cl, %1,Cannot provide a certificate with no key, %1 QSslSocket^Erreur lors de la cration du contexte SSL (%1)Error creating SSL context (%1) QSslSocket`Erreur lors de la cration de la session SSL, %1Error creating SSL session, %1 QSslSocketbErreur lors de la cration de la session SSL: %1Error creating SSL session: %1 QSslSocketTErreur lors de la poigne de main SSL: %1Error during SSL handshake: %1 QSslSocketbErreur lors du chargement du certificat local, %1#Error loading local certificate, %1 QSslSocket\Erreur lors du chargement de la cl prive, %1Error loading private key, %1 QSslSocket<Erreur lors de la lecture: %1Error while reading: %1 QSslSocketbLa list de chiffrements est invalide ou vide (%1)!Invalid or empty cipher list (%1) QSslSocketHAucun certificat n'a pu tre vrifi!No certificates could be verified QSslSocketAucune erreurNo error QSslSocketPL'un des certificats CA n'est pas valide%One of the CA certificates is invalid QSslSocketbLa cl prive ne certifie pas la cl publique, %1+Private key does not certify public key, %1 QSslSocketLe paramtre de longueur du chemin basicConstraints a t dpassImpossible d'envoyer un messageUnable to send a messageQSymbianSocketEngine&Impossible d'crireUnable to writeQSymbianSocketEngineErreur inconnue Unknown errorQSymbianSocketEngine<Opration socket non supporteUnsupported socket operationQSymbianSocketEngine %1: existe dj%1: already existsQSystemSemaphore"%1: n'existe pas%1: does not existQSystemSemaphoreF%1: plus de ressources disponibles%1: out of resourcesQSystemSemaphore.%1: permission refuse%1: permission deniedQSystemSemaphore.%1: erreur inconnue %2%1: unknown error %2QSystemSemaphore@Impossible d'ouvrir la connexionUnable to open connection QTDSDriverPImpossible d'utiliser la base de donnesUnable to use database QTDSDriverActiverActivateQTabBar FermerCloseQTabBarAppuyerPressQTabBar,Dfiler vers la gauche Scroll LeftQTabBar,Dfiler vers la droite Scroll RightQTabBarJOpration sur le socket non supporte$Operation on socket is not supported QTcpServerCop&ier&Copy QTextControlCo&ller&Paste QTextControl&Rtablir&Redo QTextControl&Annuler&Undo QTextControl2Copier l'adresse du &lienCopy &Link Location QTextControlCo&uperCu&t QTextControlSupprimerDelete QTextControl"Tout slectionner Select All QTextControl OuvrirOpen QToolButtonAppuyerPress QToolButtonJCette plateforme ne supporte pas IPv6#This platform does not support IPv6 QUdpSocketRtablirDefault text for redo actionRedo QUndoGroupAnnulerDefault text for undo actionUndo QUndoGroup <vide> QUndoModelRtablirDefault text for redo actionRedo QUndoStackAnnulerDefault text for undo actionUndo QUndoStackJInsrer caractre de contrle Unicode Insert Unicode control characterQUnicodeControlCharacterMenuHLRE Start of left-to-right embedding$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu,LRM Left-to-right markLRM Left-to-right markQUnicodeControlCharacterMenuFLRO Start of left-to-right override#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Pop directional formattingPDF Pop directional formattingQUnicodeControlCharacterMenuHRLE Start of right-to-left embedding$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu,RLM Right-to-left markRLM Right-to-left markQUnicodeControlCharacterMenuFRLO Start of right-to-left override#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu*ZWJ Zero width joinerZWJ Zero width joinerQUnicodeControlCharacterMenu4ZWNJ Zero width non-joinerZWNJ Zero width non-joinerQUnicodeControlCharacterMenu*ZWSP Zero width spaceZWSP Zero width spaceQUnicodeControlCharacterMenu6Impossible d'afficher l'URLCannot show URL QWebFrameBImpossible d'afficher le mimetypeCannot show mimetype QWebFrame.Le fichier n'existe pasFile does not exist QWebFrame|Chargement du cadre interrompue par le changement de stratgie'Frame load interrupted by policy change QWebFrameRequte bloqueRequest blocked QWebFrameRequte annuleRequest cancelled QWebFrame"%1 (%2x%3 pixels)Title string for images%1 (%2x%3 pixels)QWebPageR%1 jours %2 heures %3 minutes %4 secondesMedia time description&%1 days %2 hours %3 minutes %4 secondsQWebPage@%1 heures %2 minutes %3 secondesMedia time description%1 hours %2 minutes %3 secondsQWebPage,%1 minutes %2 secondesMedia time description%1 minutes %2 secondsQWebPage%1 secondesMedia time description %1 secondsQWebPage%n fichier%n fichiers %n file(s)QWebPage.Ajouter au dictionnaire Learn Spelling context menu itemAdd To DictionaryQWebPage Aligner gauche Align LeftQWebPage Aligner droite Align RightQWebPagelment audioMedia controller element Audio ElementQWebPage|Commandes de lecture et affichage de l'tat de l'lment audioMedia controller element2Audio element playback controls and status displayQWebPage(Commencer la lectureMedia controller elementBegin playbackQWebPageGrasBold context menu itemBoldQWebPage En basBottomQWebPage CentrCenterQWebPagejVrifier la grammaire en mme temps que l'orthographe-Check grammar with spelling context menu itemCheck Grammar With SpellingQWebPage,Vrifier l'orthographe Check spelling context menu itemCheck SpellingQWebPagePVrifier l'orthographe pendant la saisie-Check spelling while typing context menu itemCheck Spelling While TypingQWebPage$Choisir le fichier(title for file button used in HTML forms Choose FileQWebPage>Effacer les recherches rcentes>menu item in Recent Searches menu that empties menu's contentsClear recent searchesQWebPage CopierCopy context menu itemCopyQWebPageCopier l'imageCopy Link context menu item Copy ImageQWebPageCopier le lienCopy Link context menu item Copy LinkQWebPage&tat du film actuelMedia controller elementCurrent movie statusQWebPage,Dure du film en coursMedia controller elementCurrent movie timeQWebPage CouperCut context menu itemCutQWebPagePar dfaut+Default writing direction context menu itemDefaultQWebPage>Supprimer jusqu' la fin du motDelete to the end of the wordQWebPage>Supprimer jusqu'au dbut du motDelete to the start of the wordQWebPage'Writing direction context sub-menu item DirectionQWebPageTemps coulMedia controller element Elapsed TimeQWebPagePolicesFont context sub-menu itemFontsQWebPage*Bouton de plein cranMedia controller elementFullscreen ButtonQWebPagePrcdentBack context menu itemGo BackQWebPageSuivantForward context menu item Go ForwardQWebPage>Cacher Orthographe et Grammairemenu item titleHide Spelling and GrammarQWebPageIgnorer Ignore Grammar context menu itemIgnoreQWebPageIgnorer!Ignore Spelling context menu itemIgnoreQWebPageDure indfinieMedia time descriptionIndefinite timeQWebPageRetraitIndentQWebPage2Insrer une liste pucesInsert Bulleted ListQWebPage6Insrer une liste numroteInsert Numbered ListQWebPage4Insrer une nouvelle ligneInsert a new lineQWebPage:Insrer un nouveau paragrapheInsert a new paragraphQWebPageInspecter!Inspect Element context menu itemInspectQWebPageItaliqueItalic context menu itemItalicQWebPage,Alerte JavaScript - %1JavaScript Alert - %1QWebPage8Confirmation JavaScript - %1JavaScript Confirm - %1QWebPage6Problme de JavaScript - %1JavaScript Problem - %1QWebPage,Invite JavaScript - %1JavaScript Prompt - %1QWebPageJustifiJustifyQWebPage gauche Left edgeQWebPageGauche droiteLeft to Right context menu item Left to RightQWebPage&Diffusion en direct>Media controller status message when watching a live broadcastLive BroadcastQWebPageChargement...9Media controller status message when the media is loading Loading...QWebPage:Chercher dans le dictionnaire'Look Up in Dictionary context menu itemLook Up In DictionaryQWebPage Plug-in manquantMissing Plug-inQWebPageTDplacer le curseur la fin du paragraphe'Move the cursor to the end of the blockQWebPageLDplacer le curseur en fin de document*Move the cursor to the end of the documentQWebPageFDplacer le curseur en fin de ligne&Move the cursor to the end of the lineQWebPagePDplacer le curseur au caractre suivant%Move the cursor to the next characterQWebPageNDplacer le curseur la ligne suivante Move the cursor to the next lineQWebPageDDplacer le curseur au mot suivant Move the cursor to the next wordQWebPageTDplacer le curseur au caractre prcdent)Move the cursor to the previous characterQWebPageRDplacer le curseur la ligne prcdente$Move the cursor to the previous lineQWebPageHDplacer le curseur au mot prcdent$Move the cursor to the previous wordQWebPageTDplacer le curseur au dbut du paragraphe)Move the cursor to the start of the blockQWebPagePDplacer le curseur en dbut de document,Move the cursor to the start of the documentQWebPageJDplacer le curseur en dbut de ligne(Move the cursor to the start of the lineQWebPage2Balayeur de dure du filmMedia controller elementMovie time scrubberQWebPagedCase de dfilement du balayeur de la dure du filmMedia controller elementMovie time scrubber thumbQWebPage<Bouton de dsactivation du sonMedia controller element Mute ButtonQWebPage<Couper le son des pistes audioMedia controller elementMute audio tracksQWebPage.Pas de candidat trouvs"No Guesses Found context menu itemNo Guesses FoundQWebPage4Pas de fichier slectionnJtext to display in file button used in HTML forms when no file is selectedNo file selectedQWebPage0Pas de recherche rcentevLabel for only item in menu that appears when clicking on the search field image, when no searches have been performedNo recent searchesQWebPageOuvrir le cadre*Open Frame in New Window context menu item Open FrameQWebPageOuvrir l'image*Open Image in New Window context menu item Open ImageQWebPageOuvrir le lienOpen Link context menu item Open LinkQWebPage@Ouvrir dans une Nouvelle Fentre$Open in New Window context menu itemOpen in New WindowQWebPageRetrait ngatifOutdentQWebPageContourOutline context menu itemOutlineQWebPagePage bas Page downQWebPagePage gauche Page leftQWebPagePage droite Page rightQWebPagePage hautPage upQWebPage CollerPaste context menu itemPasteQWebPage2Coller et suivre le stylePaste and Match StyleQWebPage PausePauseQWebPageBouton de pauseMedia controller element Pause ButtonQWebPagePause lectureMedia controller elementPause playbackQWebPage"Bouton de lectureMedia controller element Play ButtonQWebPageHRegarder le film en mode plein cranMedia controller elementPlay movie in full-screen modeQWebPage&Recherches rcentesrlabel for first item in the menu that appears when clicking on the search field image, used as embedded menu titleRecent searchesQWebPage<Limite de redirection atteinteRedirection limit reachedQWebPageRechargerReload context menu itemReloadQWebPageDure restanteMedia controller elementRemaining TimeQWebPage,Dure de film restanteMedia controller elementRemaining movie timeQWebPage0Retirer la mise en formeRemove formattingQWebPageRinitialiser5default label for Reset buttons in forms on web pagesResetQWebPageTRamener le film en streaming en temps relMedia controller element#Return streaming movie to real-timeQWebPage<Bouton de retour au temps relMedia controller elementReturn to Real-time ButtonQWebPage6Bouton de retour en arrireMedia controller element Rewind ButtonQWebPage$Rembobiner le filmMedia controller element Rewind movieQWebPage droite Right edgeQWebPageDroite gaucheRight to Left context menu item Right to LeftQWebPage&Enregistrer l'image Download Image context menu item Save ImageQWebPage,Enregistrer le lien...&Download Linked File context menu item Save Link...QWebPage&Dfiler vers le bas Scroll downQWebPage"Dfiler jusqu'ici Scroll hereQWebPage,Dfiler vers la gauche Scroll leftQWebPage,Dfiler vers la droite Scroll rightQWebPage(Dfiler vers le haut Scroll upQWebPage&Chercher sur le Web Search The Web context menu itemSearch The WebQWebPage6Bouton de recherche arrireMedia controller elementSeek Back ButtonQWebPage2Bouton de recherche avantMedia controller elementSeek Forward ButtonQWebPage0Recherche rapide arrireMedia controller elementSeek quickly backQWebPage,Recherche rapide avantMedia controller elementSeek quickly forwardQWebPage"Tout slectionner Select AllQWebPageRSlectionner jusqu' la fin du paragrapheSelect to the end of the blockQWebPageNSlectionner jusqu' la fin du document!Select to the end of the documentQWebPageDSlectionner jusqu'en fin de ligneSelect to the end of the lineQWebPageNSlectionner jusqu'au caractre suivantSelect to the next characterQWebPageLSlectionner jusqu' la ligne suivanteSelect to the next lineQWebPageBSlectionner jusqu'au mot suivantSelect to the next wordQWebPageRSlectionner jusqu'au caractre prcdent Select to the previous characterQWebPagePSlectionner jusqu' la ligne prcdenteSelect to the previous lineQWebPageFSlectionner jusqu'au mot prcdentSelect to the previous wordQWebPageRSlectionner jusqu'au dbut du paragraphe Select to the start of the blockQWebPageNSlectionner jusqu'au dbut du document#Select to the start of the documentQWebPageHSlectionner jusqu'en dbut de ligneSelect to the start of the lineQWebPageBAfficher Orthographe et Grammairemenu item titleShow Spelling and GrammarQWebPage SliderMedia controller elementSliderQWebPageBCurseur de la barre de dfilementMedia controller element Slider ThumbQWebPageOrthographe*Spelling and Grammar context sub-menu itemSpellingQWebPage&Affichage de l'tatMedia controller elementStatus DisplayQWebPageArrterStop context menu itemStopQWebPage Barr StrikethroughQWebPageSoumettreQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPageSoumettre6default label for Submit buttons in forms on web pagesSubmitQWebPage Indice SubscriptQWebPageExposant SuperscriptQWebPage(Orientation du texte$Text direction context sub-menu itemText DirectionQWebPageLe script de cette page semble avoir un problme. Souhaitez-vous arrter le script?RThe script on this page appears to have a problem. Do you want to stop the script?QWebPagedCeci est un index. Veuillez saisir les mots-cl: _text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'3This is a searchable index. Enter search keywords: QWebPageHautTopQWebPageSoulignUnderline context menu item UnderlineQWebPageInconnu+Unknown filesize FTP directory listing itemUnknownQWebPage:Bouton de ractivation du sonMedia controller element Unmute ButtonQWebPageBRactiver le son des pistes audioMedia controller elementUnmute audio tracksQWebPagelment vidoMedia controller element Video ElementQWebPage|Commandes de lecture et affichage de l'tat de l'lment vidoMedia controller element2Video element playback controls and status displayQWebPage&Inspecteur Web - %2Web Inspector - %2QWebPage*Qu'est-ce que c'est ? What's This?QWhatsThisAction*QWidget&Terminer&FinishQWizard &Aide&HelpQWizard&Suivant >&NextQWizard&Suivant >&Next >QWizard< &Prcdent< &BackQWizardAnnulerCancelQWizardSoumettreCommitQWizardContinuerContinueQWizardTerminerDoneQWizardPrcdentGo BackQWizardAideHelpQWizard%1 - [%2] %1 - [%2] QWorkspace&Fermer&Close QWorkspace&Dplacer&Move QWorkspace&Restaurer&Restore QWorkspace&Taille&Size QWorkspaceDr&ouler&Unshade QWorkspace FermerClose QWorkspaceMa&ximiser Ma&ximize QWorkspaceRd&uire Mi&nimize QWorkspaceRduireMinimize QWorkspace Restaurer en bas Restore Down QWorkspaceEnrou&lerSh&ade QWorkspace.Rester au &premier plan Stay on &Top QWorkspacedclaration d'encodage ou dclaration "standalone" attendue lors de la lecture de la dclaration XMLYencoding declaration or standalone declaration expected while reading the XML declarationQXmljerreur dans la dclaration texte d'une entit externe3error in the text declaration of an external entityQXmlune erreur s'est produite pendant l'analyse syntaxique du commentaire$error occurred while parsing commentQXmlune erreur s'est produite pendant l'analyse syntaxique du contenu$error occurred while parsing contentQXmlune erreur s'est produite pendant l'analyse syntaxique de la dfinition du type de document5error occurred while parsing document type definitionQXmlune erreur s'est produite pendant l'analyse syntaxique de l'lement$error occurred while parsing elementQXmlune erreur s'est produite pendant l'analyse syntaxique d'une rfrence&error occurred while parsing referenceQXmlJErreur dclenche par le consommateurerror triggered by consumerQXmlrfrence une entit gnrale externe non autorise dans le DTD;external parsed general entity reference not allowed in DTDQXmlrfrence une entit gnrale externe non autorise dans la valeur d'attributGexternal parsed general entity reference not allowed in attribute valueQXmlrfrence une entit gnrale interne non autorise dans la DTD4internal general entity reference not allowed in DTDQXml4nom d'instruction invalide'invalid name for processing instructionQXml.une lettre est attendueletter is expectedQXmlRplus d'une dfinition de type de document&more than one document type definitionQXml>aucune erreur ne s'est produiteno error occurredQXml$entits rcursivesrecursive entitiesQXmldclaration "standalone" attendue lors de la lecture de la dclaration XMLAstandalone declaration expected while reading the XML declarationQXmltag incongru tag mismatchQXml&caractre inattenduunexpected characterQXml2Fin de fichier inattendueunexpected end of fileQXmlxrfrence une entit non analyse dans le mauvais contexte*unparsed entity reference in wrong contextQXml`une version est attendue dans la dclaration XML2version expected while reading the XML declarationQXmlfvaleur incorrecte pour une dclaration "standalone"&wrong value for standalone declarationQXmlLieu inconnuQXmlPatternistCLIbErreur %1 dans %2, la ligne %3, colonne %4: %5)Error %1 in %2, at line %3, column %4: %5QXmlPatternistCLI,Erreur %1 dans %2: %3Error %1 in %2: %3QXmlPatternistCLIjAvertissement dans %1, la ligne %2, colonne %3: %4(Warning in %1, at line %2, column %3: %4QXmlPatternistCLI4Avertissement dans %1: %2Warning in %1: %2QXmlPatternistCLIX%1 n'est pas un identifiant "PUBLIC" valide.#%1 is an invalid PUBLIC identifier. QXmlStreamL%1 n'est pas un nom d'encodage valide.%1 is an invalid encoding name. QXmlStreamR%1 n'est pas un nom d'instruction valide.-%1 is an invalid processing instruction name. QXmlStream, mais trouv ' , but got ' QXmlStream0Redfinition d'attribut.Attribute redefined. QXmlStreamB%1 n'est pas un encodage supportEncoding %1 is unsupported QXmlStreamlDu contenu avec un encodage incorrect a t rencontr.(Encountered incorrectly encoded content. QXmlStream2Entit '%1' non dclare.Entity '%1' not declared. QXmlStreamAttendu(e) Expected  QXmlStream0donnes texte attendues.Expected character data. QXmlStreamLContenu superflu la fin du document.!Extra content at end of document. QXmlStreamVDclaration d'espace de noms non autorise.Illegal namespace declaration. QXmlStream.Caractre XML invalide.Invalid XML character. QXmlStream"Nom XML invalide.Invalid XML name. QXmlStream>Chane de version XML invalide.Invalid XML version string. QXmlStreamVAttribut invalide dans une dclaration XML.%Invalid attribute in XML declaration. QXmlStreamDRfrence un caractre invalide.Invalid character reference. QXmlStream$Document invalide.Invalid document. QXmlStream8Valeur de l'entit invalide.Invalid entity value. QXmlStream6nom d'instruction invalide.$Invalid processing instruction name. QXmlStreambNDATA dans une dclaration de paramtre d'entit.&NDATA in parameter entity declaration. QXmlStreamdLe prfixe d'espace de noms %1 n'a pas t dclar"Namespace prefix '%1' not declared QXmlStream\Tags ouvrant et fermants ne correspondent pas. Opening and ending tag mismatch. QXmlStream6Fin de document inattendue.Premature end of document. QXmlStream4Entit rcursive dtecte.Recursive entity detected. QXmlStreamnRfrence l'entit externe '%1' en valeur d'attribut.5Reference to external entity '%1' in attribute value. QXmlStreamNRfrence l'entit '%1' non analyse."Reference to unparsed entity '%1'. QXmlStreamZsquence ']]>' non autorise dans le contenu.&Sequence ']]>' not allowed in content. QXmlStreamLe seules valeurs possibles pour "standalone" sont "yes" ou "no"."Standalone accepts only yes or no. QXmlStream,Tag de dpart attendu.Start tag expected. QXmlStreamLe pseudo-attribut "standalone" doit apparatre aprs l'encodage.?The standalone pseudo attribute must appear after the encoding. QXmlStreamInattendu(e) Unexpected ' QXmlStream|Caractre '%1' inattendu pour une valeur d'identifiant public./Unexpected character '%1' in public id literal. QXmlStream4Version XML non supporte.Unsupported XML version. QXmlStreamdLa dclaration XML doit tre en dbut de document.)XML declaration not at start of document. QXmlStream 0.125x0.125xQmlJSDebugger::QmlToolBar0.1x0.1xQmlJSDebugger::QmlToolBar 0.25x0.25xQmlJSDebugger::QmlToolBar0.5x0.5xQmlJSDebugger::QmlToolBar1x1xQmlJSDebugger::QmlToolBarSlectionnerSelectQmlJSDebugger::QmlToolBar OutilsToolsQmlJSDebugger::QmlToolBarAgrandirZoom InQmlJSDebugger::ZoomToolRtrcirZoom OutQmlJSDebugger::ZoomTooldL'lment %1 n'est pas autoris cet emplacement. QtXmlPatternsp%1 et %2 correspondent au dbut et la fin d'une ligne.,%1 and %2 match the start and end of a line. QtXmlPatterns8%1 ne peut pas tre rcupr%1 cannot be retrieved QtXmlPatterns%1 contient 'octets', qui n'est pas autoris pour l'encodage %2.E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatterns%1 est une type complexe. Caster vers des types complexes n'est pas possible. Cependant, caster vers des types atomiques comme %2 marche.s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns(%1 est un ivalide %2%1 is an invalid %2 QtXmlPatterns%1 est un flag invalide pour des expressions rgulires. Les flags valides sont: ?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatternsH%1 est un URI de namespace invalide.%1 is an invalid namespace URI. QtXmlPatternsj%1 est un modle d'expression rgulire invalide: %2/%1 is an invalid regular expression pattern: %2 QtXmlPatternsV%1 est un nom de mode de template invalide.$%1 is an invalid template mode name. QtXmlPatternsB%1 est un type de schema inconnu.%1 is an unknown schema type. QtXmlPatterns@%1 est un encodage non support.%1 is an unsupported encoding. QtXmlPatternsR%1 n'est pas un caractre XML 1.0 valide.$%1 is not a valid XML 1.0 character. QtXmlPatterns|%1 n'est pas un nom valide pour une instruction de traitement.4%1 is not a valid name for a processing-instruction. QtXmlPatternsR%1 n'est pas une valeur numrique valide."%1 is not a valid numeric literal. QtXmlPatterns%1 n'est pas un nom de destination valide dans une instruction de traitement. Ce doit tre une valeur %2, par ex. %3.Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatternsT%1 n'est pas une valeur valide du type %2.#%1 is not a valid value of type %2. QtXmlPatternsR%1 n'est pas un nombre entier de minutes.$%1 is not a whole number of minutes. QtXmlPatterns%1 n'est pas un type atomique. Il est uniquement possible de caster vers des types atomiques.C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatterns%1 n'est pas dans les dclaration d'attribut in-scope. La fonctionnalit d'inport de schma n'est pas supporte.g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatternsT%1 n'est pas une valeur valide de type %2.&%1 is not valid as a value of type %2. QtXmlPatterns^%1 correspond des caractres de saut de ligne%1 matches newline characters QtXmlPatterns%1 doit tre suivi par %2 ou %3, et non la fin de la chane de remplacement.J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatternsn%1 requiert au moins %n argument. %2 est donc invalide.p%1 requiert au moins %n arguments. %2 est donc invalide.=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatternsl%1 prend au maximum %n argument. %2 est donc invalide.n%1 prend au maximum %n arguments. %2 est donc invalide.9%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns %1 a t appel.%1 was called. QtXmlPatternsLUn commentaire ne peut pas contenir %1A comment cannot contain %1 QtXmlPatternsPUn commentaire ne peut pas finir par %1.A comment cannot end with a %1. QtXmlPatternsUn dclaration de namespace par dfaut doit tre place avant toute fonction, variable ou declaration d'option.^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatternsUn constructeur direct d'lment est mal-form. %1 est termin par %2.EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatterns\Une fonction avec la signature %1 existe dj.0A function already exists with the signature %1. QtXmlPatternsUn module de bibliothque ne peut pas tre valu directement. Il doit tre import d'un module principal.VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatternsUn paramtre de fonction ne peut pas tre dclar comme un tunnel.An %1-attribute must have a valid %2 as value, which %3 isn't. QtXmlPatternsfUn attribute %1 avec la valeur %2 est dj dclar.8An %1-attribute with value %2 has already been declared. QtXmlPatternsUn argument nomm %1 a dj t dclar. Chaque nom d'argument doit tre unique.WAn argument with name %1 has already been declared. Every argument name must be unique. QtXmlPatternsNUn attribute de nom %1 a dj t cr.1An attribute by name %1 has already been created. QtXmlPatternsUn noeuds attribut ne peut tre un fils d'un noeuds document. C'est pourquoi l'attribut %1 est mal plac.dAn attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. QtXmlPatternsfUn attribute nomm %1 existe dj pour cet lment.?An attribute with name %1 has already appeared on this element. QtXmlPatternspAu moins un lment %1 doit apparatre comme fils de %2.3At least one %1 element must appear as child of %2. QtXmlPatterns`Au moins un lment %1 doit tre plac avant %2.-At least one %1-element must occur before %2. QtXmlPatterns^Au moins un lment %1 doit apparatre dans %2.-At least one %1-element must occur inside %2. QtXmlPatternsPAu moins un composant doit tre prsent.'At least one component must be present. QtXmlPatternsAu moins un mode doit tre spcifi dans l'attribut %1 sur l'lment %2.FAt least one mode must be specified in the %1-attribute on element %2. QtXmlPatternszAu moins un composant doit apparatre aprs le dlimiteur %1.?At least one time component must appear after the %1-delimiter. QtXmlPatternsfLes attributs %1 et %2 sont mutuellement exclusifs.+Attribute %1 and %2 are mutually exclusive. QtXmlPatternsL'attribut %1 ne peut pas tre srialis car il apparat la racine.EAttribute %1 can't be serialized because it appears at the top level. QtXmlPatternsL'attribut %1 ne peut pas apparatre sur l'lment %2. Seuls %3, %4 et les attributs standard le sont.]Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. QtXmlPatternsL'attribut %1 ne peut pas apparatre sur l'lment %2. Seul %3 et les attributs standard le sont.YAttribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. QtXmlPatternsL'attribut %1 ne peut pas apparatre sur l'lment %2. Seul %3 est autoris, ainsi que les attributs standard.^Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. QtXmlPatternsL'attribut %1 ne peut pas apparatre sur l'lment %2. Seuls les attributs standard le peuvent.VAttribute %1 cannot appear on the element %2. Only the standard attributes can appear. QtXmlPatternsRL'attribut %1 ne peut avoir la valeur %2.&Attribute %1 cannot have the value %2. QtXmlPatternsCaster vers %1 est impossible parce que c'est un type abstrait qui ne peut donc tre instanci.fCasting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. QtXmlPatterns(Circularit dtecteCircularity detected QtXmlPatternsJJour %1 est invalide pour le mois %2.Day %1 is invalid for month %2. QtXmlPatternsVLe jour %1 est hors de l'intervalle %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatternsDiviser une valeur du type %1 par %2 (not-a-number) est interdit.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatternsDiviser une valeur de type %1 par %2 ou %3 (plus ou moins zro) est interdit.LDividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. QtXmlPatternsLDivision (%1) par zro (%2) indfinie.(Division (%1) by zero (%2) is undefined. QtXmlPatternsChaque nom d'un paramtre ede template doit tre unique; %1 est dupliqu.CEach name of a template parameter must be unique; %1 is duplicated. QtXmlPatternsEffective Boolean Value ne peut tre calcule pour une squence contenant deux ou plus valeurs atomiques.aEffective Boolean Value cannot be calculated for a sequence containing two or more atomic values. QtXmlPatternsL'lment %1 ne peut pas tre srialis parce qu'il est hors de l'lment document.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatternsvL'lment %1 ne peut pas avoir un constructuer de squence..Element %1 cannot have a sequence constructor. QtXmlPatternsNL'lment %1 ne peut pas avoir de fils. Element %1 cannot have children. QtXmlPatternsDL'lment %1 doit tre le dernier.Element %1 must come last. QtXmlPatternsvL'lement %1 doit avoir au moins un des attributs %2 ou %3.=Element %1 must have at least one of the attributes %2 or %3. QtXmlPatternsL'lment %1 doit avoir un attribut %2 ou un constructeur de squence.EElement %1 must have either a %2-attribute or a sequence constructor. QtXmlPatternsDEchec en castant de %1 ver %2: %3&Failure when casting from %1 to %2: %3 QtXmlPatternsSi les deux valeurs ont des dcalages de zone, elle doivent avoir le mme. %1 et %2 sont diffrents.bIf both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. QtXmlPatternsSi l'lment %1 n'a pas d'attribut %2, il ne peut pas avoir d'attribut %3 ou %4.EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatterns Si le premier argument est une sequence vide ou un chane vide (sans namespace), un prfixe ne peut tre spcifi. Le prfixe %1 a t spcifi.If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatternsDans un constructeur d'espace de noms, la valeur pour un espace de noms ne peut pas tre une chane vide.PIn a namespace constructor, the value for a namespace cannot be an empty string. QtXmlPatternsDans un module de feuille de style simplifi, l'attribut %1 doit tre prsent.@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatternsDans un pattern XSL-T, l'axe %1 ne peut pas tre utilis, seulement %2 ou %3 le peuvent.DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatternsDans un pattern XSL-T, la fonction %1 ne peut pas avoir de 3e argument.>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatternsDans un pattern XSL-T, seules les fonctions %1 et %2 (pas %3) peuvent tre utilises pour le matching.OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatternsDans un pattern XSL-T, le premier argument la fonction %1 doit tre un litral ou une rfrence de variable.yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsDans un pattern XSL-T, le premier argument la fonction %1 doit tre une chane de caractres quand utilis pour correspondance.hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatternsDans la chane de remplacement, %1 peut seulement tre utilis pour chapper lui-mme ou %2 mais pas %3MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatternsDans la chane de remplacement, %1 doit tre suivi par au moins un chiffre s'il n'est pas chapp.VIn the replacement string, %1 must be followed by at least one digit when not escaped. QtXmlPatterns\Division entire (%1) par zro (%2) indfinie.0Integer division (%1) by zero (%2) is undefined. QtXmlPatternsTIl est impossible de se lier au prfixe %1+It is not possible to bind to the prefix %1 QtXmlPatternsPIl est impossible de caster de %1 en %2.)It is not possible to cast from %1 to %2. QtXmlPatterns\Il est impossible de redclarer le prfixe %1.*It is not possible to redeclare prefix %1. QtXmlPatternsFIl sera impossible de rcuprer %1.'It will not be possible to retrieve %1. QtXmlPatternsIl est impossible d'ajouter des attributs aprs un autre type de noeuds.AIt's not possible to add attributes after any other kind of node. QtXmlPatternsrI lest impossible de caster la valeur %1 de type %2 en %37It's not possible to cast the value %1 of type %2 to %3 QtXmlPatternshLes correspondances ne sont pas sensibles la casseMatches are case insensitive QtXmlPatternsLes imports de module doivent tre placs avant tout fonction, variable ou dclaration d'option.MModule imports must occur before function, variable, and option declarations. QtXmlPatternsZModule division (%1) par zro (%2) indfinie.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatternsVLe mois %1 est hors de l'intervalle %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatternsLa multiplication d'une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite.YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatternsLe namespace %1 peut seulement tre li %2 (et doit tre pr-dclar).ONamespace %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsLes declarations de namespace doivent tre places avant tout fonction, variable ou dclaration d'option.UNamespace declarations must occur before function, variable, and option declarations. QtXmlPatterns0Le rseau ne rpond pas.Network timeout. QtXmlPatternsxAucun cast n'est possible avec %1 comme type de destination.2No casting is possible with %1 as the target type. QtXmlPatternslAucune comparaison ne peut tre faite avec le type %1.1No comparisons can be done involving the type %1. QtXmlPatterns@Les fonctions externes ne sont pas supportes. Toutes les fonctions supportes peuvent ter utilises directement sans les dclarer pralablement comme externes{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatternsVAucune fonction nomme %1 n'est disponible.&No function with name %1 is available. QtXmlPatternsjAucune fonction avec la signature %1 n'est disponible*No function with signature %1 is available QtXmlPatternsfAucun lien de namespace n'existe pour le prfixe %1-No namespace binding exists for the prefix %1 QtXmlPatternsvAucun lien de namespace n'existe pour le prfixe %1 dans %23No namespace binding exists for the prefix %1 in %2 QtXmlPatternsvPas d'oprande dans une division entire, %1, peut tre %2.1No operand in an integer division, %1, can be %2. QtXmlPatternsBAucun template nomm %1 n'existe.No template by name %1 exists. QtXmlPatternsvAucune valeur n'est disponible pour la variable externe %1.=No value is available for the external variable with name %1. QtXmlPatternsDAucune variable nomme %1 n'existeNo variable with name %1 exists QtXmlPatternsAucune des expressions pragma n'est supporte. Une expression par dfault doit tre prsente^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatternsSeulement une dclaration %1 peut intervenir lors du prologue de la requte.6Only one %1 declaration can occur in the query prolog. QtXmlPatternsPSeulement un lment %1 peut apparatre.Only one %1-element can appear. QtXmlPatternsSeule le Unicode CodepointCollation est support (%1), %2 n'est pas support.IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatternsjSeul le prfixe %1 peut tre li %2, et vice versa.5Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatternsL'oprateur %1 ne peut pas tre utilis pour des valeurs atomiques de type %2 ou %3.>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatternspL'oprateur %1 ne peut pas tre utilis pour le type %2.&Operator %1 cannot be used on type %2. QtXmlPatternsL'oprateur %1 n'est pas disponible entre valeurs atomiques de type %2 et %3.EOperator %1 is not available between atomic values of type %2 and %3. QtXmlPatterns`Overflow: impossible de reprsenter la date %1."Overflow: Can't represent date %1. QtXmlPatterns`Overflow: la date ne peut pas tre reprsente.$Overflow: Date can't be represented. QtXmlPatternsErreur: %1Parse error: %1 QtXmlPatternsLe prfixe %1 peut seulement tre li %2 (et doit tre prdclar).LPrefix %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatterns`Le prfixe %1 est dj dclar dans le prologue.,Prefix %1 is already declared in the prolog. QtXmlPatternszLa Promotion de %1 vers %2 peut causer un perte de prcision./Promoting %1 to %2 may cause loss of precision. QtXmlPatternsNLa cardinalit requise est %1; reu %2./Required cardinality is %1; got cardinality %2. QtXmlPatternsTLe type requis est %1, mais %2 a t reu.&Required type is %1, but %2 was found. QtXmlPatternsLancement d'une feuille de style XSL-T 1.0 avec un processeur 2.0.5Running an XSL-T 1.0 stylesheet with a 2.0 processor. QtXmlPatternsNL'axe %1 n'est pas support dans XQuery$The %1-axis is unsupported in XQuery QtXmlPatternsLa fonctionnalit "Schema Import" n'est pas supporte et les dclarations %1 ne peuvent donc intervenir.WThe Schema Import feature is not supported, and therefore %1 declarations cannot occur. QtXmlPatternsLa fonctionnalit "Schema Validation" n'est pas supporte. Les expressions %1 ne seront pas utilises.VThe Schema Validation Feature is not supported. Hence, %1-expressions may not be used. QtXmlPatternsHL'URI ne peut pas avoir de fragmentsThe URI cannot have a fragment QtXmlPatternsL'attribute %1 peut seulement apparatre sur le premier lment %2.9The attribute %1 can only appear on the first %2 element. QtXmlPatternsL'attribut %1 ne peut pas apparatre sur %2 quand il est fils de %3.?The attribute %1 cannot appear on %2, when it is a child of %3. QtXmlPatterns^L'attribut %1 doit apparatre sur l'lment %2.+The attribute %1 must appear on element %2. QtXmlPatternsLe codepoint %1 dans %2 et utilisant l'encodage %3 est un caractre XML invalide.QThe codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. QtXmlPatternsLes donnes d'une instruction de traitement ne peut contenir la chane %1AThe data of a processing instruction cannot contain the string %1 QtXmlPatternsLI'l n'y a pas de collection par dfaut#The default collection is undefined QtXmlPatternsnL'lment avec le nom local %1 n'existe pas dans XSL-T.7The element with local name %1 does not exist in XSL-T. QtXmlPatternsL'encodage %1 est invalide. Il doit contenir uniquement des caractres latins, sans blanc et doit tre conforme l'expression rgulire %2.The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. QtXmlPatternsdLe premier argument de %1 ne peut tre du type %2..The first argument to %1 cannot be of type %2. QtXmlPatternsLe premier argument de %1 ne peut tre du type %2. Il doit tre de type numrique, xs:yearMonthDuration ou xs:dayTimeDuration.uThe first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. QtXmlPatternsLe premier argument de %1 ne peut tre du type %2. Il doit tre de type %3, %4 ou %5.PThe first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatternsLe premier oprande dans une division entire, %1, ne peut tre infini (%2).FThe first operand in an integer division, %1, cannot be infinity (%2). QtXmlPatterns,Le focus est indfini.The focus is undefined. QtXmlPatternsjL'initialisation de la variable %1 dpend d'elle-mme3The initialization of variable %1 depends on itself QtXmlPatterns\L'item %1 ne correspond pas au type requis %2./The item %1 did not match the required type %2. QtXmlPatterns~Le mot-cl %1 ne peut pas apparatre avec un autre nom de mode.5The keyword %1 cannot occur with any other mode name. QtXmlPatterns La dernire tape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas tre un mlange des deux.kThe last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. QtXmlPatternsjLa fonctionnalit "module import" n'est pas supporte*The module import feature is not supported QtXmlPatterns\Le nom %1 ne se rfre aucun type de schema..The name %1 does not refer to any schema type. QtXmlPatternsLe nom d'un attribut calcul ne peut pas avoir l'URI de namespace %1 avec le nom local %2.ZThe name for a computed attribute cannot have the namespace URI %1 with the local name %2. QtXmlPatterns&Le nom d'une variable lie dans un expression for doit tre different de la variable positionnelle. Les deux variables appeles %1 sont en conflit.The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. QtXmlPatternsLe nom d'une expression d'extension doit tre dans un namespace.;The name of an extension expression must be in a namespace. QtXmlPatternsLe nom d'une option doit avoir un prfixe. Il n'y a pas de namespace par dfaut pour les options.TThe name of an option must have a prefix. There is no default namespace for options. QtXmlPatternsHLe namespace %1 est rserv; c'est pourquoi les fonctions dfinies par l'utilisateur ne peuvent l'utiliser. Essayez le prfixe prdfini %2 qui existe pour ces cas.The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. QtXmlPatternsL'URI de namespace ne peut tre une chane vide quand on le lie un prfixe, %1.JThe namespace URI cannot be the empty string when binding to a prefix, %1. QtXmlPatternsL'URI de namespace dans le nom d'un attribut calcul ne peut pas tre %1.DThe namespace URI in the name for a computed attribute cannot be %1. QtXmlPatternsL'URI de namespace doit tre une constante et ne peut contenir d'expressions.IThe namespace URI must be a constant and cannot use enclosed expressions. QtXmlPatternsLLe namespace d'une fonction utilisateur dans un module de bibliothque doit tre quivalent au namespace du module. En d'autres mots, il devrait tre %1 au lieu de %2The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 QtXmlPatterns(Le forme de normalisation %1 n'est pas supporte. Les formes supportes sont %2, %3, %4 et %5, et aucun, ie. une chane vide (pas de normalisation).The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). QtXmlPatterns~Le paramtre %1 est pass mais aucun %2 correspondant n'existe.;The parameter %1 is passed, but no corresponding %2 exists. QtXmlPatternsLe paramtre %1 est requis, mais aucun %2 correspondant n'est fourni.BThe parameter %1 is required, but no corresponding %2 is supplied. QtXmlPatterns>Le prfixe %1 ne peut tre li.The prefix %1 cannot be bound. QtXmlPatternsLe prfixe %1 ne peut tre li. Par dfault, il est dj li au namespace %2.SThe prefix %1 cannot be bound. By default, it is already bound to the namespace %2. QtXmlPatternshLe prfixe doit tre un valide %1; %2 n'e l'est pas./The prefix must be a valid %1, which %2 is not. QtXmlPatternsLe noeuds racine du deuxime argument la fonction %1 doit tre un noeuds document. %2 n'est pas un document.gThe root node of the second argument to function %1 must be a document node. %2 is not a document node. QtXmlPatternsLe deuxime argument de %1 ne peut tre du type %2. Il doit tre de type %3, %4 ou %5.QThe second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatternsLe second oprande dans une division, %1, ne peut tre nul (%2).:The second operand in a division, %1, cannot be zero (%2). QtXmlPatternsLe nom de destination dans une instruction de traitement ne peut tre %1. %2 est invalide.~The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. QtXmlPatternsZLe namespace cible d'un %1 ne peut tre vide.-The target namespace of a %1 cannot be empty. QtXmlPatternsLa valeur de l'attribut %1 de l'lement %2 doit tre %3 ou %4, et pas %5.IThe value for attribute %1 on element %2 must either be %3 or %4, not %5. QtXmlPatternsLa valeur de l'attribut %1 doit tre du type %2, %3 n'en est pas.=The value of attribute %1 must be of type %2, which %3 isn't. QtXmlPatternsLa valeur de l'attribut de version XSL-T doit tre du type %1, et non %2.TThe value of the XSL-T version attribute must be a value of type %1, which %2 isn't. QtXmlPatterns:La variable %1 est inutiliseThe variable %1 is unused QtXmlPatternsCe processeur ne comprend pas les Schemas. C'est pourquoi %1 ne peut pas tre utilis.CThis processor is not Schema-aware and therefore %1 cannot be used. QtXmlPatternsJL'heure %1: %2: %3.%4 est invalide.Time %1:%2:%3.%4 is invalid. QtXmlPatternsHeure 24: %1: %2.%3 est invalide. L'heure est 24 mais les minutes, secondes et millisecondes ne sont pas 0;_Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatternsLes lment d'une feuille de style de haut niveau doivent tre dans un namespace non nul; %1 ne l'est pas.NTop level stylesheet elements must be in a non-null namespace, which %1 isn't. QtXmlPatternsDeux attributs de dclarations de namespace ont le mme nom: %1.9eF_G,“OpJ' "n% %HD,00;S0y0|b0025&5 D>l DL+D,?K,H5LH5RH5}H5f f2f<7fJjf{f<fl=S$>LA``92ee>eM y*yR*yo*y*TM4*0'x*0g+Fx+F+fV+fC+z0++o+I+z1++9-+D +Mu+y@+4+į+įp+į+1=F0iG9Hw9SHw99I*I.IjJ+J+0J6J62.J6:AJ6?J6ywJ6{J6J68J6pJ6_J6J6KHLZHL/L2]Lb rO|1PFEkPFEzPFEOTV1V1Vl VϖVW+WWWTWTX >܊ gy t KE %'  < ) */y 7u \ =N B T^! ]k ] `_ ` ` ` c( d e  eI f1Q gn q k,p rD" x| x ~d $ 9 I' I- I8X ; v  ݔ Jҋ %p*L , ,Cy + ˔M P'B P2 RF Z 68u :0 f  f E4 4b< s  sG AAU : m,[ #-t) #-t 0N,X E9F L' L Mc\= SdY Vi@ ]$4N f)a f)E io> ) m` w H HC $F .@  i  p J ; JG t. k Ӈ  ̺M -DO k0 kQ U)[ < 0>  S  Z Ω xH^ ./ 7F  >Vb >WX >Xu >] >j >o5 > >/ >b >ڰ > DTK I+R I/C RVK RV RV S.g Sh Yh [ j7oB p0< Bg   T3s Tr T TL  ha 5 Sp )d )d  .3 .` .s .U a a6 y {  t :b\ ʜ.t +>1q 0E ;ɾ Ptz Pt fe fec g( iFC iIc i^ u* w w w w} w}` w} Q Yn ^| }n R X ~ D t5y t5 z  ) T)ugT)*'*/E)/E/EI_\XRue[ ca.;vɅy$~]BSjmB&ݖ[yrE  G "#"#$U%4>%4K-vq0i)̺0͆1c1c2wTvD HJd\L$.c5c5,iCyC!{~a`' G[NBkyAPTt2- px}siSobre o %1About %1MAC_APPLICATION_MENUOcultar %1Hide %1MAC_APPLICATION_MENUOcultar Outros Hide OthersMAC_APPLICATION_MENUPreferncias &Preferences...MAC_APPLICATION_MENUEncerrar %1Quit %1MAC_APPLICATION_MENUServiosServicesMAC_APPLICATION_MENUMostrar TudoShow AllMAC_APPLICATION_MENU Permisso negadaPermission denied Phonon::MMF"%1, %2 indefinido%1, %2 not definedQ3Accel,%1 ambguo no tratadoAmbiguous %1 not handledQ3AccelRemoverDelete Q3DataTable FalsoFalse Q3DataTableInserirInsert Q3DataTableVerdadeiroTrue Q3DataTableActualizarUpdate Q3DataTablez%1 Ficheiro no encontrado. Verifique a localizao e o nome.+%1 File not found. Check path and filename. Q3FileDialog&Apagar&Delete Q3FileDialog&No&No Q3FileDialog&OK&OK Q3FileDialog &Abrir&Open Q3FileDialog&Mudar Nome&Rename Q3FileDialog&Gravar&Save Q3FileDialogNo &Ordenado &Unsorted Q3FileDialog&Sim&Yes Q3FileDialogJ<qt>Deseja mesmo apagar %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialog,Todos os Ficheiros (*) All Files (*) Q3FileDialog0Todos os Ficheiros (*.*)All Files (*.*) Q3FileDialogAtributos Attributes Q3FileDialog RecuarBack Q3FileDialogCancelarCancel Q3FileDialog6Copiar ou Mover um FicheiroCopy or Move a File Q3FileDialog Criar Nova PastaCreate New Folder Q3FileDialogDataDate Q3FileDialogApagar %1 Delete %1 Q3FileDialogVista Detalhada Detail View Q3FileDialog PastaDir Q3FileDialog Pastas Directories Q3FileDialog Pasta: Directory: Q3FileDialogErroError Q3FileDialogFicheiroFile Q3FileDialog$&Nome do Ficheiro: File &name: Q3FileDialog$&Tipo de Ficheiro: File &type: Q3FileDialogProcurar PastaFind Directory Q3FileDialogInacessvel Inaccessible Q3FileDialogVista Abreviada List View Q3FileDialogVer &em: Look &in: Q3FileDialogNomeName Q3FileDialogNova Pasta New Folder Q3FileDialogNova Pasta %1 New Folder %1 Q3FileDialogNova Pasta 1 New Folder 1 Q3FileDialogPasta MeOne directory up Q3FileDialog AbrirOpen Q3FileDialog Abrir Open  Q3FileDialog8Antever Contedo do FicheiroPreview File Contents Q3FileDialog<Antever Informao do FicheiroPreview File Info Q3FileDialog&RecarregarR&eload Q3FileDialogApenas Leitura Read-only Q3FileDialog"Leitura e escrita Read-write Q3FileDialogLer: %1Read: %1 Q3FileDialogGuardar ComoSave As Q3FileDialog(Seleccione uma PastaSelect a Directory Q3FileDialog:Mostrar ficheiros &escondidosShow &hidden files Q3FileDialogTamanhoSize Q3FileDialogOrdenarSort Q3FileDialog$Ordenar pela &Data Sort by &Date Q3FileDialog$Ordenar pelo &Nome Sort by &Name Q3FileDialog*Ordenar pelo &Tamanho Sort by &Size Q3FileDialogEspecialSpecial Q3FileDialog$Ligao para PastaSymlink to Directory Q3FileDialog*Ligao para FicheiroSymlink to File Q3FileDialog*Ligao para EspecialSymlink to Special Q3FileDialogTipoType Q3FileDialogApenas Escrita Write-only Q3FileDialogEscrever: %1 Write: %1 Q3FileDialoga pasta the directory Q3FileDialogo ficheirothe file Q3FileDialoga ligao the symlink Q3FileDialogBNo foi possvel criar a pasta %1Could not create directory %1 Q3LocalFs2No foi possvel abrir %1Could not open %1 Q3LocalFs>No foi possvel ler a pasta %1Could not read directory %1 Q3LocalFs`No foi possvel apagar o ficheiro ou a pasta %1%Could not remove file or directory %1 Q3LocalFsRNo foi possvel mudar o nome %1 para %2Could not rename %1 to %2 Q3LocalFs8Nao foi possvel escrever %1Could not write %1 Q3LocalFsConfigurar... Customize... Q3MainWindowAlinharLine up Q3MainWindowJOperao interrompida pelo utilizadorOperation stopped by the userQ3NetworkProtocolCancelarCancelQ3ProgressDialogAplicarApply Q3TabDialogCancelarCancel Q3TabDialogPredefiniesDefaults Q3TabDialog AjudaHelp Q3TabDialogOKOK Q3TabDialog&Copiar&Copy Q3TextEdit Co&lar&Paste Q3TextEdit&Refazer&Redo Q3TextEdit&Desfazer&Undo Q3TextEdit LimparClear Q3TextEditCor&tarCu&t Q3TextEdit Seleccionar Tudo Select All Q3TextEdit FecharClose Q3TitleBarFecha a janelaCloses the window Q3TitleBarNContm comandos para manipular a janela*Contains commands to manipulate the window Q3TitleBarvMostra o nome da janela e contm controlos para a manipularFDisplays the name of the window and contains controls to manipulate it Q3TitleBar@Coloca a janela em ecr completoMakes the window full screen Q3TitleBarMaximizarMaximize Q3TitleBarMinimizarMinimize Q3TitleBar.Tira a janela da frenteMoves the window out of the way Q3TitleBarZColoca uma janela maximizada no estado normal&Puts a maximized window back to normal Q3TitleBar Restaurar abaixo Restore down Q3TitleBarRestaurar acima Restore up Q3TitleBarSistemaSystem Q3TitleBarMais...More... Q3ToolBar(desconhecido) (unknown) Q3UrlOperatorO protocolo '%1' no suporta copiar ou mover ficheiros ou pastasIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorhO protocolo '%1' no suporta criao de novas pastas;The protocol `%1' does not support creating new directories Q3UrlOperatordO protocolo '%1' no suporta obteno de ficheiros0The protocol `%1' does not support getting files Q3UrlOperator^O protocolo '%1' no suporta listagem de pastas6The protocol `%1' does not support listing directories Q3UrlOperatorfO protocolo '%1' no suporta colocao de ficheiros0The protocol `%1' does not support putting files Q3UrlOperator|O protocolo '%1' no suporta eliminao de ficheiros ou pastas@The protocol `%1' does not support removing files or directories Q3UrlOperatorO protocolo '%1' no suporta mudana de nome de ficheiros ou pastas@The protocol `%1' does not support renaming files or directories Q3UrlOperator@O protocolo '%1' no suportado"The protocol `%1' is not supported Q3UrlOperator&Cancelar&CancelQ3Wizard&Terminar&FinishQ3Wizard &Ajuda&HelpQ3Wizard&Avanar >&Next >Q3Wizard< &Recuar< &BackQ3Wizard Ligao recusadaConnection refusedQAbstractSocket Ligao expiradaConnection timed outQAbstractSocket(Mquina desconhecidaHost not foundQAbstractSocket"Rede inalcanvelNetwork unreachableQAbstractSocket$'Socket' desligadoSocket is not connectedQAbstractSocket:Operao de 'socket' expiradaSocket operation timed outQAbstractSocket&Passo acima&Step upQAbstractSpinBoxPasso &abaixo Step &downQAbstractSpinBoxActivarCheckQAccessibleButtonPressionarPressQAccessibleButtonDesactivarUncheckQAccessibleButtonActivarActivate QApplicationJActiva a janela principal do programa#Activates the program's main window QApplicationdO executvel '%1' requere Qt %2, Qt %3 encontrado.,Executable '%1' requires Qt %2, found Qt %3. QApplicationTErro de Incompatibilidade da Biblioteca QtIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Cancelar&Cancel QAxSelect&Objecto COM: COM &Object: QAxSelectOKOK QAxSelect8Seleccionar Controlo ActiveXSelect ActiveX Control QAxSelectActivarCheck QCheckBoxComutarToggle QCheckBoxDesactivarUncheck QCheckBox@&Adicionar s Cores Customizadas&Add to Custom Colors QColorDialogCores &bsicas &Basic colors QColorDialog&Cores c&ustomizadas&Custom colors QColorDialogV&erde:&Green: QColorDialog&Vermelho:&Red: QColorDialog&Saturao:&Sat: QColorDialog&Valor:&Val: QColorDialog*Canal &transparncia:A&lpha channel: QColorDialog &Azul:Bl&ue: QColorDialog C&or:Hu&e: QColorDialog FecharClose QComboBox FalsoFalse QComboBox AbrirOpen QComboBoxVerdadeiroTrue QComboBoxLFinalizao de transaco no possvelUnable to commit transaction QDB2Driver(Ligao no possvelUnable to connect QDB2DriverFAnulao de transaco no possvelUnable to rollback transaction QDB2DriverFFinalizao automtica no possvelUnable to set autocommit QDB2Driver@Ligao de varivel no possvelUnable to bind variable QDB2Result*Execuo no possvelUnable to execute statement QDB2ResultBObteno do primeiro no possvelUnable to fetch first QDB2ResultBObteno do seguinte no possvelUnable to fetch next QDB2ResultFObteno do registo %1 no possvelUnable to fetch record %1 QDB2Result.Preparao no possvelUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditO Que Isto? What's This?QDialog&Cancelar&CancelQDialogButtonBox&Fechar&CloseQDialogButtonBox&No&NoQDialogButtonBox&OK&OKQDialogButtonBox&Gravar&SaveQDialogButtonBox&Sim&YesQDialogButtonBoxAbortarAbortQDialogButtonBoxAplicarApplyQDialogButtonBoxCancelarCancelQDialogButtonBox FecharCloseQDialogButtonBox"Fechar sem GravarClose without SavingQDialogButtonBoxDescartarDiscardQDialogButtonBoxNo Gravar Don't SaveQDialogButtonBox AjudaHelpQDialogButtonBoxIgnorarIgnoreQDialogButtonBoxN&o para Todos N&o to AllQDialogButtonBoxOKOKQDialogButtonBox AbrirOpenQDialogButtonBoxRestaurarResetQDialogButtonBox.Restaurar PredefiniesRestore DefaultsQDialogButtonBox Tentar NovamenteRetryQDialogButtonBox GravarSaveQDialogButtonBoxGravar TodosSave AllQDialogButtonBoxSim para &Todos Yes to &AllQDialogButtonBox&Data de Modificao Date Modified QDirModelTipoKind QDirModelNomeName QDirModelTamanhoSize QDirModelTipoType QDirModel FecharClose QDockWidget MenosLessQDoubleSpinBoxMaisMoreQDoubleSpinBox&OK&OK QErrorMessage@&Mostrar esta mensagem novamente&Show this message again QErrorMessage&Mensagem Depurao:Debug Message: QErrorMessageErro Fatal: Fatal Error: QErrorMessage Aviso:Warning: QErrorMessagez%1 Pasta no encontrada. Por favor verifique o nome da pasta.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Ficheiro no encontrado. Por favor verifique o nome do ficheiro.A%1 File not found. Please verify the correct file name was given. QFileDialog@%1 j existe. Deseja substituir?-%1 already exists. Do you want to replace it? QFileDialog&Apagar&Delete QFileDialog &Abrir&Open QFileDialog&Mudar o Nome&Rename QFileDialog&Gravar&Save QFileDialog'%1' est protegido contra escrita. Deseja apagar de qualquer forma?9'%1' is write protected. Do you want to delete it anyway? QFileDialog,Todos os Ficheiros (*) All Files (*) QFileDialog0Todos os Ficheiros (*.*)All Files (*.*) QFileDialog2Deseja mesmo apagar '%1'?!Are sure you want to delete '%1'? QFileDialog RecuarBack QFileDialog@No foi possvel apagar a pasta.Could not delete directory. QFileDialog Criar Nova PastaCreate New Folder QFileDialogVista Detalhada Detail View QFileDialog Pastas Directories QFileDialog Pasta: Directory: QFileDialogUnidadeDrive QFileDialogFicheiroFile QFileDialog$&Nome do Ficheiro: File &name: QFileDialog$FIcheiros do tipo:Files of type: QFileDialogProcurar PastaFind Directory QFileDialogSeguinteForward QFileDialogVista Abreviada List View QFileDialog O Meu Computador My Computer QFileDialogNova Pasta New Folder QFileDialog AbrirOpen QFileDialogPasta MeParent Directory QFileDialogGravar ComoSave As QFileDialog:Mostrar ficheiros &escondidosShow &hidden files QFileDialogDesconhecidoUnknown QFileDialog&Data de Modificao Date ModifiedQFileSystemModelTipoKindQFileSystemModel O Meu Computador My ComputerQFileSystemModelNomeNameQFileSystemModelTamanhoSizeQFileSystemModelTipoTypeQFileSystemModel&Tipo de Letra&Font QFontDialog&Tamanho&Size QFontDialog&Sublinhar &Underline QFontDialogEfeitosEffects QFontDialog*&Estilo Tipo de Letra Font st&yle QFontDialogAmostraSample QFontDialog0Seleccione Tipo de Letra Select Font QFontDialog&Riscar Stri&keout QFontDialog&&Sistema de EscritaWr&iting System QFontDialog:A mudana de pasta falhou: %1Changing directory failed: %1QFtp$Ligado ao servidorConnected to hostQFtp*Ligado ao servidor %1Connected to host %1QFtp@A ligao ao servidor falhou: %1Connecting to host failed: %1QFtpLigao fechadaConnection closedQFtp2Ligao de dados recusada&Connection refused for data connectionQFtp>Ligao ao servidor %1 recusadaConnection refused to host %1QFtp(Ligao a %1 fechadaConnection to %1 closedQFtp:A criao da pasta falhou: %1Creating directory failed: %1QFtpBA descarga do ficheiro falhou: %1Downloading file failed: %1QFtp,Servidor %1 encontrado Host %1 foundQFtp4Servidor %1 no encontradoHost %1 not foundQFtp&Servidor encontrado Host foundQFtp<A listagem da pasta falhou: %1Listing directory failed: %1QFtp2A autenticao falhou: %1Login failed: %1QFtpDesligado Not connectedQFtp:A remoo da pasta falhou: %1Removing directory failed: %1QFtp@A remoo do ficheiro falhou: %1Removing file failed: %1QFtp"Erro desconhecido Unknown errorQFtpJO carregamento do ficheiro falhou: %1Uploading file failed: %1QFtpComutarToggle QGroupBox"Erro desconhecido Unknown error QHostInfo.Servidor No encontradoHost not foundQHostInfoAgent:Tipo de endereo desconhecidoUnknown address typeQHostInfoAgent"Erro desconhecido Unknown errorQHostInfoAgent$Ligado ao servidorConnected to hostQHttp*Ligado ao servidor %1Connected to host %1QHttpLigao fechadaConnection closedQHttp Ligao recusadaConnection refusedQHttp(Ligao a %1 fechadaConnection to %1 closedQHttp(O pedido HTTP falhouHTTP request failedQHttp,Servidor %1 encontrado Host %1 foundQHttp4Servidor %1 no encontradoHost %1 not foundQHttp&Servidor encontrado Host foundQHttp6Corpo parcial HTTP invlidoInvalid HTTP chunked bodyQHttpFCabealho de resposta HTTP invlidoInvalid HTTP response headerQHttp4Nenhum servidor para ligarNo server set to connect toQHttpPedido abortadoRequest abortedQHttpVO servidor fechou a ligao inesperadamente%Server closed connection unexpectedlyQHttp"Erro desconhecido Unknown errorQHttp4Tamanho de contedo erradoWrong content lengthQHttpJNo foi possvel iniciar a transacoCould not start transaction QIBaseDriver:Erro ao abrir a base de dadosError opening database QIBaseDriverNNo foi possvel finalizar a transacoUnable to commit transaction QIBaseDriverHNo foi possvel anular a transacoUnable to rollback transaction QIBaseDriverFNo foi possvel alocar a expressoCould not allocate statement QIBaseResultbNo foi possvel descrever a expresso de entrada"Could not describe input statement QIBaseResultLNo foi possvel descrever a expressoCould not describe statement QIBaseResultTNo foi possvel obter o elemento seguinteCould not fetch next item QIBaseResultDNo foi possvel encontrar o arrayCould not find array QIBaseResultPNo foi possvel obter os dados do arrayCould not get array data QIBaseResultTNo foi possvel obter informao da queryCould not get query info QIBaseResult\No foi possvel obter informao da expressoCould not get statement info QIBaseResultJNo foi possvel preparar a expressoCould not prepare statement QIBaseResultJNo foi possvel iniciar a transacoCould not start transaction QIBaseResultFNo foi possvel fechar a expressoUnable to close statement QIBaseResultNNo foi possvel finalizar a transacoUnable to commit transaction QIBaseResult:No foi possvel criar o BLOBUnable to create BLOB QIBaseResultBNo foi possvel executar a queryUnable to execute query QIBaseResult:No foi possvel abrir o BLOBUnable to open BLOB QIBaseResult6No foi possvel ler o BLOBUnable to read BLOB QIBaseResult@No foi possvel escrever o BLOBUnable to write BLOB QIBaseResult8Dispositivo sem espao livreNo space left on device QIODevice:Ficheiro ou pasta inexistenteNo such file or directory QIODevice Permisso negadaPermission denied QIODevice8Demasiados ficheiros abertosToo many open files QIODevice"Erro desconhecido Unknown error QIODevice4Mtodo de entrada Max OS XMac OS X input method QInputContext2Mtodo de entrada WindowsWindows input method QInputContextXIMXIM QInputContext*Mtodo de entrada XIMXIM input method QInputContextdDados de verificao do plugin incorrectos em '%1')Plugin verification data mismatch in '%1'QLibraryO plugin '%1' usa uma biblioteca Qt incompatvel. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryO plugin '%1' usa uma biblioteca Qt incompatvel. A chave de compilao esperada "%2", ficou "%3"OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibrary"Erro desconhecido Unknown errorQLibrary&Copiar&Copy QLineEdit Co&lar&Paste QLineEdit&Refazer&Redo QLineEdit&Desfazer&Undo QLineEditCor&tarCu&t QLineEdit ApagarDelete QLineEdit Seleccionar Tudo Select All QLineEditJNo foi possvel iniciar a transacoUnable to begin transaction QMYSQLDriverNNo foi possvel finalizar a transacoUnable to commit transaction QMYSQLDriverLNo foi possvel estabelecer a ligaoUnable to connect QMYSQLDriverPNo foi possvel abrir a base de dados 'Unable to open database ' QMYSQLDriverHNo foi possvel anular a transacoUnable to rollback transaction QMYSQLDriverjNo foi possvel fazer a ligao dos valores externosUnable to bind outvalues QMYSQLResultRNo foi possvel fazer a ligao do valorUnable to bind value QMYSQLResultBNo foi possvel executar a queryUnable to execute query QMYSQLResultJNo foi possvel executar a expressoUnable to execute statement QMYSQLResult8No foi possvel obter dadosUnable to fetch data QMYSQLResultJNo foi possvel preparar a expressoUnable to prepare statement QMYSQLResultLNo foi possvel restaurar a expressoUnable to reset statement QMYSQLResultHNo foi possvel guardar o resultadoUnable to store result QMYSQLResultfNo foi possvel guardar os resultados da expresso!Unable to store statement results QMYSQLResult%1 - [%2] %1 - [%2] QMdiSubWindow&Fechar&Close QMdiSubWindow &Mover&Move QMdiSubWindow&Restaurar&Restore QMdiSubWindow&Tamanho&Size QMdiSubWindow FecharClose QMdiSubWindow AjudaHelp QMdiSubWindowMa&ximizar Ma&ximize QMdiSubWindowMaximizarMaximize QMdiSubWindowMenuMenu QMdiSubWindowMi&nimizar Mi&nimize QMdiSubWindowMinimizarMinimize QMdiSubWindowRestaurar Baixo Restore Down QMdiSubWindow&Permanecer no &Topo Stay on &Top QMdiSubWindow FecharCloseQMenuExecutarExecuteQMenu AbrirOpenQMenuAcerca do QtAbout Qt QMessageBox AjudaHelp QMessageBox.No Mostrar Detalhes...Hide Details... QMessageBoxOKOK QMessageBox&Mostrar Detalhes...Show Details... QMessageBox8Seleccione Mtodo de Entrada Select IMQMultiInputContextDSeleccionador de mtodo de entradaMultiple input method switcherQMultiInputContextPluginSeleccionador de mtodo de entrada que utiliza o menu de contexto dos elementos de textoMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPlugin\Outro 'socket' j est escuta no mesmo porto4Another socket is already listening on the same portQNativeSocketEngineTentativa de utilizao de 'socket' IPv6 numa plataforma sem suporte IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine Ligao recusadaConnection refusedQNativeSocketEngine Ligao expiradaConnection timed outQNativeSocketEngineLDatagrama demasiado grande para enviarDatagram was too large to sendQNativeSocketEngine(Mquina inalcanvelHost unreachableQNativeSocketEngine<Descritor de 'socket' invlidoInvalid socket descriptorQNativeSocketEngineErro de rede Network errorQNativeSocketEngine2Operao de rede expiradaNetwork operation timed outQNativeSocketEngine"Rede inalcanvelNetwork unreachableQNativeSocketEngine0Operao em no 'socket'Operation on non-socketQNativeSocketEngineSem recursosOut of resourcesQNativeSocketEngine Permisso negadaPermission deniedQNativeSocketEngine>Tipo de protocolo no suportadoProtocol type not supportedQNativeSocketEngine<O endereo no est disponvelThe address is not availableQNativeSocketEngine2O endereo est protegidoThe address is protectedQNativeSocketEngineHO endereo de ligao j est em uso#The bound address is already in useQNativeSocketEngineBA mquina remota fechou a ligao%The remote host closed the connectionQNativeSocketEnginehNo foi possvel inicializar 'socket' de transmisso%Unable to initialize broadcast socketQNativeSocketEnginehNo foi possvel inicializar 'socket' no bloqueante(Unable to initialize non-blocking socketQNativeSocketEngineJNo foi possvel receber uma mensagemUnable to receive a messageQNativeSocketEngineHNo foi possvel enviar uma mensagemUnable to send a messageQNativeSocketEngine2No foi possvel escreverUnable to writeQNativeSocketEngine"Erro desconhecido Unknown errorQNativeSocketEngineDOperao de 'socket' no suportadaUnsupported socket operationQNativeSocketEngineJNo foi possvel iniciar a transacoUnable to begin transaction QOCIDriver8No foi possvel inicializarUnable to initialize QOCIDriver6No foi possvel autenticarUnable to logon QOCIDriverFNo foi possvel alocar a expressoUnable to alloc statement QOCIResultNo foi possvel fazer a licao da coluna para execuo 'batch''Unable to bind column for batch execute QOCIResultVNo foi possvel fazer o ligamento do valorUnable to bind value QOCIResult`No foi possvel executar a expresso de 'batch'!Unable to execute batch statement QOCIResultJNo foi possvel executar a expressoUnable to execute statement QOCIResultFNo foi possvel passar ao seguinteUnable to goto next QOCIResultJNo foi possvel preparar a expressoUnable to prepare statement QOCIResultNNo foi possvel finalizar a transacoUnable to commit transaction QODBCDriver,No foi possvel ligarUnable to connect QODBCDriverfNo foi possvel desactivar finalizao automticaUnable to disable autocommit QODBCDriver^No foi possvel activar finalizao automticaUnable to enable autocommit QODBCDriverHNo foi possvel anular a transacoUnable to rollback transaction QODBCDriver(QODBCResult::reset: No foi possvel definir 'SQL_CURSOR_STATIC' como atributo da expresso. Por favor verifique a configurao do seu 'driver' ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult\No foi possvel fazer o ligamento da varivelUnable to bind variable QODBCResultJNo foi possvel executar a expressoUnable to execute statement QODBCResultBObteno do primeiro no possvelUnable to fetch first QODBCResultBNo foi possvel obter o seguinteUnable to fetch next QODBCResultJNo foi possvel preparar a expressoUnable to prepare statement QODBCResult IncioHomeQObjectNomeNameQPPDOptionsModel ValorValueQPPDOptionsModelJNo foi possvel iniciar a transacoCould not begin transaction QPSQLDriverNNo foi possvel finalizar a transacoCould not commit transaction QPSQLDriverHNo foi possvel anular a transacoCould not rollback transaction QPSQLDriver,No foi possvel ligarUnable to connect QPSQLDriver@No foi possvel criar a 'query'Unable to create query QPSQLResultPaisagem LandscapeQPageSetupWidgetTamanho pgina: Page size:QPageSetupWidgetFonte papel: Paper source:QPageSetupWidgetRetratoPortraitQPageSetupWidget"Erro desconhecido Unknown error QPluginLoader@%1 j existe. Deseja substituir?/%1 already exists. Do you want to overwrite it? QPrintDialog@<qt>Deseja gravar por cima?</qt>%Do you want to overwrite it? QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogPA4 (210 x 297 mm, 8.26 x 11.7 polegadas)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialog,Nomes Alternativos: %1 Aliases: %1 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogPB5 (176 x 250 mm, 6.93 x 9.84 polegadas)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogXExecutivo (7.5 x 10 polegadas, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogNo possvel escrever no ficheiro %1. Por favor escolha um nome diferente.=File %1 is not writable. Please choose a different file name. QPrintDialog"O ficheiro existe File exists QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogPLegal (8.5 x 14 polegadas, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogPCarta (8.5 x 11 polegadas, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogOKOK QPrintDialogImprimirPrint QPrintDialog4Imprimir Para Ficheiro ...Print To File ... QPrintDialogImprimir todas Print all QPrintDialog&Seleco de pginas Print range QPrintDialog*Seleco de ImpressoPrint selection QPrintDialog.Tablide (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogJEnvelope #10 Comum EUA (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialog"ligado localmentelocally connected QPrintDialogdesconhecidounknown QPrintDialog FecharCloseQPrintPreviewDialogPaisagem LandscapeQPrintPreviewDialogRetratoPortraitQPrintPreviewDialog JuntarCollateQPrintSettingsOutput CpiasCopiesQPrintSettingsOutput OpesOptionsQPrintSettingsOutputPginas de Pages fromQPrintSettingsOutputImprimir todas Print allQPrintSettingsOutput&Seleco de pginas Print rangeQPrintSettingsOutputSeleco SelectionQPrintSettingsOutputatoQPrintSettingsOutputImpressoraPrinter QPrintWidgetCancelarCancelQProgressDialog AbrirOpen QPushButtonActivarCheck QRadioButtonDm sintaxe de classe de caracteresbad char class syntaxQRegExp2m sintaxe de antecipaobad lookahead syntaxQRegExp.m sintaxe de repetiobad repetition syntaxQRegExp^funcionalidade desactivada est a ser utilizadadisabled feature usedQRegExp(valor octal invlidoinvalid octal valueQRegExp0limite interno alcanadomet internal limitQRegExp:delimitador esquerdo em faltamissing left delimQRegExpsem errosno error occurredQRegExpfim inesperadounexpected endQRegExp:Erro ao abrir a base de dadosError opening databaseQSQLite2DriverJNo foi possvel iniciar a transacoUnable to begin transactionQSQLite2DriverNNo foi possvel finalizar a transacoUnable to commit transactionQSQLite2DriverJNo foi possvel executar a expressoUnable to execute statementQSQLite2ResultHNo foi possvel obter os resultadosUnable to fetch resultsQSQLite2Result<Erro ao fechar a base de dadosError closing database QSQLiteDriver:Erro ao abrir a base de dadosError opening database QSQLiteDriverJNo foi possvel iniciar a transacoUnable to begin transaction QSQLiteDriverNNo foi possvel finalizar a transacoUnable to commit transaction QSQLiteDriverVIncorrespondncia de contagem de parmetrosParameter count mismatch QSQLiteResult^No foi possvel fazer a ligao dos parametrosUnable to bind parameters QSQLiteResultJNo foi possvel executar a expressoUnable to execute statement QSQLiteResult<No foi possvel obter a linhaUnable to fetch row QSQLiteResultLNo foi possvel restaurar a expressoUnable to reset statement QSQLiteResult FecharCloseQScriptDebuggerCodeFinderWidgetNomeNameQScriptDebuggerLocalsModel ValorValueQScriptDebuggerLocalsModelNomeNameQScriptDebuggerStackModelProcurarSearchQScriptEngineDebugger FecharCloseQScriptNewBreakpointWidget FundoBottom QScrollBarBorda esquerda Left edge QScrollBarLinha abaixo Line down QScrollBarLinha acimaLine up QScrollBar"Pgina para baixo Page down QScrollBar(Pgina para esquerda Page left QScrollBar&Pgina para direita Page right QScrollBar Pgina para cimaPage up QScrollBarPosioPosition QScrollBarBorda direita Right edge QScrollBar&Deslizar para baixo Scroll down QScrollBarDeslizar aqui Scroll here QScrollBar,Deslizar para esquerda Scroll left QScrollBar.Deslizar para a direita Scroll right QScrollBar$Deslizar para cima Scroll up QScrollBarTopoTop QScrollBar++ QShortcutAltAlt QShortcutAnteriorBack QShortcutBackspace Backspace QShortcutBacktabBacktab QShortcutBass Boost Bass Boost QShortcutBass Baixo Bass Down QShortcutBass CimaBass Up QShortcut ChamarCall QShortcutCaps Lock Caps Lock QShortcutCapsLockCapsLock QShortcut LimparClear QShortcut FecharClose QShortcutContexto1Context1 QShortcutContexto2Context2 QShortcutContexto3Context3 QShortcutContexto4Context4 QShortcutCtrlCtrl QShortcut DeleteDel QShortcut DeleteDelete QShortcut BaixoDown QShortcutEndEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoritos Favorites QShortcutInverterFlip QShortcutSeguinteForward QShortcutDesligarHangup QShortcut AjudaHelp QShortcutHomeHome QShortcut Pgina Principal Home Page QShortcut InsertIns QShortcut InsertInsert QShortcutExecutar (0) Launch (0) QShortcutExecutar (1) Launch (1) QShortcutExecutar (2) Launch (2) QShortcutExecutar (3) Launch (3) QShortcutExecutar (4) Launch (4) QShortcutExecutar (5) Launch (5) QShortcutExecutar (6) Launch (6) QShortcutExecutar (7) Launch (7) QShortcutExecutar (8) Launch (8) QShortcutExecutar (9) Launch (9) QShortcutExecutar (A) Launch (A) QShortcutExecutar (B) Launch (B) QShortcutExecutar (C) Launch (C) QShortcutExecutar (D) Launch (D) QShortcutExecutar (E) Launch (E) QShortcutExecutar (F) Launch (F) QShortcut&Correio Electrnico Launch Mail QShortcut Mdia Launch Media QShortcutEsquerdaLeft QShortcutMdia Seguinte Media Next QShortcutTocar Mdia Media Play QShortcutMdia AnteriorMedia Previous QShortcutGravao Mdia Media Record QShortcutParar Mdia Media Stop QShortcutMenuMenu QShortcutMetaMeta QShortcutNoNo QShortcutNum LockNum Lock QShortcutNum LockNumLock QShortcutNumber Lock Number Lock QShortcutAbrir EndereoOpen URL QShortcutPage Down Page Down QShortcutPage UpPage Up QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut PrintPrint QShortcutPrint Screen Print Screen QShortcutRefrescarRefresh QShortcut ReturnReturn QShortcutDireitaRight QShortcut GravarSave QShortcutScroll Lock Scroll Lock QShortcutScrollLock ScrollLock QShortcutProcurarSearch QShortcut SelectSelect QShortcut ShiftShift QShortcut SpaceSpace QShortcutHibernaoStandby QShortcut PararStop QShortcut SysReqSysReq QShortcutSystem RequestSystem Request QShortcutTabTab QShortcutTreble Baixo Treble Down QShortcutTreble Cima Treble Up QShortcutCimaUp QShortcutVolume Cima Volume Down QShortcutVolume Mute Volume Mute QShortcutVolume Baixo Volume Up QShortcutSimYes QShortcut"Pgina para baixo Page downQSlider(Pgina para esquerda Page leftQSlider&Pgina para direita Page rightQSlider Pgina para cimaPage upQSliderPosioPositionQSlider2Operao de rede expiradaNetwork operation timed outQSocks5SocketEngineCancelarCancelQSoftKeyManagerSairExitQSoftKeyManagerOKOKQSoftKeyManager OpesOptionsQSoftKeyManager SelectSelectQSoftKeyManager MenosLessQSpinBoxMaisMoreQSpinBoxCancelarCancelQSql.Cancelar as alteraes?Cancel your edits?QSqlConfirmarConfirmQSql ApagarDeleteQSql(Apagar este registo?Delete this record?QSqlInserirInsertQSqlNoNoQSql*Gravar as alteraes? Save edits?QSqlActualizarUpdateQSqlSimYesQSql"Erro desconhecido Unknown error QSslSocket"Erro desconhecido Unknown error QStateMachine:Erro ao abrir a base de dadosError opening database QSymSQLDriverJNo foi possvel iniciar a transacoUnable to begin transaction QSymSQLDriverVIncorrespondncia de contagem de parmetrosParameter count mismatch QSymSQLResult^No foi possvel fazer a ligao dos parametrosUnable to bind parameters QSymSQLResult<No foi possvel obter a linhaUnable to fetch row QSymSQLResultLNo foi possvel restaurar a expressoUnable to reset statement QSymSQLResult\Outro 'socket' j est escuta no mesmo porto4Another socket is already listening on the same portQSymbianSocketEngineTentativa de utilizao de 'socket' IPv6 numa plataforma sem suporte IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQSymbianSocketEngine Ligao recusadaConnection refusedQSymbianSocketEngine Ligao expiradaConnection timed outQSymbianSocketEngineLDatagrama demasiado grande para enviarDatagram was too large to sendQSymbianSocketEngine(Mquina inalcanvelHost unreachableQSymbianSocketEngine<Descritor de 'socket' invlidoInvalid socket descriptorQSymbianSocketEngineErro de rede Network errorQSymbianSocketEngine2Operao de rede expiradaNetwork operation timed outQSymbianSocketEngine"Rede inalcanvelNetwork unreachableQSymbianSocketEngine0Operao em no 'socket'Operation on non-socketQSymbianSocketEngineSem recursosOut of resourcesQSymbianSocketEngine Permisso negadaPermission deniedQSymbianSocketEngine>Tipo de protocolo no suportadoProtocol type not supportedQSymbianSocketEngine<O endereo no est disponvelThe address is not availableQSymbianSocketEngine2O endereo est protegidoThe address is protectedQSymbianSocketEngineHO endereo de ligao j est em uso#The bound address is already in useQSymbianSocketEngineBA mquina remota fechou a ligao%The remote host closed the connectionQSymbianSocketEnginehNo foi possvel inicializar 'socket' de transmisso%Unable to initialize broadcast socketQSymbianSocketEnginehNo foi possvel inicializar 'socket' no bloqueante(Unable to initialize non-blocking socketQSymbianSocketEngineJNo foi possvel receber uma mensagemUnable to receive a messageQSymbianSocketEngineHNo foi possvel enviar uma mensagemUnable to send a messageQSymbianSocketEngine2No foi possvel escreverUnable to writeQSymbianSocketEngine"Erro desconhecido Unknown errorQSymbianSocketEngineDOperao de 'socket' no suportadaUnsupported socket operationQSymbianSocketEngineLNo foi possvel estabelecer a ligaoUnable to open connection QTDSDriverRNo foi possvel utilizar a base de dadosUnable to use database QTDSDriverActivarActivateQTabBar FecharCloseQTabBarPressionarPressQTabBar,Deslizar para Esquerda Scroll LeftQTabBar*Deslizar para Direita Scroll RightQTabBar&Copiar&Copy QTextControl Co&lar&Paste QTextControl&Refazer&Redo QTextControl&Desfazer&Undo QTextControl<Copiar &Localizao da LigaoCopy &Link Location QTextControlCor&tarCu&t QTextControl ApagarDelete QTextControl Seleccionar Tudo Select All QTextControl AbrirOpen QToolButtonPressionarPress QToolButton@Esta plataforma no suporta IPv6#This platform does not support IPv6 QUdpSocketRefazerDefault text for redo actionRedo QUndoGroupDesfazerDefault text for undo actionUndo QUndoGroup<vazio> QUndoModelRefazerDefault text for redo actionRedo QUndoStackDesfazerDefault text for undo actionUndo QUndoStackHInserir carcter de controlo Unicode Insert Unicode control characterQUnicodeControlCharacterMenuVLRE Incio de encaixe esquerda-para-direita$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu>LRM Marca esquerda-para-direitaLRM Left-to-right markQUnicodeControlCharacterMenu`LRO Incio de sobreposio esquerda-para-direita#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu<PDF Formatao pop direccionalPDF Pop directional formattingQUnicodeControlCharacterMenuVRLE Incio de encaixe direita-para-esquerda$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu>RLM Marca direita-para-esquerdaRLM Right-to-left markQUnicodeControlCharacterMenu`RLO Incio de sobreposio direita-para-esquerda#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu>ZWJ Ligador de comprimento zeroZWJ Zero width joinerQUnicodeControlCharacterMenuHZWNJ No-ligador de comprimento zeroZWNJ Zero width non-joinerQUnicodeControlCharacterMenu>ZWSP Espao de comprimento zeroZWSP Zero width spaceQUnicodeControlCharacterMenu FundoBottomQWebPageIgnorarIgnoreQWebPageIgnorar Ignore Grammar context menu itemIgnoreQWebPageBorda esquerda Left edgeQWebPage"Pgina para baixo Page downQWebPage(Pgina para esquerda Page leftQWebPage&Pgina para direita Page rightQWebPage Pgina para cimaPage upQWebPage PausePauseQWebPageRestaurarResetQWebPageBorda direita Right edgeQWebPage&Deslizar para baixo Scroll downQWebPageDeslizar aqui Scroll hereQWebPage,Deslizar para esquerda Scroll leftQWebPage.Deslizar para a direita Scroll rightQWebPage$Deslizar para cima Scroll upQWebPage Seleccionar Tudo Select AllQWebPage PararStopQWebPageTopoTopQWebPageDesconhecidoUnknownQWebPageO Que Isto? What's This?QWhatsThisAction**QWidget&Terminar&FinishQWizard &Ajuda&HelpQWizard&Avanar >&Next >QWizard< &Recuar< &BackQWizardCancelarCancelQWizard AjudaHelpQWizard%1 - [%2] %1 - [%2] QWorkspace&Fechar&Close QWorkspace &Mover&Move QWorkspace&Restaurar&Restore QWorkspace&Tamanho&Size QWorkspace&Sair Sombra&Unshade QWorkspace FecharClose QWorkspaceMa&ximizar Ma&ximize QWorkspaceMi&nimizar Mi&nimize QWorkspaceMinimizarMinimize QWorkspaceRestaurar Baixo Restore Down QWorkspaceSombr&aSh&ade QWorkspace&Permanecer no &Topo Stay on &Top QWorkspacedeclarao de codificao ou declarao nica esperada ao ler a declarao XMLYencoding declaration or standalone declaration expected while reading the XML declarationQXmlTerro na declarao de uma entidade externa3error in the text declaration of an external entityQXml6erro ao analisar comentrio$error occurred while parsing commentQXml6erro ao analisar o contedo$error occurred while parsing contentQXmlberro ao analisar a definio de tipo de documento5error occurred while parsing document type definitionQXml2erro ao analisar elemento$error occurred while parsing elementQXml6erro ao analisar referncia&error occurred while parsing referenceQXml<erro disparado pelo consumidorerror triggered by consumerQXmlreferncia de entidade geral analisada externa no permitida na DTD;external parsed general entity reference not allowed in DTDQXmlreferncia de entidade geral analisada externa no permitida no valor do atributoGexternal parsed general entity reference not allowed in attribute valueQXmlrreferncia de entidade geral interna no permitida na DTD4internal general entity reference not allowed in DTDQXmlVnome invlido de instruo de processamento'invalid name for processing instructionQXml(uma letra esperadaletter is expectedQXmlTmais de uma definio de tipo de documento&more than one document type definitionQXml.no ocorreu nenhum errono error occurredQXml(entidades recursivasrecursive entitiesQXmlbdeclarao nica esperada ao ler a declarao XMLAstandalone declaration expected while reading the XML declarationQXml2m combinao de etiqueta tag mismatchQXml&carcter inesperadounexpected characterQXml4fim de ficheiro inesperadounexpected end of fileQXmlnreferncia de entidade no analisada em contexto errado*unparsed entity reference in wrong contextQXmlNverso esperada ao ler a declarao XML2version expected while reading the XML declarationQXmlDvalor errado para declarao nica&wrong value for standalone declarationQXml SelectSelectQmlJSDebugger::QmlToolBarx2goclient-4.0.5.1/res/i18n/qt_ru.qm0000644000000000000000000106323412675050177013707 0ustar fdfffi ffgl5r 8D:`:cBQB4`<%`Ƚy5> 4deDceeįDį~ @] ym W~R'^QWwAQ%PHt03!nrvS8$$&S.1(2Q(4Q(4(4'5(5(5*yJ*yT*y*T*0X|*0Ђ+Fd+F+Lг+f6a+f+zb+K +Tp+%+zc+6++#++eG+W+įKV+įT+įq+c334r77:9C;=;M@BjHC:C:{F0ikFn47Fn4G+H/!Hw9IHw9eHI'I\I`IJ+KJ+J6LHJ6dUJ6J6J6eJ6hJ6J6J6 J6 /J6J6JcbtJKQK TL "L*N1LZ"L4NLdLb;L M5MbMeM4M~dM?FNNB O|cPFENPFEgPFEԎPCbQ RR|;R̼eRS7S8^T^T2Tʴ1HTF+U?^U|U}0V1ӿV1 Vl>VV5$VV5WV$VmVE5W]WgWWT9WTWT6X~X97XX-X˙X81YWYYgY:6Y}Z+:Zg:ZkZZ P[;^[=w[f3?+[f3\\]4\]4H\]4wX\\!\\@atdgc<lG&t>w|^T|^|n|ANcZyvvS f'V)CBMdW^A4L52.%6CZdIAF=[UDgt+BI/É?y4XtD\D%2WRnɵnhɵn>JɵnDɵn\ɵnɵnɵnɵn:ɵnnuY*y B& BvB *T'7nUM1uslN)a.q'pTx۔ ƻ><H_sbBq8,,ɤW>L<߽p`55v7#Q̜%UT%UTy](Ŏ*4-cte`-ct.+2385vPg CjRllr_l2Ol2UoR]orpEpN0Ou&Sv̲{v̲|;w^~Ux2|{yihc6GNFI24I&`uW32h2W{'.RAi7Pt0\==NX dyȔ,T Utɷ~ʯ_e;Wy#^6J$urEt.`@H0QTV߮~SIR|QH  ~^ Yda $W!g)"l&Xd )\-(./=N?/Xt|01$<1$u5~#:su< J<3 =C>?2`?Nզ@V iB!IFR M<Nky UijW~]E`i`jtlglyzK+l}2oiavtyf vty3.$1!l%"u<,; 9Y4<)GSe |6%6d6ҥSA^'JT:RSTx=~~.9'vEE1{=w8A:^τ CnA&!F^[yLQtPmUnԠUtjX`0qme|MdOMkE"/E-dnwHw 6e.^0 IP 9ڎh-IX 45B!eF&)Al*/eA+ ,/,NW,1E6;;s; i:?4XByEc 'FIQbtK~NjOZf3\cI1`c`b8cփ/cT<f#g&4 jC^mn0qRqtuH:u(%{>}kaL}|R>A~q$_Ycyk:CVK&*$}$u 07+(A,.,ʁr^K2L֊duSXހ.? n_,@nhfqBQ&;yω#aeO-wGI+AS- nR7^0@'DH=&H?&mK,n.J/?@4r8wv?,CIxSalJKL MgO*R.|R>XXE%YM"YM-^trdKh^QiVnQnѾnY"r?csscs\w p#xB/^2,"%Nrۊcat;TN_] ]&I9@IIcIIIIlILINYIF( ZQI*\Y*i*y+")T))*()I,++,*,l+duD&uD26DtoS,4,U4,",!,O,X]k>`nrNttLVdJ.O_>Eq.ɘe#.˓E5$@  468GfR=fRG>* {<U;_B9N$-6cTpS^Pq)V1VLfRh|T,4y&O3 h 2 Q MQKU%MQF <bb? l("o$7$ق%CQ&~F&I)2N)!]+Ш,53 X5-8.X;_h?"^?>u9?%_FuKNtK-MN>RU5V|]=i]CeLg^4hk5y^N({yw?ʶJik5t75tF8:ΞG% n)nnصPǥ 9+9+M+DU`Cǩnt7{yTfՒ2;#/xAWr}9\r=sQEϾO6N!%`%*cp:{=,?0C-d53UüNELC^2ƨ4ƨP0˾D?hpҝz=0ҰoلR)]iTէ?O<؊=v؊=Z>ti}Bwzqܓ7jܳZߺサ'f<f~tU롥\`2Nv}mߏ^!5-dDDy   T T$ba~bv~b6o?)iMLt `!BA%??d'(]6)ўv+u04+3s,87/ /T/X14~6 9f8<dj? 2ϖAB>N!DERFg&G!GbLAUOrEPѧQ1 RC&$SnT U3UHUUyUT<^YĻZ`[[Ѭ]k*:]d^n#_PC_P_p`u>d`*d`Ҕe=i'i2kQm?$oNxy;]{?{M}u4}w}wD}wJ}ڊhs11p~ z~ ~Ě~ltIiru'{7p~ z~ %~ ~EByvttfYd&..E3"P iU>uk#5DؠYW^otYt.tftt9)-nl _ 4,Ga+/Usz:ȄFaC ʢkDʢʬƴhdl1daqd>dd0359AgэiDf+8L{NS`㵾 uOz|kCyJU5UdTVeLBhwO 2,%6 #- A y!+4,D/52j3g42J5@h6(7D9!:m:%T?;CU]CU>DE[zGmIN(J0JK@KQ~U|V7gW<(\ۺ\Doare nlg*.MLld `n8_^p&At@Ew>/y' |(^||}wZy}$}$D}$~9<4Dϗ:ӹZr~]hVND7L>{9KNqiLiZSnj0-nieK<pf+:E.·e··3ýj׳:Nj:nήT~d Lnc/0fCutnk-njee It;U N7E x~$ȥ-NvONUu9s%5T;M}* e~ri~7WԆ&b Ai9%dwb !D# #%%5%d"r'-..5kE=g== ?V?[@TCtI Efe\NP1PhV%*IV%+XU  7Z`awbD=7bGNfdfpgAFhIi$=knx1 z*2||QR*d~Jو5+UMcX(.)zc.54C5P^Bg))r)Xm!p^@enH]7[b†5giC+q~U%ʴ5eʴ5ʶg=5ϡ$aы#*D}^ :Ԅו۔#D$'NdpAF5NF5fZYp9R+>4NtIց Wus WMN `B bR bb b` b` d gUYy i3U kkw la}j lf ln ok+ qv qvڲ qzA& tN u xq( |o |# |{; ͧ Jn tA t Y ., #  _ )a F>    le̢ Yv  u/ Jo  w B ҉ 4. h, (5 > >qq < Uc kG M c5 E `"  nZx N  V) % u"  Y+ Y>( 0 KL  팤 E" l~.D %' MN 5 , t / C' K| =T q3  D' x }1 9! oE Ą  e #R )k */d + .>Z 5* 74 7u ;P jxm $N+_ # IX I_ I ;E~ 0 a  r f jV~ I( ! 'W  J; $e $ %p\D ,5 ,1 = ]w a | N4, t `5 Sd& nax " pm zn B} v< ȯ' tO $ l< poy zp6 ʀs ˔ }p PXD PK %Q / ~tI .~ 68 >> h v"; :b f 8@ f X 4@ U .  )& s; s ~ AA( 9P 1u u 9d 05 r! r m,D 5 !t #-t #-t} ' < 0N^> 5r :  AQ* CUY E9AQ IN L5 L~ LX L Mc\r OO O! P..q/ R SB VG+ WW X\ Z2 \Ot ]$iS `V c f)8 f) f=9 io>n j l#8` m`Q n|n w@ xR yrL {n3 >~K L  H6 H G [  n7 $ .@@ y G i; <P <[  L Uf   zdL %3 J;P J    t.% k ӇLz  MY J N>OA / ̺ C & w -D!. .S/ x ۷ܤ rf9 k{ kJ M U)3# } <Os f^  > 03j O  b $r8 * z+  &  1  I * 9NV % `N N 3 L s xH7 [ Iu  !pz $ %6br )Ε .a 2 7Fܧ <y =ю >)_ >* >,R >78 >H >S > >K >h >kd >L ?t| A^ DT3@ Fn1 G(a I]8 Ia- J> K K L² Mb: P@ QTV RV RV͍ RVؑ Rn S.N SG S T~- YӉ Yhe [ hۮI j7o_ m( pb4 sL! vB ] BE, ` Th~ T]H T2 Tl  F` j  =  o ,' ,0 S )d )d~J TY z .h .> .^ . . .| . .n )  K >  a az P yO % q e.3k x0 C '[ N   hN ɾd%2 ɾd't e ̈́^s > ҂Z Ӵ ء{ ߢ.I  >] % u t h 'D |  b#. H Xt n< 9 )}} t L aT+ / .} # :b3 Uqا  [; ʜ`\ f f f $т 3q <  @ $ o  z #$ #= %ni '.w (I$ED (N{ +>cc +k 0Eڔ 64 ;ɾ Cn Fg? K9 Ptf PtT R"y S,= T>, ci dB. fe * fe> g  g. hQ$. iFC# i i$ jN jy jӮX kGnD l"n m9 m9 Y nM s'~ u4 u3 uS v  v& v{ 6 w wD wq w}@ w}DJ w} yn |[  uB< #~ .; <? hj J9 b " | ^} %O  n ] }R R %7i P  xN "6K UX? ɰe F ri  X>e Mj bi Y &M xX D?  + t5f t5 5 * ?H >2 g~  )3 - P$RwwZ>Y< @ao |T[o,~ (6^<]n"gT[vI !a&-M*X*+%/EZ2/Es/Ew4Qt$7SjIEI_4"K GNOOY S5XRuqXRZo[ [ ֐a.a.La%!gcG i$"nyGBsW"v6` v<_QvɅEMy$y?."H~6>%+9>;3,=Q4x}N aNa'2/4d=~SHdN1^<58Ǘ:Z5DBWez{5ʖL3Ӯ`obӮ`Ӯ`A~3  rUݖ mU$ߍ[yɇ4^orFjsj  %; .|z 9  GlD~Js"#"#p$UC%4%4X'w7,-b-vG0i)/?0031c51cx2wT.>kDRF74UGMHCiJd5JmKJL$.Rl}W][{*Lb4rc5Xc5=cg3eiC[iTKlp(qiikv)ǛyCS{`fh{~a-#~516$|V&&DDD,E`l%{``nY[>)Onͣ6: t>bN|  Eß"~gdTLrZr%-1gkyE֠4U ڔ."H'T/344Ln'݋>BP˯j}t2^\YemdوUi 0:@KBL 2:;04:C Close Tab CloseButton<=5>?@545;5=>> Debugger::JSAgentWatchData([0AA82 @07<5@>< %1][Array of length %1]Debugger::JSAgentWatchData"$8:B82=0O >H81:0! Fake error! FakeReply,5:>@@5:B=K9 04@5A URL Invalid URL FakeReply ?@>3@0<<5 %1About %1MAC_APPLICATION_MENU!:@KBL %1Hide %1MAC_APPLICATION_MENU !:@KBL >AB0;L=K5 Hide OthersMAC_APPLICATION_MENU0AB@>9:8 &Preferences...MAC_APPLICATION_MENU025@H8BL %1Quit %1MAC_APPLICATION_MENU !;C61KServicesMAC_APPLICATION_MENU>:070BL 2A5Show AllMAC_APPLICATION_MENU.!?5F80;L=K5 2>7<>6=>AB8 AccessibilityPhonon::1I5=85 CommunicationPhonon::3@KGamesPhonon:: C7K:0MusicPhonon::#254><;5=8O NotificationsPhonon:: 845>VideoPhonon::<html>5@5:;NG5=85 =0 CAB@>9AB2> 2K2>40 72C:0 <b>%1</b><br/>, :>B>@>5 8<55B 2KAH89 ?@8>@8B5B 8;8 =0AB@>5=> 4;O >1@01>B:8 40==>3> ?>B>:0.</html>Switching to the audio playback device %1
which has higher preference or is specifically configured for this stream.Phonon::AudioOutput<html>5@5:;NG5=85 =0 72C:>2>5 CAB@>9AB2> <b>%1</b><br/>, :>B>@>5 AB0;> 4>ABC?=> 8 8<55B 2KAH89 ?@8>@8B5B.</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutput<html>2C:>2>5 CAB@>9AB2> <b>%1</b> =5 @01>B05B.<br/>C45B 8A?>;L7>20BLAO <b>%2</b>.</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutput:>72@0I5=85 : CAB@>9AB2C %1Revert back to device '%1'Phonon::AudioOutput=8<0=85: >E>65, >A=>2=>9 <>4C;L GStreamer =5 CAB0=>2;5=. >445@6:0 2845> 8 0C48> >B:;NG5=0~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::Backend=8<0=85: >E>65, ?0:5B gstreamer0.10-plugins-good =5 CAB0=>2;5=. 5:>B>@K5 2>7<>6=>AB8 2>A?@>872545=8O 2845> =54>ABC?=K.Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendBACBAB2C5B =5>1E>48<K9 :>45:. 0< =C6=> CAB0=>28BL A;54CNI85 :>45:8 4;O 2>A?@>872545=8O 40==>3> A>45@68<>3>: %0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObject52>7<>6=> =0G0BL 2>A?@>872545=85. @>25@LB5 ?@028;L=>ABL CAB0=>2:8 GStreamer 8 C1548B5AL, GB> ?0:5B libgstreamer-plugins-base CAB0=>2;5=.wCannot start playback. Check your GStreamer installation and make sure you have libgstreamer-plugins-base installed.Phonon::Gstreamer::MediaObject\5 C40;>AL 45:>48@>20BL 8AB>G=8: <5480-40==KE.Could not decode media source.Phonon::Gstreamer::MediaObjectN5 C40;>AL =09B8 8AB>G=8: <5480-40==KE.Could not locate media source.Phonon::Gstreamer::MediaObject5 C40;>AL >B:@KBL 72C:>2>5 CAB@>9AB2>. #AB@>9AB2> C65 8A?>;L7C5BAO.:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObjectR5 C40;>AL >B:@KBL 8AB>G=8: <5480-40==KE.Could not open media source.Phonon::Gstreamer::MediaObjectP5:>@@5:B=K9 B8? 8AB>G=8:0 <5480-40==KE.Invalid source type.Phonon::Gstreamer::MediaObjectLBACBAB2C5B AF5=0@89 CAB0=>2:8 :>45:0.&Missing codec helper script assistant.Phonon::Gstreamer::MediaObjectN5 C40;>AL CAB0=>28BL <>4C;L :>45:0: %0.Plugin codec installation failed for codec: %0Phonon::Gstreamer::MediaObject>ABC? 70?@5IQ= Access denied Phonon::MMF#65 ACI5AB2C5BAlready exists Phonon::MMF*>A?@>872545=85 72C:0 Audio Output Phonon::MMFtC48>- 8;8 2845>-A>AB>2;ONI0O =5 <>65B 1KBL 2>A?@>872545=0-Audio or video components could not be played Phonon::MMF8H81:0 2>A?@>872545=8O 72C:0Audio output error Phonon::MMF@5 C40;>AL CAB0=>28BL A>548=5=85Could not connect Phonon::MMFH81:0 DRM DRM error Phonon::MMF(H81:0 45:>48@>20=8O Decoder error Phonon::MMF(!>548=5=85 @07>@20=> Disconnected Phonon::MMFA?>;L7C5BAOIn use Phonon::MMFL54>AB0B>G=0O A:>@>ABL ?5@540G8 40==KEInsufficient bandwidth Phonon::MMF,5:>@@5:B=K9 04@5A URL Invalid URL Phonon::MMF*5:>@@5:B=K9 ?@>B>:>;Invalid protocol Phonon::MMFBH81:0 H8@>:>25I0B5;L=>9 ?5@540G8Multicast error Phonon::MMF<H81:0 A5B52>3> >1<5=0 40==K<8Network communication error Phonon::MMF!5BL =54>ABC?=0Network unavailable Phonon::MMF5B >H81:8No error Phonon::MMF5 =0945=> Not found Phonon::MMF5 3>B>2> Not ready Phonon::MMF"5 ?>445@68205BAO Not supported Phonon::MMF*54>AB0B>G=> @5AC@A>2 Out of memory Phonon::MMF5@5?>;=5=85Overflow Phonon::MMFCBL =5 =0945=Path not found Phonon::MMF>ABC? 70?@5IQ=Permission denied Phonon::MMF*H81:0 ?@>:A8-A5@25@0Proxy server error Phonon::MMF>@>:A8-A5@25@ =5 ?>445@68205BAOProxy server not supported Phonon::MMF!83=0; A5@25@0 Server alert Phonon::MMFV>B>:>2>5 2>A?@>872545=85 =5 ?>445@68205BAOStreaming not supported Phonon::MMF@#AB@>9AB2> 2>A?@>872545=8O 72C:0The audio output device Phonon::MMF865 3@0=8FK Underflow Phonon::MMF.58725AB=0O >H81:0 (%1)Unknown error (%1) Phonon::MMF8H81:0 2>A?@>872545=8O 2845>Video output error Phonon::MMFH81:0 703@C7:8Download error Phonon::MMF::AbstractMediaPlayer4H81:0 >B:@KB8O 04@5A0 URLError opening URL Phonon::MMF::AbstractMediaPlayer*H81:0 >B:@KB8O D09;0Error opening file Phonon::MMF::AbstractMediaPlayer.H81:0 >B:@KB8O @5AC@A0Error opening resource Phonon::MMF::AbstractMediaPlayer^H81:0 >B:@KB8O 8AB>G=8:0: @5AC@A =5 1K; >B:@KB)Error opening source: resource not opened Phonon::MMF::AbstractMediaPlayer25 C40;>AL 703@C78BL :;8?Loading clip failed Phonon::MMF::AbstractMediaPlayer45 3>B>2 : 2>A?@>872545=8NNot ready to play Phonon::MMF::AbstractMediaPlayer2>A?@>872545=85 7025@H5=>Playback complete Phonon::MMF::AbstractMediaPlayerN5 C40;>AL CAB0=>28BL C@>25=L 3@><:>AB8Setting volume failed Phonon::MMF::AbstractMediaPlayer65 C40;>AL ?>;CG8BL ?>78F8NGetting position failed Phonon::MMF::AbstractVideoPlayer.5 C40;>AL >B:@KBL :;8?Opening clip failed Phonon::MMF::AbstractVideoPlayerP5 C40;>AL ?@8>AB0=>28BL 2>A?@>872545=85 Pause failed Phonon::MMF::AbstractVideoPlayer:5 C40;>AL CAB0=>28BL ?>78F8N Seek failed Phonon::MMF::AbstractVideoPlayer %1 F%1 HzPhonon::MMF::AudioEqualizer65 C40;>AL ?>;CG8BL ?>78F8NGetting position failedPhonon::MMF::AudioPlayer0H81:0 >B>1@065=8O 2845>Video display errorPhonon::MMF::DsaVideoPlayer:;NG5=>EnabledPhonon::MMF::EffectFactory8>MDD8F85=B 70BCE0=8O ' (%)Decay HF ratio (%) Phonon::MMF::EnvironmentalReverb(@5<O 70BCE0=8O (<A)Decay time (ms) Phonon::MMF::EnvironmentalReverb;>B=>ABL (%) Density (%) Phonon::MMF::EnvironmentalReverb 0AA5820=85 (%) Diffusion (%) Phonon::MMF::EnvironmentalReverb00BCE0=85 >B@065=89 (<A)Reflections delay (ms) Phonon::MMF::EnvironmentalReverb0#@>25=L >B@065=89 (<0@)Reflections level (mB) Phonon::MMF::EnvironmentalReverb"045@6:0 ME0 (<A)Reverb delay (ms) Phonon::MMF::EnvironmentalReverb$#@>25=L ME0 (<0@)Reverb level (mB) Phonon::MMF::EnvironmentalReverb(#@>25=L ' >B@065=89 Room HF level Phonon::MMF::EnvironmentalReverb0#@>25=L >B@065=89 (<0@)Room level (mB) Phonon::MMF::EnvironmentalReverbH81:0 >B:@KB8O 8AB>G=8:0: =5 C40;>AL >?@545;8BL B8? <5480-40==KE8Error opening source: media type could not be determinedPhonon::MMF::MediaObjectPH81:0 >B:@KB8O 8AB>G=8:0: A60BK9 @5AC@A,Error opening source: resource is compressedPhonon::MMF::MediaObject\H81:0 >B:@KB8O 8AB>G=8:0: =5:>@@5:B=K9 @5AC@A(Error opening source: resource not validPhonon::MMF::MediaObject`H81:0 >B:@KB8O 8AB>G=8:0: B8? =5 ?>445@68205BAO(Error opening source: type not supportedPhonon::MMF::MediaObjectR5 C40;>AL 7040BL C:070==CN B>G:C 4>ABC?0Failed to set requested IAPPhonon::MMF::MediaObject#@>25=L (%) Level (%)Phonon::MMF::StereoWidening0H81:0 >B>1@065=8O 2845>Video display errorPhonon::MMF::SurfaceVideoPlayer57 72C:0MutedPhonon::VolumeSliderA?>;L7C9B5 40==K9 @53C;OB>@ 4;O =0AB@>9:8 3@><:>AB8. @09=55 ;52>5 ?>;>65=85 A>>B25BAB2C5B 0%, :@09=55 ?@02>5 - %1%WUse this slider to adjust the volume. The leftmost position is 0%. The rightmost is %1%Phonon::VolumeSlider@><:>ABL: %1% Volume: %1%Phonon::VolumeSlider&%1, %2 =5 >?@545;Q=%1, %2 not definedQ3AccelR5>4=>7=0G=0O :><18=0F8O %1 =5 >1@01>B0=0Ambiguous %1 not handledQ3Accel#40;8BLDelete Q3DataTable5BFalse Q3DataTableAB028BLInsert Q3DataTable0True Q3DataTable1=>28BLUpdate Q3DataTablez%1 $09; =5 =0945=. @>25@LB5 ?@028;L=>ABL ?CB8 8 8<5=8 D09;0.+%1 File not found. Check path and filename. Q3FileDialog&#40;8BL&Delete Q3FileDialog&5B&No Q3FileDialog&&OK Q3FileDialog&B:@KBL&Open Q3FileDialog&5@58<5=>20BL&Rename Q3FileDialog&!>E@0=8BL&Save Q3FileDialog"&5 C?>@O4>G820BL &Unsorted Q3FileDialog&0&Yes Q3FileDialogb<qt>K 459AB28B5;L=> E>B8B5 C40;8BL %1 %2?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogA5 D09;K (*) All Files (*) Q3FileDialogA5 D09;K (*.*)All Files (*.*) Q3FileDialogB@81CBK Attributes Q3FileDialog 0704Back Q3FileDialog B<5=0Cancel Q3FileDialog>>?8@>20BL 8;8 ?5@5<5AB8BL D09;Copy or Move a File Q3FileDialog!>740BL ?0?:CCreate New Folder Q3FileDialog0B0Date Q3FileDialog#40;8BL %1 Delete %1 Q3FileDialog>4@>1=K9 284 Detail View Q3FileDialog0B0;>3Dir Q3FileDialog0B0;>38 Directories Q3FileDialog0B0;>3: Directory: Q3FileDialog H81:0Error Q3FileDialog$09;File Q3FileDialog&<O D09;0: File &name: Q3FileDialog&"8? D09;0: File &type: Q3FileDialog09B8 :0B0;>3Find Directory Q3FileDialog5B 4>ABC?0 Inaccessible Q3FileDialog !?8A>: List View Q3FileDialog&0?:0: Look &in: Q3FileDialog<OName Q3FileDialog>20O ?0?:0 New Folder Q3FileDialog>20O ?0?:0 %1 New Folder %1 Q3FileDialog>20O ?0?:0 1 New Folder 1 Q3FileDialog*25@E =0 >48= C@>25=LOne directory up Q3FileDialogB:@KBLOpen Q3FileDialogB:@KBL Open  Q3FileDialog<@54?@>A<>B@ A>45@68<>3> D09;0Preview File Contents Q3FileDialog>@54?@>A<>B@ 8=D>@<0F88 > D09;5Preview File Info Q3FileDialog&1=>28BLR&eload Q3FileDialog">;L:> GB5=85 Read-only Q3FileDialog'B5=85 8 70?8AL Read-write Q3FileDialog'B5=85: %1Read: %1 Q3FileDialog!>E@0=8BL :0:Save As Q3FileDialogK1@0BL :0B0;>3Select a Directory Q3FileDialog.>:070BL A:&@KBK5 D09;KShow &hidden files Q3FileDialog  07<5@Size Q3FileDialog#?>@O4>G8BLSort Q3FileDialog> &40B5 Sort by &Date Q3FileDialog> &8<5=8 Sort by &Name Q3FileDialog> &@07<5@C Sort by &Size Q3FileDialog!?5FD09;Special Q3FileDialog"!AK;:0 =0 :0B0;>3Symlink to Directory Q3FileDialog!AK;:0 =0 D09;Symlink to File Q3FileDialog$!AK;:0 =0 A?5FD09;Symlink to Special Q3FileDialog"8?Type Q3FileDialog">;L:> 70?8AL Write-only Q3FileDialog0?8AL: %1 Write: %1 Q3FileDialog:0B0;>3 the directory Q3FileDialogD09;the file Q3FileDialog AAK;:C the symlink Q3FileDialog:5 C40;>AL A>740BL :0B0;>3 %1Could not create directory %1 Q3LocalFs*5 C40;>AL >B:@KBL %1Could not open %1 Q3LocalFs>5 C40;>AL ?@>G8B0BL :0B0;>3 %1Could not read directory %1 Q3LocalFsL5 C40;>AL C40;8BL D09; 8;8 :0B0;>3 %1%Could not remove file or directory %1 Q3LocalFs@5 C40;>AL ?5@58<5=>20BL %1 2 %2Could not rename %1 to %2 Q3LocalFs,5 C40;>AL 70?8A0BL %1Could not write %1 Q3LocalFs0AB@>8BL... Customize... Q3MainWindowK@>2=OBLLine up Q3MainWindowD?5@0F8O >AB0=>2;5=0 ?>;L7>20B5;5<Operation stopped by the userQ3NetworkProtocol B<5=0CancelQ3ProgressDialog@8<5=8BLApply Q3TabDialog B<5=0Cancel Q3TabDialog> C<>;G0=8NDefaults Q3TabDialog!?@02:0Help Q3TabDialogOK Q3TabDialog&>?8@>20BL&Copy Q3TextEdit&AB028BL&Paste Q3TextEdit&&>2B>@8BL 459AB285&Redo Q3TextEdit$&B<5=8BL 459AB285&Undo Q3TextEditG8AB8BLClear Q3TextEdit&K@570BLCu&t Q3TextEditK45;8BL 2AQ Select All Q3TextEdit0:@KBLClose Q3TitleBarK:@K205B >:=>Closes the window Q3TitleBarB!>45@68B :><0=4K C?@02;5=8O >:=><*Contains commands to manipulate the window Q3TitleBarrB>1@0605B =0720=85 >:=0 8 A>45@68B :><0=4K C?@02;5=8O 8<FDisplays the name of the window and contains controls to manipulate it Q3TitleBar@ 072>@0G8205B >:=> =0 25AL M:@0=Makes the window full screen Q3TitleBar 0A?0E=CBLMaximize Q3TitleBar!25@=CBLMinimize Q3TitleBar !2>@0G8205B >:=>Moves the window out of the way Q3TitleBard>72@0I05B @0A?0E=CB>5 >:=> 2 =>@<0;L=>5 A>AB>O=85&Puts a maximized window back to normal Q3TitleBar`>72@0I05B A2Q@=CB>5 >:=> 2 =>@<0;L=>5 A>AB>O=85&Puts a minimized window back to normal Q3TitleBar>AAB0=>28BL Restore down Q3TitleBar>AAB0=>28BL Restore up Q3TitleBar!8AB5<=>5 <5=NSystem Q3TitleBar>;LH5...More... Q3ToolBar(=58725AB=>) (unknown) Q3UrlOperator@>B>:>; %1 =5 ?>445@68205B :>?8@>20=85 8;8 ?5@5<5I5=85 D09;>2 8;8 :0B0;>3>2IThe protocol `%1' does not support copying or moving files or directories Q3UrlOperator`@>B>:>; %1 =5 ?>445@68205B A>740=85 :0B0;>3>2;The protocol `%1' does not support creating new directories Q3UrlOperatorZ@>B>:>; %1 =5 ?>445@68205B ?5@540GC D09;>20The protocol `%1' does not support getting files Q3UrlOperator`@>B>:>; %1 =5 ?>445@68205B ?@>A<>B@ :0B0;>3>26The protocol `%1' does not support listing directories Q3UrlOperatorZ@>B>:>; %1 =5 ?>445@68205B >B?@02:C D09;>20The protocol `%1' does not support putting files Q3UrlOperatorv@>B>:>; %1 =5 ?>445@68205B C40;5=85 D09;>2 8;8 :0B0;>3>2@The protocol `%1' does not support removing files or directories Q3UrlOperator@>B>:>; %1 =5 ?>445@68205B ?5@58<5=>20=85 D09;>2 8;8 :0B0;>3>2@The protocol `%1' does not support renaming files or directories Q3UrlOperator>@>B>:>; %1 =5 ?>445@68205BAO"The protocol `%1' is not supported Q3UrlOperatorB&<5=0&CancelQ3Wizard&025@H8BL&FinishQ3Wizard&!?@02:0&HelpQ3Wizard&0;55 >&Next >Q3Wizard< &0704< &BackQ3Wizard*B:070=> 2 A>548=5=88Connection refusedQAbstractSocket6@5<O =0 A>548=5=85 8AB5:;>Connection timed outQAbstractSocket#75; =5 =0945=Host not foundQAbstractSocket!5BL =54>ABC?=0Network unreachableQAbstractSocketH?5@0F8O A A>:5B>< =5 ?>445@68205BAO$Operation on socket is not supportedQAbstractSocket$!>:5B =5 ?>4:;NGQ=Socket is not connectedQAbstractSocketF@5<O =0 >?5@0F8N A A>:5B>< 8AB5:;>Socket operation timed outQAbstractSocket&K45;8BL 2AQ &Select AllQAbstractSpinBox(03 22&5@E&Step upQAbstractSpinBox(03 2=&87 Step &downQAbstractSpinBox:;NG8BLCheckQAccessibleButton 060BLPressQAccessibleButtonK:;NG8BLUncheckQAccessibleButton:B828@>20BLActivate QApplicationB:B828@C5B 3;02=>5 >:=> ?@>3@0<<K#Activates the program's main window QApplicationr@>3@0<<=K9 <>4C;L %1 B@51C5B Qt %2, =0945=0 25@A8O %3.,Executable '%1' requires Qt %2, found Qt %3. QApplicationDH81:0 A>2<5AB8<>AB8 181;8>B5:8 QtIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplicationB&<5=0&Cancel QAxSelect&1J5:B COM: COM &Object: QAxSelectK1@0BLOK QAxSelect0K1>@ :><?>=5=BK ActiveXSelect ActiveX Control QAxSelectB<5B8BLCheck QCheckBox5@5:;NG8BLToggle QCheckBox!=OBL >B<5B:CUncheck QCheckBoxF&>1028BL : ?>;L7>20B5;LA:8< F25B0<&Add to Custom Colors QColorDialog&A=>2=K5 F25B0 &Basic colors QColorDialog.&>;L7>20B5;LA:85 F25B0&Custom colors QColorDialog&5;Q=K9:&Green: QColorDialog&@0A=K9:&Red: QColorDialog &0A:&Sat: QColorDialog &/@::&Val: QColorDialog&;LD0-:0=0;:A&lpha channel: QColorDialog!&8=89:Bl&ue: QColorDialog &">=:Hu&e: QColorDialogK1>@ F25B0 Select Color QColorDialog0:@KBLClose QComboBox5BFalse QComboBoxB:@KBLOpen QComboBox0True QComboBox$%1: C65 ACI5AB2C5B%1: already existsQCoreApplication"%1: =5 ACI5AB2C5B%1: does not existQCoreApplication%1: >H81:0 ftok%1: ftok failedQCoreApplication%1: ?CAB>9 :;NG%1: key is emptyQCoreApplication2%1: =54>AB0B>G=> @5AC@A>2%1: out of resourcesQCoreApplication&%1: 4>ABC? 70?@5IQ=%1: permission deniedQCoreApplication6%1: =52>7<>6=> A>740BL :;NG%1: unable to make keyQCoreApplication2%1: =58725AB=0O >H81:0 %2%1: unknown error %2QCoreApplication>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QDB2Driver,52>7<>6=> A>548=8BLAOUnable to connect QDB2Driver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QDB2Driver^52>7<>6=> CAB0=>28BL 02B>7025@H5=85 B@0=70:F89Unable to set autocommit QDB2Driver:52>7<>6=> ?@82O70BL 7=0G5=85Unable to bind variable QDB2Result<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QDB2ResultB52>7<>6=> ?>;CG8BL ?5@2CN AB@>:CUnable to fetch first QDB2ResultH52>7<>6=> ?>;CG8BL A;54CNICN AB@>:CUnable to fetch next QDB2Result:52>7<>6=> ?>;CG8BL 70?8AL %1Unable to fetch record %1 QDB2Result@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditBAnimation - MB> 01AB@0:B=K9 :;0AAAnimation is an abstract classQDeclarativeAbstractAnimationf52>7<>6=> 0=8<8@>20BL =5ACI5AB2C5I55 A2>9AB2> %1)Cannot animate non-existent property "%1"QDeclarativeAbstractAnimationl52>7<>6=> 0=8<8@>20BL A2>9AB2> B>;L:> 4;O GB5=8O %1&Cannot animate read-only property "%1"QDeclarativeAbstractAnimationL52>7<>6=> CAB0=>28BL 4;8B5;L=>ABL < 0Cannot set a duration of < 0QDeclarativeAnchorAnimation52>7<>6=> 8A?>;L7>20BL 107>2CN ?@82O7:C 2<5AB5 A 25@E=59, =86=59 8 F5=B@0;L=>9 ?> 25@B8:0;8.SBaseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.QDeclarativeAnchorsr52>7<>6=> ?@82O70BL 3>@87>=B0;L=K9 :@09 : 25@B8:0;L=><C.3Cannot anchor a horizontal edge to a vertical edge.QDeclarativeAnchorsr52>7<>6=> ?@82O70BL 25@B8:0;L=K9 :@09 : 3>@87>=B0;L=><C.3Cannot anchor a vertical edge to a horizontal edge.QDeclarativeAnchorsV52>7<>6=> ?@82O70BL M;5<5=B : A0<><C A515.Cannot anchor item to self.QDeclarativeAnchorsV52>7<>6=> ?@82O70BLAO : =C;52><C M;5<5=BC.Cannot anchor to a null item.QDeclarativeAnchors52>7<>6=> CAB0=>28BL ?@82O7:C : M;5<5=BC, =5 O2;ONI5<CAO @>48B5;5< 8;8 A>A54><.8Cannot anchor to an item that isn't a parent or sibling.QDeclarativeAnchorsf52>7<>6=> 7040BL ;52CN, ?@02CN 8 A@54=NN ?@82O7:8.0Cannot specify left, right, and hcenter anchors.QDeclarativeAnchorsj52>7<>6=> 7040BL 25@E=NN, =86=NN 8 A@54=NN ?@82O7:8.0Cannot specify top, bottom, and vcenter anchors.QDeclarativeAnchorsh1=0@C65=0 2>7<>6=0O F8:;8G=0O ?@82O7:0 =0 centerIn.*Possible anchor loop detected on centerIn.QDeclarativeAnchors`1=0@C65=0 2>7<>6=0O F8:;8G=0O ?@82O7:0 =0 fill.&Possible anchor loop detected on fill.QDeclarativeAnchors1=0@C65=0 2>7<>6=0O F8:;8G=0O ?@82O7:0 : 3>@87>=B0;L=>9 ?@82O7:5.3Possible anchor loop detected on horizontal anchor.QDeclarativeAnchors1=0@C65=0 2>7<>6=0O F8:;8G=0O ?@82O7:0 : 25@B8:0;L=>9 ?@82O7:5.1Possible anchor loop detected on vertical anchor.QDeclarativeAnchorsHQt 1K;> A>1@0=> 157 ?>445@6:8 QMovie'Qt was built without support for QMovieQDeclarativeAnimatedImage>;0AA Application - 01AB@0:B=K9 Application is an abstract classQDeclarativeApplicationh52>7<>6=> 87<5=8BL 0=8<0F8N, =07=0G5==CN ?>2545=8N.3Cannot change the animation assigned to a Behavior.QDeclarativeBehaviord1=0@C65=> 70F8:;820=85 ?@82O7:8 4;O A2>9AB20 %1'Binding loop detected for property "%1"QDeclarativeBinding^1=0@C65=0 F8:;8G=0O ?@82O7:0 4;O A2>9AB20 %1'Binding loop detected for property "%1"QDeclarativeCompiledBindingsH%1 =5 <>65B 2>7459AB2>20BL =0 %2"%1" cannot operate on "%2"QDeclarativeCompilerX%1.%2 =5 4>ABC?=> 87-70 25@A88 :><?>=5=BK.5"%1.%2" is not available due to component versioning.QDeclarativeCompiler>%1.%2 =5 4>ABC?=> 2 %3 %4.%5.%"%1.%2" is not available in %3 %4.%5.QDeclarativeCompilerL!2>9AB2> ?A524>=8<0 2KE>48B 70 3@0=8FK#Alias property exceeds alias boundsQDeclarativeCompilern@8:@5?;Q==K5 A2>9AB20 =5 <>3CB 1KBL 8A?>;L7>20=K 745AL'Attached properties cannot be used hereQDeclarativeCompilerX>6=> =07=0G8BL B>;L:> >4=C A2O7L 4;O A?8A:0$Can only assign one binding to listsQDeclarativeCompiler52>7<>6=> ?@8A2>8BL 7=0G5=85 =5?>A@54AB25==> A3@C??8@>20==><C A2>9AB2C4Cannot assign a value directly to a grouped propertyQDeclarativeCompiler52>7<>6=> =07=0G8BL 7=0G5=85 A83=0;C (AF5=0@89 4>;65= 1KBL 70?CI5=)@Cannot assign a value to a signal (expecting a script to be run)QDeclarativeCompilerz52>7<>6=> =07=0G8BL <=>65AB25==>5 7=0G5=85 A2>9AB2C AF5=0@8O2Cannot assign multiple values to a script propertyQDeclarativeCompiler52>7<>6=> ?@8A2>8BL <=>65AB2> 7=0G5=89 A2>9AB2C, ?@8=8<0NI5<C B>;L:> >4=>4Cannot assign multiple values to a singular propertyQDeclarativeCompilerD52>7<>6=> =07=0G8BL >1J5:B A?8A:CCannot assign object to listQDeclarativeCompilerF52>7<>6=> =07=0G8BL >1J5:BA2>9AB2C Cannot assign object to propertyQDeclarativeCompilerJ52>7<>6=> =07=0G8BL ?@8<8B82K A?8A:C!Cannot assign primitives to listsQDeclarativeCompilert52>7<>6=> =07=0G8BL =5ACI5AB2CNI5<C A2>9AB2C ?> C<>;G0=8N.Cannot assign to non-existent default propertyQDeclarativeCompilerd52>7<>6=> =07=0G8BL =5ACI5AB2CNI5<C A2>9AB2C %1+Cannot assign to non-existent property "%1"QDeclarativeCompiler`52>7<>6=> A>740BL ?CABCN A?5F8D8:0FN :><?>=5=B0+Cannot create empty component specificationQDeclarativeCompilerP52>7<>6=> ?5@5>?@545;8BL A2>9AB2> FINALCannot override FINAL propertyQDeclarativeCompilerl-;5<5=BK Component =5 <>3CB A>45@60BL A2>9AB2 :@><5 id;Component elements may not contain properties other than idQDeclarativeCompilerf1J5:BK Component =5 <>3CB >1JO2;OBL =>2K5 DC=:F88./Component objects cannot declare new functions.QDeclarativeCompilerh1J5:BK Component =5 <>3CB >1JO2;OBL =>2K5 A2>9AB20.0Component objects cannot declare new properties.QDeclarativeCompilerf1J5:BK Component =5 <>3CB >1JO2;OBL =>2K5 A83=0;K.-Component objects cannot declare new signals.QDeclarativeCompilerDC1;8@>20=85 A2>9AB20 ?> C<>;G0=8NDuplicate default propertyQDeclarativeCompiler8C1;8@>20=85 =0720=85 <5B>40Duplicate method nameQDeclarativeCompiler<C1;8@>20=85 =0720=8O A2>9AB20Duplicate property nameQDeclarativeCompiler:C1;8@>20=85 =0720=8O A83=0;0Duplicate signal nameQDeclarativeCompiler@-;5<5=B =5 O2;O5BAO A>740205<K<.Element is not creatable.QDeclarativeCompiler4CAB>5 =07=0G5=85 A2>9AB20Empty property assignmentQDeclarativeCompiler2CAB>5 =07=0G5=85 A83=0;0Empty signal assignmentQDeclarativeCompiler|45=B8D8:0B>@ =525@=> <0A:8@C5B 3;>10;L=>5 A2>9AB2> JavaScript-ID illegally masks global JavaScript propertyQDeclarativeCompilerh45=B8D8:0B>@K =5 <>3CB =0G8=0BLAO A 703;02=>9 1C:2K)IDs cannot start with an uppercase letterQDeclarativeCompiler45=B8D8:0B>@K 4>;6=K A>45@60BL B>;L:> 1C:2K, F8D@K 8 ?>4GQ@:820=8O7IDs must contain only letters, numbers, and underscoresQDeclarativeCompilert45=B8D8:0B>@K 4>;6=K =0G8=0BLAO A 1C:2K 8;8 ?>4GQ@:820=8O*IDs must start with a letter or underscoreQDeclarativeCompiler854>?CAB8<>5 =0720=85 <5B>40Illegal method nameQDeclarativeCompiler<54>?CAB8<>5 =0720=85 A2>9AB20Illegal property nameQDeclarativeCompiler:54>?CAB8<>5 =0720=85 A83=0;0Illegal signal nameQDeclarativeCompilerD525@=> C:070=> =07=0G5=85 A83=0;0'Incorrectly specified signal assignmentQDeclarativeCompilerD5:>@@5:B=>5 @07<5I5=85 ?A524>=8<0Invalid alias locationQDeclarativeCompiler5:>@@5:B=0O AAK;:0 =0 ?A524>=8<. !AK;:0 =0 ?A524>=8< 4>;6=0 1KBL C:070=0, :0: <id>, <id>.<A2>9AB2>> 8;8 <id>.<A2>9AB2> 7=0G5=8O>.<A2>9AB2>>zInvalid alias reference. An alias reference must be specified as , . or ..QDeclarativeCompilert5:>@@5:B=0O AAK;:0 =0 ?A524>=8<. 5 C40;>AL =09B8 id %1/Invalid alias reference. Unable to find id "%1"QDeclarativeCompiler\5:>@@5:B=>5 =07=0G5=85 ?@8:@5?;Q==>3> >1J5:B0"Invalid attached object assignmentQDeclarativeCompilerR5:>@@5:B=0O A?5F8D8:0F8O B5;0 :><?>=5=B0$Invalid component body specificationQDeclarativeCompilerN5:>@@5:B=0O A?5F8D8:0F8O id :><?>=5=B0"Invalid component id specificationQDeclarativeCompilerB5:>@@5:B=K9 ?CAB>9 845=B8D8:0B>@Invalid empty IDQDeclarativeCompiler^5:>@@5:B=K9 4>ABC? : A3@C??8@>20==><C A2>9AB2CInvalid grouped property accessQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: %1 A2>9AB2> B>;L:> 4;O GB5=8O9Invalid property assignment: "%1" is a read-only propertyQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 B@QE<5@=K9 25:B>@/Invalid property assignment: 3D vector expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 1C;52>3> B8?0-Invalid property assignment: boolean expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 color+Invalid property assignment: color expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 date*Invalid property assignment: date expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 datetime.Invalid property assignment: datetime expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 int)Invalid property assignment: int expectedQDeclarativeCompilerf5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO G8A;>,Invalid property assignment: number expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 point+Invalid property assignment: point expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 rect*Invalid property assignment: rect expectedQDeclarativeCompilerl5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO AF5=0@89,Invalid property assignment: script expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 size*Invalid property assignment: size expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 string,Invalid property assignment: string expectedQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 time*Invalid property assignment: time expectedQDeclarativeCompilerx5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: =58725AB=>5 ?5@5G8A;5=850Invalid property assignment: unknown enumerationQDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 unsigned int2Invalid property assignment: unsigned int expectedQDeclarativeCompilerz5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: =5?>445@68205<K9 B8? %12Invalid property assignment: unsupported type "%1"QDeclarativeCompiler5:>@@5:B=>5 ?@8A20820=85 A2>9AB20: >68405BAO 7=0G5=85 B8?0 url)Invalid property assignment: url expectedQDeclarativeCompiler@5:>@@5:B=>5 2;>65==>ABL A2>9AB2Invalid property nestingQDeclarativeCompiler25:>@@5:B=K9 B8? A2>9AB20Invalid property typeQDeclarativeCompilerF5:>@@5:B=>5 8A?>;L7>20=85 A2>9AB20Invalid property useQDeclarativeCompilerL5:>@@5:B=>5 8A?>;L7>20=85 A2>9AB20 idInvalid use of id propertyQDeclarativeCompilerX5:>@@5:B=>5 8A?>;L7>20=85 ?@>AB@0=AB20 8<Q=Invalid use of namespaceQDeclarativeCompilerl0720=8O <5B>4>2 =5 <>3CB =0G8=0BLAO A 703;02=>9 1C:2K3Method names cannot begin with an upper case letterQDeclarativeCompilerTBACBAB2C5B @07<5I5=85 ?A524>=8<0 A2>9AB20No property alias locationQDeclarativeCompilerF5ACI5AB2CNI89 ?@8:@5?;Q==K9 >1J5:BNon-existent attached objectQDeclarativeCompilerP5 O2;O5BAO 8<5=5< ?@82O70==>3> A2>9AB20Not an attached property nameQDeclarativeCompiler:68405BAO =07=0G5=85 A2>9AB20Property assignment expectedQDeclarativeCompiler>!2>9AB2C C65 =07=0G5=> 7=0G5=85*Property has already been assigned a valueQDeclarativeCompilerl0720=8O A2>9AB2 =5 <>3CB =0G8=0BLAO A 703;02=>9 1C:2K5Property names cannot begin with an upper case letterQDeclarativeCompilerL=0G5=85 A2>9AB20 7040=> =5A:>;L:> @07!Property value set multiple timesQDeclarativeCompilern0720=8O A83=0;>2 =5 <>3CB =0G8=0BLAO A 703;02=>9 1C:2K3Signal names cannot begin with an upper case letterQDeclarativeCompilerN68405BAO >48=>G=>5 =07=0G5=85 A2>9AB20#Single property assignment expectedQDeclarativeCompiler<5>6840==>5 =07=0G5=85 >1J5:B0Unexpected object assignmentQDeclarativeCompilerid =5 C=8:0;5=id is not uniqueQDeclarativeCompiler CAB>9 04@5A URLInvalid empty URLQDeclarativeComponentVcreateObject: 7=0G5=85 =5 O2;O5BAO >1J5:B><$createObject: value is not an objectQDeclarativeComponentd52>7<>6=> =07=0G8BL =5ACI5AB2CNI5<C A2>9AB2C %1+Cannot assign to non-existent property "%1"QDeclarativeConnectionsT>4:;NG5=8O: 2;>65==K5 >1J5:BK =54>?CAB8<K'Connections: nested objects not allowedQDeclarativeConnections>>4:;NG5=8O: >68405BAO AF5=0@89Connections: script expectedQDeclarativeConnectionsD>4:;NG5=8O: A8=B0:A8G5A:0O >H81:0Connections: syntax errorQDeclarativeConnections8"@0=70:F8O B>;L:> 4;O GB5=8ORead-only TransactionQDeclarativeEngineF5 C40;>AL 2K?>;=8BL B@0=70:F8N SQLSQL transaction failedQDeclarativeEngineF5 A>2?0405B 25@A8O 107K 40==KE SQLSQL: database version mismatchQDeclarativeEngineZ5A>2?045=85 25@A89: >6840;0AL %1, =0945=0 %2'Version mismatch: expected %1, found %2QDeclarativeEngineJexecuteSql() 2K720= 2=5 transaction()'executeSql called outside transaction()QDeclarativeEngineLB@0=70:F8O: >BACBAB2C5B >1@0B=K9 2K7>2transaction: missing callbackQDeclarativeEngineLback - A2>9AB2> 4;O >4=>:@0B=>9 70?8A8back is a write-once propertyQDeclarativeFlipableNfront - A2>9AB2> 4;O >4=>:@0B=>9 70?8A8front is a write-once propertyQDeclarativeFlipable6%1: :0B0;>3 =5 ACI5AB2C5B"%1": no such directoryQDeclarativeImportDatabaseJ- %1 - =5:>@@5:B=>5 ?@>AB@0=AB2> 8<Q=- %1 is not a namespaceQDeclarativeImportDatabaseR- 2;>65==K5 ?@>AB@0=AB20 8<Q= =54>?CAB8<K- nested namespaces not allowedQDeclarativeImportDatabaseR 538AB@ 8<5=8 D09;0 =5 A>>B25BAB2C5B %1 File name case mismatch for "%1"QDeclarativeImportDatabase`:0B0;>3 %1 =5 A>45@68B =8 qmldir, =8 namespace*import "%1" has no qmldir and no namespaceQDeclarativeImportDatabase>=5>4=>7=0G=>. 0945=> 2 %1 8 %2#is ambiguous. Found in %1 and in %2QDeclarativeImportDatabase^=5>4=>7=0G=>. 0945=> 2 %1 25@A89 %2.%3 8 %4.%54is ambiguous. Found in %1 in version %2.%3 and %4.%5QDeclarativeImportDatabase2>1@010BK205BAO @5:C@A82=>is instantiated recursivelyQDeclarativeImportDatabase"=5 O2;O5BAO B8?>< is not a typeQDeclarativeImportDatabase";>:0;L=K9 :0B0;>3local directoryQDeclarativeImportDatabase2<>4C;L %1 =5 CAB0=>2;5=module "%1" is not installedQDeclarativeImportDatabaseD<>4C;L %1 ?;038=0 %2 =5 =0945=!module "%1" plugin "%2" not foundQDeclarativeImportDatabaseL<>4C;L %1 25@A88 %2.%3 =5 CAB0=>2;5=*module "%1" version %2.%3 is not installedQDeclarativeImportDatabase^=5 C40;>AL 703@C78BL ?;038= 4;O <>4C;O %1: %2+plugin cannot be loaded for module "%1": %2QDeclarativeImportDatabasetKeyNavigation 4>ABC?=0 B>;L:> G5@57 ?@8:@5?;Q==K5 A2>9AB207KeyNavigation is only available via attached properties!QDeclarativeKeyNavigationAttachedbKeys 4>ABC?=K B>;L:> G5@57 ?@8:@5?;Q==K5 A2>9AB20.Keys is only available via attached propertiesQDeclarativeKeysAttached>4:;NGQ==>5 A2>9AB2> LayoutDirection @01>B05B B>;L:> A M;5<5=B0<87LayoutDirection attached property only works with Items#QDeclarativeLayoutMirroringAttachedvLayoutMirroring 4>ABC?=> B>;L:> G5@57 ?>4:;NG05<K5 A2>9AB209LayoutMirroring is only available via attached properties#QDeclarativeLayoutMirroringAttacheddListElement: =5 <>65B A>45@60BL 2;>65==K5 M;5<5=BK+ListElement: cannot contain nested elementsQDeclarativeListModelListElement: =52>7<>6=> 8A?>;L7>20BL 70@575@28@>20==>5 A2>9AB2> id.ListElement: cannot use reserved "id" propertyQDeclarativeListModelListElement: =52>7<>6=> 8A?>;L7>20BL AF5=0@89 2 :0G5AB25 7=0G5=8O A2>9AB201ListElement: cannot use script for property valueQDeclarativeListModelNListModel: =5>?@545;Q==>5 A2>9AB2> %1"ListModel: undefined property '%1'QDeclarativeListModelJappend: 7=0G5=85 =5 O2;O5BAO >1J5:B><append: value is not an objectQDeclarativeListModel>insert: 8=45:A %1 2=5 480?07>=0insert: index %1 out of rangeQDeclarativeListModelJinsert: 7=0G5=85 =5 O2;O5BAO >1J5:B><insert: value is not an objectQDeclarativeListModel4move: 8=45:A 2=5 480?07>=0move: out of rangeQDeclarativeListModel>remove: 8=45:A %1 2=5 480?07>=0remove: index %1 out of rangeQDeclarativeListModel8set: 8=45:A %1 2=5 480?07>=0set: index %1 out of rangeQDeclarativeListModelDset: 7=0G5=85 =5 O2;O5BAO >1J5:B><set: value is not an objectQDeclarativeListModelt03@C7G8: =5 ?>445@68205B 703@C7:C =5287C0;L=KE M;5<5=B>2.4Loader does not support loading non-visual elements.QDeclarativeLoaderv52>7<>6=> A>E@0=8BL 2=5H=89 284 ?@8 A;>6=>< ?@5>1@07>20=885Unable to preserve appearance under complex transformQDeclarativeParentAnimationt52>7<>6=> A>E@0=8BL 2=5H=89 284 ?@8 =5>4=>@>4=>< <0AHB0155Unable to preserve appearance under non-uniform scaleQDeclarativeParentAnimation^52>7<>6=> A>E@0=8BL 2=5H=89 284 ?@8 <0AHB015 0.Unable to preserve appearance under scale of 0QDeclarativeParentAnimationv52>7<>6=> A>E@0=8BL 2=5H=89 284 ?@8 A;>6=>< ?@5>1@07>20=885Unable to preserve appearance under complex transformQDeclarativeParentChanget52>7<>6=> A>E@0=8BL 2=5H=89 284 ?@8 =5>4=>@>4=>< <0AHB0155Unable to preserve appearance under non-uniform scaleQDeclarativeParentChange^52>7<>6=> A>E@0=8BL 2=5H=89 284 ?@8 <0AHB015 0.Unable to preserve appearance under scale of 0QDeclarativeParentChange.68405BAO B8? ?0@0<5B@0Expected parameter typeQDeclarativeParser,68405BAO B8? A2>9AB20Expected property typeQDeclarativeParser*68405BAO A8<2>; %1Expected token `%1'QDeclarativeParser.68405BAO =0720=85 B8?0Expected type nameQDeclarativeParserR45=B8D8:0B>@ =5 <>65B =0G8=0BLAO A F8D@K,Identifier cannot start with numeric literalQDeclarativeParser&54>?CAB8<K9 A8<2>;Illegal characterQDeclarativeParserF54>?CAB8<0O esc-?>A;54>20B5;L=>ABLIllegal escape sequenceQDeclarativeParserd54>?CAB8<K9 A8=B0:A8A 4;O M:A?>=5=F80;L=>3> G8A;0%Illegal syntax for exponential numberQDeclarativeParserV54>?CAB8<0O unicode esc-?>A;54>20B5;L=>ABLIllegal unicode escape sequenceQDeclarativeParserJ5:>@@5:B=K9 ID A?5F8D8:0B>@0 8<?>@B0Invalid import qualifier IDQDeclarativeParserL5:>@@5:B=K9 <>48D8:0B>@ B8?0 A2>9AB20Invalid property type modifierQDeclarativeParserZ5:>@@5:B=K9 D;03 %0 2 @53C;O@=>< 2K@065=88$Invalid regular expression flag '%0'QDeclarativeParserT?@545;5=85 JavaScript 2=5 M;5<5=B0 Script-JavaScript declaration outside Script elementQDeclarativeParser@<?>@B 181;8>B5:8 B@51C5B 25@A8N!Library import requires a versionQDeclarativeParserV=0G5=85 A2>9AB20 CAB0=>2;5=> =5A:>;L:> @07!Property value set multiple timesQDeclarativeParser<Readonly 5IQ =5 ?>445@68205BAOReadonly not yet supportedQDeclarativeParser0@575@28@>20==>5 8<O Qt =5 <>65B 1KBL 8A?>;L7>20=> 2 :0G5AB25 A?5F8D8:0B>@01Reserved name "Qt" cannot be used as an qualifierQDeclarativeParsern!?5F8D8:0B>@K 8<?>@B0 AF5=0@8O 4>;6=K 1KBL C=8:0;L=K<8.(Script import qualifiers must be unique.QDeclarativeParserV;O 8<?>@B0 AF5=0@8O B@51C5BAO A?5F8D8:0B>@"Script import requires a qualifierQDeclarativeParser*!8=B0:A8G5A:0O >H81:0 Syntax errorQDeclarativeParserJ570:@KBK9 :><<5=B0@89 2 :>=F5 AB@>:8Unclosed comment at end of fileQDeclarativeParser>570:@KBK9 B5:AB 2 :>=F5 AB@>:8Unclosed string at end of lineQDeclarativeParserJ5>6840==K9 <>48D8:0B>@ B8?0 A2>9AB20!Unexpected property type modifierQDeclarativeParser.5>6840==K9 A8<2>; %1Unexpected token `%1'QDeclarativeParser 53C;O@=>5 2K@065=85 A>45@68B =57025@HQ==CN M:@0=8@>20==CN ?>A;54>20B5;L=>ABL2Unterminated regular expression backslash sequenceQDeclarativeParserb 53C;O@=>5 2K@065=85 A>45@68B =57025@HQ==K9 :;0AA%Unterminated regular expression classQDeclarativeParserV570:>=G5==K9 ;8B5@0; @53C;O@=>3> 2K@065=8O'Unterminated regular expression literalQDeclarativeParserL52>7<>6=> CAB0=>28BL 4;8B5;L=>ABL < 0Cannot set a duration of < 0QDeclarativePauseAnimation,5 C40;>AL >B:@KBL: %1Cannot open: %1QDeclarativePixmap8H81:0 45:>48@>20=8O: %1: %2Error decoding: %1: %2QDeclarativePixmapx5 C40;>AL ?>;CG8BL 87>1@065=85 >B ?>AB0I8:0 87>1@065=89: %1%Failed to get image from provider: %1QDeclarativePixmapL52>7<>6=> CAB0=>28BL 4;8B5;L=>ABL < 0Cannot set a duration of < 0QDeclarativePropertyAnimationd52>7<>6=> =07=0G8BL =5ACI5AB2CNI5<C A2>9AB2C %1+Cannot assign to non-existent property "%1"QDeclarativePropertyChangesh52>7<>6=> =07=0G8BL A2>9AB2C B>;L:> 4;O GB5=8O %1(Cannot assign to read-only property "%1"QDeclarativePropertyChangesPropertyChanges =5 ?>445@6820NB A>740=85 >1J5:B>2, 7028A8<KE >B A>AB>O=8O.APropertyChanges does not support creating state-specific objects.QDeclarativePropertyChangesT5 C40;>AL 8=AB0=F88@>20BL 45;530B :C@A>@0%Could not instantiate cursor delegateQDeclarativeTextInputH5 C40;>AL 703@C78BL 45;530B :C@A>@0Could not load cursor delegateQDeclarativeTextInput %1 %2%1 %2QDeclarativeTypeLoader@>AB@0=AB2> 8<Q= %1 =5 <>65B 1KBL 8A?>;L7>20=> 2 :0G5AB25 B8?0%Namespace %1 cannot be used as a typeQDeclarativeTypeLoader,!F5=0@89 %1 =54>ABC?5=Script %1 unavailableQDeclarativeTypeLoader&"8? %1 =54>ABC?5=Type %1 unavailableQDeclarativeTypeLoaderb52>7<>6=> =07=0G8BL >1J5:B : A2>9AB2C A83=0;0 %1-Cannot assign an object to signal property %1QDeclarativeVME^52>7<>6=> =07=0G8BL >1J5:B A2>9AB2C 8=B5@D59A0*Cannot assign object to interface propertyQDeclarativeVMED52>7<>6=> =07=0G8BL >1J5:B A?8A:CCannot assign object to listQDeclarativeVMEz52>7<>6=> ?@8A2>8BL >1J5:B B8?0 %1 157 <5B>40 ?> C<>;G0=8N3Cannot assign object type %1 with no default methodQDeclarativeVME`52>7<>6=> ?@8A2>8BL 7=0G5=85 %1 A2>9AB2C %2%Cannot assign value %1 to property %2QDeclarativeVMEn52>7<>6=> ?>4:;NG8BL >BACBAB2CNI89 A83=0;/A;>B %1 : %20Cannot connect mismatched signal/slot %1 %vs. %2QDeclarativeVMEr52>7<>6=> CAB0=>28BL A2>9AB20 4;O %1, B0: :0: >= =C;52>9)Cannot set properties on %1 as it is nullQDeclarativeVMEF5 C40;>AL A>740BL 2;>65==K9 >1J5:B Unable to create attached objectQDeclarativeVMEF52>7<>6=> A>740BL >1J5:B B8?0 %1"Unable to create object of type %1QDeclarativeVMET><?>=5=B0 45;530B0 4>;65= 1KBL B8?0 Item.%Delegate component must be Item type.QDeclarativeVisualDataModelRQt 1K;> A>1@0=> 157 ?>445@6:8 xmlpatterns,Qt was built without support for xmlpatternsQDeclarativeXmlListModelR0?@>A XmlRole =5 4>;65= =0G8=0BLAO A /(An XmlRole query must not start with '/'QDeclarativeXmlListModelRoleh0?@>A XmlListModel 4>;65= =0G8=0BLAO A / 8;8 //1An XmlListModel query must start with '/' or "//"QDeclarativeXmlRoleList QDialQDialQDialSliderHandle SliderHandleQDialSpeedoMeter SpeedoMeterQDial >B>2>DoneQDialog'B> MB>? What's This?QDialogB&<5=0&CancelQDialogButtonBox&0:@KBL&CloseQDialogButtonBox&5B&NoQDialogButtonBox&&OKQDialogButtonBox&!>E@0=8BL&SaveQDialogButtonBox&0&YesQDialogButtonBox@5@20BLAbortQDialogButtonBox@8<5=8BLApplyQDialogButtonBox B<5=0CancelQDialogButtonBox0:@KBLCloseQDialogButtonBox,0:@KBL 157 A>E@0=5=8OClose without SavingQDialogButtonBoxB:;>=8BLDiscardQDialogButtonBox5 A>E@0=OBL Don't SaveQDialogButtonBox!?@02:0HelpQDialogButtonBox@>?CAB8BLIgnoreQDialogButtonBox&5B 4;O 2A5E N&o to AllQDialogButtonBoxOKQDialogButtonBoxB:@KBLOpenQDialogButtonBox!1@>A8BLResetQDialogButtonBox*>AAB0=>28BL 7=0G5=8ORestore DefaultsQDialogButtonBox>2B>@8BLRetryQDialogButtonBox!>E@0=8BLSaveQDialogButtonBox!>E@0=8BL 2A5Save AllQDialogButtonBox0 4;O &2A5E Yes to &AllQDialogButtonBox0B0 87<5=5=8O Date Modified QDirModel84Kind QDirModel<OName QDirModel  07<5@Size QDirModel"8?Type QDirModel0:@KBLClose QDockWidget@8:@5?8BLDock QDockWidgetB:@5?8BLFloat QDockWidget 5=LH5LessQDoubleSpinBox >;LH5MoreQDoubleSpinBox&0:@KBL&OK QErrorMessageL&>:07K20BL MB> A>>1I5=85 2 40;L=59H5<&Show this message again QErrorMessage*B;04>G=>5 A>>1I5=85:Debug Message: QErrorMessage&@8B8G5A:0O >H81:0: Fatal Error: QErrorMessage@54C?@5645=85:Warning: QErrorMessage@52>7<>6=> A>740BL %1 4;O 2K2>40Cannot create %1 for outputQFile>52>7<>6=> >B:@KBL %1 4;O 22>40Cannot open %1 for inputQFile:52>7<>6=> >B:@KBL 4;O 2K2>40Cannot open for outputQFile@52>7<>6=> C40;8BL 8AE>4=K9 D09;Cannot remove source fileQFile$09; ACI5AB2C5BDestination file existsQFile"!1>9 70?8A8 1;>:0Failure to write blockQFilet5B D09;>2>3> 4286:0 8;8 >= =5 ?>445@68205B UnMapExtensionBNo file engine available or engine does not support UnMapExtensionQFile>A;54>20B5;L=K9 D09; =5 1C45B ?5@58<5=>20= A 8A?>;L7>20=85< ?>1;>G=>3> :>?8@>20=8O0Will not rename sequential file using block copyQFile%1 0B0;>3 =5 =0945=. @>25@LB5 ?@028;L=>ABL C:070==>3> 8<5=8 :0B0;>30.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 $09; =5 =0945=. @>25@LB5 ?@028;L=>ABL C:070==>3> 8<5=8 D09;0.A%1 File not found. Please verify the correct file name was given. QFileDialogN%1 C65 ACI5AB2C5B. %>B8B5 70<5=8BL 53>?-%1 already exists. Do you want to replace it? QFileDialog&K1@0BL&Choose QFileDialog&#40;8BL&Delete QFileDialog&>20O ?0?:0 &New Folder QFileDialog&B:@KBL&Open QFileDialog&5@58<5=>20BL&Rename QFileDialog&!>E@0=8BL&Save QFileDialogl%1 70I8IQ= >B 70?8A8. 59AB28B5;L=> 65;05B5 C40;8BL?9'%1' is write protected. Do you want to delete it anyway? QFileDialogA524>=8<Alias QFileDialogA5 D09;K (*) All Files (*) QFileDialogA5 D09;K (*.*)All Files (*.*) QFileDialogJK 459AB28B5;L=> E>B8B5 C40;8BL %1?!Are sure you want to delete '%1'? QFileDialog 0704Back QFileDialog:5@5:;NG8BL 2 ?>4@>1=K9 @568<Change to detail view mode QFileDialog45@5:;NG8BL 2 @568< A?8A:0Change to list view mode QFileDialog65 C40;>AL C40;8BL :0B0;>3.Could not delete directory. QFileDialog!>740BL ?0?:CCreate New Folder QFileDialog&!>740BL =>2CN ?0?:CCreate a New Folder QFileDialog>4@>1=K9 284 Detail View QFileDialog0B0;>38 Directories QFileDialog0B0;>3: Directory: QFileDialog8A:Drive QFileDialog$09;File QFileDialog&<O D09;0: File &name: QFileDialog0?:0 A D09;0<8 File Folder QFileDialog"8?K D09;>2:Files of type: QFileDialog09B8 :0B0;>3Find Directory QFileDialog 0?:0Folder QFileDialog ?5@Q4Forward QFileDialog 0704Go back QFileDialog ?5@Q4 Go forward QFileDialog<5@59B8 2 @>48B5;LA:89 :0B0;>3Go to the parent directory QFileDialog !?8A>: List View QFileDialog5@59B8 ::Look in: QFileDialog>9 :><?LNB5@ My Computer QFileDialog>20O ?0?:0 New Folder QFileDialogB:@KBLOpen QFileDialog( >48B5;LA:89 :0B0;>3Parent Directory QFileDialog$5402=85 4>:C<5=BK Recent Places QFileDialog#40;8BLRemove QFileDialog!>E@0=8BL :0:Save As QFileDialog /@;K:Shortcut QFileDialog>:070BL Show  QFileDialog.>:070BL A:&@KBK5 D09;KShow &hidden files QFileDialog58725AB=K9Unknown QFileDialog %1 1%1 GBQFileSystemModel %1 1%1 KBQFileSystemModel %1 1%1 MBQFileSystemModel %1 "1%1 TBQFileSystemModel%1 109B %1 byte(s)QFileSystemModel%1 109B%1 bytesQFileSystemModel<b><O %1 =5 <>65B 1KBL 8A?>;L7>20=>.</b><p>>?@>1C9B5 8A?>;L7>20BL 8<O <5=LH59 4;8=K 8/8;8 157 A8<2>;>2 ?C=:BC0F88.oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModel><?LNB5@ComputerQFileSystemModel0B0 87<5=5=8O Date ModifiedQFileSystemModel,5:>@@5:B=>5 8<O D09;0Invalid filenameQFileSystemModel84KindQFileSystemModel>9 :><?LNB5@ My ComputerQFileSystemModel<ONameQFileSystemModel  07<5@SizeQFileSystemModel"8?TypeQFileSystemModel N10OAny QFontDatabase@01A:0OArabic QFontDatabase@<O=A:0OArmenian QFontDatabase5=30;LA:0OBengali QFontDatabase 'Q@=K9Black QFontDatabase 8@=K9Bold QFontDatabase8@8;;8F0Cyrillic QFontDatabase!@54=89Demi QFontDatabase>;C68@=K9 Demi Bold QFontDatabase520=038@8 Devanagari QFontDatabase@C78=A:0OGeorgian QFontDatabase@5G5A:0OGreek QFontDatabaseC460@0B8Gujarati QFontDatabaseC@<C:E8Gurmukhi QFontDatabase 2@8BHebrew QFontDatabase C@A82Italic QFontDatabase/?>=A:0OJapanese QFontDatabase0==040Kannada QFontDatabaseE<5@A:0OKhmer QFontDatabase>@59A:0OKorean QFontDatabase0>AA:0OLao QFontDatabase0B8=8F0Latin QFontDatabase!25B;K9Light QFontDatabase0;09O;0< Malayalam QFontDatabase LO=<0Myanmar QFontDatabase:>N'Ko QFontDatabase1KG=K9Normal QFontDatabase0:;>==K9Oblique QFontDatabase30<8G5A:0OOgham QFontDatabase@8OOriya QFontDatabase C=8G5A:0ORunic QFontDatabase(8B09A:0O C?@>IQ==0OSimplified Chinese QFontDatabase!8=30;LA:0OSinhala QFontDatabase!8<2>;L=0OSymbol QFontDatabase!8@89A:0OSyriac QFontDatabase"0<8;LA:0OTamil QFontDatabase "5;C3CTelugu QFontDatabase "00=0Thaana QFontDatabase"09A:0OThai QFontDatabase"815BA:0OTibetan QFontDatabase,8B09A:0O B@048F8>==0OTraditional Chinese QFontDatabaseL5B=0<A:0O Vietnamese QFontDatabase &(@8DB&Font QFontDialog& 07<5@&Size QFontDialog&>4GQ@:=CBK9 &Underline QFontDialog-DD5:BKEffects QFontDialog&0G5@B0=85 Font st&yle QFontDialog @8<5@Sample QFontDialogK1>@ H@8DB0 Select Font QFontDialog0GQ@&:=CBK9 Stri&keout QFontDialog&!8AB5<0 ?8AL<0Wr&iting System QFontDialog<5 C40;>AL A<5=8BL :0B0;>3: %1Changing directory failed: %1QFtp<!>548=5=85 A C7;>< CAB0=>2;5=>Connected to hostQFtpB#AB0=>2;5=> A>548=5=85 A C7;>< %1Connected to host %1QFtpD5 C40;>AL A>548=8BLAO A C7;><: %1Connecting to host failed: %1QFtp$!>548=5=85 70:@KB>Connection closedQFtpLB:07 2 A>548=5=88 4;O ?5@540G8 40==KE&Connection refused for data connectionQFtp@ A>548=5=88 A C7;>< %1 >B:070=>Connection refused to host %1QFtpL@5<O =0 A>548=5=85 A C7;>< %1 8AB5:;>Connection timed out to host %1QFtp.!>548=5=85 A %1 70:@KB>Connection to %1 closedQFtp<5 C40;>AL A>740BL :0B0;>3: %1Creating directory failed: %1QFtp:5 C40;>AL 703@C78BL D09;: %1Downloading file failed: %1QFtp#75; %1 =0945= Host %1 foundQFtp"#75; %1 =5 =0945=Host %1 not foundQFtp#75; =0945= Host foundQFtp@5 C40;>AL ?@>G8B0BL :0B0;>3: %1Listing directory failed: %1QFtp:5 C40;>AL 02B>@87>20BLAO: %1Login failed: %1QFtp2!>548=5=85 =5 CAB0=>2;5=> Not connectedQFtp<5 C40;>AL C40;8BL :0B0;>3: %1Removing directory failed: %1QFtp65 C40;>AL C40;8BL D09;: %1Removing file failed: %1QFtp$58725AB=0O >H81:0 Unknown errorQFtp:5 C40;>AL >B3@C78BL D09;: %1Uploading file failed: %1QFtp:;/2K:;Toggle QGroupBox$<O C7;0 =5 7040=>No host name given QHostInfo$58725AB=0O >H81:0 Unknown error QHostInfo#75; =5 =0945=Host not foundQHostInfoAgent*5:>@@5:B=>5 8<O C7;0Invalid hostnameQHostInfoAgent$<O C7;0 =5 7040=>No host name givenQHostInfoAgent,58725AB=K9 B8? 04@5A0Unknown address typeQHostInfoAgent$58725AB=0O >H81:0 Unknown errorQHostInfoAgent.58725AB=0O >H81:0 (%1)Unknown error (%1)QHostInfoAgent*"@51C5BAO 02B>@870F8OAuthentication requiredQHttp<!>548=5=85 A C7;>< CAB0=>2;5=>Connected to hostQHttpB#AB0=>2;5=> A>548=5=85 A C7;>< %1Connected to host %1QHttp$!>548=5=85 70:@KB>Connection closedQHttp*B:070=> 2 A>548=5=88Connection refusedQHttpd A>548=5=88 >B:070=> (8;8 2@5<O >6840=8O 8AB5:;>)!Connection refused (or timed out)QHttp:!>548=5=85 A C7;>< %1 70:@KB>Connection to %1 closedQHttp"0==K5 ?>2@5645=KData corruptedQHttpDH81:0 70?8A8 >B25B0 =0 CAB@>9AB2> Error writing response to deviceQHttp*HTTP-70?@>A =5 C40;AOHTTP request failedQHttp0?@>H5=> A>548=5=85 ?> ?@>B>:>;C HTTPS, => ?>445@6:0 SSL =5 A:><?8;8@>20=0:HTTPS connection requested but SSL support not compiled inQHttp#75; %1 =0945= Host %1 foundQHttp"#75; %1 =5 =0945=Host %1 not foundQHttp#75; =0945= Host foundQHttp0#75; B@51C5B 02B>@870F8NHost requires authenticationQHttpR5:>@@5:B=>5 HTTP-D@03<5=B8@>20=85 40==KEInvalid HTTP chunked bodyQHttpD5:>@@5:B=K9 HTTP-703>;>2>: >B25B0Invalid HTTP response headerQHttp@5 C:070= A5@25@ 4;O ?>4:;NG5=8ONo server set to connect toQHttpN"@51C5BAO 02B>@870F8O =0 ?@>:A8-A5@25@5Proxy authentication requiredQHttpB@>:A8-A5@25@ B@51C5B 02B>@870F8NProxy requires authenticationQHttp0?@>A ?@5@20=Request abortedQHttp628B8@>20=85 SSL =5 C40;>ALSSL handshake failedQHttpJ!5@25@ =5>6840==> @07>@20; A>548=5=85%Server closed connection unexpectedlyQHttp:58725AB=K9 <5B>4 02B>@870F88Unknown authentication methodQHttp$58725AB=0O >H81:0 Unknown errorQHttp6#:070= =58725AB=K9 ?@>B>:>;Unknown protocol specifiedQHttp4525@=0O 4;8=0 A>45@68<>3>Wrong content lengthQHttp*"@51C5BAO 02B>@870F8OAuthentication requiredQHttpSocketEngineN5 ?>;CG5= HTTP->B25B >B ?@>:A8-A5@25@0(Did not receive HTTP response from proxyQHttpSocketEngineXH81:0 >1<5=0 40==K<8 A ?@>:A8-A5@25@>< HTTP#Error communicating with HTTP proxyQHttpSocketEnginehH81:0 @071>@0 70?@>A0 02B>@870F88 >B ?@>:A8-A5@25@0/Error parsing authentication request from proxyQHttpSocketEngine^!>548=5=85 A ?@>:A8-A5@25@>< =5>6840==> 70:@KB>#Proxy connection closed prematurelyQHttpSocketEngineJ A>548=5=88 ?@>:A8-A5@25@>< >B:070=>Proxy connection refusedQHttpSocketEngineB@>:A8-A5@25@ 70?@5B8; A>548=5=85Proxy denied connectionQHttpSocketEngineZ@5<O =0 A>548=5=85 A ?@>:A8-A5@25@>< 8AB5:;>!Proxy server connection timed outQHttpSocketEngine.@>:A8-A5@25@ =5 =0945=Proxy server not foundQHttpSocketEngine85 C40;>AL =0G0BL B@0=70:F8NCould not start transaction QIBaseDriver6H81:0 >B:@KB8O 107K 40==KEError opening database QIBaseDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QIBaseDriver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QIBaseDriverd5 C40;>AL ?>;CG8BL @5AC@AK 4;O A>740=8O 2K@065=8OCould not allocate statement QIBaseResultJ5 C40;>AL >?8A0BL 2E>4OI55 2K@065=85"Could not describe input statement QIBaseResult85 C40;>AL >?8A0BL 2K@065=85Could not describe statement QIBaseResultJ5 C40;>AL ?>;CG8BL A;54CNI89 M;5<5=BCould not fetch next item QIBaseResult.5 C40;>AL =09B8 <0AA82Could not find array QIBaseResult>5 C40;>AL =09B8 40==K5 <0AA820Could not get array data QIBaseResultJ5 C40;>AL =09B8 8=D>@<0F8N > 70?@>A5Could not get query info QIBaseResultN5 C40;>AL =09B8 8=D>@<0F8N > 2K@065=88Could not get statement info QIBaseResult@5 C40;>AL ?>43>B>28BL 2K@065=85Could not prepare statement QIBaseResult85 C40;>AL =0G0BL B@0=70:F8NCould not start transaction QIBaseResult852>7<>6=> 70:@KBL 2K@065=85Unable to close statement QIBaseResult>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QIBaseResult.52>7<>6=> A>740BL BLOBUnable to create BLOB QIBaseResult652>7<>6=> 2K?>;=8BL 70?@>AUnable to execute query QIBaseResult.52>7<>6=> >B:@KBL BLOBUnable to open BLOB QIBaseResult252>7<>6=> ?@>G8B0BL BLOBUnable to read BLOB QIBaseResult052>7<>6=> 70?8A0BL BLOBUnable to write BLOB QIBaseResultD5B A2>1>4=>3> <5AB0 =0 CAB@>9AB25No space left on device QIODevice<$09; 8;8 :0B0;>3 =5 ACI5AB2C5BNo such file or directory QIODevice>ABC? 70?@5IQ=Permission denied QIODevice:!;8H:>< <=>3> >B:@KBKE D09;>2Too many open files QIODevice$58725AB=0O >H81:0 Unknown error QIODevice&5B>4 22>40 S60 FEPFEP QInputContext(5B>4 22>40 Mac OS XMac OS X input method QInputContext&5B>4 22>40 S60 FEPS60 FEP input method QInputContext&5B>4 22>40 WindowsWindows input method QInputContext*5B>4 22>40 X-A5@25@0XIM QInputContext*5B>4 22>40 X-A5@25@0XIM input method QInputContext"#:068B5 7=0G5=85:Enter a value: QInputDialogP%1 O2;O5BAO =525@=K< >1J5:B>< ELF (%2)"'%1' is an invalid ELF object (%2)QLibrary:%1 =5 O2;O5BAO >1J5:B>< ELF'%1' is not an ELF objectQLibraryD%1 =5 O2;O5BAO >1J5:B>< ELF (%2)'%1' is not an ELF object (%2)QLibraryL52>7<>6=> 703@C78BL 181;8>B5:C %1: %2Cannot load library %1: %2QLibraryR52>7<>6=> @07@5H8BL A8<2>; %1 2 %2: %3$Cannot resolve symbol "%1" in %2: %3QLibraryL52>7<>6=> 2K3@C78BL 181;8>B5:C %1: %2Cannot unload library %1: %2QLibraryf@>25@>G=0O 8=D>@<0F8O 4;O <>4C;O %1 =5 A>2?0405B)Plugin verification data mismatch in '%1'QLibrary\$09; %1 - =5 O2;O5BAO :>@@5:B=K< <>4C;5< Qt.'The file '%1' is not a valid Qt plugin.QLibrary>4C;L %1 8A?>;L7C5B =5A><5AB8<CN 181;8>B5:C Qt. (%2.%3.%4) [%5]=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibrary>4C;L %1 8A?>;L7C5B =5A><5AB8<CN 181;8>B5:C Qt. (52>7<>6=> A>2<5AB8BL @5;87=K5 8 >B;04>G=K5 181;8>B5:8.)WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibrary>4C;L %1 8A?>;L7C5B =5A><5AB8<CN 181;8>B5:C Qt. 68405BAO :;NG %2, => ?>;CG5= :;NG %3OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryF8=0<8G5A:0O 181;8>B5:0 =5 =0945=0.!The shared library was not found.QLibrary$58725AB=0O >H81:0 Unknown errorQLibrary&>?8@>20BL&Copy QLineEdit&AB028BL&Paste QLineEdit&&>2B>@8BL 459AB285&Redo QLineEdit$&B<5=8BL 459AB285&Undo QLineEdit&K@570BLCu&t QLineEdit#40;8BLDelete QLineEditK45;8BL 2AQ Select All QLineEdit,%1: 4@5A 8A?>;L7C5BAO%1: Address in use QLocalServer(%1: 5:>@@5:B=>5 8<O%1: Name error QLocalServer&%1: >ABC? 70?@5IQ=%1: Permission denied QLocalServer2%1: 58725AB=0O >H81:0 %2%1: Unknown error %2 QLocalServer&%1: >ABC? 70?@5IQ=%1: Access denied QLocalSocket*%1: H81:0 A>548=5=8O%1: Connection error QLocalSocket2%1: B:070=> 2 A>548=5=88%1: Connection refused QLocalSocket<%1: 0B03@0<<0 A;8H:>< 1>;LH0O%1: Datagram too large QLocalSocket(%1: 5:>@@5:B=>5 8<O%1: Invalid name QLocalSocket<%1: 0:@KB> C40;5==>9 AB>@>=>9%1: Remote closed QLocalSocket:%1: H81:0 >1@0I5=8O : A>:5BC%1: Socket access error QLocalSocketN%1: @5<O =0 >?5@0F8N A A>:5B>< 8AB5:;>%1: Socket operation timed out QLocalSocketH%1: H81:0 2K45;5=8O @5AC@A>2 A>:5B0%1: Socket resource error QLocalSocketP%1: ?5@0F8O A A>:5B>< =5 ?>445@68205BAO)%1: The socket operation is not supported QLocalSocket,%1: 58725AB=0O >H81:0%1: Unknown error QLocalSocket2%1: 58725AB=0O >H81:0 %2%1: Unknown error %2 QLocalSocket852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QMYSQLDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QMYSQLDriver,52>7<>6=> A>548=8BLAOUnable to connect QMYSQLDriver@52>7<>6=> >B:@KBL 107C 40==KE 'Unable to open database ' QMYSQLDriver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QMYSQLDriverX52>7<>6=> ?@82O70BL @57C;LB8@CNI85 7=0G5=8OUnable to bind outvalues QMYSQLResult:52>7<>6=> ?@82O70BL 7=0G5=85Unable to bind value QMYSQLResultJ52>7<>6=> 2K?>;=8BL A;54CNI89 70?@>AUnable to execute next query QMYSQLResult652>7<>6=> 2K?>;=8BL 70?@>AUnable to execute query QMYSQLResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QMYSQLResult452>7<>6=> ?>;CG8BL 40==K5Unable to fetch data QMYSQLResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QMYSQLResult:52>7<>6=> A1@>A8BL 2K@065=85Unable to reset statement QMYSQLResultP52>7<>6=> A>E@0=8BL A;54CNI89 @57C;LB0BUnable to store next result QMYSQLResult<52>7<>6=> A>E@0=8BL @57C;LB0BUnable to store result QMYSQLResulth52>7<>6=> A>E@0=8BL @57C;LB0BK 2K?>;=5=8O 2K@065=8O!Unable to store statement results QMYSQLResult(5>703;02;5=>) (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindow&0:@KBL&Close QMdiSubWindow&5@5<5AB8BL&Move QMdiSubWindow&>AAB0=>28BL&Restore QMdiSubWindow& 07<5@&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindow0:@KBLClose QMdiSubWindow!?@02:0Help QMdiSubWindow &0A?0E=CBL Ma&ximize QMdiSubWindow 0A?0E=CBLMaximize QMdiSubWindow5=NMenu QMdiSubWindow&!25@=CBL Mi&nimize QMdiSubWindow!25@=CBLMinimize QMdiSubWindow>AAB0=>28BLRestore QMdiSubWindow>AAB0=>28BL Restore Down QMdiSubWindow(!25@=CBL 2 703>;>2>:Shade QMdiSubWindow$AB020BLAO &A25@EC Stay on &Top QMdiSubWindow2>AAB0=>28BL 87 703>;>2:0Unshade QMdiSubWindow0:@KBLCloseQMenuK?>;=8BLExecuteQMenuB:@KBLOpenQMenu59AB28OActionsQMenuBar#3;>20O ?0=5;LCorner ToolbarQMenuBarz<h3> Qt</h3><p>0==0O ?@>3@0<<0 8A?>;L7C5B Qt 25@A88 %1.</p>8

About Qt

This program uses Qt version %1.

 QMessageBox <p>Qt - MB> 8=AB@C<5=B0@89 4;O @07@01>B:8 :@>AA?;0BD>@<5==KE ?@8;>65=89 =0 C++.</p><p>Qt ?@54>AB02;O5B A>2<5AB8<>ABL =0 C@>2=5 8AE>4=KE B5:AB>2 <564C MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux 8 2A5<8 ?>?C;O@=K<8 :><<5@G5A:8<8 20@80=B0<8 Unix. "0:65 Qt 4>ABC?=0 4;O 2AB@08205<KE CAB@>9AB2 2 2845 Qt 4;O Embedded Linux 8 Qt 4;O Windows CE.</p><p>Qt 4>ABC?=0 ?>4 B@5<O @07;8G=K<8 ;8F5=78O<8, @07@01>B0==K<8 4;O C4>2;5B2>@5=8O @07;8G=KE B@51>20=89.</p><p>Qt ?>4 =0H59 :><<5@G5A:>9 ;8F5=7859 ?@54=07=0G5=0 4;O @0728B8O ?@>?@85B0@=>3>/:><<5@G5A:>3> ?@>3@0<<=>3> >15A?5G5=8O, :>340 K =5 65;05B5 ?@54>AB02;OBL 8AE>4=K5 B5:ABK B@5BL8< AB>@>=0<, 8;8 2 A;CG05 =52>7<>6=>AB8 ?@8=OB8O CA;>289 ;8F5=789 GNU LGPL 25@A88 2.1 8;8 GNU GPL 25@A88 3.0.</p><p>Qt ?>4 ;8F5=7859 GNU LGPL 25@A88 2.1 ?@54=07=0G5=0 4;O @07@01>B:8 ?@>3@0<<=>3> >15A?5G5=8O A >B:@KBK<8 8AE>4=K<8 B5:AB0<8 8;8 :><<5@G5A:>3> ?@>3@0<<=>3> >15A?5G5=8O ?@8 A>1;N45=88 CA;>289 ;8F5=788 GNU LGPL 25@A88 2.1.</p><p>Qt ?>4 ;8F5=7859 GNU General Public License 25@A88 3.0 ?@54=07=0G5=0 4;O @07@01>B:8 ?@>3@0<<=KE ?@8;>65=89 2 B5E A;CG0OE, :>340 K E>B5;8 1K 8A?>;L7>20BL B0:85 ?@8;>65=8O 2 A>G5B0=88 A ?@>3@0<<=K< >15A?5G5=85< =0 CA;>28OE ;8F5=788 GNU GPL A 25@A88 3.0 8;8 5A;8 K 3>B>2K A>1;N40BL CA;>28O ;8F5=788 GNU GPL 25@A88 3.0.</p><p>1@0B8B5AL : <a href="http://qt.digia.com/product/licensing">qt.digia.com/product/licensing</a> 4;O >17>@0 ;8F5=789 Qt.</p><p>Copyright (C) 2012 >@?>@0F8O Digia 8/8;8 5Q 4>G5@=85 ?>4@0745;5=8O.</p><p>Qt - ?@>4C:B :><?0=88 Digia. 1@0B8B5AL : <a href="http://qt.digia.com/">qt.digia.com</a> 4;O ?>;CG5=8O 4>?>;=8B5;L=>9 8=D>@<0F88.</p>

Qt is a C++ toolkit for cross-platform application development.

Qt provides single-source portability across MS Windows, Mac OS X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.

Qt is available under three different licensing options designed to accommodate the needs of our various users.

Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.

Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.

Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.

Please see qt.digia.com/product/licensing for an overview of Qt licensing.

Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).

Qt is a Digia product. See qt.digia.com for more information.

 QMessageBox QtAbout Qt QMessageBox!?@02:0Help QMessageBox*!:@KBL ?>4@>1=>AB8...Hide Details... QMessageBox0:@KBLOK QMessageBox.>:070BL ?>4@>1=>AB8...Show Details... QMessageBox$K1>@ @568<0 22>40 Select IMQMultiInputContextR5@5:;NG0B5;L @568<0 <=>65AB25==>3> 22>40Multiple input method switcherQMultiInputContextPlugin5@5:;NG0B5;L @568<0 <=>65AB25==>3> 22>40, 8A?>;L7C5<K9 2 :>=B5:AB=>< <5=N B5:AB>2KE @540:B>@>2MMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginN@C3>9 A>:5B C65 ?@>A;CH8205B MB>B ?>@B4Another socket is already listening on the same portQNativeSocketEngine|>?KB:0 8A?>;L7>20BL IPv6 =0 ?;0BD>@<5, =5 ?>445@6820NI59 IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine*B:070=> 2 A>548=5=88Connection refusedQNativeSocketEngine6@5<O =0 A>548=5=85 8AB5:;>Connection timed outQNativeSocketEngineN0B03@0<<0 A;8H:>< 1>;LH0O 4;O >B?@02:8Datagram was too large to sendQNativeSocketEngine#75; =54>ABC?5=Host unreachableQNativeSocketEngine<5:>@@5:B=K9 45A:@8?B>@ A>:5B0Invalid socket descriptorQNativeSocketEngineH81:0 A5B8 Network errorQNativeSocketEngineB@5<O =0 A5B52CN >?5@0F8N 8AB5:;>Network operation timed outQNativeSocketEngine!5BL =54>ABC?=0Network unreachableQNativeSocketEngine*?5@0F8O A =5-A>:5B><Operation on non-socketQNativeSocketEngine*54>AB0B>G=> @5AC@A>2Out of resourcesQNativeSocketEngine>ABC? 70?@5IQ=Permission deniedQNativeSocketEngine4@>B>:>; =5 ?>445@68205BAOProtocol type not supportedQNativeSocketEngine 4@5A =54>ABC?5=The address is not availableQNativeSocketEngine4@5A 70I8IQ=The address is protectedQNativeSocketEngine,4@5A C65 8A?>;L7C5BAO#The bound address is already in useQNativeSocketEnginef5:>@@5:B=K9 B8? ?@>:A8-A5@25@0 4;O 40==>9 >?5@0F88,The proxy type is invalid for this operationQNativeSocketEngine@#40;Q==K9 C75; 70:@K; A>548=5=85%The remote host closed the connectionQNativeSocketEnginef52>7<>6=> 8=8F80;878@>20BL H8@>:>25I0B5;L=K9 A>:5B%Unable to initialize broadcast socketQNativeSocketEngineX52>7<>6=> 8=8F80;878@>20BL =5-1;>G=K9 A>:5B(Unable to initialize non-blocking socketQNativeSocketEngine:52>7<>6=> ?>;CG8BL A>>1I5=85Unable to receive a messageQNativeSocketEngine<52>7<>6=> >B?@028BL A>>1I5=85Unable to send a messageQNativeSocketEngine&52>7<>6=> 70?8A0BLUnable to writeQNativeSocketEngine$58725AB=0O >H81:0 Unknown errorQNativeSocketEngineH?5@0F8O A A>:5B>< =5 ?>445@68205BAOUnsupported socket operationQNativeSocketEngine$H81:0 >B:@KB8O %1Error opening %1QNetworkAccessCacheBackend(5:>@@5:B=K9 URI: %1Invalid URI: %1QNetworkAccessDataBackendf#40;Q==K9 C75; =5>6840==> ?@5@20; A>548=5=85 4;O %13Remote host closed the connection prematurely on %1QNetworkAccessDebugPipeBackend.H8:0 A>:5B0 4;O %1: %2Socket error on %1: %2QNetworkAccessDebugPipeBackend,H81:0 70?8A8 2 %1: %2Write error writing to %1: %2QNetworkAccessDebugPipeBackendZ52>7<>6=> >B:@KBL %1: #:070= ?CBL : :0B0;>3C#Cannot open %1: Path is a directoryQNetworkAccessFileBackend,H81:0 >B:@KB8O %1: %2Error opening %1: %2QNetworkAccessFileBackend.H81:0 GB5=8O 87 %1: %2Read error reading from %1: %2QNetworkAccessFileBackend`0?@>A =0 >B:@KB85 D09;0 2=5 D09;>2>9 A8AB5<K %1%Request for opening non-local file %1QNetworkAccessFileBackend,H81:0 70?8A8 2 %1: %2Write error writing to %1: %2QNetworkAccessFileBackendZ52>7<>6=> >B:@KBL %1: #:070= ?CBL : :0B0;>3CCannot open %1: is a directoryQNetworkAccessFtpBackendBH81:0 2 ?@>F5AA5 703@C7:8 %1: %2Error while downloading %1: %2QNetworkAccessFtpBackendBH81:0 2 ?@>F5AA5 >B3@C7:8 %1: %2Error while uploading %1: %2QNetworkAccessFtpBackendb!>548=5=85 A %1 =5 C40;>AL: B@51C5BAO 02B>@870F8O0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackendD>4E>4OI89 ?@>:A8-A5@25@ =5 =0945=No suitable proxy foundQNetworkAccessFtpBackendD>4E>4OI89 ?@>:A8-A5@25@ =5 =0945=No suitable proxy foundQNetworkAccessHttpBackend.>ABC? 2 A5BL >B:;NGQ=.Network access is disabled.QNetworkAccessManagerLH81:0 703@C7:8 %1 - >B25B A5@25@0: %2)Error downloading %1 - server replied: %2 QNetworkReply,H81:0 A5B52>9 A5AA88.Network session error. QNetworkReply258725AB=K9 ?@>B>:>; %1Protocol "%1" is unknown QNetworkReply,@5<5==0O >H81:0 A5B8.Temporary network failure. QNetworkReply0>H81:0 70?CA:0 4@0925@0.backend start error. QNetworkReply"?5@0F8O >B<5=5=0Operation canceledQNetworkReplyImpl45:>@@5:B=0O :>=D83C@0F8O.Invalid configuration.QNetworkSessionH81:0 @>C<8=30 Roaming errorQNetworkSessionPrivateImpl> >C<8=3 ?@5@20= 8;8 =52>7<>65=.'Roaming was aborted or is not possible.QNetworkSessionPrivateImplT!5AA8O ?@5@20=0 ?>;L7>20B5;5< 8;8 A8AB5<>9!Session aborted by user or systemQNetworkSessionPrivateImpl\"@51C5<0O >?5@0F8O =5 ?>445@68205BAO A8AB5<>9.7The requested operation is not supported by the system.QNetworkSessionPrivateImpl`!5AA8O 1K;0 ?@5@20=0 ?>;L7>20B5;5< 8;8 A8AB5<>9..The session was aborted by the user or system.QNetworkSessionPrivateImpl^52>7<>6=> 8A?>;L7>20BL C:070==CN :>=D83C@0F8N.+The specified configuration cannot be used.QNetworkSessionPrivateImpl*5>?@545;Q==0O >H81:0Unidentified ErrorQNetworkSessionPrivateImpl458725AB=0O >H81:0 A5AA88.Unknown session error.QNetworkSessionPrivateImpl852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QOCIDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QOCIDriver652>7<>6=> 8=8F80;878@>20BLUnable to initialize QOCIDriver252>7<>6=> 02B>@87>20BLAOUnable to logon QOCIDriver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QOCIDriver852>7<>6=> A>740BL 2K@065=85Unable to alloc statement QOCIResultj52>7<>6=> ?@82O70BL AB>;15F 4;O ?0:5B=>3> 2K?>;=5=8O'Unable to bind column for batch execute QOCIResultX52>7<>6=> ?@82O70BL @57C;LB8@CNI85 7=0G5=8OUnable to bind value QOCIResultN52>7<>6=> 2K?>;=8BL ?0:5B=>5 2K@065=85!Unable to execute batch statement QOCIResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QOCIResultF52>7<>6=> >?@545;8BL B8? 2K@065=8OUnable to get statement type QOCIResultJ52>7<>6=> ?5@59B8 : A;54CNI59 AB@>:5Unable to goto next QOCIResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QOCIResult>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QODBCDriver,52>7<>6=> A>548=8BLAOUnable to connect QODBCDriver52>7<>6=> A>548=8BLAO - @0925@ =5 ?>445@68205B B@51C5<K9 DC=:F8>=0;EUnable to connect - Driver doesn't support all functionality required QODBCDriver\52>7<>6=> >B:;NG8BL 02B>7025@H5=85 B@0=70:F89Unable to disable autocommit QODBCDriverZ52>7<>6=> 2:;NG8BL 02B>7025@H5=85 B@0=70:F89Unable to enable autocommit QODBCDriver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QODBCDriverQODBCResult::reset: 52>7<>6=> CAB0=>28BL SQL_CURSOR_STATIC 0B@81CB>< 2K@065=85. @>25@LB5 =0AB@>9:8 4@0925@0 ODBCyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult:52>7<>6=> ?@82O70BL 7=0G5=85Unable to bind variable QODBCResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QODBCResult452>7<>6=> ?>;CG8BL 40==K5Unable to fetch QODBCResultB52>7<>6=> ?>;CG8BL ?5@2CN AB@>:CUnable to fetch first QODBCResultH52>7<>6=> ?>;CG8BL ?>A;54=NN AB@>:CUnable to fetch last QODBCResultH52>7<>6=> ?>;CG8BL A;54CNICN AB@>:CUnable to fetch next QODBCResultJ52>7<>6=> ?>;CG8BL ?@54K4CICN AB@>:CUnable to fetch previous QODBCResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QODBCResultv%1 ?>2B>@O5B 8<O ?@54K4CI59 @>;8 8 =5 1C45B 8A?>;L7>20=>.:"%1" duplicates a previous role name and will be disabled.QObjectT5 C40;>AL ?@>G8B0BL >:>=G0=85 87>1@065=8OCould not read footerQObjectN5 C40;>AL ?@>G8B0BL 40==K5 87>1@065=8OCould not read image dataQObjectL5 C40;>AL A1@>A8BL 2 8AE>4=CN ?>78F8N!Could not reset to start positionQObjectX5 C40;>AL ?5@5<5AB8BLAO : :>=FC 87>1@065=8O#Could not seek to image read footerQObjectHomeHomeQObject#75; =5 =0945=Host not foundQObjectL54>?CAB8<0O 3;C18=0 F25B0 87>1@065=8OImage depth not validQObjectP5 C40;>AL ?@>G8B0BL mHeader 87>1@065=8OImage mHeader read failedQObject|"8? 87>1@065=8O (>B;8G=K9 >B TrueVision 2.0) =5 ?>445@68205BAO-Image type (non-TrueVision 2.0) not supportedQObjectB"8? 87>1@065=8O =5 ?>445@68205BAOImage type not supportedQObject42C:>2>9 A5@25@ PulseAudioPulseAudio Sound ServerQObject5 C40;>AL ?@>8725AB8 ?5@5<5I5=85 ?> D09;C/CAB@>9AB2C 4;O GB5=8O 87>1@065=8O&Seek file/device for image read failedQObject5 ?>445@68205BAO GB5=8O 87>1@065=89 87 ?>A;54>20B5;L=KE CAB@>9AB2 (=0?@8<5@ A>:5B0):Sequential device (eg socket) for image read not supportedQObject25:>@@5:B=K9 70?@>A: %1invalid query: "%1"QObject<ONameQPPDOptionsModel=0G5=85ValueQPPDOptionsModel85 C40;>AL =0G0BL B@0=70:F8NCould not begin transaction QPSQLDriver>5 C40;>AL 7025@H8BL B@0=70:F8NCould not commit transaction QPSQLDriver<5 C40;>AL >B:0B8BL B@0=70:F8NCould not rollback transaction QPSQLDriver,52>7<>6=> A>548=8BLAOUnable to connect QPSQLDriver,52>7<>6=> ?>4?8A0BLAOUnable to subscribe QPSQLDriver*52>7<>6=> >B?8A0BLAOUnable to unsubscribe QPSQLDriver252>7<>6=> A>740BL 70?@>AUnable to create query QPSQLResult@52>7<>6=> ?>43>B>28BL 2K@065=85Unable to prepare statement QPSQLResult!0=B8<5B@K (cm)Centimeters (cm)QPageSetupWidget $>@<0FormQPageSetupWidgetKA>B0:Height:QPageSetupWidgetN9<K (in) Inches (in)QPageSetupWidget;L1><=0O LandscapeQPageSetupWidget>;OMarginsQPageSetupWidget8;;8<5B@K (mm)Millimeters (mm)QPageSetupWidget@85=B0F8O OrientationQPageSetupWidget  07<5@ AB@0=8FK: Page size:QPageSetupWidget C<030PaperQPageSetupWidget AB>G=8: 1C<038: Paper source:QPageSetupWidget">G:8 (pt) Points (pt)QPageSetupWidget=86=0OPortraitQPageSetupWidget,5@52Q@=CB0O 0;L1><=0OReverse landscapeQPageSetupWidget(5@52Q@=CB0O :=86=0OReverse portraitQPageSetupWidget(8@8=0:Width:QPageSetupWidget=86=55 ?>;5 bottom marginQPageSetupWidget;52>5 ?>;5 left marginQPageSetupWidget?@02>5 ?>;5 right marginQPageSetupWidget25@E=55 ?>;5 top marginQPageSetupWidget.>4C;L =5 1K; 703@C65=.The plugin was not loaded. QPluginLoader$58725AB=0O >H81:0 Unknown error QPluginLoaderN%1 C65 ACI5AB2C5B. %>B8B5 70<5=8BL 53>?/%1 already exists. Do you want to overwrite it? QPrintDialogX%1 - MB> :0B0;>3. K15@8B5 4@C3>5 8<O D09;0.7%1 is a directory. Please choose a different file name. QPrintDialog&0@0<5B@K << &Options << QPrintDialog&0@0<5B@K >> &Options >> QPrintDialog&5G0BL&Print QPrintDialog2<qt>%>B8B5 70<5=8BL?</qt>%Do you want to overwrite it? QPrintDialogA0A0 QPrintDialog$A0 (841 x 1189 <<)A0 (841 x 1189 mm) QPrintDialogA1A1 QPrintDialog"A1 (594 x 841 <<)A1 (594 x 841 mm) QPrintDialogA2A2 QPrintDialog"A2 (420 x 594 <<)A2 (420 x 594 mm) QPrintDialogA3A3 QPrintDialog"A3 (297 x 420 <<)A3 (297 x 420 mm) QPrintDialogA4A4 QPrintDialogJA4 (210 x 297 <<, 8.26 x 11.7 4N9<>2)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5A5 QPrintDialog"A5 (148 x 210 <<)A5 (148 x 210 mm) QPrintDialogA6A6 QPrintDialog"A6 (105 x 148 <<)A6 (105 x 148 mm) QPrintDialogA7A7 QPrintDialog A7 (74 x 105 <<)A7 (74 x 105 mm) QPrintDialogA8A8 QPrintDialogA8 (52 x 74 <<)A8 (52 x 74 mm) QPrintDialogA9A9 QPrintDialogA9 (37 x 52 <<)A9 (37 x 52 mm) QPrintDialogA524>=8<K: %1 Aliases: %1 QPrintDialogB0B0 QPrintDialog&B0 (1000 x 1414 <<)B0 (1000 x 1414 mm) QPrintDialogB1B1 QPrintDialog$B1 (707 x 1000 <<)B1 (707 x 1000 mm) QPrintDialogB10B10 QPrintDialog B10 (31 x 44 <<)B10 (31 x 44 mm) QPrintDialogB2B2 QPrintDialog"B2 (500 x 707 <<)B2 (500 x 707 mm) QPrintDialogB3B3 QPrintDialog"B3 (353 x 500 <<)B3 (353 x 500 mm) QPrintDialogB4B4 QPrintDialog"B4 (250 x 353 <<)B4 (250 x 353 mm) QPrintDialogB5B5 QPrintDialogJB5 (176 x 250 <<, 6.93 x 9.84 4N9<>2)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6B6 QPrintDialog"B6 (125 x 176 <<)B6 (125 x 176 mm) QPrintDialogB7B7 QPrintDialog B7 (88 x 125 <<)B7 (88 x 125 mm) QPrintDialogB8B8 QPrintDialogB8 (62 x 88 <<)B8 (62 x 88 mm) QPrintDialogB9B9 QPrintDialogB9 (44 x 62 <<)B9 (44 x 62 mm) QPrintDialogC5EC5E QPrintDialog$C5E (163 x 229 <<)C5E (163 x 229 mm) QPrintDialog >;L7>20B5;LA:89Custom QPrintDialogDLEDLE QPrintDialog$DLE (110 x 220 <<)DLE (110 x 220 mm) QPrintDialogExecutive Executive QPrintDialogRExecutive (191 x 254 <<, 7.5 x 10 4N9<>2))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogh%1 =54>ABC?5= 4;O 70?8A8. K15@8B5 4@C3>5 8<O D09;0.=File %1 is not writable. Please choose a different file name. QPrintDialog$09; ACI5AB2C5B File exists QPrintDialog FolioFolio QPrintDialog(Folio (210 x 330 <<)Folio (210 x 330 mm) QPrintDialog LedgerLedger QPrintDialog*Ledger (432 x 279 <<)Ledger (432 x 279 mm) QPrintDialog LegalLegal QPrintDialogJLegal (216 x 356 <<, 8.5 x 14 4N9<>2)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialog LetterLetter QPrintDialogLLetter (216 x 279 <<, 8.5 x 11 4N9<>2)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialog>:0;L=K9 D09; Local file QPrintDialog0:@KBLOK QPrintDialog 5G0BLPrint QPrintDialog"5G0BL 2 D09; ...Print To File ... QPrintDialogA5 AB@0=8FK Print all QPrintDialog "5:CI0O AB@0=8F0Print current page QPrintDialog 80?07>= AB@0=8F Print range QPrintDialog&K45;5==K9 D@03<5=BPrint selection QPrintDialog&5G0BL 2 D09; (PDF)Print to File (PDF) QPrintDialog45G0BL 2 D09; (Postscript)Print to File (Postscript) QPrintDialogTabloidTabloid QPrintDialog,Tabloid (279 x 432 <<)Tabloid (279 x 432 mm) QPrintDialog`=0G5=85 A =5 <>65B 1KBL 1>;LH5 7=0G5=8O ?>.7The 'From' value cannot be greater than the 'To' value. QPrintDialog,US Common #10 EnvelopeUS Common #10 Envelope QPrintDialog6>=25@B US #10 (105x241 <<)%US Common #10 Envelope (105 x 241 mm) QPrintDialog0?8AL %1 D09;0 Write %1 file QPrintDialog$A>548=5=> ;>:0;L=>locally connected QPrintDialog=58725AB=>unknown QPrintDialog%1%%1%QPrintPreviewDialog0:@KBLCloseQPrintPreviewDialog-:A?>@B 2 PDF Export to PDFQPrintPreviewDialog(-:A?>@B 2 PostscriptExport to PostScriptQPrintPreviewDialog5@20O AB@0=8F0 First pageQPrintPreviewDialog0 2AN AB@0=8FCFit pageQPrintPreviewDialog> H8@8=5 Fit widthQPrintPreviewDialog;L1><=0O LandscapeQPrintPreviewDialog$>A;54=OO AB@0=8F0 Last pageQPrintPreviewDialog$!;54CNI0O AB@0=8F0 Next pageQPrintPreviewDialog$0@0<5B@K AB@0=8FK Page SetupQPrintPreviewDialog$0@0<5B@K AB@0=8FK Page setupQPrintPreviewDialog=86=0OPortraitQPrintPreviewDialog&@54K4CI0O AB@0=8F0 Previous pageQPrintPreviewDialog 5G0BLPrintQPrintPreviewDialog@>A<>B@ ?5G0B8 Print PreviewQPrintPreviewDialog6>:070BL B8BC;L=K5 AB@0=8FKShow facing pagesQPrintPreviewDialog6>:070BL >17>@ 2A5E AB@0=8FShow overview of all pagesQPrintPreviewDialog,>:070BL >4=C AB@0=8FCShow single pageQPrintPreviewDialog#25;8G8BLZoom inQPrintPreviewDialog#<5=LH8BLZoom outQPrintPreviewDialog>?>;=8B5;L=>AdvancedQPrintPropertiesWidget $>@<0FormQPrintPropertiesWidget!B@0=8F0PageQPrintPropertiesWidget& 07>1@0BL ?> :>?8O<CollateQPrintSettingsOutput&25BColorQPrintSettingsOutput 568< F25B0 Color ModeQPrintSettingsOutput >?88CopiesQPrintSettingsOutput">;8G5AB2> :>?89:Copies:QPrintSettingsOutput "5:CI0O AB@0=8F0 Current PageQPrintSettingsOutput&2CAB>@>==OO ?5G0BLDuplex PrintingQPrintSettingsOutput $>@<0FormQPrintSettingsOutputBB5=:8 A5@>3> GrayscaleQPrintSettingsOutput$> 4;8==>9 AB>@>=5 Long sideQPrintSettingsOutput5BNoneQPrintSettingsOutput0@0<5B@KOptionsQPrintSettingsOutput 0AB@>9:8 2K2>40Output SettingsQPrintSettingsOutput!B@0=8FK A Pages fromQPrintSettingsOutputA5 Print allQPrintSettingsOutput80?07>= ?5G0B8 Print rangeQPrintSettingsOutput 1@0B=K9 ?>@O4>:ReverseQPrintSettingsOutput&K45;5==K9 D@03<5=B SelectionQPrintSettingsOutput&> :>@>B:>9 AB>@>=5 Short sideQPrintSettingsOutput?>toQPrintSettingsOutput&0720=85:&Name: QPrintWidget...... QPrintWidget $>@<0Form QPrintWidget 0A?>;>65=85: Location: QPrintWidgetK2>4 2 &D09;: Output &file: QPrintWidget!&2>9AB20 P&roperties QPrintWidget@>A<>B@Preview QPrintWidget@8=B5@Printer QPrintWidget"8?:Type: QPrintWidgetf5 C40;>AL >B:@KBL ?5@5=0?@02;5=85 22>40 4;O GB5=8O,Could not open input redirection for readingQProcessh5 C40;>AL >B:@KBL ?5@5=0?@02;5=85 2K2>40 4;O 70?8A8-Could not open output redirection for writingQProcessFH81:0 ?>;CG5=8O 40==KE >B ?@>F5AA0Error reading from processQProcess>H81:0 >B?@02:8 40==KE ?@>F5AACError writing to processQProcess(@>3@0<<0 =5 C:070=0No program definedQProcess8@>F5AA 7025@H8;AO A >H81:>9Process crashedQProcess@5 C40;>AL 70?CAB8BL ?@>F5AA: %1Process failed to start: %1QProcessJ@5<O =0 >?5@0F8N A ?@>F5AA>< 8AB5:;>Process operation timed outQProcessRH81:0 2K45;5=8O @5AC@A>2 (A1>9 fork): %1!Resource error (fork failure): %1QProcess B<5=0CancelQProgressDialogB:@KBLOpen QPushButtonB<5B8BLCheck QRadioButtonL=5?@028;L=K9 A8=B0:A8A :;0AA0 A8<2>;>2bad char class syntaxQRegExp@=5?@028;L=K9 A8=B0:A8A lookaheadbad lookahead syntaxQRegExpB=5?@028;L=K9 A8=B0:A8A ?>2B>@5=8Obad repetition syntaxQRegExpL8A?>;L7>20=85 >B:;NGQ==KE 2>7<>6=>AB59disabled feature usedQRegExp,=5:>@@5:B=0O :0B53>@8Oinvalid categoryQRegExp*=5:>@@5:B=K9 8=B5@20;invalid intervalQRegExpD=5:>@@5:B=>5 2>AL<5@8G=>5 7=0G5=85invalid octal valueQRegExpXlookbehind =5 ?>445@68205BAO, A<. QTBUG-2371)lookbehinds not supported, see QTBUG-2371QRegExpB4>AB83=CB> 2=CB@5==55 >3@0=8G5=85met internal limitQRegExp:>BACBAB2C5B ;52K9 @0745;8B5;Lmissing left delimQRegExp$>H81:8 >BACBAB2CNBno error occurredQRegExp"=5>6840==K9 :>=5Funexpected endQRegExp6H81:0 >B:@KB8O 107K 40==KEError opening databaseQSQLite2Driver852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transactionQSQLite2Driver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transactionQSQLite2Driver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transactionQSQLite2Driver<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statementQSQLite2Result<52>7<>6=> ?>;CG8BL @57C;LB0BKUnable to fetch resultsQSQLite2Result6H81:0 70:@KB8O 107K 40==KEError closing database QSQLiteDriver6H81:0 >B:@KB8O 107K 40==KEError opening database QSQLiteDriver852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QSQLiteDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QSQLiteDriver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QSQLiteDriver$BACBAB2C5B 70?@>ANo query QSQLiteResultD>;8G5AB2> ?0@0<5B@>2 =5 A>2?0405BParameter count mismatch QSQLiteResult:52>7<>6=> ?@82O70BL ?0@0<5B@Unable to bind parameters QSQLiteResultl52>7<>6=> >4=>2@5<5==> 70?CAB8BL =5A:>;L:> >?5@0B>@>2/Unable to execute multiple statements at a time QSQLiteResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QSQLiteResult452>7<>6=> ?>;CG8BL AB@>:CUnable to fetch row QSQLiteResult:52>7<>6=> A1@>A8BL 2K@065=85Unable to reset statement QSQLiteResult#A;>285 ConditionQScriptBreakpointsModel!>2?045=89 Hit-countQScriptBreakpointsModelIDIDQScriptBreakpointsModel@>?CI5=> Ignore-countQScriptBreakpointsModel 07<5I5=85LocationQScriptBreakpointsModel4=>:@0B=> Single-shotQScriptBreakpointsModel#40;8BLDeleteQScriptBreakpointsWidget >20ONewQScriptBreakpointsWidget(&09B8 2 AF5=0@88...&Find in Script...QScriptDebugger G8AB8BL :>=A>;L Clear ConsoleQScriptDebugger2G8AB8BL >B;04>G=K9 2K2>4Clear Debug OutputQScriptDebugger,G8AB8BL 6C@=0; >H81>:Clear Error LogQScriptDebugger@>4>;68BLContinueQScriptDebugger Ctrl+FCtrl+FQScriptDebuggerCtrl+F10Ctrl+F10QScriptDebugger Ctrl+GCtrl+GQScriptDebuggerB;04:0DebugQScriptDebuggerF10F10QScriptDebuggerF11F11QScriptDebuggerF3F3QScriptDebuggerF5F5QScriptDebuggerF9F9QScriptDebugger 09B8 &A;54CNI55 Find &NextQScriptDebugger"09B8 &?@54K4CI55Find &PreviousQScriptDebugger 5@59B8 : AB@>:5 Go to LineQScriptDebugger@5@20BL InterruptQScriptDebugger!B@>:0:Line:QScriptDebugger(K?>;=8BL 4> :C@A>@0 Run to CursorQScriptDebugger8K?>;=8BL 4> =>2>3> AF5=0@8ORun to New ScriptQScriptDebuggerShift+F11 Shift+F11QScriptDebuggerShift+F3Shift+F3QScriptDebuggerShift+F5Shift+F5QScriptDebugger>9B8 2 Step IntoQScriptDebugger K9B8 87 DC=:F88Step OutQScriptDebugger5@59B8 G5@57 Step OverQScriptDebugger@#AB0=>28BL/C1@0BL B>G:C >AB0=>20Toggle BreakpointQScriptDebugger<img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;>8A: A =0G0;0J Search wrappedQScriptDebuggerCodeFinderWidget"#G8BK20BL @538AB@Case SensitiveQScriptDebuggerCodeFinderWidget0:@KBLCloseQScriptDebuggerCodeFinderWidget!;54CNI89NextQScriptDebuggerCodeFinderWidget@54K4CI89PreviousQScriptDebuggerCodeFinderWidget!;>20 F5;8:>< Whole wordsQScriptDebuggerCodeFinderWidget0720=85NameQScriptDebuggerLocalsModel=0G5=85ValueQScriptDebuggerLocalsModel#@>25=LLevelQScriptDebuggerStackModel 07<5I5=85LocationQScriptDebuggerStackModel0720=85NameQScriptDebuggerStackModel.#A;>285 B>G:8 >AB0=>20:Breakpoint Condition: QScriptEdit*#1@0BL B>G:C >AB0=>20Disable Breakpoint QScriptEdit2#AB0=>28BL B>G:C >AB0=>20Enable Breakpoint QScriptEdit@#AB0=>28BL/C1@0BL B>G:C >AB0=>20Toggle Breakpoint QScriptEdit">G:8 >AB0=>20 BreakpointsQScriptEngineDebugger>=A>;LConsoleQScriptEngineDebugger B;04>G=K9 2K2>4 Debug OutputQScriptEngineDebuggerC@=0; >H81>: Error LogQScriptEngineDebugger(03@C65==K5 AF5=0@88Loaded ScriptsQScriptEngineDebugger(>:0;L=K5 ?5@5<5==K5LocalsQScriptEngineDebugger*B;04G8: AF5=0@852 QtQt Script DebuggerQScriptEngineDebugger >8A:SearchQScriptEngineDebugger!B5:StackQScriptEngineDebugger84ViewQScriptEngineDebugger0:@KBLCloseQScriptNewBreakpointWidget=87Bottom QScrollBar ;52>9 3@0=8F5 Left edge QScrollBar0 AB@>:C 2=87 Line down QScrollBar0 AB@>:C 225@ELine up QScrollBar 0 AB@0=8FC 2=87 Page down QScrollBar"0 AB@0=8FC 2;52> Page left QScrollBar$0 AB@0=8FC 2?@02> Page right QScrollBar"0 AB@0=8FC 225@EPage up QScrollBar>;>65=85Position QScrollBar  ?@02>9 3@0=8F5 Right edge QScrollBar@>:@CB8BL 2=87 Scroll down QScrollBar@>:@CB8BL AN40 Scroll here QScrollBar @>:@CB8BL 2;52> Scroll left QScrollBar"@>:@CB8BL 2?@02> Scroll right QScrollBar @>:@CB8BL 225@E Scroll up QScrollBar 25@ETop QScrollBarR%1: A?5F8D8G5A:89 :;NG UNIX =5 ACI5AB2C5B%1: UNIX key file doesn't exist QSharedMemory$%1: C65 ACI5AB2C5B%1: already exists QSharedMemory %1: =525@=>5 8<O %1: bad name QSharedMemory,%1: @07<5@ <5=LH5 =C;O%1: create size is less then 0 QSharedMemory"%1: =5 ACI5AB2C5B%1: doesn't exist QSharedMemory"%1: =5 ACI5AB2C5B%1: doesn't exists QSharedMemory%1: >H81:0 ftok%1: ftok failed QSharedMemory&%1: =525@=K9 @07<5@%1: invalid size QSharedMemory%1: ?CAB>9 :;NG%1: key is empty QSharedMemory$%1: =5 ?@8;>65==K9%1: not attached QSharedMemory2%1: =54>AB0B>G=> @5AC@A>2%1: out of resources QSharedMemory&%1: 4>ABC? 70?@5IQ=%1: permission denied QSharedMemory>%1: =5 C40;>AL 70?@>A8BL @07<5@%1: size query failed QSharedMemoryV%1: A8AB5<>9 =0;>65=K >3@0=8G5=8O =0 @07<5@$%1: system-imposed size restrictions QSharedMemory8%1: =52>7<>6=> 701;>:8@>20BL%1: unable to lock QSharedMemory6%1: =52>7<>6=> A>740BL :;NG%1: unable to make key QSharedMemoryR%1: =52>7<>6=> CAB0=>28BL :;NG 1;>:8@>2:8%1: unable to set key on lock QSharedMemory:%1: =52>7<>6=> @071;>:8@>20BL%1: unable to unlock QSharedMemory2%1: =58725AB=0O >H81:0 %2%1: unknown error %2 QSharedMemory++ QShortcut(>1028BL 2 871@0==>5 Add Favorite QShortcut"0AB@>9:0 O@:>AB8Adjust Brightness QShortcutAltAlt QShortcutF0F8:;5==>5 2>A?@>872545=85 4>@>6:8Audio Cycle Track QShortcut@>A;54>20B5;L=>5 2>A?@>872545=85 Audio Forward QShortcut2!;CG09=>5 2>A?@>872545=85Audio Random Play QShortcut0>A?@>872545=85 ?> :@C3C Audio Repeat QShortcut*5@5<>B:0 0C48> =0704 Audio Rewind QShortcut#HQ;Away QShortcut 0704Back QShortcut0704/2?5@Q4 Back Forward QShortcutBackspace Backspace QShortcutBacktabBacktab QShortcut#A8;5=85 10A>2 Bass Boost QShortcut0AK =865 Bass Down QShortcut0AK 2KH5Bass Up QShortcut0B0@5OBattery QShortcutBluetooth Bluetooth QShortcut =830Book QShortcut1>7@520B5;LBrowser QShortcutCDCD QShortcut0;L:C;OB>@ Calculator QShortcut>72>=8BLCall QShortcut$$>:CA8@>2:0 :0<5@K Camera Focus QShortcut0B2>@ :0<5@KCamera Shutter QShortcut5@=89 @538AB@ Caps Lock QShortcutCapsLockCapsLock QShortcutG8AB8BLClear QShortcut0:@KBLClose QShortcut2>4 :>40 Code input QShortcut!>>1I5AB2> Community QShortcut>?8@>20BLCopy QShortcutCtrlCtrl QShortcutK@570BLCut QShortcutDOSDOS QShortcutDelDel QShortcut#40;8BLDelete QShortcutB>1@078BLDisplay QShortcut>:C<5=BK Documents QShortcut=87Down QShortcut72;5GLEject QShortcutEndEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcut71@0==>5 Favorites QShortcut$8=0=AKFinance QShortcut @KH:0Flip QShortcut ?5@Q4Forward QShortcut3@0Game QShortcut5@59B8Go QShortcut B1>9Hangup QShortcut!?@02:0Help QShortcut#AK?8BL Hibernate QShortcutAB>@8OHistory QShortcutHomeHome QShortcut><0H=89 >D8A Home Office QShortcut"><0H=OO AB@0=8F0 Home Page QShortcut>@OG85 AAK;:8 Hot Links QShortcutInsIns QShortcutAB028BLInsert QShortcutL#<5=LH8BL O@:>ABL ?>4A25B:8 :;0280BC@KKeyboard Brightness Down QShortcutL#25;8G8BL O@:>ABL ?>4A25B:8 :;0280BC@KKeyboard Brightness Up QShortcut>:;./B:;. ?>4A25B:C :;0280BC@KKeyboard Light On/Off QShortcut";0280BC@=>5 <5=N Keyboard Menu QShortcut>2B>@=K9 =01>@Last Number Redial QShortcut0?CAB8BL (0) Launch (0) QShortcut0?CAB8BL (1) Launch (1) QShortcut0?CAB8BL (2) Launch (2) QShortcut0?CAB8BL (3) Launch (3) QShortcut0?CAB8BL (4) Launch (4) QShortcut0?CAB8BL (5) Launch (5) QShortcut0?CAB8BL (6) Launch (6) QShortcut0?CAB8BL (7) Launch (7) QShortcut0?CAB8BL (8) Launch (8) QShortcut0?CAB8BL (9) Launch (9) QShortcut0?CAB8BL (A) Launch (A) QShortcut0?CAB8BL (B) Launch (B) QShortcut0?CAB8BL (C) Launch (C) QShortcut0?CAB8BL (D) Launch (D) QShortcut0?CAB8BL (E) Launch (E) QShortcut0?CAB8BL (F) Launch (F) QShortcut >GB0 Launch Mail QShortcut@>83@K20B5;L Launch Media QShortcut ;52>Left QShortcut0<?>G:0 LightBulb QShortcut K9B8 87 A8AB5<KLogoff QShortcut 5@5A;0BL ?8AL<> Mail Forward QShortcut  K=>:Market QShortcut.>A?@>8725AB8 A;54CNI55 Media Next QShortcut:@8>AB0=>28BL 2>A?@>872545=85 Media Pause QShortcut,0G0BL 2>A?@>872545=85 Media Play QShortcut0>A?@>8725AB8 ?@54K4CI55Media Previous QShortcut0G0BL 70?8AL Media Record QShortcut4AB0=>28BL 2>A?@>872545=85 Media Stop QShortcutAB@5G0Meeting QShortcut5=NMenu QShortcutJ;85=B >1<5=0 <3=>25==K<8 A>>1I5=8O<8 Messenger QShortcutMetaMeta QShortcut4#<5=LH8BL O@:>ABL <>=8B>@0Monitor Brightness Down QShortcut4#25;8G8BL O@:>ABL <>=8B>@0Monitor Brightness Up QShortcut&5A:>;L:> 20@80=B>2Multiple Candidate QShortcut C7K:0Music QShortcut>8 A09BKMy Sites QShortcut>2>AB8News QShortcut5BNo QShortcut &8D@>2K5 :;028H8Num Lock QShortcutNumLockNumLock QShortcut &8D@>2K5 :;028H8 Number Lock QShortcutB:@KBL URLOpen URL QShortcut ?F8OOption QShortcut 0 AB@0=8FC 2=87 Page Down QShortcut"0 AB@0=8FC 225@EPage Up QShortcutAB028BLPaste QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut"5;5D>=Phone QShortcut7>1@065=8OPictures QShortcut$B:;NG5=85 ?8B0=8O Power Off QShortcut$@54K4CI89 20@80=BPrevious Candidate QShortcut PrintPrint QShortcut5G0BL M:@0=0 Print Screen QShortcut1=>28BLRefresh QShortcut5@5703@C78BLReload QShortcutB25B8BLReply QShortcut ReturnReturn QShortcut ?@02>Right QShortcut>25@=CBL >:=0Rotate Windows QShortcut!>E@0=8BLSave QShortcut"-:@0==0O 70AB02:0 Screensaver QShortcutScroll Lock Scroll Lock QShortcutScrollLock ScrollLock QShortcut >8A:Search QShortcutK1@0BLSelect QShortcutB?@028BLSend QShortcut ShiftShift QShortcut03078=Shop QShortcut!?OI89 @568<Sleep QShortcut @>15;Space QShortcut&@>25@:0 >@D>3@0D88 Spellchecker QShortcut 0745;8BL M:@0= Split Screen QShortcut&-;5:B@>==0O B01;8FK Spreadsheet QShortcut 568< >6840=8OStandby QShortcutAB0=>28BLStop QShortcut!C1B8B@KSubtitle QShortcut>445@6:0Support QShortcut@8>AB0=>28BLSuspend QShortcut SysReqSysReq QShortcut !8AB5<=K9 70?@>ASystem Request QShortcutTabTab QShortcut0=5;L 7040G Task Panel QShortcut"5@<8=0;Terminal QShortcut @5<OTime QShortcut*!=OBL/?>;>68BL B@C1:CToggle Call/Hangup QShortcutP@8>AB0=>28BL/?@>4>;68BL 2>A?@>872545=85Toggle Media Play/Pause QShortcut=AB@C<5=BKTools QShortcut;02=>5 <5=NTop Menu QShortcutCB5H5AB285Travel QShortcut' =865 Treble Down QShortcut' 2KH5 Treble Up QShortcut2!25@EH8@>:>?>;>A=0O A2O7LUltra Wide Band QShortcut 25@EUp QShortcut 845>Video QShortcut84View QShortcut>;>A>2>9 2K7>2 Voice Dial QShortcut"8H5 Volume Down QShortcutK:;NG8BL 72C: Volume Mute QShortcut @><G5 Volume Up QShortcutWWWWWW QShortcut@>1C645=85Wake Up QShortcutM1-:0<5@0WebCam QShortcut"5A?@>2>4=0O A5BLWireless QShortcut$"5:AB>2K9 @540:B>@Word Processor QShortcut0Yes QShortcut#25;8G8BLZoom In QShortcut#<5=LH8BLZoom Out QShortcut iTouchiTouch QShortcut!B@0=8F0 2=87 Page downQSlider!B@0=8F0 2;52> Page leftQSlider!B@0=8F0 2?@02> Page rightQSlider!B@0=8F0 225@EPage upQSlider>;>65=85PositionQSlider8"8? 04@5A0 =5 ?>445@68205BAOAddress type not supportedQSocks5SocketEngineP!>548=5=85 =5 @07@5H5=> A5@25@>< SOCKSv5(Connection not allowed by SOCKSv5 serverQSocks5SocketEngine^!>548=5=85 A ?@>:A8-A5@25@>< =5>6840==> 70:@KB>&Connection to proxy closed prematurelyQSocks5SocketEngineN A>548=5=88 A ?@>:A8-A5@25@>< >B:070=>Connection to proxy refusedQSocks5SocketEngineZ@5<O =0 A>548=5=85 A ?@>:A8-A5@25@>< 8AB5:;>Connection to proxy timed outQSocks5SocketEngine,H81:0 A5@25@5 SOCKSv5General SOCKSv5 server failureQSocks5SocketEngineB@5<O =0 A5B52CN >?5@0F8N 8AB5:;>Network operation timed outQSocks5SocketEngineV5 C40;>AL 02B>@87>20BLAO =0 ?@>:A8-A5@25@5Proxy authentication failedQSocks5SocketEngine^5 C40;>AL 02B>@87>20BLAO =0 ?@>:A8-A5@25@5: %1Proxy authentication failed: %1QSocks5SocketEngine.@>:A8-A5@25@ =5 =0945=Proxy host not foundQSocks5SocketEngine0H81:0 ?@>B>:>;0 SOCKSv5SOCKS version 5 protocol errorQSocks5SocketEngineB><0=40 SOCKSv5 =5 ?>445@68205BAOSOCKSv5 command not supportedQSocks5SocketEngineTTL 8AB5:;> TTL expiredQSocks5SocketEngineX58725AB=0O >H81:0 SOCKSv5 ?@>:A8 (:>4 0x%1)%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngine B<5=0CancelQSoftKeyManager >B>2>DoneQSoftKeyManager KE>4ExitQSoftKeyManagerOKOKQSoftKeyManager0@0<5B@KOptionsQSoftKeyManagerK1@0BLSelectQSoftKeyManager 5=LH5LessQSpinBox >;LH5MoreQSpinBox B<5=0CancelQSql&B<5=8BL 87<5=5=8O?Cancel your edits?QSql>4B25@645=85ConfirmQSql#40;8BLDeleteQSql,#40;8BL 40==CN 70?8AL?Delete this record?QSqlAB028BLInsertQSql5BNoQSql(!>E@0=8BL 87<5=5=8O? Save edits?QSql1=>28BLUpdateQSql0YesQSql`52>7<>6=> ?@54>AB028BL A5@B8D8:0B 157 :;NG0, %1,Cannot provide a certificate with no key, %1 QSslSocketFH81:0 A>740=8O :>=B5:AB0 SSL: (%1)Error creating SSL context (%1) QSslSocket<H81:0 A>740=8O A5AA88 SSL, %1Error creating SSL session, %1 QSslSocket<H81:0 A>740=8O A5AA88 SSL: %1Error creating SSL session: %1 QSslSocket6H81:0 :28B8@>20=8O SSL: %1Error during SSL handshake: %1 QSslSocketTH81:0 703@C7:8 ;>:0;L=>3> A5@B8D8:0B0, %1#Error loading local certificate, %1 QSslSocketFH81:0 703@C7:8 70:@KB>3> :;NG0, %1Error loading private key, %1 QSslSocket"H81:0 GB5=8O: %1Error while reading: %1 QSslSocketT5:>@@5:B=K9 8;8 ?CAB>9 A?8A>: H8D@>2 (%1)!Invalid or empty cipher list (%1) QSslSocket@5 C40;>AL ?@>25@8BL A5@B8D8:0BK!No certificates could be verified QSslSocket5B >H81:8No error QSslSocketh48= 87 A5@B8D8:0B>2 F5=B@0 A5@B8D8:0F88 =5:>@@5:B5=%One of the CA certificates is invalid QSslSocketd0:@KBK9 :;NG =5 A>>B25BAB2C5B >B:@KB><C :;NGC, %1+Private key does not certify public key, %1 QSslSocket@52KH5=> 7=0G5=85 ?0@0<5B@0 4;8=K ?CB8 ?>;O basicConstraints A5@B8D8:0B0!@>: 459AB28O A5@B8D8:0B0 8ABQ:The certificate has expired QSslSocketR!@>: 459AB28O A5@B8D8:0B0 5IQ =5 =0ABC?8; The certificate is not yet valid QSslSocketf!5@B8D8:0B A0<>?>4?8A0==K9 8 =5 O2;O5BAO 7025@5==K<-The certificate is self-signed, and untrusted QSslSocketV5 C40;>AL @0AH8D@>20BL ?>4?8AL A5@B8D8:0B00The certificate signature could not be decrypted QSslSocketj>;5 notAfter A5@B8D8:0B0 A>45@68B =5:>@@5:B=>5 2@5<O9The certificate's notAfter field contains an invalid time QSslSocketl>;5 notBefore A5@B8D8:0B0 A>45@68B =5:>@@5:B=>5 2@5<O:The certificate's notBefore field contains an invalid time QSslSocket "5:CI89 A5@B8D8:0B 8740B5;O 1K; >B:;>=Q=, B0: :0: =0720=85 8740B5;O 8 A5@89=K9 =><5@ =5 A>2?040NB A 845=B8D8:0B>@>< :;NG0 A5@B8D8:0B0The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate QSslSocket"5:CI89 A5@B8D8:0B 8740B5;O 1K; >B:;>=Q=, B0: :0: =0720=85 B5<K =5 A>2?0405B A =0720=85< 8740B5;O A5@B8D8:0B0The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate QSslSocket0720=85 C7;0 =5 A>2?0405B A 4>?CAB8<K<8 =0720=8O<8 C7;>2 A5@B8D8:0B0GThe host name did not match any of the valid hosts for this certificate QSslSocketH5 C40;>AL =09B8 A5@B8D8:0B 8740B5;O)The issuer certificate could not be found QSslSocketv5 C40;>AL =09B8 A5@B8D8:0B 8740B5;O ;>:0;L=>3> A5@B8D8:0B0LThe issuer certificate of a locally looked up certificate could not be found QSslSocket>!5@B8D8:0B C7;0 2 GQ@=>< A?8A:5#The peer certificate is blacklisted QSslSocket<!5@B8D8:0B =5 1K; ?@54>AB02;5=(The peer did not present any certificate QSslSocket\5 C40;>AL ?@>G8B0BL >B:@KBK9 :;NG A5@B8D8:0B03The public key in the certificate could not be read QSslSocket>@=52>9 A5@B8D8:0B F5=B@0 A5@B8D8:0F88 >B<5G5= =0 >B:;>=5=85 4;O 40==>9 F5;8AThe root CA certificate is marked to reject the specified purpose QSslSocket>@=52>9 A5@B8D8:0B F5=B@0 A5@B8D8:0F88 =5 O2;O5BAO 7025@5==K< 4;O 40==>9 F5;87The root CA certificate is not trusted for this purpose QSslSocket>@=52>9 A5@B8D8:0B F5?>G:8 A5@B8D8:0B>2 A0<>?>4?8A0==K9 8 =5 O2;O5BAO 7025@5==K<KThe root certificate of the certificate chain is self-signed, and untrusted QSslSocket@5:>@@5:B=0O ?>4?8AL A5@B8D8:0B0+The signature of the certificate is invalid QSslSocketh@54AB02;5==K9 A5@B8D8:0B =5?@83>45= 4;O 40==>9 F5;87The supplied certificate is unsuitable for this purpose QSslSocketD52>7<>6=> @0AH8D@>20BL 40==K5: %1Unable to decrypt data: %1 QSslSocket<52>7<>6=> 70?8A0BL 40==K5: %1Unable to write data: %1 QSslSocket$58725AB=0O >H81:0 Unknown error QSslSocketBACBAB2C5B A>AB>O=85 ?> C<>;G0=8N 2 8AB>@8G5A:>< A>AB>O=88 %1+Missing default state in history state '%1' QStateMachinerBACBAB2C5B 8AE>4=>5 A>AB>O=85 2 A>AB02=>< A>AB>O=88 %1,Missing initial state in compound state '%1' QStateMachine~5B >1I53> ?@54:0 C 8AB>G=8:0 8 F5;8 ?5@5E>40 87 A>AB>O=8O %1GNo common ancestor for targets and source of transition from state '%1' QStateMachine$58725AB=0O >H81:0 Unknown error QStateMachine6H81:0 >B:@KB8O 107K 40==KEError opening database QSymSQLDriver&525@=K9 ?0@0<5B@: Invalid option:  QSymSQLDriverPOLICY_DB_DEFAULT 4>;6=0 1KBL 7040=0 4> =0G0;0 8A?>;L7>20=8O 4@C38E >?@545;5=89 POLICYQPOLICY_DB_DEFAULT must be defined before any other POLICY definitions can be used QSymSQLDriver852>7<>6=> =0G0BL B@0=70:F8NUnable to begin transaction QSymSQLDriver>52>7<>6=> 7025@H8BL B@0=70:F8NUnable to commit transaction QSymSQLDriver<52>7<>6=> >B:0B8BL B@0=70:F8NUnable to rollback transaction QSymSQLDriverFH81:0 ?>;CG5=8O :>;8G5AB20 :>;>=>:Error retrieving column count QSymSQLResultBH81:0 ?>;CG5=8O =0720=8O :>;>=:8Error retrieving column name QSymSQLResult:H81:0 ?>;CG5=8O B8?0 :>;>=:8Error retrieving column type QSymSQLResultD>;8G5AB2> ?0@0<5B@>2 =5 A>2?0405BParameter count mismatch QSymSQLResult2K@065=85 =5 ?>43>B>2;5=>Statement is not prepared QSymSQLResult:52>7<>6=> ?@82O70BL ?0@0<5B@Unable to bind parameters QSymSQLResult<52>7<>6=> 2K?>;=8BL 2K@065=85Unable to execute statement QSymSQLResult452>7<>6=> ?>;CG8BL AB@>:CUnable to fetch row QSymSQLResult:52>7<>6=> A1@>A8BL 2K@065=85Unable to reset statement QSymSQLResultN@C3>9 A>:5B C65 ?@>A;CH8205B MB>B ?>@B4Another socket is already listening on the same portQSymbianSocketEngine|>?KB:0 8A?>;L7>20BL IPv6 =0 ?;0BD>@<5, =5 ?>445@6820NI59 IPv6=Attempt to use IPv6 socket on a platform with no IPv6 supportQSymbianSocketEngine*B:070=> 2 A>548=5=88Connection refusedQSymbianSocketEngine6@5<O =0 A>548=5=85 8AB5:;>Connection timed outQSymbianSocketEngineN0B03@0<<0 A;8H:>< 1>;LH0O 4;O >B?@02:8Datagram was too large to sendQSymbianSocketEngine#75; =54>ABC?5=Host unreachableQSymbianSocketEngine<5:>@@5:B=K9 45A:@8?B>@ A>:5B0Invalid socket descriptorQSymbianSocketEngineH81:0 A5B8 Network errorQSymbianSocketEngineB@5<O =0 A5B52CN >?5@0F8N 8AB5:;>Network operation timed outQSymbianSocketEngine!5BL =54>ABC?=0Network unreachableQSymbianSocketEngine*?5@0F8O A =5-A>:5B><Operation on non-socketQSymbianSocketEngine*54>AB0B>G=> @5AC@A>2Out of resourcesQSymbianSocketEngine>ABC? 70?@5IQ=Permission deniedQSymbianSocketEngine4@>B>:>; =5 ?>445@68205BAOProtocol type not supportedQSymbianSocketEngineT0==K9 04@5A =5 4>?CAB8< 4;O MB>9 >?5@0F88)The address is invalid for this operationQSymbianSocketEngine 4@5A =54>ABC?5=The address is not availableQSymbianSocketEngine4@5A 70I8IQ=The address is protectedQSymbianSocketEngine,4@5A C65 8A?>;L7C5BAO#The bound address is already in useQSymbianSocketEnginef5:>@@5:B=K9 B8? ?@>:A8-A5@25@0 4;O 40==>9 >?5@0F88,The proxy type is invalid for this operationQSymbianSocketEngine@#40;Q==K9 C75; 70:@K; A>548=5=85%The remote host closed the connectionQSymbianSocketEngineF#:070==0O A5B520O A5AA8O =5 >B:@KB0+The specified network session is not openedQSymbianSocketEnginef52>7<>6=> 8=8F80;878@>20BL H8@>:>25I0B5;L=K9 A>:5B%Unable to initialize broadcast socketQSymbianSocketEngineX52>7<>6=> 8=8F80;878@>20BL =5-1;>G=K9 A>:5B(Unable to initialize non-blocking socketQSymbianSocketEngine:52>7<>6=> ?>;CG8BL A>>1I5=85Unable to receive a messageQSymbianSocketEngine<52>7<>6=> >B?@028BL A>>1I5=85Unable to send a messageQSymbianSocketEngine&52>7<>6=> 70?8A0BLUnable to writeQSymbianSocketEngine$58725AB=0O >H81:0 Unknown errorQSymbianSocketEngineH?5@0F8O A A>:5B>< =5 ?>445@68205BAOUnsupported socket operationQSymbianSocketEngine$%1: C65 ACI5AB2C5B%1: already existsQSystemSemaphore"%1: =5 ACI5AB2C5B%1: does not existQSystemSemaphore$%1: >H81:0 2 8<5=8%1: name errorQSystemSemaphore2%1: =54>AB0B>G=> @5AC@A>2%1: out of resourcesQSystemSemaphore&%1: 4>ABC? 70?@5IQ=%1: permission deniedQSystemSemaphore2%1: =58725AB=0O >H81:0 %2%1: unknown error %2QSystemSemaphore:52>7<>6=> >B:@KBL A>548=5=85Unable to open connection QTDSDriverF52>7<>6=> 8A?>;L7>20BL 107C 40==KEUnable to use database QTDSDriver:B828@>20BLActivateQTabBar(:B828@>20BL 2:;04:CActivate the tabQTabBar0:@KBLCloseQTabBar0:@KBL 2:;04:C Close the tabQTabBar 060BLPressQTabBar @>:@CB8BL 2;52> Scroll LeftQTabBar"@>:@CB8BL 2?@02> Scroll RightQTabBarH?5@0F8O A A>:5B>< =5 ?>445@68205BAO$Operation on socket is not supported QTcpServer&>?8@>20BL&Copy QTextControl&AB028BL&Paste QTextControl&&>2B>@8BL 459AB285&Redo QTextControl$&B<5=8BL 459AB285&Undo QTextControl2!:>?8@>20BL &04@5A AAK;:8Copy &Link Location QTextControl&K@570BLCu&t QTextControl#40;8BLDelete QTextControlK45;8BL 2AQ Select All QTextControlB:@KBLOpen QToolButton 060BLPress QToolButtonJ0==0O ?;0BD>@<0 =5 ?>445@68205B IPv6#This platform does not support IPv6 QUdpSocket$>2B>@8BL 459AB285Redo QUndoGroup>2B>@8BL %1Redo %1 QUndoGroup"B<5=8BL 459AB285Undo QUndoGroupB<5=8BL %1Undo %1 QUndoGroup<?CAB>> QUndoModel$>2B>@8BL 459AB285Redo QUndoStack>2B>@8BL %1Redo %1 QUndoStack"B<5=8BL 459AB285Undo QUndoStackB<5=8BL %1Undo %1 QUndoStackFAB028BL C?@02;ONI89 A8<2>; Unicode Insert Unicode control characterQUnicodeControlCharacterMenu\LRE 0G0;> 2AB@0820=8O =0?8A0=8O A;520 =0?@02>$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenuFLRM @87=0: =0?8A0=8O A;520 =0?@02>LRM Left-to-right markQUnicodeControlCharacterMenuRLRO 0G0;> 70<5=K =0?8A0=8O A;520 =0?@02>#LRO Start of left-to-right overrideQUnicodeControlCharacterMenujPDF @87=0: >:>=G0=8O =0?8A0=8O A 4@C38< =0?@02;5=85<PDF Pop directional formattingQUnicodeControlCharacterMenu\LRE 0G0;> 2AB@0820=8O =0?8A0=8O A?@020 =0;52>$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenuFRLM @87=0: =0?8A0=8O A?@020 =0;52>RLM Right-to-left markQUnicodeControlCharacterMenuRRLO 0G0;> 70<5=K =0?8A0=8O A?@020 =0;52>#RLO Start of right-to-left overrideQUnicodeControlCharacterMenuLZWJ 1J548=ONI89 A8<2>; =C;52>9 H8@8=KZWJ Zero width joinerQUnicodeControlCharacterMenuRZWNJ 5>1J548=ONI89 A8<2>; =C;52>9 H8@8=KZWNJ Zero width non-joinerQUnicodeControlCharacterMenu4ZWSP @>15; =C;52>9 H8@8=KZWSP Zero width spaceQUnicodeControlCharacterMenu252>7<>6=> >B>1@078BL URLCannot show URL QWebFrame<52>7<>6=> >B>1@078BL B8? MIMECannot show mimetype QWebFrame$$09; =5 ACI5AB2C5BFile does not exist QWebFrameX03@C7:0 D@59<0 ?@5@20=0 87<5=5=85< ?>;8B8:8'Frame load interrupted by policy change QWebFrameX03@C7:0 2K?>;=O5BAO <C;LB8<5480-?>4A8AB5<>9&Loading is handled by the media engine QWebFrame"0?@>A 1;>:8@>20=Request blocked QWebFrame0?@>A >B<5=Q=Request canceled QWebFrame0?@>A >B<5=Q=Request cancelled QWebFrame%1 (%2x%3 px)%1 (%2x%3 pixels)QWebPageF%1 4=59 %2 G0A>2 %3 <8=CB %4 A5:C=4&%1 days %2 hours %3 minutes %4 secondsQWebPage6%1 G0A>2 %2 <8=CB %3 A5:C=4%1 hours %2 minutes %3 secondsQWebPage$%1 <8=CB %2 A5:C=4%1 minutes %2 secondsQWebPage%1 A5:C=4 %1 secondsQWebPage%n D09;(0)%n D09;0%n D09;>2 %n file(s)QWebPage$>1028BL 2 A;>20@LAdd To DictionaryQWebPage> ;52><C :@0N Align LeftQWebPage> ?@02><C :@0N Align RightQWebPageC48>-M;5<5=B Audio ElementQWebPage-;5<5=BK C?@02;5=8O 2>A?@>872545=85< 72C:0 8 >B>1@065=85< A>AB>O=8O2Audio element playback controls and status displayQWebPage,0G0BL 2>A?@>872545=85Begin playbackQWebPage 8@=K9BoldQWebPage=87BottomQWebPage> F5=B@CCenterQWebPageD@>25@OBL 3@0<<0B8:C A >@D>3@0D859Check Grammar With SpellingQWebPage&@>25@:0 >@D>3@0D88Check SpellingQWebPageL@>25@OBL >@D>3@0D8N ?@8 =01>@5 B5:AB0Check Spelling While TypingQWebPageK1@0BL D09; Choose FileQWebPage.G8AB8BL 8AB>@8N ?>8A:0Clear recent searchesQWebPage>?8@>20BLCopyQWebPage"!:>?8@>20BL 0C48> Copy AudioQWebPage,>?8@>20BL 87>1@065=85 Copy ImageQWebPage:!:>?8@>20BL 04@5A 87>1@065=8OCopy Image AddressQWebPage.>?8@>20BL 04@5A AAK;:8 Copy LinkQWebPage"!:>?8@>20BL 2845> Copy VideoQWebPage0"5:CI55 A>AB>O=85 D8;L<0Current movie statusQWebPage("5:CI55 2@5<O D8;L<0Current movie timeQWebPageK@570BLCutQWebPage> C<>;G0=8NDefaultQWebPage,#40;8BL 4> :>=F0 A;>20Delete to the end of the wordQWebPage.#40;8BL 4> =0G0;0 A;>20Delete to the start of the wordQWebPage>4@>1=>AB8DetailsQWebPage$0?@02;5=85 ?8AL<0 DirectionQWebPage@>H;> 2@5<5=8 Elapsed TimeQWebPage&>;=>M:@0==K9 @568<Enter FullscreenQWebPage (@8DBKFontsQWebPage,=>?:0 0 25AL M:@0=Fullscreen ButtonQWebPage 0704Go BackQWebPage ?5@Q4 Go ForwardQWebPageF!:@KBL ?0=5;L ?@>25@:8 ?@02>?8A0=8OHide Spelling and GrammarQWebPage@>?CAB8BLIgnoreQWebPage@>?CAB8BL Ignore Grammar context menu itemIgnoreQWebPage&@5<O =5 >?@545;5=>Indefinite timeQWebPage #25;8G8BL >BABC?IndentQWebPage:AB028BL <0@:8@>20==K9 A?8A>:Insert Bulleted ListQWebPage8AB028BL =C<5@>20==K9 A?8A>:Insert Numbered ListQWebPage*AB028BL =>2CN AB@>:CInsert a new lineQWebPage.AB028BL =>2K9 ?0@03@0DInsert a new paragraphQWebPage@>25@8BLInspectQWebPage C@A82ItalicQWebPage>JavaScript: @54C?@5645=85 - %1JavaScript Alert - %1QWebPage<JavaScript: >4B25@645=85 - %1JavaScript Confirm - %1QWebPage2JavaScript: @>1;5<0 - %1JavaScript Problem - %1QWebPage.JavaScript: 0?@>A - %1JavaScript Prompt - %1QWebPage> H8@8=5JustifyQWebPage ;52>9 3@0=8F5 Left edgeQWebPage!;520 =0?@02> Left to RightQWebPage">B>:>2>5 25I0=85Live BroadcastQWebPage03@C7:0... Loading...QWebPage A:0BL 2 A;>20@5Look Up In DictionaryQWebPage$>4C;L >BACBAB2C5BMissing Plug-inQWebPageF5@5<5AB8BL C:070B5;L 2 :>=5F 1;>:0'Move the cursor to the end of the blockQWebPageN5@5<5AB8BL C:070B5;L 2 :>=5F 4>:C<5=B0*Move the cursor to the end of the documentQWebPageH5@5<5AB8BL C:070B5;L 2 :>=5F AB@>:8&Move the cursor to the end of the lineQWebPageT5@5<5AB8BL C:070B5;L : A;54CNI5<C A8<2>;C%Move the cursor to the next characterQWebPageR5@5<5AB8BL C:070B5;L =0 A;54CNICN AB@>:C Move the cursor to the next lineQWebPageP5@5<5AB8BL C:070B5;L : A;54CNI5<C A;>2C Move the cursor to the next wordQWebPageV5@5<5AB8BL C:070B5;L : ?@54K4CI5<C A8<2>;C)Move the cursor to the previous characterQWebPageT5@5<5AB8BL C:070B5;L =0 ?@54K4CICN AB@>:C$Move the cursor to the previous lineQWebPageR5@5<5AB8BL C:070B5;L : ?@54K4CI5<C A;>2C$Move the cursor to the previous wordQWebPageH5@5<5AB8BL C:070B5;L 2 =0G0;> 1;>:0)Move the cursor to the start of the blockQWebPageP5@5<5AB8BL C:070B5;L 2 =0G0;> 4>:C<5=B0,Move the cursor to the start of the documentQWebPageJ5@5<5AB8BL C:070B5;L 2 =0G0;> AB@>:8(Move the cursor to the start of the lineQWebPage5@5<>B:0Movie time scrubberQWebPage">78F8O ?5@5<>B:8Movie time scrubber thumbQWebPage@83;CH8BLMuteQWebPage.=>?:0 B:;NG8BL 72C: Mute ButtonQWebPage4B:;NG8BL 72C:>2K5 4>@>6:8Mute audio tracksQWebPage*!>2?045=89 =5 =0945=>No Guesses FoundQWebPage$09; =5 C:070=No file selectedQWebPage(AB>@8O ?>8A:0 ?CAB0No recent searchesQWebPageB:@KBL 0C48> Open AudioQWebPageB:@KBL D@59< Open FrameQWebPage&B:@KBL 87>1@065=85 Open ImageQWebPageB:@KBL AAK;:C Open LinkQWebPageB:@KBL 2845> Open VideoQWebPage(B:@KBL 2 =>2>< >:=5Open in New WindowQWebPage #<5=LH8BL >BABC?OutdentQWebPage5@5GQ@:=CBK9OutlineQWebPage 0 AB@0=8FC 2=87 Page downQWebPage"0 AB@0=8FC 2;52> Page leftQWebPage$0 AB@0=8FC 2?@02> Page rightQWebPage"0 AB@0=8FC 225@EPage upQWebPageAB028BLPasteQWebPage0AB028BL, A>E@0=82 AB8;LPaste and Match StyleQWebPage@8>AB0=>28BLPauseQWebPage=>?:0 0C70 Pause ButtonQWebPage:@8>AB0=>28BL 2>A?@>872545=85Pause playbackQWebPage>A?@>8725AB8PlayQWebPage0=>?:0 >A?@>872545=85 Play ButtonQWebPaged>A?@>872545=85 2 @568<5 >B>1@065=8O =0 25AL M:@0=Play movie in full-screen modeQWebPageAB>@8O ?>8A:0Recent searchesQWebPage<>AB83=CB ?@545; ?5@504@5A0F88Redirection limit reachedQWebPage1=>28BLReloadQWebPage AB0;>AL 2@5<5=8Remaining TimeQWebPage.AB02H55AO 2@5<O D8;L<0Remaining movie timeQWebPage,#40;8BL D>@<0B8@>20=85Remove formattingQWebPage!1@>A8BLResetQWebPage~>72@0I05B ?>B>:>2>5 2845> : 2>A?@>872545=8N 2 @50;L=>< 2@5<5=8#Return streaming movie to real-timeQWebPageB=>?:0 5@=CBL 2 @50;L=>5 2@5<OReturn to Real-time ButtonQWebPage0=>?:0 5@5<>B:0 =0704 Rewind ButtonQWebPage$5@5<>B:0 2 =0G0;> Rewind movieQWebPage  ?@02>9 3@0=8F5 Right edgeQWebPage!?@020 =0;52> Right to LeftQWebPage*!>E@0=8BL 87>1@065=85 Save ImageQWebPage4!>E@0=8BL ?> AAK;:5 :0:... Save Link...QWebPage@>:@CB8BL 2=87 Scroll downQWebPage@>:@CB8BL AN40 Scroll hereQWebPage @>:@CB8BL 2;52> Scroll leftQWebPage"@>:@CB8BL 2?@02> Scroll rightQWebPage @>:@CB8BL 225@E Scroll upQWebPage"A:0BL 2 =B5@=5BSearch The WebQWebPage0=>?:0 5@5<>B:0 =0704Seek Back ButtonQWebPage2=>?:0 5@5<>B:0 2?5@Q4Seek Forward ButtonQWebPage.KAB@0O ?5@5<>B:0 =0704Seek quickly backQWebPage0KAB@0O ?5@5<>B:0 2?5@Q4Seek quickly forwardQWebPageK45;8BL 2AQ Select AllQWebPage.K45;8BL 4> :>=F0 1;>:0Select to the end of the blockQWebPage6K45;8BL 4> :>=F0 4>:C<5=B0!Select to the end of the documentQWebPage0K45;8BL 4> :>=F0 AB@>:8Select to the end of the lineQWebPage<K45;8BL 4> A;54CNI53> A8<2>;0Select to the next characterQWebPage8K45;8BL 4> A;54CNI59 AB@>:8Select to the next lineQWebPage8K45;8BL 4> A;54CNI53> A;>20Select to the next wordQWebPage>K45;8BL 4> ?@54K4CI53> A8<2>;0 Select to the previous characterQWebPage:K45;8BL 4> ?@54K4CI59 AB@>:8Select to the previous lineQWebPage:K45;8BL 4> ?@54K4CI53> A;>20Select to the previous wordQWebPage0K45;8BL 4> =0G0;0 1;>:0 Select to the start of the blockQWebPage8K45;8BL 4> =0G0;0 4>:C<5=B0#Select to the start of the documentQWebPage2K45;8BL 4> =0G0;0 AB@>:8Select to the start of the lineQWebPageJ>:070BL ?0=5;L ?@>25@:8 ?@02>?8A0=8OShow Spelling and GrammarQWebPage 53C;OB>@SliderQWebPage(#:070B5;L @53C;OB>@0 Slider ThumbQWebPage@D>3@0D8OSpellingQWebPage*B>1@065=85 A>AB>O=8OStatus DisplayQWebPageAB0=>28BLStopQWebPage0GQ@:=CBK9 StrikethroughQWebPageB?@028BLSubmitQWebPageB?@028BLQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPage>4AB@>G=K9 SubscriptQWebPage04AB@>G=K9 SuperscriptQWebPage$0?@02;5=85 B5:AB0Text DirectionQWebPage!1>9 2K?>;=5=8O AF5=0@8O =0 40==>9 AB@0=8F5. 5;05B5 >AB0=>28BL 2K?>;5=85 AF5=0@8O?RThe script on this page appears to have a problem. Do you want to stop the script?QWebPaged=45:A ?>8A:0. 2548B5 :;NG52K5 A;>20 4;O ?>8A:0: 3This is a searchable index. Enter search keywords: QWebPage&:;/2K:; C?@02;5=85Toggle ControlsQWebPage,:;/2K:; 70F8:;5==>ABL Toggle LoopQWebPage 25@ETopQWebPage>4GQ@:=CBK9 UnderlineQWebPage58725AB=>UnknownQWebPage,=>?:0 :;NG8BL 72C: Unmute ButtonQWebPage2:;NG8BL 72C:>2K5 4>@>6:8Unmute audio tracksQWebPage845>-M;5<5=B Video ElementQWebPage-;5<5=BK C?@02;5=8O 2>A?@>872545=85< 2845> 8 >B>1@065=85< A>AB>O=8O2Video element playback controls and status displayQWebPage&Web-8=A?5:B>@ - %2Web Inspector - %2QWebPage'B> MB>? What's This?QWhatsThisAction**QWidget&025@H8BL&FinishQWizard&!?@02:0&HelpQWizard &0;55&NextQWizard&0;55 >&Next >QWizard< &0704< &BackQWizard B<5=0CancelQWizard>4B25@48BLCommitQWizard@>4>;68BLContinueQWizard >B>2>DoneQWizard 0704Go BackQWizard!?@02:0HelpQWizard%1 - [%2] %1 - [%2] QWorkspace&0:@KBL&Close QWorkspace&5@5<5AB8BL&Move QWorkspace&>AAB0=>28BL&Restore QWorkspace& 07<5@&Size QWorkspace4&>AAB0=>28BL 87 703>;>2:0&Unshade QWorkspace0:@KBLClose QWorkspace &0A?0E=CBL Ma&ximize QWorkspace&!25@=CBL Mi&nimize QWorkspace!25@=CBLMinimize QWorkspace>AAB0=>28BL Restore Down QWorkspace*!2&5@=CBL 2 703>;>2>:Sh&ade QWorkspace$AB020BLAO &A25@EC Stay on &Top QWorkspacex2 >1JO2;5=88 XML >6840NBAO ?0@0<5B@K encoding 8;8 standaloneYencoding declaration or standalone declaration expected while reading the XML declarationQXmlH>H81:0 2 >1JO2;5=88 2=5H=53> >1J5:B03error in the text declaration of an external entityQXml4>H81:0 @071>@0 :><<5=B0@8O$error occurred while parsing commentQXml0>H81:0 @071>@0 4>:C<5=B0$error occurred while parsing contentQXmlP>H81:0 @071>@0 >1JO2;5=8O B8?0 4>:C<5=B05error occurred while parsing document type definitionQXml.>H81:0 @071>@0 M;5<5=B0$error occurred while parsing elementQXml*>H81:0 @071>@0 AAK;:8&error occurred while parsing referenceQXml8>H81:0 2K720=0 ?>;L7>20B5;5<error triggered by consumerQXml`2=5H=OO AAK;:0 =0 >1I89 >1J5:B =54>?CAB8<0 2 DTD;external parsed general entity reference not allowed in DTDQXml|2=5H=OO AAK;:0 =0 >1I89 >1J5:B =54>?CAB8<0 2 7=0G5=88 0B@81CB0Gexternal parsed general entity reference not allowed in attribute valueQXmlf2=CB@5==OO AAK;:0 =0 >1I89 >1J5:B =54>?CAB8<0 2 DTD4internal general entity reference not allowed in DTDQXmlD=5:>@@5:B=>5 8<O 48@5:B82K @071>@0'invalid name for processing instructionQXml>6840;0AL 1C:20letter is expectedQXmlFC:070=> 1>;55 >4=>3> B8?0 4>:C<5=B0&more than one document type definitionQXml$>H81:8 >BACBAB2CNBno error occurredQXml&@5:C@A82=K5 >1J5:BKrecursive entitiesQXml\2 >1JO2;5=88 XML >68405BAO ?0@0<5B@ standaloneAstandalone declaration expected while reading the XML declarationQXml BM3 =5 A>2?0405B tag mismatchQXml$=5>6840==K9 A8<2>;unexpected characterQXml.=5>6840==K9 :>=5F D09;0unexpected end of fileQXmln=5@07>1@0==0O AAK;:0 =0 >1J5:B 2 =5?@028;L=>< :>=B5:AB5*unparsed entity reference in wrong contextQXmlV2 >1JO2;5=88 XML >68405BAO ?0@0<5B@ version2version expected while reading the XML declarationQXmlT=5:>@@5:B=>5 7=0G5=85 ?0@0<5B@0 standalone&wrong value for standalone declarationQXmlVH81:0 %1 2 %2, 2 AB@>:5 %3, AB>;1F5 %4: %5)Error %1 in %2, at line %3, column %4: %5QXmlPatternistCLI$H81:0 %1 2 %2: %3Error %1 in %2: %3QXmlPatternistCLI058725AB=>5 @0A?>;>65=85Unknown locationQXmlPatternistCLI`@54C?@5645=85 2 %1, 2 AB@>:5 %2, AB>;1F5 %3: %4(Warning in %1, at line %2, column %3: %4QXmlPatternistCLI.@54C?@5645=85 2 %1: %2Warning in %1: %2QXmlPatternistCLIN%1 - =5:>@@5:B=K9 845=B8D8:0B>@ PUBLIC.#%1 is an invalid PUBLIC identifier. QXmlStream`%1 - =5 O2;O5BAO :>@@5:B=K< =0720=85< :>48@>2:8.%1 is an invalid encoding name. QXmlStream|%1 =5 O2;O5BAO :>@@5:B=K< =0720=85< >1@010BK205<>9 8=AB@C:F88.-%1 is an invalid processing instruction name. QXmlStream, ?>;CG8;8 ' , but got ' QXmlStream,B@81CB ?5@5>?@545;Q=.Attribute redefined. QXmlStream<>48@>2:0 %1 =5 ?>445@68205BAOEncoding %1 is unsupported QXmlStreamb1=0@C65=> =5:>@@5:B=> 70:>48@>20==>5 A>45@68<>5.(Encountered incorrectly encoded content. QXmlStream01J5:B %1 =5 >1JO2;5=.Entity '%1' not declared. QXmlStream6840;>AL  Expected  QXmlStream86840NBAO A8<2>;L=K5 40==K5.Expected character data. QXmlStream@8H=85 40==K5 2 :>=F5 4>:C<5=B0.!Extra content at end of document. QXmlStreamT5:>@@5:B=>5 >1JO2;5=85 ?@>AB@0=AB20 8<Q=.Illegal namespace declaration. QXmlStream05:>@@5:B=K9 A8<2>; XML.Invalid XML character. QXmlStream*5:>@@5:B=>5 8<O XML.Invalid XML name. QXmlStream>5:>@@5:B=0O AB@>:0 25@A88 XML.Invalid XML version string. QXmlStreamL5:>@@5:B=K9 0B@81CB 2 >1JO2;5=88 XML.%Invalid attribute in XML declaration. QXmlStream>5:>@@5:B=0O A8<2>;L=0O AAK;:0.Invalid character reference. QXmlStream,5:>@@5:B=K9 4>:C<5=B.Invalid document. QXmlStream<5:>@@5:B=>5 7=0G5=85 >1J5:B0.Invalid entity value. QXmlStream`5:>@@5:B=>5 =0720=85 >1@010BK205<>9 8=AB@C:F88.$Invalid processing instruction name. QXmlStream:NDATA 2 >1JO2;5=88 ?0@0<5B@0.&NDATA in parameter entity declaration. QXmlStreamT@5D8:A ?@>AB@0=AB20 8<Q= %1 =5 >1JO2;5="Namespace prefix '%1' not declared QXmlStreamVB:@K20NI89 BM3 =5 A>2?0405B A 70:@K20NI8<. Opening and ending tag mismatch. QXmlStream85>6840==K9 :>=5F 4>:C<5=B0.Premature end of document. QXmlStream:1=0@C65= @5:C@A82=K9 >1J5:B.Recursive entity detected. QXmlStreamd!AK;:0 =0 2=5H=89 >1J5:B %1 2 7=0G5=88 0B@81CB0.5Reference to external entity '%1' in attribute value. QXmlStreamJ!AK;:0 =0 =5>1@01>B0==K9 >1J5:B %1."Reference to unparsed entity '%1'. QXmlStreamd>A;54>20B5;L=>ABL ]]> =54>?CAB8<0 2 A>45@68<><.&Sequence ']]>' not allowed in content. QXmlStreamA524>0B@81CB standalone <>65B ?@8=8<0BL B>;L:> 7=0G5=8O yes 8;8 no."Standalone accepts only yes or no. QXmlStream468405BAO >B:@K20NI89 BM3.Start tag expected. QXmlStreamA524>0B@81CB standalone 4>;65= =0E>48BLAO ?>A;5 C:070=8O :>48@>2:8.?The standalone pseudo attribute must appear after the encoding. QXmlStream5>6840==>5 ' Unexpected ' QXmlStreamx5>6840==K9 A8<2>; %1 2 ;8B5@0;5 >B:@KB>3> 845=B8D8:0B>@0./Unexpected character '%1' in public id literal. QXmlStream85?>445@68205<0O 25@A8O XML.Unsupported XML version. QXmlStream^1JO2;5=85 XML =0E>48BAO =5 2 =0G0;5 4>:C<5=B0.)XML declaration not at start of document. QXmlStream-;5<5=BKItems QmlJSDebugger::LiveSelectionTool0.125xQmlJSDebugger::QmlToolBar0.1xQmlJSDebugger::QmlToolBar0.25xQmlJSDebugger::QmlToolBar0.5xQmlJSDebugger::QmlToolBar1xQmlJSDebugger::QmlToolBar>@8<5=8BL 87<5=5=8O : 4>:C<5=BCApply Changes to DocumentQmlJSDebugger::QmlToolBarRA?>;L7>20BL 87<5=5=8O 2 ?@>A<>B@I8:5 QMLApply Changes to QML ViewerQmlJSDebugger::QmlToolBar8?5B:0 Color PickerQmlJSDebugger::QmlToolBar* 568< 8=A?5:B8@>20=8OInspector ModeQmlJSDebugger::QmlToolBar@0?CAB8BL/?@8>AB0=>28BL 0=8<0F88Play/Pause AnimationsQmlJSDebugger::QmlToolBarK1@0BLSelectQmlJSDebugger::QmlToolBar K1@0BL (0@:5B)Select (Marquee)QmlJSDebugger::QmlToolBar=AB@C<5=BKToolsQmlJSDebugger::QmlToolBar0AHB01ZoomQmlJSDebugger::QmlToolBar !:>?8@>20BL F25B Copy ColorQmlJSDebugger::ToolBarColorBox#25;8G8BLZoom InQmlJSDebugger::ZoomTool#<5=LH8BLZoom OutQmlJSDebugger::ZoomTool0AHB01 &100% Zoom to &100%QmlJSDebugger::ZoomToolX%1 8 %2 A>>B25BAB2CNB =0G0;C 8 :>=FC AB@>:8.,%1 and %2 match the start and end of a line. QtXmlPatterns:%1 =5 <>65B 1KBL 2>AAB0=>2;5=%1 cannot be retrieved QtXmlPatternsZ%1 A>45@68B D0A5B %2 A =525@=K<8 40==K<8: %3.+%1 contains %2 facet with invalid data: %3. QtXmlPatterns@%1 A>45@68B =5:>@@5:B=K5 40==K5.%1 contains invalid data. QtXmlPatterns%1 A>45@68B >:B5BK, :>B>@K5 =54>?CAB8<K 2 B@51C5<>9 :>48@>2:5 %2.E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatternsT$0A5BK %1 8 %2 =5 <>3CB 1KBL >4=>2@5<5==>.-%1 facet and %2 facet cannot appear together. QtXmlPatterns$0A5B %1 =5 <>65B 1KBL %2, 5A;8 D0A5B %3 107>2>3> B8?0 @025= %4.5%1 facet cannot be %2 if %3 facet of base type is %4. QtXmlPatterns$0A5B %1 =5 <>65B 1KBL %2 8;8 %3, 5A;8 D0A5B %4 107>2>3> B8?0 @025= %5.;%1 facet cannot be %2 or %3 if %4 facet of base type is %5. QtXmlPatterns2$0A5B %1 ?@>B82>@5G8B %2. %1 facet collides with %2 facet. QtXmlPatterns^$0A5B %1 A>45@68B =525@=>5 @53C;O@=>5 2K@065=85,%1 facet contains invalid regular expression QtXmlPatternsV$0A5B %1 A>45@68B =525@=>5 7=0G5=85 %2: %3.'%1 facet contains invalid value %2: %3. QtXmlPatternsl$0A5B %1 4>;65= 1KBL =5 <5=55 D0A5B0 %2 107>2>3> B8?0.=%1 facet must be equal or greater than %2 facet of base type. QtXmlPatternsf$0A5B %1 4>;65= 1KBL 1>;55 D0A5B0 %2 107>2>3> B8?0.4%1 facet must be greater than %2 facet of base type. QtXmlPatternsl$0A5B %1 4>;65= 1KBL =5 <5=55 D0A5B0 %2 107>2>3> B8?0.@%1 facet must be greater than or equal to %2 facet of base type. QtXmlPatternsf$0A5B %1 4>;65= 1KBL <5=55 D0A5B0 %2 107>2>3> B8?0.1%1 facet must be less than %2 facet of base type. QtXmlPatternsJ$0A5B %1 4>;65= 1KBL <5=55 D0A5B0 %2.$%1 facet must be less than %2 facet. QtXmlPatternsl$0A5B %1 4>;65= 1KBL =5 1>;55 D0A5B0 %2 107>2>3> B8?0.=%1 facet must be less than or equal to %2 facet of base type. QtXmlPatternsP$0A5B %1 4>;65= 1KBL =5 1>;55 D0A5B0 %2.0%1 facet must be less than or equal to %2 facet. QtXmlPatterns$0A5B %1 4>;65= 8<5BL B0:>5 65 7=0G5=85, :0: 8 D0A5B %2 107>2>3> B8?0.;%1 facet must have the same value as %2 facet of base type. QtXmlPatternsd# %1 70F8:;5=> =0A;54>20=85 2 53> 107>2>< B8?5 %2.,%1 has inheritance loop in its base type %2. QtXmlPatterns%1 - A;>6=K9 B8?. @5>1@07>20=85 : A;>6=K< B8?0< =52>7<>6=>. 4=0:>, ?@5>1@07>20=85 : 0B><0@=K< B8?0< :0: %2 @01>B05B.s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns(%1 =5:>@@5:=> 4;O %2%1 is an invalid %2 QtXmlPatterns~%1 - =5:>@@5:B=K9 D;03 @53C;O@=>3> 2K@065=8O. >?CAB8<K5 D;038:?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatternsP%1 - =5:>@@5:B=K9 URI ?@>AB@0=AB20 8<Q=.%1 is an invalid namespace URI. QtXmlPatternsd%1 - =5:>@@5:B=K9 H01;>= @53C;O@=>3> 2K@065=8O: %2/%1 is an invalid regular expression pattern: %2 QtXmlPatterns`%1 =5 O2;O5BAO :>@@5:B=K< H01;>=>< 8<5=8 @568<0.$%1 is an invalid template mode name. QtXmlPatternsJ%1 O2;O5BAO AE5<>9 =58725AB=>3> B8?0.%1 is an unknown schema type. QtXmlPatterns>>48@>2:0 %1 =5 ?>445@68205BAO.%1 is an unsupported encoding. QtXmlPatternsB!8<2>; %1 =54>?CAB8< 4;O XML 1.0.$%1 is not a valid XML 1.0 character. QtXmlPatternsr%1 =5 O2;O5BAO :>@@5:B=K< =0720=85< 8=AB@C:F88 >1@01>B:8.4%1 is not a valid name for a processing-instruction. QtXmlPatternsZ%1 =5 O2;O5BAO :>@@5:B=K< G8A;>2K< ;8B5@0;><."%1 is not a valid numeric literal. QtXmlPatterns%1 =5:>@@5:B=>5 F5;52>5 8<O 2 >1@010BK205<>9 8=AB@C:F88. <O 4>;6=> 1KBL 7=0G5=85< B8?0 %2, =0?@8<5@: %3.Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatternsX%1 =5 O2;O5BAO ?@028;L=K< 7=0G5=85< B8?0 %2.#%1 is not a valid value of type %2. QtXmlPatternsP%1 =5 O2;O5BAO ?>;=K< :>;8G5AB2>< <8=CB.$%1 is not a whole number of minutes. QtXmlPatterns%1 =5 <>65B =0A;54>20BL %2 G5@57 @0AH8@5=85, B0: :0: @0=55 >?@545;5=>, GB> >= :>=5G=K9.S%1 is not allowed to derive from %2 by extension as the latter defines it as final. QtXmlPatterns%1 =5 <>65B =0A;54>20BL %2 G5@57 A?8A>:, B0: :0: @0=55 >?@545;5=>, GB> >= :>=5G=K9.N%1 is not allowed to derive from %2 by list as the latter defines it as final. QtXmlPatterns%1 =5 <>65B =0A;54>20BL %2 G5@57 >3@0=8G5=85, B0: :0: @0=55 >?@545;5=>, GB> >= :>=5G=K9.U%1 is not allowed to derive from %2 by restriction as the latter defines it as final. QtXmlPatterns%1 =5 <>65B =0A;54>20BL %2 G5@57 >1J548=5=85, B0: :0: @0=55 >?@545;5=>, GB> >= :>=5G=K9.O%1 is not allowed to derive from %2 by union as the latter defines it as final. QtXmlPatterns5 4>?CAB8<>, GB>1K %1 >?@545;O; 2=CB@5==89 B8? A B0:8< 65 8<5=5<.E%1 is not allowed to have a member type with the same name as itself. QtXmlPatternsB%1 =5 <>65B 8<5B =8:0:8E D0A5B>2.%%1 is not allowed to have any facets. QtXmlPatterns%1 - =5 0B><0@=K9 B8?. @5>1@07>20=85 2>7<>6=> B>;L:> : 0B><0@=K< B8?0<.C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatterns%1 O2;O5BAO >1JO2;5=85< 0B@81CB0 2=5 >1;0AB8 >1JO2;5=89. <59B5 2 284C, 2>7<>6=>ABL 8<?>@B0 AE5< =5 ?>445@68205BAO.g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatternsF%1 =5:>@@5:B=> 2 A>>B25BAB288 A %2. %1 is not valid according to %2. QtXmlPatternsH=0G5=85 %1 =5:>@@5:B=> 4;O B8?0 %2.&%1 is not valid as a value of type %2. QtXmlPatternsL%1 A>>B25BAB2C5B A8<2>;0< :>=F0 AB@>:8%1 matches newline characters QtXmlPatterns%1 4>;6=> A>?@>2>640BLAO %2 8;8 %3, => =5 2 :>=F5 70<5I05<>9 AB@>:8.J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatterns%1 ?@8=8<05B =5 <5=55 %n 0@3C<5=B0. !;54>20B5;L=>, %2 =5:>@@5:B=>.%1 ?@8=8<05B =5 <5=55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =5:>@@5:B=>.%1 ?@8=8<05B =5 <5=55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =5:>@@5:B=>.=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatterns%1 ?@8=8<05B =5 1>;55 %n 0@3C<5=B0. !;54>20B5;L=>, %2 =5:>@@5:B=>.%1 ?@8=8<05B =5 1>;55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =5:>@@5:B=>.%1 ?@8=8<05B =5 1>;55 %n 0@3C<5=B>2. !;54>20B5;L=>, %2 =5:>@@5:B=>.9%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns %1 1K;> 2K720=>.%1 was called. QtXmlPatterns54>?CAB8<K D0A5BK %1, %2, %3, %4, %5 8 %6 ?@8 =0A;54>20=88 A?8A:><.F%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. QtXmlPatternsjB@81CB %1 8<55B =5:>@@5:B=>5 A>45@68<>5 QName: %2.2'%1' attribute contains invalid QName content: %2. QtXmlPatternsB><<5=B0@89 =5 <>65B A>45@60BL %1A comment cannot contain %1 QtXmlPatternsP><<5=B0@89 =5 <>65B >:0=G820BLAO =0 %1.A comment cannot end with a %1. QtXmlPatternsvAB@5G5=0 :>=AB@C:F8O, 70?@5IQ==0O 4;O B5:CI53> O7K:0 (%1).LA construct was encountered which is disallowed in the current language(%1). QtXmlPatterns1JO2;5=85 ?@>AB@0=AB2> 8<Q= ?> C<>;G0=8N 4>;6=> 1KBL 4> >1JO2;5=8O DC=:F89, ?5@5<5==KE 8 >?F89.^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatterns@O<>9 :>=AB@C:B>@ M;5<5=B0 A>AB02;5= =5:>@@5:B=>. %1 70:0=G8205BAO =0 %2.EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatternsN$C=:F8O A A83=0BC@>9 %1 C65 ACI5AB2C5B.0A function already exists with the signature %1. QtXmlPatterns>4C;L 181;8>B5:8 =5 <>65B 8A?>;L7>20BLAO =0?@O<CN. = 4>;65= 1KBL 8<?>@B8@>20= 87 >A=>2=>3> <>4C;O.VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatternsb0@0<5B@ DC=:F88 =5 <>65B 1KBL >1JO2;5= BC==5;5<.78F8>==K9 ?@548:0B 4>;65= 2KG8A;OBLAO :0: G8A;>2>5 2K@065=85.?A positional predicate must evaluate to a single numeric value. QtXmlPatternsX$C=:F8O AB8;59 4>;6=0 8<5BL 8<O A ?@5D8:A><.0A stylesheet function must have a prefixed name. QtXmlPatternsH(01;>= A 8<5=5< %1 C65 1K; >1JO2;5=.2A template with name %1 has already been declared. QtXmlPatterns=0G5=85 B8?0 %1 =5 <>65B 1KBL CA;>285<. #A;>285< <>3CB O2;OBLAO G8A;>2>9 8 1C;52K9 B8?K.yA value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. QtXmlPatternsb=0G5=85 B8?0 %1 =5 <>65B 1KBL 1C;52K< 7=0G5=85<.:A value of type %1 cannot have an Effective Boolean Value. QtXmlPatterns=0G5=85 B8?0 %1 4>;6=> A>45@60BL G5B=>5 :>;8G5AB2> F8D@. =0G5=85 %2 MB><C B@51>20=8N =5 C4>2;5B2>@O5B.PA value of type %1 must contain an even number of digits. The value %2 does not. QtXmlPatternsJ5@5<5==0O A 8<5=5< %1 C65 >1JO2;5=0.2A variable with name %1 has already been declared. QtXmlPatterns 538>=0;L=>5 A<5I5=85 4>;6=> 1KBL 2 ?5@545;0E >B %1 4> %2 2:;NG8B5;L=>. %3 2KE>48B 70 4>?CAB8<K5 ?@545;K.HA zone offset must be in the range %1..%2 inclusive. %3 is out of range. QtXmlPatternsF5>4=>7=0G=>5 A>>B25BAB285 ?@028;C.Ambiguous rule match. QtXmlPatterns@3C<5=B A 8<5=5< %1 C65 >1JO2;5=. <O :064>3> 0@3C<5=B0 4>;6=> 1KBL C=8:0;L=K<.WAn argument with name %1 has already been declared. Every argument name must be unique. QtXmlPatternsFB@81CB A 8<5=5< %1 C65 ACI5AB2C5B.1An attribute by name %1 has already been created. QtXmlPatterns#75;-0B@81CB =5 <>65B 1KBL ?>B><:>< C7;0-4>:C<5=B0. B@81CB %1 =5C<5AB5=.dAn attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. QtXmlPatternspB@81CB A 8<5=5< %1 C65 ACI5AB2C5B 4;O 40==>3> M;5<5=B0.?An attribute with name %1 has already appeared on this element. QtXmlPatternsZ0: <8=8<C< >48= M;5<5=B %1 4>;65= 1KBL 2 %2.3At least one %1 element must appear as child of %2. QtXmlPatternsb0: <8=8<C< >48= M;5<5=B %1 4>;65= 1KBL ?5@54 %2.-At least one %1-element must occur before %2. QtXmlPatternsd0: <8=8<C< >48= M;5<5=B %1 4>;65= 1KBL 2=CB@8 %2.-At least one %1-element must occur inside %2. QtXmlPatternsd>;6=0 ?@8ACBAB2>20BL :0: <8=8<C< >4=0 :><?>=5=B0.'At least one component must be present. QtXmlPatterns0: <8=8<C< >48= @568< 4>;65= 1KBL C:070= 2 0B@81CB5 %1 M;5<5=B0 %2.FAt least one mode must be specified in the %1-attribute on element %2. QtXmlPatterns0: <8=8<C< >4=0 :><?>=5=B0 2@5<5=8 4>;6=0 A;54>20BL 70 @0745;8B5;5< %1.?At least one time component must appear after the %1-delimiter. QtXmlPatterns2B@81CB %1 C65 >?@545;Q=.Attribute %1 already defined. QtXmlPatternsFB@81CBK %1 8 %2 2708<>8A:;NG0NI85.+Attribute %1 and %2 are mutually exclusive. QtXmlPatternsB@81CB %1 =5 <>65B 1KBL A5@80;87>20=, B0: :0: ?@8ACBAB2C5B =0 25@E=5< C@>2=5.EAttribute %1 can't be serialized because it appears at the top level. QtXmlPatternsTB@81CB %1 =5 <>65B ?@8=8<0BL 7=0G5=85 %2.&Attribute %1 cannot have the value %2. QtXmlPatternsP-;5<5=B %1 A>45@68B =525@=>5 A>45@68<>5.&Attribute %1 contains invalid content. QtXmlPatternsNB@81CB %1 A>45@68B =525@=K5 40==K5: %2&Attribute %1 contains invalid data: %2 QtXmlPatternsHB@81CB %1 =5 A>>B25BAB2C5B H01;>=C.3Attribute %1 does not match the attribute wildcard. QtXmlPatterns@C??0 0B@81CB>2 %1 A>45@68B 0B@81CB %2, =0 7=0G5=85 :>B>@>3> =0;>65=> >3@0=8G5=85, => B8? =0A;54>20= >B %3.bAttribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. QtXmlPatternsZ@C??0 0B@81CB>2 %1 A>45@68B 420 0B@81CB0 %2./Attribute group %1 contains attribute %2 twice. QtXmlPatterns@C??0 0B@81CB>2 %1 A>45@68B 420 @07=KE 0B@81CB0, ?@>872>4=KE >B %2.ZAttribute group %1 contains two different attributes that both have types derived from %2. QtXmlPatternsB@81CBK A;>6=>3> B8?0 %1 =525@=> 4>?>;=ONB 0B@81CBK 107>2>3> B8?0 %2: %3.^Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. QtXmlPatternsB@81CBK A;>6=>3> B8?0 %1 =5 O2;ONBAO 25@=K< >3@0=8G5=85< 0B@81CB>2 107>2>3> B8?0 %2: %3.bAttributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. QtXmlPatterns07>2K9 B8? %1 ?@>AB>3> B8?0 %2 =5 <>65B 8<5BL >3@0=8G5=85 4;O 0B@81CB0 %3.RBase type %1 of simple type %2 is not allowed to have restriction in %3 attribute. QtXmlPatterns07>2K9 B8? %1 ?@>AB>3> B8?0 %2 4>;65= A>45@60BL :0:>5-B> >1J548=5=85.:Base type %1 of simple type %2 must have variety of union. QtXmlPatternsd07>2K< ?@>AB>3> B8?0 %1 =5 <>65B 1KBL A;>6=K9 %2.6Base type of simple type %1 cannot be complex type %2. QtXmlPatterns07>2K9 B8? ?@>AB>3> B8?0 %1 >?@545;Q= :>=5G=K< 8AE>4O 87 >3@0=8G5=8O.KBase type of simple type %1 has defined derivation by restriction as final. QtXmlPatterns07>2K9 B8? ?@>AB>3> B8?0 %1 4>;65= A>45@60BL :0:>9-=81C4L A?8A>:.;Base type of simple type %1 must have variety of type list. QtXmlPatterns^2>8G=K5 40==K5 =5 A>>B25BAB2CNB D0A5BC length./Binary content does not match the length facet. QtXmlPatternsd2>8G=K5 40==K5 =5 A>>B25BAB2CNB D0A5BC maxLength.2Binary content does not match the maxLength facet. QtXmlPatternsd2>8G=K5 40==K5 =5 A>>B25BAB2CNB D0A5BC minLength.2Binary content does not match the minLength facet. QtXmlPatternsb2>8G=K5 40==K5 >BACBAB2CNB 2 D0A5B5 enumeration.6Binary content is not listed in the enumeration facet. QtXmlPatterns\C;52>5 G8A;> =5 A>>B25BAB2C5B D0A5BC pattern.-Boolean content does not match pattern facet. QtXmlPatternsP&8:;8G=>5 =0A;54>20=85 107>2>3> B8?0 %1.%Circular inheritance of base type %1. QtXmlPatternsL&8:;8G=>5 =0A;54>20=85 >1J548=5=8O %1.!Circular inheritance of union %1. QtXmlPatternsb!;>6=K9 B8? %1 =5 <>65B 1KBL ?@>872>4=K< >B %2%3.6Complex type %1 cannot be derived from base type %2%3. QtXmlPatterns!;>6=K9 B8? %1 A>45@68B 0B@81CB %2, =0 7=0G5=85 :>B>@>3> =0;>65=> >3@0=8G5=85, => B8? =0A;54>20= >B %3._Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. QtXmlPatternsP!;>6=K9 B8? %1 A>45@68B 420 0B@81CB0 %2.,Complex type %1 contains attribute %2 twice. QtXmlPatterns~!;>6=K9 B8? %1 A>45@68B 420 @07=KE 0B@81CB0, ?@>872>4=KE >B %2.WComplex type %1 contains two different attributes that both have types derived from %2. QtXmlPatterns!;>6=K9 B8? %1 8<55B ?>2B>@ONI89AO M;5<5=B %2 2 A2>59 <>45;8 A>45@68<>3>.?Complex type %1 has duplicated element %2 in its content model. QtXmlPatternsh!;>6=K9 B8? %1 8<55B =545B5@<8=8@>20==>5 A>45@68<>5..Complex type %1 has non-deterministic content. QtXmlPatternsd54>?CAB8<>, GB>1K A;>6=K9 B8? %1 1K; 01AB@0:B=K<..Complex type %1 is not allowed to be abstract. QtXmlPatterns^!;>6=K9 B8? %1 4>;65= 8<5BL ?@>AB>5 A>45@68<>5.)Complex type %1 must have simple content. QtXmlPatterns!;>6=K9 B8? %1 4>;65= A>45@60BL B0:>9 65 ?@>AB>9 B8?, :0: 8 53> 107>2K9 :;0AA %2.DComplex type %1 must have the same simple type as its base class %2. QtXmlPatterns!;>6=K9 B8? %1 A ?@>ABK< A>45@68<K< =5 <>65B 1KBL ?@>872>4=K< >B A;>6=>3> B8?0 %2.PComplex type %1 with simple content cannot be derived from complex base type %2. QtXmlPatterns>45;L A>45@68<>3> A;>6=>3> B8?0 %1 =525@=> 4>?>;=O5B <>45;L A>45@68<>3> %2.QContent model of complex type %1 is not a valid extension of content model of %2. QtXmlPatterns!>45@68<>5 0B@81CB0 %1 =5 A>>B25BAB2C5B >?@545;Q==><C >3@0=8G5=8N 7=0G5=8O.@Content of attribute %1 does not match defined value constraint. QtXmlPatterns!>45@68<>5 0B@81CB0 %1 =5 A>>B25BAB2C5B 53> >?@545;5=8N B8?0: %2.?Content of attribute %1 does not match its type definition: %2. QtXmlPatterns!>45@68<>5 M;5<5=B0 %1 =5 A>>B25BAB2C5B >?@545;Q==><C >3@0=8G5=8N 7=0G5=8O.>Content of element %1 does not match defined value constraint. QtXmlPatterns!>45@68<>5 M;5<5=B0 %1 =5 A>>B25BAB2C5B 53> >?@545;5=8N B8?0: %2.=Content of element %1 does not match its type definition: %2. QtXmlPatternsJ0==K5 B8?0 %1 =5 <>3CB 1KBL ?CABK<8.,Data of type %1 are not allowed to be empty. QtXmlPatternsV0B0-2@5<O =5 A>>B25BAB2C5B D0A5BC pattern./Date time content does not match pattern facet. QtXmlPatterns`0B0-2@5<O =5 A>>B25BAB2C5B D0A5BC maxExclusive.8Date time content does not match the maxExclusive facet. QtXmlPatterns`0B0-2@5<O =5 A>>B25BAB2C5B D0A5BC maxInclusive.8Date time content does not match the maxInclusive facet. QtXmlPatterns`0B0-2@5<O =5 A>>B25BAB2C5B D0A5BC minExclusive.8Date time content does not match the minExclusive facet. QtXmlPatterns`0B0-2@5<O =5 A>>B25BAB2C5B D0A5BC minInclusive.8Date time content does not match the minInclusive facet. QtXmlPatternsX0B0-2@5<O >BACBAB2C5B 2 D0A5B5 enumeration.9Date time content is not listed in the enumeration facet. QtXmlPatterns<5=L %1 =525@5= 4;O <5AOF0 %2.Day %1 is invalid for month %2. QtXmlPatterns:5=L %1 2=5 480?07>=0 %2..%3.#Day %1 is outside the range %2..%3. QtXmlPatternsd5AOB8G=>5 =5 A>>B25BAB2C5B D0A5BC fractionDigits.;Decimal content does not match in the fractionDigits facet. QtXmlPatterns^5AOB8G=>5 =5 A>>B25BAB2C5B D0A5BC totalDigits.8Decimal content does not match in the totalDigits facet. QtXmlPatternsFBACBAB2C5B >1JO2;5=85 0B@81CB0 %1.,Declaration for attribute %1 does not exist. QtXmlPatternsFBACBAB2C5B >1JO2;5=85 M;5<5=B0 %1.*Declaration for element %1 does not exist. QtXmlPatterns5B>4 =0A;54>20=8O %1 4>;65= 1KBL @0AH8@5=85, B0: :0: 107>2K9 B8? %2 O2;O5BAO ?@>ABK<.TDerivation method of %1 must be extension because the base type %2 is a simple type. QtXmlPatterns5;5=85 G8A;0 B8?0 %1 =0 %2 (=5 G8A;>2>5 2K@065=85) =54>?CAB8<>.@Dividing a value of type %1 by %2 (not-a-number) is not allowed. QtXmlPatterns5;5=85 G8A;0 B8?0 %1 =0 %2 8;8 %3 (?;NA 8;8 <8=CA =C;L) =54>?CAB8<>.LDividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. QtXmlPatternsP5;5=85 (%1) =0 =C;L (%2) =5 >?@545;5=>.(Division (%1) by zero (%2) is undefined. QtXmlPatternsj59AB28B5;L=>5 G8A;> =5 A>>B25BAB2C5B D0A5BC pattern.,Double content does not match pattern facet. QtXmlPatternst59AB28B5;L=>5 G8A;> =5 A>>B25BAB2C5B D0A5BC maxExclusive.5Double content does not match the maxExclusive facet. QtXmlPatternst59AB28B5;L=>5 G8A;> =5 A>>B25BAB2C5B D0A5BC maxInclusive.5Double content does not match the maxInclusive facet. QtXmlPatternst59AB28B5;L=>5 G8A;> =5 A>>B25BAB2C5B D0A5BC minExclusive.5Double content does not match the minExclusive facet. QtXmlPatternst59AB28B5;L=>5 G8A;> =5 A>>B25BAB2C5B D0A5BC minInclusive.5Double content does not match the minInclusive facet. QtXmlPatternsl59AB28B5;L=>5 G8A;> >BACBAB2C5B 2 D0A5B5 enumeration.6Double content is not listed in the enumeration facet. QtXmlPatternsZ;8B5;L=>ABL =5 A>>B25BAB2C5B D0A5BC pattern..Duration content does not match pattern facet. QtXmlPatternsd;8B5;L=>ABL =5 A>>B25BAB2C5B D0A5BC maxExclusive.7Duration content does not match the maxExclusive facet. QtXmlPatternsd;8B5;L=>ABL =5 A>>B25BAB2C5B D0A5BC maxInclusive.7Duration content does not match the maxInclusive facet. QtXmlPatternsd;8B5;L=>ABL =5 A>>B25BAB2C5B D0A5BC minExclusive.7Duration content does not match the minExclusive facet. QtXmlPatternsd;8B5;L=>ABL =5 A>>B25BAB2C5B D0A5BC minInclusive.7Duration content does not match the minInclusive facet. QtXmlPatterns\;8B5;L=>ABL >BACBAB2C5B 2 D0A5B5 enumeration.8Duration content is not listed in the enumeration facet. QtXmlPatterns<O :064>3> ?0@0<5B@0 H01;>=0 4>;6=> 1KBL C=8:0;L=K<, => %1 ?>2B>@O5BAO.CEach name of a template parameter must be unique; %1 is duplicated. QtXmlPatternsC;52> 7=0G5=85 =5 <>65B 1KBL 2KG8A;5=> 4;O ?>A;54>20B5;L=>AB59, :>B>@K5 A>45@60B 420 8 1>;55 0B><0@=KE 7=0G5=8O.aEffective Boolean Value cannot be calculated for a sequence containing two or more atomic values. QtXmlPatterns2-;5<5=B %1 C65 >?@545;Q=.Element %1 already defined. QtXmlPatterns-;5<5=B %1 =5 <>65B 1KBL A5@80;87>20=, B0: :0: @0A?>;>65= 2=5 4>:C<5=B0.OElement %1 can't be serialized because it appears outside the document element. QtXmlPatterns-;5<5=B %1 =5 <>65B A>45@60BL 4@C385 M;5<5=BK, B0: :0: C =53> D8:A8@>20==>5 A>45@68<>5.BElement %1 cannot contain other elements, as it has fixed content. QtXmlPatternsr-;5<5=B %1 =5 <>65B 8<5BL :>=AB@C:B>@ ?>A;54>20B5;L=>AB8..Element %1 cannot have a sequence constructor. QtXmlPatternsF-;5<5=B %1 =5 <>65B 8<5BL ?>B><:>2. Element %1 cannot have children. QtXmlPatternsX M;5<5=B5 %1 =0E>48BAO =525@=>5 A>45@68<>5.$Element %1 contains invalid content. QtXmlPatternsT-;5<5=B %1 A>45@68B =54>?CAB8<K5 0B@81CBK.+Element %1 contains not allowed attributes. QtXmlPatternsj-;5<5=B %1 A>45@68B =54>?CAB8<>5 4>G5@=55 A>45@68<>5..Element %1 contains not allowed child content. QtXmlPatternsd-;5<5=B %1 A>45@68B =54>?CAB8<K9 4>G5@=89 M;5<5=B..Element %1 contains not allowed child element. QtXmlPatternsl-;5<5=B %1 A>45@68B =54>?CAB8<>5 B5:AB>2>5 A>45@68<>5.-Element %1 contains not allowed text content. QtXmlPatternsR-;5<5=B %1 A>45@68B 420 0B@81CB0 B8?0 %2..Element %1 contains two attributes of type %2. QtXmlPatternsV-;5<5=B %1 A>45@68B =58725AB=K9 0B@81CB %2.)Element %1 contains unknown attribute %2. QtXmlPatterns@-;5<5=B %1 >1JO2;5= 01AB@0:B=K<.#Element %1 is declared as abstract. QtXmlPatternsV# M;5<5=B0 %1 >BACBAB2C5B 4>G5@=89 M;5<5=B.$Element %1 is missing child element. QtXmlPatternsb# M;5<5=B0 %1 >BACBAB2C5B =5>1E>48<K9 0B@81CB %2.,Element %1 is missing required attribute %2. QtXmlPatternsF-;5<5=B %1 =54>?CAB8< 2 MB>< <5AB5.+Element %1 is not allowed at this location. QtXmlPatterns-;5<5=BC %1 =54>?CAB8<> 8<5BL >3@0=8G5=85 =0 7=0G5=8O, 5A;8 C 53> 107>2K9 B8? A;>6=K9.QElement %1 is not allowed to have a value constraint if its base type is complex. QtXmlPatterns-;5<5=BC %1 =54>?CAB8<> 8<5BL >3@0=8G5=85 =0 7=0G5=8O, 5A;8 53> B8? ?@>872>4=K9 >B %2.TElement %1 is not allowed to have a value constraint if its type is derived from %2. QtXmlPatternsV-;5<5=B %1 =5 >?@545;Q= 2 40==>< :>=B5:AB5.(Element %1 is not defined in this scope. QtXmlPatterns0-;5<5=B %1 =5>1=C;O5<K9.Element %1 is not nillable. QtXmlPatternsB-;5<5=B %1 4>;65= 84B8 ?>A;54=8<.Element %1 must come last. QtXmlPatterns-;5<5=B %1 4>;65= 8<5BL :0: <8=8<C< >48= 87 0B@81CB>2 %2 8;8 %3.=Element %1 must have at least one of the attributes %2 or %3. QtXmlPatterns-;5<5=B %1 4>;65= 8<5BL 0B@81CB %2 8;8 :>=AB@C:B>@ ?>A;54>20B5;L=>AB8.EElement %1 must have either a %2-attribute or a sequence constructor. QtXmlPatternsX-;5<5=B =5>1=C;O5<K9, B.:. 8<55B A>45@68<>5.1Element contains content although it is nillable. QtXmlPatternsF@C??0 M;5<5=B>2 %1 C65 >?@545;Q=0.!Element group %1 already defined. QtXmlPatterns>>;5 %1 =5 8<55B ?@>AB>3> B8?0.Field %1 has no simple type. QtXmlPatterns;O >1=C;O5<KE M;5<5=B>2 =54>?CAB8<> >3@0=8G5=85 D8:A8@>20==K< 7=0G5=85<.:Fixed value constraint not allowed if element is nillable. QtXmlPatterns<=0G5=85 ID %1 =5 C=8:0;L=>.ID value '%1' is not unique. QtXmlPatternsA;8 >10 7=0G5=8O 8<5NB @538>=0;L=K5 A<5I5=8O, A<5I5=8O 4>;6=K 1KBL >48=0:>2K. %1 8 %2 =5 >48=0:>2K.bIf both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. QtXmlPatternsA;8 M;5<5=B %1 =5 8<55B 0B@81CB %2, C =53> =5 <>65B 1KBL 0B@81CB>2 %3 8 %4.EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatterns"@5D8:A =5 4>;65= 1KBL C:070=, 5A;8 ?5@2K9 ?0@0<5B@ - ?CAB0O ?>A;54>20B5;L=>ABL 8;8 ?CAB0O AB@>:0 (2=5 ?@>AB@0=AB20 8<Q=). K; C:070= ?@5D8:A %1.If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatterns :>=AB@C:B>@5 ?@>AB@0=AB20 8<Q= 7=0G5=85 ?@>AB@0=AB20 8<Q= =5 <>65B 1KBL ?CAB>9 AB@>:>9.PIn a namespace constructor, the value for a namespace cannot be an empty string. QtXmlPatterns <>4C;5 C?@>IQ==>9 B01;8FK AB8;59 >1O70= ?@8ACBAB2>20BL 0B@81CB %1.@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatterns H01;>=5 XSL-T =5 <>65B 1KBL 8A?>;L7>20=0 >AL %1 - B>;L:> >A8 %2 8;8 %3.DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatterns~ H01;>=5 XSL-T C DC=:F88 %1 =5 4>;6=> 1KBL B@5BL53> 0@3C<5=B0.>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatterns H01;>=5 XSL-T B>;L:> DC=:F88 %1 8 %2 <>3CB 8A?>;L7>20BLAO 4;O A@02=5=8O, => =5 %3.OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatterns H01;>=5 XSL-T ?5@2K9 0@3C<5=B DC=:F88 %1 4>;65= 1KBL ;8B5@0;>< 8;8 AAK;:>9 =0 ?5@5<5==CN, 5A;8 DC=:F8O 8A?>;L7C5BAO 4;O A@02=5=8O.yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatterns H01;>=5 XSL-T ?5@2K9 0@3C<5=B DC=:F88 %1 4>;65= 1KBL AB@>:>2K< ;8B5@0;><, 5A;8 DC=:F8O 8A?>;L7C5BAO 4;O A@02=5=8O.hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatterns 70<5I05<>9 AB@>:5 A8<2>; %1 <>65B 8A?>;L7>20BLAO B>;L:> 4;O M:@0=8@>20=8O A0<>3> A51O 8;8 %2, => =5 %3MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatterns 70<5I05<>9 AB@>:5 %1 4>;6=> A>?@>2>640BLAO :0: <8=8<C< >4=>9 F8D@>9, 5A;8 =5M:@0=8@>20=>.VIn the replacement string, %1 must be followed by at least one digit when not escaped. QtXmlPatternsl&5;>G8A;5==>5 45;5=85 (%1) =0 =C;L (%2) =5 >?@545;5=>.0Integer division (%1) by zero (%2) is undefined. QtXmlPatternsD5:>@@5:B=>5 A>45@68<>5 QName: %1.Invalid QName content: %1. QtXmlPatternsB52>7<>6=> A2O70BL A ?@5D8:A>< %1+It is not possible to bind to the prefix %1 QtXmlPatternsJ52>7<>6=> ?5@5>?@545;8BL ?@5D8:A %1.*It is not possible to redeclare prefix %1. QtXmlPatternsBC45B =52>7<>6=> 2>AAB0=>28BL %1.'It will not be possible to retrieve %1. QtXmlPatternsz52>7<>6=> 4>102;OBL 0B@81CBK ?>A;5 ;N1>3> 4@C3>3> 2840 C7;0.AIt's not possible to add attributes after any other kind of node. QtXmlPatternsx"8? M;5<5=B0 107>2>3> B8?0 =5 A>2?0405B A B8?>< M;5<5=B0 %1.6Item type of base type does not match item type of %1. QtXmlPatternst@>AB>9 B8? %1 =5 <>65B A>45@60BL M;5<5=B>2 A;>6=KE B8?>2.5Item type of simple type %1 cannot be a complex type. QtXmlPatternsb3@0=8G5=85 =0 :;NG %1 A>45@68B =54>AB0NI85 ?>;O.)Key constraint %1 contains absent fields. QtXmlPatterns3@0=8G5=85 =0 :;NG %1 A>45@68B AAK;:8 =0 >1=C;O5<K9 M;5<5=B %2.:Key constraint %1 contains references nillable element %2. QtXmlPatternsL!?8A>: =5 A>>B25BAB2C5B D0A5BC length.)List content does not match length facet. QtXmlPatternsR!?8A>: =5 A>>B25BAB2C5B D0A5BC maxLength.,List content does not match maxLength facet. QtXmlPatternsR!?8A>: =5 A>>B25BAB2C5B D0A5BC minLength.,List content does not match minLength facet. QtXmlPatternsd!>45@68<>5 A?8A:0 =5 A>>B25BAB2C5B D0A5BC pattern.*List content does not match pattern facet. QtXmlPatternsl!>45@68<>5 A?8A:0 =5 ?5@5G8A;5=> 2 D0A5B5 enumeration.4List content is not listed in the enumeration facet. QtXmlPatternsF03@C65==K9 D09; AE5<K =5:>@@5:B5=.Loaded schema file is invalid. QtXmlPatterns>!>>B25BAB28O @538AB@>=57028A8<KMatches are case insensitive QtXmlPatterns=CB@5==89 B8? %1 =5 <>65B 1KBL ?@>872>4=K< >B B8?0 %2, >?@545;Q==>3> 2 107>2>< B8?5 B8?0 %3 - %4.JMember type %1 cannot be derived from member type %2 of %3's base type %4. QtXmlPatterns`@>AB>9 B8? %1 =5 <>65B >?@545;OBL A;>6=K5 B8?K.7Member type of simple type %1 cannot be a complex type. QtXmlPatterns<?>@B8@C5<K5 <>4C;8 4>;6=K 1KBL C:070=K 4> >1JO2;5=8O DC=:F89, ?5@5<5==KE 8 >?F89.MModule imports must occur before function, variable, and option declarations. QtXmlPatternsd5;5=85 ?> <>4C;N (%1) =0 =C;L (%2) =5 >?@545;5=>.0Modulus division (%1) by zero (%2) is undefined. QtXmlPatterns<5AOF %1 2=5 480?07>=0 %2..%3.%Month %1 is outside the range %2..%3. QtXmlPatternsT;O ?>;O %1 =0945=> 1>;55 >4=>3> 7=0G5=8O.'More than one value found for field %1. QtXmlPatterns#<=>65=85 G8A;0 B8?0 %1 =0 %2 8;8 %3 (?;NA-<8=CA 15A:>=5G=>ABL) =54>?CAB8<>.YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatterns@>AB@0=AB2> 8<Q= %1 <>65B 1KBL A2O70=> B>;L:> A %2 (2 40==>< A;CG05 C65 ?@54>?@545;5=>).ONamespace %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatterns1JO2;5=85 ?@>AB@0=AB20 8<Q= 4>;6=> 1KBL 4> >1JO2;5=8O DC=:F89, ?5@5<5==KE 8 >?F89.UNamespace declarations must occur before function, variable, and option declarations. QtXmlPatterns8@5<O >6840=8O A5B8 8AB5:;>.Network timeout. QtXmlPatternsHBACBAB2C5B >?@545;5=85 M;5<5=B0 %1.'No definition for element %1 available. QtXmlPatterns =5H=85 DC=:F88 =5 ?>445@6820NBAO. A5 ?>445@68205<K5 DC=:F88 <>3CB 8A?>;L7>20BLAO =0?@O<CN 157 ?5@2>=0G0;L=>3> >1JO2;5=8O 8E 2 :0G5AB25 2=5H=8E{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatterns@$C=:F8O A 8<5=5< %1 >BACBAB2C5B.&No function with name %1 is available. QtXmlPatternsF$C=:F8O A A83=0BC@>9 %1 >BACBAB2C5B*No function with signature %1 is available QtXmlPatternspBACBAB2C5B ?@82O7:0 : ?@>AB@0=AB2C 8<Q= 4;O ?@5D8:A0 %1-No namespace binding exists for the prefix %1 QtXmlPatternszBACBAB2C5B ?@82O7:0 : ?@>AB@0=AB2C 8<Q= 4;O ?@5D8:A0 %1 2 %23No namespace binding exists for the prefix %1 in %2 QtXmlPatternsB!E5<0 4;O ?@>25@:8 =5 >?@545;5=0.!No schema defined for validation. QtXmlPatterns>(01;>= A 8<5=5< %1 >BACBAB2C5B.No template by name %1 exists. QtXmlPatternspBACBAB2C5B 7=0G5=85 4;O 2=5H=59 ?5@5<5==>9 A 8<5=5< %1.=No value is available for the external variable with name %1. QtXmlPatternsD5@5<5==0O A 8<5=5< %1 >BACBAB2C5BNo variable with name %1 exists QtXmlPatternsh1=0@C65=> =5C=8:0;L=>5 7=0G5=85 4;O >3@0=8G5=8O %1.)Non-unique value found for constraint %1. QtXmlPatterns8 >4=> 87 2K@065=89 pragma =5 ?>445@68205BAO. >;6=> ACI5AB2>20BL 70?0A=>5 2K@065=85^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatternsp!>45@68<>5 Notation =5 ?5@5G8A;5=> 2 D0A5B5 enumeration.8Notation content is not listed in the enumeration facet. QtXmlPatternsz@8 =0A;54>20=88 >1J548=5=85< 4>ABC?=K B>;L:> D0A5BK %1 8 %2.8Only %1 and %2 facets are allowed when derived by union. QtXmlPatterns">;L:> >4=> >1JO2;5=85 %1 <>65B ?@8ACBAB2>20BL 2 ?@>;>35 70?@>A0.6Only one %1 declaration can occur in the query prolog. QtXmlPatternsF>;65= 1KBL B>;L:> >48= M;5<5=B %1.Only one %1-element can appear. QtXmlPatterns>445@68205BAO B>;L:> Unicode Codepoint Collation (%1). %2 =5 ?>445@68205BAO.IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatternsh">;L:> ?@5D8:A %1 <>65B 1KBL A2O70= A %2 8 =0>1>@>B.5Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatterns?5@0B>@ %1 =5 <>65B 8A?>;L7>20BLAO 4;O 0B><0@=KE 7=0G5=89 B8?>2 %2 8 %3.>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatterns`?5@0B>@ %1 =5 <>65B 8A?>;L7>20BLAO 4;O B8?0 %2.&Operator %1 cannot be used on type %2. QtXmlPatternsZ5@5?>;=5=85: 5 C40QBAO ?@54AB028BL 40BC %1."Overflow: Can't represent date %1. QtXmlPatternsT5@5?>;=5=85: =52>7<>6=> ?@54AB028BL 40BC.$Overflow: Date can't be represented. QtXmlPatterns$H81:0 @071>@0: %1Parse error: %1 QtXmlPatterns@5D8:A %1 <>65B 1KBL A2O70= B>;L:> A %2 (2 40==>< A;CG05 C65 ?@54>?@545;5=>).LPrefix %1 can only be bound to %2 (and it is, in either case, pre-declared). QtXmlPatternsD@5D8:A %1 C65 >1JO2;5= 2 ?@>;>35.,Prefix %1 is already declared in the prolog. QtXmlPatterns\@5>1@07>20=85 %1 : %2 <>65B A=878BL B>G=>ABL./Promoting %1 to %2 may cause loss of precision. QtXmlPatternsb!>45@68<>5 QName =5 A>>B25BAB2C5B D0A5BC pattern.+QName content does not match pattern facet. QtXmlPatternsd!>45@68<>5 QName >BACBAB2C5B 2 D0A5B5 enumeration.5QName content is not listed in the enumeration facet. QtXmlPatternsJ5>1E>48<> %1 M;5<5=B>2, ?>;CG5=> %2./Required cardinality is %1; got cardinality %2. QtXmlPatternsD"@51C5BAO B8? %1, => >1=0@C65= %2.&Required type is %1, but %2 was found. QtXmlPatterns~K?>;=O5BAO B01;8F0 AB8;59 XSL-T 1.0 A >1@01>BG8:>< 25@A88 2.0.5Running an XSL-T 1.0 stylesheet with a 2.0 processor. QtXmlPatternsf=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC totalDigits.?Signed integer content does not match in the totalDigits facet. QtXmlPatterns^=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC pattern.4Signed integer content does not match pattern facet. QtXmlPatternsh=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC maxExclusive.=Signed integer content does not match the maxExclusive facet. QtXmlPatternsh=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC maxInclusive.=Signed integer content does not match the maxInclusive facet. QtXmlPatternsh=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC minExclusive.=Signed integer content does not match the minExclusive facet. QtXmlPatternsh=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC minInclusive.=Signed integer content does not match the minInclusive facet. QtXmlPatterns`=0:>2>5 F5;>5 >BACBAB2C5B 2 D0A5B5 enumeration.>Signed integer content is not listed in the enumeration facet. QtXmlPatterns# ?@>AB>3> B8?0 %1 <>65B 1KBL B>;L:> ?@>AB>9 0B><0@=K9 107>2K9 B8?.=Simple type %1 can only have simple atomic type as base type. QtXmlPatterns@>AB>9 B8? %1 =5 <>65B =0A;54>20BL %2, B0: :0: 5ABL >3@0=8G5=85, >?@545;ONI55 53> :>=5G=K<.PSimple type %1 cannot derive from %2 as the latter defines restriction as final. QtXmlPatterns# ?@>AB>3> B8?0 %1 %2 =5 <>65B 1KBL =5?>A@54AB25==K< 107>2K< B8?><./Simple type %1 cannot have direct base type %2. QtXmlPatternsf@>AB>9 B8? %1 A>45@68B =54>?CAB8<K9 D0A5B B8?0 %2.2Simple type %1 contains not allowed facet type %2. QtXmlPatternsd54>?CAB8<>, GB>1K ?@>AB>9 B8? %1 8<5; 107>2K< %2.3Simple type %1 is not allowed to have base type %2. QtXmlPatternsV@>AB>9 B8? %1 <>65B 8<5BL B>;L:> D0A5B %2.0Simple type %1 is only allowed to have %2 facet. QtXmlPatternsV@>AB>9 B8? A>45@68B =54>?CAB8<K9 D0A5B %1.*Simple type contains not allowed facet %1. QtXmlPatternsJ#:070==K9 B8? %1 H01;>=C =5 8725AB5=.-Specified type %1 is not known to the schema. QtXmlPatterns#:070==K9 B8? %1 =5 <>65B 1KBL :>@@5:B=> 70<5IQ= M;5<5=B>< B8?0 %2.DSpecified type %1 is not validly substitutable with element type %2. QtXmlPatternsd!>45@68<>5 AB@>:8 =5 A>>B25BAB2C5B D0A5BC pattern.,String content does not match pattern facet. QtXmlPatternsb!>45@68<>5 AB@>:8 =5 A>>B25BAB2C5B D0A5BC length./String content does not match the length facet. QtXmlPatternsh!>45@68<>5 AB@>:8 =5 A>>B25BAB2C5B D0A5BC maxLength.2String content does not match the maxLength facet. QtXmlPatternsh!>45@68<>5 AB@>:8 =5 A>>B25BAB2C5B D0A5BC minLength.2String content does not match the minLength facet. QtXmlPatternsf!>45@68<>5 AB@>:8 >BACBAB2C5B 2 D0A5B5 enumeration.6String content is not listed in the enumeration facet. QtXmlPatternsP"5:AB>2K5 C7;K =54>?CAB8<K 2 MB>< <5AB5.,Text nodes are not allowed at this location. QtXmlPatterns"5:AB 8;8 AAK;:0 =0 >1J5:B =54>?CAB8<K 2 :0G5AB25 A>45@68<>3> M;5<5=B0 %17Text or entity references not allowed inside %1 element QtXmlPatternsBAL %1 =5 ?>445@68205BAO 2 XQuery$The %1-axis is unsupported in XQuery QtXmlPatterns>7<>6=>ABL 8<?>@B0 AE5< =5 ?>445@68205BAO, A;54>20B5;L=>, >1JO2;5=89 %1 1KBL =5 4>;6=>.WThe Schema Import feature is not supported, and therefore %1 declarations cannot occur. QtXmlPatterns>7<>6=>ABL ?@>25@:8 ?> AE5<5 =5 ?>445@68205BAO. K@065=8O %1 =5 <>3CB 8A?>;L7>20BLAO.VThe Schema Validation Feature is not supported. Hence, %1-expressions may not be used. QtXmlPatterns>URI =5 <>65B A>45@60BL D@03<5=BThe URI cannot have a fragment QtXmlPatternsfB@81CB %1 <>65B 1KBL B>;L:> C ?5@2>3> M;5<5=B0 %2.9The attribute %1 can only appear on the first %2 element. QtXmlPatterns|# %2 =5 <>65B 1KBL 0B@81CB0 %1, :>340 >= O2;O5BAO ?>B><:>< %3.?The attribute %1 cannot appear on %2, when it is a child of %3. QtXmlPatterns!8<2>; A :>4>< %1, ?@8ACBAB2CNI89 2 %2 ?@8 8A?>;L7>20=88 :>48@>2:8 %3, =5 O2;O5BAO 4>?CAB8<K< A8<2>;>< XML.QThe codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. QtXmlPatterns~0==K5 >1@010BK205<>9 8=AB@C:F88 =5 <>3CB A>45@60BL AB@>:C %1AThe data of a processing instruction cannot contain the string %1 QtXmlPatterns>01>@ ?> C<>;G0=8N =5 >?@545;Q=#The default collection is undefined QtXmlPatterns$<O :>48@>2:8 %1 =5:>@@5:B=>. <O :>48@>2:8 4>;6=> A>45@60BL B>;L:> A8<2>;K ;0B8=8FK 157 ?@>15;>2 8 4>;6=> C4>2;5B2>@OBL @53C;O@=><C 2K@065=8N %2.The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. QtXmlPatterns5@2K9 0@3C<5=B %1 =5 <>65B 1KBL B8?0 %2. = 4>;65= 1KBL G8A;>2>3> B8?0, B8?0 xs:yearMonthDuration 8;8 B8?0 xs:dayTimeDuration.uThe first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. QtXmlPatterns5@2K9 0@3C<5=B %1 =5 <>65B 1KBL B8?0 %2. = 4>;65= 1KBL B8?0 %3, %4 8;8 %5.PThe first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatterns&$>:CA =5 >?@545;Q=.The focus is undefined. QtXmlPatternsb=8F80;870F8O ?5@5<5==>9 %1 7028A8B >B A51O A0<>93The initialization of variable %1 depends on itself QtXmlPatternsb-;5<5=B %1 =5 A>>B25BAB2C5B =5>1E>48<><C B8?C %2./The item %1 did not match the required type %2. QtXmlPatterns;NG52>5 A;>2> %1 =5 <>65B 2AB@5G0BLAO A ;N1K< 4@C38< =0720=85< @568<0.5The keyword %1 cannot occur with any other mode name. QtXmlPatterns>A;54=OO G0ABL ?CB8 4>;6=0 A>45@60BL C7;K 8;8 0B><0@=K5 7=0G5=8O, => =5 <>65B A>45@60BL 8 B>, 8 4@C3>5 >4=>2@5<5==>.kThe last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. QtXmlPatternsZ>7<>6=>ABL 8<?>@B0 <>4C;59 =5 ?>445@68205BAO*The module import feature is not supported QtXmlPatternsd0720=85 %1 =5 A>>B25BAB2C5B =8 >4=><C B8?C AE5<K..The name %1 does not refer to any schema type. QtXmlPatterns0720=85 @0AG8BK205<>3> 0B@81CB0 =5 <>65B 8<5BL URI ?@>AB@0=AB20 8<Q= %1 A ;>:0;L=K< 8<5=5< %2.ZThe name for a computed attribute cannot have the namespace URI %1 with the local name %2. QtXmlPatterns<O ?5@5<5==>9, A2O70==>9 A 2K@065=85< for, 4>;6=> >B;8G0BLAO >B ?>78F8>==>9 ?5@5<5==>9. 25 ?5@5<5==K5 A 8<5=5< %1 :>=D;8:BCNB.The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. QtXmlPatterns|0720=85 2K@065=8O @0AH8@5=8O 4>;6=> 1KBL 2 ?@>AB@0=AB25 8<Q=.;The name of an extension expression must be in a namespace. QtXmlPatterns0720=85 >?F88 4>;6=> A>45@60BL ?@5D8:A. 5B ?@>AB@0=AB20 8<Q= ?> C<>;G0=8N 4;O >?F89.TThe name of an option must have a prefix. There is no default namespace for options. QtXmlPatternsf@>AB@0=BA2> 8<Q= %1 70@575@28@>20=>, ?>MB><C ?>;L7>20B5;LA:85 DC=:F88 =5 <>3CB 53> 8A?>;L7>20BL. >?@>1C9B5 ?@54>?@545;Q==K9 ?@5D8:A %2, :>B>@K9 ACI5AB2C5B 4;O ?>4>1=KE A8BC0F89.The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. QtXmlPatternsURI ?@>AB@0=AB20 8<Q= =5 <>65B 1KBL ?CAB>9 AB@>:>9 ?@8 A2O7K20=88 A ?@5D8:A>< %1.JThe namespace URI cannot be the empty string when binding to a prefix, %1. QtXmlPatternsURI ?@>AB@0=AB20 8<Q= 2 =0720=88 @0AAG8BK205<>3> 0B@81CB0 =5 <>65B 1KBL %1.DThe namespace URI in the name for a computed attribute cannot be %1. QtXmlPatternsURI ?@>AB@0=AB20 8<Q= 4>;65= 1KBL :>=AB0=B>9 8 =5 <>65B A>45@60BL 2K@065=89.IThe namespace URI must be a constant and cannot use enclosed expressions. QtXmlPatterns@>AB@0=AB2> 8<Q= 4;O DC=:F88 ?>;L7>20B5;O =5 <>65B 1KBL ?CABK< (?>?@>1C9B5 ?@54>?@545;Q==K9 ?@5D8:A %1, A>740==K9 4;O ?>4>1=KE A;CG052)zThe namespace for a user defined function cannot be empty (try the predefined prefix %1, which exists for cases like this) QtXmlPatterns8@>AB@0=AB2> 8<Q= ?>;L7>20B5;LA:>9 DC=:F88 2 <>4C;5 181;8>B5:8 4>;65= A>>B25BAB2>20BL ?@>AB@0=AB2C 8<Q= <>4C;O. @C38<8 A;>20<8, >= 4>;65= 1KBL %1 2<5AB> %2The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 QtXmlPatterns$>@<0 =>@<0;870F88 %1 =5 ?>445@68205BAO. >445@6820NBAO B>;L:> %2, %3, %4, %5 8 ?CAB0O, B.5. ?CAB0O AB@>:0 (157 =>@<0;870F88).The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). QtXmlPatternsv5@540= ?0@0<5B@ %1 , => A>>B25BAB2CNI53> %2 =5 ACI5AB2C5B.;The parameter %1 is passed, but no corresponding %2 exists. QtXmlPatternsv5>1E>48< ?0@0<5B@ %1 , => A>>B25BAB2CNI53> %2 =5 ?5@540=>.BThe parameter %1 is required, but no corresponding %2 is supplied. QtXmlPatterns>@5D8:A%1 =5 <>65B 1KBL A2O70=.The prefix %1 cannot be bound. QtXmlPatterns5 C40QBAO A2O70BL ?@5D8:A %1. > C<>;G0=8N ?@5D8:A A2O70= A ?@>AB@0=AB2>< 8<Q= %2.SThe prefix %1 cannot be bound. By default, it is already bound to the namespace %2. QtXmlPatternsp@5D8:A 4>;65= 1KBL :>@@5:B=K< %1, => %2 8< =5 O2;O5BAO./The prefix must be a valid %1, which %2 is not. QtXmlPatterns>@=52>9 C75; 2B>@>3> 0@3C<5=B0 DC=:F88 %1 4>;65= 1KBL 4>:C<5=B><. %2 =5 O2;O5BAO 4>:C<5=B><.gThe root node of the second argument to function %1 must be a document node. %2 is not a document node. QtXmlPatternsB>@>9 0@3C<5=B %1 =5 <>65B 1KBL B8?0 %2. = 4>;65= 1KBL B8?0 %3, %4 8;8 %5.QThe second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. QtXmlPatterns&5;52>5 8<O 2 >1@010BK205<>9 8=AB@C:F88 =5 <>65B 1KBL %1 2 ;N1>9 :><18=0F88 =86=53> 8 25@E=53> @538AB@>2. <O %2 =5:>@@5:B=>.~The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. QtXmlPatternsd&5;52>5 ?@>AB@0=AB2> 8<Q= %1 =5 <>65B 1KBL ?CABK<.-The target namespace of a %1 cannot be empty. QtXmlPatterns=0G5=85 0B@81CB0 %1 M;5<5=B0 %2 4>;6=> 1KBL 8;8 %3, 8;8 %4, => =5 %5.IThe value for attribute %1 on element %2 must either be %3 or %4, not %5. QtXmlPatterns=0G5=85 0B@81CB0 %1 4>;6=> 1KBL B8?0 %2, => %3 =5 A>>B25BAB2C5B 40==><C B8?C.=The value of attribute %1 must be of type %2, which %3 isn't. QtXmlPatterns=0G5=85 0B@81CB0 25@A88 XSL-T 4>;6=> 1KBL B8?0 %1, => %2 8< =5 O2;O5BAO.TThe value of the XSL-T version attribute must be a value of type %1, which %2 isn't. QtXmlPatterns:5@5<5==0O %1 =5 8A?>;L7C5BAOThe variable %1 is unused QtXmlPatternsz@8ACBAB2C5B >4=> 7=0G5=85 IDREF 157 A>>B25BAB2CNI53> ID: %1.6There is one IDREF value with no corresponding ID: %1. QtXmlPatterns0==K9 >1@01>BG8: =5 @01>B05B A> AE5<0<8, A;54>20B5;L=>, %1 =5 <>65B 8A?>;L7>20BLAO.CThis processor is not Schema-aware and therefore %1 cannot be used. QtXmlPatterns<@5<O %1:%2:%3.%4 =5:>@@5:B=>.Time %1:%2:%3.%4 is invalid. QtXmlPatterns@5<O 24:%1:%2.%3 =5:>@@5:B=>. 24 G0A0, => <8=CBK, A5:C=4K 8/8;8 <8;;8A5:C=4K >B;8G=K >B 0; _Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0;  QtXmlPatterns-;5<5=BK 25@E=53> C@>2=O B01;8FK AB8;59 4>;6=K 1KBL 2 ?@>AB@0=AB25 8<5=, :>B>@K< %1 =5 O2;O5BAO.NTop level stylesheet elements must be in a non-null namespace, which %1 isn't. QtXmlPatterns20 0B@81CB0 >1JO2;5=8O ?@>AB@0=AB2 8<Q= 8<5NB >48=0:>2>5 8<O: %1.?@545;Q=.Type %1 already defined. QtXmlPatternsrH81:0 B8?>2 2 ?@5>1@07>20=88, >6840;>AL %1, ?>;CG5=> %2.-Type error in cast, expected %1, received %2. QtXmlPatternsX1J548=5=85 =5 A>>B25BAB2C5B D0A5BC pattern.+Union content does not match pattern facet. QtXmlPatterns`1J548=5=85 =5 ?5@5G8A;5=> 2 D0A5B5 enumeration.5Union content is not listed in the enumeration facet. QtXmlPatterns<58725AB2=K9 0B@81CB XSL-T %1.Unknown XSL-T attribute %1. QtXmlPatternsh D0A5B5 %2 8A?>;L7C5BAO =58725AB=>5 >1>7=0G5=85 %1.%Unknown notation %1 used in %2 facet. QtXmlPatternsl577=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC totalDigits.AUnsigned integer content does not match in the totalDigits facet. QtXmlPatternsd577=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC pattern.6Unsigned integer content does not match pattern facet. QtXmlPatternsn577=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC maxExclusive.?Unsigned integer content does not match the maxExclusive facet. QtXmlPatternsn577=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC maxInclusive.?Unsigned integer content does not match the maxInclusive facet. QtXmlPatternsn577=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC minExclusive.?Unsigned integer content does not match the minExclusive facet. QtXmlPatternsn577=0:>2>5 F5;>5 =5 A>>B25BAB2C5B D0A5BC minInclusive.?Unsigned integer content does not match the minInclusive facet. QtXmlPatternsf577=0:>2>5 F5;>5 >BACBAB2C5B 2 D0A5B5 enumeration.@Unsigned integer content is not listed in the enumeration facet. QtXmlPatternsT=0G5=85 %1 B8?0 %2 1>;LH5 <0:A8<C<0 (%3).)Value %1 of type %2 exceeds maximum (%3). QtXmlPatternsR=0G5=85 %1 B8?0 %2 <5=LH5 <8=8<C<0 (%3).*Value %1 of type %2 is below minimum (%3). QtXmlPatternsl3@0=8G5=85 7=0G5=8O 0B@81CB0 %1 =5 B8?0 0B@81CB0: %2.?Value constraint of attribute %1 is not of attributes type: %2. QtXmlPatternsl3@0=8G5=85 7=0G5=8O M;5<5=B0 %1 =5 B8?0 M;5<5=B0: %2.;Value constraint of element %1 is not of elements type: %2. QtXmlPatterns84K B8?>2 M;5<5=B>2 %1 4>;6=K 1KBL 8;8 0B><0@=K<8, 8;8 >1J548=5=8O<8.:Variety of item type of %1 must be either atomic or union. QtXmlPatterns`84K 2=CB@5==8E B8?>2 %1 4>;6=K 1KBL 0B><0@=K<8.-Variety of member types of %1 must be atomic. QtXmlPatterns|5@A8O %1 =5 ?>445@68205BAO. >445@68205BAO XQuery 25@A88 1.0.AVersion %1 is not supported. The supported XQuery version is 1.0. QtXmlPatternsJ>;5 >3@0=8G5=89 B8?0 H01;>=0 W3C XML(W3C XML Schema identity constraint field QtXmlPatterns\5@5:;NG0B5;L >3@0=8G5=89 B8?0 H01;>=0 W3C XML+W3C XML Schema identity constraint selector QtXmlPatternsA;8 ?0@0<5B@ =5>1E>48<, 7=0G5=85 ?> C<>;G0=85 =5 <>65B 1KBL ?5@540=> G5@57 0B@81CB %1 8;8 :>=AB@C:B>@ ?>A;54>20B5;L=>AB8.rWhen a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. QtXmlPatternsA;8 %2 A>45@68B 0B@81CB %1, :>=AB@C:B>@ ?>A;54>20B5;L=>AB8 =5 <>65B 1KBL 8A?>;L7>20=.JWhen attribute %1 is present on %2, a sequence constructor cannot be used. QtXmlPatterns|@8 ?@5>1@07>20=88 %2 2 %1 8AE>4=>5 7=0G5=85 =5 <>65B 1KBL %3.:When casting to %1 from %2, the source value cannot be %3. QtXmlPatterns@8 ?@5>1@07>20=88 2 %1 8;8 ?@>872>4=K5 >B =53> B8?K 8AE>4=>5 7=0G5=85 4>;6=> 1KBL B>3> 65 B8?0 8;8 AB@>:>2K< ;8B5@0;><. "8? %2 =54>?CAB8<.When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. QtXmlPatternsA;8 DC=:F8O %1 8A?>;L7C5BAO 4;O A@02=5=8O 2=CB@8 H01;>=0, 0@3C<5=B 4>;65= 1KBL AAK;:>9 =0 ?5@5<5==CN 8;8 AB@>:>2K< ;8B5@0;><.vWhen function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. QtXmlPatterns!8<2>;K ?@>15;>2 C40;5=K (70 8A:;NG5=85< B5E, GB> 1K;8 2 A8<2>;0E :;0AA>2)OWhitespace characters are removed, except when they appear in character classes QtXmlPatternsP>4 %1 =525@5=, B0: :0: =0G8=05BAO A %2.-Year %1 is invalid because it begins with %2. QtXmlPatterns ?CAB>empty QtXmlPatterns@>2=> >48= exactly one QtXmlPatterns>48= 8;8 1>;55 one or more QtXmlPatternsxsi:noNamespaceSchemaLocation =5 <>65B 2AB@5G0BLAO ?>A;5 ?5@2>3> =5-`namespace` M;5<5=B0 8;8 0B@81CB0.^xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. QtXmlPatterns@>AB@0=AB2> 8<Q= xsi:schemaLocation %1 C65 2AB@5G0;>AL @0=55 2 40==>< 4>:C<5=B5.Vxsi:schemaLocation namespace %1 has already appeared earlier in the instance document. QtXmlPatterns=C;L 8;8 1>;55 zero or more QtXmlPatterns=C;L 8;8 >48= zero or one QtXmlPatterns ) , x2goclient-4.0.5.1/res/i18n/qt_sv.qm0000644000000000000000000021351412675050177013706 0ustar \+O+O8H4H|JRK LDL%PSZrǞ[`[`[\h__1?S8E(,AujUH(% h%G0&0:&0r0u0i05.5 D=! DJe+,=,}F>/F˪H5 H5=KH5JH5H5H5Pf Cf1f; fHftffl7<dN=uK ``.2&e e=eK@ y*yz*yi*y*TKo*0'*0X+Fq+F+f2+fB+z0S++i++z0++8e+C +K+r+!+į+įj&+į+0F0iG8Hw9yHw99I*I.IJ+KJ+J6J61J69sJ6=J6rNJ6tkJ6J6J6J6 J6BJ6KFLZL!L1Lb <O|1jPFEPFEsPFE0TV1V12Vl rVV!W+ WmW%WT!WTaX;=XMX˙;X7YaZgƎ\]4|7\]4\\]4S\\|^|^Dv7Pv"fRIA[;yIyɵn2Pɵn]ɵncɵnksɵn|ɵnɵn'ɵndɵnS(VFV B{{ BՕĎM;qH-<op{5{54#Q%UT~C%UTd*4Z2C^CUCeD" D1Q MaR?C>fP llѭoR+w^u|{yGW02t2.>t dPyheure "l)*-S/=N1$z1$ԥ5~O< h?N4NkyW]`49`  G1)f676qp6^SyiM=vߘŐHEE2{r8A AQ[yLC)C4n{3O>Mq3MIENEW6ww!e)i*/eȦ;x;6ByO ZfT`pcփDu($$ ](^ n,_;y&H_9/^IxS/YMNeYMWh^i%DsscvwsNFۊ19N-[]]?IIBII9<IyIIIIYi+yg;wKIWuDR]uDYo,,j,y,̉,ɘeL5$|fR 8fRHN7I c"PqUYV:YVtR &e$w%C?"mEKN3MRv_]\]bky^ {yuG%Lǥ +5+K+>t{yrS&%.%UC-K5ƨƨ͞˾ceҝz է?̶ff~bHj~bJo !ay+3//~6 GMLAUޡUUgU}UZ8ZtZZ^ne qiRiYy;lH}uç}w}w}wgtt4..(PDt'tX2ty_ 6Fnʢ5oʢWd6:doHdyddA59`TUUBw a2>6TCU]DKU|sart}wZ}$_}$ɷ}$ZAK<:7 /XELVu0T:i~95kEXU GnbDVgAUi$9x1 z*2ddUz?mMTnFbC > V d n Ki u %'   )W */- 7uY =L B T^ ] ]ݼ `]O `@ ` `n c(r dY e eH5 f1P! gn k, rD" x}1 xO ~bw # 9K I& I- I7 ;9 o   J %p*H , ,Bl +}  ˔K P& P' P X 68 :0 f  f C 4`A s sFa AAT 9 m, #-t #-t 0N,> E9 L'J L Mc\< Sa Vf9 ]$3 f)= f)DD io> m`R w7 Hd HB $E\ .@ a i  j J  JF t.u k Ӈ  ̺L -DM k kt U)Z6 <V 0Ž  R  YP  xH\ ./ 7F7 >U! >V >V >\N >g >iL >I > > >- >t DT% I+@ I. RVI RV RV S. S YU [ j7oA p/ BdT  T2 Tk Tm T e| 5 SV )dG )dn  .3! .^9 .l .M . . . . a4 aW y t  t :bZ ʜ.. +>0 0E ;ɾ PtsT Pt fe5 fe gm iFC iH i un w wA w6 w} w}z w}p OF W ^uC R X D t5r t5 s g )  T)WgT)*'~*/E(/E|/EI_ZXRu[ `a.9vɅy$~[SgfB&<D~ݖb[yr;  E"#n"#]$UY%4<%4J-v"0i)01c}1c׷2wTD 4HJd[L$.c5 c5iCyC!E{~aN`* UFN@kyPP1t2,jiz Om %1About %1MAC_APPLICATION_MENU Gm %1Hide %1MAC_APPLICATION_MENUGm vriga Hide OthersMAC_APPLICATION_MENUInstllningar &Preferences...MAC_APPLICATION_MENUAvsluta %1Quit %1MAC_APPLICATION_MENUTjnsterServicesMAC_APPLICATION_MENUVisa allaShow AllMAC_APPLICATION_MENUtkomst nekadPermission denied Phonon::MMF2%1, %2 r inte definierad%1, %2 not definedQ3Accel4Tvetydigt %1 hanteras inteAmbiguous %1 not handledQ3AccelTa bortDelete Q3DataTable FalsktFalse Q3DataTable InfogaInsert Q3DataTableSantTrue Q3DataTableUppdateraUpdate Q3DataTablep%1 Filen hittades inte. Kontrollera skvg och filnamn.+%1 File not found. Check path and filename. Q3FileDialog&Ta bort&Delete Q3FileDialog&Nej&No Q3FileDialog&OK&OK Q3FileDialog &ppna&Open Q3FileDialog&Byt namn&Rename Q3FileDialog &Spara&Save Q3FileDialog&Osorterad &Unsorted Q3FileDialog&Ja&Yes Q3FileDialogh<qt>r du sker p att du vill ta bort %1 "%2"?</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogAlla filer (*) All Files (*) Q3FileDialog Alla filer (*.*)All Files (*.*) Q3FileDialogAttribut Attributes Q3FileDialogTillbakaBack Q3FileDialog AvbrytCancel Q3FileDialog8Kopiera eller ta bort en filCopy or Move a File Q3FileDialogSkapa ny mappCreate New Folder Q3FileDialog DatumDate Q3FileDialogTa bort %1 Delete %1 Q3FileDialogDetaljvy Detail View Q3FileDialogKatalogDir Q3FileDialogKataloger Directories Q3FileDialogKatalog: Directory: Q3FileDialogFelError Q3FileDialogFilFile Q3FileDialogFil&namn: File &name: Q3FileDialogFil&typ: File &type: Q3FileDialogHitta katalogFind Directory Q3FileDialogOtillgnglig Inaccessible Q3FileDialog Listvy List View Q3FileDialogLeta &i: Look &in: Q3FileDialogNamnName Q3FileDialogNy mapp New Folder Q3FileDialogNy mapp %1 New Folder %1 Q3FileDialogNy mapp 1 New Folder 1 Q3FileDialog En katalog upptOne directory up Q3FileDialog ppnaOpen Q3FileDialog ppnaOpen  Q3FileDialog6Frhandsgranska filinnehllPreview File Contents Q3FileDialog<Frhandsgranska filinformationPreview File Info Q3FileDialogUppdat&eraR&eload Q3FileDialogSkrivskyddad Read-only Q3FileDialogLs-skriv Read-write Q3FileDialogLs: %1Read: %1 Q3FileDialogSpara somSave As Q3FileDialogVlj en katalogSelect a Directory Q3FileDialog"Visa &dolda filerShow &hidden files Q3FileDialogStorlekSize Q3FileDialogSorteraSort Q3FileDialog(Sortera efter &datum Sort by &Date Q3FileDialog&Sortera efter &namn Sort by &Name Q3FileDialog,Sortera efter &storlek Sort by &Size Q3FileDialogSpecialSpecial Q3FileDialog6Symbolisk lnk till katalogSymlink to Directory Q3FileDialog.Symbolisk lnk till filSymlink to File Q3FileDialog6Symbolisk lnk till specialSymlink to Special Q3FileDialogTypType Q3FileDialogLsskyddad Write-only Q3FileDialogSkriv: %1 Write: %1 Q3FileDialogkatalogen the directory Q3FileDialog filenthe file Q3FileDialog"symboliska lnken the symlink Q3FileDialog<Kunde inte skapa katalogen %1Could not create directory %1 Q3LocalFs(Kunde inte ppna %1Could not open %1 Q3LocalFs8Kunde inte lsa katalogen %1Could not read directory %1 Q3LocalFsXKunde inte ta bort filen eller katalogen %1%Could not remove file or directory %1 Q3LocalFsJKunde inte byta namn p %1 till %2Could not rename %1 to %2 Q3LocalFs4Kunde inte skriva till %1Could not write %1 Q3LocalFsAnpassa... Customize... Q3MainWindowRada uppLine up Q3MainWindow@tgrden stoppades av anvndarenOperation stopped by the userQ3NetworkProtocol AvbrytCancelQ3ProgressDialogVerkstllApply Q3TabDialog AvbrytCancel Q3TabDialogStandardvrdenDefaults Q3TabDialog HjlpHelp Q3TabDialogOKOK Q3TabDialog&Kopiera&Copy Q3TextEditKlistra &in&Paste Q3TextEdit&Gr om&Redo Q3TextEdit &ngra&Undo Q3TextEditTmClear Q3TextEditKlipp u&tCu&t Q3TextEditMarkera alla Select All Q3TextEdit StngClose Q3TitleBar Stnger fnstretCloses the window Q3TitleBar`Innehller kommandon fr att manipulera fnstret*Contains commands to manipulate the window Q3TitleBarVisar namnet p fnstret och innehller kontroller fr att manipulera detFDisplays the name of the window and contains controls to manipulate it Q3TitleBar4Gr fnstret till helskrmMakes the window full screen Q3TitleBarMaximeraMaximize Q3TitleBarMinimeraMinimize Q3TitleBar2Flyttar fnstret ur vgenMoves the window out of the way Q3TitleBarnterstller ett maximerat fnster tillbaka till normalt&Puts a maximized window back to normal Q3TitleBarterstll nedt Restore down Q3TitleBarterstll uppt Restore up Q3TitleBar SystemSystem Q3TitleBar Mer...More... Q3ToolBar(oknt) (unknown) Q3UrlOperatorProtokollet \"%1\" har inte std fr att kopiera eller flytta filer eller katalogerIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorxProtokollet \"%1\" har inte std fr att skapa nya kataloger;The protocol `%1' does not support creating new directories Q3UrlOperatorhProtokollet \"%1\" har inte std fr att hmta filer0The protocol `%1' does not support getting files Q3UrlOperatorpProtokollet \"%1\" har inte std fr att lista kataloger6The protocol `%1' does not support listing directories Q3UrlOperatorhProtokollet \"%1\" har inte std fr att lmna filer0The protocol `%1' does not support putting files Q3UrlOperatorProtokollet \"%1\" har inte std fr att ta bort filer eller kataloger@The protocol `%1' does not support removing files or directories Q3UrlOperatorProtokollet \"%1\" har inte std fr att byta namn p filer eller kataloger@The protocol `%1' does not support renaming files or directories Q3UrlOperator8Protokollet \"%\" stds inte"The protocol `%1' is not supported Q3UrlOperator&Avbryt&CancelQ3Wizard&Frdig&FinishQ3Wizard &Hjlp&HelpQ3Wizard&Nsta >&Next >Q3Wizard< Till&baka< &BackQ3Wizard(Anslutningen nekadesConnection refusedQAbstractSocketHTidsgrnsen fr anslutning verstegsConnection timed outQAbstractSocket(Vrden hittades inteHost not foundQAbstractSocket0Ntverket r inte nbartNetwork unreachableQAbstractSocket0Uttaget r inte anslutetSocket is not connectedQAbstractSocketHTidsgrns fr uttagstgrd verstegsSocket operation timed outQAbstractSocket&Stega uppt&Step upQAbstractSpinBoxStega &nedt Step &downQAbstractSpinBox KryssaCheckQAccessibleButton TryckPressQAccessibleButtonAvkryssaUncheckQAccessibleButtonAktiveraActivate QApplicationDAktiverar programmets huvudfnster#Activates the program's main window QApplicationVBinren \"%1\" krver Qt %2, hittade Qt %3.,Executable '%1' requires Qt %2, found Qt %3. QApplication<Inkompatibelt Qt-biblioteksfelIncompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication&Avbryt&Cancel QAxSelectCOM-&objekt: COM &Object: QAxSelectOKOK QAxSelect(Vlj ActiveX ControlSelect ActiveX Control QAxSelect KryssaCheck QCheckBox VxlaToggle QCheckBoxAvkryssaUncheck QCheckBox:&Lgg till i anpassade frger&Add to Custom Colors QColorDialog&Basfrger &Basic colors QColorDialog"&Anpassade frger&Custom colors QColorDialog &Grn:&Green: QColorDialog &Rd:&Red: QColorDialog&Mttnad:&Sat: QColorDialog&Ljushet:&Val: QColorDialogAlfa&kanal:A&lpha channel: QColorDialog Bl&:Bl&ue: QColorDialogNya&ns:Hu&e: QColorDialog StngClose QComboBox FalsktFalse QComboBox ppnaOpen QComboBoxSantTrue QComboBoxBKunde inte verkstlla transaktionUnable to commit transaction QDB2Driver$Kunde inte anslutaUnable to connect QDB2DriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QDB2DriverZKunde inte stlla in automatisk verkstllningUnable to set autocommit QDB2Driver2Kunde inte binda variabelUnable to bind variable QDB2Result2Kunde inte kra frgesatsUnable to execute statement QDB2Result.Kunde inte hmta frstaUnable to fetch first QDB2Result,Kunde inte hmta nstaUnable to fetch next QDB2Result4Kunde inte hmta posten %1Unable to fetch record %1 QDB2Result<Kunde inte frbereda frgesatsUnable to prepare statement QDB2ResultAMAM QDateTimeEditPMPM QDateTimeEditamam QDateTimeEditpmpm QDateTimeEditVad r det hr? What's This?QDialog&Avbryt&CancelQDialogButtonBox &Stng&CloseQDialogButtonBox&Nej&NoQDialogButtonBox&OK&OKQDialogButtonBox &Spara&SaveQDialogButtonBox&Ja&YesQDialogButtonBox AvbrytAbortQDialogButtonBoxVerkstllApplyQDialogButtonBox AvbrytCancelQDialogButtonBox StngCloseQDialogButtonBoxFrkastaDiscardQDialogButtonBoxSpara inte Don't SaveQDialogButtonBox HjlpHelpQDialogButtonBoxIgnoreraIgnoreQDialogButtonBoxN&ej till alla N&o to AllQDialogButtonBoxOKOKQDialogButtonBox ppnaOpenQDialogButtonBoxterstllResetQDialogButtonBox0terstll standardvrdenRestore DefaultsQDialogButtonBoxFrsk igenRetryQDialogButtonBox SparaSaveQDialogButtonBoxSpara allaSave AllQDialogButtonBoxJa till &alla Yes to &AllQDialogButtonBoxndringsdatum Date Modified QDirModelSortKind QDirModelNamnName QDirModelStorlekSize QDirModelTypType QDirModel StngClose QDockWidget MindreLessQDoubleSpinBoxMerMoreQDoubleSpinBox&OK&OK QErrorMessage6&Visa detta meddelande igen&Show this message again QErrorMessage,Felskningsmeddelande:Debug Message: QErrorMessagedesdigert fel: Fatal Error: QErrorMessageVarning:Warning: QErrorMessage%1 Katalogen hittades inte. Kontrollera att det korrekta katalognamnet angavs.K%1 Directory not found. Please verify the correct directory name was given. QFileDialog%1 Filen hittades inte. Kontrollera att det korrekta filnamnet angavs.A%1 File not found. Please verify the correct file name was given. QFileDialogJ%1 finns redan. Vill du erstta den?-%1 already exists. Do you want to replace it? QFileDialog&Ta bort&Delete QFileDialog &ppna&Open QFileDialog&Byt namn&Rename QFileDialog &Spara&Save QFileDialogd\"%1\" r skrivskyddad. Vill du ta bort den nd?9'%1' is write protected. Do you want to delete it anyway? QFileDialogAlla filer (*) All Files (*) QFileDialog Alla filer (*.*)All Files (*.*) QFileDialogTr du sker p att du vill ta bort \"%1\"?!Are sure you want to delete '%1'? QFileDialogTillbakaBack QFileDialog:Kunde inte ta bort katalogen.Could not delete directory. QFileDialogSkapa ny mappCreate New Folder QFileDialogDetaljerad vy Detail View QFileDialogKataloger Directories QFileDialogKatalog: Directory: QFileDialog EnhetDrive QFileDialogFilFile QFileDialogFil&namn: File &name: QFileDialogFiler av typen:Files of type: QFileDialogHitta katalogFind Directory QFileDialog FramtForward QFileDialog Listvy List View QFileDialogMin dator My Computer QFileDialogNy mapp New Folder QFileDialog ppnaOpen QFileDialogFrldrakatalogParent Directory QFileDialogSpara somSave As QFileDialog"Visa &dolda filerShow &hidden files QFileDialog OkntUnknown QFileDialogndringsdatum Date ModifiedQFileSystemModelSortKindQFileSystemModelMin dator My ComputerQFileSystemModelNamnNameQFileSystemModelStorlekSizeQFileSystemModelTypTypeQFileSystemModel&Typsnitt&Font QFontDialog&Storlek&Size QFontDialog&Understruken &Underline QFontDialogEffekterEffects QFontDialogT&ypsnittsstil Font st&yle QFontDialogTestSample QFontDialogVlj typsnitt Select Font QFontDialogGenomstru&ken Stri&keout QFontDialogSkr&ivsystemWr&iting System QFontDialogBByte av katalog misslyckades: %1Changing directory failed: %1QFtp(Ansluten till vrdenConnected to hostQFtp.Ansluten till vrden %1Connected to host %1QFtpPAnslutning till vrden misslyckades: %1Connecting to host failed: %1QFtp&Anslutningen stngdConnection closedQFtpLAnslutning vgrades fr dataanslutning&Connection refused for data connectionQFtpHAnslutningen till vrden %1 vgradesConnection refused to host %1QFtp:Anslutningen till %1 stngdesConnection to %1 closedQFtpPSkapandet av katalogen misslyckades: %1Creating directory failed: %1QFtpPNedladdningen av filen misslyckades: %1Downloading file failed: %1QFtp$Vrden %1 hittades Host %1 foundQFtp.Vrden %1 hittades inteHost %1 not foundQFtpVrden hittades Host foundQFtpNListning av katalogen misslyckades: %1Listing directory failed: %1QFtp8Inloggning misslyckades: %1Login failed: %1QFtpInte ansluten Not connectedQFtpTBorttagning av katalogen misslyckades: %1Removing directory failed: %1QFtpLBorttagning av filen misslyckades: %1Removing file failed: %1QFtpOknt fel Unknown errorQFtpPUppladdningen av filen misslyckades: %1Uploading file failed: %1QFtp VxlaToggle QGroupBoxOknt fel Unknown error QHostInfo(Vrden hittades inteHost not foundQHostInfoAgentOknd adresstypUnknown address typeQHostInfoAgentOknt fel Unknown errorQHostInfoAgent$Ansluten till vrdConnected to hostQHttp.Ansluten till vrden %1Connected to host %1QHttp&Anslutningen stngdConnection closedQHttp(Anslutningen nekadesConnection refusedQHttp:Anslutningen till %1 stngdesConnection to %1 closedQHttp2HTTP-begran misslyckadesHTTP request failedQHttp$Vrden %1 hittades Host %1 foundQHttp.Vrden %1 hittades inteHost %1 not foundQHttpVrden hittades Host foundQHttp2Ogiltig HTTP chunked bodyInvalid HTTP chunked bodyQHttp.Ogiltig HTTP-svarshuvudInvalid HTTP response headerQHttpLIngen server instlld att ansluta tillNo server set to connect toQHttpBegran avbrtsRequest abortedQHttpHServern stngde ovntat anslutningen%Server closed connection unexpectedlyQHttpOknt fel Unknown errorQHttp$Fel innehllslngdWrong content lengthQHttp:Kunde inte starta transaktionCould not start transaction QIBaseDriver4Fel vid ppning av databasError opening database QIBaseDriverBKunde inte verkstlla transaktionUnable to commit transaction QIBaseDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QIBaseDriver:Kunde inte allokera frgesatsCould not allocate statement QIBaseResultNKunde inte beskriva inmatningsfrgesats"Could not describe input statement QIBaseResult:Kunde inte beskriva frgesatsCould not describe statement QIBaseResult6Kunde inte hmta nsta postCould not fetch next item QIBaseResult,Kunde inte hitta kedjaCould not find array QIBaseResult.Kunde inte f kedjedataCould not get array data QIBaseResultDKunde inte g frgesatsinformationCould not get query info QIBaseResultDKunde inte f frgesatsinformationCould not get statement info QIBaseResult<Kunde inte frbereda frgesatsCould not prepare statement QIBaseResult:Kunde inte starta transaktionCould not start transaction QIBaseResult6Kunde inte stnga frgesatsUnable to close statement QIBaseResultBKunde inte verkstlla transaktionUnable to commit transaction QIBaseResult*Kunde inte skapa BLOBUnable to create BLOB QIBaseResult2Kunde inte kra frgesatsUnable to execute query QIBaseResult*Kunde inte ppna BLOBUnable to open BLOB QIBaseResult(Kunde inte lsa BLOBUnable to read BLOB QIBaseResult,Kunde inte skriva BLOBUnable to write BLOB QIBaseResult>Inget ledigt utrymme p enhetenNo space left on device QIODevice:Ingen sdan fil eller katalogNo such file or directory QIODevicetkomst nekadPermission denied QIODevice*Fr mnga ppna filerToo many open files QIODeviceOknt fel Unknown error QIODevice0Mac OS X-inmatningsmetodMac OS X input method QInputContext.Windows-inmatningsmetodWindows input method QInputContextXIMXIM QInputContext&XIM-inmatningsmetodXIM input method QInputContextOknt fel Unknown errorQLibrary&Kopiera&Copy QLineEditKlistra &in&Paste QLineEdit&Gr om&Redo QLineEdit &ngra&Undo QLineEditKlipp &utCu&t QLineEditTa bortDelete QLineEditMarkera alla Select All QLineEdit<Kunde inte pbrja transaktionUnable to begin transaction QMYSQLDriverBKunde inte verkstlla transaktionUnable to commit transaction QMYSQLDriver$Kunde inte anslutaUnable to connect QMYSQLDriver:Kunde inte ppna databasen \"Unable to open database ' QMYSQLDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QMYSQLDriver2Kunde inte binda utvrdenUnable to bind outvalues QMYSQLResult,Kunde inte binda vrdeUnable to bind value QMYSQLResult2Kunde inte kra frgesatsUnable to execute query QMYSQLResult2Kunde inte kra frgesatsUnable to execute statement QMYSQLResult*Kunde inte hmta dataUnable to fetch data QMYSQLResult<Kunde inte frbereda frgesatsUnable to prepare statement QMYSQLResult>Kunde inte terstlla frgesatsUnable to reset statement QMYSQLResult2Kunde inte lagra resultatUnable to store result QMYSQLResultPKunde inte lagra resultat frn frgesats!Unable to store statement results QMYSQLResult%1 - [%2] %1 - [%2] QMdiSubWindow &Stng&Close QMdiSubWindow&Flytta&Move QMdiSubWindowte&rstll&Restore QMdiSubWindow&Storlek&Size QMdiSubWindow StngClose QMdiSubWindow HjlpHelp QMdiSubWindowMa&ximera Ma&ximize QMdiSubWindowMaximeraMaximize QMdiSubWindowMenyMenu QMdiSubWindowMi&nimera Mi&nimize QMdiSubWindowMinimeraMinimize QMdiSubWindowterstll nedt Restore Down QMdiSubWindow&Stanna kvar vers&t Stay on &Top QMdiSubWindow StngCloseQMenuKrExecuteQMenu ppnaOpenQMenu Om QtAbout Qt QMessageBox HjlpHelp QMessageBox Dlj detaljer,,,Hide Details... QMessageBoxOKOK QMessageBox Visa detaljer...Show Details... QMessageBox(Vlj inmatningsmetod Select IMQMultiInputContextFVxlare fr flera inmatningsmetoderMultiple input method switcherQMultiInputContextPluginVxlare fr flera inmatningsmetoder som anvnder sammanhangsmenyn fr textwidgarMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPluginVEtt annat uttag lyssnar redan p samma port4Another socket is already listening on the same portQNativeSocketEngineFrsk att anvnda IPv6-uttag p en plattform som saknar IPv6-std=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine*Anslutningen vgradesConnection refusedQNativeSocketEngineHTidsgrnsen fr anslutning verstegsConnection timed outQNativeSocketEngineHDatagram fr fr stor fr att skickaDatagram was too large to sendQNativeSocketEngine(Vrden r inte nbarHost unreachableQNativeSocketEngine0Ogiltig uttagsbeskrivareInvalid socket descriptorQNativeSocketEngineNtverksfel Network errorQNativeSocketEngineLTidsgrns fr ntverkstgrd verstegsNetwork operation timed outQNativeSocketEngine0Ntverket r inte nbartNetwork unreachableQNativeSocketEngine(tgrd p icke-uttagOperation on non-socketQNativeSocketEngine Slut p resurserOut of resourcesQNativeSocketEnginetkomst nekadPermission deniedQNativeSocketEngine2Protokolltypen stds inteProtocol type not supportedQNativeSocketEngine8Adressen r inte tillgngligThe address is not availableQNativeSocketEngine&Adressen r skyddadThe address is protectedQNativeSocketEngine:Bindningsadress anvnds redan#The bound address is already in useQNativeSocketEngine@Fjrrvrden stngde anslutningen%The remote host closed the connectionQNativeSocketEngineNKunde inte initiera uttag fr broadcast%Unable to initialize broadcast socketQNativeSocketEngineTKunde inte initiera icke-blockerande uttag(Unable to initialize non-blocking socketQNativeSocketEngineBKunde inte ta emot ett meddelandeUnable to receive a messageQNativeSocketEngine@Kunde inte skicka ett meddelandeUnable to send a messageQNativeSocketEngine"Kunde inte skrivaUnable to writeQNativeSocketEngineOknt fel Unknown errorQNativeSocketEngine2Uttagstgrden stds inteUnsupported socket operationQNativeSocketEngine<Kunde inte pbrja transaktionUnable to begin transaction QOCIDriverBKunde inte verkstlla transaktionUnable to commit transaction QOCIDriver&Kunde inte logga inUnable to logon QOCIDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QOCIDriver:Kunde inte allokera frgesatsUnable to alloc statement QOCIResultNKunde inte binda kolumn fr satskrning'Unable to bind column for batch execute QOCIResult,Kunde inte binda vrdeUnable to bind value QOCIResult2Kunde inte kra satsfrga!Unable to execute batch statement QOCIResult2Kunde inte kra frgesatsUnable to execute statement QOCIResult0Kunde inte g till nstaUnable to goto next QOCIResult<Kunde inte frbereda frgesatsUnable to prepare statement QOCIResultBKunde inte verkstlla transaktionUnable to commit transaction QODBCDriver$Kunde inte anslutaUnable to connect QODBCDriver\Kunde inte inaktivera automatisk verkstllningUnable to disable autocommit QODBCDriverXKunde inte aktivera automatisk verkstllningUnable to enable autocommit QODBCDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QODBCDriverQODBCResult::reset: Kunde inte stlla in \"SQL_CURSOR_STATIC\" som frgesatsattribut. Kontrollera konfigurationen fr din ODBC-drivrutinyQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult2Kunde inte binda variabelUnable to bind variable QODBCResult2Kunde inte kra frgesatsUnable to execute statement QODBCResult.Kunde inte hmta frstaUnable to fetch first QODBCResult,Kunde inte hmta nstaUnable to fetch next QODBCResult<Kunde inte frbereda frgesatsUnable to prepare statement QODBCResultHomeHomeQObject(Vrden hittades inteHost not foundQObjectNamnNameQPPDOptionsModel VrdeValueQPPDOptionsModel<Kunde inte pbrja transaktionCould not begin transaction QPSQLDriverBKunde inte verkstlla transaktionCould not commit transaction QPSQLDriverJKunde inte rulla tillbaka transaktionCould not rollback transaction QPSQLDriver$Kunde inte anslutaUnable to connect QPSQLDriver,Kunde inte skapa frgaUnable to create query QPSQLResult<Kunde inte frbereda frgesatsUnable to prepare statement QPSQLResultLiggande LandscapeQPageSetupWidgetSidstorlek: Page size:QPageSetupWidgetPappersklla: Paper source:QPageSetupWidgetStendePortraitQPageSetupWidgetOknt fel Unknown error QPluginLoaderR%1 finns redan. Vill du skriva ver den?/%1 already exists. Do you want to overwrite it? QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogDA4 (210 x 297 mm, 8.26 x 11.7 tum)%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialogAlias: %1 Aliases: %1 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogDB5 (176 x 250 mm, 6.93 x 9.84 tum)%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogLExecutive (7.5 x 10 tum, 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialogfFilen %1 r inte skrivbar. Vlj ett annat filnamn.=File %1 is not writable. Please choose a different file name. QPrintDialog(Folio (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialogDLegal (8.5 x 14 tum, 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialogFLetter (8.5 x 11 tum, 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialogOKOK QPrintDialogSkriv utPrint QPrintDialog*Skriv ut till fil ...Print To File ... QPrintDialogSkriv ut alla Print all QPrintDialog$Skriv ut intervall Print range QPrintDialog,Tabloid (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogJUS Common #10 Envelope (105 x 241 mm)%US Common #10 Envelope (105 x 241 mm) QPrintDialoglokalt anslutenlocally connected QPrintDialog okntunknown QPrintDialog StngCloseQPrintPreviewDialogLiggande LandscapeQPrintPreviewDialogStendePortraitQPrintPreviewDialogSorteraCollateQPrintSettingsOutput KopiorCopiesQPrintSettingsOutputSidor frn Pages fromQPrintSettingsOutputSkriv ut alla Print allQPrintSettingsOutput$Skriv ut intervall Print rangeQPrintSettingsOutputVal SelectionQPrintSettingsOutputtilltoQPrintSettingsOutputSkrivarePrinter QPrintWidget AvbrytCancelQProgressDialog ppnaOpen QPushButton KryssaCheck QRadioButton4felaktig teckenklasssyntaxbad char class syntaxQRegExp.felaktig seframtsyntaxbad lookahead syntaxQRegExp4felaktig upprepningssyntaxbad repetition syntaxQRegExp8inaktiverad funktion anvndsdisabled feature usedQRegExp*ogiltigt oktalt vrdeinvalid octal valueQRegExp$ndde intern grnsmet internal limitQRegExp2saknar vnster avgrnsaremissing left delimQRegExp&inga fel intrffadeno error occurredQRegExpovntat slutunexpected endQRegExp4Fel vid ppning av databasError opening databaseQSQLite2Driver<Kunde inte pbrja transaktionUnable to begin transactionQSQLite2DriverBKunde inte verkstlla transaktionUnable to commit transactionQSQLite2DriverJKunde inte rulla tillbaka transaktionUnable to rollback transactionQSQLite2Driver2Kunde inte kra frgesatsUnable to execute statementQSQLite2Result2Kunde inte hmta resultatUnable to fetch resultsQSQLite2Result8Fel vid stngning av databasError closing database QSQLiteDriver4Fel vid ppning av databasError opening database QSQLiteDriver<Kunde inte pbrja transaktionUnable to begin transaction QSQLiteDriverBKunde inte verkstlla transaktionUnable to commit transaction QSQLiteDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QSQLiteDriver6Parameterantal stmmer inteParameter count mismatch QSQLiteResult6Kunde inte binda parametrarUnable to bind parameters QSQLiteResult2Kunde inte kra frgesatsUnable to execute statement QSQLiteResult(Kunde inte hmta radUnable to fetch row QSQLiteResult>Kunde inte terstlla frgesatsUnable to reset statement QSQLiteResult StngCloseQScriptDebuggerCodeFinderWidgetNamnNameQScriptDebuggerLocalsModel VrdeValueQScriptDebuggerLocalsModelNamnNameQScriptDebuggerStackModelSkSearchQScriptEngineDebugger StngCloseQScriptNewBreakpointWidgetNederkantBottom QScrollBarVnsterkant Left edge QScrollBarRad nedt Line down QScrollBarRada uppLine up QScrollBarSida nedt Page down QScrollBarSida vnster Page left QScrollBarSida hger Page right QScrollBarSida upptPage up QScrollBarPositionPosition QScrollBarHgerkant Right edge QScrollBarRulla nedt Scroll down QScrollBarRulla hr Scroll here QScrollBarRulla vnster Scroll left QScrollBarRulla hger Scroll right QScrollBarRulla uppt Scroll up QScrollBarverkantTop QScrollBar++ QShortcutAltAlt QShortcut BaktBack QShortcutBacksteg Backspace QShortcutBacktabBacktab QShortcutFrstrk bas Bass Boost QShortcutSnk bas Bass Down QShortcutHj basBass Up QShortcutRing uppCall QShortcutCaps Lock Caps Lock QShortcutCapsLockCapsLock QShortcutTmClear QShortcut StngClose QShortcutSammanhang1Context1 QShortcutSammanhang2Context2 QShortcutSammanhang3Context3 QShortcutSammanhang4Context4 QShortcutCtrlCtrl QShortcutDelDel QShortcut DeleteDelete QShortcutNedDown QShortcutEndEnd QShortcut EnterEnter QShortcutEscEsc QShortcut EscapeEscape QShortcutF%1F%1 QShortcutFavoriter Favorites QShortcutVndFlip QShortcut FramtForward QShortcutLgg pHangup QShortcut HjlpHelp QShortcutHomeHome QShortcutHemsida Home Page QShortcutInsIns QShortcut InsertInsert QShortcutStarta (0) Launch (0) QShortcutStarta (1) Launch (1) QShortcutStarta (2) Launch (2) QShortcutStarta (3) Launch (3) QShortcutStarta (4) Launch (4) QShortcutStarta (5) Launch (5) QShortcutStarta (6) Launch (6) QShortcutStarta (7) Launch (7) QShortcutStarta (8) Launch (8) QShortcutStarta (9) Launch (9) QShortcutStarta (A) Launch (A) QShortcutStarta (B) Launch (B) QShortcutStarta (C) Launch (C) QShortcutStarta (D) Launch (D) QShortcutStarta (E) Launch (E) QShortcutStarta (F) Launch (F) QShortcutStarta e-post Launch Mail QShortcutStarta media Launch Media QShortcutVnsterLeft QShortcutMedia nsta Media Next QShortcutMedia spela upp Media Play QShortcut Media fregendeMedia Previous QShortcutMedia spela in Media Record QShortcutMedia stopp Media Stop QShortcutMenyMenu QShortcutMetaMeta QShortcutNejNo QShortcutNum LockNum Lock QShortcutNumLockNumLock QShortcutNumber Lock Number Lock QShortcutppna urlOpen URL QShortcutPage Down Page Down QShortcutPage UpPage Up QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut PrintPrint QShortcutPrint Screen Print Screen QShortcutUppdateraRefresh QShortcut ReturnReturn QShortcut HgerRight QShortcut SparaSave QShortcutScroll Lock Scroll Lock QShortcutScrollLock ScrollLock QShortcutSkSearch QShortcutVljSelect QShortcut ShiftShift QShortcutMellanslagSpace QShortcutAvvaktaStandby QShortcut StoppaStop QShortcut SysReqSysReq QShortcutSystem RequestSystem Request QShortcutTabTab QShortcutSnk diskant Treble Down QShortcutHj diskant Treble Up QShortcutUppUp QShortcutSnk volym Volume Down QShortcutVolym tyst Volume Mute QShortcutHj volym Volume Up QShortcutJaYes QShortcutSida nedt Page downQSliderSida vnster Page leftQSliderSida hger Page rightQSliderSida upptPage upQSliderPositionPositionQSliderLTidsgrns fr ntverkstgrd verstegsNetwork operation timed outQSocks5SocketEngine AvbrytCancelQSoftKeyManagerOKOKQSoftKeyManagerVljSelectQSoftKeyManager MindreLessQSpinBoxMerMoreQSpinBox AvbrytCancelQSql2Avbryt dina redigeringar?Cancel your edits?QSqlBekrftaConfirmQSqlTa bortDeleteQSql&Ta bort denna post?Delete this record?QSql InfogaInsertQSqlNejNoQSql&Spara redigeringar? Save edits?QSqlUppdateraUpdateQSqlJaYesQSqlOknt fel Unknown error QSslSocketOknt fel Unknown error QStateMachine4Fel vid ppning av databasError opening database QSymSQLDriver<Kunde inte pbrja transaktionUnable to begin transaction QSymSQLDriverBKunde inte verkstlla transaktionUnable to commit transaction QSymSQLDriverJKunde inte rulla tillbaka transaktionUnable to rollback transaction QSymSQLDriver6Parameterantal stmmer inteParameter count mismatch QSymSQLResult6Kunde inte binda parametrarUnable to bind parameters QSymSQLResult2Kunde inte kra frgesatsUnable to execute statement QSymSQLResult(Kunde inte hmta radUnable to fetch row QSymSQLResult>Kunde inte terstlla frgesatsUnable to reset statement QSymSQLResultVEtt annat uttag lyssnar redan p samma port4Another socket is already listening on the same portQSymbianSocketEngineFrsk att anvnda IPv6-uttag p en plattform som saknar IPv6-std=Attempt to use IPv6 socket on a platform with no IPv6 supportQSymbianSocketEngineHTidsgrnsen fr anslutning verstegsConnection timed outQSymbianSocketEngineHDatagram fr fr stor fr att skickaDatagram was too large to sendQSymbianSocketEngine(Vrden r inte nbarHost unreachableQSymbianSocketEngine0Ogiltig uttagsbeskrivareInvalid socket descriptorQSymbianSocketEngineNtverksfel Network errorQSymbianSocketEngineLTidsgrns fr ntverkstgrd verstegsNetwork operation timed outQSymbianSocketEngine0Ntverket r inte nbartNetwork unreachableQSymbianSocketEngine(tgrd p icke-uttagOperation on non-socketQSymbianSocketEngine Slut p resurserOut of resourcesQSymbianSocketEnginetkomst nekadPermission deniedQSymbianSocketEngine2Protokolltypen stds inteProtocol type not supportedQSymbianSocketEngine8Adressen r inte tillgngligThe address is not availableQSymbianSocketEngine&Adressen r skyddadThe address is protectedQSymbianSocketEngine:Bindningsadress anvnds redan#The bound address is already in useQSymbianSocketEngine@Fjrrvrden stngde anslutningen%The remote host closed the connectionQSymbianSocketEngineNKunde inte initiera uttag fr broadcast%Unable to initialize broadcast socketQSymbianSocketEngineTKunde inte initiera icke-blockerande uttag(Unable to initialize non-blocking socketQSymbianSocketEngineBKunde inte ta emot ett meddelandeUnable to receive a messageQSymbianSocketEngine@Kunde inte skicka ett meddelandeUnable to send a messageQSymbianSocketEngine"Kunde inte skrivaUnable to writeQSymbianSocketEngineOknt fel Unknown errorQSymbianSocketEngine2Uttagstgrden stds inteUnsupported socket operationQSymbianSocketEngine6Kunde inte ppna anslutningUnable to open connection QTDSDriver8Kunde inte anvnda databasenUnable to use database QTDSDriverAktiveraActivateQTabBar StngCloseQTabBar TryckPressQTabBarRulla vnster Scroll LeftQTabBarRulla hger Scroll RightQTabBar&Kopiera&Copy QTextControlKlistra &in&Paste QTextControl&Gr om&Redo QTextControl &ngra&Undo QTextControl$Kopiera &lnkplatsCopy &Link Location QTextControlKlipp u&tCu&t QTextControlTa bortDelete QTextControlMarkera alla Select All QTextControl ppnaOpen QToolButton TryckPress QToolButtonHDenna plattform saknar std fr IPv6#This platform does not support IPv6 QUdpSocket Gr omDefault text for redo actionRedo QUndoGroup ngraDefault text for undo actionUndo QUndoGroup <tom> QUndoModel Gr omDefault text for redo actionRedo QUndoStack ngraDefault text for undo actionUndo QUndoStack:Infoga unicode-kontrolltecken Insert Unicode control characterQUnicodeControlCharacterMenu U+202A$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenu U+200ELRM Left-to-right markQUnicodeControlCharacterMenu U+202D#LRO Start of left-to-right overrideQUnicodeControlCharacterMenu U+202CPDF Pop directional formattingQUnicodeControlCharacterMenu U+202B$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenu U+200FRLM Right-to-left markQUnicodeControlCharacterMenu U+202E#RLO Start of right-to-left overrideQUnicodeControlCharacterMenu U+200DZWJ Zero width joinerQUnicodeControlCharacterMenu U+200CZWNJ Zero width non-joinerQUnicodeControlCharacterMenu U+200BZWSP Zero width spaceQUnicodeControlCharacterMenuNederkantBottomQWebPageIgnoreraIgnoreQWebPageIgnorera Ignore Grammar context menu itemIgnoreQWebPageVnsterkant Left edgeQWebPageSida nedt Page downQWebPageSida vnster Page leftQWebPageSida hger Page rightQWebPageSida upptPage upQWebPage PausePauseQWebPageterstllResetQWebPageHgerkant Right edgeQWebPageRulla nedt Scroll downQWebPageRulla hr Scroll hereQWebPageRulla vnster Scroll leftQWebPageRulla hger Scroll rightQWebPageRulla uppt Scroll upQWebPageMarkera alla Select AllQWebPage StoppaStopQWebPageverkantTopQWebPage OkntUnknownQWebPageVad r det hr? What's This?QWhatsThisAction**QWidget&Frdig&FinishQWizard &Hjlp&HelpQWizard&Nsta >&Next >QWizard< Till&baka< &BackQWizard AvbrytCancelQWizard HjlpHelpQWizard%1 - [%2] %1 - [%2] QWorkspace &Stng&Close QWorkspace&Flytta&Move QWorkspacete&rstll&Restore QWorkspace&Storlek&Size QWorkspaceA&vskugga&Unshade QWorkspace StngClose QWorkspaceMa&ximera Ma&ximize QWorkspaceMi&nimera Mi&nimize QWorkspaceMinimeraMinimize QWorkspaceterstll nedt Restore Down QWorkspaceSkugg&aSh&ade QWorkspace&Stanna kvar vers&t Stay on &Top QWorkspacekodningsdeklarering eller fristende deklarering frvntades vid lsning av XML-deklareringenYencoding declaration or standalone declaration expected while reading the XML declarationQXmlXfel i textdeklareringen av en extern entitet3error in the text declaration of an external entityQXmlPfel intrffade vid tolkning av kommentar$error occurred while parsing commentQXmlNfel intrffade vid tolkning av innehll$error occurred while parsing contentQXmljfel intrffade vid tolkning av dokumenttypsdefinition5error occurred while parsing document type definitionQXmlLfel intrffade vid tolkning av element$error occurred while parsing elementQXmlNfel intrffade vid tolkning av referens&error occurred while parsing referenceQXml2fel utlstes av konsumenterror triggered by consumerQXmlpextern tolkad allmn entitetsreferens tillts inte i DTD;external parsed general entity reference not allowed in DTDQXmlextern tolkad allmn entitetsreferens tillts inte i attributvrdeGexternal parsed general entity reference not allowed in attribute valueQXmlbintern allmn entitetsreferens tillts inte i DTD4internal general entity reference not allowed in DTDQXmlPogiltigt namn fr behandlingsinstruktion'invalid name for processing instructionQXml&bokstav frvntadesletter is expectedQXmlBfler n en dokumenttypsdefinition&more than one document type definitionQXml&inga fel intrffadeno error occurredQXml&rekursiva entiteterrecursive entitiesQXmlfristende deklarering frvntades vid lsning av XML-deklareringAstandalone declaration expected while reading the XML declarationQXml"tagg stmmer inte tag mismatchQXmlovntat teckenunexpected characterQXml*ovntat slut p filenunexpected end of fileQXmlRotolkad entitetsreferens i fel sammanhang*unparsed entity reference in wrong contextQXmlhversion frvntades vid lsning av XML-deklareringen2version expected while reading the XML declarationQXmlHfel vrde fr fristende deklarering&wrong value for standalone declarationQXmlVljSelectQmlJSDebugger::QmlToolBarx2goclient-4.0.5.1/res/i18n/qt_zh_tw.qm0000644000000000000000000035130112675050177014406 0ustar j H+</FpV55#Qx%UT%UT#(ŎI`*4-ct0-ct25vF5OeZf\c`|bRcփf6g&4jCI'mnvqqm%tuu(M{>}kaQ^z~2\W$y,St$[$-*MQŧ+E(ʁr>^.#K ֊/ nz,h_ ;yO-_!A&nWD7^v]=&Hg.1%/gl?KIxS,M"VR>:YMUYM\^^h^!yi$sscs<1wЖV xL/^}2LYۊ.at<N+.]?]~IIImI8:IIMII$IY%iWy߉+]ޏIQ߻uDXuD__D%o, r,t,Ό,7,$,]Gl>5HRrɘe5$fR5fRFG>EeS_NFNc#QSPOPqZZV9pV'fRAx ݟ N   ke$%C!&~Os&B)2oc)G1*4Y+,Q?"z*?>u"KNM؀RV|P|]fG]jgOkuy^{y5tW5tbFGd::ΞbPG%TxnIصYǥ(a++,+;t {y!;RNxARra9\QVsQ!PϾ%,p%Z{U3C-59C^_ƨ ƨ˾jKqҝzi"է?GZ>9z?Kߺ>ff#mo^! 0$|\~bFj~bK+ooMn!i%)ў^+u^+3C,8?/ /&14~B6 1? 2#qAD1GULGbJRLAUIOrPѧ8Q^SnTU ;UlUUUTeZZZCZo[[%E]k*F:]F^n,_pRehiXi_kQ9oN5my;y{9{}u}wх}w}w}I8@+mnrlBv*ttk.ѳ.3?PǑiUD*{Yut&t]tt@2-nO_ +!iF{CiXʢ3ʢƴd4|d{ddmd5059hэ+cBNS'UUdB.h'wp 2d  h'V+`,D/C02=42n6Y7D:~?;hCU]ND.INI^J0KUKU|@V7[p\arˉt'wX|(^||1}wZ}$T}$}$ϗbZĎVNkDb}L>ekNqK<9f+,·/·,·ýBlc׳m J/^g=U4ET=HtX,vu%5JT>n e~]i~D9i9%wb>k#%5'-...7W5kEȤ=1=Z=?u3?xCtIMP\V%ZV%[tXU EpZt`G`N(bDbGofd ogA,hINi$x1 oz*2M|QRdJwyU(.z>c.aA1|wr!%XXmU ^@e<n_$Y.b!†5!iLsC;ʴ5~ʴ5&wʶb^ dԄ)۔#D)u'Nxd,aF5F5?Ypc+>I4IEAsL 42 }$| qe[ ڤ ڤ ڥ d, Ezq E  Ac* AcG  35: 35s  b bb? b` b` gUv i3$/ lai lf1 u xq2U |o` | | Jú t tG .5  ms )Zo F>< ? & / H r Bq ҉w >v > k g k" { nw N}  Y+ K  f 팤 l~L %' = /A =1 qQ  }[ o> G ) */ .>w 5l 7u- ;q, =T B BnRP J": K2 Rۮ0c Ty T^خ Uj4t ] ]@ `f ` ` `8 bvM b c(# cE d e eF e{ f1V f* g5U gn-a k, rD" t>y :- f  f B 4hQ .R da s sD AAY 9 8 9}?  m,6 #-t #-tH 0N*U 5 A CUSJ E9 I_ L L& L$ Mc\;5 RkZ Sin Vl9 W ]$2 f) f)C f= io>/ m`! w xR? yr6 >_}   H s HA ( nQ $C .@,  i9  ) t? ) h % J8 JD 3w t.| k- Ӈ M  N>p ̺T & -DT .r ۷ c>V rZ kң k U)` 0 < 0 ' 0 }  z+  XN  _* IN %S N|3 f xHb x? .- 7F-* >Z* >[ >[ >bL >m9 >r > > > > > ?t| x DT I) I, P@ RVH, RV#I RVx S. SGr S Y& Y [ hۮM j7o@ p-O v C Bj / T2_ Ty] TZ T>  k 3 ^ NW / S[ )d{ )d Tw&  ;> .2 .g! .y . .2 .ʬ .̰ .   a a y I {> e.OG hN{ >f/ ҂4m u % u " H | x ! Xt( n 9 t a Mu :b`W UqT  ʜ+  j #$X #=G %n| (I$; (N@ +>.^ +k: 0E+ 64Ք ;ɾ Fg K9m Pt Pt'o T>_ W U dBs feh fe g iFCW iE iܬ jӮ kGn m9 n7 u u v z v& v{] w w` w# w}$ w} w}Q |[; VY \ Jd# ^ }q R P"  xN Uv ɰe% F 7 X &;D   D G- +5 t5 t5'9 Q n > / ' ) &  RUwo @ashT'%oP,gT(1E;*&O*$/E';/E/EI_`KOOvXRu XD[ [ ) a.9 a.@gcinyG:vɅ=y$ɔ~a>T;y4&y'N4 Sl^ǗA0:B%7 aDurtoݖ[yk^Url  DGClD95"#."#a$U%4;w%4J-v 0i)0B1cr1c2wTx<an<(jD!HJdaKL$.*Woc5c5g3iCmhRpyC"l{~a6$&& {u`n`:[2>a6DT>b N@  E"~Lrr'~r]kyCLniHB-Pt2*xdMU ioܕR Close Tab CloseButton e %1About %1MAC_APPLICATION_MENU%1Hide %1MAC_APPLICATION_MENUQvN Hide OthersMAC_APPLICATION_MENU POY}-["Preferences...MAC_APPLICATION_MENU }Pg_ %1Quit %1MAC_APPLICATION_MENUg RServicesMAC_APPLICATION_MENUoy:QhShow AllMAC_APPLICATION_MENURn AccessibilityPhonon::  CommunicationPhonon::Jb2GamesPhonon::jMusicPhonon::w NotificationsPhonon::_qPVideoPhonon::l<html>eHde>n <b>%1</b> ]SOu( Vpg Q*QHk Vkd\RcR0rn0</html>xSwitching to the audio playback device %1
which just became available and has higher preference.Phonon::AudioOutputr<html>eHde>n <b>%1</b> g*KO\0<br/>e9u(-n <b>%2</b>0</html>^The audio playback device %1 does not work.
Falling back to %2.Phonon::AudioOutputV_R0n %1Revert back to device '%1'Phonon::AudioOutputdfTJ`Slg [ GStreamer Ycz _0 b@g eH_qPe/c\ܕ0~Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabledPhonon::Gstreamer::BackendzfTJ`Slg [ gstreamer0.10-plugins-good0 g N_qPvR\ܕ0Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.Phonon::Gstreamer::BackendkdQg[%0`A required codec is missing. You need to install the following codec(s) to play this content: %0Phonon::Gstreamer::MediaObjectq!lՉxZOn0Could not decode media source.Phonon::Gstreamer::MediaObjectq!l[OMZOn0Could not locate media source.Phonon::Gstreamer::MediaObject"q!lՕU_eHn0n]W(Ou(N-0:Could not open audio device. The device is already in use.Phonon::Gstreamer::MediaObjectq!lՕU_ZOn0Could not open media source.Phonon::Gstreamer::MediaObjectN TlvOnWaK0Invalid source type.Phonon::Gstreamer::MediaObjectk PN Permission denied Phonon::MMF\MutedPhonon::VolumeSlider %1% Volume: %1%Phonon::VolumeSlider%1 %2 g*[%1, %2 not definedQ3AccelN fxv %1 \g*UtAmbiguous %1 not handledQ3AccelR*dDelete Q3DataTablePGFalse Q3DataTablecQeInsert Q3DataTablewTrue Q3DataTablefeUpdate Q3DataTable&%1 b~N R0jhH0 jg_jT 0+%1 File not found. Check path and filename. Q3FileDialog R*d(&D)&Delete Q3FileDialog T&(&N)&No Q3FileDialog x[(&O)&OK Q3FileDialog U_(&O)&Open Q3FileDialogeT}T (&R)&Rename Q3FileDialog Q2[X(&S)&Save Q3FileDialogg*c^(&U) &Unsorted Q3FileDialog f/(&Y)&Yes Q3FileDialog4<qt>`x[R*d %1 "%2" U</qt>1Are you sure you wish to delete %1 "%2"? Q3FileDialogb@g jhH (*) All Files (*) Q3FileDialogb@g jhH (*.*)All Files (*.*) Q3FileDialog\l`' Attributes Q3FileDialogVBack Q3FileDialogSmCancel Q3FileDialogbyRjhHCopy or Move a File Q3FileDialog ^zeeY>Create New Folder Q3FileDialogegDate Q3FileDialog R*d %1 Delete %1 Q3FileDialogs}0j Detail View Q3FileDialogvDir Q3FileDialogv Directories Q3FileDialogv Directory: Q3FileDialog/Error Q3FileDialogjhHFile Q3FileDialogjT (&N) File &name: Q3FileDialogjhHWaK(&T) File &type: Q3FileDialog\ b~vFind Directory Q3FileDialogq!l[XS Inaccessible Q3FileDialogRhj List View Q3FileDialog\ b~e(&I) Look &in: Q3FileDialogT z1Name Q3FileDialogeeY> New Folder Q3FileDialogeeY> %1 New Folder %1 Q3FileDialog eeY> 1 New Folder 1 Q3FileDialog _N N\dvOne directory up Q3FileDialogU_Open Q3FileDialogU_ Open  Q3FileDialog jhHQg[Preview File Contents Q3FileDialog jhHNJ Preview File Info Q3FileDialoge Qe(&E)R&eload Q3FileDialogU/ Read-only Q3FileDialogS[ Read-write Q3FileDialog S%1Read: %1 Q3FileDialogS[XejSave As Q3FileDialogːxdNP vSelect a Directory Q3FileDialogoy:j(&H)Show &hidden files Q3FileDialogY'\Size Q3FileDialogc^Sort Q3FileDialogOegc^(&D) Sort by &Date Q3FileDialogOT z1c^(&N) Sort by &Name Q3FileDialogOY'\c^(&S) Sort by &Size Q3FileDialogryk{Special Q3FileDialogR0vv{&_#}PSymlink to Directory Q3FileDialogR0jhHv{&_#}PSymlink to File Q3FileDialogR0ryk{v{&_#}PSymlink to Special Q3FileDialogWaKType Q3FileDialogU/[ Write-only Q3FileDialog [Qe%1 Write: %1 Q3FileDialogkdv the directory Q3FileDialogkdjhHthe file Q3FileDialog kd{&_#}P the symlink Q3FileDialogq!l^zv %1Could not create directory %1 Q3LocalFsq!lՕU_ %1Could not open %1 Q3LocalFsq!lՋSv %1Could not read directory %1 Q3LocalFsq!lydv %1%Could not remove file or directory %1 Q3LocalFsq!l\ %1 eT}T p %2Could not rename %1 to %2 Q3LocalFsq!l[Qe %1Could not write %1 Q3LocalFs ... Customize... Q3MainWindowcRLine up Q3MainWindowOu(]N-kbdO\Operation stopped by the userQ3NetworkProtocolSmCancelQ3ProgressDialogYWu(Apply Q3TabDialogSmCancel Q3TabDialog-Defaults Q3TabDialogfHelp Q3TabDialogx[OK Q3TabDialog (&C)&Copy Q3TextEdit N (&P)&Paste Q3TextEdit PZ(&R)&Redo Q3TextEdit _S(&U)&Undo Q3TextEditndClear Q3TextEdit RjN (&T)Cu&t Q3TextEditQhxd Select All Q3TextEditܕClose Q3TitleBarܕzCloses the window Q3TitleBarST+dO\kdzvcN*Contains commands to manipulate the window Q3TitleBar$oy:zT z1 N&ST+dO\[vcR6QCNFDisplays the name of the window and contains controls to manipulate it Q3TitleBar\ze>Y'R0QhukbMakes the window full screen Q3TitleBargY'SMaximize Q3TitleBarg\SMinimize Q3TitleBar bzyMoves the window out of the way Q3TitleBar\gY'Sze>VSY'\&Puts a maximized window back to normal Q3TitleBarTN `b_ Restore down Q3TitleBarTN `b_ Restore up Q3TitleBar|}qSystem Q3TitleBar fY...More... Q3ToolBarg*w  (unknown) Q3UrlOperator&ST[ %1 g*e/cbyRjhHbvIThe protocol `%1' does not support copying or moving files or directories Q3UrlOperatorST[ %1 g*e/c^zev;The protocol `%1' does not support creating new directories Q3UrlOperatorST[ %1 g*e/cS_jhH0The protocol `%1' does not support getting files Q3UrlOperatorST[ %1 g*e/cRQv6The protocol `%1' does not support listing directories Q3UrlOperatorST[ %1 g*e/c[QejhH0The protocol `%1' does not support putting files Q3UrlOperator ST[ %1 g*e/cydjhHbv@The protocol `%1' does not support removing files or directories Q3UrlOperator$ST[ %1 g*e/ceT}T jhHbv@The protocol `%1' does not support renaming files or directories Q3UrlOperatorST[ %1 g*e/c"The protocol `%1' is not supported Q3UrlOperator Sm(&C)&CancelQ3Wizard [b(&F)&FinishQ3Wizard f(&H)&HelpQ3WizardN NP (&N)&Next >Q3WizardV(&B)< &BackQ3Wizard#}ڈbConnection refusedQAbstractSocket#}ڐ>fBConnection timed outQAbstractSocket b~N R0N;j_Host not foundQAbstractSocket q!lOu(}Network unreachableQAbstractSocketSocket vdO\g*e/c$Operation on socket is not supportedQAbstractSocketSocket g*#}Socket is not connectedQAbstractSocketSocket dO\>fBSocket operation timed outQAbstractSocketQhxd(&S) &Select AllQAbstractSpinBoxUkeTN (&S)&Step upQAbstractSpinBoxUkeTN (&D) Step &downQAbstractSpinBoxRxCheckQAccessibleButtonc N PressQAccessibleButtonSmRxUncheckQAccessibleButtonU_RActivate QApplicationU_Rz _vN;z#Activates the program's main window QApplication6WLj %1 Qt %2 OFSb~R0 Qt %30,Executable '%1' requires Qt %2, found Qt %3. QApplicationQt Q_^N v[v/Incompatible Qt Library Error QApplicationLTRQT_LAYOUT_DIRECTION QApplication Sm(&C)&Cancel QAxSelectCOM riN(&O) COM &Object: QAxSelectx[OK QAxSelectxd ActiveX cR6Select ActiveX Control QAxSelectRxCheck QCheckBoxRcToggle QCheckBoxSmRxUncheck QCheckBoxeXR0Or(&A)&Add to Custom Colors QColorDialogWg,Or(&B) &Basic colors QColorDialogOr(&C)&Custom colors QColorDialog }(&G)&Green: QColorDialog }(&R)&Red: QColorDialogT^(&S)&Sat: QColorDialogN^(&V)&Val: QColorDialogAlpha r;(&L)A&lpha channel: QColorDialog (&U)Bl&ue: QColorDialogr(&E)Hu&e: QColorDialogxdǘOr Select Color QColorDialogܕClose QComboBoxPGFalse QComboBoxU_Open QComboBoxwTrue QComboBox %1][XW(%1: already existsQCoreApplication %1N [XW(%1: does not existQCoreApplication%1ftok Y1eW%1: ftok failedQCoreApplication%1uP(&N) &New Folder QFileDialog U_(&O)&Open QFileDialogeT}T (&R)&Rename QFileDialog Q2[X(&S)&Save QFileDialog&%1 g [QeO݋w0 `x[R*d[U9'%1' is write protected. Do you want to delete it anyway? QFileDialogb@g jhH (*) All Files (*) QFileDialogb@g jhH (*.*)All Files (*.*) QFileDialog`x[R*d %1 U!Are sure you want to delete '%1'? QFileDialogVBack QFileDialogq!lR*dv0Could not delete directory. QFileDialog ^zeeY>Create New Folder QFileDialogs}0j Detail View QFileDialogv Directories QFileDialogv Directory: QFileDialogxxDrive QFileDialogjhHFile QFileDialogjT (&N) File &name: QFileDialog jhHWaKFiles of type: QFileDialog\ b~vFind Directory QFileDialog_RMForward QFileDialogRhj List View QFileDialog\ b~eLook in: QFileDialogbvf My Computer QFileDialogeeY> New Folder QFileDialogU_Open QFileDialogr6vParent Directory QFileDialog gvW0e Recent Places QFileDialogydRemove QFileDialogS[XejSave As QFileDialogoy: Show  QFileDialogoy:j(&H)Show &hidden files QFileDialogg*wUnknown QFileDialog %1 GB%1 GBQFileSystemModel %1 KB%1 KBQFileSystemModel %1 MB%1 MBQFileSystemModel %1 TB%1 TBQFileSystemModel %1 OMQC}D%1 bytesQFileSystemModel^<b>q!lOu(T z1 "%1"0</b><p>Ou(Qv[T z1 [WQCex\N bf/N g j{&_0oThe name "%1" can not be used.

Try using another name, with fewer characters or no punctuations marks.QFileSystemModelfComputerQFileSystemModelfeg Date ModifiedQFileSystemModel N TlvjT Invalid filenameQFileSystemModelz.^KindQFileSystemModelbvf My ComputerQFileSystemModelT z1NameQFileSystemModelY'\SizeQFileSystemModelWaKTypeQFileSystemModelNOUAny QFontDatabase?bO/Arabic QFontDatabaseN\Tamil QFontDatabase TeluguTelugu QFontDatabase ThaanaThaana QFontDatabaselThai QFontDatabaseTibetan QFontDatabase~AN-eTraditional Chinese QFontDatabaseSW Vietnamese QFontDatabase [WW(&F)&Font QFontDialog Y'\(&S)&Size QFontDialog ^}(&U) &Underline QFontDialogeHgEffects QFontDialog[WWj#_(&Y) Font st&yle QFontDialog{OSample QFontDialogxd[WW Select Font QFontDialogR*d}(&K) Stri&keout QFontDialog[Qe|}q(&I)Wr&iting System QFontDialogfvfBY1eW %1Changing directory failed: %1QFtp ]#}R0N;j_Connected to hostQFtp]#cR0N;j_ %1Connected to host %1QFtp#}R0N;j_Y1eW %1Connecting to host failed: %1QFtp #}]ܕConnection closedQFtp e#}ڈb&Connection refused for data connectionQFtp#}R0N;j_ %1 bConnection refused to host %1QFtp#}R0N;j_ %1 >fBConnection timed out to host %1QFtpR0 %1 v#}]ܕConnection to %1 closedQFtp^zvfBY1eW %1Creating directory failed: %1QFtpN jhHfBY1eW %1Downloading file failed: %1QFtpb~R0N;j_ %1 Host %1 foundQFtpb~N R0N;j_ %1Host %1 not foundQFtpb~R0N;j_ Host foundQFtpRQvfBY1eW %1Listing directory failed: %1QFtpv{QeY1eW %1Login failed: %1QFtpg*#} Not connectedQFtpydvfBY1eW %1Removing directory failed: %1QFtpydjhHfBY1eW %1Removing file failed: %1QFtp g*wv/ Unknown errorQFtpN PjhHfBY1eW %1Uploading file failed: %1QFtpRcToggle QGroupBox g*c[N;j_No host name given QHostInfo g*wv/ Unknown error QHostInfo b~N R0N;j_Host not foundQHostInfoAgent g*c[N;j_No host name givenQHostInfoAgentg*wvOMW@WaKUnknown address typeQHostInfoAgent g*wv/ Unknown errorQHostInfoAgentIAuthentication requiredQHttp ]#}R0N;j_Connected to hostQHttp]#cR0N;j_ %1Connected to host %1QHttp #}]ܕConnection closedQHttp#}ڈbConnection refusedQHttp#}ڈbb#}ڐ>fB !Connection refused (or timed out)QHttpR0 %1 v#}]ܕConnection to %1 closedQHttp e]d kData corruptedQHttp[QeVaR0nfBv|u/ Error writing response to deviceQHttpHTTP lBY1eWHTTP request failedQHttp0HTTPS #}ڗv SSL e/cN&g*}o2O:HTTPS connection requested but SSL support not compiled inQHttpb~R0N;j_ %1 Host %1 foundQHttpb~N R0N;j_ %1Host %1 not foundQHttpb~R0N;j_ Host foundQHttp N;j_IHost requires authenticationQHttpN Tlv HTTP S@XJN;Invalid HTTP chunked bodyQHttpN Tlv HTTP Vމj-Invalid HTTP response headerQHttplg -[#}R0TP O:g VhNo server set to connect toQHttpNtO:g VhIProxy authentication requiredQHttpNtO:g VhIProxy requires authenticationQHttplBN-kbRequest abortedQHttpSSL nY1eWSSL handshake failedQHttpO:g Vhq!fܕ#}%Server closed connection unexpectedlyQHttp g*wv/ Unknown errorQHttpc[Ng*wvST[Unknown protocol specifiedQHttp/vQg[w^Wrong content lengthQHttpIAuthentication requiredQHttpSocketEngine$g*_NtO:g Vhce6R0 HTTP Va(Did not receive HTTP response from proxyQHttpSocketEngine& HTTP NtO:g Vho~kfBv|u/#Error communicating with HTTP proxyQHttpSocketEngine(RVg_NtO:g VhPOvIlBfBv|u//Error parsing authentication request from proxyQHttpSocketEngineNtO:g Vh#}]N kc^8ܕ#Proxy connection closed prematurelyQHttpSocketEngineNtO:g Vh#}ڈbProxy connection refusedQHttpSocketEngineNtO:g Vhb}U#}Proxy denied connectionQHttpSocketEngineNtO:g Vh#}ڐ>fB!Proxy server connection timed outQHttpSocketEngineb~N R0NtO:g VhProxy server not foundQHttpSocketEngine q!lՕYNRCould not start transaction QIBaseDriverU_e^v|u/Error opening database QIBaseDriver q!lcNNRUnable to commit transaction QIBaseDriver q!lS͏INRUnable to rollback transaction QIBaseDriver q!lՑMneXCould not allocate statement QIBaseResultq!lcϏ8QeeX"Could not describe input statement QIBaseResult q!lcϏeXCould not describe statement QIBaseResultq!lbSN NP vCould not fetch next item QIBaseResult b~N R0cRCould not find array QIBaseResultq!lS_cReCould not get array data QIBaseResultq!lS_gbNJ Could not get query info QIBaseResultq!lS_eXNJ Could not get statement info QIBaseResult q!lnPeXCould not prepare statement QIBaseResult q!lՕYNRCould not start transaction QIBaseResult q!lՕܕeXUnable to close statement QIBaseResult q!lcNNRUnable to commit transaction QIBaseResultq!l^z BLOBUnable to create BLOB QIBaseResult q!lWLgbUnable to execute query QIBaseResultq!lՕU_ BLOBUnable to open BLOB QIBaseResultq!lՋS BLOBUnable to read BLOB QIBaseResultq!l[Qe BLOBUnable to write BLOB QIBaseResultnN ]q!zzNo space left on device QIODeviceb~N R0rjhHbvNo such file or directory QIODevicek PN Permission denied QIODevice U_NYjhHToo many open files QIODevice g*wv/ Unknown error QIODeviceMac OS X 8QelMac OS X input method QInputContextWindows 8QelWindows input method QInputContextXIMXIM QInputContextXIM 8QelXIM input method QInputContext ˏ8QeP<Enter a value: QInputDialogq!lՏ QeQ_^ %1%2Cannot load library %1: %2QLibrary$q!lS͉ %2 Qgv{&_ %1%3$Cannot resolve symbol "%1" in %2: %3QLibraryq!lSx Q_^ %1%2Cannot unload library %1: %2QLibrary$W( %1 N-vYcz _xeN {&T)Plugin verification data mismatch in '%1'QLibrary(jhH %1 N f/Tlv Qt Ycz _0'The file '%1' is not a valid Qt plugin.QLibraryFYcz _ %1 Ou(N v[v Qt Q_^%2.%3.%4 0%50=The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]QLibraryTYcz _ %1 Ou(N v[v Qt Q_^0N \d/QrHvQ_^mW(Nw0 WThe plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)QLibraryJYcz _ %1 Ou(N v[v Qt Q_^0g^i˔p %2 S{_R0 %3OThe plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"QLibraryb~N R0RNQ_^!The shared library was not found.QLibrary g*wv/ Unknown errorQLibrary (&C)&Copy QLineEdit N (&P)&Paste QLineEdit PZ(&R)&Redo QLineEdit _S(&U)&Undo QLineEdit RjN (&T)Cu&t QLineEditR*dDelete QLineEditQhxd Select All QLineEdit%1OMW@Ou(N-%1: Address in use QLocalServer%1T z1/%1: Name error QLocalServer%1[XSֈb%1: Permission denied QLocalServer%1g*wv/ %2%1: Unknown error %2 QLocalServer%1#}ړ/%1: Connection error QLocalSocket%1#}ڈb%1: Connection refused QLocalSocket%1eSNY'%1: Datagram too large QLocalSocket%1N TlvT z1%1: Invalid name QLocalSocket%1`z]ܕ%1: Remote closed QLocalSocket%1Socket OMW@/%1: Socket access error QLocalSocket%1Socket dO\>fB%1: Socket operation timed out QLocalSocket%1Socket n/%1: Socket resource error QLocalSocket%1socket dO\g*e/c)%1: The socket operation is not supported QLocalSocket%1g*wv/%1: Unknown error QLocalSocket%1g*wv/ %2%1: Unknown error %2 QLocalSocket q!lՕYNRUnable to begin transaction QMYSQLDriver q!lcNNRUnable to commit transaction QMYSQLDriverq!lՐ#}Unable to connect QMYSQLDriverq!lՕU_e^Unable to open database ' QMYSQLDriver q!lS͏INRUnable to rollback transaction QMYSQLDriverq!l}PT8QP<Unable to bind outvalues QMYSQLResult q!l}PTexP<Unable to bind value QMYSQLResultq!lWLN NP gbUnable to execute next query QMYSQLResult q!lWLgbUnable to execute query QMYSQLResult q!lWLeXUnable to execute statement QMYSQLResult q!lbS֌eUnable to fetch data QMYSQLResult q!lnPeXUnable to prepare statement QMYSQLResult q!lՑneXUnable to reset statement QMYSQLResultq!lQ2[XN NP }PgUnable to store next result QMYSQLResult q!lQ2[X}PgUnable to store result QMYSQLResultq!lQ2[XeX}Pg!Unable to store statement results QMYSQLResult g*T}T  (Untitled)QMdiArea%1 - [%2] %1 - [%2] QMdiSubWindow ܕ(&C)&Close QMdiSubWindow yR(&M)&Move QMdiSubWindow V_(&R)&Restore QMdiSubWindow Y'\(&S)&Size QMdiSubWindow - [%1]- [%1] QMdiSubWindowܕClose QMdiSubWindowfHelp QMdiSubWindowgY'S(&X) Ma&ximize QMdiSubWindowgY'SMaximize QMdiSubWindowxUMenu QMdiSubWindowg\S(&N) Mi&nimize QMdiSubWindowg\SMinimize QMdiSubWindowV_Restore QMdiSubWindowTN `b_ Restore Down QMdiSubWindown=Shade QMdiSubWindowuYW(z(&T) Stay on &Top QMdiSubWindowSmn=Unshade QMdiSubWindowܕCloseQMenuWLExecuteQMenuU_OpenQMenu e QtAbout Qt QMessageBoxfHelp QMessageBoxϊs`...Hide Details... QMessageBoxx[OK QMessageBoxoy:s`...Show Details... QMessageBox xdǏ8Qel Select IMQMultiInputContextY͏8QelRcVhMultiple input method switcherQMultiInputContextPlugin*Ou(e[WQCNN-vQgexUvY͏8QelRcVhMMultiple input method switcher that uses the context menu of the text widgetsQMultiInputContextPlugin,SNP socket ]}W(v}T NP #cW4Another socket is already listening on the same portQNativeSocketEngine>fWW(lg IPv6 e/cv^sSN Ou( IPv6 socket=Attempt to use IPv6 socket on a platform with no IPv6 supportQNativeSocketEngine#}ڈbConnection refusedQNativeSocketEngine#}ڐ>fBConnection timed outQNativeSocketEngineeNY'q!lՐQDatagram was too large to sendQNativeSocketEngineq!lՐ#}R0N;j_Host unreachableQNativeSocketEngineN Tlv socket cϏ[PInvalid socket descriptorQNativeSocketEngine}/ Network errorQNativeSocketEngine }dO\>fBNetwork operation timed outQNativeSocketEngine q!lOu(}Network unreachableQNativeSocketEngine\ ^ socket dO\Operation on non-socketQNativeSocketEnginenN Out of resourcesQNativeSocketEnginek PN Permission deniedQNativeSocketEngineST[WaKg*e/cProtocol type not supportedQNativeSocketEngine q!lS_OMW@The address is not availableQNativeSocketEnginekdOMW@]O݋wThe address is protectedQNativeSocketEngine}PTvOMW@]}W(Ou(N-#The bound address is already in useQNativeSocketEngineNtO:g VhWaKq!le/ckddO\,The proxy type is invalid for this operationQNativeSocketEngine`zN;j_ܕN#}%The remote host closed the connectionQNativeSocketEngineq!lRYS^d socket%Unable to initialize broadcast socketQNativeSocketEngine q!lRYS^;d`' socket(Unable to initialize non-blocking socketQNativeSocketEngine q!lce6 `oUnable to receive a messageQNativeSocketEngine q!lՐQ `oUnable to send a messageQNativeSocketEngineq!l[QeUnable to writeQNativeSocketEngine g*wv/ Unknown errorQNativeSocketEngineg*e/cv socket dO\Unsupported socket operationQNativeSocketEngineU_ %1 v|u/Error opening %1QNetworkAccessCacheBackendN Tlv}W@%1Invalid URI: %1QNetworkAccessDataBackend&e %1 N `zN;j_ܕNN kc^8v#}3Remote host closed the connection prematurely on %1QNetworkAccessDebugPipeBackend&%1 N v|u socket /%2Socket error on %1: %2QNetworkAccessDebugPipeBackend[Qe %1 fBv|u/%2Write error writing to %1: %2QNetworkAccessDebugPipeBackend q!lՕU_ %1kd_f/NP v#Cannot open %1: Path is a directoryQNetworkAccessFileBackendU_ %1 v|u/%2Error opening %1: %2QNetworkAccessFileBackend_ %1 S֓/%2Read error reading from %1: %2QNetworkAccessFileBackendlBU_^g,W0zjhH %1%Request for opening non-local file %1QNetworkAccessFileBackend[Qe %1 fBv|u/%2Write error writing to %1: %2QNetworkAccessFileBackendq!lՕU_ %1f/NP vCannot open %1: is a directoryQNetworkAccessFtpBackendN %1 fBv|u/%2Error while downloading %1: %2QNetworkAccessFtpBackendN P %1 fBv|u/%2Error while uploading %1: %2QNetworkAccessFtpBackendv{Qe %1 Y1eWI0Logging in to %1 failed: authentication requiredQNetworkAccessFtpBackendb~N R0TivNtO:g VhNo suitable proxy foundQNetworkAccessFtpBackendb~N R0TivNtO:g VhNo suitable proxy foundQNetworkAccessHttpBackend(N %1 fBv|u/%O:g VhVa%2)Error downloading %1 - server replied: %2 QNetworkReplyg*wvST[ %1Protocol "%1" is unknown QNetworkReplySmdO\Operation canceledQNetworkReplyImpl q!lՕYNRUnable to begin transaction QOCIDriver q!lcNNRUnable to commit transaction QOCIDriver q!lRYSUnable to initialize QOCIDriverq!lv{QeUnable to logon QOCIDriver q!lS͏INRUnable to rollback transaction QOCIDriver q!lՑMneXUnable to alloc statement QOCIResultq!l}PTkOMNPZbyk!WL'Unable to bind column for batch execute QOCIResult q!l}PTexP<Unable to bind value QOCIResultq!lWLbyk!eX!Unable to execute batch statement QOCIResult q!lWLeXUnable to execute statement QOCIResultq!lՍR0N NP Unable to goto next QOCIResult q!lnPeXUnable to prepare statement QOCIResult q!lcNNRUnable to commit transaction QODBCDriverq!lՐ#cUnable to connect QODBCDriverq!lՕܕRcNRUnable to disable autocommit QODBCDriverq!lՕU_RcNRUnable to enable autocommit QODBCDriver q!lS͏INRUnable to rollback transaction QODBCDriverQODBCResult::reset: q!lՊ-[ SQL_CURSOR_STATIC PZpeX\l`'0jg`v ODBC ERz _v-[yQODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration QODBCResult q!l}PTexUnable to bind variable QODBCResult q!lWLeXUnable to execute statement QODBCResultq!lbSUnable to fetch QODBCResultq!lbS{,N{FUnable to fetch first QODBCResultq!lbSg_N{FUnable to fetch last QODBCResultq!lbSN N{FUnable to fetch next QODBCResultq!lbSRMN{FUnable to fetch previous QODBCResult q!lnPeXUnable to prepare statement QODBCResultHomeQObject b~N R0N;j_Host not foundQObjectT z1NameQPPDOptionsModelP<ValueQPPDOptionsModel q!lՕYNRCould not begin transaction QPSQLDriver q!lcNNRCould not commit transaction QPSQLDriver q!lS͏INRCould not rollback transaction QPSQLDriverq!lՐ#}Unable to connect QPSQLDriverq!lՊUnable to subscribe QPSQLDriver q!lSmUnable to unsubscribe QPSQLDriver q!l^zgbUnable to create query QPSQLResult q!lnPeXUnable to prepare statement QPSQLResultQlRCentimeters (cm)QPageSetupWidgethUFormQPageSetupWidget^Height:QPageSetupWidgetT  Inches (in)QPageSetupWidgetjkT LandscapeQPageSetupWidget}MarginsQPageSetupWidgetQlSMillimeters (mm)QPageSetupWidgeteT OrientationQPageSetupWidget }_5Y'\ Page size:QPageSetupWidget}_5PaperQPageSetupWidget }_5On Paper source:QPageSetupWidget Points (pt)QPageSetupWidget~1TPortraitQPageSetupWidgetS^jkTReverse landscapeQPageSetupWidgetS^~1TReverse portraitQPageSetupWidget[^Width:QPageSetupWidgetN } bottom marginQPageSetupWidget]} left marginQPageSetupWidgetS} right marginQPageSetupWidgetN } top marginQPageSetupWidgetYcz _g* Qe0The plugin was not loaded. QPluginLoader g*wv/ Unknown error QPluginLoader%1 ][XW(0 `[[U/%1 already exists. Do you want to overwrite it? QPrintDialog$%1 f/NP v0 ːxdQvNjT 07%1 is a directory. Please choose a different file name. QPrintDialogdO\ (&O) << &Options << QPrintDialogdO\ (&O) >> &Options >> QPrintDialog RSp(&P)&Print QPrintDialog <qt>`[[U</qt>%Do you want to overwrite it? QPrintDialogA0A0 QPrintDialog$A0 (841 x 1189 mm)A0 (841 x 1189 mm) QPrintDialogA1A1 QPrintDialog"A1 (594 x 841 mm)A1 (594 x 841 mm) QPrintDialogA2A2 QPrintDialog"A2 (420 x 594 mm)A2 (420 x 594 mm) QPrintDialogA3A3 QPrintDialog"A3 (297 x 420 mm)A3 (297 x 420 mm) QPrintDialogA4A4 QPrintDialogBA4 (210 x 297 mm, 8.26 x 11.7 T )%A4 (210 x 297 mm, 8.26 x 11.7 inches) QPrintDialogA5A5 QPrintDialog"A5 (148 x 210 mm)A5 (148 x 210 mm) QPrintDialogA6A6 QPrintDialog"A6 (105 x 148 mm)A6 (105 x 148 mm) QPrintDialogA7A7 QPrintDialog A7 (74 x 105 mm)A7 (74 x 105 mm) QPrintDialogA8A8 QPrintDialogA8 (52 x 74 mm)A8 (52 x 74 mm) QPrintDialogA9A9 QPrintDialogA9 (37 x 52 mm)A9 (37 x 52 mm) QPrintDialog R%T %1 Aliases: %1 QPrintDialogB0B0 QPrintDialog&B0 (1000 x 1414 mm)B0 (1000 x 1414 mm) QPrintDialogB1B1 QPrintDialog$B1 (707 x 1000 mm)B1 (707 x 1000 mm) QPrintDialogB10B10 QPrintDialog B10 (31 x 44 mm)B10 (31 x 44 mm) QPrintDialogB2B2 QPrintDialog"B2 (500 x 707 mm)B2 (500 x 707 mm) QPrintDialogB3B3 QPrintDialog"B3 (353 x 500 mm)B3 (353 x 500 mm) QPrintDialogB4B4 QPrintDialog"B4 (250 x 353 mm)B4 (250 x 353 mm) QPrintDialogB5B5 QPrintDialogBB5 (176 x 250 mm, 6.93 x 9.84 T )%B5 (176 x 250 mm, 6.93 x 9.84 inches) QPrintDialogB6B6 QPrintDialog"B6 (125 x 176 mm)B6 (125 x 176 mm) QPrintDialogB7B7 QPrintDialog B7 (88 x 125 mm)B7 (88 x 125 mm) QPrintDialogB8B8 QPrintDialogB8 (62 x 88 mm)B8 (62 x 88 mm) QPrintDialogB9B9 QPrintDialogB9 (44 x 62 mm)B9 (44 x 62 mm) QPrintDialogC5EC5E QPrintDialog$C5E (163 x 229 mm)C5E (163 x 229 mm) QPrintDialogCustom QPrintDialogDLEDLE QPrintDialog$DLE (110 x 220 mm)DLE (110 x 220 mm) QPrintDialogExecutive Executive QPrintDialogJExecutive (7.5 x 10 T , 191 x 254 mm))Executive (7.5 x 10 inches, 191 x 254 mm) QPrintDialog(jhH %1 q!l[Qe0 ːxdQv[jT 0=File %1 is not writable. Please choose a different file name. QPrintDialog jhH][XW( File exists QPrintDialog FolioFolio QPrintDialog"\ (210 x 330 mm)Folio (210 x 330 mm) QPrintDialog LedgerLedger QPrintDialog*Ledger (432 x 279 mm)Ledger (432 x 279 mm) QPrintDialog LegalLegal QPrintDialogBLegal (8.5 x 14 T , 216 x 356 mm)%Legal (8.5 x 14 inches, 216 x 356 mm) QPrintDialog LetterLetter QPrintDialogDLetter (8.5 x 11 T , 216 x 279 mm)&Letter (8.5 x 11 inches, 216 x 279 mm) QPrintDialog g,W0zjhH Local file QPrintDialogx[OK QPrintDialogRSpPrint QPrintDialogRSpR0jhH...Print To File ... QPrintDialogQhRSp Print all QPrintDialogRSp{W  Print range QPrintDialog RSpxdS@Print selection QPrintDialogRSpR0jhHPDF Print to File (PDF) QPrintDialog"RSpR0jhHPostscript Print to File (Postscript) QPrintDialogTabloidTabloid QPrintDialog,Tabloid (279 x 432 mm)Tabloid (279 x 432 mm) QPrintDialogwYexPY'Zoom inQPrintPreviewDialog~.\Zoom outQPrintPreviewDialog2AdvancedQPrintPropertiesWidgethUFormQPrintPropertiesWidgetbPageQPrintPropertiesWidgeth!\ CollateQPrintSettingsOutputOrColorQPrintSettingsOutputOrj!_ Color ModeQPrintSettingsOutputNexCopiesQPrintSettingsOutputNexCopies:QPrintSettingsOutput]RSpDuplex PrintingQPrintSettingsOutputhUFormQPrintSettingsOutputpp GrayscaleQPrintSettingsOutputw Long sideQPrintSettingsOutputq!NoneQPrintSettingsOutputxOptionsQPrintSettingsOutput8Q-[Output SettingsQPrintSettingsOutput c[b_ Pages fromQPrintSettingsOutputQhRSp Print allQPrintSettingsOutputRSp{W  Print rangeQPrintSettingsOutputSTReverseQPrintSettingsOutputxdS@ SelectionQPrintSettingsOutputw퐊 Short sideQPrintSettingsOutputR0toQPrintSettingsOutputT z1(&N)&Name: QPrintWidget...... QPrintWidgethUForm QPrintWidgetOMn Location: QPrintWidget8QjhH(&F) Output &file: QPrintWidget \l`'(&R) P&roperties QPrintWidgetPreview QPrintWidgetSphj_Printer QPrintWidgetWaKType: QPrintWidgetq!lՕU_8Qe\TN勀S,Could not open input redirection for readingQProcessq!lՕU_8Q\TN[Qe-Could not open output redirection for writingQProcess_Lz SfBv|u/Error reading from processQProcess[QeLz fBv|u/Error writing to processQProcess Lz ]])opProcess crashedQProcess Lz dO\>fBProcess operation timed outQProcess n/fork Y1eW %1!Resource error (fork failure): %1QProcessSmCancelQProgressDialogU_Open QPushButtonRxCheck QRadioButton/v[WQC^R%lbad char class syntaxQRegExp /v lookahead lbad lookahead syntaxQRegExp/v͉lbad repetition syntaxQRegExpOu(]ܕvRdisabled feature usedQRegExpN TlvQk2OMP<invalid octal valueQRegExp GR0QgPR6met internal limitQRegExp\N]evS@{&missing left delimQRegExp lg v|u/no error occurredQRegExpg*gGR0}P\>unexpected endQRegExpU_e^v|u/Error opening databaseQSQLite2Driver q!lՕYNRUnable to begin transactionQSQLite2Driver q!lcNNRUnable to commit transactionQSQLite2Driver q!lS͏INRUnable to rollback transactionQSQLite2Driver q!lWLeXUnable to execute statementQSQLite2Result q!lbS}PgUnable to fetch resultsQSQLite2Resultܕe^v|u/Error closing database QSQLiteDriverU_e^v|u/Error opening database QSQLiteDriver q!lՕYNRUnable to begin transaction QSQLiteDriver q!lcNNRUnable to commit transaction QSQLiteDriver q!lS͏INRUnable to rollback transaction QSQLiteDriverlg gbNo query QSQLiteResultSexexN {&TParameter count mismatch QSQLiteResult q!l}PTSexUnable to bind parameters QSQLiteResult q!lWLeXUnable to execute statement QSQLiteResult q!lbSRUnable to fetch row QSQLiteResult q!lՑneXUnable to reset statement QSQLiteResultR*dDeleteQScriptBreakpointsWidget~|~ContinueQScriptDebuggerܕCloseQScriptDebuggerCodeFinderWidgetT z1NameQScriptDebuggerLocalsModelP<ValueQScriptDebuggerLocalsModelT z1NameQScriptDebuggerStackModeld\ SearchQScriptEngineDebuggerܕCloseQScriptNewBreakpointWidget^zBottom QScrollBar]搊} Left edge QScrollBar\ N cR Line down QScrollBar\ N cRLine up QScrollBarbN e Page down QScrollBarb]e Page left QScrollBarbSe Page right QScrollBarbN ePage up QScrollBarOMnPosition QScrollBarS} Right edge QScrollBar_N cr Scroll down QScrollBarW(kdcr Scroll here QScrollBar_]cr Scroll left QScrollBar_Scr Scroll right QScrollBar_N cr Scroll up QScrollBarzTop QScrollBar %1][XW(%1: already exists QSharedMemory%1^zY'\\e 0%1: create size is less then 0 QSharedMemory %1N [XW(%1: doesn't exists QSharedMemory%1ftok Y1eW%1: ftok failed QSharedMemory%1N TlvY'\%1: invalid size QSharedMemory%1uP Media Play QShortcut ZRMNMedia Previous QShortcutZԓ Media Record QShortcutZP\kb Media Stop QShortcutxUMenu QShortcutMetaMeta QShortcutjMusic QShortcutT&No QShortcutex[W[Num Lock QShortcutex[W[NumLock QShortcutex[W[ Number Lock QShortcutU_}W@Open URL QShortcut_N N Page Down QShortcut_N NPage Up QShortcutN Paste QShortcut PausePause QShortcut PgDownPgDown QShortcutPgUpPgUp QShortcut PrintPrint QShortcutRSp^U Print Screen QShortcutR7eRefresh QShortcute QeReload QShortcut ReturnReturn QShortcutSuRight QShortcutQ2[XSave QShortcutcr[ Scroll Lock QShortcutcr[ ScrollLock QShortcutd\ Search QShortcutxdSelect QShortcut ShiftShift QShortcutzzv}uSpace QShortcut_T}Standby QShortcutP\kbStop QShortcut SysReqSysReq QShortcut|}qlB SysRqSystem Request QShortcutTabTab QShortcutTreble Down Treble Down QShortcutTreble Up Treble Up QShortcutN uUp QShortcut_qPVideo QShortcutϖMON Volume Down QShortcut\ Volume Mute QShortcutcК Volume Up QShortcutf/Yes QShortcutbN e Page downQSliderb]e Page leftQSliderbSe Page rightQSliderbN ePage upQSliderOMnPositionQSliderOMW@WaKg*e/cAddress type not supportedQSocks5SocketEngine$#}g* SOCKSv5 O:g VhQA1(Connection not allowed by SOCKSv5 serverQSocks5SocketEngineNtO:g Vh#}]N kc^8ܕ&Connection to proxy closed prematurelyQSocks5SocketEngineNtO:g Vh#}ڈbConnection to proxy refusedQSocks5SocketEngineNtO:g Vh#}ڐ>fBConnection to proxy timed outQSocks5SocketEngine"N,v SOCKSv5 O:g Vh/General SOCKSv5 server failureQSocks5SocketEngine }dO\>fBNetwork operation timed outQSocks5SocketEngineNtO:g VhIY1eWProxy authentication failedQSocks5SocketEngineNtO:g VhIY1eW%1Proxy authentication failed: %1QSocks5SocketEngineb~N R0NtO:g VhProxy host not foundQSocks5SocketEngineSOCKS 5 vST[/SOCKS version 5 protocol errorQSocks5SocketEngineSOCKSv5 cNg*e/cSOCKSv5 command not supportedQSocks5SocketEngine TTL >fB TTL expiredQSocks5SocketEngine4g*wv SOCKSv5 NtO:g Vh/Nx 0x%1%Unknown SOCKSv5 proxy error code 0x%1QSocks5SocketEngineSmCancelQSoftKeyManager[bDoneQSoftKeyManager╋ExitQSoftKeyManagerx[OKQSoftKeyManagerxOptionsQSoftKeyManagerxdSelectQSoftKeyManager\LessQSpinBoxfYMoreQSpinBoxSmCancelQSqlSm}/UCancel your edits?QSqlxConfirmQSqlR*dDeleteQSqlR*d{F}UDelete this record?QSqlcQeInsertQSqlT&NoQSqlQ2[X}/NvQg[U Save edits?QSqlfeUpdateQSqlf/YesQSqllg єpq!lcOaI%1,Cannot provide a certificate with no key, %1 QSslSocket$^z SSL QgefBv|u/%1 Error creating SSL context (%1) QSslSocket&^z SSL ]O\kfBv|u/%1Error creating SSL session, %1 QSslSocket&^z SSL ]O\kfBv|u/%1Error creating SSL session: %1 QSslSocketSSL T kefBv|u/%1Error during SSL handshake: %1 QSslSocket Qeg,W0aIfBv|u/%1#Error loading local certificate, %1 QSslSocket QeypfBv|u/%1Error loading private key, %1 QSslSocketSfBv|u/%1Error while reading: %1 QSslSocketN Tlbzzv}vR[nU%1 !Invalid or empty cipher list (%1) QSslSocketq!l[Qee%1Unable to write data: %1 QSslSocket g*wv/ Unknown error QSslSocket g*wv/ Unknown error QStateMachineU_e^v|u/Error opening database QSymSQLDriver q!lՕYNRUnable to begin transaction QSymSQLDriver q!lcNNRUnable to commit transaction QSymSQLDriver q!lS͏INRUnable to rollback transaction QSymSQLDriverSexexN {&TParameter count mismatch QSymSQLResult q!l}PTSexUnable to bind parameters QSymSQLResult q!lWLeXUnable to execute statement QSymSQLResult q!lbSRUnable to fetch row QSymSQLResult q!lՑneXUnable to reset statement QSymSQLResult,SNP socket ]}W(v}T NP #cW4Another socket is already listening on the same portQSymbianSocketEngine>fWW(lg IPv6 e/cv^sSN Ou( IPv6 socket=Attempt to use IPv6 socket on a platform with no IPv6 supportQSymbianSocketEngine#}ڈbConnection refusedQSymbianSocketEngine#}ڐ>fBConnection timed outQSymbianSocketEngineeNY'q!lՐQDatagram was too large to sendQSymbianSocketEngineq!lՐ#}R0N;j_Host unreachableQSymbianSocketEngineN Tlv socket cϏ[PInvalid socket descriptorQSymbianSocketEngine}/ Network errorQSymbianSocketEngine }dO\>fBNetwork operation timed outQSymbianSocketEngine q!lOu(}Network unreachableQSymbianSocketEngine\ ^ socket dO\Operation on non-socketQSymbianSocketEnginenN Out of resourcesQSymbianSocketEnginek PN Permission deniedQSymbianSocketEngineST[WaKg*e/cProtocol type not supportedQSymbianSocketEngine q!lS_OMW@The address is not availableQSymbianSocketEnginekdOMW@]O݋wThe address is protectedQSymbianSocketEngine}PTvOMW@]}W(Ou(N-#The bound address is already in useQSymbianSocketEngineNtO:g VhWaKq!le/ckddO\,The proxy type is invalid for this operationQSymbianSocketEngine`zN;j_ܕN#}%The remote host closed the connectionQSymbianSocketEngineq!lRYS^d socket%Unable to initialize broadcast socketQSymbianSocketEngine q!lRYS^;d`' socket(Unable to initialize non-blocking socketQSymbianSocketEngine q!lce6 `oUnable to receive a messageQSymbianSocketEngine q!lՐQ `oUnable to send a messageQSymbianSocketEngineq!l[QeUnable to writeQSymbianSocketEngine g*wv/ Unknown errorQSymbianSocketEngineg*e/cv socket dO\Unsupported socket operationQSymbianSocketEngine %1][XW(%1: already existsQSystemSemaphore %1N [XW(%1: does not existQSystemSemaphore%1nN %1: out of resourcesQSystemSemaphore%1[XSֈb%1: permission deniedQSystemSemaphore%1g*wv/ %2%1: unknown error %2QSystemSemaphore q!lՕU_#}Unable to open connection QTDSDriverq!lOu(e^Unable to use database QTDSDriverU_RActivateQTabBarܕCloseQTabBarc N PressQTabBar_]cr Scroll LeftQTabBar_Scr Scroll RightQTabBarSocket vdO\g*e/c$Operation on socket is not supported QTcpServer (&C)&Copy QTextControl N (&P)&Paste QTextControl PZ(&R)&Redo QTextControl _S(&U)&Undo QTextControl#}POMW@(&L)Copy &Link Location QTextControl RjN (&T)Cu&t QTextControlR*dDelete QTextControlQhxd Select All QTextControlU_Open QToolButtonc N Press QToolButtonkd^sSN e/c IPv6#This platform does not support IPv6 QUdpSocketPZDefault text for redo actionRedo QUndoGroup_SDefault text for undo actionUndo QUndoGroupzzv} QUndoModelPZDefault text for redo actionRedo QUndoStack_SDefault text for undo actionUndo QUndoStackcQe,W xcR6[WQC Insert Unicode control characterQUnicodeControlCharacterMenuLRE ]R0S]LQew$LRE Start of left-to-right embeddingQUnicodeControlCharacterMenuLRM ]R0SjLRM Left-to-right markQUnicodeControlCharacterMenuLRO ]R0S[w#LRO Start of left-to-right overrideQUnicodeControlCharacterMenuPDF _HQeTh<_PDF Pop directional formattingQUnicodeControlCharacterMenuRLE SR0]]LQew$RLE Start of right-to-left embeddingQUnicodeControlCharacterMenuRLM SR0]jRLM Right-to-left markQUnicodeControlCharacterMenuRLO SR0]扆[w#RLO Start of right-to-left overrideQUnicodeControlCharacterMenuZWJ [^#cVhZWJ Zero width joinerQUnicodeControlCharacterMenuZWNJ [^^#cVhZWNJ Zero width non-joinerQUnicodeControlCharacterMenuZWSP [^zzv}ZWSP Zero width spaceQUnicodeControlCharacterMenu q!l՘oy:}W@Cannot show URL QWebFrameq!l՘oy: MIME WaKCannot show mimetype QWebFrame jhHN [XW(File does not exist QWebFrame lB]򈫖;dRequest blocked QWebFrame lB]SmRequest cancelled QWebFrame%1%2x%3 P} %1 (%2x%3 pixels)QWebPage %n P jhH %n file(s)QWebPage eXR0[WQxAdd To DictionaryQWebPage|BoldQWebPage^zBottomQWebPagejgb[WelCheck Grammar With SpellingQWebPagejgb[WCheck SpellingQWebPagebS[WfBzSsjgb[WCheck Spelling While TypingQWebPagexdjhH Choose FileQWebPagendgvd\ Clear recent searchesQWebPageCopyQWebPage_qP Copy ImageQWebPage#}P Copy LinkQWebPageRjN CutQWebPage-DefaultQWebPageR*dR0kdU[Wv}P\>Delete to the end of the wordQWebPageR*dR0kdU[Wvw-Delete to the start of the wordQWebPageeT DirectionQWebPage[WWFontsQWebPage_VGo BackQWebPage_RM Go ForwardQWebPageb[WelHide Spelling and GrammarQWebPage_ueIgnoreQWebPage_ue Ignore Grammar context menu itemIgnoreQWebPagegWInspectQWebPageeItalicQWebPage$JavaScript fTJ % %1JavaScript Alert - %1QWebPage$JavaScript x % %1JavaScript Confirm - %1QWebPage$JavaScript cy: % %1JavaScript Prompt - %1QWebPage]搊} Left edgeQWebPage W([WQxd\ Look Up In DictionaryQWebPageyRn8jR0NP S@XJv}P\>'Move the cursor to the end of the blockQWebPageyRn8jR0NP eNv}P\>*Move the cursor to the end of the documentQWebPageyRn8jR0NLv}P\>&Move the cursor to the end of the lineQWebPageyRn8jR0N NP [WQC%Move the cursor to the next characterQWebPageyRn8jR0N NL Move the cursor to the next lineQWebPageyRn8jR0N NP U[W Move the cursor to the next wordQWebPageyRn8jR0RMNP [WQC)Move the cursor to the previous characterQWebPageyRn8jR0RMNL$Move the cursor to the previous lineQWebPageyRn8jR0RMNP U[W$Move the cursor to the previous wordQWebPageyRn8jR0NP S@XJvw-)Move the cursor to the start of the blockQWebPageyRn8jR0NP eNvw-,Move the cursor to the start of the documentQWebPageyRn8jR0NLvw-(Move the cursor to the start of the lineQWebPageb~N R0SvQg[No Guesses FoundQWebPageg*xSNOUjhHNo file selectedQWebPagelg gvd\ No recent searchesQWebPageU_hFg Open FrameQWebPageU__qP Open ImageQWebPageU_#}P Open LinkQWebPage W(ezU_Open in New WindowQWebPageYhF}OutlineQWebPagebN e Page downQWebPageb]e Page leftQWebPagebSe Page rightQWebPagebN ePage upQWebPageN PasteQWebPage PausePauseQWebPage gvd\ Recent searchesQWebPagee QeReloadQWebPagenResetQWebPageS} Right edgeQWebPageQ2[X_qP Save ImageQWebPageQ2[X#}P... Save Link...QWebPage_N cr Scroll downQWebPageW(kdcr Scroll hereQWebPage_]cr Scroll leftQWebPage_Scr Scroll rightQWebPage_N cr Scroll upQWebPaged\ zSSearch The WebQWebPageQhxd Select AllQWebPagexdR0NP S@XJv}P\>Select to the end of the blockQWebPagexdR0NP eNv}P\>!Select to the end of the documentQWebPagexdR0NLv}P\>Select to the end of the lineQWebPagexdR0N NP [WQCSelect to the next characterQWebPage xdR0N NLSelect to the next lineQWebPagexdR0N NP U[WSelect to the next wordQWebPagexdR0RMNP [WQC Select to the previous characterQWebPage xdR0RMNLSelect to the previous lineQWebPagexdR0RMNP U[WSelect to the previous wordQWebPagexdR0NP S@XJvw- Select to the start of the blockQWebPagexdR0NP eNvw-#Select to the start of the documentQWebPagexdR0NLvw-Select to the start of the lineQWebPageoy:b[WelShow Spelling and GrammarQWebPageb[WSpellingQWebPageP\kbStopQWebPagecNSubmitQWebPagecNQSubmit (input element) alt text for elements with no alt, title, or valueSubmitQWebPagee[WeTText DirectionQWebPage"f/Sd\ v}"_0ˏ8Qeܓu[W03This is a searchable index. Enter search keywords: QWebPagezTopQWebPage^} UnderlineQWebPageg*wUnknownQWebPage}zgWVh%%2Web Inspector - %2QWebPage f/N What's This?QWhatsThisAction+*QWidget [b(&F)&FinishQWizard f(&H)&HelpQWizardN NP (&N)&NextQWizardN NP (&N)&Next >QWizardV(&B)< &BackQWizardSmCancelQWizardcNCommitQWizard~|~ContinueQWizard[bDoneQWizard_VGo BackQWizardfHelpQWizard%1 - [%2] %1 - [%2] QWorkspace ܕ(&C)&Close QWorkspace yR(&M)&Move QWorkspace V_(&R)&Restore QWorkspace Y'\(&S)&Size QWorkspaceSmn=(&U)&Unshade QWorkspaceܕClose QWorkspacegY'S(&X) Ma&ximize QWorkspaceg\S(&N) Mi&nimize QWorkspaceg\SMinimize QWorkspaceTN `b_ Restore Down QWorkspace n=(&A)Sh&ade QWorkspaceuYW(z(&T) Stay on &Top QWorkspace*S XML [TJfBag }x[TJbshz[TJYencoding declaration or standalone declaration expected while reading the XML declarationQXmlW(Y[N-ve[W[TJg /3error in the text declaration of an external entityQXmlRVg;fBv|u/$error occurred while parsing commentQXmlRVgQg[fBv|u/$error occurred while parsing contentQXmlRVgeNWaK[fBv|u/5error occurred while parsing document type definitionQXmlRVgQC} fBv|u/$error occurred while parsing elementQXmlRVgSÀfBv|u/&error occurred while parsing referenceQXmlu(b6v|v/error triggered by consumerQXml*W( DTD N-N QA1Ou(YRVgv[SÀ;external parsed general entity reference not allowed in DTDQXml&W(\l`'Punexpected end of fileQXml W(/vQgeN-g g*RVgv[SÀ*unparsed entity reference in wrong contextQXmlS XML [TJfBag rHg,_2version expected while reading the XML declarationQXmlshz[TJfBvPzg YvQg[0!Extra content at end of document. QXmlStreamN TlvT}T zz[TJ0Illegal namespace declaration. QXmlStreamN Tlv XML [WQC0Invalid XML character. QXmlStreamN Tlv XML T z10Invalid XML name. QXmlStreamN Tlv XML rHg,[WN20Invalid XML version string. QXmlStreamXML [TJN-g N Tlv\l`'0%Invalid attribute in XML declaration. QXmlStreamN Tlv[WQCSÀ0Invalid character reference. QXmlStreamN TlveN0Invalid document. QXmlStreamN Tlv[P<Invalid entity value. QXmlStreamN TlvUtcNT z10$Invalid processing instruction name. QXmlStreamW(Sex[[TJg NDATA0&NDATA in parameter entity declaration. QXmlStream T}T zzvRMn[WN2 %1 g*[TJ"Namespace prefix '%1' not declared QXmlStreamU_}Pg_vj|dN \ z10 Opening and ending tag mismatch. QXmlStreameN}P\>N kcx0Premature end of document. QXmlStreamPun,R0^[0Recursive entity detected. QXmlStream W(\l`'P"0&Sequence ']]>' not allowed in content. QXmlStream"shz[ScS yes b no0"Standalone accepts only yes or no. QXmlStreamgag Yj|d0Start tag expected. QXmlStream"shzv[d\l`'_ŘW(}xNK_Qs0?The standalone pseudo attribute must appear after the encoding. QXmlStream^g Unexpected ' QXmlStream(W(QlNx[WQCN-GR0^gv[WQC %10/Unexpected character '%1' in public id literal. QXmlStreamg*e/cv XML rHg,0Unsupported XML version. QXmlStreamXML [TJlg W(eNYˆU0)XML declaration not at start of document. QXmlStreamxdSelectQmlJSDebugger::QmlToolBar(%1  %2 {&TNNLvY˂}P\>0,%1 and %2 match the start and end of a line. QtXmlPatterns%1 q!lS_%1 cannot be retrieved QtXmlPatterns4%1 ST+NW(lBv}x %2 QgN QA1vQk2OMP<0E%1 contains octets which are disallowed in the requested encoding %2. QtXmlPatternsN%1 f/exWaK q!lՏIcbexWaK0q6 IcpSWaK Y %2 f/SLv0s%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. QtXmlPatterns%1 f/N Tlv %2%1 is an invalid %2 QtXmlPatterns0%1 f/kchy:_N-N Tlvej0Tlvejg ?%1 is an invalid flag for regular expressions. Valid flags are: QtXmlPatterns%1 f/N TlvT}T zz}W@0%1 is an invalid namespace URI. QtXmlPatterns$%1 f/N Tlvkchy:_j#_%2/%1 is an invalid regular expression pattern: %2 QtXmlPatterns%1 N f/Tlvj#g,j!_T z10$%1 is an invalid template mode name. QtXmlPatterns%1 f/g*wvj_R6WaK0%1 is an unknown schema type. QtXmlPatterns%1 f/P g*e/cv}x0%1 is an unsupported encoding. QtXmlPatterns(%1 N f/Tlv XML 1.0 [WQC0$%1 is not a valid XML 1.0 character. QtXmlPatterns%1 N f/UtcNvTlT z104%1 is not a valid name for a processing-instruction. QtXmlPatterns%1 N f/TlvexP<0"%1 is not a valid numeric literal. QtXmlPatternsH%1 N f/NP TlvUtcNvvjT z10_Řf/ %2 vP< OY %30Z%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. QtXmlPatterns"%1 N f/Tlv %2 WaKvP<0#%1 is not a valid value of type %2. QtXmlPatterns%1 N f/RvexP<0$%1 is not a whole number of minutes. QtXmlPatterns(%1 N f/NP SWaK0SIcpSWaK0C%1 is not an atomic type. Casting is only possible to atomic types. QtXmlPatterns2%1 N f/{W Qg\l`'[TJ0laj_R6S/QeRg*e/c0g%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. QtXmlPatterns"%1 N f/Tlv %2 WaKvP<0&%1 is not valid as a value of type %2. QtXmlPatterns%1 {&TNcۈL[WQC%1 matches newline characters QtXmlPatterns8%1 _b_Ř߄W %2 b %3 ^SN[WN2v}P\>0J%1 must be followed by %2 or %3, not at the end of the replacement string. QtXmlPatterns6%1 \ %n P Sex Vkd %2 f/N Tlv0=%1 requires at least %n argument(s). %2 is therefore invalid. QtXmlPatterns8%1 gYSg %n P Sex Vkd %2 f/N Tlv09%1 takes at most %n argument(s). %2 is therefore invalid. QtXmlPatterns%1 ]T|S0%1 was called. QtXmlPatterns;N ST+ %1A comment cannot contain %1 QtXmlPatterns;N N %1 PZ}P\>A comment cannot end with a %1. QtXmlPatterns2-vT}T zz[TJ_ŘW(Q_0exx[TJNKRM0^A default namespace declaration must occur before function, variable, and option declarations. QtXmlPatterns2vcQC} ^iVhlg [etu"u0%1 N %2 }Pg_0EA direct element constructor is not well-formed. %1 is ended with %2. QtXmlPatterns ]}g |=zp %1 vQ_[XW(00A function already exists with the signature %1. QtXmlPatterns*N vc{Q_j!}D0_Ř_N;j!}DS/Qe0VA library module cannot be evaluated directly. It must be imported from a main module. QtXmlPatterns.Q_QgvSexN [TJpStunnel 0WaK %1 vP<_ŘST+PvexP ex[W0exP< %2 g*{&TkdhN0PA value of type %1 must contain an even number of digits. The value %2 does not. QtXmlPatterns>S@WOMy_Řf/W( %1 R0 %2 {W NKQg0%3 ]Q{W 0HA zone offset must be in the range %1..%2 inclusive. %3 is out of range. QtXmlPatternsN fxvRG{&T0Ambiguous rule match. QtXmlPatterns<\l`' %1 _ŘNTlv %2 pP< %3 f/N Tlv0>An %1-attribute must have a valid %2 as value, which %3 isn't. QtXmlPatterns ][TJ\l`' %1 vP\l`'N PZpeNv[P{0Vkd \l`' %1 vOMnN Ti0dAn attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. QtXmlPatterns"%2 _Ř\g NP [PQC} %103At least one %1 element must appear as child of %2. QtXmlPatterns*\NP QC} %1 QsW( %2 NKRM0-At least one %1-element must occur before %2. QtXmlPatterns*\NP QC} %1 QsW( %2 NKQg0-At least one %1-element must occur inside %2. QtXmlPatterns_ŘhT\NP }DN0'At least one component must be present. QtXmlPatterns2W(QC} %2 v %1 \l`'N-\c[NP j!_0FAt least one mode must be specified in the %1-attribute on element %2. QtXmlPatterns*W(R{& %1 __Ř\g NP fB}DN0?At least one time component must appear after the %1-delimiter. QtXmlPatterns \l`' %1  %2 _|kdNe0+Attribute %1 and %2 are mutually exclusive. QtXmlPatterns.\l`'QC} %1 q!l^RS VpO\l`' %1 N QsW(QC} %20Sg %3 NSjn\l`'0YAttribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. QtXmlPatterns>\l`' %1 N QsW(QC} %20Sg %3 NSjn\l`'0^Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. QtXmlPatterns2\l`' %1 N QsW(QC} %20Sg jn\l`'0VAttribute %1 cannot appear on the element %2. Only the standard attributes can appear. QtXmlPatterns\l`' %1 vPQC} %1 lg \l`' %2 RGN_N g \l`' %3 b %40EIf element %1 has no attribute %2, it cannot have attribute %3 or %4. QtXmlPatternshYg{,NP Sexf/zz^R bf/w^p 0 v[WN2lg T}T zz RGq!lc[RMn[WN20OFf/`c[N %10If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. QtXmlPatterns,W(|!Svj#_hj!}DN- \l`' %1 _Ř[XW(0@In a simplified stylesheet module, attribute %1 must be present. QtXmlPatternsBW( XSL-T j#_Qg N u( %1 Su( %2 b %30DIn an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. QtXmlPatterns8W( XSL-T j#_Qg Q_ %1 vN g {,N P Sex0>In an XSL-T pattern, function %1 cannot have a third argument. QtXmlPatternsHW( XSL-T j#_Qg Sg Q_ %1 %2 SNu(ek\ 0%3 N L0OIn an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. QtXmlPatternsTW( XSL-T j#_Qg Q_ %1 v{,NP Sex_Řf/e[WbexSÀ NOu(ek\ 0yIn an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. QtXmlPatternsJW( XSL-T j#_Qg Q_ %1 v{,NP Sex_Řf/[WN2 NOu(ek\ 0hIn an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. QtXmlPatterns>W(SN[WN2N- %1 Su(eꎫb %2 v+8 ^ %30MIn the replacement string, %1 can only be used to escape itself or %2, not %3 QtXmlPatterns\WaK %1 NXN %2 b %3kcbq!PY' f/N QA1v0YMultiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. QtXmlPatternsfB0Network timeout. QtXmlPatternsN IcR0 %1 WaK02No casting is possible with %1 as the target type. QtXmlPatternsST+WaK %1 fBN PZkԏ01No comparisons can be done involving the type %1. QtXmlPatternsDg*e/cYQ_0b@g e/cvT+_SNvcOu( N QH[TJpYQ_0{No external functions are supported. All supported functions can be used directly, without first declaring them as external QtXmlPatternslg |=zp %1 vQ_SOu(*No function with signature %1 is available QtXmlPatterns RMn[WN2 %1 lg }PTT}T zz-No namespace binding exists for the prefix %1 QtXmlPatterns,W( %2 vRMn[WN2 %1 lg }PTT}T zz3No namespace binding exists for the prefix %1 in %2 QtXmlPatterns(etexdllg KO\\ a %1 SNf/ %21No operand in an integer division, %1, can be %2. QtXmlPatternslg T p %1 vj#g,[XW(0No template by name %1 exists. QtXmlPatterns4g*e/c pragma eX0Vk! _Řg -veX0^None of the pragma expressions are supported. Therefore, a fallback expression must be present QtXmlPatterns"Sg NP %1 [TJSNW(gbN-06Only one %1 declaration can occur in the query prolog. QtXmlPatternsSQsNP QC} %10Only one %1-element can appear. QtXmlPatternsXSe/c Unicode Codepoint Collation%1 0%2 g*e/c0;IOnly the Unicode Codepoint Collation is supported(%1). %2 is unsupported. QtXmlPatterns0Sg RMn[WN2 %1  %2 }PT0SNKNq605Only the prefix %1 can be bound to %2 and vice versa. QtXmlPatterns6dO\QC %1 N u(eWaK %2  %3 vSexP<0>Operator %1 cannot be used on atomic values of type %2 and %3. QtXmlPatterns"dO\QC %1 N u(eWaK %20&Operator %1 cannot be used on type %2. QtXmlPatterns6dO\QC %1 N u(eWaK %2  %3 vSexP<0EOperator %1 is not available between atomic values of type %2 and %3. QtXmlPatternsnOMq!lՈhy:eg %10"Overflow: Can't represent date %1. QtXmlPatternsnOMq!lՈhy:eg0$Overflow: Date can't be represented. QtXmlPatternsRVg/%1Parse error: %1 QtXmlPatternsW(zznull vT}T zz N f/P %1 W( XSL-T T}T zz0iXSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. QtXmlPatterns,^tN %1 N Tl Vpf/_ %2 Yv0-Year %1 is invalid because it begins with %2. QtXmlPatternszzv}empty QtXmlPatternsR[Y}NP  exactly one QtXmlPatternsNP NN  one or more QtXmlPatterns 0 P NN  zero or more QtXmlPatterns0 b 1 P  zero or one QtXmlPatternsx2goclient-4.0.5.1/res/i18n/x2goclient_da.ts0000644000000000000000000054630712675050177015316 0ustar AppDialog Published Applications Not sure if this is the best name for it. Udgivet Programmer Search: Søg: &Start &Start &Close &Luk Multimedia Multimedie Development Udvikling Education Undervisning Game Spil Graphics Grafik Network Netværk Office Kontor Settings Indstillinger System System Utility Tilbehør Other Andet BrokerPassDialogUi Dialog Dialog Old password: Nuværende kodeord: New password: Nyt kodeord: Confirm password: Bekræft kodeord: TextLabel TekstMærkat BrokerPassDlg Passwords do not match Kodeord er ikke ens CUPSPrintWidget Form Formular Name: Navn: Properties Egenskaber State: Tilstand: Accepting jobs: Accepterer jobs: Type: Type: Location: Placering: Comment: Kommentar: Idle Inaktiv Printing Printer Stopped Stoppet Yes Ja No Nej CUPSPrinterSettingsDialog No option selected Ingen indstilling valgt This value is in conflict with another option. Options conflict. This value is in conflict with other option Denne værdi er I strid med en anden indstilling Options conflict Indstillings konflikt ConTest Connectivity test Forbindelses test HTTPS connection: HTTPS forbindelse: SSH connection: SSH forbindelse: Connection speed: Forbindelseshastighed: Failed Mislykket 0 Kb/s 0 Kb/s OK OK Socket operation timed out. Failed: Mislykkedes: ConfigDialog General Generelt Display icon in system tray Vis ikon i ikon bakke Hide to system tray when minimized Minimer til ikon bakke Hide to system tray when closed Skjul i ikon bakke når programmet lukkes Hide to system tray after connection is established Minimer til ikon bakke efter forbindelse til server Restore from system tray after session is disconnected Vis hovedvindue fra ikon bakke efter forbindelse er afbrudt Use LDAP Brug LDAP Server URL: Server URL: BaseDN: BaseDN: Failover server 1 URL: Failover server 1 URL: Failover server 2 URL: Failover server 2 URL: X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings X-server indstillinger X11 application: X11 applikation: X11 version: X11 version: Find X11 application Find X11 applikation Clientside SSH port for file system export usage: Klienten's SSH port til filsystem-eksportering: Start session embedded inside website Start session indlagt i et website Advanced options Avanceret indstillinger Defaults Standardindstillinger &OK &OK &Cancel &Annuller Settings Indstillinger Printing Udskrift Warning Advarsel x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kunne ikke finde nogen brugbar X11 Applikationer. Installer venligtst Apple X11 eller specificer stien til applikationen Your are using X11 (Apple X-Window Server) version Du bruger X11 (Apple X Window Server) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Denne version forårsager problemer med X applikationer i 24bit farver. Du bør opdatere dit X11 miljø (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Der blev ikke fundet en X11 applikation i den specificerede sti &Connection &Forbindelse &Input/Output &Input/Output &Media &Medie &Settings &Indstillinger ConnectionWidget &Connection speed &Forbindelseshastighed Connection speed: Forbindelseshastighed: C&ompression K&omprimering Method: Metode: Compression method: Komprimerings metode: Image quality: Billed kvalitet: CupsPrinterSettingsDialog Dialog Dialog General Generelt Page size: Side størrelse: Paper type: Papir type: Paper source: Papir kilde: Duplex Printing Duplex Udskrivning None Intet Long side Lang side Short side Kort side Driver settings Driver indstillinger Option Indstilling Value Værdi No option selected Ingen mulighed valgt text tekst EditConnectionDialog &Session &Session &Connection &Forbindelse &Input/Output &Input/Output &Media &Medie &Shared folders &Delte mapper &OK &OK &Cancel &Annuller Defaults Standard Session preferences - Session's indstillinger ExportDialog &Cancel &Annuller &share &del &Preferences ... &Præferencer ... &Custom folder ... &Brugerspecificeret mappe ... Delete Delete Fjern Share Folders share folders del mapper Select folder Vælg mappe FolderButton Sessions folder Find Din Sessions Mappe Sessions mappe FolderExplorer Folders Mapper Create New Folder Tryk her for at lave en ny mappe. Lav Ny Mappe Rename Folder... Tryk her for at give et nyt navn til mappe. Omdøb Mappe... Change Icon... Tryk her for at skifte ikon. Skift Ikon... Delete Folder... Tryk her for at slette en mappe Fjern Mappe... Rename Folder ... Change Icon ... Delete Folder ... Open picture Tryk her for at åbne et billede Åben billede Pictures Billeder X2Go Client X2Go Klient Folder Name: Angiv mappe navn Mappe Navn: Error Fejl Unable to remove " Var ikke muligt at fjerne Kan ikke fjerne " ". Folder is not empty. Please remove the contents of this directory and try again. ". Folder is not empty. Please remove content of folder and try again. Alle filer skal være fjernet fra den valge mappe. for at kunne fjerne den valgte mappe. Denne mappe er ikke tom. Venligst slet eller fjern alle filer i denne mappe og prøv igen. Delete folder " Tryk her for at fjerne denne mappe FJern mappe New Folder Ny Mappe HelpDialog Options Indstillinger HttpBrokerClient us us pc105/us pc105/us Error Fejl Login failed!<br>Please try again Login fejlede!<br>Prøv venligst igen Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Din session blev frakoblet. For at få adgang til din igangværende session, skal du gå til login siden eller trykke på "opdater" i din browser. Host key for server changed. It is now: Host nøgle for serveren er skiftet. Den er nu: For security reasons, connection will be stopped Af sikkerhedsmæssige årsager, bliver denne forbindelse lukket The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Host nøglen for denne server var ikke fundet, men en anden type nøgle eksistere. en ukendt person har muligt skiftet den standard server nøgle for at forvirre din klient til at tro at nøglen ikke findes Could not find known host file.If you accept the host key here, the file will be automatically created Kunne ikke finde kendte host fil. Hvis du accepterer serverens host nøgle, vil filen automatisk blive skabt The server is unknown. Do you trust the host key? Public key hash: Serveren er ukendt. Stoler du på denne host nøgle? offentlig nøgle hash: Host key verification failed Host nøgle bekræftelsen fejlede Yes Ja No Nej Verification code: Godkendelses kode: Enter passphrase to decrypt a key Indtast kodeord for at dekryptere en nøgle Authentication failed Autentificering fejlede <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Serveren bruger et ugyldigt sikkerheds certifikat</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Du bør ikke tilføje en undtagelse hvis du bruger en internet forbindelse som du ikke fuldstændig stoler på eller som du ikke er vant til at se advarsler for denne server.</p> Secure connection failed Sikker forbindelse fejlede For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Host key verification failed. Authentication failed. Login failed!<br>Please try again. Secure connection failed. Issued to: Udstedt til: Common Name(CN) Fælles Navn(CN) Organization(O) Organisation(O) Organizational Unit(OU) Organisations Enhed(OU) Serial Number Serie nummer Issued by: Udstedt af: Validity: Gyldighed: Issued on Udstedt den expires on udløber den Fingerprints: Fingeraftryk: SHA1 SHA1 MD5 MD5 Exit X2Go Client Luk X2Go-Klienten Add exception Tilføj undtagelse MediaWidget Sound Lyd Enable sound support Aktiver lyd support Start sound daemon Start lyd daemon Use running sound daemon Brug kørende Lyd daemon Use SSH port forwarding to tunnel sound system connections through firewalls brug SSH port forwarding til at føre lydsystemets forbindelse igennem firewalls Use default sound port Brug standard lyd port Sound port: Lyd port: Client side printing support Support til udskrifter på klientsiden ONMainWindow Starting x2goclient... Starter x2goclient... us us pc105/us pc105/us X2Go Client X2Go Klient connecting forbinder Internet browser Internet browser Email client Email klient OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Starter x2goclient i flyttebar tilstand... data filsti er: &Settings ... &Indstillinger ... Support ... Support ... About X2GO client Om X2GO klient Started x2goclient. Startede x2goclient. Can't load translator: Kan ikke åbne oversætter: Translator: Oversætter: installed. Installeret. Share folder... Del mappe... Suspend Suspender Terminate Afbryd Reconnect Genoptag Detach X2Go window Løsriv X2Go vinduet Minimize toolbar Minimere værktøjslinie Session: Session: &Quit &Afslut Ctrl+Q Ctrl+Q Quit Afslut &New session ... &Ny session ... Ctrl+N Ctrl+N Session management... Sessionshåndtering... Ctrl+E Ctrl+E &Create session icon on desktop... &Opret sessions ikon på skrivebordet... &Set broker password... &Sæt broker kodeord... &Connectivity test... &forbindelses test... Show toolbar Vis værktøjslinie About Qt Om Qt Ctrl+Q exit Ctrl+Q &Session &Session &Options &Indstillinger &Help &Hjælp Login: Login: Error Fejl Operation failed Handling fejlede Password changed Kodeord er ændret Wrong password! Forkert kodeord! Connecting to broker Forbinder til broker <b>Authentication</b> <b>Autentifikation</b> Restore Gendan Not connected Ikke forbundet Multimedia Multimedia Development Udvikling Education Undervisning Game Spil Graphics Grafik Network Netværk Office Kontor Settings Indstillinger System System Utility Værktøj Other Andet Left mouse button to hide/restore - Right mouse button to display context menu Venstre musknap for at skjule/gendanne - Højre musknap for at vise kontekst menu Closing x2goclient... Lukker x2goclient... Closed x2goclient. Lukket x2goclient. Please check LDAP settings Venligst undersøg LDAP indstillinger no X2Go server found in LDAP ingen X2Go server fundet i LDAP Create session icon on desktop Opret sessionsikon på skrivebord Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivebordsikoner kan indstilles til ikke at vise x2goklienten (skjult tilstand). Hvis du vil bruge denne feature skal du konfigurere login med gpg nøgle eller gpg smart card. Slå skjult tilstand til? Show session tray icon when running Vis session meddelelses ikon når programmer køre New Session Ny Session X2Go Link to session X2go Link til session No X2Go sessions found, closing. Ingen X2Go sessioner Fundet, Lukker. wrong value for argument"--clipboard" Ugyldig værdi for "--clipboard" argumentet SSH Error SSH Fejl SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH daemon kunne ikke blive started Du skal bruge SSH daemon for at kunne udskrive og dele filer Normalt, burde dette ikke ske da X2Go Klienten for Windows kommer med programmet sshd.exe. Vis du ser denne besked. send venlight en fejl rapport til X2Go bugtracker. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH daemon køre ikke. Du skal bruge SSH daemon for at kunne printe og dele filer Venligst forsprøg din system administrater i at give dig adgang til SSH servicen på din computer. SSH daemon failed to open the application's public host key. SSH daemon fejlede i at åbne programmet's offentlig vært's nøgle. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH daemon fejlede i at åbne programmet's offentlig nøgle til brug for at eksporter mapper og printer. SSH daemon failed to open the application's authoized_keys file. SSH daemon fejlede i at åbne programmet's autoriseret_nøgler filen. X2Go sessions not found X2go sessioner blev ikke fundet Are you sure you want to delete this session? Er du sikker på at du vil slette denne session? KDE KDE RDP connection RDP forbindelse XDMCP XDMCP Connection to local desktop Forbindelse til lokalt skrivebord on Starting connection to server: Starter forbindelse til server: to til Connection Error( Forbindelses Fejl( Couldn't find a SSH connection. Kunne ikke finde en SSH forbindelse. Enter passphrase to decrypt a key Indtast kodeord for at dekryptere en nøgle Host key for server changed. It is now: Værts nøgle for serveren er ændret. Den er nu: For security reasons, connection will be stopped Forbindelsen afbrydes af sikkerhedsårsager The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Serverens host key blev fundet, men en anden type nøgle eksisterer. En angriber kan ændre standardnøglen på serveren for at narre din klient til at tro at nøglen ikke eksisterer Could not find known host file.If you accept the host key here, the file will be automatically created Kunne ikke finde kendt host fil. Hvis du accepterer serverens host nøgle, vil filen automatisk blive skabt The server is unknown. Do you trust the host key? Public key hash: Serveren er ukendt. Stoler du på denne værts nøgle? Offentlig nøgle hash: Host key verification failed Værts nøgle bekræftelse fejlede Verification code: Godkendelses kode: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Dette kan være en indikation af mand i midten angreb. Det er muligt nogen lytter med på din forbindelse. Af sikkerheds grunde anbefaler vi du stopper forbindelsen. Vil du afslutte forbindelsen? Yes Ja No Nej If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Hvis du acceptere den nye vært nøgle, er sikkerheden på din forbindelse muligt blevet kompromitteret. Vil du gerne opdatere værts nøglen? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Værts nøglen for denne server blev ikke fundet, men en anden type af nøglen eksistere. En angreber kan ske at ændre standard nøglen for at forvirre din klient til at tro nøglen ikke eksistere. Af sikkerhedsmæssige årsager, er det anbefalet at du stopper forbindelsen. Vil du afslutte forbindelsen? Authentication failed: Godkendelse Fejlede: Authentication failed Godkendelse fejlede Enter password for SSH proxy Indtast kodeord til SSH proxy <b>Connection failed</b> <b>Forbindelsen mislykkedes</b> <b>Wrong password!</b><br><br> <b>Forkert kodeord!</b><br><br> Connection failed: Forbindelse Fejlede: - Wrong password. Forkert kodeord. unknown ukendt No server availabel Ingen server tilgængelig Server not availabel Server er ikke tilgængelig Select session: Vælg session: running kører suspended suspenderet Desktop Skrivebord single application enkelt applikation shadow session skygge session Information Information No accessible desktop found Intet tilgængeligt skrivebord fundet Filter Filtrer Select desktop: Vælg skrivebord: Warning Advarsel Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Din nuværende farvedybde er anderledes end din x2go sessions farvedybde. Dette kan skabe problemer med at genoptage sessionen og i de fleste tilfælde <b>vil du miste din session</b> og være nødt til at starte en ny! det anbefales kraftigt at skifte farvedybden på dit Skærmbillede til 24 or 32 24 eller 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit og genstart din X server før du genoptager din x2go session.<br>Vil du fortsætte alligevel? suspending suspenderer terminating afbryder <b>Wrong Password!</b><br><br> <b>Forkert Kodeord!</b><br><br> New session started Ny session er startet Session resumed Session genoptaget Unable to create folder: Ikke i stand til at lave mappe: Unable to write file: Kunne ikke skrive filen: Emergency exit. Nødudgang. Waiting for proxy to exit. Venter på at proxy afslutter. Failed, killing the proxy. Fejlede med at afslutte proxy. Wrong parameter: Forkerte parameter: Help Hjælp Pack Methodes Pakke Metoder Option is not availabel in this build Denne mulighed er ikke til tilgængelig i denne version Changelog Opdaterings Log Ændringslog Git Info Git Information Unable to create folder: Kunne ikke oprette mappe: Unable to write file: Kunne ikke skrive fil: Attach X2Go window Tilkobl X2Go vindue Unable to create SSL tunnel: Kunne ikke oprette SSL tunnel: Unable to create SSL Tunnel: Kunne ikke oprette SSL Tunnel: Finished Afsluttet starting starter resuming fortsætter Connection timeout, aborting Forbindelse fik timeout, afbryder aborting afbryder Are you sure you want to terminate this session? Unsaved documents will be lost Er du sikker på du vil afbryde denne session? Ugemte dokumenter vil gå tabt Session Session Display Skærmbillede Creation time Skabelsestid <b>Connection failed</b> : <b>Forbindelse mislykkedes</b> : (can't open file) (filen kan ikke åbnes) (file not exists) (filen eksisterer ikke) (directory not exists) (stien findes ikke) wrong value for argument"--link" Ugyldig værdi for "--link" argumentet wrong value for argument"--sound" Ugyldig værdi for "--sound" argumentet wrong value for argument"--geometry" Ugyldig værdi for "--geometry" argumentet wrong value for argument"--set-kbd" Ugyldig værdi for "--set-kbd" argumentet wrong value for argument"--ldap" Ugyldig værdi for "--ldap" argumentet wrong value for argument"--ldap1" Ugyldig værdi for "--ldap1" argumentet wrong value for argument"--ldap2" Ugyldig værdi for "--ldap2" argumentet wrong value for argument"--pack" Ugyldig værdi for "--pack" argumentet wrong parameter: Forkert parameter: Options Indstillinger Available pack methodes: Tilgængelige pakke metoder: RSA file empty. RSA filen er tom. Can not open key: Kan ikke åbne nøgle: Support Support </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode blev sponsoreret af <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Klient til brug med X2go's netværksbaserede computer miljø. Denne klient vil kunne forbinde til X2go servere og starte, stoppe, fortsætte og afslutte (igangværende) skrivebord's sessioner. X2Go-Klienten lagrer forskellige server forbindelser og kan automatisk lave forespørgsler til LDAP tjenester om autentificeringsdata. Den kan desuden bruges som fuldskærmslogin (erstatning for loginmanagers som xdm) Besøg venligst x2go.org for yderligere information. <b>X2Go Client V. <b>X2Go Client V. Please check LDAP Settings Venligst undersøg LDAP indstillinger No valid card found Intet gyldigt kort fundet Card not configured. Kort er ikke konfigureret. This card is unknown by X2Go system Denne kort er ukendt af X2Go systemet Unable to create file: Ikke i stand til at lave fil: Can't connect to X server Please check your settings Kan ikke forbinde til x server Undersøg venligst dine indstillinger Can't start X server Please check your settings Kan ikke starte X server Undersøg venligst dine indstillinger Can't start X Server Please check your installation Kan ikke starte X Server Undersøg venligst din installation Unable to execute: Kunne ikke udføre handling: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Fjernserveren understøtter ikke fil system eksportering igennem en SSH Tunnel Venligst opdater til en nyere version af x2goserver pakken Unable to read : Kunne ikke læses : Unable to write : Kunne ikke skrive : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Fejl ved hentning af vindue geomatri (vinduet lukkede)? X2Go Session X2Go Session wrong value for argument"speed" Ugyldig værdi for "speed" argumentet Password: Kodeord: Keyboard layout: Tastatur layout: Ok Ok Cancel Annuller <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sessions ID:<br>Server:<br>Brugernavn:<br>Skærmbillede:<br>Skabelsestid:<br>Status:</b> Applications... Applikationer... Starting X2Go Client... Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! no X2Go Server found in LDAP Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" Applications ... Abort Afbryd Show details Vis detaljer Resume Fortsæt New Ny Full access Fuld adgang View only Kun synlig Status Status Command Kommando Type Type Server Server Client IP Klient IP Session ID Sessions ID User Bruger Only my desktops Kun mine skrivebord SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH daemon failed to open the application's authorized_keys file. sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd er ikke startet, du får brug for sshd til udskrifter og fildeling du kan installere sshd med <b>sudo apt-get install openssh-server</b> Restore toolbar Gendan værktøjslinie <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Klik på denne knap&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;for at gendanne værktøjslinien&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Udskrift - X2Go Klient Print Udskrift You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) You've deactivated the x2go client printing dialog. Du har deaktiveret x2go klientens udskrifts dialog. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Du kan genaktivere denne dialog i x2goclient indstillings dialogen (Menu -> Indstilinger -> Indstil PrintProcess Save File Gem Filen PDF Document (*.pdf) PDF Dokument (*.pdf) Failed to execute command: Udføring af kommando fejlede: Printing error. Printing error Udskriftsfejl PrintWidget Form Formel Print Udskriv View as PDF Se som PDF Print settings Printer indstillinger Printer: Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Print med Windows standard PDF Viewer (Viewer applikationen skal være installeret) Printer command: Printer kommando: ... ... Viewer settings Fremviser indstillinger Open in viewer application Åben i fremviser applikationen Command: Kommando: Save to disk Gem til disk Show this dialog before start printing Vis denne dialog før udskrivning starter 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>. Venligst konfiguere dine printerindstillinger på klientsiden.<br><br>Hvis du vil udskrive den skabte fil, vil du få brug for en ekstern applikation. Du kan typisk bruge <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> og <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Du kan finde yderligere informationer <a href="http://www.x2go.org/index.php?id=49">her</a>. 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>. PrinterCmdDialog Printer command Printer kommando Command Kommando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Indtast din brugerdefineret printer kommando. f.eks.: kprinter lpr -P hp_laserjet Output format Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Vælg venligst det rette format til udskriftsfil (i forhold til dit udskrifts miljø - Hvis du bruger CUPS kan du bruge PDF) PDF PDF PS PS Data structure Data struktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): vælg venligst den rette metode til udskriftsfilinput (nogle kommandoer accepterer udskriftsfiler som program muligheder, nogle venter på data fra standard input): standard input (STDIN) standard input (STDIN) Specify path as program parameter Specificer sti som program parameter Please enter your customized or individual printing command. Example: Indtaste venligst din brugerdefineret eller individuelle udskriftskommando f.eks: <Path to gsprint.exe> -query -color ? <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Ingen svar modtaget fra fjern server. Vil du afslutte den nuværende session? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Sessions præferencer... Create session icon on desktop... Opret sessions ikon på skrivebordet... Session preferences ... Create session icon on desktop ... Delete session Fjern session Session actions Sessions handlinger Select type Vælg type Select resolution Vælg opløsning Toggle sound support Til/fravælg lyd understøttelse New Session Ny Session running kører suspended suspenderet KDE KDE RDP connection RDP forbindelse XDMCP XDMCP Connection to local desktop Forbindelse til lokalt skrivebord Published applications Udgivet Programmer fullscreen Fuldskærm Display Skærmbillede window vindue Maximum Maksimum Enabled Aktiveret Disabled Deaktiveret SessionExplorer Back Tilbage Create session icon on desktop Opret sessions ikon på skrivebordt Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivebords ikoner kan indstilles til ikke at vise x2goklienten (skjult tilstand). Hvis du vil bruge denne funktion skal du konfigurere login med gpg nøgle eller gpg smart card. Brug x2goclient skjult tilstand? Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running Vis session ikon i ikon bakke når programmet køre New Session Ny Session X2Go Link to session X2Go Link til session Are you sure you want to delete this session? Er du sikker på at du vil fjerne denne session? SessionManageDialog E&xit E&xit &New session &Ny session &Session preferences &Sessions præferencer &Delete session &Fjern session &Create session icon on desktop ... &Create session icon on desktop... &Opret sessions ikon på skrivebordet... Delete Delete Fjern Session management Sessions håndtering SessionWidget Session name: Sessions navn: << change icon << skift ikon Path: Sti: &Server &Server Host: Vært: Login: Login: SSH port: SSH port: Use RSA/DSA key for ssh connection: Brug RSA/DSA nøgle til ssh forbindelse: Try auto login (ssh-agent or default ssh key) Prøv automatisk login (ssh-agent eller standard ssh nøgle) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) autentificering Delegation of GSSAPI credentials to the server Delegation af GSSAPI legitimations oplysninger til serveren Use Proxy server for SSH connection Brug Proxy Server til SSH-forbindelse Proxy server Proxy server SSH SSH HTTP HTTP Same login as on X2Go Server Samme login som på X2Go Server Same password as on X2Go Server Samme kodeord som på X2Go Server RSA/DSA key: RSA/DSA nøgle: X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. ssh-agent or default ssh key ssh-agent eller standard ssh nøgle Type: Type: Port: Port: &Session type &Sessions type Session type: Sessions type: Connect to Windows terminal server Forbind til Windows terminal server XDMCP XDMCP Connect to local desktop Forbind til lokalt skrivebord Custom desktop Brugerdefineret skrivebord Single application Enkelt applikation Published applications Udgivet applikationer Command: Kommando: Advanced options... Avancerede indstillinger... Path to executable Sti til Program Direct RDP Connection Direkt RDP Forbindelse RDP port: RDP port: Open picture Åben billede Pictures Billeder Open key file Åben nøglefil Try auto login (via SSH Agent or default SSH key) SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection All files Alle filer Error Fejl x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2go klienten kører i bærbar tilstand. Du bør bruge en sti på din usb enhed så du kan få adgang til dine data uanset hvor du er Server: Server: XDMCP server: XDMCP server: rdesktop command line options: rdesktop kommandolinie parametre: New session Ny session SettingsWidget &Display &Skærmbillede &Keyboard &Tastatur Sound Lyd &Clipboard Mode &Clipboard Tilstand Bidirectional copy and paste tovejs kopier og indsæt Copy and paste from client to server Kopier og indsæt fra klient til server Copy and paste from server to client Kopier og indsæt fra server til klient Disable clipboard completely Deaktivere clipboard fuldstendigt Auto detect keyboard settings Auto opdage tastetur instillinger Do not configure keyboard Konfigurer ikke tasteturet Configure keyboard Konfigurer tasteturet Model: model: Layout: Opsætning: Variant: Variant: RDP Client RDP Klient &Clipboard mode Fullscreen Fuldskærm Custom Tilpasset Window Vindue Use whole display Bruge hele skærmbilledet Maximum available Maximalt tilgængelige Set display DPI Sæt Skærmbillede DPI Xinerama extension (support for two or more physical displays) Xinerama udvidelse (understøtter to eller flere fysiske displays) Width: Bredde: Height: Højde: &Display: &Skærmbillede: &Identify all displays &Identificer alle skærme Auto-detect keyboard settings RDP client Keep current keyboard Settings Behold nuværende tastaturindstillinger Keyboard layout: Tastatur layout: Keyboard model: Tastaturmodel: Enable sound support Aktiver lyd support Start sound daemon Start lyd daemon Use running sound daemon Brug kørende Lyd daemon Use SSH port forwarding to tunnel sound system connections through firewalls brug SSH port forwarding til at føre lydsystemets forbindelse igennem firewalls Use default sound port Brug standard lyd port Sound port: Lyd port: Client side printing support Support til udskrifter på klientsiden Additional parameters: Yderligere paramentre: Command line: Kommandolinje: us us pc105/us pc105/us password kodeord ShareWidget &Folders &Mapper Path Sti Automount Automonter Add Tilføj Delete Fjern Path: Sti: Filename encoding Encodning af filnavne local: Lokalt: remote: Fjern: Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Use ssh port forwarding to tunnel file system connections through firewalls Brug ssh port forwarding til at føre filsystemsforbindelser igennem firewalls Select folder Vælg mappe Error Fejl x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2go klienten kører i bærbar tilstand. Du bør bruge en sti på din usb enhed så du kan få adgang til dine data uanset hvor du er WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error SSH proxy forbindelses fejl SSH proxy connection error. SSH proxy connection error: SSH proxy forbindelses fejl: Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. Failed to create SSH proxy tunnel kunne ikke skabe SSH proxy tunnel Can not initialize libssh Kunne ikke starte libssh Can not create ssh session Kunne ikke skabe ssh session Can not connect to proxy server Kan ikke forbinde til proxy server Can not connect to Kunne ikke forbinde til Authentication failed Autentificering fejlede channel_forward_listen failed channel_forward_listen fejlede Failed to start SSH Client. Please check your installation and GSSApi configuration kunne ikke starte SSH Klient. Venligst tjek din installation og GSSApi konfiguration Check your GSSApi configuration or choose another authentication method Tjek din GSSApi konfiguration eller vælg en anden godkendelses metode Can not open file Kan ikke åbne fil Can not create remote file Kan ikke skabe fjern fil Can not write to remote file Kan ikke skrive til fjern fil Cannot connect to kan ikke forbinde til channel_open_forward failed channel_open_forward fejlede channel_open_session failed channel_open_sesion fejlede channel_request_exec failed channel_request_exec fejlede error writing to socket Fejl ved skrivning til socket error reading channel fejl ved læsning af kanal channel_write failed channel_write fejlede error reading tcp socket fejl i læsning af tcp socket SshProcess Error creating socket Fejl i skabelse af socket Error creating socket. Error binding Fejl i binding XSettingsWidget Open File Åben Fil Executable (*.exe) eksekverbar (*.exe) XSettingsWidgetUI Form Formel You must restart the X2Go Client for the changes to take effect Du skal genstarte X2Go klienten før ændringerne træder i kraft use integrated X-Server brug integreret X-Server do not use primary clipboard brug ikke den primær udklipsholder use custom X-Server brug tilpasset X-Server custom X-Server tilpas X-Server executable: eksekverbar: start X-Server on X2Go Client start start X-Server sammen med X2Go klient command line options: Kommandolinje parametre: X-Server command line options X-Server Kommandolinje parametre window mode: Vindue tilstand: fullscreen mode: Fuldskærms tilstand: single application: Enkelt applikation: whole display: x2goclient-4.0.5.1/res/i18n/x2goclient_de.ts0000644000000000000000000067602612675050177015324 0ustar AppDialog Published Applications Veröffentlichte Anwendungen Search: Suche: &Start &Starten &Close S&chließen Multimedia Unterhaltungsmedien Development Entwicklung Education Bildung Game Spiele Graphics Grafik Network Internet Office Büroprogramme Settings Einstellungen System Systemwerkzeuge Utility Dienstprogramme Other Sonstige BrokerPassDialogUi Dialog Dialog Old password: Altes Kennwort: New password: Neues Kennwort: Confirm password: Kennwort wiederholen: TextLabel TextLabel BrokerPassDlg Passwords do not match Kennwörter stimmen nicht überein CUPSPrintWidget Idle Inaktiv Printing Druckt Stopped Angehalten Yes Ja No Nein Form Form Name: Name: Properties Eigenschaften State: Status: Accepting jobs: Aufträge werden angenommen: Type: Typ: Location: Adresse: Comment: Kommentar: CUPSPrinterSettingsDialog No option selected Keine Einstellung ausgewählt This value is in conflict with another option. Dieser Wert erzeugt einen Konflikt mit einer anderen Option. Options conflict. Einstellungskonflikt. This value is in conflict with other option Dieser Wert erzeugt einen Konflikt mit einer anderen Option Options conflict Einstellungskonflikt ConTest Connectivity test Verbindungstest HTTPS connection: HTTPS-Verbindung: SSH connection: SSH-Verbindung: Connection speed: Verbindungsgeschwindigkeit: Failed Fehlgeschlagen 0 Kb/s 0 Kb/s OK Ok Socket operation timed out. Zeitüberschreibung bei Socket-Operation. Socket operation timed out Zeitüberschreibung bei Socket-Operation Failed: Fehlgeschlagen: ConfigDialog Use LDAP Benutze LDAP LDAP Settings LDAP Einstellungen Server URL: Server URL: BaseDN: BaseDN: &OK &OK &Cancel A&bbrechen Failover Server 1 URL: Failover Server 1 URL: Failover Server 2 URL: Failover Server 2 URL: X-Server Settings X-Server Konfiguration Custom X-Server Eigener X-Server Reset to defaults Voreinstellungen Command: Befehl: Display: Displaynummer: Settings Konfiguration Applications (*.exe);;All Files (*.*) Anwendungen (*.exe);;Alle Dateien (*.*) Arguments: Argumente: Working directory: Arbeitsverzeichnis: X11 Application: X11 Applikation: X11 Version: X11 Version: Find X11 Application Suche X11 Applikation Warning Warnung x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient konnte keine passende X11 Installation finden. Bitte Installieren Sie Apple X11 oder wählen Sie den Pfad zu einer gültigen Installation Your are using X11 (Apple X-Window Server) version Sie verwenden die Apple X11 Umgebung in der Version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Es ist bekannt, dass bei dieser Version Darstellungsprobleme bei 24 Farbtiefe auftreten. Wir empfehlen Ihnen ein Update auf eine neuere Version (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Unter dem angegebenden Pfad konnte keine gültige X11 Installation gefunden werden Clientside SSH Port For File System Export Usage: SSH-Port für die Dateisystemfreigabe auf Clientseite: LDAP settings LDAP Einstellungen Failover server 1 URL: URL von Failover-Server 1: Failover server 2 URL: URL von Failover-Server 2: X-Server settings X-Server Konfiguration X11 application: X11 Applikation: X11 version: X11-Version: Find X11 application Suche X11-Applikation Clientside SSH port for file system export usage: SSH-Port für die Dateisystemfreigabe auf Clientseite: General Allgemein Printing Druck Start session embedded inside website Sitzung innerhalb einer Webseite anzeigen Display icon in system tray Symbol im Systemabschnitt der Kontrolleiste anzeigen Hide to system tray when minimized In den Systemabschnitt der Kontrolleiste minimieren Hide to system tray when closed Statt Schließen in den Systemabschnitt der Kontrollleiste minimieren Hide to system tray after connection is established Bei Verbindung in den Systemabschnitt der Kontrollleiste minimieren Restore from system tray after session is disconnected Nach Verbindungsende wiederherstellen X.Org Server settings X.Org-Server-Konfiguration Clientside (local) SSH daemon port for file system export usage: (lokaler) SSH-Daemon-Port für die Dateisystemfreigabe auf Clientseite: Advanced options Erweiterte Einstellungen Defaults Voreinstellungen Pulseaudio settings Pulseaudio-Einstellungen Disable audio input Audio-Eingang deaktivieren <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> <font size="5">Sie müssen den X2GoClient neu starten, um die Änderungen zu aktivieren</font><br><br> Your XQuartz version is too old. Die Version von XQuartz ist zu alt. Your are using XQuartz (X Window System Server for OS X) version Sie verwenden XQuartz (X-Window-System-Server für OS X) in der Version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> . Diese Version verursacht Probleme mit X-Anwendungen, wenn 24-Bit-Farbtiefe gesetzt sind. Sie sollten Ihre X11-Umgebung aktualisieren. MacPorts-Benutzer gehen bitte gemäß der folgenden Anleitung vor: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Benutzer, die XQuartz über das Installationspaket installiert haben, können aktualisierte Versionen hier herunterladen: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. Keine gültige XQuartz-Anwendung ausgewählt. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> Sie haben keine gültige XQuartz-Anwendung ausgewählt. Bitte versuchen Sie es erneut. Übliche Installationspfade sind zum Beispiel: <center><b>/Programme/Dienstprogramme/X11.app</b></center> <center><b>/Programme/Dienstprogramme/XQuartz.app</b></center> <center><b>/Programme/MacPorts/X11.app</b></center> &Connection &Verbindung &Input/Output E&in-/Ausgabe &Media &Medien &Settings &Einstellungen ConnectionWidget &Connection speed &Verbindungsgeschwindigkeit Connection speed: Verbindungsgeschwindigkeit: C&ompression K&ompression Method: Methode: Compression method: Komprimierungsmethode: Image quality: Bildqualität: CupsPrinterSettingsDialog Dialog Dialog General Allgemein Page size: Seitenformat: Paper type: Papiertyp: Paper source: Papiereinzug: Duplex Printing Beidseitiger Druck None Kein Duplexdruck Long side Lange Seite Short side Kurze Seite Driver settings Treiber-Einstellungen Option Option Value Wert No option selected Keine Einstellung ausgewählt text text EditConnectionDialog &Session &Sitzung &Connection &Verbindung &Input/Output E&in-/Ausgabe &Media &Medien &OK &OK &Cancel Ab&brechen Defaults Voreinstellungen Session Name: Sitzungsname: << change Icon << Symbol ändern &Server &Server Host: Host: Use RSA/DSA key for ssh connection: RSA-/DSA-Schlüssel verwenden (ssh): &Desktop Session &Desktop Sitzung Custom Eigener Command: Befehl: &Connection Speed &Verbindungsgeschwindigkeit C&ompression K&ompression Method: Methode: Image Quality: Bildqualität: &Display &Display Fullscreen Vollbild Width: Breite: Height: Höhe: &Keyboard &Tastatur Keep current Keyboard Settings Tastaturlayout behalten Keyboard Layout: Tastaturlayout: Keyboard Model: Tastatur: Sound Audio Enable Sound Support Audiounterstützung aktivieren Automount automatisch verbinden Add Hinzufügen Delete Löschen New Session Neue Sitzung Session Preferences - Sitzungsvoreinstellungen - Open Key File Öffne Schlüssel All Files alle Dateien us de pc105/us pc105/de &Shared Folders &freigegebene Ordner Login: Login: &Folders &Ordner Path Pfad Path: Pfad: Open Picture Öffne Bild Pictures Bilder Select Folder wähle Ordner SSH Port: SSH-Port: Path to executable Pfad zum Programm Window Fenster &Shared folders &freigegebene Ordner Session name: Sitzungsname: << change icon << Symbol ändern SSH port: SSH-Port: &Session type &Sitzungsart Session type: Sitzungsart: Custom desktop Andere Desktopumgebung Single application Anwendung &Connection speed &Verbindungsgeschwindigkeit Connection speed: Verbindungsgeschwindigkeit: Compression method: Methode: Image quality: Bildqualität: Keep current keyboard Settings Tastaturlayout behalten Keyboard layout: Tastaturlayout: Keyboard model: Tastatur: Enable sound support Audiounterstützung aktivieren Start sound daemon Starte Sound Server Use running sound daemon Benutze existierenden Sound Server Use SSH port forwarding to tunnel sound system connections through firewalls Benutze Port-Weiterleitung über Tunnel um Audiosignale über Firewalls zu verbinden Use default sound port Benutze standard Audio Port Sound port: Audio Port: Use ssh port forwarding to tunnel file system connections through firewalls Benutze SSH-Port-Weiterleitung über Tunnel um Dateisysteme über Firewalls zu verbinden New session Neue Sitzung Session preferences - Sitzungsvoreinstellungen - Open picture Öffne Bild Open key file Öffne Schlüssel All files Alle Dateien Select folder Wähle Ordner Client side printing support Clientseitige Druckunterstützung Connect to Windows terminal server Verbindung mit Windows Terminalserver herstellen Advanced options... Erweiterte Einstellungen... Server: Server: rdesktop command line options: rdesktop Kommandozeilenoptionen: ExportDialog &Cancel A&bbrechen &Preferences ... &Voreinstellungen ... Delete Delete lösche Share Folders Ordner freigeben &share &Freigeben &Custom Folder ... &Anderer Ordner ... share Folders Ordner freigeben Select Folder wähle Ordner &Custom folder ... &Anderer Ordner ... share folders Ordner freigeben Select folder Ordner auswählen FolderButton Sessions folder Sitzungsordner FolderExplorer Folders Ordner Create New Folder Neuen Ordner erstellen Rename Folder... Ordner umbenennen... Change Icon... Symbol ändern... Delete Folder... Ordner löschen... Rename Folder ... Ordner umbenennen ... Change Icon ... Symbol ändern ... Delete Folder ... Ordner löschen ... Open picture Öffne Bild Pictures Bilder X2Go Client X2Go Client Folder Name: Ordnername: Error Fehler Unable to remove " Kann den Ordner " ". Folder is not empty. Please remove the contents of this directory and try again. " nicht entfernen. Der Ordner ist nicht leer. Bitte löschen Sie den Inhalt des Ordners und versuchen Sie es erneut. ". Folder is not empty. Please remove content of folder and try again. ". nicht löschen. Der Ordner ist nicht leer. Bitte löschen Sie den Inhalt des Ordners und versuchen Sie es erneut. Delete folder " Lösche Ordner " New Folder Neuer Ordner HelpDialog Options Einstellungen HttpBrokerClient us de pc105/us pc105/de Host key for server changed. It is now: Host-Key des Servers hat sich geändert. Er lautet jetzt: For security reasons, connection will be stopped Aus Sicherheitsgründen wird der Verbindungsaufbau abgebrochen The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Der Hostkey des Servers konnte nicht gefunden werden aber ein anderer Schlüsseltyp existiert. Ein Angreifer kann den Schlüssel verändert haben, um dem Client vorzutäuschen, dass der Schlüssel nicht existiert Could not find known host file.If you accept the host key here, the file will be automatically created Die ,,Known Host''-Datei konnte nicht gefunden werden. Wenn Sie den Host-Key hier akzeptieren, dann wird die Datei automatisch erstellt. The server is unknown. Do you trust the host key? Public key hash: Der Server ist unbekannt. Vertrauen Sie diesem Host-Key? Öffentlicher Schlüssel: Host key verification failed Hostkey Überprüfung fehlgeschlagen Yes Ja No Nein Verification code: Bestätigungscode: Enter passphrase to decrypt a key Bitte Kennwort eingeben, um den Key zu entschlüsseln Authentication failed Anmeldung fehlgeschlagen Error Fehler Login failed!<br>Please try again Anmeldung fehlgeschlagen!<br>Bitte noch einmal versuchen <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Server benutzt ein ungültiges Zertifikat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Sie sollten keine Ausnahme setzen, wenn Sie sich in einem Netzwerk befinden, dem sich nicht vertrauen oder wenn Sie für diese Verbindung bereits eine Ausnahme akzeptiert haben.</p> Secure connection failed Sichere Verbindung fehlgeschlagen For security reasons, the connection attempt will be aborted. Aus Sicherheitsgründen wird der Verbindungsversuch abgebrochen. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Der Host-Key des Servers konnte nicht gefunden werden, aber ein anderer Schlüsseltyp existiert. Ein Angreifer kann den Schlüssel verändert haben, um dem Client vorzutäuschen, dass der Schlüssel nicht existiert. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Die „Known Hosts“-Datei konnte nicht gefunden werden. Wenn Sie den Host-Key hier akzeptieren, dann wird die Datei automatisch erstellt. Host key verification failed. Host-Key-Überprüfung fehlgeschlagen. Authentication failed. Authentisierung fehlgeschlagen. Login failed!<br>Please try again. Anmeldung fehlgeschlagen!<br>Bitte noch einmal versuchen. Secure connection failed. Sichere Verbindung fehlgeschlagen. Issued to: Ausgestellt für: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serial Number Issued by: Ausgestellt von: Validity: Validity: Issued on Issued on expires on expires on Fingerprints: Fingerabdrücke: SHA1 SHA1 MD5 MD5 Exit X2Go Client X2GoClient beenden Add exception Ausnahme hinzufügen Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Die aktuelle Sitzung wurde unterbrochen. Um erneut Zugriff auf ihre Sitzung zu erhalten, kehren Sie zur Startseite zurück oder aktualisieren Sie die aktuelle Seite über den Browserbefehl "Aktuelle Seite neu laden". MediaWidget Sound Audio Enable sound support Audiounterstützung aktivieren Start sound daemon Starte Sound-Server Use running sound daemon Benutze existierenden Sound-Server Use SSH port forwarding to tunnel sound system connections through firewalls Benutze Port-Weiterleitung über Tunnel um Audiosignale über Firewalls zu verbinden Use default sound port Benutze Standard-Audio-Port Sound port: Audio-Port: Client side printing support Clientseitige Druckunterstützung ONMainWindow us de pc105/us pc105/de Support ... Support ... Session: Sitzung: &Quit &Beenden Ctrl+Q Strg+Q Quit Beenden &New Session ... &Neue Sitzung ... Ctrl+N Strg+N Session Management... Sitzungsverwaltung... Ctrl+E Strg+E LDAP &Settings ... LDAP &Konfiguration ... Restore toolbar Werkzeugleiste wieder anzeigen About X2GO Client Über X2GoClient About Qt Über Qt Session Sitzung Ctrl+Q exit Strg +Q &Session &Sitzung &Options &Einstellungen &Help &Hilfe Verification code: Bestätigungscode: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Das kann ein Anzeichen für einen Man-in-the-Middle-Angriff sein. Vielleicht werden Sie gerade von jemandem belauscht. Aus Sicherheitsgründen ist es angeraten, die Verbindung zu beenden. Möchten Sie die Verbindung abbrechen? If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Wenn Sie den neuen Host-Key akzeptieren, kann das die Sicherheit Ihrer Verbindung gefährden. Wollen Sie den Host-Key aktualisieren? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Der Host-Key dieses Servers konnte nicht gefunden werden, aber eine anderer Schlüsseltyp für ihn ist bereits vorhanden. Ein Angreifer könnte den Standard-Key des Servers geändert haben, um Ihren Client glauben zu machen, der Key wäre noch nicht vorhanden. Aus Sicherheitsgründen ist es angeraten, die Verbindung zu beenden. Möchten Sie die Verbindung abbrechen? New session started Neue Sitzung gestartet Session resumed Sitzung fortgesetzt Unable to create folder: Ordner kann nicht erstellt werden: Unable to write file: Datei kann nicht geschrieben werden: Emergency exit. Notbeendung. Waiting for proxy to exit. Darauf warten, dass der Proxy sich beendet. Failed, killing the proxy. Fehlgeschlagen, töte Proxy. wrong value for argument"--clipboard" unerwarteter Wert "--clipboard" Wrong parameter: Falscher Parameter: Help Hilfe Pack Methodes Packmethoden Option is not availabel in this build Option in diesem Build nicht verfügbar Changelog Changelog Git Info Git-Info RSA file empty. RSA-Datei leer. Can not open key: Schlüssel kann nicht geöffnet werden: Card not configured. Smartcard nicht konfiguriert. Error getting window geometry (window closed)? Fehler beim Ermitteln der Fenstergeometrie. (Fenster geschlossen?) Password: Passwort: Keyboard layout: Tastaturlayout: Ok Ok Cancel Abbrechen Applications... Anwendungen... Invalid reply from broker Ungültige Antwort vom Session-Broker Error Fehler KDE KDE on auf Login: Benutzername: Select session: Wähle Sitzung: Resume Fortfahren Suspend Anhalten Terminate Beenden New Neu Display Display Status Status Server Server Creation Time Startzeit Client IP Client-IP running aktiv suspended angehalten Unable to create Folder: Ordner kann nicht erzeugt werden: Unable to write File: Datei kann nicht geschrieben werden: Unable to create SSL Tunnel: SSL Tunnel kann nicht erzeugt werden: Warning Warnung connecting verbinde Starting X2Go Client... X2GoClient wird gestartet ... Starting X2Go Client in portable mode. Data directory is: Portabler X2GoClient wird gestartet. Datenverzeichnis ist: About X2Go Client Über X2GoClient Started X2Go Client. X2GoClient wurde gestartet. found. gefunden. English language requested, not loading translator. Sounds like something you wouldn't want translated. English language requested, not loading translator. Non-fatal: can't load translator: Kann Übersetzer nicht laden (nicht fatal): Trying to load language with lower preference, if existent. Versuche eine Sprache niedrigerer Präferenz zu laden, falls vorhanden. Session management ... Sitzungsverwaltung ... &Create session icon on desktop ... &Desktopsymbol erzeugen ... &Set broker password ... &Kennwort für Session-Broker setzen ... &Connectivity test ... &Verbindungstest ... Share folder ... Ordner freigeben ... A left click hides or restores the window. A right click displays the context menu. Klick mit der linken Maustaste, um das Fenster zu verstecken und wiederherzustellen. Klick mit der rechten Maustaste zeigt das Kontextmenü. Closing X2Go Client ... X2GoClient wird geschossen ... Finished X2Go Client closing hooks. Alle Hooks, die beim Beenden von X2GoClient abgearbeitet werden sollten, wurden abgearbeitet. Broker authentication failed! Broker-Authentisierung fehlgeschlagen! Connection error: Verbindungsfehler: Couldn't find an SSH connection. Konnte keine SSH Verbindung finden. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Das kann ein Anzeichen für einen Man-in-the-Middle-Angriff sein. Vielleicht werden Sie gerade von jemandem belauscht. Aus Sicherheitsgründen ist es angeraten, die Verbindung zu beenden. Möchten Sie die Verbindung abbrechen? Host key verification failed. Host-Key-Überprüfung fehlgeschlagen. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Der Host-Key dieses Servers konnte nicht gefunden werden, aber ein anderer Schlüsseltyp für ihn ist bereits vorhanden. Ein Angreifer könnte den Standard-Key des Servers geändert haben, um Ihren Client glauben zu machen, der Key wäre noch nicht vorhanden. Aus Sicherheitsgründen ist es angeraten, die Verbindung zu beenden. Möchten Sie die Verbindung abbrechen? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Die „Known Hosts“-Datei konnte nicht gefunden werden. Wenn Sie den Host-Key hier akzeptieren, dann wird die Datei automatisch erstellt. Authentication failed. Authentisierung fehlgeschlagen. <b>Connection failed.</b> <b>Verbindung fehlgeschlagen.</b> No server available. Es konnte kein Server gefunden werden. Server not available. Server nicht verfügbar. No accessible desktop found. Kein freigegebener Desktop gefunden. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to Die aktuell verwendete Farbtiefe unterscheidet sich von der der wiederherzustellenden Sitzung. Der Versuch, die Sitzung fortzuführen kann zu Fehlern führen, inbesondere dem <b>Verlust der ganzen Sitzung</b>. Um Fehler zu vermeiden wird empfohlen, die aktuelle Farbtiefe auf bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? bit zu ändern und den verwendeten X.Org-Server neu zu starten, bevor Sie sich mit der Sitzung verbinden.<br />Trotzdem versuchen, die Sitzung fortzuführen? Unable to create SSH tunnel for X2Go session (NX) startup: Kann keinen SSH-Tunnel für den Start der X2Go-Sitzung (NX) erstellen: Unable to create SSH tunnel for audio data: Kann keinen SSH-Tunnel für Audiodaten erstellen: failed to start. konnte nicht gestartet werden. This likely means the binary is not available. The current search path is: Das bedeutet sehr wahrscheinlich, dass die ausführbare Datei nicht verfügbar ist. Der aktuelle Suchpfad lautet: returned a non-zero exit code or crashed otherwise. lieferte einen von null abweichenden Exit-Code zurück oder ist auf andere Weise abgestürzt. Execution failed, exit code was: Ausführung fehlgeschlagen, der Exit-Code lautete: didn't start up in time. startete nicht rechtzeitig. This error shouldn't come up. Dieser Fehler sollte nie auftreten. didn't accept a write operation. hat eine Schreiboperation nicht akzeptiert. It is probably not running correctly or crashed in-between. Es läuft vermutlich nicht richtig, oder ist zwischendurch abgestürzt. Unable to read from xmodmap. Kann nicht von xmodmap lesen. encountered an unknown error during start up or execution. ist ein unbekannter Fehler während des Starts oder während der Ausführung aufgetreten. experienced an undefined error. trat ein undefinierter Fehler auf. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. X2GoClient wird sich nun beenden. Bitte melden Sie den Fehler wie auf der <a href="http://wiki.x2go.org/doku.php/wiki:bugs">Wikiseite zur Fehlerberichterstattung</a> beschrieben. Proxy didn't terminate after 3 seconds. Killing the proxy. Der Proxy hat sich nicht nach 3 Sekunden beendet. Proxy wird nun zwangsbeendet. Closing X2Go Client because it was started in hidden mode. Schließe den X2GoClient, weil er im versteckten Modus gestartet wurde. Closing X2Go Client because the --close-disconnect parameter was passed. Schließe den X2GoClient, weil der Parameter --close-disconnect angegeben wurde. starting starte resuming aktiviere Connection timeout, aborting Zeitüberschreitung, breche ab aborting breche ab SSH daemon failed to open the application's authorized_keys file. Der SSH-Dienst konnte die authorized_keys-Datei der Anwendung nicht öffnen. <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation Time:<br>Status:</b> <b>Sitzungs ID:<br>Server:<br>Login:<br>Display:<br>Startzeit:<br>Status:</b> Abort Abbruch Show Details Zeige Details (can't open file) (kann Datei nicht öffnen) (file not exists) (Datei existiert nicht) (directory not exists) (Verzeichnis existiert nicht) wrong value for argument"--link" unerwarteter Wert "--link" wrong value for argument"--sound" unerwarteter Wert "--sound" wrong value for argument"--geometry" unerwarteter Wert "--geometry" wrong value for argument"--set-kbd" unerwarteter Wert "--set-kbd" wrong value for argument"--ldap" unerwarteter Wert "--ldap" wrong value for argument"--pack" unerwarteter Wert "--pack" wrong parameter: unerwarteter Wert: Available pack methodes: Liste aller Packmethoden: Support Support </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Please check LDAP Settings Bitte überprüfen Sie die LDAP Einstellungen no X2Go Server found in LDAP LDAP enthält keinen X2GoServer Are you sure you want to delete this Session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? <b>Connection failed</b> <b>Verbindung fehlgeschlagen</b> No Server availabel es konnte kein Server gefunden werden Session ID Sitzungs-ID suspending anhalten terminating beende <b>Connection failed</b> : <b>Verbindung fehlgeschlagen</b> : Share Folder... Ordner freigeben... Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to read : Lesefehler: Unable to write : Schreibfehler: <b>X2Go Client V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2GoClient V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten Sie auf x2go.org. <b>Wrong Password!</b><br><br> <b>Falsches Passwort!</b><br><br> wrong value for argument"--ldap1" unerwarteter Wert "--ldap1" wrong value for argument"--ldap2" unerwarteter Wert "--ldap2" Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to create file: Datei konnte nicht erzeugt werden: No valid card found Es wurde keine gültige Karte gefunden This card is unknown by X2Go System Diese Karte ist dem X2Go-System unbekannt &Settings ... &Konfiguration ... Options Einstellungen Can't read host rsa key: RSA Schlüssel konnte nicht gelesen werden: Can't connect to X-Server Verbindung zu X-Server konnte nicht hergestellt werden Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Verbindung zu X-Server konnte nicht hergestellt werden Bitte überprüfen Sie Ihre Einstellungen Can't start X-Server X-Server konnte nicht gestartet werden Can't start X Server Please check your settings X-Server konnte nicht gestartet werden Überprüfen Sie Ihre Einstellungen Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Die aktuell verwendete Farbtiefe unterscheidet sich von der der wiederherzustellenden Sitzung. Der Versuch, die Sitzung fortzuführen kann zu Fehlern führen, inbesondere dem <b>Verlust der ganzen Sitzung</b>. Um Fehler zu vermeiden wird empfohlen, die aktuelle Farbtiefe auf 24 or 32 24 oder 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit zu ändern und den verwendeten X-server neu zu starten, bevor Sie sich mit der Sitzung verbinden. Trotzdem versuchen die Sitzung fortzuführen? Yes Ja No Nein <b>X2Go Client V. <b>X2GoClient V. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. OpenOffice.org Terminal Eingabeaufforderung unknown unbekannt Command Befehl Type Typ Desktop Desktopumgebung single application Anwendung shadow session Shadow Session <br>Sudo configuration error <br>Fehler in der Sudo Konfiguration Unable to execute: Befehl konnte nicht ausgeführt werden: X2Go Client X2Go Client Internet browser Webbrowser Email client E-Mail-Programm &New session ... &Neue Sitzung ... Session management... Sitzungsverwaltung... Show toolbar Zeige Werkzeugleiste About X2GO client Über X2GoClient Please check LDAP settings Bitte überprüfen Sie die LDAP Einstellungen no X2Go server found in LDAP LDAP enthält keinen X2GoServer Are you sure you want to delete this session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? <b>Wrong password!</b><br><br> <b>Falsches Passwort!</b><br><br> No server availabel es konnte kein Server gefunden werden Not connected Active connection Nicht verbunden Creation time Startzeit Unable to create folder: Ordner kann nicht erzeugt werden: Enter passphrase to decrypt a key Bitte Kennwort eingeben, um den Schlüssel zu öffnen No X2Go sessions found, closing. Keine X2Go Sitzung gefunden, Programm wird geschlossen. Starting connection to server: Verbindung mit Server wird gestartet: to auf Connection Error( Verbindungsfehler( Couldn't find a SSH connection. Konnte keine SSH Verbindung finden. Host key for server changed. It is now: Host-Key des Servers hat sich geändert. Er lautet jetzt: For security reasons, connection will be stopped Aus Sicherheitsgründen wird der Verbindungsaufbau abgebrochen The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Der Host-Key des Servers konnte nicht gefunden werden aber ein anderer Schlüsseltyp existiert. Ein Angreifer kann den Schlüssel verändert haben, um dem Client vorzutäuschen, dass der Schlüssel nicht existiert Could not find known host file.If you accept the host key here, the file will be automatically created Die ,,Known Host''-Datei konnte nicht gefunden werden. Wenn Sie den Host-Key hier akzeptieren, dann wird die Datei automatisch erstellt. The server is unknown. Do you trust the host key? Public key hash: Der Server ist unbekannt. Vertrauen Sie diesem Host-Key? Hash des öffentlichen Schlüssels: Host key verification failed Die Überprüfung des Host-Keys schlug fehl Authentication failed: Anmeldung fehlgeschlagen: Authentication failed Anmeldung fehlgeschlagen Enter password for SSH proxy Kennwort für SSH Proxy eingeben Connection failed: Verbindung fehlgeschlagen: - Wrong password. - Falsches Kennwort. Server not availabel Server nicht verfügbar Unable to write file: Datei kann nicht geschrieben werden: Unable to create SSL tunnel: SSL Tunnel kann nicht erzeugt werden: <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sitzungs-ID:<br>Server:<br>Login:<br>Display:<br>Startzeit:<br>Status:</b> Share folder... Ordner freigeben... Show details Zeige Details This card is unknown by X2Go system Diese Karte ist dem X2Go-System unbekannt Can't start X server Please check your settings X-Server lässt sich nicht starten. Bitte überprüfen Sie Ihre Installation Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Der gewählte server unterstützt kein Dateisystemexport via SSH Tunnel Bitte installieren sie eine neuere Version von x2goserver &Create session icon on desktop... &Desktopsymbol erzeugen... Starting x2goclient... X2Go Client wird gestartet... Starting x2goclient in portable mode... data directory is: Portable X2Go Client wird gestartet... Datenverzeichnis ist: Started x2goclient. X2Go Client ist gestartet. Can't load translator: Kann Übersetzer nicht laden: Translator: Übersetzung: installed. installiert. &Set broker password... &Kennwort für Session-Broker setzen... &Connectivity test... &Verbindungstest... Operation failed Operation fehlgeschlagen Password changed Das Kennwort wurde geändert Wrong password! Falsches Kennwort! <b>Authentication</b> <b>Authentifizierung</b> Restore Wiederherstellen Multimedia Unterhaltungsmedien Development Entwicklung Education Bildung Game Spiele Graphics Grafik Network Internet Office Büroprogramme Settings Einstellungen System Systemwerkzeuge Utility Dienstprogramme Other Sonstige Left mouse button to hide/restore - Right mouse button to display context menu Left click to open the X2GoClient window or right click to get the context menu. Linke Maustaste: verstecken/wiederherstellen - rechte Maustaste: Kontextmenü Closing x2goclient... X2Go Client wird geschossen... Closed x2goclient. X2Go Client wurde geschlossen. Create session icon on desktop Desktopsymbol erzeugen Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Der Aufruf über Desktopsymbole kann erfolgen, ohne dass der X2GoClient sichtbar wird (versteckter Modus). Diesen Modus können Sie nutzen, wenn Sie den Loginvorgang über einen GPG-Schlüssel oder eine GPG-Smartcard konfiguriert haben. Wollen Sie den versteckten Modus nutzen? Show session tray icon when running Sitzungssymbol während Verbindung in der Taskleiste anzeigen New Session Neue Sitzung X2Go sessions not found Keine X2Go-Sitzungen gefunden RDP connection RDP-Verbindung Detach X2Go window Fenster abkoppeln Attach X2Go window Fenster einbetten Finished Beendet Are you sure you want to terminate this session? Unsaved documents will be lost Die Sitzung wird beendet. Sind Sie sicher?<br>Ungespeicherte Dokumente gehen verloren </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2009 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. Can't start X Server Please check your installation X-Server lässt sich nicht starten. Bitte überprüfen Sie Ihre Installation X2Go Session X2Go-Sitzung Minimize toolbar Symbole verstecken SSH daemon could not be started. SSH-Daemon konnte nicht gestartet werden. SSH daemon is not running. SSH-Daemon läuft nicht. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Sie haben Die Druck- oder Dateifreigabe aktiviert. Für diese Funktionen muss auf Ihrem Client ein funktionierender und laufender SSH-Server vorhanden sein. <b>Druck- und Dateifreigaben werden für diese Sitzung deaktiviert.</b> Bitte überprüfen Sie auch den <b>clientseitigen SSH-Port</b> in den allgemeinen Einstellungen. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalerweise sollte diese Meldung nicht auftreten, da X2GoClient für Windows seinen eigenen, internen SSH-Server mitbringt. Wenn Sie diese Meldung sehen, bitten wir um einen Bugreport über: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. SSH-Server konnte nicht gestartet werden. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2GoClient konnte keinen globalen, laufenden SSH-Server auf Ihrem System finden, und konnte auch nicht seinen eigenen starten. Bitte melden Sie den Fehler über: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. Der SSH-Server läuft derzeit nicht. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Für OS X befolgen Sie bitte die nachfolgenden Schritte, um den SSH-Service zu starten:<ul><li>Öffnen Sie die <b>Systemeinstellungen</b> (Programme -> Systemeinstellungen)</li><li>Wählen Sie <b>Freigaben</b></li><li>Setzen Sie einen Haken neben <b>Entfernte Anmeldung</b></li><li>Prüfen Sie, dass <b>Zugriff erlauben für:</b> auf einem der beiden folgenden Werte steht:<ul><li>Alle Benutzer: <b>keine weiteren Maßnahmen erforderlich</b></li><li>Nur diese Benutzer <b>, wobei Ihr Benutzername in der Liste aufgeführt ist</b></li></ul><li>Fügen Sie optional Ihren Benutzernamen durch einen Klick auf den<b>Plus-Knopf</b> der Liste hinzu.</li></ul><b>Warnung: den SSH-Zugriff zu aktivieren erlaubt es jedem Benutzer im Netzwerk, sich mit ihrem Computer zu verbinden. Es liegt in Ihrer Verantwortung, sicherzustellen, dass alle Benutzerkonten, die sich per SSH einloggen dürfen, auch mit sicheren Passworten geschützt sind.</b> Please ask your system administrator to provide the SSH service on your computer. Bitten Sie Ihren Systemadministrator, dass er Ihnen den SSH-Dienst auf dem Computer einrichtet. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. Die Druck- und/oder Dateifreigabe in den Sitzungseinstellungen zu deaktivieren, wird diese Meldung verschwinden lassen. SSH daemon failed to open its public host key. Der SSH-Daemon konnte seinen öffentlichen Host-Schlüssel nicht öffnen. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Sie haben die Druck- oder Dateifreigabe aktiviert. Für diese Funktionen muss auf Ihrem Client ein funktionierender und laufender SSH-Server vorhanden sein. <b>Druck- und Dateifreigaben werden für diese Sitzung deaktiviert.</b> Der SSH-Server ist momentan nicht korrekt konfiguriert. Bitte stellen Sie sicher, dass der öffentliche Schlüssel des Servers existiert. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalerweise sollte diese Meldung nicht auftreten, da X2GoClient für Windows seinen eigenen, internen SSH-Server mitbringt und die benötigten Schlüssel automatisch generiert. Wenn Sie diese Meldung sehen, bitten wir um einen Bugreport über: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2GoClient konnte keine SSH-Host-Keys erstellen. Wenn Sie diese Meldung sehen, bitten wir um einen Bugreport über: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p OS-X-Benutzer befolgen bitte diese Anleitung, um die benötigten Keys zu erstellen:<ul><li>Öffnen Sie ein <b>Terminal-Fenster</b> (Programme -> Dienstprogramme -> Terminal)</li><li>Führen Sie diesen Befehl aus: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> Bitten Sie Ihren Systemadministrator, dass er Ihnen die entsprechenden Host-Keys generiert. Wenn Sie selbst der Systemadministrator sind, führen Sie bitte folgenden Befehl aus: <center><b>sudo ssh-keygen -A</b></center> SSH Error SSH-Fehler SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH-Dienst konnte nicht gestartet werden.\n\nDer SSH-Dienst wird für die Datei- und Druckdienste benötigt.\n\nDiese Fehlermeldung sollte nie auftreten, da der Windows-X2GoClient seinen eigenen SSH-Dienst mitbringt.\n\nWenn Sie diese Fehlermeldung sehen, melden Sie den Fehler bitte über den X2Go-Bugtracker. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. Der SSH-Dienst läuft nicht.\n\nDer SSH-Dienst wird für die Datei- und Druckdienste benötigt.\n\nBitte wenden Sie sich an Ihren Systemadministrator und bitten Sie ihn, den SSH-Dienst auf Ihrem Computer zu installieren. SSH daemon failed to open the application's public host key. Der SSH-Dienst konnte den öffentlichen Host-Schlüssel der Anwendung nicht öffnen. SSH daemon failed to open the application's public key used for exporting folders and printers. Der SSH-Dienst konnte den für Datei- und Druckfreigaben benötigten öffentlichen Host-Schlüssel der Anwendung nicht öffnen. SSH daemon failed to open the application's authoized_keys file. Der SSH-Dienst konnte die autorized_keys-Datei der Anwendung nicht öffnen. <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;zum Wiederherstellen&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;der Werkzeugleiste&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;hier klicken&nbsp;&nbsp;&nbsp;</b><br> Can't open config file: Konfigurationsdatei lässt sich nicht öffnen: sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> SSHD konnte nicht gefunden werden. SSHD wird für Dateifreigaben und Druck benötigt. Sie können SSHD über folgenden Befehl installieren: <b>sudo apt-get install openssh-server</b> Connection to local desktop Zugriff auf lokalen Desktop Information Hinweis Filter Filter Select desktop: Desktopauswahl: Are you sure you want to terminate this session? Unsaved documents will be lost. Die Sitzung wird beendet. Sind Sie sicher? Ungespeicherte Dokumente gehen verloren. <b>Connection failed.</b> : <b>Verbindung fehlgeschlagen.</b> : (file does not exist) (Datei existiert nicht) (directory does not exist) (Verzeichnis existiert nicht) Invalid value for parameter "--link". Unerwarteter Wert für Parameter "--link". Invalid value for parameter "--clipboard". Unerwarteter Wert für Parameter "--clipboard". Invalid value for parameter "--sound". Unerwarteter Wert für Parameter "--sound". Invalid value for parameter "--geometry". Unerwarteter Wert für Parameter "--geometry". Invalid value for parameter "--set-kbd". Unerwarteter Wert für Parameter "--set-kbd". Invalid value for parameter "--ldap". Unerwarteter Wert für Parameter "--ldap". Invalid value for parameter "--ldap1". Unerwarteter Wert für Parameter "--ldap1". Invalid value for parameter "--ldap2". Unerwarteter Wert für Parameter "--ldap2". Invalid value for parameter "--pack". Unerwarteter Wert für Parameter "--pack". Available pack methods: Liste aller Packmethoden: Pack Methods Packmethoden Option is not available in this build. Option in diesem Build nicht verfügbar. Unable to create directory: Verzeichnis kann nicht erstellt werden: Cannot open key: Schlüssel kann nicht geöffnet werden: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br> (C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>X2GoPlugin-Modus wurde gefördert durch <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <br>Dies ist ein Client für den Zugriff auf die netzwerkbasierte Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Verbindungen zu einem X2GoServer starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten Sie auf <a href="http://www.x2go.org">der Projektwebsite x2go.org</a>. <b>X2Go Client v. <b>X2GoClient V. Please check LDAP Settings. Bitte überprüfen Sie die LDAP-Einstellungen. Check whether the package providing "scdaemon" is installed. The current search path is: Bitte überprüfen Sie, ob das Paket, das "scdaemon" bereitstellt, installiert ist. Der aktuelle Suchpfad lautet: didn't start yet. ist bis jetzt noch nicht gestartet. Unable to read from scdaemon. Kann nicht von scdaemon lesen. No valid card found. Keine gültige Karte gefunden. This card is unknown to the X2Go system. Das X2Go-System kennt diese Karte nicht. Can't start X.Org Server. Please check your installation. X.Org-Server lässt sich nicht starten. Bitte überprüfen Sie Ihre Installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Der gewählte Server unterstützt keinen Dateisystemexport via SSH-Tunnel. Bitte installieren Sie dort eine neuere Version des X2GoServer-Pakets. Unable to create SSH tunnel for Folder Sharing and Printing support: Kann keinen SSH-Tunnel für die Druck- und Dateifreigabe erstellen: Unable to read: Lesefehler: Unable to write: Schreibfehler: Error getting window geometry. (Did you close the window?) Fehler beim Ermitteln der Fenstergeometrie. (Haben Sie das Fenster geschlossen?) Invalid value for argument "speed" Unerwarteter Wert für Parameter "speed" Applications ... Anwendungen... View only Nur betrachten User Benutzer XDMCP XDMCP No accessible desktop found Kein freigegebener Desktop gefunden Full access Vollzugriff Only my desktops Nur eigene Desktops Reconnect Neu verbinden Connecting to broker Verbinden mit Broker </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin Modus wurde gefördert durch <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2GoServers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 wrong value for argument"speed" wrong value for argument"speed" application/x2go:x2go:Configuration File for X2Go Session application/x2go:x2go:Konfigurationsdatei für eine X2Go-Sitzung PrintDialog Print Druck You've deactivated the X2Go Client printing dialog. Sie haben den clientseitigen X2Go-Druckdialog deaktiviert. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) Über die Clienteinstellungen (Menü -> Einstellungen -> Konfiguration) können Sie den Dialog wieder einblenden. You've deactivated the x2go client printing dialog. Sie haben den clientseitigen Druckdialog deaktiviert. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Über die Clienteinstellungen (Menü -> Einstellungen -> Konfiguration) können Sie den Dialog wieder einblenden Print - X2Go Client Drucken - X2GoClient PrintProcess Save File Datei speichern PDF Document (*.pdf) PDF-Dokument (*.pdf) Failed to execute command: Befehl konnte nicht ausgeführt werden: Printing error. Fehler beim Drucken. Printing error Druckfehler PrintWidget Form Form Print Druck View as PDF Als PDF anzeigen Print settings Druckeinstellungen Printer command: Druckbefehl: ... ... Viewer settings Anzeigeoptionen Open in viewer application Im (PDF-) Anzeigeprogramm öffnen Command: Befehl: Save to disk Als Datei speichern Show this dialog before start printing Diesen Dialog vor Druckstart anzeigen 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>. Legen Sie hier die Druckerkonfiguration für den clientseitigen Druck fest.<br><br>Um die erzeugten Dateien auf einem Drucker ausgeben zu können, wird ein externes Programm benötigt. Typischerweise wird <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">Ghostprint</a> und <a href="http://pages.cs.wisc.edu/~ghost/gsview/">Ghostview</a> verwendet<br>Weiterführende Infromationen erhalten Sie <a href="http://www.x2go.org/index.php?id=6">hier</a>. Printer: Drucker: Print using default Windows PDF Viewer (Viewer application needs to be installed) Mit Hilfe eines PDF-Anzeigeprogramms drucken (PDF-Anzeigeprogramm muss installiert sein) 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>. Legen Sie hier die Druckerkonfiguration für den clientseitigen Druck fest.<br><br>Um die erzeugten Dateien auf einem Drucker ausgeben zu können, wird ein externes Programm benötigt. Typischerweise wird <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">Ghostprint</a> und <a href="http://pages.cs.wisc.edu/~ghost/gsview/">Ghostview</a> verwendet<br>Weiterführende Infromationen erhalten Sie <a href="http://www.x2go.org/index.php?id=6">hier</a>. PrinterCmdDialog Printer command Druckbefehl Command Befehl Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Bitte geben Sie einen individuellen Druckbefehl an. Beispiele: kprinter lpr -P hp_laserjet Output format Ausgabeformat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Bitte wählen Sie ein Dateiformat für den Druck (passend zu Ihrer Druckumgebung - bei Verwendung von CUPS können Sie z.B. PDF nutzen) PDF PDF PS PS Data structure Datenstruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Bitte wählen Sie die Ausgabeform für die Druckübergabe (einige Druckumgebungen erwarten Dateien als Programmoptionen, andere erwarten die Ausgabe als "standard input"): standard input (STDIN) standard input (STDIN) Specify path as program parameter Geben Sie den Pfad als Programmoption an Please enter your customized or individual printing command. Example: Bitte geben Sie einen individuellen Druckbefehl an. Beispiel: <Path to gsprint.exe> -query -color <Pfad zur gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Keine Antwort vom Server empfangen. Möchten Sie die Sitzung unterbrechen? X2Go Client could not find any suitable X11 server. X2GoClient konnte keinen geeigneten X11-Server finden. X2Go Client could not start X11 server. X2GoClient konnte den X11-Server nicht starten. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: X2GoClient setzt ein installiertes XQuartz voraus. Wenn XQuartz bereits auf Ihrem System installiert ist, wählen Sie bitte den passenden Pfad im nun erscheinenden Dialogfenster aus. Falls Sie sich nicht sicher sind, finden Sie am Ende dieses Texts ein paar gängige Pfade als Vorschlag. Falls Sie XQuartz <b>noch nicht</b> installiert haben, befolgen Sie bitte diese Anleitung: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> MacPorts-Benutzer installieren bitte entweder den Port <b>xorg-server</b> oder den Port <b>xorg-server-devel</b>. Nach erfolgreicher Installation befolgen Sie bitte die vom Port-Utility angezeigte Anleitung, um den Server automatisch zu laden und zu starten. Alle anderen Benutzer beziehen und installieren XQuartz bitte von: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Starten Sie anschließend X2GoClient neu, und wählen Sie den passenden Pfad zur X11-Anwendung in den allgemeinen X2GoClient-Einstellungen. Gängige Pfade könnten sein <center><b>/Applications/MacPorts/X11.app</b></center> oder <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session Preferences... Sitzungsvoreinstellungen... Delete Session... Sitzung löschen... Select Type Auswahl Select Resolution Wähle Auflösung Toggle Sound support Aktiviere Audiounterstützung New Session Neue Sitzung KDE KDE Published applications Veröffentlichte Anwendungen fullscreen Vollbild Display Anzeige Maximum Maximum Enabled aktiviert Disabled deaktiviert /usr/bin/startkde /usr/bin/startkde window Fenster Session preferences... Sitzungseinstellungen... Create session icon on desktop... Desktopsymbol erzeugen... Session preferences ... Sitzungsvoreinstellungen ... Create session icon on desktop ... Desktopsymbol erzeugen ... Delete session Sitzung entfernen Session actions Optionen Select type Typ Select resolution Auflösung Toggle sound support Sound running aktiv suspended angehalten RDP connection RDP-Verbindung Connection to local desktop Zugriff auf lokalen Desktop XDMCP XDMCP SessionExplorer Back Zurück Create session icon on desktop Desktopsymbol erzeugen Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Der Aufruf über Desktopsymbole kann erfolgen, ohne dass der X2Go Client sichtbar wird (versteckter Modus). Diesen Modus können Sie nutzen, wenn Sie den Login-Vorgang über einen GPG-Schlüssel oder eine GPG-Smartcard konfiguriert haben. Wollen Sie den versteckten Modus verwenden? Create session icon on desktop. Desktopsymbol erzeugen. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Der Aufruf über Desktopsymbole kann erfolgen, ohne dass der X2Go Client sichtbar wird (versteckter Modus). Diesen Modus können Sie nutzen, wenn Sie den Login-Vorgang über einen GPG-Schlüssel oder eine GPG-Smartcard konfiguriert haben. Wollen Sie den versteckten Modus verwenden? Show session tray icon when running Sitzungssymbol während Verbindung in der Taskleiste anzeigen New Session Neue Sitzung X2Go Link to session X2Go-Verknüpfung zu einer Sitzung Are you sure you want to delete this session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? SessionManageDialog E&xit Be&enden &New Session &Neue Sitzung &Session Preferences &Sitzungsvoreinstellungen &Delete Session &Sitzung löschen Delete Delete löschen Session Management Sitzungsverwaltung &New session &Neue Sitzung &Session preferences &Sitzungsvoreinstellungen &Delete session &Sitzung löschen &Create session icon on desktop ... &Desktopsymbol erzeugen ... Session management Sitzungsverwaltung &Create session icon on desktop... &Desktopsymbol erzeugen... SessionWidget Session name: Sitzungsname: << change icon << Symbol ändern Path: Pfad: &Server &Server Host: Host: Login: Login: SSH port: SSH-Port: Use RSA/DSA key for ssh connection: RSA-/DSA-Schlüssel verwenden (ssh): Try auto login (ssh-agent or default ssh key) Anmeldung über voreingestellten SSH-Schlüssel oder ssh-agent Kerberos 5 (GSSAPI) authentication Kerberos5 (GSSAPI) Authentifizierung Delegation of GSSAPI credentials to the server Übertragung der GSSAPI-Legitimation auf den Server Use Proxy server for SSH connection Proxy-Server für SSH-Verbindung verwenden Proxy server Proxy-Server SSH SSH HTTP HTTP Same login as on X2Go Server Gleiche Anmeldung wie für X2Go-Server Same password as on X2Go Server Gleiches Kennwort wie für X2Go-Server RSA/DSA key: RSA/DSA-Schlüssel: ssh-agent or default ssh key SSH-Agent oder SSH-Standardschlüssel Type: Typ: Port: Port: &Session type &Sitzungsart Session type: Sitzungsart: Connect to Windows terminal server Verbindung mit Windows Terminalserver herstellen Custom desktop Andere Desktopumgebung Single application Anwendung Published applications Veröffentlichte Anwendungen Command: Befehl: Advanced options... Erweiterte Einstellungen... Path to executable Pfad zum Programm Direct RDP Connection Direkte RDP Verbindung RDP port: RDP port: Open picture Öffne Bild Pictures Bilder Open key file Öffne Schlüssel Try auto login (via SSH Agent or default SSH key) Anmeldung über voreingestellten SSH-Schlüssel oder ssh-agent SSH Agent or default SSH key SSH-Agent oder SSH-Standardschlüssel Connect to Windows Terminal Server Verbindung mit Windows Terminalserver herstellen Direct RDP connection Direkte RDP-Verbindung All files Alle Dateien X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go Client wird gerade als portable Anwendung ausgeführt. Sie sollten einen Pfad auf dem USB-Medium wählen, um von überall aus auf Ihre Daten zugreifen zu können. Server: Server: rdesktop command line options: rdesktop Kommandozeilenoptionen: New session Neue Sitzung Connect to local desktop Zugriff auf lokalen Desktop XDMCP server: XDMCP-Server: XDMCP XDMCP Error Fehler x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient wird gerade als portable Anwendung ausgeführt. Sie sollten einen Pfad auf dem USB-Medium wählen, um von überall aus auf Ihre Daten zugreifen zu können. SettingsWidget &Display &Display &Keyboard &Tastatur Sound Audio &Clipboard Mode Zwis&chenablage-Modus Bidirectional copy and paste Kopieren und Einfügen in beide Richtungen möglich Copy and paste from client to server Kopieren und Einfügen nur von Client zu Server möglich Copy and paste from server to client Kopieren und Einfügen nur von Server zu Client möglich Disable clipboard completely Zwischenablage komplett deaktivieren Auto detect keyboard settings Tastatureinstellungen automatisch erkennen Do not configure keyboard Tastatur nicht konfigurieren Configure keyboard Tastatur konfigurieren Model: Modell: Layout: Tastaturlayout: Variant: Variante: RDP Client RDP Client &Clipboard mode Zwis&chenablage-Modus Fullscreen Vollbild Custom Eigener Window Fenster Use whole display Ganzen Bildschirm verwenden Maximum available Maximal verfügbare Größe Set display DPI Auflösung festlegen (DPI) Xinerama extension (support for two or more physical displays) Xinerama-Erweiterung (unterstützt zwei oder mehr Bildschirme) Width: Breite: Height: Höhe: &Display: &Bildschirm: &Identify all displays &Alle Bildschirme identifizieren Auto-detect keyboard settings Tastatureinstellungen automatisch erkennen RDP client RDP-Client Keep current keyboard Settings Tastaturlayout behalten Keyboard layout: Tastaturlayout: Keyboard model: Tastatur: Enable sound support Audiounterstützung aktivieren Start sound daemon Starte Sound Server Use running sound daemon Benutze existierenden Sound Server Use SSH port forwarding to tunnel sound system connections through firewalls Benutze Port-Weiterleitung über Tunnel um Audiosignale über Firewalls zu verbinden Use default sound port Benutze standard Audio Port Sound port: Audio Port: Client side printing support Clientseitige Druckunterstützung Additional parameters: Zusätzliche Parameter: Command line: Kommandozeile: us de pc105/us pc105/de password Kennwort ShareWidget &Folders &Ordner Path Pfad Automount automatisch verbinden Add Hinzufügen Delete Löschen Path: Pfad: Use ssh port forwarding to tunnel file system connections through firewalls Benutze SSH-Port-Weiterleitung über Tunnel um Dateisysteme über Firewalls zu verbinden Select folder Wähle Ordner Filename encoding Kodierung der Dateinamen Use SSH port forwarding to tunnel file system connections through firewalls Benutze SSH-Port-Weiterleitung, um Dateisysteme per Tunnel durch Firewalls hindurch zu verbinden X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2GoClient wird gerade als portable Anwendung ausgeführt. Sie sollten einen Pfad auf dem USB-Medium wählen, um von überall aus auf Ihre Daten zugreifen zu können. WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 local: lokal: remote: entfernt: Error Fehler x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient befindet sich im portablen Ausführungsmodus. Wenn Sie einen Pfad ausserhalb des USB Geräts wählen, können sie auf die Daten nicht von überall aus zugreifen SshMasterConnection SSH proxy connection error Verbindungsfehler SSH-Proxy SSH proxy connection error. SSH-Proxy-Verbindungsfehler. SSH proxy connection error: SSH-Proxy Verbindungsfehler: Failed to create SSH proxy tunnel. Aufbau des SSH-Proxy-Tunnels fehlgeschlagen. Cannot initialize libssh. Kann libssh nicht initialisieren. Cannot create SSH session. Kann SSH-Sitzung nicht erstellen. Cannot connect to proxy server. Verbindung zu Proxy-Server nicht möglich. Authentication failed. Authentisierung fehlgeschlagen. Failed to start SSH client. Please check your installation and GSSApi configuration. Konnte den SSH-Client nicht starten. Bitte überprüfen Sie Ihre Installation und die GSSApi-Konfiguration. Check your GSSApi configuration or choose another authentication method. Überprüfen Sie die GSSApi-Konfiguration oder wählen Sie eine andere Authentisierungsmethode. Cannot open file Kann Datei nicht öffnen Cannot create remote file Kann entfernte Datei nicht anlegen Cannot write to remote file Kann in entfernte Datei nicht schreiben channel_open_forward failed. channel_open_forward schlug fehl. channel_open_session failed. channel_open_session schlug fehl. Error writing to socket. Fehler beim Schreiben auf Socket. Error reading channel. Kann nicht aus Channel lesen. channel_write failed. channel_write schlug fehl. Error reading from TCP socket. Konnte nicht von TCP-Socket lesen. Failed to create SSH proxy tunnel Aufbau des SSH-Proxy-Tunnels fehlgeschlagen Can not initialize libssh Kann libssh nicht initialisieren Can not create ssh session Kann SSH-Sitzung nicht erstellen Can not connect to proxy server Verbindung zu Proxy-Server nicht möglich Can not connect to Verbindungsaufbau nicht möglich Authentication failed Anmeldung fehlgeschlagen channel_forward_listen failed channel_forward_listen schlug fehl Failed to start SSH Client. Please check your installation and GSSApi configuration Konnte SSH Client nicht starten. Bitte überprüfen Sie Ihre Installation und die GSSApi-Konfiguration. Check your GSSApi configuration or choose another authentication method Überprüfen Sie die GSSApi-Konfiguration oder wählen Sie eine andere Authentisierungsmethode. Can not open file Kann Datei nicht öffnen Can not create remote file Kann entfernte Datei nicht öffnen Can not write to remote file Kann entfernte Datei nicht schreiben Cannot connect to Kann Verbindung nicht herstellen zu channel_open_forward failed channel_open_forward schlug fehl channel_open_session failed channel_open_session schlug fehl channel_request_exec failed channel_request_exec schlug fehl error writing to socket Fehler beim Schreiben auf Socket error reading channel Channel Lesefehler channel_write failed Channel Schreibfehler error reading tcp socket Lesefehler TCP-Socket SshProcess Error creating socket Socket-Fehler beim Erstellen Error creating socket. Socket konnte nicht erstellt werden. Error binding Socket-Bind-Fehler XSettingsWidget Open File Datei öffnen Executable (*.exe) Ausführbare Datei (*.exe) XSettingsWidgetUI Form Formular You must restart the X2Go Client for the changes to take effect Sie müssen X2GoClient neu starten, um die Änderungen zu aktivieren use integrated X-Server integrierten X-Server verwenden do not use primary clipboard Nicht das primäre Clipboard verwenden use custom X-Server benutzerdefinierten X-Server verwenden custom X-Server benutzerdefinierter X-Server executable: Ausführbare Datei: start X-Server on X2Go Client start X-Server auf X2GoClient starten command line options: Kommandozeilenoptionen: X-Server command line options Kommandozeilenoptionen des X-Servers window mode: Fenstermodus: fullscreen mode: Vollbildmodus: single application: Einzelanwendung: whole display: Ganzer Bildschirm: sshProcess Unable to create: Erstellung fehlgeschlagen: Yes Ja No Nein Unable to write: Schreibfehler: Error Fehler Cannot create temporary file Temporäre Datei konnte nicht angelegt werden Host key verification failed Host-Key Überprüfung fehlgeschlagen x2goclient-4.0.5.1/res/i18n/x2goclient_es.ts0000644000000000000000000060113112675050177015324 0ustar AppDialog Published Applications Aplicaciones Publicadas Search: Buscar: &Start &Iniciar &Close &Cerrar Multimedia Multimedia Development Desarrollo Education Educación Game Juegos Graphics Gráficos Network Red Office Oficina Settings Preferencias System Sistema Utility Utilidades Other Otras BrokerPassDialogUi Dialog Diálogo Old password: Contraseña anterior: New password: Nueva contraseña: Confirm password: Repetir nueva contraseña: TextLabel Etiqueta BrokerPassDlg Passwords do not match Las contraseñas introducidas no coinciden CUPSPrintWidget Form Formulario Name: Nombre: Properties Propiedades State: Estado: Accepting jobs: Aceptando trabajos: Type: Tipo: Location: Ubicación: Comment: Comentarios: Idle Ocupada Printing Imprimiendo Stopped Detenida Yes Si No No CUPSPrinterSettingsDialog No option selected No se seleccionó ninguna opción This value is in conflict with another option. Esrte valor entra en conflicto con otra opción. Options conflict. Conflicto entre opciones. This value is in conflict with other option Este valor entra en conflico con otra opción Options conflict Conflicto de opciones ConTest Connectivity test Test de conexión HTTPS connection: Conexión HTTPS: SSH connection: Conexión SSH: Connection speed: Velocidad de la conexión: Failed Error 0 Kb/s 0 Kb/s OK Ok Socket operation timed out. Se agotó el tiempo de respuesta del Socket. Socket operation timed out Tiempo de espera sobrepasado en la conexión con el socket Failed: Error: ConfigDialog General General Display icon in system tray Mostrar icono de notificación en la bandeja del sistema Hide to system tray when minimized Mostrar como icono de notificación al minimizar Hide to system tray when closed Mostrar icono de notificación al cerrar Hide to system tray after connection is established Mostrar como icono de notificación cuando se establece la conexión Restore from system tray after session is disconnected Restaurar ventana al desconectar la conexión Use LDAP Usar LDAP Server URL: URL del servidor: BaseDN: BaseDN: Failover server 1 URL: URL del Servidor LDAP alternativo 1: Failover server 2 URL: URL del Servidor LDAP alternativo 2: X.Org Server settings Opciones del servidor X.Org Clientside (local) SSH daemon port for file system export usage: Uso de la exportación del puerto del demonio SSH en el lado del cliente (local): Pulseaudio settings Configuración de Pulseaudio Disable audio input Desactivar entrada de audio <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> <font size="5">Debes reiniciar el cliente X2Go para aplicar los cambios</font><br><br> Your XQuartz version is too old. Tu versión de XQuartz es demasiado vieja. Your are using XQuartz (X Window System Server for OS X) version Estás usando la versión de XQuartz (Servidor X Window de OS X) . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> . Esta versión causa problemas con aplicaciones X en modo de color de 24bits. Deberías actualizar tu sistema X11. Los usuarios de MacPorts deben seguir las siguientes indicaciones: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Los usuarios que han instalado XQuartz vía el paquete instalador pueden encontrar versiones acutlizadas: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. No se ha elegido una aplicaciones XQuartz válida. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> No has elegido una aplciación XQuartz válida. Inténtalo de nuevo. Algunas localizaciones habituales pueden ser: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings Configuración del servidor X X11 application: Aplicación X11: X11 version: Versión de X11: Find X11 application Encontrar aplicación X11 Clientside SSH port for file system export usage: Puerto SSH del lado del cliente para exportar el sistema de archivos: Start session embedded inside website Iniciar sesión dentro del sitio web Advanced options Opciones avanzadas Defaults Valores defecto &OK &Ok &Cancel &Cancelar Settings Propiedades Printing Impresión Warning Advertencia x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2gocliente no puede encontrar ninguna aplicación X11. Instala Apple X11 o selecciona la ruta para la aplicación Your are using X11 (Apple X-Window Server) version Estás usando X11 (Servdio X-Windows de Apple) versión . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Esta versión tiene problemas con aplicaciones X con 24bits de color. Deberías actualizar tu entorno X11 (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path No se encontró una aplicación X11 válida en la ruta seleccionada &Connection &Conexión &Input/Output Entrada/Sal&ida &Media &Medios &Settings &Propiedades ConnectionWidget &Connection speed &Velocidad de la conexión Connection speed: Velocidad de la conexión: C&ompression C&ompresión Method: Método: Compression method: Método de compresión: Image quality: Calidad de la imagen: CupsPrinterSettingsDialog Dialog Diálogo General General Page size: Tamaño de página: Paper type: Tipo de papel: Paper source: Origen del papel: Duplex Printing Doble cara None Ninguna Long side A lo largo Short side A lo ancho Driver settings Propiedades del controlador Option Opción Value Valor No option selected No se seleccionó ninguna opción text texto EditConnectionDialog &Session &Sesión &Connection &Conexión &Input/Output Entrada/Sal&ida &Media &Medios &Shared folders C&arpetas compartidas &OK &Ok &Cancel &Cancelar Defaults Valores por defecto Session preferences - Preferencias de la sesión - ExportDialog &Cancel &Cancelar &share &compartir &Preferences ... &Preferencias ... &Custom folder ... &Carpeta personalizada ... Delete Delete Eliminar Share Folders Carpetas Compartidas share folders compartir carpetas Select folder Elegir carpeta FolderButton Sessions folder Carpeta de sesión FolderExplorer Folders Carpetas Create New Folder Crear Nueva Carpeta Rename Folder... Renombrar Carpeta... Change Icon... Cambiar Icono... Delete Folder... Eliminar Carpeta... Rename Folder ... Renombrar Carpeta ... Change Icon ... Cambiar Icono ... Delete Folder ... Eliminar Carpeta ... Open picture Abrir imagen Pictures Imágenes X2Go Client Cliente X2Go Folder Name: Nombre de la Carpeta: Error Error Unable to remove " No se puede eliminar " ". Folder is not empty. Please remove the contents of this directory and try again. ". La carpeta no está vacía. Por favor elimina el contenido de esta carpeta e inténtalo otra vez. ". Folder is not empty. Please remove content of folder and try again. " la Carpeta no está vacía. Elimina el contenido de la carpeta e inténtalo otra vez. Delete folder " Eliminar carpeta " New Folder Nueva Carpeta HelpDialog Options Opciones HttpBrokerClient us us pc105/us pc105/us Error Error Login failed!<br>Please try again Falló el inicio de sesión<br>Inténtalo de nuevo Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Tu sesión se desconectó. Para tener acceso a tu sesión en ejecución vuelve a la página de inicio de sesión o usa al función "recargar" de tu navegador. Host key for server changed. It is now: La clave del servidor ha cambiado. Ahora es: For security reasons, connection will be stopped La conexión ha finalizado por razones de seguridad The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist No se ha encontrado la clave para este servidor aunque se han encontrado claves de otro tipo. Un hacker podría cambiar la clave por defecto del servidor para hacer creer al cliente que la clave no existe Could not find known host file.If you accept the host key here, the file will be automatically created No se encontró el archivos de claves conocidas en este equipo. Si aceptas se creará en nuevo archivo de claves The server is unknown. Do you trust the host key? Public key hash: Este servidor es desconocido. ¿Confiar en su clave? Hash de su clave pública: Host key verification failed Falló la comprobación de la clave del equipo Yes Si No No Verification code: Código de verificación: Enter passphrase to decrypt a key Introduce la frase de paso para desencriptar la clave Authentication failed Fallo de autenticación <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>El servidor usa un certificado de seguridad no válido.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>No deberías añadir una excepción de seguridad si estás usando una conexión a internet en la que no confías plenamente o si habitualmente no hay avisos de seguridad para este servidor.</p> Secure connection failed Fallo en la seguridad de la conexión For security reasons, the connection attempt will be aborted. Por motivos de seguridad, se cancelará la conexión actual. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. La clave de equipo para esta servidor no se encontró o se encontró otro tipo. Un atacante podría haber cambiado la clave por defecto del servidor para engañar al cliente pensando que la clave no existe todavía. Could not find known hosts file.If you accept the host key here, the file will be automatically created. No se ha encontrado el archivo know-hosts. Si aceptas el archivo se creará automáticamente. Host key verification failed. Falló la verificación de la clave equipo. Authentication failed. Falló la autenticación. Login failed!<br>Please try again. ¡Falló el inicio de sesión!<br>Inténtalo de nuevo. Secure connection failed. Falló la conexión segura. Issued to: Issued to: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serial Number Issued by: Issued by: Validity: Validity: Issued on Issued on expires on expires on Fingerprints: Fingerprints: SHA1 SHA1 MD5 MD5 Exit X2Go Client Salir del cliente X2Go Add exception Añadir excepción MediaWidget Sound Sonido Enable sound support Activar soporte de sonido Start sound daemon Iniciar demonio de sonido Use running sound daemon Usar el demonio de sonido actual Use SSH port forwarding to tunnel sound system connections through firewalls Usar el tunel de puertos SSH para el sonido en conexiones a través de firewalls Use default sound port Usar el puerto para el sonido por defecto Sound port: Puerto de sonido: Client side printing support Soporte para imprimir en el cliente ONMainWindow Starting x2goclient... Iniciando el cliente X2Go... us es pc105/us pc105/es X2Go Client Cliente X2Go connecting conectando Internet browser Navegador web Email client Cliente de correo OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Iniciando x2goclint en modo portable... el directorio de los datos es: &Settings ... &Preferencias ... Support ... Soporte ... About X2GO client Acerca del cliente X2Go Started x2goclient. Cliente X2Go iniciado. Can't load translator: No se puede cargar el traductor: Translator: Traductor: installed. instalado. Share folder... Compartir carpeta... Suspend Suspender Terminate Terminar Reconnect Reconectar Detach X2Go window Abrir nueva ventana X2Go Minimize toolbar Minimizar barra de herramientas Session: Sesión: &Quit &Salir Ctrl+Q Ctrl+S Quit Salir &New session ... &Nueva sesión ... Ctrl+N Ctrl+N Session management... Gestión de sesiones... Ctrl+E Ctrl+E &Create session icon on desktop... &Crear icono de sesión en el escritorio... &Set broker password... &Seleccionar contraseña para el broker... &Connectivity test... Test de &conectividad... Show toolbar Mostrar barra de herramientas About Qt Sobre Qt Ctrl+Q exit Ctrl+S &Session &Sesión &Options &Opciones &Help &Ayuda Login: Usuario: Error Error Operation failed Falló la operación Password changed Contraseña cambiada Wrong password! ¡Contraseña errónea! Connecting to broker Conectando al broker <b>Authentication</b> <b>Autenticación</b> Restore Restaurar Not connected No conectado Multimedia Multimedia Development Desarrollo Education Educación Game Juegos Graphics Gráficos Network Redes Office Oficina Settings Ajustes System Sistema Utility Utilidades Other Otros Left mouse button to hide/restore - Right mouse button to display context menu Botón izquierdo del ratón para ocultar/restaurar - Botón derecho del ratón para mostrar el menú contextual Closing x2goclient... Cerrando x2goclient... Closed x2goclient. x2goclient finalizado. Please check LDAP settings Comprueba los datos de conexión LDAP no X2Go server found in LDAP no se encontró ningún servidor X2Go en el LDAP Create session icon on desktop Crear icono de sesión en el escritorio Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Los iconoes del escritorio pueden configurarse para no mostrar la ventana del cliente x2go (modo oculto). Si quieres usar esta característica tienes que configurar el inicio de sesión usando una clave gpg o una smart card. ¿Usar el cliente x2go en modo oculto? Show session tray icon when running Mostrar icono de sesión en la bandeja del sistema durante la ejecución New Session Nueva sesión X2Go Link to session Enlace a la sesión X2go No X2Go sessions found, closing. No se han encontrado sesiones X2Go. wrong value for argument"--clipboard" valor erróneo para el argumento "--clipboard" SSH Error Error de SSH SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. El demonio SSH no pudo iniciarse Se necesita el demonio SSH para el sistema de impresión y compartición de archivos. Normalmente este error no debería aparecer ya que el Cliente X2Go para windows incluye su propio sshd.exe Si ves este mensaje te pedimos notifiques el error en el registro de errores de X2Go. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. El demonio SSH no pudo iniciarse Se necesita el demonio SSH para el sistema de impresión y compartición de archivos Pregunte al administrador del sistema para que suministre el servicio SSH en tu ordenador. SSH daemon failed to open the application's public host key. El demonio SSH falló al abrir la clave pública del host de la aplicación. SSH daemon failed to open the application's public key used for exporting folders and printers. El demonio SSH falló al abrir la clave pública del host de la aplicación usada para exportar carpetas e impresoras. SSH daemon failed to open the application's authoized_keys file. El demonio SSH falló al abrir el acrhivo authoized_keys de la aplicación. X2Go sessions not found No se encontró ninguna sesión X2Go Are you sure you want to delete this session? ¿Eliminar esta sesión? KDE KDE RDP connection Conexión RDP XDMCP XDMCP Connection to local desktop Conectar al escritorio local on on Starting connection to server: Iniciando conección con el servidor: to a Connection Error( Error en la conexión ( Couldn't find a SSH connection. No se pudo encontrar la conexión SSH. Enter passphrase to decrypt a key Introduce la frase de paso para desencriptar la clave Host key for server changed. It is now: La clave del servidor ha cambiado. Ahora es: For security reasons, connection will be stopped Se ha detenido la conexión por razones de seguridad The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist No se ha encontrado la clave para este servidor aunque se han econtrado otras. Un hacker podría cambiar la clave por defecto del servidor para hacer creer al cliente que la clave no existe Could not find known host file.If you accept the host key here, the file will be automatically created No se encontró el archivos de claves en este equipo. Si aceptas se creará en nuevo archivo de claves The server is unknown. Do you trust the host key? Public key hash: Este servidor es desconocido. ¿Confiar en su clave? Hash de su clave pública: Host key verification failed Falló la comprobación de la clave del equipo Verification code: Código de verificación: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Esto puede indicar un ataque del tipo main-in-the-middle. Alguien podría estar escuhando las comunicaciones. Por razones de seguridad se recomienda finalizar la conexión. ¿Finalizar la conexión? Yes Si No No If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Si aceptas la nueva clave de seguridad para tu conexión la seguridad en la conexión podría comprometerse. ¿Actualizar la clave del host? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? No se encuentra la clave del host para este servidor pero el servidor tiene otro tipo de clave disponible. Un atacante podría cambiar la clave por defecto del servidor para hacer creer al cliente x2go que la clave del servidor no existe. Por razones de seguridad se recomienda finalizar la conexión. ¿Finalizar la conexión? Authentication failed: Fallo en la autenticación: Authentication failed Falló la autenticación Enter password for SSH proxy Introduce la contraseña para el proxy SSH <b>Connection failed</b> <b>Error en la conexión</b> <b>Wrong password!</b><br><br> <b>Contraseña incorrecta</b><br><br> Connection failed: Fallo en la conexión: - Wrong password. - Contraseña incorrecta. unknown desconocido No server availabel Servidor no disponible Server not availabel Servidor no disponible Select session: Seleccionar sesión: running activa suspended suspendida Desktop Escritorio single application aplicación shadow session sesión tipo shadow Information Información No accessible desktop found No se encontró ningún escritorio al que conectarse Filter Filtro Select desktop: Elige escritorio: Warning Atención Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Tu profundidad de color actual es diferente de la profundidad de color de tu sesión de x2go. ¡Esto suele provocar problemas en la reconección y en la mayoría de los casos <b>perderás la sesión</b> y tendrás que iniciar una nueva! Te recomendamos cambiar la profundidad de color de tu pantalla a 24 or 32 24 o 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit y reiniciar tu servidor X antes de reconectar a esta sesión x2go. <br>¿Recuperar esta sesión? suspending suspendiendo terminating terminando <b>Wrong Password!</b><br><br> <b>¡Contraseña incorrecta!</b><br><br> New session started Iniciada nueva sesión Session resumed Sesión suspendida Unable to create folder: No se ha podido crear la carpeta: Unable to write file: No se ha podido guardar el archivo: Emergency exit. Salida de emergencia. Waiting for proxy to exit. Esperando a la salida del proxy. Failed, killing the proxy. Error, finalizando el proxy. Wrong parameter: Parámetro incorrecto: Help Ayuda Pack Methodes Métodos de empaquetado Option is not availabel in this build La opción no está disponible en esta versión Changelog Registro de cambios Git Info Información Git Unable to create folder: No se ha podido crear la carpeta: Unable to write file: No se ha podido guardar el archivo: Attach X2Go window Añadir ventana X2Go Unable to create SSL tunnel: No fue posible crear el tunel SSL: Unable to create SSL Tunnel: No fue posible crear el tunel SSL: Finished Finalizada starting iniciando resuming Not sure if trying to connect to a resumed session or the running session is being resumed. Current translation is for trying to connect a resumed session. If not wil be better something like "desconectando" restaurando Connection timeout, aborting Tiempo de conexión finalizado. Cancelando aborting cancelando Are you sure you want to terminate this session? Unsaved documents will be lost ¿Seguro que quieres finalizar la sesión? Los documentos no guardados se perderán Session Sesión Display Monitor Creation time Not sure if "creation time" means the date the session was created Sesión creada en <b>Connection failed</b> : <b>Error en la conexión</b> : (can't open file) (no se puede abrir el archivo) (file not exists) (el archivo no existe) (directory not exists) (la carpeta no existe) wrong value for argument"--link" valor incorrecto para el argumento "--link" wrong value for argument"--sound" valor incorrecto para el argumento "--sound" wrong value for argument"--geometry" valor incorrecto para el argumento "--geometry" wrong value for argument"--set-kbd" valor incorrecto para el argumento "--set-kdb" wrong value for argument"--ldap" valor incorrecto para el argumento "--ldap" wrong value for argument"--ldap1" valor incorrecto para el argumento "--ldap1" wrong value for argument"--ldap2" valor incorrecto para el argumento "--ldap2" wrong value for argument"--pack" valor incorrecto para el argumento "--pack" wrong parameter: parámetro incorrecto: Options Opciones Available pack methodes: Métodos disponibles: RSA file empty. Archivo RSA vacío. Can not open key: No se puede abrir la clave: Support Soporte </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>el modo x2goplugin fue patrocinado por <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Cliente para usar con el sistema de acceso remoto X2Go. Este cliente es capaz de conectar con él/los servidor/es X2go y iniciar, parar, guardar y terminar (si están en ejecucion) sesiones de escritorio. El Cliente X2Go almacena diferentes conexiones a servidores y puede recuperar de manera automática datos de autenticación desde directorios LDAP. Además puede usarse como un sistema de inicio de sesión a pantalla completa (reemplazando a gestores de inicio de sesión como xdm). Visita x2go.org para más información. <b>X2Go Client V. <b>cliente X2Go v. Please check LDAP Settings Revisa las opciones acceso a LDAP No valid card found No se encontró una semart card válida Card not configured. Tarjeta no configurada. This card is unknown by X2Go system El sistema C2Go no reconocoe esta smart card Unable to create file: Impoble crear el archivo: Can't connect to X server Please check your settings No se puede conectar con el servidor X Comprueba los datos de configuración Can't start X server Please check your settings No se puede iniciar el servidor X Comprueba los datos de configuración Can't start X Server Please check your installation No se puede iniciar el servidor X Comprueba la instalación del sistema Unable to execute: Imposible ejecutar el comando: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package El servidor remoto no soporta el sistema de archivos exportado a través del tunel SSH Actualiza el paquete x2goserver en el servidor Unable to read : Imposible leer: Unable to write : Imposible escribir: WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Fallo al obtener el tamaño de la ventana (¿está la ventana cerrada?) X2Go Session Sesión X2Go wrong value for argument"speed" valor incorrecto para el argumento "velocidad" Password: Contraseña: Keyboard layout: Tipo de teclado: Ok Ok Cancel Cancelar <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>ID de Sesión:<br>Servidor:<br>Nombre de usuario:<br>Monitor:<br>Sesión creada en:<br>Estado:</b> Applications... Aplicaciones... Starting X2Go Client... Iniciando cliente X2Go... Starting X2Go Client in portable mode. Data directory is: Iniciando cliente X2Go en modo portable. La carpeta de datos es: About X2Go Client Acerca del cliente X2Go Started X2Go Client. Cliente X2Go iniciado. found. encontrado. English language requested, not loading translator. Lenguaje Inglés solicitado. No se carga el traductor. Non-fatal: can't load translator: Error no fatal: no se puede cargar el traductor. Trying to load language with lower preference, if existent. Intentando cargar el lenguaje con la menor preferencia si existe. Session management ... Mantenimiento de sesión ... &Create session icon on desktop ... &Crear icono de sesión en el escritorio ... &Set broker password ... &Establecer contraseña para el broker ... &Connectivity test ... Test de &conectividad ... Share folder ... Carpeta compartida ... A left click hides or restores the window. A right click displays the context menu. Clic para ocultar o restaurar la ventana. Clic con el botón derecho para mostrar el menú contextual. Closing X2Go Client ... Cerrando el cliente X2Go ... Finished X2Go Client closing hooks. Cliente X2Go finalizado. Cerrando vínculos. Broker authentication failed! ¡Falló la autenticación del broker! no X2Go Server found in LDAP no se encontró el Servido X2Go en el entorno LDAP Connection error: Error en la conexión: Couldn't find an SSH connection. No se pudo encontrar la conexión SSH. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Esto puede indicar un ataque del tipo hombre en el medio. Alguien podría estar espiándote. Por razones de seguridad se recomienda finalizar el intento de conexión. ¿Quieres terminar la conexión? Host key verification failed. Falló la verificación de la clave del equipo. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? No se encuentra la clave del host para este servidor pero el servidor tiene otro tipo de clave disponible. Un atacante podría cambiar la clave por defecto del servidor para hacer creer al cliente x2go que la clave del servidor no existe. Por razones de seguridad se recomienda finalizar la conexión. ¿Finalizar la conexión? Could not find known hosts file.If you accept the host key here, the file will be automatically created. No se ha encontrado el archivo know-hosts. Si aceptas el archivo se creará automáticamente. Authentication failed. Falló la autenticación. <b>Connection failed.</b> <b>Error en la conexión</b> No server available. Servidor no disponible. Server not available. Servidor no disponible. No accessible desktop found. No se encontró ningún escritorio al que conectarse. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to Tu profundidad de color actual es diferente de la profundidad de color de tu sesión de x2go. ¡Esto suele provocar problemas en la reconección y en la mayoría de los casos <b>perderás la sesión</b> y tendrás que iniciar una nueva! Te recomendamos cambiar la profundidad de color de tu pantalla a bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? bits y reiniciar tu servidor X.Org antes de reconectar a esta sesión X2Go.<br />¿Recuperar esta sesión? Unable to create SSH tunnel for X2Go session (NX) startup: No ha sido posible crear el túnel SSH para iniciar la sesión (NX): Unable to create SSH tunnel for audio data: No fue posible crear el tunel SSL para los datos de sonido: failed to start. falló el inicio. This likely means the binary is not available. The current search path is: Habitualmente esto significa que el ejecutable no está disponible. La ruta actual de búsqueda es: returned a non-zero exit code or crashed otherwise. devuelve un código de salida distinto de cero o de error en otro caso. Execution failed, exit code was: Falló la ejecución, el código de salida fue: didn't start up in time. no pudo empezar a tiempo. This error shouldn't come up. Este error no debería haber pasado. didn't accept a write operation. no se aceptó la operación de escritura. It is probably not running correctly or crashed in-between. Probablemente no se está ejectuando correctamente o hubo un fallo en medio. Unable to read from xmodmap. Imposible leer desde xmodmap. encountered an unknown error during start up or execution. se encontró un error desconocido durante el inicio o la ejecución. experienced an undefined error. se ha producido un error no definido. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. El cliente X2Go se cerrará ahora. Rellena un informe de error en <a href="http://wiki.x2go.org/doku.php/wiki:bugs">la página de notificación de errores</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. El proxy no finalizó después de 3 segundos. Finalizando el proxy. Closing X2Go Client because it was started in hidden mode. Finalizando el cliente X2Go porque empezó en modo oculto. Closing X2Go Client because the --close-disconnect parameter was passed. Finalizando el cliente X2Go porque se pasó el parámetro --close-disconnect. Are you sure you want to terminate this session? Unsaved documents will be lost. ¿Seguro que quieres finalizar la sesión? Los documentos no guardados se perderán. <b>Connection failed.</b> : <b>Error en la conexión</b> : (file does not exist) (el archivo no existe) (directory does not exist) (la carpeta no existe) Invalid value for parameter "--link". Valor incorrecto para el argumento "--link". Invalid value for parameter "--clipboard". Valor incorrecto para el argumento "--clipboard". Invalid value for parameter "--sound". Valor incorrecto para el argumento "--sound". Invalid value for parameter "--geometry". Valor incorrecto para el argumento "--geometry". Invalid value for parameter "--set-kbd". Valor incorrecto para el argumento "--set-kdb". Invalid value for parameter "--ldap". Valor incorrecto para el argumento "--ldap". Invalid value for parameter "--ldap1". Valor incorrecto para el argumento "--ldap1". Invalid value for parameter "--ldap2". Valor incorrecto para el argumento "--ldap2". Invalid value for parameter "--pack". Valor incorrecto para el argumento "--pack". Available pack methods: Métodos de empaquetado disponibles: Pack Methods Métodos de empaquetado Option is not available in this build. La opción no está disponible en esta versión. Unable to create directory: No se ha podido crear la carpeta: Cannot open key: No se puede abrir la clave: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>(C) 2005-2016 de <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>El modo X2GoPlugin fue patrocinado por <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <br>Cliente para usar con el sistema de acceso remoto X2Go. Este cliente es capaz de conectar con él/los servidor/es X2go y iniciar, parar, guardar y terminar (si están en ejecucion) sesiones de escritorio. El Cliente X2Go almacena diferentes conexiones a servidores y puede recuperar de manera automática datos de autenticación desde directorios LDAP. Además puede usarse como un sistema de inicio de sesión a pantalla completa (reemplazando a gestores de inicio de sesión como xdm). Visita <a href="http://www.x2go.org">la página del projecto en x2go.org</a> para más información. <b>X2Go Client v. <b>Cliente X2Go v. Please check LDAP Settings. Comprueba los datos de conexión LDAP. Check whether the package providing "scdaemon" is installed. The current search path is: Comprueba si el paquete que provee "scdaemon" está instalado. La carpeta de búsqueda actual es: didn't start yet. no se pudo empezar todavía. Unable to read from scdaemon. Imposible leer desde scdaemon. No valid card found. No se encontró una tarjeta válida. This card is unknown to the X2Go system. El sistema X2Go no reconocoe esta smart card. Can't start X.Org Server. Please check your installation. No se puede iniciar el servidor X.Org. Comprueba la instalación del sistema. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. El servidor remoto no soporta exportar el sistema de archivos a través del tunel SSH. Actualiza el paquete x2goserver en el servidor. Unable to create SSH tunnel for Folder Sharing and Printing support: No ha sido posible crear el túnel SSH para las carpetas compartidas y la impresión remota: Unable to read: No ha sido posible leer: Unable to write: No se ha podido guardar el archivo: Error getting window geometry. (Did you close the window?) Fallo al obtener el tamaño de la ventana (¿Has cerrado la ventana?) Invalid value for argument "speed" Valor incorrecto para el argumento "velocidad" Applications ... Aplicaciones... Abort Cancelar Show details Mostrar detalles Resume Desconectar New Nueva Full access Acceso completo View only Sólo ver Status Estado Command Comando Type Tipo Server Servidor Client IP IP del cliente Session ID ID de la Sesión User Usuario Only my desktops Sólo mis escritorios SSH daemon could not be started. No se ha podido iniciar el demonio SSH. SSH daemon is not running. El deomio SSH no está en ejecución. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Has habilitado la impresión remota o la compartición de archivos. Estas características requieren que se ejecute un servidor SSH en tu equipo. <b>La impresión remota y la compartición de archivos estará deshabilitados para esta sesión.</b> Comprueba el <b>Puerto SSH en el lado del cliente</b> en los ajustes generales. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalmente esto no debería suceder ya que el cliente X2Go para Windows tiene su propio servidor SSH interno. Si ves este mensaje, por favor informa del error en: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. El servidor SSH falló durante el inicio. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> El cliente X2Go no ha detectado en ejecución ningún servidor SSH en tu equipo and no pudo iniciarlo. Por favor, reporta el error en: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. El servidor SSH no está activo. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> En OS X sigue los siguientes pasos para activar el servicio SSH:<ul><li>Abrir <b>Preferencia del sistema</b> (Aplicaciones -> Preferencias del Sistema)</li><li>Ir a <b>Compartir</b></li><li>Activa los siguientes checks <b>Acceso remoto</b></li><li>Verficiar acceso <b>Permitir acceso para:</b> está seleccionado para:<ul><li>Todos los usuarios: <b>no se necesitan más acciones</b></li><li>Sólo estos usuarios <b>y tu nombre de usuario incluido en la lista</b></li></ul><li>Opcionalmente añade tu usuario usando el <b>Botón más</b></li></ul><b>Atención: activando el acceso SSH se permite el acceso desde la red a tu equipo. Es de tu responsabilidad usar una contraseña segura para cada uno de los usuarios habilitados para acceder por SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Por favor, pregunta a tu administrador para activar el servicio SSH en tu equipo. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. Desactivando la impresión remota o la compartición de archivos en los ajustes de la sesión eliminará este mensaje. SSH daemon failed to open its public host key. El demonio SSH falló al abrir su clave pública del equipo. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Has activado la Impresión Remota o la Compartición de Archivos. Estas características necesitan un servidor SSH en tu equipo instalado y funcionando. <b>La Impresión Remota y la Compartición de Archivos se ha desactivado para esta sesión</b> El servidor SSH no está configurado correctamente. Asegúrate de que el servidor existe. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalmente esto no debería suceder ya que el cliente X2Go para Windows tiene su propio servidor SSH interno. Si ves este mensaje, por favor informa del error en: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> El cliente X2Go no ha detectado en ejecución ningún servidor SSH en tu equipo and no pudo iniciarlo. Por favor, reporta el error en: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p En OS X sigue los siguientes pasos para generar las claves necesarias:<ul><li>Abre una <b>Ventana del Terminal</b> (Aplicaciones -> Utilidades -> Terminal)</li><li>Ejecuta el siguiente comando: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> Pide a tu administrador que genere las claves de equipo necesarias. Si tu eres el administrador del equipo ejecuta: <center><b>sudo ssh-keygen -A</b></center> SSH daemon failed to open the application's authorized_keys file. El demonio SSH falló al abrir el archivo authoized_keys de la aplicación. sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> no se ha iniciado sshd. Necesitas iniciar sshd para imprimir y para compartir carpetas puedes instalar sshd con <b>sudo apt-get install openssh-server</b> Restore toolbar Restaurar barra de herramientas <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Haz clic en este botón&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;para restaurar la barra de herramientas&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Imprimir - Cliente X2Go Print Imprimir You've deactivated the X2Go Client printing dialog. Has desactivado el diálogo de impresión del cliente X2Go. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) Puedes reactivar este diálogo dentro de las preferencia del cliente X2Go (Menú -> Opciones -> Preferencias) You've deactivated the x2go client printing dialog. Has desactiva el diálogo de impresión del cliente x2go. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Puedes reactivar este diálogo dentro de las preferencia del cliente x2go (Menú -> Opciones - > Preferencias) PrintProcess Save File Guardar Archivo PDF Document (*.pdf) Documento PDF (*.pdf) Failed to execute command: Fallo al ejecutar el comando: Printing error. Error de impresión. Printing error Error de impresión PrintWidget Form Formulario Print Imprimir View as PDF Mostrar como PDF Print settings Opciones de impresión Printer: Impresora: Print using default Windows PDF Viewer (Viewer application needs to be installed) Imprimir usando el Visor PDF por defecto (se necesita instalar un visor de PDF) Printer command: Comando de impresión: ... ... Viewer settings Parámetros del visor Open in viewer application Abrir con el programa Command: Comando: Save to disk Guardar como archivo Show this dialog before start printing Mostrar este diálogo antes de imprimir 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>. Configura los parámetros de impresión en el lado del cliente.<br><br>Si quieres imprimir el archivo creado necesitas un programa externo. Normalmente puedes usar <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> y <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Puedes encontrar más información<a href="http://www.x2go.org/index.php?id=49">aquí</a>. 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>. Configura los parámetros de impresión en el lado del cliente.<br><br>Si quieres imprimir el archivo creado necesitas un programa externo. Normalmente puedes usar <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> y <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Puedes encontrar más información <a href="http://www.x2go.org/index.php?id=49">aquí</a>. PrinterCmdDialog Printer command Comando para imprimir Command Comando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Introduce tu comando personalizado para imprimir. Ejemplos: kprinter lpr -P hp_larserjet Output format Formato de salida Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Selecciona el formato de impresión (de acuerdo a tu entorno de impresión - si usas CUPS puedes usar PDF) PDF PDF PS PS Data structure Estructura de datos Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Selecciona el método de entrada para el archivo de impresión (algunos comando aceptan archivos de impresión como opciones; otros reciben datos de la entrada estándar): standard input (STDIN) entrada estándar (STDIN) Specify path as program parameter especificar ruta como parámetro del programa Please enter your customized or individual printing command. Example: Introduce el comando personalizado de impresión. Ejemplo: <Path to gsprint.exe> -query -color <Ruta a gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? No se ha recibido respuesta del servidor remoto. ¿Finalizar la sesión actual? X2Go Client could not find any suitable X11 server. No se encontró ningún servidor X11 disponible. X2Go Client could not start X11 server. El cliente X2Go no pudo iniciar el servidor X11. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: El cliente X2Go necesita que XQuartz esté instalado en tu equipo. Is ya está instalado XQuartz en tu equipo, elige la ruta correcta en la siguiente pantalla. En el final de este mensaje hay ejemplos de las rutas habituales donde está XQuartz en el caso de que no sepas la localización exacta. Si <b>no</b> has instalado XQuartz todavía, sigue los s iguientes pasos: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> Los usuarios de MacPorts debe instalar el port <b>xorg-server</b> o el port <b>xorg-server-devel</b>. Cuando se haya realizado la instalación con éxito debes seguir las instrucciones mostradas por la utilidad del port para auto iniciar/cargar el servidor. Para el resto de usuarios, hay que descargar e instalar XQuartz desde: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Una vez hecho esto se debe reiniciar el cliente X2Go y elegir la ruta correcta hacia la aplicación X11 in los ajustes generales del cliente X2Go. En la mayoría de los casos la ruta debería ser <center><b>/Applications/MacPorts/X11.app</b></center> o <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Preferencias de la sesión... Create session icon on desktop... Crear icono de sesión en el escritorio... Session preferences ... Preferencias de la sesión ... Create session icon on desktop ... Crear icono de sesión en el escritorio ... Delete session Borrar sesión Session actions Acciones sobre la sesión Select type Elegir tipo Select resolution Elegir resolución Toggle sound support Alternar entre soporte para sonido activo sí o no New Session Nueva sesión running activa suspended suspendida KDE KDE RDP connection Conexión RDP XDMCP XDMCP Connection to local desktop Conexión al escritorio local Published applications Aplicaciones publicadas fullscreen pantalla completa Display Monitor window ventana Maximum Máximo Enabled Activo Disabled Desactivado SessionExplorer Back Atrás Create session icon on desktop Crear icono de sesión en el escritorio Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Los iconoes del escritorio pueden configurarse para no mostrar la ventana del cliente x2go (modo oculto). Si quieres usar esta característica tienes que configurar el inicio de sesión usando una clave gpg o una smart card. ¿Usar el cliente x2go en modo oculto? Create session icon on desktop. Crear icono de sesión en el escritorio. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Los iconoes del escritorio pueden configurarse para no mostrar la ventana del cliente X2Go (modo oculto). Si quieres usar esta característica tienes que configurar el inicio de sesión usando una clave GPG o una GPG Smart Card. ¿Usar el cliente X2Go en modo oculto? Show session tray icon when running Mostrar icono de sesión en la bandeja del sistema durante la ejecución New Session Nueva sesión X2Go Link to session Enlace a la sesión X2go Are you sure you want to delete this session? ¿Eliminar esta sesión? SessionManageDialog E&xit &Salir &New session &Nueva sesión &Session preferences &Preferencias de la sesión &Delete session &Eliminar sesión &Create session icon on desktop ... &Crear icono de sesión en el escritorio ... &Create session icon on desktop... &Crear icono de sesion en el escritorio... Delete Delete Eliminar Session management Manejo de sesiones SessionWidget Session name: Nombre de la sesión: << change icon << cambiar icono Path: Ruta: &Server &Servidor Host: Host: Login: Usuario: SSH port: Puerto SSH: Use RSA/DSA key for ssh connection: Usar claves RSA/DSA para la conexión ssh: Try auto login (ssh-agent or default ssh key) Intentar auto inicio de sesión (a través del agente ssh o de la clave ssh por defecto) Kerberos 5 (GSSAPI) authentication Autenticación Kerberos 5 (GSSAPI) Delegation of GSSAPI credentials to the server Delegación de credenciales GSSAPI al servidor Use Proxy server for SSH connection Usar servidor Proxy para la conexión SSH Proxy server Servidor Proxy SSH SSH HTTP HTTP Same login as on X2Go Server Mismos datos de inicio de sesión que en el servidor X2Go Same password as on X2Go Server Misma contraseña que el servidor X2Go RSA/DSA key: Clave RSA/DSA: X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. El cliente X2Go está ejecutándose en modo portable. Deberías usar una ruta hacia tu dispositivo USB donde poder usar tus datos en cualquier lugari. ssh-agent or default ssh key agente ssh o clave ssh por defecto Type: Tipo: Port: Puerto: &Session type Tipo de &sesión Session type: Tipo de sesión: Connect to Windows terminal server Conectar a Windows Terminal Server XDMCP XDMCP Connect to local desktop Conectar al escritorio local Custom desktop Escritorio personalizado Single application Aplicación Published applications Aplicaciones publicadas Command: Comando: Advanced options... Opciones avanzadas... Path to executable Ruta al ejecutable Direct RDP Connection Conexión RDP directa RDP port: Puerto RDP: Open picture Abrir imagen Pictures Imágenes Open key file Archivo con la clave open Try auto login (via SSH Agent or default SSH key) Intentar auto inicio de sesión (a través del agente SSH o de la clave SSH por defecto) SSH Agent or default SSH key Agente SSH o clave SSH por defecto Connect to Windows Terminal Server Conectar a Windows Terminal Server Direct RDP connection Conexión RDP directa All files Todos los archivos Error Error x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are el cliente x2go está ejecutándose en modo portable. Debería usar una ruta hacia tu dispositivo usb donde poder usar tus datos dondequiera estés Server: Servidor: XDMCP server: Servidor XDMCP: rdesktop command line options: opciones de línea de comando para rdesktop: New session Nueva sesión SettingsWidget &Display &Monitor &Keyboard &Teclado Sound Sonido &Clipboard Mode Modo de &Portapapeles Bidirectional copy and paste Copiar y Pegar en ambas direcciones Copy and paste from client to server Copiar y pegar desde el cliente al servidor Copy and paste from server to client Copiar y pegar desde el servidor al cliente Disable clipboard completely Desactivar portapapeles por completo Auto detect keyboard settings Auto detectar preferencias del teclado Do not configure keyboard No configurar el teclado Configure keyboard Configurar el teclado Model: Modelo: Layout: Capa: Variant: Variante: RDP Client Cliente RDP &Clipboard mode Modo de &Portapapeles Fullscreen Pantalla completa Custom Personalizado Window Ventana Use whole display Usar toda la pantalla Maximum available Máxima disponible Set display DPI Especificar DPI Xinerama extension (support for two or more physical displays) Extensión Xinerama (soporta dos o más monitores físicos) Width: Ancho: Height: Alto: &Display: &Monitor: &Identify all displays &Identificar monitores Auto-detect keyboard settings Auto detectar preferencias del teclado RDP client Cliente RDP Keep current keyboard Settings Mantener las preferencias actuales para el teclado Keyboard layout: Mapa del teclado: Keyboard model: Modelo de teclado: Enable sound support Activar soporte de sonido Start sound daemon Iniciar demonio de sonido Use running sound daemon Usar el demonio de sonido actual Use SSH port forwarding to tunnel sound system connections through firewalls Usar el tunel de puertos SSH para el sonido en conexiones a través de firewalls Use default sound port Usar el puerto para el sonido por defecto Sound port: Puerto de sonido: Client side printing support Soporte para imprimir en el cliente Additional parameters: Parámetros adicionales: Command line: Línea de comando: us es pc105/us pc105/es password contraseña ShareWidget &Folders Car&petas Path Ruta Automount Automontar Add Añadir Delete Eliminar Path: Ruta: Filename encoding Codificación para los nombres de archivo local: local: remote: remoto: Use SSH port forwarding to tunnel file system connections through firewalls Usar tunel de puertos SSH para el sistema de archivos a través de firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. El cliente X2Go está ejecutándose en modo portable. Deberías usar una ruta hacia tu dispositivo USB donde poder usar tus datos en cualquier lugar. Use ssh port forwarding to tunnel file system connections through firewalls Usar tunel de puertos SSH para el sistema de archivos a través de firewalls Select folder Elegir carpeta Error Error x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are el cliente x2go está ejecutándose en modo portable. Debería usar una ruta hacia tu dispositivo usb donde poder usar tus datos dondequiera estés WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error Error en la conexión con el proxy SSH SSH proxy connection error. Error en la conexión con el proxy SSH. SSH proxy connection error: Error en la conexión con el proxy SSH: Failed to create SSH proxy tunnel. Fallo al crear el tunel SSH. Cannot initialize libssh. No se puede inicializar libssh. Cannot create SSH session. No se puede crear la sesión SSH. Cannot connect to proxy server. No hay conexión con el servidor proxy. Authentication failed. Falló la autenticación. Failed to start SSH client. Please check your installation and GSSApi configuration. Fallo al iniciar el cliente SSH. Por favor comprueba tu instalación y la configuración GSSApi. Check your GSSApi configuration or choose another authentication method. Comprueba tu configuración GSSApi o elije otro método de autenticación. Cannot open file No se puede abrir el archivo Cannot create remote file No se puede crear el archivo remoto Cannot write to remote file No se puede escribir en el archivo remoto channel_open_forward failed. error en channel_open_forward. channel_open_session failed. error en channel_open_session. Error writing to socket. Error escribiendo en el socket. Error reading channel. Error leyendo el canal. channel_write failed. error en channel_write. Error reading from TCP socket. Error leyendo el socket TCP. Failed to create SSH proxy tunnel Fallo al crear el tunel SSH a través del proxy Can not initialize libssh No se puede inicializar libssh Can not create ssh session No se puede crear la sesión ssh Can not connect to proxy server No hay conexión con el servidor proxy Can not connect to No se puede conectar a Authentication failed Fallo de autenticación channel_forward_listen failed error en channel_forward_listen Failed to start SSH Client. Please check your installation and GSSApi configuration Fallo al iniciar el cliente SSH: Por favor comprueba tu instalación y la configuración GSSAPI Check your GSSApi configuration or choose another authentication method Comprueba tu configuración GSSAPI o elije otro método de autenticación Can not open file No se puede abrir el archivo Can not create remote file No se puede crear el archivo remoto Can not write to remote file No se puede escribir en el archivo remoto Cannot connect to no se puede conectar a channel_open_forward failed error en channel_open_forward channel_open_session failed error en channel_open_session channel_request_exec failed error en channel_request_exec error writing to socket error escribiendo en el socket error reading channel error leyendo el canal channel_write failed error en channel_write error reading tcp socket error leyendo el socket tcp SshProcess Error creating socket Error creando el socket Error creating socket. Error creando el socket. Error binding Error rellenando XSettingsWidget Open File Abrir Archivo Executable (*.exe) Ejecutable (*.exe) XSettingsWidgetUI Form Formulario You must restart the X2Go Client for the changes to take effect Debes reiniciar el Cliente X2Go para que los cambios se apliquen correctamente use integrated X-Server usar el Servidor X integrado do not use primary clipboard no usar el portapapeles principal use custom X-Server usar Servidor X personalizado custom X-Server Servidor X personalizado executable: ejecutable: start X-Server on X2Go Client start iniciar ServidorX en el inicio del cliente X2Go command line options: opciones de la línea de comando: X-Server command line options Opciones para la línea de comandos del Servidor X window mode: modo ventana: fullscreen mode: modo pantalla completa: single application: modo aplicación: whole display: x2goclient-4.0.5.1/res/i18n/x2goclient_et.ts0000644000000000000000000054212612675050177015335 0ustar AppDialog Published Applications Kasutatavad programmid Search: Otsi: &Start &Käivita &Close &Sule Multimedia Multimeedia Development Arendus Education Õppeotstarbelised Game Mäng Graphics Graafika Network Võrk Office Kontoritarkvara Settings Seaded System Süsteem Utility Abiprogramm Other Muu BrokerPassDialogUi Dialog Dialoog Old password: Vana salasõna: New password: Uus salasõna: Confirm password: Kinnita salasõna: TextLabel Seletus BrokerPassDlg Passwords do not match Salasõnad ei ole samad CUPSPrintWidget Form Vorm Name: Nimi: Properties Omadused State: Olek: Accepting jobs: Lubatud toimingud: Type: Tüüp: Location: Asukoht: Comment: Kommentaar: Idle Ootel Printing Prindib Stopped Peatatud Yes Jah No Ei CUPSPrinterSettingsDialog No option selected Midagi ei ole valitud This value is in conflict with another option. Options conflict. This value is in conflict with other option Valik on vastuoleus eelmise valikuga Options conflict Valikud ei ole omavahel kooskõlas ConTest Connectivity test Ühenduse testimine HTTPS connection: HTTPS - ühendus: SSH connection: SSH - ühendus: Connection speed: Ühenduse kiirus: Failed Ebaõnnestus 0 Kb/s 0 Kb/s OK OK Socket operation timed out. Socket operation timed out Soketi toiming vananes Failed: Ebaõnnestus: ConfigDialog General Üldine Display icon in system tray Näita ikooni tegumiribal Hide to system tray when minimized Peida tegumiribale kui minimeeritakse Hide to system tray when closed Peida tegumiribale kui suletakse Hide to system tray after connection is established Peida tegumiribale kui ühendus on loodud Restore from system tray after session is disconnected Too uuesti esile kui ühendus katkeb Use LDAP Kasuta LDAP-d Server URL: Serveri URL-aadress: BaseDN: BaseDN: Failover server 1 URL: Esimese varuserveri URL: Failover server 2 URL: Teise varuserveri URL: X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings X-serveri seaded X11 application: X11-programm: X11 version: X11-versioon: Find X11 application Otsi X11-rakendus Clientside SSH port for file system export usage: Kliendi SSH-port mida kasutatakse failide ekspordil: Start session embedded inside website Käivita ühendus veebilehe sees Advanced options Täpsemad valikud Defaults Vaikimisi omadused &OK &OK &Cancel &Loobu Settings Seaded Printing Printimine Warning Hoiatus x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2go-ei leida sobivat X11-rakendust. Installeeri Apple X11 või määa rakenduse asukoht Your are using X11 (Apple X-Window Server) version Sa kasutad X11 (Apple X-Window Server) versiooni . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . See versioon tekitab probleeme 24 bitise värviedastusega. Uuenda oma X11-rakendus (http://trac.macosforge.org/projects/xquarts). No suitable X11 application found in selected path Valitud asukohast ei leita toimivat X11-rakendust &Connection &Ühendus &Input/Output &Media &Settings &Seaded ConnectionWidget &Connection speed &Ühenduse kiirus Connection speed: Ühenduse kiirus: C&ompression &Pakkimine Method: Meetod: Compression method: Pakkimismeetod: Image quality: Pildi kvaliteet: CupsPrinterSettingsDialog Dialog Valikud General Üldine Page size: Lehe suurus: Paper type: Paberi tüüp: Paper source: Paberi sisestusseade: Duplex Printing Kahepoolne-printimine None Ära kasuta Long side Pikk leht Short side Lühike leht Driver settings Ajuri seaded Option Valikud Value Väärtus No option selected Midagi ei ole valitud text tekst EditConnectionDialog &Session &Sessioon &Connection &Ühendus &Input/Output &Media &Shared folders &Jagatud kataloogid &OK &OK &Cancel &Loobu Defaults Vaikimisi väärtused Session preferences - Sessiooni parameetrid - ExportDialog &Cancel &Loobu &share &jaga &Preferences ... &Parameetrid ... &Custom folder ... &Vali kataloog ... Delete Delete Kustuta Share Folders share folders jaga katalooge Select folder Vali kataloog FolderButton Sessions folder Sessioonide kaust FolderExplorer Folders Kataloogid Create New Folder Loo uus kataloog Rename Folder... Nimeta kataloog ümber ... Change Icon... Vaheta ikoon ... Delete Folder... Kustuta kataloog... Rename Folder ... Change Icon ... Delete Folder ... Open picture Ava piltAva pilt Pictures Pildid X2Go Client X2Go klient Folder Name: Kataloogi nimi: Error Viga Unable to remove " Ei suuda eemaldada " ". Folder is not empty. Please remove the contents of this directory and try again. ". Folder is not empty. Please remove content of folder and try again. ". Kataloog ei ole tühi. Palun eemalda esmalt kataloogi susu ja proovi siis uuesti. Delete folder " Kustuta kataloog " New Folder Uus Kataloog HelpDialog Options Valikud HttpBrokerClient Host key for server changed. It is now: tarkista Serveri võti on muutunud. See on nüüd: For security reasons, connection will be stopped Ühendus katkestatakse turvalisuse tõttu The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Serveri võtit ei leitud, aga leidus muu võti. Mõni häkker võib olla vahetanud oletusvõtme üritades petta kaugkasutajat et viimane arvaks et võtit ei ole Could not find known host file.If you accept the host key here, the file will be automatically created Ei leidu tuntud võtmete faili. Kui kinnitad selle serveri võtme, moodustame automaatselt ka tuntud võtmete faili The server is unknown. Do you trust the host key? Public key hash: Tundmatu server. Kas Sa usaldad tema võtit.? Tema avaliku võtme 'hash' on: Host key verification failed Võtme kontroll ebaõnnestus Yes Jah No Ei Verification code: Kontrollkood: Enter passphrase to decrypt a key Anna võtme salasõna Authentication failed Autentimine ebaõnnestus Error Viga Login failed!<br>Please try again Sisselogimine ebaõnnestus!<br>Palun ürita uuesti <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Serveri sertifikaat on vigane.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Sa ei tohiks lisada erandit kui Sa kasutad internetiühendust, mida sa täielikult ei usalda, või kui Sa pole harjunud saama pidevalt seda hoiatust sellelt serverilt.</p> Secure connection failed Turvalise ühenduse loomine ebaõnnestus For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Host key verification failed. Authentication failed. Login failed!<br>Please try again. Secure connection failed. Issued to: Antud: Common Name(CN) Common Name(CN) Organization(O) Organisatsioon (O) Organizational Unit(OU) Organisatsiooni allüksus(OU) Serial Number Seeria number Issued by: Väljaandja: Validity: Kehtivus: Issued on Välja antud expires on vananeb Fingerprints: Sõrmejälg: SHA1 SHA1 MD5 MD5 Exit X2Go Client Sulge X2GoClient Add exception Lisa erand MediaWidget Sound Heli Enable sound support Võimalda heli Start sound daemon Käivita helimoodul Use running sound daemon kasuta käimasolevat heli moodulit Use SSH port forwarding to tunnel sound system connections through firewalls Kasuta SSH port edastust heliseadete ühendamiseks pääsemaks läbi tulemüüri Use default sound port Kasuta vaikimisi heli porti Sound port: Heli port: Client side printing support Kliendipoolne printimine ONMainWindow Starting x2goclient... x2goclient käivitub... us us pc105/us pc105/us X2Go Client X2Go Client connecting ühendan Internet browser Veebilehitseja Email client E-mail kliendiprogramm OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Käivitan x2goclient-i 'mobiilses' olekus... Andmekataloog on: &Settings ... &Seaded... Support ... Tugi... About X2GO client X2Go client andmed Started x2goclient. X2Go klient on käivitatud. Can't load translator: Translaatori laadimine ei õnnestu: Translator: Translaator: installed. installeeritud. Share folder... Jaga kataloog... Applications... Rakendused... Suspend Peata Terminate Sulge Reconnect Ühenda uuesti Detach X2Go window Haagi X2Go akent.lahti ;-) Minimize toolbar Minimiseeri töövahendid Session: Sessioon: &Quit &Lõpeta Ctrl+Q Ctrl+Q Quit Lõpeta &New session ... &Uus sessioon... Ctrl+N Ctrl+N Session management... Sessiooni haldamine... Ctrl+E Ctrl+E &Create session icon on desktop... &Tee sessiooniikoon töölauale... &Set broker password... &Anna 'broker'-i salasõna... &Connectivity test... &Ühenduse test... Show toolbar Näita töövahendite riba About Qt Qt andmed Ctrl+Q exit Ctrl+Q Starting X2Go Client... Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... &Session &Sessioon &Options &Valikud &Help &Abi Login: Logi sisse: Error Viga Operation failed Toiming ebaõnnestus Password changed Salasõna on vahetatud Wrong password! Vale salasõna! Connecting to broker Ühendume 'broker'-iga <b>Authentication</b> <b>Autentimine</b> Restore Taasta Not connected Ei ole ühendatud Multimedia Multimeedia Development Arendus Education Õpetus Game Mäng Graphics Graafika Network Võrk Office Office Settings Seaded System Süsteem Utility Abiprogramm Other Muu Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! no X2Go Server found in LDAP Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". SSH daemon failed to open the application's authorized_keys file. Left mouse button to hide/restore - Right mouse button to display context menu Vasak hiire nupp - peida/näita - Parem nupp - näta valikuid Closing x2goclient... x2goclient sulgub... Closed x2goclient. X2goclient on suletud. Please check LDAP settings Palun kontrolli LDAP-sätteid no X2Go server found in LDAP X2Go -serverit ei leia LDAP-st Create session icon on desktop Loo sessiooni ikoon töölauale Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Töölauaikoonid võib sättida peitma x2goclient rakendust (hidden mode). Kui sa tahad seda võimalust kasutada siis säti login kasutama gpg-võtit või gpg -kaarti. Kasuta x2goclient programmi peidetuna? New Session Uus sessioon X2Go Link to session X2Go viit sessioonile No X2Go sessions found, closing. X2Go -sessioone ei leidunud, suleme. Are you sure you want to delete this session? Kas oled kindel, et tahad kustutada selle sessiooni? KDE KDE RDP connection RDP -ühendus XDMCP XDMCP Connection to local desktop Ühendus lokaalsele töölauale on sees Starting connection to server: Ühenduse loomine serveriga: to => Connection Error( Ühenduse viga( Couldn't find a SSH connection. Ei leia SSH-ühendust. Enter passphrase to decrypt a key Anna võtme salasõna Host key for server changed. It is now: Serveri avalik võti on muutunud. See on nüüd: wrong value for argument"--clipboard" Vigane argumendi "--clipboard" väärtus Help Abi Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" Applications ... SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH Error SSH Viga SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH daemoni ei suudeta käivitada. Sa vajad seda printimiseks ja jagamiseks. Tavaliselt, seda viga ei juhtu kuna X2Go windowsi.klient tuleb koos sisseehitatud sshd.exe'ga. Kui Sa näed seda viga, palun tee selle kohta postitus X2Go bugtracker'isse. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH daemon ei ole käivitatud. Sa vajad SSH daemonit printimiseks ja jagamiseks Palu, et süsteemi administraator lisaks SSH service Sinu arvutisse. SSH daemon failed to open the application's public host key. SSH daemon ei suuda avada rakenduse avalikku võtit. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH daemon ei suuda avada rakenduse avalikku võtit eksportimaks katalooge ja printereid. SSH daemon failed to open the application's authoized_keys file. SSH daemon ei suuda avada rakenduse 'authorized_keys' faili. For security reasons, connection will be stopped Ühendus suletakse olematu turvalisuse tõttu The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Serveri võtit ei leitud, aga leidus muu võti. Mõni häkker võib olla vahetanud oletusvõtme üritades petta kaugkasutajat et viimane arvaks, et võtit ei ole Could not find known host file.If you accept the host key here, the file will be automatically created Ei leidu tuntud võtmete faili (known_host). Kui kinnitad selle serveri võtme, moodustame automaatselt ka tuntud võtmete faili The server is unknown. Do you trust the host key? Public key hash: Tundmatu server. Kas Sa usaldad tema võtit.? Tema avaliku võtme 'hash' on: Host key verification failed Võtme kontroll ebaõnnestus Show session tray icon when running Kui programm töötab näita ikooni tegumiribal Verification code: Kontrollkood: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? See võib olla 'man-in-the-middle' rünnaku tunnus. Tusvalisuse kaalutlustel on soovitatav katkestada ühendus. Kas Sa soovid ühenduse katkestada? Yes Jah No Ei If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Kui sa kinnitad uue võtme võib Su ühendus muutuda ebaturvaliseks. Kas sa tahad võtit uuendada? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Serveri võtit ei leitud, aga leidus muu võti. Mõni häkker võib olla vahetanud oletusvõtme üritades petta kaugkasutajat et viimane arvaks, et võtit ei ole Turvalisuse kaalutlusel soovitame ühendus katkestada. Kas Sa soovid ühenduse katkestada? Authentication failed: Autentimine ebaõnnestus: Authentication failed Autentimine ebaõnnestus Enter password for SSH proxy Anna SSH proxy salasõna <b>Connection failed</b> <b>Ühendus ebaõnnestus</b> <b>Wrong password!</b><br><br> <b>Vale salasõna!</b><br /><br /> Connection failed: Yhendus ebaõnnestus: - Wrong password. - Vale salasõna. unknown tundmatu No server availabel Typo in original Ühtegi serverit ei leidu Server not availabel Typo Server ei ole kättesaadav Select session: Vali sessioon: running töötab suspended peatatud Desktop Töölaud single application rakendus shadow session Varisessioon Information Info No accessible desktop found Ühtegi ligipääsetavat töölauda ei ledu Filter Valik Select desktop: Vali töölaud: Warning Hoiatus Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Su praegune värvieraldus on erinev kui x2go sessioonil. See võib põhjustada probleeme taasühendamisel ja enamusel juhtudest <b>ühendus kaob</b> ja Sa pead alustama uuesti. On kindlasti soovitatavet sa muudaksoma ekraani värvieralduseks 24 or 32 24 või 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bitti ja käivitaksid X-serveri uuesti enne kui Sa ühendud uuesti selle x2go sessiooniga<br>Kas soovid jätkata vaatamata sllele? suspending peatame terminating katkestame <b>Wrong Password!</b><br><br> <b>Vale salasõna!</b><br><br> New session started Uus sessioon on käivitatud Session resumed Sessioon jätkub Unable to create folder: Kataloogi loomine ei õnnestu: Unable to write file: Ei õnnestu kirjutamine faili: Attach X2Go window Ühendu X2GO aknaga Unable to create SSL tunnel: Ei suuda luua SSL tunnelit: Unable to create SSL Tunnel: Ei suuda luua SSL Tunnelit: Emergency exit. Hädaväljapääs. Waiting for proxy to exit. Ootame kuni proxy lõpetab. Failed, killing the proxy. Ebaõnnestus, tapame proxy. Finished Lõpetatud starting Käivitub resuming jätkab Connection timeout, aborting Ühendus aegus, katkestame aborting katkestame Are you sure you want to terminate this session? Unsaved documents will be lost kas oled kindel et tahad sulgeda? Avatud failid ei salvestu Session Sessioon Display Ekraan Creation time Loomisaeg <b>Connection failed</b> : <b>Ühendus ebaõnnestus</b> : (can't open file) (ei saa avada faili) (file not exists) (faili ei leidu) (directory not exists) (kataloogi ei leidu) wrong value for argument"--link" vale väärtus parameetril "--link" wrong value for argument"--sound" vale väärtus parameetril "--sound" wrong value for argument"--geometry" vale väärtus parameetril "--geometry" wrong value for argument"--set-kbd" vale väärtus parameetril "--set-kbd" wrong value for argument"--ldap" vale väärtus parameetril "--ldap" wrong value for argument"--ldap1" vale väärtus parameetril "--ldap1" wrong value for argument"--ldap2" vale väärtus parameetril "--ldap2" wrong value for argument"--pack" vale väärtus parameetril "--pack" Wrong parameter: Vale parameeter: Options Valikud Available pack methodes: Võimalikud pakkimisviisid: Pack Methodes Pakkimisviisid Option is not availabel in this build See seade ei ole võimalik selles versioonis Changelog Muutuste nimekiri Git Info Git'i info Unable to create folder: Kataloogi loomine ei õnnestu: RSA file empty. RSA-fail on tühi. Can not open key: Võtme avamine ei õnnestu: Support Abi </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <b><br> (C. 2005-2016 <b>kindlalt hea</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2plugin meetodi sponsori <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>Töövahend mille abil võid ühenduda X2Go võrgus olevate arvutitega. Selle kliendiprogrammiga võid ühenduda X2GO serveritega ja alustada, lõpetada, katkestada ja jätkata olemasolevate töölaua sessioonidega. X2Go Client jätab meelde erinevaid servereid ja võib automaatselt auteniseeruda kasutades LDAP katalooge Lisaks võib seda kasutada täisekraan loginekraanina (sel juhul asendab ta loginmanagere -nagu näiteks xdm ). Külasta veebilehte x2go.org, sealt saad täpsemat teavet. <b>X2Go Client V. <b>X2Go Client V. Please check LDAP Settings Palun kontrolli LDAP-sätteid No valid card found Ei leia toimivat kaarti Card not configured. Kaart on puudulikult konfigureeritud. This card is unknown by X2Go system X2Go ei tunne seda kaarti Unable to create file: Ei suuda luua faili: Can't connect to X server Please check your settings Ühendus X-serveriga ei õnnestu, palun kontrolli oma seadeid Can't start X server Please check your settings Ei suuda käivitada X serverit Palun kontrolli oma seadeid Can't start X Server Please check your installation Ei suuda käivitada X serverit Palun kontrolli oma installeeringut Unable to execute: Ei suuda käivitada: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Serveril puudub SSH tunneli kaudu failisüsteemi eksportimise tugi Uuenda x2goserver uuema vastu Unable to read : Ei suuda lugeda : Unable to write : Ei suuda kirjutada : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Akna geomeetriliste parameetrite lugemine ei õnnestu (Kas aken on äkki suletud)? X2Go Session X2Go Sessioon wrong value for argument"speed" argumendil "speed" on vale väärtus Password: Salasõna: Keyboard layout: Klaviatuuri asetus: Ok Ok Cancel Loobu <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sessiooni ID:<br>Server:<br>Kasutajatunnus:<br>Ekraan:<br>Loomisaeg:<br>Olek:</b> Abort Katkesta Show details Näita täpsemalt Resume Jätka New Uus Full access Kõik õigused View only Ainult vaatlemine Status Olek Command Käsk Type Tüüp Server Server Client IP Kliendi IP Session ID Sessiooni ID User Kasutaja Only my desktops Ainult oma töölauad sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd ei ole käivitatud, see on hädavajalik kui soovid, et printimine ja ketaste jagamine toimiksid võid installeerida selle kasutades käsku <b>sudo apt-get install openssh-server</b> Restore toolbar Taasta tegumiriba <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <b><b>&nbsp;&nbsp;&nbsp;Vajuta seda nuppu&nbsp;&nbsp;&nbsp;<b>&nbsp;&nbsp;&nbsp;et tööriistariba oleks jälle nähtav&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Printimine - X2GoClient Print Prindi You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) You've deactivated the x2go client printing dialog. Sa oled keelanud x2goClient-rakenduses printimistoimingu. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) sa võid selle dialoogi uuesti käivitada x2goClient-rakenduses (Menüü -> Valikud -> Seaded) PrintProcess Save File Salvesta PDF Document (*.pdf) PDF dokument (*.pdf) Failed to execute command: Toimingu käivitamine ebaõnnestus: Printing error. Printing error Printimisel tuli viga PrintWidget Form Vorm Print Printimine View as PDF Vaata PDF-vormingus Print settings Printeri seaded Printer: Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Prindi kasutades Windowsi vaikimisi määäratud PDF-vaatajat (PDF-vaataja peab olema installeeritud) Printer command: Printeri käsk: ... ... - vali - ... Viewer settings Vaatamisprogrammi omadused Open in viewer application Ava vaatamisprogrammiga Command: Käsk: Save to disk Salvesta kettale Show this dialog before start printing Näita seda dialoogi alati enne printimist 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>. Palun konfigureeri printeri seaded.<br><br>Kui tahad loodud faili printida siis vajad selleks eraldi programmi. Tavaliselt peaks selleks sobima <a hrer="http:pages.cs.wisc.edtu/~ghost/doc/GPL/index.htm">ghostprint</a> või <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Lisaks võid lugeda <a href="http://www.x2go.org/index.php?id=49">siit</a>. 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>. PrinterCmdDialog Printer command Printeri käsud Command Käsk Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Anna siia printeri lisakäsud. Näiteks: kprinter lpr -P hp_laserjet Output format Väljundformaat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Palun vali printimisformaat (vastavalt oma printimisvõimalustele - kui kasutad CUPS'i võid kasutada PDF -vormingut) PDF PDF PS PS Data structure Sisendvorming Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Vali printimisel kasutatav sisendvorming (mõned käsud lubavad printida failist, mõned aga ootavad sisendit nn. 'standard input' kaudu): standard input (STDIN) 'Standardi input'-kanal (STDIN) Specify path as program parameter Anna faili asukoht programmi parameetrina Please enter your customized or individual printing command. Example: Anna oma printimiskäsk. Näiteks: <Path to gsprint.exe> -query -color <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Server ei vasta. Kas katkestame sessiooni? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Sessiooni omadused... Create session icon on desktop... Tee sessioonist ikoon töölauale ... Session preferences ... Create session icon on desktop ... Delete session Kustuta sessioon Session actions Sessiooni toimingud Select type Vali tüüp Select resolution Vali resolutsioon Toggle sound support Hääle edastus New Session Uus sessioon running töötab suspended seisatud KDE KDE RDP connection RDP -ühendus XDMCP XDMCP Connection to local desktop Ühendus lokaalsele töölauale Published applications Võimalikud rakendused fullscreen täisekraan Display Ekraan window aken Maximum Maksimaalne Enabled Lubatud Disabled Keelatud SessionExplorer Back Tagasi Create session icon on desktop Loo sessiooni ikoon töölauale Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Töölauaikoonid võib sättida peitma x2goclient rakendust (hidden mode). Kui sa tahad seda võimalust kasutada siis säti login kasutama gpg-võtit või gpg -kaarti. Kasuta x2goclient programmi peidetuna? Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running Kui programm töötab näita ikooni tegumiribal New Session Uus sessioon X2Go Link to session X2Go viit sessioonile Are you sure you want to delete this session? Kas oled kindel, et tahad kustutada selle sessiooni? SessionManageDialog E&xit &Lõpeta &New session &Uus sessioon &Session preferences &Sessiooni parameetrid &Delete session &Kustuta sessioon &Create session icon on desktop ... &Create session icon on desktop... &Tee sessioonist ikoon töölauale... Delete Delete Kustuta Session management Sessioonide haldamine SessionWidget Session name: Sessiooni nimi: << change icon << muuda ikooni Path: Aadress: &Server &Server Host: Aadress: Login: Login: SSH port: SSH .-port: Use RSA/DSA key for ssh connection: Kasuta RSA/DSA -võtit ssh -ühenduse loomiseks: Try auto login (ssh-agent or default ssh key) Ürita automaatset sisselogimist (ssh-agenti või vaikimisi ssh võtit kasutades) Try auto login (via SSH Agent or default SSH key) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) audentimine Delegation of GSSAPI credentials to the server Saada GSSAPI andmed serverile Use Proxy server for SSH connection Kasuta vaheserverit (proxy) SSH -ühenduse loomiseks Proxy server Vaheserver (Proxy) SSH SSH HTTP HTTP Same login as on X2Go Server Sama kasutanimi kui X2Go -serverilgi Same password as on X2Go Server Sama salasõna kui X2Go -serverilgi RSA/DSA key: RSA/DSA-võti: SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. ssh-agent or default ssh key ssh-agent või vaikimisi -ssh-võti Type: Tüüp: Port: Port: &Session type &Sessiooni tüüp Session type: Sessiooni tüüp: Connect to Windows terminal server Loo ühendus Windows terminal serveriga XDMCP XDMCP Connect to local desktop Ühenda lokaalsele töölauale Custom desktop Isemääratud meetod Single application Üks kindel rakendus Published applications Lubatud rakendused Command: Käsk: Advanced options... Täpsemad valikud... Path to executable Programmi asukoht Direct RDP Connection Otsene RDP ühendus Open key file Ava võtmefail All files Kõik failid Error Viga x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient-rakendus töötab 'mobiilses' viisis. Kasuta oma usb-seadme asukohamäärangut et pääseksid oma andmetele ligi ükskõik kus sa ka poleks RDP port: RDP-port: Open picture Ava pilt Pictures Pildid Server: Server: XDMCP server: XDMCP -server: rdesktop command line options: rdesktop -käsurea parameetrid: New session Uus sessioon SettingsWidget &Display &Ekraan &Keyboard &Klaviatuur Sound Heli &Clipboard Mode &Clipboard režiim &Clipboard mode Fullscreen Täisekraan Custom Ise määratud Window Aken Use whole display Kasuta kogu ekraani Maximum available Maksimaalne võimalik Set display DPI Määra ekraani DPI (punkti tolli kohta)-väärtus Xinerama extension (support for two or more physical displays) Xinerama -laiendus (toetus kahele või enamale ekraanile) Width: Laius: Height: Kõrgus: &Display: &Ekraan: &Identify all displays &Identifitseeri kõik ekraanid Bidirectional copy and paste Mõlemapidine kopeeri-aseta Copy and paste from client to server Kopeeri ja aseta kliendist serverisse Copy and paste from server to client Kopeeri ja aseta serverist.kliendile Disable clipboard completely Keela kopeeri-aseta Auto-detect keyboard settings RDP client Auto detect keyboard settings Määra klaviatuuri parameetrid automaatselt Do not configure keyboard Ära määra klaviatuuri parameetreid Configure keyboard Määratle klaviatuur Model: Mudel: Layout: Tähtede asetus: Variant: Variant: Keep current keyboard Settings Säilita klaviatuuri praegused seaded Keyboard layout: Klaviatuuri asetus: Keyboard model: Klaviatuuri mudel: Enable sound support Võimalda heli Start sound daemon Käivita helimoodul Use running sound daemon kasuta käimasolevat heli moodulit Use SSH port forwarding to tunnel sound system connections through firewalls Kasuta SSH port edastust heliseadete ühendamiseks pääsemaks läbi tulemüüri Use default sound port Kasuta vaikimisi heli porti Sound port: Heli port: Client side printing support Kliendipoolne printimine RDP Client RDP -klient Additional parameters: Lisaparameetrid: Command line: Käsurida: us us pc105/us pc105/us password salasõna ShareWidget &Folders &Ktaloogid Path Aadress Automount Automaatne külgeühendamine Add Lisa Delete Kustuta Path: Aadress: Filename encoding Faili nime kodeering local: kohalik - lokaalne: remote: server: Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Use ssh port forwarding to tunnel file system connections through firewalls Kasuta ssh-ühendust tulemüüride läbimiseks Select folder Vali kataloog Error Viga x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient-rakendus töötab 'mobiilses' viisis. Kasuta oma usb-seadme asukohamäärangut et pääseksid oma andmetele ligi ükskõik kus sa ka poleks WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error SSH vaheserveriga ühendumise viga SSH proxy connection error. SSH proxy connection error: SSH vaheserveriga ühendumise viga: Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. Failed to create SSH proxy tunnel Viga SSH vaheserveri ühenduse loomisel Can not initialize libssh Libssh-teegi initsialiseerimise viga Can not create ssh session Ssh-sessiooni loomine ei õnnestu Can not connect to proxy server Vaheserveriga ühendumise viga Can not connect to Ei suuda luua ühendust Authentication failed Autentimine ebaõnnestus channel_forward_listen failed channel_forward_listen ebaõnnestus Failed to start SSH Client. Please check your installation and GSSApi configuration Ei õnnestu SSH kliendiprogrammi käivitamine. Palun kontrolli oma installeerimist ja GSSA konfiguratsiooni Check your GSSApi configuration or choose another authentication method Kontrolli oma GSSA konfiguratsiooni või vali mõni muu atentimismeetod Can not open file Ei saa avada faili Can not create remote file Ei saa luua serverile faili Can not write to remote file Ei suuda kirjutada serveri faili Cannot connect to ei suuda ühenduda channel_open_forward failed channel_open_forward ebaõnnestus channel_open_session failed channel_open_session ebaõnnestus channel_request_exec failed channel_request_exec ebaõnnestus error writing to socket socket'isse kirjutamisel tekkis viga error reading channel kanali lugemisviga channel_write failed channel_write ebaõnnestus error reading tcp socket viga tcp socket'ist lugemisel SshProcess Error creating socket Viga socket'i loomisel Error creating socket. Error binding Sidumisviga pordiga XSettingsWidget Open File Ava fail Executable (*.exe) Rakendus (.exe) XSettingsWidgetUI Form Vorm You must restart the X2Go Client for the changes to take effect Selleks, et siin tehtud muudatused jõustuksid pead Sa X2GoClient'i uuesti käivitama use integrated X-Server kasuta integreeritud X-serverit do not use primary clipboard ära kasuta primaarset 'clipboard'-i use custom X-Server kasuta mõnd muud X-serverit custom X-Server X-server executable: käivitatav programm: start X-Server on X2Go Client start käivita X-server X2GOclient'i käivitumisel command line options: käsurea parameetrid: X-Server command line options X-serveri käsurea valikud window mode: Akna olek: fullscreen mode: Koguekraan: single application: Üks programm: whole display: x2goclient-4.0.5.1/res/i18n/x2goclient_fi.ts0000644000000000000000000054245212675050177015325 0ustar AppDialog Published Applications Julkaistut sovellukset Search: Etsi: &Start &Käynnistä &Close &Sulje Multimedia Ääni ja video Development Ohjelmointi Education Ohjeet Game Peli Graphics Grafiikka Network Verkko Office Toimisto Settings Asetukset System Järjestelmä Utility Varusohjelma Other Muu BrokerPassDialogUi Dialog Dialogi Old password: Vanha salasana: New password: Uusi salasana: Confirm password: Vahvista salasana: TextLabel Tekstiselitys BrokerPassDlg Passwords do not match Salasanat eivät täsmää CUPSPrintWidget Form Ruutu Name: Nimi: Properties Ominaisuudet State: Tila: Accepting jobs: Vastaanottaa tehtäviä: Type: Tyyppi: Location: Sijainti: Comment: Kommentti: Idle Odottaa Printing Tulostus Stopped Pysäytetty Yes Kyllä No Ei CUPSPrinterSettingsDialog No option selected Valinta puuttuu This value is in conflict with another option. Options conflict. This value is in conflict with other option Valinta on ristiriidassa toisen kanssa Options conflict Ristiriitainen valinta ConTest Connectivity test Yhteyskoe HTTPS connection: HTTPS -yhteys: SSH connection: SSH-yhteys: Connection speed: Yhteyden nopeus: Failed Epäonnistui 0 Kb/s 0 Kt/s OK OK Socket operation timed out. Socket operation timed out Socketyhteys vanheni Failed: Epäonnistui: ConfigDialog General Yleinen Display icon in system tray Näytä ikoni järjestelmäpalkissa Hide to system tray when minimized Piilota järjestelmäpalkkiin kun minimoidaan Hide to system tray when closed Piilota järjestelmäpalkkiin kun suljettu Hide to system tray after connection is established Piilota järjestelmäpalkkiin kun yhteys on avattu Restore from system tray after session is disconnected Hae esille järjestelmäpalkista kun yhteys katkeaa Use LDAP Käytä LDAP-ta Server URL: Palvelimen URL-osoite: BaseDN: BaseDN: Failover server 1 URL: Varapalvelimen 1 URL: Failover server 2 URL: Varapalvelimen 2 URL: X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings X-palvelimen asetukset X11 application: X11-sovellus: X11 version: X11-versio: Find X11 application Etsi X11-sovellus Clientside SSH port for file system export usage: Etätyöaseman käyttämä levyjaon SSH-portti: Start session embedded inside website Käynnistä istunto web-palvelimessa Advanced options Edistyneet toiminnot Defaults Oletusarvot &OK &OK &Cancel &Keskeytä Settings Asetukset Printing Tulostaa Warning Varoitus x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2go-asiakasohjelma ei löytänyt toimivaa X11-sovellusta. Asenna Apple X11 tai määritä sovelluksen sijainti Your are using X11 (Apple X-Window Server) version Käytät X11 (Apple X-Window Server) versiota . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Tämä versio ei toimi 24 bitin tarkkuudella X-palvelimssa. Päivitä X11-palvelimesi (http://trac.macosforge.org/projects/xquarts). No suitable X11 application found in selected path Toimivaa X11-sovellusta ei löydy annetusta hakupolusta &Connection &Yhteys &Input/Output &Input/Output &Media &Media &Settings &Asetukset ConnectionWidget &Connection speed &Yhteyden nopeus Connection speed: Yhteyden nopeus: C&ompression &Pakkaus Method: Menetelmä: Compression method: Pakkausmenetelmä: Image quality: Kuvan tarkkuus: CupsPrinterSettingsDialog Dialog Valinnat General Yleistä Page size: Sivun koko: Paper type: Sivun asettelu: Paper source: Lomakkeen syöttö: Duplex Printing Duplex-tulostus None Ohita Long side Pitkä sivu Short side Lyhyt sivu Driver settings Ajurin asetukset Option Valinta Value Arvo No option selected Valinta puuttuu text teksti EditConnectionDialog &Session &Istunto &Connection &Yhteys &Input/Output &Input/Output &Media &Media &Shared folders &Jaetut kansiot &OK &OK &Cancel &Peruuta Defaults Oletukset Session preferences - Istunnon asetukset - ExportDialog &Cancel &Peruuta &share &jaa &Preferences ... &Oletukset ... &Custom folder ... &Varattu hakemisto ... Delete Delete Poista Share Folders share folders jaa kansiot Select folder Valitse kansio FolderButton Sessions folder Istuntojen kansio FolderExplorer Folders Kansiot Create New Folder Tee uusi kansio Rename Folder... Kansiolle uusi nimi... Change Icon... Vaihda kuvake... Delete Folder... Poista kansio... Rename Folder ... Change Icon ... Delete Folder ... Open picture Avaa kuva Pictures Kuvat X2Go Client X2Go asiakasohjelma Folder Name: Kansion nimi: Error Virhe Unable to remove " Poisto ei onnisu " ". Folder is not empty. Please remove the contents of this directory and try again. ". Folder is not empty. Please remove content of folder and try again. ". Kansio ei ole tyhjä. Tyhjennä kansio ja yritä uudelleen. Delete folder " Poista kansio " New Folder Uusi kansio HelpDialog Options Vaihtoehdot HttpBrokerClient Host key for server changed. It is now: tarkista Palvelimen avain vaihtui. Se on nyt: For security reasons, connection will be stopped Turvallisuussyistä, yhteys katkaistaan The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Palvelimen avainta ei löytynyt mutta vaihtoehtoinen avain löytyi. Tunkeutuja on ehkä vaihtanut oletusavaimen harhauttaakseen etäkäyttäjää luulemaan että avainta ei ole Could not find known host file.If you accept the host key here, the file will be automatically created Tunnetut työasemat sisältävää tiedostoa ei löytynyt. Jos hyväksyt palvelimen avaimen, tiedosto tehdäään automaattisesti The server is unknown. Do you trust the host key? Public key hash: Palvelin on tuntematon. Luotatko sen avaimeen? Julkinen avain: Host key verification failed Palvelimen avaimen todennus epäonnistui Yes Kyllä No Ei Verification code: Tarkistuskoodi: Enter passphrase to decrypt a key Anna avaimen salasana Authentication failed Autentikointi epäonnistui Error Virhe Login failed!<br>Please try again Kirjautuminen epäonnistui!<br>Yritä uudelleen <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Palvelimen sertifikaatti ei ole kunnossa.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Älä anna poikkeuslupaa jos käytät yhteyttä johon et täysin luota tai palvelin ei ole aiemmin antanut samaa virheilmoitusta.</p> Secure connection failed Turvallisen yhteyden avaus epäonnistui For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Host key verification failed. Authentication failed. Login failed!<br>Please try again. Secure connection failed. Issued to: Annettu: Common Name(CN) Common Name(CN) Organization(O) Organisaatio(O) Organizational Unit(OU) Organisaatioyksikkö(OU)) Serial Number Sarjanumero Issued by: Myöntäjä: Validity: Voimassaolo: Issued on Myöntöpäivä expires on vanhenee Fingerprints: Tiivisteet: SHA1 SHA1 MD5 MD5 Exit X2Go Client Sulje X2Go -ohjelma Add exception Lisää poikkeus MediaWidget Sound Ääni Enable sound support Aseta ääni pälle Start sound daemon Käynnistä ääniajuri Use running sound daemon Käytä nykyistä ääniajuria Use SSH port forwarding to tunnel sound system connections through firewalls Käytä SSH -portin tunnelointia äänen saamiseksi palomuurin läpi Use default sound port Käytä oletus-aääniporttia Sound port: Ääniportti: Client side printing support Asiakasohjelman tulostintuki ONMainWindow Starting x2goclient... Käynnistää x2go-asiakasohjelman... us fi pc105/us pc105/us X2Go Client X2Go asiakasohjelma connecting yhdistää Internet browser Web -selain Email client Sähköpostiohjelma OpenOffice.org OpenOffice.org Terminal Pääte Starting x2goclient in portable mode... data directory is: Käynnistää x2go-asiakasohjelman mobiiliversion...datakansio on: &Settings ... &Asetukset... Support ... Neuvonta... About X2GO client Tietoja X2Go-asiakasohjelmasta Started x2goclient. Käynnistetty x2go-asiakasohjelma Can't load translator: Kääntäjän käynnistys ei onnistu: Translator: Kääntäjä: installed. asennettu. Share folder... Jaa kansio... Applications... Sovellukset... Suspend Pysäytä Terminate Lopeta Reconnect Uusi yhteys Detach X2Go window Siirrä X2Go -ikkunaa Minimize toolbar Minimoi toimintopalkki Session: Istunto: &Quit &Lopeta Ctrl+Q Ctrl+Q Quit Lopeta &New session ... &Uusi istunto... Ctrl+N Ctrl+N Session management... Istunnon hallinta... Ctrl+E Ctrl+E &Create session icon on desktop... &Tee istuntokuvake työpöydälle &Set broker password... &Aseta brokerin salasana... &Connectivity test... &Yhteystesti... Show toolbar Näytä toimintopalkki About Qt Tietoja Qt:stä Ctrl+Q exit Ctrl+Q Starting X2Go Client... Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... &Session &Istunto &Options &Valinnat &Help &Apua Login: Kirjaudu: Error Virhe Operation failed Toiminto epäonnistui Password changed Salasana vaihdettu Wrong password! Väärä salasana! Connecting to broker Yhdistää brokeriin <b>Authentication</b> <b>Autentikointi</b> Restore Palauta Not connected Ei yhteyttä Multimedia Ääni ja video Development Ohjelmakehitys Education Ohjeet Game Peli Graphics Grafiikka Network Verkko Office Toimisto Settings Asetukset System Järjestelmä Utility Työkalu Other Muuta Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! no X2Go Server found in LDAP Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". SSH daemon failed to open the application's authorized_keys file. Left mouse button to hide/restore - Right mouse button to display context menu Vasen hiiren näppäin piilottaa/palauttaa - Oikea näppäin näyttää toiminnon valinnat Closing x2goclient... Sulkee x2go -asiakasohjelman... Closed x2goclient. X2go-asiakasohjelman sulkeutui. Please check LDAP settings Tarkista LDAP-asetukset no X2Go server found in LDAP X2Go -palvelinta ei löydy LDAP-sta Create session icon on desktop Tee instuntokuvake työpöydälle Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Työpöytäkuvakkeet voidaan asettaa piilottamaan x2go -asiakasohjelman (hidden mode). Jos haluat käyttää ominaisuutta määritä kirjautuminen käyttämään gpg-avainta tai gpg -toimikorttia. Käytätkö x2go-asiakasohjelmaa piilotettuna? New Session Uusi istunto X2Go Link to session Linkki X2Go -istuntoon No X2Go sessions found, closing. X2Go -istuntoa ei löytynyt, sulkeutuu. Are you sure you want to delete this session? Haluatko varmasti poistaa tämän istunnon? KDE KDE RDP connection RDP -yhteys XDMCP XDMCP Connection to local desktop Yhteys paikalliselle näytölle on käyttäen Starting connection to server: Käynnistää yhteyden palvelimeen: to kohteeseen Connection Error( Yhteysvirhe( Couldn't find a SSH connection. Ei löydä SSH-yhteyttä. Enter passphrase to decrypt a key Anna avaimen salasana Host key for server changed. It is now: Palvelimen avain vaihtui. Se on nyt: For security reasons, connection will be stopped Turvallisuussyistä, yhteys päättyy The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Tämän palvelimen julkinen avain puuttuu mutta toinen löytyi.Tunketuja on ehkä vaihtanut aiemman avaimen harhauttaakseen sinut luulemaan että avainta ei ole Could not find known host file.If you accept the host key here, the file will be automatically created Tunnettut työasemat sisältävää tiedostoa ei ole. Jos hyväksyt yhteyden, kyseinen tiedosto luodaan The server is unknown. Do you trust the host key? Public key hash: Palvelin on tuntematon. Luotatko sen avaimeen? Avaimen tiiviste: Host key verification failed Palvelimen avaimen todennus epäonnistui Show session tray icon when running Näytä istunon ikoni kun se on aktiivinen Verification code: Tarkistenumero: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Joku saattaa kuunnella verkkoa. Turvallisuuden takia on syytä katkaista yhteys. Halutko katkaista? Yes Kyllä No Ei If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Jos hyväksyt uuden palvelinavaimen yhteytesti turvallisuus saattaa vaarantua. Halutko hyväksyä uuden palvelinavaimen? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Tämän palvelimen avainta ei löydy mutta toinen avain löytyi. Tunkeutuja saattaa vaihtaa palvelimen oletusavaimen uskotellakseen että palvelinavainta ei ole. Turvallisuuden takia on syytä katkaista yhteys. Haluatko katkaista? Authentication failed: Autentikointi epäonnistui: Authentication failed Autentikointi epäonnistui Enter password for SSH proxy Anna salasana SSH-proxya varten <b>Connection failed</b> <b>Yhteydenotto epäonnistui</b> <b>Wrong password!</b><br><br> <b>Väärä salasana!<b><br><br> Connection failed: Yhteys epäonnistui - Wrong password. - Väärä salasana unknown tuntematon No server availabel Typo in original Palvelinta ei saatavilla Server not availabel Typo Palvelinta ei saatavilla Select session: Valitse istunto: running käynnissä suspended pysäytetty Desktop Työpöytä single application erillinen sovellus shadow session varjoistunto Information Tietoja No accessible desktop found Työpöytää ei ole käytettävissä Filter Valinta Select desktop: Valitse työpöytä: Warning Varoitus Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Käyttämäsi värierottelu on erilainen kuin x2go-istunnon vastaava. Se saattaa aiheuttaa ongelmia kun kun yhdistät uudelleen tähän istuntoon ja useimmiten <b>istunto katoaa</b> ja joudut avaamaan uuden! On erittäin suositeltavaa että muutat värierottelun omalla näytölläsi arvoon 24 or 32 25 tai 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bittiä ja käynnistä X-palvelin uudelleen ennenkuin avaat tämän x2go-istunnon.<br>Jatka istuntoa joka tapauksessa? suspending pysäyttää terminating lopettaa <b>Wrong Password!</b><br><br> <b>Väärä salasana!</b><br><br> New session started Uusi istunto käynnistyi Session resumed Istuntoa jatkettu Unable to create folder: Kansion luonti ei onnistu: Unable to write file: Tiedostoon kirjoitus ei onnistu: Attach X2Go window Kytkeydy X2Go -ikkunaan Unable to create SSL tunnel: SSL -tunnelointi ei onnistu Unable to create SSL Tunnel: SSL-tunnelin avaus ei onnistu: Emergency exit. Hätäkeskeytus Waiting for proxy to exit. Odottaa proxyn sulkeutumista Failed, killing the proxy. Epäonnistui, sulkee proxyn Finished Lopetettu starting käynnistyy resuming jatkaa Connection timeout, aborting Yhteys aikakatkaistu, keskeytyy aborting keskeytyy Are you sure you want to terminate this session? Unsaved documents will be lost Haluatko varmasti sulkea istunnon? Avoimet tiedostot eivät talletu Session Istunto Display Näyttö Creation time Luontiaika <b>Connection failed</b> : <b>Yhteys epäonnistui<b> : (can't open file) (tiedosto ei aukea) (file not exists) (tiedosto puuttuu) (directory not exists) (kansio puuttuu) wrong value for argument"--link" Ohjaimella"--link" on väärä arvo wrong value for argument"--clipboard" väärä arvo ohjaimessa"--clipboard" wrong value for argument"--sound" Ohjaimella "--sound" on väärä arvo wrong value for argument"--geometry" Ohjaimella "--geometry" on väärä arvo wrong value for argument"--set-kbd" Ohjaimella "--set-kbd" on väärä arvo wrong value for argument"--ldap" Ohjaimella "--ldap" on väärä arvo wrong value for argument"--ldap1" Ohjaimella "--ldap1" on väärä arvo wrong value for argument"--ldap2" Ohjaimella "--ldap2" on väärä arvo wrong value for argument"--pack" Ohjaimella "--pack" on väärä arvo Wrong parameter: Väärä parametri: Help Ohjeet Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" Applications ... SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH Error SSH -virhe SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH -palvelu ei käynnistynyt. Tarvitse SSH -palvelua tulostamiseen ja tiedostojen yhteiskäyttöön. Normaalista, näin ei pitäsi tapahtu koska X2Go pääteohjelma Windowsille sisältää oman sshd.exe -ohjelman. Jos näet tämä viestin, ilmoita virheestä X2Go -ohjelman virheseurantaan. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH -palvleu ei ole käynnissä. Tarvitsen SSH -palvelua tulostamiseen ja tiedostojen yhteiskäyttöön Pyydä IT -tukihenkilöä asentamaan SSH -palvelu työasemaasi. SSH daemon failed to open the application's public host key. SSH -palvelu ei pystynyt selvittämään sovelluspalvelimen julkista avainta. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH -palvelu ei pystynyt selvittämään sovelluksen julkista avainta jota käytetään kansioiden ja tulostinten jakamiseen. SSH daemon failed to open the application's authoized_keys file. SSH -palvelu ei saanut luettua sovelluksen authoized_keys -tiedostoa. Options Vaihtoehdot Available pack methodes: Mahdolliset pakkaustavat: Pack Methodes Pakkausmenetelmät Option is not availabel in this build Vaihtoehtoa ei tässä versiossa Changelog Muutosluettelo Git Info Git -tietoja Unable to create folder: Kansion luonti ei onnistu: RSA file empty. RSA-tiedosto on tyhjä Can not open key: Avaimen käyttöönotto ei onnistu: Support Neuvonta </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <b><br> (C. 2005-2016 <b>varmaan hyvä</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2plugin tilan sponsori <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>Asiakasohjelma jolla voit käyttää X2Go palvelinohjelmaa. Tällä ohjelmalla voit kytkeytyä X2Go -palvelimeen ja käynnistää, pysäyttää, jatkaa ja lopettaa työpöytäistuntoja. X2Go -asiakasohjelma tallettaa erilaisten istuntojen parametrit ja se voi hakea autentitontitiedot automaattisesti LDAP-hakemistoista. Lisäksi sitä voidaan käyttää koko näyttö -tilassa kirjaustumisnäyttönä (jolloin se korvaa esim. xdm -kirjautumisnäytön). Tarkempia tietoja löytyy osoitteesta x2go.org. <b>X2Go Client V. <b>X2Gi Asiakasohjelma V. Please check LDAP Settings Tarkista LDAP-asetukset No valid card found Toimikortti puuttuu Card not configured. Toimikortin asetukset puuttuvat This card is unknown by X2Go system X2Go ei tunnista korttia Unable to create file: Tiedoston luonti epäonnistui: Can't connect to X server Please check your settings Yhteys X-palvelimeen ei aukea Tarkista asetukset Can't start X server Please check your settings Yhteys X-palvelimeen ei aukea Tarkista asetukset Can't start X Server Please check your installation Yhteys X-palvelimeen ei aukea Tarkista asennuksen oikeellisuus Unable to execute: Kännistys ei onnistu: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Etäpalvelin ei tue SSH-ehteyden avulla toimivaa levyjakoa Päivitä x2goserver palvelinohjelma Unable to read : Lukeminnen ei onnistu : Unable to write : Kirjoittaminen ei onnistu : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Ikkunoinnin asetusten luku ei onnistu (ikkuna suljettu)? X2Go Session X2Go Istunto wrong value for argument"speed" "speed" -astuksella on virheellinen arvo Password: Salasana: Keyboard layout: Näppäimistön tyyppi: Ok Ok Cancel Peruuta <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Istunnon ID:<br>Palvelin:<br>Käyttätunnus:<br>Näyttö:<br>Luontiaika:<br>Tila:</b> Abort Keskeytä Show details Näytä yksityiskohdat Resume Jatka New Uusi Full access Kaikki oikeudet View only Vain katselu Status Tila Command Komento Type Tyyppi Server Palvelin Client IP Asiakasohjelman IP Session ID Isunnon ID User Käyttäjä Only my desktops Vain omat työpöydät sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd ei käynnissä, se pitää olla jotta tulostus ja tiedostojako toimisi voit asentaa sshd komennolla <b>sudo apt-get install openssh-server</b> Restore toolbar Palauta toimintopalkki <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <b><b>&nbsp;&nbsp;&nbsp;Klikkaa tätä nappulaa&nbsp;&nbsp;&nbsp;<b>&nbsp;&nbsp;&nbsp;jotta palkki näkyisi jälleen&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Tulosta - X2Go -asiakasohjelma Print Tulosta You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) You've deactivated the x2go client printing dialog. Olet ottanut pois päältä x2go-asiakasohjelman tulostustoiminnon. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Voit palauttaa toiminnon x2go-asiakasohjelmassa (Valikko -> Valinnat -> Asetukset) PrintProcess Save File Talleta Tiedosto PDF Document (*.pdf) Tulosta tiedosto (*.pdf) Failed to execute command: Komento ei käynnisty: Printing error. Printing error Tulostusvirhe PrintWidget Form Ruutu Print Tulosta View as PDF Esitä PDF-muodossa Print settings Tulostinasetukset Printer: Tulostin: Print using default Windows PDF Viewer (Viewer application needs to be installed) Tulosta käyttäen oletus -PDF-katselulohjelmaa (Esitysohjelma pitää olla asennettuna) Printer command: Tulostinkomento: ... ... Viewer settings Esitysohjelman asetukset Open in viewer application Avaa esitysohelmassa Command: Komento: Save to disk Tallenna levylle Show this dialog before start printing Näytä tämä dialogi ennen tulostusta 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>. Aseta tulostimen ohjaustiedot.<br><br>Jos haluat tulostaa muodostamasi tiedoston, tarvitset siihen erillisen sovelluksen. Esimerkiksi voit käyttää <a hrer="http:pages.cs.wisc.edtu/~ghost/doc/GPL/index.htm">ghostprint</a> and <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Lisätietoja löydät <a href="http://www.x2go.org/index.php?id=49">täältä</a>. 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>. PrinterCmdDialog Printer command Tulostinkomento Command Komento Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Anna printterin erikoiskomento. Esimerkkejä: kprinter lpr -P hp_laserjet Output format Tulostusmuoto Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Valitse tulostusmuoto (riippuen tulostimestasi - jos käytätä CUPS -voit käyttää PDF -muotoa) PDF PDF PS PS Data structure Tietorakenne Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Valitset tulostettavan aineiston muoto (muutamia komentoja tulostettava tiedosto tulostimen parametrinsa, jotkut vaativat datan oletuskanavasta): standard input (STDIN) Oletus input-kanava (STDIN) Specify path as program parameter Anna tiedostopolku ohjelmaparametrina Please enter your customized or individual printing command. Example: Anna räätälöity tulostinkomento. Esimerkki: <Path to gsprint.exe> -query -color <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Etäpalvelin ei vastaa. Haluatko keskeyttää istunnon? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Istunnon oleutusarvot... Create session icon on desktop... Tee istunnosta ikoni työpöydällesi... Session preferences ... Create session icon on desktop ... Delete session Poista istunto Session actions Istunnon toiminnot Select type Valitse tyyppi Select resolution Valitse tarkkuus Toggle sound support Äänen päälleasetus New Session Uusi istunto running suorittaa suspended pysäytetty KDE KDE RDP connection RDP -yhteys XDMCP XDMCP Connection to local desktop Yhteys palvelimen omaan näyttöön Published applications Julkaistut sovellukset fullscreen koko näyttö Display Näyttö window ikkuna Maximum Maksimi Enabled Päällä Disabled Päältä SessionExplorer Back Takaisin Create session icon on desktop Tee instuntokuvake työpöydälle Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Työpöytäkuvakkeet voidaan asettaa piilottamaan x2go -asiakasohjelma (hidden mode). Jos haluat käyttää ominaisuutta määritä kirjautuminen käyttämään gpg-avainta tai gpg -toimikorttia. Käytätkö x2go-asiakasohjelmaa piilotettuna? Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running Näytä istunon kuvake kun se on aktiivinen New Session Uusi istunto X2Go Link to session Linkki X2Go -istuntoon Are you sure you want to delete this session? Haluatko varmasti poistaa tämän istunnon? SessionManageDialog E&xit &Lopeta &New session &Uusin istunto &Session preferences &Istunnon oletusarvot &Delete session &Poista instunto &Create session icon on desktop ... &Create session icon on desktop... &Tee istunnosta ikoni työpöydälle... Delete Delete Poista Session management Istunnon hallinnointi SessionWidget Session name: Istunnon nimi: << change icon << vaihda ikoni Path: Polku: &Server &Palvelin Host: Palvelin: Login: Käyttäjä: SSH port: SSH .-portti: Use RSA/DSA key for ssh connection: Käytä RSA/DSA -avainta ssh -yhteyden luomiseen: Try auto login (ssh-agent or default ssh key) Yritä automaattista kirjautumista (ssh-välittäjää tai oletus-ssh-avainta käyttäen) Try auto login (via SSH Agent or default SSH key) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) autentikointi Delegation of GSSAPI credentials to the server Anna GSSAPI -tunnistustiedot palvelimelle Use Proxy server for SSH connection Käytä proxy-palvelinta SSH -yhteyden luomiseen Proxy server Proxy-palvelin SSH SSH HTTP HTTP Same login as on X2Go Server Sama käyttäjätunnus kuin X2Go -palvelimeen Same password as on X2Go Server Sama salasana kuin X2Go -palvelimeen RSA/DSA key: RSA/DSA-avain: SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. ssh-agent or default ssh key ssh-agentti tai oletus -ssh-avain Type: Tyyppi: Port: Portti: &Session type &Istuntotyyppi Session type: Istuntotyyppi: Connect to Windows terminal server Yhdista Windows terminal serveriin XDMCP XDMCP Connect to local desktop Yhdistä palvelimen omaan näyttöön Custom desktop Muokattu työpöytä Single application Erillinen sovellus Published applications Julkaistut sovellukset Command: Komento: Advanced options... Edistyneet toiminnot... Path to executable Ohjelman hakupolku Direct RDP Connection Suora RPP-yhteys Open key file Lue avain-tiedosto All files Kaikki tiedostot Error VIrhe x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2go-asiakasohjelma on siirrettävässä moodissa. Käytä usb-laiteen hakupolkua jotta pääset joka paikasta käsiksi omiin tietoihisi RDP port: RPP-portti: Open picture Avaa kuva Pictures Kivat Server: Palvelin: XDMCP server: XDMCP -palvelin: rdesktop command line options: rdesktop -komentorivin optiot: New session Uusi istunto SettingsWidget &Display &Näyttö &Keyboard N&äppäimistö Sound Ääni &Clipboard Mode &Leikepöytä -tila &Clipboard mode Fullscreen Koko näyttö Custom Muokattu Window Ikkuna Use whole display Käytä koko näyttöä Maximum available Maksimikoko Set display DPI Aseta näytön arvot (DPI) Xinerama extension (support for two or more physical displays) Xinerama -laajennus (tuki kahdelle tai useammalle näytölle) Width: Leveys: Height: Korkeus: &Display: &Näyttö: &Identify all displays &Tunnista kaikki näytöt Bidirectional copy and paste Kaksisuuntainen leikkaus - liimaus Copy and paste from client to server Leikka ja liimaa päätelaitteesta palvelimeen Copy and paste from server to client Leikkaa ja liimaa palvelimesta päätelaitteeseen Disable clipboard completely Poista leikepöytä käytöstä kokonaan Auto-detect keyboard settings RDP client Auto detect keyboard settings Tunnista näppäimistötyyppi automaattisesti Do not configure keyboard Älä muuta näppäimistöasetuksia Configure keyboard Muuta näppäimistön asetukset Model: Malli: Layout: Asettelu: Variant: Alalaji: Keep current keyboard Settings Säitytä nykyiset näppämistöasetukset Keyboard layout: Näppäimistön layout: Keyboard model: Näppäimistön malli: Enable sound support Aseta ääni pälle Start sound daemon Käynnistä ääniajuri Use running sound daemon Käytä nykyistä ääniajuria Use SSH port forwarding to tunnel sound system connections through firewalls Käytä SSH -portin tunnelointia äänen saamiseksi palomuurin läpi Use default sound port Käytä oletus-aääniporttia Sound port: Ääniportti: Client side printing support Asiakasohjelman tulostintuki RDP Client RDP -asiakasohjelma Additional parameters: Lisäohjaimet: Command line: Komentorivi: us fi pc105/us pc105/us password salasana ShareWidget &Folders &Kansiot Path Polku Automount Automaattinen avaus Add Lisää Delete Poista Path: Polku: Filename encoding Tiedostonimen koodaus local: paikallinen: remote: palvelin: Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Use ssh port forwarding to tunnel file system connections through firewalls Käytä ssh-yhteyden edelleenlähetystä palomuurien ohittamiseen Select folder Valitse kansio Error Virhe x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2go-yhteysohjelma toimiii mobiilitilassa. Käytä usb-laitteen hakemistoja tietojen hakemiseen WINDOWS-1252 WINDOWS-1262 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error SSH -proxyssa on yhteysvirhe SSH proxy connection error. SSH proxy connection error: SSH proxyssa on yhteysvirhe: Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. Failed to create SSH proxy tunnel Virhe SSH-proxyn tunneloinnissa Can not initialize libssh Libssh-kirjaston avausvirhe Can not create ssh session Ssh-istunnon luonti ei onnistu Can not connect to proxy server Proxy -palvelimeen ei saatu yhteyttä Can not connect to Tänne ei saatu yhteyttä Authentication failed Autentikointi epäonnistui channel_forward_listen failed channel_forward_listen epäonnistui Failed to start SSH Client. Please check your installation and GSSApi configuration SSH-asiakasohjellman käynnistys epäonnistui. Tarkista sen asennus ja GSSAPI -asetukset Check your GSSApi configuration or choose another authentication method Tarkista GSSAPI -asetukset tai käytä jotain muuta autentikointimenetelmää Can not open file Tiedoston avaus ei onnistu Can not create remote file Tiedoston luonti etäpalvelimeen ei onnistu Can not write to remote file Etätiedostoon kirjoitus ei onnistu Cannot connect to yhteys ei avaudu tähän kohteeseen channel_open_forward failed channel_open_forward epäonnistui channel_open_session failed channel_open_session epäonnistui channel_request_exec failed channel_request_exec epäonnistui error writing to socket socket-yhteydessä on kirjoitusvirhe error reading channel kanavan lukuvirhe channel_write failed channel_write epäonnistui error reading tcp socket tcp-socketin lukuvirhe SshProcess Error creating socket Virhe socket-yhteyden luonnissa Error creating socket. Error binding Virhe yhteyden avauksessa XSettingsWidget Open File Avaa tiedosto Executable (*.exe) Suorittava ohjelma (*.exe) XSettingsWidgetUI Form Ruutu You must restart the X2Go Client for the changes to take effect Ota muutokset käyttöön käynnistämällä X2Go -asiakasohjelma uudelleen use integrated X-Server käytä integroitua X-palvelinta do not use primary clipboard älä käytä oletus-leikepöytää use custom X-Server käytä muokattua X-palvelinta custom X-Server muokattu X-palvelin executable: ohjelma: start X-Server on X2Go Client start käynnistä X-palvelin kun X2GO -asiakasohjelma käynnistyy command line options: komennon valinnat: X-Server command line options X-palvelimen komentorivin valinnat window mode: ikkunan tila: fullscreen mode: kokonäytön tila: single application: yksi sovellus: whole display: x2goclient-4.0.5.1/res/i18n/x2goclient_fr.ts0000644000000000000000000034727712675050177015346 0ustar AppDialog Published Applications Applications publiées Search: Rechercher: &Start &Démarrer &Close &Fermer Multimedia Multimedia Development Développement Education Éducation Game Jeux Graphics Graphismes Network Internet Office Bureautique Settings Préférences System Système Utility Accessoires Other Autres BrokerPassDialogUi Dialog Fenêtre de dialogue Old password: Ancien mot de passe: New password: Nouveau mot de passe: Confirm password: Confirmez le mot de passe: TextLabel Libellé textuel BrokerPassDlg Passwords do not match Les mots de passe ne correspondent pas CUPSPrintWidget Idle Inactive Printing En cours d'impression Stopped Arrêtée Yes Oui No Non Form Formulaire Name: Nom : Properties Propriétés State: État : Accepting jobs: En attente de travaux : Type: Type : Location: Emplacement : Comment: Commentaire : CUPSPrinterSettingsDialog No option selected Aucune option séléctionnée This value is in conflict with other option Cette valeur est en conflit avec une autre option Options conflict Conflits d'options This value is in conflict with another option. Cette valeur entre en conflit avec une autre option. Options conflict. Conflit entre options. ConTest Connectivity test Test de connectivité HTTPS connection: Connection HTTPS : SSH connection: Connection SSH : Connection speed: Vitesse de connection : Failed Échec 0 Kb/s 0 Kb/s OK Ok Failed: Échec : Socket operation timed out. Temps d'attente écoulé. ConfigDialog General Général Display icon in system tray Afficher l'icone dans la barre des tâches Hide to system tray when minimized Cacher dans la barre des tâches à la réduction de la fenêtre Hide to system tray when closed Cacher dans la barre des tâches à la fermeture de la fenêtre Hide to system tray after connection is established Cacher dans la barre des tâches quand la session est établie Restore from system tray after session is disconnected Cacher dans la barre des tâches quand la session est déconnectée Use LDAP Utiliser LDAP Server URL: URL du serveur: BaseDN: BaseDN: Failover server 1 URL: Failover en backup ? secours plutôt. URL du premier serveur de secours: Failover server 2 URL: URL du second serveur de secours: X-Server settings Préférences du serveur X X11 application: Application X11: X11 version: Version X11: Find X11 application Trouver une application X11 Clientside SSH port for file system export usage: Port SSH coté client pour l'export du système de fichiers: Start session embedded inside website Démarrer une session embarquée dans le site web Advanced options Options avancées Defaults Défauts &OK &Ok &Cancel &Annuler Settings Préférences Printing Impression Warning Attention x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient ne peut pas trouve d'application X11 adaptée. Merci d'installer Apple X11 ou de séléctionner le chemin de l'application Your are using X11 (Apple X-Window Server) version Vous utilisez X11 (Server X-Window Apple) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). Cette version pose des problèmes avec les applications X en mode de couleurs 24bits. Vous devriez mettre à jour votre environement X11 (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Pas d'application X11 trouvée dans le chemin sélectionné. &Connection &Connection &Settings &Préférences &Input/Output &Entrées/Sorties &Media &Media X.Org Server settings Réglages du serveur X.Org Clientside (local) SSH daemon port for file system export usage: "partage" plutôt que "export" ? "dossiers partagés" plutôt que "système de fichiers" ? Port du démon SSH côté client (local) pour l'export du système de fichiers: Pulseaudio settings Paramétrage de Pulseaudio Disable audio input Désactiver l'entrée son <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> <font size="5">Vous devez redémarrer X2Go Client pour que les modifications soient prises en compte</font><br><br> Your XQuartz version is too old. La version de votre XQuartz est trop ancienne. Your are using XQuartz (X Window System Server for OS X) version Vous utilisez XQuartz (Serveur de Système X Window pour OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> . Cette version provoque des problèmes avec les applications X en mode couleur 24bit. Vous devriez mettre à jour votre environnement X11. Utilisateurs de MacPorts, veuillez suivre les instructions sur : <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Les utilisateurs qui ont installé XQuartz par le paquet d'installation peuvent trouver des versions mises à jour sur : <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. Aucune application XQuartz valide sélectionnée. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> Vous n'avez pas sélectionné d'application XQuartz valide. Veuillez essayer à nouveau. Vous la trouverez peut-être dans l'un de ces emplacements standards : <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> ConnectionWidget &Connection speed Vitesse de &connection Connection speed: Vitesse de connection: C&ompression C&ompression C&ompression Method: Méthode: Compression method: Méthode de compression: Image quality: Qualité d'image: CupsPrinterSettingsDialog Dialog Fenêtre de dialogue General Général Page size: Taille de page: Paper type: Type de papier: Paper source: Source de papier: Duplex Printing Impression recto-verso None Aucune (recto seulement) Long side Bord long Short side Bord court Driver settings Préférences de pilote Option Option Value Valeur No option selected Pas d'option sélectionnée text texte EditConnectionDialog &Session &Session &Connection &Connexion &Settings &Préférences &Shared folders &Dossiers partagés &OK &Ok &Cancel &Cancel Defaults Défauts Session preferences - Paramétrage de la session - &Input/Output &Entrées/Sorties &Media &Media ExportDialog &Cancel &Annuler &share &Partager &Preferences ... &Préférences ... &Custom folder ... &Dossier personnalisé ... Delete Delete Effacer share folders partager des dossiers Select folder Choisir un dossier Share Folders Partager des dossiers FolderButton Sessions folder Dossier des sessions FolderExplorer Folders Dossiers Create New Folder Créer un nouveau dossier Open picture Ouvrir une image Pictures Images X2Go Client "Client X2Go" ? X2Go Client Folder Name: Nom du dossier : Error Erreur Unable to remove " Impossible d'enlever " Delete folder " Enlever dossier " New Folder Nouveau dossier Rename Folder ... Renommer le dossier ... Change Icon ... Changer d'icône ... Delete Folder ... Enlever le dossier ... ". Folder is not empty. Please remove the contents of this directory and try again. ". Le dossier n'est pas vide. Veuillez supprimer le contenu de ce dossier et essayer à nouveau. HelpDialog Options Options HttpBrokerClient Error Erreur Login failed!<br>Please try again Identification échouée !<br>Merci de réessayer Host key for server changed. It is now: La clef du serveur a changée. C'est maintenant: For security reasons, connection will be stopped Pour des raisons de sécurité, la connection va être stoppée. The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist La clef de ce serveur n'a pas été trouvée mais un autre type de clef existe. Un attaquant peut avoir changé la clef par défaut du serveur pour faire croire à votre client que la clef n'existe pas Could not find known host file.If you accept the host key here, the file will be automatically created Impossible de trouver le fichier des hôtes connus. Si vous acceptez l'hôte maintenant, le fichier sera créé automatiquement The server is unknown. Do you trust the host key? Public key hash: Le serveur n'est pas connu. Avez-vous confiance en cette clef ? Hash de la clef publique: Host key verification failed La vérification de la clef d'hôte a échouée Yes Oui No Non Enter passphrase to decrypt a key Entrez la phrase de passe pour déchiffrer la clef Authentication failed Identification échouée <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Le serveur utilise un certificat de sécurité invalide.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Vous ne devriez pas ajouter d'exeption si vous n'avez pas une entière confiance en la connection Internet que vous utilisez ou si vous n'avez pas l'habitude de voir cet avertissement pour ce serveur.</p> Secure connection failed Connection sécurisée échouée Issued to: Accordé à: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Numéro de série Issued by: Accordé par: Validity: Validité: Issued on Accordé sur expires on expire le Fingerprints: Fingerprints: SHA1 SHA1 MD5 MD5 Exit X2Go Client Quitter X2Go Client Add exception Ajouter une exception Verification code: Code de vérification : For security reasons, the connection attempt will be aborted. Par sécurité, la tentative de connexion va être abandonnée. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. La clé d'hôte de ce serveur n'a pas été reconnue mais un autre type de clef existe. Un attaquant peut avoir changé la clé par défaut du serveur pour faire croire à votre client que la clé n'existe pas encore. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Impossible de trouver le fichier des hôtes connus. Si vous acceptez l'hôte maintenant, le fichier sera créé automatiquement. Host key verification failed. La vérification de la clef d'hôte a échoué. Authentication failed. Echec de l'authentification. Login failed!<br>Please try again. Identification échouée !<br>Merci de réessayer. Secure connection failed. Echec de la connection sécurisée. MediaWidget Sound Son Enable sound support Activer le son Start sound daemon Démarrer le démon du son Use running sound daemon Utiliser le démon du son en cours d'execution Use SSH port forwarding to tunnel sound system connections through firewalls Transmettre le son par un tunel SSH pour passer à travers les pare-feux Use default sound port Utiliser le port par défaut pour le son Sound port: Port pour le son : Client side printing support Gestion de l'impression côté client ONMainWindow us us pc105/us pc105/us X2Go Client X2Go Client connecting Connection en cours Internet browser Navigateur Internet Email client Client e-mail OpenOffice.org OpenOffice.org Terminal Terminal &Settings ... &Préférences ... Support ... Support ... About X2GO client Apropos de X2Go Client Share folder... Partager le dossier... Suspend Suspendre Terminate Achever Reconnect Reconnecter Detach X2Go window Détacher la fenêtre X2Go Minimize toolbar Réduire la barre d'outils Session: Session: &Quit &Quiter Ctrl+Q Quit Quitter &New session ... &Nouvelle session ... Ctrl+N Session management... Gestion de sessions... Ctrl+E &Create session icon on desktop... &Créer une icone de session sur le bureau... &Set broker password... Configurer le mot de passe du broker... &Connectivity test... Test de &Connectivité... Show toolbar Afficher la barre d'outils About Qt À propos de Qt &Session &Session &Options &Options &Help &Aide Login: Identifiant: Operation failed Opération échouée Password changed Mot de passe modifié Wrong password! Mauvais mot de passe ! <b>Authentication</b> <b>Identification</b> Restore Réstauration Not connected Non connecté Multimedia Development Développement Education Éducation Game Jeux Graphics Graphismes Network Internet Office Bureautique Settings Préférences System Système Utility Accessoires Other Autres Left mouse button to hide/restore - Right mouse button to display context menu Bouton de gauche de la souris pour cacher/afficher - Bouton de droite de la souris pour afficher le menu contextuel Error Erreur Please check LDAP settings Merci de vérifier les réglages LDAP no X2Go server found in LDAP Pas de serveur X2Go trouvé dans LDAP Create session icon on desktop Créer une icone de session sur le bureau Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Les icones de bureau peuvent être configurées pour ne pas afficher X2Go Client (mode caché). Si vous voulez utiliser cette fonctionnalité, vous aurez besoin de configurer l'identification par clef GPG ou par Smart Card GPG. Utiliser le mode caché de X2Go Client ? New Session Nouvelle session X2Go sessions not found Sessions X2Go non trouvées Are you sure you want to delete this session? Êtes vous sûr de vouloir effacer cette session ? KDE RDP connection Connection RDP XDMCP Connection to local desktop Connection au bureau local on <b>Connection failed</b> <b>Connection échouée</b> <b>Wrong password!</b><br><br> <b>Mauvais mot de passe !</b><br><br> unknown inconnu No server availabel Pas de serveur disponible Select session: Sélectionnez la session: running en cours suspended suspendue Desktop Bureau single application application spécifique shadow session session fantôme Information Information No accessible desktop found Aucun bureau distant trouvé Filter Filtre Select desktop: Selectionnez un bureau: Warning Attention Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to La profondeur de couleur de votre serveur X est différente de celle de votre session X2Go. Cela peut pauser problème pour se reconnecter et la plupart du temps, <b>vous allez perdre la session</b>. Vous êtes fortement encouragé à changer la profondeur de couleur de couleur de votre serveur X à 24 or 32 24 ou 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bits et redémarrer votre serveur X avant de vous reconnecter à votre session.<br>Souhaitez-vous tout de même rétablir cette session ? Yes Oui Enter passphrase to decrypt a key Entrez une phrase de passe pour déchiffrer une clef Host key for server changed. It is now: La clef d'hôte du serveur a changée. La nouvelle clef est: For security reasons, connection will be stopped Pour des raisons de sécurité, la connection va être stoppée The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist La clef d'hôte pour ce serveur n'a pas été trouvée mais un autre type de clef a été trouvé. Un attaquant peut avoir changé la clef par défaut du serveur pour faire croire à votre client que la clef n'existe pas Could not find known host file.If you accept the host key here, the file will be automatically created Impossible de trouver le fichier des hôtes connus. Si vouss acceptez la clef d'hôte ici, le fichier sera automatiquement créé The server is unknown. Do you trust the host key? Public key hash: Le serveur est inconnu. Avez vous confiance en la clef d'hôte ? Hash de la clef publique: No Non Host key verification failed La vérification de la clef d'hôte a échouée Authentication failed L'autentification a échouée Enter password for SSH proxy Entrez un mot de passe pour le proxy SSH Server not availabel Le serveur n'est pas disponible suspending suspension en cours terminating achèvement <b>Wrong Password!</b><br><br> <b>Mauvais mot de passe !</b><br><br> Unable to create folder: Impossible de créer le dossier: Unable to write file: Impossible de créer le fichier: Attach X2Go window Atacher la fenêtre X2Go Unable to create SSL tunnel: Impossible de créer un tunnel SSL: Unable to create SSL Tunnel: Impossible de créer un tunnel SSL: Finished Fini starting démarrage resuming rétablissement Connection timeout, aborting Connection expirée, abandon en cours aborting abandon en cours Session Session Display Affichage Creation time Heure de création (can't open file) (ne peut pas ouvrir le fichier) Support Support Unable to create file: Impossible de créer le fichier : Unable to execute: Impossible d'executer : X2Go Session Session X2Go Password: Mot de passe : Keyboard layout: Disposition de clavier: Ok Ok Cancel Annuler <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Id. de session :<br>Serveur :<br>Nom d'utilisateur :<br>Affichage :<br>Heure de création :<br>État :</b> Applications... Applications... Abort Interrompre Show details Montrer les informations Resume Reprendre New Nouvelle Full access Accès complet View only Visualisation seule Status État Command Commande Type Type Server Serveur Client IP IP du client Session ID Id. de session User Utilisateur Only my desktops Seulement mes bureaux Restore toolbar Rétablir la barre d'outil <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Cliquer sur ce bouton&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;pour rétablir la barre d'outil&nbsp;&nbsp;&nbsp;</b><br> Connecting to broker Connection au broker WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Can't load translator: Ne peut charger le traducteur : Translator: Traducteur : No X2Go sessions found, closing. Session X2Go introuvable, fermeture. Starting connection to server: Démarrage de la connexion au serveur : to vers Authentication failed: Echec de l'authentification : Connection failed: Echec de la connexion : - Wrong password. - Mauvais mot de passe. New session started Nouvelle session démarrée Session resumed Session restaurée Unable to create folder: Impossible de créer le dossier : Unable to write file: Impossible de créer le fichier : Emergency exit. pas tout à fait ça Issue de secours. Waiting for proxy to exit. Attente de la sortie du mandataire. Wrong parameter: Mauvais paramètre : RSA file empty. Fichier RSA vide. Card not configured. Carte non configurée. If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Si vous acceptez la nouvelle clé d'hôte, la sécurité de votre connexion pourrait être compromise. Voulez-vous mettre à jour la clé d'hôte ? Verification code: Code de vérification : Help Aide Changelog Journal des modifications Git Info Information git SSH Error Erreur SSH SSH daemon failed to open the application's public key used for exporting folders and printers. Le démon SSH n'a pas réussi à utiliser la clé publique de l'application, utilisée pour exporter les dossiers et les imprimantes. Starting X2Go Client... Démarrage de X2Go Client... Starting X2Go Client in portable mode. Data directory is: Démarrage de X2Go Client en mode portable. Le dossier des données est : About X2Go Client À Propos de X2Go Client Started X2Go Client. X2Go Client démarré. found. trouvé. English language requested, not loading translator. Langue anglaise demandée, pas de traducteur à charger. Non-fatal: can't load translator: Pas fatal : impossible de charger le traducteur : Trying to load language with lower preference, if existent. Tentative de chargement d'une langue moins prioritaire, si pertinent. Session management ... Gestion des sessions ... &Create session icon on desktop ... &Créer un icône pour la session sur le bureau ... &Set broker password ... &Saisir le mot de passe du broker ... &Connectivity test ... Test de &connectivité ... Share folder ... Partager le dossier ... A left click hides or restores the window. A right click displays the context menu. Un clic gauche cache ou affiche la fenêtre. Un clic droit affiche le menu contextuel. Closing X2Go Client ... Fermeture de X2Go Client ... Finished X2Go Client closing hooks. "crochets" ? Fini X2Go Client par la fermeture des "hooks". Broker authentication failed! Echec de l'authentification du broker ! no X2Go Server found in LDAP serveur X2Go introuvable dans le LDAP Connection error: Erreur de connexion: Couldn't find an SSH connection. Connexion SSH introuvable. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Cela peut indiquer le cas d'une attaque par "l'homme-au-milieu". Quelqu'un pourrait vouloir vous espionner. Par sécurité, il est recommandé d'abandonner la tentative de connexion. Voulez vous mettre fin à la connexion ? Host key verification failed. La vérification de la clef d'hôte a échoué. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? La clé d'hôte de ce serveur n'a pas été reconnue mais un autre type de clef existe. Un agresseur peut avoir changé la clé par défaut du serveur pour faire croire à votre client que la clé n'existe pas encore. Par sécurité, il est recommandé d'arrêter toute tentative de connexion. Voulez-vous mettre fin à la connexion ? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Impossible de trouver le fichier des hôtes connus. Si vous acceptez l'hôte maintenant, le fichier sera créé automatiquement. Authentication failed. Echec de l'authentification. <b>Connection failed.</b> <b>Échec de la connexion</b> No server available. Aucun serveur disponible. Server not available. Le serveur n'est pas disponible. No accessible desktop found. Bureau accessible introuvable. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to La profondeur de couleur de votre serveur X est différente de celle de votre session X2Go. Cela peut pauser problème pour se reconnecter et la plupart du temps, <b>vous allez perdre la session</b>. Vous êtes fortement encouragé à changer la profondeur de couleur de couleur de votre serveur X à bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? bits et redémarrer votre serveur X avant de vous reconnecter à votre session.<br />Souhaitez-vous tout de même rétablir cette session ? Unable to create SSH tunnel for X2Go session (NX) startup: Impossible de créer le tunnel SSH pour démarrer la session X2Go (NX) : Unable to create SSH tunnel for audio data: Impossible de créer le tunnel des données audio : failed to start. Echec du démarrage. This likely means the binary is not available. The current search path is: Cela signifie probablement que le binaire n'est pas disponible. Le chemin de recherche en vigueur est : returned a non-zero exit code or crashed otherwise. a retourné un code de suppression différent de zéro ou a planté d'une autre manière. Execution failed, exit code was: Echec d'execution, le code de sortie était : didn't start up in time. n'a pas démarré à temps. This error shouldn't come up. Cette erreur ne devrait pas arriver. didn't accept a write operation. N'a pas accepté d'opération en écriture. It is probably not running correctly or crashed in-between. Ça ne marche probablement pas bien ou plante au milieu. Unable to read from xmodmap. Impossible de lire de xmodmap. encountered an unknown error during start up or execution. rencontré une erreur inconnue pendant le démarrage ou l'execution. experienced an undefined error. rencontré une erreur indéfinie. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. X2Go Client va se terminer maintenant. Enregistrez un rapport de bug comme expliqué sur <a href="http://wiki.x2go.org/doku.php/wiki:bugs">la page de wiki des bugs</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Le mandataire n'a pas rendu la main après 3 secondes. Tuons le mandataire. Closing X2Go Client because it was started in hidden mode. Fermons X2Go Client parce qu'il a été démarré en mode caché. Closing X2Go Client because the --close-disconnect parameter was passed. Fermons X2Go Client parce que le paramètre --close-disconnect a été fourni. Are you sure you want to terminate this session? Unsaved documents will be lost. Êtes-vous certain que vous voulez mettre fin à cette session ? Les documents qui n'ont pas été sauvegardés seront perdus. <b>Connection failed.</b> : <b>Échec de la connexion.</b> : (file does not exist) (le fichier n'existe pas) (directory does not exist) (le dossier n'existe pas) Invalid value for parameter "--link". Valeur invalide pour le paramètre "--link". Invalid value for parameter "--clipboard". Valeur invalide pour le paramètre "--clipboard". Invalid value for parameter "--sound". Valeur invalide pour le paramètre "--sound". Invalid value for parameter "--geometry". Valeur invalide pour le paramètre "--geometry". Invalid value for parameter "--set-kbd". Valeur invalide pour le paramètre "--set-kbd". Invalid value for parameter "--ldap". Valeur invalide pour le paramètre "--ldap". Invalid value for parameter "--ldap1". Valeur invalide pour le paramètre "--ldap1". Invalid value for parameter "--ldap2". Valeur invalide pour le paramètre "--ldap2". Invalid value for parameter "--pack". Valeur invalide pour le paramètre "--pack". Available pack methods: "pack" ? Méthodes de pack disponibles : Pack Methods Méthodes de Pack Option is not available in this build. "build" ? Cette opton n'est pas disponible dans ce build. Unable to create directory: Incapable de créer le dossier : Cannot open key: Ne peut pas ouvrir la clé : <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>(C) 2005-2016 par <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>le mode X2Go Plugin a été sponsorisé par <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <br>Ceci est un client pour accéder à l'environnement informatique par le réseau X2Go. Ce client sera capable de se connecter à un ou des serveur(s) X2Go et démarrer, arréter, restaurer et mettre fin à des sessions de bureau. X2Go Client conserve differentes connexions serveurs et peut automatiquement demander les données d'authentification à des annuaires LDAP. De plus, il peut être utilisé comme un écran de connexion en plein écran (en replacement des gestionnaires de session comme XDM). Visitez <a href="http://www.x2go.org">la page du projet sur x2go.org</a> pour plus d'information. <b>X2Go Client v. <b>X2Go Client v. Please check LDAP Settings. Vérifiez les réglages LDAP. Check whether the package providing "scdaemon" is installed. The current search path is: Vérifiez si le paquet qui fournit "scdaemon" est installé. Le chemin de recherche en vigueur est : didn't start yet. pas encore démarré. Unable to read from scdaemon. Incapable de lire à partir de scdeamon. No valid card found. Pas de carte valide trouvée. This card is unknown to the X2Go system. Cette carte est inconnue par le système X2Go. Can't start X.Org Server. Please check your installation. Ne peut pas démarrer X.Org Server. Vérifiez votre installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Le serveur distant ne gère pas l'export du système de fichiers par des tunnels SSH. Mettez à jour votre paquet x2goserver. Unable to create SSH tunnel for Folder Sharing and Printing support: Incapable de créer le tunnel SSH pour le partage de dossiers et la gestion des impressions : Unable to read: Incapable de lire : Unable to write: Incapable d'écrire : Error getting window geometry. (Did you close the window?) Erreur en prennant la géométrie de la fenêtre. (Est-ce que vous avez fermé la fenêtre ?) Invalid value for argument "speed" Valeur invalide pour le paramètre "speed" Applications ... Applications ... SSH daemon could not be started. Le démon SSH n'a pas pu être démarré. SSH daemon is not running. Le démon SSH n'est pas en cours d'execution. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Vous avez activé l'impression à distance ou le partage de fichier. Vous devez installer et démarrer un serveur SSH sur votre ordinateur pour permettre ces fonctionnalités. <b>L'impression et le partage de fichiers seront désactivés pour cette session.</b> Regardez aussi le <b>port SSH côté client</b> dans les préférences générales. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalement, ceci ne devrait pas arriver car X2Go Client pour Windows vient avec son propre serveur SSH interne. Si vous voyez ce message, faites connaitre ce bug sur : <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. Le serveur SSH n'a pas pu démarrer. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client n'a pas détecté de serveur SSH en cours d'execution sur votre machine et fut incapable de démarrer son propre serveur SSH. Veuillez rapporter ce bug sur : <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. Le serveur SSH n'est pour l'instant pas démarré. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Sur OS X, suivez ces étapes pour activer le service SSH :<ul><li>Ouvrez les <b>Préférences Système</b> (Applications -> Préferences Système)</li><li>Allez à <b>Partage</b></li><li>Cochez la case devant <b>Connexion à distance</b></li><li>Vérifiez que <b>Permettre l'accès pour :</b> est soit :<ul><li>Tous les utilisateurs: <b>pas d'autre étape nécessaire</b></li><li>Seulement ces utilisateurs<b> et que votre nom d'utilisateur est dans la liste</b></li></ul><li>En option, ajoutez votre nom d'utilisateur à la liste des autorisations via le <b>Bouton Plus</b></li></ul><b>Attention : permettre l'accès SSH permettra à n'importe quel utilisateur de votre réseau de se connecter à votre machine. Définir un mot de passe difficile à deviner pour chaque utilisateur qui peut se connecter par SSH est de votre responsabilité.</b> Please ask your system administrator to provide the SSH service on your computer. Veuillez demander à votre administrateur système d'activer le service SSH sur votre ordinateur. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. Désactiver l'impression à distance et la gestion des dossiers partagés dans les réglages de la session évitera l'affichage de ce message. SSH daemon failed to open its public host key. Le démon SSH n'a pas réussi à ouvrir sa clé publique. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Vous avez activé l'impression à distance ou le partage de fichiers. Vous devez installer et démarrer un serveur SSH sur votre ordinateur pour permettre ces fonctionnalités. <b>L'impression et le partage de fichiers seront désactivés pour cette session.</b> Le serveur SSH n'est pas configuré correctement pour l'instant. Vérifiez que la clé publique du serveur existe. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalement, ceci ne devrait pas arriver car X2Go Client pour Windows vient avec son propre serveur SSH interne et génère automatiquement les clés requises. Si vous voyez ce message, faites connaitre ce bug sur : <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client n'a pas réussi à créer les clés SSH de l'hôte. Merci de rapporter ce bug sur : <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Sur OS X, suivez ces étapes pour générer les clés requises :<ul><li>Ouvrez une <b>Fenêtre de Terminal</b> (Applications -> Utilitaires -> Terminal)</li><li>Tapez cette commande : <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> Veuillez demander à votre administrateur système de générer les clés d'hôtes requises. Si vous administrez vous-même ce système, tapez ceci : <center><b>sudo ssh-keygen -A</b></center> SSH daemon failed to open the application's authorized_keys file. Le démon SSH n'a pas réussi à ouvrir le fichier authorized_keys de l'application. PrintDialog Print Impression Print - X2Go Client Impression - X2Go Client You've deactivated the X2Go Client printing dialog. Vous avez désactivé la fenêtre de dialogue d'impression de X2Go Client. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) bizarre cette parenthèse toute seule Vouz pouvez réactiver cette fenêtre de dialogue en utilisant la fenêtre des préférences de X2Go Client. Pour ce faire, suivez ce chemin dans la barre de menu : Options -> Préférences) PrintProcess Save File Sauvegarder le fichier PDF Document (*.pdf) Document PDF (*.pdf) Failed to execute command: Echec d'execution de la commande : Printing error. Erreur d'impression. PrintWidget Form Formulaire Print Impression View as PDF Voir en PDF Print settings Réglages de l'impression Printer: Imprimante : Print using default Windows PDF Viewer (Viewer application needs to be installed) Imprimer en utilisant le visualiseur de PDF de Windows par défaut (L'application de visualisation doit être installée) Printer command: Commande d'impression : ... ... Viewer settings Réglages du visualiseur Open in viewer application Ouvrir dans l'application de visualisation Command: Commande : Save to disk Enregistrer sur le disque Show this dialog before start printing Montrer cette fenêtre de dialogue avant de commencer à imprimer 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>. Veuillez configurer vos réglages d'impression côté client.<br><br>Si vous voulez imprimer le fichier créé, vous aurez besoin d'une application externe. Généralement on utilise <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> et <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Vous trouverez plus d'information <a href="http://www.x2go.org/index.php?id=49">ici</a>. PrinterCmdDialog Please enter your customized or individual printing command. Example: Veuillez entrer votre commande d'impression personnalisée ou spécifique. Exemple : <Path to gsprint.exe> -query -color <Chemin vers gsprint.exe> -query -color Printer command Commande d'impression Command Commande Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Veuillez entrer votre commande d'impression personnalisée ou spécifique. Exemples : kprinter lpr -P hp_laserjet Output format Format de sortie Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Choisissez le format du fichier d'impression (dépendant de votre environnement d'impression - si vous utilisez CUPS vous pouvez choisir PDF) PDF PDF PS PS Data structure Structure des données Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Choisissez la méthode d'impression des fichiers fournis en entrée (certaines commandes prennent les fichiers à imprimer en options de la ligne de commande, d'autres s'attendent à ce qu'on leur fournisse sur l'entrée standard) : standard input (STDIN) Entrée standard (STDIN) Specify path as program parameter Donner le chemin en paramètre au programme QObject No response received from the remote server. Do you want to terminate the current session? "terminer" ici serait un anglicisme. Aucune réponse reçue du serveur distant. Voulez-vous mettre fin à la session en cours ? X2Go Client could not find any suitable X11 server. X2Go Client n'a pas réussi à trouver un serveur X11 convenable. X2Go Client could not start X11 server. X2Go Client n'a pas réussi à démarrer le serveur X11. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: X2Go Client a besoin d'avoir XQuartz installé. Si XQuartz est déjà installé sur le système, veuillez sélectionner le chemin correct dans la fenêtre de dialogue qui va apparaitre maintenant. Vous trouverez des exemples de chemins ci-dessous, au cas où vous ne connaitriez pas l'emplacement exact. Si vous n'avez <b>pas encore</b> installé XQuartz, veuillez suivre les recommandations ci-après : MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> Utilisateurs de MacPorts, installez soit le port <b>xorg-server</b>, soit le port <b>xorg-server-devel</b>. Une fois l'installation réussie, suivez les instructions fournies par l'utilitaire du port pour le démarrage et le chargement automatiques du serveur. Pour tous les autres utilisateurs : téléchargez et installez XQuartz à partir de : <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Puis redémarrez X2Go Client et spécifiez le chemin correct de l'application X11 dans les réglages dans les préférences générales de X2Go Client. Ce sera probablement <center><b>/Applications/MacPorts/X11.app</b></center> ou <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Delete session Supprimer cette session Session actions Actions sur cette session Select type Choisir le type Select resolution Choisir la résolution Toggle sound support Activer ou désactiver le son New Session Nouvelle session running en cours suspended suspendue KDE KDE RDP connection Connection RDP XDMCP XDMCP Connection to local desktop Connection au bureau local Published applications Applications publiées fullscreen plein écran Display Affichage window fenêtre Maximum Maximum Enabled Activé Disabled Désactivé Session preferences ... Réglages de la session ... Create session icon on desktop ... Créer un icône pour cette session sur le bureau ... SessionExplorer Back Retour Create session icon on desktop Créer une icone de session sur le bureau Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Les icones de bureau peuvent être configurées pour ne pas afficher X2Go Client (mode caché). Si vous voulez utiliser cette fonctionnalité, vous aurez besoin de configurer l'identification par clef GPG ou par Smart Card GPG. Utiliser le mode caché de X2Go Client ? Show session tray icon when running Montrer l'icone de session dans la barre des tâches, pendant l'utilisation New Session Nouvelle session X2Go Link to session Lien X2Go vers la session Are you sure you want to delete this session? Êtes vous certain(e) de vouloir effacer cette session ? Create session icon on desktop. Créer une icone de session sur le bureau. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Les icônes de bureau peuvent être configurés pour ne pas montrer le X2Go Client (mode caché). Si vous voulez utiliser cette fonctionnalité vous devrez configurer l'identification par une clé GPG ou une smartcard GPG. Utiliser le mode caché de X2Go Client ? SessionManageDialog E&xit &Fermer &New session &Nouvelle session &Session preferences &Réglages de la session &Delete session &Effacer la session &Create session icon on desktop... &Créer une icone de session sur le bureau... Delete Delete Effacer Session management Gestion des sessions &Create session icon on desktop ... &Créer un icône pour la session sur le bureau ... SessionWidget Session name: Nom de la session : << change icon << changer d'icône &Server &Serveur Host: Hôte : Login: Identifiant: SSH port: Port SSH : Use RSA/DSA key for ssh connection: Utiliser une clé RSA/DSA pour la connexion SSH : Kerberos 5 (GSSAPI) authentication Authentification Kerberos 5 (GSSAPI) Use Proxy server for SSH connection Utiliser un serveur mandataire pour la connexion SSH Proxy server Serveur mandataire SSH SSH HTTP HTTP Same login as on X2Go Server Même identifiant que sur le serveur X2Go Same password as on X2Go Server Même mot de passe que sur le serveur X2Go RSA/DSA key: Clé RSA/DSA : Type: Type : Port: Port : &Session type Type de &session Session type: Type de session : XDMCP XDMCP Connect to local desktop Se connecter au bureau local Custom desktop Bureau personnalisé Single application Application spécifique Published applications Command: Commande : Advanced options... Options avancées... Path to executable Chemin vers l'executable RDP port: Port RDP : Open picture Ouvrir une image Pictures Images Open key file Ouvrir le fichier de la clé All files Tous les fichiers Server: Serveur : XDMCP server: Serveur XDMCP : rdesktop command line options: options de la ligne de commande rdesktop : New session Nouvelle session Error Erreur Delegation of GSSAPI credentials to the server Délégation de l'identification GSSAPI au serveur Path: Chemin : Try auto login (via SSH Agent or default SSH key) Essayer l'authentification automatique (via l'agent SSH ou la clé SSH par défaut) SSH Agent or default SSH key Agent SSH ou clé SSH par défaut Connect to Windows Terminal Server Se connecter au serveur de terminaux Windows Direct RDP connection Connection RDP directe X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go Client est démarré en mode portable. Vous devriez utiliser un chemin sur votre appareil USB pour pouvoir accéder à vos données où que vous soyez. SettingsWidget &Display &Affichage &Keyboard &Clavier Fullscreen Plein écran Custom Personnalisé Window Fenêtre Use whole display Occuper tout l'écran Maximum available Le maximum disponible Set display DPI Régler la définition (en point par pouce) Xinerama extension (support for two or more physical displays) Extension Xinerama (gestion de plusieurs écrans physiques) Width: Largeur : Height: Hauteur : &Display: &Ecran : &Identify all displays &Identifier tous les écrans Additional parameters: Paramètres supplémentaires : Command line: Ligne de commande : us us us pc105/us pc105/us password Mot de passe Do not configure keyboard Ne pas configurer le clavier Configure keyboard Configurer le clavier Model: Modèle : Layout: Disposition : Variant: Variante : Bidirectional copy and paste Copier-coller dans les deux sens Copy and paste from client to server copier-coller du client au serveur Copy and paste from server to client Copier-coller du serveur vers le client Disable clipboard completely Complètement désactiver le presse-papier &Clipboard mode Mode du &presse-papier Auto-detect keyboard settings Détection automatique des réglages du clavier RDP client Client RDP ShareWidget &Folders &Dossiers Path Chemin Automount Monter automatiquement Add Ajouter Delete Enlever Path: Chemin : Select folder Choisir un dossier Filename encoding Encodage des noms des fichiers WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 local: local : remote: distant : Error Erreur Use SSH port forwarding to tunnel file system connections through firewalls Transmettre le système de fichier par un tunnel SSH pour passer à travers les pare-feux X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go Client est démarré en mode portable. Vous devriez utiliser un chemin sur votre appareil USB pour pouvoir accéder à vos données où que vous soyez. SshMasterConnection SSH proxy connection error: Erreur de connexion au mandataire SSH : Cannot connect to Ne peut pas se connecter à channel_request_exec failed échec de channel_request_exec SSH proxy connection error. Erreur de connexion au mandataire SSH. Failed to create SSH proxy tunnel. Impossible de créer le tunnel par mandataire SSH. Cannot initialize libssh. Échec à l'initialisation de libssh. Cannot create SSH session. Ne peut pas créer la session SSH. Cannot connect to proxy server. Impossible de se connecter au serveur mandataire. Authentication failed. Echec de l'authentification. Failed to start SSH client. Please check your installation and GSSApi configuration. Impossible de démarrer le client SSH. Veuillez vérifier votre installation et la configuration de GSSApi. Check your GSSApi configuration or choose another authentication method. Vérifiez la configuration de votre GSSApi ou choisissez une autre méthode d'authentification. Cannot open file Impossible d'ouvrir le fichier Cannot create remote file Impossible de créer le fichier distant Cannot write to remote file Impossible d'écrire dans le fichier distant channel_open_forward failed. échec de channel_open_forward. channel_open_session failed. échec de channel_open_session. Error writing to socket. Erreur lors de l'écriture dans un socket. Error reading channel. Erreur lors de la lecture du canal. channel_write failed. échec de channel_write. Error reading from TCP socket. Erreur de lecture à partir du socket TCP. SshProcess Error binding Erreur de connexion Error creating socket. Erreur de création de socket. XSettingsWidget Open File Ouvrir un fichier Executable (*.exe) Exécutable (*.exe) XSettingsWidgetUI Form Formulaire You must restart the X2Go Client for the changes to take effect Vous devez redémarrer X2Go Client pour que les modifications soient prises en compte use integrated X-Server utiliser le serveur X intégré use custom X-Server utiliser un serveur X spécifique custom X-Server Serveur X spécifique executable: exécutable : start X-Server on X2Go Client start "Client X2Go" ? démarrer le serveur X au démarrage de X2Go Client command line options: Options de la ligne de commande : X-Server command line options Options de la ligne de commande du serveur X window mode: mode fenêtré : fullscreen mode: mode plein écran : single application: application spécifique : do not use primary clipboard ne pas utiliser le presse-papier principal whole display: "tout l'affichage" ? toute la place : x2goclient-4.0.5.1/res/i18n/x2goclient_nb_no.ts0000644000000000000000000044725412675050177016026 0ustar AppDialog Published Applications Publiserte applikasjoner Search: Søk: &Start &Start &Close &Lukk Multimedia Multimedia Development Utvikling Education Opplæring Game Spill Graphics Grafikk Network Nettverk Office Kontor Settings Innstillinger System System Utility Verktøy Other Andre BrokerPassDialogUi Dialog Dialog Old password: Gammelt passord: New password: Nytt passord: Confirm password: Bekreft passordet: TextLabel TekstMerke BrokerPassDlg Passwords do not match Passordene stemmer ikke overens CUPSPrintWidget Idle Inaktiv Printing Skriver Stopped Stoppet Yes Ja No Nei Form Form Name: Navn: Properties Egenskaper State: Status: Accepting jobs: Aksepterer jobber: Type: Type: Location: Plassering: Comment: Kommentar: CUPSPrinterSettingsDialog No option selected Ingen alternativer er valgt This value is in conflict with other option Dette alternativet er i konflikt med et annet alternativ Options conflict Alternativskonflikt This value is in conflict with another option. Dette alternativet er i konflikt med et annet alternativ. Options conflict. Alternativskonflikt. ConTest Connectivity test Tilkoblingstest HTTPS connection: HTTPS tilkobling: SSH connection: SSH tilkobling: Connection speed: Sambandsfart: Failed Feilet 0 Kb/s 0 Kb/s OK OK Socket operation timed out Sokkel handlingen ble tidsavbrutt Failed: Feilet: Socket operation timed out. Sokkel handlingen ble tidsavbrutt. ConfigDialog General Generelt Display icon in system tray Vis ikon i systemkurven Hide to system tray when minimized Skjul til systemkurven ved minimering Hide to system tray when closed Skjul til systemkurven ved lukking Hide to system tray after connection is established Skjul til systemkurven etter tilkoblingen er opprettet Restore from system tray after session is disconnected Gjenopprett fra systemkurven etter at sesjonen er frakoblet Use LDAP Benytt LDAP Server URL: Server URL: BaseDN: BaseDN: Failover server 1 URL: URL til reserveserver 1: Failover server 2 URL: URL til reserveserver 2: X-Server settings X-Server innstillinger X11 application: X11 applikasjon: X11 version: X11 versjon: Find X11 application Finn X11 applikasjon Clientside SSH port for file system export usage: Klientside SSH port for bruk ved eksport av filsystem: Start session embedded inside website Start sesjonen innebygd i websiden Advanced options Avanserte alternativer Defaults Standardoppsett &OK &OK &Cancel &Avbryt Settings Innstillinger Printing Utksrift Warning Advarsel x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kan ikke finne en passende X11 applikasjon. Vennligst installer Apple X11, eller oppgi stien til applikasjonen Your are using X11 (Apple X-Window Server) version Du benytter X11 (Apple X-Window Server) versjon . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Denne versjonen forårsaker problemer med X-applikasjoner i 24biters fargemodus. Du burde oppdatere ditt X11 oppsett (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Ingen passende X11 applikasjon ble funnet i valgt sti &Connection &Tilkobling &Settings &Innstillinger &Input/Output &Inndata/Utdata &Media &Media X.Org Server settings X.Org Server innstillinger Clientside (local) SSH daemon port for file system export usage: Klientside SSH port for bruk ved eksport av filsystem: Pulseaudio settings Pulseaudio innstillinger Disable audio input Skru av lydopptak <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> <font size="5">Du må restarte X2Go klienten for at endringene skal tre i kraft</font><br><br> Your XQuartz version is too old. Din XQuartz versjon er for gammel. Your are using XQuartz (X Window System Server for OS X) version Du benytter XQuartz (Apple X Window System Server) versjon . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> . Denne versjonen lager problemer med X-program som kjører med 24bit fargemodus. Du burde oppgradere ditt X11 oppsett. MacPorts brukere, vennligst følg denne beskrivelsen: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Brukere som har installert XQuartz via installasjonspakke kan finne oppdaterte versjoner på: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. Ingen gyldig XQuartz applikasjon ble valgt. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> Du valgte ingen gyldig XQuartz applikasjon. Vennligts forsøk igjen. Noen vanlige lokasjoner er: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> ConnectionWidget &Connection speed &Sambandsfart Connection speed: Sambandsfart: C&ompression &Komprimering Method: Metode: Compression method: Komprimeringsmetode: Image quality: Bildekvalitet: CupsPrinterSettingsDialog Dialog Dialog General Generelt Page size: Arkstørrelse: Paper type: Papirtype: Paper source: Papirkilde: Duplex Printing Tosidig utskrift None Ingen Long side Langsiden Short side Kortsiden Driver settings Driver innstillinger Option Alternativ Value Verdi No option selected Ingen alternativer er valgt text tekst EditConnectionDialog &Session &Sesjon &Connection &Tilkobling &Settings &Innstillinger &Shared folders &Delte mapper &OK &OK &Cancel &Avbryt Defaults Standardoppsett Session preferences - Sesjonsinnstillinger - &Input/Output &Inndata/Utdata &Media &Media ExportDialog &Cancel &Avbryt &share d&el &Preferences ... &Innstillinger ... &Custom folder ... &Egentilpasset mappe ... Delete Delete Slett share folders del mapper Select folder Velg mappe Share Folders Del mapper FolderButton Sessions folder Sesjonsmappe FolderExplorer Folders Mapper Create New Folder Lag en ny mappe Rename Folder... Lag nytt navn på mappe... Change Icon... Endre ikon ... Delete Folder... Slett mappe... Open picture Åpne bilde Pictures Bilder X2Go Client X2Go klient Folder Name: Navn på mappe: Error Feil Unable to remove " Klarte ikke å fjerne " ". Folder is not empty. Please remove content of folder and try again. " mappen er ikke tom. Fjern innholdet i mappa, og forsøk pånytt. Delete folder " Slett mappe " New Folder Ny mappe Rename Folder ... Lag nytt navn på mappe ... Change Icon ... Endre ikon ... Delete Folder ... Slett mappe ... ". Folder is not empty. Please remove the contents of this directory and try again. " mappen er ikke tom. Fjern innholdet i mappa, og forsøk pånytt. HelpDialog Options Alternativer HttpBrokerClient us no pc105/us pc105/no Host key for server changed. It is now: Vertsnøkkel for serveren har endret seg. Den er nå: For security reasons, connection will be stopped Av hensyn til sikkerheten vil tilkoblingen bli stoppet The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type av nøkkel eksisterer. En angriper kan endre standard servernøkkel for å lure klienten din til å tro at nøkkelen ikke finnes Could not find known host file.If you accept the host key here, the file will be automatically created Kan ikke finne "known host" filen. Om du aksepterer vertsnøkkelen her vil filen automatisk bli opprettet The server is unknown. Do you trust the host key? Public key hash: Serveren er ukjent. Stoler du på vertsnøkkelen? Offentlig nøkkel: Host key verification failed Verifiseringen av vertsnøkkelen feilet Yes Ja No Nei Enter passphrase to decrypt a key Oppgi passordfrase for å dekryptere en nøkkel Authentication failed Autentisering feilet Error Feil Login failed!<br>Please try again Innlogging feilet! <br>Vennligst forsøk igjen <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Servereren benytter et ugyldig sikkerhetssertifikat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Du burde ikke legge til et unntak om du benytter en internett forbindelse som du ikke stoler 100% på, eller om du ikke er vant med å se advarsler for denne serveren.</p> Secure connection failed Sikker tilkobling feilet Issued to: Utstedet til: Common Name(CN) Navn (CN) Organization(O) Organisation (O) Organizational Unit(OU) Organisasjonsenhet (OU) Serial Number Serienummer Issued by: Utstedet av: Validity: Gyldighet: Issued on Utstedet den expires on Utløper den Fingerprints: Fingeravtrykk: SHA1 SHA1 MD5 MD5 Exit X2Go Client Avlsutt X2Go Klienten Add exception Legg til unntak Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Sesjonen din ble koblet ned. For å få tilgang til den kjørende sesjonen din, vennligst returner til innloggingssiden, eller benytt "oppdater" funksjonen i nettleseren din. Verification code: Verifikasjonskode: For security reasons, the connection attempt will be aborted. Av hensyn til sikkerheten vil tilkoblingen bli stoppet. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type av nøkkel eksisterer. En angriper kan ha endret standard servernøkkel for å lure klienten din til å tro at nøkkelen ikke finnes ennå. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Kan ikke finne known host filen. Om du aksepterer vertsnøkkelen her vil filen automatisk bli opprettet. Host key verification failed. Verifiseringen av vertsnøkkelen feilet. Authentication failed. Autentisering feilet. Login failed!<br>Please try again. Innlogging feilet! <br>Vennligst forsøk igjen. Secure connection failed. Sikker tilkobling feilet. MediaWidget Sound Lyd Enable sound support Aktiver lydstøtte Start sound daemon Start lydtjeneren Use running sound daemon Benytt kjørende lydtjener Use SSH port forwarding to tunnel sound system connections through firewalls Benytt SSH port videresendring for å tunnelere lydsystem forbindelser gjennom brannmurer Use default sound port Benytt standard lyd port Sound port: Lyd port: Client side printing support Klientside utskrifts støtte ONMainWindow us no pc105/us pc105/de Support ... Støtte ... Session: Sesjon: &Quit &Avslutt Ctrl+Q Ctrl+Q Quit Avslutt &New Session ... &Neue Sitzung ... Ctrl+N Ctrl+N Session Management... Sitzungsverwaltung... Ctrl+E Ctrl+E LDAP &Settings ... LDAP &Konfiguration ... Restore toolbar Gjenopprett verktøylinjen About X2GO Client Über X2GO Client About Qt Om QT Session Sesjon Ctrl+Q exit Ctrl+Q &Session &Sesjon &Options &Innstillinger &Help &Hjelp Verification code: Verifikasjons kode: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Dette kan være et tegn på såkalt man-in-the-middle angrep. Noen kan forsøke å avlytte din forbindelse. Av hensyn til din sikkerhet, så bør du avbryte tilkoblingen. Vil du avbryte tilkoblingen? If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Hvis du aksepterer den nye vertsnøkkelen, så kan din tilkobling bli avlyttet. Vil du oppdateren den nye vertsnøkkelen? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type nøkkel finnes. En angriper kan endre standard vertsnøkkel for serveren for å lure din klient til å tro at nøkkelen ikke finnes. Av hensyn til din sikkerhet så bør du avbryte tilkoblingen. Vil du avbryte tilkoblingen? New session started Ny sesjon startet Session resumed Sesjon gjenopptatt Unable to create folder: Klarer ikke å opprette katalogen: Unable to write file: Klarer ikke å skrive til filen: Emergency exit. Avsluttning grunnet nødstilfelle. Waiting for proxy to exit. Venter på at proxy skal avslutte. Failed, killing the proxy. Feilet, dreper derfor proxy. Wrong parameter: Feil parameter: RSA file empty. RSA filen er tom. Can not open key: Kan ikke åpne nøkkelfilen: Card not configured. Kortet er ikke konfigurert. Error getting window geometry (window closed)? Feil under uthenting av vindusgeometrien (Er vinduet lukket)? Password: Passord: Keyboard layout: Tastatur utseende: Ok Ok Cancel Avbryt Applications... Applikasjoner... Invalid reply from broker Ugyldig svar fra megleren Error Feil KDE KDE on Login: Brukernavn: Select session: Velg sesjon: Resume Gjenoppta Suspend Koble fra Terminate Avslutte New Ny Display Skjerm Status Status Server Server Creation Time Startzeit Client IP Klient IP running aktiv suspended Frakoblet Unable to create Folder: Ordner kann nicht erzeugt werden: Unable to write File: Datei kann nicht geschrieben werden: Unable to create SSL Tunnel: Klarer ikke å opprette SSL tunnel: Warning Advarsel connecting kobler til starting starter resuming gjenopptar Connection timeout, aborting Tilkoblingen tidsavbrutt, avbryter aborting Avbryter <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation Time:<br>Status:</b> <b>Sitzungs ID:<br>Server:<br>Login:<br>Display:<br>Startzeit:<br>Status:</b> Abort Avbryt Show Details Zeige Details (can't open file) (kan ikke åpne filen) (file not exists) (filen finnes ikke) (directory not exists) (mappen finnes ikke) wrong value for argument"--link" ugyldig verdi for parameteren "--link" wrong value for argument"--sound" ugyldig verdi for parameteren "--sound" wrong value for argument"--geometry" ugyldig verdi for parameteren "--geometry" wrong value for argument"--set-kbd" ugyldig verdi for parameteren "--set-kbd" wrong value for argument"--ldap" ugyldig verdi for parameteren "--ldap" wrong value for argument"--pack" ugyldig verdi for parameteren "--pack" wrong parameter: ugyldig parameter: Available pack methodes: Tilgjengelige pakkemetoder: Support Støtte </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Please check LDAP Settings Vennligst sjekk LDAP innstillingene no X2Go Server found in LDAP Inge X2Go server ble funnet i LDAP Are you sure you want to delete this Session? Sind Sie sicher, dass Sie die Sitzung löschen wollen? <b>Connection failed</b> <b>Tilkoblingen feilet</b> No Server availabel es konnte kein Server gefunden werden Session ID Sesjons ID suspending Kobler fra terminating Avslutter <b>Connection failed</b> : <b>Tilkoblingen feilet</b> : Share Folder... Ordner freigeben... Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to read : Klarer ikke å lese: Unable to write : Klarer ikke å skrive: <b>X2Go Client V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <b>X2Go Client V. 2.0.1</b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. <b>Wrong Password!</b><br><br> <b>Feil passord!</b><br><br> wrong value for argument"--ldap1" ugyldig verdi for parameteren "--ldap1" wrong value for argument"--ldap2" ugyldig verdi for parameteren "--ldap2" Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Usage: x2goclient [Options] Options: --help Print this message --help-pack Print availabel pack methods --no-menu Hide menu bar --maximize Start maximized --add-to-known-hosts Add RSA key fingerprint to .ssh/known_hosts if authenticity of server can't be established --ldap=<host:port:dn> Start with LDAP Support. Example: --ldap=ldapserver:389:o=organization,c=de --ldap1=<host:port> LDAP Failover Server #1 --ldap2=<host:port> LDAP Failover Server #2 --command=<cmd> Set default command, default value 'KDE' --sound=<0|1> Enable sound, default value '1' --geomerty=<W>x<H>|fullscreen Set default geometry, default value '800x600' --link=<modem|isdn|adsl|wan|lan> Set default link type, default 'lan' --pack=<packmethod> Set default pack method, default '16m-jpeg-9' --kbd-layout=<layout> Set default keyboard layout, default 'us' --kbd-type=<typed> Set default keyboard type, default 'pc105/us' --set-kbd=<0|1> Overwrite current keyboard settings, default '0' Unable to create file: Klarer ikke å opprette filen: No valid card found Ingen gyldige kort ble funnet This card is unknown by X2Go System Diese Karte ist dem X2Go System unbekannt &Settings ... &Innstillinger ... Options Alternativer Can't read host rsa key: RSA Schlüssel konnte nicht gelesen werden: Can't connect to X-Server Klarte ikke å koble til X-Serveren Can't connect to X server Please check your settings Klarte ikke å koble til X-Serveren Vennligst sjekk innstillingene dine Can't start X-Server X-Server konnte nicht gestartet werden Can't start X Server Please check your settings Klarte ikke å starte X-Serveren Vennligst sjekk instillingene dine Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Din nåværende fargedybde er forskjellig fra fargedybden i din x2go sesjon. Dette kan skape problemer ved gjenoppkobling til denne sesjonen, og i de fleste tilfellene <b>vil du miste hele sesjonen</b>. og du må starte en ny en! Det er sterkt anbefalt å endre fargedybden på skjemen din til 24 or 32 24 eller 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit og deretter restarte X-Serveren før du kobler til denne x2go sesjonen. <br>Gjenoppta denne sesjonen uansett? Yes Ja No Nei <b>X2Go Client V. <b>X2Go Client V. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. OpenOffice.org OpenOffice.org Terminal Terminal unknown ukjent Command Kommando Type Type Desktop Skrivebord single application enkel applikasjon shadow session skygge sesjonen <br>Sudo configuration error <br>Fehler in der Sudo Konfiguration Unable to execute: Klarte ikke å utføre: X2Go Client X2Go klient Internet browser Nettleser Email client Epost program &New session ... &Ny sesjon ... Session management... Sesjonshåndtering... Show toolbar Vis verktøylinje About X2GO client Om X2GO klient Please check LDAP settings Vennligst sjekk LDAP innstillingene no X2Go server found in LDAP Inge X2Go server ble funnet i LDAP Are you sure you want to delete this session? Er du sikker på at du ønsker å fjerne denne sesjonen? <b>Wrong password!</b><br><br> <b>Feil passord!</b><br><br> No server availabel Ingen tilgjengelig server Not connected Ikke tilkoblet Creation time Opprettelsestidspunkt Unable to create folder: Klarer ikke å opprette katalogen: Enter passphrase to decrypt a key Oppgi passordfrase for dekryptere en nøkkel No X2Go sessions found, closing. Ingen X2Go sesjoner ble funnet, lukker. Starting connection to server: Starter tilkobling til server: to til Connection Error( Tilkoblingsfeil( Couldn't find a SSH connection. Klarte ikke å finne en SSH tilkobling. Host key for server changed. It is now: Vertsnøkkel for serveren har endret seg. Den er nå: For security reasons, connection will be stopped Av hensyn til sikkerheten vil tilkoblingen bli stoppet The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type av nøkkel eksisterer. En angriper kan endre standard server nøkkel for å lure klienten din til å tro at nøkkelen ikke finnes Could not find known host file.If you accept the host key here, the file will be automatically created Kan ikke finne "known host" filen. Om du aksepterer vertsnøkkelen her vil filen automatisk bli opprettet The server is unknown. Do you trust the host key? Public key hash: Serveren er ukjent. Stoler du på vertsnøkkelen? Offentlig nøkkel: Host key verification failed Verifiseringen av vertsnøkkelen feilet Authentication failed: Autentisering feilet: Authentication failed Pålogging feilet Enter password for SSH proxy Oppgi passord for SSH proxy Connection failed: Tilkoblingen feilet: - Wrong password. - Feil passord. Server not availabel Serveren er ikke tilgjengelig Unable to write file: Klarer ikke å skrive til filen: Unable to create SSL tunnel: Klarte ikke å opprette SSL tunnel: <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sesjons ID:<br>Server:<br>Brukernavn:<br>Skjerm:<br>Opprettet:<br>Status:</b> Share folder... Del mappe... Show details Vis detaljer This card is unknown by X2Go system Dette kortet er ukjent for X2Go systemet Can't start X server Please check your settings Klarte ikke å starte X-Serveren Vennligst sjekk instillingene dine Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Serveren støtter ikke eksport av filsystemet over en SSH Tunnel Vennligst oppdater til en nyere x2goserver pakke &Create session icon on desktop... &Opprett sesjonsikon på skrivebordet... Starting x2goclient... Starter x2goclient... Starting x2goclient in portable mode... data directory is: Starter x2goclient i portabel modus... data-katalogen er: Started x2goclient. Startet x2goclient. Can't load translator: Kan ikke laste oversetter: Translator: Oversetter: installed. installert. &Set broker password... &Sett megler passord... &Connectivity test... &Tilkoblings-test... Operation failed Handlingen feilet Password changed Passordet er endret Wrong password! Feil passord! <b>Authentication</b> <b>Autentisering</b> Restore Gjenopprett Multimedia Multimedia Development Utvikling Education Opplæring Game Spill Graphics Grafikk Network Nettverk Office Kontor Settings Innstillinger System System Utility Verktøy Other Andre Left mouse button to hide/restore - Right mouse button to display context menu Venstre museknapp for å skjule/gjenopprette - Høyre museknapp viser sprettoppmeny Closing x2goclient... Lukker x2goclient... Closed x2goclient. Lukket x2goclient. Create session icon on desktop Opprett sesjonsikon på skrivebordet Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivebordsikoner kan konfigureres til å ikke vise x2goklient (skjult modus). Om du ønsker å benytte denne muligheten må du konfigurere pålogging ved bruk av en GPG-nøkkel, eller et GPG basert smartkort. Ønsker du å aktivere skjult modus for x2goklient? Show session tray icon when running Hvis sesjonsikon i systemkurven når sesjonen kjører New Session Ny sesjon X2Go sessions not found X2Go sesjoner ble ikke funnet RDP connection RDP tilkobling X2Go Link to session X2Go kobling til sesjon Detach X2Go window Løsne X2Go vindu Attach X2Go window Feste X2Go vindu Finished Ferdig Are you sure you want to terminate this session? Unsaved documents will be lost Er du sikker på at du vil avslutte denne sesjonen? Ulagrede data vil gå tapt </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2009 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. Can't start X Server Please check your installation Klarer ikke å starte X Serveren Vennligst sjekk din installasjon X2Go Session X2Go sesjon Minimize toolbar Minimer verktøylinje <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Trykk her&nbsp;&nbsp;&nbsp;<br> &nbsp;&nbsp;&nbsp;for å gjenopprette&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;verktøylinjen&nbsp;&nbsp;&nbsp;</b><br> Can't open config file: Konfigurationsdatei lässt sich nicht öffnen: sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd er ikke startet og du trenger denne for skriver- og fildeling. Du kan installere sshd med: <b>sudo apt-get install openssh-server</b> Connection to local desktop Tilkobling til lokalt skrivebord Information Informasjon Filter Filter Select desktop: Velg skrivebord: View only Kun vis User Bruker XDMCP XDMCP No accessible desktop found Ingen tilgjengelige skrivebord ble funnet Full access Full tilgang Only my desktops Kun mine skrivebord Reconnect Gjenoppkoble Connecting to broker Koble til megleren </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin modusen ble sponset av <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Ein Client für den Zugriff auf die serverbasierende Anwendungsumgebung X2Go. Mit Hilfe dieser Anwendung können Sie Sitzungen eines X2Go Servers starten, stoppen, laufende Sitzungen fortführen oder anhalten und verschiedene Sitzungskonfigurationen verwalten. Die Authentifizierung kann über LDAP erfolgen und das Programm kann im Vollbildmodus (als Ersatz für XDM) gestartet werden. Weitere Informationen erhalten SIe auf x2go.org. WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 wrong value for argument"speed" wrong value for argument"speed" application/x2go:x2go:Configuration File for X2Go Session application/x2go:x2go:Konfiguration Datei für eine X2Go Sitzung Help Hjelp Pack Methodes Pakkemetode Option is not availabel in this build Valget er ikke aktivet i denne versjonen Changelog Endringslogg Git Info Git info SSH Error SSH feil SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH demonen kunne ikke starte. Du trenger SSH demone for å kunne skrive ut og for fildeling. Noramlt skal ikke dette skje siden X2Goklienten for Windows inneholder den interne sshd.exe. Hvis du ser denne meldingen, vennligst opprett en feilmelding i X2Go sin feilmeldingshåndterer. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Vennligst be din systemadministrator og å tilby SSH på din datamaskin. SSH daemon failed to open the application's public host key. SSH demonen klarte ikke å åpne applikasjonens offentlige vertsnøkkel. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH demonen klarte ikke å åpne applikasjonens offentlige nøkke for å eksportere mapper og skrivere. SSH daemon failed to open the application's authoized_keys file. SSH demonen klarte ikke å åpne applikasjonens authorized_keys fil. wrong value for argument"--clipboard" feil verdi til argumentet"--clipboard" Starting X2Go Client... Starter X2Go klienten... Starting X2Go Client in portable mode. Data directory is: Starter X2Go klienten i portabel modus... data-katalogen er: About X2Go Client Om X2Go klienten Started X2Go Client. Startet X2Go klienten. found. funnet. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... Sesjonshåndtering ... &Create session icon on desktop ... &Opprett sesjonsikon på skrivebordet ... &Set broker password ... &Sett megler passord ... &Connectivity test ... &Tilkoblings-test ... Share folder ... Del mappe ... A left click hides or restores the window. A right click displays the context menu. Venstre museknapp for å skjule/gjenopprette - Høyre museknapp viser sprettoppmeny. Closing X2Go Client ... Lukker X2Go klienten ... Finished X2Go Client closing hooks. Ferdig med å lukke X2Go klientens hooks. Broker authentication failed! Brokerens autentisering feilet! Connection error: Tilkoblingen feilet: Couldn't find an SSH connection. Klarte ikke å finne en SSH tilkobling. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Dette kan være et tegn på såkalt man-in-the-middle angrep. Noen kan forsøke å avlytte din forbindelse. Av hensyn til din sikkerhet, så bør du avbryte tilkoblingen. Vil du avbryte tilkoblingen? Host key verification failed. Verifiseringen av vertsnøkkelen feilet. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Vertsnøkkelen for denne serveren ble ikke funnet, men en annen type nøkkel finnes. En angriper kan endre standard vertsnøkkel for serveren for å lure din klient til å tro at nøkkelen ikke finnes. Av hensyn til din sikkerhet så bør du avbryte tilkoblingen. Vil du avbryte tilkoblingen? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Kan ikke finne known host filen. Om du aksepterer vertsnøkkelen her vil filen automatisk bli opprettet. Authentication failed. Autentisering feilet. <b>Connection failed.</b> <b>Tilkoblingen feilet</b> No server available. Ingen tilgjengelig server. Server not available. Ingen tilgjengelig server. No accessible desktop found. Ingen tilgjengelige skrivebord ble funnet. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to Din nåværende fargedybde er forskjellig fra fargedybden i din X2Go sesjon. Dette kan skape problemer ved gjenoppkobling til denne sesjonen, og i de fleste tilfellene <b>vil du miste hele sesjonen</b>. og du må starte en ny en! Det er sterkt anbefalt å endre fargedybden på skjemen din til bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? bit og deretter restarte X.Org Server før du kobler til denne X2Go sesjonen. <br>Gjenoppta denne sesjonen uansett? Unable to create SSH tunnel for X2Go session (NX) startup: Klarte ikke å opprette SSH tunnel for X2Go sesjon (NX) oppstart: Unable to create SSH tunnel for audio data: Klarte ikke å opprette SSH tunnel for lyddata: failed to start. klarte ikke å starte. This likely means the binary is not available. The current search path is: Dette betyr trolig at binæren ikke er tilgjengelig. Søkebanen som er i bruk er: returned a non-zero exit code or crashed otherwise. returnerte en ikke-null verdi, eller krasjet på annen måte. Execution failed, exit code was: Klarte ikke å utføre kommandoen, avslutningskoden var: didn't start up in time. startet ikke opp tidsnok. This error shouldn't come up. Denne feilen skulle ikke ha inntruffet. didn't accept a write operation. aksepterte ikke skriveoperasjonen. It is probably not running correctly or crashed in-between. Den kjører enten ikke korrekt, eller har krasjet underveis. Unable to read from xmodmap. Klarte ikke å lese fra xmodmap. encountered an unknown error during start up or execution. traff en ukjent feil under oppstart eller utførelse. experienced an undefined error. en ukjent feil har oppstått. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. X2Go klienten avslutter. Rapporter en feilrapport slik det er beskrevet på <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Proxy stoppet ikke etter 3 sekunder. Tvinger stans av proxy. Closing X2Go Client because it was started in hidden mode. Lukker X2Go klienten fordi den ble startet i såkalt skjult modus. Closing X2Go Client because the --close-disconnect parameter was passed. Lukker X2Go klienten fordi den ble startet med --close-disconnect parameter. Are you sure you want to terminate this session? Unsaved documents will be lost. Er du sikker på at du vil avslutte denne sesjonen? Ulagrede data vil gå tapt. <b>Connection failed.</b> : <b>Tilkoblingen feilet</b> : (file does not exist) (filen finnes ikke) (directory does not exist) (mappen finnes ikke) Invalid value for parameter "--link". Ugyldig verdi for parameteren "--link". Invalid value for parameter "--clipboard". Ugyldig verdi til argumentet"--clipboard". Invalid value for parameter "--sound". Ugyldig verdi for parameteren "--sound". Invalid value for parameter "--geometry". Ugyldig verdi for parameteren "--geometry". Invalid value for parameter "--set-kbd". Ugyldig verdi for parameteren "--set-kbd". Invalid value for parameter "--ldap". Ugyldig verdi for parameteren "--ldap". Invalid value for parameter "--ldap1". Ugyldig verdi for parameteren "--ldap1". Invalid value for parameter "--ldap2". Ugyldig verdi for parameteren "--ldap2". Invalid value for parameter "--pack". Ugyldig verdi for parameteren "--pack". Available pack methods: Tilgjengelige pakkemetoder: Pack Methods Pakkemetoder Option is not available in this build. Valget er ikke aktivet i denne versjonen. Unable to create directory: Klarer ikke å opprette katalogen: Cannot open key: Kan ikke åpne nøkkelen: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <b>(C) 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>X2Go plugin modusen ble sponset av <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <br>Dette er en klient for å få tilgang til et X2Go nettverksbasert datasystem. Denne klienten kan koble seg til X2Go servere og starte, stoppe, gjennoppta og avslutte kjørende desktop sesjoner.X2Go klienten lagrer de forskjellige forbindelsene til servere, og kan automatisk be om autentisering fra LDAp kataloger. Den kan også bli brukt som en påloggingsskjerm i fullskjermmodus(kan brukes istedenfor loginhåndtere slik som XDM). Vennligst besøk <a href="http://www.x2go.org">prosjektets hjemmeside på x2go.org</a> for mer informasjon. <b>X2Go Client v. <b>X2Go klient v. Please check LDAP Settings. Vennligst sjekk LDAP innstillingene. Check whether the package providing "scdaemon" is installed. The current search path is: Sjekk om pakken som tilbyr "scdaemon" er installert. Søkebanen som er i bruk er: didn't start yet. er ikke startet ennå. Unable to read from scdaemon. Klarte ikke å lese fra scdaemon. No valid card found. Ingen gyldige kort ble funnet. This card is unknown to the X2Go system. Dette kortet er ukjent for X2Go systemet. Can't start X.Org Server. Please check your installation. Klarer ikke å starte X.Org Server. Vennligst sjekk din installasjon. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Serveren støtter ikke eksport av filsystemet over en SSH Tunnel. Vennligst oppdater til en nyere x2goserver pakke. Unable to create SSH tunnel for Folder Sharing and Printing support: Klarte ikke å opprette SSH tunnel for mappedeling og utskriftstøtte: Unable to read: Klarer ikke å lese: Unable to write: Klarer ikke å skrive: Error getting window geometry. (Did you close the window?) Feil under uthenting av vindusgeometrien (Er vinduet lukket?) Invalid value for argument "speed" ugyldig verdi for parameteren "speed" Applications ... Applikasjoner ... SSH daemon could not be started. SSH daemonen kunne ikke startes. SSH daemon is not running. SSH daemonen kjører ikke. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Du har skrudd på enten ekstern utskrift eller fildeling. Dette er ting som krever en startet og fungerende SSH server på din datamaskin- <b>Utskrift og fildeling vil bli skrudd av i denne sesjonen.</b> Vennligst sjekk innstillingene for <b>SSH port på server</b> under generelle innstillinher. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Dette skal normalt ikke hende siden X2Go klienten for Windows kommer med sin egne innebygde SSH server.. Hvis du ser denne meldingen, vennligst rapporter dette på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. SSH serveren klarte ikke å starte. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go klienten fant ingen global kjørende SSH server på din datamaskin, og klarte heller ikke å starte sin egen. Vennligst rapporter denne feilen på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center The SSH server is currently not started. SSH serveren er ikke startet. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> På Mac OS X vennligst følg denne beskrivelsen for å starte SSH serveren: <ul><li>Åpne <b>Systemvalg</b> (Program->Systemvalg)</li><li>Gå til <b>Deling</b></li><li>Sett kryss på<b>Ekstern pålogging</b></li><li>Sjekk at <b>Tillatt tildang for:</b> er satt til enten <ul><li>Alle brukere: <b> da trenger du ikke å gjøre noe mer</b></li><li>Bare disse brukere <b> og at din bruker er i listen</b></li></ul><li>Eventuelt, legg til din bruker i listen over godkjente brukere via <b>Pluss knappen</b></li></ul><b>Advarsel: å skru på SSh tilgang vil gjøre det mulig for alle brukere på nettverket å koble seg på. Det er ditt ansvar å sørge for at du har et sterkt passord for hver bruker som kan logge seg inn via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Spør din systemadministrator om SSH tjenesten kan installeres på din datamaskin. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. Ved å skru av utskrift til ekstern, eller fildeling i denne sesjonen, så vil du bli kvitt denne meldingen. SSH daemon failed to open its public host key. SSH demonen klarte ikke å åpne den offentlige vertsnøkkel. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Du har skrudd på enten ekstern utskrift eller fildeling. Dette er ting som krever en startet og fungerende SSH server på din datamaskin- <b>Utskrift og fildeling vil bli skrudd av i denne sesjonen.</b> SSH serveren er ikke korrekt konfigurert. Vennligst sjekk at serverens vertsnøkler eksisterer. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Dette skal normalt ikke hende siden X2Go klienten for Windows kommer med sin egne innebygde SSH server som automatisk lager de nødvendige nøklene. Hvis du ser denne meldingen, vennligst rapporter dette på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go klienten klarte ikke å lage SSH vertsnøkler. Vennligst rapporter denne feilen på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p På Mac OS X vennligst følg denne beskrivelsen for å lage de nødvendige nøklene:<ul><li>Åpne et <b>Terminal Window</b> (Program -> Verktøy -> Terminal)</li><li>Kjør denne kommandoen: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> Vennligst be din systemadministrator om å lage de nødvendige vertsnøklene. Hvis det er du som er administratoren, vennligst kjør: <center><b>sudo ssh-keygen -A</b></center> SSH daemon failed to open the application's authorized_keys file. SSH demonen klarte ikke å åpne applikasjonens authorized_keys fil. PrintDialog Print - X2Go Client Utskrift - X2Go klient Print Skriv ut You've deactivated the x2go client printing dialog. Du har deaktivert X2Go klientens utskriftsdialog. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Du kan reaktivere denne dialogen ved å benytte x2goclient innstillingene (Meny -> Innstillinger -> Innstillinger) You've deactivated the X2Go Client printing dialog. Du har deaktivert X2Go klientens utskriftsdialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) Du kan reaktivere denne dialogen ved å benytte x2goclient innstillingene (Innstillinger -> Innstillinger) PrintProcess Save File Lagre fil PDF Document (*.pdf) PDF Dokuemtn (*.pdf) Failed to execute command: Klarte ikke å utføre kommandoen: Printing error Utskriftsfeil Printing error. Utskriftsfeil. PrintWidget Form Skjema Print Utskrift View as PDF Vis som PDF Print settings Utskriftsinnstillinger Printer: Skriver: Print using default Windows PDF Viewer (Viewer application needs to be installed) Skriv ut via standard Windows PDF leser (lese programmet må være installert) Printer command: Utskriftskommando: ... ... Viewer settings Instillinger for PDF leser Open in viewer application Åpne i leseprogrammet Command: Kommando: Save to disk Lagre til disk Show this dialog before start printing Vis denne dialogen før start av utskrift 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>. Vennligst sett opp innstillingene for utskrift på klientsiden.<br><br>Om du ønsker å skrive ut den opprettede filen så trengs en ekstern applikasjon. Typisk kan du benytte<a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> og <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Du kan finne ytterlig informasjon <a href="http://www.x2go.org/index.php?id=49">her</a>. 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>. Vennligst sett opp innstillingene for utskrift på klientsiden.<br><br>Om du ønsker å skrive ut den opprettede filen så trengs en ekstern applikasjon. Typisk kan du benytte<a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> og <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Du kan finne ytterlig informasjon <a href="http://www.x2go.org/index.php?id=49">her</a>. PrinterCmdDialog Printer command Utskriftskommando Command Kommando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Vennligst skriv inn din egen, eller individuelle utskriftskommando. Eksempler: kprinter lpr -P hp_laserjet Output format Utformat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Vennligst velg filformat for utskrift (relatert til ditt uskriftsoppsett - om du benytter CUPS kan du bruke PDF) PDF PDF PS PS Data structure Datastruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Vennligst velg metoden for inndatafil for utskrift (noen kommandoer aksepterer utskriftsfiler som programparametere, noen forventer data på standard inn): standard input (STDIN) Standard inn (STDIN) Specify path as program parameter Spesifiser stien som programparameter Please enter your customized or individual printing command. Example: Vennligst skriv inn din egen, eller individuelle utskriftskommando. Eksempel: <Path to gsprint.exe> -query -color <Sti til gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Ingen respons mottatt fra serveren. Ønsker du å avslutte gjeldende sesjon? X2Go Client could not find any suitable X11 server. X2Go klienten kunne ikke finne noen passende X11-server. X2Go Client could not start X11 server. X2Go klienten klarte ikke å starte X11-serveren. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: X2Go klienten krever at XQuartz er installert. Hvis XQuartz allerede er installert, vennligst oppgi korrekt plassering i dialogboksen som nå dukker opp. På slutten av denne meldingen kan du se noen eksempler på aktuelle steder hvor XQuartz kan være installert. Hvis du derimot<b>ikke</b> har XQuartz installert ennå, vennligst følg denne beskrivelsen: : MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> MacPorts brukere, vennligst installer enten port <b>xorg-server</b> eller port <b>xorg-server-devel</b>. Etter installasjon, vennligst følg beskrivelsen som kommer fra port-verktøyet for å autostarte/starte serveren. Alle andre brukere henter XQuartz fra: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Etterpå, restart X2Go klienten og velg korrekt plassering for X11-programmet i X2Go sin generelle innstillinger. Denne er trolig <center><b>/Applications/MacPorts/X11.app</b></center> eller <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Sesjonsinnstillinger... Create session icon on desktop... Opprett sesjonsikon på skrivebordet... Delete session Slett sesjon Session actions Sesjonshandlinger Select type Velg type Select resolution Velg oppløsning Toggle sound support Slå av/på lydstøtte New Session Ny sesjon running aktiv suspended frakoblet KDE KDE RDP connection RDP tilkobling XDMCP XDMCP Connection to local desktop Tilkobling til lokalt skrivebord Published applications Publiserte applikasjoner fullscreen fullskjerm Display Skjerm window vindu Maximum Maksimalt Enabled Aktivert Disabled Deaktivert Session preferences ... Sesjonsinnstillinger ... Create session icon on desktop ... Opprett sesjonsikon på skrivebordet ... SessionExplorer Back Tilbake Create session icon on desktop Opprett sesjonsikon på skrivebordet Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivebordsikoner kan konfigureres til å ikke vise x2goklient (skjult modus). Om du ønsker å benytte denne muligheten må du konfigurere pålogging ved bruk av en GPG-nøkkel, eller et GPG basert smartkort. Ønsker du å aktivere skjult modus for x2goklient? Show session tray icon when running Hvis sesjonsikon i systemkurven når sesjonen kjører New Session Ny sesjon X2Go Link to session X2Go kobling til sesjon Are you sure you want to delete this session? Er du sikker på at du ønsker å fjerne denne sesjonen? Create session icon on desktop. Opprett sesjonsikon på skrivebordet. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Skrivebordsikoner kan konfigureres til å ikke vise x2goklient (skjult modus). Om du ønsker å benytte denne muligheten må du konfigurere pålogging ved bruk av en GPG-nøkkel, eller et GPG basert smartkort. Ønsker du å aktivere skjult modus for x2goklient? SessionManageDialog E&xit &Avslutt &New session &Ny sesjon &Session preferences &Sesjonsinnstillinger &Delete session S&lett sesjon &Create session icon on desktop... &Opprett sesjonsikon på skrivebordet... Delete Delete Slett Session management Sesjonshåndtering &Create session icon on desktop ... &Opprett sesjonsikon på skrivebordet ... SessionWidget Session name: Sesjonsnavn: << change icon << endre ikon &Server &Server Host: Vert: Login: Brukernavn: SSH port: SSH port: Use RSA/DSA key for ssh connection: Bruk RSA/DSA nøkkel for SSH tilkobling: Try auto login (ssh-agent or default ssh key) Forsøk automatisk pålogging (SSH agent, eller standard SSH nøkkel) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) autentisering Delegation of GSSAPI credentials to the server Delegering av GSSAPI fullmakt til server Use Proxy server for SSH connection Bruk proxyserver for SSH tilkobling Proxy server Proxyserver SSH SSH HTTP HTTP Same login as on X2Go Server Samme innlogging som på X2Go Server Same password as on X2Go Server Samme passord som på X2Go Server RSA/DSA key: RSA/DSA nøkkel: ssh-agent or default ssh key SSH-agent, eller standard SSH nøkkel Type: Type: Port: Port: &Session type &Sesjontype Session type: Sesjontype: Connect to Windows terminal server Koble til Windows terminal server XDMCP XDMCP Connect to local desktop Koble til lokalt skrivebord Custom desktop Selvvalgt skrivebord Single application Enkel applikasjon Published applications Publiserte applikasjoner Command: Kommando: Advanced options... Avanserte alternativer... Path to executable Sti til programfil Direct RDP Connection Direktekobling med RDP RDP port: RDP port: Open picture Åpne bilde Pictures Bilder Open key file Åpne nøkkelfil All files Alle filer Error Feil x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient kjører i portabel modus. Du burde bruke en sti på din USB enhet for å kunne benytte dataene dine uavhengig av hvor du er Server: Server: XDMCP server: XDMCP server: rdesktop command line options: rdesktop kommandolinjevalg: New session Ny sesjon Path: Sti: Try auto login (via SSH Agent or default SSH key) Forsøk automatisk pålogging (SSH agent, eller standard SSH nøkkel) SSH Agent or default SSH key SSH-agent, eller standard SSH nøkkel Connect to Windows Terminal Server Koble til Windows terminal server Direct RDP connection Direktekobling med RDP X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. x2goclient kjører i portabel modus. Du burde bruke en sti på din USB enhet for å kunne benytte dataene dine uavhengig av hvor du er. SettingsWidget &Display &Skjerm &Keyboard &Tastatur Sound Lyd Auto detect keyboard settings Oppdag automatisk tastaturopplegget Do not configure keyboard Ikke konfigurer tastaturet Configure keyboard Konfigurer tastaturet Model: Model: Layout: Utseende: Variant: Variant: RDP Client RDP klient Fullscreen Fullskjerm Custom Tilpasset Window Vindu Use whole display Bruk hele skjermen Maximum available Maksimalt tilgjengelig Set display DPI Sett skjermens DPI Xinerama extension (support for two or more physical displays) Xinerama utvidelse (støtte for to, eller flere fysiske skjermer) Width: Bredde: Height: Høyde: &Display: &Skjerm: &Identify all displays &Identifiser alle skjermer Keep current keyboard Settings Behold gjeldende tastaturoppsett Keyboard layout: Tastatur utseende: Keyboard model: Tastatur modell: Enable sound support Aktiver lydstøtte Start sound daemon Start lydtjeneren Use running sound daemon Benytt kjørende lydtjener Use SSH port forwarding to tunnel sound system connections through firewalls Benytt SSH port videresendring for å tunnelere lydsystem forbindelser gjennom brannmurer Use default sound port Benytt standard lyd port Sound port: Lyd port: Client side printing support Klientside utskrifts støtte Additional parameters: Ekstra parametere: Command line: Kommandolinje: us no pc105/us pc105/no password passord &Clipboard Mode &Clipboard Modus Bidirectional copy and paste Toveis klipp og lim Copy and paste from client to server Klipp og lim fra klient til server Copy and paste from server to client Klipp og lim fra server til klient Disable clipboard completely Skru av utklippstavla &Clipboard mode &Clipboard Modus Auto-detect keyboard settings Oppdag automatisk tastaturopplegget RDP client RDP klient ShareWidget &Folders &Mapper Path Sti Automount Automonter Add Legg til Delete Slett Path: Sti: Filename encoding Tegnkoding av filnavn local: lokal: remote: fjerntliggende: Use ssh port forwarding to tunnel file system connections through firewalls Benytt SSH port videresendring for å tunnelere lydsystem forbindelser gjennom brannmurer Select folder Velg mappe Error Feil x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient kjører i portabel modus. Du burde bruke en sti på din USB enhet for å kunne benytte dataene dine uavhengig av hvor du er WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Use SSH port forwarding to tunnel file system connections through firewalls Benytt SSH port videresendring for å tunnelere lydsystem forbindelser gjennom brannmurer X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. x2goclient kjører i portabel modus. Du burde bruke en sti på din USB enhet for å kunne benytte dataene dine uavhengig av hvor du er. SshMasterConnection SSH proxy connection error SSH proxy tilkoblingsfeil SSH proxy connection error: SSH proxy tilkoblingsfeil: Failed to create SSH proxy tunnel Klarte ikke å opprette SSH proxy tunnel Can not initialize libssh Klarer ikke å initiere libssh Can not create ssh session Klarer ikke å opprette ssh sesjon Can not connect to proxy server Klarte ikke å koble til proxyserver Can not connect to Klarer ikke å koble til Authentication failed Autentisering feilet channel_forward_listen failed channel_forward_listen feilet Failed to start SSH Client. Please check your installation and GSSApi configuration Klarte ikke å starte SSH-klient. Sjekk ditt oppsett og din GSSApi innstillinger Check your GSSApi configuration or choose another authentication method Sjekk ditt GSSApi oppsett, eller velg en annen autentiserings metode Can not open file Kan ikke åpne filen Can not create remote file Klarer ikke å opprette fil over nettverket Can not write to remote file Klarer ikke å skrive til filen over nettverket Cannot connect to Klarer ikke å koble til channel_open_forward failed channel_open_forward feilet channel_open_session failed channel_open_session feilet channel_request_exec failed channel_request_exec feilet error writing to socket feil ved skriving til sokkelen error reading channel feil under lesing av kanalen channel_write failed channel_write feilet error reading tcp socket feil ved lesing av tcp sokkelen SSH proxy connection error. SSH proxy tilkoblingsfeil. Failed to create SSH proxy tunnel. Klarte ikke å opprette SSH proxy tunnel. Cannot initialize libssh. Klarer ikke å initiere libssh. Cannot create SSH session. Klarer ikke å opprette ssh sesjon. Cannot connect to proxy server. Klarte ikke å koble til proxyserver. Authentication failed. Autentisering feilet. Failed to start SSH client. Please check your installation and GSSApi configuration. Klarte ikke å starte SSH-klient. Sjekk ditt oppsett og dine GSSApi innstillinger. Check your GSSApi configuration or choose another authentication method. Sjekk ditt GSSApi oppsett, eller velg en annen autentiserings metode. Cannot open file Kan ikke åpne filen Cannot create remote file Klarer ikke å opprette fil over nettverket Cannot write to remote file Klarer ikke å skrive til filen over nettverket channel_open_forward failed. channel_open_forward feilet. channel_open_session failed. channel_open_session feilet. Error writing to socket. feil ved skriving til sokkelen. Error reading channel. feil under lesing av kanalen. channel_write failed. channel_write feilet. Error reading from TCP socket. Feil ved lesing av tcp sokkelen. SshProcess Error creating socket feil under opprettelse av sokkelen Error binding Feil ved binding Error creating socket. Feil under opprettelse av sokkelen. XSettingsWidget Open File Åpne fil Executable (*.exe) Programfil (*.exe) XSettingsWidgetUI Form Skjema You must restart the X2Go Client for the changes to take effect Du må restarte X2Go klienten for at endringene skal tre i kraft use integrated X-Server Benytt integrert X-Server do not use primary clipboard ikke benytt primær utklippstavle use custom X-Server Benytt egentilpasset X-Server custom X-Server egentilpasset X-Server executable: programfil: start X-Server on X2Go Client start start X-Serveren når X2Go klienten startes command line options: kommandolinjevalg: X-Server command line options X-Server kommandolinjevalg window mode: Vindus-modus: fullscreen mode: fullskjerm-modus: single application: enkeltapplikasjon: whole display: hele skjermen: x2goclient-4.0.5.1/res/i18n/x2goclient_nl.ts0000644000000000000000000057167712675050177015353 0ustar AppDialog Published Applications Gepubliceerde applicaties Search: Zoeken: &Start &Start &Close &Sluiten Multimedia Multimedia Development Ontwikkeling Education Educatie Game Games Graphics Grafisch Network Netwerk Office Kantoor Settings Instellingen System Systeem Utility Gereedschap Other Overig BrokerPassDialogUi Dialog Dialoog Old password: Oud wachtwoord: New password: Nieuw wachtwoord: Confirm password: Wachtwoord bevestigen: TextLabel Tekstlabel BrokerPassDlg Passwords do not match Wachtwoorden komen niet overeen CUPSPrintWidget Form Formulier Name: Naam: Properties Eigenschappen State: Status: Accepting jobs: Opdrachten accepteren: Type: Type: Location: Locatie: Comment: Opmerking: Idle Idle Printing Printen Stopped Geannuleerd Yes Ja No Nee CUPSPrinterSettingsDialog No option selected Geen optie geselecteerd This value is in conflict with another option. Deze waarde geeft een conflict met een andere optie. Options conflict. Opties zijn tegenstrijdig. This value is in conflict with other option Deze waarde geeft een conflict met een andere optie Options conflict Opties zijn tegenstrijdig ConTest Connectivity test Testen van verbinding HTTPS connection: HTTPS connectie: SSH connection: SSH connectie: Connection speed: Verbindingssnelheid: Failed Mislukt 0 Kb/s 0 Kb/s OK OK Socket operation timed out. Time out opgetreden bij verbinden socket. Socket operation timed out Time out opgetreden bij verbinden socket Failed: Mislukt: ConfigDialog General Algemeen Display icon in system tray Icoon in taakbalk weergeven Hide to system tray when minimized In taakbalk weergeven indien geminimaliseerd Hide to system tray when closed In taakbalk weergeven indien gesloten Hide to system tray after connection is established In taakbalk weergeven nadat verbinding tot stand gekomen is Restore from system tray after session is disconnected Vanaf taakbalk herstellen nadat sessie is verbroken Use LDAP Gebruik LDAP Server URL: Server URL: BaseDN: BasisDN: Failover server 1 URL: Failover server 1 URL: Failover server 2 URL: Failover server 2 URL: X.Org Server settings X.Org Server instellingen Clientside (local) SSH daemon port for file system export usage: Client SSH poort voor exporteren besstandssysteem: Pulseaudio settings Pulsaudio instellingen Disable audio input Audio input uitschakelen <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> <font size="5">U moet de X2Go client herstarten om de wijzigingen door te voeren</font><br><br> Your XQuartz version is too old. Uw XQuartz versie is te oud. Your are using XQuartz (X Window System Server for OS X) version U gebruikt de XQuartz (X-Window Server voor OS X) versie . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> . Deze versie veroorzaakt problemen met X applicaties in 24bit kleuren modus. U moet uw X11 omgeving updaten. MacPorts gebruikers kunnen de stappen doorlopen die beschreven zijn op: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Gebruikers die XQuartz geinstalleerd hebben via een installatie bestand kunnen de nieuwste versie downloaden via: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. Geen geschikte XQuartz applicatie geselecteerd. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> U heeft geen geldige XQuartz applicatie geselecteerd. Probeer het aub opnieuw. Locaties voor installatie kunnen de volgende zijn: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings X-server instellingen X11 application: X11 applicatie: X11 version: X11 versie: Find X11 application X11 applicatie zoeken Clientside SSH port for file system export usage: Client SSH poort voor exporteren besstandssysteem: Start session embedded inside website Sessie starten ingesloten binnen website Advanced options Uitgebreide opties Defaults Standaard &OK &OK &Cancel &Annuleren Settings Instellingen Printing Printen Warning Waarschuwing x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kan geen geschikte X11 applicatie vinden. Installeer aub Apple X11 of selecteer het pad naar de applicatie Your are using X11 (Apple X-Window Server) version U gebruikt de X11 (Apple X-Window Server) versie . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Deze versie veroorzaakt problemen met X-applicaties in 24bit kleurenmodus. U moet uw X11 omgeving updaten (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Geen geschikte X11 applicatie gevonden in geselecteerde pad &Connection &Verbinding &Input/Output &Input/Output &Media &Media &Settings &Instellingen ConnectionWidget &Connection speed &Verbindingssnelheid Connection speed: Verbindingssnelheid: C&ompression C&ompressie Method: Methode: Compression method: Compressiemethode: Image quality: Afbeeldingskwaliteit: CupsPrinterSettingsDialog Dialog Dialoog General Algemeen Page size: Pagina afmeting: Paper type: Papier soort: Paper source: Papier bron: Duplex Printing Duplex printen None Geen Long side Lange zijde Short side Korte zijde Driver settings Driver instellingen Option Optie Value Waarde No option selected Geen optie geselecteerd text tekst EditConnectionDialog &Session &Sessie &Connection &Verbinding &Input/Output &Input/Output &Media &Multimedia &Shared folders &Gedeelde mappen &OK &OK &Cancel &Annuleren Defaults Standaarden Session preferences - Sessie voorkeuren - ExportDialog &Cancel &Annuleren &share &delen &Preferences ... &Voorkeuren... &Custom folder ... &Aangepaste map... Delete Delete Delete Share Folders Gedeelde mappen share folders gedeelde mappen Select folder Selecteer map FolderButton Sessions folder Sessies map FolderExplorer Folders Mappen Create New Folder Nieuwe map aanmaken Rename Folder... Map hernoemen... Change Icon... Icoon wijzigen... Delete Folder... Map verwijderen... Rename Folder ... Map hernoemen... Change Icon ... Icoon aanpassen... Delete Folder ... Map verwijderen... Open picture Afbeelding openen Pictures Afbeeldingen X2Go Client X2Go client Folder Name: Map naam: Error Fout Unable to remove " Verwijderen niet mogelijk " ". Folder is not empty. Please remove the contents of this directory and try again. ". Map is niet leeg. Verwijder de inhoud van deze directorie en probeer het opnieuw. ". Folder is not empty. Please remove content of folder and try again. ". Deze map is niet leeg. Aub eerst de inhoud van deze map verwijderen en daarna opnieuw proberen. Delete folder " Map verwijderen " New Folder Nieuwe map HelpDialog Options Opties HttpBrokerClient Host key for server changed. It is now: Host sleutel van server aangepast. Het is nu: For security reasons, connection will be stopped Vanwege veiligheidsredenen zal deze verbinding verbroken worden The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist De host sleutel voor deze server is niet gevonden maar een ander type sleutel is aanwezig. Een aanvaller heeft mogelijk de standaard serversleutel aangepast en wil uw client misleiden door deze te laten geloven dat de sleutel niet bestaat Could not find known host file.If you accept the host key here, the file will be automatically created Kon het known host bestand niet vinden. Als u deze sleutel accepteert zal het bestand automatisch aangemaakt worden The server is unknown. Do you trust the host key? Public key hash: Deze server is onbekend. Wilt u deze host sleutel vertrouwen? Publieke sleutel hash: Host key verification failed Verificatie van host sleutel mislukt Yes Ja No Nee Verification code: Verificatiecode: Enter passphrase to decrypt a key Ingeven wachtwoordzin om een sleutel te decoderen Authentication failed Authenticatie mislukt Error Fout Login failed!<br>Please try again Inloggen mislukt!<br>Opnieuw proberen aub <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Server gebruikt een ongeldig veiligheidscertificaat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>U moet geen uitzondering toevoegen wanneer u een internetverbinding gebruikt die u niet geheel kunt vertrouwen, of wanneer u niet gewend bent om een waarschuwing te krijgen vanaf deze server.</p> Secure connection failed Veilige verbinding mislukt For security reasons, the connection attempt will be aborted. Vanwege veiligheidsredenen zal deze verbinding verbroken worden. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. De host sleutel voor deze server is niet gevonden maar een ander type sleutel is aanwezig. Een aanvaller heeft mogelijk de standaard serversleutel aangepast en wil uw client misleiden door deze te laten geloven dat de sleutel niet bestaat. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Kon het known host bestand niet vinden. Als u deze sleutel accepteert zal het bestand automatisch aangemaakt worden. Host key verification failed. Verificatie van host sleutel mislukt. Authentication failed. Authenticatie mislukt. Login failed!<br>Please try again. Inloggen mislukt!<br>Opnieuw proberen aub. Secure connection failed. Veilige verbinding mislukt. Issued to: Uitgegeven aan: Common Name(CN) Common Name(CN) Organization(O) Organisatie(O) Organizational Unit(OU) Organisatie eenheid(OU) Serial Number Serienummer Issued by: Uitgegeven door: Validity: Geldigheid: Issued on Uitgegeven op expires on Verloopt op Fingerprints: Vingerafdruk: SHA1 SHA1 MD5 MD5 Exit X2Go Client Afsluiten X2Go Client Add exception Uitzondering toevoegen MediaWidget Sound Geluid Enable sound support Geluidsondersteuning inschakelen Start sound daemon Start geluids daemon Use running sound daemon Gebruik actieve geluids daemon Use SSH port forwarding to tunnel sound system connections through firewalls Gebruik SSH poort forwarding voor het tunnelen van geluidssysteemverbindingen door firewalls Use default sound port Gebruik standaard geluidspoort Sound port: Geluidspoort: Client side printing support Printer ondersteuning aan de zijde van client ONMainWindow Starting x2goclient... X2goclient wordt gestart... us us X2Go Client X2Go Client connecting verbinden Internet browser Internetbrowser Email client Email client OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: x2goclient wordt gestart in portable modus... data directory is: &Settings ... &Instellingen ... Support ... Ondersteuning... About X2GO client Over X2Go client Started x2goclient. Gestart x2goclient. Can't load translator: Kan vertaler niet laden: Translator: Vertaler: installed. geïnstalleerd. Share folder... Gedeelde map... Applications... Applicaties... Suspend Onderbreken Terminate Beëindigen Reconnect Opnieuw verbinden Detach X2Go window X2Go scherm losmaken Minimize toolbar Taakbalk minimaliseren Session: Sessie: &Quit &Afsluiten Ctrl+Q Ctrl+Q Quit Afsluiten &New session ... &Nieuwe sessie ... Ctrl+N Ctrl+N Session management... Sessiebeheer... Ctrl+E Ctrl+E &Create session icon on desktop... &Sessie icoon aanmaken op bureaublad ... &Set broker password... &Wachtwoord voor broker invoeren ... &Connectivity test... &Verbindingstest ... Show toolbar Taakbalk tonen About Qt Over Qt Ctrl+Q exit afsluiten Ctrl+Q Starting X2Go Client... X2Go Client wordt gestart... Starting X2Go Client in portable mode. Data directory is: X2Go Client wordt gestart in portable modus... data directory is: About X2Go Client Over X2Go client Started X2Go Client. X2Go client gestart. found. gevonden. English language requested, not loading translator. Engelse taal gekozen, vertaling niet geladen. Non-fatal: can't load translator: Niet fatale fout: kan vertaling niet laden: Trying to load language with lower preference, if existent. Geprobeerd een taal te laden die een lagere prioriteit heeft, indien beschikbaar. Session management ... Sessiebeheer... &Create session icon on desktop ... &Sessie icoon aanmaken op bureaublad ... &Set broker password ... &Wachtwoord voor broker invoeren ... &Connectivity test ... &Verbindingstest ... &Session &Sessie &Options &Opties &Help &Help Login: Inloggen: Error Fout Operation failed Bewerking mislukt Password changed Wachtwoord veranderd Wrong password! Verkeerd wachtwoord! Connecting to broker Verbinden met broker <b>Authentication</b> <b>Authenticatie</b> Restore Herstellen Not connected Niet verbonden Multimedia Multimedia Development Ontwikkeling Education Educatie Game Games Graphics Grafisch Network Netwerk Office Kantoor Settings Instellingen System Systeem Utility Gereedschap Other Overige Share folder ... Gedeelde map... A left click hides or restores the window. A right click displays the context menu. Linker muisknop voor verbergen/herstellen venster. Rechter muisknop om menu te tonen. Closing X2Go Client ... X2Go client sluiten... Finished X2Go Client closing hooks. X2Go client afgesloten. Broker authentication failed! Authenticatie met broker mislukt! no X2Go Server found in LDAP Geen X2Go server gevonden in LDAP Connection error: Verbindingsfout: Couldn't find an SSH connection. Kon geen SSH verbinding vinden. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Dit kan een indicatie zijn voor een " man in the middle" aanval. Iemand is u mogelijk aan het afluisteren. Vanwege veiligheidsoverwegingen is het aanbevolen de verbinding te verbreken. Wilt u de verbinding verbreken? Host key verification failed. Verificatie van host sleutel mislukt. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? De host sleutel voor deze server is niet gevonden maar een ander type sleutel is aanwezig. Een aanvaller heeft mogelijk de standaard server sleutel aangepast en wil uw client misleiden door deze te laten geloven dat de sleutel niet bestaat. Vanwege veiligheidsoverwegingen is het aanbevolen om de verbinding te stoppen. Wilt u de verbinding afbreken? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Kon het known host bestand niet vinden. Als u de host sleutel accepteert zal dit bestand automatisch aangemaakt worden. Authentication failed. Authenticatie mislukt. <b>Connection failed.</b> <b>Verbinding mislukt.</b> No server available. Geen server beschikbaar. Server not available. Geen server beschikbaar. No accessible desktop found. Geen beschikbaar bureaubladomgeving gevonden. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to Uw huidige kleurdiepte verschilt van de kleurdiepte van uw X2Go sessie. Dit kan problemen veroorzaken bij het opnieuw verbinden met deze sessie. In de meeste gevallen <b>zult u deze sessie dan ook verliezen</b> en moet u een nieuwe starten! Het is ten zeerste aanbevolen om de kleurdiepte van uw scherm aan te passen naar bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? bits en uw X.Org Server te herstarten voordat u opnieuw verbinding maakt met deze X2Go sessie.<br />Deze sessie toch hervatten? Unable to create SSH tunnel for X2Go session (NX) startup: SSH tunnel voor deze X2Go sessie niet mogelijk (NX) startup: Unable to create SSH tunnel for audio data: Opzetten SSL tunnel niet mogelijk voor audio-data: failed to start. Starten mislukt. This likely means the binary is not available. The current search path is: Dit komt waarschijnlijk omdat de binary niet beschikbaar is. Het huidige pad is: returned a non-zero exit code or crashed otherwise. niet geldige exit code gegenereerd. Execution failed, exit code was: Uitvoeren mislukt, exit code was: didn't start up in time. niet op tijd gestart. This error shouldn't come up. Deze foutmelding zou niet mogen optreden. didn't accept a write operation. geen schrijf actie verwacht. It is probably not running correctly or crashed in-between. Draait waarschijnlijk niet correct of is inmiddels gecrashed. Unable to read from xmodmap. Lezen van xmodmap niet mogelijk. encountered an unknown error during start up or execution. er is een onbekende fout opgetreden tijdens opstarten of uitvoeren. experienced an undefined error. een onbekende fout is opgetreden. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. X2Go Client zal worden beëindigd. U kunt deze fout melden zoals beschreven op deze <a href="http://wiki.x2go.org/doku.php/wiki:bugs">wiki pagina</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Proxy niet afgesloten na 3 seconden. Stoppen van proxy. Closing X2Go Client because it was started in hidden mode. X2Go client zal worden afgesloten omdat het in de verborgen modus is gestart. Closing X2Go Client because the --close-disconnect parameter was passed. X2Go client zal worden afgesloten vanwege disconnect parameter. Are you sure you want to terminate this session? Unsaved documents will be lost. Weet u zeker dat u deze sessie wilt beëindigen? Niet opgeslagen documenten zullen verloren gaan. <b>Connection failed.</b> : <b>Verbinding mislukt.</b> : (file does not exist) (bestand bestaat niet) (directory does not exist) (directory bestaat niet) Invalid value for parameter "--link". Ongeldige waarde voor parameter "--link". Invalid value for parameter "--clipboard". Ongeldige waarde voor parameter "--klembord". Invalid value for parameter "--sound". Ongeldige waarde voor parameter "--geluid". Invalid value for parameter "--geometry". Ongeldige waarde voor parameter "--geometry". Invalid value for parameter "--set-kbd". Ongeldige waarde voor parameter "--set-kbd". Invalid value for parameter "--ldap". verkeerde waarde voor parameter "--ldap". Invalid value for parameter "--ldap1". Ongeldige waarde voor parameter "--ldap1". Invalid value for parameter "--ldap2". Ongeldige waarde voor parameter "--ldap2". Invalid value for parameter "--pack". Ongeldige waarde voor parameter "--pack". Available pack methods: Beschikbare pack methodes: Pack Methods Pack methodes Option is not available in this build. Optie is niet beschikbaar in dit pakket. SSH daemon failed to open the application's authorized_keys file. SSH daemon kon het geautoriseerde sleutelbestand van deze applicatie niet openen. Left mouse button to hide/restore - Right mouse button to display context menu Linker muisknop voor verbergen/herstellen - Rechter muisknop om menu te tonen Closing x2goclient... X2goclient sluiten... Closed x2goclient. x2g0client afgesloten. Please check LDAP settings Controleer aub LDAP instellingen no X2Go server found in LDAP geen X2Go server gevonden in LDAP Create session icon on desktop Sessie icoon op bureaublad aanmaken Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Bureaublad iconen kunnen worden ingesteld zodat de x2goclient niet getoond zal worden (verborgen modus) Als u van deze mogelijkheid gebruik wilt maken moet u wel inloggen met een gpg sleutel of een gpg smartcard configureren. X2goclient in verborgen modus gebruiken? Show session tray icon when running Sessie icoon in taakbalk tonen tijdens gebruik New Session Nieuwe sessie X2Go Link to session X2Go link naar sessie No X2Go sessions found, closing. Geen X2Go sessies gevonden, afsluiten. Are you sure you want to delete this session? Weet u zeker dat u deze sessie wilt verwijderen? KDE KDE RDP connection RDP connectie XDMCP XDMCP Connection to local desktop Connectie naar lokale desktop on aan Starting connection to server: Verbinden met server gestart: to naar Connection Error( Verbindingsfout( Couldn't find a SSH connection. Kon geen SSH verbinding vinden. Verification code: Verificatie code: Enter passphrase to decrypt a key Wachtwoordzin ingeven om sleutel te decoderen Host key for server changed. It is now: Host sleutel voor de server is gewijzigd. Het is nu: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Dit kan een indicatie zijn voor een " man in the middle" aanval. Iemand is u mogelijk aan het afluisteren. Vanwege veiligheidsoverwegingen is het aanbevolen de verbinding te verbreken. Wilt u de verbinding verbreken? Host key verification failed Verificatie van host sleutel mislukt Yes Ja No Nee If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Als u de nieuwe host sleutel accepteert kan dit de beveiliging van uw verbinding schaden. Wilt u de nieuwe host sleutel updaten? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? De host sleutel voor deze server is niet gevonden maar een ander type sleutel is aanwezig. Een aanvaller heeft mogelijk de standaard server sleutel aangepast en wil uw client misleiden door deze te laten geloven dat de sleutel niet bestaat. Vanwege veiligheidsoverwegingen is het aanbevolen om de verbinding te stoppen. Wilt u de verbinding verbreken? Could not find known host file.If you accept the host key here, the file will be automatically created Kon het known host bestand niet vinden. Als u de host sleutel accepteert zal dit bestand automatisch aangemaakt worden The server is unknown. Do you trust the host key? Public key hash: Deze server is onbekend. Vertrouwt u de host sleutel? Publieke sleutel hash: Authentication failed: Authenticatie mislukt: Authentication failed Authenticatie mislukt Enter password for SSH proxy Wachtwoord ingeven voor SSH proxy <b>Connection failed</b> <b>Verbinding mislukt</b> <b>Wrong password!</b><br><br> <b>Verkeerd wachtwoord!</b><br><br> Connection failed: Verbinding mislukt: - Wrong password. - Verkeerd wachtwoord. unknown onbekend No server availabel Geen server beschikbaar Server not availabel Server niet beschikbaar Select session: Selecteer sessie: running actief suspended onderbroken Desktop Bureaublad single application enkele applicatie shadow session schaduw sessie Information Informatie No accessible desktop found Geen toegankelijk bureaublad gevonden Filter Filter Select desktop: Selecteer bureaubladomgeving: Warning Waarschuwing Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Uw huidige kleurdiepte verschilt van de kleurdiepte van uw x2go sessie. Dit kan problemen veroorzaken bij het opnieuw verbinden met deze sessie. In de meeste gevallen <b>zult u deze sessie dan ook verliezen</b> en moet u een nieuwe starten! Het is ten zeerste aanbevolen om de kleurdiepte van uw scherm aan te passen naar 24 or 32 24 of 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit en uw X-server te herstarten voordat u opnieuw verbinding maakt met deze x2go sessie.<br>Deze sessie toch hervatten? suspending onderbreken terminating afsluiten <b>Wrong Password!</b><br><br> <b>Verkeerd wachtwoord!</b><br><br> New session started Nieuwe sessie gestart Session resumed Sessie hervat Unable to create folder: Aanmaken map niet mogelijk: Unable to write file: Aanmaken bestand niet mogelijk: Attach X2Go window X2Go scherm vastmaken Unable to create SSL tunnel: Opzetten SSL tunnel niet mogelijk: Unable to create SSL Tunnel: Opzetten SSL tunnel niet mogelijk: Emergency exit. ? Afsluiten bij noodgeval. Waiting for proxy to exit. Wachten op afsluiten van proxy. Failed, killing the proxy. Mislukt, proxy wordt afgebroken. Finished Klaar starting starten resuming hervatten Connection timeout, aborting Timeout bij verbinding, afbreken aborting afbreken Are you sure you want to terminate this session? Unsaved documents will be lost Weet u zeker dat u deze sessie wilt beëindigen? Niet opgeslagen documenten zullen verloren gaan Session Sessie Display Beeldscherm Creation time Aanmaaktijd <b>Connection failed</b> : <b>Verbinden mislukt</b> : (can't open file) (kan bestand niet openen) (file not exists) .(bestand bestaat niet) (directory not exists) . (directory bestaat niet) wrong value for argument"--link" verkeerde waarde voor argument"--link" wrong value for argument"--clipboard" verkeerde waarde voor argument"--klembord" wrong value for argument"--sound" verkeerde waarde voor argument"--geluid" wrong value for argument"--geometry" verkeerde waarde voor argument"geometrie" wrong value for argument"--set-kbd" verkeerde waarde voor argument"--set-kbd" wrong value for argument"--ldap" verkeerde waarde voor argument"--ldap" wrong value for argument"--ldap1" verkeerde waarde voor argument"--ldap1" wrong value for argument"--ldap2" verkeerde waarde voor argument"--ldap2" wrong value for argument"--pack" verkeerde waarde voor argument"--pack" Wrong parameter: Verkeerde parameter: Help Help Available pack methodes: Beschikbare pack methoden: Pack Methodes ? Pack methoden Option is not availabel in this build Optie is niet beschikbaar in deze uitgave Changelog Logboek met wijzigingen Git Info Git info Unable to create directory: Aanmaken map niet mogelijk: Cannot open key: Kan sleutel niet openen: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. Make sure to look at "the project home page at..." translation again and delete this comment. <br>Client voor gebruik van de X2Go netwerkgebasseerde computeromgeving. Met deze client maakt u verbinding met de X2Go server(s) en kunt u desktop-sessies starten, stoppen, hervatten en (actieve sessies) beeindigen. De X2Go Client slaat verschillende serververbindingen op in, en kan automatisch authenticatie data opvragen van, LDAP directories. Verder kan de client gebruikt worden als fullscreen inlog scherm (vervanging voor inlog managers als KDM, XDM etc.). Bezoek aub <a href="http://www.x2go.org">het project home page op x2go.org</a> voor meer informatie. <b>X2Go Client v. <b>X2Go Client v. Please check LDAP Settings. Controleer aub LDAP instellingen. Check whether the package providing "scdaemon" is installed. The current search path is: Controleer of het pakket dat voorziet in "scdaemon" geïnstalleerd is. Huidige pad verwijzing is: didn't start yet. nog niet gestart. Unable to read from scdaemon. Lezen van scdaemon niet mogelijk. No valid card found. Geen geldige kaart gevonden. This card is unknown to the X2Go system. Deze kaart is onbekend binnen het X2Go systeem. Can't start X.Org Server. Please check your installation. Kan X.Org Server niet starten. Controleer aub uw installatie. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. De remote server ondersteund het exporteren van bestanden door een SSH tunnel niet. Aub uw x2goserver sofwarepakket updaten. Unable to create SSH tunnel for Folder Sharing and Printing support: Opzetten van SSH tunnel voor delen van mappen en printer ondersteuning niet mogelijk: Unable to read: Lezen niet mogelijk: Unable to write: Schrijven niet mogelijk: Error getting window geometry. (Did you close the window?) Fout bij opvragen venster geometrie (venster gesloten?) Invalid value for argument "speed" verkeerde waarde voor argument "snelheid" Applications ... Applicaties... SSH daemon could not be started. SSH daemon kon niet gestart worden. SSH daemon is not running. SSH daemon is niet actief. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. U heeft remote printen en delen van mappen ingeschakeld. Voor deze opties is het noodzakelijk dat er een SSH server actief is op uw systeem. <b>Printen en het delen van mappen zijn uitgeschakeld voor deze sessie.</b> Controleer aub ook de <b>SSH poort aan client zijde</b> in de algemene instellingen. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Dit zou normaal gesproken niet mogen gebeuren omdat de X2Go Client voor Windows voorzien is van een eigen interne SSH server. Als u dit bericht ziet wilt u dan aub deze foutmelding doorgeven op: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. SSH server kon niet gestart worden. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client kon geen actieve SSH server vinden op uw systeem en daarnaast zijn eigen SSH server niet starten. Geef aub deze fout door via de X2Go bugtracker op: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. SSH server is momenteel niet actief. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Bij OS X, volg aub de volgende stappen om de SSH service in te schakelen:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Ga naar <b>Sharing</b></li><li>Zet een vinkje bij <b>Remote Login</b></li><li>Controleer dat <b>Allow access for:</b> is ingesteld op of:<ul><li>All users: <b>geen vervolg stappen noodzakelijk</b></li><li>Only these users <b>en uw gebruikersnaam komt voor in de lijst</b></li></ul><li>Als optie kunt u een gebruikersnaam toevoegen aan de toegestane lijst via de <b>Plus knop</b></li></ul><b>Waarschuwing: het inschakelen van SSH zorgt ervoor dat iedere gebruiker op uw netwerk een verbinding kan maken met uw systeem. Het is uw eigen verantwoordelijkheid om een sterk wachtwoord in te stellen voor iedere gebruiker die mag inloggen via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Vraag uw systeembeheerder voor het inschakelen van de SSH service op uw computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. Het uitschakelen van remote printen of delen van bestanden bij de sessie instellingen zal ervoor zorgen dat deze melding verdwijnt. SSH daemon failed to open its public host key. SSH daemon kon de publieke sleutel van de applicatie niet openen. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. U heeft remote printen en delen van mappen ingeschakeld. Voor deze opties is het noodzakelijk dat er een SSH server actief is op uw systeem. <b>Printen en het delen van mappen zijn uitgeschakeld voor deze sessie.</b> De SSH server is momenteel niet juist geconfigureerd. Zorg ervoor dat de publieke sleutel aanwezig is. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normaal gesproken zou dit niet voor mogen komen omdat de X2Go client voor Windows is voorzien van een eigen interne SSH server die automatisch de vereiste sleutels aanmaakt. Als u dit bericht ziet wilt u deze foutmelding dan aub kenbaar maken op: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client kon geen SSH sleutels aanmaken. Geef aub deze fout door via de X2Go bugtracker op: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Bij OS X, volg aub de volgende stappen om de vereiste sleutels aan te maken:<ul><li>Open een <b>Terminal venster</b> (Applications -> Utilities -> Terminal)</li><li>Geef het volgende commado in: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> Vraag uw systeembeheerder om de vereiste host sleutels te genereren. Als u zelf beheerdersrechten heeft op dit systeem, type dan het volgende commando: <center><b>sudo ssh-keygen -A</b></center> SSH Error SSH fout SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH daemon kon niet gestart worden. U bent de SSH daemon nodig voor printen en delen van bestanden. Normaal gesproken zou dit niet voor moeten komen omdat bij de X2Go client voor Windows een eigen sshd.exe ingesloten is. Als u dit bericht krijgt, geef dan aub deze fout door via de X2Go bugtracker. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH daemon is niet actief. U bent de SSH daemon nodig voor printen en delen van bestanden Vraag aub uw systeembeheerder om uw computer te voorzien van de SSH service. SSH daemon failed to open the application's public host key. SSH daemon kon de publieke sleutel van de applicatie niet openen. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH daemon kon de publieke sleutel van de applicatie die gebruikt wordt voor printen en het delen van mappen niet openen. SSH daemon failed to open the application's authoized_keys file. Openen van de geautoriseerde sleutel van de applicatie door de SSH daemon mislukt. Options Opties Unable to create folder: Aanmaken map niet mogelijk: RSA file empty. RSA bestand leeg. Can not open key: Kan sleutel niet openen: Support Ondersteuning </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Client voor gebruik van de X2GO netwerkgebasseerde computeromgeving. Met deze client maakt u verbinding met de X2GO server(s) en kunt u desktop-sessies starten, stoppen, hervatten en (actieve sessies) beeindigen De X2GO client slaat verschillende serververbindingen op in, en kan automatisch authenticatie data opvragen van, LDAP directories. Verder kan de client gebruikt worden als fullscreen inlog scherm (vervanging voor inlog managers als kdm, xdm etc.). Bezoek aub x2go.org voor meer informatie. <b>X2Go Client V. <b>X2Go Client V. Please check LDAP Settings Controleer aub de LDAP instellingen No valid card found Geen geldige kaart gevonden Card not configured. Kaart is niet geconfigureerd. This card is unknown by X2Go system Deze kaart is onbekend binnen het X2Go systeem Unable to create file: Bestand aanmaken niet mogelijk: Can't connect to X server Please check your settings Verbinden met X server niet mogelijk Controleer aub uw instellingen Can't start X server Please check your settings Kan X server niet starten Controleer aub uw instellingen Can't start X Server Please check your installation Kan X server niet starten Controleer aub uw installatie Unable to execute: Uitvoeren niet mogelijk: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package De remote server ondersteund exporteren van bestanden door SSH tunnel niet Aub updaten naar het nieuwste x2goserver sofwarepakket Unable to read : Lezen niet mogelijk: Unable to write : Schrijven niet mogelijk: WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Fout bij opvragen venster geometrie (venster gesloten)? X2Go Session X2Go sessie wrong value for argument"speed" verkeerde waarde voor argument"snelheid" Password: Wachtwoord: Keyboard layout: Toetsenbordindeling: Ok Ok Cancel Annuleren <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sessie ID:<br>Server:<br>Gebruikersnaam:<br>Scherm:<br>Aanmaaktijd:<br>Status:</b> Abort Afbreken Show details Toon details Resume Hervatten New Nieuw Full access Volledige toegang View only Alleen bekijken Status Status Command Commando Type Type Server Server Client IP Client IP Session ID Sessie ID User Gebruiker Only my desktops Alleen mijn desktops sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd niet actief, u bent sshd nodig voor printen en delen van bestanden u kunt sshd installeren met <b>sudo apt-get install openssh-server</b> Restore toolbar Taakbalk herstellen <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Klik op deze button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;om de taakbalk te herstellen&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Printen - X2Go Client Print Print You've deactivated the X2Go Client printing dialog. U heeft de X2Go Client printer dialoog uitgeschakeld. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) U kunt deze dialoog opnieuw activeren via de X2Go Client instellingen dialoog (Menu -> Opties -> Instellingen) You've deactivated the x2go client printing dialog. U heeft de x2goclient printer dialoog uitgeschakeld. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) U kunt deze dialoog opnieuw activeren via de x2goclient instellingen dialoog (Menu -> Opties -> Instellingen) PrintProcess Save File Bestand opslaan PDF Document (*.pdf) PDF Document (*.pdf) Failed to execute command: Uitvoeren van commando mislukt: Printing error. Print fout. Printing error Print fout PrintWidget Form Formulier Print Print View as PDF Bekijken als PDF Print settings Printer instellingen Printer: Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Printen met gebruik van standaard Windows PDF Viewer (Viewer applicatie moet geïnstalleerd zijn) Printer command: Printer commando: ... ... Viewer settings Viewer instellingen Open in viewer application Openen in viewer applicatie Command: Commando: Save to disk Opslaan op schijf Show this dialog before start printing Deze dialoog laten zien voor starten printen 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>. Configureer aub de printerinstellingen van uw client.<br><br>Als u het aangemaakte bestand wilt printen, bent u een externe applicatie nodig. Daarvoor kunt u <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> en <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>gebruiken. Meer informatie kunt u <a href="http://www.x2go.org/index.php?id=49">hier</a>vinden. 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>. Configureer aub de printerinstellingen van uw client.<br><br>Als u het aangemaakte bestand wilt printen, bent u een externe applicatie nodig. Daarvoor kunt u <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> en <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>gebruiken. Meer informatie kunt u <a href="http://www.x2go.org/index.php?id=49">hier</a>vinden. PrinterCmdDialog Printer command Printer commando Command Commando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Geef aub uw aangepaste of individuele print commando's in. Voorbeelden: kprinter lpr -P hp_laserjet Output format Output formaat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Kies aub het print formaat (met betrekking tot uw print omgeving - als u CUPS gebruikt kunt u PDF gebruiken) PDF PDF PS PS Data structure Bestandsstructuur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Kies aub de methode van afdrukken (een aantal opdrachten aanvaarden afdrukken van bestanden als programma-opties, sommige zijn in afwachting van informatie van de standaard invoer): standard input (STDIN) standaard invoer (STDIN) Specify path as program parameter Specificeer pad als programma parameter Please enter your customized or individual printing command. Example: Geef aub uw aangepaste of individuele print commando in. Voorbeeld: <Path to gsprint.exe> -query -color <pad naar gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Geen respons ontvangen van de remote server. Wilt u de huidige sessie beëindigen? X2Go Client could not find any suitable X11 server. X2Go Client kon geen geschikte X11 server vinden. X2Go Client could not start X11 server. X2Go Client kon de X11 server niet starten. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: X2Go Client vereist dat XQuartz geïnstalleerd is. Als XQuartz al geïnstalleerd is op uw systeem, selecteer aub de juiste pad verwijzing in de hierop volgende dialoog. Kijk onderaan dit bericht naar voorbeelden van pad verwijzingen, voor het geval u niet zelf de juiste locatie weet. Mocht u XQuartz nog <b>niet</b> geïnstalleerd hebben, volg dan aub de volgende stappen: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Sessie voorkeuren... Create session icon on desktop... Sessie icoon aanmaken op bureaublad... Session preferences ... Sessie voorkeuren... Create session icon on desktop ... Sessie icoon aanmaken op bureaublad... Delete session Sessie verwijderen Session actions Sessie acties Select type Selecteer type Select resolution Selecteer resolutie Toggle sound support Wissel geluidsondersteuning New Session Nieuwe sessie running actief suspended onderbroken KDE KDE RDP connection RDP connectie XDMCP XDMCP Connection to local desktop Verbinding naar lokaal bureaublad Published applications Gepubliceerde applicaties fullscreen Volledig scherm Display Scherm window venster Maximum Maximaal Enabled Ingeschakeld Disabled Uitgeschakeld SessionExplorer Back Terug Create session icon on desktop Sessie icoon op bureaublad aanmaken Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Bureaublad iconen kunnen worden ingesteld zodat de x2goclient niet getoond zal worden (verborgen modus) Als u van deze mogelijkheid gebruik wilt maken moet u wel inloggen met een gpg sleutel of een gpg smartcard configureren. X2goclient in verborgen modus gebruiken? Create session icon on desktop. Sessie icoon op bureaublad aanmaken. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Bureaublad iconen kunnen worden ingesteld zodat de X2Go client niet getoond zal worden (verborgen modus). Als u van deze mogelijkheid gebruik wilt maken moet u wel inloggen met een GPG sleutel of een GPG smartcard configureren. X2Go Client in verborgen modus gebruiken? Show session tray icon when running Sessie icoon in taakbalk tonen tijdens gebruik New Session Nieuwe sessie X2Go Link to session X2Go link naar sessie Are you sure you want to delete this session? Weet u zeker dat u deze sessie wilt verwijderen? SessionManageDialog E&xit A&fsluiten &New session &Nieuwe sessie &Session preferences &Sessie voorkeuren &Delete session &Sessie verwijderen &Create session icon on desktop ... &Sessie icoon aanmaken op bureaublad ... &Create session icon on desktop... &Sessie icoon aanmaken op bureaublad... Delete Delete Verwijderen Session management Sessiebeheer SessionWidget Session name: Sessie naam: << change icon << icoon wijzigen Path: Pad: &Server &Server Host: Host: Login: Inloggen: SSH port: SSH poort: Use RSA/DSA key for ssh connection: Gebruik RSA/DSA sleutel voor ssh verbinding: Try auto login (ssh-agent or default ssh key) Probeer automatisch inloggen (ssh-agent of standaard ssh sleutel) Try auto login (via SSH Agent or default SSH key) Probeer automatisch inloggen (via SSH-agent of standaard SSH sleutel) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) authenticatie Delegation of GSSAPI credentials to the server Verplaatsen van GSSAPI informatie naar de server Use Proxy server for SSH connection Gebruik proxy server voor SSH verbinding Proxy server Proxy server SSH SSH HTTP HTTP Same login as on X2Go Server Hetzelfde inloggen als op X2Go server Same password as on X2Go Server Hetzelfde wachtwoord als op X2Go server RSA/DSA key: RSA/DSA sleutel: SSH Agent or default SSH key SSH-agent of standaard SSH sleutel Connect to Windows Terminal Server Verbinding maken met Windows terminal server Direct RDP connection Directe RDP verbinding X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go Client is actief in portable modus. U moet een pad op uw USB device gebruiken om in staat te zijn uw bestanden te benaderen, waar u ook maar bent. ssh-agent or default ssh key ssh-agent of standaard ssh sleutel Type: Type: Port: Poort: &Session type &Sessie type Session type: Sessie type: Connect to Windows terminal server Verbinding maken met Windows terminal server XDMCP XDMCP Connect to local desktop Verbinden met lokale bureaublad Custom desktop Aangepast bureaublad Single application Enkele applicatie Published applications Gepubliceerde applicaties Command: Commando: Advanced options... Uitgebreide opties... Path to executable Pad naar exe bestand Direct RDP Connection Directe RDP verbinding Open key file Open sleutel bestand All files Alle bestanden Error Fout x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient is actief in portable modus. U moet een pad op uw usb device gebruiken om in staat te zijn uw bestanden te benaderen, waar u ook maar bent RDP port: RDP poort: Open picture Afbeelding openen Pictures Afbeeldingen Server: Server: XDMCP server: XDMCP server: rdesktop command line options: rdesktop commandoregel opties: New session Nieuwe sessie SettingsWidget &Display &Beeldscherm &Keyboard &Toetsenbord Sound Geluid &Clipboard Mode &Klembord modus &Clipboard mode &Klembord modus Fullscreen Volledig scherm Custom Aangepast Window Venster Use whole display Gebruik volledig beeldscherm Maximum available Maximaal beschikbare Set display DPI Instellen DPI van beeldscherm Xinerama extension (support for two or more physical displays) Xinerama extentie (ondersteuning voor twee of meer fysieke beeldschermen) Width: Breedte: Height: Hoogte: &Display: &Beeldscherm: &Identify all displays &Identificeer alle beeldschermen Bidirectional copy and paste Bidirectioneel copy and past Copy and paste from client to server Copy and past van client naar server Copy and paste from server to client Copy and past van server naar client Disable clipboard completely Klembord volledig uitschakelen Auto-detect keyboard settings Automatisch toetsenbordinstelling detecteren RDP client RDP client Auto detect keyboard settings Automatische toetsenbordinstelling Do not configure keyboard Toetsenbord niet configureren Configure keyboard Toetsenbord configureren Model: Model: Layout: Indeling: Variant: Variant: Enable sound support Geluidsondersteuning inschakelen Start sound daemon Start geluids daemon Use running sound daemon Gebruik actieve geluids daemon Use SSH port forwarding to tunnel sound system connections through firewalls Gebruik SSH poort forwarding voor het tunnelen van geluidssysteemverbindingen door firewalls Use default sound port Gebruik standaard geluidspoort Sound port: Geluidspoort: Client side printing support Printer ondersteuning aan de zijde van client RDP Client RDP Client Additional parameters: Extra parameters: Command line: Commandoregel: us us password wachtwoord ShareWidget &Folders &Mappen Path Pad Automount Automatisch aankoppelen Add Toevoegen Delete Verwijderen Path: Pad: Filename encoding Bestandsnaam codering local: Lokaal: remote: remote: Use SSH port forwarding to tunnel file system connections through firewalls Gebruik SSH poort forwarding voor het tunnelen van bestandsuitwisseling door firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go Client is actief in portable modus. U moet een pad op uw usb device gebruiken om in staat te zijn uw bestanden te benaderen, waar u ook maar bent. Use ssh port forwarding to tunnel file system connections through firewalls Gebruik ssh poort forwarding voor het tunnelen van bestandsuitwisseling door firewalls Select folder Selecteer map Error Fout x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient is actief in portable modus. U moet een pad op uw usb device gebruiken om altijd toegang tot uw data te krijgen, waar u ook maar bent WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection Cannot connect to Kan niet verbinden met SSH proxy connection error. SSH proxy verbindingsfout. Failed to create SSH proxy tunnel. Opzetten SSH proxy tunnel mislukt. Cannot initialize libssh. Kan libssh niet initialiseren. Cannot create SSH session. Kan geen SSH sessie opzetten. Cannot connect to proxy server. Kan niet verbinden met proxy server. Authentication failed. Authenticatie mislukt. Failed to start SSH client. Please check your installation and GSSApi configuration. Starten van SSH client mislukt. Controleer aub uw installatie en GSSApi configuratie. Check your GSSApi configuration or choose another authentication method. Controleer uw GSSApi configuratie of kies een andere authenticatie methode. Cannot open file Kan bestand niet openen Cannot create remote file Remote bestand aanmaken niet mogelijk Cannot write to remote file Kan niet naar remote bestand schrijven channel_open_forward failed. forwarden_open_kanaal mislukt. channel_open_session failed. sessie_open_kanaal mislukt. Error writing to socket. Fout bij schrijven naar socket. Error reading channel. Fout bij lezen van kanaal. channel_write failed. schrijven_kanaal mislukt. Error reading from TCP socket. Fout bij lezen TCP socket. SSH proxy connection error SSH proxy verbindingsfout SSH proxy connection error: SSH proxy verbindingsfout: Failed to create SSH proxy tunnel Opzetten SSH proxy tunnel mislukt Can not initialize libssh Kan libssh niet initialiseren Can not create ssh session Kan geen ssh sessie opzetten Can not connect to proxy server Kan niet verbinden met proxy server Can not connect to Kan niet verbinden met Authentication failed Authenticatie mislukt Failed to start SSH Client. Please check your installation and GSSApi configuration Starten van SSH client mislukt. Controleer aub uw installatie en GSSApi configuratie Check your GSSApi configuration or choose another authentication method Controleer uw GSSApi configuratie of kies een andere authenticatie methode Can not open file Kan bestand niet openen Can not create remote file Remote bestand aanmaken niet mogelijk Can not write to remote file Kan niet naar remote bestand schrijven channel_open_forward failed ? forwarden_open_kanaal mislukt channel_open_session failed ? sessie_open_kanaal mislukt channel_request_exec failed ? exec_kanaal_verzoek mislukt error writing to socket fout bij schrijven naar socket error reading channel fout bij lezen van kanaal channel_write failed ? schrijven_kanaal mislukt error reading tcp socket fout bij lezen tcp socket SshProcess Error creating socket Fout bij aanmaken socket Error creating socket. Fout bij aanmaken socket. Error binding Fout bij binding XSettingsWidget Open File Bestand openen Executable (*.exe) Uitvoerbaar (*.exe) XSettingsWidgetUI Form Formulier You must restart the X2Go Client for the changes to take effect U moet de X2Go Client herstarten om de wijzigingen door te voeren use integrated X-Server gebruik geïntegreerde X server do not use primary clipboard primaire klembord niet gebruiken use custom X-Server gebruik aangepaste X-server custom X-Server aangepaste X-server executable: uitvoerbaar: start X-Server on X2Go Client start start X-server op X2Go Client start command line options: commandoregel opties: X-Server command line options X-server commandoregel opties window mode: venster modus: fullscreen mode: modus volledig scherm: single application: enkele applicatie: whole display: Volledig beeldscherm: x2goclient-4.0.5.1/res/i18n/x2goclient_pt.ts0000644000000000000000000044023712675050177015350 0ustar AppDialog Published Applications Search: &Start &Close Multimedia Development Education Game Graphics Network Office Settings System Utility Other BrokerPassDialogUi Dialog Old password: New password: Confirm password: TextLabel BrokerPassDlg Passwords do not match CUPSPrintWidget Form Name: Properties State: Accepting jobs: Type: Location: Comment: Idle Printing Stopped Yes No CUPSPrinterSettingsDialog No option selected This value is in conflict with another option. Options conflict. ConTest Connectivity test HTTPS connection: SSH connection: Connection speed: Failed 0 Kb/s OK Socket operation timed out. Failed: ConfigDialog General Display icon in system tray Hide to system tray when minimized Hide to system tray when closed Hide to system tray after connection is established Restore from system tray after session is disconnected Use LDAP Server URL: BaseDN: Failover server 1 URL: Failover server 2 URL: X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X11 application: X11 version: Find X11 application Start session embedded inside website Advanced options Defaults &OK &Cancel Settings Printing &Connection &Input/Output &Media ConnectionWidget &Connection speed Connection speed: C&ompression Method: Compression method: Image quality: CupsPrinterSettingsDialog Dialog General Page size: Paper type: Paper source: Duplex Printing None Long side Short side Driver settings Option Value No option selected text EditConnectionDialog &Session &Connection &Input/Output &Media &Shared folders &OK &Cancel Defaults Session preferences - ExportDialog &Cancel &share &Preferences ... &Custom folder ... Delete Delete Share Folders Select folder FolderButton Sessions folder FolderExplorer Folders Create New Folder Rename Folder ... Change Icon ... Delete Folder ... Open picture Pictures X2Go Client Folder Name: Error Unable to remove " ". Folder is not empty. Please remove the contents of this directory and try again. Delete folder " New Folder HelpDialog Options HttpBrokerClient Host key for server changed. It is now: The server is unknown. Do you trust the host key? Public key hash: Yes No Verification code: Enter passphrase to decrypt a key Error <br><b>Server uses an invalid security certificate.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Host key verification failed. Authentication failed. Login failed!<br>Please try again. Secure connection failed. Issued to: Common Name(CN) Organization(O) Organizational Unit(OU) Serial Number Issued by: Validity: Issued on expires on Fingerprints: SHA1 MD5 Exit X2Go Client Add exception MediaWidget Sound Enable sound support Start sound daemon Use running sound daemon Use SSH port forwarding to tunnel sound system connections through firewalls Use default sound port Sound port: Client side printing support ONMainWindow us X2Go Client connecting Internet browser Email client OpenOffice.org Terminal &Settings ... Support ... Can't load translator: Translator: Share folder... Applications... Suspend Terminate Reconnect Detach X2Go window Minimize toolbar Session: &Quit Ctrl+Q Quit &New session ... Ctrl+N Ctrl+E Show toolbar About Qt Starting X2Go Client... Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... &Session &Options &Help Login: Error Operation failed Password changed Wrong password! Connecting to broker <b>Authentication</b> Restore Not connected Multimedia Development Education Game Graphics Network Office Settings System Utility Other Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! no X2Go Server found in LDAP Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" SSH daemon failed to open the application's authorized_keys file. Please check LDAP settings No X2Go sessions found, closing. KDE RDP connection XDMCP Connection to local desktop on Starting connection to server: to Verification code: Enter passphrase to decrypt a key Host key for server changed. It is now: Yes No If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? The server is unknown. Do you trust the host key? Public key hash: Authentication failed: Enter password for SSH proxy <b>Wrong password!</b><br><br> Connection failed: - Wrong password. unknown Select session: running suspended Desktop single application shadow session Information Filter Select desktop: Warning 24 or 32 suspending terminating <b>Wrong Password!</b><br><br> New session started Session resumed Unable to create folder: Unable to write file: Attach X2Go window Emergency exit. Waiting for proxy to exit. Finished starting resuming Connection timeout, aborting aborting Session Display Creation time (can't open file) Wrong parameter: Help Changelog Git Info RSA file empty. Support Card not configured. Unable to create file: Unable to execute: WINDOWS-1252 ISO8859-1 X2Go Session Password: Keyboard layout: Ok Cancel <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> Applications ... Abort Show details Resume New Full access View only Status Command Type Server Client IP Session ID User Only my desktops SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH Error SSH daemon failed to open the application's public key used for exporting folders and printers. Restore toolbar <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Print You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) PrintProcess Save File PDF Document (*.pdf) Failed to execute command: Printing error. PrintWidget Form Print View as PDF Print settings Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Printer command: ... Viewer settings Open in viewer application Command: Save to disk Show this dialog before start printing 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>. PrinterCmdDialog Printer command Command Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) PDF PS Data structure Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): standard input (STDIN) Specify path as program parameter Please enter your customized or individual printing command. Example: <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences ... Create session icon on desktop ... Delete session Session actions Select type Select resolution Toggle sound support New Session running suspended KDE RDP connection XDMCP Connection to local desktop Published applications fullscreen Display window Maximum Enabled Disabled SessionExplorer Back Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running New Session X2Go Link to session Are you sure you want to delete this session? SessionManageDialog E&xit &New session &Session preferences &Delete session &Create session icon on desktop ... Delete Delete Session management SessionWidget Session name: << change icon Path: &Server Host: Login: SSH port: Use RSA/DSA key for ssh connection: Try auto login (via SSH Agent or default SSH key) Kerberos 5 (GSSAPI) authentication Delegation of GSSAPI credentials to the server Use Proxy server for SSH connection Proxy server SSH HTTP Same login as on X2Go Server Same password as on X2Go Server RSA/DSA key: SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Type: Port: &Session type Session type: XDMCP Connect to local desktop Custom desktop Single application Published applications Command: Advanced options... Path to executable Open key file All files Error RDP port: Open picture Pictures Server: XDMCP server: rdesktop command line options: New session SettingsWidget &Display &Keyboard &Clipboard mode Fullscreen Custom Window Use whole display Maximum available Set display DPI Xinerama extension (support for two or more physical displays) Width: Height: &Display: &Identify all displays Bidirectional copy and paste Copy and paste from client to server Copy and paste from server to client Disable clipboard completely Auto-detect keyboard settings RDP client Do not configure keyboard Configure keyboard Model: Layout: Variant: Additional parameters: Command line: us password ShareWidget &Folders Path Automount Add Delete Path: Filename encoding local: remote: Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Select folder Error WINDOWS-1252 ISO8859-1 SshMasterConnection Cannot connect to SSH proxy connection error. Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. SSH proxy connection error: channel_request_exec failed SshProcess Error creating socket. Error binding XSettingsWidget Open File Executable (*.exe) XSettingsWidgetUI Form You must restart the X2Go Client for the changes to take effect use integrated X-Server do not use primary clipboard use custom X-Server custom X-Server executable: start X-Server on X2Go Client start command line options: X-Server command line options window mode: fullscreen mode: single application: whole display: x2goclient-4.0.5.1/res/i18n/x2goclient_ru.ts0000644000000000000000000064265612675050177015364 0ustar AppDialog Published Applications Удаленные приложения Search: Поиск: &Start &Пуск &Close &Закрыть Multimedia Мультимедиа Development Разработка Education Обучение Game Игры Graphics Графика Network Сеть Office Офис Settings Установки System Система Utility Утилиты Other Другие BrokerPassDialogUi Dialog Диалог Old password: Старый пароль: New password: Новый пароль: Confirm password: Подтвердить пароль: TextLabel метка BrokerPassDlg Passwords do not match Пароли не совпадают CUPSPrintWidget Idle Ожидание Printing Печать Stopped Остановлен Yes Да No Нет Form Форма Name: Имя: Properties Свойства State: Состояние: Accepting jobs: Принимает задания: Type: Тип: Location: Расположение: Comment: Комментарий: CUPSPrinterSettingsDialog No option selected Нет выбранных параметров This value is in conflict with another option. Options conflict. This value is in conflict with other option Выбранное значение конфликтует с другими опциями Options conflict Конфликт опций ConTest Connectivity test Тест соединения HTTPS connection: HTTPS соединение: SSH connection: SSH соединение: Connection speed: Скорость соединения: Failed Ошибка 0 Kb/s OK Socket operation timed out. Failed: Ошибка: ConfigDialog Use LDAP Использовать LDAP LDAP Settings Установки LDAP Server URL: URL Сервера: BaseDN: BaseDN: Failover Server 1 URL: Failover Server 1 URL: Failover Server 2 URL: Failover Server 2 URL: X-Server Settings Установки X-Сервера Xming Xming XWin (Cygwin) XWin (Cygwin) Custom X-Server Другой X-Сервер Reset to defaults По умолчанию Command: Исполняемый файл: Arguments: Аргументы: Display: Дисплей: Working directory: Рабочий каталог: &OK &OK &Cancel О&тмена Settings Установки Applications (*.exe);;All Files (*.*) Приложения (*.exe);;Все файлы (*.*) X11 Application: X11: X11 Version: Версия X11: Find X11 Application Поиск X11 Warning Предупреждение x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient не смог найти установленное на Вашем компьютере приложение X11. Пожалуйста установите X11 или укажите путь к установленному приложению Your are using X11 (Apple X-Window Server) version Вы используете приложение X11 версии . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Данная версия имеет проблемы с изображением в 24-х битных цветовых режимах. Обновите пожалуйста ваше X11 приложение (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Приложение X11 не найдено в заданом каталоге Clientside SSH Port For File System Export Usage: SSH порт на стороне клиента для экспорта файловой системы: LDAP settings Установки LDAP Failover server 1 URL: Failover Server 1 URL: Failover server 2 URL: Failover Server 2 URL: X-Server settings Установки X-Сервера X11 application: X11: X11 version: Версия X11: Find X11 application Поиск X11 Clientside SSH port for file system export usage: SSH порт на стороне клиента для экспорта файловой системы: General Общие Printing Печать Start session embedded inside website Отображать сессию встроенной в веб страницу Display icon in system tray Отображать пиктограму в системном трее Hide to system tray when minimized Спрятать в системный трей при сворачивании Hide to system tray when closed Спрятать в системный трей при закрытии Hide to system tray after connection is established Спрятать в системный трей после установки соединения Restore from system tray after session is disconnected Восстановить при разрыве соединения X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Advanced options Продвинутые установки Defaults По умолчанию Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> &Connection С&оединение &Input/Output &Ввод/Вывод &Media &Медиа &Settings &Установки ConnectionWidget &Connection speed &Тип соединения Connection speed: Тип соединения: C&ompression С&жатие Method: Метод: Compression method: Метод сжатия: Image quality: Качество изображения: CupsPrinterSettingsDialog Dialog Диалог General Общие Page size: Формат бумаги: Paper type: Тип бумаги: Paper source: Подача бумаги: Duplex Printing Двусторонняя печать None Нет Long side По широкой стороне Short side По узкой стороне Driver settings Опции драйвера Option Опция Value Значение No option selected Нет выбранных параметров text текст EditConnectionDialog &Session &Сессия &Connection С&оединение &Shared Folders &Экспорт каталогов &Input/Output &Ввод/Вывод &Media &Медиа &OK &OK &Cancel О&тмена Defaults По умолчанию Session Name: Имя сессии: << change Icon << изменить значок &Server &Сервер Host: Хост: Login: Пользователь: SSH Port: SSH порт: Use RSA/DSA key for ssh connection: RSA/DSA ключ для ssh соединения: &Desktop Session &Оконный менеджер Custom Другой Command: Команда: &Connection Speed &Тип соединения C&ompression С&жатие Method: Метод: Image Quality: Качество изображения: &Display &Дисплей Fullscreen Полноэкранный режим Width: Ширина: Height: Высота: &Keyboard &Клавиатура Keep current Keyboard Settings Использовать текущие установки Keyboard Layout: Раскладка Клавиатуры: Keyboard Model: Модель клавиатуры: Sound Звук Enable Sound Support Активировать звук &Folders &Каталоги Path Расположение Automount Соединять автоматически Add Добавить Delete Удалить Path: Расположение: New Session Новая сессия Session Preferences - Установки сессии - Open Picture Открыть изображение Pictures Изображения Open Key File Открыть файл с ключом All Files Все файлы us ru pc105/us pc105/ru Select Folder Выбор каталога &Session Type &Тип сессии Session Type: Тип сессии: Custom Desktop Другой оконный менеджер Single Application Приложение Path to executable Путь к исполняемому файлу Connection Speed: Скорость соединения: Compression Method: Метод комрессии: Window Окно &Shared folders &Экспорт каталогов Session name: Имя сессии: << change icon << изменить значок SSH port: SSH порт: &Session type &Тип сессии Session type: Тип сессии: Custom desktop Другой оконный менеджер Single application Приложение &Connection speed &Тип соединения Connection speed: Скорость соединения: Compression method: Метод комрессии: Image quality: Качество изображения: Keep current keyboard Settings Использовать текущие установки Keyboard layout: Раскладка Клавиатуры: Keyboard model: Модель клавиатуры: Enable sound support Активировать звук Start sound daemon Запускать звуковой сервер Use running sound daemon Использовать запущенный звуковой сервер Use SSH port forwarding to tunnel sound system connections through firewalls Использовать SSH туннель для звуковой системы Use default sound port Использовать порт по умолчанию Sound port: Порт: Use ssh port forwarding to tunnel file system connections through firewalls Использовать SSH туннель для экспорта файловой системы New session Новая сессия Session preferences - Установки сессии - Open picture Открыть изображение Open key file Открыть файл с ключом All files Все файлы Select folder Выбор каталога Client side printing support Печать на стороне клиента Connect to Windows terminal server Соединение с терминальным сервером Windows Advanced options... Продвинутые установки... Server: Сервер: rdesktop command line options: Опции командной строки rdesktop: ExportDialog &Cancel О&тмена &share &Соединить &Preferences ... &Настройки ... Share Folders &Custom Folder ... &Другой каталог ... Delete Delete Удалить share Folders Экспорт каталогов Select Folder Выбор каталога &Custom folder ... &Другой каталог ... share folders Экспорт каталогов Select folder Выбор каталога FolderButton Sessions folder FolderExplorer Folders Create New Folder Rename Folder ... Change Icon ... Delete Folder ... Open picture Открыть изображение Pictures Изображения X2Go Client Folder Name: Error Ошибка Unable to remove " ". Folder is not empty. Please remove the contents of this directory and try again. Delete folder " New Folder HelpDialog Options Опции HttpBrokerClient us ru pc105/us pc105/ru Host key for server changed. It is now: Ключ на сервере изменен: For security reasons, connection will be stopped Из соображений безопасности соединение будет разорвано The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Ключ для этого сервера не найден, но другой вариант ключа существует. Злоумышленик мог изменить ключ сервера по умолчания, что бы ввести ваш клиент в заблуждение, что этот ключ не существует Could not find known host file.If you accept the host key here, the file will be automatically created Не могу найти файл с ключами. Если вы примете этот ключ, файл будет создан автоматически The server is unknown. Do you trust the host key? Public key hash: Сервер не известен. Доверяете ли вы этому ключу? Public key hash: Host key verification failed Ошибка проверки ключа Yes Да No Нет Verification code: Код проверки: Enter passphrase to decrypt a key Введите фразу-пароль для ключа Authentication failed Ошибка авторизации Error Ошибка Login failed!<br>Please try again Ошибка авторизации<br>Повторите попытку <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Сервер использует недостоверный SSL сертификат.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Вам не следует добавлять исключение если вы используете интернет соединение в котором вы не полностью уверены или если вы не должны были бы получить подобное предупрежедение при соединении с этим сервером</p> Secure connection failed Безопасное соединение невозможно For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Host key verification failed. Authentication failed. Login failed!<br>Please try again. Secure connection failed. Issued to: Issued to: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serial Number Issued by: Issued by: Validity: Validity: Issued on Issued on expires on expires on Fingerprints: Fingerprints: SHA1 SHA1 MD5 MD5 Exit X2Go Client Выход Add exception Добавить исключение Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Ваша сессия больше не действительна. Чтобы продолжить соединение, вернитесь на страницу регистрации или используйте функцию обновления страницы броузера. MediaWidget Sound Звук Enable sound support Активировать звук Start sound daemon Запускать звуковой сервер Use running sound daemon Использовать запущенный звуковой сервер Use SSH port forwarding to tunnel sound system connections through firewalls Использовать SSH туннель для звуковой системы Use default sound port Использовать порт по умолчанию Sound port: Порт: Client side printing support Печать на стороне клиента ONMainWindow us ru pc105/us pc105/ru Support ... Поддержка ... Session: Сессия: &Quit &Выход Ctrl+Q Ctrl+Q Quit Выход &New Session ... &Новая сессия ... Ctrl+N Ctrl+N Session Management... Управление сессиями... Ctrl+E Ctrl+E &Settings ... &Установки ... SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH Error Ошибка SSH SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. Не удается запустить сервер SSH. Сервер SSH нужен для печати и экспорта ФС. Это не должно было случиться, поскольку X2Go Client обладает внутренним сервером SSH Если вы видите это сообщение, пожалуйста сообщите об ошибке. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. Сервер SSH не обнаружен. Сервер SSH необходим для печати и экспорта ФС Пожалуйста обратитесь к системному администратору за установкой сервера SSH. SSH daemon failed to open the application's public host key. Серверу SSH не удалось открыть "public host key" приложения. SSH daemon failed to open the application's public key used for exporting folders and printers. Серверу SSH не удалось открыть "public host key" приложения используемый для экспорта ФС и принтеров. SSH daemon failed to open the application's authoized_keys file. Серверу SSH не удалось открыть "authorized_keys" файл приложения. Restore toolbar Восстановить панель инструментов About X2GO Client О программе "X2GO Client" About Qt О Qt Session Сессия Ctrl+Q exit Ctrl+Q &Session &Сессия &Options &Опции &Help &Помощь Login: Пользователь: Verification code: Код проверки: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Это может быть признаком попытки взлома. Из соображений безопасности рекомендуется прекратить соединение. Прервать соединение? If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Если Вы продолжите, безопасность соединения может быть скомпрометированой. Обновить ключ? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Ключ для этого сервера не найден, но другой вариант ключа существует. Злоумышленик мог изменить ключ сервера по умолчания, что бы ввести ваш клиент в заблуждение, что этот ключ не существует. Прекратить соединение? New session started Новая сессия запущенна Session resumed Сессия восстановленна Unable to create folder: Невозможно создать каталог: Unable to write file: Невозможно записать файл: Emergency exit. Аварийный выход. Waiting for proxy to exit. Ожидание завершения прокси. Failed, killing the proxy. Провал, завершаем прокси. wrong value for argument"--clipboard" неверное значение для параметра "--clipboard" Wrong parameter: Неверный параметр: Help Помощь Pack Methodes Методы сжатия Option is not availabel in this build Опция недоступна в этой сборке Changelog Изменения Git Info Информация Git RSA file empty. RSA файл пуст. Can not open key: Невозможно открыть ключ: Card not configured. Карта не сконфигурирована. Error getting window geometry (window closed)? Ошибка чтения геометрии окна (окно закрыто)? Password: Пароль: Keyboard layout: Раскладка Клавиатуры: Ok ОК Cancel Отмена Applications... Приложения... Invalid reply from broker Неверный ответ брокера Error Ошибка Please check LDAP Settings Проверте настройки LDAP no X2Go Server found in LDAP Сервер X2Go не найден в LDAP Are you sure you want to delete this Session? Удалить сессию? KDE KDE on на <b>Connection failed</b> <b>Ошибка соединения</b><br> <b>Wrong Password!</b><br><br> <b>Неверный пароль!</b><br><br> No Server availabel Не доступен ни один сервер Select session: Сессия: Resume Восстановить Suspend Прервать Terminate Завершить New Новая Display Дисплей Status Статус Server Сервер Creation Time Время создания Client IP IP клиента Session ID ID сессии running активна suspended прервана Warning Предупреждение Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Глубина цвета вашего дисплея не соответствует глубине цвета данной сессии. Это может помешать восстановлению сессии и в большинстве случаев<b>сессия будет утеряна</b> Рекомендуется изменить глубину цвета вашего дисплея на(sp) 24 or 32 24 или 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? бит и перезапустить X-сервер до восстановления сессии.<br>Попробовать восстановить сессию не смотря на данное предупреждение? Yes Да No X2Go sessions found, closing. Starting connection to server: to Connection Error( Ошибка соединения( Enter passphrase to decrypt a key Введите фразу-пароль для ключа Host key for server changed. It is now: Ключ на сервере изменен: For security reasons, connection will be stopped Из соображений безопасности соединение будет разорвано The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Ключ для этого сервера не найден, но другой вариант ключа существует. Злоумышленик мог изменить ключ сервера по умолчания, что бы ввести ваш клиент в заблуждение, что этот ключ не существует Could not find known host file.If you accept the host key here, the file will be automatically created Не могу найти файл с ключами. Если вы примете этот ключ, файл будет создан автоматически The server is unknown. Do you trust the host key? Public key hash: Сервер не известен. Доверяете ли вы этому ключу? Public key hash: No Нет Host key verification failed Ошибка проверки ключа Authentication failed: Authentication failed Ошибка авторизации Enter password for SSH proxy Введите пароль для SSH прокси Connection failed: - Wrong password. Server not availabel Сервер не доступен suspending прерывается terminating завершается Unable to create Folder: Невозможно создать каталог: Unable to write File: Невозможно записать файл: Unable to create SSL Tunnel: Ошибка создания SSL тунеля: connecting соединение Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. starting запуск resuming восстановление Connection timeout, aborting Таймаут соединения, отмена aborting отмена <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation Time:<br>Status:</b> <b>ID сессии:<br>Сервер:<br>Пользователь:<br>Дисплей:<br>Время создания:<br>Статус:</b> Abort Отмена Share Folder... Экспорт каталога... Show Details Показать детали <b>Connection failed</b> : <b>Ошибка соединения</b>(new line): (can't open file) (невозможно открыть файл) (file not exists) (файл не существует) (directory not exists) (каталог не существует) wrong parameter: wrong parameter: Options Опции Available pack methodes: Available pack methodes: Support Поддержка </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Can't read host rsa key: Невозможно прочитать RSA ключ: Unable to read : Невозможно прочитать : Unable to write : Невозможно записать : <b>X2Go Client V. <b>X2Go Client V. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2007 Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Клиент сетевого окружения X2Go. Данный клиент предназначен для соединения с сервером (серверами) X2Go и запуска, восстановления или завершения удаленной сессии. Клиент X2Go сохраняет настройки соединений и может запрашивать информацию о пользователях из LDAP. В последнем случае клиент может использоваться как менеджер входа в систему (замена менеджера подобного xdm) для окружения "тонких клиентов" X2Go. Посетите http://x2go.org для получения более детальной информации. No valid card found Формат карты неизвестен This card is unknown by X2Go System Эта карта не сконфигурирована для использования с X2Go Unable to create file: Невозможно создать файл: Can't connect to X-Server Невозможно присоединиться к X-серверу Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Невозможно присоединиться к X-серверу Проверьте настройки Can't start X-Server Невозможно запустить X-Сервер Can't start X Server Please check your settings Невозможно запустить X-Сервер Проверьте настройки </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2008 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Клиент сетевого окружения X2Go. Данный клиент предназначен для соединения с сервером (серверами) X2Go и запуска, восстановления или завершения удаленной сессии. Клиент X2Go сохраняет настройки соединений и может запрашивать информацию о пользователях из LDAP. В последнем случае клиент может использоваться как менеджер входа в систему (замена менеджера подобного xdm) для окружения "тонких клиентов" X2Go. Посетите http://x2go.org для получения более детальной информации. Internet Browser Веб-броузер Email Client Почтовый клиент OpenOffice.org Terminal Терминал unknown неизвестно Command Команда Type Тип Desktop Оконный менеджер single application приложение shadow session теневая сессия <br>Sudo configuration error <br>Ошибка настроек "sudo" Unable to execute: Невозможно выполнить: X2Go Client Starting X2Go Client... Internet browser Веб-броузер Email client Почтовый клиент &New session ... &Новая сессия ... Session management... Управление сессиями... Show toolbar Панель инструментов About X2GO client О программе "X2GO Client" Please check LDAP settings Проверьте настройки LDAP no X2Go server found in LDAP Сервер X2Go не найден в LDAP Are you sure you want to delete this session? Удалить сессию? <b>Wrong password!</b><br><br> <b>Неверный пароль!</b><br><br> No server availabel Не доступен ни один сервер Not connected Active connection Соединение не установлено Creation time Время создания Unable to create folder: Невозможно создать каталог: Unable to write file: Невозможно записать файл: Unable to create SSL tunnel: Ошибка создания SSL тунеля: <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>ID сессии:<br>Сервер:<br>Пользователь:<br>Дисплей:<br>Время создания:<br>Статус:</b> Share folder... Экспорт каталога... Show details Показать детали This card is unknown by X2Go system Эта карта не сконфигурирована для использования с X2Go Can't start X server Please check your settings Невозможно запустить X-Сервер Проверьте настройки Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Удаленный сервер не поддерживает экспорт файловой системы через SSH туннель Пожалуйста обновите пакет x2goserver &Create session icon on desktop... &Создать ярлык сессии на рабочем столе... Can't load translator: Translator: &Set broker password... &Установить пароль на брокере... &Connectivity test... &Тест соединения... Operation failed Ошибка Password changed Пароль изменен Wrong password! Неверный пароль! <b>Authentication</b> <b>Авторизация</b> Restore Восстановить Multimedia Мультимедиа Development Разработка Education Обучение Game Игры Graphics Графика Network Сеть Office Офис Settings Установки System Система Utility Утилиты Other Другие Left mouse button to hide/restore - Right mouse button to display context menu Left click to open the X2GoClient window or right click to get the context menu. Щелчок левой кнопкой: спрятать/восстановить - правой: отобразить контекстное меню Create session icon on desktop Создать ярлык сессии на рабочем столе Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Ярлык сессии может инициировать соединение без отображения клиента X2Go (скрытый режим). Если вы хотите использовать скрытый режим, вам необходимо настроить ключ для соединения или использовать PGP смарт карту. Активировать скрытый режим? Show session tray icon when running Показывать значок системной области при исполнении New Session Новая сессия X2Go sessions not found Сессия X2Go не найдена RDP connection RDP соединение Detach X2Go window Отсоединить окно Attach X2Go window Присоединить окно Finished завершена Are you sure you want to terminate this session? Unsaved documents will be lost Вы уверены, что хотите удалить эту сессию? Все несохраненные документы будут утеряны </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. </b><br> (C. 2006-2009 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br><br>Клиент сетевого окружения X2Go. Данный клиент предназначен для соединения с сервером (серверами) X2Go и запуска, восстановления или завершения удаленной сессии. Клиент X2Go сохраняет настройки соединений и может запрашивать информацию о пользователях из LDAP. В последнем случае клиент может использоваться как менеджер входа в систему (замена менеджера подобного xdm) для окружения "тонких клиентов" X2Go. Посетите http://x2go.org для получения более детальной информации. Can't start X Server Please check your installation Невозможно запустить X Server Переустановите X2Go Client X2Go Session Сессия X2Go Minimize toolbar Свернуть панель SSH daemon failed to open the application's authorized_keys file. <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Щелкните по этой иконке&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;чтобы восстановить панель инструментов&nbsp;&nbsp;&nbsp;</b><br> Can't open config file: Невозможно открыть файл: sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd не функционирует, ssd необходим для печати и экспорта файловой системы Вы можете установить sshd при помощи команды <b>sudo apt-get install openssh-server</b> Connection to local desktop Соединение с локальным десктопом Information Информация Filter Фильтр Select desktop: Выбрать десктоп: Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" Applications ... View only Только смотреть User Пользователь XDMCP XDMCP No accessible desktop found Доступный десктоп не найден Full access Полный доступ Only my desktops Только мои десктопы Reconnect Повторить соединение Connecting to broker Соединение с брокером </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2006-2010 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin был разработан при поддержке <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Клиент сетевого окружения X2Go. Данный клиент предназначен для соединения с сервером (серверами) X2Go и запуска, восстановления или завершения удаленной сессии. Клиент X2Go сохраняет настройки соединений и может запрашивать информацию о пользователях из LDAP. В последнем случае клиент может использоваться как менеджер входа в систему (замена менеджера подобного xdm) для окружения "тонких клиентов" X2Go. Посетите http://x2go.org для получения более детальной информации. WINDOWS-1252 WINDOWS-1251 ISO8859-1 KOI8-R wrong value for argument"speed" wrong value for argument"speed" application/x2go:x2go:Configuration File for X2Go Session application/x2go:x2go:Файл настроек сессии X2Go PrintDialog Print Печать You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) You've deactivated the x2go client printing dialog. Отключение диалога печати. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Для активации диалога печати воспользуйтесь диалогом установок (меню -> опции -> установки) Print - X2Go Client Печать - X2Go Client PrintProcess Save File Сохранить файл PDF Document (*.pdf) Документ PDF (*.pdf) Failed to execute command: Невозможно выполнить команду: Printing error. Printing error Ошибка печати PrintWidget Form Форма Print Печать View as PDF Просмотр PDF Print settings Настройки печати Printer command: Команда печати: ... ... Viewer settings Настройки просмотра Open in viewer application Открыть программой просмотра Command: Команда: Save to disk Сохранить на диске Show this dialog before start printing Открывать этот диалог перед печатью 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>. Настройка програмы печати<br><br>Для печати сгенерированных файлов вам понадобится специальная программа печати. Мы рекомендуем использовать <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> и <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>Более детальную информацию о настройках программы печати вы можете найти <a href="http://www.x2go.org/index.php?id=49">здесь</a>. Printer: Принтер: Print using default Windows PDF Viewer (Viewer application needs to be installed) Печать при помощи стандартной программы Windows для просмотра PDF (Программа просмотра должна быть установленна) 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>. PrinterCmdDialog Printer command Команда печати Command Команда Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Пожалуйста введите выбранную вами команду печати. Примеры: kprinter lpr -P hp_laserjet Output format Формат вывода Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Пожалуйста выберите формат файла печати (если вы используете CUPS, вы можете выбрать PDF) PDF PDF PS PS Data structure Структура данных Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Пожалуйста выберите метод ввода файла печати (некоторые программы требуют указать имя файла печати в параметрах командной строки, другие читают данные из устройства стандартного ввода): standard input (STDIN) стандартный ввод (STDIN) Specify path as program parameter Указать путь к файлу в параметре командной строки Please enter your customized or individual printing command. Example: Пожалуйста введите выбранную вами команду печати. Пример: <Path to gsprint.exe> -query -color <Путь к gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Нет ответа от сервера. Прервать текущую сессию? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session Preferences... Установки сессии... Delete Session... Удалить сессию... Select Type Выбор десктопа Select Resolution Выбор разрешения экрана Toggle Sound support Активировать звук New Session Новая сессия Published applications Удаленные приложения fullscreen Полноэкранная сессия Display Дисплей Maximum Максимальное Enabled активирован Disabled деактивирован window окно Session preferences... Установки сессии... Create session icon on desktop... Создать ярлык сессии на рабочем столе... Session preferences ... Create session icon on desktop ... Delete session Удалить сессию Session actions Опции Select type Тип сессии Select resolution Выбрать разрешение Toggle sound support Звук running активна suspended прервана KDE KDE RDP connection RDP соединение Connection to local desktop Соединение с локальным десктопом XDMCP XDMCP SessionExplorer Back Create session icon on desktop Создать ярлык сессии на рабочем столе Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Ярлык сессии может инициировать соединение без отображения клиента X2Go (скрытый режим). Если вы хотите использовать скрытый режим, вам необходимо настроить ключ для соединения или использовать PGP смарт карту. Активировать скрытый режим? Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running Показывать значок системной области при исполнении New Session Новая сессия X2Go Link to session Are you sure you want to delete this session? Удалить сессию? SessionManageDialog E&xit &Выход &New Session &Новая сессия &Session Preferences &Установки сессии &Delete Session У&далить сессию Delete Delete Удалить Session Management Управление сессиями &New session &Новая сессия &Session preferences &Установки сессии &Delete session У&далить сессию &Create session icon on desktop ... Session management Управление сессиями &Create session icon on desktop... &Создать ярлык сессии на рабочем столе... SessionWidget Session name: Имя сессии: << change icon << изменить значок Path: Расположение: &Server &Сервер Host: Хост: Login: Пользователь: SSH port: SSH порт: Use RSA/DSA key for ssh connection: RSA/DSA ключ для ssh соединения: Try auto login (ssh-agent or default ssh key) Автоматическое соединение с SSH ключом по умолчанию или программой ssh-agent Kerberos 5 (GSSAPI) authentication Авторизация Kerberos 5 (GSSAPI) Delegation of GSSAPI credentials to the server Делегация GSSAPI на сервер Use Proxy server for SSH connection Использовать прокси сервер для SSH соединения Proxy server Прокси сервер SSH SSH HTTP HTTP Same login as on X2Go Server Такое же имя пользователя как на сервере X2Go Same password as on X2Go Server Такой же пароль как на сервере X2Go RSA/DSA key: Ключ RSA/DSA: ssh-agent or default ssh key Автоматическое соединение с SSH ключом по умолчанию или программой ssh-agent Type: Тип: Port: Порт: &Session type &Тип сессии Session type: Тип сессии: Connect to Windows terminal server Соединение с терминальным сервером Windows Custom desktop Другой оконный менеджер Single application Приложение Published applications Удаленные приложения Command: Команда: Advanced options... Продвинутые установки... Path to executable Путь к исполняемому файлу Direct RDP Connection Прямое RDP соединение RDP port: RDP порт: Open picture Открыть изображение Pictures Изображения Open key file Открыть файл с ключом Try auto login (via SSH Agent or default SSH key) SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection All files Все файлы X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Server: Сервер: rdesktop command line options: Опции командной строки rdesktop: New session Новая сессия Connect to local desktop Соединение с локальным десктопом XDMCP server: Сервер XDMCP: XDMCP XDMCP Error Ошибка x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient запущен в "переносимом" режиме. Пожалуйста выберите путь находящийся в пределах используемого носителя для того, что бы всегда иметь доступ к Вашим данным SettingsWidget &Display &Дисплей &Keyboard &Клавиатура Sound Звук &Clipboard Mode &Буфер Обмена Bidirectional copy and paste Двусторонний буфер обмена Copy and paste from client to server Копирование и вставка с сервера на клиент Copy and paste from server to client Копирование и вставка с клиента на сервер Disable clipboard completely Деактивировать буфер обмена Auto detect keyboard settings Автоматическая настройка клавиатуры Do not configure keyboard Не настраивать клавиатуру Configure keyboard Настроить клавиатуру Model: Модель: Layout: Раскладка: Variant: Вариант: RDP Client Клиент RDP &Clipboard mode Fullscreen Полноэкранный режим Custom Другой Window Окно Use whole display Использовать весь дисплей Maximum available Максимально доступное Set display DPI Установить DPI Xinerama extension (support for two or more physical displays) Xinerama (поддержка двух и более физических дисплеев) Width: Ширина: Height: Высота: &Display: &Дисплей: &Identify all displays &Идентифицировать дисплеи Auto-detect keyboard settings RDP client Keep current keyboard Settings Использовать текущие установки Keyboard layout: Раскладка Клавиатуры: Keyboard model: Модель клавиатуры: Enable sound support Активировать звук Start sound daemon Запускать звуковой сервер Use running sound daemon Использовать запущенный звуковой сервер Use SSH port forwarding to tunnel sound system connections through firewalls Использовать SSH туннель для звуковой системы Use default sound port Использовать порт по умолчанию Sound port: Порт: Client side printing support Печать на стороне клиента Additional parameters: Дополнительные параметры: Command line: Командная строка: us ru pc105/us pc105/ru password пароль ShareWidget &Folders &Каталоги Path Расположение Automount Соединять автоматически Add Добавить Delete Удалить Path: Расположение: Use ssh port forwarding to tunnel file system connections through firewalls Использовать SSH туннель для экспорта файловой системы Select folder Выбор каталога Filename encoding Кодировка имен файлов Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. WINDOWS-1252 WINDOWS-1251 ISO8859-1 KOI8-R local: локальная: remote: удалённая: Error Ошибка x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient запущен в "переносимом" режиме. Пожалуйста выберите путь находящийся в пределах используемого носителя для того, что бы всегда иметь доступ к Вашим данным SshMasterConnection SSH proxy connection error Ошибка соединения с SSH прокси сервером SSH proxy connection error. SSH proxy connection error: Ошибка соединения с SSH прокси сервером: Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. Failed to create SSH proxy tunnel Ошибка создания SSH прокси тунеля Can not connect to proxy server Невозможно присоединиться к прокси серверу Failed to start SSH Client. Please check your installation and GSSApi configuration Невозможно запустить клиент SSH. Проверте настройки GSSAPI Check your GSSApi configuration or choose another authentication method Проверте настройки GSSAPI или выберите другой метод авторизации Cannot connect to channel_request_exec failed SshProcess Error creating socket. Error binding XSettingsWidget Open File Открыть Файл Executable (*.exe) Исполняемый файл (*.exe) XSettingsWidgetUI Form Форма You must restart the X2Go Client for the changes to take effect Перезапустите программу, что бы изменения вступили в силу use integrated X-Server использовать встроенный X-Server do not use primary clipboard Не использовать первичный буффер обмена use custom X-Server использовать другой X-Server custom X-Server Другой X-Сервер executable: Исполняемый файл: start X-Server on X2Go Client start запускать X-Server при запуске X2Go Client command line options: аргументы командной строки: X-Server command line options Опции командной строки X-Server window mode: оконный режим: fullscreen mode: полноэкранный режим: single application: приложение: whole display: sshProcess Unable to create: Невозможно создать: Yes Да No Нет Unable to write: Невозможно записать: Error Ошибка Cannot create temporary file Невозможно создать временный файл x2goclient-4.0.5.1/res/i18n/x2goclient_sv.ts0000644000000000000000000057326612675050177015366 0ustar AppDialog Published Applications Publicerade applikationer Search: Sök: &Start &Starta &Close S&täng Multimedia Ljud och video Development Programmering Education Utbildning Game Spel Graphics Grafik Network Nätverk Office Kontor Settings Inställningar System System Utility Verktyg Other Övrigt BrokerPassDialogUi Dialog Dialog Old password: Gammalt lösenord: New password: Nytt lösenord: Confirm password: Bekräfta lösenord: TextLabel TextLabel BrokerPassDlg Passwords do not match Lösenorden matchar inte CUPSPrintWidget Form Formulär Name: Namn: Properties Inställningar State: Status: Accepting jobs: Mottar jobb: Type: Typ: Location: Placering: Comment: Kommentar: Idle Vilande Printing Skriver ut Stopped Stoppad Yes Ja No Nej CUPSPrinterSettingsDialog No option selected Inget valt This value is in conflict with another option. Detta värde är i konflikt med en annan option. Options conflict. Optionskonflikt. This value is in conflict with other option Detta värde är i konflikt med ett annat värde Options conflict Värdekonflikt ConTest Connectivity test Anslutningstest HTTPS connection: HTTPS-anslutning: SSH connection: SSH-anslutning: Connection speed: Anslutningshastighet: Failed Misslyckades 0 Kb/s 0 kB/s OK OK Socket operation timed out. Socketoperation överskred tidsgräns. Socket operation timed out Couldn't find a good translation for socket Socketoperation överskred tidsgräns Failed: Misslyckades: ConfigDialog General Allmänna Display icon in system tray Visa ikon i systemfältet Hide to system tray when minimized Dölj i systemfältet när minimerad Hide to system tray when closed Dölj i systemfältet när stängd Hide to system tray after connection is established Dölj i systemfältet när anslutning har upprättats Restore from system tray after session is disconnected Återställ från systemfältet när session kopplats från Use LDAP Använd LDAP Server URL: Server URL: BaseDN: Bas DN: Failover server 1 URL: Redundant server 1 URL: Failover server 2 URL: Redundant server 2 URL: X.Org Server settings X.Org serverinställningar Clientside (local) SSH daemon port for file system export usage: SSH-port på klienten för export av filsystem: Pulseaudio settings Pulseaudio inställningar Disable audio input Deaktivera ljudingång <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> <font size="5">Du måste starta om X2Go-klienten för att ändringar ska aktiveras</font><br><br> Your XQuartz version is too old. Din XQuartz-version är för gammal. Your are using XQuartz (X Window System Server for OS X) version Du använder XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> . Denna version orsakar problem med X-applikationer i 24-bitars färg. Du bör uppdatera din X11-miljö. MacPorts-användare, följ denna instruktion: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Användare som har installera XQuartz via installationspaketet kan hitta uppdaterade versioner här: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. Ingen giltig XQuartz-applikation vald. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> Du valde inte en giltig XQuartz-applikation. Var vänlig försök igen. Några vanliga installationssökvägar är: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings X-server inställningar X11 application: X11-applikation: X11 version: X11-version: Find X11 application Hitta X11-applikation Clientside SSH port for file system export usage: SSH-port på klienten för export av filsystem: Start session embedded inside website Starta session inuti webbplats Advanced options Avancerade alternativ Defaults Standardinställningar &OK &OK &Cancel &Avbryt Settings Inställningar Printing Utskrifter Warning Varning x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient kunde inte hitta någon X11-applikation. Installera Apple X11 eller ange sökväg till applikationen Your are using X11 (Apple X-Window Server) version Du använder X11 (Apple X-Windows Server) version . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). Denna version orsakar problem med X11-applikation i 24-bitars färgdjup. Du bör uppdatera din X11-miljö (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Ingen X11-applikation hittades i angiven sökväg &Connection &Anslutning &Input/Output &In-/Utdata &Media &Multimedia &Settings &Inställningar ConnectionWidget &Connection speed &Anslutningshastighet Connection speed: Anslutningshastighet: C&ompression K&omprimering Method: Metod: Compression method: Komprimeringsmetod: Image quality: Bildkvalitet: CupsPrinterSettingsDialog Dialog Dialog General Allmänt Page size: Sidstorlek: Paper type: Papperstyp: Paper source: Papperskälla: Duplex Printing Dubbelsidig utskrift None Ingen Long side Långsida Short side Kortsida Driver settings Drivrutinsinställningar Option Alternativ Value Värde No option selected Inget alternativ valt text text EditConnectionDialog &Session &Session &Connection &Anslutning &Input/Output &In-/Utdata &Media &Multimedia &Shared folders &Delade mappar &OK &OK &Cancel A&vbryt Defaults Standardinställningar Session preferences - Sessionsinställningar - ExportDialog &Cancel &Avbryt &share &Dela &Preferences ... &Inställningar... &Custom folder ... &Anpassad mapp... Delete Delete Radera Share Folders Dela mappar share folders Dela mappar Select folder Välj mapp FolderButton Sessions folder Sessionsmapp FolderExplorer Folders Mappar Create New Folder Skapa ny mapp Rename Folder... Döp om mapp... Change Icon... Ändra ikon... Delete Folder... Ta bort mapp... Rename Folder ... Döp om mapp... Change Icon ... Ändra ikon... Delete Folder ... Ta bort mapp... Open picture Öppna bild Pictures Bilder X2Go Client X2Go-klient Folder Name: Mappnamn: Error Fel Unable to remove " Kunde ej ta bort " ". Folder is not empty. Please remove the contents of this directory and try again. ". Mappen är inte tom. Var vänlig töm mappen och försök igen. ". Folder is not empty. Please remove content of folder and try again. ". Mappen är inte tom. Var vänlig töm mappen och försök igen. Delete folder " Ta bort mapp " New Folder Ny mapp HelpDialog Options Alternativ HttpBrokerClient us Swedish keyboard layout se pc105/us Swedish keyboard model pc105/se Error Fel Login failed!<br>Please try again Inloggning misslyckades!<br>Var god försök igen Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. Din session har kopplats från. För att återansluta sessionen, återgå till inloggningssidan eller ladda om sidan i webbläsaren. Host key for server changed. It is now: Nyckel för server har ändrats. Den är nu: For security reasons, connection will be stopped Anslutningen avbryts av säkerhetsskäl The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Servern svarade inte med förväntad nyckeltyp. Det kan innebära att servern är komprometterad Could not find known host file.If you accept the host key here, the file will be automatically created Hittar ej fil för kända servrar. Om du accepterar serverns nyckel så kommer filen att skapas automatiskt The server is unknown. Do you trust the host key? Public key hash: Okänd server. Litar du på denna nyckel? Publik nyckel: Host key verification failed Verifiering av serverns nyckel misslyckades Yes Ja No Nej Verification code: Verifieringskod: Enter passphrase to decrypt a key Ange lösenord för att dekryptera nyckel Authentication failed Autentisering misslyckades <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Servern använder ett ogiltigt certifikat.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Du bör ej lägga till ett undantag om du inte använder en betrodd uppkoppling eller om du inte brukar få en varning för denna server.</p> Secure connection failed Säker anslutning misslyckades For security reasons, the connection attempt will be aborted. Anslutningen avbryts av säkerhetsskäl. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Servernyckeln för denna server hittades inte men en annan typ av nyckel finns. En angripare kan ha ändrat servernyckel för att lura klienten att nyckeln inte ännu finns. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Hittar ej fil för kända servrar. Om du accepterar serverns nyckel så kommer filen att skapas automatiskt. Host key verification failed. Verifiering av serverns nyckel misslyckades. Authentication failed. Autentisering misslyckades. Login failed!<br>Please try again. Inloggning misslyckades!<br>Var god försök igen. Secure connection failed. Säker anslutning misslyckades. Issued to: Utgivet till: Common Name(CN) Common Name(CN) Organization(O) Organization(O) Organizational Unit(OU) Organizational Unit(OU) Serial Number Serienummer Issued by: Utgivare: Validity: Giltighetstid: Issued on Utgivningsdatum expires on giltigt till Fingerprints: Fingeravtryck: SHA1 SHA1 MD5 MD5 Exit X2Go Client Avsluta X2Go-klienten Add exception Lägg till undantag MediaWidget Sound Ljud Enable sound support Aktivera ljudstöd Start sound daemon Starta ljudserver Use running sound daemon Använd aktiv ljudserver Use SSH port forwarding to tunnel sound system connections through firewalls Använd SSH port forwarding för att tunnla ljudström genom brandväggar Use default sound port Använd standardport för ljud Sound port: Ljudport: Client side printing support Stöd för utskrifter via klienten ONMainWindow Starting x2goclient... Startar x2goclient... us se pc105/us pc105/se X2Go Client X2Go-klient connecting ansluter Internet browser Webbläsare Email client E-postklient OpenOffice.org OpenOffice.org Terminal Terminal Starting x2goclient in portable mode... data directory is: Startar x2goclient i portabelt läge ... datakatalog är: &Settings ... &Inställningar... Support ... Hjälp ... About X2GO client Om X2Go-klient Started x2goclient. Startade x2goclient. Can't load translator: Kan inte ladda översättare: Translator: Översättare: installed. installerad. Share folder... Dela mapp ... Suspend Vila Terminate Avsluta Reconnect Återanslut Detach X2Go window Koppla lös X2Go-fönster Minimize toolbar Minimera verktygsrad Session: Session: &Quit &Avsluta Ctrl+Q Ctrl+Q Quit Avsluta &New session ... &Ny session... Ctrl+N Ctrl+N Session management... Added Alt shortcut, same letter as Ctrl shortcut (like &New session...) S&essionshantering... Ctrl+E Ctrl+E &Create session icon on desktop... S&kapa sessionsgenväg på Skrivbordet... &Set broker password... &Ange agentlösenord... &Connectivity test... &Testa anslutning... Show toolbar Visa verktygsrad About Qt Om Qt Ctrl+Q exit Ctrl+Q Starting X2Go Client... Startar X2Go-klient... Starting X2Go Client in portable mode. Data directory is: Startar X2Go-klient i portabelt läge. Datakatalog är: About X2Go Client Om X2Go-klient Started X2Go Client. Startade X2Go-klient. found. hittad. English language requested, not loading translator. Engelska begärt, laddar inte översättare. Non-fatal: can't load translator: Icke-kritiskt: kan inte ladda översättare: Trying to load language with lower preference, if existent. Försöker ladda språk med lägre preferens, om det finns. Session management ... Sessionshantering... &Create session icon on desktop ... S&kapa sessionsgenväg på Skrivbordet... &Set broker password ... &Ange agentlösenord... &Connectivity test ... &Testa anslutning... &Session &Session &Options &Alternativ &Help &Hjälp Login: Användare: Error Fel Operation failed Operation misslyckades Password changed Lösenord ändrat Wrong password! Fel lösenord! Connecting to broker Ansluter till agent <b>Authentication</b> <b>Autentisering</b> Restore Återställ Not connected Ej ansluten Multimedia Ljud och video Development Programmering Education Utbildning Game Spel Graphics Grafik Network Nätverk Office Kontor Settings Inställningar System System Utility Verktyg Other Övrigt Share folder ... Dela mapp ... A left click hides or restores the window. A right click displays the context menu. Vänster musknapp för att dölja/återställa. Höger musknapp för att visa snabbmeny. Closing X2Go Client ... Stänger X2Go-klient... Finished X2Go Client closing hooks. Slutförde X2Go-klientens avslutshookar. Broker authentication failed! Autentisering till agent misslyckades! no X2Go Server found in LDAP ingen X2Go-server hittades i LDAP Connection error: Anslutningsfel: Couldn't find an SSH connection. Kunde inte hitta en SSH-anslutning. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Detta kan vara en indikation på en "man in the middle"-attack. Någon kan avlyssna kommunikationen. Av säkerhetsskäl är det rekommenderat att du avslutar anslutningen. Vill du avsluta anslutningen? Host key verification failed. Verifiering av serverns nyckel misslyckades. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Servernyckeln hittades inte, men en annan nyckeltyp finns. En attackerare kan ändra typen på servernyckeln för att lura din klient att tro att nyckeln inte ännu finns. Av säkerhetsskäl är det rekommenderat att du avslutar anslutningen. Vill du avsluta anslutningen? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Hittar ej fil för kända servrar. Om du accepterar serverns nyckel så kommer filen att skapas automatiskt. Authentication failed. Autentisering misslyckades. <b>Connection failed.</b> <b>Anslutning misslyckades.</b> No server available. Ingen server tillgänglig. Server not available. Server ej tillgänglig. No accessible desktop found. Inget tillgängligt Skrivbord hittades. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to Ditt nuvarande färgdjup matchar inte X2Go-sessionens färgdjup. Det kan orsaka problem vid återanslutning av sessionen och i de flesta fall <b>förlorar du sessionen</b> och måste starta en ny! Det är starkt rekommenderat att du ändrar färdgjup till bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? bitar och startar om X.Org-servern innan du återansluter till denna X2Go-session.<br>Återanslut session ändå? Proxy didn't terminate after 3 seconds. Killing the proxy. Proxy avslutade inte efter 3 sekunder. Dödar proxy. Closing X2Go Client because it was started in hidden mode. Avslutar X2Go-klienten eftersom den startades i dolt läge. Closing X2Go Client because the --close-disconnect parameter was passed. Avslutar X2Go-klienten eftersom --close-disconnect angavs som inparameter. Are you sure you want to terminate this session? Unsaved documents will be lost. Är du säker på att du vill avsluta sessionen? Data som ej sparats kommer att förloras. <b>Connection failed.</b> : <b>Anslutning misslyckades.</b> : (file does not exist) (filen finns inte) (directory does not exist) (mapp finns inte) Invalid value for parameter "--link". Fel värde för "--link". Invalid value for parameter "--clipboard". Fel värde för argument "--clipboard". Invalid value for parameter "--sound". Fel värde för "--sound". Invalid value for parameter "--geometry". Fel värde för "--geometry". Invalid value for parameter "--set-kbd". Fel värde för "--set-kbd". Invalid value for parameter "--ldap". Fel värde för "--ldap". Invalid value for parameter "--ldap1". Fel värde för "--ldap1". Invalid value for parameter "--ldap2". Fel värde för "--ldap2". Invalid value for parameter "--pack". Fel värde för "--pack". Available pack methods: Tillgängliga kompressionsmetoder: Pack Methods Kompressionsmetoder Option is not available in this build. Alternativet är inte tillgängligt i denna version. Unable to create directory: Kunde ej skapa katalog: Cannot open key: Kan inte öppna nyckel: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>(C) 2005-2016 av <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>X2Go Plugin sponsrades av <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <br>Klient för X2Go. Denna klient kan ansluta till X2Go-servrar och starta/stoppa/återansluta/avsluta (aktiva) sessioner. X2Go-klienten kan spara anslutningsinställningar samt använda LDAP för autentisering. Klienten kan även användas som inloggningsskärm (ersättning för exempelvis XDM). Besök <a href="http://www.x2go.org">projektets hemsida på x2go.org</a> för vidare information. <b>X2Go Client v. <b>X2Go-klient V. Please check LDAP Settings. Kontrollera LDAP-inställningar. Check whether the package providing "scdaemon" is installed. The current search path is: Kontrollera om paket för "scdaemon" är installerat. Aktuell sökväg är: didn't start yet. har inte startat ännu. Unable to read from scdaemon. Kunde ej läsa från scdaemon. No valid card found. Inget giltigt kort hittades. This card is unknown to the X2Go system. Detta kort är okänt för X2Go-systemet. Can't start X.Org Server. Please check your installation. Kan ej starta X.Org-server. Kontrollera installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Servern stöder ej filsystemsexport via SSH-tunnel. Uppdatera till en nyare version av x2goserver. Unable to create SSH tunnel for Folder Sharing and Printing support: Kunde inte skapa SSH-tunnel för mappdelning och skrivarstöd: Unable to read: Kunde ej läsa: Unable to write: Kunde ej skriva: Error getting window geometry. (Did you close the window?) Ett fel uppstod när fönstergeometri hämtades (fönster stängt?) Invalid value for argument "speed" Fel värde för "speed" Applications ... Applikationer... SSH daemon could not be started. Kunde ej starta SSH-demon. SSH daemon is not running. SSH-demon ej aktiv. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Du har aktiverat fjärrutskrift eller mappdelning. Dessa funktioner krävera en aktiv och fungerande SSH-server på din dator. <b>Fjärrutskrift och mappdelning kommer att deaktiveras i denna session.</b> Var vänlig kontrollera <b>SSH port</b> i inställningarna. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Detta ska normalt sett inte hända eftersom X2Go klient för Windows har en intern SSH-server. Om du ser detta meddelande, rapportera en bugg på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. SSH-servern startade inte. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go-klienten hittade ingen SSH server på din dator och kunde inte starta en egen. Var vänlig rapportera en bugg på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. SSH-servern är inte igång. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Har ingen OS X-maskin att kontrollera svenska termer mot. På OS X, var vänlig följ dessa steg för att aktivera SSH-service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Var vänlig be din systemadministratör att installera en SSH-server på din dator. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. Deaktivering av fjärrutskrift eller mappdelning i sessionsinställningarna blockerar detta meddelande. SSH daemon failed to open its public host key. SSH kunde inte öppna sin publika nyckel. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Du har aktiverat fjärrutskrift eller mappdelning. Dessa funktioner kräver en aktiv och fungerande SSH-server på din dator. <b>Utskrifter och mappdelning inaktiveras i denna session.</b> SSH-servern är inte korrekt konfigurerad. Var vänlig kontrollera att serverns publika nyckel finns. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> Normalt sett ska detta inte hända eftersom X2Go-klient för Windows har en egen SSH-server och automatiskt genererar nödvändiga nycklar. Om du ser detta meddelande, var vänlig rapportera en bugg på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go-klienten kunde inte skapa servernycklar för SSH. Var vänlig rapportera en bugg på: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p På OS X, följ dessa steg för att generera nycklar:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> Var vänlig be din systemadministratör att generera nödvändiga servernycklar. Om du är administratör, var vänlig kör: <center><b>sudo ssh-keygen -A</b></center> SSH daemon failed to open the application's authorized_keys file. SSH kunde inte öppna applikationens authorized_keys-fil. Left mouse button to hide/restore - Right mouse button to display context menu Vänster musknapp för att dölja/återställa - Höger musknapp för att visa snabbmeny Closing x2goclient... Stänger x2goclient... Closed x2goclient. Stängt x2goclient. Please check LDAP settings Kontrollera LDAP-inställningar no X2Go server found in LDAP ingen X2Go-server hittades i LDAP Create session icon on desktop Skapa sessionsgenväg på Skrivbordet Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivbordsgenvägar kan konfigureras att inte visa X2Go-klienten (dolt läge). Om du vill aktivera den funktionen måste du använda inloggning med GPG-nyckel, GPG-smartkort eller SSH-nyckel. Använd dolt läge? Show session tray icon when running Visa ikon i systemfältet när aktiv New Session Ny session X2Go Link to session Länk till X2Go-session No X2Go sessions found, closing. Inga X2Go-sessioner hittades, stänger. wrong value for argument"--clipboard" fel värde för argument "--clipboard" SSH Error SSH-fel SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH-kunde inte startas. Du behöver SSH för skrivar- och fildelning. Normalt sett ska detta inte ske eftersom X2Go-klienten för Windows innehåller en egen sshd.exe. Om du ser detta meddelande, rapportera en bugg i X2Go:s bugghanteringssystem. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH är inte igång. Du behöver SSH för skrivar- och fildelning. Var vänlig be din systemadministratör att tillhandahålla SSH på din dator. SSH daemon failed to open the application's public host key. SSH kunde inte öppna applikationens publika servernyckel. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH kunde inte öppna applikationens publika nyckel som används för export av mappar och skrivare. SSH daemon failed to open the application's authoized_keys file. SSH kunde inte öppna applikationens authorized_keys-fil. X2Go sessions not found X2Go-sessioner hittades inte Are you sure you want to delete this session? Är du säker på att du vill radera denna session? KDE KDE RDP connection RDP-anslutning XDMCP XDMCP Connection to local desktop Anslutning till lokalt Skrivbord on Starting connection to server: Startar anslutning till server: to till Connection Error( Anslutningsfel( Couldn't find a SSH connection. Kunde inte hitta en SSH-anslutning. Enter passphrase to decrypt a key Ange lösenord för att dekryptera nyckel Host key for server changed. It is now: Nyckel för server har ändrats. Den är nu: For security reasons, connection will be stopped Anslutningen avbryts av säkerhetsskäl The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Servern svarade inte med förväntad nyckeltyp. Det kan innebära att servern är komprometterad Could not find known host file.If you accept the host key here, the file will be automatically created Hittar ej fil för kända servrar. Om du accepterar serverns nyckel så kommer filen att skapas automatiskt The server is unknown. Do you trust the host key? Public key hash: Okänd server. Litar du på denna nyckel? Publik nyckel: Host key verification failed Verifiering av serverns nyckel misslyckades Verification code: Verifieringskod: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Detta kan vara en indikation på en "man in the middle"-attack. Någon kan avlyssna kommunikationen. Av säkerhetsskäl är det rekommenderat att du avslutar anslutningen. Vill du avsluta anslutningen? Yes Ja No Nej If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Om du accepterar den nya servernyckeln så kan säkerheten i anslutningen vara komprometterad. Vill du uppdatera servernyckeln? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Servernyckeln hittades inte, men en annan nyckeltyp finns. En attackerare kan ändra typen på servernyckeln för att lura din klient att tro att nyckeln inte finns. Av säkerhetsskäl är det rekommenderat att du avslutar anslutningen. Vill du avsluta anslutningen? Authentication failed: Autentisering misslyckades: Authentication failed Autentisering misslyckades Enter password for SSH proxy Ange lösenord för SSH-proxy <b>Connection failed</b> <b>Anslutning misslyckades</b> <b>Wrong password!</b><br><br> <b>Fel lösenord!</b><br><br> Connection failed: Anslutning misslyckades: - Wrong password. - Fel lösenord. unknown okänt No server availabel Ingen server tillgänglig Server not availabel Server ej tillgänglig Select session: Välj session: running aktiv suspended vilande Desktop Skrivbord single application Applikation shadow session Skuggsession Information Information No accessible desktop found Inget tillgängligt Skrivbord hittades Filter Filter Select desktop: Välj Skrivbord: Warning Varning Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Ditt nuvarande färgdjup matchar inte X2Go-sessionens färgdjup. Det kan orsaka problem vid återanslutning av sessionen och i de flesta fall <b>förlorar du sessionen</b> och måste starta en ny! Det är starkt rekommenderat att du ändrar färdgjup till 24 or 32 24 eller 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bitar och startar om X-servern innan du återansluter till denna X2Go-session.<br>Återanslut session ändå? suspending försätter i vila terminating avslutar <b>Wrong Password!</b><br><br> <b>Fel lösenord!</b><br><br> New session started Ny session startad Session resumed Session återupptagen Unable to create folder: Kunde ej skapa katalog: Unable to write file: Kunde ej skriva till fil: Unable to create SSH tunnel for X2Go session (NX) startup: Kunde inte skapa SSH-tunnel för X2Go-sessionsstart (NX): Unable to create SSH tunnel for audio data: Kunde ej skapa SSH-tunnel för ljuddata: failed to start. startade inte. This likely means the binary is not available. The current search path is: Det här betyder sannolikt att binären saknas. Aktuell sökväg är: returned a non-zero exit code or crashed otherwise. returnerade en felkod eller avslutades oväntat. Execution failed, exit code was: Exekvering misslyckades, felkod: didn't start up in time. startade inte i tid. This error shouldn't come up. Det här felet borde inte komma. didn't accept a write operation. accepterade inte en skrivoperation. It is probably not running correctly or crashed in-between. Det är sannolikt inte igång eller har avslutats oväntat. Unable to read from xmodmap. Kunde ej läsa från xmodmap. encountered an unknown error during start up or execution. påträffade ett okänt fel under uppstart eller exekvering. experienced an undefined error. ett odefinierat fel inträffade. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. X2Go-klienten kommer nu att avsluta. Lämna en buggrapport enligt <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Emergency exit. Akut avslut. Waiting for proxy to exit. Väntar på att proxy ska avslutas. Failed, killing the proxy. Misslyckades, dödar proxy. Wrong parameter: Felaktig parameter: Help Hjälp Pack Methodes Packningsmetoder Option is not availabel in this build Alternativet är inte tillgängligt i denna version Changelog Ändringslogg Git Info Git-information Unable to create folder: Kunde inte skapa mapp: Unable to write file: Kunde ej skriva till fil: Attach X2Go window Koppla X2Go-fönster Unable to create SSL tunnel: Kunde ej skapa SSL-tunnel: Unable to create SSL Tunnel: Kunde ej skapa SSL-tunnel: Finished avslutad starting startar resuming återansluter Connection timeout, aborting Anslutning passerade tidsgränsen, avbryter aborting avbryter Are you sure you want to terminate this session? Unsaved documents will be lost Är du säker på att du vill avsluta sessionen? Data som ej sparats kommer att förloras Session Session Display Display Creation time Skapad <b>Connection failed</b> : <b>Anslutning misslyckades</b> : (can't open file) (kan inte öppna fil) (file not exists) (filen finns inte) (directory not exists) (mapp finns inte) wrong value for argument"--link" fel värde för "--link" wrong value for argument"--sound" fel värde för "--sound" wrong value for argument"--geometry" fel värde för "--geometry" wrong value for argument"--set-kbd" fel värde för "--set-kbd" wrong value for argument"--ldap" fel värde för "--ldap" wrong value for argument"--ldap1" fel värde för "--ldap1" wrong value for argument"--ldap2" fel värde för "--ldap2" wrong value for argument"--pack" fel värde för "--pack" wrong parameter: felaktig parameter: Options Alternativ Available pack methodes: Tillgängliga kompressionsmetoder: RSA file empty. RSA-fil tom. Can not open key: Kan inte öppna nyckel: Support Hjälp </b><br> (C. 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (&copy; 2006-2012 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>Klient för X2Go. Denna klient kan ansluta till X2Go-servrar och starta/stoppa/återansluta/avsluta (aktiva) sessioner. X2Go-klienten kan spara anslutningsinställningar samt använda LDAP för autentisering. Klienten kan även användas som inloggningsskärm (ersättning för exempelvis xdm). Besök <a href="http://www.x2go.org">www.x2go.org</a> för vidare information. <b>X2Go Client V. <b>X2Go-klient V. Please check LDAP Settings Kontrollera LDAP-inställningar No valid card found Inget giltigt kort hittades Card not configured. Kort ej konfigurerat. This card is unknown by X2Go system Kortet är okänt Unable to create file: Kunde ej skapa filen: Can't start X server Please check your settings Kan ej starta X-server Kontrollera dina inställningar Can't connect to X-Server Kan ej ansluta till X-server Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings Kan ej ansluta till X-server Kontrollera dina inställningar Can't start X Server Please check your settings Kan ej starta X-server Kontrollera dina inställningar Can't start X Server Please check your installation Kan ej starta X-server Kontrollera installation Unable to execute: Kunde ej exekvera: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Servern stöder ej filsystemsexport via SSH-tunnel Uppdatera till en nyare version av x2goserver Unable to read : Kunde ej läsa : Unable to write : Kunde ej skriva till : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Ett fel uppstod när fönstergeometri hämtades (fönster stängt)? X2Go Session X2Go-session wrong value for argument"speed" fel värde för "speed" Password: Lösenord: Keyboard layout: Swenglish, but commonly used. Tangentbordslayout: Ok OK Cancel Avbryt <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Sessions-ID:<br>Server:<br>Användare:<br>Display:<br>Skapad:<br>Status:</b> Applications... Applikationer... </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (&copy; 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> Abort Avbryt Show details Visa detaljer Resume Återanslut New Ny Full access Fullständig åtkomst View only Endast visa Status Status Command Kommando Type Typ Server Server Client IP Klient-IP Session ID Sessions-ID User Användare Only my desktops Bara mina Skrivbord sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> sshd ej startad, du behöver sshd för utskrifter och fildelning du kan installera sshd med (Debian/Ubuntu) <b>sudo apt-get install openssh-server</b> Restore toolbar Återställ verktygsrad <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Klicka denna knapp&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;för att återställa verktygsrad&nbsp;&nbsp;&nbsp;</b><br> Invalid reply from broker Ogiltigt svar från agent PrintDialog Print - X2Go Client Utskrift - X2Go-klient Print Utskrift You've deactivated the X2Go Client printing dialog. Du har inaktiverat utskriftsdialogen i X2Go. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) Du kan återaktivera denna dialog via X2Go-klientens inställningar (Meny -> Alternativ -> Inställningar) You've deactivated the x2go client printing dialog. Du har inaktiverat utskriftsdialogen i X2Go. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Du kan återaktivera denna dialog via X2Go-klientens inställningar (Meny -> Alternativ -> Inställningar) PrintProcess Save File Spara fil PDF Document (*.pdf) PDF-dokument (*.pdf) Failed to execute command: Kunde ej exekverka kommando: Printing error. Utskriftsfel. Printing error Utskriftsfel PrintWidget Form Formulär Print Skriv ut View as PDF Visa som PDF Print settings Utskriftsinställningar Printer: Skrivare: Print using default Windows PDF Viewer (Viewer application needs to be installed) Skriv ut via Windows standard PDF-visare (PDF-visare måste installeras) Printer command: Utskriftskommando: ... ... Viewer settings Inställningar för visning Open in viewer application Öppna i applikation Command: Kommando: Save to disk Spara till disk Show this dialog before start printing Visa denna dialog innan utskrift 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>. 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>. 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>. 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>. PrinterCmdDialog Printer command Utskriftskommando Command Kommando Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Ange anpassat utskriftskommando. Exempel: kprinter lpr -P hp_laserjet Output format Utskriftsformat Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Välj filformat för utskrift (om du använder CUPS så kan du använda PDF) PDF PDF PS PS Data structure Datastruktur Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Välj metod för utskrift av fil (vissa kommandon har egna parametrar för utskrift, andra väntar på indata): standard input (STDIN) Indata (STDIN) Specify path as program parameter Ange sökväg som programparameter Please enter your customized or individual printing command. Example: Ange anpassat utskriftskommando. Exempel: <Path to gsprint.exe> -query -color <Sökväg till gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Inget svar från fjärrserver. Vill du avsluta den aktuella sessionen? X2Go Client could not find any suitable X11 server. X2Go-klienten kunde inte hitta en lämplig X11-server. X2Go Client could not start X11 server. X2Go-klienten kunde inte starta X11-server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: Looks like you stopped in-between in the second paragraph, so marking as unfinished. X2Go-klienten kräver XQuartz. Om XQuartz finns installerat på ditt system, var vänlig välj korrekt sökväg i kommande dialog. Se slutet på detta meddelande för exempel på sökvägar, Om du <b>inte</b> har installerat XQuartz ännu, var vänlig följ dessa steg: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> MacPorts-användare, var vänlig installera <b>xorg-server</b> eller <b>xorg-server-devel</b>. Var vänlig följ instruktionerna från port-verktyget för att autostarta servern. Alla andra användare, var vänlig hämta och installera XQuartz från: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Starta sedan om X2Go-klient och välj korrekt sökväg till X11-applikationen i inställningara för X2Go-klient. Det är mest troligt <center><b>/Applications/MacPorts/X11.app</b></center> eller <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Sessionsinställningar... Create session icon on desktop... Skapa sessionsgenväg på Skrivbordet... Session preferences ... Sessionsinställningar... Create session icon on desktop ... Skapa sessionsgenväg på Skrivbordet... Delete session Radera session Session actions Sessionshantering Select type Välj typ Select resolution Välj upplösning Toggle sound support Växla ljudstöd New Session Ny session running aktiv suspended vilande KDE KDE RDP connection RDP-anslutning XDMCP XDMCP Connection to local desktop Anslutning till lokalt Skrivbord Published applications Publicerade applikationer fullscreen Fullskärm Display Display window fönster Maximum Maximerad Enabled Disabled Av SessionExplorer Back Tillbaka Create session icon on desktop Skapa sessionsgenväg på Skrivbordet Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Skrivbordsgenvägar kan konfigureras att inte visa X2Go-klienten (dolt läge). Om du vill aktivera den funktionen måste du använda inloggning med GPG-nyckel eller GPG-smartkort. Använd dolt läge? Create session icon on desktop. Skapa sessionsgenväg på Skrivbordet. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Skrivbordsgenvägar kan konfigureras att inte visa X2Go-klienten (dolt läge). Om du vill aktivera den funktionen måste du använda inloggning med GPG-nyckel eller GPG-smartkort. Använd dolt läge? Show session tray icon when running Visa ikon i systemfältet när aktiv New Session Ny session X2Go Link to session Länk till X2Go-session Are you sure you want to delete this session? Är du säker på att du vill radera denna session? SessionManageDialog E&xit &Avbryt &New session &Ny session &Session preferences There are "..." on every other button so why not here ... &Sessionsinställningar... &Delete session &Radera session &Create session icon on desktop ... S&kapa sessionsgenväg på Skrivbordet... &Create session icon on desktop... S&kapa sessionsgenväg på Skrivbordet... Delete Delete Radera Session management Sessionshantering SessionWidget Session name: Sessionsnamn: << change icon << klicka för att ändra ikon Path: Sökväg: &Server &Server Host: Servernamn: Login: Användare: SSH port: SSH-port: Use RSA/DSA key for ssh connection: Använd denna RSA-/DSA-nyckel för SSH-anslutning: Try auto login (ssh-agent or default ssh key) Prova automatisk inloggning (ssh-agent eller standard SSH-nyckel) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI)-autentisering Delegation of GSSAPI credentials to the server Delegering av GSSAPI autentiseringsuppgifter till server Use Proxy server for SSH connection Använd proxyserver för SSH-anslutning Proxy server Proxyserver SSH SSH HTTP HTTP Same login as on X2Go Server Samma inloggning som för X2Go Server Same password as on X2Go Server Samma lösenord som för X2Go Server RSA/DSA key: RSA-/DSA-nyckel: X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go-klienten körs i portabelt läge. Du bör använda en sökväg till en USB-enhet för att möjliggöra flyttbara inställningar. ssh-agent or default ssh key ssh-agent eller standard SSH-nyckel Type: Typ: Port: Port: &Session type &Sessionstyp Session type: Sessionstyp: Connect to Windows terminal server Anslut till Windows Terminal Server (RDP) XDMCP XDMCP Connect to local desktop Anslut till lokalt Skrivbord Custom desktop Anpassat Skrivbord Single application Applikation Published applications Publicerade applikationer Command: Kommando: Advanced options... Avancerade alternativ... Path to executable Sökväg till exekverbar fil Direct RDP Connection Direktanslutning via RDP RDP port: RDP-port: Open picture Öppna bild Pictures Bilder Open key file Öppna nyckelfil Try auto login (via SSH Agent or default SSH key) Prova automatisk inloggning (ssh-agent eller standard SSH-nyckel) SSH Agent or default SSH key ssh-agent eller standard SSH-nyckel Connect to Windows Terminal Server Anslut till Windows Terminal Server (RDP) Direct RDP connection Direktanslutning via RDP All files Alla filer Error Fel x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go-klienten körs i portabelt läge. Du bör använda en sökväg till en USB-enhet för att möjliggöra flyttbara inställningar Server: Server: XDMCP server: XDMCP-server: rdesktop command line options: rdesktop kommandoradsalternativ: New session Ny session SettingsWidget &Display &Skärm &Keyboard &Tangentbord Sound Ljud &Clipboard Mode &Urklippsläge Bidirectional copy and paste Dubbelriktad klippa och klistra Copy and paste from client to server Klippa och klistra från klient till server Copy and paste from server to client Klippa och klistra från server till klient Disable clipboard completely Deaktivera Urklipp helt Auto detect keyboard settings Detektera tangentbordsinställningar automatiskt Do not configure keyboard Konfigurera inte tangentbordet Configure keyboard Konfigurera tangentbordet Model: Modell: Layout: Layout: Variant: Variant: RDP Client RDP-klient &Clipboard mode &Urklippsläge Fullscreen Fullskärm Custom Anpassad Window Fönster Use whole display Använd hela skärmen Maximum available Maximerad Set display DPI Ange skärmupplösning (DPI) Xinerama extension (support for two or more physical displays) Xinerama (stöd för två eller fler skärmar) Width: Bredd: Height: Höjd: &Display: &Skärm: &Identify all displays &Identifiera alla skärmar Auto-detect keyboard settings Detektera tangentbordsinställningar automatiskt RDP client RDP-klient Keep current keyboard Settings Behåll aktuella tangentbordsinställningar Keyboard layout: Tangentbordslayout: Keyboard model: Tangentbordsmodell: Enable sound support Aktivera ljudstöd Start sound daemon Starta ljudserver Use running sound daemon Använd aktiv ljudserver Use SSH port forwarding to tunnel sound system connections through firewalls Couldn't find a good translation for port forwarding. Använd SSH port forwarding för att tunnla ljudström genom brandväggar Use default sound port Använd standardport för ljud Sound port: Ljudport: Client side printing support Stöd för utskrifter via klienten Additional parameters: Extra parametrar: Command line: Kommandorad: us se pc105/us pc105/se password lösenord ShareWidget &Folders &Mappar Path Sökväg Automount Montera automatiskt Add Lägg till Delete Radera Path: Sökväg: Filename encoding Kodtabell för filnamn local: lokal: remote: fjärr: Use SSH port forwarding to tunnel file system connections through firewalls Använd SSH port forwarding för att tunnla filsystemsanslutningar genom brandväggar X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. X2Go-klienten körs i portabelt läge. Du bör använda en sökväg till en USB-enhet för att möjliggöra flyttbara inställningar. Use ssh port forwarding to tunnel file system connections through firewalls Använd SSH port forwarding för att tunnla filsystemsanslutningar genom brandväggar Select folder Välj mapp Error Fel x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go-klienten körs i portabelt läge. Du bör använda en sökväg till en USB-enhet för att möjliggöra flyttbara inställningar WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection SSH proxy connection error Anslutningsfel SSH-proxy SSH proxy connection error. Anslutningsfel SSH-proxy. SSH proxy connection error: Anslutningsfel SSH-proxy: Failed to create SSH proxy tunnel. Kunde ej skapa SSH-proxytunnel. Cannot initialize libssh. Kan ej initialisera libssh. Cannot create SSH session. Kan ej skapa SSH-session. Cannot connect to proxy server. Kan ej ansluta till proxyserver. Authentication failed. Autentisering misslyckades. Failed to start SSH client. Please check your installation and GSSApi configuration. Start av SSH-klient misslyckades. Kontrollera din installation och GSSApi-konfiguration. Check your GSSApi configuration or choose another authentication method. Kontrollera din GSSApi-konfiguration eller välj en annan autentiseringsmetod. Cannot open file Kan inte öppna fil Cannot create remote file Kan inte skapa fjärrfil Cannot write to remote file Kan inte skriva till fjärrfil channel_open_forward failed. channel_open_forward misslyckades. channel_open_session failed. channel_open_session misslyckades. Error writing to socket. Ett fel uppstod vid skrivning till socket. Error reading channel. Ett fel uppstod när kanal skulle läsas. channel_write failed. channel_write misslyckades. Error reading from TCP socket. Ett fel uppstod när TCP-socket skulle läsas. Failed to create SSH proxy tunnel Kunde ej skapa SSH-proxytunnel Can not initialize libssh Kan ej initialisera libssh Can not create ssh session Kan ej skapa SSH-session Can not connect to proxy server Kan ej ansluta till proxyserver Can not connect to Kan inte ansluta till Authentication failed Autentisering misslyckades channel_forward_listen failed channel_forward_listen misslyckades Failed to start SSH Client. Please check your installation and GSSApi configuration Start av SSH-klient misslyckades. Kontrollera din installation och GSSAPI-konfiguration Check your GSSApi configuration or choose another authentication method Kontrollera din GSSAPI-konfiguration eller välj en annan autentiseringsmetod Can not open file Kan inte öppna fil Can not create remote file Kan inte skapa fjärrfil Can not write to remote file Kan inte skriva till fjärrfil Cannot connect to kan inte ansluta till channel_open_forward failed channel_open_forward misslyckades channel_open_session failed channel_open_session misslyckades channel_request_exec failed channel_request_exec misslyckades error writing to socket ett fel uppstod vid skrivning till socket error reading channel ett fel uppstod när kanal skulle läsas channel_write failed channel_write misslyckades error reading tcp socket ett fel uppstod när tcp socket skulle läsas SshProcess Error creating socket Ett fel uppstod när socket skulle skapas Error creating socket. Ett fel uppstod när socket skulle skapas. Error binding Ett fel uppstod vid anslutning till socket XSettingsWidget Open File Öppna fil Executable (*.exe) Exekverbar (*.exe) XSettingsWidgetUI Form Formulär You must restart the X2Go Client for the changes to take effect Du måste starta om X2Go-klienten för att ändringar ska aktiveras use integrated X-Server använd integrerad X-server do not use primary clipboard använd inte primär urklippsbuffert use custom X-Server använd anpassad X-server custom X-Server anpassad X-server executable: Binär: start X-Server on X2Go Client start starta X-server när X2Go-klienten startas command line options: Kommandoradsalternativ: X-Server command line options Kommandoradsalternativ för X-server window mode: Fönsterläge: fullscreen mode: Fullskärmsläge: single application: Applikation: whole display: använd hela skärmen: x2goclient-4.0.5.1/res/i18n/x2goclient_tr.ts0000644000000000000000000054141612675050177015353 0ustar AppDialog Published Applications Tanımlı Uygulamalar Search: Ara: &Start &Başlat &Close &Kapat Multimedia Çokluortam Development Geliştirme Education Eğitim Game Oyun Graphics Grafikler Network Office Ofis Settings Ayarlar System Sistem Utility Araç Other Diğer BrokerPassDialogUi Dialog Pencere Old password: Eski parola: New password: Yeni parola: Confirm password: Parola onayla: TextLabel MetinEtiketi BrokerPassDlg Passwords do not match Parolalar eşleşmiyor CUPSPrintWidget Form Biçim Name: İsim: Properties Özellikler State: Durum: Accepting jobs: İşler kabul ediliyor: Type: Tür: Location: Konum: Comment: Açıklama: Idle Boşta Printing Yazdırılıyor Stopped Durduruldu Yes Evet No Hayır CUPSPrinterSettingsDialog No option selected Hiç seçenek seçilmedi This value is in conflict with another option. Options conflict. This value is in conflict with other option Bu değer başka bir seçenek ile çakıyor Options conflict Seçenek çakışması ConTest Connectivity test Bağlantı testi HTTPS connection: HTTPS bağlantısı: SSH connection: SSH bağlantısı: Connection speed: Bağlantı hızı: Failed Başarısız oldu 0 Kb/s 0 Kb/s OK Tamam Socket operation timed out. Socket operation timed out Soket işleminde zaman aşımı Failed: Başarısız: ConfigDialog General Genel Display icon in system tray Sistem çekmecesinde simgeyi göster Hide to system tray when minimized Küçültüldüğünde sistem çekmecesine gizle Hide to system tray when closed Kapatıldığında sistem çekmecesine gizle Hide to system tray after connection is established Bağlantı sağlandıktan sonra sistem çekmecesine gizle Restore from system tray after session is disconnected Bağlantı kesildikten sonra sistem çekmecesine gizle Use LDAP LDAP Kullan Server URL: Sunucu Adresi: BaseDN: BaseDN: Failover server 1 URL: Yük devretme sunucu 1 adresi: Failover server 2 URL: Yük devretme sunucu 2 adresi: X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> &Input/Output &Media X-Server settings X-Sunucu ayarları X11 application: X11 uygulaması: X11 version: X11 sürümü: Find X11 application X11 uygulaması bul Clientside SSH port for file system export usage: Dosya sistemi dışa aktarımı kullanımı için istemci tarafı SSH bağlantı noktası: Start session embedded inside website Oturumu web sayfasına gömülü başlat Advanced options Gelişmiş seçenekler Defaults Varsayılanlar &OK &Tamam &Cancel &İptal Settings Ayarlar Printing Yazdırılıyor Warning Uyarı x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application x2goclient uygun bir X11 Uygulaması bulamadı. Lütfen Apple X11 kurun veya uygulamanın yolunu seçin Your are using X11 (Apple X-Window Server) version Kullandığınız X11 (Apple X-Window Sunucusu) sürümü . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . Bu sürüm 24bit renk kipinde X-uygulamalarıyla sorunlara neden olmaktadır. X11 ortamınızı güncellemelisiniz (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path Seçilen yolda uygun bir X11 uygulaması bulunamadı &Connection &Bağlantı &Settings &Ayarlar ConnectionWidget &Connection speed Bağlantı &hızı Connection speed: Bağlantı hızı: C&ompression Sı&kıştırma Method: Yöntem: Compression method: Sıkıştırma yöntemi: Image quality: Resim kalitesi: CupsPrinterSettingsDialog Dialog Pencere General Genel Page size: Sayfa boyutu: Paper type: Kağıt türü: Paper source: Kağıt kaynağı: Duplex Printing Önlü Arkalı Yazdırma None Hiçbiri Long side Uzun kenar Short side Kısa kenar Driver settings Sürücü ayarları Option Seçenek Value Değer No option selected Hiç seçenek seçilmedi text metin EditConnectionDialog &Session &Oturum &Connection &Bağlantı &Settings &Ayarlar &Input/Output &Media &Shared folders &Klasörleri paylaş &OK &Tamam &Cancel &İptal Defaults Varsayılanlar Session preferences - Oturum tercihleri - ExportDialog &Cancel &İptal &share &paylaş &Preferences ... &Tercihler... &Custom folder ... &Özel klasör ... Delete Delete Sil Share Folders share folders klasörleri paylaş Select folder Klasör seç FolderButton Sessions folder Oturum klasörü FolderExplorer Folders Klasörler Create New Folder Yeni Klasör Oluştur Rename Folder... Klasörü Yeniden Adlandır... Change Icon... Simgeyi Değiştir... Delete Folder... Klasörü Sil... Rename Folder ... Change Icon ... Delete Folder ... Open picture Resmi aç Pictures Resimler X2Go Client X2Go İstemcisi Folder Name: Klasör Adı: Error Hata Unable to remove " Bu dizin silinemiyor " ". Folder is not empty. Please remove the contents of this directory and try again. ". Folder is not empty. Please remove content of folder and try again. ". Dizin boş değil. Lütfen dizinin içeriğini silip tekrar deneyin. Delete folder " Dizini sil " New Folder Yeni Klasör HelpDialog Options Seçenekler HttpBrokerClient Host key for server changed. It is now: Sunucu için konak anahtarı değişti. Şimdiki: For security reasons, connection will be stopped Güvenlik nedenleriyle bağlantı sonlandırılacak The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist Bu sunucu için konak anahtarı bulunamadı, ancak başka bir tür anahtar bulundu. Bir saldırgan istemcinizin anahtarın olmadığını düşünmesini sağlamak için ana sunucunu anahtarını değiştirmiş olabilir. Could not find known host file.If you accept the host key here, the file will be automatically created Bilinen istemciler dosyası bulunamadı. Eğer istemci anahtarını kabul ettiyseniz dosya burada otomatik olarak oluşturulacaktır The server is unknown. Do you trust the host key? Public key hash: Sunucu bilinmiyor. Konak anahtarına güveniyor musunuz? Açık anahtar özeti: Host key verification failed Makine anahtarının doğrulanması başarısız oldu For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Yes Evet No Hayır Host key verification failed. Verification code: Doğrulama kodu: Enter passphrase to decrypt a key Bir anahtarı deşifrelemek için parolayı girin Authentication failed. Login failed!<br>Please try again. Secure connection failed. Common Name(CN) Organization(O) Organizational Unit(OU) Serial Number Issued on expires on SHA1 MD5 MD5 {5 ?} Authentication failed Kimlik doğrulaması başarısız Error Hata Login failed!<br>Please try again Giriş başarısız oldu!<br>Lütfen tekrar deneyin <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>Sunucu geçersiz bir güvenlik sertifikası kullanıyor.</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> <p style='background:#FFFFDC;'>Tamamen güvendiğiniz bir internet bağlantısı kullanmıyorsanız veya bu sunucu için bir uyarı görmeye alışkın değilseniz bir istisna eklememelisiniz.</p> Secure connection failed Güvenli bağlantı hatası Issued to: Yayınlatan: Common Name(CN) Ortak İsim (CN) Organization(O) Kurum (O) Organizational Unit(OU) Kurumsal Birim (OU) Serial Number Seri Numarası Issued by: Yayınlayan: Validity: Geçerlilik: Issued on Yayınlama tarihi expires on Zaman aşımı tarihi Fingerprints: Parmak izi: SHA1 SHA1 MD5 MD5 Exit X2Go Client X2Go İstemcisinden Çık Add exception İstisna ekle MediaWidget Sound Ses Enable sound support Ses desteğini etkinleştir Start sound daemon Ses sürecini başlat Use running sound daemon Çalışan ses sürecini kullan Use SSH port forwarding to tunnel sound system connections through firewalls Güvenlik duvarları üzerinden ses sistemi bağlantılarını tünellemek için ssh port yönlendirmesini kullanın Use default sound port Varsayılan ses portunu kullan Sound port: Ses portu: Client side printing support İstemci tarafı yazdırma desteği ONMainWindow Starting x2goclient... x2goclient istemcisi başlatılıyor... us tr X2Go Client X2Go İstemcisi connecting bağlanıyor Internet browser Internet tarayıcı Email client E-posta istemcisi OpenOffice.org OpenOffice.org Terminal Uçbirim Starting x2goclient in portable mode... data directory is: x2goclient taşınabilir kipte başlatılıyor... veri dizini: &Settings ... &Ayarlar... Support ... Destek ... About X2GO client X2GO istemcisi hakkında Started x2goclient. x2goclient başlatıldı. Can't load translator: Çevirici yüklenemiyor: Translator: Çevirmen: installed. kuruldu. Share folder... Klasör paylaş... Applications... Uygulamalar... Suspend Askıya Al Terminate Sonlandır Reconnect Yeniden bağlan Detach X2Go window X2Go penceresini ayır Minimize toolbar Araç çubuğunu küçült Session: Oturum: &Quit &Çıkış Ctrl+Q Ctrl+Q Quit Çık &New session ... &Yeni oturum ... Ctrl+N Ctrl+N Session management... Oturum yönetimi... Ctrl+E Ctrl+E &Create session icon on desktop... &Masaüstüne oturum simgesi oluştur... &Set broker password... &Aracı parolası ata... &Connectivity test... &Bağlantı testi... Show toolbar Araç çubuğunu göster About Qt Qt Hakkında Ctrl+Q exit Ctrl+Q Starting X2Go Client... Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... &Session &Oturum &Options &Seçenekler &Help &Yardım Login: Giriş: Error Hata Operation failed İşlem başarısız oldu Password changed Parola değiştirildi Wrong password! Yanlış parola! Connecting to broker Aracıya bağlanıyor <b>Authentication</b> <b>Kimlik Doğrulama</b> Restore Geri Yükle Not connected Bağlı değil Multimedia Çokluortam Development Geliştirme Education Eğitim Game Oyun Graphics Grafikler Network Office Ofis Settings Ayarlar System Sistem Utility Araç Other Diğer Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! no X2Go Server found in LDAP Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" SSH daemon failed to open the application's authorized_keys file. Left mouse button to hide/restore - Right mouse button to display context menu Gizlemek/geri yüklemek için farenin sol tuşu - İçerik menüsünü görüntülemek için farenin sağ tuşu Closing x2goclient... x2goclient kapatılıyor... Closed x2goclient. x2goclient kapatıldı. Please check LDAP settings Lütfen LDAP ayarlarını kontrol edin no X2Go server found in LDAP LDAP'ta X2Go sunucusu yok No X2Go sessions found, closing. X2Go oturumu bulunamadı, kapatılıyor. KDE KDE RDP connection RDP bağlantısı XDMCP XDMCP Connection to local desktop Yerel masa üstüne bağlantı on üzerinde Starting connection to server: Sunucuya bağlantı başlatılıyor: to sunucusuna Connection Error( Bağlantı Hatası( Couldn't find a SSH connection. Bir SSH bağlantısı bulunamadı. Verification code: Doğrulama kodu: Enter passphrase to decrypt a key Anahtarı deşifrelemek için parola girin Host key for server changed. It is now: Sunucunun konak anahtarı değişti. Şimdiki: This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Bu aradaki adam saldırısının bir göstergesi olabilir. Biri trafiğinizi dinliyor olabilir. Güvenlik nedenleriyle bağlantıyı sonlandırmanız önerilir. Bağlantıyı sonlandırmak istiyor musunuz? Host key verification failed Makine anahtarının doğrulanması başarısız oldu Yes Evet No Hayır If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Yeni konak anahtarını kabul ederseniz bağlantınızın güvenliği tehlikede olabilir. Konak anahtarını güncellemek istiyor musunuz? The host key for this server was not found but an othertype of key exists. An attacker might change the default server key to confuse your client into thinking the key does not exist. For security reasons, it is recommended to stop the connection. Do you want to terminate the connection? Bu sunucu için konak anahtarı bulunamadı, ancak başka bir tür anahtar bulundu. Bir saldırgan istemcinizin anahtarın olmadığını düşünmesini sağlamak için ana sunucunu anahtarını değiştirmiş olabilir. Güvenlik nedenleriyle bağlantıyı sonlandırmanız önerilir. Bağlantıyı sonlandırmak istiyor musunuz? Could not find known host file.If you accept the host key here, the file will be automatically created Bilinen istemciler dosyası bulunamadı. Eğer istemci anahtarını kabul ettiyseniz dosya burada otomatik olarak oluşturulacaktır The server is unknown. Do you trust the host key? Public key hash: Sunucu bilinmiyor. İstemci anahtarına güveniyor musunuz? Açık anahtarın özeti: Authentication failed: Kimlik doğrulama başarısız oldu: Authentication failed Kimlik doğrulama başarısız Enter password for SSH proxy Vekil SSH için parola girin <b>Connection failed</b> <b>Bağlantı başarısız</b> <b>Wrong password!</b><br><br> <b>Yanlış parola!</b><br><br> Connection failed: Bağlantı başarısız: - Wrong password. - Yanlış parola. unknown bilinmeyen No server availabel Erişilebilir sunucu yok Server not availabel Sunucu erişilebilir değil Select session: Oturumu başlat: running çalışıyor suspended bekletiliyor Desktop Masaüstü single application tek uygulama shadow session gölge oturumu Information Bilgi No accessible desktop found Erişilebilir masaüstü bulunamadı Filter Filtre Select desktop: Masaüstü seçin: Warning Uyarı Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to Geçerli renk derinliğiniz x2go oturumunuzdakinden farklı. Bu oturuma yeniden bağlanmanızda sorunlara yol açabilir ve çoğu durumda <b>oturumunuzu kaybedersiniz</b> ve yeni bir oturum başlatmanız gerekir! Renk derinliğinizi şuna değiştirmeniz şiddetle önerilir 24 or 32 24 veya 32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? bit ve bu x2go oturumuna yeniden bağlanmadan X sunucunuzu yeniden başlatın.<br>Oturuma yine de devam edilsin mi? suspending bekletiliyor terminating sonlandırılıyor <b>Wrong Password!</b><br><br> <b>Hatalı Parola!</b><br><br> New session started Yeni oturum başlatıldı Session resumed Oturuma geri dönüldü Unable to create folder: Klasör oluşturulamadı: Unable to write file: Dosya yazılamıyor: Attach X2Go window X2Go penceresine ekle Unable to create SSL tunnel: SSL tüneli oluşturulamadı: Unable to create SSL Tunnel: SSL Tüneli oluşturulamadı: Emergency exit. Acil çıkış. Waiting for proxy to exit. Çıkış için vekil sunucu bekleniyor. Failed, killing the proxy. Başarısız oldu, vekil sunucu durduruluyor. Finished Tamamlandı starting başlatılıyor resuming devam ediliyor Connection timeout, aborting Bağlantı zaman aşımına uğradı, iptal ediliyor aborting iptal ediliyor Are you sure you want to terminate this session? Unsaved documents will be lost Bu oturumu sonlandırmak istediğinizden emin misiniz? Kaydedilmemiş belgeler kaybolacak Session Oturum Display Göster Creation time Oluşturma zamanı <b>Connection failed</b> : <b>Bağlantı başarısız</b> : (can't open file) (dosya açılamıyor) (file not exists) (dosya yok) (directory not exists) (dizin mevcut değil) wrong value for argument"--link" "--link" değişkeni için hatalı değer wrong value for argument"--clipboard" "--clipboard" değişkeni için hatalı değer wrong value for argument"--sound" "--sound" değişkeni için hatalı değer wrong value for argument"--geometry" "--geometry" değişkeni için hatalı değer wrong value for argument"--set-kbd" "--set-kbd" değişkeni için hatalı değer wrong value for argument"--ldap" "--ldap" değişkeni için hatalı değer wrong value for argument"--ldap1" "--ldap1" değişkeni için hatalı değer wrong value for argument"--ldap2" "--ldap2" değişkeni için hatalı değer wrong value for argument"--pack" "--pack" değişkeni için hatalı değer Wrong parameter: Yanlış parametre: Help Yardım Available pack methodes: Kullanılabilir paketleme yöntemleri: Pack Methodes Paketleme Yöntemleri Option is not availabel in this build Bu inşa için özellik kullanılabilir değil Changelog Değişim günlüğü Git Info Git Bilgisi Unable to create folder: Dizin oluşturulamadı: RSA file empty. RSA dosyası boş. Can not open key: Anahtar açılamıyor: Support Destek </b><br> (C. 2005-2016 <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> </b><br> (C. 2005-2016 <b>açıkça iyi</b>: Oleksandr Shneyder, Heinz-Markus Graesing)<br> <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br> x2goplugin kipi <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a> tarafından desteklenmektedir<br> <br>Client for use with the X2Go network based computing environment. This Client will be able to connect to X2Go server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore it can be used as fullscreen loginscreen (replacement for loginmanager like xdm). Please visit x2go.org for further information. <br>X2Go ağını temel alan hesaplama ortamını kullanan istemci. Bu İstemci X2Go sunucu(lar)ına bağlanabilir ve masaüstü oturumlarını başlatabilir, durdurabilir, oturumlara geri dönebilir ve çalışan oturumları sonlandırabilir. X2Go İstemcisi farklı sunucu bağlantılarını saklayabilir ve LDAP dizinlerinden veri ile otomatik kimlik doğrulama talep edebilir. Bunun yanında tam ekran oturum açma ekranı (xdm gibi yazılımların yerine) olarak da kullanılabilir. Daha fazla bilgi için lütfen x2go.org adresini ziyaret edin. <b>X2Go Client V. <b>X2Go İstemcisi V. Please check LDAP Settings Lütfen LDAP Ayarlarını kontrol edin No valid card found Geçerli kart bulunamadı Card not configured. Kart yapılandırılmadı. This card is unknown by X2Go system Kart X2Go sistemi tarafından bilinmiyor Unable to create file: Dosya oluşturulamadı: Can't connect to X server Please check your settings X sunucusuna bağlanılamadı Lütfen ayarlarınızı kontrol edin Can't start X server Please check your settings X sunucusu başlatılamadı Lütfen ayarlarınızı kontrol edin Can't start X Server Please check your installation X Sunucusu başlatılamadı\Lütfen kurulumunuzu kontrol edin Unable to execute: Komut çalıştırılamadı: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package Uzak sunucu SSH Tünel üzerinden dosya sistemini aktarmayı desteklemiyor Lütfen x2goserver paketini daha yeni bir sürüme güncelleyin Unable to read : Okunamadı : Unable to write : Yazılamadı : WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 Error getting window geometry (window closed)? Pencere geometrisi alınırken hata (pencere kapalı mı)? X2Go Session X2Go Oturumu wrong value for argument"speed" "speed" değişkeni için hatalı değer Password: Parola: Keyboard layout: Klavye düzeni: Ok Tamam Cancel İptal <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>Oturum Kimliği:<br>Sunucu:<br>Kullanıcı adı:<br>Ekran:<br>Oluşturma zamanı:<br>Durum:</b> Applications ... Abort İptal Show details Ayrıntıları göster Resume Devam et New Yeni Full access Tam erişim View only Sadece görüntüleme Status Durum Command Komut Type Tür Server Sunucu Client IP İstemci IP adresi Session ID Oturum Kimliği User Kullanıcı Only my desktops Sadece beim masaüstlerimde SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH Error SSH Hatası SSH daemon could not be started. You'll need SSH daemon for printing and file sharing. Normally, this should not happen as X2Go Client for Windows ships its internal sshd.exe. If you see this message, please report a bug against the X2Go bugtracker. SSH süreci başlatılamadı. SSH sürecine yazdırma ve dosya paylaşımı için ihtiyacınız olacak. Windows için X2Go istemcisi kendi iç sshd.exe dosyasını taşıdığından bunun normalde olmaması gerekirdi. Eğer bu iletiyi görüyorsanız lütfen X2Go hata takip sisteminde bir hata kaydı açın. SSH daemon is not running. You'll need SSH daemon for printing and file sharing Please ask your system administrator to provide the SSH service on your computer. SSH süreci çalışmıyor. SSH sürecine yazdırma ve dosya paylaşımı için ihtiyacınız olacak Lütfen sistem yöneticinizden bilgisayarınıza SSH servisi sağlamasını isteyin. SSH daemon failed to open the application's public host key. SSH süreci uygulamanın açık konak anahtarını açmakta başarısız oldu. SSH daemon failed to open the application's public key used for exporting folders and printers. SSH süreci uygulamanın klasörleri ve yazıcıları dışa aktarmak için kullanılan açık anahtarını açamadı. SSH daemon failed to open the application's authoized_keys file. SSH süreci uygulamanın authoized_keys dosyasını açmakta başarısız oldu. Restore toolbar Araç çubuğunu yeniden yükle <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;Araç çubuğunu yeniden yüklemek için&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;bu düğmeye tıklayın&nbsp;&nbsp;&nbsp;</b><br> PrintDialog Print - X2Go Client Yazdır - X2Go İstemcisi Print Yazdır You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) You've deactivated the x2go client printing dialog. X2Go istemcisinin yazdırma penceresini kapattınız. You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) Bu pencereyi x2goclient ayarlar menüsünden (Menü -> Seçenekler -> Ayarlar) yeniden etkinleştirebilirsiniz PrintProcess Save File Dosyayı Kaydet PDF Document (*.pdf) PDF Belgesi (*.pdf) Failed to execute command: Komut çalıştırılamadı: Printing error. Printing error Yazdırma hatası PrintWidget Form Biçim Print Yazdır View as PDF PDF olarak görüntüle Print settings Yazdırma ayarları Printer: Yazıcı: Print using default Windows PDF Viewer (Viewer application needs to be installed) Varsayılan Windows PDF Görüntüleyicisini kullanarak yazdır (Görüntüleyici uygulaması kurulmalıdır) Printer command: Yazıcı komutu: ... ... Viewer settings Görüntüleyici ayarları Open in viewer application Görüntüleyici uygulamasında aç Command: Komut: Save to disk Diske kaydet Show this dialog before start printing Yazdırmayı başlatmadan önce bu pencereyi göster 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>. Lütfen istemci tarafı yazdırma ayarlarını yapılandırın.<br><br>Oluşturulan dosyayı yazdırmak isterseniz harici bir uygulamaya ihtiyacınız olacak. Genellikle <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> ve <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br> kullanabilirsiniz. Ayrıntılı bilgiyi <a href="http://www.x2go.org/index.php?id=49">burada</a> bulabilirsiniz. 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>. PrinterCmdDialog Printer command Yazıcı komutu Command Komut Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet Lütfen özelleştirdiğiniz veya kişisel yazdırma komutunu girin. Örnekler: kprinter lpr -P hp_laserjet Output format Çıktı biçimi Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Lütfen yazdırma dosya biçimini seçin (yazdırma ortamınızdan bağımsız olarak - eğer CUPS kullanıyorsanız PDF'yi seçebilirsiniz) PDF PDF PS PS Data structure Veri yapısı Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Lütfen dosya girdisini yazdırma yöntemini seçin (bazı komutlar dosyaları yazdırmak için program seçeneği olarak kabul ederken bazıları da standart girdiden veri bekler): standard input (STDIN) standart girdi (STDIN) Specify path as program parameter Yolu program değişkeni olarak belirtin Please enter your customized or individual printing command. Example: Lütfen özelleştirdiğiniz veya kişisel yazdırma komutunu girin. Örnek: <Path to gsprint.exe> -query -color <gsprint.exe dosyasının yolu> -query -color QObject No response received from the remote server. Do you want to terminate the current session? Uzak sunucudan yanıt alınamdı. Geçerli oturumu sonlandırmak ister misiniz? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... Oturum tercihleri... Create session icon on desktop... Masaüstünde oturum simgesi oluştur... Session preferences ... Create session icon on desktop ... Delete session Oturumu sil Session actions Oturum eylemleri Select type Türü seçin Select resolution Çözünürlüğü seçin Toggle sound support Ses değiştirme desteği New Session Yeni Oturum running çalışıyor suspended bekletiliyor KDE KDE RDP connection RDP bağlantısı XDMCP XDMCP Connection to local desktop Yerel masaüstüne bağlantı Published applications Tanımlı uygulamalar fullscreen tam ekran Display Göster window pencere Maximum En Büyük Enabled Etkin Disabled Kapalı SessionExplorer Back Geri Create session icon on desktop Masa üstünde oturum simgesi oluştur Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? Masaüstü simgeleri x2goclient'ı göstermeyecek şekilde yapılandırılabilirler (gizli kip). Bu özelliği kullanmak isterseniz oturum açmayı gpg anahtarı veya gpg akıllı kartla yapılandırmanız gereklidir. x2goclient gizli kipte kullanılsın mı? Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running Çalışırken oturum tepsisinde simgeyi göster New Session Yeni Oturum X2Go Link to session X2Go oturuma bağlı Are you sure you want to delete this session? Bu oturumu silmek istediğinizden emin misiniz? SessionManageDialog E&xit Ç&ık &New session &Yeni Oturum &Session preferences &Oturum tercihleri &Delete session Oturumu &Sil &Create session icon on desktop ... &Create session icon on desktop... &Masaüstünde oturum simgesi oluştur... Delete Delete Sil Session management Oturum yönetimi SessionWidget Session name: Oturum adı: << change icon << simgeyi değiştir Path: Yol: &Server &Sunucu Host: Makine: Login: Giriş: SSH port: SSH portu: Use RSA/DSA key for ssh connection: Ssh bağlantısı için RSA/DSA anahtarı kullan: Try auto login (ssh-agent or default ssh key) Otomatik oturum açmayı dene (ssh-agent veya varsayılan ssh anahtarı) Try auto login (via SSH Agent or default SSH key) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) kimlik doğrulaması Delegation of GSSAPI credentials to the server Sunucuya GSSAPI kimlik bilgileri gönderimi Use Proxy server for SSH connection SSH bağlantısı için vekil sunucu kullan Proxy server Vekil sunucu SSH SSH HTTP HTTP Same login as on X2Go Server X2Go Sunucusundaki giriş ile aynı Same password as on X2Go Server X2Go sunucusundaki parola ile aynı RSA/DSA key: RSA/DSA anahtarı: SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. ssh-agent or default ssh key ssh-agent veya varsayılan ssh anahtarı Type: Tür: Port: Port: &Session type &Oturum türü Session type: Oturum türü: Connect to Windows terminal server Windows terminal sunucusuna bağlan XDMCP XDMCP Connect to local desktop Yerel masaüstüne bağlan Custom desktop kişisel masaüstü Single application Tek uygulama Published applications Tanımlı uygulamalar Command: Komut: Advanced options... Gelişmiş seçenekler... Path to executable Çalıştırılabilir dosyanın yolu Direct RDP Connection Doğrudan RDP Bağlantısı Open key file Anahtar dosyasını aç All files Tüm dosyalar Error Hata x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient taşınabilir kipte çalışıyor. İstediğiniz yerden verilerinize ulaşmak için usb aygıtınızın yolunu kullanmalısınız RDP port: RDP portu: Open picture Resmi aç Pictures Resimler Server: Sunucu: XDMCP server: XDMCP sunucusu: rdesktop command line options: rdesktop komut satırı seçenekleri: New session Yeni oturum SettingsWidget &Display &Göster &Keyboard &Klavye Sound Ses &Clipboard Mode &Geçici Taşıma Panosu Kipi &Clipboard mode Fullscreen Tam Ekran Custom Özel Window Pencere Use whole display Tüm ekranı kullan Maximum available Kullanılabilir en fazla alan Set display DPI Görüntü DPI ayarla Xinerama extension (support for two or more physical displays) Xinerama eklentisi (iki veya daha fazla fiziksel ekran desteği) Width: Genişlik: Height: Yükseklik: &Display: &Ekran: &Identify all displays &Tüm ekranları tanımla Bidirectional copy and paste İki taraflı kopyalama ve yapıştırma Copy and paste from client to server İstemciden sunucuya kopyalayıp yapıştır Copy and paste from server to client Sunucudan istemciye kopyalayıp yapıştır Disable clipboard completely Geçici taşıma panosunu tamamen kapat Auto-detect keyboard settings RDP client Auto detect keyboard settings Klavye ayarlarını otomatik algıla Do not configure keyboard Klavyeyi yapılandırma Configure keyboard Klavyeyi yapılandır Model: Model: Layout: Yerleşim düzeni: Variant: Varyant: Enable sound support Ses desteğini etkinleştir Start sound daemon Ses sürecini başlat Use running sound daemon Çalışan ses sürecini kullan Use SSH port forwarding to tunnel sound system connections through firewalls Güvenlik duvarları üzerinden ses sistemi bağlantılarını tünellemek için ssh port yönlendirmesini kullanın Use default sound port Varsayılan ses portunu kullan Sound port: Ses portu: Client side printing support İstemci tarafı yazdırma desteği RDP Client RDP İstemcisi Additional parameters: Ek parametreler: Command line: Komut satırı: us tr password parola ShareWidget &Folders &Klasörler Path Yol Automount Otomatik bağla Add Ekle Delete Sil Path: Yol: Filename encoding Dosya adı kodlaması local: yerel: remote: uzak: Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Use ssh port forwarding to tunnel file system connections through firewalls Güvenlik duvarları üzerinden dosya sistemi bağlantılarını tünellemek için ssh port yönlendirmesini kullanın Select folder Klasör seçin Error Hata x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are x2goclient taşınabilir kipte çalışıyor. İstediğiniz yerden verilerinize ulaşmak için usb aygıtınızın yolunu kullanmalısınız WINDOWS-1252 WINDOWS-1252 ISO8859-1 ISO8859-1 SshMasterConnection Cannot connect to bağlanamıyor SSH proxy connection error. Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. SSH proxy connection error SSH vekil sunucu bağlantı hatası SSH proxy connection error: SSH vekil sunucu bağlantı hatası: Failed to create SSH proxy tunnel SSH vekil tünel oluşturması başarısız oldu Can not initialize libssh Libssh başlatılamıyor Can not create ssh session Ssh oturumu başlatılamadı Can not connect to proxy server Vekil sunucuya bağlanılamıyor Can not connect to Bağlanamıyor Authentication failed Kimlik doğrulama başarısız Failed to start SSH Client. Please check your installation and GSSApi configuration SSH İstemcisi başlatılamadı. Lütfen kurulumunuzu ve GSSApi yapılandırmasını kontrol edin Check your GSSApi configuration or choose another authentication method GSSApi yapılandırmanızı veya kontrol edin veya başka bir kimlik doğrulaması yöntemi seçin Can not open file Dosya açılamıyor Can not create remote file Uzak dosya oluşturulamıyor Can not write to remote file Uzak dosyaya yazılamıyor channel_open_forward failed channel_open_forward başarısız oldu channel_open_session failed channel_open_session başarısız oldu channel_request_exec failed channel_request_exec başarısız oldu error writing to socket sokete yazarken hata error reading channel kanalı okurken hata channel_write failed channel_write başarısız oldu error reading tcp socket tcp soketi okunurken hata SshProcess Error creating socket Soket oluşturulurken hata Error creating socket. Error binding Bağlama hatası XSettingsWidget Open File Dosya Aç Executable (*.exe) Çalıştırılabilir (*.exe) XSettingsWidgetUI Form Biçim You must restart the X2Go Client for the changes to take effect Değişikliklerin etkin olması için X2Go İstemcisini tekrar başlatmalısınız use integrated X-Server tümleşik X-Sunucusunu kullan do not use primary clipboard birincil geçici taşıma panosunu kullanma use custom X-Server özel X-Sunucusunu kullan custom X-Server özel X-Sunucusu executable: çalıştırılabilir: start X-Server on X2Go Client start X2Go İstemcisi başladığında X-Sunucuyu başlat command line options: komut satırı seçenekleri: X-Server command line options X-Sunucusu komut satırı seçenekleri window mode: pencere kipi: fullscreen mode: tam ekran kipi: single application: tek uygulama: whole display: x2goclient-4.0.5.1/res/i18n/x2goclient_zh_tw.ts0000644000000000000000000052016512675050177016057 0ustar AppDialog Published Applications Search: &Start &Close Multimedia Development Education Game Graphics Network Office Settings 設定 System Utility Other BrokerPassDialogUi Dialog 對話框 Old password: 舊密碼: New password: 新密碼: Confirm password: 請再輸入一遍新密碼: TextLabel BrokerPassDlg Passwords do not match 密碼不相符 CUPSPrintWidget Form 表單 Name: 姓名: Properties 屬性 State: 狀態: Accepting jobs: 接收的工作: Type: 類別: Location: 位置: Comment: 註解: Idle 閒置 Printing 正在列印 Stopped 已停止 Yes No CUPSPrinterSettingsDialog No option selected 尚未選取任何選項 This value is in conflict with another option. Options conflict. This value is in conflict with other option 此設定值與其它選項衝突 Options conflict 選項衝突 ConTest Connectivity test 連線測式 HTTPS connection: 加密HTTP連線: SSH connection: SSH連線: Connection speed: 連線速度: Failed 失敗 0 Kb/s 0 Kb/s OK 確定 Socket operation timed out. Socket operation timed out 網路操作逾時 Failed: 失敗: ConfigDialog General 一般設定 Display icon in system tray 在系統狀態列中顯示圖示 Hide to system tray when minimized 最小化時縮至系統狀態列 Hide to system tray when closed 關閉時隱藏至系統狀態列 Hide to system tray after connection is established 連線建立後隱藏至系統狀態列 Restore from system tray after session is disconnected 當工作階段斷線後從系統狀態列中還原 Use LDAP 使用LDAP Server URL: 伺服器網址: BaseDN: Failover server 1 URL: 備援伺服器網1 網址: Failover server 2 URL: 備援伺服器網2 網址: X.Org Server settings Clientside (local) SSH daemon port for file system export usage: Pulseaudio settings Disable audio input <font size="5">You must restart the X2Go Client for the changes to take effect</font><br><br> Your XQuartz version is too old. Your are using XQuartz (X Window System Server for OS X) version . This version causes problems with X applications in 24bit color mode. You should update your X11 environment. MacPorts users please follow the steps outlined on: <center><a href="https://guide.macports.org/chunked/using.common-tasks.html">https://guide.macports.org/chunked/using.common-tasks.html</a></center> Users who have installed XQuartz via the installer package can find updated versions on: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> No valid XQuartz application selected. You did not select a valid XQuartz application. Please try again. Some standard installation locations may be: <center><b>/Applications/Utilities/X11.app</b></center> <center><b>/Applications/Utilities/XQuartz.app</b></center> <center><b>/Applications/MacPorts/X11.app</b></center> X-Server settings X伺服器設定 X11 application: X11應用程式: X11 version: X11版本: Find X11 application 尋找X11應用程式 Clientside SSH port for file system export usage: 檔案系統匯出時用戶端所使用的SSH連接埠: Start session embedded inside website 將工作階段嵌入至網站內 Advanced options 進階選項 Defaults 預設 &OK 確定(&O) &Cancel 取消(&C) Settings 設定 Printing 列印功能 Warning 警告 x2goclient could not find any suitable X11 Application. Please install Apple X11 or select the path to the application X2Go用戶端無法找到合適的X11應用程式,請安裝Apple X11或是選擇應用程式的路徑 Your are using X11 (Apple X-Window Server) version 您正在使用X11(Apple X-Window 伺服器) 版本 . This version causes problems with X-application in 24bit color mode. You should update your X11 environment (http://trac.macosforge.org/projects/xquartz). . 此版本在24位元色彩模式時會有問題,請升級您的X11環境 (http://trac.macosforge.org/projects/xquartz). No suitable X11 application found in selected path 在您選擇的路徑中沒有合適的X11應用程式 &Connection 連線(&C) &Input/Output &Media &Settings 設定(&S) ConnectionWidget &Connection speed 連線速度(&C) Connection speed: 連線速度: C&ompression 壓縮(&o) Method: 方式: Compression method: 壓縮方式: Image quality: 影像品質: CupsPrinterSettingsDialog Dialog 對話框 General 一般設定 Page size: 頁面尺寸: Paper type: 紙張類型: Paper source: 紙張來源: Duplex Printing 雙面列印 None Long side 長邊翻轉 Short side 短邊翻轉 Driver settings 驅動程式設定 Option 選項 Value 數值 No option selected 目前沒有選取任何選項 text 文字 EditConnectionDialog &Session 工作階段(&S) &Connection 連線(&C) &Input/Output &Media &Shared folders 共享資料夾(&S) &OK 確定(&O) &Cancel 取消(&C) Defaults 預設值 Session preferences - 工作階段偏好設定 - ExportDialog &Cancel 取消(&C) &share 分享(&s) &Preferences ... 偏好設定(&P) ... &Custom folder ... 自訂資料夾(&C) ... Delete Delete 刪除 Share Folders share folders 共享資料夾 Select folder 選擇資料夾 FolderButton Sessions folder FolderExplorer Folders Create New Folder Rename Folder ... Change Icon ... Delete Folder ... Open picture 開啟圖片 Pictures 圖片 X2Go Client X2Go用戶端 Folder Name: Error 錯誤 Unable to remove " ". Folder is not empty. Please remove the contents of this directory and try again. Delete folder " New Folder HelpDialog Options 選項 HttpBrokerClient us us pc105/us pc105/us Error 錯誤 Login failed!<br>Please try again 登入失敗! <br>請再試一次 Your session was disconnected. To get access to your running session, please return to the login page or use the "reload" function of your browser. 您的工作階段已中斷連線。請返回登入畫面或是在瀏覽器中重新載入頁面以重新連回之前的工作階段。 Host key for server changed. It is now: 主機的SSH密鑰已經更換。 現在的密鑰為: For security reasons, connection will be stopped 由於安全性的考量,目前的連線已被中止 The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist 目前沒有找到伺服器上的主機密鑰,不過有其它類型的密鑰存在。惡意的攻擊者可能會利用改變預設的伺服器密鑰來讓您的用戶端認為原本的密鑰並不存在 Could not find known host file.If you accept the host key here, the file will be automatically created 目前沒有發現已知的主機檔案。如果您接受目前的主機密鑰,這個檔案將會自動被建立。 The server is unknown. Do you trust the host key? Public key hash: 此為未知的伺服器,您要選擇信任此主機密鑰嗎? 此公開密鑰的雜湊值為: Host key verification failed 主機密鑰驗證任失敗 Yes No Verification code: Enter passphrase to decrypt a key <br><b>Server uses an invalid security certificate.</b><br><br> <br><b>伺服使器使用了不合法的安全憑證</b><br><br> <p style='background:#FFFFDC;'>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p> For security reasons, the connection attempt will be aborted. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. Could not find known hosts file.If you accept the host key here, the file will be automatically created. Host key verification failed. Authentication failed. Login failed!<br>Please try again. Secure connection failed. Issued to: Common Name(CN) Organization(O) Organizational Unit(OU) Serial Number Issued by: Validity: Issued on expires on Fingerprints: SHA1 MD5 Exit X2Go Client Add exception MediaWidget Sound 聲音 Enable sound support 啟用音效支援 Start sound daemon 開啟聲音背景程式 Use running sound daemon 使用目前的音效背景程式 Use SSH port forwarding to tunnel sound system connections through firewalls 使用SSH連接埠轉送來建立 可通過防火牆的聲音通道 Use default sound port 使用預設的聲音連接埠 Sound port: 聲音連接埠: Client side printing support 用戶端列印支援 ONMainWindow us us pc105/us pc105/us X2Go Client X2Go用戶端 connecting 正在連線 Internet browser 網頁瀏覽器 Email client 電子郵件軟體 OpenOffice.org Terminal 終端機 &Settings ... 設定(&S) ... Support ... 支援 ... About X2GO client 關於X2GO用戶端 Can't load translator: Translator: Share folder... 共享資料夾... Suspend 暫停 Terminate 終止 Reconnect 重新連線 Detach X2Go window 脫離X2Go視窗 Minimize toolbar 將工具列最小化 Session: 工作階段: &Quit 離開(&Q) Ctrl+Q Quit 離開 &New session ... 新增工作階段(&N) ... Ctrl+N Session management... 工作階段管理員... Ctrl+E &Create session icon on desktop... 在桌面上建立工作階段圖示(&C)... &Set broker password... 設定代理伺服器密碼(&S)... &Connectivity test... 連線能力測試(&C)... Show toolbar 顯示工具列 About Qt 關於Qt &Session 工作階段(&S) &Options 選項(&O) &Help 幫助(&H) Login: 登入: Error 錯誤 Operation failed 更改密碼失敗 Password changed 密碼已更改成功 Wrong password! 輸入了錯誤的密碼! Connecting to broker 連線至連線代理伺服器 <b>Authentication</b> <b>身份驗證</b> Restore 還原 Not connected 尚未連線 Multimedia Development Education Game Graphics Network Office Settings 設定 System Utility Other Left mouse button to hide/restore - Right mouse button to display context menu 按滑鼠左鍵以隱藏或還原視窗, 右鍵顯示選單 Please check LDAP settings 請確認LDAP的設定 no X2Go server found in LDAP 在LDAP環境中沒有找到X2Go伺服器 Create session icon on desktop 在桌面上建立工作階段圖示 Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? 桌面圖示可以被設定為不顯示X2Go用戶端的模式(隱藏模式)。如果您想要使用隱藏模式,您必需要將登入方式設定成使用GPG金匙或是GPG IC智慧卡。 是否要使用X2Go用戶端的隱藏模式? New Session 新的工作階段 X2Go Link to session X2Go工作階段的連結 No X2Go sessions found, closing. SSH Error SSH daemon failed to open the application's public key used for exporting folders and printers. X2Go sessions not found 無法找到X2Go的工作 Are you sure you want to delete this session? 您確定要刪除此工作階段嗎? KDE RDP connection RDP連線 XDMCP Connection to local desktop 連線至本地桌面 on Starting connection to server: to Enter passphrase to decrypt a key Host key for server changed. It is now: 主機的SSH密鑰已經更換。 現在的密鑰為: For security reasons, connection will be stopped 由於安全性的考量,目前的連線已被中止 The host key for this server was not found but an othertype of key exists.An attacker might change the default server key toconfuse your client into thinking the key does not exist 目前沒有找到伺服器上的主機密鑰,不過有其它類型的密鑰存在。惡意的攻擊者可能會利用改變預設的伺服器密鑰來讓您的用戶端認為原本的密鑰並不存在 Could not find known host file.If you accept the host key here, the file will be automatically created 目前沒有發現已知的主機檔案。如果您接受目前的主機密鑰,這個檔案將會自動被建立。 The server is unknown. Do you trust the host key? Public key hash: 此為未知的伺服器,您要選擇信任此主機密鑰嗎? 此公開密鑰的雜湊值為: Host key verification failed 主機密鑰驗證任失敗 Verification code: Yes No If you accept the new host key the security of your connection may be compromised. Do you want to update the host key? Authentication failed: Authentication failed 認證失敗 Enter password for SSH proxy <b>Connection failed</b> <b>連線失敗</b> <b>Wrong password!</b><br><br> <b>不正確的密碼!</b><br><br> Connection failed: - Wrong password. unknown 未知 No server availabel 伺服器不存在l Server not availabel 伺服器不存在| Select session: 請選擇工作階段: running 正在執行中 suspended 已暫停 Desktop 桌面 single application 單一的應用程式 shadow session Information 資訊 No accessible desktop found 目前沒有找到可訪問的工作桌面 Filter 篩選器 Select desktop: 請選擇工作桌面: Warning 警告 Your current color depth is different to the color depth of your x2go-session. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your Display to 您目前使用與x2go工作階段不同的色彩設定。可能會造成連線的不穩定,並且很可能會喪失目前的工作階段。強烈建議先將目前使用的色彩設定設為 24 or 32 24或32 bit and restart your X-server before you reconnect to this x2go-session.<br>Resume this session anyway? 位元並且重新啟動X-server,之後再重新連接這一個工作階段。<br>請問您無論如何都要恢復此工作階段的連線嗎? suspending 正在暫停工作中 terminating 正在中止工作中 <b>Wrong Password!</b><br><br> <b>不正確的密碼!</b><br><br> New session started Session resumed Unable to create folder: Unable to write file: Emergency exit. Waiting for proxy to exit. Wrong parameter: Help Changelog Git Info Unable to create folder: 無法創建資料夾: Unable to write file: 檔案無法寫入: Attach X2Go window 連接X2Go視窗 Unable to create SSL tunnel: 無法建立SSL通道: Unable to create SSL Tunnel: 無法建立SSL通道: Finished 已完成 starting 正在開始 resuming 正在還原 Connection timeout, aborting 連線超時,中止中 aborting 中止中 Are you sure you want to terminate this session? Unsaved documents will be lost 您確定要終止目前的工作階段嗎? 所有未存檔的資料都將會遺失 Session 工作階段 Display 顯示 Creation time 創建時間 <b>Connection failed</b> : <b>連線失敗</b> : (can't open file) (無法開啟檔案) (file not exists) (檔案不存在) (directory not exists) (目錄不存在) wrong value for argument"--link" "--link"參數的值錯誤 wrong value for argument"--sound" "--sound"參數的值錯誤 wrong value for argument"--geometry" "--geometry"參數的值錯誤 wrong value for argument"--set-kbd" "--set-kbd"參數的值錯誤 wrong value for argument"--ldap" "--ldap"參數的值錯誤 wrong value for argument"--ldap1" "--ldap1"參數的值錯誤 wrong value for argument"--ldap2" "--ldap2"參數的值錯誤 wrong value for argument"--pack" "--pack"參數的值錯誤 wrong parameter: 錯誤的參數: Options 選項 Available pack methodes: 可用的包裝方法: RSA file empty. Support 支援 <br>x2goplugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a><br> <br>x2goplugin mode是由 <a href="http://www.foss-group.de/">FOSS-Group GmbH(Freiburg)</a>提供贊助<br> <b>X2Go Client V. <b>X2Go 客戶端 V. Please check LDAP Settings 請檢查LDAP的設定 No valid card found 沒有發現合法的卡片 Card not configured. This card is unknown by X2Go system X2Go系統無法辨識此張卡片 Unable to create file: 檔案無法創建: Can't connect to X-Server 無法連接至X伺服器 Can't connect to X server Please check your settings Can't connect to X-Server Please check your settings 無法連接至X伺服器 請檢查您的設定值 Can't start X Server Please check your settings 無法啟動X伺服器 請檢查您的設定值 Can't start X Server Please check your installation 無法啟動X伺服器 請檢查X伺服器安是否有安裝正確 Unable to execute: 無法執行: Remote server does not support file system export through SSH Tunnel Please update to a newer x2goserver package 遠端伺服器無法支援SSH通道型式的共用檔案系統,請升級至較新的X2Go伺服器板本 Unable to read : 無法讀取: Unable to write : 無法寫入: WINDOWS-1252 ISO8859-1 X2Go Session X2Go工作階段 wrong value for argument"speed" 錯誤的"speed"參數值 Password: 密碼: Keyboard layout: 鑑盤佈局: Ok 確定 Cancel 取消 <b>Session ID:<br>Server:<br>Username:<br>Display:<br>Creation time:<br>Status:</b> <b>工作階段識別碼:<br>伺服器:<br>使用者名稱:<br>顯示:<br>創建時間:<br>狀態:</b> Applications... Starting X2Go Client... Starting X2Go Client in portable mode. Data directory is: About X2Go Client Started X2Go Client. found. English language requested, not loading translator. Non-fatal: can't load translator: Trying to load language with lower preference, if existent. Session management ... &Create session icon on desktop ... &Set broker password ... &Connectivity test ... Share folder ... A left click hides or restores the window. A right click displays the context menu. Closing X2Go Client ... Finished X2Go Client closing hooks. Broker authentication failed! no X2Go Server found in LDAP Connection error: Couldn't find an SSH connection. This can be an indication of a man-in-the-middle attack. Somebody might be eavesdropping on you. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Host key verification failed. The host key for this server was not found but anothertype of key exists. An attacker might have changed the default server key to trick your client into thinking the key does not exist yet. For security reasons, it is recommended to stop the connection attempt. Do you want to terminate the connection? Could not find known hosts file.If you accept the host key here, the file will be automatically created. Authentication failed. <b>Connection failed.</b> No server available. Server not available. No accessible desktop found. Your current color depth is different from the session's color depth. This may cause problems reconnecting to this session and in most cases <b>you will loose the session</b> and have to start a new one! It's highly recommended to change the color depth of your display to bits and restart your X.Org Server before you reconnect to this X2Go session.<br />Do you want to resume this session anyway? Unable to create SSH tunnel for X2Go session (NX) startup: Unable to create SSH tunnel for audio data: failed to start. This likely means the binary is not available. The current search path is: returned a non-zero exit code or crashed otherwise. Execution failed, exit code was: didn't start up in time. This error shouldn't come up. didn't accept a write operation. It is probably not running correctly or crashed in-between. Unable to read from xmodmap. encountered an unknown error during start up or execution. experienced an undefined error. X2Go Client will now terminate. File a bug report as outlined on the <a href="http://wiki.x2go.org/doku.php/wiki:bugs">bugs wiki page</a>. Proxy didn't terminate after 3 seconds. Killing the proxy. Closing X2Go Client because it was started in hidden mode. Closing X2Go Client because the --close-disconnect parameter was passed. Are you sure you want to terminate this session? Unsaved documents will be lost. <b>Connection failed.</b> : (file does not exist) (directory does not exist) Invalid value for parameter "--link". Invalid value for parameter "--clipboard". Invalid value for parameter "--sound". Invalid value for parameter "--geometry". Invalid value for parameter "--set-kbd". Invalid value for parameter "--ldap". Invalid value for parameter "--ldap1". Invalid value for parameter "--ldap2". Invalid value for parameter "--pack". Available pack methods: Pack Methods Option is not available in this build. Unable to create directory: Cannot open key: <br>(C) 2005-2016 by <b>obviously nice</b>: Oleksandr Shneyder, Heinz-Markus Graesing<br> <br>X2Go Plugin mode was sponsored by <a href="http://www.foss-group.de/">FOSS-Group GmbH (Freiburg)</a><br> <br>This is a client to access the X2Go network-based computing environment. This client will be able to connect to X2Go Server(s) and start, stop, resume and terminate (running) desktop sessions. X2Go Client stores different server connections and may automatically request authentication data from LDAP directories. Furthermore, it can be used as a fullscreen login screen (replacement for login managers like XDM). Please visit <a href="http://www.x2go.org">the project home page at x2go.org</a> for further information. <b>X2Go Client v. Please check LDAP Settings. Check whether the package providing "scdaemon" is installed. The current search path is: didn't start yet. Unable to read from scdaemon. No valid card found. This card is unknown to the X2Go system. Can't start X.Org Server. Please check your installation. Remote server does not support file system exports through SSH tunnels. Please update your x2goserver package. Unable to create SSH tunnel for Folder Sharing and Printing support: Unable to read: Unable to write: Error getting window geometry. (Did you close the window?) Invalid value for argument "speed" Applications ... Abort 退出 Show details 顯示細節 Resume 恢復 New 新增 Full access 完全存取 View only 僅查看 Status 狀態 Command 指令 Type 型態 Server 伺服器 Client IP 客戶端IP Session ID 工作階段識別碼 User 使用者 Only my desktops 只選擇我的桌面 SSH daemon could not be started. SSH daemon is not running. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> Please also check the <b>Clientside SSH port</b> in the general settings. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server failed to start. X2Go Client did not detect a globally running SSH server on your machine and was unable to start its own. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> The SSH server is currently not started. On OS X, please follow the following steps to enable SSH service:<ul><li>Open <b>System Preferences</b> (Applications -> System Preferences)</li><li>Go to <b>Sharing</b></li><li>Tick the checkbox besides <b>Remote Login</b></li><li>Check that <b>Allow access for:</b> is set to either:<ul><li>All users: <b>no further steps necessary</b></li><li>Only these users <b>and your user name is included in the list</b></li></ul><li>Optionally, add your user name to the allowed list via the <b>Plus Button</b></li></ul><b>Warning: enabling SSH access will allow any user on the network to connect to your machine. It is your responsibility to set a strong password for every user that is allowed to log in via SSH.</b> Please ask your system administrator to provide the SSH service on your computer. Disabling Remote Printing or File Sharing support in the session settings will get rid of this message. SSH daemon failed to open its public host key. You have enabled Remote Printing or File Sharing. These features require a running and functioning SSH server on your computer. <b>Printing and File Sharing will be disabled for this session.</b> The SSH server is currently not configured correctly. Please ensure that the server's public exists. Normally, this should not happen as X2Go Client for Windows ships its own internal SSH server and automatically generates the required keys. If you see this message, please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> X2Go Client was unable to create SSH host keys. Please report a bug on: <center><a href="https://wiki.x2go.org/doku.php/wiki:bugs">https://wiki.x2go.org/doku.php/wiki:bugs</a></center> On OS X, please follow these steps to generate the required keys:<ul><li>Open a <b>Terminal Window</b> (Applications -> Utilities -> Terminal)</li><li>Run this command: <b>ssh -p Please ask your system administrator to generate the required host keys. If you are administrating this system yourself, please run: <center><b>sudo ssh-keygen -A</b></center> SSH daemon failed to open the application's authorized_keys file. sshd not started, you'll need sshd for printing and file sharing you can install sshd with <b>sudo apt-get install openssh-server</b> SSH伺服器沒有執行起來,遠端列印與檔案共享功能需要先安裝SSH伺服器 您可以使用下列指令來安裝SSH伺服器: <b>sudo apt-get install openssh-server</b> Restore toolbar 還原工具列 <br><b>&nbsp;&nbsp;&nbsp;Click this button&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;to restore toolbar&nbsp;&nbsp;&nbsp;</b><br> <br><b>&nbsp;&nbsp;&nbsp;按此按鈕&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;還原工具列&nbsp;&nbsp;&nbsp;</b><br> Invalid reply from broker 代理伺服器的回應不合法 PrintDialog Print - X2Go Client 列印 - X2Go用戶端 Print 列印 You've deactivated the X2Go Client printing dialog. You may reactivate this dialog using the X2Go Client settings dialog. To do so, follow this path in the menu bar: Options -> Settings) You've deactivated the x2go client printing dialog. 您已經停用X2Go用戶端的列印對話框 You may reactivate this dialog using the x2goclient settings dialog (Menu -> Options -> Settings) 您可能需要於X2Go用戶端的設定對話框中(選單 -> 選項 -> 設定)重新啟用這個對話框 PrintProcess Save File 儲存檔案 PDF Document (*.pdf) PDF文件 (*.pdf) Failed to execute command: 執行命令失敗: Printing error. Printing error 列印錯誤 PrintWidget Form 表單 Print 列印 View as PDF 以PDF格式查看 Print settings 列印設定 Printer: 印表機: Print using default Windows PDF Viewer (Viewer application needs to be installed) 以預設的Windows PDF閱讀器列印(必需要安裝閱讀器) Printer command: 印表機指令: ... Viewer settings 閱讀器設定 Open in viewer application 在閱讀器程式裡開啟 Command: 指令: Save to disk 儲存到磁碟裡 Show this dialog before start printing 開始列印前先顯示此對話框 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>. 請設定您的客戶端列印設定<br><br>您會需要一個外部的程式來進行列印工作,您可以使用 <a href="http://pages.cs.wisc.edu/~ghost/doc/GPL/index.htm">ghostprint</a> 以及 <a href="http://pages.cs.wisc.edu/~ghost/gsview/">ghostview</a><br>如需進一步的資訊,請參考 <a href="http://www.x2go.org/index.php?id=49">這個網址</a>. 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>. PrinterCmdDialog Printer command 印表機指令 Command 指令 Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet 請輸入您自定的列印指令。 例如: kprinter lpr -P hp_laserjet Output format 輸出格式 Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) 請選擇您要輸出的檔案格式 (如果您是使用CUPS列印服務,您可能是使用PDF) PDF PS Data structure 數據結構 Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): 請選擇列印資料的輸入方式: standard input (STDIN) 標準輸入 (STDIN) Specify path as program parameter 指定一個路徑做為程式的參數 Please enter your customized or individual printing command. Example: 請輸入您自定的列印指令 範例: <Path to gsprint.exe> -query -color <Path to gsprint.exe> -query -color QObject No response received from the remote server. Do you want to terminate the current session? X2Go Client could not find any suitable X11 server. X2Go Client could not start X11 server. X2Go Client requires XQuartz to be installed. If XQuartz is already installed on your system, please select the correct path in the now upcoming dialog. Refer to the end of this message for path examples, in case you do not know the exact location yourself. Should you have <b>not</b> installed XQuartz yet, please follow the outlined steps: MacPorts users, please install either the port <b>xorg-server</b> or the port <b>xorg-server-devel</b>. Upon successful installation, please follow the instructions printed by the port utility to autostart/load the server. All other users, please obtain and install XQuartz from: <center><a href="https://xquartz.macosforge.org/">https://xquartz.macosforge.org/</a></center> Afterwards, restart X2Go Client and select the correct path to the X11 application in the general X2Go Client settings. This will most likely be <center><b>/Applications/MacPorts/X11.app</b></center> or <center><b>/Applications/Utilities/XQuartz.app</b></center> SessionButton Session preferences... 工作階段偏好設定... Create session icon on desktop... 在桌面上建立工作階段圖示 Session preferences ... Create session icon on desktop ... Delete session 刪除工作階段 Session actions 工作階段動作 Select type 選擇類型 Select resolution 選擇解析度 Toggle sound support 切換聲音支援 New Session 新工作階段 running 執行中 suspended 已暫停 KDE RDP connection RDP連線 XDMCP Connection to local desktop 連線至本地桌面 Published applications fullscreen 全螢幕 Display 顯示 window 視窗 Maximum Enabled 啟用 Disabled 停用 SessionExplorer Back Create session icon on desktop 在桌面上建立工作階段圖示 Desktop icons can be configured not to show x2goclient (hidden mode). If you like to use this feature you'll need to configure login by a gpg key or gpg smart card. Use x2goclient hidden mode? 桌面圖示可以被設定為不顯示X2Go用戶端的模式(隱藏模式)。如果您想要使用隱藏模式,您必需要將登入方式設定成使用GPG金匙或是GPG IC智慧卡。 是否要使用X2Go用戶端的隱藏模式? Create session icon on desktop. Desktop icons can be configured not to show X2Go Client (hidden mode.) If you like to use this feature you'll need to configure login via a GPG key or GPG Smart Card. Use X2Go Client's hidden mode? Show session tray icon when running New Session X2Go Link to session X2Go工作階段的連結 Are you sure you want to delete this session? 您確定要刪除此工作階段嗎? SessionManageDialog E&xit 離開(&x) &New session 建立新的工作階段(&N) &Session preferences 工作階段偏好設定(&S) &Delete session 刪除工作階段(&D) &Create session icon on desktop ... &Create session icon on desktop... 在桌面上建立工作階段圖示(&C)... Delete Delete 刪除 Session management 管理工作階段 SessionWidget Session name: 工作階段名稱: << change icon << 更換圖示 Path: 路徑: &Server 伺服器(&S) Host: 主機: Login: 登入帳號: SSH port: SSH連接埠: Use RSA/DSA key for ssh connection: 使用RSA/DSA密鑰於SSH連線: Try auto login (ssh-agent or default ssh key) 嘗試自動登入 (ssh代理或預設SSH密鑰) Kerberos 5 (GSSAPI) authentication Kerberos 5 (GSSAPI) 認證 Delegation of GSSAPI credentials to the server Use Proxy server for SSH connection Proxy server SSH HTTP Same login as on X2Go Server Same password as on X2Go Server RSA/DSA key: X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Type: 類別: Port: &Session type 工作階段類型(&S) Session type: 工作階段類型: Connect to Windows terminal server 連線至微軟終端伺服器 XDMCP Connect to local desktop 連線至本地桌面 Custom desktop 自訂桌面類型 Single application 單一應用程式 Published applications Command: 指令: Advanced options... 進階設定... Path to executable 執行路徑 RDP port: Open picture 開啟圖片 Pictures 圖片 Open key file 開啟密鑰檔案 Try auto login (via SSH Agent or default SSH key) SSH Agent or default SSH key Connect to Windows Terminal Server Direct RDP connection All files 所有檔案 Error 錯誤 x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go用戶端目前為可攜式模式,您應該要使用您的USB裝置的路徑來存取您的資料 Server: 伺服器: XDMCP server: XDMCP 伺服器: rdesktop command line options: rdesktop 指令選項: New session 新的工作階段 SettingsWidget &Display 顯示(&D) &Keyboard 鍵盤(&K) Sound 聲音 Bidirectional copy and paste Copy and paste from client to server Copy and paste from server to client Disable clipboard completely Do not configure keyboard Configure keyboard Model: Layout: Variant: &Clipboard mode Fullscreen 全螢幕 Custom 自定 Window 視窗 Use whole display 使用整個顯示器 Maximum available Set display DPI 設定顯示DPI Xinerama extension (support for two or more physical displays) Xinerama延伸功能(支援兩個以上的螢幕) Width: 寬度: Height: 高度: &Display: 顯示器(&D): &Identify all displays 辨認所有顯示器(&I) Auto-detect keyboard settings RDP client Keep current keyboard Settings 保持目前的鍵盤設定 Keyboard layout: 鍵盤佈局: Keyboard model: 鍵盤型號: Enable sound support 啟用音效支援 Start sound daemon 開啟聲音背景程式 Use running sound daemon 使用目前的音效背景程式 Use SSH port forwarding to tunnel sound system connections through firewalls 使用SSH連接埠轉送來建立 可通過防火牆的聲音通道 Use default sound port 使用預設的聲音連接埠 Sound port: 聲音連接埠: Client side printing support 用戶端列印支援 Additional parameters: Command line: us us pc105/us pc105/us password ShareWidget &Folders 資料夾(&F) Path 路徑 Automount 自動掛載 Add 新增 Delete 刪除 Path: 路徑: Filename encoding 檔案編碼方式 local: 本地端: remote: 遠端: Use SSH port forwarding to tunnel file system connections through firewalls X2Go Client is running in portable mode. You should use a path on your USB device to be able to access your data wherever you are. Use ssh port forwarding to tunnel file system connections through firewalls 使用SSH連接埠轉送來建立可通過防火牆的檔案系統通道 Select folder 選擇資料夾 Error 錯誤 x2goclient is running in portable mode. You should use a path on your usb device to be able to access your data whereever you are X2Go用戶端目前為可攜式模式,您應該要使用您的USB裝置的路徑來存取您的資料 WINDOWS-1252 ISO8859-1 SshMasterConnection SSH proxy connection error. SSH proxy connection error: Failed to create SSH proxy tunnel. Cannot initialize libssh. Cannot create SSH session. Cannot connect to proxy server. Authentication failed. Failed to start SSH client. Please check your installation and GSSApi configuration. Check your GSSApi configuration or choose another authentication method. Cannot open file Cannot create remote file Cannot write to remote file channel_open_forward failed. channel_open_session failed. Error writing to socket. Error reading channel. channel_write failed. Error reading from TCP socket. Can not initialize libssh libssh無法初始化 Can not create ssh session 無法建立SSH工作階段 Can not connect to 無法連線至 Authentication failed 驗證失敗 channel_forward_listen failed channel_forward_listen失敗 Can not open file 無法開啟檔案 Can not create remote file 無法創建遠端檔案 Can not write to remote file 無法寫入資料至遠端檔案 Cannot connect to 無法連線至 channel_open_forward failed channel_open_forward失敗 channel_open_session failed channel_open_session失敗 channel_request_exec failed channel_request_exec失敗 SshProcess Error creating socket. Error binding XSettingsWidget Open File 開啟檔案 Executable (*.exe) 執行檔 (*.exe) XSettingsWidgetUI Form 表單 You must restart the X2Go Client for the changes to take effect You must restart the X2go Client for the changes to take effect 您必需重新啟動X2go用戶端以讓設定變更生效 use integrated X-Server 使用內建的X伺服器 do not use primary clipboard use custom X-Server 使用自定的X伺服器 custom X-Server 自定X伺服器 executable: 執行路徑: start X-Server on X2Go Client start 當X2Go用戶端啟動時啟動X伺服器 command line options: 指令列選項: X-Server command line options X伺服器指令列選項 window mode: 視窗模式: fullscreen mode: 全螢幕模式: single application: 單一應用程式: whole display: x2goclient-4.0.5.1/res/img/icons/128x128/audio.png0000644000000000000000000001215512675050177016065 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<IDATx{՝?M<a`@Fkx"BP &G1&1ٸnQc̖{QFݜĄq<FyL0 00<TOv鮾zz9OWU[q _r݀r9 s( Q @cH0ؠV u@ p hfR[ o%.8 x4T϶yAH|wS|6OuFiR`90)b^1 ,pDItk,_~5 5O2zAӭ_ hjK - tz`|4ݚܟB 4zx(qS&c`q kV4׹nK"MCi-4*Xn}&vܫֲl K ֽ#~UQ0uaWhlPI}S8~:ED'04who2n-VAup|u^7Fxv t\hjN+h5x嶎++ŕ8r2o絭_jzR'$<%nϪ-@0~m,K/*-Ąo ֗gݔ]zQ9^SE *O 'e3LCz VxMٛ;KGeeF|/n4ݺpu7 -GS^zJ?~A`6V0iPQFŜ?MV`Z)k?L$VEnt߀d|]H|DLAXx72rtvDȴaJMQt> .}deH@ӭRg ~"@,ߦ\1R7/߿ M~YVxڗ0kgUlP-".VK6f\TPw/,oH)Y] <3`jO!1XggJ RQ*UAa$^N_/T:`(̛*d4@H'U1XF&`EQL(u)`d,6W@8X)Ew2},tQnMV )s%:3N_ hB:Pӭ pyE!K͠W: kRjoKrEN"9n 38vvsRkT`R=0[CRFӺ.~WB)zwQ^}ROB]u10K IKuLXVB]PtK(@D"EpŹ.?uՃ[c/^Dp~?w"rS8{tX4h7ݷ!ʊ%ZȲ C?! ݄Aw6ݩpn0N3q8(cR*˲7Ҩ̦4pipF"?8D{nog y;})b3n+R M㬑#q)I>:Xm<';8/ܕ\AP[HMJ1Wo_:c؆wZ~MYMܿ1x# I(0݋lr 7˵'+oEfoH8-|m:j#-#LUE wNv`Ve (g gݴ$%() z9tBHctE/17>gG@ -|q%htl@ (WdL > X+۷;*gAtCl~WϦL}V*<Ştnt ,hi~JU:{)nȤG#\AT,:ohS :;FƱ>o#t#MӮzl(1W/8%C0EG/S~5% pڃE#(_/kO>xM!JMLGq*JⴴK7o3r v !{Esy9dd"@ QȬґZ6F'T Qi[9&l8B&g АEťcZ{c԰H]NQ-Rv70" \= Sx&@ʤ]Q4%,JC$=i4@{$P0"sxb]h,5 J۵.&VkWL8ٛHdg&#D(7\쨓pM(o8&`EKY `2?QP3C|"9AөFi;4T0LJȞ|D2Mb\0>Fy1LĒ ZW1iai0rةq6!m  3=b(, {=oI}VJ D8&U={3R:h[)M"{5C@ ׻!lX"HoJ;P߬0sBPQ&: d47™3t^gl  `M"HɤF}vD0&z98@[*%3GNQۃP{b\|QlbL2k2g!l3lvqj?ng65-jbM,€%@LC}4b{]- $Oyaө;:dl:PifĀ'@LC]b~85 r#jw3(:c*sPLnPG1hnRE|㫚9(~K^e* h5h5 5td^h,Nx^Ay*wP@nGke4w8w.M<\3f~BT& LC¥1LC= ,3mIpie[Pޚt-&/g$HF1 uw ,4ݚn\į5@1o}T0 u ƒ5(6Z;  -4Z ,ǎ=^1 5XYGHJrp'0ŧj~ioTk Mޘf_!l')P-?H"f9؁&øc\E{3@asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<pIDATx{UǿVL1y$1vŰ&AwE݇JCxȊC`?.Tɂ] L<{2TUOuuOOwMLtIG{S{DkMKo%L]Dxu{)}$[NШ͇9TVEHniC|SCso4 }[=!DH$7EGܼRdg 672gܲy\olP:м\ubo{ɍ̕ ӴeCC#Yx:o Z)FR_W#XTQUWUu5QE&"Q5QKp"zPO"J)%"j0)|$m܈[RƘOl_ aˇ'Ωg9w9Km&^c \d襷.HsQ %3'GYu -~.yp{D lpͭ=mhI}~ ռv }a"`h:e$~vRs[.UfohQ9|H"&ڣ/$>4?F1ysڂzOI0~8L!G_z{ r1}賀[b9K[Q}b ' 0pq̘:Mq͍n}}J":sW8Gª2&톏А> nzVjʘ A6T0|`^s '͋g)HB]]&K`( qjlF.ʌ v^SGE7 JC+/gi/ј'q6p>{h߸~i]|L<'j7_us~3aKUXDfέs'-:Sj ;|Xqdc*M{6M**Όݫ1~&ǖ,[+:@iwvc7?Ք!!e|XAxnou9di+VJ}?WAgb%KYk J7gTwF<_h,c \~xNMS,}\r)6WmlCqG''vo_@i|cY t:cZcXF~ΓP~geƲl،x <=뀙w (jI#ӯ䮧? YOyuJ$>1gM9uh^}dm[O߰:et7dJ1A:yuWڻYQ;7ι2ZunE` LXD͌ɠyA}Ԗ׾Ǒ>o+yi|.Yk"b|m xmqezӯ̻-M:,M&6lkO$_r*#rT0yzMser/WhUZ47.5F8~fȏkΝ҅ a^x=irѲ:F1`~y4 s3'd&hW [\;̊p1q<_gM |Ղc:'lK$n9aM9"5Zn 2f6YLEcYySr ANL>^}+A c6@iK|ISǮ&wtzGwƻ=iCXWS߰%%2+J˛;lۛ&h|l`܋o控vNZCǏ7gÅ#/jiCvh?I*~7C`w]9Kuh}.OO^Oˤheqa{m`&`S|BO < d Tϝ^uVt[©9O_ȷnOz]ňDŽc饫|YmGY 3%J^jw4|w8(M@O c.= T3 rL=W.i̖tcC=<1uSRL0YH9= e|/G4k4RoAHY}I1hӘ ǵs&bQ ߸/|cݒ;vƻ>KnK`*~xå*MƲ>_^{+Jz> 1b7fN޶V_SW/yvEKg XgB1xam6ˀ}_|;;zmywqkM$4 X2AWu _N`}RMvGs:w>!mѠ,]6:@:̟/Wt5-QQl7]ïwե׷,Ym'Ge@2ٔ9k>| gjt%p.CAW3u+fo=z8 -N O|{ɿ4 /„:gX}uj1q5i ByO$7FDf,p&ȶh'\p{ gXe(rc~PȠ*UAug_@A*`4aH{/ m_@=j %V8?@%U%pT Wp%{&:)T*?^%@0յGUT8y}cun3>lUdbz%u;,zRh4M"WM+V9#Q+Z0ZTr۸l_Ggh$RH 7@Z#݁#I,U/=\Hwn!XYgKƬr&R(^=6 s πib-~$A%!}0XuD{KsxHI1>ʗ^p*X4J[ T%?<;S{E4)`d4J`:6mʙkuW{8N/fY#: gm/`x#͜)PbDžN i`1 ;#8C@] "(GIHi{JYyJ#r ̔ˍH,G$mU%`acy :" Z)tHŪ#Dy h[ LR,r jkΥ#MRbfJ;xrP^oP(u{}yB'9,HGb1- "!8Dؖb$KXڔzI~;@8ְC-fjJx4u! 2P̲FRC |4*-O3R q*pyÅr`IU@yt`a!R)QlVhJb"Y{\|;ŕ;JY;B*DRa&p5Z t%F/JF,A !)KQ͡-'F*Kq A28XxT:JB Gc ,|sh!yGK )KGG P `AaM{Al-0;4˕aI RJ/K8_B 4Y@X @R^O2.Z T墉l D@CcP!G8T^l*UaJ *UB 8[@RvW1)w{AhTJE-e}2F kPIp+(2B(C"Up9+HݾVfirΧntEe̒\Zn(qCZ)j~cktO)asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<IDATx{p\W?uCJ۱Ll',v#NE%Bm-l a`kv XE L ,^'v_Ķ";V_qqjI-%KVoխ}^s֚e\K}XZ,2q,2q,2qK}w-p'^Qޕ_) |xOgzl)jBUxHLtU &g9;qOg]U#@GWo[`1>VZ|^FәGUWmmQDͩ:5o)>??P_t^Ձj#'є&»ش2]GWqW#{ cW=q3Y+"<6^@3]Z˽갤.}oD_QSL9N) /ۉD"Ӟ.Lg,xxSSB񷴖m|uf iO&ODLݲ5` l۞ܷ'F<]pǂ\U%!@GWNs6x|@X,RYu?׎vt W\tt6ܱd2\pӧOzjq] u_ twX(|k|/gbddq=_}}=mmmO!߻@L\-.㢯 o&RzǦR)mƭ-RQ]p.xRmY_uK5|>Ϲshnn~˲Y~#WT|~#{:38|k ;[W5O>$۶mcڵu=Zk_}r$m/{:ӹ:q b]/w쪟W0f82!5M_k J_=li_wyL䦛n"Z`!pk{/k=] Oa~Jž={H$ wu|gٖX<*Ƣi R ?}nnfw8uRy 2W.XL 1@U G]6]-Voxk'}^x!?H&ٳ+0 t|ȿaEQ8PLx p`_w?tcsǧOf``L&ó>ȈRζm^?44fD馛ظqcx@X5)_Fp Bz:O+``ʕ8eY|'N~޽xܛ}T,9pï_qpdC:zo.G11{PkM__}}}aR)v /mfv؁iz۶m>pxL[[ ]d g]3\̸Lݼndz:_^>Rs+ie:87Ҁ͉s}xNUtK$_7k٭ q8rr4i?/|﷣$BS4hqg9cq̴%*+$?;L\ =]P7|;$t z":nUS  L !pdq4g,yC+P}KüVJb>ոDFZ[H;? sQ wI-̿SJHMQGMAkA;/Wg/䅋mOiac9{ʽ-51)*pܩ,0`mANR=V }E 1nX_Yq&XK?9D*Tz:ӿKO=,GOBhh"oy 3@]uYdrk:f~lGz:#G|xJC5&@\o N_mpZWG̽khL9S}CՉ.x~ߗ4yie!ws]X20TVzpSRPgpIR6ص)΍qKtz!@ \PSE"*{1uyT1LA1S].ߏxח$ ƄG$ﳤΠ!!im4پ>6E0Z&ȀqXes"@)i^e !?\P''4ҚL^aHA}|r4& h*a8l.}s98o鰲q5E[h iD+I H!**8 Eo11N̲lRj~P+2䅀-Ge `s!e`XK^=LOJ@ j`NSu]GQ\ "_^E żK97LOgzʰ`j cN: [pQ#ARK ZC<"E-I#]T +=8WtPJh+!jZp: T#d$*Fwz|PdH Z\"خ&j dJ8PI ^g=@P\\EJ~ @נ LIO6k O.Jx pZw'&Zam@s5@`n.\Vo$jV ]| 0&@pPB OR`[1a?Wijje 08WTM@TX ".آ X Pue(g"B4@XCh.z $XWSEG/[/Rp#WtZz\\Ak&W("z:ӃSXEv lp<= % lGS)4x/ K ^jE$Pm6p xe%,OK{-=aań}Z)Z! B9"CxX# A *Bָ)XLahdh'Lo8F!H],=hq5xaRƌ. Z5^:8@DP8T (4Ba G&\#Yxm)-r xB`xZ W6b !J5EE›,ҊqLqYC(!0"" VK.=@\P@巼z@"cR؎q53~1.R("^BmX+f;( @-B.茇ta6pRp:k` RaJ y`3$R"q'G\+IB!(_7PNG@T tp⠖0+,X%v\L1hf\\w.LZp^v4Qch/M4v= lP (G 5@\@R$So”㍧~kЕr̄V 94qS1huC(Bcp]5F/=ز X T (ؐ*e, q 1JЗ-e*, B1UێB9J0.`&b fC>ә$0.0,P Gy]L*W2Sbu]kbs>Mz  =JI@Au`{N./j '@TNu@VAԌa:`8 |Ogz%ĪFYs䅀\l'A 5S;Z1UkUH[Mo!$llxe,*J V5]8V\0z :4[+mBQ3D(v ᥏C^q޿1Z(twwm;ܜ{ӛTU)EUk_Z18NR),ɽ+^'F%1 WM=r1gpv;תxq]waٱ췿Rj,d7,?p2deYI!DH+$sFf CPS-B `|q)4t}Cޜ/dYeB10}ѱH$2v]wk)܅FU7h4R@=Z !RBzu}k]tXSZ2.@O{IAه?;f -Ib=^I)3eY8Gy$cR[o~ a,kzz%JZJي7+X'_LVF#HE=5 @r+hflGã ~WDׯ}hSJZbbi+R+M\HXJ0bIJ$hZ7knV+"ǏŤd,hM̷*HMg]`"N<M"ӧ62`bz"hZ7K)RMR&u@~#/K~D2L NjRJzA4h$rѷlOy9)5\\eE,uŢgZLj kw)sgx7u'/(E Rk-|/E0 pN6uK]]]r׮]T7!DL)BĴ1!D(RuɈk-CkX>ߋq>E7X<:E.\ I6ؑY0s kcMdX6ceZܓ+tR} !\fK,Z2 P___( 1q JGQu!LTJRJ#Zk)!K:5B:=Q]5)҂3z XҲ22"9uNJ0 w, 1u@RAk`FR*%lZ7!RZ 70s:'Rx:J@I !2Z9Bd"B*2BQ)isb+%fPwww4&˲RRʔ뺩@ "z_: $Aŵl6Z묟2'[ 0h3Rʌ8ifbŻ{%j|IQJm^Jdz{&  ($z["E+[rg!JᦔCi۷ǐ-"?^gYVmہOQ'H!Z렷[1u<:"0&J7JtړZk O9ZRց/ksRʼ:Y!DV) 1*m;S '46!꥔ uBuZ블2^?6ʹO5ZZkۏ>,uQZ!DA)Z)eNkSJ GuHj 0 ;DB!eFu݄a $Jz2  x ZYJH)> ~'/6MsqÇU?9V05M3 PaD\5d{Өrv]Z[XluLPmذxmDd,CWWܾ}l6+ 0 iZkò,ZD!kvYjzꩧTggg`) \uXܰXb,2q,2q,Dߍw gIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/edit_file.png0000644000000000000000000001411312675050177016704 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<IDATxy\U?UuwN!,lI'!k04p,!8"*z\Q3Qu8QD$26KdH"a4{K:]TwUw^իjytu'9zwwwRJ&rELʄTL(@˄TL(@˄TL(@?8 x87\Ώ'5sBx\-4nۙMw~|m \^ŋ  HZA>|mǸy;^Є@@-2YygI Sd0۟*_6Wb 4)$ `V5ίuvWB!P2-@buwe3_>vFlgq]i]Y mZ~VlJ Kj|nw/a? k;NݸfuuuEz{״n?RۺHƫs/n5 T$c>v_>"z$v\q\uu|QFΝ_a$ItCrp@g>QyҺֵ*d}0}On|!)(D> ,__qg j<7?X9S3Ma&UV_6CQAlC]膉tFdgw8=NYFK6 PzJޯT%H nz,F GnxG4|ƎI,h*S!)%w'#x3&@h=]sI oxx ĐpԐl3z?Lw Ftu5!UvZSOAP 69;Vd FFDlv>c~ZܱuCG{0.xMlV%+a8ǟl3hR&R)4$>ƌF@'pyۺ xcb+蒈!"Q3LoTk^ H[?@DۺūPI!w;GXK)ٲs!3k|_JTEMsl3cжBk4"?+hԠ 7vS=7yu~O0ʷr n[򟅪7 073ǟ΁0ҡ'=:+e<1N  Y'@YiC^WO0aNLy3]{{ر]ʶu-.)($/RdS0?ɒCDun> ͮqd>61.m[W 7̭g ;wS>' 5}Wky>@e tn_q?o*WBjBfoMky(@#W;w`$#mgw;Gi"ޮH%R(iUirM`8,T|K'Y @qnɜRX4ْhQOk/Z"5-<ƮL]RΨEΠN.]÷/^jf-ޢb-a>tCiZnG5ٓ2ҼM >zkq<%1{5 |jdFh*qL7zy#W 5lj,nH~^:Ga8=\2iux6KssJ</`< #GxGR{$KΘDKsx_eFuu2=XU,0@m@NcXLƏ^<4 5̩^dRKgѼ}C:'5,ɶmiw(/ B:fb!_mgȗ?}*"G@!>V*8wk},wz/d#!eiͪ||mo睃L"`;&Nbq/A 4Y6՝}^ѼP#WUOA1 (‹5G#~͡Aȉc.ңI\͋%̙;i(d l>;<]?4e~]`fXC|)3yh^E9hRئ@bhAާk@㿶4`H?<}P`Y{v2]z$ΞC:L}8bnus(Œ<`~9̶`]1;EE4~J=5كz}C:̆q|-! EVX0H5homrm.Rۄd5YV}ސ :N=6.v Do_}huqV"Rn`v/^GgT zN!a0s[?1#-Aj3av,l+; K Մ@hkc;kFH5V|' f>tZ ͗py+5nV0eQ!dA\=t% sϰi~:BpsۣjŕG-y ^qݪ M 2ްu0|pXgjц5.?_ZԿaO !9\usrnGڟ=-;&XOOeg:SaϾ( nXoB 3\'ЧǹB½MFX<ݐYѼSjaՇ*.HZXqV:,ߠhG_ǯKjޘ2Y1ʓ TÀC,JKub Y 7I.X ⎡,U5Bx^&. TY{^a.nj4.K" s򷷆.:\zFOɥ;%9y)o6ʳ*_/@ UXMԊO=@'yCxw:G^}Cu1Fu˦B,_ P, T?y ra ndxzǂ@,]XŵKL ~؊ \@Ka+?o` T`czIE)o4 Nt%PwSG:?p o 2v`B?^P:gJ`ߏ[UY^oyw}e;>uǽK xw{;\z۾b-;  Q/v!Cc˖-MC!#cU2moK 4BNӸjI-Snbrlu ?cH44:yIǜ;_VsuLm" PjayLv;mBjY~bfPQ2e% Q&亟\{OI5~5_ \1V L`N,W `Qف|kSZ.>6y)O)!8q{N ^_એ5>ԍ$ [vPk|vv}/"hn|ie㩱D3qeh@(F*.) -ϊPj1X%Z2\D/@B(ڲL`rA,'Y(/E"(_ `1FБ L@Z!ϧ&wD(K VN/0b[<-"-_nWJYc;Љ,Ʀ43a )*Nw1]@Knv>H‰4Q/>D^D(,':q$I JlL`13!w^0gn%u%lsb˽^d2mG }=-mˎ}-y7{܏'>N*n܎ےBDt :DX `}YCmK2 )ͼ{TԶ7:ۏ'5P}߹?E LZ |nЧ t,ksg{e])@ԂpL9Tl;=7 |ksSFe&2!c& P2. P2. P2.u$ IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/edit.png0000644000000000000000000001320112675050177015702 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<IDATxyս?{6f,$ #F%.hG'/ M4BzcaѸy,6ADE0HK/uK5Su}ϙ5Uu~RJ,. = )))))))))))){O@s_?mzGzncV:8yܾb}`)\8_6:Ie)gvPR@JP%^*ZT@?z[H.OQ yl xGx=Π!,#09.X9pAIHH X&~u= 7XʹE7v@!?(Q(^9ʂ5T7>zn`Iӂ<gtjФ&qlw}LDN.o8"yW2ەXjU&<,l#a(,ss,uw#`S'!?: ;&U(&@Q@[U) @U%6V6/~,zM%:$0y ;~(5aq/#.!171EAE,zO7*03;Csoت} QNLj$k ޛ"oM,t.oXم9$-~P$륀Pm#51ӒEܾc?r0Jx?()9I?鲍Bձ@͌A r^g;Y_Mx~H } RhE  R" K\n_6(W 6Xu#xb p} 8~=/ ЬFu~V+",1bu 1,sP.F?diD)== [`SoQRHx~cBD'_d",԰()6pt,Y, p}y2*3}xQ'QNWfܾs@ڍr픁 ώ )0 bR@")c9vz_Kt#\n_0d,nQ`x;R?-8_/x_/rl}=U"ZL-Cxn,Ի`P䇍;H =項~ïPLK5Ś㑷&1"ms NU-Qx+Y([ddyYJǓyc``°__?W~}2*nw77Sgm¼,8 t`дy#xjqVuXO)Aw1 `C %4WcʸIB*B080}iwߪ-Ntc=U{rߙ^FjC(B"͋'QaLqjWg"oy=WNɡ_KۗfO?dx͎*Īw=>d9ah4XX8OfɢўcC um9d@;# W CEJ) .jR*`pl+&`*lMF 8#Xg,㇧' v~p q$7/% V)071ϛZU^Y?$㌺XIW|g T%0'<U\8uPF# g!L(IlTɫТBۉoЉ&~_I#~sWǪq>>߮S}fazhUK#jc[JY'`|kvo-Zdk.BHc9N] pw2c4.ρs{ۻMާb0,UϜ@Y`ZGMn].ccŜ"C\Yk mu||H}O=磅wx=7NMBUMglk6~IV~|O~mLa<>]kJǼp}C,K/\맍ȰލD3nXbJ-.-v r:xFN(IguC 9Tjchu_ڒ|S}X'GZt؝Qm_/Ts ju!7K/ey׽[?v4r%O-npV- '%~f}(7zЯ&9gM<w5ܾ-6ξ{Cz _96~<}".y=gdO.l; fa=5EwG?Vȉ.KJ_?/ Mۯo ;ZTlI r ɞqv6L3x :d߷1U)Tgb/J<}Õn1s5O3ѫUKG[/HgC 9Z`UڲG˷3l C+پD&|SrwsiU -! mW7 ^߫Rk۾~jaX=3k rs2+d!Uk,m vy?>/Fü?z[`=^I7` 8-'6WɑָIċ[8\'{])z=?%=^^gܾhr.+-7>tkGmZ/4I"֖RgIנW  9̹x GZxL밉_UƖhUh>h8"KhDZ|99 D!@x眙/e?Qdņr!^\YѪwezPgg+װr诛yzzL  avpAfʨk uиێE$k-0|0=Ux bOO| M 6FkYm~vܸO]n VmjUY&USݫ=<44v°_!t@ݸ.ͷxP)%˞-w7=3ѭ3~xq>L%C`HsU7U~R9ՍjԿo_ c7W]V54B/3FK!YɌsr71$D]Y1ϧm,va(] n!L -SECp8] آ~ե7M@LyxdOGwj0__?D&hycJWX+GۭUlLNuBhn4oznzy?t^0 @=j`Wp x=ͦ}p?/;]Lŀt}~~D)xq>jڇt", vaZ9?}`?:8H.hyJكU LJ)aSN; ^Y_6Us"f#DS-[W{fTH&XQdJ6nr#Qd]QmY6&J1]4`L+;xrs *؁*l[>n1a6JFE.ȃUyO#xM^or[+G\}upiJ!%{ j.׼'7p*p翥=\?Sn6aiY hQYv+EtRlMPZl4ij$O*{v,>cK`R!{z[`͖v)U!x_ o[6MB IE}i_$sRVO-l`RYd=LDh(ENd ' W3"' Eg&Bbb6(Z?BHDvɖeu}_)&׉p!# )IEYm٨f|Ӄ9*@AR@E-i0BmHgt^H9`Z B@oY'B"@"@"@"@"@"@"@"@"@"@"@"@"@"@>U IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/edit_settings.png0000644000000000000000000001325612675050177017634 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<+IDATxw?3{{ƢP=B sԣ#!@ȓrSs$B'jh-(c1fcnZjj3h3vUwWy=zg;[~oTUD"vJ.%9%9%9%9%9%9%9%9%9%9N@*t `\NYJjA!BgWo49֧!Yy+Y' v&pn}?_[ȲX^ۉ ݺ':y-YO^_.>0p5sQO{nm)Ug˝vt?{Ȳ=v"Zw' m4%=)Ȳ0pɋ[xgo z4՘xyĭڿnភ4[n6i. Ij>la`!e?wNǣ !pn (A@N`˵ ,*~t^۔q(/^FS 1߃aZӉ/d2z>!iWO i<_uUqpܳɄII~SWp{0bvO[oeځrԼ f`s^3"_Klg<` IRy,Л~ER]8n9\dĂ`a/@{Qþ݀(3LO>P7T]=`lrߔo.?i ,yO `?(I?XZ:6zUy~#27'㖯7fࡌ#c ]]T} LdqV}H Ԕk6Rn1?YXaÁ= @E.cmYE$IF+9@Pz[k\u6kQ-{Zo7tEMq:<"a6L`pnݔuң 88AзpzN"lihBZr$wDd[ľ Ue AbʾB27>i @e80) &5SMA ftWkm`&9,?s:3KRxe{ʞz@[}Iy@&8xVCKm̒]/li] Jmq=2bnC\K`^N"2@'`xՉ6 Ӗw1;b ]=-`_Pd*C*}[3KԜ7h:`|~ra+'λc\J60`oWg;6+;"7(.nqݹYZWf `½WuĺPp]9v*i0w_QUv,&TP%Ykh,N4T=' r`[/h.<cZV,&a& &c {'me&0RbpI"7Dõ lO6[W~ :ч2ⓡ4&E}&br}s'-H4& Jhp Q,lT?YoB@6KL, h yuauqu24W+ˌVwbI{K)^f4_+ ;_ufDQk}պk0p0"7pU$eG}m+O?9wO7t8?B ĐO3&04J`1f}DO?";MPwv * ˛%6˚3+2q<?`6 VM9Pxp3 2 < vLلg,Vggeyp}PlVl1tS3č07pn]3ɚ1Ͻ/.C {E:Yy&Vƿ֐hPh,+6,笐*a,|yS;oUn9̒Yxx\|B|=An~h_*ƀv ӟܐm}Xyh?0!"WBGY/SlRxm-.7h+;טT36,댑:, u{yaK#:sTxsVznn@Xv녭y@!@H?2Wo:ʥ~[oisD. O獇yD}{.AX[L(Þ ~t[#֚%,l|?Pݼ=n`"~7pbё%; h۞mZY&S9 '2Ć Y9%< \[3Ӳ\,mE:ވ7N ?KWQ{4ĝǣQ?eg;/-~GBB ?z}M%?8֔ʎd e mU-V,z*y㦸z f\x\m^@g c!o'o- 5  )@tڭIϜF}YjԒ9Ik1QoD{M4[h/ξ  g {:Rc~<\;]~^]?8跁Ӝv`J fdY%QbB𧏛WEba&8c&Dag ߺ/_7$Sgk2F*5܄~6i1XRiMR ξ΍T.[g|Ɍ$r;*^3oek#AA"DKU1׳ZQYfLx Y+ >f/ π/9pڦQ,1p-8_Aςg0 DB@PiQ) 3MC۬!'<%nD֚v4E8'6|xpN>?KeC pn}=OYE4o "0Kh[ -N>RgcmLix.Wp_an "PGAX[SK@.e0`g ,f $,ʒy~"Pض/ \[ݓ$I6`{9-*/<͛h>~UEd9IeJ/  -TXNrP9\y)_ @ODxI p‚Kps}uHĐ*fbOnx-\E̩ 6<5{HxS<»XMCp*e"Ѷn2E!I n~EGz"o΢4QX)͟Q$~" :Fʢp=,jJ>Ư{(c ?QVBIQ`a#$IzmX.IXޑa4Uxj#8G}S~!Ez"H 88k+H0U[7L'3Jl+ >(2e,$f=$$n),u$>Ї/iq=Tv)*㳾`:AJb&SzrII IR7Zk\lFv71p3 2¬e JȚ_A[3JkuuR|XWO=$9Af (3~$$HC}x]a.}`4x9_NP@ D.CҢr=,iN0DQ[ƮtiHI)"I*Iҍ-&8>|Ș֓c(]ovlϊD7?ڢAl ݓ0XdlLD *|KTj$݇6| z8kqD'r4|~]i,!%d$Ig /ދEL+:A4W9q.Ig7)P@H21Ƹ*SOT^2DAEf4"(_$i m^_u^V9K83IrqeI9@ 3{B\lmm14nZ}-E=$,DFZ6-XHZԝ5eaCƶ_U?NI9F:4 n6e#z u6%L ,WO}EUm3t6>faT8sNIӄ,fhkvx&Tj4Wi [:J%4'I{ӕΒߎ=3S[lVгi$@[H$ݝP !)'9e  IRZs60Dź`x#KqJ(rJ"$"$"$"$"$"$"$"$"$"$"$"$"$"$"D.5IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/file-open.png0000644000000000000000000000772312675050177016647 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<PIDATx][lkN q$JʦTJA J Q@oj%xXV-UQ[*y[)m-E*4U+D#qI@oN9}ݙsrf?vf>;g|ύqΑ#0:]EN#'@Ƒ q8rdE+S` E/%:]U`tK)S˕jmQ@Jz58x=g<s=8-ob#R}nzjta@AJ=]F٬-9گzmr5ofpspf^ZnN]gqƀv -\:f J/;P,ej;1,E g+Z%持=k(T+*OTxezR Q,aKw}rt _Tk$y ALQ4xQpȶ|WJR8cVs=@qGzWx|SH:%SY&0@fKۖ {RT "`@vwo z]v0}Z6J"FxQY%J*⅂hU>Ei P*2MTkQVb~+g '8[͢)/YvU%T"'JNT@wYh('>_xn}3^@6JgbSCmkx1?}c]Tt {u@u޹ WOH]]FR-eP!@!qkX1 5RA1jvo`f=^_8朗D{zok,9IM^_y\%EB͙x|۹+Sߠ&xNgCBbMҩW$P-5,/`ǵM`(G2;+q 8:SfXkkdΘg)8XIfgyb`zHog  ꦉv[^Ҽ|8Ɔ xCB2zt*G4]#<=@Z{T/.{v:?8 $0ٳm9Sl$œ٪be`Nn؃rΥ`vlζeN.`ρd eRF(@` ۶aK;<T?'3 5 !wqsO9 Avi{Kjm,ӡr^Yݾns O߲֚ wttگeemi>g-xsvHs^};^k.4a{o炚_S$6D82PDT{y8/ ! PGδTk?k13+O&r$ka! #]h0 X*k֔2oZ s@N.ͽ$^`lhz.AH2 (Tҝv3Cqd<"4wj *skEܵmP"5ٺ8S ϻPQjT5a*ZY,҃%>+lo5`hp:w0+Un6/ۃci74] 8>#mbYOݐ:I&Ca$^`TA2 plƭ{X 'Gֆ fg܂@ @ff_r?"ȕфJM',†!sHx@λ vе7?l$Isj "YVlzd֍snNEG0{zam克< @D14Ko aM6.) @غłwD%}c[:lv K&hwۏp]',M"B$6‰sR @_)#}]~0<4a#<@,6vb  v!p3@8h2Jb :a٥-fd pV0|gaKDSC x ?Tb0K}SnWTK;0&!%@t :^B',F'c @LbH"N#DvJ/ti}Jn @׬)5jxJwڃr/VBx oœg @7]Yv^fᄉjwvfE :nr  @9/եf L Dmw{fC$#5 Ad&Uːa ,}J "yL%{ە` };]p\pf.EB^"FOMM-x9 B{X L q†0{^i eRT`RP nusPNi`om޴Æ~v=hhѻ&Wyl ^oh|ݔfe!4 L ~a%3"mX4 0Li u:(mIL?'MlY0)6†C q⬔$M,$::onzM$ 04`H3l})G{/ /ecLT^b]N&@`Kc -➚#^aCZwiAޙ1 !ߙ+EC^Oښ/b ⍽CMU,ĭS1 |NcoXIS1 co XXabKGD pHYs7]7]F]tIME #X !IDATx]mh~gvS%ْ-R\Jk 1IhFn~Bh~Qh!ӄ n)L?~4?SH@)Ԧ$.k%ٖ}fogwgfnu73"J)hKa4ihЦM@[ ݃ ;>1#@)")AH)WN6.k?@a|r-"MB$6'^Zwn5F ED ^xjg'/3AQ@@(*ho=E9A'y4 * $2`;"J& 65s$pB5C[p1Pbs- y73F *F =? -ۅ$^{n+ۖiveHq /^-]2@` V\SO݆=/]֏iqWn,Ff@ IK+=u_BexbW(J AOPW"NJpTp/PN\?8SO~WJ闸P>v?+I4*˪GgE3" Rc,MLPvp<3[z|釧N|r(upZ_ 00rU{c@ʙe1Ҙ eT͙iTj&1 Ԟ20 t7a/.;wcKՇg=0b|rFجN :!0}fa䁁=_pP^omȜr)au өm?V]Keo##/++wd|[o,nfu#Ǩ <{;{L>lG)@ƬR>QC'xh$ +0;v(=@ZI+S}vSRzL0 б<kNv(/;y8U;c䆿EhlR++k'yc\A8zS CGH(@G&#' Bzry mE ޴Ѩc*R"P*6wH -9U - ̠ KJP F܂x Z:TP*2`L i&(oݎڃ!'R0ܟcQv!;I-.( 4Z Y G2'[U&0B oW(þ6~FMA.(,c2(3m> uŇ6808ǁ,)~QX\Gc`>(M >hv"D ~Z[*s @)T ,ʧ ̙~`:$-0Xh/6?x@ ,$=ESڕ[R"˟YQ~E rp @)xd4ڑvUNSaY(݅c8ꈰC7X2tfq5*ʝf CQT- c|&^:ğ7H`b98TS@~bAO7Sd5P8D޶ 8fX2m'҆HQ&wi-H,mYEo(]9\Sf}m0v[0 mIWqm!P Ccy*؂4,Y)e@0#W?B_ ɣ Q6gL <{xjX4-dFPrV1>}k@bo!k!j9J8l^bhvc+Ccy1$ xE ALP mθiC (B&k-ݎ6OvX T(- Ss|F)޼iK&sY|PF^[ %C jtD(py6 ;pن8 >1hݢX&6ui% 6}83F%.lYH# fP84֡6KJ2 RdΥu'/ `vªZFk箋p`gN{!Bc{uLR(6?!wJ)rGWV @ȥkb;Y;QhSdaSGmi5M ǚ#2',-1e00^, `tI DJmasBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATx{VU I F"Eߌ#2uTuGfZ3#KibQ:P$AD >Huz9}=ܳ^^k-J]hCht"`!0OUgev?"8fTkH`. ~B2UGj"r:pKF"#T4B_bU]ṭc=襪K]W""׈T`99Ed+m ^* Z XhuO feR=k "݀GcV P5) 6M#'&k "M|~RE|i*׬ڠl<tri*פH]6)0#M4l:mVrl3 h)'DdSઔmF@lRLןBɘ#cU4 vb"OC)(lϕ ( "En`1z'"HOY,Vb ʠͤLSD\Ny;@d J2T[<&̋bktV/+{eY4eGb^{ENZ Oٞ 7,3~i*DdhV:Tbbk, Y 잰b\3ArLpmm%ΪrBuql2 >e[I9KUe)04;*"߅?r7rf::k! {} ;گ8lqnIp}^I܇zCqz0JU$GB.3}5%XULPep]f>Mx}Rg(ԤD1jyÒ'a-pc@XxƳ1s1u8EU$B;bK] SxޡN%Vc;CA;~`x*X Z4p_a{2/ gIݛ{*?N_h}K͡Q "퀹HUCU%e&]9r*..8FUTU\ 0?a;ohDh`'CT`#@{3omUX:"Ҍ"t `)?I?CUNXVˆĆW@lr>Vn/OaeiE.iQa hU[hE6Jˠq7c.xuk,g*?ɫ<zٷAGrW! f"x|Y#p"cwC=@t8c+">"WҪ#yߜ @?`|7㕒ZЊ'y ;&;zOGUFGs,Ԡz| jskQx W~Vx>V`9Cz|GY1;f-Ji.Gr,VheB;,ex H\4_3WF v*|WPOlECE^`/"{`GW`ɭ'UY$w*R׿pY1MmV\u|9G. :-{>HǗεn0q0&AC@."gBȮدdq3E̵֍{-=r'sr3ccȫ=>[}Qv'\,IBdwg' 9}9rsjWu UIvEB媽Qf L+$Ze'b ,n1JIn,eV;?&pȬiS'ٱ~d ϡ7i\ѱpN 76gyDDSBD;GO @>kc{rhSglʗC?w՜A1zNFG`T=s<=>.srDd[7Wb Ff<B\x:(U}2"%0 ñTkE|(PBD >uɈg%e' 7P%-|dzJ# P4aK 8i#n \ʟX9VUFvvД+JjUTlaq\}~N>8g-N %|̡C4?'Li2<Ž΢,+ppiiGrJ`_ۻ ?BU?PnlD9^D6vzE*(/cAR-?klb<}&'Ъ4U]Wa_^H{E<`oyE O1Uk%Tu_ƘCTC HG.k4z()nM>~쭪{#FGHZuWê>i:qZf h1i?lX1/¶T^ D]@kD +=沲%'0TTuy0%sn Q3nW (hIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/kde.png0000644000000000000000000003373012675050177015531 0ustar PNG  IHDR'sBIT|d pHYsbtEXtSoftwarewww.inkscape.org< IDATxwygnݽw{Uo $1 KB 8lcgb1-ĉ9.ycS@*[{g̙9SnY~gΜs=g2BJI9s&sV!e{rq/{ Ir;p~W)_D8E=w1ʀ(b5瀿Og{R#u/ C y!rc~Oww{1{g3u ZjWDlJED!-- ЮnWvϊ(\ y@J 91Q(Guf4{|wTrQZOc] X̟s dkKOWVwUT!*֜o?;3Mp?'˚lLql(LeuTKر}jwql iO'W.ƈ U01KDNJu2wQ)|I_G Ǻ>.^ɊuݜG2zs@ ?-n`T]1ɲyJ=ydϕ΋jÓXW pNYT/7!,hC8`y`ښ0iZL db栂Df~0Zߪߠy-); 3/4!$bN`Z0 47Ze=E/20V` W``x\ἉMɟ̎LlkrEp6^_RjCgϘ$FLPpm<&Gn6 aOAђLO]L* 9EcsE,)I jR1Rt6gglHY>IK&| pZK͔Z-!y( lr *`A~G46Qd:_tJ{"U -.1.[\e0-+?㉞{&K^&V&Ӵ ;E|x0[z ӱB }?Sz3ӵU,)1-Ս~{݃y&.l/[_auG N;4R`}O=qV61𤂿e B `{1^Ft P tF4̔OQp 4ؤ=Z(zT#G _,LDLRWtszr|'e!«i!krDEL0iU篖S: [ L`K,gDb< dҶE3.7(E;*0|^@e PDbhl<.Zӗ%1M˕LACW6˺MK+Z,)@HcEifTܠ>?cm=ccv LS,qPY"+Fܗ)cVV)mO u jh<"㶋fi$vCɤ)MвwĚcUJ۠c'GxCgM5Nm؋CHlBIydGΤIk6" gT\jFKSVSGy*\2)%?>7t)M*˲;HOkL'έ3H N@%6@`0 ,*2LaKSs^e ;X3M "vXĄ&3?H9I'#CwGr@Z/%lE|-',I,[]Rmjjl ;mj_2pNM6xMrB  MDapaVŒz{F )fBX=r jC UmoH?$ɘGC''cx{Gʞq <)`DHl@J`!!2ڿ YN 8HۓY7\uEJ=ȷ?.c#V`!Hkؤiqࢦʫ `* ( ` {7AbrPȇʌRp3-kF@,@‘nx6k6p!0X&a4ŵOCkLsAT $bl 3r}6{QMK2ҝӲs;M˵]X76`l$ZVB@:bPH+=|MXqJ8T \ý,Jvº?Im I8> mjEL`O'r%,lIGZ>z|& $dBf@8(ayօO7GUrgN }xnN$hn }B%t$@.kq>XNA*npm]k@iij[,yno߻yM~%8805)L6tbW*͵q2 "mۖQHN<tj+A"&fe kgc=1˗L8{wO"4uEtގ[fɩ3!_аS_$+HPM$BJgEP\vf O|>df}aQsO_>[9kV-oj4B~{hST$БӔ˗T~J{Hı,K#lتG}TNPA!j 6 r-xfG?1SFbg5ҁҙ d}C~bFxuIC(چ/Ce`.W,oL?+:&ߞ8HnjC,jPRҾ|i$OK>άK:geז%ӗν}g_Y6*,\ D(^.Ie/wnIH3f#@:o dw^55H [rv6l2% @*ò|n9Sb9c:IK wao hr}eYrttEZ}s8pc9!IS/HG%ҒX(c3pt=T@niޒ0uѻ0bWtT{`QysӢi/'qNKƛP^k@" gt09y ZypFrɞUpviky]W t8;{&(=N@]q>Vl'u]˼"aK1&F&:Jn SKFgLc#z.I.?G<5[3AnOefj{9K$v?' ʼn"#le$"E<4h5pH pT(' "-m]/aIO:VqHQYRE% rܠ}$[F].fF\gZcxpѾDl_A,}z67iɟ]͘OZ3x咿{Rrx G:n8mZ[VKjʼn"c=DZc ȟpj60,'+ p9պ|e] 4ՈwVɝG^3L92э~TAT$p_Pb^ZUo9rD*g'ly%=n2R!A@;]ظoZ?9:D w_%V<9A0rxaJtkߗVFP"( D !qDR!49W;^щ">VN0N;#l  xojf"ɸ\Mظ(bc!stA"ʨ HBf">( pb7^w@6 .\fA{(xnZ?zLne,t 'Fǁ;|3Z0X (NGIU|5>&ΑZ:<%pă,{K!xAdGs^d<P1N?M$mmKXdⳛ9yr9=Wta(Ut퀈2V~ @lA~ J!lZi0S DxzߨFjR=0m= !Nq`PpwN_~Ŭm ժ ,i 3;,ppK% GN2yk=&<ē/||Aq%N $:Z܏vXWY *i1STcLab°ϞuaOpQ,?9XFu ol#7W Fǘz-fጅM#/tK(uZ[K+3 +Rp` v]_ѝd RB,?F外}=@)acѳ*_po?C,eeW+N_%-ԟ\'Ě AQ45 c%\X|S(F>`N|\xSs3?%"!8Hͣy꘸ki6B(ev 0U;5l#(:c_x; uS D$nǻ#弲fpt0Y$5ioH/lD“^N](F%@ylXLĄpb7)=c T KĀ%YQi ~"-;=,HP433Spv|!}彂Jb1/9wmD%*PZYĄm:j`ہ!j5 !+qu|j?V%3\ w~su[M>}4ͫeB*P,xwOL&r3m13ou"FUr-(:O\WX<{7}y3SxGNwT [b(Pث!P@A %,~5'sEw["2BV5(0#Z7rc1z>f"gtr.rJJK$>Pv}8a>} 3|FsqhK*~ pǘ[!h{y|գkbȲqqTl "BR@ N@H7 n(̌-8iT(f?p~f~%NA B;(,eh@+Ŕ7q9L1 Xx5PtJz:f4ԵynyP-qRv@@0{-qAPQWCx fژ{@"x,J%ޜ7I(L-뷏^jYWAOQ/p @pNl63 AS@~v*hO4;@(a^!Ƙg ,ǾGǧW\˛J5ҽQp.ޏ ;L;_{-O\ iBSk fBA{0-}TfV̢1`R@:Ku6P"ĖAܰwc$x+inˬGo_2/m?Z50=dn:ѽ /F4+/ ^% SSÎC|㱙[;R7k:DH Sx)c@8TH b"("_etpi.<{kϙʮ177x&]9W&U˹޵WV1εvVU -vs׃[tͪ~S9xÙm|stR쀔&>@mÕ+B3B{I2gf@J(M^81cbx` [RVo`7dC4U9I_=o1mPbWu3澼 NQ {^v*v*?:`;GZHA"Aо%աax_wP{4wMs"cv+g7<[_fvrcTs^zml?886h0/=@tP!hZ A 5b D3œ NOI\nJe`i6g . ;D- %o-tK ~zkg8+ 2A1nY+Onυ3Z՟/RgLCL8@D%C9v߁~sDfmچVӾР= Q'겜6w g58X0$>Y: _H}~Zn ?q_zn{jZ+@╳ElUe<5Xk9# Bt{u$Η]JK$. ZIƩIL*u^jZ`"@߈¥Q:D<~u3ヴ'xKKv^ܸ]/DČ`Zt|S ZpMmuw@ݸEK<<"ץz4 \0x tVph ey(Fp9bY|o\"UsxooNN٪_<)7!j=D F,Ǎol?\B:QL2_i6sjUK= D>'tc8R >Tԓڨ(UQ;f+_A*Y,}vc 1bj3LP&(w{H_Vp{N}!ݔ˩/7;bԻ)qY:(2 YapD76XR`\s[ҐM^¦]&zZ8n"tm'"k/DҜ 8o[-fNs yY5&yjI>ߋtã." ҃|ŝx)gDKՓҋ I*v '~[~TU]m|?J.QOS[+@p[bGOGv8C_ H bmwv2|xn.dDxA7PB%`YYA4l=2#8ܨ>=Ws13etxxysټ_m<[0bom&U[' iY<$f4 ̭\~,RU9s2qU S/'wy4q}L 1JpӥB±!cG(ƫ'ˁU]mjo=xO wr1ઍ[dk fեZً:9ka# 3S7\=9SATMii}Y `9u%6c9^6M`[?S"(m8CCЦ>}& Lc˥`QKi11C!8e|:Ύ 9ITVh DkiRkbl$Gk|$jü?x~kSgţ{ƽ3,'QXDN QE3Q4H| j7m:Ww`9\iHgHpO_9:ױ7A"Fnwv._x虣K b ->޾/_B] r7Z] t_箕[ʩ@R8*GcsfҼ+xm?/sJL`_f]{J^ɝ9X^>9wa1,m)(-~z)&0vHWrKh䎟AEZT0WϨ@{4O^oh~ x s㉝\q*fG:洱xrG}+U/:>#?i'#D@)r>} MVot{ٽ}5Nl >&dKoZ1d{{}z5D1"*w`(.bVa1Uo&]<5xy JuMa^ ! ~ueyDY}#gV1B%m,%6-  @ 4t}R(r3 W$_\zH];L7cT??/%Q&=VO"x-w|o}##zG&{ط7,Q /"^Ayjv9B1`zù*MnlvGB"͇yW?t% wnn*voD:twD #sa7f1ypydЋ,iFz7Z^ԋK8/pw äwR;ͳb^ $Wp%eL?Kg;NE&p'Zxj}~i E/IPgsct,?lӚxtX3p; V$#5$tA QnDHReQdž-}aqj.=Z xXvTm%uKN{ʞ- ZYeYxĵ*v-VhiiM l;/Dm@OPRY#PDaђt݄Q =vbɾ @S~ߧd E _#+ĦKtj4Or ŘP)4n1FyEQ*[oJh8R[D %ݽ Q#nk#DsiHkioS;'H7pEt?3Х» n!~Pq "~9Wr _u&B4i f80Tm46B2S?QM0XAa:߅f}`ˋD7DlTzE&r}>& cYtq)U@I'Mrh9R5)C0D(/ 0j爖 !Ox}:ZxXMwHe@kD^ݖ:e S)1 *Zs6(O\М=〳Jڋ KUhG]4f3 '>E8Ž eֵb w3<ӭ#apvT1:h຀%nǕAD"( J^ͼX_iWA)`I{wHG} ? AK4!^Ggn'@@2WSz7կ>nZh?PFKD] uKWT %6l<8bKK2#m~ l9`3@Wgƚ2RjL]qOGmÏ^=/VλKra Թ-#%;hiY1j,߷>3ٰst#om#x{Wj˛Ș*pq1g'g [  VB޹s[q{xqec&5cj ߯D[T[zNvdY_Q^˩TehG6wQyrK$"%\ʚ*k˘ì߈s)%^wח `9!/.[YL:c,oywȵl5mI:S&2(Xn{ iqdz~ࢻjM<Ѷ=9tIg-_|\?~) G{ys0pPBZ'rBM̿5z[A܏ 83ÊuXX䀹`:r">;|6}*u-9^<8ʋGy,.bk-P1{Za qletdB I/RSB˕ :u6姌{faNNVzƽ>SŽގ &&ǡ{tV*J)[z{jFZ~mgC ~X?&-j0YkywҘ) .BKt->t}AW}*w*n8h{w !_'6#ppDet&=qKBQć@) oNh=+8"{ǁǞ'ˮ{WE#IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/lxde.png0000644000000000000000000002715612675050177015727 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org< IDATx}w|33KJH@( MW@OA)WPQn r-`~/*R**U%w7e;3?f'[  ݙ<,ˢ]n_!ڥmnsB' lspx)F\CDp(3\?2vh!S}!a'iqEʠJ Ib<я[" !@m7Wh|v }!H5q)<eR?'Xmj~yw{&N8J*,,Lv׵R20Uz@98;qmg^^G|?C̙3Q(Uvg18pىJ t Cd"r 619rd%KLׅD`'U *,4NHeNJڿOT -o^O:nݺg3X&f'o$4ipB|6:޻QsTK,DA9jp|}"Y(ݼysv3o4i^ٳ1cSB_\RʠhtVHDhTTTi7 RPGtϗm:wW_օEE:Ie4l-NATK222Y`A><4:5Ŀo#L'J+iiЭy'dbb O<9.jXx HMywtǍ7d޼ySBj/ % UZ}kB;BJ'>VUUU駟no'ٖs7y8Z**fǎws4^pB_Pe3WmRRHJbƌ9}ܕ@pHj+#){uy|/@ŋ;vC `1&oNZTuaHj[Ҧ8 TdY7z>9rdK(ۏ8qSİ2ƘP^x 2b&+nkrpŜ;vx_]bgiL\o  "AJrg̘.lpMji7T׋@$~o.]4s~v[һT>Nƙ|U6|dɓ$~x##@=^pm{!7|NX!z­|)2r7nܬg.Tp@\E</^<(rR)ݺ   &G߰*T-&.^ ^CDnݺuFJʠYbY'U4mxkNα{챑_u8;A\v ׈#K,eaMG\*ajԮqmDGV^6>|"Ln k{_ƕ ByU>@':Q\j3x$Cx ݯɀ $|; v3x1o[yG[#@%K^ Ŗ# .r^[z}C!t=Zq \WJJ3΁ VM 6m4}!~{XV`jCo &P*o?:uk Dঈ\imBuZ{#/\iR!W;;L_0J$_?/K P- V {Gl'OcqAIey-^_*#JD׮]vъH['mذaڵqDX3y.9DZz}ӃOf..wB!R#ЀZ4Ъϝ;Rێ.u &75yzwuuRp!J=VS:P6l64ؓŠFE)\r~Vloϓ*BRj9  . Q\¹;.^V`s0(51 Rbڴi<@UkbPU_~aÆ6lr1AI2DitCFa6WJK* cpKhJjCv^_蝈*Э[hpN(d-::"i`=^1r>˖-M Aێ38_¢{/21a]HҚyw6Qdf5f̘+5rZ .Z0+  z(.w"=z.C-( 6?Xy}?p1c8K?cQ\A~' HJ!XI!8BFBQ*'*+YYY7/ȳX,![n}8,2H*Yh"q⹢o,}5a^S=s̟k֬zf F!RI b 咹׽EOkƱU*U\ffg 21 S|ER :;\vܹs^\pÉ'y@0EQdbbb['I`PgbհW:|PuK~O58[X={~߻ j*+Plg`u+0k֬G{+*iP`%? b„ weddLj Wh\G:BDPmR&777ﭥݺaÆ7Ap(#URBi}}MyOGZJ=obŒfLDz,K Lfff$<;] adTI+ŠAZELBu7\j>{ӦM/Oy.(*w:1$SzDb(!]lIIq7?o߁SzQ">!...䮻W My!z..;~ڽ{R.mn#`^.eO2%c͋աr@/YkuJ*]H !!A #C<4Kz}nݺ FQWJjO"(k:BSeCh4S X7rիW**+F F(2爅$GaQT^&$E؈ Ν;Sp^9<3ł3;81wB6"d:zoC0`t!?>bÆ 9  4j rѢE=*/wI X %FB8'Ç_nt~}=<ў=cCQ쮂6&r Fuφ ׆?ec~݅ ¸={̋iID>PP怋tJÃH$B`axCXu**vرcr\,qƀ$k{u zǐ,CSPġDsx VCCƔ}t67Zr/└Q Argڹµ(a/8E|)NQF \tRXzFf;0 Ia 蠴X}ϯY [y7E|&ZIep{H'DgjrVPoq{q#BBGcowMJц v<щa-u T%5Zc ::2dH}e3#l1ޯ4i7 .XezG )vĉӿO4$׽DəghD spsgGKpG, #&F f; Ur AR :s`޼y_xU˗/桇C!#l[@#`̘1۷xf>lߌ7~@sIh,E]#\Q:;;;ڴe˖yϳ Q&Mz:Rz t_NJ#Μt%w%W)U` |p8eTX7/pף@ʕ+o%ˑPmVi˄HHHs D?>: m.;\蠢Y}iaי{xIL(xa|H_N>jz Zj~b(tRo*Gb f[ Q(B}p.[l0hG .ZVZhrp1q@4*3[O8q37y:{Cu`k:_Kܟ8pt}EÌn1:,F$cܸqxh x#oÇOrx^/%u@ի_)B$WKe8}#OK#>Ƣlfff 5 *IV8ߓ,NhB9~ xh n (tΜ9III08\FD(p՛ Aٳ'I!- oC?dRRͩ |;g"ExU\#k֬!q*VZE@ݣ0Fl߾_q} T0XbaNIB)ܛ $&&iW:t耡Æ ,jpI *GѣGZ"434P}Ġ$)dlΞ>iXOou@lנo#Gl`hD57H7Y4@#"##q@@o\ŨBH d9ՠ%O<pfbŊOKdCڼOȠTPzg \_[Tgƍ7~ϲ 9;hP@e˖TwA8mrĩ+(+555_B6s=VH xL+h~k_,`Pf͚ϟgHEFPGC BA>?bĈC:48o" ")4bŊ{gK^ghJ*1\#Dh!D.#vܹΝ{pW;w< A{Ž!&11Q(/Y Qh])3>L1;ocջy^{8*Fp2V`$t9Μ*| 7#=/---D JLL BbuA_ԄDJ˜JsCD 2C.kmP?H;"eQ/'L+~ tEw| fF|p&|Aiiw]Zw`H"C+˟y晅u'+^NݢňT1`{+.z{tw]nZSBNɡaÆSHZΝE&٥$vU XTB磏>opm ~;Aip" BUBA0b׮]nٲ%;xo4(Pu_~1@r3ܙhU{ -j_ |Ŋ/kB"%.%d ,C ¦gf͚j (Yf=ˊ/J+iO*$1BW9Ξ|WއJ ?쳍 @% 9r IDATN%s5 _F5(CRST:s`3VZZe˖}<@ТE %NjU&ɠ(2'N+͑-[9r䈋  66PfmCuEE&9z: 3Z% عc}vp 4jԨA.Y]'GIf@[Xdj^wwqǎRJ*zh@ ѣG7h+W|E)11JbEHǎMOO_ ,YDLTE\Q~Hb emܸ;d_/^ BD\gϞ 4*lI 5jT!-N9@@Z * Ǎn zQݺj6Q/r>@Ӧ_| -)*j8p@5($T !};vtM m&|t:̙3@J FvC'5~WRkB'M$TiϔD) s=hTxTڵ៧+(D[<{ jNZr]h l+$Az6## 6꺏?Ј(PU{I)Fp( qOzIII h4~ƍ4((=JٶG}exڳC @ ?~äDRm>I#R8,e裏G !>tT |DMAH&ME]|Kp rd" ̔)S2r8O^ \S3FV~8nݺਃ?:V@32f͚].W!^111b41l}dɝSSSZ(r'K)-Zyn8~ :t@ZZZ)QU I Lpueo·Sz+~ـСC'O8.;QQQT*U'Ъ1w]hQH(1$7nn֭x;j3% - f/P>sQH-uw6`P믿^"C M"'|2KrZ'=o۶… R3g3tCᬺSQK9>裍/_>[,oj}EJ2GxG T$S=?>ꫯ s `8JT*cMITT⬙*+k~ O;~evUyyy9;Q3|Wsllll,HN=waڴi qlZ5F6Vܾ>DJئN89vPPs؞={4/ILLMj<3fۓŋ?+//Ƙ 'B#*2Ԕ-6.3f̣rlp?*nO,W1Dh K.ݚg #HZ`HHcȞ@SLsdQ>'̍(`(9w{`X1h ?r/n:SŻ4\k׮ {Wև7''+NHU*I" 2eF3I&E !O6|.]:oLZ@b?#{89ouHOO\`p:f1% ?CN kO !خ?PTTngj=p#(X'dەj?YgϞ p…4 /Kqzm۶-O>C`*Osvy asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<IDATx{p[՝?JdǶ؉cĉ4N $$$ Mh ;<:PZBKYJvٝvլX әtml[XvN[B  )IJAlaOI=ǽe=lJHssZ ((1@E9J P(1@Eg&}9 1Τ|2owlYXPE@=;W>~{PEFpUk51TBJ JHQ&0$`RjcrA>ݱeBS)T@j)ӦL["%Ґ]ǘIزdLB eڼ%*tX画,p`Xy#Nj:9(u|zRk>{Uʞ"{ Q Ōi{_}BF2$H!x3p$<{,l]B0C ?9q P/jcMX/T_y(S@j%%HdVUsi_"1g)@Ix:@\ї)VS3 (wᲙ|3rDbFBE)tq–n7Pf|oWZ, $?L7Lixb2@Ogg,sz%'M%ldE_=|NKSz S0XL,i +hJ@LX%@`2|Y,vu}veE+@ P`(\=uބU[>{wVH ^)/^F+-SY"89 1 | 8G`}e2'XA:$)f:qڗ%F3DVV@ ) Nz >~riBig^Os)ȓqrcSL2@hH^.ݱeɜK:@ :} ni`].jPi 2:FvXS7't.W@ 7<~b)1Vz`<HZĥcEFǮc&sy/j:@4& fW;jt YYJP\@JK#&r(G?O4sФX 5+@q!~gtr4y;8Å%B( ƾ8m+"6@PlNulg/.Y2M'U9ʹg aBg )mv}@GuSۺwjLj{}SY |gk7#:|8j{;xl#Rh 0UW0^0mLYCrSԐ%O`:OkP%|3ʯjd :;.e|'Λ %;A[Є΃[w)&4.ZSl.ǘ?s]<pB0OTZ£-'';%C $a@3l|dB@@g((6]WZea/Guo?_1OCpaNQ7ͦlް|OׇL:òyn]<.)%`{뺙Q1Dk W254WQvd6\5h&`{̏?$%T~,6!A[*x}zm5ur{A ߻ 36 :ܚce 5 3cwЏ:s'lk5=ea5a]NɡZu޹t\X9B3êE4rx#՝] \ kWۄؼd{V:n/\L}u?7严4rW;Ǖ0 ??ںj8UCAGp >!u)F =e*t+[5g7W0jU]Й)di]Kz}Q_[S[a܎0y!3rΰM4mLztlrt)Ws7 {yw-]1t{^U/ Ζ`Wfx#/\Kgbsᐃo58{eT$?ķ$m[)1D3[)sNSU̮ sg:~ <tWqK}6ig{?DO Ւ D6Okҥ9hW~Ndz-[p!_o QW=S a v,2ڳ-Knm%ܿf'ި`["ܲX o|G0hbyKEodSiFK[qZ=WkӒw?WFҘl+dh񟪾 -ρzA\&}bH7v"K´Q30B9hHm\0m:k^fP]nHF1 b]n_ RIt76X?x=r$@2Z5! )hXBKzL 75g*Z)sLl{Md {LQ(˩XjڋTy_ng ]ě F{E`eȡih"rf{JsI%@v2:~Lezt>ښ8cЄdFt|Xz? EEKCF)X,ciAYNbC]FǶ^6v?[mM8`X-5nI~/̯yP{Ns͂NQe,#13"`;0Z`O`:HNvKdY}7awΙYDfܥsZZQ'kk ΕKkYX{fTCtЄ@PCLA!+DF (j١NDX̋r/qi3̯q^<Al;gfsߚl4=Az< M( L-#uE/O1M-N6,uD3Q;p ۫vΫx<ڰMAò#ԄAżFf^q2':'_:#!~:fg7٫ۨrΠKCjsMWEX(.v>E[ΆV9ƭI+\'w2USP bWN4zRhnhnش_~9gD&\C3Bi_+@6KfB\窅n3\^_<6=*U-] ?ni̶li(w}UasBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org< IDATxܽw|?ݽ~ދfY\1clxHIB'O!:&`c{eٖlIz1it6|^}|>i3B)U D O'Q.ITu#6K"ū e")tNPC4JA+0ƣ裗 yaA!0Ēh=*GWX,Bꐴ_6RW_Jgʄ#X```^fa^ܪ$ FѲdεD@z~ KGqlrDW 7Z2*VTϚf*7;sİضGblo8 nXXr}8:zdAOWcR⃪! |8—TWظlD2l<e^q3λU0; qNy)O 2k%2ǒU9;s@+mB p .AĆ'ZOEt|iKC/! 'Y3W/Y3fK0;l߻c}6A0Nrhb3TׂuuyjVuF}fp/X*;c,0]T&(߭ʦ`r% F{:df&:K&rι%(|# #J#h-(Ͼ{Ąb(B@j'3';!,. 2KByť"!ϾjrFt:"h Ш)ˤsZU̘3 0BLyUy _\@9Ϋk],v0Q; E|$Ce?K8fΘ6uǜycίЭaOR1v\P#wj[(IP Td(K9 3c#ȱ^~ymlh"UV@QApanRGp=`Πbng=RhϬZY:L#T)#8<3zn/h@@K=s_ߡC` ז__|hBDyq44Bǐx*gi&AY@_(`Qn8$["w,ӃܐWGdȑ`g8w;ճ/RI ^Пzw@` `$z8]o^;5\`Hs!E]3ww?yoBcF sl׈-`U5{w:gd~)Dm(bد8K 3o5Kwr:?q[s￀_' Nag^+u`HDr_m |H(ȭ/G];hc_B>ln[E`CREKty?&'ɹ3 p<=}Z+J'N*!qZ+Yϼ/^&ixh]80*]~߂%w mZ/ IRۻ|%0t1pR nCue^ʖ]!6!]n>тcJf Wԇ0#GOw(ʀ'!,`֟\Q? LLE#ϱ+JF\5ߤ!n앨ε@_FV>~ 20mДQ6wk~ F7{P Cl*Bt=!2AA/;<;HO:(& irKZu-g66#XYk#k}T ;^p`L? E* `J We泟Vu̮ty+B;!haJv&+CsXl y w N%8&DP |r0WpLM Rgdڹ/^A4VR=>J&8;xLl ,y59D08SO^F ‡ ,[ܕsn_g o^[{ќ|b`r6UF- P_Xsm0õO9C](Ŏ#2C‡.#JaS(P #C{[iG̓j㴂$؈ eD92 ŷH+ENHZk]˗y7ZrZw3W y-i?! 9{ݝ:PK8f'D{#< !>PAPApnqOxo0$5ˠWFDJl'ͲNnVAZ\()9;3ʪvo;ڣ(bJUqols|ׂn_^#ӄYp,Mo۲m ^Y[nD=pAnh=YEϻRMD(S˳9\@lnJ@׌`t:p{9KO+> sg) hۦ: lWӃO%DM7$ю<}ï\՗BME7tQk nb&vVc N+$ P%߉jǫ&Q"xfIXR÷VYG@a H2#G6l-{1uNSMV0fI<᱁ogxṝ)W0zy!L>7d p M?+jt 6Dmհ`~ᖏ}!~ !#QHVnBP!_]"l & x?6t{fx|agv άp|Jujٯ{OtU{9LEjF|xj͞m7d`/"?(ۏ&U*{-xִDI js VPtI^IbB,5W?zWFչZt2\&tʦIRXt:G¼{X0JV654]Cke!{dDw"oH[!Q㧗[ #o<1 I]|a; sl4N011M7KHߥ U+VJWjQ <`&M& IK8Ȏ +;ϜDd 'Zy̽df`"q:÷WpOc\@Ω1\Yw_ٛ`9UibpHapk7#GX}48|+x|wўt]0x#Q{{9ilhL5g狏z=p Ldn!izgx4[uYP@Rˈ%#_'BҖLΧ:S1SQGKtX=[gA̽T{SA֨NZU\4KMH 5˸jl2OOk Yh@a0QfZ-YPYZ%PDã5',C-CF,|j"友>0c,cZ&P§4dz2OU~1BN̂P7ZLl BNл. ݖ/Uu&R t;ׂaW>w-EA_ozbSslIoBS)%"Gַ31ua>zg>I.xu>]% ɣkDGS*@džD֋MJرkа~̫fvrPZ ]X0ZGABFC~1ȵ'g3A2+U?ZW)K7 uU/E|u W4cA7yۻHeicyO}`q51u+@o?㍶y_ 0y `SL$E~2V*͉uکNP_leL Wz ?7J PP;=Hz *柈8qoD,Dq˜q~14t<`,'tB2;U*0) O=k}GV>w*rx 8:$@Tنo8x`1ܺabC`sD[k1N*֯6Wl{s>ܹ֛]fIDK[a0ರ:Fw"?^5vZx{H HM ׃y23νU0;1SDƜ@–72]kp| N${ ЩFUN,N >4V-j X Fl}aĶ&-`卖,h!b~OdZ%b!==z2'hIRAr4 >1H'_*Jtx1mÚ@)ŌB5`ͮ&y0"P"{"Eo|mZ ,Gx^$痻&v_O h'bi!8URn7 G)AJ@(t<4`NKcJDfSyz#|ev(θWq>Hx!L 9 g;@Y)t֜@UT{\-hdnE}ߩL:@q ̱Yd9UP[ìp_ĐWFu2)N`5r¦ϜqAḆxpޜ1-,/P AL13җC?!(ۻHۧ{:7>[R挕6eWUymCH. fO}NDB.̯x IDAT|Y u|C6آJ wnynwǫnR[LDV֗;_2GluP!_I*L1p~ϞE#C!&!~Y6ޔE=dG"Xvdw2+Fj"'N|>B6;Y:6<>As ;vf̉C|/H0 ~)NKtN% BdH0g 64ވx ) #-?-2% *3V6ΰdW (8zAG=!FvH>:< <5wc#!q= ˆ#(~ݑzjyytf.'pht!ojtKk[Zh C,QTX & R8& pomQ0Wh,*i{xHEa(' ؤTq|9ܹrUՓ{uWTy?s+`R90z쨯Clp@l<%Ĺ`/`t^ ytdH:M ybpl 2}Z<;p*vOL{u)D{}!|힣wyus`BcfP TLAe*x`6UHL:@4򁉓;3N @ZaOOw*q\P9?'{a՘|9ٰw?r܎V^Az0@Ni *^[7 C|rkw+K$J(bQ#?8Y%hdvp."4&b vIsʨWvpI K 63(Da)5D@&u5ˎWKuhA0  dXH;. MF((,J~%Ơ2էNB<#oW8K.7gNcr^Mx"ċӌL<5dd0~0`,/jTOK (@l0 2 E'scS9@FGbCQH7,;ʮb e~gJAe0A-#ѬPZTsnlvi_ BPBP?kΪ(#H}Jf4H/>O"@?R:G*.~־7LEl]ͼ1B@ MN(˚ Ⱦc! [NS>3&w l8O^k+X?^=xg5J&UV""Dw-'V[^b3[!}#z ,Œ XgWZ51.tX/&+2W7d3m+Oޚ("ġ 60|[[@zUfR!(&"(YZ&a"?!i dV4n-/t`ML\-7o]:ʇ&I=Zx`ԫp#pAu\F~}}6^W-Phg/TLG swlo#A5X~!_q 4rqu9ACmY >.Ghn7x_{8XF1-s/}ݒU9|N:}RJ GEH`0 F;@Ɓ .g Y/rl㕚ppR΄'e)龷Rƚz]y/BaАwCl`P8+84ǖN_LmqC)Q~or߄-b (@!p/}D+%lTPYrf^Pz q(*3eN9s=Y@u>5.XT*?Iӛ F}AQ_oU,Z" Q?EK@P[*RA "?!n90q6"!0ؼA6yc6 l ®.3vu[=qϫU䎙HpYi ^,oҽZ@:GfPZϡ*oө lo U,$oo*5!)z; &((2Ys` LfvvP* υe=7SCxmC ͘|/x`%z/K,+ȹVF3ǴKE 7M^ ƃ,.,$JD@hPĖM8}, aH$sr8k:&o_q]a0`4$%{H钉 !h쌀#Rfhg7#HQCZ)m!!wϰ{^plVPYAɷ+Ǿ؋ו.r[jB >q'UfA }a YT"Ra;rTB}Q5z|40O`zw1ŷx&jm'mly5^ % 8K̺ĝc(G12𩐪N{Lfr&L? ;/EA5`~l+"@p`)IAH{s''dV`3*zI u9At~3B *˚HNwY\".R% ۮn c,HElW&"R j*=61"iY+/+2 pil1^$c`GG Ijs{tj] a|/D(^tkk<,.SuO6;\Y`LOfE`~q9`45|M#Q +ħ'Z+s`͎:%W/e6(ӖN}s:2&ƃD N'@~H8֡c4qerȵE0I6DVVߩ /eB!_;Ô4-G,m9S ye7t|ɭtLx  ӍGm.c4Ѧ'`U9''#H>;Spd\A˂| K(LmȃWg໫8b,/y?[%l[94%uj!80R%h&2j}r[,'*&ȲHރgwڰfv`FD"PWH|Z0/Dh7h|ࣦ m!#k؁QnOOi l Z(YPu64ȄU"Q]d L™3} Qh|x}}}viTJTIM-~*D@? }zA{!CtGqtã};*6FqqnP@#i7DQ`Vu/|Ϝ^Z`7 푔鲲fh@ 6Nkw-.Y/c&/0AŏaPh?Ft2Gl31`^"Hٵ iYY1Y֋A|d@h=k ZΦ/ $0#|3ғ}Z%"0KJ%riւ:>*1Pyeɸac!}$1 MP1%F4NBr<µlρع@L\+|D08t𣶾oEDwC:>l "GB0wHrGq,/ΫbgOg 1_$I U<܄";߻؁yz:_ߝQ}l0Nv$B[j <_>̔^RZ ȡm'dmg\OJ 9^B\nㅝ$b;]O (fwW y|MzF6mykc}` J.k~~t G~D̀Fvw@ `S,OE-}2UBK?[yУ&OZ>!~5 :dž9Kॲ5t׽ím9 Zi ؝rF6SCt.jf򭶂eZ.:tkD*%ZSEnKm&|e82un? qѢ+ ܾL0-\Po¬~fc#$_< 8:O 'Pg^|^ե(,ɰǍj6FTCŠfKSECB)L:y){~ (@ة_` Us߻(( {ڷeIQ0֯?$ JC xʥjΠꢇ.1eM6$"an2yjs #] bsã?w%2dKN; aAw":>!J0`LYi$q! `Fw~pL!0 7Y1)=xsGPS'bv\Ϝ?ݝ =(uetOlҎ6 _%k󅁦^{87y ndA& @ F Mt`N!9% K|}pQPP"Wz-y<}l}c@)@(DpOVEJpz8xC?22`v"Go)9UT<8_Ϳi lF,Z*n_E:a'(RsM)y9<ՆA3=ϻ2k37n^R& ̓PaH$8 G:ADf\afqp lFx"KSH߻Bt|LOr\ي^ %}$z+tfq 5!rymC~On" r40޽[ w.Xd. P~ ݩ6Q jSY+-LG!RB[/<6`@>N6(:M$qCFqNgd2AD&5͏DC`nq|:3 ?:Oҭ1ߗ"]a0","}{^3|xC_e] gpqB6idfGE:ւS! %)7vߓ{~oAzIxܼ=*E=` Y~יxY"q+EEA׈_^Vg-pXOS?~׼+5QQxikQ7X,iK#7Iw"pR @e.+GtQOƆ] =,).PČsؚ55)' :^M[ڥǃ96#5`¼1k90xdq9gm=2C ;>7rE5*gO^>K&gM?9s#2zF)qSe]fakO\]ˣ#!ѶMĖkIn84xg钋Go~;'*'7bX>Ϟ}ts2lX=ABh=><6ef;jQFժYp{] Ss@Mzj,ѻQG+粓:g"h-htw95U3s*rkEsy_.iͱMO# b+yC8 6~*p fLrf^~f@43RƫFEB=M6>.k ljD,I#h8"tv!>IDATRc{x:wCAY_{j{5;EtF T2gΘ^$Almz;Z0Pkj ?%_ˣ U4wPre@A)rs=HDˠݝδq7 v1D|޽-z{3阶ږ?+2G@iϮ6-5UG@0Wŷ߾h5#U_ӹka8uaL v Z}ȧYWX-eΞXU(oFimBG7r."9xryl>""#6"Jٞ7J8, eɴ"5 3 {U;Wwo޾ Awww~"a0YɁ)!p|dP5{ KH7h'Ӌ;x5'!L> Khw/P¼R$ }2lyijRzGnqNkgg!bB:G٥&,੏G0hY}MpC-B;zQk՚WcI: E y*D8N•G`o7#KSU@#pG9@/Ŝ8 !xeݵݾǴ3?6C2!,ExG줒͙d\4' I/aC'&H,6=nOF'/ RN ĭ-Pf$odt/Q zwfN)$tH (tPl?Jv3u #ަ挲n9EfxEQuko/ F܁ݾ=#=O@ƚm9Esp4%|M>~w{X gpvgTP14~< '`ɨ`][D̗RV!$T@!Gʥ7& Qp."RZ*jcTAt DtR?;^a(c6Y̠Be0ׯS5_Ïgܯx~~coׄWeLၰV_eTC7 LVl3F$Rn?b^ #{EÉ9W b:I,!U# 7?pѽ* @9o${?ɤيFO]+Gn8@X{MzGW@ 56L7,F׵x]##pbhnƫpNASW{ HIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/rdp.png0000644000000000000000000002527512675050177015560 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org< IDATxw$u?=9myr·D$@ DHI%QeI]TUR9PKeEMZ&i&-  rۻfw'=;;3;3{G[^ pw/;}pgqw9.=Gpr#]Ý Sd{ٮ~Ma Y\PH {dX;NеV$-h1I&̿ea2M{2ƌ@4&u["c$dp[ ~4[/lSj3fmFyZŽHM_;V;xI \6;` fg]mumAW߷-y'[x&yE@ F%Ċe#[k \p6h0U4:voT47qDMFA+3Bߋ}2Im~T2DP _x+]@%PTVtAWNh5\h3Y+V-bdYFQdIDRa9d)RXrH݂tW!ꛙ_>y~W^ nTBxQEv@Bzkz}XG79j5U8c`FFH&Ȳ?};83fҔp\%oߊ&` !}54߈*jn燏4ՏU:*&Id=VXi6nHE2}.L5oFeĩ/g/̢a5h=li7j~SeC_S/q1mE)YMxDi kމ }4*8aw:}v_~l5oޔ܍$:RE4)"'c񅾗^O&#ϿM?jeuM2=; PpX;ID-I 51AQlOoᗷ# &{Mh4'j_FDBQ6+-Q bIP8TZg書P%TYvpgÿ?5w7dbna7zm85 {?}Φ]naӟ[ɕ(!(72{ß<(zUƜ'ۤCaS`j7hZjymK\Z\Twt>OS[/4] Ml _&]ugӮ^KeK#B:]Uo6f//qe,"Vmy|ߋHOYa4o5xA c>^C!bb3$i 0%x}=\[TKTW45Kc1;ꛝ/gcfaO ,.ir9jWEnW-1Q`gl8ŰwPX,V:JK"L6$^k@jDQD$D1b~'@`HIQHAC$o5[=pךrlrByAZL y@m2 ADfEnUB}8=;~5^ Kg};k(Ë;l! 7_ʮoNkm}Lj@]gIRB sW{t_ȋr lu[UmFIPWn BiMX\4Φ]M x1d53qa8B"LfoN@sYr 37Cӂ٘&2 {TQ<$7p~֦B9\J׸FHCEarb0QͿg ;T].TTMz, 7A5(@zC7':}/nVw%;ɧGN]emWaH&VFlGiҋ;Lbw TubOK!C&<$Q9.o(hm潭fWS,ݜrb̿wL6qG#@[FRɐ g(@hqd"wSBaд_"5W#W-DZ\ ._mh%Tm0&J6$C6oRb !:;6'W<D9oEb@AQJI"Dq48"M.$RL2`Pohs \Ϸo=H TC-W_&6J},QH ܜp~(ą7$ Z!׌A468M[!JoRNĢlb%by#dȆ(LƂU`2̉%ڝAEa`Ʌ܃3QPkh˦)ƅdb`x>'f.~2e2P:@tm{$'毿88VYC ֪JsES2s/HAN'{!nhHffh:0iX+ U,z Us,潭\§+;o J —׳_fkMvcG{Ά5˃&JEB< Acw.{֦.GO]}bSő+fgéG`'`7?7 oQePfBυo VOPWŌR}mMj=jv5Zc3 n5DwHs@5_H\\(*(,D.NXQɽ|Z?_~ ot>{<}`v9/~[w~M%,#bLz)ڟH*\V-ܵ/.m[-^ZzkU{w|#jV3{MtP䵥 M.z{m2OlO2$riȵY >\7āxr7o;/ُ_w?U1s[7S%Vvbl py,B$-zύQ C-E}裂h08"u=6uʓk^/6섪mOC?//ѵd,䟹-iך`ozdm`z?o&Q);P]ylWU׉a'9yh}LRs p):?g&5Q[v>6{ۯ?'NFP, @IeaKu!p:\z2Yҿ,/ :~fN^M<n&޿ۑUZ[\dc-~GIl:΋gA\ՠĂi&zt Eʩ 0gr1Fg/~Oំ2+_)HƚʮG>|rdۧ?$&y}gz&1II;vo{?J~/=SENk?7{[B!w2Hk7 xIËlg8fV+ .mO>ߟ|V4Xzkt"&|k_ //zc&~4̗vsi1ശ^ 'C'^ )Ph@i?\5>G"Rİ(xbQݖ 0SNĥ7&c_xw4azNN%fis>9=CD|;yJ-u^ e[/nĤOMmwp~`&@ExO}\IwO._.F<џ7zrQZ`5TY6NomJld$9=@d.Gs _%ٯ]:>Gڝl?hzqR⤺֮`5(:< '񄔼P;qa~i/LĂ 鷜kMa/-j[ _I/ A D,M\\[h T0gٍ͇?y~Gv\ű7r"ns恳DcͶwZ;7#UzDñB( E|3g*^ -^VqPl=xa["_&= )/*L6~/I/暚M^@}pFWN]F{g1t:fpYZ~gܕ]a9DGN/d0W &( "HJ7 ro#SKoL$g"g ֪+68wTI&۪pʞv 4l.[mOm`$bAjfݰ/^P\Ȋ'?? uhwxR:{mG]] 13W\L~G>X0cX(X0. LQ2I$ dVX2yQjaW=fz1PIY! s7l`?ue߉"e!׵Gs?H:auFjk@oI%c#AB&h0J`dGfvYh4,xs2 @35CeE!.`7}b3XYڿ|wznj~9;&gV[/ _A1?Q謊S+#1$I"&% pB$1Hf(`1I"ZnlZ]2Φ~M @|R-Ƿ_o3i(Upa=t (4Z 26wYpO@I|SWWTs pn0eV)[Ov(KO+ sٿHB"pz˃k6/% 1I%FXozҿU]'LjEdw[/4ŸQK@R%e+(w?B g7E~,z-6,+YK!H*_zcf[ feRelXS7 p6e=2/@_p p4O闍vAp\d.hCB{:ʤs!dC(&sc""')|eVVSYYn^5G}N 8?xT~8mb3#$d/NF}nn.`'J&f3afIZ^eeZki"zh?d'@G߳-@> Z|Ȑ w*+p6 pllvg/1A Xp1;Ī:@Id((wǙ&HD|\+?*ڏthߎܹ6G $h,.WM/Vϥ[Cyz$@蟽~GZ#W&27w?!̆ZKh ܙO!@{ saBWUr߱-w~ ٠U `jzm!P2EQf/zϦ2-O2+upB6[-| .IDATs =@rlwGXhB!<1^#M 4dsʟ~ih0{MywZ\ 4;;GLZUJPo nXS !C5k65Ӡ'ou /I/ c?B}gӻjO!dW-= p:vB.2̇,⡥g VvkLeRhӾ}Ɇ5l? hvjEv_SٖBzKS?l:QPhwKd p_3}ޟR_iou[r:Ta`TiVpYkhL Bշ2c#BLz?U+3-wfU,$7<p1$B "*Dk3DuzL]%#ZĪl(rR8 T< ܹO!.Lrs*'/~l?$fJr~80,9@Nr,ICQ9mN,.G`#$s=± 6C~ّ€;ZdpowG;!E.-rF2auW㿱U4Mu&\Bdsa N1䛼8-Ƃn_7 /RJ8@2;ǚ Z,mfWc暟 x}ʾ0'ZZ՗#gadeqϭavT[WrL!̆SZu6K0(@c<]Uӿ'Bú2x"M]ˋv`¨Xm~ZF13_{4 ji {rjݿM8m2±U$] ^폩ٿ2<~̆xRY^9J|O)лUh_/-cu,=sfY9um?_MD|˩7i1~߀]ܵh;>\}4iѶ9!=Nq#b`y#ߥW39矾6I+R7{G>H3uqq TAS[U#5e5k\Jiч px'.^go+:~ վNvT{qհtga[(&iMRҽԕnaS7W.ojbHI틐tе&x!,jM2θ7ǽOǪzoȉhO%_s5eՃ2~r5]p Cs ?޶ѿLˆۂAs_/ӉNr˱V?r"~k׃|wf•kgH~\ow;KF ɫN CM [mw;QTRfg} ql&,cN,ձD}m/|5H[2Y kH5@mOi9'zDA:{TڲȂ_hC.f!-♜]?W$0j|\@vk HMe[&Ϡh?ոOTgjCP'8@Gu}I:j&QfDl ArRGao'bL/7ܷ^9=}^$y&Vr e-Ɓj*nKsO<^)5[$Q翏d,  &/ݜ˾KC5~)t-zf»rA ڈF2Z~pe׉}R&A2Ed%QLQ2ANDc??{=DX!c`"mDtI]d>3-yi=E D6MVQk5hKflz2Dz 6/;ޓ#Cђ̊Cɖ}Jz G2dnZzdxf*t=*!NxȆNܵ(z[.Ǧ!w.=Gpr#]{qw9.ήvLIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/resolution.png0000644000000000000000000000635412675050177017173 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org< iIDATx{pT?nKHȃ(O/P PA|j;iѩ3eD2b b-G }&wos>3=wn4! yѻE @r$G @r$G @r$G @r$G @r$G @r$G @r$G @r$G @r$G @r$G @r$n%SaQuDOl45VXSRF-!Eey2h*Qč /K`ZEe3F{O8Ħ<@P )Y'pEeZk~c 0'R"33ηEMD\ QtmpfsQ$?{I%PK 9J 9J 9J 9J 9J 9J 9J 9JcikX8R4%@0P^eww.@]ILYt]Y>!8Xeӎz}zb J䉛r(£iVN)`ˆ^o2~70(ҹ4:SX@$]nD5&=8| xxfY}Gٰ_ /S8yVW~{F'M!#ƣe.K-IO5TaM}'4k `՞|}.Ow7)9tZ% @ U{XZM`@k6$Q+;8,xWt 6r@04GymYY _)M,9v[_rii}ļ{*Wa'Ǭ4' o,-a?@,#]NE70i3n:fKyà.&~xR?a񚪘Qr{(Ĉ#Sx`zfOQa.,;Iqi1GjNepڸpHRt<OOKn/\N &hNgewy }}pVD?tKa찔WU!/L-]՜2oE9w7|5tN-rW%V vptSuy`[)799\pvr~1):ݕgi%X/p2oV6Iˏ{vaw1 áO2RmFi7; >ō2.3<:֒瓝60zy1NJPYgnz`h|Ԟ<;M>v7D^lLǮv۬[@@hƬ~h  "| ̈́{=aw&[_{|ѰC4ޔox)xhj"Csh|>dk@fEs u*- MԵb0{nN/oo5:R5K46z5p2h'QxnS8K*E4G|v6Vir|ʴr>ᐏ%d=mq0n/lߴ&n{.\'lTjѸͽ n!bq蘟g6kcW >hcz,3vl^[ҁx6v;B_th~pߕZ)̾<7Nf4xN&h ٸ72}MyfN?KgmĒ\^Io4ΝQ`۟|9mf=Svw9ǩ5N.J¾-wܺZC]Es1(Ӹ L4*ZnRR8uJ#u3pֲ4m)Jx EVqJ;,cu9'*5Auq KUH 52NLw=M? c|g|i16n7!xk.I MsOěXc߮#q@[j \Fc$ hϷ'XqJ?ET=h4 Nbެ^ jB ~`h}T) HO4m _5w ;M5|?ctv-G5^^@Sl4zϾ[_#nn"i\ Z bW/m0.%:4ߞK ]]݁[#L@ȷ@#Xr4-G6xtE9nN`zA+vWzXཤ n1 eFYzo;i ݵ3=Xe٥iLdx^b\¤{:WVPQkt8;ՙm3e A"t=zwn6͵! ¢ 9+ yL50G<f7EgD^"m'D8H lƚ^d-plƕG 05WN5KцBEԩ?f1>RXT+y ~@9dh! cҒ|FZEe͟ؽ GjH7!ti>]eiߕ7DH%((H(H(H(H(H(H(H(H(H(H(H(H(H(H=DzGIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/session.png0000644000000000000000000001151012675050177016441 0ustar PNG  IHDR>asBIT|d pHYs7]7]F]tEXtSoftwarewww.inkscape.org<IDATx{x?3d7HH()"BAZ]JUPZmOmZŧڵozk}{GKXjkQKQ RA!Hl6fov<$sΜs aa^cc%c X09L%c X09L%c X09L%c X09L%c X09L%c X09L%c X09L%c X09cD@SY˱c~널dl޿'-$:VѣlX ^_*u@$ `; ͂X(/pmJym!X(/P<\U($BuD[b;7Si &h 9ҕ Vh5 MO089uB3'1u Mși4Ҏ/ ҙȗ_~bo%+FlOv;]E3+(M!Vm r+ ra ^_Ti`L)NmaIJ!n8W;xlC;Hf;!F .SrP<@R\ow;7}fV%ף=ɂ*ѝ`KmmS Aاj|ZۋJ, eyIϜ\:W;wUFC=mJ٣X*DF8-1kbq DYmq]4.T x}󁕀CofNu !kꢱu`.aT,ǎw,?Ȗa&'%>l`=;Fb*/z[=vK̛ᜓ8ixBheF@SѦ _` ÁwQ:jdi1Fkph > /=15{?’um[K|9V*~8k2(C oG,ƧyG7=_;[b sNq1pc2} ..{#']v*SǸ4)Sa= UW}–R7@5ɪt6-5iiABZ8}Z8v O*3d$TۗWMN¶.j=}fD4ylC\}`Un(~* :C_OL eC#ouy5Y)~'Ho{ İlRKDQ _#1~XckSN%94M!޶~ZuO@(~7O݌ĵ%ؗ!U_>\03jKа=1_nG;H.5+n]ݻy„y ۾(~Y7H^z8e<i0Ϊ3>;z \lNz})O6P1]A(PPDxv~uBhZ$f•@SB#T_(NQPD]~ƣ3@0]cKKH-v5rt*]G+XE @˛]v)mv;*"!k{}kaʛM"s9il;:N 0TM`%$Qp(*3 [S Ǵ[DKT K`CyS2æ][E$OO_tUFT䎓A`ɫ"LN4'F;0R_kaBj(}Nc;t:';r)Z_;燁_Nٞ&2$rGoih#iDtZ#q_@~.+fzbviÇ) ogCbuEm?^/C\yJ6+k^JuU~$tX]ng}9^##K݃f5N^xW䑴O»c7v"N*1ƚj-">qĬb7 ' (i:Xˇ]$g X=3]z2Ac^B'8]z?Fe^P74n&WRJ95VPmϼx@ˆ7ӻ>!lkY%+WWT91$n'hoqƎib}J-]Lu|Knόfp}ʰqO?.2i:ZB7/q>PBE$xBrM,`i2ug;F3! -d(~9n~OD+-lۗ![{spnsƸӟYo3:Ab` `fҍ[\]J !Li9鷦rbPgM,:rc+,7}_@[_{x}ˁOngNv|ٚs<%Cm_ԛ"mbl~/\e0l\~J;?[IgOqi.?={[BpIrc@ފ_V*m7yk_+ N׀X]َ &;qdU<%S9}߭"Ju܏UQ3%nb >^7R:h{d]Oy ug`17u} .YUFPoM ^;w_0~XvF7*~yg /1Mt\:r o+AZ:㼳?®>Ⰻ8N;N?gnn_w]W%O: J{7sz d (~92/ɳv1#i07&H/uG≛R0Q'S;^0qP BʖVU: 9HHN7$7I/j| pWlg-6S=ؤ˝\ ]s/0^Zr_M<'/Mkg+~`y,cRO 㙕[:gE_Y&j~qTՌqe<р!8*Vi,*ONaw4Qlr/ɓJbgS_<x$SYz> YwBU:7PD;spz ["! cy\◊?d[ü gKCH=)!HK 4L7 \Eosu]RQc3KM>ֵ 끾gBupūݣjخZi^_F*:n~9"$?05 hL;G%wbM/Iez[+ny9z<58@0mptķrDˋ%~'9?Ž6G;{i`iO7#F~pۃ~0( ֠[_PW)%~`4#o gl-p<DŽKUPz΄tÒ&mن!9/XZq/гoǃa1Ǫ[H7~oͯ;9 Vylc˕"^K(e ?qS2 gM(ӫ8sr$*+t6:3;HwBJ/b ^_"Ok斘73*4Qq)B 6 o|wa H.Z qC`JqR?NUDuHUD$pW8ɟ@ ypC%S >u^˻%лZ3 ]$'+~a `x}9ೀݙ%Oe[z40x}q$<.+BoYyr:X09'X09L%c X09L%c X09L%c X09L%c X09L%c X09L%c X09L%c X09L%c ?\ IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/unity.png0000644000000000000000000004232612675050177016137 0ustar PNG  IHDRbKGD X pHYsHHFk> vpAg01CIDATxw`TEnͦRH ;A Dņ*vQ*"UA:"IHO6پw?/H >dv9;Ν;sFH)RԔ]eW)>9_·_g \} Hʎ%q&pύ;U`kqOh N[nl;<Zd{}\O|eޣ硧U |oXZP/Pk?eBFްt7ްVA 2}( ˆDݠ`:.e\(e@f/wP[J_ F*ÉZSIAt3q5wY {!|'@~毩ACd9\2J.3޲PVnL@Gyv><ٍ73W ZDOke Dw8.~Ô[Uٮ| @yA<␲^9 "Y-ڲxl}6DJKcco}~N{i !jRJ7KF<\ =wDIyL}| RWgQ{N?2y u3{"7}~rhCv p MLohT( ڭj$nԼ\ &'kH 8% >R:f>λr* '~ٯ{dtGA~K9["sy/dyo)O=r/d&}=ZV_9D4wBQ>`H`/cM+Vmp1]t!)탵Va)P$re;(pIE\JUGĂphyv@j Q#WSJ؎G ޾뫦M0Ƕlm&Ԕ`^ Eڣ (w\]Xxyϊ;o.)L/d-N}{r&=9 6H VP vo2)yHV{1԰v1r?m!(\F"Pk/*@DctG10Z!JQtgV\U=g oBQz)߁HT>?q:wҙ{!d=zH+gKYy#  le>2DRIWU-`lмB* Q߅*[ժWMh m[Z|=~uަO-RyGḰ{.lori^@~$@0P,k\.=l-_aIP]Wmn"@͵';:3;XJ}o ~}4(uG.*SO:Y#.q ZX_Kښ ρ&:dS77D b,&;ΜÛضA:ƀxXAWS__3ȹ[;c~1<ȹ=ma|~Ykj%Jmѻ Nkd‡W:X%ZsZx˕P;h׾F:|\;/}!W~?ٯ=ڀwqqcWm:SIYj[чΗ ݱљwon$86]'8-;UhҮʃR"H,ܠ%k!\ #>)AR-Iܽn˕y5].Ss rGr6!b}$!؜%"ǍX-?bPڨ^מFX.))=L~d;ē%9>|Oz7/2Ln[d9ڤ.r \Sɉo4oumhygLJnjI1\}#h@)}Ϲ7yǃL!j_Zawb:I;Z "CE-Ƶ`6h >|t%nձPs:ld J)k]n;[@㞬OAZo^81|Vjr[]~O w@k ӳvd\gv Ф4~ko*V7qe`WepW/_xOeoG ?ESސwg.o?|V/R|hw)[Hp4{ZCP1/k+JANCR2μ';Ëwp\ IE{Xruo׮'?_k3WlRr" ɊrA/J!s5lXo;ڒWEqkv '6֨g, ^o Ӄ_4.G+z'VX^@NZCYU˶rhY5G'.Tt d|l:1\JN+J>C)A!{#fVY*Sz=+m~Wm)xQdwva'^.BG$-^ r# ;@>=v[)Nnmxx8=22 8‰[r {^n.³HB ؔP?hb i;-بA~AM4p\׀|].#clMRfģRvHumo3(@kwJŹ}) 6Mh&sONE])B-\%w"os}1>s:w_SYWzџՏ mѳ`_8i,r!wqG!Oפ;'T-=G_[q`,(2dϛrG/WjM:Eѻiਗy_A.5ٚrpVa$b޾t^>!g7ÿe5-9+ƞ@&kD`w^`dn"W-/' B@v? C8++9,_f^v ${~ ;8R' .~T $=ZR-2k$#.-Efͻra(jrUhs{_gp^ؗ73BV} ^})[0sΑ9#{pˌk(>ri~nmZSYSޛx|b89qcn[}p3_'p#{N}yMւ< ;3T㙲n]̲)|22x{0s:&r唳'Cq̎ 5S'@= 3<91v@Qk_9mva1ܐ6 2Rl;(&@={ɷs8zOuw;^=8_sYTkO-943@W>܇ ^sqG^7WJ{Nh^7V (}Lv0~uBvy>pf':+%r*Pqՙ{ܼi .ex(AScjWMkz/,+An>b|<gcBvz@ T<\ (h1gnزo<. ߳G;Z.W+@<CtwqƓv{i$hmѵbXekp⎘P}n@ϻ𔵑{5@qyPS9ѐsׁONy7rz??x7cy\0A'T ?ej'Lm (ZuoMt\y^ATQV&j26nW÷p@/`&Ȫ 2H/ kgdW ՒɁu׋^QVpZKo{m>rZ;c\ͅρg3bik'":)[ukz51f u)_eK>DU#a^I>MΗ=e(0btmR.iڨ.,ǝU89}ycGs:, ۽?ObPS[0tV1sqi[=`-˩6W+=7;Χ<F֨octNY=UZF޸^۵-8D3e E//G]ߥ${7\;Ɩ!lJO1ehɱnpg2kjޠPP%uHgʻon´#ÃicKǃ^*9zX2 A.i>K;h(a9M0{$k7*n*ւ  ǭk} @kفj7*ӏ V-WAh|Nq̯\]S] dWeR9bAO5AgVjmY/ >]4ËR0lI㸐Qojkj= oi_2R_SY_QVʣ`hoM0MnN3Z0-NWƀ}Aq>#ɮ9&BV18'm%ēj[e ('A VG-tQXfF1jr?X" |?@/@ gS}LCfZX<(l-BԚΆc-  H@ޒrZ 'f2W](䗎5^MHsQ1LQ' Dx\koCW- 1em텣nV Bb4PT+@L*lpd?vV)];Z^:m}x TX @ϧ{Ad`.oDN[j4; XvrL̓sZ`c_ZU ˝lo x3[Gl ΐDZ QnWB@M40 N݉Jaĉ=W01po/8TN8DX--=Qo7Ww_#~] 9/ |Mue{;{o\GuvN%*R+?@+6J$_ޚ!+(uxtW1ɸk\i,9g;-ۼXB'-LKCkfD2YMu(oZQpIlϗq\q-`̳NؙR xBf h,S%4 ALVAL= Plx;/3\~2Sߦ7'`K3^wuNPPTr()gSQopuΛVTJ |_ oOW熼Y_myøB*$QY v '[!/(k`1ET+USppI*J}EOCƛ;ӎbuXb HqHTR.:FPj ZD y?3g_2y Y/ 6#g^p,xx_< DS#lڞ <[2b[tG;_&֘CTnK)+wOr.9A/9ݴm(~C0 >a bPZqiPp2gvˍZœT0}6%b@I<0TL5uSԸ`l/:5ɽ <=쭜JӖLoзpkpSD N`0K sN~ա-U{m]MQ[|o94SOc`X*)yIGl5oOPԢ3AW+(, .zk`K4 /葌`}iOsZ/_Wl e=z7_W ;ۀUgAYW#AZZ?yEPb2.}wXqtP05E!BzK.9zopWp~|б|]=K+H%Ȗsr`_ N}V@m ԯ U;ph&&{PP)e*}N(Y ؝02ŇMC^a*`)zThw7-|#R\=?@q+W2?ٖ-˟\VR&G-z^_.wlf˭.A~'q;aJ b!Zc/Gp #?xVh<98<1i ^R*Z!ze=`1h%ia\-+fFcJ|ȥr cIwȟ  ; @0}@ FU[@lК+AWg)6Iߪ?'37i9K.p> DB3LoF4Ci6T:A} c dKH5(*ʨO.mz'w,*W>R~az'I+f*%#ۃW4vDQ^Xp5Ԫ! OCW-y oǃ- zO9(lQ} [?fo||ۜS\⹮j s:< "p4)K|S\=_r|N5t6b(>ٳ  VK;rwDB}ݸAĸ+k{or<"mBljX E?}N߼pl.X7*y#Pɭ s}r0@Cmޞs;|/8x dY'5gя˺JX9zG9 i}2| '[gGix!vUk\H _=d}S.=r Y/q} rR^WȦ1EFzhҲnC =_@coQC`mN@[mC/p)9UY Ro׀埉l$ds~j ={V)'3͐Oʇ!@)nפӠx46 垾=<'&)Am4;rnZD^\hRk[SkA>#0"@Q;GA꼵Uyl"@ ȇs9,Fl lQ_a ` 03_>tOk~,O^KZ}<~q#l3JXcz0ﭮwݏ O}M+suǒzDQQT_AUV~ގ`1r ȑ',LN_JxY䋉`:XjF;1;KY*vW#zGǠp ̞> "d; GN],}?{/5cyF1gR]n>4ڵbm` I[rV9- !!-(;ԩph_}g|o|K`H>eUUWQH@&'倲nrPr,/JwsF™nPw>I0Cu BKCw@-xڷ83g9j?]3iش$At_1d_`uYnN͆W!گkj -1( n814k|z_S VKZ !fw{H%U`\bK顬^PZ_W3 @e*kgU5eӌdʽYVSݰ֗&Y@y԰ZtCmzU\$_k`>(EMRVVj&h)"pӔ"A8$>z ❳˝*0H:G`z,t]P6l|?ysPpy J?Zzn-0|8|H2j-}Y}0|ekd,!*M@PcrID>/nʘhxJvlG0԰~R:PYh: +'.O]a>b| ,+#Ɣ'̯]$A]3Cʎ[S- sJyKXY"P@ MEJ>f+3V<ւ'=r%Lpq",_ŗy ?~AW \q|ÜZwkcf-:ˍ磢. ׭ W_]<6\B ;npW)-#!Gq lirCBfQUC cMσaNT呲6E[@Lc݅ibhJJ_.+E?e6^yG j_PZw@ctm<*Ծ{ 3:,÷~cW`?J?噲CZ'Bx ^Wޮ I@;o6j PjjWmה#sN`jU/m g-V-kSTW|o6]\Vҝ!?@ Zr!ZjTW++@P>o`{87 |LGbwa7yQA@bpJ=7gM*| S2ɯ U/BC!!8$n! -{!|YBɸi OJ!RfCJq|"qg/1D(_|n8#j9C mvĹ-8Y׽u&RR%5/~3p||7>"5*2,\&'B:@C M"AȻ߀=1E`7s{VDV !Bd"Dr'^aU4f= (1t\rnV^+NE|CYlK :5x>ČTBZ$ R!W]EKA$CtY?{W=1OpwDXƕ|sN~ fσY~1_E ]i_.°n!f&о2cx-N0 yZ 75O|t 86^>\(ՊJ X<% jĨ\3|]-M ,t^"x" nTAJ-9g@ޛGgXr.zyϠԵ`Ծ cKU8 S.ZKFlQ3*u,9?K? o$gO Db>j-M09y T~'d{\rvᛂFBؑ+B0|tڴ}O~{ :Ng*T'㜟o.ŸFS@| S{]AIRfdQ{BW ͭzc)vd "e{mu.:zbz gW+֊J(oHqT)7U B~P |}kJWAQ0 g=QUC2Y yQ/gƥT*f"1vIA?Aph\m/}ċ B V.73D'V9?HP=+8' 0lb.CAذX<Ĕ$:YƁ7?$ @{z|XNmfm:ƵZ(L=`Pz``lJKmzo~:Rbz2iqY<!/Z_S24R'^~=R^˲sSĜ >۲#sWe7?_Jq+ޕĞҐAP?{w}ZuQ{u:jOab{H7!ړ^m]]T{ۉFeBخ[!rnWxC"H,:NY2(W0*8=fctc6ÀNLًW~W׭}ȢtK} +% \Ϩ q$Pif64aui (/n \yanS0-)C)u3zJ Bd x/|[Jlf8z>OߏTcwL>NPcíaʕj ǵLl~8> GbFT"cb+4@>pat>W;+ Oڔk _{1oe"}@6`hlVtb6sW*m{T2nrtPշV Nbu0gPSv] Y E1u/;RTX9y' O?^eX}QvxY0=7 0 [`{98`xy$P9H7[#cDXU| ¤@0D6bYγ|rrudȞ<rܙ|>>oÇ] 7I,L,848k޲VᯎPQ$0(aS bbЖ7ϜW=?CGm.Nف@'8XnsN%8g(C}`QMl +K@e}$SC1+l?! s탄ߚ~X7~G-)`37,8#K%/\ ( Me ›K%T38';r3A 8mds1y 9\"6#d7pY = p=؛z?!AEm4CH|̈́[K$-P4X2#vQC,f-@0,e;@U|<-) ȝWX_-}Z r̕/Ca$-CH"ܶfTMT1DkQa5*? ?=}GkF>]"V-BXHc0LTg|Mrz|]z6spޘY =WM)?Y^#Bޮ#ߥ/m?pTGN#G<} -}n}o#Џ@u-|k# " P6SGȫ\NzRđ *ɶ/.pMͫUtw^tQ>.*3,m [V!N|ˀ3=C6xW8g{~e? o'Y d/}4[we# y_L'Btۚ-߸ ~8RB_H ktz ;SwsɏC)s[z)U },D\Cݙ4}uYحlATZz\ |-3eG|7w 8on6@b9X١e`xl XǠB¯xgdcRz_*澧TrN=_ flM:@cu/K謦({@<(@-& p9r#H^EYE݄SC3m&h-M$>6B@rIUKC',%3ә+>\8+Pʁn^3nYx(3ŸZ f$]`)xe DTmCopºɴbZy&鹫cc{Z E]njA:A5H~d= W7fnp(sr ؗ{󶁾7t/_ pmby>mXt@h F;!d1`|7ɊzL6(ZKUZ_:Y Nh5B U=*Q%]ץ,}zSo,[(s>'|D_%sr=1[IUf!\Aδ0[N}'XD4Vs/ROrOAAT- f-C12kM- уyemM E;@)k A !ipNpG>HnTؾ Ocs(jc?Բs/GWߐ81|s_8qˇ)!뻽Rm|ٓ Y޲>b ? hvs+GP!vWa@oAxJkc[]˿v( "ƋКF9_@HjNQ FNӭh+C{>*me,aH~{Y[wb:a E(=baeiRDm',{!jz xgDm0 ^`em͕ );t]`,Sdqǚv{ws\N(ܾ=2J=ioZ뗈*}~Pe-_7a.n[fbODER]| %upgGkx'IY^{!8e (IS!=}O@QRyi5CxG=53ʫ8Q0b/X״d Si:"ށ(CY7j4VBVk  m:ܒFya/vO+ұ,{nAu|^ G?0\立?vrE?KYU!w^xz1a,z#Aj^HiUFՎvլ?ەyb;$nڣ:P4C?X5/bf#*G Z/)&^ y dWY9"B\.ZUSor%xsE{NMrxւ>KW?g/\n9Vʇ˺')@ @<~5^ ʯ0PkמOE-ϴD.%J}C!URiM jUebUVh,4. ..pI)Mz4$g?@q~~ 2{^p㝉ӐzzagH(<~");\śg1?7&90e?lija%8rO|%?2ʇ[WA~c`4{1ZI[V=}N~. E\ľrZ[[x&YO =--f!ཥ NurS=}{Oߠo9AVq5> =xU.rAҀ}!FQ>"JbKkw\x^;]\\ <= u秹gQɻˑ I9TNq4& Z&u`xUX0ƺߴīj3% 5}87e(hԻAnSW+\?'R"%tEXtdate:create2012-06-06T22:37:01+02:00l;%tEXtdate:modify2010-11-05T14:17:07+01:00[tEXtsvg:base-urifile:///home/mike/MyDocuments/4projects/x2go-upstream/x2goclient/svg/unity.svgɷK|IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/x2goclient.png0000644000000000000000000004532612675050177017050 0ustar PNG  IHDR>asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e, IDATxIeٙ;o7 /RoOWx{Oe{D:7ZP=^}^<ϣfНlSUC|+Z߼opOgtW_Vp+_|seaz?B?N ڗC0(Nj#!xz,/3cT ?[\X'K="S7[՗VwO_.*a ϗųYn,3^3y`F0Af9HdҚ3?o~'w/fk4+"  f(UGӓDF?W b}Ȉ^fhgX@9~#H3b; fdwo6k k} WVTJەFbsg)@N~/y@ .R0QQ5W)y#ē )%'}8X+B?s]_$aj9wα$9ϑxGtzS)y4aS7F c?j ΓETŃY_zH"~ 66B |j$$Ir!G=*R $&Qv_)C *A A+2c M%A={'iw,^BEk.{;bg ? ,J)A i4LNMh @ H>r||CE%l05cbq218IӧEQJQ{Qcm#M+TPZ"AڬLaI\'ғx%c燄''.>S ()l0R"'P29;E^gſZi|l}ٙ: R8omS._| 1{{{#ethOxh7pF~w=7׷XZZ^Bfk׮v|>$ IHM?VDQIbE; U:qB %aNZ5$'SƠAiH4xDiɥ vi4$Ir޿|4J$qbXiXNֆDZk`S ОF!A,}ʡ^ XZh!y>x>F@{jV#=܌R4r 9><$Sm;j-w>޽e899ժq-|߻0s(a":ol\fIqth (mPHRQkk9f^-mvR%(UAk D`ocvW2 ׯv|.WzEVmӝFeDRsMO_Korxdo|~B7zjez6ss3J _z~L[k~7Tjk;RXiKhKKt߽Gg㶉NAf^AkҧT39[31Zs|tgO_"z:{*_3@V## F8hwz4[mNPI!33Wf;>3Ox[\@ۦ\.>-\g.4Co8Q*q=)8Nn8QqLkV(`dp'^ =3sF}x}6ן25H-pEJD6A`֠\kɻ_~nx|}+hNhR 0!0xZJD)>^õs`kk?Ooc#DzaAkj+/ћ^;3 exǬ=gn\ pp"6&KU1Hq>'S^QH)B T\)?$_o󕯼:ABKVō7&Vlj"OR?!IqHkTH6"e`t~ b<)3=Y<|CJ/%~G=fwA=Eޢ=5/xPd6D'=i N9ܹN~a% >VZ6nTԁ33ư`=ES:lHٗQvJXk@P XT7HgaO=╗'~hpt|B?N()_9"ꗺl2Eq1q>{zw?}ё&SS=J^HicRso e@g69k߆} 1H[FɌǂgD9FHGơ>(mv֊(lmptQk6iv& +u{Osk67Sew{cJ:!JO II [O1?s,jNُerzzl5N[ٜ{*;>ul_d! TnGcݣ\%VrTcHP*y`f*)3|#^=5C [Rh#5eAܢ4G'll03=q{?!ZO4}qX^2[[ۜ:z}QDoEQL$qLRh5 eSl2Efw)SkYY.V},I|_Inbx׿X<8'ROhu/q.JHU ^P}e3@ݻ\(~DяbpF`Tl .%2!4<鎝/%)\sY_yLeKXoўY_]~U*%(MElnl#o:''|耯h4fH0@:JCx)⤏B2"FH#&Ho e €%h,*Fz6E,(aJ!̑' ^'3/_tR?xgÛ;SLLr}r|(U:2S#h`ŭcD+X~L399h{|xməiRό?mi  ÐvyҏCĉnF@i_cPHCDN]' $X\tХm@YZ()Pi=/ O7Pdc}2(Sp$OW(g rr`MkH* 2N ũ[hߛ԰M$I9IoM4^xW:|*%J*Rz:F;ݿΓxxg1| H@cssC`<4@ ~ U*ߜfIV ZQrD;C=a.#q[  ?ad9H:̾T",hL'xK|NmxJ+XyiD}7ci0t8y]޻(J"[0˘g3`{ҳHO=Yq! 8КF=ź7=g[>H!Yӵ53sR  ![<}_>9{{<| ހ?)p `=2Nm$v~Icbql B Aƴ8,1ڢ;aR8zLN D||B>9,ńG;'M&?ݺJFz>zR pe^^ V}]=9em !jqmIu˽N/,33fQyDqQE BsîL+Bsc0 XNʅ;" :F6X v J! qKU-798Ӝ] ^N~J7CiKS6=c#zc{<ْ|yjg[UesB#PJI\T8qǙ.7Yn@)COgܐ̓AJCC(,hNЉUbGcbu@k12'yݏsvRK޿[ar zÆ J%xߨR)]tf/1D%` Q:v bg [ck g,>XAY;Pq{ WTW1q,߈axi܌vL!ϘN%ֳ5v޷nȗ?@xo.9B `!vwyS{&+f8NYIHb뫫8q% 0cZ K{y>oq?yg4]硢qΛ?[Q7X\&c@t3LT TkuffUNNwIA TB$1XgF!+Wh!\; ȼz^{ws϶A`.K+=lpzOPmQd<ǽtc/OљY@J-?櫯MM~cf ~׾}̕h{ ?c Is8_`~?I?YWL`nYJ>tO2&)ES b %n'9N1K9FHҠmP| o!=f-J8^)/yo޻ll>p}yyh7fU룈x>=~.0?fee]N\$=A &`G+PX`g9 8 VT󥤔GKf=I۸.0˿Djkr{>GjQn`jenM+;3ݷ1{s4=#@5䆉 C Lj. ؈㄃VWWXY]~YO Q5v]l \@X_J,IZiHyGV*+O 'z<֯^3ܯ <\cWY',Hӽ5Sz]{}JFҕk4=QlE2~W<(8qb? ;q}u; IDATL4*zBJWb @B Hci~!2O o $gafg%/ B$B׿0>IVjT:||fN#33?;}0u 4Z5k/s36@ o:+ GpϏ@t~jǹ c/Ë@ Q),<`KZ }E HM$ԚudGpb|ʛ/^@7h3|vo}caz~!xFH1e BB#< s|e_2.Ts9:( :C 0FCm2 URW :qJc@NL©ќCMr Tқ>G=~gk_ִEEX87D¤?s\c1@=6~rrǧ}k " D]8I .$Q%,(! 9m,`V ו#A;=hIi}A oCˁ/}A(Juc?[414mre}̑a sf>h ɓ'lnp|r( 6#~B_j jVH- 5 Z/R|FL{X{y`PF`o?Wzs|>7?^{KT-rCLi?Q(es)YG$;fƸ\7%@[zdt-sR~^l5 NsDSO?[al_*#\<}QWao/0Vk7nқ4pMq׃A2*HϝE:eEډu $ms@RWa߷͜y.CKf$am+TBr=@PP\o}_?X"x"f,=R_ c6)jU8D~Sw!Gs[brTpCY^ s j 5:)QmkFwcgghrmDH?X|KJi HcMH m+~, y "F83챈5w TBº(IsYF0(Q!Bgg+mF#F"POcg=F5w~O0kz{g 痉q%#v88v 1TZAfX4IKX_>0fe>U@XhĪ ( $E~Gxg/qN7w>|oޘl3]3ڽI >@{o1;;<|gP[ ڷ !8Ilf-V(1`>=˥K)Ȭ-L\gk,5xyw9:f,|믎ڗ_ajv՞ĜT d?C̣iK?~\o_787/\/"Wa {M`/VzZ:<{[ӟʴ?Ӯ<ns;=b``y84f tFJVqN=ąqIq~*e;1EJ-ÓƩ'ľL$ ]ũs|v^TSͷ=j|,n*첵ce~c4Dž<Ƶz;U2\gb2(.$ OHvA giUvUv`lZJQP2?+Apj!=->=|=~v4r6*P$Q)܁$ CZ2T6ԏl(V}3v MB~Mbsn^v8) EMpә'Tߠ`TzjCߘJJf7'_$50 -н,A@JL-@$| $} lYaKt"Np3P9o1" PdPW@*:W :OGI^<ڑ Dl=NNR)H a1 ~7q6RVVf߿ܦ=`h+Hh@H\`3=g=$+Յ,Z !;{¶ӹ4AD3Gk4脓5ꃳkDoD= c֟0@V?MA_ F\fx^ `Vq;Bm@b2ë 䙫X.G0f|*9emɊC2RCEoAi뗀tLtf+>{L7x4܌c:s/8zy!{nr)3{0"vylq>& m ۔o(a$(+Zb]jqpVLm_H{O can~%|?$lTv[~TR3JxR ޻k.,PPQ  3f]=*mblOWi|Ad=`f10qޯَ8,=pYvVOX #:W8fy|OQgvvRZYa0#)n̎]8I[+]RZk4_Qi5U5ԗ~ӧ3yFM*]8ZֆfI֭[M41;wHV B! >aff979>{ϕRJaHӥR1wTp(FҰiD OA+)IDeF_IIVsOmA& t IlhP);As*a:k#fsK&ڔeIWxޣ]]JktmVkz#X\0aafEa#+o5N[b!h qmcDDY܀rFcZ)LOkH ptyL$CeXur:U*9&fSoOaT̉Z4v;tܢٛ!,JA{f-L#r^4|OOo0=3Mb{ $!}荣ӓS]yxV:TS$2>\h1L{TP(Ϊwy뗕b(m MtIb06N M\@ M(_?}DwHk#HЙ]:<]^a [<"Q_H n7[\~No2+ On4c2i'1I]/7p& IIP-4H*H,HTBgՉ>G[+(WfivR: 3Oc[Obrxȓw5&{ 3_€vMVcQ7K1y#QA5y[8cFҮνE `h)T)ӼD{RkF~iJo~ZI6T^R35Mg>D8ܺړW_V+#Ex#- ۨ)l\*Kj2H$O9BB'<){ iH]t|-l,q+KE@(R_PҜZS7WQFvO{nݤٛT*el;/c&:],%%'q5z6j`أ@kMcN$ΙVL71V2lPvd[O;!},(b 9ʵ'9bo`e(-W/RkL#3\QVkO𽋄B6V>-gW?1en;<~''gE E ".ۧvk:|@4d~F RB!, po+>(Ug^;nv 'l<ŗ%W$u?fsU&"t5J@kM+k apEE9*(6&]A>#GN4?qxӯh=+hC_Ik7&l_Q_)$FYL<30c^b~nj9<#_ϣa̕Coܸ4JrS˿,#"@$JYy.=Bw+$VM3w:ԀOJ$!)]gQ+AP,?X%:\ \ mtAOբV._2&*Yt }%c2GbGKH+6pi_~ɗ1:bKJ4J!O~`u$ʣ< MR4.̳ܾoE ೏ufgzV ™?w)L`AvŭXYe}mIAb+GǠ5YQY 1ٺRtJCYo@/0n pb R ۷vFX2ћ9@$>9`ch}OtzVӗRAR;=GchOp͉穂qDž6R#999ɖl=l:аgDF2m ݒ5J%ĺu:q~Cm)/&?0T]ͿHx°C&2:v!OgiZ-ͱ>HapȽOrUTJR ObrG㓾z4DĶeL I2,^ -4CHNΡ ǙNiS3).`t88K/%gO?{?Lf~?lDTff~# .+˯p߽/ 0th07?mrpӏX}F<88`ggcw>lTLwu90W *@e^II-NmC_9# VK,(v6x3?{z u(`#J!S=޼%5NV n-iՑ.0c,/{qpI84J.'IQ9@}ߑP:bw.QIͶO8\{F88ҵ+t'')C$d9x<*H$D,n?W27ӥVznCV^qD 8tس.,-KĬ6j %ºEX^[K*{ :)OzK|zW?e !ULt&>~Uoo=8M^\.P܋{;W*<L: M dP\4$PPA c($\ߵvѮ0AXbդ;D[<[~w4nrcqNK\DFaMwL V,.rLwo͛sz -(}>UpIH[[[If)/q<`4  ,V ;$Q%j((p(ƁH3(r_,\! <''l='R ŸiRW f_60ԨטPx TsK]K8E}Gg') 0j3; (+ % z MS)1Ig+<.~6Ky']`r3'FAPWiLt/4 yoss]KK˥RRJ2n)%!bǙzPiHܚnV[ tP4[@N t[(wIM.Toz gRaHmE=v6ָG;mﰵ,E6#@4D ڝ6Az5l9SNxλ|2˻Οx-տm_eztnZR/ I?JHOӲiTQ)T,M kOyisH!RנR!:=b>z}?dg@lP /!]>yk{Ohi\y[GL|Jbyp1[{v(88?5Zׯ// LAEр]KiEqUGcMO'|,\^4jr۴U-GG}ZV6sp\VWW9::"\(B©ahE Q/:ڦC3NFI11Έ>F'x˂7#8# x(wDyć1Bf+Wn3Up% W2'D]h. ̣ d,4t=RUn'/ ǵnn5 C/g$@ɗtyQAfɯmA+/jMY8.enK^^5NV0@X:y(40&KOR)>nL8{/ȁx"c >vi* 'g,*o|58`px1@Ǩ!T LOO(hbl`> :7|m tY.V;r9<Ϙ@gL6mV )&'{qeF#*E|Q`gEtc3ȤF _JGƀ'OVVt-wagv+. ʡH@ %LCCw Q]E{ $J$ L9˅DDر{ٙbcq<$.ɉ|ez_;3k!! #_ !}8}(q?N#F/)tXYY! QyҰu-VX,r*yB8|7@wF38DpcAX0ڲhIK6TQg6j(&P>ٌ4 aG'x8xˉe 0:D%9cB46vUTˏ3 *k&84^ۥdWQ˹w !NF˟/(0 xqϾf!A ;{wRBC I ̔UR6<+?uK36L:G7ň`( ;l?#oqܞ6|B͡p.Zha{v,Hz}O|f|QkEWi?՚>nߛВ{W+Vazjt*? zID/Pj:& \&ȷ76m얪oʛ&v JmVt3x3:V??_Os)~' 7; goHy^ӂ\fchc\.{k=H-qLTE!E'bn$9kLW-'0 K}z!>߭{LRxS3쨿ځ:,vf$|$}u]9*J`QK X>LDV2t'4æ>2Lv gq S@XQ7~MۨL<]! "|'2-o IVZ0+?pI!ͤ>k\Lt bIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/x2gogroup.png0000644000000000000000000000343112675050177016715 0ustar PNG  IHDR00WbKGD pHYs  tIME  +IDAThՙkUUsg<茎WMS(Jj%Q}Q}AJ/%S A$ODX!iGi$T 1Σ/bs"ýsk7&`)pޮܚxX302 ",V]\FMDnV#˭&YUD^KUux IKځvh){;:n yZ='S"TUO4bE^&E{1=2lQ-d4&g~-65i< ई,U<D"YU:C jc.U=@H(ÆUZ%"%`keL Al  *I QUO2]D ŧ/^R{7m9!"g6Gx!.x5D'%> |,<JUcx ]EPUGDd3 E 2w:z {CC%ԑ*d"2JnN1 )ԑDdI=al{sl$^Z/T$&"k QCiU=S3E;n Hc !C)'5/v^Z|maEz;E[`V8 y9wι9_= Xu] @xxxF< ?Ц1tl1(|$"e0$q0X׭&#f&ǀM&#ƀ54"Q i㩴yo|YBuzlyN=9"CF 0GRzk%Bb*y`i:MGo%}wڼ04<kPQT{TNgGI pIDL9';( |C@YhGQΉpDX;""[gƊX `d"Nr-stk1]bWXf3H-kGJ(TFڌgC؄!6h/xQ1s@P!#Kd sdlұbNs1]̀snRDjׯ=F*W0%"_2so!߀LA&y*hh 'y 9<"ȴaPNpkk-WōH>&"ۀ Iq*ՔRo1uxcaBksGMQ) @TTCVT)JkV7`*RT~-SOTDLZ(}:UUnƛFdVbOh*]nl4\oB-'5C1Ƥ]Mĭ⼟s%"ES=nrwivb}|MQeY>xW"Ͳn:,E*JCD2AjilբA>"'}bxx 6nHRXO|"廌-Fh,4dSS7Q_|>OTb||l RgV6s}"Qb|#nŋyJ^&&&ƛYqjy^-iJ7ofrr.<06c'"CoaSѵZ322BilCYZ0i2Q#TnѕXMq]v)ДJeܸ`xAEFnQ8P\D} `ܯJ">8Mб Ȳ*N[}O" loTN[ĶCBVְchܓgwq*i_Mt=@վU]n^ *RaP XZZDBaxx/ ֱú>u{>V'IENDB`x2goclient-4.0.5.1/res/img/icons/128x128/x2gomailclient.png0000644000000000000000000004532612675050177017713 0ustar PNG  IHDR>asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e, IDATxIeٙ;o7 /RoOWx{Oe{D:7ZP=^}^<ϣfНlSUC|+Z߼opOgtW_Vp+_|seaz?B?N ڗC0(Nj#!xz,/3cT ?[\X'K="S7[՗VwO_.*a ϗųYn,3^3y`F0Af9HdҚ3?o~'w/fk4+"  f(UGӓDF?W b}Ȉ^fhgX@9~#H3b; fdwo6k k} WVTJەFbsg)@N~/y@ .R0QQ5W)y#ē )%'}8X+B?s]_$aj9wα$9ϑxGtzS)y4aS7F c?j ΓETŃY_zH"~ 66B |j$$Ir!G=*R $&Qv_)C *A A+2c M%A={'iw,^BEk.{;bg ? ,J)A i4LNMh @ H>r||CE%l05cbq218IӧEQJQ{Qcm#M+TPZ"AڬLaI\'ғx%c燄''.>S ()l0R"'P29;E^gſZi|l}ٙ: R8omS._| 1{{{#ethOxh7pF~w=7׷XZZ^Bfk׮v|>$ IHM?VDQIbE; U:qB %aNZ5$'SƠAiH4xDiɥ vi4$Ir޿|4J$qbXiXNֆDZk`S ОF!A,}ʡ^ XZh!y>x>F@{jV#=܌R4r 9><$Sm;j-w>޽e899ժq-|߻0s(a":ol\fIqth (mPHRQkk9f^-mvR%(UAk D`ocvW2 ׯv|.WzEVmӝFeDRsMO_Korxdo|~B7zjez6ss3J _z~L[k~7Tjk;RXiKhKKt߽Gg㶉NAf^AkҧT39[31Zs|tgO_"z:{*_3@V## F8hwz4[mNPI!33Wf;>3Ox[\@ۦ\.>-\g.4Co8Q*q=)8Nn8QqLkV(`dp'^ =3sF}x}6ן25H-pEJD6A`֠\kɻ_~nx|}+hNhR 0!0xZJD)>^õs`kk?Ooc#DzaAkj+/ћ^;3 exǬ=gn\ pp"6&KU1Hq>'S^QH)B T\)?$_o󕯼:ABKVō7&Vlj"OR?!IqHkTH6"e`t~ b<)3=Y<|CJ/%~G=fwA=Eޢ=5/xPd6D'=i N9ܹN~a% >VZ6nTԁ33ư`=ES:lHٗQvJXk@P XT7HgaO=╗'~hpt|B?N()_9"ꗺl2Eq1q>{zw?}ё&SS=J^HicRso e@g69k߆} 1H[FɌǂgD9FHGơ>(mv֊(lmptQk6iv& +u{Osk67Sew{cJ:!JO II [O1?s,jNُerzzl5N[ٜ{*;>ul_d! TnGcݣ\%VrTcHP*y`f*)3|#^=5C [Rh#5eAܢ4G'll03=q{?!ZO4}qX^2[[ۜ:z}QDoEQL$qLRh5 eSl2Efw)SkYY.V},I|_Inbx׿X<8'ROhu/q.JHU ^P}e3@ݻ\(~DяbpF`Tl .%2!4<鎝/%)\sY_yLeKXoўY_]~U*%(MElnl#o:''|耯h4fH0@:JCx)⤏B2"FH#&Ho e €%h,*Fz6E,(aJ!̑' ^'3/_tR?xgÛ;SLLr}r|(U:2S#h`ŭcD+X~L399h{|xməiRό?mi  ÐvyҏCĉnF@i_cPHCDN]' $X\tХm@YZ()Pi=/ O7Pdc}2(Sp$OW(g rr`MkH* 2N ũ[hߛ԰M$I9IoM4^xW:|*%J*Rz:F;ݿΓxxg1| H@cssC`<4@ ~ U*ߜfIV ZQrD;C=a.#q[  ?ad9H:̾T",hL'xK|NmxJ+XyiD}7ci0t8y]޻(J"[0˘g3`{ҳHO=Yq! 8КF=ź7=g[>H!Yӵ53sR  ![<}_>9{{<| ހ?)p `=2Nm$v~Icbql B Aƴ8,1ڢ;aR8zLN D||B>9,ńG;'M&?ݺJFz>zR pe^^ V}]=9em !jqmIu˽N/,33fQyDqQE BsîL+Bsc0 XNʅ;" :F6X v J! qKU-798Ӝ] ^N~J7CiKS6=c#zc{<ْ|yjg[UesB#PJI\T8qǙ.7Yn@)COgܐ̓AJCC(,hNЉUbGcbu@k12'yݏsvRK޿[ar zÆ J%xߨR)]tf/1D%` Q:v bg [ck g,>XAY;Pq{ WTW1q,߈axi܌vL!ϘN%ֳ5v޷nȗ?@xo.9B `!vwyS{&+f8NYIHb뫫8q% 0cZ K{y>oq?yg4]硢qΛ?[Q7X\&c@t3LT TkuffUNNwIA TB$1XgF!+Wh!\; ȼz^{ws϶A`.K+=lpzOPmQd<ǽtc/OљY@J-?櫯MM~cf ~׾}̕h{ ?c Is8_`~?I?YWL`nYJ>tO2&)ES b %n'9N1K9FHҠmP| o!=f-J8^)/yo޻ll>p}yyh7fU룈x>=~.0?fee]N\$=A &`G+PX`g9 8 VT󥤔GKf=I۸.0˿Djkr{>GjQn`jenM+;3ݷ1{s4=#@5䆉 C Lj. ؈㄃VWWXY]~YO Q5v]l \@X_J,IZiHyGV*+O 'z<֯^3ܯ <\cWY',Hӽ5Sz]{}JFҕk4=QlE2~W<(8qb? ;q}u; IDATL4*zBJWb @B Hci~!2O o $gafg%/ B$B׿0>IVjT:||fN#33?;}0u 4Z5k/s36@ o:+ GpϏ@t~jǹ c/Ë@ Q),<`KZ }E HM$ԚudGpb|ʛ/^@7h3|vo}caz~!xFH1e BB#< s|e_2.Ts9:( :C 0FCm2 URW :qJc@NL©ќCMr Tқ>G=~gk_ִEEX87D¤?s\c1@=6~rrǧ}k " D]8I .$Q%,(! 9m,`V ו#A;=hIi}A oCˁ/}A(Juc?[414mre}̑a sf>h ɓ'lnp|r( 6#~B_j jVH- 5 Z/R|FL{X{y`PF`o?Wzs|>7?^{KT-rCLi?Q(es)YG$;fƸ\7%@[zdt-sR~^l5 NsDSO?[al_*#\<}QWao/0Vk7nқ4pMq׃A2*HϝE:eEډu $ms@RWa߷͜y.CKf$am+TBr=@PP\o}_?X"x"f,=R_ c6)jU8D~Sw!Gs[brTpCY^ s j 5:)QmkFwcgghrmDH?X|KJi HcMH m+~, y "F83챈5w TBº(IsYF0(Q!Bgg+mF#F"POcg=F5w~O0kz{g 痉q%#v88v 1TZAfX4IKX_>0fe>U@XhĪ ( $E~Gxg/qN7w>|oޘl3]3ڽI >@{o1;;<|gP[ ڷ !8Ilf-V(1`>=˥K)Ȭ-L\gk,5xyw9:f,|믎ڗ_ajv՞ĜT d?C̣iK?~\o_787/\/"Wa {M`/VzZ:<{[ӟʴ?Ӯ<ns;=b``y84f tFJVqN=ąqIq~*e;1EJ-ÓƩ'ľL$ ]ũs|v^TSͷ=j|,n*첵ce~c4Dž<Ƶz;U2\gb2(.$ OHvA giUvUv`lZJQP2?+Apj!=->=|=~v4r6*P$Q)܁$ CZ2T6ԏl(V}3v MB~Mbsn^v8) EMpә'Tߠ`TzjCߘJJf7'_$50 -н,A@JL-@$| $} lYaKt"Np3P9o1" PdPW@*:W :OGI^<ڑ Dl=NNR)H a1 ~7q6RVVf߿ܦ=`h+Hh@H\`3=g=$+Յ,Z !;{¶ӹ4AD3Gk4脓5ꃳkDoD= c֟0@V?MA_ F\fx^ `Vq;Bm@b2ë 䙫X.G0f|*9emɊC2RCEoAi뗀tLtf+>{L7x4܌c:s/8zy!{nr)3{0"vylq>& m ۔o(a$(+Zb]jqpVLm_H{O can~%|?$lTv[~TR3JxR ޻k.,PPQ  3f]=*mblOWi|Ad=`f10qޯَ8,=pYvVOX #:W8fy|OQgvvRZYa0#)n̎]8I[+]RZk4_Qi5U5ԗ~ӧ3yFM*]8ZֆfI֭[M41;wHV B! >aff979>{ϕRJaHӥR1wTp(FҰiD OA+)IDeF_IIVsOmA& t IlhP);As*a:k#fsK&ڔeIWxޣ]]JktmVkz#X\0aafEa#+o5N[b!h qmcDDY܀rFcZ)LOkH ptyL$CeXur:U*9&fSoOaT̉Z4v;tܢٛ!,JA{f-L#r^4|OOo0=3Mb{ $!}荣ӓS]yxV:TS$2>\h1L{TP(Ϊwy뗕b(m MtIb06N M\@ M(_?}DwHk#HЙ]:<]^a [<"Q_H n7[\~No2+ On4c2i'1I]/7p& IIP-4H*H,HTBgՉ>G[+(WfivR: 3Oc[Obrxȓw5&{ 3_€vMVcQ7K1y#QA5y[8cFҮνE `h)T)ӼD{RkF~iJo~ZI6T^R35Mg>D8ܺړW_V+#Ex#- ۨ)l\*Kj2H$O9BB'<){ iH]t|-l,q+KE@(R_PҜZS7WQFvO{nݤٛT*el;/c&:],%%'q5z6j`أ@kMcN$ΙVL71V2lPvd[O;!},(b 9ʵ'9bo`e(-W/RkL#3\QVkO𽋄B6V>-gW?1en;<~''gE E ".ۧvk:|@4d~F RB!, po+>(Ug^;nv 'l<ŗ%W$u?fsU&"t5J@kM+k apEE9*(6&]A>#GN4?qxӯh=+hC_Ik7&l_Q_)$FYL<30c^b~nj9<#_ϣa̕Coܸ4JrS˿,#"@$JYy.=Bw+$VM3w:ԀOJ$!)]gQ+AP,?X%:\ \ mtAOբV._2&*Yt }%c2GbGKH+6pi_~ɗ1:bKJ4J!O~`u$ʣ< MR4.̳ܾoE ೏ufgzV ™?w)L`AvŭXYe}mIAb+GǠ5YQY 1ٺRtJCYo@/0n pb R ۷vFX2ћ9@$>9`ch}OtzVӗRAR;=GchOp͉穂qDž6R#999ɖl=l:аgDF2m ݒ5J%ĺu:q~Cm)/&?0T]ͿHx°C&2:v!OgiZ-ͱ>HapȽOrUTJR ObrG㓾z4DĶeL I2,^ -4CHNΡ ǙNiS3).`t88K/%gO?{?Lf~?lDTff~# .+˯p߽/ 0th07?mrpӏX}F<88`ggcw>lTLwu90W *@e^II-NmC_9# VK,(v6x3?{z u(`#J!S=޼%5NV n-iՑ.0c,/{qpI84J.'IQ9@}ߑP:bw.QIͶO8\{F88ҵ+t'')C$d9x<*H$D,n?W27ӥVznCV^qD 8tس.,-KĬ6j %ºEX^[K*{ :)OzK|zW?e !ULt&>~Uoo=8M^\.P܋{;W*<L: M dP\4$PPA c($\ߵvѮ0AXbդ;D[<[~w4nrcqNK\DFaMwL V,.rLwo͛sz -(}>UpIH[[[If)/q<`4  ,V ;$Q%j((p(ƁH3(r_,\! <''l='R ŸiRW f_60ԨטPx TsK]K8E}Gg') 0j3; (+ % z MS)1Ig+<.~6Ky']`r3'FAPWiLt/4 yoss]KK˥RRJ2n)%!bǙzPiHܚnV[ tP4[@N t[(wIM.Toz gRaHmE=v6ָG;mﰵ,E6#@4D ڝ6Az5l9SNxλ|2˻Οx-տm_eztnZR/ I?JHOӲiTQ)T,M kOyisH!RנR!:=b>z}?dg@lP /!]>yk{Ohi\y[GL|Jbyp1[{v(88?5Zׯ// LAEр]KiEqUGcMO'|,\^4jr۴U-GG}ZV6sp\VWW9::"\(B©ahE Q/:ڦC3NFI11Έ>F'x˂7#8# x(wDyć1Bf+Wn3Up% W2'D]h. ̣ d,4t=RUn'/ ǵnn5 C/g$@ɗtyQAfɯmA+/jMY8.enK^^5NV0@X:y(40&KOR)>nL8{/ȁx"c >vi* 'g,*o|58`px1@Ǩ!T LOO(hbl`> :7|m tY.V;r9<Ϙ@gL6mV )&'{qeF#*E|Q`gEtc3ȤF _JGƀ'OVVt-wagv+. ʡH@ %LCCw Q]E{ $J$ L9˅DDر{ٙbcq<$.ɉ|ez_;3k!! #_ !}8}(q?N#F/)tXYY! QyҰu-VX,r*yB8|7@wF38DpcAX0ڲhIK6TQg6j(&P>ٌ4 aG'x8xˉe 0:D%9cB46vUTˏ3 *k&84^ۥdWQ˹w !NF˟/(0 xqϾf!A ;{wRBC I ̔UR6<+?uK36L:G7ň`( ;l?#oqܞ6|B͡p.Zha{v,Hz}O|f|QkEWi?՚>nߛВ{W+Vazjt*? zID/Pj:& \&ȷ76m얪oʛ&v JmVt3x3:V??_Os)~' 7; goHy^ӂ\fchc\.{k=H-qLTE!E'bn$9kLW-'0 K}z!>߭{LRxS3쨿ځ:,vf$|$}u]9*J`QK X>LDV2t'4æ>2Lv gq S@XQ7~MۨL<]! "|'2-o IVZ0+?pI!ͤ>k\Lt bIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/x2go.png0000644000000000000000000001370512675050177015645 0ustar PNG  IHDR>asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitlex2go Logo}hptEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrIDATx]{L.YQT/TV?&ڦICG4i|նVkj*XւH@}`P@Qyyɲ;;wfgwOrsνg瞹{=Wa ZJ`erB hP EQ;3 @V8 ^:aWT(& Ze2VR=eʔ ~!!!P]]v̙Λ7ozƿF _CgoرcGCwBTvoܸ{ I z ,?==j޽c +;;{TLLL IGmYJJ:ȑ#v >222'#m2oǎǚ;|hr<2֠T*]ƙvA@@J{r|DGG;+'I&;BA/!!!q,9aO>*h+@(/"""etɇSr8)^~Fh4jGxx8d2ٔ 녛KtCj g52u:9vqa ]755a)BlذݻwUt~/_P%ŃPXXh:׮]+H._F.rJJRtƄʜDHHhlƗ\.?X<"22r겚'9>>>fRRRE=^Gkk+jkkq!TTTRs=$̙3 xNSmmm8{,?6Ν4;lwuueff*'|!ɠRRBٳ͂\x16l "bXbe<|lH_Ǐ]$@^FntttMMMo駟[Px뭷=HJJ2GR!++KPV&nћ?i85!00o6>c/mҤIDDD₭[WpDC^JkN7Zv(3I%3+rPR(i?gjP륍9W~k`Nx74$i.\t f{LڵkYf!99%d2w$pssCzz:;gD^ʢr뢔/I%Pl$&&b0r۷oņ=B[[-ZƍIaĉ1qġ2^`jcƌ_~/ @II 0+xM, %%%)J/ף 3f/CֲcV\]]m k~5CPe38pkb+###1||||hllĘ1cD壪 6zh$$$ZXPyz=I$8pEȰdz:;K +V`cƌ(++#⧠ucܼy Zpp0bccE)V9O{ ./2VY\JիmfO4ݍC===xP3 Fa$V N'z@^^3gbرe?~\+իqsZ])H L[~ƿ!!ndHII_MWKK 1|~?$pB߿D)J._Jm={2IL@Tboݺj@RzNW^TH,>#CPP.]ʨ+99G%ߏ;w}o*..Ɲ;wɓ'c }\/Ғ'm0CP(7oc= NTFqq1ZZZRYt{|! Ȑuߔ!N'Is=:yyy,zjj*2?ΫϣA6m&O̫G`ik} 22'N$v%ǪUޙNsHPP(P(/Cjj*tuu={weТ0aA| ܹsH?77⤕V4Lfׯ`0SS\kIVgO.#99= (--ŬYLgmLFXX"n/k/<>IZ1l1%lF?A[x1-ҡAQIh48t&ɰzja [A\析t[7!\&7Z~YY̺rC?h|`q-~~~$H9 Ky]*᯿J,Eȑ# \.GFFu/H $8B7FPPfϞK.?w֬Y7( <`䋋ݫN+'L i4kԩ EMM ǏGzz: =Eu1`I/^ļy4ZDϷӧOGnn.㞫+xzC 66{!DBQn߾2!,YkGBw 1WWW$%%!;;着*rRĊ+D}?B )qȤ$>|xH2^LNN!VpZ'U I!sHad޼y,!Zg_V[ f/̨ =oKShhh@BB!544SN׉BZZ-XjkөW>s=8wQ455Ʋb9f2E%gFPP~Õ+WD ,i $<ƐdPo777D,8+@cl ?H,RTBVVc/f-Bee%***q^ِae#''ΟcǎbU֭[m/X`Ͼ(/(((`y[RRb׀ O޲2,\[\\.\@;k5Cr:h {:ӧ)DB}}=B8uꔍ8"dzP5mr{{{c?ʼB:0--[h嬣܂`奦"??w ;D!b|}}*{0:K >f̚5EP %%w&ԄK.aΜ9 PTTAAhhMMHH ,ǐzSْj>|8kϵ6 6<==@)))%}EaVKdpi~6ݛeL'z=Nb Ygy5?00y=s TXXHi=FI&4~ ڜ9sӈ'>JaV JN{gV}Agg'Q"#<<\pO ᘽ.. ػwuuZa2 qqq,Nի6m, Y7S/-+I[ҐgΜ9T}||ȹq#;;,5]L&~/i@M!LBVˈi1ûGPp12zL>xʺ 'NioOOO"Z__]vגy޼ 5^XIg}f2XUU{=j|L>w)I*Z J z|G< qYh/_۷ogI twwc׮]شiEϚNdeeZ}'m6Om6N݆ ==EQq<C3z߿555Ԙ?&L'Pܹ3gΠUd2ƍ &`ƍ{]]]}J@v"y\8WKB>PZ[[QPP %PZZ Qyyy^:ձ Q؋95g }c+`ܸqĭyDEE ]$&$asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitlex2go mascot "phoca".TtEXtAuthorHeinz-M. GraesingQBtEXtCreation Time02.06.20099e"tEXtSourcehttp://www.x2go.org/artworkr IDATx}{|Tսw?fϞd&  RL(Qz+~ zrlOիޣc9~^m-|EB*ZLh&d}LyAl|gk~[Z(y0iLqL`cS&48 01M)iLqL`> 8|$M ìEo)Ce˖\^^޸tR+MP0e @# \|WN6۽(aZh{1$I1TB$EE$!LJcXw<?A^mmm=rUH(\.j*bժUZIw^{p:pݰZ`YV3q)+q0L$Ir0 b3 noocgMMMY֯۷D+Vxqݕ$ɫV6neX bɓ'Y)|kdd"W^H}}}CCC]#LJY555[֭[G[ vvOt=qBD"Peeep8Ӡ( ((b<X V+(/zJ wuu}wf]\s6lݺ 80yd2$[Y1::P(4νrB N|8F0,3 udYQ0 k;cƌ BƇa+RvgPSN*L&L&;~}bpOO?544nٲeĦM4( "f3<ϸ8E(d ATNwor`2^@gg^xNh8K<ϋ P$I Ki&M  10bQGLpKK2[nךݻw(NsEKK|jo---7444,5`VYYlݺE(B p8THm7&]:%IvK42IjoogLXqN4ΝzXE)w}7!2x>U:Ƨr7ZRc `ǎjuVVV~POsXv*++_R1 h4 1::i@QfΜ I044sAH_^^ݎ}r x{׮]>Qt Դr- (JeY z5Hemj7Q%[ Ɵ.rᡇ"n뮻b$E'@eev]+gh4Mcxx&V}hh(!dtQwH۽t/[.*J˗Թq 4'j=^to2_ PYY{\|O29ss%l6xccc60Z[d/6PKFӥ~˘?>-[FqA1* h7T\hFӠgP6mDuu>Cvj.K 0n61zn5nFh$I+~$˲%+B{mFz ˬ)\IhB _AEP3gfϧ( Nɲ,͛7ǁ ήMg[Ss!Aɏ u^n,˰E[j^pn&8;թ~R \- S+=Fґ)X &.2( FJ())yTE<σ(MPi =!18E!JJJ~P(Y%`pݻ}>SYY+VPf薍FE@~tSF9O͜9j Fdzr=g2͛7k9?d"ڒ^,3sSMEQ^{-Ngw@TP466֔Pk, xhT§"]Us2H\٤1[v#I,ty.2JL20 s}0W^ FH*Q}*Tȴ&1]DtkL5Ae$ eKKKopLd@A4˲jkkqj|oTd[ӑKtˋ|E7VTT4rDP8%=EȦT3՞_6$ӹ'm,K,{[vJK.A$$Ih7"d';XrۚeB7~jҗ_~9xG0Y +]|ޛmT$aŊp I'3&0Ѩd26Q Axҥ-3)ݼy36mXl(ț,ˮdYVQ 誱b ZFq ^x|^fِ2 an$)jKD +[tH;yVFFF`2<0I5lQUU2wdҹe=geOzIVSY#oL&ˬY4"h#a% ҅{6t!]A0o`y(/^ȜH${`⋵m=g$0F ZE.pߓHtϩ$I!IrNƌd@SE@e"nCطo6oތřI5>]LCTCtq&")E2Y 4]nOx饗 8O<եQ՜YHt7=dMO(E{'K4]eHSfQX S 7|{C;EQZ~\RIOji*;Zo E=̙Sp8H H&ʼn'n  {1sBػw/׿&l6۸tj׋%t0NJQ޷ ȹ xbT;`!Nf_ʧO~"_*=8;y'AEQQ%}s&d2{^mlvЪGUUnعsnv25Όa=AK/nْX$$I|ɹ $b(++ F~Iغu+x eY֢v܎FIļyݝ݊>H\bD30n)g$-EQ$#9(D`{riMMM2`xm9uwjR¦G.~H"HtYpus bX$lܸj1g۱e˖p\JV#d0\@̙34=7]Lȇx<*4RF̞=?u5%KtL={6Ѽ&Iki(N$6Iȹ e9e$I*; ݮţg,7bҥسgAjjjpM7iP'qr1ӽ'RP#G$Ia$iKy^I{: ~Ap+… Ijl۶MsO=}$(ƣ( K.$Ix000p4@PE-ljx0& Ey082mA]w<ORMPHtUMub$I#w5kq,[!^HνL&Z}2) r7oޖ[o0͈Etav;F:᧋?d6 znL$ $~VJ4ϟ 6Z\՘cO$@MM̈́z܌\FJ#Ջ'I$V?],O<+k׮~68faԵ.d A6e|"t/6Ns&DQvP:66RCM,ZhrBTЋ'-?Yp%$IatwwP@Ιj,_+dͷlYݍcǎĉ>;ٙ Hz2IUFz&˲0t4~ǏaN> ݞwWAG%Ka8rFGG&؈P5Nx%c$">SOg, y>|:mB @###+ сŋ_G?JKK1cƌ gf+|լOx1P__0L8Fkk+p7j3bH."b[o%2fRnݺWqduu5z-<$Q^^˥Gڔ&2=h4 ÁqK9s v ǃ/~Kf)ݍb2l6b۶m Dgg/CmD Ҟf͚_UWWꫯ&V^_]۾d2\QBdAܹV7oNIBٜUJ#~ٸv MA=fIyNŽ;ǏW_ݑM::vٲe׻***Wj<@ NqTTTO_bD^E970\'˲n Ì| ߈ o6ϥp}vY4 ˥"KAe+\?!f+h$DȲ / cE=>~Ϟ=ׄB޻Kz'x@9svX&>WaنMgD"e`YйBE%^~&z)ԠO;L:WS7|7=f0rT 6ńcǎޮpK/`4(|YӃ bddH F*A\(*r970Z[[mjj_o}[u?)uK ՏJfW˿2=?<<1]?$a20fe/UB( IUMsBhmm= ~eOqG}сǏ̙3p8p:?pW0uإYq8Ha0c p-j{GQjdY`2Y;f HF[[pWWל`0]\F3:;;1008@@t W8}}}Y퇘$IbEQ6˔@ ^ #\UUx0$I'2SFHz袋m6BQoCWW׸6p:p84{)mlb.d(ʪyIlFCCw^5k;hB$IR((jGɦBcc#?b?x妚i.p.ะ4MC[A``` eMQ, X Y]ksΟlFuu5gOH$($)ׯׯ_>}}})^ݎ&Po]gS^^Ǫ].|wR^l6b1Ȳ ͖]CLs͆Z̝;/J$IPvEQdٳgJz8`ZsŴ$If,b֬Y1c`rGGrرM.9seYy۶m\ttt`ܹ1cyql6fiONA,@^;-jjjzObAJww.[BIDATP|>f}R q(j%8(RV2{lrΜ9?>AQ:::pItww?FOO@9qU2jxR@ESSEn { EQ-B]|x*?d @__rqYfHO?4|MIQp8/FV|>Fa1 9ǻ(bxXZ, xW8q\3`hlPXS^^Deee((,"EQ7HZ BF& Neee8s V+\.<s)'Of35:::r̙_F">X ȶhqMj3~YUUG,G(Jƍa|zZ<G @8Ou();Zr ݎ B!ܹSǎ;Q8vz{{x<@ pjxxX,S |&>|z]۽n[9JJJȊ /n#KI IdY~>mmmx7DL 4M(3 Cx$b=Q~."@*455-dY ,l,Vl6+˲$IEQe,+,+@)EA8X,ZE9 = Z q('d?RAQF 'Av$ ]_8|pN?4[4& 01M)iLqL`cS&48 01M)w)DIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/x2gouser.png0000644000000000000000000000335312675050177016542 0ustar PNG  IHDR00WbKGD pHYs  tIME "erxIDAThՙ{Tu?3c5-LF=Ј )(#zAD/h@%I#PI" c|@Kjki\wW΅mfQde7w=7Rd%xۮ߀c܀x #"UuHDZ`y8do#0:|q8 *w KH#hY^>ѽoV}@3Mz o{8pBDv_4VN, 쇱joÔy ^ = n <wTu0z8`zEeZ[kNi) LEIRT Z4 jk4gPTDJtɇթ#`* 1V\&d*\K7[tYDjν; / H铹"r&;xK]UgF2@'i2fE#gY"BVyX iR_Ed$5eLDbTum?Wb#RGsq)`)w)_ok?jes\"?INBFKUuK"CQS :D3VR\|*EEd03a;񼪞JSLy`vZgd̔HzEgDd[ O}ULb٘"qB ]DmL"y $}6v3p:Z7zm:덵IkVb[)aJMb_f6pg gNdQED9iyVחi[- L] j,Dv®J< #0ѭ)lNFD$=@j./3A2UGDh":8=7~Z,gisIENDB`x2goclient-4.0.5.1/res/img/icons/128x128/X.png0000644000000000000000000001415712675050177015177 0ustar PNG  IHDR>asBIT|d pHYsnnУhtEXtSoftwarewww.inkscape.org<IDATxwǿKs"`oX(}Q"`P "4QCSXXHhRE JYe;s;g?g̙3y)yCXMNj9uP˩ZNrS': @-Nj9uP˩ZNnHͼSW2s1d[ΟF\\eY1Ygc+_)?Q INnYj9XhH2Kd9p1Q |b"H2Ld1D< 0,n28tk I7}\hI$="x'KNW-M#Dgec1:y @I-<-19ʻZ O@gcO.DdYʸZI_-x:qWFl&: _N >i +4bWJXM+n2|7݁hu2pH:$Y g:S-Ƙة rq#W~pauU>Tr`O;;2$ Hr1fvup;L29OCjzp6}&501@e$= uIyG>I5|_}ԄEmX @kWi+;p~MT>Ԁ]rapq~7G@ҕIn1Ƽ AT{P`*7@ 6|D>1##~6DCFFOI_!-F{O9G4IR65&tk l{g+yDZHh6$ -&byWΫh%5*{Zo)D.5-{cU1kٍk[tOoDL:b1mE.11>mK#8)Fwż끩X[d]s5 M ӱS 9z-%D(i~nL*zmL "}CzU1ѡǷ[6,5BY!:pm?6m$(C=xgݍ1epCGj,ܞ6r"kwbbP7/|ϰÕY ۀ}HU ]_֕PcXŸC=#yDg_J<|r1,jKŃw,< "`kA_Sz'K((W<)5|*1oW*kEoVst8-E}1;:&c̣NJlcO4޾OD2jVSvag;5YM!Z(XRg Hiw u3wUS-s G U1*c7Icm ]31sa~-Rl=Bt׺sڴQ wowgT]*xZR'<ޗ-X=T>@na-6xNBdd_]=J1÷-/^U< mII>˨r mܵWKپv]Aor:IJZWA>0N|Z[c/ }ò{!FW>Rvn 4FU-_&d 5|=c} 6~cXGF\NB ^C_Q>]ҶKFxM8ӧojPW$)qjlȁD;5b~],i7+P9jXx8dcy?4U@Pc\u?0~x 07x(p#[NX><&ވ}>>am>=|}j}V9N4 :źL. 'L O˘1Ɣb#qG X\W<2 WA='Y-',&ՃfV"c7XcԠ8eX]7r({W28_B'h#aymc^t0(Ef^$]nSF(gaR%Wa[;%ÙZQg%I>~ v?dva|=g|^dD)n,hYX1pL}>mIdZ29.Hҳc.h4~m16 Ռ+jzj.·. U{M .9+sDT)*c7a2 o] tEkW ɗ4^_K#X3opG2OȊw4% L[P8xVWaeS KƘOW`uQG:[zwC7T"!"Vx!eH23 I2/U Ʃa}꣤|2kR @YlyI줱xݎGQko}pZG쌬[rQD~_&r1hL41.ur9Irqcl]**?'pb_1ImkvVj#mvt *XɁ;gö5^X}QPx$Ƙ3?!X+!4'N!cvջOI.B0qG Ic[:‹2C^QqV60©ťXsDG=\6w`14K;n5M wuT/.r0erxEޥBPS\v`syCEW>"a̳pQlzSGp6nWHO`_*;ʷU_nyr: 2o<:pQN>$9z˱KWT|򃎇PcdRlp2=%Tay!6tSffR4|5lEd@ ;z'ظc6p_/ I2JIg݃W__2%kֱWHO"yQ)lQeׇ瑅ّXmk(M#>:zk}zHOKO`Xש"/`UV'"&!1lZbRYHj}x3t1K#'̰g+Seh$[NX>prPL//,=ܱT>1+*܌5_v`';ו)QT>Dj %48OEKBYnL+{z_7 Lh"iwbAsgDߜӧ;fMVl}a\DB4 nb 0ؽZ6ps ݚ rRC:鑮87p]EB}4BjIA1odIpߦ xrN)SŞG5g j9t͐->-!Mw͉,U["4Wʚx&s~iԋѧ\tJ!ݎlB,';2⥥_,*O |ϸc=E!!y?<ؖt@c:ИN6}um[+|V9wp-1oѐ})^IDy%q #HLFHM[v\=wFI5YW.0bR^zw%qaf Cu&{NhYE^fԱ=6IJzDb3R>)RS&HMU7Ej] Vx'7;<Ʒlۃڹ҆:ϸ#Ȯo1>ibRAa՗$9QYK[QW1U|<7ӌ1޲08>ޞ=Jb1 @'TEE30'>-h-OK\c|*D|Oݷ 6gn̕g'4zZ pxDZz@r;N-{Φ]d ӅLptO([vD$-P>r|HԙljhW +*kk`iilJpꚪ=jkk+{.ESJe4eߡ+60ML@A=𶕬<X|W :݈MEG/*A$w&nx8+J=^dl.Hp.o&̧i;SDo(6`0vJcIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/cinnamon.png0000644000000000000000000000077112675050177016417 0ustar PNG  IHDRabKGD pHYs B(xtIME  #S$=AIDAT8˵Sa3{s-D6.$`a!l#b!* j[ n"be-$ $N7ρ,w_ue3_3w&0jL҅ňxԀO~s#n{JvthԀv]ϲ!p)"aeefj(7Z* ̈H> pOJɲl~+++hzDwIweY̮ ~a8{6f w$M&_%&efEQ,ܒt/IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/create_file.png0000644000000000000000000000112212675050177017046 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAT8;hTQs}-Pb,Iˀ ZB[ "Zll jDB z7󴈻uL10wPąm %^!ʽƝS WmݎRW}=\m[ Ky̠ןma#!&K0Av}!Wjt7N<晋w7%"IxSԣW[Ǔx/8]0;@L?HNb_zd$`,qV fBh0h# /`n !*u'( ,˺B"t$lIY s'FPPJym,)vT VȲx@PR{?X:#6)W.k c8 d\`AzmI;[ IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/delete.png0000644000000000000000000000125012675050177016050 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<%IDAT8?hqǿwj(XϠqr蠸8:`:Jq"ѢK`)!$Mƚ|"B؃<_K'ADCuXwn-UJu]z\P89ҹf7 ˲sNk֯W xI4 \GkVonȵ9G>GdL 8@BTh©`T*!wg**iz2{ǚ0CHfQvhd*;'OnE\AbdD|WjP0G`%XygoOP@شB{\!Su XrL@ve@ǧc k >,chҚ|~f<$ºK ^ex!IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/edit_file.png0000644000000000000000000000121112675050177016527 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAT8OAǿݛ |`qHlL,Fr&Zة6_56vvFCb,L(5<|!w]vw†_2do2CMqvǽ6 J[j%CԞiɾA۝25Ë\|݌n^8j'M.*ѡal=y܃Ze莀85p8A/4K;iD2#v{!PQ`͓[jC kENWrQoY7H Ng M (zWpZƷU9[E 7sfcvy6O񾹄]|.ɀPJ J)c %;zt} 9P8#9@g\rp@)ab_[wT &g-.FkE7R| B .WK xق'%&(^OpX&dlie@e2 Ijh-$іj~n?unƾwIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/edit.png0000644000000000000000000000122612675050177015536 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAT8S]HSQ?h&"ZA"(EK""z!!YP(zE@BfJcK!gL2w}y׼ug&n8~\L;k*,{8QjnY$.wxSx*kQe%vGi$K59"cxj-Rcn:3pGzjD2 WOk$p@syϟnϖ{$r=!L6;ݗ]z@ZEJŷ5sMѰ, #7;_ǯ;qЕ[H&'SJW*]6 1erl]%³! E0gCۀJ,8+-М:]D٤` T{l ܡ 7 zL^F?@Qg0mZXНSpIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/file-open.png0000644000000000000000000000112312675050177016463 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAT8kQoIpkR?(hr6xo=x󦧘ɃG!衠5TX,Rk$ow<1f~3<%"hCޫŔ CQA(֟?tgvsOoGN/j9U2u|axNۓLV{9wq5Wxxv ΈUyڃ+ חZrlA=jpvHEO|vUyKg3#^IòDdjF&OtLQ)FBa72NNn!@@P9 L4)0I{ C p"P_V4o4rb..{r@#`Rb Wp1H6ȸ#;|g[mE&5W}{r<_LM;?GnfR{qf^rQ*>*Ϙ]| xZaKuzX8x-flZC<࠾4`-ij6w</Jƅ\h ~&G ENnt"youPm,b=8M9"V^,̈"N2? aU%ׂIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/icewm.png0000644000000000000000000000103212675050177015710 0ustar PNG  IHDRagAMA a pHYs(JtIME TtEXtSoftwarepaint.net 4.0.3PIDAT8OJQ'j-Z hA=@2ZV+GtQ gQS40 mZ&9;pdosν\n`^OL0&fyKm{:hVN)zӁrQx57犢P,AUUj<lѵ߱,j H$`=CTꚮüHR Lvǁ@@f΢Zznw$yj;$sߗ$9Nym -fp,|ZE;Y>fmb\FLtAmF1O&W$mr9e29. sXLpVw_^?k7JGKhIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/kde.png0000644000000000000000000000160312675050177015353 0ustar PNG  IHDRasBIT|d pHYs0|qoG*nXkuZ[;W5(F >'v:!_\ ᐈ_ 7‡ zz qUƒ\7Ih Dt~vCYNt<9G!cx*|}ؓO?$ye+2wd a iC(O7dM*j(}~>DWsWnYh8@Oj،މ177Fǎr"e izrV~.$xAT> G<:7B& qVCȧ=f#>V_cJF҅}lׂ*)΁wotaj2GxC#K,Owx1dinmmu?\D4o$DEU7F@ܮW+me_F1EOdwkIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/lxde.png0000644000000000000000000000131412675050177015543 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IIDAT8c?1bř]Vy'Șm? YpitloÑ*%$ÿoL 97sC%{7ox1#eAA,ޚ#_EY2UV{000ta8b9{6%1}Y~Offb`PevC6fg[5֝b|L|k;p~a`vהo]W~{(Yćrp|?߾Vs/;.ڼү*hY,'ģ+5=_ٝ叏n2SʜϦbM*b}^d̪xrOe=v>Fe@,ZRL=\"=#=86gя'23Z'fO~opex9D*~<'S%.+gab8*7`}c6_ YK3 xw&J/߱43000\xg÷Dpجgr~IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/mate.png0000644000000000000000000000140612675050177015537 0ustar PNG  IHDRasBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<IDAT8S]Ha=6לqfre:V$L,* ."!BJ pΙ6ٟI"zp8sFDd JJL+sC;΄g98! 0Ƥ元暊j!10?e[ep(@DT2=0q=T\X7W OVvqf^qEg)hcʪu:ʐLBy&cT}!%PKY7--Gqn Wu2y.\( Zm[zftJ1~G >B Ff;nR$f|UbiԨk '%/md%3Oxn+D mi3ӟVBW9N3y?&.=%DEY1.Fl_㹫Fcl5YX*9XpTX$%NGE ÅJLjyn!- L s#EEt;[eѫu3ѹ!΍@,Qnk7SˁkQ>^kR7kr۔rQN87I;B_e~â ~IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/new_file.png0000644000000000000000000000112112675050177016373 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAT8AkQ3KX"-(x(͏I<^Qz/KPki4%) Mc{o̜wa2ƣ0>/f "0n3T .[^ e@ T8cU\f#L| E2VזJ@Ȑ͝Imː?zh#=t _^jM-#x_HOc7;㷾yW|MN200_y6$+YIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/rdp.png0000644000000000000000000000136212675050177015377 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<oIDAT8_HSqϽ^j[h5ACR)EEW B^*1 ,ks9nKP }8s~GvFմ3ޑ0ƅh}C\HƃWkMOsN <BrIRS CVac{u`;5!@$I'8[ZXmޢbf ZܽdسmbU I!hRU4 4MQKa| X?8>se9cmB|droȅ*$i$\meT*̠G8@&(Pǒ5ݽWZ <V}\X<|≄,l *$hB\~㴂!qm]۩hLVk*a#F&B7VK;QQ1B Eɥ2\fdY:|C;"~Q{ydbN a9K9*RBiρS&eqRG;?<}+O]=U\!~7:Q1gr8Pc[k0err%#|wsS͊8 6p >IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/resolution.png0000644000000000000000000000067612675050177017024 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<;IDAT8ՓJawMMb1'EE:g-j< =A+1 DXj!|)r)-zJhU6fÙ][\̲[e lPIr]@@\;s 3}e7bIENDB`x2goclient-4.0.5.1/res/img/icons/16x16/session.png0000644000000000000000000000151612675050177016276 0ustar PNG  IHDRasBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAT8u[Ha̎Y[Zijj-1 )).t 襇z**@=$$RI劋Kuo3;p\ -Α"Ū‚*T_b,p63-M&(A''ѹV-W۾?@m-`U$5+ EK%4uQ^=Â14NGu(H&BNHAD\~CK_tx@)6ې g0(¹9 K@)%ɌU2(el@!S^>U(%8+ӡ 1ZԤ1>b|VR6'(2ppTvnhtyBx6JDž*MWT&*wLO~@OLAHK-17<֨K[M#S-[Ǚw, tݕfU7حWoKNm2Ω{!<25MÚ+]ygR(gXJ|34 I4L'9Wb@6]K^%IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/tbshow.png0000644000000000000000000000045612675050177016123 0ustar PNG  IHDRasRGBbKGD pHYsu85tIME  tIDAT8c`FIY<ٙ~_\vd````ph'7ٹO' vpAg\ƭDIDATHǭkPU7ؕE(^Qe5بHyKy+/d]LfS:΄Y#N2*dNHhM1\`aOJ)ц}9s<3RJ)L.ȔzѥpeP10?4[R GiVB͘30ג7:Ra ']6 ℰ1V }oGo9gAt|w \1[usݠB9z 8µ;Pҵc D#f\ճ..Ӂ gߥ ,"F܀|`.Zz?#:|l4٫5w-fmUx3Au­T j>`>:ևVu@[j =ЎcS{z7j:͆@avY yЪr,S@5r<(%jy?Cb&̏y T?kN-^К&Ss) uK1C%L&2ؠrvZZN٦cm+&^8i9Q QgC.,3-BLNp0[5: "yRڒ+k߾y`YzF("&M;xic!ȹi{ű{䍇₌Xh% 2qLyy]FǨ{N4 Q>S7=66HCѣhSQ[ʫzOj-[P nOA0 (+4Ѯ?t^}zO %tEXtdate:create2012-06-06T22:37:01+02:00l;%tEXtdate:modify2010-11-05T14:17:07+01:00[tEXtsvg:base-urifile:///home/mike/MyDocuments/4projects/x2go-upstream/x2goclient/svg/unity.svgɷK|IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/x2goclient.png0000644000000000000000000000166512675050177016676 0ustar PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<tEXtTitlex2go Logo}hptEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e,EIDAT81K#QH VXE6v$,-2 J5l5Xv/\x!~GÐ0 ΎP(M Rtl6K.0fffX\\0 ƴ@ ~m#m* iUUQU!B8)$ 666}ix<$I 4M>iRD<uq~O*²,m)%DG PQqW^%,j?qia53y") IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/x2go.png0000644000000000000000000000152612675050177015473 0ustar PNG  IHDRasBIT|d pHYs:tEXtSoftwarewww.inkscape.org<tEXtTitlex2go Logo}hptEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrBIDAT81K`|ZB *-Ah\\.wt7Ed(ȅAiب?s۫txyy<4M:}ߗy[[[4k;C$۶,8Iti Q!Nv-loopqqB4, q(Jeaee)%sssJ%שA)qyzz鰼LVAZk֤iR$IÐE&SSSKPb ZRPJFh4}C~Exyy___T*LOO#Ķo+BedY66GQDVn;.0D(LLLP.T*#IqV5.f0z<>>!RJNOOؠhp||`0GB @J\.eYTUfgg󬮮)'''\۶) 8,,,pvvF^u]h6GH8^GX$ |Z4 #:::#}?8Aq3>!IENDB`x2goclient-4.0.5.1/res/img/icons/16x16/xfce.png0000644000000000000000000000117712675050177015543 0ustar PNG  IHDRjbKGD1 pHYsHHFk> vpAg\ƭFIDAT8˭Kq?_t GOZM"\]NMρ@Ԕ3 0Ah(u7 q \3 Kh<H le3=dY^WUs87W;<=ǝNH/%GC^ۊJhG/[%v|bfv(Hsc[uҪ5%ƶ]{ӳ9"{ȟ-fIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-development.png0000644000000000000000000000172112675050177021611 0ustar PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<NIDATxڥkLSgoK*6J)-C4(NLBD> ,/ Ua>-N"ʼ xMDTZ#Njk{OOm{^_i!|yA"jzesG\nߐ0MPZZVt:j;;;v> ƽJ^޵fyY_&$0iA<OiS]Rrl'?[iJ` w1rx񷛉\yrFSe\`-9?!78͵dJEڛ؜v'L4 TL1q.#wu]{@䜔N\Z'ir3CA8O1"aRORASJ@8ۏW:Gqf?>q^PbYQк87VuVu#c#D!dLr1DmLBqUW?x7oW1P)[L(*ċ1?qM0.8I&Qqx ފl WsIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-education.png0000644000000000000000000000120412675050177021236 0ustar PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<PLTE qqqʧ>J=ZpW\rY]R?^t[`u^bw`dybf|di~fkirnseNvr~z|ueĬȱɱȲɳ·̶y޼|7<2tRNS3:?HJKSZjsIDATxڭalE[9.7g[?1fQG^6ܾٓߜY6~=Ljd%~TrZ. ؙ8ΓtT6v9`;F!;]3=_^{Yt1ʬlǪ9aFƠUP9&ӛt+B83@J-IENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-games.png0000644000000000000000000000126012675050177020361 0ustar PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<-IDATxڝK[AϘhDIU ] m*.̢ nWH`PVp!m.J X$ஔҺb43;޹/|9w'&.XB'u^%C2ƧO /j e:h a@3)ھDCpFƣbR)nx26ؓEߏKÙ.ĹNķCql=JAs Gk+ .VKh-#.*ND=nseN,\BB D 2pb-+qR;gάx1AH&Nӣ[H ag!vߏ; ZI $&k؋ƸZlDfŧdjEX$16O d2)1N'T,{'mbIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-graphics.png0000644000000000000000000000276312675050177021076 0ustar PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<pIDATxڍ Lg?ކz1S<$*;`,"N@E.ac)GE:U(TRJM }06D[6M43%O|>|? Ddү=Ԝ;eyuE674~Ԥ #IѤHB *CѬL@uNW[z\xQר.7@]69uI*]Ʌ2 s9s L2t+^Apz{$ڈzS2>FZ$+BD \v).@?V# Y^po)Qvlp,Yl:VU%,$aiNG"dG/_TJ0z 㲉1`q4BӐt,xPCK9rkc)Sk6d1譌pc:I)!z24wmI'mIãZi$(J Z׬<;rT0<< ġCpD4$bI$<2IhgXx7=C:| e"ad C^ns1°:8O*QCfE[j".xb,ihYP(:lp4Gm~'iKx ʶm? /㰳/Gis|{ ndʜN{綛6N`PSR",(ɮdqgCc#=[Vvxu`LX[j,ZYR3DlVu&}(v[lvUۮo'~!{G_4o.ea@Q@mwM]t a?! |}츙 ^IENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-internet.png0000644000000000000000000000251312675050177021117 0ustar PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATxڍ]lSeƟQvk;֎C )"7*@41&rÍ{/vc"7xgBC B eu@vv]{N뿋[‡'yO/'S0V㟵Yq?$NeD$>X'2q|,7\~-'t0֦ <)\RDt>ꎃ42? g ݝLvD!)2,^@(רh"unv >-Ѕ>|=+,@V(HtWvvQ7޺>w7?^kxā $y%BPdf Œy9ʚQ7iao6*K ?CoO*1Î$Llpakw`>܅֡=Keΰa{|FZ\~SQ/U8>ffpz4c6)uYQ*̹Aו%/wѿ 6P:栂be^O؆JrYz8[\WTW K*8PQ<\7Pl IYnff{c[B8w=l[骃.BxܫRB8"fW1wctsc}5]±kvts_ġ퉥y*R#y ]o* A}WfOI٩J VX A.1xĝ;&p?a \28kҒF`8OkZ8[pmDJIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-multimedia.png0000644000000000000000000000251112675050177021417 0ustar PNG  IHDRĴl;sBIT|d pHYsaa0UtEXtSoftwarewww.inkscape.org<IDATxڕ[LTGˮ,EXA(ZSFW$1MIKz{/MjЇ64iMII6x15Zl),xApwYtH6/ofd(UU4s[R\mUo1hgsx=\y"VOأ~Q@j38G޺:xXSjһ9Frp~&xéZkɎF?tDcF>:p˒m)}{ϻU}b$*f}sDwӤj `َXƈ,8(~uok»^ ˊ/?tݺ<twkO ^qe&&!rP&cM8:zkwcuxׯ͖^mmŴnah $/nW!5NMp vHII)Ird&YzhQuMLQ:(dY BcBU&h4av 77  #r vi 9055EH_r ෥_ꞥhU6&z1mH&ܬۉOaGL47R B*)GTk$^jl&#x~rE+-)Ѽ&j@#(,h`.ǏڌZk@چL+?WTVXzGv\$wCXmX充X[}!k6mF<5Oޞ(Ī Nlqlu֡<ݙEGQRRv2 I<_\7A)YF(ë%<˴ ͚%750E5+\˹ҕ  #Y"œrD"O41 Xu)oL7RaM`D` kWlڎ4FRZBآ5x]0c8uЧ~ KȆfrKU.؉K+L@at>8ƌ"1>oIh`"|śĐ q1H=B+?aԽQ5τL 菉hpD۬I팦MZݖĨSbp4{d\CTIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-office.png0000644000000000000000000000144412675050177020524 0ustar PNG  IHDRj sBITO pHYs B(xtEXtSoftwarewww.inkscape.org<}PLTE\\\\\\\(n&jauIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-other.png0000644000000000000000000000140712675050177020411 0ustar PNG  IHDRĴl;sRGBbKGD^* pHYs B(xtIME ,IDAT8˵TMHTQ=wx<5G75N -2臂Ċ"!"ƢU!Q .B(tD?hikL33>%/|}9~̌XRB:0=\p䆙 >& Ix.m5ǼreL4Κq9q(dl*zʀiF1f=_WXԜ9+jj=@m ٜ6 .)#61T=:06:έ2oa~6"tٚlVt{WZݰM V3Hϋ.F}M 3S<9v8"0:y>4㋅mN7* /?F}͖c@ fqťX}C3>|vPitX.U,NPiqNHDbZo 7D*)G{;N^5.CB#x|Ql+"L[z $bx_jp:dG]mČ`T<.ߞge(:`"z> zkGUfs*,@L|zL d򃑋*]Fu;->s1ZP񦀅2rv ,]b7f *biIENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-system.png0000644000000000000000000000257312675050177020621 0ustar PNG  IHDRĴl;sBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATxڍ{LSwǧ!mjpqXAô,&PL(RJiV<AGE^@PJi/\Iܞw~wl(܂JJ1.o(g-ԞȘ ~hIIdmQwdW{Id`|\F!ǧ_L>;Q\\^lY7^oEy Q2 FNL.]>t&e8p`07. 'Kfgg98RLLěs 3 Ŭ7WӬoRf@ll"E{Jݹs/\] ZbҠ0%;vw%-v<++Affx{^klV77x  ,[)C y9!/1FQA_ٯŐNyy}l~\pp 000f';'ܥ'{Z[Ccc $&\ YofJ ..Le6x"}vv)Bchhxzਨcc-/1`.ddMټvv173"4+Kȓ3tzѿpFZyyu :Y )!!֫,:p3@lv*+qՑ~hG..! F9Ҷ!JtA$Ʋ"5@OO/x1adPߢΠv76e296~ݣ= ¤T*qBBBW&XCj3֭?e~~ +ÓdZ 8#G?Qϛk:Z|D"h5+⒚lo(bT j.k+|IENDB`x2goclient-4.0.5.1/res/img/icons/22x22/applications-utilities.png0000644000000000000000000000157012675050177021304 0ustar PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڵUMhA'ImpB~x4$1-|55;88 0}d{/N9<2|n ,0ƃSג~f7,2dgdnVߦiZ wwIII?K=p,=[ިBXYW*nUڊ=CCCQQQCCNm-px{{iJ\_zsڸ7a|ۡaaazZ[[lfd L4:> xx gc髣lvlbREt *++h˨üq# c :y%:::|x!zF: m0 R_"դo6pVVCOOy~X,TRR )v:ᕻXH~e6iD$}" _@(UWWi4Gt: UUUEc. D>` Q Xlhh8ƄY9<H2Z^YYvuuՉ6 jF_[} QhXq &H)GGGg|~YQQ/^(=hܶ( XuNC^z90fӈ,uM 89QIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/apps.png0000644000000000000000000000320012675050177015542 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATXWiPSW=/{YH `EE.hVE―*:uujRFEo,.v;jC@P(XBN{yR inm򃺂)5hof 6C30\]12>O8!i@`7C3 q6.5PU]6YάT"{ITQ=F$Ԟ!މ͞ ^Aaj$yv{5)%N ֹlDP曚]uOq$'jwHhC΁mņDLԬqYYtyrp^ Wjߨ =xbvm.pϦ@@BvD/[ٽ.Iߚ0̳#-Fy KO8xJHq>y5!轛l#å=e. 672"Ue^rqdQjxcvcRk1]B۝!yϳ/ݬrjEo0Kz;YR8ٰ6M(b}G%e^):Ť!reiE*ZPkɁ `#VٛQWڮcPr:R'P.:L7-vCk|%􄥓3{iO1ڡ o5N7q~0ڻD G$Ǭ:+4ZS%"Mwt7]ؐg8tuG^G7SŇ;E?m=~ЮfgbE ,zp\MIu!&#Ur7IfRz=3>} 1+J·8cķ<; IA._@f%Aq|&QXb:\ ټǮuMN ǏW4hnඣdv=[۶ZhPb(Z!cBj-Vv'd-^vuEP^ò__jnΤ8]>xt?; bzw՜ Q޿ cU ?ïxiu3LAW۽dls'N8c7u7ɹTKUGQ ^ RMjUV"5吚_{M}RZ:N HlF_e^K&5r(T7gt_9%u Iѳ~y- w 2ON ߄ ZLǻ`aݝCkc))98&mx/hG7'V)μЮ命}CD[nNe~@?]4tc`p#%ܼu'RB4JNrqsiWJ'*ccƂ&NԺāN.&mqxyH xH5T)t&"aC^[:7mIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/attach.png0000644000000000000000000000147712675050177016061 0ustar PNG  IHDR szzsRGBbKGD pHYs B(xtIME 3pIDATXOHTQ14Q̊("#tL4ZenjB([ F. iDѦED? $+LҴFu;-ʘp&li\΁}s.&Ҫ5: S5;m0W>.@ܺ KD"֛da x"R f9. &fQS1ބ νgp؉܂e (\e{if$»CjJ G/~Ԃj.yqaGSt)2N kM#±V(1p?p( LƎ1vOR 2@KnFoE˝6HbӪOm] 21=4cm~6S v=[籧[R83MI<޼R|3g~@:ލ4L* C>~ +DO I7Y(OToiڬ{5+]0zy( @ec*E1U1 E16?Q\HENŌidF) aE">Tˁ }"7MדO_MR)ʀXeRhvDfki+~q| [ >_huQ%HlxA|{7th~?: OIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/audio.png0000644000000000000000000000267112675050177015713 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<6IDATX͗klUggcB[nXBh  bBHP jL$jhbT01FM/ AK)b@(vh93mZ#d2sϝ?D)4]ܪ4a S^FJ12!rsM#@0~HJCՏjV'49ܮ iIX%7oW0T4MkB`qY2<78zv8|]xx]M h 7h{Ev>0SIq5a~z:&+d[is1GuOh3?% rC/c4vo*({H[>@q5YUbXy+|lU^47=5lpD*+E\ˣiֱ[dt&HNX$9Uu|鴔vK>R/E@˲pm[[:=%' XuIlLM!14Z>+\-`:D=lva"cUNz~v=@]&95kڧlT* O4T>Wz_q+gq'kދVVSC݉wPmbCi+v|e[%GL#e]umRp ?={۫i;OC?8^0=ɆM]莪U'>7Vwb2jJ` p?O $@}IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/auth.png0000644000000000000000000000322612675050177015550 0ustar PNG  IHDR szzsBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATxWkHgK% CR;m]X0hԷU` rcmIj FP͐eY:LCYz?!3)ϟ/ oZ,Wv{`́fyzΝxL m $5۷@}.\DMLLǰZx*!cƍw^͛BˆY]^66mTJBۨ">> @]]ڨBuII~1gQ*p-Y".塑[aٷo<ˌ =%qz" 1e%`"J8vxa-+$^%YKܨٞ&5 hłB }"cccIMM"l :k#]V (J)I.` .f0 t Yޠ555,!1#m Hi܉;aԔP!"9"( 9[AD;mqϞ=kYsw**ƆQ3D *6fR(Aa"z}XmNI*B(?R5>u/fLB)\:#a jd h^^ h lBBBinnG\5g n SbJ 4qqq !!pEJ{oڴ)(Z|@Xwu%!11^F"--MIP߸c bQ.Jxly tpb 4gD'Wa85jP< k &%jV3䚦{B#eE$ oU3T2TQ up{Ƈ%ÇX,K#L% 1JwdX%܊(w#>y).^\˒4R"#XTAkO0˓'Os̑zeG#9#mb$L׍k8sS /,f#(yt7N$gR <ܽ{Wj_S^W[ Ct4ö 4f2eJ+Wvm[-8K8ݕ5(_Y8I50p1c `4Q8e==u4(buIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/contest.png0000644000000000000000000000236312675050177016267 0ustar PNG  IHDR DsBITO pHYsvv}ՂtEXtSoftwarewww.inkscape.org<UPLTE[[['''$$$"""777}}}qqq:::444vvv[[[~~~???<<0k;K6oݾm)ś6GEnۼS Cãbb£7oZ` q)Y)7,T`즒J2k@b(Zj,sXz ^b.<Ƈ6/_|,_ނpGM=f"L8feCXi[1b_;k-ZO=u@lJՉݓ 8 j\QDƆIX4\˒:'qc En8=3m]Lpzf:ɩ+kºNRx򢀸 ,(&?;3PD9+IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/create_file.png0000644000000000000000000000217412675050177017052 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATX]h\Eܻqc&mPA4DAKh V-j(>&BXjO$$M|;s|dt́qoϽ3$"H}aiIf_|3<~bƞѻ;15ǖXZC/L[1PB[!mEz3IMh_]z؂T_-&Z;Va Ժܕ?Ư/& l ]YLO!c Im<ܑ9i[7oR\ramcgv!>59[_O;ݯly?ah@"twTL 4hV8dS͡k!lFf{ohl>z?ET_>O皩/|zK]+{*3 >[Yv0+%f3)>BF.'G-=3uD$4[[M1(f@Jd[z|v7kYېÛY "rLܞ'>MvC7M3Usj+Yжϗ ]0h@)(rD,xw K4F $gn03D$k̲v#ꑑғ9]/V3RR, pZe;*6z"2_RP+8NE֐BaqXس6k֔,rԼaP9x ذ.|^HBJ_ s's$Rho(ce-ܨBli p5']-Q1ӊ$@/oꝑ>wIo>"Ex2P<0V_8 oDy(cDTTYR֦ڍ2Vxn.;ѷ\)6T@0IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/delete.png0000644000000000000000000000266012675050177016052 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<-IDATXŖ]Ug}tmwwܥ$KvD4Z^f+-xj ~+.mLP a4hR iگh5=Tݷs?5c|n a"r}""NueG v_ ?XV.4MJԷj| \~U'VԩS277'yf#Ko_nbEDֲ qyO gC3eǗ?~E~'xqi rLXhpEDTq2Gϯ۬p]rnur={ `l4@:?/筅q`qq$Ih099y|K}mO O7_oяݴ;;)2u* ~5Z{J+OZ9xϮD=|z)zByftC7xw <9T km͏_>Brp_>+cD8W9\4ک`>F/{Zeȟ׺/8/M;0?lSw絅 V]72_۳-3WjQ g玜sۘVV#9y?a@π:cn][ d :6@왜z_Y 1caj+ikF;Ur_t(/[h: ~l~ŀF}ilg\/@wgSv}+NEM^ͩbb#*&l鯁(+KOw{'20恖qó2a)76aB h~Ֆ#^dO^$9x%c~v vFJuζ_*#&g»}PPήW3$52'u+*dD"Q&L>O?N^l^TRi8N .h]"̯\KwS5ڪ;~uUh?7]?34^Or}Ky'ZO-ggاcBж.tlt+wzǷKie.s*gAIqqmu?=B*^a<pygqfدbRZ*UScDQѿD8ĸIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/edit_file.png0000644000000000000000000000246612675050177016540 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATX[lU眹ۥZxLH4bTc!%JHP)(hEJHo[.۽9LJNn[ɞ̜~R^ (EÁ:O*] ' P$@"d$N~4M͝ d6!3!Igt ҏ櫩7쨞 X= c_sW` @eϬ :g^?:X3Sk_j' )ԱB!f0K/ǖU>ek]r4ő1%6 Tn_ܳm:6:8~HaOC%bI _i@UHYFC1+JcxyS4Gm%A F!Ĉ#@dL%$7W ')!%PdfN^J6P?K 슄Q`86.$JP=OEl}ʢ&Sf˵4ʼ 5 =86 )>?6ģ}N6F! lG sYR %xkĘ`EHs|G//GkOg$TjY?'yefK|vv"aDM)%1_i +ELa?)/:n$~< %7aXU>Ra^`h( ef-B!N e<a?ÛG01pOզPL ᚦ9:ôDu B󖉣RoŋʱB{_ĶZ\k0Xn /WYl]ch:9 6hFkwMEWxpb rX20*8a1 sk6J=YW?`@*g]F As+#]5R82عZ;Rn2:Pj*);1ؕ1lDoăU na)#@aU)iy/SQxhL)+)TU4WL9#Pr8@m;Vrk#'gN(F)5.:s`.4jh6cGnHRYmn[uJQjMsO.)KjLK2.@-.\2KfJ0?\2.Ɵ0!/$NF-qL_7vVIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/edit.png0000644000000000000000000000232012675050177015526 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<MIDATXyLUǿ3{ ,Pj.GkI+D[*4ZBޱUb&5T$54&bx)Gr²μĆܦ&Ky}?y% GD_VA@iD'm =wt߬hiGz#ou/@›B7%dh㓩=QWoj'  '.(7YTp 2D`TM΅ D 7Z塨Ã9$"#+.cX6<~OdNlZ=d!qFŁ1,*xM0u_˲{7dj[]pC#" :$zbo[5I+N!ƿ\(U9H}EW(ˀمQ7_sC|58xm ]UU&0Y+x'Ϻ3,B24P)9}gmW'˛@ޕ2:MK =d:-׻SH ĺP) p1c$H,^~}t2-[7ݖ68&l DFQ cy~ts%ca !$F)PڼYd0%[:“_?*A&`w,"$FRqXCq`g}ӎ§ΆbiPy(3q D Xw<+pgCxWggR |yϾWFщOO"H651j4Zӎ==)B,$cNPJܗCu!9$*ii6pς{ok-]zG6t̝̓Zt;^u SS{:1N_S sldr]`Æcwd<脦2f ۦCKstuu2ƶstrkώ"R2pLay[r2C ci2 ;6 3]ןǕ +")M`##Rj+6=1!p6& 3:=S\Jm$BAI&3]=e2 ^ a}I&, 6S54!+ ݽ姆-(qXV!p&l^e`pMFҪ _Zw΄[2kU53Kx|'9A1dLf3tXz–~Fi{*GJs|?z #,+"y7n,Z"# O0p"p8ozV28>F,) .J;KhjjJ8G{n<M&oXN Uűcߛ_&Q .p0$!]@KDc(\.׉+0l_ h׼5IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/exit.png0000644000000000000000000000357312675050177015565 0ustar PNG  IHDR szzsBIT|dtEXtSoftwarewww.inkscape.org< IDATXŗIlenq11m K4DfĢDB9p R a D+Bd2ec&[J<΂Yv]ݵ̡[sJ_-_u9(Ɓ0wT)`랐ޮXzCCDt-7orzfaӁnƍ\g>jYk,"h"(C)&+PM+E"ѡ!\'t`||p4aRJDP=%Ϥ*3g2>8/@8i3Rnp"M(@²mL)VVpVVu?˗Yuu6mcZ##$wBVǸX$  f\ `5<]3/ZG$29IRupqP.' @|x 5űm37ݹ9"CCt=07=͛WW*qPJ#J=_~ק)b}-DL`N]*ѿo_^5Mǜ;r?@{;kkD,d\KG"`sϑf4DDL\~cdu۷_~O^c==,5M"Dq sϑI|ڳtw7dH(Ze+7O`$K% }Na.\4T:sLї_@ꪖ֑JN&;ؗJΝMO>;wTH?ǵmb]]daLYu۶^Bxfh 84Tp,FPiiSM Tivc jyW]C5ZZ䭁4ׅJe\if,k j!P^Xw {y=bmJR*A>b]iV2*J t۶єBjU"B\׃LĶlR.#Qߐ!+-C?7@S cz:8>NAu(P5fe0J)@6 hW)AOYVv0T oUFڡL@k/ou*٬Px);X#Fw.]"i!PfQ4R eu" ލo_J}ƭ?v&޽たs1{ʉ`!k Z_'BiObO8y2 a"CZeO(D[4y|o)=XooЦ Akdbx]‡SY)Qtk^6l&*Gdo!B br}=z&&hn;)^FU"6:JmQl4Cm AS4 /D䭷|O2]#w1y(:oJV{̞=%f9w&5ܷk&8zהBD8sۋ%66F֭W2Tfg.,01mP*eIsMZҵ)ŃO?~qY Mcs8d^Z*:0uPx\넓(Eֹ&Yms"u*E_Ŀ'[lf~q .t`f>ʶ͂_װ]R?y =kIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/file-open.png0000644000000000000000000000205412675050177016463 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATXŖMh\Us8%-RkvQSK+(PE"jR\..ԍE(b7Rڦ4mlidwq2ɼM31l;{=3N1;4Oﶁ?%9U uUU-ݨ GZ.%xlh'8٫}o!<W{_oƩZ#]ޢۃC{o P d[כyRѳ9哗\btXH1_އxbO-s@$v-ҋz?GA^юv^U0"Sǯm+<=r8`*UK7<|<\,dVGP -7El \!{__;dkHmDTb⹪]t ΃P =9k_|㕚P\fGk ʇ%Pm,;bVW"T,M%b벝ˈ{T9Ie B2~`G{궦YOOrcW֔yR@wqy]G9`)^I큅Pyh{Rvfz1R_R3w#oڎ>׮kDҨ@ʧS3P*lIk}na S. {[ H:iLw1"OmRz`rΩϩ^]!o}]kfߤq Zkk꧒5oTA܀gRJR*p\ZHZ.\s HJBC*21m9(\t\f"tx<Ҹ^o*)G =a$X0p6@8U4۴IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/gnome.png0000644000000000000000000000151612675050177015714 0ustar PNG  IHDR szzsBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDATX_dQ?%C[JzKd5jfD&˒D$QT\MEL..bS(3)#X{۟suvxs{爪HDVLoUuqfb >`PGUo>[_Zo@gtw<P%IxV9B:JsӃaG> V^4@Z~ȇT]WؙTu߈0]?Jp=Uu/ pZ5yw}8f-+k>vH0b÷<(f ipČz&O> yT ۞O <~j.֦JXg׍}`)cgiƼbiEX!ق82>jD^[Z͘F8fe`zTaQuJ3s>ߥ1PՉ4W(ډ2pJނ6p a ׈Qv>o~D80]O֋z&GQT THyFtF3׀M̛T+`AguW$oKjo]uGS>} m]`s<gvc ht*&Yl<\Z;qcx@IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/kde.png0000644000000000000000000000430512675050177015351 0ustar PNG  IHDR szzsBIT|d pHYshttEXtSoftwarewww.inkscape.org<BIDATXk]Ukw;3)3픖Rk *#ᑨ&<Q#1"A4@H)L[ZKi}_眽p}@gsZkEU;7FnijWA@L*P}^[7d2AD-AzlǏn6R|~L׳W֮7Yr;^{ɹ2& 6ԊX}aE*`T.S٩nX޲p[޼+ϭn0Ζ:ybB,YcB3ڴ^&pC\h>㺆)`t:J}8n X¿ޛdt\X80UfvN8UH Qsa:Ex>a(+l:;e|&~~|6{ȹ {s0Yܽc3BC+b(uӨ"N*1R?lbN̔6bAΥYD =aQ%)1Pe F*$ V+:YiVǨ*h'Nrឝ' LHŘ4uݔ!0UuuxI i&4T!~,\G0/dxS͔$@VrJcyRZ}iSy):<f sqL-M "T9Rǀ15ڭ([l6-kex:b $/f*+E}) bA4EC1*E|y. X/XLkkmy|EHDH"q!bR iV2rd pNxup֢ıefH`LZ[d1 l euyD*>~(mϱљ9r9)RDk2 E<O65s$F I q˃饣 .;.;YDK Z5˜3BZ_3$~U0k2a c4c@0& S)9ϐs/+-aJbe"&5{:BnĩUSǀ*1黆n\ )4T p M~ "CEx}p/ f \!pm~blWvCalh>.# l0?hBQi.Wĉ;J QumlY p}<6my8hF<$,0崆y`+*D IpEJ+W '4Y6)Q֯`3i&iZH{"[rcPetx+V|">wK0!pRD;!7mUלůts(Oh2^{*ΐ/_LOQ#`S F~@|r!J+9W7|k6l[]-<0[rޒ6B-,U3@* ފ BϰrY|ᮇ I{ksgp+Ev><{|)'ZeO:"S˂38F39G^'[FbV86Vnx 1ͨ8< OQNZ';T %Bl7 5_OL{:eQ dV>KA[ICAl!6NA$]L):$c{$];ȗm JSj}Lvƺ&ήU˻)Yʱ2]L)YfJRBdɗ-R, Cx|X uNҳFsK˞ﺂr7GnXJ{Փ>|'Npjՠ.>z̽K 9ɡ*][ZV`*W5vNY>g^3MAǰ*ߎ1(]yYuMrK.%?orIjpzwPu˗vf#@ɌE0Q "1ap).^fVYj()))g*8Ni1@n_g[朽h̀egѦ9 qY0le ۥYaDZeֈQ\H+ #o)8YTwݠ0{R|8QllAwN{%\\H;kqgv@˧6e2x&n3mDy#n>R! [L:ҩfgKE'~sJ45!& ^=9SM{RuETdןy_-x Zw =%''?XPI;{~t[fsLjr041fp/('ٱor1(/>ۼjn ߃3Ifڈݘ;/===@ GGNyn7yPT޸8351i fV!=>>vnPSZ;p㩱 V οڃf \1[W s1۽sg  6w }/|Q&ߘM3l;;4>/h&8l&Y'/ ܘؽXh܁u x)W)j/`thFWQ4ZL/ ?Ϯ4mr:iGa=vF׋Мta|-C3|s7N>ۋ^]+WRbE\_OoKl8>t wp;sjJ@v̅vq#\agW*v!I;U@\++yZ ƆpǑ~0Ɔ}c@@3u* :SPPexWW|_%{,v? )XQ,)WU@#B]f\Ǯ.[/"- $8SE:2c[Yl#Az!(^!^c-OF!+mA)sy\udԮngH x膻o4UYV\.(ak<91/Ly 4RFQ ft@UP- 1u[* Ra~ZֿdͳVp68?t#ےN8 BQցC+ZQ@67f(rcrn߉r^KqLth.IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/open_dir.png0000644000000000000000000000073412675050177016407 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<YIDATX1K@wmF CSo"87Dqp,ZkCk=i`zB_LzEiH&ν؞+':]Sqtg&fosM_ aޠ7춾_-:2Yx^6g_b0nW叶\"b@gbt"${C~pVIl?5+x 00+ MWԀHs Qlz,i]D񻊗@|!#juq#`[&f,0 k}߃ĈIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/preferences.png0000644000000000000000000000476112675050177017115 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< nIDATXW{XU300Br1/x)QCRK]wZ/miv[3]ӵ,0/]z 1U.\ >yy'8-FD@@ @o]s~@ @`ڜ7e`xVn6nHkew@t%50q1niLO2_ucb)@sEA]]a'w2MjtϘÇ 1!1XyZ4a/ceC" @A#*A1%Ae3cTvǦQE "*m>6&V`Z%Ƿ:X́+xE<5B [S3s&5 _˕BOT^yrG**\FB X7Y;"1pRjܨ*>qȽBSbh7M_~f@dp".=Jٍn?8u3:""}y^S o*vKR#9~! Kk<8NU1#Eٛ*)r~F2ȹ8,Kd-+-Xhqɫ$ %8y{.5 ]!,=~/@6{/ɠrԴ)a2haN=ؽ?8%ZdF!~ia1)pҫI1_K0~ȫmVƮ@u:*8a%{O;)驮FF ԫK` dzݝT`[Qb*r9u]zhWm%?f޳m[A`Y7{G9'o}]Q):p\~p"BУCGTzs(^u࣡Svup#'$T"'@Bƒv5tJ3]y(U)\|S\-U-[嬻4B<—"x!qwO9o-갼cgʭ!iff)@& Ԩ9>ƨ$"7p*0Jo}K^"\"a+ƫ!DZ 6X|dP\T*a'o_@_4wOf)Az8^}&{ T624<e9~䶖ƍ*o{͕ை!+wcF./Gi_62y;#ہ|Òe18p_w/̯"LO6䔸lٲ6.atgs2_\0uҸIQDM@|*m]PX1P^mƷ:F[u|vv =EN]ǼQJ4%lP;;"9'ʜ sͦ9gVG٨ŇiCqp=G 0涹&. 3QQ+X|c_~֭%E!&5B}]₂om(la]gN~~pShQމ(9%zbǽX1Bկ* $O:|mz'߈Hߍ:2{Phd"xeyVo=ݺsxڥG/?9Z2\VFű!zqۼ7Z=aݖ9|a>i{Ϛ][ǦIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/rdp.png0000644000000000000000000000335012675050177015372 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<eIDATXŗkL}^ c[ȅn4mݤVTMju6MۗM>5TSffFB꬐0;6< ,G:yr 4;A6@s,fR#NKk} щ\ 5saTDDUUoM}w_Gc> PέWRɫ[>"{8%rι$I7w7ԩbppdXmWB5zv.^>2l:pʰg*anYA%ND㳯V=REqRVX~뉁T_X >WnS6/ Is՜+B 9JI"j{:dzfw[lڮvFnK 8nfm%K {VQ}g~;t>&"^ӿu; ` 5 뵸_C`s {PQ~UU[I.[rK)ROv-DOQFgk,=-c+Kѭ cOo߯قD"y#|k9\b tݻ~^1iXHTVhuݮjC_HQ0rlyid-_6'lyөs^uSk*+w"V5WW}H/wP̉SJt  T>we`S@$jo2V)`ǂlu*T9-p{S, @x@.JW p5nz̛mF*ɌvnF~hW~w5R -,Ԃ!ҚZ\|ZSᢴ_Wo߶6;-ʔwuFb \DCe#p`JPiDʝ^kǷ+3O|9 &ݛrr\X #U^Ê]B^t SBB(/tǗx4Wd}Yy: ~dח争GN>d2RZg͒lvGI& ~9SEPMYE5.8qs{]L K/y]T# .&9ΛPP 3-v+]}o Z@ds67J.ɧF'悷n`/WCKqc!,/""?6 W/n;nvGTXu^y\2TD@ Z#fXpu}rDl-~?+op)-xɝW&ceXH>|>oj uOAUݫotXb`7qY`K .gIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/resolution.png0000644000000000000000000000152712675050177017014 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATXKHTQ+ !"J"+˄6--(*h׮"z($Z$-AEٓ0"" HI15D6wνDTJK88`ă[5CFvLHn12K!t x8vl=EIA﯉,6,fNrsh데 eݘ͈e> d kVP37TM;R_)bf0;lzIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/session.png0000644000000000000000000000223112675050177016265 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATX}luǿklXGg^0C /o^&j,4$'DDP$nn鶲k-[۵w114?&<{0ư˚= H`E!%XA|PdG\r}v>$⺁Y戚D]qeu)ï[&ZFWѶ{F:ƨ/ I4phΣJ.[eBJꝭ+ |o?PBRPV»_B}B֛w  |' >f h !`Oc]Xd.@q`T-X+hznygļټ7F ;c7j7;de͏sEՙmLrUa8hW˖2`-˧RھJmfaYUnt (L%0vzOInYʷ0Z([ǾJhE!gL<# mpD[c/qe9_Sĩ\ ρ_G+"Mªt=aJ ?U(f)΍y*)i϶BIy}Dkd*1="\cc# _ze+wzȷ jLTHE0uf\#/It:$IBlajȀG}&Uw?&j%IBǸ_UOk]jpaZܬ:LV ]Պb1Oz#li#<'k<={4OI/nάXvju@I]@ڇc{Jk7 O[LnȡY]t|(߽yYaKG55c uMN38lӾ!yW[}1MCHȲ~h"BgA_KӪoK@LE88j%P{dEx%{ Z?$@ /:,JIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/stop.png0000644000000000000000000000224612675050177015575 0ustar PNG  IHDR szzsRGBbKGD pHYs B(xtIME 4 )"K&IDATX_LU?זױѲֱA20?ٔ`(j?㋁6!a,q&[$'}![0 cF aEƠƯ-ҕH|>߽w~ P+ٿG49 ^?:;Z2G Y498 'dlڭ͠FVòE7$JϷ}*5M|"B}̖)Q=&zVoIAW q^""DE䪈-vXCAXq'+Jt{UR^Ϲ6 ztX%J|۶ 2P:RD6;tt,3lO1֡Lq=it$q dmÀgH/̵:ZhQ>\)1">73Yknugc3;+< h Ćբ @EQ[l ǩ j zm͋NuqzQ51 iݲD%9gHLӚXlSjnc_u=Tn޾'piuh&" T>ON.4=2|%2! ݂Fw8JfC/ H~ XjCD5c)q tiAO0)IɽB8=x;f2w,U_,wh(xѺ=picoֺ( T43pXVE_ANވZ6$nH7[֧pU'VęY?,tʬVgɩ`'8qsP?XKUJl~]7&K8YgQځ ά۰;`HQJD(u-C?@g"-nIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/stop_session.png0000644000000000000000000000210512675050177017332 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATXŖ]LSgs(UAZ th/B=΍%3_ f7[B[Rdɮfٕ,zc%QV.LֳX?)BOϳ ֑@i6''yy:ČSR;s-HĘyΕG|,gI0V1eP^_PP.}n+I|nQo!)8>dnIipPͿ}7Kًq?ߖҖ—_l tF],tP Ƈmх>b*C̜kr].<#]ƕ.k2Č/sp$s =h`V1{l``㗞iqS)5X!YŞ"L 8sY'nVf0^[qymd /-%,BK:@708LU`!Rqu pUbWiIw=:eX`KR.(F`d 2Qϫ5HO.%  "G-C ,ݿ03Tzabf5fG 03P[kR֚ (sVwWfpi2fmdf`]WI-xJ?O|^VIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/suspend_session.png0000644000000000000000000000034512675050177020032 0ustar PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<bIDATXc?@} ,86H$)UK [B5 F0Q:`uF0ZĴnQ87 IENDB`x2goclient-4.0.5.1/res/img/icons/32x32/tbhide.png0000644000000000000000000000236212675050177016046 0ustar PNG  IHDR szzsRGBbKGD pHYsu85tIME  :mrIDATXoTUƟ}vڡL !%Fl#1LX[&Ѹ1bH\• ؒH$#JIa:R3ttޙs\U ]{\ISqMZQkI2Tޯ)/p_1'B- ~56j 4'ٵ 4hm[:Zf-`jL/}O^ S7'BpP=n t΋!U/ExnQgj?VW5ީ=u;Z}QgGDwZV3IXҸQ oU>zVlL^ |v@~_u&GU+2ufS)l]j{r *'-[gJ "qnl5hZZ莈8&[~7Y7k75~.qlkΜ*D2{h@J@.y*\h{K@8bD:'+\^1UN{J T&wnq AcNXZN7M!1mj̐i2pu>t{l%_ [(?40~bPT\WjuHHU* %*b;nCo*&cmmvmkߎmj޹ɰ7}`"`0xV`uu ˗Լ_yc:YH$Enj^D@4VUM '0ġ/&ml¨)1:Uʩ I*$$5`@&_aB]*:/tryRwޫ( 9Q? zбDB¢h[Faa"`-B'}\-!A X:ASUK|@k0pP:l,U!qa"f}ܜ+Br_zr2x'%}\M0ṭk*1ce=\-GNN"ZnK«HLg~zo[)[8(|Y霏3_>kOo&qM!h MZھZ`%WW01=/ ?YM "50t%/RIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/tbshow.png0000644000000000000000000000160612675050177016115 0ustar PNG  IHDR YDsRGBbKGD pHYsu85tIME  CIDATHkGƟ,KQBbu)Bi cnCO)=zi4%.qC8l˻V_I;;o ܚ40ϼa7.}]:ihT2ƏGx,$R"  oXC,`ꌷ{*qC&BZ٭%}H8N,N09fpv` .ۭ9#i "+{Ў3LE;1uL? IE0(D@նEr/Nn̦IG̱Fу1Zf}^ [[_mSSoxw#<鸡1#F>)A[ Vޑ J#mַB;Kcy6hvdbиDbsj{tiwY|3QLf>hB,r8>8Z' YL?o}Y]KeSYy`&'LK 5-r3XZsO՞QHTZ2%Wr笆Lg׽եoޭ?˯aHPp|w!߬yWI~: )ŝ|ſYl}K4 yGtqctǼ3eC=$ĴH&4Ku)/yG߼Y9g4fSH~fj"۩HR񣨡}b,ahh{^Ұ9k"q]1T o4 M'uIENDB`x2goclient-4.0.5.1/res/img/icons/32x32/tbshow.xcf0000644000000000000000000000411412675050177016106 0ustar gimp xcf file B4 B4 $gimp-image-grid(style intersections) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 32.000000) (yspacing 32.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) p Eingefügte Ebenep     Q e u?Z?V[jurlji ihisyj\V.UZit{m\V.JVaq˴z^R.9UmשaFJg ֹb99Um М_B9.U ʪf; 9Umʑx\99.Uţx\0_9UmćoS 9.UnO \ 9UmfF9.UfBS9gmsys:9NV\aYF:;=@@9 :'??𢦛tשׁt ͺtƱB Ѻ} ཪv ƫ{ܶsv¥nذc v־Y 󀏞֫& vuvz '??     ۸  ش ܫ '!FZdb\\^kl:;k R ѧSn_'2r֠a) n N-n ːSn ܎= -nĆH n׃. -n|= nx!-nr4qr4kxi4  K  Hintergrund      , <x2goclient-4.0.5.1/res/img/icons/32x32/unity.png0000644000000000000000000000565012675050177015762 0ustar PNG  IHDR #ꦷbKGD X pHYsHHFk> vpAg jIDAThՙ{\Uǿ;30aQAYE3/ڶZ]6u[4L-Lu"5-jE`(A?jgy\$!}7섢l0,9WSTCk!؎XG CLc4A~}:ht*e>9Tԉ#@YDLvɕPYP׬efl^c!9v,7ЁAI/'sZqݡAiį7`nܘ6m\}B|vØ쓽yM۞oo m]5?WR}P(AIQgLpUۯ߈ He&/ QrFF8|tmnK?~! ,)~h؍fu袢mqrtP Nƣna] "cZQ+LH;Œy_iG{W]G_5>v9 JL#C/;k_0dz;Qj[oSiVO7niL]r D-J""D<}3- ?\T\cEkXG: Ǩf@ò$kO`oϠwYȓvg=es ,.yZV\[fMwVgRv ?u 3:pk(3/w&U_EߌԼOC㡟Ӗ3lM 8h|D&YT{+Ⱥa] }uS}uA~U1X~_r充c Xit U)&JK[:Fe!<>$vgǮk:rd8#~ѳ#Ne]?bgEuo:IeIrw6Jѕ*,e?a, 1vQVs%mpu #9JK|\phdXS0]rd_,rϛan:0|K/2 OnjG.x>c><`s&WNS~%)2yZH3,eP>s@l1(ڼc!;c4h?sAj4D+.c% 5`2˴+ճU>w_z*džvpUw+w@zipQ_yy2R*IqE&#yE}j`>1L l}u8ʂ!.6E0!wlޱ`I^6\.-\887'\>X)χ[nQs7&~yhMIy%Bdz}5JA.y}4!aAvX.ʷi :4>Z4 U_Cy%+iw3گayi0b|jpIJP;nZrڗ})B7. `˲̖sKi7H)UeOrb#uT={U0pTOA9U}\!#96,Dٯ~ǽ Nc^2Z¥V i~bS煬 R@W>u](ܻjxCml?Ɣ)gǽqhQ@R鍨x!O\L\Vg8a7qp ̚16KP,A:a9qjL=VLV'NRHeĶ,v,rM0y.ZjSI!5YNcX'`AH #>0FhQ9gL:k o<0sos.̝e<\=̘3/R=Ej!j/RbDRV\}i#jV봺UBhٺ^ '}8vH'P!R!RfǶ 'GeVfϚ;b.cϲj$vJbpVGDCm? >#k$Aez)\LpF[iv"KOo9wdL((͸$NO60‹;yE/X ,)y5j> BjQDA=EWJMry3ϝƗ9~8Xڏ c-ȸwOSSLN#F%qµxۺ*Qynr:om`u٦'FD1c4,K3҆4`25FcdN ZfeאRR:fkDAe߂P{;Gv]Vq :M:A)4Rh4 ,eH5؋D|(me\z-R 5PdW!@ss(H\'2Nb8JHDkN&E1n.j(!e33hM5kQpٳgrzj!ZGQ>}>! I4! 0xםƆ;ߦmB,5#<睝}#z.QV 8NHH 4 !A*B1;Ք*̀hJ3,Y[1dBKK &54k(k0+߂ʵ B OcޚocviL>g |e݄QƷ:?˴L}xw_DR/$5ijЩFk6<e43}+q:SMŵ!oCށ+o\æg~Rik#8(@Gc1i :F$SR0 ~bw{il|}49M.49piۥhջ\/~IEI%Y %/T!j=]EzzT …wB-˴pgrfw2i ;۳<یDzwk=mbab6\˜Չuޭ+Bm`Ay#;vszjY?q" "n𐤘E٩wXbpqYjSjvī.c\Nb[}#kaza '5bL)I Bu/g|aO˞2U.*yvAU9I PY?>.61ZJjLfUu7O/GLQ%IENDB`x2goclient-4.0.5.1/res/img/icons/48x48/x2goclient.png0000644000000000000000000001132112675050177016676 0ustar PNG  IHDR00WsBIT|d pHYs11(RtEXtSoftwarewww.inkscape.org<tEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e,|IDATh͚{]}?3slP Y۱6 J6DiB+i"R! B >=sFNiGٻ7WXk7:=fneB( ^;O|&| 8)'373mD;Jv=C}Rasi|uŒ0mK%@ ABH7Dl*3=jziP,m~uעgѺ9_e7/9aTmN +Qߎ Xki#>Zܾw@|9g[1 Z'^mԌ 05+Yp$(y _n{y\?t )wR;R83d3Laz֭[[̬%%+ N $#J2Ҵ I3,gsp&X1o6(pqx>pH4%x.,y79x-ϟD߲]2<|4.*R[ǂضm6g(%ɋrf ]0:0iG0%s$'3(˜0I4IR9obȬ䪏~'%U:R-hrƂ(8 r=}`&{^; !S0&IrJcAH-MPFmfwyy@jcs(hx1g+J'?$Ǎ!],gd,Xx+D(&/4EZ`MRUT0W\v[lAy f SA'?֚Zw!o{;~t` !h6̚5 CO_?}ۇ5 ٍA(u\00T]vrbϝ&JKa\2KQJs[>}\{JAdhx@&$IF^u AiyG Hiq(\Gຊ;d5pҳ:ՓDn5=nr߽P互'iF|%+Xt2 ATre9Q'90$ "8%Kb4Ag:+H4 xQN^|4_Ys\=Ǹ`UWżGd1= 166NdYAY(UN8(.sq]9\99~q3*ŽJGH5;t;w`E+]M'bTk׭8$E$$%-I(Έ4Os4&ObtHOnow\r/~.@{8U%Tuޥhm뭼kB4, >y:aߣ7h4}z}fӧǛyTu?yGhw@__7'w6?i9_[*W;5i+Vd*(3$9$rHsHJQIdBBIp9iiDEؤy;l3ٸk-{6̧Ԡqn=@Yyz3/#C!Ae1,B9z^tOm{~J_rQ1S^ ^~\yA8u©k;9B2v=+/_GYVv[T 3¸ 38#+ot,Nˆ"K[1:O1yW8;нz~5W!} ڰWӂLS@ʾծr$( kAJTR P(PnJ _v+BN m`K3ZAF+:\" ""$!LR9gÐ r1Rl߾#CÌ 8c4"B.n=n}[فcgo̥"dV*FJ_={W36ePt8sٕU2d03Ĺ!J2K I24'MS8$I#81y˯a~Wα7p|ݭS#wb iMTHx 2::FQDĔNJQ'wUGv ֐%4BCjЛHw8}Uwnw3G-ߎ#$ڐ6$7U3InIKHj)INVD$iFdiJiL8–,x>rs aš{;S+[ ݊#Δ>1n{8rtq8!M2,,K,-e~S!)tIK2R28@)$ WBwKk;o ;{N۶qpN LR7z`݌%egIQVH8Ӭ SN!Wx'/]nFsX3'#1?4u ?!zWy=TÎ{ط12c(%2R5+0Ƣh5hcրՀ&d)]Eo˭3zBy\ 78}b\%pN3u9606" "8!MR,5eѥFᲫoWMO`<ˊI\UU[p>O:[P<6w*g{#k-IihF1E)SdcV#u'(4+7~ YE!;.4he˖;a9$`ȑ!?i-aTBSjT.ǘJ1)Yt9?i6 V^?i)Ԓp5Fw}~ .]DG[f<9t *e9'>G[;flfǎ=:LnDQHEDHYG""N:{{mO˗j-q瞮@d˖-|O?36m7%_Y_&N7N+Hבxd~3a sχ D[Zc:{&Ӆf- 6;NsD?tlA '')6Ɍ$OQ,n3sR5%8a%3=;7ѳhݜų=g~j`'f07SHSg>_w~sps| /KAWO;Q?y^$ڱ o?Yڧn$K{kþd>T?W [=%BIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/audio.png0000644000000000000000000000551712675050177015727 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATx{p?$(#6XUkmcZ8N ZQ;>F[LTZy HtG!BI6vf:#gfg{=~﹯sOf2rm@6 ̵:24'*.҉G vxRߤI0P>k2s(~Wmhu~#X԰;?Q"+6Fwrf4"PM?"KW`N'@]:͌Pꯁ{̙T5TlJMw thCD6pU/Ԏp^nwaĽT>/DE;)(*ß;JWoT'ڏGbKNh~]W6`O0bB:MGSB y4-_PSƗ:yzYYLp%rYT*?Ğy Ύ&Px'z<ؖ/:+fJv 6qT5zb3["}] eŮQIl lLL';P\k~pO2K=&y4~0}kPC)[VvZhQ޼!b9:Y G"lCY_,eRʖÑhR"R]hKKV4Uhy B#b| *š:mX:׭⦚t*"KɫSK:-Acr"m=DGVmsEޜ} :kXyR(n! bi\̘|*dm%7.?/?cb Rg[.}/-yC|Tb@CTAӶLE\q(Z6PڦcYt8]ý6A{09;q<D9Z82v3:d{P6XZ Z2x A5G2O)`9Kw]'sC)(&h m~*AԂJ.zw|xx:jM#L)8觖$R19g #|`hT(Lٶ/ZT=.XV >7Wc. 9^m{t _:WL(P "H`H0VzHy:3l.c͇C4byDz%[B&'b Sqs2[d:{KF ;Xm衊̈V~nri LL;[)Ȱ+ت3}&FAՖ9o,dMW~hR6⫭ Ń`N?8.\nyw[_z;RQnrnd"뫂+?>ÊYeώo$Fnh#8\ѽ'̜roc7G>3jڢ$s~I|Ǯ?;hdޙ[?Y:'2Rr*]@RU6o+tKsFmC"M~>zg(M dt-cWq89v6 nKaYWkY -}s.5}nAEP}0y?&OӲC͚ڏ7Qbɍ WW]a>#P^'ֶ|Q5Mhx%RDil|7WHUoOo#JU=/حyNڏjv1;N.xRjNسtzs@yqI&usΞwζPAv4^+穧K{@]eCur*#`b JDž6W8õ(^ep4o$ҷT:(/ogsSڀ\o+зIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/create_file.png0000644000000000000000000000504312675050177017062 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATx[{sy}He+QJAMڨ`CkllZS+ƪkKF`VR4,EM\ Xm@+H}= ;;3PIf{}=wϽ]23ml` ÝRCy\N^l"{Z 4btj82@Xjl{ys~4 ;'mOM6L83=pk/]ڐGVaUjZeqf&HX^Jhm`>bjMYҲVբNvnؔ.m=nMզXÖhZk˽/w I?JW{ZP1*WU*U(ʲ0GB\rIȣ`@!f*]z=Zte~s "!#A vD-/ .,|gd=#Lk+?_eaݖէl 04Zz c<_ k7w#=|AK1] ej'tw)o>_'tS; s+Vτ˗ͯ󘁭;{d ""%[T`ͻpf-X.|pa=;֍s'`\<5s//5!LAukf/hw&{G~㶩vs@@\5“8 c㪱U}m55"`u|RjXSUma}fvқ2ېN -*\`==> ̪nb,<+ M-ǘ$$=weza )gdў%+0 U:ش Ěb l'^:m)|0. E ևxih0~}/\D87ƣT? Xov ×'lvuhG/[㪯ݷ ! NNpx#<z~ 'Xݮ[zN `dםSJ| +GܞhcM$IzmWV66ׁczx浃6m\nmHHȩ+Heڄ]QV@_TC^m]Ƕ8+3^ډ7|vSvyu]zō-u.^kfVloޮ؟S53K}] S2E(#'ŌvbjnT-[Z{ݳr]w}w,a-W6k'ma5\)FM]Όz@:Ӷ'WWyuϜZU rlyjR?^S`BMOt:t8K <;WGLJЧjcͫ+>w;N@P/^w5l@ @eDP9sp_߹^klď__JU\ ;0sD'ljq,l myCђ́Ş! w34Z@I dS2:u۩ x%cq@6#Cv}_J(˖?TDv.=퀌ѡ:2 6P2ِS, 2 q|=ܳ (9#6xvF`{@ͅsWX2%t XZcn't8_Fl`iԙ1P@=Tڀ NPC[4흟\5#c3eDs-8/T"fxIp4VF u ` PJP`!ihVfy]vÛ4͕nL߾sN#ZP6w/MF&vt.{W Rc[OZGڐ^Fۮ- 6RyxRлsX*"U__WnnoB }MYxzGn^j_KdG>) `G7^Ph+d{Sg}% ?;?޽|'Is=oƾ.߽3{m)s`GwNU_#safbb_[ ix#F=S}"_|,JJƚ5kfW*NT~濾v>sǢ{(o mm,hbbxغu+MMMoNhT*ʨOŜEƏ\)yZ[[) x}[: /G>ڲX.Z{׵}81Z=99ucDG.] 4EY@Wݺ!mjrӃ1gZǗe:g|b8-g-TBsUY7EB72::h^ B/7#\`wn:{,z G}Cg.[[[)J߿+f^|Eذa_|1ü ƅjmWZ2W~vh811+\vex0W;rӇxu0x}ұ`޵ iR_aoZq!:DZ/Gwq=Oh˶5 XzC xxI \!-)EZk9#9O( [y~|R-a`X0ʮ#P#g_[Ò;>&w\/DGE094Jhl΋V9ճ&cV^~7 q"f:H@X,+\E>h)ַ{\gE>3:Sat:1rAl3ᄜW 2Cm5TCCfޠgg'+6|*R߾>1gD Y T#K5Q2/]k*I2 N-5:5Zד$]T18=wM`KvJ 0d&]R.L\XO2*s^>Nb.#ɑ8H|"0-s<`' NJbgXFG*"vc<cD)EX,x,ϣg1>HȉH(`MaQq- 6s5{ގIh(߁&r|Z7EΉkmADZYkW/PVJU )iMo@E8&Cd0Yd $0=W(;sbϞ=ȒOŢt&I5:@*kJ`9<ƀQ`d!k퐵\. 7PZ ԎxZ XA}ˀVi[FZֺR2ZDBkm۝NȄcN(r-4xz68}e&''1mZk*iaZk]֊X ZHSQJ 3 vڕApxŢl618JD)8rꫯNHI xO}{mٰʝEVIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/edit_file.png0000644000000000000000000000576112675050177016553 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< nIDATx[}pT{Mv&_/pt(:8ZeP~L:jKqTVk2XRāRIX l{Oxoa߲6,7}s羷"=bW{#SGTɘ̀$H2 H"~v M.Șf)$*df@i̤I3 (fbf!Sq>߿}ݤBzd0{Rycx!mOzp+"*t3Ky܇\"RxH0ʢKq74'ÙO6Mu^f])ZChk=LgZq0O6%XV0cj7J/l>b)fw=4iONz.g@(͘U:+ )jߔz-g=lSLHRrۼs`hMՎZ(CiƌK8CkO'#FD!mT(nSKqGXR KJGyҝcŬ5n˦'h] P*\,7V!qŨk샶W( h7چQ+,~5+LJ.ǜ~>$Uq/ýqSiɼ F5*;"\n7ܩkCKuU(+M+/Cdz\k;QXک;ghYQᗨgƂﭝ@.\MT᭏vYs ̸(}IU;;!֡J>W"Gx6XUgf(,Ns"ޣrs3Vސb|K1d \<^ӞqyJRR[>zr X \b|غdR*q<$X*M &q˒ i^k*nSl&:Ƌ C R sP3hiiց. +oHl!pe@pN*u=n;bq]׏~L>jCxso76>a`3Pd^Tb2$jp8/H2cKkmDuڒgJ¢$@j8/ᱥ(=Ak <ݖWª*LdSdT `OK1o,p&' [UxF{*MMu9u|@DiM1"֏{5Nt'bT[\28oJ뷧Njs'AZg1.5v^aQN}xv[;bwy+Mte;ƽ2 5#fbfj ;nm584Ed?+X`Pd^lqkĉ:e~wJ )f.֕:dgzm!:E;Dn[cv~L b%\'4 ?~)SLD=T`NjQ,f= tq@0))m؁u=qy#f1Ú--,,X獲0ojYS5 #%"J J`0@=" ǥrV_/m8Ř5ՏsROy pN8 ȲV"IL9a9ƋN];ͽIu=kU7@ZS~d(Cf\K"BKJ\L`24U4⩭ǰvĸϤ@/ doX !{kϞ-hZB{Ha nĄJ#gRJ= `%p@Alaxw'. x_fޞ&%5P0+CP@>laXIZgD㙷ݫ1:tPˮ)M0!!5tÓοYJm]j*7_^o&f2V oF+y@D4<AEh7^!:#Oݎu!,ǚxbi2N9۔@DE@͐2$`ao܆1nj4v _V(iVn . )Cܭd .X:0'cZM>U  E53e3`H™W<ۃi؛("hU0`vv>̙+$D@T;Bv>"(  KIT`Y A"@e$"T &anL36"&Q(;cYW!3nD!H.@ĩL `yzuY@ !ϵ ں -ݪI(jz+,K#>hm??Ҥ5/64iNPN}c%֬^@9W^mP&$[CQWhhBB%4I% ILHH  -XIK D{I=tOH&%t,a|9rPW{Ŗfc!?RYIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/edit.png0000644000000000000000000000534112675050177015546 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< ^IDATxZ{pTι潐dIQ4@HWHmi_h d|Պjk8TQ DB 4DlvC?v)n6lfv6=|9g dTH5 jyRM pa(ƜAC rH ߞfok?Uwΰm&~~~aEq @ $!xi+ hYvmke)<ķ\9'Tơ1qq- ?#UNLu7/en";jRzds8TqhlX>B8isX _j.oE'U-<u(!_SfԴks$j8ѯ_cƢoiD8 0ui-f.Z50} =p磡Xd#A"Jȷa#2ܕ ǡP0 h2RĨX{[}^O)i(0KKoɓK 1 :q}a2zQں7ᐲad;*rOL߮W$0h$dtFz|6PS`HYb:F7q̥F\ yJ 4$*XN**폗GJi[^hb 1%lt<g$D{է%onXVҒs.T[m&yp=r94{#=\|4c?ȱpmۧ ˊsN=`F#}yռB%= uMnTBPrƁBSotxԷ? sKG do% sϧE_zKkAw{[z:9`CN3IMEz~c`$CFKǙ[:uO^28XnC.! Ve몴]jOe%2kq`q+drQ%+mMn- 8 zTk\Q/YTֻrdg)0K8'iu, ljuc29(>|Q"kWhNwQԁ9`(-4",nwي&PeY߫o.Ώ:8].tF+P"*J&Z1jW!\Ⱦ #ofNƔRYwo'}h:,mO3tem>_Qy'oI쌷_6Ωzo<Ŗ}<ϣk|Q ,&CqWldERMpfM4Vߌ4_5" ^5u@0QҢ[:owy<j\A͙M3'V{f/^>>c\;Y1S[Ã:9J3i۪\C٢+P5s}̟aT ̓KBHptJd>4>/‡3@0< wLֽ{%oMVAbEy"[`, jc6Om8(%Ⴇ|+߰WsӦjdt&$$ `ıf*Gc9r3, U ~Q0RًWvUo+UۑD 2FULO{D-$R% |]Ewյ/ȯOCUsFĊ ƙ䝣0"]h{Pc?"n~1OX1=ںc Xjߧi)z5~Gh#ճ3/IǶnt;{x*m'Ok<#K߻1"Sd~v6;J-)_a1&kXNOἲVoC`|BuUa (HLq fjNwՏWv_ nK6|%cy=u:`X"׻TpsM' ueMIgd%U=e-{Jb)jkkڝj+(vqE3;@jX8 ^U1E?Vt|Hxz5Xf?0JT \ :tCui:U!f&>Y!u0,,}.1,~(J R@q^TH5m暍u/IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/edit_settings.png0000644000000000000000000000561312675050177017470 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATx{pT?޻wyMm@|VK:QNvq G:Z NV4u(@!aw}sdžFl,Nܙݳ}wJ)@qLtH7 n1-Z"BEZ@6+=l='|=v 1۠>\'%(@C145 Jf|Vnwwxý9 2Nf|`@6f.~M#oھ߁`uŜ>Sf> b u{\=Dxl~퓟t/2fD|ٳ?5 Z(Pͮ{=;d %_X=3QZ`c=Ƅ5) lH )Oެ!Z|Ƙsa^=Rũ7W |xQd蠄]fbN=RBRΰuih,O`_MK%DT4 [gG;u)c @䕈 P__Hu͡~/r ''3!~h;.UUUМi 5<\ r_5VW>gwBw3֑\|)vا=eNJDyJNpɴ' P_ LγGs|&E:B|ɞ\g dZnLEmѫ8lu@eK}6}M|჻>hӅs l,Jz5uJS: zmIөuc,O8ۮڽY*!P4 >ڗab~Y9{ٺu`kr?*@UUvG:cZ:ba[˂,ɠޫ P+ubdʂ{wŁ!y4H~Y'9vsoP`] j SŒۚbOB!>556dpƘ!rf(r3,J`P 6H؋_>~K X*A躞ӯmBY[/mJ.uЄf6v{J.ôƦzC5s;TUUYJ'M -+?֑L/md6q6]tѠЎߖ_JHm)ƤpUn0X5 ,a&&B87 kNI{555W+^l m83]rũ-r@Nv/npΣ\lA&9̟9s:wI\.}B{]*kRʫ*++=;':Uq@)SJN[iwRQ   ҍc@qLtH7nRIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/file-open.png0000644000000000000000000000376712675050177016511 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org<tIDATx]]Wk5$MLB>ش4ZD }Ň(%Z6L_TF%5j*&&;f2Wr~9Ν;~f {^{^\QUb݁nv-}PԀ8 vv+@T5sr٨ UXUjU`Q *UOmک8A=cmhg'pe JJё+~|x]#UTՀ5"j/d̲?H?j]#JFEvqd7G_dډqAbMWp}K ~ڡ?"t<+UGog VG`U .PnG634r顑[[i5YuV#m`0<;?جؠELw]8Z] .zu'Wx#rwjwA7]-YMx]y$PPسίθ&ۘaU"|OP *]ٿsuղ3u{z7Y(Z7D ѧ̍H |/hBm-p+M)lZuʦG.} #¯_M=x.9snCwI]H ״xkl5YABKyXӫ#06]`CC.# ԧRd<p gowAّ]` | ejϵv/[p @Mpl׸zUbpF*:#/O2}|_^m"83䁑߱lw+a@|ƐHg{έv./%IY}iƼk:兲+0wm2l s.ppo맹r(yTPߢ{[z H"n$ϿnǶԏH v#HBVƿߒ+!fm"a:#X6L[) DC)ܷ#/OJXPK센 %@EQB97p)pvܖcIF+gۨr"tlju06UA y9l yGg7Pl_kȚ%Z2&!V|ѺRV(uX3?QĞ>/qjPymHRN/ܸrIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/gnome.png0000644000000000000000000000323112675050177015722 0ustar PNG  IHDR@@iqsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxkUEsޫq VZ!%i}* MJDQdJ$(#&F^#-)>q}>\=fϞ=g+aq8{Y=V"ۀ"PJ 7@3ZD V`3 : ͓1R@jzKFUg";Oo)p v=oq?uMs-Ni&y&6xt$PJ uh<(lRC"uv?LJV6/e>a3/ٰJDN89EIΏ_ Ҍב./4RwM6AFZ%\ g+E#߄=,d pei󜣍~||(g\d~%>s@D[_a1`t0 +9m k2_lv_q?"r=dhːq m `ޟk/7)]`dvy!-IX|,jz2d64?G4j:̊N xJYX7b==fkm5f2;3έlyQUG̕d`w8z7`XT }08\…g[6v mskA'sS켺#\=F[|0R}IU4شnC&1]-)r\뢧ƮBgY"χvɘ^ gyأU\YL--ƙ9M£{2礤Y86xq2;EG%9^I^LP)ՄSED@) |.ZDmR ZޢbUr~J'}^4hW賽z;3 mRxP|=)&߄~Znx(E]] \؉c( ~{=`\-tnOQ"NC5oNS-e;ˀI6 DzϠVI^ST*kv# < uzщ$F9\`}zZ56Y%AcX3?:&_\_fDtv9dYZ^=[/)TX;!* 5 RyKꡁ2? ER" XlڼOBu} GG('<nRH^n||aiDu@Ը>"B$b Bh$; [}lz[B?b\knFƸڔRJՈ [ ǧI); uF$IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/kde.png0000644000000000000000000001313512675050177015364 0ustar PNG  IHDR@@iqsBIT|d pHYsJtEXtSoftwarewww.inkscape.org<IDATx՛i]UޫWTJ2DH:4]4.(ѥ,YB q J"@BB $!U{9{U/~u߹L}}O1DI\ (Eh B:Iϩ|qjrbiq$zvS71@\w-QBk< bO4hs<"0ae$M.*O:HOTlHƍ _]C|o sl\B&|a NkSW.n+81/LA^6ۄ.7rr6}dLWrjQ;s[gՖ^ h8:بUXb1=+/]ͻ0/|U夀tu5T.Ӗ궒k}#a>vۧ{s-P]777lA+=CEKsOKԽ~H-}ol'CGQBwg3{_aF{eKڙ(:C1JD* ǬBR=%"} (IKmݟ }esc!P,&2*[oǒ1'=PxZš#E*PTg@)E: LXe_X)КO =hcɌe_iCF s .]Ұ턧ԣ=%(V%(HnKsชo(UjMZ u_^c ѬjzZS50i :@:]+tbEc}R8 K *PWWReeO7@kJ!Lve+1XirD@6*Ey`G?Z] &e*ABe7 *dkJTl*Y74PRL,Hxq̵o_BUADPb,hor4=zMV#@7J Nn$ W~UO0P:bE p碵3Y9'O\ G9є*&VƕC HV-S C6ǤL R5e?!wq:%8Jm5R^c„C vݴUP"8C Oj9øJI F"gGKUmTJ[{ʻTҢ-;ʚkV@lr^)UoT M&c#%NM Jq 2T~|#[1 Vğ<ۄxϺx,lܷ}z@D$Taq9uʶJ :CYX>W b V7Dq:9 \rFgͤDj|/}<ș+ژْo,\P w~`% 0Q$0fƸ nv p}+9LCh~[wS8:2FW:h0? *1X}PJ F a.F$R3?2Q icx^:{Lp A@xm^GWESgx~T0(1L" 0&ɵmmM7N^ KZV3RhM A~?Z|ls:cb,b,ʹ6CP"5cV30buu3YBD~uqamL|߈<_3~сF{Hw =ZB&\uc'SDߪGj7q% 8aAP$(}CW<_myJ-#Z04' 7dMC%PJeB2&40PLRLFD@O4(1C\T=`ܳm-Xd!6Fp#G83֠ⶏƄk Vڅ2!gBD*\J0Vmu [X|.$?<~=-Fʆ iʹp ŧҲ_4Q]y%ܾYpJ$@&#+qhkKܶQSi+d(Y!ߘIɲ{Lg/zٽ? D$8`=yXNE_8q2d8iAkC^(Ő3c,nHG*b4pW6GWGEffU!"&H*E{+ Rp"؈&W #H"146ɷ۷54 iˀ'qb f5@rJ0'x<><:X{F\9s](/H)-?ݰ|x-+% vzŁ#dEQ',y兄K'̈́c%("d2~XϾ4_|JV@Hb`UJȹB=w`Wp_;_S&lxUgPP2:aB,lJ} Ze(b@x @ j\s-a-_B7 |}QX<+ϝpn?0ʵ?|/O;My|,#2J4]2Sx@9[XNv(WXد3)j$2^PqGWxvj7jgùtt5}$&B$D "+FIt|gs[sp@ 1:T*mrYynb3[o¾ܵd:RV-$bB&aqUTJ)<=2o^H!?.QD⭫yөl90ʰ+4U*¼6۹ FmMxBn^'V#NLD@:[X B8a!(|i'NKpw"#%r.v2VsUpD[VyzKo5ԹIJ%Wb s酫ֆ޳a|&[‚ΖiU͖hivyYSFD3%6Ѫ`6M$PbO,d=[fw;sfj&so-8.vsVr^^⾧^*iyl\5'*wo~-qw#5B"#i+EdTms3pEʭO70Ofx6=5Z.V.by>ݹkZKwsiABb޾|ZJ?;gA$!,~7Bf"vuICp]M!zǸ\}_i^%K՘9%dXPMuQ rlzx`7)V}l="4&(f©c#BGjDFtzq~fkZGكsf }\~a]l?kkZx/FM{QP)B%T q#~Hvwu=vIw Á5rzq`J xxx"-ԕ;4^PWJ"5H$ h~hs4X\`11$*\N%55N{E+J튒|X}%~!4!hDG 4^)L╱̳`뇵vinY4a`&.bD=AAX:"UHtG޺TaY:a?mV?\|jTÉqY.uPҡWJbLP_3b(g-mF$528$@=W[nUka'~]'zk]P ]# I™Y^+#3aa*sɶ;3%ZKVRJLTŐT%]xb̑idfԨAXpʊ6 `G`Ք-=n{_l5^Nٓ]M]#Gں~Tͤ,:?z鹀r@i F&8}x.Yhf\N>^}&П0}/x~pV18n8<L[rtd((%~8EdcXt AD\̜rYNYʒx#!Շ2|rӶڶu"˭ -Waiy?sw][p·pɵ JizI}ocQT]" (HBL">pL G+w]y:JKλaKKѦÛ4OO@""6u}i|q87IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/lxde.png0000644000000000000000000001067112675050177015557 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org<6IDATxyTg]KD@PDDEe211f3ct2d79fY!11&hF5n!qAAPzQ%ih;9u]y߯I?-1IVVPwAZ4(-MG.p(ŋ'}ckֿo)U\? 411qS[.H'-~$I:=6@ gN{Q p#G< \BX[|%Z h?_D߁.?P^C+ʨ1͇ !pnذaf_*:F>-͊]xoi6խ ~BhP-7/7̫)2ۭ>ȡvCrZM^R j-]';rngE-n/<@DSuQK @sT=W}v%[xmܨJ-k,b3+ѣ@`oow[4@ڵk8,-.]*q`s4n6؞5@bV1co?m'ыvj-oI!&7z)y|GSܕhUwv)OӖ+in ;5ZsFF} wL0 DTD΀~gX)kE {;N ڛ~wP'F}\^?M[Uu*sf:>lo+ RYu޼y3]7-h VׁQ0G^ 10wQwjBSՃ>xTֶu[3QVB^=?62ubU_bӜf]x>LF ʒBgz׳}}bhwNHpbdĉI3K-Af{~d{`)TFONJ[#|ŹyϷXt^S/6Ǵwc`51ɑc jݷ =<2Q!"@|I@!@ 0`Ƿtw6* g@e3a?SU2zKŕ<``@'V Xê*ۆmW)"ѩQELPRi]H{ѣ" d݀y!vȸgA|'=+8.kϞ*P7j%2(11WrpϨzD czEjy%Fv8Tmo})@ٳg}'[~=Q%&?[Z+رS7nܸ(o(& !$Ix㍩#̺#&X[Y͹};_{˚u~}7 muΨjzkU݈WefFN 虾^g>vKBW.)q= !̍"&MO%V{{9Yqu-f-po@h5Kr+ E62Bٹsi㌭bC@Lnʘ'=j\\B$3p>zm*t(ZmQ!D:˒$I]Ǒc5S~~cƌw TTeGts=D{? kb4"m_^wџ̷i`?U|܁򏳧[M[tE 7n*pz3Ç/1c:KLPnB4K@| T[|eκU x 8t 7 ٸ/55#m}\NY0_R] zZD>}FҥQ!i :ZTQ3kAS IIIw0BzXz]W!b{]u+HcIIIX)OKK[q@u[fҥK65Pl.8 44g| Fy@E+WwN/d-P#ҔIh2wV'~/WCK y^m:1@_f=?ЇjCm1٧f}r}U0!Oox-XN~~!\hO.T~gW@]v;Y p~prro'ϓWlrUqO_o۱ M<:DCRSS?@ZN(!|:W^u$$$ !l.to=㇌~d_ `kIo?qڳYWU~H嬪|Z͚5ouBh* !t9Nr]< ^b`d-|g޽{fXBuKw 5+T 7dZf?ڐ%h $.];ф624s?tP0`O\r;`)2duRe ]t ?2P^MA/aW &&ƋP-&$$dtʲbϱVClU@xkbbtL U4%WՒ=oFM\*20oM"itYʻ7RT[(ptҤU!)a%v6PU/Dflټ]V;N@HHHx +W^yejxןz쯀c}~k:xis` PhѢ55Ux0B\\PFcƎ܀]{[g%[žb=fTQEgܓ <(Ҩ60ؽb1onoSn%bsF8q:W1L @;lZjK@BBbht=rg="""=s^?P.֤b1mڴAaf EQl/|O<1` J[4\XD/)))9w?}CQp8֭[4.'@[LUԠ}O>}Uޕ&T9W)|{FhhѢfI!l|eYy+R>^)^PoG$rM&o,PE `U@Prr|B$-,ZՙQ~ u=}'N8$IBe _pue?[R+#NʲE;VX1؄@Ѯ]fv;P[cvSQK,*,b}|VUl6_:Q "VN ġ?u̴ !Ν;k ZD/X`WeUظis9k@wyB:u^'p)ܴ }ZmO udzfk׮ vќܜܢ6MݯFrG@]@,EsZx=6;p===hNNn5Mnl޼sh歱e>޽{{eddTRU [^^ hw/IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/new_file.png0000644000000000000000000000461012675050177016407 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATxU?ٷnKb) M DHQAMҠ1MK5.M -ۖwy}yvv_QN2ys|9{g*b=rˇ{ vME jA &z?=scXtijRYjR+2Ԥ2̨EonE}i`Ѭj.8/MpIjM[ .YesZ;mnW/lf{48̦WZ8rm,]M+R$RU8>!Ȱg_j/ ̧ܸ'kX>w?'ͮ)lc֫ioutwWR۹ h ~ءS0`; `iۅNoRZӼvdhCKiS*fZ[8[Z᫗ym\ꅖϵ+6YlBc%bXduÏ"ֿWm, QgMӃBequ~ܮpӒgd&+x/]@ _l8k'9eF5r,=;3Fk#G( " H6)v0Fd#ۜ7)'US$D lWg̃ҙ :vq5I]jh*İ&(I@eW39s{Jf$6~/™B]pgq벭\9ilaDċ$@@(̈xZ/,Hw-,Hq)!;{?s:ʭ˶XOx*rVQ&.0Kb#}?'e[r*Y;\<'UqMU*=˔3 0⼘d0Ƹz,?6[-S WkWV|~ N aj^AKFpij.'"͓ 'WΞfKl?0"qAPOqP`4ꂼ X,P Ag+[V4c zIn2IW8>׌OfUl '`:"$b3 "ND Ak\`<MY1b0 E$8 VOɪzGK!b<$; JDAnԧ="HBb6<ה#Ab@ݱ鵮"sQ$ѡL V"- ^;.?("9qFա# nЊ;vطx1 g)٬_}x?mSp΋ >:/>;yN?c Փ9ĩ5և.7ק6E:[>tg/cE (cQo1XśEXD,[Ah>b`EVÿAlj-ɿ)vFGr_Ws_̄IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/personal.png0000644000000000000000000001166612675050177016453 0ustar PNG  IHDR@@iqgAMA7mIDATxś{]G}?3sڻ׻^{q!4ODJ@h ĕ(h>$hE_TR+Th5 (CHBe;~k{^u_眙1{vqIFsl7ދQZ6 5)@IcZ_h6gKxC~u^U|Z?gGVh ѯ 2Xv1Fi`^!%RJ&fC|c9sv g>y-5mj~(Ϸ>k_[F Ў/#{6[G;6'g|!wȃk΄5wFm?\318_Gvl%mEjpg &:GG|r-9mw߻|m;GgE_ք1;Ʀ#ݽnG FIFz94kACZ>e)OOmOZXl"1XK?\KFhD#yL7.>O~)T~= H[!0 JnC&-P;% ># ~>A_ܶ{ =Vd58 kˌHCl\1$f)8 lD׳GOg_4ww.  xŶFحNLl& }mmӉE 'h.޲7:ȳ@k6*@V(4)@Ο%m0A0 !2|ޣZ0S _VJW-:Fdh!l@#D `23oNGPQR9O?:=丅M@zNz+aePR I@"NFG|* )Vzr^udw8+>/l H5+|ٖۚKk8,0H):=d%32,5#P* rQ5})00и<`(AH%'uw qB(r9z[+c@ ǑxDHBx%@%[A x+t}@Rg@Pobm\6xB #wƯ0ƠTzWهkk'K-ɷD#"q|t bcg/"$+l+@ uv:G.eYv 2`ڠM'~@H0l@eho Ӎz5c=\eJPR:| ^{y-iRAP!l4Ћ1q8X7ZAoOIH -)v4Fdž86K7uscgYe$5|Cq:3>9%ƻJ%s$vle_'u]t0̕͘Sa Xxṃg&QDwpp]&X DvC.SBONR/jwj|uv|ȹ,IS:F'ǔB 5䩟G·O>҉7kl홉zoY_+aH Os%ԁ%e";®$q _ <) /MyU?9Vw<*m0Xb?OIHg$i$a0Po^:0c VkpR (O \ ~hi׸d2G Ԇ0<>x߉0񏀗Xemk E;aDssɈc $j|N%{Ɍ{{<6alJҫ x /9E;JI`c}y[{2^w7l|Ǎonۓg۪G u~ƭ \nܔ=#krrbK#=$HhiXS+ y^xfC&L371v` P>rz-7nstM;rdc@ y+^ɱ[w Jõsl^X5$eřY{#?VwX柸^/o}J ;9klF;|gwith^'"yd,%JN@*+ $ovY[Thc /%NQdj2Az(LOi~J$[O(:uxP;v>W;,1έ"޴BK{Gu5imkN{p92kӍھʚ ~h]SI &/(;k҇X' a %!o=jJC@_ ܁Z5@ Kq,9 TGhNiN qDV(;% q a,P J@vu\lpY0ڴØBNA:Vm yl8Ō_P˖@wVqF|nρ+Q[M" :@~!dԄs=$ &墋+yWP }$^YewLe=qstL %_)Dkh.3gquCMCscZ54GBޕcxp%ÕKc(#Uv^70|Mi˦*׏Vؾ1`_ l' ҤiL*&SCl0\\,,¢S/}g'_3y8ly@ l8w\_*}A5؛c}oZZ٥Vr(6-QBrbm ZЊ Ma &BX0.NOze?:rp!0&YA N9X{4mٔ:\X }e/W̹W.nP=H)OoERfazp~an/O|5gƀVQ/R"vTdý^Vj#m,%R t؈b#j/N.̌fy"v]gk-$dy=ǫnc'mFe1]uXIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/preferences.png0000644000000000000000000001553012675050177017123 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org<IDATx{y|ES=L}!$@)(+**k_uUQ<H !$\9?z&L±OTOWԷWu ! cOs/o8 Tܞ{N,wgZ\HЌ,2&1\Z1~YPhs3럜OT~f+[KN%xXZ@x%q]j)).`63S`~.%zۺ5A6rpQ`mn6lӇ'Ĺ="NBJtÕJ` /ȺcӳjSӡst׋}u0SjCA Gy)zlf퇧EFVg;_xiPy΃I+ۧ& .tҭcc5jL+K89tځnG fC 20e!t[Y^W -&Z#1ag覆y:lƇu<5Bj!:ߘ7%'sA@ !vp0BϧΡÉfA@ DfF`IZ{ jD$0:P}Q5!x~EܽeJ !A) &"zM7d][T6ƲO(ȜeBt"PAY,61 7dGp\돓Am;p^?E0HXZc|%'λQ^'ɏ00B`@1$a%@x^15FSWdM]T[ޑyϾmVopW[s(HbR_Y~##8R@Q||PWǁ;Q!3b!괶ժf}'nΙ3Wkj)K!A%@Dέo/)=<@HI޽T7P($@2Nh)wiݾw~T$|x,j?W.@d nG>'êw3G8r{5 !c*:j+,|h{ ͝KyMf|s5qxnh6 3Ta76<؁GY#A0Ja =m/>XF]Xݥ34ohoK (>^9N52{߇J__645jq^hLkkei|EƘ۟w5cg-K !Db՝D%%Bց^B* _CUH><0Cx!$כDb6R$I Q;Rx31JD:..`՚05 ;{ 4BFEpD n#G(-F0h8BuAT*A@M+֜/^$4v|jh`A7,Pᔢ?aJr=/51LJU`Հ3*^Iu{ N9~eTLy9aا樂ȝrʌщ:  _++O)JeE[lxmEH3׾nMǶ{n_^0 {r#s5#qvq[P3/ >$r@z!}e˃]DJmN (}y.kw3=J @H5+㳧n$ *Upb5]TƠ.+%d(wY [#58P' :g-AN ) 0#f姆ȉtB@Դf8ݦDaCCe8{pңyLLBF Je|vp$}]VE ZC(mVxS`slRzd` tRٮ?+ 8B%r ! .wy]d#:ұ]d<[GwI\J %PÔDQJm/պ#s4|@cݯ?|Ĩq8N:.A !xHBg}ٱy@ @[V0F>oJnmr$FNps%bN|h3%(l(w;O ٹbi|ٯ$:;0'zs8_ ޴Q8}_8p鶶l-CޘW|s5FΨhIjI"Bpvx|w~%v g7.[} X}ڬ%Npth``cIc2Ӣ2:b^7z\F $ țS% <yn DyR(cK 2Y@6=R sW\''Tia.D UXZB?p(7U 3#"5h0W"}nH,|`D{ !N125.me9F_ZMqi=T4z#goܷe %΍kIP{%\ȊUcD)9P 5jӖYr)g8'lm?2=W+7m~&.{RA<8M"k)zO;L.w[洩S+j`:oo}2i6$g_<kΦJKUɖ,n *"1}LBNǠWIh!2Ny02C|vU;.&I FU<08WZKBt%y!.t3Yr ߼Iowic&n:[{A.G* w!]m]n9y^@|(`݀\T΁1"m5% $!6v `S8nuv :J-/ A̺sԁEl s z#o2_-ZՀK uai^vP` B)ϫ) 7/v2WGe)P!o>3'IЂl+e2 i  j@@ Atz-"Gޡ u”^`tpF9nwS8V쭡CZeJpAb` w^02yi~%!iqEF(mA -Ls/H98J{Oiy(#oOqO,0oIEb́/o41OZܫaGPVbG:UdMNR-ہ8^PꀡKçGX_W&`͖42i5я#1Hgr8 gOO /: ;a$p7.PΨ^9W*n`gvLJqXmmvٜ6q'H%Xg>Bg"_=trGv`;pyr]L!bMM@} cb43Aײwh7,ʶBϹr+w^މ6 =O m#iʸ%SFț HHlxcͼp6;/69%\ƹ. j-tS~%ʰvz7h` ?w Ab7sxay41)?qdמ0$Io./w4hK/|邶 uID6#3R7Btow3|}BBY71g}#^fc~c, Os]sb{EkUw_W/d1'X0qFofv?PZ¤$n칿pjF,)Pl>Ͻ[be_|߃'FNM1Uuup{{vj&@Au ""kmV>( C7muQTXFQ1$DaX52Դ1WL,f*tv~Pܬtʢ,.$Us8D3>A!D6 v Jr%Ъ$tہ0y|sX_U}~ lMv7߰/O_ɻ$~]?JUR]]]cw}q^/R2QGJȈr1!q0Fj$z5@M-]Ϸӄ0N-f7hbu=.Aϐ@TR gf-|uHrѲ#Z+^!lua9y0wA"n-6bƴf"c xlE;Ր@$+uԔ|9P[R)䷰LKc Ww2XaHn.|i$!2[Cpt{˾ta cvk>6,#%! y? ȧԉy*pg5͖o}Wwmc% VfZ5Hn\N‡z.@Dr0Q#1IƲF]'?yd5 MߛS.&89"Vxv4(a]shR냵jȈgfnG*Y/tN\5f5cpǿ\ @Pq*(*|0}mO8bR]ա)m-|ˣ`K_xDKBBO㡽} yVBHy:<Yߟj= 0-]FI4Xf.4~t|fՖҷdCCqOHw~vIӃLܽ)&glp?+Ғ7-wV}~3@p*FQ(x`ՄyA<TNN|MnzvtgWShNiڦcӴ{g5+N?R".})S RtܜM l.2(SyJtq˗[/lNbJYvIXB ,d`P[B\`("=C-|2\ )q:zxhK{6z_^86Hf !d51D5(WvP_)ZVuˮ /Qn]`bRőjȦg> a'sH~F֬hK&Mr3fiwCcqtUR^_9vh\8ǵODUkQD Q@pj;>Js`yWrnh[ِ\mG)ŠK/sf_=PBzr/?;ƽ_`VVIre`)_',a!$K0^;FN̜yϽ `y&X_nljٙ""Wғg~sO,)+6?6u=wn<]KC ;nƦ(T1Sx*!Ical1xڱ86$):ۿٟe޽қuc>-D7aU*\mm0_V`52XOpӱs;?Rp p*M,(Dc`*[jwTYP^P}'7؍OE/\k~Z׶ol1Ora{uKUBXp 4U1vܧמ*}d3$0D"EJx<# CHm1hGXCs}?F"z]4Bc~?EQ07y͑}OZgClqS&y6,Z5^àUA8l=1+t 2rbvn0vaD1*gzMɼ"QC`< gq މ(YȲ9&?eyPloj5߫g㉢RcQojeE'\0ˎ5Z*Xת)>IRN^v7o1oz=s!$',rrBLqڸa{}%qWTxI21Zn Z[i_QYmVh~7!5fuMG!d9AH?l\T{}eKzHsC>enyN~2Зl~ä%(1]ώzyѲuh^k**gGwiX~ݭU#*qQ :.4{1gĂpT/} .VJ`+ƩF-CL jb 4WWtB, ooVK ִV #8ΎA4aD| |bV"{u`@m54tփ)b,<']`d E!6߷Owᮥg6(Y{dJpϏ('"فa蹳sG9$L,4&`U~m:6 8/qiߓkU<+EoXƌqXEO%#{pa]IɋzĐq9|xa?Tikj:|T\1TQNmJu+V] G fA,VRX?~,%ӂK;KOA:r=Ks8R6elՃ Ql귭dٺol&7< @jӶ}WU?aX YZ)8vdyiEڤO;8|:IWaC%]T&m2K+Kz4ٯ(m h %HN {^7Bdg~u_;JE5aw+r K^mSFi+3tCn[oӛϲ>eOQ\*.~B?ܛPRnM6!9i`HϭPWѥS4(+Pz dO`V־21j|˚S7 ĻHqd5J"GWlPnOS:EjGD(ы)!,_p1EƉr-\.|oE8M8M8M8M8M8=;)IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/session.png0000644000000000000000000000505612675050177016307 0ustar PNG  IHDR@@iqsBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATxypU?5@1C@D)3u;TIݐ8(Z :DXہv H".Le '/y/[ ͌Μ7sswE)ŷƀvMn `71 ƀvMn `7aMR~ztpe^uǔ\CZx\RcեQw5#ގ:G`CC"1Q #4Ei :]@i ?}:d_W磟SGNuݕ߉L1H6q;o[M4P] EF䙢E#)E7_|v~97"ѩAWg¼M{(I1@k-Ec/)7޶ FӋsJn+@cAW9Q 3$+T7(>Lᛕ[-*ceZzvO.L3uixu0`{I4읣!21 3ׇJ1vVTii _X)q3GGXUNZ=CV&/.rH[xޔkY@LL~ UҬCM!EȬ@mT+CܒY됖dC|u%)ƐP.a.M)ޛrcr [h"zxMiEA+ oawajt~ms +{畂>ˆY)&ē9/c3m~!6~ε)MuZi-Upt+C k]H'?t ~ \#LCH}Qd7.E,Ѫw}R|÷$FIw2jҊ46?(@XP L꬝!QAH{غO[܆6a/A~%x*xGM㥴"HyCN4_]hDذۇ?_&hZ{!Jne]v۰^iWj۹$D"Du/<l`[ND @)҅+Wڭ𐒒N6@u~6>%#:0M41 00x~] wAE.Vlwhh&"ݶH)[һZPB]mǩV:&SQ~Vm k'bn'w]Em@g|''sa= WJ1*CIlk(ri.8`G|Pjj9Olzxsڲ.?Ȟ+70qt l>wT?KMRIO4&d g]adײa-=ZW0ꋣ-Mu#z4 R)\V]_~?׷>rZvuRRުtѺ'3Q*i )Rw_z&GȠxmD͹FKGRGy}TF=qJ,5 ޭgLu0bbBMcu!4sXv"fޱ8/;T~24`%U!}~Kqmh\!GGu(ء.g~/7~Mn `71 ƀvMn `71 Ʒ^)1IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/unity.png0000644000000000000000000001611112675050177015766 0ustar PNG  IHDR@@bKGD X pHYsHHFk> vpAg@@` IDATxg|ڇٖM6=!!@@%D `@JP@Q" *XTQJPB $lve9 -o瞹Iyf$!n"P Qל'!{%PtN ~7 _͜R< C*U`0}+}3[.ʱ/oz 8MV"o;[52T]V|!LjΨTe66f'v9ԏIi~X3lY":DD b|a9Ad"yTHmW^\ɝ zK) EʟI y-ЩÕCG-~X#{AZ f5} e+F֧MS-B~ێi7;-7se'`er,Sj82cmx> R RD"O}Qi u[ekppOFkILM=@cc,l9T¨11 ?#vKZsr#dλS`~jAd6[u+U@-tcl:)?Z'p?6K_H>_Mg-g(<pZNMBUzAL20ѿl@ 1;@YlB7؍ohy~>Ou^G'{.geuGH{(˞[E_%>nev#WP]NgdG**@h$d|5Nd) ^`(uz>/;^y& P'}Q~|fʶ̼y`4.YC\kOܧO lߺn*uiґAr~b,]2e)2j?Iے":{hq֭sU@q+;s q?%X#{,5Gݘ}{B 4vX'gP(p0 ;L#MT(Z48'?TD Ik=򯼔c{z7@AK@jcS#nj6(Bm'΀qi떁Z6.o/.XWV75G ctd;b{OZ~u3@W C 'g&΀y5ݭGNq Q [~~&&U4gI'CweW^PYi YSMBٴy~@` Чk1A@ lpFw>?$(ϹN_UpOnϊNy>]=7 uh:ؖ}z/CFPzyU},ލz]GP8JPyPpI EuE:tA,ǃCz^ l2FV KCkԙZ|1@ m_rtk(B`2N q'2ZjePL wo4=t ?ӪMʋە }9yAɺ-F.Mm=.\oW,eʤ̝[!w>9An#9^vPDahE :?6/{ۖ>\xBam~>u *Wvv8Hj@j-gU04(\d{%I>=9CeAuM#E7ؼ" Z$rPvHmbuDHzu%y *Il|mBH*y8Q;(Tj6a=g'.խliVS]P$M*P,RW,t_@lFh$-,MYRSz_ ;Ef5 ̀M7u/'gֵ Ug ZX#!-2R #~q*z^!0.-?\3xF6?lmLТziIQ!RǃJɶʕ`,,m׀l~UX P|Wi{ie[zlJ OƁ]*G@6Y-@.V3LM-d(tKhyRz Q H]uxE%D-WlXMw}uʭP0 NRpihuLEO7פ aw7,]9u-NsG{RR,6΀l s9T#o\j>UWAߟ8G ޮp{b~w3[:`ڦnZyӇ/|m `G y.c㲅U{A,sû02t5 %( oMLTj+O+\PՋ.+B8Ri~p:Y4)g5? 7Z얡._ 'W8M."㕁1P|*9%g9ȝ H i\E8u솹ւ˛ ?U' ϕI>sj>t*Gۺ/@VԭQ_Hk:#'Y1ϑ~cpQg6d::lJw >Ri,6A]nY rMw7òy Tv)8Kt(Q0 jm4KzEz_ʗV*T[v=9E`t*"w ib"&yx4W,WJ9jxPtU5Bs56[IzQLU*fgs;^\$8}G#.ҁC9@q ,R9!w#Wt /S U]Vۖ0۹5HN.8. \ "f* eRUzKQP ]?+@@QVAyf˝;3[,Oe P+H@QrEKҰA]A5['78j {.J(wl=`RXVRӠJ869n;PzPw[y|ZLڋ!ݙpI ۶j{f_ӌZ0MҚQ14ݕnsoGwUfpXl-_m3A?goI@Rc9Puȥ\}c;ekE3GΓuzhSWb&]'G^'u:Z Zҿqڠ//.3Nuܪ_ 2]MNVUr88<ޮ hX_'2IB`X7P~o=ʶ=Jw@_sIMǥ`WXKGt?Lp}y hQ8ox>ˋt6Y.-C y U zMbKc9=UQ'{PIҼhkA;:׭ {t}P{[_ޟt i6o!hWoh7vwkfQէʆMs+ȯ*lp`x0Phq7ݣe蘆B QfַEnrP|FTko\.2g]>Bpn<%!4.m`#Z4*̶.IFfM?da_9`U=߼ ʔoZj>/M"'/5=|wÂzCAcOmj AOtoyKH!C!dЎPU^Y\bY`f9ht}='}(dM=0q*'w7diYBH(fBci#IZe pP5RiO0Vw\m ]XEcPSP>8MJCAf!oF+ mﱮoLy]S7o_`I?.&~=r:J|69vDiVƄ}B ="@΀z(oa+/L&VFUtT|Qw7 Mln 85x3>c}Ӻ\m2 L}KyiSjw}= 6Mv-5\'mQxJ^J{V$X$jSU_es=9zsT"ꅖ;=};>-*`my-!z_yC3*]疫K8B>)]ePwzCթMD8OS;C` KW)^Vs! TOL3`RS0)Q -He/@\YP}jA7G\ 09 _H;$Ϝwô'HyYm.d_nT]J.N/C&i>ۮ/ajPѾ o@i*pfLy,笕P=2 wK~/{{jr5TWvA཮êAmʓMj]m~ܲWS 1qWH9p˅c`[ܳTGT~hk}s8ݱ;G-HH PnVY%u ~nK*~x-ikmTi9@3U}GaA ^ eH ι(_ e3ykiE "LL@:Ǹ|WBҠ /Q+@Rvu_P5usC{{0WEXuhC'0c,N';3m|wS"x۔P0RN`p+T怵E 8#$ Ot@ԟV@W>y&J|T$չ<(mQ&Hvnߌ_E*V Q>,O(jZ lZZ=K UȹR(ZG(AnЪ\7ڧ{;`U;ߌ7%tEXtdate:create2012-06-06T22:37:01+02:00l;%tEXtdate:modify2010-11-05T14:17:07+01:00[tEXtsvg:base-urifile:///home/mike/MyDocuments/4projects/x2go-upstream/x2goclient/svg/unity.svgɷK|IENDB`x2goclient-4.0.5.1/res/img/icons/64x64/x2goclient.png0000644000000000000000000001566712675050177016713 0ustar PNG  IHDR@@iqsBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<tEXtAuthorHeinz-M. GraesingQBtEXtCreation Time12.06.20071¢"tEXtSourcehttp://www.x2go.org/artworkrPtEXtCopyrightCC Attribution-NoDerivs http://creativecommons.org/licenses/by-nd/3.0/e,bIDATxݛYdř'ϩn}iV^" 0'lǎüNCv~elc&bF1B͢ޠ5۷RUg<'yn]@ۋ'#fթ[9v|8  @߷Q&渫Lw4pqUF7rڿY=6vQBJH)@Zg.u]|Qׁ^3I.ԕi.#~ӧv<m>p֧sD;?s,7΁=CP{Z&'WlZ?*=/k VҪ?ʑ5<رZ٨W ~[֖kIY{!^RSwyQЎS|d>uTS_lJ \[^ueucC釬y;k%^t R 6ر15yӘUjHNGZEuz;[OtgvpARK႒@=B*7W\(4X7gIv1u:Bq@Gt= r@ W\{qΑ)YaZs<57r+V;( / /&whiònU27Z={(OV `"K`[M\QtBPF45z,xCqg$IIS1(p!$BHRBJEH @ "N2G䥋~1 T M zW $d:G+Q: fo7zKt'KW=Ifg|_7J}mi&2Lns1$NHRMf$&׆X8[RR0 4*Akf»!5yrGQ8֭g5T?iYł!$ CT*:Zb A]1S-)2C̠AH06`l&Ҝkq?aU%Y9~y|#PHyDsvGdlTe{$Iʣw[of`g@kѣ8zUh6[1YbLE hwX^JA@JlwM*lܼ[{~}ǖw޽~MnZ0\^Z 6PJj# QV7O˦MQJu](cvvO>ӆVN4Ii'IjCh$lnIJiLaZhu,ZtL^8þ<}b"@":Sd蜾uR'j|p={vq.K?)7[RU"DhQUGpdC4IMiΚfd!4Y:K0:cvpٟ2q~fUdYLUVꉷ^9FV%(O:v l5PC?$>:[R9VLd98g0T #H!QB  j (9KxC\sG~nط(R\>!}ڿ^ w~=w{,CCw-:dƒjKf)S>$f$HK׊$&Y6OpE9Y0!:fxY6 &ba",{W.MS DQ,׬pzX#u^R' !T*DȨQšABDD. 5=wsgNz E|jN|6:fP砋l%<u'<*V|%#Gqs-4MsC8W +0$T!*R*RBE#RF!ኅv~+xgZ쳖 !VLOQb\fl@E!/O {BPΰRp7s.̒?boq2mI2CT4ӴRT,NEr8kP!k5VU>;=}aF;#HQ1ܷ͟sǹ끇 wAX&Z x>ޯO3C#%id^$&$!K5Zg:0H*R 8s)V?>ѿ0Tr9TJ'rp2=9ͦՠT Y=4)KN,!}p&E"ˇx1.MN3ln,#/,7UJE*@(ϐ*@U2a(jTH._8u+6yyWo104=ڼ//A]%`!,]ڒfDK;2-YN6?jRmJ2ic0ZS"`R\ R Wgi+#.ann*l+l"IƷL}hܞ -"Zй'vE 7qb4E)ra"p@CHB t(%QIJB%}$;M4[n74w=͟<5/-=Go}$cZ6:%79@kutJP* P5RA)2Da@aRL<{4V_ǡ׎p6aJg[ݚaB^`|STX*#@nq i dږoѦcH, ̠ۆLg&b4.O! lF,jj3Ӵ;}>9ޓ[ky^$)Xӌ3ZZqF\BvYVz{F9`2P8" *>HŠ@Ha@$78z~7sM}ݵj~m~smjchIbMΉ'8~M.Oli}ClQH $Q(I$*H);b$R%QJ( ݧ^B<'nۿY)_ܿ}˧;A$Ὑhk/ um;X{u$ږb`I޸#3 @Z.k#FcOcK@]aH D w-VOa6k ":Ebrrfۋ\lM&n4I1&Ύ1\s(T!*`@J # R0 "%z?/> l= z^fcr.\['@+JH3ڐkЩI ԛN2RxWa(=0 J'ɋBTZ( ux Go{Yζ# J*OKqx_O;-HtN,j֩鰹 6vitWD1DL[ .C `YF7p|? Q.K/=vм$={E9fm%4[>5$Ix{MfqJQrsby P)Os"*t N7I$ 4j} vz^2Ŋ8u@q={[Jp=4\Y2)B dG|I!ijtM z,nޗAfZj+7x';{Y? :w‘inCdRD e kgy|h=` !.N.'NffZ1IH-(:vՂsk]Y8Ae !ǐ!g W8_|kR&} lIM~ӬZy zr 'wǗvkl%1VBR&Iu["Y- -pb}), DY]]p4FoӜbؾ@H~?VJǹϓ}/#ub1 A> J!0N*V݁˝}s)։79~M&fh6cv7` cfDz :]+J$ knG|׳먆_ߠ pCV#EWZ_¼`VP:Նe(pXwY YYi_'hn y&Xw-N:yN0jbx(HkpJ9ĵ Wt}ڲ^WxqfEd$ItsK,{RBݻCo̹(<-2_c6BՄ6KkC>)*_*5('HRA@Z DEjc2)jze0$EFcrL1YR,)EDMZ~-VU5AfFLj(0ÃħiN:8WH¯UȲ}Z+jI{nҜȮFy-v=Q* FJGFiNa}x/o1((Uq{ɟ?@wZgeúiT |$J[nm;vuD`\feV؟)K8h7c$%I|qd4hlnp:pg-* YnBYpoqNiFVRT,APV߅R1B8{.X"!gj%ZyMBdSpNi$@$4)E\5ؼLz!0 qlgu}cԫIޥƆUT0Rs?4!79yOQ|׍]p\VPC)=-kccTC9O@A4V\K~O*xG?nd`KrKGwE^FnI3S8'̐(4$,II=W 1L;C|h#ܽ^ged{0?Gi?<źè(\RE@lX!\$G,j (2lš6iL5 VLjB# M.?VQܷV I(HR !RP)g"WBv#Ae͢GIYyy|y96v4M&#;n('ڿcD@AbtK?@SA33w`Oy+F<~8u k}#ǯR]bEщ2a}l)Z,'M44iI32mH1q YU"v츞j<4"+mettj(l*Vٳz~Va(׿5֬>,5\5Y浿oi$I{ 4M}sI9RAv+/]>ӊ;マ:Z$}pqLZ<|)h[>}g^>SFhc^{SS>TUF^5mayNg]m"FFŝ⋸^ ؼu\L*ۿ>{`˖+y^"P,j-2Y[e]*9$ ՛'pB2=5śr3Pݨx1>/2rB, @ &K˜8~| __~8+V /@g8|Q֚$yfLlqJ;s4] 9EQh0c;ϝ(bI 3g7 q_}]. 7IxQN(ʛ~׾Y~ƿYy8ƕ+J'(I|Tk_|FHgʠ*#N#%h@)C-2Q ,nhRXaη[,{?ꁉȭ( wjEº2)`ꕬ__|&y&)#+FEأkUyK|G~p(%ܼGBjZm,5: ֔ B +-7{+}I  os`@H23z2 )g}9a (XT^ssÎm+G @鼠x'wNlOwt6gZ|㱹h)?gsKT2S2S:| o{ؼQjIӲT,v\z!lԲ8I9K8%|NjoXgAw'oώV˹Sw,]sY؏yЋ+suNa}x:Z]U-tU@!$Ebĩӗ?Sӧ%G{v(pZ,x|jIENDB`x2goclient-4.0.5.1/res/img/icons/64x64/X.png0000644000000000000000000000577212675050177015040 0ustar PNG  IHDR@@iqsBIT|d pHYs77DtEXtSoftwarewww.inkscape.org< wIDATxyTwaa x HLCPŅC@ԸE2I % )h*  \\@$AE6a7A*:5.O=gdf;uctctH{$ F sm/ޤ!+@WYsIfz'^ :͎e Q ?fG_"G /6to_.P1(3 _#v4}?(XFJ*?hyGN@R8 ?W:܊5Z Jx6 0hy0d</_eA6W;^BZ$~{5aLszIrj>s|G3u;?~.&<`)lz@ >rJC;}pZ~st2p5oWdۻҦO{C!>kիZ? FaOxA܁_ٝ;.=1gA4@<3{<}f զp8Rc~g琵zR8H ߫5}anT&X3[<flRcbi=mW>&k=6&FtCmIZZ{)fv=#Ӟ0h75VLIw%>귈D5ܲR"tוCj\>4 L @!LNN( ac0it:@]$ QݥsxxH,Ce޽(Ȳ۷9s N):;;+Y\|>ϧOX\\$366@<'NORb1ܹS"#͆p8pݴN.c``Md2_\\իx_HE|>O>'<͒fKX-//322 R[[{2 QQ$ Il(B]]vI&^d6k!2"2555f$IRT4_|adduRTD,+nZZD"AGGa 0#HUKXXXF RUUkFV}kdL&988`gg0xexxFRD$IBQ4M+(6._iyan޼$ID"*A{)ɠzAeŪz<{ Guu5>B@rw111Qr# &?ԊrR)%7677qqudY.w9;F?G8^/CCC,//s…J1rEB߿?Q1ՠ?ɓ'lll۷oihhG{0ݏ 3 b,4,Emgggt8S~?b&xOzFIENDB`x2goclient-4.0.5.1/res/img/icons/hildon/x2goclient_40.png0000644000000000000000000000350412675050177017663 0ustar PNG  IHDR((msBIT|d pHYsSStEXtSoftwarewww.inkscape.org<IDATX͗kHT{xa&H3ZM&U˨PР'"E$c}:]FD"Tfp؛3μzϟ^Yk ǎӛ[VɴFGGŵ8ddd_%%%$I)+Vv~'q PRR.Ә?~'q l#FvH 9~Z$ bvv6&~nnqյIII"Jf199bNӱejjjc>~‚_nGY) ϳEEE׃?~ׯ_OCCܹs,K:E(zz2¾bˇذaڵ>k׮ h4ٳg >y<{xDʣ'O200۷ߏ^Vu>,A5S&^OJJ <}.jkkU;22›7o8}4k֨׈n jd8xNK.Eީ@ypJ'" hth4Z-z>Wn$XVEp6j"AX_-i4e\\.rrrB vKN(r^/Ǐ?Meݑ nb@hDv;155@ssst$Y~ĸ\Mp'NǕ+Wׯ444066ƽ{uCCCdffuM>C+~(455b!;;ݮ͜;w.:ڭDRt:nݺEww7###\|8@kk+===LOOT3f!&&Nn'''m۶)V+~|>mmm8q"zѴ[CȫWڵkAOoo/=z_C0a~QV*EٳgGGp5rV[(rU̙3n޼M61<< @kk+eeesO *nܸ_&???2([+$IK\.uuu!`0;ObC[6$!"]]]ܿ_N/w^oO>Jvs)˩ wlƍk0TקRZZJii|||rVVZhh4F>999ly 47IM$ƾi Cw)I#Iҟϟ??]Er~$%%=$ci(IENDB`x2goclient-4.0.5.1/res/img/icons/hildon/x2goclient_64.png0000644000000000000000000000541212675050177017671 0ustar PNG  IHDR@@iqsBIT|d pHYsu85tEXtSoftwarewww.inkscape.org< IDATxL[e?m/P@ZVl2Yo'&:huL7?bw$ c:NX4.A4l ]˯Ѵi{mo M@}~<Ϲ99Wz1C=o˵{xxxT hYYY#Z͛V[e2>dzAU\\̢E=n&F644T:xQyC'y^CG=55U<^zА8<;ҫnh"nJhF !033LOO+n:qfffxb\nذF#ҥKLOO+ghZyT*٢VE ^W$>ccc'jinn&55U'|@~222xw͕  ;lhiip`ZimmeffF~YY,]Tv>nݺEgg'~iȳtؾ};iii~zك^1`Lhll`0N<999fΜ9۷zJHPwʖ~ܹAV^hgr ѸAa4())8yI$%%@V~|M{ ?Coo/ǫMTpQTHm333yyǨٳ"._Lyyb미\.v<RςOZ-ROΟ ݻ%_rgΜQ~~wy䑨}otuuw^! CYx1fY$ʡCNرcqFET A[_J;˗SXX(b /+<,𣦦wy'x8}tĉ?~+Vf͚ vVT*JKK믿Bxoعs'ɢ \t+WP__AB"~+2Jh1t:%'p g\2f$Bee%_~Ȼl멬cǎ1>>.b\rĊa)tpu=ZJI=±`U*Z[[{nӲ‰s7++VdggO?˗YjլWDHA4_}6: \~]7f2LXP4ZO255ɓ'%zXVE_9娔JDz\'\Erss)--|;wV{9FGG{A~\.+lҥKBLMMѡ8  #GphC_011s[[/ eK~ZRRR௿$''KV߶m"###e%X@[[NAx饗tɄfԷX,lٲ%qDP_GII :u Ȃ%/Q]Foooq9=G:jrrrVfcttdv%FR,8Xx;vL,,,O? yyyǛw_@* oj ?s" W^yEDmp 51177mǷ~+?Â2, 㤥GR0|!tEGGG~$^ ߿_SS}m۶q ъQSS0RdErcã:N$'%%ŋSPPVbb ٷ|8"F\pAQ jP[[+&j,0jmm,j%HgϞzO|%eeeӫWGQQQqG"?J֮] Vf}4VF"!*ڼys\}\4w}֭[e)hNNN 3 d~hXnGƍIOOW&TnPईUV~qv;G  ?\6l6*rpߺu'O3v:t:v%2T&?&Ky9oGG}D{{CRRر!)))ݻ7*Jw߆ b~GC~ϫ $''Yt63-ݎ ^ht$yGOOFѩ<ԄH4OASS4f :.!{NWWG!55u*%%%###5n;Ѽ@^^޸`twwjaT;IENDB`x2goclient-4.0.5.1/res/img/icons/hildon/x2goclient_hildon.svg0000644000000000000000000002052112675050177020726 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/icons/x2goclient.xpm0000644000000000000000000001401512675050177016122 0ustar /* XPM */ static char *x_goclient[] = { /* columns rows colors chars-per-pixel */ "32 32 242 2", " c #353B54", ". c #3B3E52", "X c #343D5A", "o c #383F5A", "O c #3D454F", "+ c #3E4155", "@ c #3A425E", "# c #374263", "$ c #3E4562", "% c #33426E", "& c #3C466C", "* c #3E496E", "= c #2F4575", "- c #2F487C", "; c #314373", ": c #3C4A73", "> c #33467A", ", c #374B7C", "< c #3F547F", "1 c #42434F", "2 c #4D4D4D", "3 c #444553", "4 c #464851", "5 c #434559", "6 c #47495B", "7 c #404561", "8 c #444A65", "9 c #494D63", "0 c #434C6B", "q c #494F6D", "w c #4C5165", "e c #47516E", "r c #4B546D", "t c #545564", "y c #555C65", "u c #54556A", "i c #555A6E", "p c #5D5E6A", "a c #444F76", "s c #484F70", "d c #4C5471", "f c #4D5872", "g c #46537B", "h c #525672", "j c #545B72", "k c #5B5F73", "l c #555E7B", "z c #595E7B", "x c #5E656D", "c c #5D6074", "v c #57627F", "b c #5D637A", "n c #636474", "m c #656B73", "M c #6A6F76", "N c #62667C", "B c #66697C", "V c #6A6C7C", "C c #6D727A", "Z c #777777", "A c #72757E", "S c #73787F", "D c #797979", "F c #334E85", "G c #3C5183", "H c #37548C", "J c #3C5489", "K c #3D5A93", "L c #345A9D", "P c #415587", "I c #455887", "U c #4E5D85", "Y c #455B8A", "T c #4A5E8B", "R c #475F95", "E c #485E91", "W c #4F628E", "Q c #516186", "! c #5A6482", "~ c #53648C", "^ c #596789", "/ c #5B6A8C", "( c #476196", ") c #496093", "_ c #466199", "` c #4B659C", "' c #4F689E", "] c #526491", "[ c #546993", "{ c #596992", "} c #536C9E", "| c #5E6F99", " . c #5F7194", ".. c #646A83", "X. c #696D82", "o. c #626B8A", "O. c #6F7287", "+. c #6B718C", "@. c #6D788F", "#. c #747583", "$. c #767A83", "%. c #797D85", "&. c #75778C", "*. c #747A8D", "=. c #7C7E8E", "-. c #616D92", ";. c #667394", ":. c #6A7696", ">. c #6D7891", ",. c #6A7A9C", "<. c #717792", "1. c #7A7F96", "2. c #787F9A", "3. c #4F6DA4", "4. c #546DA1", "5. c #5770A0", "6. c #5C74A3", "7. c #5774A9", "8. c #5C7AAE", "9. c #4372BF", "0. c #647BA7", "q. c #6E7DA2", "w. c #627EAF", "e. c #4976C0", "r. c #487CCD", "t. c #7E828A", "y. c #7E8293", "u. c #7C829A", "i. c #7284A3", "p. c #7C86A1", "a. c #7184AB", "s. c #7887AA", "d. c #7A8DAC", "f. c #6683B3", "g. c #6C89BB", "h. c #728AB7", "j. c #7E8FB1", "k. c #4580D8", "l. c #4C85DB", "z. c #7492C2", "x. c #7F9BC7", "c. c #7393C9", "v. c #6693D7", "b. c #759EDD", "n. c #78A0DE", "m. c #518BE2", "M. c #69A1F2", "N. c #78ABF6", "B. c #83848D", "V. c #84898F", "C. c #838591", "Z. c #858990", "A. c #898D93", "S. c #86899D", "D. c #8D8D9B", "F. c #8F909C", "G. c #93939E", "H. c #868FA2", "J. c #8C92A2", "K. c #9296A5", "L. c #9C9CA2", "P. c #9D9DAB", "I. c #8193B4", "U. c #8A95B2", "Y. c #8194B9", "T. c #939CB0", "R. c #9EA0A4", "E. c #9FA0AC", "W. c #8EA1BF", "Q. c #A4A4A5", "!. c #A2A4AD", "~. c #ACACAC", "^. c #A9ACB0", "/. c #A3AABF", "(. c #ADB0B5", "). c #B3B3B4", "_. c #B1B3B9", "`. c #BBBBBD", "'. c #879DC5", "]. c #859FCB", "[. c #8EA2C7", "{. c #94A5C2", "}. c #95A9CB", "|. c #87A5D2", " X c #88A6D3", ".X c #8FABD9", "XX c #94ADD3", "oX c #93AFDE", "OX c #ABB7CE", "+X c #ACB8CF", "@X c #B1B8C4", "#X c #BBBEC4", "$X c #B7BECA", "%X c #A4B6D2", "&X c #A7B9D4", "*X c #8BAEE3", "=X c #9BB7E0", "-X c #9BB8E1", ";X c #85B7FF", ":X c #8FBDFF", ">X c #91BEFE", ",X c #BBC1CD", "XE.J.qXfXlXnXNXBXA.", "x BXcXpX5X2XXXx.g.8.7.3.` ( E T Q ~ m.Q.).).;.#X|.0XdXgXbXMXBXA.", "x NX,XT.p.>./ / { ~ ] ~ ) ] { { | +.e.:.`.`.`.S.1X9XwXgXzXnXNXA.", "x NX@XJ.>.! f w e r r f c N V #.C.D.&.r._.`.eXc.1X8XqXgXlXmXNXA.", "y NXuX+X{.Y.a.f.6.} ' ` ` R ( ) ] { { e.y.`.eX,.1X8XqXfXzXmXNX%.", "O NXuX&X{.j.i.f.6.4.` ` R R E E W ^ / 3.I Z Z k 1X8XqXfXzXnXNXO ", "O NX,XH.>.v r * $ # X X . + 1 + r.+ 4 2 2 0.8XwXfXzXnXNXO ", "O NX,XE.p.;.^ Q T I P G F > > = ; % L H 4 : 2 2 7 8XdXfXzXmXBXO ", "O NXnXaX5X2XXXx.g.8.4._ K H F - = = l.+ & N.3 2 2 '.dXgXbXmXBXO ", "O BX`.J.*.b r $ $ @ o @ o o + . + , J 4 v.;Xg 2 2 q fXkXbXNXBX1 ", "O BX,XF.*.b j f e 0 * & & & & & # M.3 : ;X>X*X4 2 4 4XzXnXNXBXO ", "O BXBXMXnXgXsX3X-X|.z.f.} T P : 3.I 4 b.>X1X7Xs 2 2 l bXMXBXBXO ", "O BXrXR.y.X.k w 0 8 8 $ $ $ 7 @ b.5 a x]/tEGZ5NU3Ѳ̰Z8i2=*57Tȍ(25!oƉUBq*O_(6ұ4u ܟG,Gh'1`

4~R,hUJp8z*6j5S| 6g룁u\Iqtsq/o H\{6q{~ȡ0%&,2hCN ~;a8{m?Lrbtl ֎C3sxRHn ]$Ќywq4*]BY&9cWߒ"C@4nf{ثj /YժJleCzz(MHnO}̞e+`ͶpH\z{ʴ Im!| LB1y=jsMB{Ei> smdarBcf|r{=@a98"բyOBΔnFoG7]AlIϼ4d[ \ _NsЮѡ"`bq٥ŖއabMC}9֟]{u~*0ԷXŲ'^AhLK\v6Vpx4jϾ՟}}pg?7Ƥ~ؘjG|Fa,TBI{1&d%Py4S^eāɊZ1{ <IK檾&6G^pYkbR#* hIJ h_R"קߤO؊FC%D2ƹx+2 ) /sx}auw'P8TbG2wȣU)XD2M۾FPmmH`9m3.^.5' {ʌf&}CO]ryaU$9^mNt -Y-=om2τr6  ;q22]YH=eա_mu$D"3O6v@bӥ6_@ (eqQ+'cXjL7Qy4®RG3 bğnN#b)aδ%&M' m,NR )x/Ė3I o]q1$6&MmKq67B67 ⽎PO"Dm"im;>Vs# ܗlENL OPywK2sqn`cG`*PALƈ>CQrhϋ,ߝϾ՟}}pg?hh kr}*r5Z!jqC/Zc;um+14㈩KGI+ t>tekϭ hQsPtkI3vkKPӾX}9=4CIgՃm.*2sGiFǃsb6bLQ3OlJT;2M۾FPmmH`9匽`h`;`L0?wc2Zi ,|ylY:2EjtQX:ʵIyns~"֘VG? ܔUm ^1bsy 0Fk<.Է  !]cr@kU&\9pF<a_i|߲JA@ NlնӇ.ǡ|IC v%Gݟb9e g=<"Ȳ'AeI˶uzܯt'V;x!12hqVb.1I˵9Eye,N-5G9¹iB %NwCxor~w5E%OD[J(zFSacgup]p.h/ўb=8gƕ  gpvI*}Y8%zDzFj>>|<ç-,[}T\ X|*A@jKT(tvW}Rs;2V \SUA4*ƅe] 5"D%onh+AE] ~Qw-}dfڿn]^^n8]jNד$y2 r3n8OJ-E 6iړ~P PT,J~QRͺm8NKP*@oH(TsNJXs)Ń>͝hZ{ 6& B=cJ6!mO18ܩsi5z;Q#S|/K|PC4J1d.f˝[¤JI:7gTVɛ/KO6jp&l|p`&4q(ͦ[^nyi[fL& e4`%Rݎvـք4`%2<قR[\8DOpSBFClR߇Fq4 J&_ffVd/힧  "|(+`<4GodXCF⢫P[lF[€ێBߣ5:I>M]!<g7pO[# ?n=6<Bذbq(PV$8aSm犲&ȣPT u9OpGƌC?ą3#Y+Tg,NeG,P(Jȇ;ϧEjNg>۠2YԎ5v0uco:Ŋō/ ݖ‰M#fMɼ]gGNLLߛʧlu<]Eπn&& M=zJIKbSsc4[M>ݍ .>+.̨'RR?NRo_2?$+rLYaAZ|P;=m#f]Tg<3I^Lz,>/ ΌNoUiq*bˬp J<п{tB l[k4Oű,,U%(Y9{!7O.jgt]%vU EgȹZ s[1Ck&2P="T^Mg4u1M,K8kRGBe?X3y@:O~ f/&,.&J0%SWR-7!ܠ^/#}bγg{*ϻ/ 3% B{:N%?kIZwIY$٫m쯃6u`N]ce Of A3 a_If: ea6b'p(Z۠nťsf2M~ˡ&@V@YG ~Jmڈw6Y+d)*z3d(G=6Ϳ52ĚHQ-3+[,M + a7'Ҡ50R(dd&'ik6 O/o@>OH,hϿ?@&G9s5GU+2[vƬSp_HeDt9zN>H!&YZ<+jDlpP@XTl 'sۿ:~HAXU[?>MrLq>ƬP]][>o`Ąi[O ]- T[`.~"Đ7ŐB9a!EA:k?۩4ҡʹtKeW}`ɥGڦK툺TX02'E<2253=O;|l5v:J&U'˺ݺ).yQ2 Jj`dwW߰>Q7A8L6vHkwj9w,qIigϼm;l#H.H" s힔A5OfwwSZrHedDAGz>oEB.6^#-VS.y5|18Mӛ6RF}9}:#̕qܿr+]< dfAYХLжB5SX=Br֫rA%ã_ ĵ)\bڔ8n]MrWd/4r*5kk) ίVj^0V[>9.PaߡM8ٝ@?+mY-͗/`O%?o GZҵؓƸ&M}CmifR2gÖw̤z.p [C-}T"qVoK t0 ‡&F%s"Z73!"]WE_as9IjI%C-Xs{4 |?$#LuЕkIH`!u ߀s5'ޯ 4\35M ]ST=d~ ]"fL$*DۼH4pKSTq-@ 4T 6׿/8^Hf5%{HWPY"_ZZ4F5Lܲ}w^z(-VĉVpAbO˶X^-oaCUo0`9M*M:î;g:MdǚOf7iDZ!ŏfNQuΎ!p`D x&@_t 1_0&ܻp#Ԭ-vSLQg(0 xjsQǑ%rVA: 3pM"4V m SD'Xo.[ް$Vɲ3j H.]h&۶83zC'Yh=q85W|.Q7焯Q1Vާo8g|!rCcuO5S]XePzW|z.eګEG?-幐04^Y+.e+_4#Є׃TK+EU4bc|u]L5;@/1|gy-:J7YFՌ,'Xr⥇E&ߟNw}5#_ k}NZ`sÞCO 5ǩ6".뷏~c!.Iob3|*8Bj DH)ǖ\F!w8Ứ `{$nzJ`,[-_*SnBr1zTUΌ@VTHa?)2R6aϰa#@.᫣(!R_iu3op#vX4CiNKΈ XwV|_#>( 1]O6VR;a>=xUJplO`KzĬJ<鷋F80XbC ˣr? (#-ҕaՅjLC-c?)>Tὖ|5,ƇWLY־c^8:ZQkZA.(˩4\9el(,x8r:TY^qża0J xI;RL"ǧb.: [آ"x"v6D R=i^זy'G]*Hs ө$ ̭JцSU=^g+ʒQl 4ٽpH#)M\q4}ӖWDO5HMX֯^5Lzu vHt>JY9̳DeO6#{Nz'{+ږQ(c iHWk Dr K9:9$cCoqWH~''j,c`w/;#i`*G:2)5m6,DKruD @R7W αIgzgG>`pK:6zTMQ2GY#Uɛo|$(3TΨ,k U?(A)aohQm}km|֏L&+xuf,,Sٹ]2M}+Ӣp.o޹.{hXWp[(V_ W-g<[4ü*[[AImԒ+:h7.49i/5N|P z0$1cD~BC„ %HAE_2>Qz0E0HEhm?]hDvMAjm`)|Ď@qNg(^ǏχDb n /ÉT*R E0#lO"gD t|2l_(1s0N%?2F ‘# /z.m,!&Kf(=K ohM n{H%,Nzo@7naզb-;Gs3睆V3ŁP  <Z^0CX"M=***u#U$ qC<Nta|Ј>‘Hkn*{ jz/JKb7aCm7J|y57f⯺ Ad F#4ɫO;+%K8 ^wCazI񥳏hLr%(g( <h4a2R[UQ׈Il1BOvxnѐevi99hi(Sq_9sn4I[Fn:K*SreK2초֙vwF5j 6ۃ7Ծ"K{ GqP7Ф1`Y~L aH:x4@3$Jm$ Љ1R{5#ʃ= p9~+u4Xnpb&j ` <֍}8awu.1"]XS҃7!0[ ,tLBJ8B^EDO{ s8&_-O%=ʏy0JE#X>8yv6y=w 6I!C)\W|L(j2 {9![~y3>iT¸zJh@M?W%nXρlNɺn be|JW$PT9=@f>v(MRqĔz3=fN*56*H:X"p*`?C"mPILv| Y;gdun/N}V!x)/Pu\wط-:XvL1 S@_Lad aV赭^Yex,zhM_j1.K8)2v۝Q}JYgXD "fjbVc˕gW8  P[5AWj;!$8)[2]w(f)U2h,`$:;) :h.5ԗ)51d@ˡQn{2[x̘Q-a>=rnaaԬ#>  SBGy,% Le.[o_A!SQw4Pc% /Ce˦GBbԝ6՗ڋTo%1tme_73 ){2ItR]i>)KyoUUu䀋:ؠrҖϯ-R y^uTڒ/A2JH"<&q7}-E[瀦eH 9mD_I3@s 9kD]n]6Ibb!3aj+RJ;짍芭((3="UrTtVՅL3<_4x5W8끓r5: UqnoZvdL̦ωyi^] .I>xͦTHn;>6З$ ʙ55bW:v=j;nO D8ϑ{>_Epĥ#a77̢_ f9HV݆s>ɉA2Hs6߲1k $u@2 J7uS Z6 m_d1ɽoHͮBӐqS@U4ufy/h&|kQJp׋OzZXUH$ќ!ӔDv?(d}X˛!"%4>JaY m?Vq#Z{'9LB:3Z&{AgMK|Z{1\j^y`ӄ+3eKrHA-W ީ. H 845&[ l0tI"+emCX&B䵽Y\T:c|WV"4Px^P5dXeL 7BQ\ɭJgh$~{ƌ[jV'<H\/'.Fc I֬DFփė03h.h=>ޛdݮVx$1JzS0OK.y>ӳĈPB:9Pf`hS ; Ml㸮؛$@{XvѲ>SQ|xxv{`u{CηEwl^M4kХ^:צXfLO3'@5@^x9CN_C2MoVG[QGAe7z'aȱQCa`?c2 )Ŝ(?.t?R Zxq%̼hڦIXlRQBlHdd1|ڪ}_|.,` 꺖|LAO EsΔ: TMOf3zόPY!B<#xGn:mꁑԣ.V`㖹s@!&pGbusyZs:{6ҟڦEv:/_2=w0"(vDW`MIXcMۄd[7S)AAYӳX}ty)E[ߜwY񦥏Nv٫ϜVȄƈ A n=@J(}.p QԨhXd:i%3R H!%)lQ=X?yθuҒH2WNpVd =j[&˂M$M>3ڏ/'"q˽pt1kl>[V%xbЌ@~#1OJe ı&S0 zMVQB0?et^>-hp?9eU괅nSqT T@XK˪ +hG_5މgpq]oˤ:Dź I{yG!ŊN;մs}EpV/1B B%%>v>a7;aT b'خ0BYHw#F1 b^M{j*^XczMsn= G__C[sž>ύw'gX NF)J)HAtѮ02;T̿y=dmqHWOT8п+"BTG' IE{oUǏs{.r$3#-=\+5i`}GQ*+Fū*iKpf0ИU-^~΄ker}h+rv I>бϑyS|{}KGݽT_lT&Z]'wH336#'".}ݡGryҺ$:-@d5.z>P hYlDZ3c(lC#}Ԇ6L7ӮBՄ .`/"L/`[<d:1ט=ޚ -{y.& Ok3 d4:B o$5j#41)f1 ^=H˓ճi;?YԎ(r_yrai(ZȋT-[K^vi6({S??puO3pC\O| g*KuabEӿّ~ !*r?"ę>oM~u 6"αN,LAl =ug熿|70@1Lp YHmn&'+S˿&.1itl C<ȵH:IG]M \kvunD9?4`O!݂3EOB>~\*Bv-!w@UVQmr֮y]d iը!ܟ}uC*޽y_U;agL1tK̤X[ehQvro n켠@aR]8svf4dHզ{Zll{8H۹luJʆڥ0;\Zņ̢`jN Lhp5b'#X}^Q4m#8CWZādX~ ͐еDRzk?^"-s4 z*|d Є?:X=K ohM&d9eP.A / Ƃ:D6ox>ʈ&Psp0?H'wv#bX,JA)Oe y$^6|*7C HrU ~qH!-i}Ǒ(L.RhTﶓځ=G+2t\l L nABp( Dl’`l@A^_ b r/@hqfXNT #<"̘DO`@G4}2;Oj @N¡SmmA@Eg m'߬<hͷD2 hZݹ  E.lm"{%~[2J:t2 -5է?hoqMaFN[?uH 3yH$ܦ"kB)Sم~K9]P Ukq3q,qc˅|=4GiJD4$+vß3(cé*q;RYzdVS!2kpG3*`P7C_ MU B#:T+&jsy\=hYk-o b y*il5 AI>=ꚹm G&;J+'$`4yZZC#V,8񂻯E&%t{T T GuKo{^e)e,6@ȉtbddFYyMl;3J E x3aԉf^1Hc^={L:`<Ԩ3|JEV!U1ת񥛸%\Hg +DG֪Fa]Ye[䣆 V-]_l:pFo*M>Qc2arfsf~Q7T4xUA@.; YhBs-SBei5NLR)k;RLVb~ddܮ25A313o]nwSaZ|չc+b/ȬxvOlB k <}Z/l(ol?ݡ.0zLh9g&L/WEf&P&]fv|I阜/G$V 6ɪ1&C sx>mqP~pEߌbxmBLbܞ`V\䙒 mPhEZL֦vz^.ns"e!f.s$ꭻ7 ߟ"Hjz z1+37d8RdW*)^mӁP,kc8!"]O1{{ 4-D@7фE u ԎL21s)`d )ģ@M +%?IXcMp!Hvjs 4J2#<W?ԺL&g[z_l_3Xy.WΨ *F§a1Jc~Z8!#h"=8y Jw?z )#)%VM=ck#\bܝa@ChM=D f(#@4~PS㔳0,4S[9Wu#\wt'`C~NIFRjFYˎ7ٽBdSN}喦}[%*SpA$%^H[%b@pvOU"joCجr[n'y3•gUUjM]LK0"fg_##ِyϳFP|}&1w:jCё>OP|Q=J<дf7l^xøj6cs dž] oZ5_Luή'>T:C-2|&wVDx8G}p*xAZKùCI1qLqٗg0 њzZ#?y֗j+H(7y,V țB> uDfbX@1baǤve;|߁k-l%YQ~*+?]bPS B2|ِўU;#>|~jOIs.(>+vLzn1cR<ٴθHb~X=c5oq=筸? Ѵ&3R,1]7eK=ԙn?I Q <z֓騋rdr"X&⁗́"3n$綑 XBdSVmrXe3:Ap]wAWr(ULNwF&|oLN=F!20IMZ22a89a×pOw&Qs>֥avDz|xlǞSهM# %9/D=dsXĐb0.E`j~YL+ܞĴry-:INyv!>EsXA/8|&Z*yƜ3L4z *C . 3AKVkST0U/`AnZ-*doէ d˪U)!_l_xӞ1)KUVK㑪s*gEZ/N:e2YJ(NJX;LU!(30Q|U:H5D5/ix**j<.ꍑ4Q+I@Z` M-rqrIO<Ô8bZwslRvSb?|BA3CҖ c/2sltX;;|}V2( 5Q" Ig⳻p ͖u$f cuvJYQwO{T8ah 1ɿwsMaQ@Σl(MIrT-7hx$ )Ϋ4$uEp⯎vQ%M֧ܛ^4$λ#0.+ )#-)`+.?Cw>o ?OhHÆEJX hHϴU3!fyfsnπW9eU괅n ;Iomw;IeH5!'i@b7 @ d+_7wgIxWeZI 2X/NzR_ 4Vζj N25o$16/^DylaUvZ $_WqdB q &ZwK_nk .E]! UՕ;+y@ԛXKFd/AwQBƁef#r~mXm=V н]*3uUGʼ-p'>bX'ϸqߒ蓒'C oOc}D E1un M7DEIxI%p'ݲZץI~rԣtޖ>0"dNcp aRC+6$|P#+A.9(V=e=2Zh\Hծl \ח͜ B%ϠF(r8_zcs$;kQwp<$ DPsRZSWB!Й/]HpGsIZTDuvap9wZrzJAqQx>z\XY6MXFU?H}yXA$`y'fU}xHpn=W;h,X&ŵn Puȫ+!?d7'\ݪ6%o{EElCJŅ&:FVڶ0咱ig*i` kbћ(g IVϽqaCz3"|~]^a,bPq0t\{9FޞyV[^aOmZRyLA|Ӳ,=syhNBHM_]Q gILXS{hiM e}:KEm4NVQ3 .xlmW :jDq7Hkc>{3u|3BNs;K7+wXZoz}׆Gn yZ]wHV\ L 0Nֆ7SjCF^E+N|%t(v){+=̞bT2ٴ3&DlW{]} ,]Q7| oM@ ) f/E狺F^z ^V$e317'oN&5@rPsd{lq5.d}&rfNVrUIlab2%W H(U7*I©hxQ U<#*屖}4 җ㒜p:0& D lX6)j`ޯ xvې.ʿxMqZj"z ۈPa`G:oZ8bf^sT3j%إ&/2dBM1ΜFո*P"(c5*üڢ9ݩSհ;qBҕɗ T#qWb+$`\ Obo1B!'^Dq||k> Vv(*=< >e\FqߥZ>VAsL¬O_j}s֍]hf2 WlTHX6X TQ&ښIK劳E-jnep*HP`X6}Ή0'~q<Qpt?8WR}E6>:xI (QLI #+Y2 ,m巡(YwA.Z".Eu!"fKs˂(8]AǾ@DEEgeN!c8yrZUoVy!\2ͶBߎ0Hy8<1G@`_>Xk[k;K =-#fd'DK"UOEeUG{X % -:B\jbQĮXTg/.a'R $0 &.)œSeX <#7Ty>+;sDJQiPOғogGؔE@Vmhx 5'=-soX A[c2'VͰv a)G&5 dk+KK7.֏]>ɸqϮeZ}؉!XtJan>)Jvj"$}G/.=ϲA҉b*e0b\HbTi6#Qo"k00CہryyJICp($ֱz" ؁<Dnc&f9`f.!jhaatO֛,Vw('ٗDZq`0 ⑐RUU\qfc|{/pq~iU{Dq˃EY͆Pģ/J2vX#A q/U8⏬~UNߦ"N[e_7IE.v)=w)-H ;%Ͳ]߸I"ִ0 2\xoM9}_@%sB]ɽw&&ɇCǴVl xmvX:AL,\}fS OCΥ3pP,fJ}vq*ɐ5g>m&0W(1Kr0Y:'  +BoMNzp> Ip!.E5>oóZ7"+)3g%e5.a7X { Tf@,g#7$f;%"1ŠǥTYoL΋_-vt5ˍ3μ'p={DҺyR'-xm U'~=OUaONuW'# ЊBH,(뢲ǟ݀e JOdޭ%Pϖ.#CR(}yoEolS-,' )}huĀfH MhrGQd֔@ &-n3>%uwh{"D&fG174b~hAX޸*aӜ,Ğ.nm*psT列 9eٸDY hƦko1|qi֙Oٷ`r]pjRAI^LKa ςO9_jG:_w(*ĜbEZr> z̐Yatlb}TB+lmR $;o^ c;RJuC? pt>[Bvs T3+}#Ǥ})?{٧ 5[ixK3 $ÐwA\.TщQ&UoxBJV6/!HL&6jk}H~̨!f,h`V,րW>>7>OcшTz8RXG)ؕH2r].,׏\nIЙYUJm۪F-}(\9= <}okHXp! #}idljĄf'Q`e)o&5 k'8&'  -_kvܣib"~-|?"_ ֘AQOTL & \( pWGD+ 7YUOՉb9i&h)zCMk:TeLY§$xP&IW#'9ʗ 'g ^RAU]~ Ӈ}S(zIqc2^fcu{tH* jpi4>@Sc~`5%t=緐tYS)Р5=!i`%/=zTTpK~{rKO⁆@@HQhz` F1rt $сd|(CC"9][}7=Bb\;DU<׵5?k̊$.hNO6i#]6gg㢕 77jC$i%"SU5congؙNu=$y $ʬ|aG[ ZsC^:/|Qƺf^B"u&[3IiEUm[UX[G咀sr$ʇhm1C ެvQ3LIP57?o(U4\J{mnzU vq ]IOsI ^}?q/nFE*W{.>rm_|[ԌQWoj$:=OԾ$HX`jAݓ_8:ېd҃R_=C=hRQXj!CΥ&zF@(CxORN&YW pf7U2$E݋ ZxC?n*~=$ϰ+ea9 WJ.mpݳ[W^羾p8m5(і1EpJsPjø3@ChMjZiqܨ7f3 +gT2G͒" Oѫ|CTok8V>SVKbX˿Y ,Q(c4'hjo7YekH G?1oNHJ6ۄN*1F!Kr c%y]!]H dĬOƒ_X IЦHBR7x1q/ܦ׉P9/]xoЬ8UVpaTTZ1z؜ bDUEp4͝'/kOۧNTAH Noân\>݊g?̧afn`}{ɧv7٥ZyF2¬c~ԎÁgSmBٻakiSrmo{oS"\Q_ިw(}!QV%N {|3aO8=]^QVØBBtp",3R> Ӹ-wk}O~a#c-hђZмjR:oGzŬ&{L j9k̹4(+;->V4a,~2x=0 .-mG]Q6=ԥv}RV) $u< hr7Ʒ +DJ A.$B-fq{i}1rtB: G$gP,4i|9Vd /1zBP)Dv[hݴqE6`>1PoW!66<="pU\^Z=#0]jV3:ewL+qXޱ4^ѡWpkBrlwF3Eĸt=|3ێNi w*)!\ÇYjrE&;e~n'`k=)J 31܈*icҜRwB\f |^F9ά9j|9/](yS+VbVt^]E_";! `@I/t;\$s 14]):2@2K!M 2P qJ&r4T zDʊ%}_ħ\/iߍy8NJ'޾P Ǹ֠?'Y7e3P*WqBC*]f ak3n{A?7}o?oj[Oi׸e49j8ϩӭdDӕŹ2҆^#~4 '[24+wj4ւnn f@OeǟɟMg9`m4/T؜=HӤ|C$/̗MAl'(xjn ,x-IfOI.5.M/KxҁxaH=lp`O) s5AteI9pd1$Pט󐆄 ZEt=uxɋ+67:GD5kҜjcb)*d*,]X͡{8evϊ\sBu@!X^q| ;;62Dr0 ^v@k]Laf -=RpdAǨV)r~j؀呌DMu!(G;{C)m+).$z.@0=TY%UgNI^&Au쎔b9=F-ìe$=9F]A5@pNT 27瘘ҰL!"dId0Mv`!L~hm.lV$rz"U ш݃Ѳ"SMῥg}}8Oɠ]&!P)hvѪaG"/~w[ڀyd{+{ ʛ_Na rK"'Ncs4; A|pQ9ćwMFn^A֑M]ۏsm8Evp\ .)`[&/_x V (Tж MVv 'UgAb77D8 [:*fԨ"JcY+*$Ŷ {ST`ޱL;}"sɛ'?ro&cs|f76s0#N1c{񔬜&+gu1Y `(Q. v4+d헆!:[[eoADyĥ t=V0ч8ê>%"'C-%SW3$."yay9X˛qK50ZAO=F>RBU C&tӂxWF7޺CtWqI5OUdʹӤ+wHmy5?4V,wō/Zw݅C*//& X-f\˒:Brfjd#3{ƈvSxxK1Foz!A[A]녋&bbJh^W#~,/ J>mEJfح|IR.m$[ ɤ?:0s)X+6@`9AʀT|3=VjW7f *{`%$F2rzI%z]?_PO{f\e"J?s/JOE] A1Z:\TxGRag28j:H(%?xj`D܈vRB͢(xfaw8Bʌ8)q|AHh8-@;ZyV#<I"KvUKq) 1OLE0(%v:+v6h!@Li DA@9˧[f`_hщDO.,U)լlI/p i)úf⌢_)-m ;u犬`ёsFne` Qf^lv8b[0pPs&76>ec\Gdkd +:EOC;2l)_D\жH[gI2n(o<f,MeХ H&<[.=P CYn#!sP=uXl~?pRB9Acl aZ#\\RKPw὇c!E&2ed Uo% Z='?tXkׅ^gƻOD|p{ 7: 5lŻz ?"<@ )tb7xjY {M>wBv2O  dE_2CXTo$z)@NͮxD컮OuR<^>vaXyށC$R]S&&ÞxhB}aob\2?cʲKM{vkuuSxUKu!/Fs)_i$MK%GٲO#E#6ڡV)a뢳=2Mg~=R/$TQrsKZR3@|l`gTbB~Р4 tS"X;+Xa jied&13LH=,qi픙ںo|F*/Uif<OiC!u^0vMDV}BO;Q_y;Q"=I*"Gҙ2'GAtEsW1ੀ5)HVCRY&T.jLy=ꑭ<')I*8Г8SտgHe푎9K0i3po*5Љ1x TXE8s]T7EfA$8$NcQUͲ32t qPۛ! 7Dԭ,ԙhdƎ:57rkhƂk&ã|_}`01y ],a`)5w%~cWHzG6h҅ „,LAwz B uo'g_=!a2+p+Cfee^stH<<ՙ"cZx"E7 x7 xq@ p Kl|.ƹ燵O(YHZM mۆgŀ8P&{Pit.8q}~<-uVcFxC&q;`V& `|&@8. <[!lV^:C|.8bQ'USt[R'gFq鶟U2`NK\[>oXuK#>WʒGEE~ݼ%<=7egDl>._2PS ۓv# V(OkD4AWQAf@"h!grMX{7j 1MsfQ֖JDm{LtK[Ɣ8pFEfGvf&6=# $G[Z9Dg#G7es9DM2 1wʷr\J ׶ĨHڑ&3>=ֲBJ} NNՙ? ަ\\:k&"k"\S"Pl$){ ` ֠B^$SK?m(SDIyJI;AB P4)U/4 Bz[CωLR0JM KK.*{R97Rt$hG9bGB>Wx`hUjX%ƼG>uBw T7O_1/|5A ]xRb)h l2{"& |&K 2ZR"K1zIZgK&,M2/:y#@k! ,HL,5l𲹘3&1QkUj4Y{iesF&=0:w&'0ZH?w 8H֪h=(O Rln Y{Y~7@ Eư?*nLquܰyXdch8K鯙/Q^69Dzw$xOu&d|JZb300l1aZ鳫#k,u9_oVYB4"U;9}b4{6T'X5(h[nƵ =3I\1Rbh|e\q0:%_ zHN?0v /doĘ~ڎE  (c|A'Lk]mA9`N)cacࠅEP7 hMt'{Y].$iCEMcHG@h0M%EՈ/xL˴0y^oIc0J eh<'%CNyC `?>=)²_7'wPq6(9(=:fꏟ!]l(&-|ZU+9Ϲ%TsPj"b c!@f&`f8_Ɖl3'SQ햩 Wλ|whc˟ +x$zm"ڐZqȨ/h_[-'=E9[!(+"4̴I8;޲%,4gqt8 ݣcDZ)4SLDi"(o<A ꢫjgWiGhBO}g_81v)QCǟOlu=>-dCNv-̪cح"A]=ݰF5{S[rN[\5Ý౞U 'Gm4ohGHYőF *}⁜YHAk]cT)ɱgQu%n4GyW&z$ɛ~ᴂ$L0 ݷu\-TFzaM!M!3Z4NJqҥyepix=cqR% -t'%@+ rJiHhWabsyu!iKC㎠5V E80RHvVuYqti!AO}TC)X%5} ]=B{TAUUIh:nt%?]:nՎH"J{I"HfTXB-љ 5 $iZ%1-=kZb7(3=fH{^=ǩm Rd;r`T>|0$IaHB NyI vu!j)ѻ(l䟃R~3-@'jx $F%Ju0V?ZCC;%W5mYW ]Bny<Lv-\=ZM^,s,,q$}_Y_P.Ht&*14=h_*% vqSNX|vU%oЬ?RB6ζbG]_q5\G xa%#‡<lKpYepJ8ϚO 8ık9fb;ˤzŹn۴ey/sl~g`qk9Ca0](3ƗsG,(/R[XEhi10]ߌ˝AjF ̲ ~.J tKPQ};̘W& L}jVh~'%y/lӣΤJG CE D?14jy:ЕNZ()z*Z6=ŸFy^P.&ZH+ G #ڟFB6"dJ$hKUrp߳vO'}?4fyi۲k0=*36|/SyPu.'dS f$)Q )'&ݵ2&t~EM^̳?ÂP|_F3AIWt)TO!AVsO! B G٦ҼG !QWE( l8knlʦҝ$\Ұ4vyKO/;f\**ġ;[F$mqᓣ7hNa]GPԁDilѾfP=p0]IBLPG,IXA[poͥR_/,Gݲ01J9(?i n̆rSY$j@~X L!#go)VYR3y==8};QZ/wyv-n w:( gzMjNg05MJJ'! ܈J?:Ԃ!9C-/y0OW4cr=N[i)AAE@` "#whmv Zd91A}hVA?x(ɑ/RR5[s::k\e\ve'6X C,<*Ɉ&Lލ#ʳif@B~x)4Y^_xQ04izX!q/j7\eTfVkT!i ȥ+%W͞_|-MI3zͨ:wӫ]S}7*΋2!\N:Z˓\&g(3 nb%K!us CxVvU-2Lʍh .$H{*t_v XفY8mD۟is`[?ف]Ͳ=%cnB5nsc[x8^ '.X3I"SMVKސ=vW+݁},S goN+VPov;d%]x\H蝬 TjO nwZNqldZz;<p@̔8R_R]@Pl(w8-f7./w͓i{-%jW<}SN"~6øHWlh6[Bp}K_ i>T*m]oX(J(9=m<YՂ[4SY2*%<-A"̒ YTHW>;,:\AMGE~LNUd͡ T! LD$RUb+*x-hEI^ȃ]:7?9 L9@.CtMV5ٺQa"v$vo6S&WCMuPPFap.Y  g=mwҍ|`UR"{#9Cж _Y` 2D*-{{uml(lFA1}_UE.3 %H]5gCBPkcHtZ^ϘT;~\f ,n+psϫq,K3Y%RVW_ҙmZELՇٴy<Pvz`4!N'" .NcG׌sWV2U :FF<$i׍-ʲw[~MkLјO:nk /&,|eӺƿ]e!kX>dߐAA:tK\˭jmIcNN7ǖ?=$/V=>~.{D{;lKڏ܀4`٨ LJh+*.8{ bHfBߕ/i9*S,h}GZ&ǹNʞfъ>w~,7_Z>י {&Y[o4;*BŪ>0YuWJn1#^fE#&{m#LYeFp.q6}]yXv `ez4JJV LN \CuG$ 0v3Z㵹&֢'N@|K:͐H`;&,ІS*hG|85WPx܃,aTȐ3D6Fh1 Rg jN$srXkWe rgs~4oB)yCS?^) I:x'SmiDۯ VHU(xAkyPb`,EKy`DrqFQ> rIeF$ڳ:fIY{v'38*ID> / ,zxmm;۔,*I;W:fn&Cm EE-[u*C[~3TD<#Otg]LJ17ȷXVF2"EVqv*ژ~[hygR~Ɍ" H4Z-+3Ϟ{7X1XHM$*MƝ=B V|. Α/E,Xus͍SeMnv;sDO*֔F2 1!9λ+X`}س6 ^o)Au.aؗPoF\H|'Ch-Vg0:k!\f' l#Ww;t<艼[m2GLaTC/jdb`ąc898!tQKPak<@(Ir{3UÖ#L'E4ݱPzU놀U4z]P8 -?=~Tz* d+p^_#ϵ~%?yf0%V[bͻ#.+ilnL͎>TȔv0Mi\bD5PcJO6 ~Fm"Ƶxq>eG\x[/YRb춽WIfӄ =e5f'&UK -S2]N,k%WmsV|p2tS$ԾQ= @kd&,O[^<Ė $Ħw4 A^}t-vCQP[j&~r>}&/A~6*SNɛwn`m]١<=غ ׹6pjضJ Ul YӖȌKv}) ?r:b_˵ Õ.VEmk2OATA ؍j#RB`O̩G, 6ׇ*|OUd8•9qJZJqT,ћ;rS;]Oa9}9F@CNrUV`)[ܘ̮q#S=hM^֌HOC1P3[D"BQ4~ >j}Nݽ k{"'ܬH2H!<vZĘjԺS?SXWg@ @u0C<8`^0hpR|/ t?>C (ؽ'˸#) aJl+^WpS$ϲcXlByW߉뚑O -@f5JmːXRa n!TP|e{KØ$ɭ1Xt\.^w͓; jtq镯5RX?P@}'&Vg{v3{gu^XP:x@8 eSԠ!9HgȈ!#L죒 ˃٤'P3*lڠ|13izʀMr-C0El\*/ @Ըg\wӮ7^R׷t2ғ/lգ.B,<1=z3Hm; )<$ʱ;5Epm1fWS%/@R9p{ E#8Ԁ6ܘijx M[1Ŏ*+Ȗߗ}|Ý]Y2({Q<;[8j.m[[mš DIh`h *Xmfc=3 --fԺ6Så9QZn4|޸Z*Gcg&#SCîT>'7Fp2.e7M3=-I`j`2!E5X%|A1du !vsE@M%ut]ht41}Qc0t"o[KvILx)\;ft9@kMe] Ӎ-}3Ϊ9zJPfF-3ƌf᷏U 8x$i7Єc/n^~7ژ#.F1;t>ybLzXfVب)d`4c}p:#D&93:{0z6lAqi7Q{rW~#gq\{}SaC^BdphCC Os 0lsm+!{Z1 ]`BBQ=̪_C6F4t%t72ߔ8ڭnHoO<ꉸfZ y݂cS1bB@AFLUCB'7 mkbQmN,գfgoGVPk;Tf ?5gAYsvwz_LWf"f!"+Y`S=ƛz 8ؑﭲ~=ľ8[Sԭ`g" 5>w<úB74YJǏ,/@uBs&??-W}GeJ'2S>罍߱ {ہծ[YAY=hJz˷Y+WI\pHJy r~Z6}1̚WO,gdzD|3)e)$iְWGr !Q\MNm/B_>(HGh<̹aY4ZpI7i:2^F Cϥ9$zp~S^ S# K@kGz8q#':wQWƱm I OIN*>'H_(0|+((SgX6m+Q*&@dY.õ6̧kj\d@MޛajΈ˃P~<~t0ʙp}d/!]wڎw=b"}i`o@&cwi4ǹ{x<*0p[`#2odXNNIJF:+!g>W(], lOzYVYAObq~*D$}lf̖ՉKCjy^]} @t<'2gJ5>\6۱%D>/)>_@T8.3VS:nu!ԊCfgd dgNS>qdnb}D2xsY\VQr y™ْ}@2+pT\և F=>[Z{d4qzקqdQ/i r8`,"~М?^D ^LܧxH|S5l\Ҭ "};qnM`\B(07>ɓ*.?\| V_BohAz(b~=u#RL`%׫JQo]N*R-̋6NOdʎ1s`JFX<9}rDNz%H@ -~FIv@`]Fp܃TҘ*53@l$k׹*e9F9} G , D2S hJit]8+CB:v"ǐokn$>A[_㲆}%X:1ߏfmG-d>QYoÑZG/:Pm5k< rtsʫf  &"_crnwh4#^~S O7cXD䐱*zƎKӅ@%(lr ˇY#H80~ ħ٘uz;%`]5SC6 w)&$$Fd}UiIYB2gc3y[OFG\{`A1m]2ޟeu8v gY8&a`Unܵ{gQR7k?MB;Nab$T@靣!- &Bx t@cŝ&dnqsd]_,#*)EJblja_}ןD_D#QpR"srӵ 3: pBp9zT.(SbD!`\m Ei4'VdVV#dr,CCqemmoQ]MaWoȩ-LB} 6x?L)&I}4Z(&%q&OAzznh7$n%?jM(g$!383]Ej&;0zG)yN-Fn:iq ڧtfӘҧ+ǀ!v,lz5$WAf?znc#//+v8r{IMZ)4HRVB8$VGQP mv:Ca#i$;T:a>8/!xWjL:LIGXlxΈd/+6Dd>|!LMSysjFX -+*l*Ɏur|nӵB HoCܥYIQ|qS gH W<]@Kzٟ%bF=R}KSjҌz;:?1wDBPYV+fjx.}:dQvz\ I`oiE'm>M<`ټdE`F<߲Ljp˰592.|O^?Z 9o{HnN;aĒ%ŧظ YUyw*.0'JCZdݐBA+0%Li\*O'Q)Yf q'!'=H#H-nc姠c D',] H%(aF0xD+&G)whzC3 #oL)YK*,U,37cIM!OрĦ>qWl 3X˓fv6p7NO(-^om% K78N큃B"{Z"TA`TEPb$яN 7B9[TȏC.[3FtΘPJ-PAP*zINZ)ES7b/f>u(Cn EK#zwĴvGM U}=pNI[1=]ُS9=YߛX%TS Ȗjj~yS3F?Z@VU6~Ƕyty&PC4&c=5Y* x|ba5!%%G[5|:'uAM7&6 uNloHdě: ˧Kz tHkT!i ȣ]N՘s6sde`ľvkKվDz|o חy~yZ:8c6UZd Wc-N!O P0ǐ4ĭL!@L1m8a]3ȦjZlɲ1=ˆ@*%@dQ-Of qRckc}' -RWދr3,]{OZY0c!|+ECYX^t., Mh)^D+UzM4glb(mnʥwRu`^ dj;$*ޞjwfP$󣃀5RHaSK1c\B3e`\ȊM 9UmH͊ϰUkdXrHJ]c*̲T3Л!]ԧRbqm:lbǩ2 ̫}܀CQ.m |!Qntx*y0טVCt&D,:C &Bm _>KSYk@Rpg ]xの57v6G T[h  |M{y#Z'~0A!/WyFݢ^@^6^7P!ϧ+?Z#uu68Aq0͢SZ쬐uB $/ ^ |űYU\:5:HOf\{\ GmD>,`7Y.L|vG4w..Qu2(]y39ZaXUb chpF<^3-U$/QeJ(ͼ6Q[x6iFKh6oBӇo zl91'#dP9G]n3!8gQ*YB#[`,L9|=I palasa> i59b6kM hT(h.LaƐ@ƴ&% %G@0lWIKKFhA*e}M"RÖ XiZ|}H8 ;>\o& )>A[p|p {c_ ї-hIŸ;Zہdh\@ 2 :>KQ[hQy؂&ijS!F@Zފ:NaIֿT S('l2맦7_0P1-RCò }gbiόy=eQTܜRo|m+}`(5r'n'12(<HyZ#>SO: tPfZ7g~8P0+*}8SIbkn+lTPEi§gHI& 6~wyVnBTiS%#ᄬXZvm!bHX\;&%] E;c(bH'{x. n'jj"ִuWh<韖XKS1A90!!=diJ|Wy_t,ִ1"}..F歶n!ACO ^}uWCfoο#ZӮ&TaBUf$5Zh\ ~̝ }Tc6?2yjѳEV5Dk|PcK3xȭ跄PTʮT~ߏmmB0iFDV/+g:ƌ@(aG9C$kkJ3s`31~ś0rx>p-0NVQR"@6V* ha[ӏ#&f'3ɭPn3Aӓrĺ 4aJzh(B8-^k~elݹ6 v'IKA4Av;4+krĵN:PoU.b1Pޑ;=Oݳ_KS o jESw@:_ XdazGanxyLHYPhwMߍH;:m}LM61 IFW17*c&zFqzت e!d\=y';b1P-QYD;q _~2kIz{TTQȴF.fbu0͓Yi ~Z^STdpxO;u,t$hqU1B6 `Ynk3^  Tbaeק,[y/jp'/l?C{ FW DJ{t`A|0c1K' {lC?{s0޺o84`٨ LJh*kQ`SF/AG4dgֵXLp\:g](g:-jDՏXOS4WM'o4m]hɈ!'mTx̾出G6 BsnsNWFo8G?VmZ m7l ~@"1O ڽ]*4@׭g}Ɏt'Cn+Pg[w$ڣugZQ% 6;S]**@k˩2uP~l̮(蒙kzz E†n2Y旔+sGw5L''i~ruj*so&.c 0Ei,P]g *! yN fVNMp;<h*>*D~ b G$gD,@q,+ aS@'l*p}&Lnt 3wu @bD+`1ra§["V6܅V@|bӆtSk)?Ty #Հ&}$`4YVﰖ>Nv򁅠B&Pb>=/S`D>7(>RtWFTy#p9i,~wS웡{k+05FXPY~ǨGث˃*wwetg]oX}dR6.ؐQ]>F6FNFU)e$\àᬕMb H2Y|`,)d"CP5bH=G*d0aϢPmQ.ݭڹ1lسBcYrnAX`}س6 n lq#W/2N2zI:{3u-Ά(8Q9aZ.юCy?8 Ee0Ʋ8[ 1sl媉>_Dԝ'7dRL^Hߪy 0$0kæHLh` _tj*NaԢq^YTKr#A$``KߕJżZ%^Жiyj㨔*U~>. ma`s Sk6F "`{>g=}Kh:k#~X㭖wyWpOAl ]lCѐ1 2SO;; ?Q].g'_E?n'$E.-:9`m [;ǐE[{-nRT8 tڵ>8b8<%M|"K?F @j9З5m`k̬ AQ ve7lYZT&/ۙ*Ͱ ikaoXyu:_!&Ҥt2'ը,L),0|]P܀toKE{>w#+DOZ0ҟ8 C0LJd-Ir3 Al? GՎf?K K +.p$NrهI@?Udr@ؼD`]PVt)Ce"_V>v?$S>_$Q`P}ޱ"4?7_/ pLi4r4u.286=Z:J3* id`qRV:q߃RKI7)em!!#t[vHYᭆШtৈFŷˁ~)`[mh!D.#WEWcZuK2mo$u^m6UC$kܫ !349'{տbk4G5"*Ԉ9МH0AQo0g!ne('.ZC2%MqGU\Ϧݲi\-Jes2 We!j H]w4rЋ†5yHs9GVta^|wNx}Nijә&AEޕjwV#uh9GvC [꿢 pZ{!h:-n')Xs9Ƌ6}V.0T".0B{6}<\dRo&S40M`TuPq=zX!luX'#*9vxh " 8ajzüzUg͞ U:A^ϙ׏4lj6?yLCq} 8?v6XYS|)|[%HGQXwQzqm2cYWEoc :Ƌ>7te m?XmIѻCߗFhxMʢ(b"ȢA#TPF>~<L7M]B+F&+xXST%%pGy].qHbk)ͻpqǓC SM3keh%P/|ͤ93RMHW I s84%clLQqi2zv s9rǍn1WNI&<"b+f*n[* PUopoԙ7"UjUZв홿9XZ4|f wpyrUGbhW 8k>ɴJ\+Hšf,Z@My'MK"yܝg株cfjO;p,h^&TJ:en<.-h`/bDXV8ТiF[Oy:R5be%kΤdDI0dwq/\';Cîȱߺ,wEb ߡv|#EFPFxLF6 ;y hA{Z6&zȺyjàYϯͪY u/-]VѫT6+  ԶUmL_"smmHt*k[wA&,9Rʻ[U .HIawpKGK\ۏY( AND"a~)_/x^7c{ Lyi7Y^=Jb쥴1 lQfa\(4ߙҒdIfҧ?L7ob]V0ֽP`dc!{ ѷ?:*֨5l`7]Lx ͙VD_EJq[Dh$@p*/~s#^}ÊiܰűiPjzrٸ,$SkYpnL!e@jDfA/Iϲ<0.wu'%A+|s41Z$~q+JR:h=0BCk]&L5 U&:Z\. oxV=CΉɊ u^)XkvyD0燜MI:Xt"zNEoxy5jox^judw:߲4x5UѸa @%.a̮xü]đ>2XS*+qwb۲!=s4HoAd/ǽt<}4m>P0Ñj~KX,u&d|A`\ :0oGMP0"= DM+禯8/'`YfhrayF4OW_u=YGN KfpۍEK">1cg%=YԜӄ yˬ@[N  *39k-T^|ߤ v0]G!{ݷz!n݈u8S%B,;g9#BMu.)3hhAlM%esM8#9 ?jKc~uD;H>W >B~gƒcȊ>N5\s`9r;,Hi#@e z+9+ᑁg$ Ht(,%qTn麐+cSS\N_X5' Z aJ.ޮvB?sB4 HH؉Eq0'oƒb> 3+ J.Qur 2x;ԃhAMw;Bzi٫ߔdySY{];9B>t[ݓBmp(u-VHbdx,U ,΋DmQ0(qڥ5կJ&I1$0AB \I9nLL{Wz8"H| hv6lU˻3]Wx1 TtaQ"QvPEpx\S+;8om u3,J1C^%jM=\KɬWwi*;<5*Z+&P&0Tnˢ"'xXj]tӤ^!KeH|楑W>EGRon{Wh {>)} *:ޱ(,L[d$Rh(-PXzS$ƭ";+d/~*I̚<!_tg?d|HjrS?;>z%=콮h^ H/⁜y$_w$Zp̨gPb- 9̺4 uLJ-)i.8n,03KK' 7\M~1\9?vK bm̴13hiOj4,,tītz%CGJ Y[W?o-=J6\KBCq>{q~ 9xGUd5)lwzXGEDc$Շ8x)j`ǕWB3BpA^_Hf6 φjX|0cDg |fS&ry.9ʲ6{,nt_`Psl6ksf#T8XEL!sS;Qu(%1DԝR;OInד\[%GB{K \;o9Rb\xDՍ)Sxj ӆ= LuѝE yS?Ymi&JAX+Ij@ 5/OȪy&1Vu@1_Ua@`vѡ ?)j5ڔfQ`An_ULC=0 _b n[.>@ OW+Tޯ6=Τ2)w&VnTCN {z,ck<|x {F8m&[]6!t_*f|ބHd&qqyex\~{`S6bjTT]N!6溧~p*LaGYU9WQIXOv$MtŨb(u-J;6 3ARzf&z{v%wq<1[p H}Jl6Ux"H$f+y#bkfn-e>D\c QA  L7a1j-+jTp/ k#OٽdlAMEc./o8OK)Em0Qv׮ c*Ge*g>\`3:?j8 4kKrnebsFMkvUkT@>iͰ9>0\=yhܭxB-z&^ԟ>mCXN>WZ9YfKޙw?τC38YRkХCs3e43: / ;TJD֙664Lo{|1dJX5΍;,Ы1 @,AB&;ɫ-4,dc(LeO'`{}>v0vsbNnb𫑪ۖյ3Of U;ks&Ĝc"ChQK:ʌ_0u<7v~v?wP]\t*ZBbc~ x SVƀl.YAbfm-.x ˵)MxVz7 "tja>8"8}^$.LzNo-@VQ_`5R*|~v UThQeJ(1}ij#lNzc O 0!SEwm0a*#ꔇmŖΔIk& =mo@JB[5 ;ƿ RL@S]JsDjeiKb..#u0ozm#,d 8NoX6Q-&F|bcAIqY0 noigxy??.Xz۟KOmAXE C4Е$<$ı+ktPG0.r}&'ڟVCJPLV/7# A<څ~\Ѧl%,W\d&5u&cy;hn_1Χc=WaECicPBn[ZKzEq 72~uw&ഋ!OM͑X~GS0Th7,LpTq_2?tn&jk( 4m%=AaI"nTXG!3Cߢ}|l }v!Ndz!  %=%FJ+E.Rj#/:*1z ֯nm;!'֊ +8R/isn#p_f rx %\HFc}v"gLqTwBmٝ*37!!)dMlx$!lRv^~hժb^98PgBu\+aCt܆i0Ո"A=yL@ziN i?&qCC!˼n- N nqn(xwҳ^w@)xoJz`Koq XR[VLvS^p-ܬgɽL}w-̃[ n7Qa„ĕh]y:yZuE(浉$h[n:~I(t&'PgOAo8\Ԟ8O-0pĪAf-uvnT!jkڜ&W+DV*5jl &JwTϼ9oƃ,X=/f&+hU armVzVi6I0>||uphܸAH~#p׽UgGʁ9lj zʼ"ϴMf?F!l90bū .12棎W6?ڢs?wC|ˌRO-6)QKq5g{4B=\}]Vr㶠bNPV2I}coZpT3~{ "f? ^e m!<ɨޣ3@G d{"?~͸+{i'Gx8 |66)I+B1U7ޜz1,d<aoz@%ztq&B41c-ibXpj+U? NbG4rԕι%pڀ U-?LʎL!J$ ~d|7;)_fgLAyPSzڅ,w^Z7 O,#j uIɈoťªb gJ72DE7ֻGf0_%)p!DXgORK?"z 1gjM۫P 30kiq u@RDB}iHPrFB9GDv4NBBԍ<<[Fʽ#x-{7h#>>,*ukvB(j4JK?'*»7rrS{)IHX§HLLZw0&<5<0Bp p{E;[hɾSlTZR-]oBSú#U}tRL*mLdP0Ufi"yWzrʽQū-z%+ϥ퉬&2c\vkFľlEݺiNۅa l~IʰрwumtšܷŽM,2 ~z4s>$Ѳ݈_2ZThbd zHq qME^8xgŬ$D#HIZ\mc4ĊMwjSl7n_UHL314D=0 `Z+mϧ {)=[8v E{G'hl#}$[ξ"li;]*c;K'cXNǛoH'G:Z:׌;s#kXW d@Bz&'CKZ(2D)4REu;a|bxGGg!NrǓ\̌0 )2C~Wc>4G=2GRX?pFp4i:&K@oB-jit"}[{d5A~2R>0OX5e %'~g aJ_lǼrkV(>^,TՋ@]CkYcrd$`[o ]Wb>p-db^52["\ޤŀHØFqsBձP^;IP E45och%^? .@" J/;GwPՀ]j, G7 aQ"\ZfY<~g:#|ll"V}$ j.mE&qtHJ*%|U閘/5!7PW(Oh90s vv}Rg a: 6rVa AAk-♶ddDf@ꮗoKB)Ϛğu\ ^[MT6>2֮9Z 0_鴑2;kuy;MvkE %ABU8ZOIq(cA5ﱜH Y%w(d?yG^0 EE"D 4,Fi@ft$jN{b o~1&Y?:$: l]5em+?=HA[ g%Bjry ]iQ/rRRlᅳfp(w0wM֦jF́M*0UT%|vA;P<k<' KŪ! ('D'Wo -'ct Au ducW8jJrUds[a{Of7B_11z`Olo+e'VEYhkx,y5⤼ϮD82d^i( v[Dxdy0alcaSxZk&.OCtJW 1-ʉoh0Ҍg9}Yb3Lذр!Zߔ!,2lP0`aN}#=˒B'pc3S,3z"7k U^ɃHyt'fE@gNK4%p2ģAEo 77.+ϸUA-XޮsR+E"_ܼ]^H?y= h3Ә0ptrx _ Б6wNgeE)0 :Aqr+GJ;IOޝRUybՂ#L]8vfAt,``O ר/ ls?kܤX~1:{ bKIF=tvΠsX1n AlHbvixycz̙1uaIȽq=ڬH1P^R/򩥣X3&;s =2 ͗g _ 2LM +`ڳvޤ?JNXz>30=H#P Ǐ TS=s˔C2J_k"֊}Q^_ܸVMeX}o6jGA.-H? B< 8;j%UJ9B^rg^ 7۰dB3Hޘzǫ LOZ Ql}B{oK*Tm}#F)|xF.TLj -m[T:7W3#7H"͈WoI$0!1v\R\L?Dx DygyXVjijmZGph@M-A^_p&2i⛦ᚔJaw C^5E˨B^e*KJ^S3CY#[Cn4xG(/)ih3:wBFcDE B `J_F,.VV``Y>*#"-6 DM R$vиaXFh߈XmOA߭㉿di/\$X .a= dt=aQZQ|7|R1y-^{ *}~@RXq1|H(Xǜ}  Iz(\M_E`EEi'}r?k5q$KO1P4=֘3wEi}pit32sj  )," #-03>ADOSUVWWXYZ[\]^V*- )./9?@IPRTTUVWXYZ[[\]^_``a^XPMGHSgijkS  ",.2<>BMPQRSTUVWWXYZ[\]^ZRLIC;?JS\gpyÂwwc4 (-.7=>FMOPQRSTTUVWXYZ[[\[VNJF>9ALU^irz򞃄O7"+-0:=@KNOOPQQRSTUVWWXYZXRJGC:9CMU^iqy. '-.;==GMMNOOPPQRSTTUVWWUOGE@7;GPYdnv 盜M/OLPQQRSTUURKEC=6=JR\hqzWZ[K*:~س_dd, 鿱lp-˼m{YzކƐx"ڀـ؀ѐGօې}p҆{΅̾Àuʄ#止ztqj^UPNNOPP o9ɽú~{smhfb7>TMNOOPQQRRSTT Ţj rk^QM mRNM ^UQQRSSTUUV@;ίf ξsjXNM eM"G31LhǔWVWWXXYYZZ>}ҿ bـڀ ̀ˀĠeMNOOPME歀[\\]]^2Ѐ`$^NOOPPQQR$SST0h__``aa?[$cSSTTUUVWWKzcdeZ?V'ɿ}riB%zZWXXYYZZ[>ghi׈PźtmbUNM 1]}k{\]]^^_!EnkllmMqGºOyh``aabbccdUfֿooppoB&ddef&gghg 9ӟssttE<'miij&kkll.уwwxt 7'ý{uqjc_\Tmmn'oopp]]˸{{||E4õ~qie[RNM2Uqqrrs&ttuȐz 80}yvtqomkihfecba``_^^]]\\[Y;~uvvw&xxyQq´H--yzz{{|}| . ()¾~C M{")¿|srqldcc`Z3l+{B "}xwoe^`ZRKRXYZ[\D2)3 St&һzwusrqnjfc`^]\[\]^_`w*qT).¿}|zwutfkyzz(Xm, /~|zyxwwvvaf/3¾wpic]WTWWTF73]x%*^f4'¶xoomic\Z[ZUPMPQSTV]chjklm S&n%Nt; Эxsnlkffkkjijklmnop `| <d`C%Ľ}{xutrqpononoH%6Yg): { J/¾|yvspnljhfedcb2MiYP6|yvspmjd_ZVRNKGDAOf'"} U6¸xph``_]YTPMOONLIEFJKKIIKRX\_bdZ[,p^~pSYʺxl^QIIRY\_``ensvxyz{{|}~!In*){ ]'~}}~~}~ Y-T*Yl|wM`)þ|yuqnjgda^]\]^_^;KOP|&:zc0½~zwsokhda^[XUSPNMLKJIJRĀ@ {Ā~Hh.º|uoib\WQLFA<8424554321/036799:4; Jʗo!UCBFKMOPPQS[`ehjklmpu{ 34Z̀$$хCw4sE~w!~$¾|wspnllkj>klnprux|,Amٌ=/zvrmiea]YUQMIFC@=;9789<>B؀'#y2ü|wqlgc^YUQMHD@=962.+(%# =܀'9퍀=zE::<=@DHKNPRTUWWXZZ[\]_bfiloqsuvwyz|}~C'I%'r쐀 <%/}.ÿ~~|{{|}~ 05]#F|?ÿzvqmhc_ZVRMID@<73/159=DMU\F'59=#]L/;ؽ}yvqmjfb^ZVSOKHDA=:63/,(%"!$9\}#~~w'xX"  !@KM (pMIͼwg]UH>7.%!!"#$$%&''(()**++,,./0.?HM G;MI(þ{si_XQHC>83/,)'&'(*+,,-..//01ELMMI=þ~zuplgc^ZUQLGA<730,**('),,.01'/@EKM?OMI =̩}zwtqmjgd`]ZVSOLHEA>:73/,(%"!$'+04;AELMMI hM   9BHM4eMI rqcXI=5($!!""##$$%&''(()**++,-..?CKML )MI!m}od\QIB93.(#" #$$%%&'(()* +,,-,7AGM*{MI-h}xtpkgaYRKE@;730/-+ *++,, )@CKMH?MIe񻄐/}{xvsqnlhd`\WSPLHDA>;975454454:51/B    !"$'JOPM#Bgjm[MIDMIAl^J:+ RSOMGeimpmM!MI';tfWL=4( !" #$$%%&' 2"$!!""#%$ ehTEGIHotvy{~gMJJMIJ!¾wi]OE90% !!""#HliCDFH(Euwy|~M#MIKMMU\djqw~xncZQHA82-@@ y~XM;MIжycR>/(!!5|y>:<>&I|M 0MI C¾xjXK;0" p`79;< ~QM 0MIH-+7ALV_ir{zk`RH;2&(U=58:$KtM KOMIB"  1&-5,.0!O]M=MI!Ix,9FR^it¿|m[MMI[<­~k_MA1&&(-"٬*JMLMI Ȁǀ݈MK"UMI eˁʀNM > 5MIЁπ΀tfRMdMI&jԀӂԿ|o[NMMVMIFk؀ׂMI 8Wp܀ۂڀMI $>]w߃ހMI (B^xMI-G`|MI2NfMI  9WqMI   )Cb~MB  /KhzM9 "$&(++&"  5SmyMM""+.02468;=83,'  ;[kg>GMH "-3>@BDGIKMKA:/(IMM *2ADOSUVWWXYZ[\]^V*- )./9?@IPRTTUVWXYZ[[\]^_``a^XPMGHSgijkS  ",.2<>BMPQRSTUVWWXYZ[\]^ZRLIC;?JS\gpyÂwwc4 (-.7=>FMOPQRSTTUVWXYZ[[\[VNJF>9ALU^irz򞃄O6"+-0:=@KNOOPQQRSTUVWWXYZXRJGC:9CMV_jr{. '-.;==GMMNOOPPQRSTTUVWWUOGE@7;GPYdnv盜MOLPQQRSTUURKEC=6=JR\hqz WZ[K*:~ س_dd, 鿱lp-˼m{YzƐx"ѐGې}p{̾Àu߄ހ 𲦜ztqj^UPNNOPP o9˾¿zrmje:"CTMNOOPQQRRSTT Ţj Ķum_RM rSOM#_VQQRSSTUUV@;ίf ξsjXNM!iM"G33TtϘWVWWXXYYZZ>}ҿ bـڅܱkMNOOPMO[\\]]^2Ѐ`#ֹcNOOPPQQR$SST8i__``aa?[$hSSTTUUVWWKcdeZ?V'ĴyoG*"\WXXYYZZ[?ghi׈PźuncUNM 2 f|͙\]]^^_!FokllmMrGºNl``aabbccdV{ooppoB&Ƞddef&gghh FssttF<'Žqiij&kkll. wwxt 7'ǾvlgbX mmn'oopp]t{{||F4ɺvni^TNM2mrqrrs%ttu ޕ{ '0|zxvtrpomlkjihgfe dba#'Muvvw&xxyRƂH--yzz{{|}|;ٛ (-~~DŊ M"XǼxuuof>{VԠ "ƿwlee_ULSYZ[\EE)3 ÑS&һ|zwvutrmieb`^]\[\]^_` )rpΥ).½( Xz, /(aɩ/3|y{ytdRL%:ƾ^u4&·}~|wogeeb]UQSRTUV^eikklm T;%Pĭ; Эxupnnghllkijklmnop TdoC9½~}|W:52*/nbM@lMI =Ұ}|zxwusqponnoqtvy{~VMMI iN   xM5MI s˿}mcRD;+$!!""##$$%&''(()**++,-..=XM 7MI!mǶwh^VH?8-%" #$$%%&'(()* +,,--}zM+MI;htleZSME>92,*++,, _ZMHRMIe|xslw}M/M MI  WL%   !#%'S\MF9MAnMI _ucWK:0..-,+*) (('%$!uM"VMMI9Y²~oeWJB2)%$$#""! +`MGXM7MI8Tvm_UJ>6* $yM#m}M 6MI8N}~sh`UQxcMGQM-MI>C    "%(+.1469BGKOTX\`eimrv{mIKMIM 5MI1 ,ϻtcL>+   ^IHKL)hRM/MI" &͹j[F8%$!!""#&&pEGIHzMJTMIJ!ȶucVE9) !!""# pFDFH)gM$MIKMNW_gow{o_UF<5Zt@BEDlMEtMI@  .%,29@GMSZ_flrx~D?AC(gMMI ¥taI:"    y;>@@]M;MIŲm[D4( ""KC:<>'fƒM 4MI C̵~hYE7$ ~79;<SM 0MIH-+7BMXcmwĽzfYG:)0tC58:%f˂M KUMIB"  1#-6@IQZclt}2469ͻM &MIŦpZE*     &D135#frM FwMIBкkT>%y-/24ҭMMIİjWA-#TE,.0!gaM=MI!Ix,9GT`lxнkZE4!“)+-0 םM2MI#C#   +7BMXbmwH'),STM2MI%oU<  "mǜ$&(+ ݊MLNMI҅ ˮv^B* CJ#%'$Ȁ‡M*·MIϸkS=#Dt̖!$&€dMIPMIK]%5ETcqּ1 "$䝇M'ƆMIM1 5"0>LYgtN!#6ԇMI9MIÀɧnS6    O "6bM,MI&ƤiH-  !#"OyML MI&ֻeF-l8 "$woM;7MI<˲zb\`-!#%'+*+ M$>MI[;vhTF3'&(-&+JMLMI ߀ރ̼ꍐMK"UMI e߀NM > 5MIõtfRMdMI&jԿ|o[NMMVMIFkMI8WpMI $>]wMI )C`{MI.Id MI4QjMI !:YsMI   )Cb~MB  /KhzM9 "$&(++&"  5SmyMM""+.02468;=83,'  ;[kg>GMH "-3>@BDGIKMKA:/(IMM *2ADOSUVWWXYZ[\]^V*- )./9?@IPRTTUVWXYZ[[\]^_``a^XPMGHSgijkS  ",.2<>BMPQRSTUVWWXYZ[\]^ZRLIC;?JT\gqzÂwwc4 (-.7=>FMOPQRSTTUVWXYZ[[\[VNJF>9ALU^ir{󞃄O4"+-0:=@KNOOPQQRSTUVWWXYZXRJGC:9DNWalu~. '-.;==GMMNOOPPQRSTTUVWWUOGE@7;GPYeox蛜MOLPQQRSTUURKEC=6=JR\hqzWZ[K*:~ٳ_dd, 鿱lp-˼m{Y{Ɛx"ѐHې}p|ͿĀu{tqj^UPNNOPP oĽ{tqj=&KUMNOOPQQRRSTT Ţj ɻyqbSM!yUOM(aVQQRSSTUUV@;ίf ϾsjXNM!pMG45_ڞWVWWXXYYZZ>~ҿ bڀʹsMNOOPM][\\]]^2ЀaiNOOPPQQRSSTC j__``aa?[qSSTTUUVWWLcdeZ@VźwO1)^WXXYYZZ[?͒ghi؈PƻxqfVNM 2! u\]]^^_GokllmMtGús``aabbccdVoopCddefgghh XssttF=viijkkll/ wwxt 7zsl^# mmnoopp^{{||F4º~tobUNM3uqrrsttu){ 1¼}|zyxvuttsrrq pmk.4guvvwxxySI.yzz{{|}|N (~~E݋㊀N"!xM*Ђ|s "˿vnmeXNUZZYYZ[\Fa 5摒T!&ӻ}{zzywrmieb`^]\[[\]^_` s)񏏀!-陚Y, c/ƽzq◘R롢_4 ȿwttog]VXUUVV_gklm UYQ;ѭzvrppjjonljijklmnop qՠweC(k]<ǭJ ˨𰱲kPƾ𬭀$0͵U/žyuwuqkd][][UOJKU\acdd\Añr€񸹹qY˻|pbTJIRZ^_``fouxz{{|}~$嵶Vҽ]چŽ \\x~`ԣݾ {cЯ ĀBǀzh́Fſ}xrmlnnmie`[VUWXWTPLGB?(ʚ o!XEDGLNOPQQT\cgjlmnnpw~ 7̀&чwwƃvRӀz" ~*Blُt؀ & ;}zwtqnkheb_\YV\܀ q퍀=G;:<=@EJMPRTVXYYZ[[\\]`eimqtvxyz{|}}~G) 쐀þ :c 3H.ܽL/;Ԅ}~~y Qx]$   !"[M+ޗMIyq_QI;+!!!"#$$%&''(()**++,,./00 MHsMIijxgYPB2)&'(*+,,-..//0OM MI}l`YK<3-WMAMI =ۺeM)MI kP    M7MI tн|q^MD/ $!!""##$$%&''(()**++,-..ojM KMIo͹}s_QG3&" #$$%%&'(()* +,,-.ŊM,ڔMIj͹wdWM;.*++,,;pMInMI fȝλ؀ˁM2M" MI XN%   "&)-036:=ADHvMG9MCMI `лm_Q<1..-,+*))**+)('$ ӁM#zM$MIZ(ѼlZN8)%$$#""! K|MH.cM9MITҾ|kVI4" ?فM%M EMIOӿЀMI+TM.ՑMI>D   !',17MI(M# MI<Ѻ~pXI4  !" #$$%%&' NM(|MDMI7иrZL7&!""##$%%&"]MI&ȇM MI4sv~Ϸt]xNLMM*dM;MI ,9 $%-4;CKRZaipxIKMJ#M@MI -(¨|kRD-    LHKL+UM0ЎMI &|lRB)!!""#&)EGII MJbMI!!ԿoVG. !!""#KDFH+M$MINPZcmwsZL@@BEE}MFMI@  ! &/9CLV`is|J?AC)ʇMMI ƪzfM>$    ;>@AeM<MI ǫ|iN; !$$ lJ:<>(M:MI  ɭmS@&!)79;=VM1ˋMI-,8DP\ht˰rXF,;K58:'MK]MIB"  +7CP\ht2469M&MIƧs]H+     4N135%~MGMI)Ȫv]D(-/25 ˇMMI ˮ|eK2hQ,.0"fM>MI!x,:HVcq дmQ<"؀)+-0 M5MI#D#   %3@N\iwT'),kVM2ňMI%£pV=     $&(+ MLOMIӈ ӵ}eG- R؀V#%'%ڇM*ЇMIˬw]C&Nʁ!$&iMIPMI^%5EUeu¦ 6 "$”M'ƆMIM2 &6FWfv [!#BMI9MIĀʧoS6    _ "AϓdM,MI&ȦkJ.  !#(_Ð~ML MI!ƦlK0|? "$sM;8MIĦlgm3!#%'++. M$>MI[˰u]M6'&(/,͋+JMLMI MK"VMI fNM > 5MI ɹtfRMdMI&jտ|o[NMMVMIFkMI 8WqMI $>^xMI *EdMI0MiMI 6UoMI"<\wMI   )Cb~MB  /KhzM9 "$&(++&"  5SnzMM""+.02468;=83,'  ;[lh>GMH "-3>@BDGIKMKA:/(IMM *2BELT^kS# !',29>?@IUbmx} UB9HXep{?h_s\}?#ـk0KŴv:H#ͼl|wrnh^H۴bQQRSQZ~v)HCŽgMNNON&޹\]S_v$V@ϾkoWXZG2ig7v$[8dcdXκqOv^4ϿzrkY:{nopǙ{9v)d0Ž}fyz{O;Zv)j+~vqkgeG97v)n$ƽ|xtlZGKiyv)rǸ|xqnihee8A:v)yȽ|uqmjZL9Xyjv){vpnjhgeff&J 9v)Ȼ}wqmjhhJ>&m\v(װytrnjihfeghh]}y0\L 'U% nYE7)#PL_nNLLE%}zvqeZQIC=94SN@1pxaL w% ԸlUC2#&YHgx}MLL=+%k_cdgikgbZQJEABgG:6{_L%(ۼmVB0!!d<rMLL3K%(`FBIOUZ^bdb]UNIK}D0EMTZ`ZRJ[C'BELT^kS# !',29>?@IVbny} UB9HXep{?h_s\}?#k0K Ŵv:H#txtmbOcRQRSQZ~v)HCnMNNON'\]S_v$V@ǹvyWXZG:ig7v$[8¾ecdX$qPv^4ɽweInopݡ{:v)d0yz{OK̈Zv)j+ʽzuqQNϪ:v)n$ļGdějv)r̿zxsrCa>v)yȿ~9{y}v)ij{ywstq/q/>v)ow&Étv(ٴ~zyxututs}}Bv(¹_vКjv( ҩ}{{zywutuvvpGv(ûO~r ƒ}l\NA4--,+,(#lS {(}rg^UNIFD<}L <-%{jZK=2)# !"#$$%&' JpL %¾xlbYQKGCRHL 1I%(ygYJ;,!FsL$SLLK%˰~rf\RH?DU>M|L 'h%xcO?/BzL#PLLE%~tjaXPQW@MuL %׽v_L9'=H"NLL=1%kbhkqv{wme]W]Q:NjL%(©w_K6%0<  MLL4R%(`GDMU]eksyxtld]aN1P^LLK%ĦrYC-0ЖL)x%#X4,.8BKU_hpkbXoL'KSLLF%տnU<&JX$wރL %mH-"0BELT^kS# !',29>?@IVcpz} UB9HXep{?h_s\}?#k0L Ƶv:HȻ~|tgX eRQRSQ[vHDӲxMNNON) \]S`vV@ǼWXZGGjg8v[9Ђ fcdX,qPv^4Żt^nopσ{=vd0ʀǴzz{PcZvj+ž_l?vn$ѐHjv!r żS'ȣDv yŵͧ:yv ɼ=CպFväϾ'Ɗvۻ-~IvĔЛv ձ0Pv(rʚxi[M?889:;;<<==>=8AS(̿zockMLLλwhkm2|fDͿyb|}iO`I˵{upmQr5`M®yrlif4mYwSι{smhfHv3[Wֽrg`[ZMAh~[~zwvx,Y_yvtsv{~]Ha!ubQG@92+%&-zbD뷂|o^M?3*#"GMM"뚂ѴsaRF;3.--+KKM5b횂jWE7,"F=@ML.{|hTE7.-**'!8M.iMM*xxcZXTNA81++S>Px^MHGs}l]QF?97JJ1zMM%~Ǫr_K:+[2]^MAlj{]B0$%-zD/MM+co\I:3)fїlMM;fߡp_?n &C_|*E^y /EXnL #%)  !'*+9HXiy˽FR3}1"ڀǾ⵲.ĵlMNN<߾hZV:óz[]7P>ɻ}km3}hDļ}ieѱaIh:ȜgMʺ}xrMnzwS·d@fW|loh[ǽLg_ej䩇!rc\XTPLIHJCc_}naUKC<:5iX=NM+xlfhhfYOF>B|>zoMHQs}odZQJEoU=MM&~ȯnYE3#"z2eMAtjbH5)$,8O9˟MM,co^M?CLNCe$}XM7_f[dneXP>tML4eٷz]D6*tpMM;f쥐p_?n &C_|,Hb} /EXnL #%)  !'*+9IYiy̽F R3}1"ۃﺳ.ȼuMNN=iZV:ʿ[]?P>ɿkm4~mDƾ}iaҀIŹBrMørnxρSSwWĥ[ÿ{}_½p䩽!}zz{|}}yszc|qg\gMM0˾xk^TcKM5°lZJ:( .=fMLE}qeVNTX_^QhQPM+ʁyyx|qfYc>MHasukbZeNMM'ɶlU>),2oMAkkQ=0+7G^FMM.doaREMZ^S~$[M7`g]iwpd\GML4fܾgL<-uMM;f݈p_?n &C`|.Lg /EYnM #%)is32 (8HXip}Xh~̱֠{ׄЫgK{ނܹvhl{ˀȥvjRjzͩwkeqzieXQQ7.&   ""$%&'()+3(   !"#$%&(/DPZn|]PB4(   !"#$%&8IRbt~bRA2%  !:ISixsaN<,  Bqo[G4% D|fP<+ `ˇpXB0  3Ӑw^H4#֗~dL7&2ٜhO:( y۠kR<* ܢmT=* ܢnU>+ ܤnU>, ݤpV?, ݤpV?, ݤpV?, ݤpV?, ݤpV?, ݤpV?, ݤpV?, ݤpV?, ݥpV?, |ݥpV?, tݥpV?, jݥpV?, fݥpV?, eݥpV?, bݥpV?, _ݥpV?, [ݥpV?, VݥpV?, OݥpV?, HݥpV?, >ݥpV?, 6ݥpV?, 3ݥpV?, 1ݥpV?, /ݥpV@, ,ݥpV@, 'ݥpV@, "ݥpV@, ݥpV@, ݥpV@,  ݥpV@, ݥpV@, ݥpV@, ݥpV@, ݥpV@, ݥpV@, ݥpV@, ݥpW@, ݥpW@, ݥpW@, ݥpW@, ݥpW@, ݥpW@, ݥpW@, ݥpW@, ݥpW@, ݦpW@, ݦpW@, ݦpW@, ݦpW@, ݦpW@, ݦpW@, ݦpW@, ݦpW@- ݦpW@- ݦpW@- ݦqW@- ݦqW@- ~ݦqW@- uݦqW@- lݦqW@- fݦqW@- eݦqW@- cݦqW@- `ݦqW@- \ݦqW@- WݦqW@- PަqW@- IަrW@- @ަrW@- 7ަrW@- 3ަrW@- 2ަrW@- /ަrW@- ,ަrX@- (ަrX@- "ަrX@- ަrX@- ަrX@-  ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ަrX@- ާrX@- ާrX@- QާrX@- ާrX@- NާrX@- ަrX@- lݦqW@- ~ܤpV?, $@c~ۢnT>+  'F`zמkR<*   "#:RpȗfN:(   "$*H_zx`J6&  "$&9RoݘoXD1"  "$&+H^{wdP<,  !#$&(9SnxhVE4&  !#%&(-I^{|rfXI:+   !#%')+8Tnjd\RG:.#   "#%'),.H^zURNG@7-$   "$&(*,.8Tl^@@@=:5/(!   "$&(*+,---,)&! h8mk   '.2)$ %0N^m|Q)z>N-V# BZ% ;Z% 8Z% 4Z% -Z% &Z% $Z% [% [% [% [% [% [% [% [% [% [% [% [& [& [& [& \& \& \& \& \& \& \& \& \& \& \& \& \& U\& \& OZ%  -HcR!   :WruA  2JfmM* *>Ytn?6&l8mk #3CScrd3 $5FVfvWj7 G+L&L"LLLL LLMMMMMMMMMMNNNNNNM *MlG &C`|z1  7TpY4s8mk)9JZk|b &.. ...../////:-+Ig}x2goclient-4.0.5.1/res/img/icons/x2go-win-48.ico0000644000000000000000000035267612675050177015737 0ustar 00h N6 ( F 00T hl 00 %~  &  hV(0`pqqqhiphF fF0hFxdidq  q0iq6aip hd  d`ihhfip@ a'f hd hhqicci dhFqi@ ah1 hhdcg Phh8 dchEEhaa* )k0 h(Hh bIhi )(` i  (H h hhh   hYE{hYtihi ( @QhHch5hQigTX85FvixAFchaFTtFhx h& Fi&hhFaa)hhi)ib(ihi hdf (0df@ Y`YdhikddXEqah`8iq6Jfhdh)hk)i i ( hi( wwwww`pqqwxzppXuzpwuuhSpq1WpwUp'7ypyxpxrpWwpXpxxppxwPNG  IHDR\rf IDATxy}/骮eg4FHBB#@2:݉oq,~/ُxsI"a1fAB Գ^{UշnZg>̹ܺU]S~'p'p'p'p'p'p'p'p'p'kԫ'p%|[i ]5l=0 d2t|F?>EEsaN^ |ϵl@ö<5 0 Zz5!H \K(0@7^U<N5V WUh†at= ,@ד1L&ߓާ/}t/֮߈GzU ^|ϵ*,\)p pM_C!r"!-`*RiвuM{/2.Bs=(M`'7>-%a:͢Mv\31A"iZEZNNUU}sE^:ؿص {vƺupW.O0onUX)ᴥ0:03@u膁\~Q"#:D-XṚX,X,bt|g144EQt0::1$?{b޽(&-){;wb g;}`q|[YZmC7]OObHfEz@LՂcyHR*BQ /Yl~y`tl)016a? )Bab~ C!]HidT܏{qo8z(FFF1;;sai]@sSL3ЛDja0f ZWH2ci=:],1<Q#ɽYJ~`:Cp 3 |_ Z1bԢX{FIfJ*fose.!. ́ UJJ04TDqhW3O"n!`d3d /Q@N(0\C{<ޤH8IDb7n?➗m|Iܹ뺻 ~;`֋[bDqiY/',+s|WT/髪* E濂>X2< EQ0>>a !78bN濃E`hd)i_W(›tMJ飞ݹ ?V*Yئşٟs7-WaۿmyZj~$juOA $2vʴYUUCCC^J&bKB}=RdE/MGvm7m-AǓ)$Hd{Q0nN"IAR\hȝmעzj\0 ]_8l2lܸѓm&tl@ъ'-zEv=A5IQEʓ8bf[/ A$!hu6}RlذG>laL"l̸iBUҗw]cq\lҟ`ٲevy |CjYlK gE4ٙk^὿~\˰bJ_Iq<h >>[-@lKIB$MI q?JC ێwW N *R)s0|лW-rH9{。ιbΝ?HAܒ\ǞyS+>M[cIA:lw9{=[qYM!QߒwnG]#l~طv7Аo',4 , /Vv YdcQQ'apIl<8 Sqî#( <** 0'ԧZ#򕯴Lvq7|b1( c(6)iPc"I$hXǨ@?[Jx/^O`}Y/OCH*q14$u^&h8۲EoaC̀N"ך@@VDzM3¼@icBUOe|>)w ^UBd~aj=>5Ui a.yHq"J|-i PyTmJ!{>pC]RBGI}%,$9' z 4K/ ! qkh$a}54'Ƨo  įiFh. xIW<΅@!V5`bO,0B%T!-mvp!h+:'/`X5އ6nϺx"~=lJQgyI,2^xE KE: >Q40JV(*-am~<=as$!]ߋ6˔`kdiN)$_EɠPЋM֋d$0 p<}qv,Xسā7ni/(fb 7.GQS5'Xsw-O,q(5||Y$7"o=W*Mj]pmJ=!JDZR #xK?ÞgX̋$QQxKI ?[iQL7َCgIg8_ `Dtײ[[dNayϙ)&)WkP5Tfuo=.W*T*ՑhU,"y?>f|b9>я超4 4 d`0O=TZ΅q88<#J꓏9nKM"A{a@t_ x)0  s7Ai{~qJٗy<^vmiZ}4xEFWC3U8I5Y"eD Y֬0Mh ɩd!uTuT Feyn?LqR,N? QVcazv~GGWT4e; Z3B9 $|\ogqxm4EҠ5E1 //M^ GԳ3ӘFAkJR J/瞉~>#{=GZBDH"dRڷ'e(0|^Eun J+b劓pѕ%Xr(e !Yg`⺷&N|_UglKp:u=["bTZŮ]l //xۃy.xZ((@4("65hޛ'WT]A:lOLL`5U MHFfޱVmBL(I2 Hrw%"t^\e4m t:((M4<וt[旝thjމf>zsǍas<ϻgsu?aE'{ŸY$%`Ag;>oۥ=~KЛ!Mܽz|gW֭RqFk_M_"UT`a/XLQ~ "' BGF[.[.ߟj0pz.Ǣ3i/׽Baq`]\|Amڰ~-.2׏>_Tu}?22۷c$æ-&CmlBM$/ctO갗6n/+6%ayvI1Zl2\?%rΕwaA)QA+aFj{w9[Ooҿ`ZT CR@T?^|۸c k3/[ogm^ -l0ІE0/](Z@ٖGqRe5 |, ۟D]+G![(vo?vigy& d|Kގb! 邩!īm CZ??W]y}xߺeF7_at@㘼aN*aqҟ@`mW5y>>mfTd(0*glڄΏ|F .B `{}wιo4[a! `RϋyoDVH$wXK8 ߋO8CU\w!f z F Z BW(YD `/;5g]%H(FdS66@RJֱ\߾z|_җ#xM+qvBa^F&.$ `i$/nm7n@tjhZޫP)@S]Umb߾k\f1Usf.c{ylLcu\Z1@1~:{6+ztOmcqSHCrJ+镗ۤ<9F\=+?o/(Q4j QSbXTk8@^B>z I_μi)T@EY 95L[hiTPu[Ob q 5Ѕʛ#`y)ߞ-8n4`_#ׂ5L^}0fv #b I>Б<)H$ilVր'ͺ>G[{koK" gO>< HK ҒٖoCKY)/?ad@oq. ҏF<1Ѽ$\_R%Dž҈bjzKWǓ|4X;A¼ yQ/ H:OJDq;xa;f%Hu1Ӵ4ViU*m2 AUUHe~nFQ\;oC~~cݟIЊ;$.4x#$ݏfgQ6 T+gT*jVh)?V ,P'`بä @&իsWx졟b>i,m%ſXmK͛ q{E?,Eĭ#^WHĵd{jr2e\͑7%olGy H8"YTz4FN n#g#)Ih/'BƎJ7.8*__&5k@oa]+i6PX *O00.!@ӃteF(Xz5'cYpŃxKޙx:hL< @J p?] Pw$Ԟ !4 9g0Ba+V7u ܖt^vi3Un{үBO*=~2 ыu'6M Rm i7x?621IP:q(1e䴿m Y] #@)HGRA0 %#C*c vvt- FUU#,$*8pO)83&Q DiQ'vt2xs6Z6\ xZ@6 a ^bd06 ܍Ihٞ D!a~C}yH֛$;>Feׄ70alG!}G. h7@ҿ=Q+BJ/De3%Hlv?ӄgH^  âH J`ntqJ%/ӭewH 3q"-!(AێgR;bORKΜ37c߹Gӈ %@Dƛ0<٦cǎo}oa| n7B8 iNGYIAaE)|r&d :,v J8D&δ-U3H +4KEe[]w܊Zy*7!*aʕ/ rbΝ(~:slt`ExEM4^)?[wūGK>Q~MH(p/7IOύ:;1+/Z` <F>sII<~+V=G :p %|D<Y?2(?|qH~h(5ߨOUuwRhZ"luZFHA6ajbtAtV*HȊpǶ ½kr]bvR[nr ?-7^N|e=Y(anutܹ30Go \$g&@$ b$ KIz Z&`sP k|z)#j QQTJPG*\DžyVL&$\b+{}?{c6 Fo,#Œh6nh8.~ 0~ ]B=1R׼z,]6&a[0ihpX݇qbh2iH^ibue:q fcU/_\ngl0Lfb^B:t Kȡi9O PxoXұ%]u^H] a Ŏ4-l!²]h3\f-ضm+n=qWD i њrZ]~?K0wyg@2^K<݇ Pxe4z٫PрjezJD^A|Նgm6 HiCɴGA6DbeӄDL14{`l@9|3@c@؋‹ʵ%IQQ@Ȟ(J\^Xy2iQ+Pi4># *a33(&Q*CR $$j՟6(W0L6>@ +u=;xۤ/}_{~}sJdJb6㑇٦~x'?%$ZA<b@u(Y]w< D1vwz\^S6C0::EQz*n_j5 PZ)q`X.,n fPF4uǬ0 ;f qвu81ZDŽL7 Y{jx¦m7 {8樳(=&N]P@g6\|~u;|#Gv8¦@ ?* X43kRٖ#6AbtMXDa3C0dy9]K~'o$",20 +=̛$t-}@ԟ;d5_44ؘ}$LVp[oQ7˘Bcr^8tS/e)a1$j 4t,K/V}^1z IX3Ow1(o??e C7 j}@RZ5F\'OJaaa÷%\ Mm@ZК5 aU²,4U iArjP5 ,L;}O;, upʖpݟ~Ta4Չ xLbg90v߻+N= ;_2A!dۮIȵ sjO<,l/CUz=Ie2 4ljm؀>&RBvP9L\d***j@)`0LF֠uOrPvЌ3Y Ri AN{DIo7o:=7/~w92=p7 wƪ'<zcaL@6"A]3V:vŗ]מUHةk- )FhT$QQt<$yiTUTUmT%AX#ޝ(]-A@Aa X@Nw28%^^ukڄZlFOJOssހAg#Rk ]sy79~W\pr(PKxC] '}I?w} DV xˇ&~`lqU 'KBa@!>҆!]ߍ7bժ|f 8t]#P0md4f ՂUa;-v -ˁŖv,m+/tn Ddm 'qbwJiSc>3 p-T`7MqSC!sӥ싮ŦIj1vЯ`NpئE?z Q XUԭ4$ӴPSH-jAEM : 8bӀN*Ү SE#m|B@ f$A6Ǟ_>fE6?ip9ʓG>Rqr,ـmB$܊xyફ~{~9\L6ans 'u]W~$сaك{ |0o@~@>y6:II-O) ԁbBϿضP_2\»"EYwr YG6? %kX:ꆀC{1yF]AT\Y(i! $hZ U3AR{LC7Do꺮c=|z|GcT*_I#:DJ0pA@1R#.7i$ayEѭFvxOGf<#_chV Rg?+N]umNlн!  ;y ܊C17Lu1 r`IԞVһW ^)HA- ]kB0vYr#e1[ vV ;f÷1R~pZqV8^L@T@K$(o*=\$@\(MYÝc.M[C ^$ ¢iz;AG#-?L!)ch`]KeR=+j9w3,P.{}l#:Qxm`S5 =H 膅Qk5M؎2E= 2OҊ!@DȒ"Op;-4|48eg\g_ Gᐾ)ӝyۼo`Eow@,BGp豟aYob\"qƶ9|;kO i ë'xNbdM0_[T Mh M}jiCU=^aеDz i!P7a 1eOde@=s&C E RΛN 9,UT<0Ȃ @ BjHIBtkRاV*\oʳnB_Ln k, or k>?Z(|4T*yK\<= 3H8z7.88W&ƾ//ڳ-ཻ7x4g>7 0Zk f1~=Ih@j#.F1Ep 7t1K0Ob9ę@Zr"s&z!tz*$5 eܕJ%%&&fj?ެBZ,ۅmlB'R޸)y-3,=ޓx8-] x[onp.byP.G}`}2lzQ o7o|2Jֻ>,bZםvֶ@qR zYn~" P,; ^2 St t-M @,YexV+OؘQ襢ϩVb]ގS$2Aq7°^ 8@}]ݵJ!3Pc߽1T5h&@_CVvA4XH8V' B<#y@OZ;GI> d1>f(*ɭ vUNRNg=ˬ\kiis(%ȍQB&7ا–YyäĪիy;82l=9Ywܸ k6)TG&6$Ţ$N+)ѳ?[+ zI> 0.+!c HS9[^qKwϷO"xPILsA.g@ZPrm)gP y)26l}+'alÛ[v&Vr/&J +NcQ,dq[\/㴋 U!k;sw/0ќI ' x5}4^@:Ge& eIc$ ]~R #R̙-(NJ(PTC ~OIhӗsũ_̼$=q .ZfV )MnOg\5 y14ߵIx^Q{Q{]$WY$aϋ 2 1O0%,̛e -gCkXќj+@ HYoӴiCwF/ 5u<>vƭfYp6Sd5CDM?!M`ຝ9tF!yd3iRiQCNpR22ԜTHA@:_XNI#AɤIY:A G 9 QhW:NH2Po|-N@[|pH] :nFRxյLx^?(6"AͫJj IDAT>`۶ǚS1`ə@LAOӈ%֭[rzxx?vŞ~)QFF`3`}7gm $Fe XP(JWijcxl>|J9眃f8kuX_yh HZMd䝣uYرcg@CRxxrW|!y۰\-?׿>۶.|5xӀ$?/,84 EuQXS(\7 I 䗍{wdܯ~Wgб '10͠s?m ^Mmx@0Md4U  #dfE(kEJumӭp%b_|1%KiNpbb).Jhd=H`5\oεl󽸁T!.W`/,j PMRMG{ ˺Ӌ1J?uӶ'S1S9(p`OKX8cC\? ^})RiA}50"*ZO[)($jaw`= *σH%Faq87>|z5OXXE$y!3p뭷+W׿ߏ*;6dߜI֤$ s .j1R i`/zE@IexB4gȣ0`!MhN dHUd&V@+]@DcspU)CȎ`?+ׯyz h4HG? DZUW10I@G5=`AKjer%y]]GBiUQm)G"vb[HȬ-|BӖ`[$FZ|$$עBl5*W7,$U iBw:nSo#U\k2jՑA uAV|cKE`чB3BV X?Ct} \C#nI:[KVys<;@?HIoN_K/hy4Pрɗø_Q EFA f FӉBB;3oMg#JY%)p\E *Aע ?i fڑ(u\~).yTyف馑SڑriN!,%яR$e)/vAc{)(_Pvƙ] ?6h@+< u<@X¯hk<%X0cn;zJV,ʥW/} (]JG)–Y ˋû\mcqh-瞅˻rSCϠ@-㹁E1F[k㝹","0rlqف݁@aAVHGQ\m ,\6z\z9v^nCpKEрe9͎ʞͦW,K'-(l$J-[D [ꅶKε: ^[s Jឃe D~XO$uch)KjS_s6D+L7Q?:`p1yЮin.($)eKaLREH~) އtK xT'pi7v]{px8iDva?$?YXFo{6%[@ *^~GG`j[Y5D:$S]7.]]9םnJG0ygMOaPi?^^SՐen38l1 t U+,j0׬#/4?Z:_VA~p(&އ4i#,?u t{E ۏNxH:NZ}Mz0 2>|_WEVQб4T4cO<_Yta:dq Q@o˂ M`iˁ1Fsj?ac/8O, ݦ(g"M؎sH6/lqB4EB(_ _ @|$1[a׏bBKt݅UJӳh6К5rlajM8EifRpBtv=@ 8m)NZ8ԢE`9dMC $ i"n/E`:Zk溮cɒ%] x_ #(Mj:.wW N Hc>nw9ERŶUPV*M;$,(cyjz iٺK0Өj.tT @ 0^:2`r, }"ϴ<0t 荹*k?% ZiXsq '4tt|!Uكvߋ [`я 0O$^6^㉨0{A$$cyXw<rQ>c*W*0k/òli)*"ZhkI8`:3S 0f' і^s\I(O7l܀=w"ν(#~rHjd+QB~ 'S_G"=VJZ 8}ð%a꾼4`$ ÂW12pY*\ 훪W* mM$#i6J'HQcfӴRmΉu}UͿbXǰgЃf*Br9G6Pwcg6>֬xw|Z5f1`y fOM , B Ó{~~f-_nOhqF0l{pNܥ{Y;E_whr鸺8Cޅ \e"ۃى#iڭAbfYc5fkI3{EDQyؼaK42P-T%:}59H@.1jRU_˥>ɨ9Z9W$9Q:@ӡVk~|QnDxO@'j෱'Fk2su[@{,E Z^j@3Xe~*GX1XRD:>XJD!5 TAFv!0R2L^FQ̩쿢ETA\@N:x.N30hT,FgM[vzԜ^9${)0. ZU$0K ByTr2gR>?8ykyQscO 5^g‘M[Oo]mgo8tй\/F<,`+03<ϣSS$T)i[X* C0 jU@O\((z^G4eB2P߸͍,>@6DB9@ *5Z峨egr2kE>dqM@8Fuxct@P|` 6mk|1 tiSVeXE@VLUA<=؀k`gT?J`3;({ɎX`(X:ĄJ T \sϿ~/ݿk)/Z+t\WӡE-'4Ux͛5Gۮ^<-8NosƎnU g 3/(  ySXVqq\I  c'~GoX& 88s#@e^*ਕP:TQ e<^@o(F_.C3^.᪗+A5:GǙ3 =SSŚ.u?Ak1>k,&ӫ@@;vb˕bU[ps׬8@2< QsH $i,dIDQB.*,@\Vid sҰR+%n2J ysBS&IO?&ta##հP)bDbRz7>P|Vh>y}%ms+E1M'a)'~ \3% Y=W**S\,$TVFni!W"4<$z~["VvItPjI|(x8k2}C˲E\\u |^x=&n· >C3x~c_VaȠc݆K *rcВ<=XhHe~F?h;@_w } k+R1d4J,frH K1dR1W%R VP-U@:55j 8w4V$ ~o*:}$y/$tWK6z>mܤ9~'߰5ew#^(IEx}A.; IDAT խ!,%xn]8b%#@d;Uh/@.`?g hu 5hM7srZfLb>F "&P5Ej.ΥȊb x5^R-+"kNn·ѝh9c's;Oir;>p^_'@ k ㌋2ywݲi(,{ܪ|U 7U trՁX zUN=h^,T*KHe}.Π. H@)T\jLC_H4GkDBfz>Cs,_N7ٿcivupېPΛӰ2kN8g0.ra'h\7,@Wm-J@CFNSKL!]@U,M_DrԶTTd ``F drU Eȥ2jIE՜m" $𸼪! J=blƖcnWcF~|V_; qQS>@䠑J{kЯ /r3fXEi,)@dfBkg,G!0Gli>prJhܸ,.WMcQ("X!+PL6 ($ȹ5,ƒ< [. M-kɦS(ڇ;ro8(xuCCx1O|v@vGa&=wߍ{w\ͲF+I98oǥ2]_e @iV yT6 $ @GK pu<{j(깼'Z89I >f7l"t{JM\㏨cy 9ny0IAǷM-]XK;sb`:/r !\AȗP&I*xWh?.W#[; =*CO LfMGvYK,MæW\Hլʦ-P=k12?\n@hNxg@ˆP'.N˫dᱍ-)u5ۖ3TX0$&g@QnXDZ 1ab"!bIX!XDl~DZi ryrJZQmZ 2%z5ˤג8An  (1oU.jۇ,CI( :P}~+/>EnQ4n%T+hv~fײ tUIw^oЮ2@`iB:YЫl J@- % G&K3(9HE(B.d|{5G{vEDD9WŸ1;< 3OG tǒ.Rs@1|\Ȫ>/Uz7bS_(;H$9jF`3F}iͶ|fG0JVufUPiO~;Œ4ǚ X%Z- wP, "@H/]0?RH'Pdvt}iW="L~*Zjd浑>rj>v?rk܄pB&dby 'QPN)AߴJpx|W826ehpyoe/6͖zG6(7rX:r{p>qe1LF@T. 䦱 (_oS"L Ј>ϸB;4)F,M;C>t0@slAD^d~r֯_i(*y"y jRaE=8T(P/5*jOb rRW/W?SFugb>ckpz5&._QrcAV@-hd/J.G?o?ľ4n+5eGRu.Wu'S.Ώσ:T aq~^ סe~pKPDj(z7oЋ?vjB^ g=&oگXvU-h  a U)8J`gn Ivk|7_I;{Kowoz3{4 GF[[?}/^ʜ V:R*СCؽ{7~`Cg d^)p|N7rs;x oP)~J| g@!p rX) "ApK8(CȗrDkXv(b j?z5k>ة<b6DzU2C}ث& O=SϹjvf@ড_.L0H`ݘ.x=05;!֢KG4$ ,A\}٨$erhҌ=`h'@BӉ+V)^w];0Nޞ-jSҡݨ䎠Ex@K$4K?"7rH|$݇S0qv҅}w~ smh~i,]a h"f0 -d0d+Œ\"7:H`GJekB6Nr.W6#qix(;<#CЋLY{G4XvXӃ‰[ac:3?𖷪XlN'+XWK{z*nRUKz]=1m")UJ\3jp1Elb2K &>Fy,PZk t t0U(FTQ+j(CV!PʍQ+myD#g9"keW)0 p{[ AF,k46nMޟhO@b!!ZM .'ہukZ2w0/,T``ͦ,=Ќ@5%gigZ<4tR ]?|j!#FtZUT(8x #'3&F}BU,'p*AP I򪄠Zz5!X#OKNNs|3,=c%tv(7[;BknNsŵ-r+FN/pף-_މ?Oc[*o4z03T,x@!G9onmh}Z/NT(fQ*WOBH HB*XM IKJlZ=٨0Rm6lPHAR-W0v5*=P]x5_U/ #5Qv|@z0Nskd"jrys[R<= H+]x/Pɕz وx4=X\ *'hj+b8͔%YfRE<?B5\^nP%NG +Po^JIc[ˀBi!D[ e͉ڃ.Lg\S9|&-G?'g,k]@; q|\qms?>=m~@zfyxF%$m&bl޲{zJw|`6*(`p" -WjxGq_nq:,AC Bϩ:@a: 7 ?ӯ2?^eM tܨ{sCAN:i@pe`&c]AAHS+hj AYe dRq{FxLòryFz#@<!.|'@ԔG?>=~9RSOGۙ G9/<84NٶM,zebZcUP(੧}߽Ȭ*ځn(L  rT2^_^_^>k; ۏX"W%TZqy _ s*VRGDuv?  ҹtޟvb[>e:0A4]nLegXpQW?NMua#[ p"wdf򢌩pUW!avvX )b.;3JU#p{ "4b Ep4tcoHay8~N_ʮDexJ ɇ*BwDG%b|HxSGV kghI ͬ_: owCOGgN@ |2=: {8 b 8"đ`I#H,@ٝHaUU8kBd4a!`^oۄ@'Xj=dٸ~ޢ3LMN|8Oe`?^Ɲ8z8p,iD1wkyF?F1}-jT_">tukhR(JH- $15=d2 'M!D54xi 0 }&^ݘ Fr6tSߤifOn@$˚w#ЩT>0v7#Ci{x=f;@#@&@,_҃UO/{(suDf,y<AeR򐥂: kP*CХP-h:gkr?(~P)$YǁƐx5-7G(2\'Zq4>&Wc qIJhf9K/;4a4c+zQF6s^m c ic`{-vZUߣ\|FTFP@"@APBH]:6 С# ڴ@-QTuj1l=}<\鉇CH \׬Oy^I1kFfvf}Dz5UYXz--HH3}0՞CAF`5,^Q-GVZO8KŰxxAP#Ss(YH"U-˺5W~NT`jҢƩ%<>ͶGo\7~bL?0\~238ieJJp,@#p`^l2Aҁv~zX{+A|Eb,L.Na# k;a BwEUr| &@B:A)BZH#ۇLFPΚ ǯzKV,9qEpޟ#κݨ9H8枿_m?BAIю{o' ׍{`s5UL@:LOs;o|\?ydvTYX7ng>wq:  C>`IJPۍ@X +]l̦HORH"A- y%2KU$RQB2n/{?zٿ )$'ЯϽⳚo7z V܃ގRγ̚`thn\WMF?jVTŽWb>o=O/KtxWAxWY<#/ׅ@`|D.. =!Jney@^")7fLA>WGQm-^j_TC.U*ZK[4T)8 ߋhwV̬e%YΠ]}70"Y`Ӧ xQ% y j2T\B#}?#+ @_^+qXwyWK]α y^|w4I]^aݸߍWlGl 9+tC=| "<_(Xǧ8xJU7hΡlu>.# (\9׃M_w ^?)} 'TXڟ 8.=3M@` ~@uza}:}|J;b3H&f}.Tc勤aA_ZtDšeEwBi5/HMitvvb?7-{ѻO 6"2Y_v6ȬH& lѤh 8_lVVJEy IDAT7 _n?V%VbUzV,@!0c8`ج;IfR \Al ^ȡ OCCUa-J.Ґ=^H(7:W>_؅N!STݙY@+>VhOf}zͯl:X88~oPY0یUsL#F( 4b w"֗#@A||.$/~7;XJlj),fڈz" ̀g ~Os9?b^@_o/JW݋+yiN @\ ov<^M'fq)Z~zF` @$FGHaGpGr"0|N;cir"FŖcGjImAH~ LMNB2żJ9E1 v@nDO'uDwHW/"XFP6n܄HI%rW br N?_mf}V ,ca.au۹;`'"ph39d 3S;<$|21(fQYGh Ǒ%LJGӁ*4P\A\bǾly^ ʵ5B13˳`V>p4Gw+`%z z^{mo#p;zv@ePY?VJf#6OkHe !)Bʧ1;=i,.&azzZ<,-.?ƃLkJH$%^Iaju5鴋>u㦿#weI K(ϭ9hf}*Oge6<~Av+"+_h0m#0RZ$v~G#YځF=;"yv4[pf%LMM^Li$gG|aټ|:UWh *tR Q̡^ʣ0L>k¾1\xҿEZ&0tCF?+hv4Ocxt }kU3j: y]?[2'2.pU)Ļv^h<#7u`ffa 0< c цhꪵ馚4$*Ø,$1z'~Nv]/VTq@-T}\koctJ šZ.1i51M#mp(fd֧>M~9vc^J%կ~r s,^Vm5hF{o5CPWW7"0‘:QFDDDA0DG߁׉?S.L{,8ѨJ8uiTH.3Qs(q6-ﮃ*Bz翾S$ }]tY+%dvr|F|Zo~yn'@O#?[o'}ɶ]h% ;Ck_-iT*ٶ|(9`F8E$ܡ2#"0(GF G4t=6p~ Eٖ2Et}y22~s!x$I ~SweZ_#~UvFlڈJO+n< w ytq]?\MUg}pyL{R^G 7C8PjF"B6CpD"= Pu4xޏ'ΰO%ߊNLwKKeZCA<Rc vf}}K܁|~-oZٍA7^Am4f}+F=?GNʽ~zM$_[&lݺ% VUn'ӊN0Ċ D)WjjpۉswُILO`zzJ*L<Z5h_y^Ԝ^9 :eb.C5z&@gd:X矆!@ZjȸhT=-w܌Ogvw#Q5YoTB$|10>>[*ħ>)wf~b'Y0JeY 6a=I(M!8<;ELOr^| " (=K@N>$7rituu ǥ0XKX@KY[eW&ľ=%vē|2au~ӰV3?yj`/F@/ v· |#` {V8<>szh-dd)V"@֓߇#3j$%$SYri2 ps>l?\|e?3=ʍbt3#%DzȤP, ;|;i=3 \8::x-[q; v=We 5f+09hCy86oi QHSXX@*HǔX\La>f ]و7t?| Fi0$IBN 2 ^ڙi:h֧Z;22nW*@?߶TڵKsM^޽[,Ǘ@)h[5Y4kR3p&ܲ 63ۋq$Us;V%2w?׸}jrP3H`T$5^4ţ+/C*Ր[D2i3譶~ `~_VBes*ӶoǞ|7y"G]ML|*(FY/iة y!5Ջ`o蘺zEx3,9,ͨHt|ً pdK4R'@R4$Kz:4܇Pϣ3ln= >[oj.n|vvq+ / \7w\?X,U~}zzG͖ 4K< XF@(^Cp'{N> -2,Ʀ!K1E>5E6(hXQfN+Z̆~f7SV;@"v}]-|@8y{3 m۶2v4R$J_>axD1xf8.=@H)ʓbwf>Oޣh.Cz##OM X`Y"D7o: HRRB#! :9]@Z3!h>z'W}赼lOw;3~c |Fl~ 퉂zm9" vf~;c=Ό|{/.O~gt\z@*o>1k#% 7X{u־f~>e6KFQ*/{"|s=X:>y_.) s <ם=O>S$nVzƶm}/wh(@RJ_y)5ebQkDhv<1:4 K? fNt~tK0`_NB^;vT*]va˖-X} {̵A*a~F[Y`orcI; 1cdhu,븚3uGϏ&|Q\|D dQJ` F|SU֏0Z\:>@X#׺v x]Xf0>,gvwrz{{no;UF>Ioy۶mÎg188arax9D z $PxM7ᄓN; Yk/ #+ 4<]X+O?9cC?:!B!DA*##f!Tʊd$fs%-?{S+ԋ BdEX,!F&YVL@,F&<8<|W1V s^],XhYNHqonp99!< e t;31;݌oѭyo;yȑJ< 2(J :z#i۷޻k0VnzXng47]l9`tnAzY.JFm7vzߏF$.=?>Ѡ0J+o$ap B*!W2FYqۭh]yF8=q'I:#K.MoƎ@tuJUSh!Xy}ٲ֌nvf3ͲfjgƧ_ zMМs^ٟT2@/j8$јxir>u DxG6nFFFߏ 9YȊ8d$` +C`Dt~V7ؙfjc(F`F:32FUCU ^iu*TەżF(122Qbdtؼy C~M`y07_;ƀj Xٚn.\y\{Y1I&kW] ~quo&uYx=3V<^|E&{#k0<<2]yf"<ϳ\`Vk}bHzYHx+c*rM79N:@B/AJ=&bͺQlZ?~e1:oַf} \}n`\ h%\l` {Oyp'@kwZk6diAvAɨ!A D:bxm?׬>"CWٳg6GUJhk6;m{Hoy2&j@\k]5 ط?fg7V`HiMe!Qc}xi_{n·H$pȇp$~ cxX"c:֍p5ZV/7ogЛEuf)vbFۍbvb,MA@u_f xcEP@|a‚qىzϡ[*ܜ.7*"" }{vu0::>?:#pZ  <فՠgςLrcg4۳@e8܋<˭7+X_wuX,L&鶽8'tfE0Zr+$XÞ'ky#"(֢֭ 7cppކQ=;w#<{4fu}9kىyVBډxXcǵ2뮫߿D饥ڍ=/G,m8H3PbL'G<8{?b:0"Nl8!t # 3G3gfjvmcv^0s[aU;h/bv.Ƀ۞iCI_xDIj#*y(TCXf- pT^l2v|Fj*Ghfqq_ 8'|+x+"13;$IB6G?Ѝ8x͏ӆ5u~zD)v"VvϷ<^vNIDAT -Xxc}zjJ"O!,ʳQN %cI4ABat)񈑑a[75kG0׉qlXRe殛=7ώ0z<oTx!/"#A$BvВ6&t< yuIAb4qrpΪj,X[ X V~144rѮC~\3C` O2nwpbS`+UDxN,"H`jrvR%uP+ T v"݆hJ)욘hyO_bxleGlȘztl?h9O(q.}.W$f㘏  $ɥ YUX_4 KGc]`s߮n ctdD"axdC|+ЃXZҏ>v=9Yi! @iIW"oh,12 B+,a"Qn0=v& .w]Wt<"ى^ mU?buYv*-ht J #hzBo|㥈t9Wl^3@DB&B @$00x45MyȒAcF2n·ukxD?8>5A ;1rEQя<@y~رl  K_\f^ċ( H$Ő ;jޢԝrPYiȒO74$#խG aæ-bdd##k(W݂{~ߏH8 KKعs'EJZ kh$( %І@LJjG! x=ےz5@͢@`.޾>oق~Dږy< {1sϽH8mvw !*Mw#Hݷ5 kIG<R!ݘY( py|-F,V4p,WMY 8@у_\vwE#,f^+/|Kb\ӠC$ug4$IR:z iPGAqᵎxp뮫gH2Q1]UOLjq-Z aߠ`4ƍISF: <1=6.8"5@ 5-.^(4MdU[ۉs8Ώ=!$5Nkdeu6XKCUu"}k b}bؗ9K`V[yS S֟ӧ1m~,FhTa5A,ڛ MZEĹAkw"dDDDDDDWQ J[IENDB`(0` #0#. $ A#+"$$$*&#7(2)#***;,"1-+C/ D0!8/)30-;2,221;63F8/k<=96D:3;::_=&`?(D=9J>6JB;jD*CCCQD;vH(JGD^I:L$OIEdK:tM2KKKVLDxQ5nP<S.QPN_QG]SLSSSfVLZ;xZE\5eYPZZZ]Cl^Tb8b^\bHybRfb^g;sdZdcciIkfcohc|i]mEkWmQkkkvlfqItHw>~rjt\z9uhtttyX}Bxt<zh~L}Uzs{{{b}sރC}yYrnitq|ȇZe{vyS|wwčh{˒k_Օj{ȗug؜sŝ֢}nˣyקħw笃Ԭ̬|ƭͯ汌αس緖ʵԹǹ澣˽þ›ʿè»ijƺƼɧɶɿͳΰϸѳнӻչؾ{{bP>0  >YB0  8Y{Y*H00JoPH''B\>8 '>b>ĸvYH8 >YPؿ}dd'05050 >P”mK-@*z0000>>HoP0#-7@Glx 005'>H˜|Q7#19^m500 >H{>%1=@LXND9V1.850*>>ğ|U=(ԅ000a>8B*'57@GLV^VVNN;C63B000>5ġ|d@1p 0507>0PEKQUX^ijjcZOC?;?6 3L000>'མ|X@1 !g* 505 > ||}p`ZIC:32t='/^005z> |XG6$  `0500' > Ѱ~y`RA<2)"&e9 2Z050N>|aL=1  ,S07500>ûnSMA<4/&&]7*000.>„aQ=1$   ,R0500>ʾn_SF<4,))&[500 >DŽdQ@6% O888`>ʾ4W Y>٣uskhddd^XXXXXXU-Y>{ó~~yyo䵣}ssli^^^XXXXU nbf%Y>oλ~~~yMTº~vVY>oǵzzwli^^XXXXR{#Y>b˻~y`_ ZbiY>Yzxli^^XX(C{ #Y>PŶyg*CʏPsY>P̼zrl^XX63|ovoԡb>Hpbbb5.v>Y>B̼uhXG+uYPYb Y>> ļHHH> Y5Y>>'ɹXa>>>0PH Y>0'ĽU05555>B8BY> 0İ\|qda\QE7H85888>bY>0ƲY> PBoY>Pv>>BHYbv'voYYPB>>>JYbob5{obYPPB>BHPHP( @  .*"$##2)#:,"-,+>3+Q5!333=61F8.L9-g<]<$X=*;;;S=-D<6N=1^@+E?:zCcB+TB5BBBLC=TD9ZE7fF1kG.xI(QHBLHEbJ9rM4\MCLLLxO3qO8QMK{R5kQ?\PHdQDU3lUEdUJTTTY;[+zYBjXLuZF[XVeZS[ZZ_Da?`^^q`Tgb^eFdQeKmc]eO~eSidai8ddcre\zfYhQhTrg`khflGlKk[oAoJylcllko]rFwnhqRuplsasfsjsss{Qz[xww{[zpzs|k}b}h[||{b]~zxgtt|rg|gv}zszvuzǕrzě~iĝ̞~ա|ТˤäȧЫxzŭˮ۳Ǵ鸗ֹ¹迢Ҿ˾ĜµƠŴȤɻ̫̻ιҴѾպؾyaaa; &;X=d= &Bo&@lXta@a*K何g< _]**Q@tK@I[L<0^**Kya@-)) Hi;*X£oF%  0ԡ** lӴrY9 cnP*`a}hYD:/'!V4*- lpWMTOE8,"bbY**1lu_A1  J9-* thM3! Z1**˲~m\C6.#74**m~e\?2$$R**  s^H88..$$$$}tK>KƸ{{ssxxLSz@Ź+M=ǵzwkkSUQ5ʹwwqEM*Ʊvhh_(Xed*ƹvvNНPǵm|lXGٹ@Ҿ{jXXlQϸxf=@5Ͻx[**-rQ=5뽺-;tdaadlt=(0/+(E/ P4!M4#444<51G6*[9"S9'P:*B93>:7Z=*<;;M=2b?&R>0>>>ZA0_B.EA=AAAKB<EB@fE-lG.OE?WF:UG=FFF^I:IIIfL9mN8MLLRNKgQBsR;ZRMTSSX9cVMiWJmXIXWVvZF]1m[Nw\Ia7]]]`FbFbJga]baajc^dccgLhMpf_vg\hfefff}i\lLlSl[lkjoYrUsRspmqqpset^utsuuux`xvu~wsyd{\zxvxxxyq|]{q|m~{y~lV~pn~~~ugjikrmvsxruzԕjx{}ǞϢ|å|ĩxīɭůñɳ¶̸Ƹ⺞һǺҾ̾ƾÛßéƟƮȢƼɦȺʨȿͬͼԹֽٿV94V4.Km;e!9[O`γ[OA!OO`!tQ:(Z $!;O`$fR>+,{я$O`)qW?,/G&:$8O`.uYB- C x$Q`4}^E2" D'E$O`9}_G/# 3]%hO`@jM7'  <$O`FhM7' 0$!--47(&*6L`v! x^]EMq/A 45 Yw~ f@$mZ X K9) W% X0. kU?#a| +`J2'$"g8p|:>}o\ND=GcOlF>xeTH;$X1hPF>q_SI;>Bs@FA{iRU, t~dVFuF3ry ce}쬼^d-n@!8O^ OkPo3;M>s<}<@`{)Cz,kx<.q[~7v^9D©D9Zdpٖ9њX&WK϶liEB3 h34qXHy$p2@`:m^@?^Zy0[휕7u6VՑ\.7jR"(`P(,PUF)!9Z1h8t!xg^zN,ApA<" d6f)u0tu~[~&?ZX|e9X,*"UUE$ !9]jP!EQ"!$GQ?Lt?<ƘW^yͩ< <`ǵ#e[㝈~~|h&w6l/l/e6PUUr (UJij^胶B)B\.4(JJH8e~Vƶmgγ>k:6:Nًd AQF'z~//is `z=Dj5t.kV ,!D@rT*-4mRZ|>T* t]QB)Bt]V~B)QJZ6FEsiEmha8+p8c:LdvZ-Ͷmc㸖e14AQt]G>wɲe4M(!$e>}\k- '5N`rq`6urι뺮mۮijV9C !((B8*!D4J%gpp###txx +睁644L0Նh>m}SO=M_~y1 Cc7o^g)<2@nE"7ɼOe[}c社RJ+ "EQjj.^0D=qDz,nn4@3`VZ-u]U*j+AZ hT*Bѭj|xx,Pj$\|R 牪`~!K/Qٽ0Mַ=zT0 {xCHr@?x@?a!J=[krPU~[Dr\~pppi (dHd' ~`1Vc`㸦ialjmksRju)4;644DFFFZm HPt{yHd :G4MDؘWWj) qK@lDp#>Q,ӔNHkHSj/Zj|>@Qa_^C- @#s쑖Ɏ Z,mۺ$sͦb۶N)uŢ]TxZ%@E(BT*lxx )ôZB4MBBER(H.û1:t{wnGHn~G ~A[};-;SNjz4JZA[RZ?.XQa߬.Bt]sjui#7铠5~=_emۮanVs !RU0tEQt=s2jôZJ 388ȆjFrr9‘#Gp]wqs4M?#^Ux@}?Do;4cS4Mj"MӖZHr~[ka-˅!DX7|/e:8v]4o2mk"E9'\28HKZBp*GhmhjC\\.@ E( H-!O 2 O~p{WEO1<$▀)BHyYu)a{;ͅ &")3x,8>J袋(^|h"vXUD]mxn6:W o"Ӈ[~&]wuՙ߭T*Fe[~nu]W᜻1׶mײdf׾B\.*jh\.YX 4`Æ+DW,+ !F x4/j~0+oVPVn:r9i&IT@~ Hn1<<|>Зs'hmn54uߗCJB`W*V@ iTFTRV\.s]|zmBL)M?)Fq2舁'"\ 2eY@b/B^<Y VN>_BpB[=Eু5nEmNPvjfS,KlSU5ƋjtxxDV*VQ(`ZMZj5R,yH';q̜~4b@oD I^ OR]ЅQs?fւH5Q.qln,X`=uiM$^F2op뭷~PQ fznd޽h6s^[f~\s5EJyhSfb4!X@韕3VWK׸ r:'tR 2'¼?劢|z8÷on=s:ƥKo_\!{3T ?BZvhG(H<h$dh֟AZ%SSS " 47|T5M!]u~aw߾}R7:˼׮][j!Uh8{" "`6CYi@D'6w3 j,h C7g> T*}\Ӵg,w֭|߾}_l?GFFNg)2i~Nb:q)v3(yd*]JA~A]Fu]롩c9{j ʻ r} g5ODI`ɉf3@Fs!$B1 @^:/>waT80weKRkƿ?+V2}5 4dO[2'0|S_8<IǴhm+Ik`2@i&N,߭޲T*}:`uOgOnA:=@+"X<89H@hY?؇Z=.OIGC 軀(4-C5)N6s&T%R/hvJ>&# %Z?<&[gATd yb{?q7w$|@)!XYfV@P,W5En۶Aʕ+/\:Ad!4g݈ XiISbZt1 om`E}B W? s&MA)< ry`9Ax< ASq-Gp<_h_?,˄m[}z`u2>3 U[=~%@ꅹ"i4 HyL<>$u`[\ǂc{ړsOq`h0MXFeZ^YǶn199JPys//&ɋم.O:z\ʤ7;"[!v0 Ѝ;y@} EPwm񱣨OOѨò `G+N_-| 8GDՀj4۰̶bߜ ̱jֽ2&,Ӏepm9s66ǂk<,=icEdTQ6z2"t;HQd s&@ /h04M4Ma[Ѕi8: v0=5qg`[- 2F7x''8_z״L&T/ GᇓNg`*R|~uFq`Y,Y>W\q*A,YCCCz0Za`iZ࿜eГ hbtth4:833hmض 4j5#3UplS;DRt&ʄ-TZGu]68(cei9݋}l///ʕ+e']rιiRJt]1FOj=lہh68z(Pal8033V۶:Ep+āpa(-@:` gu^hyume8b7 j❝co՗#gs q;v୷c^{-6l69X˯ůai+Q!/8}pl*Feb 7mٛko¶X9oCϢ^cppwoL۟e8: @4R,l|R7gc||<`EEtR('> /z}Eh/Ճ ϗs4T%= iB= Pq8!* D˼wXd%V;dz\ǭ#P,Ʈ]㭷&Ѻ 7'8+@)syGGToA @&D._E~,7Wj6׬9o{vZ|{s9'N u]GR +Wʕ+8CЙὈbG_ǟwʤg s//6j5OOxGosKh4l+>z+~3TCMoLq\f=凱޻gEo^xPߍ7&ʟj`1]וri[iB@# x~ Y> ?y) \azaËVbÖbn(, r9߂C~\<8Gd69)_}-zXgtmϞ=xbw>&?F8LUUiJR[#_4iH,_P N?pCWჷ68O?m8j__˿@T5\9s^>&~mb{X rk׽;>?=='x"} _5\({P*2ڶ}@At4}/NB4%?SlXpz7jG|{8|PD~b XG3{!љ}?os`?p1Ƭ?>( #??AT}5 PO%iH2@<@M$3/#E8Y_Y>4.W<@e0?1z(jȚDuV!HuPqgmAK+]S]/Z {ˉѣw?FP -0z"ռXdZ-[ ˖-Al3aKK"Oc@(@=ߋ !G红h Vl{_~P /^(sph5(Ge~{={j۶:5_>t]3+j&HK g_#$ M#z ʄ2A\>s>#o?='0p Fơ;s$Nª Rq hqF|I۞OEy`_O$w% w ٣AT%^a8@H Yd<,-F.YHxٸ;sM/հxCo!MdqB)V:=L-/?PHHgP$$-3cѬO7ꫯ6l<'ZO~,B?`sm{4w.@%@gcB|6x{тr,轐@x&iY۲WCQ%37Ylu; |YyPH1jwx%\=H߂3<|>@h}7V&@7 yqbH# Qk(KyB !2r|DéuɆmDczZ%W[0ĽkӖa`zӴKؽcV۔>܇I;Dy^.GB[8ͮɩ)Jgq/b}'Q߭S}T`pm1|zhm92M%AG:pqX 2ئ?>*)):l69030^|91XF |&_g\]lÂRk׭Nj/<yۿ BI@ A+i?rGќÕkC:;}Ì> B_+9u]JfAEA>F} Vтmyv$ڍi:,cȇmUzm)ނ&&؆>5/AzJ#y۞GadYVMq^pÛ 1aƛoÊF.H޵T E̒y!Ʉ9ܐ[ˈYL cqGX)}vdo$Zo]|M|8 ,Y;e4c~}kXbP 'މCCUfv#'GֿǵRr8$eϾUוX>mLOpbh~|D`>'t]w,˒ X2iLLz 6- muh/7f᧟džaX2ۮ4M+">`dmZ3 M"/~TQ2a @Ob!'p3;_yv@ư]|3XpqF`shK጗|>玲8h4`155zZ$ǁa4uo"aoh |^vvVd|Uē| ~TV_7Kc$fXh 0vh87< e?`L{ΪJC#̯vm_KEX:ZBRt]W R bKxep gsa v\y8ׅ2we'˘ eW].?q,3a<1 i- 5X߹;+ϥ AKX|=|i&4w?8ECYNqF<|$@c?Kl硤Xi&;LO7?gcOqF }&hKas>OsQ.Q.t1.b8ͳ$p.u4"(y@,?eOp]j- 21lق>(lcxQ~ypאe}J:D1#1_̧&d??y'כ|_—&)gE96g3ƔR޶93&:{8r)u4Bl-#ؑ+!n. /zɼz* yg)-O!1gˋ=nώq`ߛOCIG&W;m>i,\TSG2S)EMswNpDo|B"偉/ ӀL86Kby-LjH<#@c: t`Ŝ<<.jtS[鉮XW2l{<=~!|~'J,%0N0o@pY뚀`,dA¢Փv=2M (@//XG/Z?}E`j%,Y+VN%16>:A !Lԗ2xJYӮ}۱o:~!ǀcaMXFf@}f㣇`0j7po%~6zaPk*H)% >q7qG~@tU_=Զ?$3K hwzӮ7sy|2yW6˄w uND8] 0 <FVf=ڭ,{9c0u v %u ` ױڞ08 H*O๭$`Խ?u@-}rÁqن3@6Pvd#뢽:i|t d|tt /b( a6bHt+$7$03K"˚]5DWcòm˲͝=o`3_c}.ý@ˊ0p?:m eW|FZsfDkI8Q0{leq,¼YYgffn166h4h4h6?&x &\.!CTr?ŗ0f$i rF/ = ϥ+NCy`tD=-~#[}ͅFk8kx'Cg.}>#G8;8Hfy-)0se(IdzuV[lO.}]Lb/Š2mU*T*upwgbrνa1qLV]ڈcx{d|$W]םퟍOgNV(k cXiN' y` D?r #ǽbqџ3MZasyhU60M쳱pђ&x}ɲ"D!xck?^SE߼ T2ԫr"EdvsU$ҀݫCaVKJr\RNvl/[x&QgVT*`˖-g};^5ckSO>^eW߀L?lޝYNWT* tȂE y/e99 ˜(I="/XPԘ:; + r NC陵pUWD'8XvsgmӠݠ3{ OX­RֶOrmd'c3/,J&{aI0u%XXv+L$ uPda-Xfoyˎ^6۰6lˋf`yRa\9̆cx{Ǜ0M-Bp7#_6@ y!g:# wXfsO/YCxMWӢl3W~.X}&9d϶/!Hd}as$XpÀb[ömضfl؎'}m0M-1f-me3XJ{ B84E{ W @AB|\>ASUP潱tG=B:H@7=y}H$o aZzj4Ob!?^x6u&Pq @$ǘn|52qC$(s R9pY? x!<3W- @:%u*fVffVVfvVV6m^h({7< pl 5oO(@8( 4=Ut  BJ~gt_眃w)LBYl`UXus^5m=.s @%7( RBWc>/za庍7d?ݬ"XY_ Vs_6paٳ{Ů]p(&,$c E:f.Cәz|tbݖkt2vhyÇ;=CXD|.1Ҟ\=Na> sO>`qa7m~eeybZ{޳m8endπۂcpmӛXa[8w8g.sze o -8ӧ=7w3֯ ٨Pa.38Lrԯg@yV?01O?k[AOX ᮟ(׾(~%MÑ@OKGDr\C(?i)iǧu@BwH<:,3 |R1p1W1 5] #ޜb8aoY^X%Q\`j#(75xKjuf ⃘8h~Ӹך@WmS3x;^gVQ&=u/QdL /4M^*]|ȳ%|$yDC%\ݖphwȂ@59B~>` gb1yOvRl>\LMry|WnO> B5\' 碠I1 @psd%K|2=cA2u!zإY1.89ˁi u4kՄUE?{w1u4C@$B-t5cxG}UX{օ==Yo=GN8#. Y6 {esY98>LZ6gF'E9w?fOQٯ*j%ySߝ҈gpL!S1qО) q@ ⢳CR>P3׶`lp-];p9s08-WF-Z:db(Ͼ;pG~#X @ڃA2O4}.kϺHm{_m_;QPA򘰷? )tb8v/& н FM3+|)2Be vYq\1ٶ{˄ ܶ[б̵f96k9&((sL0V"_,!/BiTUP( !sbbϾؾ(W!ŒMׂ=i8#Ka/maBo15E|i\wumoƟpgnOjaթ2y@,'B@{0o "G:0Lڦv҆#La0 ۛ&LÀ/iY賈-x=z.Mӡ|RB1{|Ox.ƺs8NKrr)%?.\[ nxϕi7d[>XWеpo2/2ח1ד1`Z~ǣc<36gpzÞ7 cKv0i}׭\>P ?u1,dO|)+au\佘m9 *Arc *S%0^,y/oxW#r]04'&O}7u@%DBKyhA]j 6EQ=w`JAy0^[paGMLGվ'W TQNkͣ.H* M9BDP >͖;P|8cˇ"`\?|~K/Ȭg|bCigl@?"N֩' 1b#V" a8@w`|uqt|O@0l6`m8p]OB8v[_08w !kO;=>Ylz)s/^4l؈~R|b#ٿ b #w)<|Cۿk_'#>z~{ppy[^jPŶ_3I֤S@:0wE+9Zet>0ilۂpVdz/xlۄcZmOu30fcP(+1e_ fp`sύ.ĹSsm,ZW^u5 ի2 0,|6L/9q7{gKLv鸼_!1|̎P2_a>:mP%0M3 FyAfjyH ?>Tա*:-08 1qL0nwf^O  6C!^ P0a]q^,_%ġ{h(-ܻv7fO}SP&~y'FzyT}*?$_lXj=+^_EAH+J,۶ ?N)ЅDq8+'땕K JZݩs0 G(3n@ P 0W)64yW^mj|ud *9PbXfU&q?C^z3oC{$)Pďpmocg& \"-ض@Cq1ĉ@FR5x&| Hڗ6e`4r`4A9Lj]kf\nʍB3{[) 9j{ =qyܩm}' s,VZΊ@RFʊ/n"EwRQ1q"A+)rxbn!yb}Z |p͢hB /Cg&?5_C0-az̋o/[[f@~f#<|X&g\0Q$j=; pAЮ*:w~#Pޛ#.M^59$&|͟ j~io'$p^}ۿS8eK.Wt9(%P%mO%Jҙ2mTAt/#/Cݼ O|\o.j@K. ޜI,Iw,;BymZ}# Ad6z#j~I28h.7|R]][j$vbcc ^,ly3}76`cc 6@2$! [tך{fdflX2"2"++[zoΧƹKD܈{\r>yxZzFðEN^Ѩ,~`y414]W{5$ 6]K`6͵7ǯ/DM ZdYkr$[.hoo{mW JjR@]$ "td*7 q(^5]hڨZޠC,m4Tfݧ7mZ, xTj55߳_G22Zr'Sl;Ғw"t]}upݴSkY `ZQ & D $ K=1՚;fjCa~Zz"Hdku7BBC dQ@DDt;h(>y54 qG~LSd]L9"w_k\^VГaV)+:*==`˖-8UTC4Y+0HZ  ۲/&8t)7͸]QGۚ,Ȣ,Y3:qLⲈ,GJ`p7GYVC͌}+BlpM_Y8e+M.0V,?]iH$VT׵E_)j2"a녻:Cb(!9۾#4L$fԈS'NhhEb@Rbt2e,~V=콍+k8V\41ૃ[oO}򯙙tc/sseW0-*{W DžFz`|j$!@8z)3Ts FfH:OZP@!CʹL0N AٍDdTn1( ԃ}44#DV cFyƧ擾_?7#≷kTj]ʲnǫHk/| B(OA^ZIҢĊeYW @4o+̓(=T8 <;?1Y;zs9Q}ϲeE{++\X(/tPhl4-AЀxX:0BX,䓏`> cM65I?c:aiLެ3tN^ n^9wӟM 3LLLϟ3}XyǾ|L6m@+`s#sm7~3@c|YX䣭v.f~t9FkiOBknǎ㳟k6DkAܕ!(jiRZerrg}>x x7+3;xrS;$MbR~Cv()Ѷ o!N&8c3?r+Hh ITOHm-bŁӬfE}C DJ(3O?K/R.Ⱥu\+IX\*Ri6,O֘@uLI;?!o6!fj-#m]Gp8nekm &o= {i';55M!7.!+dHG9 EL1.[*=tWGO khp$b2W\y%uŅO2^ IuyY'+_2Oyv6n}xj(:uNѠjjSV( *% KPUzHLQRjZ ˴r+Q0exp:ǿ<Lzpr_x&nKdch/ffBh5VK֏ R]ұ9Cyb'YdTvdz48bpO&bR/S-.Qi4fUUiT (e-ڨp-UPN=NC@JGJ0D«clذ4ȶkSo[UL&;wiߧa{?"o tQb,}RR  $dpcp0QuZM+hih:ZU)5khJ[UV#[jݴ`x0⋘)E7ll?"nU*4>N>c^dFQI;Re&Y kt4V^LV4=՜G'R"M"Fjax5]Sѕe %f]m-L0Ef Sc k\o Z fnELFƙ>ft[?bpD)f)NCkd"[8z>--\{^ H@qhx'+50 XN:'k)GG0A4A2AXc`z T]S0BMPP+HeDU@#MLCCRתE|&naЙ#PTV^)c{Ywέ&ZF}0XRHam>xs/:H!_{UpӁ(i^|9 ټ3˹rjF "2JŲlPUami>eύ@X{M띚qZ=wD&?(YSUߑhi;x啗3`+qnW N++'B?]A`ц `׊`ݺQGFuf4PM*ZlhT |nR>GGh4Z2rRCm5\0+j,m]`/ 4u*PjlFϽ譬F_H` 4|\QHc(m"" Z.F8|g^,P˾.Ol`Sh-OJD0RΣԊujKAmTZ wp#0i4+-Tq2ZuM)7+.N IDAT`Ѫaj L ֱNN@dqݧOb 9>ж5SpHv_<%CdG"-.+J]nEڴf$x3͎KaʔXVU ˳u4NZz ugGRN=uPf ]kuk2F}QhU0TCkb6,A*[am1fR*>f6^~FD4uo8 yA/Wpn L4 Zնxo;/~ N'۠zKQ2.u=ءz%'ty{ JCq \A(:pMVz ^jZ9ʥeFR@HR|+ͭG8 0pD;!ՏMde@,Ln} 7I;,KR+m%v\cHb%_XZ)glLvɵzڶ}Oǻ ¯VsXunx/wjn,dd΋t$DQ?PünR.,Q*,Q)iԫ4 "9jK)XqZjˀNORk.X. r"A`g9J>yUԖAq;M( T'o馯?\v^.WhһL15%UҶ[xh5ۮ) =(.8益ذn}}!&^}4xU-Vw"{.0C//'Rd6$~0< aچެ6*h5Z"ju U)6h ,Zm M)6pEP %|np-l{=덈|sŲrKq7~Dz-'DrcXVdLLb+/,]?or{A/UFHhFZNL$ˡ&\=-л x4 oŻ/9>=aj(xBH!S@av9VG۠`Iu:V[BoVPuVUư. 9+7|t>Bk"p<3=."^"o/[nȑC'ӌmn=0邀SI.L'`߾[ ce'd/2Cݣ$ǐuő6_(ǐ$\u.qD)f,-s.Hq1f!8ϺϓOx7?X 22+N,{Ӆ7`!4<4s 7'L\lwR[nkH v?Uı4L0L-K4{qǚ4ѵoiChi(UgI_# ~.-(ξHf۫ v9֣Hdh0ú1ˋ.oya}|BI` ts0>>n| AWϓ/S喘;~eyhVV)(uZ&E9.B^b!J (ߠZe*5Ս\@=_`[63ut]Ews m>>tmK>ð G)Hc{obpJfmc']`~Gjx3C>i80k?g{_7{H /t /0j =i-{ Θ@2dיg15]ZJ^?h4Qrs kUJK(橔 44fz$눳M@SoWp6kA BtWE-n_͙ig6 ^3SQt J#p'\o{"s _'Fc6dU+.o#Z }CC }S-Z3SݫFC(t| ]IUՎP wӮFW:$Y&3Tv]{0jT+*zJnR-X^5kYCWF{c`Յ?mX(_Mͤ^m/?z[lЦ~L%޶&8r1@fӹ6I}qkb;w3ySje~/?W8-2N 8~VMS.B7EoO z@^ [)J@*~nϽ[0Go޼kvC8/ xEQw aѣGy|Gy-dӍDQBFYy$nH`b$b,$;lE)nHQnon!FNۦ\7Ifr$u˖H_-^x,oz^0qT:C֞<>L{h n@@4bff۷sWs,9*kV$'aw.۶uVEO-$2 VF*80qK$ "^E&|krn@mQʬo !(Re=M&jB[ p\ mbxۅ,Y4ɋ/< {_V9(ȫz_]ȶfxx|} ~ K$iD!c >"WJm>[?]'ALl'&.`hjD l0",=4:hjr*; 7v[;e;(,-̹[B@`0 mKzўJ&l޼)A4$LP{4Q l6: Xp4^,LgwFn&Ks,#[ZPX&U2ZVSAS o?'h$m|'qd|n uhȈr,r|1$Ԛ_}$8^kךwx!&@`녷hb ښЍT3v%v.7nf݆͡sSU4fI14jZ9On~JaZ@Հ`8կ>4JK=׼ѭǟ|]6y\8?랟wӿ'58o݃W yS1P:5M,z4|nGp?Ρ x8 ;T ]V: aF?J]'$IdFHgGA£]t 9zr~RnJaV٨Ӭh*g]S{Z'e:|r?[#bgajH9oO m[zWH{=OvNLw xd ݀ tCH|&?x #o)?&<ΝD',.dF/Ibts4FL^g+T s34JJnzyF6;̂èub9s=z)> %HZOdxl_w^ :B]ο'֍ROGUJ{piMW8":hiq~R$R$R$$R$Iד$,Ӷ$Ŭ2A@vFy"4n!?q/?%Zh˖<ܳ &sO>ʑWgyu xӅh^0iFN#5EQ{wqGZs'3D" 0dx::^Nȱv6*zb wpՊfa&~,=_Þ. ]V\~wU-zy08ѭ{޼{$Q`/h(ug9C]m !98pt:ͻfgsQX^^v7Ej(I`:-RWz^+R*+'lj%PO-ScL\ q) Pm dZ7}76Z:~:[P9dƾ-[8z||2<2?"]^KYp uL4~W5*ٹ99"bcǏ35y%ʥRrh]mDl?9&O-4Mhl6!NZ=,oZ4 2DcuXu>D?q?qnpwbkjGu7O ^̈́畟I]Vf2mqWU竟'[^}5/iZO@ٌAزy36mܯ>T* EjuEan8S,(J$ekY$cXDRPşcgTKmv4ɶMUFCAS^rLY ӺVIQ8j}L\F_u09fKg~ m%`j9EQ nbϻ/M^LLL{|wF}j*5ӕjՕn@!PhUI&a% IDATЙr;"5`q~c3Gr%1{l X-S-U4 -KP|-7XYf @j 4"B"0T  J@m*p ,c4Y?6 ^? ?/Bk)d}S.0$ü( 8&4Uj"FVAiy)jiE˓Gk < Dh͗]׿?s-̿H?APuw5btӄbk=+ aݦ zBx۶qw=E^y's\'|UUy;y啗d22 t}NgHIRxY[HrX,#q@{_Ԇ`[ 0ΐȸ}[wa66),LQ--TT \WzFk-w!R\v!Lwl z_Y/u:Djk~O|%t@8 Oy> Oɰi3:Cg8cgGޱI@;_;(ffO@zZ{/~ <(-|bxx,ncx!X.8R> DAİ4))0µ ; pw6-ÛCU-QqӠCC B^c,/gߨvܬ g'xPL"Ex P'J}я~bѣGaaarLV4M5(bi*B ?_8]l%9fuSl-G @Y 8_27wdD:ERq"qO `fNg!졼axξf>`hh!Jq~m !O}Bt2y_o|Mqr0;;K>4fqabD!GJ(qd9f;uF9##K2(`&jE^CU[$w*P隊4O"ǒ$2!VpMC#a.au:j=՛(L|o}?ͷd"A?ZS5 zr iZ`=ZK}<_ji, %族3Or ?pkn%PV$So؀a9u7:g_8rss&1?w--R)( Tʶ`w4 vyFɀucuiji !贚Mz0m2( bZ^ Z @ّqs?B,-Op&d_ר;Mg,. NEQM^!ayZ`ge|&_v/l x?UԯՀ^}km}Z%sQ'>NsqN锊EJ"_^bf0TEfg&?>EayFm*_7+@kT5 K$~1D,0EDm(}7l7e^7|١oa}ww ~X\  ι즾-9tX<{n_c7 'V3/`*S"Xs"KQ֍ZF<&\zm%`!S*._Z! y2rjH^ݧ~oAiZ'KXq@70vܜU'ޏ[aBx9n^|?NB3(L1Mw|/paϵѫ'%XWj4WvF>maw]xx{y &<ج0Lj2RRV+3("KǏPX^p$SY.]|`&O?#agߕc%} P@p(ȾoqΝ>w? ]_%X ,'!?g>#i~Y`xt#{/~|'B;w>oZW' O?]wŗ4MMO1 JeHgJgIe )| %̊SY{qO'8 V|Dͮ߶Bτz9OZddl~?G'Rn ZB "ܓ>lVkn;lXt:CͳS|~(W {^Py9b#G055,BFA,#ő$ð |jQf'LzBVaiav^K K'lr,N2e e m@f>Γ,:OeIuGܰg 0|}˵wٰ/{Eć  CZ|v6fyǙl~sVn,l߾_" ^2 >g1," r9>đ#GY^Α) (J0-Cj5t]2Mi( z Q-㎫UU>!2MVӝ[ $Rm~1zay(O PTݾ?Y\XGkATORMtM'o!Ik:z2l4:=\2'x>5o5>r%ދC ysa-~] A-A{Aaދ@(lٺ^jSJ@|oG zmCy]qrKyCݻvq1;??cΉ׼P@ESua% `5AW"# N9^{lh6[,)WjuMO25y L=1=x4Mu{ɲviU(Vގb4r@^ǛNӱWxkJslm*n]tj~٭ ]wd2md~>BT>OTJ?5VM[1h?o/ymc8616 ӄ}_i:ӓG=6K L=?^ˢW_'@ NNN}ۿa~~#$I>@p# [ǡ!FtD2I< ZHK?9 z$2nQLvӼ$+ yO"H1cn0KsTE k›bqWeIBvQ|G?g9iD뚆Sflv+]G>|55o]ã~.{ayyWwqsyZq/M r00 `|3_\]jkID2$HZǤs`hh0C 3hg00١2!#s}uY?7 wӒ?!$ xQ~|?8o& 'r/᭝yDl̖ϽԽvP/Q@` 0B`dI p޽w<zk_jS?1֍v;'33sGDZZKFu:z[}'Um_^"<$ĀI&SdIg-m#v3Y8q g/wš17s/?L!7_9(2/? 'atp.Am kP@I/g488ƍYXh{$VU?o=ڣ~޹ m {e޽߿Ǐ3;{^zǏYZZ"h8`ۯT*Ȳl/UUZi$پELÚ甤tMY&īϿO;ߺo˟,![- *!~Ŀ??].t G فᏬe&r 8sr融e{9_K߯jQ?5 kWh||~"Y[˼KLMM9t5]($I{qk'Hbq?7n6TkU$Q$fGMU' CwL w~0; (Dzf, @d E` KvH6E[,@F84$2l e `DM5a]bvϪL誚>fg/*_fWW{/_fP8yց@"=/}_(nqH?mz]]1>>qL@!:.`mm ._ƫ5lmoc{k 00Msݺ,ea՜߇X4d"x**8PPVړU`4(!KA,,j 4ų?oᵗh Th^lݸBh\~[KW֟}/cq궻16ln's u:z@`3|oꇜ:u +++gss=z鷤++vƶЉ\B07W\;@PUNOSgoAI?@W^5*Θ?x<½o$…p2677px"J62, ]84@goYo}Fzп"T ڄ3ot?,%9:a#"LT@s²* 4/>]/9r׃)w,qͧ}hoh+{{u>~o[q<&gjn<7,pppm(ml+X_^_:Օ˞E$V@ǯGq.T;)ۨ~rΡ0MT+`<A~?|n @4W.]h{?U([3xJ+3XXX5 o{qKKK 3dwR,T2d2{..Օ+חv {՚J'gKai.#- 6Ԇ[T"`8²,Iy p2:$^ |)~_& (Q.|~H$wXYY܇gΜg~2`mm-iuXEPدޟW;uh7 7]ҋ `9Z-ccuW/{>əy-_}Rzjxݲv "Ѩ\.LnϿPCDzq:Knew0it"5IDATUj255MzG.]~|{$B@x #.\ӧ#nyF{{2h3Y2YVOZ9'{ߏwuȌ lְr ۛ(cw{+DZjyZh lzK[vѬ}/!_o0eC?~-ׯ*Gp-!R~ me)Jx~PV>lꮅLNP{l\`6]HB F c)`pZW/akl^h4ꁮ!@:ǧ>Cw-Hu=VG7z333Ec1bSTUř3g797 |;ߏ_=};p7nHӴa~?Oׅ2o@^? #k!ޞZ.:uwz]ZDlm\UPUzO06-\;WP` `]$H}/^xIm[[[x#̙3'>`ٺM l7,9!ޮ/?G>%L{o1lhSZ h ^@WxsEuu]X^^/OFSO=8~(sL):os=R{oe[m[6 (>y?gmۜSD":2[&6n>~혙A*ꉟ TvW bR1g]N/;o6>O\W84H?Ba8asݹV _w_ @:WP4Ю%%]/Àrc\_vi{0JX:j*2j*c=%X SSS<8-ϼ^~egVh(bZMSȧ>kTUUu0H 9-A>!AK ѫw#(–l%N* 6x9lC׀b|bhQ)Ѱ_^z[ *VWWr<)~qw}7~8x/|4$j,~)}X#D:`S5*G;K<gzhuocnnPw m ޯ'nG'uܺvSXuazR C^CV:L<2xߍo}/ ^{ǯ^O4M]a~ο|#F|:.qv?@0 '= Cct)EvCډ < x:~an4(iA\pfZ} FRFZի+(Jwt--܂'x"yȊ_F4MMavBgF1;;['{677Gr4ISM ?B{syH後He x~coB?Xb_/ !HȈG./s{{{0nv8q70%Mfᚦ% !qh:LƘ ظ5b WE].cn_g$U rC@`4{=[n4CPP@2 *s {3X&2L摽 !T!5M3S8]C !hRJW\{F͙EurrR 6?*l)ryH$HYhoWO=@7=w,w@==<}iݥw :ԉ #W'?4)aLUU1y^kϟHRHRP(X-txxĚbQ ߘ `pr#|#!e8:[;@j{}/Ad>zb!M^5ʕ+v>kYVc*PJy$1,ˢcԲEþEcTz۽R嬅:;; 699%q$INgI&C%f^v %Of?Ho'A͎2 ln\/|:+xzswZVwsh4t`%@^RUU(u4M300"BJ-JxfdHRlzjŢ299-Uۨ}Am@Gc)\@;2ۀL ^m=2p8(/1>;kB9q4Mj|Xp?iSŰ!i BpIZU*VVV@}AbhMLLMĉQ6=3KgL&˓D2E(!nA3FЭ߁]H ; ȱ%X[(0H$0 .]GcӦiqλߚ^шRJK)fN)%s`1g^.,…%G(H/8M3"˳AŸ14 eY1y[Y{ep]`O<7?x.vww/2M3L@p\4s.cQM4M G!^9^8 |bȤ3fHR䤘Sddd*ܜf=txoyl{hc7K @.wj>z(wjLӬ@l⯜6vb,0FM9,#PX6:,ˊ: diMQDQaY`ETULR9*!;k5VammOnerj ' kvv+HR"͒t:ݒ./z_kV- lALKVuaKuG9nzfCTUѲQX*L !l? ZBJ"EB(b`FCE3Xi)F0뵈a2T*̴dD."SFGǬ1qIerrh@ur%/D92q`+k3EN@ q{Yf 0sTUb0F9I]a)I{T#nnSf>ЏZw-(eϦz*9?9Ob9B 66ONMMx|*8jܹX?яO>;3zz!Ξ={ammhC3y 2~?F ] 8\kv@ i1UUētZLR㺮Bz(n,Xej5W'[sHT!N&ø[L hmoo{ñuj\(lx2n( fGe A7]d$tJR68dUUD"9JA !bc7 sooOm4eYih4G$I~w 轘?+hcN- L70 z^D q$4-iZT%fUU$dR'BRJ/sn--- M㔳d@m{Uz :z0pvh4O)M(SHdRIRT*UT"9\BPUU!HΟ?~ pf9V6 }gh3s'-t*9t*MxBUU5>A)d2b5MbYJixU^{dgg ~~ 0}z(%X4A4 =kOt܏ p-6J*t:=H$P%ŒBZcJ"Z%h/9 6;PfAszbv ]?|lMpPlPќpGkڮ՜<{g0?wW w-v~1b|$a A [e=w% _7Htv)`LOt>`qpIENDB`(0`  * >Yt"""n?6&  2 Jf###---333666222---$$$666555mM*  :Wr  888TTTqqqqqquA -Hc 0.-MJHjge$$$R! O*)(FDBc_\zu%%%Z%  @@@]\\zyy%%%\& UþuuudddSSS<<<%%%\& lllƭ|r}rӾ;322BBBLLLLLLLLLLLLKKK===%%%\& |mfaOIE2.,m_UPF?  |µLLLLLLLLLLLL'''[[[%%%\& mmmHHH---#" 30-B<8OGA_SKl]SucXp̱w82-F8/ŧѳӶպؾʺLLLLLLLLLCCC%%%\& ƿyng^UNC<7*&$WJAiXLԫ$$#wbʦ˨ͬаӵֻ|LLLLLLLLL %%%\& XXX444,,+0.-;85GB>TKEaUMo_T{hZp`kZybRnXJo[ÜZLC'''aK<ĜŞǢʦͫѲոϸTSRLLLLLLFFF%%%\& ĽrieYQLC<3-)Ŕr“s000ߧĜȢ˩аLLLLLLLLL)))xt%%%\& a``HGFGDBRMI]UOi]UteZk^sbydxbt]lUdNy]IaK}]ND110nP<™Ơȥe^ZLLLLLLKKK%%%\& ¼wmm_VWKB?60*%!D0!d<<<$ r˜ƠMMMLLLLLL443[RK%%%\& lkkfb_ohcvkdqgvi{kkkgbwZmQeJ]EwWA]Bg_QG;::qN6{zj_LLLLLLLLLʱ%%%\& Žvlm_UYLCD92.'#"_=&YHHH&"gxݤ}NNMLLLLLL===:1+%%%\& }zĖvȔqe~ZtQjIaCX=qP9zQ4SeWNA@@uM1pxuaLLLLLLLLLw%%%\& ýxnrcY\OEK?78/)#  !!nB#zPMLL(#_nSPNLLLLLLEEE!ʬ׼%%%\& ħɦΤӢҝx͔mĊa~UrKfA\9R2qH,`?(pD&ރCbUL?>>xM0|\LLLLLLLLL(''hUέչ%%%\& yqtg_eYPUJBD;42,(%!"$#}F sILLL+$ ]SMLLLLLLKKK泐̪Ӷ%%%[& ɹű¨꾠븕鱊~ߝpԑcȅVxJl@b8Y3Q/vK.iG/qC$<\RLIHHLLLLLLLLL211bI8ě˧ҳ%%%[& ½{uvjbgZQXKBI=5<2+2)#*#& ' )!+"-#/$0$2%3&5'. J pHLLLLLLLLLLLLΙtÚʦѲؾ%%%[& սβǦ{٘k̊]}PrEg;^3U-N)zI'oF*cD.k<}BMLLLLLLLL<<;?-!™ɥѱؽ%%%[& }vxldi\S[NEMA8?4-8-&8-%9,$:,#;,";,!<, <+=+=+>+=, 8(A#lLSSSSSSSSS{Y™ɥѱؽ((([% Է˫ß묁ztޝpڙmחkҕkΔl˕pǘxO-~<(~šʦѲؾrrr[% zu}q{n{nzlykwiugtfufvhvipd0|PG@~Ûʧҳٿvvv[% Ҹʬ¡鲌䪃{۟uؚpӖlГȋhǏiĐk_:v6ƺjOŞ̩ӵvvv[% ytr~nzjyixhufteugthsh-ň]~}}}yIB<ǡͬԸvvv[% һɮ縘Ⰾߪ٣}מwјqϕmʑjǏhÍhoJw>ϯ'&&˓mt\ɥаֻvvv[% {vpn{jyhwgsetfqf=/&qJC/ ոF>9ŤҴٿvvv[% yyyнȲ㿦Ḝ޲٪֥Ԡ|Ϛu̖qʓmŏjZ~Lͣ:99{Xyyy}jչvvv[% rrr ʿŶ|xqnzixhsereSC8aA'ȱD>:ҹvvv[% nnn$$$̽ijټ׶ձԬЦ͠˜|ʚxɗtlZѡHGGdKşĥjjiyvvv[% jjj+++̽ų~vqzkugqe_QGlN9讆Ɵʦϯ?:7vvv[% $ddd000ǽйδ̯˫ʧɣɠɞǜ}f٨zyyzzz{{{POOcK;Ûǡ˧ϯԶ̶ZZZvvvZ% &^^^444ɿϽűzrwkteY^I:{nnnooopppϢɥ̪аԷؾ{{{=:9vvvZ% -[[[988¹;ͺͷδαͭάͨ溛fedcccdddXXX,$̪ϮҳչƺqqqPPOvvvZ% 4VVV@@@ǾǹvkɭΰyoWWWXXXZZZGGGG:2ҴԸ׽jiiggg877vvvZ% 8HHHDCCǿɽʼͻϺƮӷxngMMMNNNNNNOOONNN)'&Ϸ\\\]]]SSS`__vvvZ% ;:::HHH~tl|wxr|tntmhgb^XOHɽecbRRQQQQRRRSSSQQQ[ZZ~~vvvZ% B000LKKvvvZ% }}}-???###kkkV# hhh___sss\\\NUUUBBB999HHHXXXeeeppp{{{???z> , >N^m!!!|''',,,222999>>>???@@@IIIVVUcbbpnmzyx}}} Q) %0 <KZi x&&&,,,222888>>>BBBEEELLLTTT^^^kkkSSSH,  '.2)$( @   7Tp###%%%)))Y4 &C` |///EEEYXXnnnMLLz1 *Ml.,*LHEgb^}yG &&&CCC`__|||Mppp___???nnnNfeezsg]WLD><63-*)tfuplMMMMMM;;;fffN`__gff][Zidawnhpe]dXP\PHЫG>7taϯҴֻMMMLLL444Ndccoooa^\RMIE?:MC3+)#,"z[222]Ĝoe^MMMAAAtlNsss}}lo]dQuZFkQ?bJ9ZE7oJeUJN=1zԢMMMMMM'&%˹MyxxxylcxfZhXhTfN|YAqO8fF1Y>+cB+|S>>>zPxo^MMMHHHaQGM}|{|rhq`TeREVD7N;.T=-X=*_@*^>'Q5!i8hXMQ=.iPNMMMM++*ʥؾMᄂ¹zjgWlUEZF7J8,:,"(  .rF===fP@MMMLLLE7.˨չM嚗ô˯s~aqReFY;xO3kG.^A-T=-[+cUKKKKMMM555bɤӶM뎋|o}^nMa?U3|K*qC#g<\:"g<lGMMMMMM0("ȢҴM!!!𔐎urb}cQz\GzX@{T9|P2}L+}I%yH&sJ-zCzccb_DȢҴM___ɿ±yvtsv{~pe]jHaɤӶM[[[ν˴ˮȧȣƟÚ~zwvx{L,߷}gYʧչMWWWѽ۱ТǕrg`[|ZlMoAhhh̞~ͬؽMSSS¹˷Ǯä{smhfdHvS@3wf[ѲL MMM˺íyr}lxirfrM4nnmzYԵxwwϯLIIIű{upmhQrB:5ÛȦrg`LDDDͿIJݼزϦƝyb|}}}iiieOŝʧѲıaa`L>>>ɻӻɮw}hkkkmmm432鸗ͫҴؿ~}|mhfL":::ýw迢zp[[[]]]?71ѳչPPPL&...{ulfMMMNNNNNN=<;sιʾihgZZZVVVL+"""ҿ̺ǷҾL}}}111GRRRj333܂7 $ 5FVf!!!v'''***+++999IHHYXXiihyyy뉉FFFW #3CSc rd3 (0  $ A^{""" l,/Mj:87WVUqqp[ZZg (((DDDaaa~{yƼuuu8ͼһů~{yvuueeeGGGuuuuuuLIIIxvuic_ZRMKB<|mB93UG<éMMMJJJcccuuuPMMM~wspf_cVMUG>jWJǞ/+(xɥέչMMM444uuuVSSSyqvg\hWKWF:M=2w[GoYgQBÛʨkc^LLLga]uuu[XWW{q}i\mXI^I:R>0G6*lL>:7ԕjϢMMM888ȴuuu`]]]~pl[w\IfL9ZA0P:*Z=*kQpS>xm^MMMOE?uuueba`omZuYEkM8_B.S9'E/ a7EA=VNMMAAAquutkhfevt_aJtR:fE-Z:$P4!^: dGGC@MMM<51ßֻuttpmki¶tt]`HwR9lG.b?&Y8"M4#]1MMMHHHeMƟԸutsGGGurpnǺxxanUhMcGaE`FoO8{\ZWU|ƟԸzzxv͹ǫ{rkgiX9Ⱥ|Ȣֺ~~~~}ҿɮ}rkhy`sR~l˨ٿ˳åumigLm[N⺞|||ȿ͸ĩzqjrU|]uuuuνĭvydnTMHʧƮlkjuuu̹«suplgggkYͬԸpppʿɬuSSSPOOseֽTSSSSSƸҾ͹ƱƾSSS}ihhwUUU&&&^(((z877GGGXWWhggxwvψޘ짡dddM   /?P` p$$$...111J(  +I g$$$AAA[[[}: )))FEEc_\xrMMM-%%%}źusrVVVNNN/888xww^ZX^UO^QGzhRE<ˢаc_]VUUNNN/@??䷴|i[QG;29.'cMjTɥJJJNNN/@@@闐}qo]_JiL8oM6jSCq}k^GC@NNN/CBBviiTFR=/F2$;)~T7xZEMMLtcNMM/KIHɺhiIR3hB'nD&gVJ@=<粎ؾNMM.ljixeoXiQgQ~W<|lÚؾkkj.ڽϧĖwkeqzzz.ȳvjjRvj⸚{zz. Źɮvhlʦ{{{.ɷ{ogOMK˫{{{.~~˼İѺ{{{.}}}XXXhhh& )9JZ(((k888|IHHYXXiiipppb x2goclient-4.0.5.1/res/img/png/ico_440x180.png0000644000000000000000000000246312675050177015263 0ustar PNG  IHDR9|bKGD pHYs.#.#x?vtIME 3{%_zIDATxݽeX2D/ѠPZXH`&FPcLОHXYQXHᆀbcF6" quYݝp1Q;&nV7{o/ҁZ}f;/9z^̯/;7е]ke>LGW$pk/_Tj$3ԅK765\lzUQZYk'5{ -Ku!U7瀞mܲw=oU7yzؘ:vSؐw6`86I88888@@@@@888888@@@@@888888@@@@@888888@@@@@888888@@@@@@888888@@@@@ŝUyfW]ؘ_ylWl/fQ 6Pݰ~W=a6ϻ[#{̹ %=Bn?&WO+p3sflG9 `O>dfTh3N'۱;huO97=xlfy 8AV@ylf}WYW{__s%֚3ǫ[ >V;]쟑JuIENDB`x2goclient-4.0.5.1/res/img/png/ico_mini.png0000644000000000000000000000136112675050177015263 0ustar PNG  IHDRd-sRGBbKGD pHYs.#.#x?vtIME 4RqIDATx;\eJM"ZF;+E;!@ CJm`) C-,  Ov`䳈HqY3sYZVOVTT(%TWUŃ.zzɞ𿷪ՙUfC_k=Z[f/8wgkB_k=X}Rj'؄gf板B_k^]n6\ovpV9Ǫfu:a؜թ]WiWU6]`N쪓vMe`N@&B: t@AB: t: t@B: t@BB: t@B: t@ t@B: t: t@B: t@ }} i>lWw[f/MhZW\UՋ6Mymf.ԾgkW{ճ3[;73gvCͫ#~՝nq:;3q׵XUczkf~ZtIENDB`x2goclient-4.0.5.1/res/img/png/ico.png0000644000000000000000000000655512675050177014261 0ustar PNG  IHDRTdٟȬ pHYs.#.#x?v MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3gAMA|Q cHRMz%u0`:o_FIDATxڿ˕e98$bhmV*[Sb(PRl⠼K Na`S9h z=LumϏ;|yx&c^HA^uVݚdNPW_UG7 PըWW%KX˂amz:ZPUUfǪ/us> Y~>qZLrvBQ\e:cu;WTN3_W`MTVԪVs]Nb:/U 6 jնxQ T7^j! IENDB`x2goclient-4.0.5.1/res/img/png/macinstaller_background.png0000644000000000000000000016504712675050177020366 0ustar PNG  IHDR+sBIT|d pHYs /tEXtSoftwarewww.inkscape.org< IDATxwde6=ruu d! T@X\1*+E?aA]QU\װD\0&w~J]U]tUu߿:uꮷy˞ """"Z`NthAb%"""A$]""""ZthAb%"""A$]""""ZthAb%"""I E+U@WtM@W4𿀔D%.u!M*B>!EƎҹMS* >> []"""".00T+hlv. DDDD4oB>nmXA\*@įb ?BWۻj[ . U UՆ7 .,Q6U;}:t B}~pkh!˚%!%`K@J [WW0Q}tU?H@S`KXF4e!Js6lqt*Q*I-NOX&-6d]""""*Be% ^ݝ˖LZ[[YmH30-rR*I\j5mǝp;.Eh." -4Z%2N[HmWn]"""E"UT1S dxxBtyٶ]"""J@XYYq qI .VŠKDDD`nM%KfmL-MR]lg`%"""q~KS$$f2\JŠKDDDc|j`R 06 mƠKDDD4uz 0er6v*eepC0u)!00P+nM%K&3Yo ]""".)N $Rb2_0` 071uZ9+nN%H8O% DDDḌ>SJ<0̓W) 8l0,a!-ĠKDDDE}R 0Cs'ܚV k1$ԉAMt)I(sk*Y*[KY`A~C)چ| R hnSWo ]"""˦y]J60`Z\m.Tl*YPT|۩doO% DDDDxuQ,% 40| N̖S|IBBvN% DDDh) )Ӡ4,gɤ ACōd}~Z%3. &bp*Y7`%""/) zUWnCJ角u]"""ZpČdd Sɺ .-*0o P]jΕ7DSltgʦ]JK. IN% DDD3PT2Td$!n!ǩd=Ḁ E;=4哿 m[d"'th!q)j\j5K% SI ,}6\ XcՐe}:|PcQKa vc 6ttuͻd]df\fyV賊_axDDkU/聡I$c1 |b^Dzt!hK!Mp(c2xR8rȚv\bu1OhaA͙JW ܚJ.MfXoKڠ{X\`ppdquc4rf+'yg>F/ߊXyL&A /aYOSqk^SVn-0<Pv\tRomngL;u;p tP~G۶qA7wދ? B*s'~~gP}S.oy\ vs1 3*g`.^y.+S^K)Fm6 m~'0 \O;D|u9|[R Dp| *.M%dSɨY]tG.w|5XQJRb|ͥw|e1csIgB!3_BdYSw^+7DZoϿCCUo?74.Wp؉}$N- ( VXvZGÛ>wV=n_{l^Ԉo6×]Uz?00OmxSr7o.wۺG$o|ظ~mˇa|QBN͛x}LERU "*@]J6p7L%8ڣkPtu8_-uV.}ㅸ察ÃvlF&nÿMŐ{Ï?̺l?5)qt7뮘yAyxxp#CnM߿Jx^iq=Oax!/zz5t;ŁMŁׯt]/~G}4<58EݪW@usbO/Hݗ^RM7ߎ;؆LKbIX`% AQs#›?{Lсמ}4.:8<<' n>j[^{!nZ9{ J+=X~Ewel[nxMDDbh%!W]Jfc{i1MNN>Uܗ8j LI{qԏ|ذn Uw^Y="s3|Őf:;޷kx~|ݯkM%˶ݗSBp} ;ǀ_/`hhGoڀל|IHxݫVq>|7x|4Im3‡3>#[@jtD$拻o3>s;wugKe3DD5^8!{?L3JmB-e״HYBU_9;UR&E WpJ/ ?^qṥo̮sIŋuk>FNEzaBѠV`j,ܙ{9n]5oJO/²ƭh4\u<]':G޷ ;>K<}0 |mgCL<1c΁b1\cGvF@߹qߩ8O~qsb}V&oz;n;~eopŧS޻.yVye뾇7N#Cb }W!1p:xǿQkq`i0BP2p D٦H)ѷs;)ذ|زƇUFCiI GMlݟSx|o&M\]t!Tܗ:7`ů#gb-g_x:}G΍Rb;.։ڶ?>2 3{PN\q髊_7L(֖¥o+ Bѫ^g$r^)̴|?_ 0^Qs<8M6\ /.^qD exɧ8YYu՗G7 ZCj^<1A*U* >&Q/U}Z6ýX>z7oCǭy}8bA}n%) Fxx&]#YmoQ=t`%xg~vOڲnJX܎.} JC_%W2;\{եů{b+~d,46/zO&׶t 8ƶԺ;??UN3[q܄-o+VviD+t7n\³Ɗ_[v&1@_źN\ |X@ȧw-[b,fܽ=GMcx,7QhO~'% }iK=2y;s;$>!/ OT{P/:vUo-VN1w4lcD(w#RX%֯/#:VݵzTq4MuYTdiH<܍+>o㖑!7Аɔ6@yeVe4͘\SjvY;+p3$D䶟Q(buk*YΒ IokSPf2W>깠;4q ٷS{< i3 YMة?itT:W:%K ǡHsy "?VT(.$$˦8PT1T)hվjSO=+վ_vl3zs}w[# `jWnRɱרg`q7Y+Uq@T011tpHP\8;-* aDl盪*5/QjPsxq?6.` 5J)1s8v&vrr| Cz&J3 m/v?|OS^p(dvPɃx'(g_Yy[_S|5=ۊ_i|5Qb9K_}Im qx،)sܴV[ѕHk |INZÖ>ra*-15u=iq*uU i80gU^[3Ac_] 7Xw !J{O@JɯC}ݙJ0;Hۂ5+@iesÆ 8n@zů|pmon7\|֙Gm_f v] N3[yk@Z^ADMS5lZ)8p/i\iDq=} јɩduÛƫnŵg(۶7>Cnc۷/O83p+jC>^𚳎j^q֖S`&|ą,aSVԵ+4Vzr|+~N);HF-C~e,VZ^v h#5.MDUa*ٱ#`(ddL,RW yqZNZ"~յx]t$.43_LW~vp}2c}/?'n9|v,+5o5WBdYAk ^Gl\~8YK e>Foد|7;6\j/|gů/:l5xDr_ۙ[q?wحlv'GQ=o{5fCPb;68^?C7;)LD{׼ 8Y$ּLĆMą*궞W-cu m/-v@ا`'+M% 1,nb ٞ#JF]J@PяpZ{Q?_._:Bk7㵯|×sxfVj:ůP.}s87yYg{ ˗-t%lݻW8v?k׬z;BGqBQ|/}Aհk(8eu+cP"N;9 |8iػp 7⦻~ / +aӒ,-8x3mݡxǿ•P˖_܂q YCGK^׿꟡i]9J'Cػo?_lZ꿾 oo`TSr~{K} 0v.yۼ?U)0Pgwli7L%-|uGW_\ n?խslDHuY;_o3OE__4M5oCEǙgW}d EQnfv=0}݇8C/$foBHDNKFv*!/,4y)H$`6VYgo(~}QG UNC?] 9}3vS_.^!oi IDATd*Bڮ{wOx~[ok{ac7ҿ/8yB=_e<_T~/#T./*}~ p'`ӦMBn2w~xrZdBx۱u_;t]ƍNĪUT*&<%OV_W_޴a`͚5\BD-UzHǖ><[[hK2wGNC.u!9|n SI beOu_/R\~=xXBG! pzt\MΝ;q{PCU.!!'aa4c,Ʊfa/ ߊ/]nF*S8! /{8ӧBqOw={ "=pjݿ} ۅ/9 ˗-A8F*(nCxdCSx]=xiك@z'F1Hgm$,/@D#(&0)FʻB&vx8a# /RF(*a璐@PëZGDKWE1غ:,[5K1R Aa3Hq(CSΧ]])gm.~3P-5Q🎙Z8qk1p8j֤nQt?$pJmE;R D4Y il.)ʠ M`%"ZT> AZ8h?Cȧ`(42mAhS| ݥdYj;d 0l,=Tlb( .S"yJ` 0E#gI8Q- hiɦ>b%"Z S*wZRb*Y˩dDX~K$L&tz">So$&m',.Q&]"ws& -U65mhc%"ZFT2LB",4QFcVCmKDUeSɼ.M%첩dq &$PR .MZXѯ~;\%"QR6,Bd) &"#Qf;}ZT<70uW a[-$b)fWDCS* zopZ֧a{riI$6. DE]"y򖦒=(2?,r˩dԭDsH~SLG`OQb)ՠʛt]""( )8=M-+ P(jLDSgHȸ5F4AT>{-qq qN%.+nsڥ:͠m2.I縢KD1j EJd)ܺBԊTkG!n7q{Jb++ DD 3y\jnZ2dSɨ{  8%:Ke:vx]CH҅V3ASEqLFfL%k9u+&}~:fha$Wu0Y¦Z]"*Y[XD4ULJ"J1\RI #QM ?.-aҕVC4.Q*JrӦ%V+ܤ(1\*ө&051I˚>ÅF4A9g*qLa*YiBV*6psH5RJ GM7 Gqnj2]"Zt1.tAtc A Aյ¬ڎKXnKJS L!U&MRd.毶SɨWʦ;4M{r>r W1A\*&nRb*Y JFJ$tr*9WtK)k sDdb"Z"(uѺX;M%9b1pdu[ܭ-LfKXG̣t4hnqN\XѕRe0.5m>j %$RMs*uWAP`P߳pK+}\Ц]".+Ipв˦-l@]J@XVثtBv\thU[8m*YbMZVzc*Y0/apE\)J^mD0,a!`eSB=6|*^\YmS.pj gܪ-ei*xSɨ{ ᄴB,`nTS!%nS^[8\J60ũd4uzBJ Gt2E4V2f{>c%ZD櫶0171^ȗT J > WtNBI)1,v%rCاk}KÆey6 "]Gܭ-4-D~*YSɨ{JLY],SɺIȧⰈ,aXhܙ&KD%U[*JT2bM7TnfO| 6Q Kԣ|Fa{ShX~pC*pK+X9$d]GU6.,aXH(]hj.KS棶pT-K)2| ҦjH@vg;}*&n.s՟AWmal*QXڧa2OOtXtNbDӧBmʊn6 D]ǣǯnNs*CS&VrCYT/Ɔg-0Q[X>l"aviWu{<7$n b.Qœ%m'JF hʴZhr"s[gۣ\ˠK{tUSɒeSbJF*04j5Uݜ%0mͨ"!D3Mr(Bਕl;VŠK"QJrSRL) i,;SL%O,"aזTF&'19YS8^W$#3*A)>`%j+!p&ӚbMuXا`0a(4Gu8^K]#Yl }ϖNhTE,qˆ= |*io6,+=m۰r"L7`%j7ZE_*C>\֧aD;Dơ MqmBMRD^#Bk A2ql.QS(n-Q 65Z5Cϸv~vxY<3`H> !7գϯb/pxsg*Z{t*Jwq*Yy Q DVn[Z2ҰϛC|ml`x `Ր_zbh 6bH%+_Q !e V5$Q)™7rim}͐v^غ?,Kp-B[j S`{+PͿ2TE`IXTQP_nݪ+TE=$ B 󳤡WEi@/ptA%a=nm)1,[N%n(@>ܺ\ִ*:R6ۓF$b͐Ρ5xuǭf)C75wZq3QU2ھz[J60`q!A CAAA^5\)2tkSѸKԺuQm4ea,4QԲpW]eNiD~e͓3HĆeDX[ Ɗe˶o:dХE%Uqr-\Β2qp2uz1j+DDDB,n!J<'%a u}eR>ӕd;ye0Ӎ+ hԱzHZ0pp*8_ة;`Ym]KΒrIx7#Q#zO+ 5lYteaT4A I{smG C 96s'J)K`Z1mظKm{GWpj/v b.2҂&pr{'26v*uG j Jv2iAl<;=n"!-1c)|.-`6` ܖώ:X@CNujD钐 ]7D¦ø[@PÖRvqGgQǨ+=MMHq(2T<Li6ETpeMfl<;5K gL)e=>2Wq3Qj2aHօ3"_ ZWLKb2i7q*t&*z ^CGft90mg3,m <3D04X2j.]כ=k$w4oC!g$b)v:]83Jp+I JcY(C{T4AG%~h>8irND1YP^] yXm*]ܫ% YXh0ȗ2<;^.h̍hRJW2҂!0OC;v0(C.#U0r­M ֥J;Χtx4v[: Dj1P(IX(S&I Gq;GX@دbہ {Ahn1҂fhq!\jbx )ܦ`;`nEدb(b0*xT, k ]cՐ^Pe[ge)CSXu>`Х"Srј)\jOoͰz @>kgzHh̬@U"Ru/ҎFH{rLXشӶ7\ Eah{X(76>rEٙ(; b;CHKO"ómRktM x B185˴$9UǧpV}# XpqcaAQX5_ 6vO&mz*s_U n5Chu-]ƅPZaB8] jL"0ԐHthu73m2T Y72scGYvlGp+Jv9Ne> fͣ%gɎƹW_yiMk,#ԫ6?eh#kx iRD^` 9\UH0jޭޛh(Bn*r(p縭J huUÿ48mڰ ǭ-(ΆOڄ7WRuF%݌,e qf4ya7PCY텤0LFcʭ^g+9|YNZy]oYL"$9پUjۺQ$xu:畮>wA)(Qڵcᫎqκ]b)!aT'D{tg^)۬ZnZl'Jڹ>Z8BxJ]VJCjt mFs-KZݐW;6vJVS_~Vf6z^>|Ǚ׭xfu&Vp+1%Z&",ee2_AzX#U_\jm O֞t]]-vn ǵGDVNSI44$%7W=e҅ǩIn \80p5R[wt wzï/exY0K ?`br2ɑnF]YL&uضJY R{eRC %je+ϖ={Y=i$ڠƲpyv,L*?p _)K* -⒖:avp>bХTl9-$U _ѭ9/Rml巹'Blյ|7]TpBtCMϴu+($SWOiGwG[:T9I4y+Axf׎jPVp ,eN@Pʐy5]fХP9"gJhSUjۚv14lOp6M[yyYYꐁbQΨ#7ʲKcƅҎvuG(t#*ܶsb?VVk Ǐ gI_2̥P0աiwT471Rש/h:JflxO3Uγ+ԺS0atjx+iLډu 5ɵ$JZDVP6Bx~,W|]/;sÜ c:ochє5~ߙ];^֕KX͸<A:`;Sr6}̽&R3ԺhM<43-ܖ ВrZ+R0_Ć[@){oli9Ne#!Ͳgɇ[!*ojj߶DB1YTVz p;N 'PokLԪ%eȗ2$36=\N.-@s=4VdƮkCHgocΫ5Ժh|hjʕ/Df#!ZnN?Yϖm1 r(V'PK+JOvBspb4Vz:Su`Ep[K+0th)e:NWHX{$,eXʐ\ؾܨ,KlgXWgFF{Rv]q$7uՎ_-8.+G0NLQkZ)_3S\i5VZ|]j> ++&u\@vpǣ)F; g\jHZZ5s4| Z_6jq{h\ѥ^Q{}DƮ߯p} ; m +29|7 m|ap|5‰D+Yӹ9 ߦד-[^? <\Υ• ߙ7\S񜛬~._PN-oY=WC!ѤdvڷՎ$&>ua*epcEײecSNKMkiն`;Ѕ?jWgs P҉f+<3>6-4:!bfVA|m5wM8O,ֆǗ=6u&k!Vn9d59獭-evjHǏFVWkkqHT^=lgk$3NI$4k 9Ͼbs0 OJcƔMƯ3yp:BGFo) cZoP -+WQǏjbځ+o0Y28RX洹B%13Ů B7jw22,bVtí˫5.XʂW*?q QL۰ˎڎ`ۉP[eFY a,]a'|hՏYA|F!Nf$s5j>Wt R@~_,0X y9!~\49WW?{o-Krw~#r޻$$$ 4-o`6 csÌA1 ،a`f8:rZVV[.1DFfVVDfDfdUֽ=͈_Deee~vWE ׏U5& aVe%A'Y<[90U }ΣIv~yOy]C/@q8YG[kWw/ K<]P1 2\˞Xۀkn6!4^IPE Amec,ś^twPkp_*7 \P"2 gԏ}TI߲l c*!^bK'm uW;F4//o틩w OÚBj=MEpjƒ;ɹ <wUo5 k-yZȫ{t&՚CKݎϖyc ܖ~0[XT]M;ZdkVfJ?]f&޺"dzG>]Ձ^^Bp8qF&yy});;xbw vE(_>3 Bȸb=H].e:}O0%o)nՃUj[-o+[6  6qؖ D߭.6ڪn>ﭟw`,{mT#ց|ls}Br칭TUQepWJ?fgSj[Ʃ|DxmlF1 238{M(>Y(C1Bږ`8yljV&>,A$: n7+c6ER<LJ7&ĮmS MϽU[ 7;q^pj SG:W.rL(Yl`E jmuᖇ%skCk{yY[?`Cୋፒ$ʠzA##5e$G]{q/Y+{xٴ4Nm=D[[PVo]ϨoJDh6/Ʋ dep+_/Vs[k dXZZN_6dۂZ՘ZGr<^Vdh[i2w&ū e$6nU^MdQtt7e]窗Hnb&%4-۶k=M;a_fͷ|& ތ|%5RhU#JHvʰ*y[ƗCƺJ4z)AVz7 6Wb,"d3xm 24br(/_8% ]<\}n"L/[}2Mpm_-4qVzvMX,=dž"k`N'WvEꯢ5}1{{R|IӿOdOm'D)n_$ciBk6HUPSy7+l6J,Tu;q cjOju8C0aV!.wGiV,02{+{Q8l`ѕeYs%y9 n @xF <_ ]Idqkټ]mz>rvUe9 MYk0 pqd+.פi.: c써Ɩ{ sՏmm-V-+#/2/K^ k.vPP?۷yWq=mZD$Oz>%65V%] ^D$]~e vO&in@Ҡ}إgexLv qARS4W(I##q=_GQh"] cE,KR)Ud+M6Iql6v$Som6,yJMdm6 xG+4t6>D6_& "LzUTYc^@A59ـEȯEJ0^ "=Z!(znඬo7}!{7"yo(|S7$B_#QW|0D&veM2@ a O8nB;C.fe8q0C6 ۉ.7F[?H^#:.sx|2AnI`/p1[&.V\]B7q{ඁ綬z W0Msx+>sf1R=9ܪF6]a_寿%#ڐ ]Bxݽ)m 0V[ %$p'֖̽!CZ6yMc>#<&y2$N (0q VSf . DIB6}E \wp:Op ܥc.0qP>;@1\߸v[38ܲk{<651mlɓF",ܮ#tH]6/ū?/z53|W`f.IJi6oƧykv6{*4 O1` nÈm9NHۼZ#Wd1]tc%C(D%x=&c]hA4u6VՕ%%<|=—+ 'Y 鍚|ph{#/O7W}"^_zxp}? ks¡Gpy UMq4<.Xla"du3\d=O.0]t ;hE$﬽2x^](9| %  nq!6#wu-& Ȁg>VR`/p0 Ơ.vq,d[FN20,Y1?Rnnr(p 8V(Y OC>w e@w /y*?#gYD<7'Mk,ØzMUE4MmkjqUj>"kk6]i< uKooOܴ_w"#{& S_FIk( >]C$˖ۮ\C^T^6??o_#/}F|SbkQb+/Z&PlߋxnukEdG K׶C՚;SPZVASse`VmíGK+{^j~t;EZz%l=![p6Op0+=&n8{"`݅ʻ['w'Y%^ۋ/oP|Msڦ^۰MM<6!wz&'iFJ~B汝&2×TΝ\c/["7d(S;ݤ77p<&$]?[!>tS/a] UE azU*=C6 &Bл[e2X^cW6 ?;'k6|mm?U(r2̣r꾦Ǻ\qv bCK^"έ) )! 1^!/ I ê ( y.pCꊟ ۡL&l4 az<--Ԟ_N &o߲1'OcY- &G H xUw >bjS4,v<kBE ?\~7odI^lVj 9V s+J$wQZm&X{tšWۛd9A%p[cPC.C&BBU(SѲmv@-"gaո]ф2S jdy3mk*m}`c$qk%)NQĬΓy୲W:^ޕeA>&OcZٿ/׮wk۔rW}>8~Gה+0G(nemEcQ`~3+#Du=KۉO14vM!7a 4fyQ("b\@OvlxZ뾻$nCF<#φxR\@עi a8ŸJ-ǽ2ygv as}6Mky7_1EQ7'b0mio~px_x WT\xIy8* CI_Q/NPT"K6/! ڒ no rxVE!^s43OS.Ys HIy!ݕk{jEz kY*`2i|@R>GR3 1ev@#Vح-ȣdhk&-Q5t, +4 p[h sR|j^>U7!(&Vyrr7 1 hc9mҰT_;dž^ۺO=5p[;F\"L+ۂcX9g02J໴td4]&pn2ߪ9WGVKR-8wW!l.ԁ"3Le,}} _}/|~' i(ݐgm@-Ho$צ+fn*la$قT+2%7}21|g4!ن;? K04rG 'M) IDATk"!g 'B$窇 {\ ەLۂ]@"HB3Ϡ7g\Mxòn}ÉYX O~tuY $۴S[sn|: y^n*.W _g5_u f;526*­x1{9evk;S5npimҖrRv3ay򗄪9Ixq`:3/|!in M.;1 h228xCt..o/-o˻ V:\cJJ ~~ ~/nxMG&=k- ;c_-zɾ;Gxnu5fB&-j&P58]/=4U -#?{bnxx`eXC]K (ݪ6 Ius48#Wjh|Q*xu]7u. ߰ss`^DVH1`~I@']jnI!׾ o14{j^3_S~m"kr|mCl 'Vk<-F4y9i!$D\  $/`Qc2d{Pݐuo1vj n`.pUt7 gVc'X=y&VznK] n_ Uϟ94)U&k/_߁O׬I{@I=ouh}$\i~`uanlV_~ԡyߥPZuC KyY{.<5NBR\'8&XDI.Ptei J sgYOnte{#P E1҇ `2x|Z9R0\.MHCCȡ;F6A&H$i~]|[ހ//1[xb~uM'A=fi/9Աonlߚ[Vm=?q!avtO^M{qeRJpu:qmh1<+5e@)CzwMt6'"Si1ŝivr 篲 ReK[Ժ7a=A o4z- XԿ7|͗O g^EJC&>AS.&2d*Ս5u l2&6kRUE{Ӏ:$K+~_ʚ )O3m ݂ gr;߭@g] :d`/T Žq>{+ |oxqh% Yi.~qTm$a ފb~N|7oK>鳫Lkb=d [d 4h x3"+2ˆ` u<[Bmˋ[[S$Jmů:2p E2n ;VUx%UjmXNgMF:Ӟ="Tu? \$akϯ=wlFScsHnFUu+{ z_ _} ^i%j>8K#dyXgKyiXuvue% "DvM󿪢7<7Pܶ7raC6!aݭK >]34o>۶1Kj c JtNVrxZ^Igq8/-=e%[ilM6GnC~c`݊{>Sm,74 W.Q(=-mUfxWOg̽hsLpQE*GE&XDv꼟9Pxln.3ܾ9׍ߨ-ڲBGwݏ_Í{gni_22~&ĒV `nkU"^y1i缛ʚB&z#֮G ,^;Eu޸ PjlE8;m[xX%ta Utb\?pNJ9xxtk~c*U گ1WsWdP[%yLJZJի 1V8}-"4FlXn& m8GAnq~Zد ^0xos;jnu[GcYeX&jm!L%+B?st.{^jbd ys˗׏CR6e$_v~LEJdK^_ۖE5W0#/K5ok' e0V }9ܦ1mi: $+,~ߺ/e[aAQkq|wB(o~5iiXXCաJ ֎[ӝLpfp`\5IյI([]EX@/ EI!m@5.< ܶk;[/*g?mVmj>덇vRć nű@%ථ_*)΀,2,67h nrB^vUS3x5m˫K7JJ+ɰMï̞jnmYu{ -}g(b0 El_W2^m$.nvL(3RΘ` E]v`[Ogn:p;NᖴV$[jH.pQ7 2ފN:׫X-@W?%i̖ʥ `| i ~-.]z ᖃ ̏eޱ4>.+ m=wR[O$>t2c3j{ 0VD_MdJaCv8_ c{ =ۼuX8y; e@wPUmzQSWO/{0(t~TW.]6 8| yaIL ʕB ELr nu!#uKKkõMdPyF>Jp0b+ǻJ`ԗ H?V on yJd~uSϖIt bL*Af~NSx+߳y`}I<~@q>OV7曵mܦW2^egk4 d,^2- V|NmNi:4iMvROc{mW][ۺ|RmnQ{m1_WgP:z%6EC|~ EOVx`Ul6i^PXHvl jءϭ Y9WciPPkpcyEp>OjBej4W 4 ylg+m6My_&+`pWuKmk[t]j5ޚ&jZͬ_fLF~4ȗ\JPL 0RfRFH\c7*:Rn˶(:,-o6p!Yu;iK\ յeʚƔbe!mv:<,!6~ږ4(.݅8p WfC:ɄTMNgIbpL1[uЫnQ:m;o*#W%+VQݷu{}eٽNQl~J4B;:W gІ7fQK*ƵGP:?" SEVӢ5 Iry^e^[m4d]4Hz /- l0 @x~|Me[yHAyU%jl]L>"nXϜ&ߑ۱lCPi)tB;Y#ےn50e+|%I 7zm V=}(N$GmF1wn5dMּWdžN t`T_ h_a+o5]k3V䡔_ o"bŪnMsӰ Tƪ<[FYM>ꦀ(! #_owHphKhӠkKG1r hᖇv$YH¶6%$d%xS ܙxs}-m0@wP'2݃/̆f+]ESٖz Ij:B`+v #o[&rmm"3Qsi]ܚȄ;97jn8pyHȯLڼF(.xm ynC:C;6Pt1lWa "ǎ#`m|6 2;r[gssV ( gFn6Ǻp8ucꌫWƭ㙌",5RU|70tYYbwK?t.:s;.XD(l"#$mW1{nyGWmn"! G _?O0ri/]mD+̖ w_:OtmEUa}+oK \pHp8~%oL}xom@wL-)܎p˙汶UĶy70%[ -|ލz~{%G )2sMdaVT5`[4QL=[ ,#DDFNq~dM.O/qgEw@w֥m&f]ïܞtc/߄1WW؀j,>R,<,+)*k#>yn,+M7Ws>~ cؐj Ic!4vH:i|`+IdE ˲#lz!1[.U_U<g^|oa  ;wRCKFc8ŐgWo#ϞGkԶ!Q uou|4PaQ}_ L '"*^̩kY<;p3 KMd&L"LnSbcw)-*t9mjQ_ 9k݆2 ;h'T簕ݐ7 |z[a6!CSv ʽ; f!;!g;ͪe㱢"vQ,(N&`!?py$$d'uBtUi6l@m)sY. _#ox~갩Ѕ{fi4.Rtx}nᗏ)#,1Ӹ6NTU \a b˸oQatyIWAz~Rϭ8?fa7wG-m<]"+/om Ȣ#'CtUoxc31=8=A;c P۴뙴8)xmX,[ڙgeûR [P[!g ^|oeaANMhjhK#w)ϭ;]+4q]W;3]6-vC3ڼї%Q(m=KzȊgr-#=٘{JRh<.=M+U9MR`>,cAYrt%ҾVSi?|lGqu=;hy5ˌj6?'|V8S̖v\pZygc75Oe9n1؉.V%3B^? VMxEeEȗ> IDATp>6Nۦ<&6m!WYaQ]mRW ]}f|JQ^ޫ k@wР iF+hqe2͓ :9uNJf*Q:ɲ{XWF}L"WX" yNw[ W?]xt7$h+Oa&6)1p]K{lJ |z_Uym!+YVf8%3q,HZۮ-/e9C~;ʖ_Xq(puō `݄uE4#%仏\2 qve[n"%Jm/ѕ6Y֎]}پ28Y F.!/[G Ϯ6ϵJtS桻| jZ7t#φ|Ɏ@DWjoqjykqJ]{&w=#Rxt(3ǪLH`au2TE@wР ǞYk=tíӨKޮL0xzsѕ^dѕV=Tyw=[J?oK#>~6y~ X ڤ nFqPSyw_qxu}%׏͗~v(餔u_OtI' O T{u !x.{r]..@DW:(CD:8-ND֎~>ss},@[meʸ ;hХG[q#Շ.mW + }x a[)ܦVdl|Y= 8;YM]eӍ^L"t Tb Զ}.|[V>soN!K垷vpAD! Ɓk])\~L"t tz$}׼TLGW9nCESղ@DW"(mKϛ1NzMEp x+~szʞ.8pivJ?][47z%^vwxl3MU-+Dt%[7\"LDSxfp6owz^Y.mʤvs c3APb9hR]`/3'C*x "|uٮ@D(p x۵ϔsս~E( \b]Z=|h\nF4H,+ ϒۄ1>v" E \lq-K'ujwWG#W;𥫺]sIefJ$A$1 Hl\_7 :LZ75)֧mihPuKsHt 8@Ax[qM7x߼&o㩇뾣Db[^%"D v"WT~Ӷ]m^WqHh.A4g3L ,KCKux΀TޜHQŮKZw=b>TgE,>>~~rFƨK0}\+_k _;RހEVJ"dK(Bw_RNʛa}ږ@3!hGu-. A}{rr)s$AdoU}Seρ?hrصL) Mkh4["dkRNDm_d-ḿ#=KED qѵ:3O-ΒEDV~vl$Bv޲&$'r:ً~6[TKI-+,"h.AmGOj][Gљ`]\rDbR"9l&^GN6E¼>>U(hG0ޑ> ^Gw~ ] z~8^ i/) >T96P"р Ht xƗ[!=s`:vdcg!_Oɰ7K,Cԏ~NK^#f/~<ƍu%j YHt xFo7v\Q)pUnwU]].4!JDn0d H} )+2΋g3OK;m L=^+tTYEINBy~ާlbKye '$!6Ht ÉAZ's/8 yO7ѳ(Xȉ=jvp#eo| c@m 4- "gD#NǓxX8Oq׾Y@KD 6خI](}S4iVuަU7d`@65\ &H[T~ hA}lɭGEK|h`Ӷ?]LSzgǦG6! Ln}Z<i0=z8p(#hvy@"B+Mys*yF%;r;sœv ]D 5}Ư߭A4|KM]i1 +Ɓ)6/Byk[RYSbC<۸3iKծvA :'fqu4p|1uGnJ,=~y 5.v |\&"d`<㬷 Mk^6- 뾃\NYl'oA@吁]-oՎ1d?9`jirūв.{ ] rh3pжV(o:.ٍ-PG.zǕ!&.r"KT~.A}ڦ?$^(ϏU2smW3IKƜ21?t\Lm"K(c\JN/'Um}S 3i,fnJCyk[ZL«^v |~GC]DHt ؂mC_:1|h u5CAAQs~Xc$δ&:ȓ`CѲJamYW;»YQ2"{U}T]n0$Alɷ;5{]SeI;e`.ɢ8y CBU nd[8ڡzs9R6W;ʅܖ#oe4U8Ƨu1|lL{b Ca '`|6Ȑ70^ ϕ²>5-I~mZG7k ] kmC< \t}p|¢d,n y{-G?EۈOՎy K0|dd$R %bk\֙ᇓ mu-P;iy[D?ϻvX$!o4[SC!$*㼘 a.A;rw~!,h8$֑p=Pw>tH}v"煼Y "=UjG#C*4&%:AD.DǷI 0p; D"Kiٮut=V_*zZ, IDATySa]6IhGxxnqSx(oj06ig\Gg oKFXDVO^D M=>88R9u\t o^7:Mt$!'hGiTg@ Өȗ~Vj@^}gy;r1|@] ڙmil>t\Y&k8 ~$t3.]͇cD"2iJ05p gBW; *\H>0sJ!$A$qs𶡯|>4uuGMM4UN~qS4М_hT[xCю>mKC]r}%>vș] ۝㚈ƽk \l '..A6˛iyR" t7E<34ܖgzC誒!q~oSX:>u*]z@ooWo.6E,4\ڨ$y v,RӶj>*\8V@K$.66ػ5{G[a4&zl+o\JM5(91S+s ayS}Cv}6a11t3"CtmϼG!%B}:(֖)`l [c{fl':i}n!ږ@P-%/o*jǡ/$AH[~ u»ZCc %şS$B[6Ӡ65XxMv,F;28lBvzX@Kd:'fqY\'%!je ]+TN.bXKoƳюyYG;6"] R˭m;|L= m]$Q66ѓdp@zLgl׏,{CV}6!W;Ƥ-o.A3BWVKRq\MƂ;\ȉjIPԧa-UQMՎJaY߯X3ZAKD*|*}j<8;.lT;ʉR.p$F2юdjY'#]O=, %"%FSǛ{;wvج#'yD߄Jm wI[F;^4PjOH]] R3CۊOqsr%֑hg@ }5*BCK^w~>2_')lZgib{8D g@c.ou=ڱ{}GJpfaj1ge0sɐ!%bot.O\Ւ~:KlA('-+Ll*'yص>heFe?rE"@h!$A/6jӶc (}^,.{A6˛i2 iɛY}k`@ޏw] %bj-8k7}yi\N<\jؕQ3UBvar7r1PhCh۴G;%C] -8Q)"8:mGG/,~;;iDu# y9OST5m *,lgG;dtsmW.A{g4p⨺O!86t)݉I]<8,iXG;d˛~<-Z#DzL}ޜE%$Ad m+Kɰ$rҜc~)b6rbD"]?dɛ`hYL{OhE,!%"Lm*mCy+8<]bEl*'>| [y)oyQZfP* b3:!#,"AKDfvg&b}m\t/F^֠i ;tqDz\l*'H7~"r]G;>q'eh]\XBKDfp\6>S[߮}'3+&r>㥐hGXJPwD6tJIhYAuU}gD Lq޵> \;$0qs8x88l"'* J`h&ՙcIuSx #eюHAxnO 1d8=0ڬ+'?HN㦔 VE()mF;VA%$Ad~VlVɦkJ''>Y6e2 J/:q&/bK] oc_udxB6V+d`W*MB2 ў$6OƛmElIt $wS-ih4Wqr>_cE6ѓ"Iy[ ̻tҼ>BrhGX#CpZ,х3] 2٭ߚ8=2p?|L89y,]x [vCvZmMcPiZ6G)B@*~VIt ,AOU8 \}'VI>U5i%8͜`>4@Z)sT'k_5',#,KKD9Ѩh{_M]tcnC-yS5d ƀZi^W-iT`,- Msu}<ߗ6 `HmFS7.\mC;SU_T"T܅-!/Pȿ.vi[MS[>2>H]PtIt <_;3Y[CKuρsm$4.6ѣ$!oy  WoZl$2a}Bݦ>*=]] 2q nBp-_nӏ788aMKBN2И~uQq3arۨ^EWPI.AJIM~m\vL%KrY eDͮE\29М~U8ڡqQ DiTݒ1s;HK86NqoW_-+x74h@ ovC80fE34gyQStc)R!%B.6E쩧Ž黚^aqSv鼩2 miK7UG;ij_qI ,cD7X}@K2x^0I! G:x>M}@ oa481aqS7BvAhț:jZK^mY*rR$qHt P~Gi TK6嗯}p׫Y7`[y{-2+>5 hZIurjWJW)AH yW}#:I]m14- ͊ƀ×[c6 Mm20vf;d`Wt>IwYSoέlpPf`ѕ1+z#Ht PąUV* [la6Dy8<\bNly[ F.Ci[R*z m+XL>@ ojD " բ Gǽ! 9ƫw6ّЮ!R -+XJM"Kdvy}.cIua/ht)HK<]tGqMຟTCAC>n2i:7Cv/;qO/6a11E})fل,2p\JE,_nm4*:nT:U4.c>l"o* J`hA}hGwbhGJ!娬%.|l isICKn\WW)3ۆJNC>vT ؕў$'%o3'hG9"=x@CIq|[g|7D ڙȊ?5(vT ؕra.f2юE},zPA~.UlҫS]SDž# $A(q nB :38 y %"2U$" *e}8?V}R䋱t .CW@jKx:CjIt Pow6Nj_}.d8ycUT",ƮhG#!f/fe_ 2smXю4;@o ( %%By{mc8c6+u@M/տM")(ogyJK-0S H[Y8=/󍽗a4.Aۺ]8i8}fECz#mA. Aa@HfCgnw&Վ<2Gbदe |qٵֺ3*A x;tW6/Ht |I! mlׇOg1C`(G`pf|_n^|g3}1 ^;2yc8Y.> ؅L!ˮmBv1loWMG;e֣hã O{1mKn6*=$A䊻*\ZvSA=E$B)д4k/1ElӲZ{d|`;tys? =".0P|wg$A_nmS| :am 4M Bc ؅PNl*o4m31m {#hk9~{D7,~;w}:A䎇GݑFeq\g$oYl2 rҶM-4.r8ڡp45pI[h*qq=>dr!szn<&%"|Ѩh[dq.ng$d`B9i[;9 xeFE܎# ^>SϧҟP7)EYy:F""n.k]Cw2_#YjT4L`a܄ ¶c@ZȸǪrs>Ϗ[_φ`hW&YapyD 3C/6Z:RYEofJI,3]W&r!ǣB[YW;X"i}lMUdο-]Z=@n@Ht -SeugVȮ@]Yʉ@ג7׋·{CVpMV`I7c,Ŷ7w4fLww'eM.gCCFY) ]oIKeDAZkȉl>F; :C -ɔp'<6Utc '.:wC'u8'x:H!%"x>c7WLO_\gYQbIAwx9ڑPEBv/;f19Nb;xʎvlVF8s|kl}77fʭx] ~VhT%0l~u$[62+%e͕B2rk~dLM?CA>mʎ,8|$aK󇨚# y_}#JմXʉ@[b}Pt>tʑWg]ŽZ#AM3:\hW>V_{ylK$A wCG71U2ɲ8\ƺ Jў_HQ^mwc 7,w+ sl|(4 wI*PA_,r4ڑT}VQ9NjW!+4߼+VNƮlJHt 88S7}ǵ ;SX ?".<'Z3Z=yzxp"+I]m@;T*Y % ڙ]/MW=krL,Tbaj[q9#O+q$UMrscc-#, qL*4YJ,Ew>k;ȘDcA{ĻL%$A<7}zlh"P-;x FEOS<<)Iq-곮r߶>~\L3D lDb5S!, qng~>3D7*'V/盙1B y}Ď9grÈ~9>m|l XV*Y %p? bYiDV1¿d[vCykZgxxtq~oV"6Eh-'o08W5巒{\D+ PIDAT`$"]chZڦ@Z M#9_5\ڰj.hGDץ8\Ƿ ?T,@K1'/iX28NjW='w:ШhWVE ,uܧ.Xvnש&Llo~hǦ\wr' dYD "٭! c̓o_H`(FtyY -+P-[v>!V_KsQ)p\v`ǶT,@Ka3>0.`6pwVxaj)WE %xqu𾹺q-?̤uU"yJGж4T lٵU5d`V߅^?2ڑ):2PߟMQ^!%x6N"&m]kc< #V~E\_t{#{SMKCQU Tw~*a$!%xc8me~@ўz9pSv>t*ܖbY-Ϩ!&>;m~59THt ^k]CE⨪65-*E\xIl_vGyjb6zjS/86ts.I fg?U??HH] W|kOo^?pzߩ)f/N]=0d 4 +"|u>Fй=m(ޅt%AEHt Vp3?%@ٯ5Js5)o|h@/ci(1V d?*o3p# yƀZ(BngK?4rC>:y׶3e .A =46KIM@8͇ᣇp>c)46vXp'|l M>N]wm|s$gԈxHt Fnqoa$BK&㙇뾃h`C0ovgИm0c7r>&>mKQLnm_#>!Gpl}KXe#|v7sK$Ac*/MW=GiihQ0u!| ƃrmKCb?! 6Dǯ kȑ[ Ⱦ8@ f3Ht 6`:x\8Çof)d8C N]Y%c d_nfY34`^Y_nq~G;}%=;#BD2Al;'u%.pѵ3@[Ҡk E~BvAp5۲z~D\IxhG&۩ _o!6D bC;cm/ًZ R{,7!"4|-O]ۇ|v r{Rkg]| ڞuli] -x)VGU  5FE.|]7kes]q}"ny\)rtbQ HPnG$owfEF$.Ax>pֱo 1d|d}򾞣 =  tnC]}:Co~vBExScGVrrz>{6;z;CwDiHt ,]zEC?N\ B  Ē` `+x]f 1Q-q_hWӄ(~qqOt %؁}1utLp2,BMmJ3rkW_>˘qFNҠ^^mJF f_y=Fd(ٗ+IENDB`x2goclient-4.0.5.1/res/img/png/power-button.png0000644000000000000000000000137212675050177016144 0ustar PNG  IHDRfOVsRGBbKGD pHYs$-ptIME'5okzIDATHǵK[QDxB&A:XqtV hq.];89Nq4DE!-BH${}/k9s߹Q"Bh4p]-Pkn: TȐN l`fii?kZ񫫫0V[JRj 8l64RjK)0} +ro=PJ|\돀R* ̨T*UJt]eyLi!j*}}}bolhΝM@DܰbZ177'Q"fddb!d⭬^:8o-s& dz>>mrO/%*WI)_.Lǃ_P,xf۔86UCS}pp`gpLRstڈ|~WLq&YiZza~$Y4m]WxVc~~^BĴ`bvrzzࠄfۏQ9v8cccddVkMP<*a<;.C~Q} L1C.~`.u/Fk8oRWk2\߁2$"?:1~s^RKFIENDB`x2goclient-4.0.5.1/res/img/png/sess_ico.png0000644000000000000000000000221112675050177015277 0ustar PNG  IHDRTj:bKGD pHYs.#.#x?vtIME /IDATx=̝cKG.1"&14&A ,4TG ^}NHL~srF0՞`uGu[usuM/UVUoTW?1qn +57Ǫ?7sSM8ǫco NLﯞ oOTO1ZvbzYuo\Q=R=8HuF2ܳSY1xG׎9;~\YZ`QݳKspnjW/yM `v/6؈!" **  ]]vX_uNx ! ** ** dP`+ƜsXeە`W~@PVzN`-W~ ^TAT@P@PTAT@P@PT˜s.7*?-vXRj=CATAT@P@PTAT@P@PTATA@P?TQ@Oǜse U[;vu`Sw~** ** ** ԽfXmR ;6;v3T TATA@P@PATA@P@PATAT@P?sέj)V9T':cx ! ** ** *  A2js;R}`>[׫m[rtޭ>NW1M.^V/ࢽV4^''mpޮc߽?zhK*J@o'WVwX WW/Vߎ1y]u}U*tz:\}<8W?Տ-o([IENDB`x2goclient-4.0.5.1/res/img/svg/bg-anim.svg0000644000000000000000000000600012675050177015030 0ustar x2goclient-4.0.5.1/res/img/svg/bg_hildon.svg0000644000000000000000000004056412675050177015460 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/bg.svg0000644000000000000000000001420312675050177014112 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/folder_grey.svg0000644000000000000000000003643412675050177016035 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/folder.svg0000644000000000000000000006021012675050177014774 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/line.svg0000644000000000000000000000460112675050177014452 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/macinstaller_background.svg0000644000000000000000000005616212675050177020411 0ustar image/svg+xml x2goclient x2goclient-4.0.5.1/res/img/svg/onlogo.svg0000644000000000000000000000762212675050177015026 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/passform.svg0000644000000000000000000001212212675050177015352 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/sessionbut_grey.svg0000644000000000000000000000330312675050177016745 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/sessionbut.svg0000644000000000000000000001614512675050177015727 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/unity.svg0000644000000000000000000001154112675050177014674 0ustar x2goclient-4.0.5.1/res/img/svg/x2gologo.svg0000644000000000000000000002220412675050177015262 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/svg/xfce.svg0000644000000000000000000010675612675050177014466 0ustar image/svg+xml x2goclient-4.0.5.1/res/img/x2go-logos/mksizedsymbols.sh0000755000000000000000000000164412675050177017625 0ustar #!/bin/bash # Use this script to build typical iconsized PNGs based on a svg sourcefile. # ---------------------------------------------------------------------------- # Written by Heinz-M. Graesing # (C) 2012-2016 Heinz-M. Graesing GNU GPL v2.0+ # Last updated on: Dec/01/2012 by Heinz-M. Graesing # ---------------------------------------------------------------------------- usage="mksizedsymbols.sh -f sourcefile.svg" sizes=( 12 16 32 48 64 128 ) counter="0" while getopts "f:h" options; do case $options in f ) if [ -f $OPTARG ] ;then file=$OPTARG ((counter+=1)) fi ;; h ) echo $usage exit 0 ;; \? ) echo $usage exit 1;; esac done if [ -e "$file" ];then for i in "${sizes[@]}" do echo $i inkscape --without-gui --export-area-page --export-width=$i --export-height=$i --file=$file --export-png=${file%.*}-$i.png done exit 0 else echo $usage exit 1 fi x2goclient-4.0.5.1/res/img/x2go-logos/x2go-logo-colored.svg0000644000000000000000000010435612675050177020176 0ustar image/svg+xml 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo x2goclient-4.0.5.1/res/img/x2go-logos/x2go-logo-rotated.svg0000644000000000000000000027414612675050177020216 0ustar image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo x2goclient-4.0.5.1/res/img/x2go-logos/x2go-logo.svg0000644000000000000000000003027412675050177016546 0ustar image/svg+xml x2go Logo 12.06.2007 Heinz-M. Graesing obviously-nice obviously-nice http://www.x2go.org/artwork DE Logo x2goclient-4.0.5.1/res/img/x2go-logos/x2go-mascot.svg0000644000000000000000000005431512675050177017076 0ustar image/svg+xml x2go mascot "phoca" 02.06.2009 Heinz-M. Graesing Heinz-M. Graesing obviously-nice http://www.x2go.org/artwork DE x2go mascot x2goclient-4.0.5.1/res/osxbundle/Info.plist0000644000000000000000000000130012675050177015373 0ustar CFBundleIconFile x2go-mac.icns CFBundlePackageType APPL CFBundleShortVersionString @SHORT_VERSION@ CFBundleVersion @FULL_VERSION@ CFBundleGetInfoString @TARGET@ @FULL_VERSION@ CFBundleSignature ???? CFBundleExecutable x2goclient NOTE Please, do NOT change this file -- It was generated by Qt/QMake. x2goclient-4.0.5.1/res/osxbundle/macdmg.DS_Store0000644000000000000000000003600412675050177016270 0ustar Bud1((  B0blobt5d.pBB0blobt5d1ee87309f588c9;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000009;0000000000000015;/volumes/x2goclient/.background/macinstaller_background.png`@ p   (   T@ t(orRed^backgroundType_backgroundColorGreen[gridOffsetX[gridOffsetY\showItemInfo_viewOptionsVersion]labelOnB  @ @ @ @ .pBBkblobbookP0XVolumes x2goclient .backgroundmacinstaller_background.png(<)xAA$95E5DD52-A053-35BE-ACB6-67344AF24E92a?Usersclemens Developmentx2goclient-4.0.0.1x2goclient.dmgJObk7b$4DA Macintosh HDpM.A$986B3431-9B22-3952-A999-CA7791732A7E?/703061d927172fdc0074db8e2f38de7c992e4ace;00000000;0000000000000020;com.apple.app-sandbox.read-write;00000001;01000004;000000000362fdb9;/users/clemens/development/x2goclient-4.0.0.1/x2goclient.dmgT@p      0 (4/Volumes/x2goclientT      LXdXXeb25c9f0e084ffc6b18f9593.vSrnlong .backgroundbwspblobbplist00 \WindowBounds[ShowSidebar]ShowStatusBar[ShowPathbar[ShowToolbar\SidebarWidth_{{520, 74}, {770, 405}} ". img/svg/bg.svg img/svg/bg_hildon.svg img/svg/line.svg img/svg/onlogo.svg img/svg/x2gologo.svg img/svg/passform.svg img/svg/sessionbut.svg img/svg/folder.svg img/svg/folder_grey.svg img/svg/sessionbut_grey.svg img/png/ico.png img/png/ico_mini.png img/png/sess_ico.png img/png/ico_440x180.png img/png/power-button.png img/icons/128x128/x2go.png img/icons/128x128/folder.png img/icons/128x128/x2gosession.png img/icons/128x128/create_file.png img/icons/128x128/lxde.png img/icons/128x128/preferences.png img/icons/128x128/rdp.png img/icons/64x64/audio.png img/icons/64x64/personal.png img/icons/64x64/create_file.png img/icons/64x64/lxde.png img/icons/64x64/preferences.png img/icons/64x64/rdp.png img/icons/32x32/edit.png img/icons/32x32/edit_settings.png img/icons/32x32/exit.png img/icons/32x32/file-open.png img/icons/32x32/new_file.png img/icons/32x32/create_file.png img/icons/32x32/lxde.png img/icons/32x32/preferences.png img/icons/32x32/rdp.png img/icons/32x32/reconnect.png img/icons/32x32/tbhide.png img/icons/32x32/tbshow.png img/icons/32x32/attach.png img/icons/32x32/detach.png img/icons/32x32/suspend.png img/icons/32x32/stop.png img/icons/32x32/auth.png img/icons/32x32/x2goclient.png img/icons/32x32/resolution.png img/icons/32x32/contest.png img/icons/32x32/apps.png img/icons/32x32/open_dir.png img/icons/32x32/suspend_session.png img/icons/32x32/stop_session.png img/icons/16x16/audio.png img/icons/16x16/file-open.png img/icons/16x16/delete.png img/icons/16x16/edit.png img/icons/16x16/gnome.png img/icons/16x16/unity.png img/icons/16x16/xfce.png img/icons/16x16/mate.png img/icons/16x16/kde.png img/icons/16x16/cinnamon.png img/icons/16x16/trinity.png img/icons/16x16/openbox.png img/icons/16x16/icewm.png img/icons/16x16/new_file.png img/icons/16x16/resolution.png img/icons/16x16/session.png img/icons/16x16/x2go.png img/icons/16x16/tbshow.png img/icons/16x16/X.png img/icons/16x16/create_file.png img/icons/16x16/lxde.png img/icons/16x16/preferences.png img/icons/16x16/rdp.png img/icons/22x22/applications-development.png img/icons/22x22/applications-education.png img/icons/22x22/applications-games.png img/icons/22x22/applications-graphics.png img/icons/22x22/applications-internet.png img/icons/22x22/applications-multimedia.png img/icons/22x22/applications-office.png img/icons/22x22/applications-other.png img/icons/22x22/applications-system.png img/icons/22x22/applications-utilities.png img/icons/22x22/preferences-system.png txt/packs txt/encodings i18n/x2goclient_da.qm i18n/x2goclient_de.qm i18n/x2goclient_es.qm i18n/x2goclient_et.qm i18n/x2goclient_fi.qm i18n/x2goclient_fr.qm i18n/x2goclient_nb_no.qm i18n/x2goclient_nl.qm i18n/x2goclient_pt.qm i18n/x2goclient_ru.qm i18n/x2goclient_sv.qm i18n/x2goclient_tr.qm i18n/x2goclient_zh_tw.qm i18n/qt_da.qm i18n/qt_de.qm i18n/qt_es.qm i18n/qt_fr.qm i18n/qt_pt.qm i18n/qt_ru.qm i18n/qt_sv.qm i18n/qt_zh_tw.qm x2goclient-4.0.5.1/res/txt/encodings0000644000000000000000000003224212675050177014144 0ustar 437// 500// 500V1// 850// 851// 852// 855// 856// 857// 860// 861// 862// 863// 864// 865// 866// 866NAV// 869// 874// 904// 1026// 1046// 1047// 8859_1// 8859_2// 8859_3// 8859_4// 8859_5// 8859_6// 8859_7// 8859_8// 8859_9// 10646-1:1993// 10646-1:1993/UCS4/ ANSI_X3.4-1968// ANSI_X3.4-1986// ANSI_X3.4// ANSI_X3.110-1983// ANSI_X3.110// ARABIC// ARABIC7// ARMSCII-8// ASCII// ASMO-708// ASMO_449// BALTIC// BIG-5// BIG-FIVE// BIG5-HKSCS// BIG5// BIG5HKSCS// BIGFIVE// BRF// BS_4730// CA// CN-BIG5// CN-GB// CN// CP-AR// CP-GR// CP-HU// CP037// CP038// CP273// CP274// CP275// CP278// CP280// CP281// CP282// CP284// CP285// CP290// CP297// CP367// CP420// CP423// CP424// CP437// CP500// CP737// CP775// CP803// CP813// CP819// CP850// CP851// CP852// CP855// CP856// CP857// CP860// CP861// CP862// CP863// CP864// CP865// CP866// CP866NAV// CP868// CP869// CP870// CP871// CP874// CP875// CP880// CP891// CP901// CP902// CP903// CP904// CP905// CP912// CP915// CP916// CP918// CP920// CP921// CP922// CP930// CP932// CP933// CP935// CP936// CP937// CP939// CP949// CP950// CP1004// CP1008// CP1025// CP1026// CP1046// CP1047// CP1070// CP1079// CP1081// CP1084// CP1089// CP1097// CP1112// CP1122// CP1123// CP1124// CP1125// CP1129// CP1130// CP1132// CP1133// CP1137// CP1140// CP1141// CP1142// CP1143// CP1144// CP1145// CP1146// CP1147// CP1148// CP1149// CP1153// CP1154// CP1155// CP1156// CP1157// CP1158// CP1160// CP1161// CP1162// CP1163// CP1164// CP1166// CP1167// CP1250// CP1251// CP1252// CP1253// CP1254// CP1255// CP1256// CP1257// CP1258// CP1282// CP1361// CP1364// CP1371// CP1388// CP1390// CP1399// CP4517// CP4899// CP4909// CP4971// CP5347// CP9030// CP9066// CP9448// CP10007// CP12712// CP16804// CPIBM861// CSA7-1// CSA7-2// CSASCII// CSA_T500-1983// CSA_T500// CSA_Z243.4-1985-1// CSA_Z243.4-1985-2// CSA_Z243.419851// CSA_Z243.419852// CSDECMCS// CSEBCDICATDE// CSEBCDICATDEA// CSEBCDICCAFR// CSEBCDICDKNO// CSEBCDICDKNOA// CSEBCDICES// CSEBCDICESA// CSEBCDICESS// CSEBCDICFISE// CSEBCDICFISEA// CSEBCDICFR// CSEBCDICIT// CSEBCDICPT// CSEBCDICUK// CSEBCDICUS// CSEUCKR// CSEUCPKDFMTJAPANESE// CSGB2312// CSHPROMAN8// CSIBM037// CSIBM038// CSIBM273// CSIBM274// CSIBM275// CSIBM277// CSIBM278// CSIBM280// CSIBM281// CSIBM284// CSIBM285// CSIBM290// CSIBM297// CSIBM420// CSIBM423// CSIBM424// CSIBM500// CSIBM803// CSIBM851// CSIBM855// CSIBM856// CSIBM857// CSIBM860// CSIBM863// CSIBM864// CSIBM865// CSIBM866// CSIBM868// CSIBM869// CSIBM870// CSIBM871// CSIBM880// CSIBM891// CSIBM901// CSIBM902// CSIBM903// CSIBM904// CSIBM905// CSIBM918// CSIBM921// CSIBM922// CSIBM930// CSIBM932// CSIBM933// CSIBM935// CSIBM937// CSIBM939// CSIBM943// CSIBM1008// CSIBM1025// CSIBM1026// CSIBM1097// CSIBM1112// CSIBM1122// CSIBM1123// CSIBM1124// CSIBM1129// CSIBM1130// CSIBM1132// CSIBM1133// CSIBM1137// CSIBM1140// CSIBM1141// CSIBM1142// CSIBM1143// CSIBM1144// CSIBM1145// CSIBM1146// CSIBM1147// CSIBM1148// CSIBM1149// CSIBM1153// CSIBM1154// CSIBM1155// CSIBM1156// CSIBM1157// CSIBM1158// CSIBM1160// CSIBM1161// CSIBM1163// CSIBM1164// CSIBM1166// CSIBM1167// CSIBM1364// CSIBM1371// CSIBM1388// CSIBM1390// CSIBM1399// CSIBM4517// CSIBM4899// CSIBM4909// CSIBM4971// CSIBM5347// CSIBM9030// CSIBM9066// CSIBM9448// CSIBM12712// CSIBM16804// CSIBM11621162// CSISO4UNITEDKINGDOM// CSISO10SWEDISH// CSISO11SWEDISHFORNAMES// CSISO14JISC6220RO// CSISO15ITALIAN// CSISO16PORTUGESE// CSISO17SPANISH// CSISO18GREEK7OLD// CSISO19LATINGREEK// CSISO21GERMAN// CSISO25FRENCH// CSISO27LATINGREEK1// CSISO49INIS// CSISO50INIS8// CSISO51INISCYRILLIC// CSISO58GB1988// CSISO60DANISHNORWEGIAN// CSISO60NORWEGIAN1// CSISO61NORWEGIAN2// CSISO69FRENCH// CSISO84PORTUGUESE2// CSISO85SPANISH2// CSISO86HUNGARIAN// CSISO88GREEK7// CSISO89ASMO449// CSISO90// CSISO92JISC62991984B// CSISO99NAPLPS// CSISO103T618BIT// CSISO111ECMACYRILLIC// CSISO121CANADIAN1// CSISO122CANADIAN2// CSISO139CSN369103// CSISO141JUSIB1002// CSISO143IECP271// CSISO150// CSISO150GREEKCCITT// CSISO151CUBA// CSISO153GOST1976874// CSISO646DANISH// CSISO2022CN// CSISO2022JP// CSISO2022JP2// CSISO2022KR// CSISO2033// CSISO5427CYRILLIC// CSISO5427CYRILLIC1981// CSISO5428GREEK// CSISO10367BOX// CSISOLATIN1// CSISOLATIN2// CSISOLATIN3// CSISOLATIN4// CSISOLATIN5// CSISOLATIN6// CSISOLATINARABIC// CSISOLATINCYRILLIC// CSISOLATINGREEK// CSISOLATINHEBREW// CSKOI8R// CSKSC5636// CSMACINTOSH// CSNATSDANO// CSNATSSEFI// CSN_369103// CSPC8CODEPAGE437// CSPC775BALTIC// CSPC850MULTILINGUAL// CSPC862LATINHEBREW// CSPCP852// CSSHIFTJIS// CSUCS4// CSUNICODE// CSWINDOWS31J// CUBA// CWI-2// CWI// CYRILLIC// DE// DEC-MCS// DEC// DECMCS// DIN_66003// DK// DS2089// DS_2089// E13B// EBCDIC-AT-DE-A// EBCDIC-AT-DE// EBCDIC-BE// EBCDIC-BR// EBCDIC-CA-FR// EBCDIC-CP-AR1// EBCDIC-CP-AR2// EBCDIC-CP-BE// EBCDIC-CP-CA// EBCDIC-CP-CH// EBCDIC-CP-DK// EBCDIC-CP-ES// EBCDIC-CP-FI// EBCDIC-CP-FR// EBCDIC-CP-GB// EBCDIC-CP-GR// EBCDIC-CP-HE// EBCDIC-CP-IS// EBCDIC-CP-IT// EBCDIC-CP-NL// EBCDIC-CP-NO// EBCDIC-CP-ROECE// EBCDIC-CP-SE// EBCDIC-CP-TR// EBCDIC-CP-US// EBCDIC-CP-WT// EBCDIC-CP-YU// EBCDIC-CYRILLIC// EBCDIC-DK-NO-A// EBCDIC-DK-NO// EBCDIC-ES-A// EBCDIC-ES-S// EBCDIC-ES// EBCDIC-FI-SE-A// EBCDIC-FI-SE// EBCDIC-FR// EBCDIC-GREEK// EBCDIC-INT// EBCDIC-INT1// EBCDIC-IS-FRISS// EBCDIC-IT// EBCDIC-JP-E// EBCDIC-JP-KANA// EBCDIC-PT// EBCDIC-UK// EBCDIC-US// EBCDICATDE// EBCDICATDEA// EBCDICCAFR// EBCDICDKNO// EBCDICDKNOA// EBCDICES// EBCDICESA// EBCDICESS// EBCDICFISE// EBCDICFISEA// EBCDICFR// EBCDICISFRISS// EBCDICIT// EBCDICPT// EBCDICUK// EBCDICUS// ECMA-114// ECMA-118// ECMA-128// ECMA-CYRILLIC// ECMACYRILLIC// ELOT_928// ES// ES2// EUC-CN// EUC-JISX0213// EUC-JP-MS// EUC-JP// EUC-KR// EUC-TW// EUCCN// EUCJP-MS// EUCJP-OPEN// EUCJP-WIN// EUCJP// EUCKR// EUCTW// FI// FR// GB// GB2312// GB13000// GB18030// GBK// GB_1988-80// GB_198880// GEORGIAN-ACADEMY// GEORGIAN-PS// GOST_19768-74// GOST_19768// GOST_1976874// GREEK-CCITT// GREEK// GREEK7-OLD// GREEK7// GREEK7OLD// GREEK8// GREEKCCITT// HEBREW// HP-GREEK8// HP-ROMAN8// HP-ROMAN9// HP-THAI8// HP-TURKISH8// HPGREEK8// HPROMAN8// HPROMAN9// HPTHAI8// HPTURKISH8// HU// IBM-803// IBM-856// IBM-901// IBM-902// IBM-921// IBM-922// IBM-930// IBM-932// IBM-933// IBM-935// IBM-937// IBM-939// IBM-943// IBM-1008// IBM-1025// IBM-1046// IBM-1047// IBM-1097// IBM-1112// IBM-1122// IBM-1123// IBM-1124// IBM-1129// IBM-1130// IBM-1132// IBM-1133// IBM-1137// IBM-1140// IBM-1141// IBM-1142// IBM-1143// IBM-1144// IBM-1145// IBM-1146// IBM-1147// IBM-1148// IBM-1149// IBM-1153// IBM-1154// IBM-1155// IBM-1156// IBM-1157// IBM-1158// IBM-1160// IBM-1161// IBM-1162// IBM-1163// IBM-1164// IBM-1166// IBM-1167// IBM-1364// IBM-1371// IBM-1388// IBM-1390// IBM-1399// IBM-4517// IBM-4899// IBM-4909// IBM-4971// IBM-5347// IBM-9030// IBM-9066// IBM-9448// IBM-12712// IBM-16804// IBM037// IBM038// IBM256// IBM273// IBM274// IBM275// IBM277// IBM278// IBM280// IBM281// IBM284// IBM285// IBM290// IBM297// IBM367// IBM420// IBM423// IBM424// IBM437// IBM500// IBM775// IBM803// IBM813// IBM819// IBM848// IBM850// IBM851// IBM852// IBM855// IBM856// IBM857// IBM860// IBM861// IBM862// IBM863// IBM864// IBM865// IBM866// IBM866NAV// IBM868// IBM869// IBM870// IBM871// IBM874// IBM875// IBM880// IBM891// IBM901// IBM902// IBM903// IBM904// IBM905// IBM912// IBM915// IBM916// IBM918// IBM920// IBM921// IBM922// IBM930// IBM932// IBM933// IBM935// IBM937// IBM939// IBM943// IBM1004// IBM1008// IBM1025// IBM1026// IBM1046// IBM1047// IBM1089// IBM1097// IBM1112// IBM1122// IBM1123// IBM1124// IBM1129// IBM1130// IBM1132// IBM1133// IBM1137// IBM1140// IBM1141// IBM1142// IBM1143// IBM1144// IBM1145// IBM1146// IBM1147// IBM1148// IBM1149// IBM1153// IBM1154// IBM1155// IBM1156// IBM1157// IBM1158// IBM1160// IBM1161// IBM1162// IBM1163// IBM1164// IBM1166// IBM1167// IBM1364// IBM1371// IBM1388// IBM1390// IBM1399// IBM4517// IBM4899// IBM4909// IBM4971// IBM5347// IBM9030// IBM9066// IBM9448// IBM12712// IBM16804// IEC_P27-1// IEC_P271// INIS-8// INIS-CYRILLIC// INIS// INIS8// INISCYRILLIC// ISIRI-3342// ISIRI3342// ISO-2022-CN-EXT// ISO-2022-CN// ISO-2022-JP-2// ISO-2022-JP-3// ISO-2022-JP// ISO-2022-KR// ISO-8859-1// ISO-8859-2// ISO-8859-3// ISO-8859-4// ISO-8859-5// ISO-8859-6// ISO-8859-7// ISO-8859-8// ISO-8859-9// ISO-8859-9E// ISO-8859-10// ISO-8859-11// ISO-8859-13// ISO-8859-14// ISO-8859-15// ISO-8859-16// ISO-10646// ISO-10646/UCS2/ ISO-10646/UCS4/ ISO-10646/UTF-8/ ISO-10646/UTF8/ ISO-CELTIC// ISO-IR-4// ISO-IR-6// ISO-IR-8-1// ISO-IR-9-1// ISO-IR-10// ISO-IR-11// ISO-IR-14// ISO-IR-15// ISO-IR-16// ISO-IR-17// ISO-IR-18// ISO-IR-19// ISO-IR-21// ISO-IR-25// ISO-IR-27// ISO-IR-37// ISO-IR-49// ISO-IR-50// ISO-IR-51// ISO-IR-54// ISO-IR-55// ISO-IR-57// ISO-IR-60// ISO-IR-61// ISO-IR-69// ISO-IR-84// ISO-IR-85// ISO-IR-86// ISO-IR-88// ISO-IR-89// ISO-IR-90// ISO-IR-92// ISO-IR-98// ISO-IR-99// ISO-IR-100// ISO-IR-101// ISO-IR-103// ISO-IR-109// ISO-IR-110// ISO-IR-111// ISO-IR-121// ISO-IR-122// ISO-IR-126// ISO-IR-127// ISO-IR-138// ISO-IR-139// ISO-IR-141// ISO-IR-143// ISO-IR-144// ISO-IR-148// ISO-IR-150// ISO-IR-151// ISO-IR-153// ISO-IR-155// ISO-IR-156// ISO-IR-157// ISO-IR-166// ISO-IR-179// ISO-IR-193// ISO-IR-197// ISO-IR-199// ISO-IR-203// ISO-IR-209// ISO-IR-226// ISO/TR_11548-1/ ISO646-CA// ISO646-CA2// ISO646-CN// ISO646-CU// ISO646-DE// ISO646-DK// ISO646-ES// ISO646-ES2// ISO646-FI// ISO646-FR// ISO646-FR1// ISO646-GB// ISO646-HU// ISO646-IT// ISO646-JP-OCR-B// ISO646-JP// ISO646-KR// ISO646-NO// ISO646-NO2// ISO646-PT// ISO646-PT2// ISO646-SE// ISO646-SE2// ISO646-US// ISO646-YU// ISO2022CN// ISO2022CNEXT// ISO2022JP// ISO2022JP2// ISO2022KR// ISO6937// ISO8859-1// ISO8859-2// ISO8859-3// ISO8859-4// ISO8859-5// ISO8859-6// ISO8859-7// ISO8859-8// ISO8859-9// ISO8859-9E// ISO8859-10// ISO8859-11// ISO8859-13// ISO8859-14// ISO8859-15// ISO8859-16// ISO11548-1// ISO88591// ISO88592// ISO88593// ISO88594// ISO88595// ISO88596// ISO88597// ISO88598// ISO88599// ISO88599E// ISO885910// ISO885911// ISO885913// ISO885914// ISO885915// ISO885916// ISO_646.IRV:1991// ISO_2033-1983// ISO_2033// ISO_5427-EXT// ISO_5427// ISO_5427:1981// ISO_5427EXT// ISO_5428// ISO_5428:1980// ISO_6937-2// ISO_6937-2:1983// ISO_6937// ISO_6937:1992// ISO_8859-1// ISO_8859-1:1987// ISO_8859-2// ISO_8859-2:1987// ISO_8859-3// ISO_8859-3:1988// ISO_8859-4// ISO_8859-4:1988// ISO_8859-5// ISO_8859-5:1988// ISO_8859-6// ISO_8859-6:1987// ISO_8859-7// ISO_8859-7:1987// ISO_8859-7:2003// ISO_8859-8// ISO_8859-8:1988// ISO_8859-9// ISO_8859-9:1989// ISO_8859-9E// ISO_8859-10// ISO_8859-10:1992// ISO_8859-14// ISO_8859-14:1998// ISO_8859-15// ISO_8859-15:1998// ISO_8859-16// ISO_8859-16:2001// ISO_9036// ISO_10367-BOX// ISO_10367BOX// ISO_11548-1// ISO_69372// IT// JIS_C6220-1969-RO// JIS_C6229-1984-B// JIS_C62201969RO// JIS_C62291984B// JOHAB// JP-OCR-B// JP// JS// JUS_I.B1.002// KOI-7// KOI-8// KOI8-R// KOI8-RU// KOI8-T// KOI8-U// KOI8// KOI8R// KOI8U// KSC5636// L1// L2// L3// L4// L5// L6// L7// L8// L10// LATIN-9// LATIN-GREEK-1// LATIN-GREEK// LATIN1// LATIN2// LATIN3// LATIN4// LATIN5// LATIN6// LATIN7// LATIN8// LATIN9// LATIN10// LATINGREEK// LATINGREEK1// MAC-CENTRALEUROPE// MAC-CYRILLIC// MAC-IS// MAC-SAMI// MAC-UK// MAC// MACCYRILLIC// MACINTOSH// MACIS// MACUK// MACUKRAINIAN// MIK// MS-ANSI// MS-ARAB// MS-CYRL// MS-EE// MS-GREEK// MS-HEBR// MS-MAC-CYRILLIC// MS-TURK// MS932// MS936// MSCP949// MSCP1361// MSMACCYRILLIC// MSZ_7795.3// MS_KANJI// NAPLPS// NATS-DANO// NATS-SEFI// NATSDANO// NATSSEFI// NC_NC0010// NC_NC00-10// NC_NC00-10:81// NF_Z_62-010// NF_Z_62-010_(1973)// NF_Z_62-010_1973// NF_Z_62010// NF_Z_62010_1973// NO// NO2// NS_4551-1// NS_4551-2// NS_45511// NS_45512// OS2LATIN1// OSF00010001// OSF00010002// OSF00010003// OSF00010004// OSF00010005// OSF00010006// OSF00010007// OSF00010008// OSF00010009// OSF0001000A// OSF00010020// OSF00010100// OSF00010101// OSF00010102// OSF00010104// OSF00010105// OSF00010106// OSF00030010// OSF0004000A// OSF0005000A// OSF05010001// OSF100201A4// OSF100201A8// OSF100201B5// OSF100201F4// OSF100203B5// OSF1002011C// OSF1002011D// OSF1002035D// OSF1002035E// OSF1002035F// OSF1002036B// OSF1002037B// OSF10010001// OSF10010004// OSF10010006// OSF10020025// OSF10020111// OSF10020115// OSF10020116// OSF10020118// OSF10020122// OSF10020129// OSF10020352// OSF10020354// OSF10020357// OSF10020359// OSF10020360// OSF10020364// OSF10020365// OSF10020366// OSF10020367// OSF10020370// OSF10020387// OSF10020388// OSF10020396// OSF10020402// OSF10020417// PT// PT2// PT154// R8// R9// RK1048// ROMAN8// ROMAN9// RUSCII// SE// SE2// SEN_850200_B// SEN_850200_C// SHIFT-JIS// SHIFT_JIS// SHIFT_JISX0213// SJIS-OPEN// SJIS-WIN// SJIS// SS636127// STRK1048-2002// ST_SEV_358-88// T.61-8BIT// T.61// T.618BIT// TCVN-5712// TCVN// TCVN5712-1// TCVN5712-1:1993// THAI8// TIS-620// TIS620-0// TIS620.2529-1// TIS620.2533-0// TIS620// TS-5881// TSCII// TURKISH8// UCS-2// UCS-2BE// UCS-2LE// UCS-4// UCS-4BE// UCS-4LE// UCS2// UCS4// UHC// UJIS// UK// UNICODE// UNICODEBIG// UNICODELITTLE// US-ASCII// US// UTF-7// UTF-8// UTF-16// UTF-16BE// UTF-16LE// UTF-32// UTF-32BE// UTF-32LE// UTF7// UTF8// UTF16// UTF16BE// UTF16LE// UTF32// UTF32BE// UTF32LE// VISCII// WCHAR_T// WIN-SAMI-2// WINBALTRIM// WINDOWS-31J// WINDOWS-874// WINDOWS-936// WINDOWS-1250// WINDOWS-1251// WINDOWS-1252// WINDOWS-1253// WINDOWS-1254// WINDOWS-1255// WINDOWS-1256// WINDOWS-1257// WINDOWS-1258// WINSAMI2// WS2// YU// x2goclient-4.0.5.1/res/txt/packs0000644000000000000000000000115512675050177013273 0ustar nopack adaptive-% 8 64 256 512 4k 32k 64k 256k 2m 16m 256-rdp 256-rdp-compressed 32k-rdp 32k-rdp-compressed 64k-rdp 64k-rdp-compressed 16m-rdp 16m-rdp-compressed rfb-hextile rfb-tight rfb-tight-compressed 8-tight 64-tight 256-tight 512-tight 4k-tight 32k-tight 64k-tight 256k-tight 2m-tight 16m-tight 8-jpeg-% 64-jpeg 256-jpeg 512-jpeg 4k-jpeg 32k-jpeg 64k-jpeg 256k-jpeg 2m-jpeg 16m-jpeg-% 8-png-jpeg-% 64-png-jpeg 256-png-jpeg 512-png-jpeg 4k-png-jpeg 32k-png-jpeg 64k-png-jpeg 256k-png-jpeg 2m-png-jpeg 16m-png-jpeg-% 8-png-% 64-png 256-png 512-png 4k-png 32k-png 64k-png 256k-png 2m-png 16m-png-% 16m-rgb-% 16m-rle-% x2goclient-4.0.5.1/res/x2goclient.rc0000644000000000000000000000010012675050177014021 0ustar IDI_ICON1 ICON DISCARDABLE "img/icons/x2go-win-48.ico" x2goclient-4.0.5.1/rpm/x2goclient-rpmlintrc0000644000000000000000000000004112675050177015437 0ustar addFilter("non-standard-group"); x2goclient-4.0.5.1/src/appdialog.cpp0000644000000000000000000001455612675050177014103 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "appdialog.h" #include "onmainwindow.h" AppDialog::AppDialog(ONMainWindow* parent):QDialog(parent) { setupUi(this); mw=parent; media=0; dev=0; edu=0; game=0; graph=0; net=0; office=0; set=0; sys=0; util=0; other=0; startButton->setEnabled(false); loadApps(); } AppDialog::~AppDialog() { } void AppDialog::slotSearchChanged(QString text) { QTreeWidgetItemIterator it(treeWidget); while (*it) { QString exec=(*it)->data(0,Qt::UserRole).toString(); QString comment=(*it)->data(0,Qt::UserRole+1).toString(); QString name=(*it)->text(0); if ((*it)->childCount()==0) { if (text.length()<2) { (*it)->setHidden(false); (*it)->setSelected(false); } else { if (exec.indexOf(text, 0,Qt::CaseInsensitive)!= -1 || comment.indexOf(text, 0,Qt::CaseInsensitive)!= -1 || name.indexOf(text, 0,Qt::CaseInsensitive)!= -1 ) { treeWidget->clearSelection(); (*it)->setSelected(true); (*it)->setHidden(false); treeWidget->scrollToItem((*it)); } else { (*it)->setHidden(true); (*it)->setSelected(false); } } } ++it; } } QTreeWidgetItem* AppDialog::initTopItem(QString text, QPixmap icon) { QTreeWidgetItem* item; item=new QTreeWidgetItem(treeWidget); item->setText(0,text); item->setFlags(Qt::ItemIsEnabled); item->setIcon(0,icon); return item; } void AppDialog::loadApps() { QTreeWidgetItem* parent; foreach (Application app, mw->getApplications()) { switch (app.category) { case Application::MULTIMEDIA: if (!media) media=initTopItem(tr("Multimedia"), QPixmap(":/img/icons/22x22/applications-multimedia.png")); parent=media; break; case Application::DEVELOPMENT: if (!dev) dev=initTopItem(tr("Development"), QPixmap(":/img/icons/22x22/applications-development.png")); parent=dev; break; case Application::EDUCATION: if (!edu) edu=initTopItem(tr("Education"), QPixmap(":/img/icons/22x22/applications-education.png")); parent=edu; break; case Application::GAME: if (!game) game=initTopItem(tr("Game"), QPixmap(":/img/icons/22x22/applications-games.png")); parent=game; break; case Application::GRAPHICS: if (!graph) graph=initTopItem(tr("Graphics"), QPixmap(":/img/icons/22x22/applications-graphics.png")); parent=graph; break; case Application::NETWORK: if (!net) net=initTopItem(tr("Network"), QPixmap(":/img/icons/22x22/applications-internet.png")); parent=net; break; case Application::OFFICE: if (!office) office=initTopItem(tr("Office"), QPixmap(":/img/icons/22x22/applications-office.png")); parent=office; break; case Application::SETTINGS: if (!set) set=initTopItem(tr("Settings"), QPixmap(":/img/icons/22x22/preferences-system.png")); parent=set; break; case Application::SYSTEM: if (!sys) sys=initTopItem(tr("System"), QPixmap(":/img/icons/22x22/applications-system.png")); parent=sys; break; case Application::UTILITY: if (!util) util=initTopItem(tr("Utility"), QPixmap(":/img/icons/22x22/applications-utilities.png")); parent=util; break; case Application::OTHER: if (!other) other=initTopItem(tr("Other"), QPixmap(":/img/icons/22x22/applications-other.png")); parent=other; break; default: break; } QTreeWidgetItem* it; if (app.category==Application::TOP) it=new QTreeWidgetItem(treeWidget); else it=new QTreeWidgetItem(parent); it->setText(0, app.name); it->setToolTip(0,app.comment); it->setIcon(0,app.icon); it->setData(0, Qt::UserRole, app.exec); it->setData(0, Qt::UserRole+1, app.comment); } treeWidget->sortItems(0,Qt::AscendingOrder); } void AppDialog::slotSelectedChanged() { startButton->setEnabled(false); if (treeWidget->selectedItems().count()) { startButton->setEnabled(true); } } void AppDialog::slotDoubleClicked(QTreeWidgetItem* item) { QString exec=item->data(0,Qt::UserRole).toString(); if (exec.length()>0) mw->runApplication(exec); } void AppDialog::slotStartSelected() { if (treeWidget->selectedItems().count()>0) { QString exec=treeWidget->selectedItems()[0]->data(0,Qt::UserRole).toString(); if (exec.length()>0) mw->runApplication(exec); } } x2goclient-4.0.5.1/src/appdialog.h0000644000000000000000000000406412675050177013541 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef APPDIALOG_H #define APPDIALOG_H #include #include "ui_appdialog.h" class QTreeWidgetItem; class ONMainWindow; class AppDialog: public QDialog, public Ui_AppDialog { Q_OBJECT public: AppDialog(ONMainWindow *parent = 0); ~AppDialog(); private: void loadApps(); QTreeWidgetItem* initTopItem(QString text, QPixmap icon=QPixmap()); ONMainWindow* mw; QTreeWidgetItem* media; QTreeWidgetItem* dev; QTreeWidgetItem* edu; QTreeWidgetItem* game; QTreeWidgetItem* graph; QTreeWidgetItem* net; QTreeWidgetItem* office; QTreeWidgetItem* set; QTreeWidgetItem* sys; QTreeWidgetItem* util; QTreeWidgetItem* other; private slots: void slotSelectedChanged(); void slotStartSelected(); void slotDoubleClicked(QTreeWidgetItem* item); void slotSearchChanged(QString text); }; #endif // APPDIALOG_H x2goclient-4.0.5.1/src/brokerpassdlg.cpp0000644000000000000000000000423212675050177014773 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "brokerpassdlg.h" #include BrokerPassDlg::BrokerPassDlg(QWidget* parent, Qt::WindowFlags f): QDialog(parent, f) { setupUi(this); statusLabel->setText(QString::null); buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } BrokerPassDlg::~BrokerPassDlg() { } void BrokerPassDlg::slotPassChanged() { bool passEq=false; if (lePass1->text()!=lePass2->text()) { passEq=false; statusLabel->setText(tr("Passwords do not match")); } else { passEq=true; statusLabel->setText(QString::null); } buttonBox->button(QDialogButtonBox::Ok)->setEnabled(passEq && lePass1->text().size()>0 && leOldPas->text().size()>0); } void BrokerPassDlg::accept() { QDialog::accept(); } void BrokerPassDlg::reject() { QDialog::reject(); } QString BrokerPassDlg::newPass() { return lePass1->text(); } QString BrokerPassDlg::oldPass() { return leOldPas->text(); } x2goclient-4.0.5.1/src/brokerpassdlg.h0000644000000000000000000000321512675050177014440 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef BROKERPASSDLG_H #define BROKERPASSDLG_H #include #include "ui_brokerpassdialog.h" class BrokerPassDlg: public QDialog, private Ui_BrokerPassDialogUi { Q_OBJECT public: BrokerPassDlg(QWidget* parent = 0, Qt::WindowFlags f = 0); virtual ~BrokerPassDlg(); virtual void accept(); virtual void reject(); QString oldPass(); QString newPass(); private slots: void slotPassChanged(); }; #endif // BROKERPASSDLG_H x2goclient-4.0.5.1/src/clicklineedit.cpp0000644000000000000000000000350112675050177014732 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "clicklineedit.h" #include "x2gologdebug.h" #include ClickLineEdit::ClickLineEdit(QWidget * parent) : QLineEdit(parent) { } ClickLineEdit::~ClickLineEdit() { } #ifdef Q_OS_LINUX void ClickLineEdit::mouseReleaseEvent ( QMouseEvent * event ) { QLineEdit::mouseReleaseEvent(event); emit clicked(); setFocus(Qt::MouseFocusReason); } // void ClickLineEdit::focusInEvent ( QFocusEvent * event ) // { // QLineEdit::focusInEvent(event); // x2goDebug<<"focus in"; // } // // void ClickLineEdit::focusOutEvent ( QFocusEvent * event ) // { // QLineEdit::focusOutEvent(event); // x2goDebug<<"focus out"; // } #endif x2goclient-4.0.5.1/src/clicklineedit.h0000644000000000000000000000330512675050177014401 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CLICKLINEEDIT_H #define CLICKLINEEDIT_H #include /** @author Oleksandr Shneyder */ class ClickLineEdit : public QLineEdit { Q_OBJECT public: ClickLineEdit ( QWidget * parent = 0 ); ~ClickLineEdit(); signals: void clicked(); #ifdef Q_OS_LINUX protected: virtual void mouseReleaseEvent ( QMouseEvent * event ); /* virtual void focusInEvent ( QFocusEvent * event ); virtual void focusOutEvent ( QFocusEvent * event );*/ #endif }; #endif x2goclient-4.0.5.1/src/configdialog.cpp0000644000000000000000000006062412675050177014565 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include "onmainwindow.h" #include #include #include #include "configdialog.h" #include "x2gologdebug.h" #include "printwidget.h" #include #include #include "x2goclientconfig.h" #include "connectionwidget.h" #include "settingswidget.h" #include "mediawidget.h" #include "x2goutils.h" #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) #include "xsettingswidget.h" #endif ConfigDialog::ConfigDialog ( QWidget * parent, Qt::WFlags f ) : QDialog ( parent,f ) { tabWidg=new QTabWidget ( this ); QVBoxLayout* ml=new QVBoxLayout ( this ); ml->addWidget ( tabWidg ); QWidget *fr=new QWidget ( this ); QVBoxLayout* frLay=new QVBoxLayout ( fr ); tabWidg->addTab ( fr,tr ( "General" ) ); embedMode= ( ( ONMainWindow* ) parent )->getEmbedMode(); X2goSettings st ( "settings" ); #ifndef CFGPLUGIN gbTrayIcon=new QGroupBox(tr("Display icon in system tray"),fr); frLay->addWidget(gbTrayIcon); gbTrayIcon->setCheckable(true); QHBoxLayout* grmainLay=new QHBoxLayout(gbTrayIcon); QFrame* frTray=new QFrame(gbTrayIcon); grmainLay->setMargin(0); grmainLay->addWidget(frTray); cbMinToTray=new QCheckBox(tr("Hide to system tray when minimized"),frTray); cbNoClose=new QCheckBox(tr("Hide to system tray when closed"),frTray); cbMinimizeTray=new QCheckBox(tr("Hide to system tray after connection is established"),frTray); cbMaxmizeTray=new QCheckBox(tr("Restore from system tray after session is disconnected"),frTray); QVBoxLayout* trLay=new QVBoxLayout(frTray); trLay->addWidget(cbMinToTray); trLay->addWidget(cbNoClose); trLay->addWidget(cbMinimizeTray); trLay->addWidget(cbMaxmizeTray); gbTrayIcon->setChecked ( st.setting()->value ( "trayicon/enabled", false ).toBool() ); cbMinimizeTray->setChecked ( st.setting()->value ( "trayicon/mincon", false ).toBool() ); cbMaxmizeTray->setChecked ( st.setting()->value ( "trayicon/maxdiscon", false ).toBool() ); cbNoClose->setChecked ( st.setting()->value ( "trayicon/noclose", false ).toBool() ); cbMinToTray->setChecked ( st.setting()->value ( "trayicon/mintotray", false ).toBool() ); #endif #ifdef USELDAP if ( !embedMode ) { ONMainWindow* par= ( ONMainWindow* ) parent; gbLDAP=new QGroupBox ( tr ( "Use LDAP" ),fr ); gbLDAP->setCheckable(true); QHBoxLayout* grmainLay=new QHBoxLayout(gbLDAP); QFrame* frLdap=new QFrame(gbLDAP); grmainLay->setMargin(0); grmainLay->addWidget(frLdap); ldapServer=new QLineEdit ( frLdap ); port=new QSpinBox ( frLdap ); ldapBase=new QLineEdit ( frLdap ); port->setMaximum ( 1000000 ); QHBoxLayout *grLay=new QHBoxLayout ( frLdap ); QVBoxLayout *laiLay=new QVBoxLayout(); QVBoxLayout *setLay=new QVBoxLayout(); setLay->setSpacing ( 6 ); laiLay->setSpacing ( 6 ); grLay->setSpacing ( 20 ); grLay->addLayout ( laiLay ); grLay->addStretch(); grLay->addLayout ( setLay ); laiLay->addWidget ( new QLabel ( tr ( "Server URL:" ),frLdap) ); laiLay->addWidget ( new QLabel ( tr ( "BaseDN:" ),frLdap ) ); laiLay->addWidget ( new QLabel ( tr ( "Failover server 1 URL:" ),frLdap ) ); laiLay->addWidget ( new QLabel ( tr ( "Failover server 2 URL:" ),frLdap ) ); ldapServer1=new QLineEdit ( frLdap); port1=new QSpinBox ( frLdap ); ldapServer2=new QLineEdit ( frLdap ); port2=new QSpinBox ( frLdap ); port1->setMaximum ( 1000000 ); port2->setMaximum ( 1000000 ); QHBoxLayout* aLay=new QHBoxLayout(); aLay->setSpacing ( 3 ); aLay->addWidget ( new QLabel ( "ldap//:",frLdap ) ); aLay->addWidget ( ldapServer ); aLay->addWidget ( new QLabel ( ":",frLdap ) ); aLay->addWidget ( port ); QHBoxLayout* aLay1=new QHBoxLayout(); aLay1->setSpacing ( 3 ); aLay1->addWidget ( new QLabel ( "ldap//:",frLdap ) ); aLay1->addWidget ( ldapServer1 ); aLay1->addWidget ( new QLabel ( ":",frLdap ) ); aLay1->addWidget ( port1 ); QHBoxLayout* aLay2=new QHBoxLayout(); aLay2->setSpacing ( 3 ); aLay2->addWidget ( new QLabel ( "ldap//:",frLdap ) ); aLay2->addWidget ( ldapServer2 ); aLay2->addWidget ( new QLabel ( ":",frLdap ) ); aLay2->addWidget ( port2 ); setLay->addLayout ( aLay ); setLay->addWidget ( ldapBase ); setLay->addLayout ( aLay1 ); setLay->addLayout ( aLay2 ); gbLDAP->setChecked ( st.setting()->value ( "LDAP/useldap", ( QVariant ) par->retUseLdap() ).toBool() ); ldapServer->setText ( st.setting()->value ( "LDAP/server", ( QVariant ) par->retLdapServer() ).toString() ); port->setValue ( st.setting()->value ( "LDAP/port", ( QVariant ) par->retLdapPort() ).toInt() ); ldapServer1->setText ( st.setting()->value ( "LDAP/server1", ( QVariant ) par->retLdapServer1() ).toString() ); port1->setValue ( st.setting()->value ( "LDAP/port1", ( QVariant ) par->retLdapPort1() ).toInt() ); ldapServer2->setText ( st.setting()->value ( "LDAP/server2", ( QVariant ) par->retLdapServer2() ).toString() ); port2->setValue ( st.setting()->value ( "LDAP/port2", ( QVariant ) par->retLdapPort2() ).toInt() ); ldapBase->setText ( st.setting()->value ( "LDAP/basedn", ( QVariant ) par->retLdapDn() ).toString() ); frLdap->setEnabled ( gbLDAP->isChecked() ); frLay->addWidget ( gbLDAP ); connect ( gbLDAP,SIGNAL ( toggled ( bool ) ),frLdap, SLOT ( setEnabled ( bool ) ) ); connect ( gbLDAP,SIGNAL ( toggled ( bool ) ),this, SLOT ( slot_checkOkStat() ) ); connect ( ldapBase,SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( slot_checkOkStat() ) ); connect ( ldapServer,SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( slot_checkOkStat() ) ); } #endif //USELDAP #ifdef Q_OS_DARWIN QGroupBox* xgb=new QGroupBox ( tr ( "X.Org Server settings" ),fr ); QGridLayout *xLay=new QGridLayout ( xgb ); leXexec=new QLineEdit ( xgb ); leXexec->setReadOnly ( true ); pbOpenExec=new QPushButton ( QIcon ( ( ( ONMainWindow* ) parent )->iconsPath ( "/32x32/file-open.png" ) ), QString::null,xgb ); xLay->addWidget ( new QLabel ( tr ( "X11 application:" ) ),0,0 ); leCmdOpt=new QLineEdit ( xgb ); leCmdOpt->setReadOnly ( true ); QHBoxLayout* cmdLay=new QHBoxLayout(); cmdLay->addWidget ( leXexec ); cmdLay->addWidget ( pbOpenExec ); xLay->addLayout ( cmdLay,0,1 ); xLay->addWidget ( new QLabel ( tr ( "X11 version:" ) ),1,0 ); xLay->addWidget ( leCmdOpt,1,1 ); frLay->addWidget ( xgb ); QString xver; QString path=getXDarwinDirectory(); if ( path!="" ) { leXexec->setText ( findXDarwin ( xver,path ) ); leCmdOpt->setText ( xver ); } else slot_findXDarwin(); QPushButton* findButton=new QPushButton ( tr ( "Find X11 application" ),xgb ); xLay->addWidget ( findButton,2,1 ); connect ( findButton,SIGNAL ( clicked() ),this, SLOT ( slot_findXDarwin() ) ); connect ( pbOpenExec,SIGNAL ( clicked() ),this, SLOT ( slot_selectXDarwin() ) ); #endif //Q_OS_DARWIN #ifndef Q_OS_WIN clientSshPort=new QSpinBox ( fr ); clientSshPort->setMaximum ( 1000000 ); clientSshPort->setValue ( st.setting()->value ( "clientport", ( QVariant ) 22 ).toInt() ); QHBoxLayout* sshLay=new QHBoxLayout(); sshLay->addWidget ( new QLabel ( tr ( "Clientside (local) SSH daemon port for file system export usage:" ),fr ) ); sshLay->addWidget ( clientSshPort ); sshLay->addStretch(); frLay->addLayout ( sshLay ); #endif if ( embedMode ) { cbStartEmbed=new QCheckBox ( tr ( "Start session embedded inside website" ) ,fr ); frLay->addWidget ( cbStartEmbed ); advancedOptions=new QPushButton ( tr ( "Advanced options" ) +" >>" , this ); connect ( advancedOptions,SIGNAL ( clicked() ),this, SLOT ( slotAdvClicked() ) ); advancedOptions->setVisible ( ( ( ONMainWindow* ) parent )-> getShowAdvOption() ); advOptionsShown=false; conWidg=new ConnectionWidget ( QString::null, ( 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 ( st.setting()->value ( "embedded/startembed", true ).toBool() ); } /* #ifdef Q_OS_WIN else { tabWidg->removeTab ( 0 ); } #endif*/ frLay->addStretch(); defaults=new QPushButton ( tr ( "Defaults" ),this ); ok=new QPushButton ( tr ( "&OK" ),this ); QPushButton* cancel=new QPushButton ( tr ( "&Cancel" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); connect ( this,SIGNAL ( accepted() ),this,SLOT ( slot_accepted() ) ); connect ( ok,SIGNAL ( clicked() ),this,SLOT ( accept() ) ); connect ( cancel,SIGNAL ( clicked() ),this,SLOT ( reject() ) ); connect ( defaults,SIGNAL ( clicked() ),this, SLOT ( slotDefaults() ) ); bLay->setSpacing ( 5 ); if ( embedMode ) bLay->addWidget ( advancedOptions ); bLay->addStretch(); bLay->addWidget ( ok ); bLay->addWidget ( cancel ); bLay->addWidget ( defaults ); ml->addLayout ( bLay ); setSizeGripEnabled ( true ); setWindowIcon ( QIcon ( ( ( ONMainWindow* ) parent )->iconsPath ( "/32x32/edit_settings.png" ) ) ); setWindowTitle ( tr ( "Settings" ) ); #ifdef Q_WS_HILDON QFont fnt=font(); fnt.setPointSize ( 10 ); setFont ( fnt ); QSize sz=ok->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); ok->setFixedSize ( sz ); sz=cancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); cancel->setFixedSize ( sz ); clientSshPort->setFixedHeight ( int ( clientSshPort->sizeHint().height() *1.5 ) ); defaults->hide(); #endif pwid=new PrintWidget ( this ); tabWidg->addTab ( pwid,tr ( "Printing" ) ); #if defined ( Q_OS_WIN) && defined (CFGCLIENT ) xsetWidg=new XSettingsWidget(this); tabWidg->addTab(xsetWidg, tr("X.Org Server settings")); #endif #ifdef Q_OS_WIN QFrame* frp=new QFrame(this); tabWidg->addTab(frp, tr("Pulseaudio settings")); QVBoxLayout* l=new QVBoxLayout(frp); cbNoRecord=new QCheckBox(tr("Disable audio input"),frp); QLabel* lw=new QLabel(tr("You must restart the X2Go Client for the changes to take effect

"),frp); lw->setWordWrap(true); l->addWidget(lw); l->addWidget(cbNoRecord); l->addStretch(1); cbNoRecord->setChecked ( st.setting()->value ( "pulse/norecord", false ).toBool() ); #endif } ConfigDialog::~ConfigDialog() {} void ConfigDialog::slot_accepted() { X2goSettings st ( "settings" ); #ifndef CFGPLUGIN st.setting()->setValue ( "trayicon/enabled", gbTrayIcon->isChecked() ); st.setting()->setValue ( "trayicon/mintotray", cbMinToTray->isChecked() ); st.setting()->setValue ( "trayicon/noclose", cbNoClose->isChecked() ); st.setting()->setValue ( "trayicon/mincon", cbMinimizeTray->isChecked() ); st.setting()->setValue ( "trayicon/maxdiscon", cbMaxmizeTray->isChecked() ); #endif #ifdef Q_OS_WIN st.setting()->setValue ( "pulse/norecord", cbNoRecord->isChecked() ); #endif #ifdef USELDAP if ( !embedMode ) { st.setting()->setValue ( "LDAP/useldap", ( QVariant ) gbLDAP->isChecked() ); st.setting()->setValue ( "LDAP/port", ( QVariant ) port->value() ); if ( ldapServer->text().length() ) st.setting()->setValue ( "LDAP/server", ( QVariant ) ldapServer->text() ); st.setting()->setValue ( "LDAP/port1", ( QVariant ) port1->value() ); if ( ldapServer1->text().length() ) st.setting()->setValue ( "LDAP/server1", ( QVariant ) ldapServer1->text() ); st.setting()->setValue ( "LDAP/port2", ( QVariant ) port2->value() ); if ( ldapServer2->text().length() ) st.setting()->setValue ( "LDAP/server2", ( QVariant ) ldapServer2->text() ); if ( ldapBase->text().length() ) st.setting()->setValue ( "LDAP/basedn", ( QVariant ) ldapBase->text() ); } #endif //USELDAP #ifdef Q_OS_DARWIN st.setting()->setValue ( "xdarwin/directory", ( QVariant ) leXexec->text() ); #endif #ifndef Q_OS_WIN st.setting()->setValue ( "clientport", ( QVariant ) clientSshPort->value() ); #endif pwid->saveSettings(); if ( embedMode ) { X2goSettings st ( "sessions" ); st.setting()->setValue ( "embedded/startembed", ( QVariant ) cbStartEmbed->isChecked() ); st.setting()->sync(); setWidg->saveSettings(); mediaWidget->saveSettings(); conWidg->saveSettings(); } #if defined (Q_OS_WIN) && defined (CFGCLIENT) xsetWidg->saveSettings(); #endif } void ConfigDialog::slot_checkOkStat() { ok->setEnabled ( ( !gbLDAP->isChecked() ) || ( ( ldapBase->text().length() && ldapServer->text().length() ) ) ); } #ifdef Q_OS_WIN QString ConfigDialog::getCygwinDir ( const QString& dir ) { QString cygdir=QString::null; QSettings lu_st ( "HKEY_CURRENT_USER\\Software" "\\Cygnus Solutions\\Cygwin\\mounts v2\\"+ dir,QSettings::NativeFormat ); cygdir=lu_st.value ( "native", ( QVariant ) QString::null ).toString(); if ( cygdir!= QString::null ) return cygdir; QSettings lm_st ( "HKEY_LOCAL_MACHINE\\SOFTWARE" "\\Cygnus Solutions\\Cygwin\\mounts v2\\"+ dir,QSettings::NativeFormat ); return lm_st.value ( "native", ( QVariant ) QString::null ).toString(); } #endif #ifdef Q_OS_DARWIN QString ConfigDialog::retMaxXDarwinVersion ( QString v1, QString v2 ) { QStringList vl1=v1.split ( "." ); QStringList vl2=v2.split ( "." ); for ( int i=0; i<3; ++i ) { if ( vl1.count() vl2[i].toInt() ) ?v1:v2; } return v1; } QString ConfigDialog::findXDarwin ( QString& version, QString path ) { if (path.isEmpty ()) { QStringList locations; locations << "/Applications/Utilities/XQuartz.app" << "/usr/X11/X11.app" << "/Applications/MacPorts/X11.app"; QStringList versions; QStringList::const_iterator const_it; for (const_it = locations.constBegin (); const_it != locations.constEnd (); ++const_it) { QFile info_plist (*const_it + "/Contents/Info.plist"); if (info_plist.exists ()) { QSettings settings (info_plist.fileName (), QSettings::NativeFormat); versions << settings.value ("CFBundleShortVersionString", (QVariant) "0.0.0").toString (); } else { versions << QString ("0.0.0"); } } QString max_ver = QString (); std::size_t max_idx = 0; if (locations.size () < 1) { version = QString ("0.0.0"); return (QString ()); } else if (locations.size () == 1) { max_ver = versions.at (0); max_idx = 0; } else { max_ver = versions.at (0); max_idx = 0; for (std::size_t i = 1; i < static_cast (locations.size ()); ++i) { QString cur_ver = versions.at (i); if (retMaxXDarwinVersion (max_ver, cur_ver).compare (cur_ver) == 0) { max_ver = cur_ver; max_idx = i; } } } version = max_ver; if (max_ver.compare (QString ("0.0.0")) == 0) { return (QString ()); } else { return (locations.at (max_idx)); } } else { version = "0.0.0"; if (QFile::exists (path + "/Contents/Info.plist")) { QSettings vst (path + "/Contents/Info.plist", QSettings::NativeFormat); version=vst.value ("CFBundleShortVersionString", (QVariant) "0.0.0").toString (); } else { path = QString (); } return path; } } void ConfigDialog::slot_findXDarwin () { QString version; QString path = findXDarwin (version); if (path.isEmpty ()) { show_XQuartz_not_found_error (); } else { QString minVer = "2.1.0"; if (retMaxXDarwinVersion (minVer, version) == minVer) { printXDarwinVersionWarning (version); } leXexec->setText (path); leCmdOpt->setText (version); } } void ConfigDialog::printXDarwinVersionWarning (QString version) { show_RichText_WarningMsgBox (tr ("Your XQuartz version is too old."), tr ("Your are using XQuartz (X Window System Server for OS X) version ") + version + tr (".\n\n" "This version causes problems with X applications in 24bit " "color mode.\n" "You should update your X11 environment.\n\n" "MacPorts users please follow the steps outlined on:\n" "

" "https://guide.macports.org/chunked/using.common-tasks.html" "
\n\n" "Users who have installed XQuartz via the installer package\n" "can find updated versions on:\n" "
" "https://xquartz.macosforge.org/" "
")); } void ConfigDialog::slot_selectXDarwin () { QString newDir = QFileDialog::getOpenFileName (this, QString (), leXexec->text () + "/.."); QString version; if (newDir.length () > 0) { findXDarwin (version, newDir); if (version.compare (QString ("0.0.0")) == 0) { show_RichText_WarningMsgBox (tr ("No valid XQuartz application selected."), tr ("You did not select a valid XQuartz application.\n" "Please try again.\n\n" "Some standard installation locations may be:\n" "
/Applications/Utilities/X11.app
\n" "
/Applications/Utilities/XQuartz.app
\n" "
/Applications/MacPorts/X11.app
")); } else { QString minVer = "2.1.0"; if (retMaxXDarwinVersion (minVer, version) == minVer) { printXDarwinVersionWarning (version); } leXexec->setText (newDir); leCmdOpt->setText (version); } } } QString ConfigDialog::getXDarwinDirectory() { X2goSettings st ("settings"); return st.setting()->value ( "xdarwin/directory", ( QVariant ) "" ).toString() ; } #endif void ConfigDialog::slotAdvClicked() { if ( advOptionsShown ) { 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" ) ); advancedOptions->setText ( tr ( "Advanced options" ) +" <<" ); } advOptionsShown=!advOptionsShown; } void ConfigDialog::slotDefaults() { switch ( tabWidg->currentIndex() ) { #ifdef Q_OS_WIN case 3: { cbNoRecord->setChecked(false); } break; #endif case 0: { if ( embedMode ) cbStartEmbed->setChecked ( true ); clientSshPort->setValue ( 22 ); #ifndef CFGPLUGIN gbTrayIcon->setChecked (false); cbMinimizeTray->setChecked (false); cbMaxmizeTray->setChecked ( false); cbNoClose->setChecked (false); cbMinToTray->setChecked (false); #endif } break; #if defined (Q_OS_WIN) && defined (CFGCLIENT) case 2: { xsetWidg->setDefaults(); } break; #else case 1: break; case 2: { conWidg->setDefaults(); } break; case 3: { setWidg->setDefaults(); } break; case 4: { mediaWidget->setDefaults(); } break; #endif } } x2goclient-4.0.5.1/src/configdialog.h0000644000000000000000000000665112675050177014232 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CONFIGDIALOG_H #define CONFIGDIALOG_H #include "x2goclientconfig.h" #include class QLineEdit; class QCheckBox; class QSpinBox; class QPushButton; class QRadioButton; class QButtonGroup; class PrintWidget; class ConnectionWidget; class SettingsWidget; class MediaWidget; class QTabWidget; class QGroupBox; #if defined (Q_OS_WIN) && defined (CFGCLIENT ) class XSettingsWidget; #endif /** @author Oleksandr Shneyder */ class ConfigDialog : public QDialog { Q_OBJECT public: ConfigDialog ( QWidget * parent, Qt::WFlags f = 0 ); ~ConfigDialog(); #ifdef Q_OS_DARWIN static QString findXDarwin ( QString& version, QString path="" ); static QString retMaxXDarwinVersion ( QString v1, QString v2 ); static QString getXDarwinDirectory(); void printXDarwinVersionWarning ( QString version ); #endif #ifdef Q_OS_WIN static QString getCygwinDir ( const QString& dir ); #endif private: QTabWidget* tabWidg; QCheckBox* cbStartEmbed; QLineEdit* ldapBase; QLineEdit* ldapServer; QSpinBox* port; QLineEdit* ldapServer1; QSpinBox* port1; PrintWidget* pwid; QLineEdit* ldapServer2; bool embedMode; QSpinBox* port2; QSpinBox* clientSshPort; QPushButton* ok; bool advOptionsShown; QGroupBox* gbLDAP; QPushButton* defaults; QPushButton* advancedOptions; QLineEdit* leXexec; QLineEdit* leCmdOpt; QSpinBox* sbDisp; QLineEdit* leXexecDir; QRadioButton* rbX[3]; QPushButton* pbOpenExec; QButtonGroup* bgRadio; ConnectionWidget* conWidg; SettingsWidget* setWidg; MediaWidget* mediaWidget; #if defined (Q_OS_WIN) && defined (CFGCLIENT) XSettingsWidget* xsetWidg; #endif #ifdef Q_OS_WIN QCheckBox *cbNoRecord; #endif QGroupBox *gbTrayIcon; QCheckBox *cbMinimizeTray; QCheckBox *cbMaxmizeTray; QCheckBox *cbNoClose; QCheckBox *cbMinToTray; public slots: void slot_accepted(); void slot_checkOkStat(); private slots: #ifdef Q_OS_DARWIN void slot_selectXDarwin(); void slot_findXDarwin(); #endif private slots: void slotAdvClicked(); void slotDefaults(); }; #endif x2goclient-4.0.5.1/src/configwidget.cpp0000644000000000000000000000310612675050177014601 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "configwidget.h" #include "onmainwindow.h" ConfigWidget::ConfigWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : QFrame ( parent,f ) { sessionId=id; mainWindow=mw; miniMode=mw->retMiniMode(); embedMode=embedMode= mw->getEmbedMode(); if(embedMode) sessionId="embedded"; } ConfigWidget::~ConfigWidget() { } x2goclient-4.0.5.1/src/configwidget.h0000644000000000000000000000323512675050177014251 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CONFIGWIDGET_H #define CONFIGWIDGET_H #include #include "x2goclientconfig.h" /** @author Oleksandr Shneyder */ class ONMainWindow; class ConfigWidget : public QFrame { public: ConfigWidget ( QString id, ONMainWindow * mv, QWidget * parent = 0, Qt::WindowFlags f = 0 ); ~ConfigWidget(); protected: bool miniMode; bool embedMode; QString sessionId; ONMainWindow* mainWindow; }; #endif x2goclient-4.0.5.1/src/connectionwidget.cpp0000644000000000000000000001362412675050177015501 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "connectionwidget.h" #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include "onmainwindow.h" ConnectionWidget::ConnectionWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { QVBoxLayout *connLay=new QVBoxLayout ( this ); #ifndef Q_WS_HILDON QGroupBox* netSpd=new QGroupBox ( tr ( "&Connection speed" ),this ); QVBoxLayout *spdLay=new QVBoxLayout ( netSpd ); #else QFrame* netSpd=this ; QVBoxLayout *spdLay=new QVBoxLayout (); spdLay->addWidget ( new QLabel ( tr ( "Connection speed:" ),netSpd ) ); #endif spd=new QSlider ( Qt::Horizontal,netSpd ); spd->setMinimum ( 0 ); spd->setMaximum ( 4 ); spd->setTickPosition ( QSlider::TicksBelow ); spd->setTickInterval ( 1 ); spd->setSingleStep ( 1 ); spd->setPageStep ( 1 ); QHBoxLayout *tickLay=new QHBoxLayout(); QHBoxLayout *slideLay=new QHBoxLayout(); slideLay->addWidget ( spd ); QLabel* mlab= new QLabel ( "MODEM",netSpd ); tickLay->addWidget ( mlab ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "ISDN",netSpd ) ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "ADSL",netSpd ) ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "WAN",netSpd ) ); tickLay->addStretch(); tickLay->addWidget ( new QLabel ( "LAN",netSpd ) ); spdLay->addLayout ( slideLay ); spdLay->addLayout ( tickLay ); QFontMetrics fm ( mlab->font() ); slideLay->insertSpacing ( 0,fm.width ( "MODEM" ) /2 ); slideLay->addSpacing ( fm.width ( "LAN" ) /2 ); #ifndef Q_WS_HILDON QGroupBox* compr=new QGroupBox ( tr ( "C&ompression" ),this ); QHBoxLayout* comprLay=new QHBoxLayout ( compr ); #else QFrame* compr=this; QHBoxLayout* comprLay=new QHBoxLayout (); #endif packMethode = new QComboBox ( this ); quali= new QSpinBox ( this ); quali->setRange ( 0,9 ); #ifdef Q_WS_HILDON quali->setFixedHeight ( int ( quali->sizeHint().height() *1.5 ) ); #endif QVBoxLayout* colLay=new QVBoxLayout(); QVBoxLayout* cowLay=new QVBoxLayout(); QHBoxLayout* spbl=new QHBoxLayout(); #ifndef Q_WS_HILDON colLay->addWidget ( new QLabel ( tr ( "Method:" ),compr ) ); #else colLay->addWidget ( new QLabel ( tr ( "Compression method:" ),compr ) ); #endif colLay->addWidget ( qualiLabel=new QLabel ( tr ( "Image quality:" ), compr ) ); cowLay->addWidget ( packMethode ); spbl->addWidget ( quali ); spbl->addStretch(); cowLay->addLayout ( spbl ); comprLay->addLayout ( colLay ); comprLay->addLayout ( cowLay ); #ifndef Q_WS_HILDON connLay->addWidget ( netSpd ); connLay->addWidget ( compr ); #else connLay->addLayout ( spdLay ); connLay->addLayout ( comprLay ); #endif connLay->addStretch(); connect ( packMethode,SIGNAL ( activated ( const QString& ) ),this, SLOT ( slot_changePack ( const QString& ) ) ); readConfig(); } ConnectionWidget::~ConnectionWidget() { } void ConnectionWidget::loadPackMethods() { QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); qualiList<addItem ( pc ); } file.close(); } void ConnectionWidget::slot_changePack ( const QString& pc ) { bool ct=qualiList.contains ( pc ); quali->setEnabled ( ct ); qualiLabel->setEnabled ( ct ); } void ConnectionWidget::readConfig() { loadPackMethods(); X2goSettings st ( "sessions" ); spd->setValue ( st.setting()->value ( sessionId+"/speed", ( QVariant ) mainWindow->getDefaultLink() ).toInt() ); QString mt=st.setting()->value ( sessionId+"/pack", ( QVariant ) mainWindow->getDefaultPack() ).toString(); packMethode->setCurrentIndex ( packMethode->findText ( mt ) ); quali->setValue ( st.setting()->value ( sessionId+"/quality", mainWindow->getDefaultQuality() ).toInt() ); slot_changePack ( mt ); } void ConnectionWidget::setDefaults() { spd->setValue ( 2 ); packMethode->setCurrentIndex ( packMethode->findText ( "16m-jpeg" ) ); quali->setValue ( 9 ); slot_changePack ( "16m-jpeg" ); } void ConnectionWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/speed", ( QVariant ) spd->value() ); st.setting()->setValue ( sessionId+"/pack", ( QVariant ) packMethode->currentText() ); st.setting()->setValue ( sessionId+"/quality", ( QVariant ) quali->value() ); st.setting()->sync(); } x2goclient-4.0.5.1/src/connectionwidget.h0000644000000000000000000000375212675050177015147 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CONNECTIONWIDGET_H #define CONNECTIONWIDGET_H #include "configwidget.h" #include /** @author Oleksandr Shneyder */ class QPushButton; class QLabel; class QSlider; class QStringList; class ONMainWindow; class QComboBox; class QSpinBox; class ConnectionWidget : public ConfigWidget { Q_OBJECT public: ConnectionWidget ( QString id, ONMainWindow * mw, QWidget * parent=0, Qt::WindowFlags f=0 ); ~ConnectionWidget(); void setDefaults(); void saveSettings(); private slots: void slot_changePack ( const QString& pc ); private: void loadPackMethods(); private: QLabel* qualiLabel; QSlider *spd; QStringList qualiList; QComboBox* packMethode; QSpinBox* quali; private: void readConfig(); }; #endif x2goclient-4.0.5.1/src/contest.cpp0000644000000000000000000001235512675050177013615 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "contest.h" #include "x2gologdebug.h" #include #include "httpbrokerclient.h" #include ConTest::ConTest(HttpBrokerClient* broker, QUrl url, QWidget* parent, Qt::WindowFlags f): QDialog(parent, f) { socket=0l; setupUi(this); this->broker=broker; brokerUrl=url; timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(slotTimer())); connect(broker,SIGNAL(connectionTime(int,int)),this, SLOT(slotConSpeed(int,int))); start(); } ConTest::~ConTest() { } void ConTest::resetSocket() { if (socket) { socket->disconnectFromHost(); socket->close(); delete socket; socket=0l; } } void ConTest::reset() { timer->stop(); lhttps->setText(""); lssh->setText(""); lspeed->setText(""); prhttps->setValue(0); prspeed->setValue(0); prssh->setValue(0); httpsOk=false; resetSocket(); buttonBox->button(QDialogButtonBox::Retry)->setEnabled(false); } void ConTest::start() { reset(); testConnection(HTTPS); } void ConTest::testConnection(tests test) { time=0; timer->start(100); resetSocket(); currentTest=test; if (test==SPEED) { if (!httpsOk) { slotConSpeed(1,0); return; } broker->testConnection(); return; } socket=new QTcpSocket(this); socket->connectToHost(brokerUrl.host(),test); connect( socket,SIGNAL(connected()),this,SLOT(slotConnected())); connect( socket, SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotError(QAbstractSocket::SocketError))); } void ConTest::slotConnected() { x2goDebug<<"connected\n"; timer->stop(); QPalette pal=lhttps->palette(); pal.setColor(QPalette::WindowText, Qt::green); switch (currentTest) { case HTTPS: prhttps->setValue(100); lhttps->setText(tr("OK")); lhttps->setPalette(pal); httpsOk=true; testConnection(SSH); break; case SSH: prssh->setValue(100); lssh->setText(tr("OK")); lssh->setPalette(pal); testConnection(SPEED); break; default: break; } } void ConTest::slotConSpeed(int msecElapsed, int bytesRecived) { timer->stop(); prspeed->setValue(100); double sec=msecElapsed/1000.; int KB=bytesRecived/1024; int Kbsec=(int)(KB/sec)*8; QPalette pal=lspeed->palette(); pal.setColor(QPalette::WindowText, Qt::green); if (Kbsec<1000) pal.setColor(QPalette::WindowText, Qt::yellow); if (Kbsec<512) pal.setColor(QPalette::WindowText, Qt::red); lspeed->setPalette(pal); lspeed->setText(QString::number(Kbsec)+" Kb/s"); buttonBox->button(QDialogButtonBox::Retry)->setEnabled(true); } void ConTest::slotError(QAbstractSocket::SocketError socketError) { QString error; if (socketError==QAbstractSocket::SocketTimeoutError) error=tr("Socket operation timed out."); else error=socket->errorString(); x2goDebug<<"Error: "<stop(); QPalette pal=lhttps->palette(); pal.setColor(QPalette::WindowText, Qt::red); switch (currentTest) { case HTTPS: prhttps->setValue(100); lhttps->setText(tr("Failed: ")+error); lhttps->setPalette(pal); testConnection(SSH); break; case SSH: prssh->setValue(100); lssh->setText(tr("Failed: ")+error); lssh->setPalette(pal); testConnection(SPEED); break; default: break; } } void ConTest::slotTimer() { time++; if (time>150) { if (currentTest==SSH || currentTest==HTTPS) { socket->close(); slotError(QAbstractSocket::SocketTimeoutError); } } QProgressBar* bar=0l; switch (currentTest) { case SSH: bar=prssh; break; case HTTPS: bar=prhttps; break; case SPEED: bar=prspeed; break; } if (bar->value()==100) bar->setValue(0); else bar->setValue(bar->value()+10); } x2goclient-4.0.5.1/src/contest.h0000644000000000000000000000406212675050177013256 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CONTEST_H #define CONTEST_H #include #include "ui_contest.h" #include #include class HttpBrokerClient; class QTcpSocket; class QTimer; class ConTest : public QDialog, public Ui_ConTest { Q_OBJECT public: ConTest(HttpBrokerClient* broker, QUrl url, QWidget* parent = 0, Qt::WindowFlags f = 0); virtual ~ConTest(); private: enum tests {SSH=22,HTTPS=443,SPEED} currentTest; void reset(); void testConnection(tests test); void resetSocket(); private slots: void slotConnected(); void slotError(QAbstractSocket::SocketError socketError); void slotTimer(); void slotConSpeed(int msecElapsed, int bytesRecived); private: HttpBrokerClient* broker; QUrl brokerUrl; QTcpSocket* socket; QTimer* timer; int time; bool httpsOk; public slots: void start(); }; #endif // CONTEST_H x2goclient-4.0.5.1/src/cupsprint.cpp0000644000000000000000000002422712675050177014166 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "cupsprint.h" #ifndef Q_OS_WIN #include "x2gologdebug.h" #include "x2gosettings.h" #include CUPSPrint::CUPSPrint() { ppd=0l; num_dests= cupsGetDests ( &dests ); } CUPSPrint::~CUPSPrint() { cupsFreeDests ( num_dests, dests ); if ( ppd ) ppdClose ( ppd ); ppd=0l; } QStringList CUPSPrint::getPrinters() { QStringList printers; for ( int i=0;ivalue ( "CUPS/defaultprinter","" ). toString(); if ( defPrint.length() >0 ) { cups_dest_t *dest = cupsGetDest ( defPrint.toAscii(), 0l, num_dests, dests ); if ( dest ) return defPrint; } cups_dest_t *dest = cupsGetDest ( 0l, 0l, num_dests, dests ); if ( dest ) defPrint=dest->name; return defPrint; } void CUPSPrint::setDefaultUserPrinter ( QString printer ) { X2goSettings st ( "printing" ); st.setting()->setValue ( "CUPS/defaultprinter", QVariant ( printer ) ); } bool CUPSPrint::getPrinterInfo ( const QString& printerName, QString& info, bool& acceptJobs, QString& location, QString& model, printState& state, QString& stateReason ) { cups_dest_t *dest = cupsGetDest ( printerName.toAscii(), 0l, num_dests, dests ); if ( !dest ) return false; acceptJobs=qstrcmp ( cupsGetOption ( "printer-is-accepting-jobs", dest->num_options, dest->options ),"0" ); info=QString::fromLocal8Bit ( cupsGetOption ( "printer-info", dest->num_options, dest->options ) ); location=QString::fromLocal8Bit ( cupsGetOption ( "printer-location", dest->num_options, dest->options ) ); model=QString::fromLocal8Bit ( cupsGetOption ( "printer-make-and-model", dest->num_options, dest->options ) ); QString st=cupsGetOption ( "printer-state", dest->num_options, dest->options ); state=NDEF; if ( st=="3" ) state=IDLE; if ( st=="4" ) state=PRINTING; if ( st=="5" ) state=STOPPED; stateReason=QString::fromLocal8Bit ( cupsGetOption ( "printer-state-reasons", dest->num_options, dest->options ) ); return true; } bool CUPSPrint::setCurrentPrinter ( QString prn ) { currentPrinter=prn; QString fl=cupsGetPPD ( prn.toAscii() ); if ( fl.length() <=0 ) return false; if ( ppd ) ppdClose ( ppd ); ppd=0l; ppd=ppdOpenFile ( fl.toAscii() ); unlink ( fl.toAscii() ); if ( ppd==0l ) return false; ppdMarkDefaults ( ppd ); loadUserOptions(); if ( ppdConflicts ( ppd ) !=0 ) { x2goDebug<<"There are conflicting options in user settings,\n" "loading defaults"<defchoice ); if ( !choice ) return false; } value=QString::fromLocal8Bit ( choice->choice ); valueText=QString::fromLocal8Bit ( choice->text ); // x2goDebug<<"getValue:"<num_choices;++k ) { ppd_choice_t* choice=& ( opt->choices[k] ); if ( choice->marked ) { cur_val=values.size(); } //if no choice is marked, return default if ( !qstrcmp ( choice->choice,opt->defchoice ) && cur_val==-1 ) { cur_val=values.size(); } values<choice ); descriptions<text ); } return cur_val; } int CUPSPrint::getOptionGroups ( QStringList& names, QStringList& texts ) { names.clear(); texts.clear(); if ( !ppd ) return -1; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); names<name ); texts<text ); } return names.size(); } int CUPSPrint::getOptionsList ( const QString& groupName, QStringList& names, QStringList& texts ) { names.clear(); texts.clear(); if ( !ppd ) return -1; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); if ( groupName.length() >0 && groupName != QString::fromLocal8Bit ( group->name ) ) continue; for ( int j=0;jnum_options;++j ) { ppd_option_t* option=& ( group->options[j] ); names<keyword ); texts<text ); } } return names.size(); } bool CUPSPrint::setValue ( const QString& option, const QString& value, QString& conflict_opt, QString& conflict_val ) { if ( !ppd ) return false; int conflictsBefore= ppdConflicts ( ppd ); QString valueBefore, textBefore; if ( !getOptionValue ( option,valueBefore,textBefore ) ) return false; ppdMarkOption ( ppd,option.toAscii(),value.toAscii() ); if ( conflictsBefore==ppdConflicts ( ppd ) ) { return true; } //find conflicting option for ( int i=0;inum_consts;++i ) { QString confOpt,confVal; if ( option==ppd->consts[i].option1 && value==ppd->consts[i].choice1 ) { confOpt=ppd->consts[i].option2; confVal=ppd->consts[i].choice2; } else if ( option==ppd->consts[i].option2 && value==ppd->consts[i].choice2 ) { confOpt=ppd->consts[i].option1; confVal=ppd->consts[i].choice1; } else continue; QString selectedValue, selectedText; if ( getOptionValue ( confOpt,selectedValue,selectedText ) ) { if ( selectedValue==confVal ) { //conflicting option/choice found conflict_val=confVal; conflict_opt=confOpt; break; } } } //set previous value ppdMarkOption ( ppd,option.toAscii(),valueBefore.toAscii() ); return false; } bool CUPSPrint::getOptionText ( const QString& option, QString& text ) { if ( !ppd ) return false; ppd_option_t* opt=ppdFindOption ( ppd,option .toAscii() ); if ( !opt ) return false; text=QString::fromLocal8Bit ( opt->text ); return true; } void CUPSPrint::setDefaults() { //don't use ppdMarkDefaults here //ppdMarkDefaults do not unmark //already marked choices if ( !ppd ) return; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); for ( int j=0;jnum_options;++j ) { ppd_option_t* option=& ( group->options[j] ); ppdMarkOption ( ppd,option->keyword,option->defchoice ); } } } void CUPSPrint::saveOptions() { if ( !ppd ) return; X2goSettings st( "printing" ); QStringList options; for ( int i=0;inum_groups;++i ) { ppd_group_t* group=& ( ppd->groups[i] ); for ( int j=0;jnum_options;++j ) { ppd_option_t* option=& ( group->options[j] ); QString val,valtext; if ( !getOptionValue ( option->keyword,val,valtext ) ) continue; //something is wrong here if ( val!=option->defchoice ) { QString opt=option->keyword; opt+="="+val; options<setValue ( "CUPS/options/"+currentPrinter, QVariant ( options ) ); } void CUPSPrint::loadUserOptions() { X2goSettings st ( "printing" ); QStringList options=st.setting()->value ( "CUPS/options/"+currentPrinter ).toStringList(); for ( int i=0;i #include #include CUPSPrinterSettingsDialog::CUPSPrinterSettingsDialog ( QString prnName, CUPSPrint* cupsObject, QWidget * parent, Qt::WFlags flags ) :QDialog ( parent, flags ) { m_cups=cupsObject; printer=prnName; ui.setupUi ( this ); setWindowTitle ( prnName ); QList sz; sz<<250<<100; ui.splitter->setSizes ( sz ); if ( !m_cups->setCurrentPrinter ( printer ) ) { //message here close(); } setGeneralTab(); setPPDTab(); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::RestoreDefaults ) ), SIGNAL ( clicked() ),this,SLOT ( slot_restoreDefaults() ) ); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::Save ) ), SIGNAL ( clicked() ),this,SLOT ( slot_saveOptions() ) ); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::Cancel ) ), SIGNAL ( clicked() ),this,SLOT ( reject() ) ); connect ( ( QObject* ) ( ui.buttonBox->button ( QDialogButtonBox::Ok ) ), SIGNAL ( clicked() ),this,SLOT ( slot_ok() ) ); } CUPSPrinterSettingsDialog::~CUPSPrinterSettingsDialog() { } void CUPSPrinterSettingsDialog::setCbBox ( QComboBox* cb, QString optionKeyword ) { QStringList values; QStringList descriptions; int cur_val=m_cups->getOptionValues ( optionKeyword, values,descriptions ); if ( cur_val==-1 ) cb->setEnabled ( false ); else { cb->addItems ( descriptions ); cb->setCurrentIndex ( cur_val ); } } void CUPSPrinterSettingsDialog::slot_optionSelected ( QTreeWidgetItem * current, QTreeWidgetItem * ) { ui.optionsTree->clear(); if ( current ) if ( current->childCount() ==0 ) { ui.gbOptions->setTitle ( current->text ( 0 ) ); QStringList valueNames, valueTexts; int selectedValue=m_cups-> getOptionValues ( current->text ( 2 ), valueNames,valueTexts ); for ( int i=0;isetText ( 0,valueTexts[i] ); ritem->setText ( 1,valueNames[i] ); if ( i==selectedValue ) ui.optionsTree->setCurrentItem ( ritem ); } return; } ui.gbOptions->setTitle ( tr ( "No option selected" ) ); } void CUPSPrinterSettingsDialog::slot_valueSelected ( QTreeWidgetItem * current, QTreeWidgetItem * ) { if ( !current ) return; QTreeWidgetItem* optionItem=ui.ppdTree->currentItem(); QString option=optionItem->text ( 2 ); QString newVal=current->text ( 1 ); QString prevVal,prevText; m_cups->getOptionValue ( option,prevVal,prevText ); if ( prevVal==newVal ) return; //we need change current item //do it outside this function setNewValue ( option,newVal ) ; QTimer::singleShot ( 1, this, SLOT ( slot_reloadValues() ) ); m_cups->getOptionValue ( option,prevVal,prevText ); optionItem->setText ( 1,prevText ); optionItem->setText ( 3,prevVal ); setGeneralTab(); } void CUPSPrinterSettingsDialog::setGeneralTab() { disconnect ( ui.cbPageSize,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePSize ( int ) ) ); disconnect ( ui.cbMediaType,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePType ( int ) ) ); disconnect ( ui.cbInputSlot,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changeISlot ( int ) ) ); disconnect ( ui.rbNone,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); disconnect ( ui.rbShort,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); disconnect ( ui.rbLong,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); ui.cbPageSize->clear(); ui.cbMediaType->clear(); ui.cbInputSlot->clear(); setCbBox ( ui.cbPageSize,"PageSize" ); setCbBox ( ui.cbMediaType,"MediaType" ); setCbBox ( ui.cbInputSlot,"InputSlot" ); QString valueName, valueText; ui.rbNone->setChecked ( true ); if ( m_cups->getOptionValue ( "Duplex",valueName,valueText ) ) { if ( valueName=="DuplexTumble" ) ui.rbShort->setChecked ( true ); if ( valueName=="DuplexNoTumble" ) ui.rbLong->setChecked ( true ); } else ui.gbDuplex->setEnabled ( false ); connect ( ui.cbPageSize,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePSize ( int ) ) ); connect ( ui.cbMediaType,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changePType ( int ) ) ); connect ( ui.cbInputSlot,SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_changeISlot ( int ) ) ); connect ( ui.rbNone,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); connect ( ui.rbShort,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); connect ( ui.rbLong,SIGNAL ( clicked ( ) ), this,SLOT ( slot_changeDuplex() ) ); } void CUPSPrinterSettingsDialog::setPPDTab() { disconnect ( ui.ppdTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_optionSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); disconnect ( ui.optionsTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_valueSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); QString info; bool acceptJobs; QString location; QString model; CUPSPrint::printState state; QString stateReason; QString valueName,valueText; UNUSED (m_cups->getPrinterInfo (printer, info, acceptJobs, location, model, state, stateReason)); ui.ppdTree->clear(); QTreeWidgetItem* ritem=new QTreeWidgetItem ( ( QTreeWidgetItem* ) 0, QTreeWidgetItem::Type ) ; ritem->setText ( 0,model ); ui.ppdTree->addTopLevelItem ( ritem ); QStringList grName, grText; m_cups->getOptionGroups ( grName,grText ); for ( int i=0;isetText ( 0,grText[i] ); gritem->setText ( 2,grName[i] ); QStringList optName, optText; m_cups->getOptionsList ( grName[i],optName,optText ); for ( int j=0;jsetText ( 0,optText[j] ); optitem->setText ( 2,optName[j] ); m_cups->getOptionValue ( optName[j],valueName, valueText ); optitem->setText ( 1,valueText ); optitem->setText ( 3,valueName ); } } ui.ppdTree->expandAll(); ui.ppdTree->header()->resizeSections ( QHeaderView::ResizeToContents ); slot_optionSelected ( ritem,0l ); connect ( ui.ppdTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_optionSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); connect ( ui.optionsTree, SIGNAL ( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT ( slot_valueSelected ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); } bool CUPSPrinterSettingsDialog::setNewValue ( const QString& option, const QString& value ) { QString confVal,confOpt; bool res=m_cups->setValue ( option,value,confOpt,confVal ); if ( !res ) { QString textMessage= tr ( "This value is in conflict with another option." ); QString txt; m_cups->getOptionText ( confOpt,txt ); QString val,valt; m_cups->getOptionValue ( confOpt,val,valt ); if ( confOpt.length() >0 &&confVal.length() >0 ) { textMessage+="\n("+txt+" : "+valt+")"; } QMessageBox::critical ( this,tr ( "Options conflict." ), textMessage ); } return res; } void CUPSPrinterSettingsDialog::slot_reloadValues() { if ( ui.ppdTree->currentItem() ) slot_optionSelected ( ui.ppdTree->currentItem(),0l ); QTreeWidgetItemIterator it ( ui.ppdTree ); while ( *it ) { if ( ( *it )->childCount() ==0 ) { QString opt= ( *it )->text ( 2 ); QString nval,ntext; m_cups->getOptionValue ( opt,nval,ntext ); if ( ( *it )->text ( 3 ) != nval ) ( *it )->setText ( 1,ntext ); ( *it )->setText ( 3,nval ); } ++it; } } void CUPSPrinterSettingsDialog::slot_changePSize ( int ind ) { changeFromCbBox ( "PageSize",ind ); } void CUPSPrinterSettingsDialog::slot_changePType ( int ind ) { changeFromCbBox ( "MediaType",ind ); } void CUPSPrinterSettingsDialog::slot_changeISlot ( int ind ) { changeFromCbBox ( "InputSlot",ind ); } void CUPSPrinterSettingsDialog::changeFromCbBox ( const QString& opt, int id ) { QStringList vals,texts; m_cups->getOptionValues ( opt,vals,texts ); if ( vals.size() isChecked() ) { changeGeneralOption ( "Duplex","DuplexTumble" ); } if ( ui.rbLong->isChecked() ) { changeGeneralOption ( "Duplex","DuplexNoTumble" ); } if ( ui.rbNone->isChecked() ) { changeGeneralOption ( "Duplex","None" ); } } void CUPSPrinterSettingsDialog::changeGeneralOption ( const QString& option, const QString& val ) { if ( !setNewValue ( option,val ) ) QTimer::singleShot ( 1, this, SLOT ( setGeneralTab() ) ); slot_reloadValues(); } void CUPSPrinterSettingsDialog::slot_restoreDefaults() { m_cups->setDefaults(); setGeneralTab(); slot_reloadValues(); } void CUPSPrinterSettingsDialog::slot_saveOptions() { m_cups->saveOptions(); } void CUPSPrinterSettingsDialog::slot_ok() { m_cups->saveOptions(); accept(); } #endif x2goclient-4.0.5.1/src/cupsprintersettingsdialog.h0000644000000000000000000000525412675050177017122 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CUPSPRINTERSETTINGSDIALOG_H #define CUPSPRINTERSETTINGSDIALOG_H #include "x2goclientconfig.h" #ifndef Q_OS_WIN #include #include "ui_cupsprintsettingsdialog.h" /** @author Oleksandr Shneyder */ class CUPSPrint; class CUPSPrinterSettingsDialog : public QDialog { Q_OBJECT public: enum tabs{GENERAL,PPD}; CUPSPrinterSettingsDialog ( QString prnName, CUPSPrint* cupsObject, QWidget * parent=0l, Qt::WFlags flags =0 ); ~CUPSPrinterSettingsDialog(); private: CUPSPrint* m_cups; Ui::CupsPrinterSettingsDialog ui; QString printer; private: void setCbBox ( QComboBox* cb, QString optionKeyword ); void setPPDTab(); bool setNewValue ( const QString& option, const QString& value ); void changeFromCbBox ( const QString& opt, int id ); void changeGeneralOption ( const QString& option, const QString& val ); private slots: void slot_optionSelected ( QTreeWidgetItem * current, QTreeWidgetItem * previous ); void slot_valueSelected ( QTreeWidgetItem * current, QTreeWidgetItem * previous ); void slot_reloadValues(); void slot_changePSize ( int ind ); void slot_changePType ( int ind ); void slot_changeISlot ( int ind ); void slot_changeDuplex(); void setGeneralTab(); void slot_restoreDefaults(); void slot_saveOptions(); void slot_ok(); }; #endif #endif x2goclient-4.0.5.1/src/cupsprint.h0000644000000000000000000000537412675050177013635 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CUPSPRINT_H #define CUPSPRINT_H #include "x2goclientconfig.h" #ifndef Q_OS_WIN #include #include #include /** @author Oleksandr Shneyder */ class CUPSPrint { public: enum printState {NDEF,IDLE,PRINTING,STOPPED}; CUPSPrint(); ~CUPSPrint(); void setDefaultUserPrinter ( QString printer ); QString getDefaultUserPrinter(); QStringList getPrinters(); bool getPrinterInfo ( const QString& printerName, QString& info, bool& acceptJobs, QString& location, QString& model, printState& state, QString& stateReason ); bool setCurrentPrinter ( QString ); bool getOptionValue ( const QString& option, QString& value, QString& valueText ); int getOptionValues ( const QString& option, QStringList& values, QStringList& descriptions ); int getOptionGroups ( QStringList& names, QStringList& texts ); int getOptionsList ( const QString& group, QStringList& names, QStringList& texts ); bool setValue ( const QString& option, const QString& value, QString& conflict_opt, QString& conflict_val ); bool getOptionText ( const QString& option, QString& text ); void setDefaults(); void saveOptions(); void print ( const QString& file, QString title="" ); private: cups_dest_t *dests; int num_dests; ppd_file_t *ppd; QString currentPrinter; private: void loadUserOptions(); }; #endif #endif x2goclient-4.0.5.1/src/cupsprintwidget.cpp0000644000000000000000000000631512675050177015370 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "cupsprint.h" #include "cupsprintwidget.h" #ifndef Q_OS_WIN #include "x2gologdebug.h" #include "cupsprintersettingsdialog.h" CUPSPrintWidget::CUPSPrintWidget ( QWidget* parent ) : QWidget ( parent ) { m_cups=new CUPSPrint; ui.setupUi ( this ); ui.cbPrinters->addItems ( m_cups->getPrinters() ); int defind=ui.cbPrinters->findText ( m_cups->getDefaultUserPrinter() ); if ( defind!=-1 ) { ui.cbPrinters->setCurrentIndex ( defind ); slot_printerSelected ( defind ); } connect ( ui.cbPrinters, SIGNAL ( currentIndexChanged ( int ) ), this,SLOT ( slot_printerSelected ( int ) ) ) ; connect ( ui.pbProps, SIGNAL ( clicked() ), this, SLOT ( slot_printerSettings() ) ); } CUPSPrintWidget::~CUPSPrintWidget() { delete m_cups; } void CUPSPrintWidget::slot_printerSelected ( int index ) { if ( index == -1 ) return; QString info; bool acceptJobs; QString location; QString model; CUPSPrint::printState state; QString stateReason; if ( !m_cups->getPrinterInfo ( ui.cbPrinters->currentText(), info,acceptJobs, location,model,state,stateReason ) ) return; QString stText; switch ( state ) { case CUPSPrint::IDLE: stText=tr ( "Idle" ); break; case CUPSPrint::PRINTING: stText=tr ( "Printing" ); break; case CUPSPrint::STOPPED: stText=tr ( "Stopped" ); break; default: break; } if ( stateReason.length() >0 && stateReason != "none" ) stText+= " ("+stateReason+")"; ui.lState->setText ( stText ); ( acceptJobs ) ?ui.lJAccept->setText ( tr ( "Yes" ) ) :ui.lJAccept->setText ( tr ( "No" ) ); ui.lType->setText ( info ); ui.lLocation->setText ( location ); ui.lComment->setText ( model ); } void CUPSPrintWidget::slot_printerSettings() { CUPSPrinterSettingsDialog dlg ( ui.cbPrinters->currentText(), m_cups,this ); dlg.exec(); } void CUPSPrintWidget::savePrinter() { m_cups->setDefaultUserPrinter ( ui.cbPrinters->currentText() ); } #endif x2goclient-4.0.5.1/src/cupsprintwidget.h0000644000000000000000000000336412675050177015036 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef CUPSPRINTWIDGET_H #define CUPSPRINTWIDGET_H #include #include "x2goclientconfig.h" #ifndef Q_OS_WIN #include "cupsprint.h" #include "ui_cupsprintwidget.h" /** @author Oleksandr Shneyder */ class CUPSPrintWidget : public QWidget { Q_OBJECT public: CUPSPrintWidget ( QWidget* parent =0 ); ~CUPSPrintWidget(); void savePrinter(); private: CUPSPrint* m_cups; Ui::CUPSPrintWidget ui; private slots: void slot_printerSelected ( int index ); void slot_printerSettings(); }; #endif #endif x2goclient-4.0.5.1/src/editconnectiondialog.cpp0000644000000000000000000001267612675050177016331 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "editconnectiondialog.h" #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "onmainwindow.h" #include #include #include "sessionwidget.h" #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 ) : QDialog ( par,f ) { QVBoxLayout* ml=new QVBoxLayout ( this ); #ifdef Q_WS_HILDON ml->setMargin ( 2 ); #endif fr=new QTabWidget ( this ); ml->addWidget ( fr ); ONMainWindow* parent= ( ONMainWindow* ) par; QFont fnt=font(); if ( parent->retMiniMode() ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif setFont ( fnt ); 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" ) ); if (! parent->getHideFolderSharing()) fr->addTab ( exportDir,tr ( "&Shared folders" ) ); QPushButton* ok=new QPushButton ( tr ( "&OK" ),this ); QPushButton* cancel=new QPushButton ( tr ( "&Cancel" ),this ); QPushButton* def=new QPushButton ( tr ( "Defaults" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); bLay->setSpacing ( 5 ); bLay->addStretch(); bLay->addWidget ( ok ); bLay->addWidget ( cancel ); bLay->addWidget ( def ); ml->addLayout ( bLay ); #ifdef Q_WS_HILDON bLay->setMargin ( 2 ); #endif setSizeGripEnabled ( true ); setWindowIcon ( QIcon ( parent->iconsPath ( "/32x32/edit.png" ) ) ); connect ( ok,SIGNAL ( clicked() ),this,SLOT ( accept() ) ); connect ( cancel,SIGNAL ( clicked() ),this,SLOT ( reject() ) ); connect ( def,SIGNAL ( clicked() ),this,SLOT ( slot_default() ) ); connect ( sessSet,SIGNAL ( nameChanged ( const QString & ) ),this, SLOT ( slot_changeCaption ( const QString& ) ) ); connect ( this,SIGNAL ( accepted() ),this,SLOT ( slot_accepted() ) ); connect (sessSet, SIGNAL(directRDP(bool)), this, SLOT(slot_directRDP(bool))); connect (sessSet, SIGNAL(settingsChanged(QString,QString,QString)), otherSet, SLOT(setServerSettings(QString,QString,QString))); ok->setDefault ( true ); #ifdef Q_WS_HILDON QSize sz=ok->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); ok->setFixedSize ( sz ); sz=cancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); cancel->setFixedSize ( sz ); sz=def->sizeHint(); sz.setWidth ( ( int ) ( sz.width() ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); def->setFixedSize ( sz ); #endif if ( parent->retMiniMode() ) setContentsMargins ( 3,3,3,3 ); fr->setCurrentIndex ( ind ); slot_changeCaption(sessSet->sessionName()); #ifdef Q_OS_LINUX sessSet->slot_rdpDirectClicked(); #endif } EditConnectionDialog::~EditConnectionDialog() {} void EditConnectionDialog::slot_changeCaption ( const QString& newName ) { setWindowTitle ( tr ( "Session preferences - " ) +newName ); } void EditConnectionDialog::slot_accepted() { conSet->saveSettings(); exportDir->saveSettings(); otherSet->saveSettings(); mediaSet->saveSettings(); sessSet->saveSettings(); } void EditConnectionDialog::slot_default() { switch ( fr->currentIndex() ) { case 0: { sessSet->setDefaults(); } break; case 1: { conSet->setDefaults(); } break; case 2: { otherSet->setDefaults(); } break; case 3: { mediaSet->setDefaults(); } break; case 4: { exportDir->setDefaults(); } break; } } #ifdef Q_OS_LINUX void EditConnectionDialog::slot_directRDP(bool direct) { fr->setTabEnabled(1,!direct); fr->setTabEnabled(3,!direct); fr->setTabEnabled(4,!direct); otherSet->setDirectRdp(direct); } #endif x2goclient-4.0.5.1/src/editconnectiondialog.h0000644000000000000000000000445312675050177015770 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef EDITCONNECTIONDIALOG_H #define EDITCONNECTIONDIALOG_H #include "x2goclientconfig.h" #include #include class QLineEdit; class QPushButton; class QCheckBox; class QSpinBox; class QComboBox; class QRadioButton; class QSlider; class QLabel; class QTabWidget; class ONMainWindow; class QStandardItemModel; class QTreeView; /** @author Oleksandr Shneyder */ class SessionWidget; class ConnectionWidget; class SettingsWidget; class MediaWidget; class ShareWidget; class EditConnectionDialog : public QDialog { Q_OBJECT public: EditConnectionDialog ( bool newSession, QString id, QWidget * par, int ind=0, Qt::WFlags f = 0 ); ~EditConnectionDialog(); private: QTabWidget *fr; SessionWidget* sessSet; ConnectionWidget* conSet; SettingsWidget* otherSet; MediaWidget* mediaSet; ShareWidget* exportDir; private slots: void slot_changeCaption ( const QString& newName ); void slot_accepted(); void slot_default(); #ifdef Q_OS_LINUX void slot_directRDP(bool direct); #endif }; #endif x2goclient-4.0.5.1/src/exportdialog.cpp0000644000000000000000000001322212675050177014631 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2goclientconfig.h" #include "exportdialog.h" #include "editconnectiondialog.h" #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include "sessionbutton.h" #include "onmainwindow.h" #include #include "sessionexplorer.h" ExportDialog::ExportDialog ( QString sid,QWidget * par, Qt::WFlags f ) : QDialog ( par,f ) { sessionId=sid; QVBoxLayout* ml=new QVBoxLayout ( this ); QFrame *fr=new QFrame ( this ); QHBoxLayout* frLay=new QHBoxLayout ( fr ); parent= ( ONMainWindow* ) par; QPushButton* cancel=new QPushButton ( tr ( "&Cancel" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); sessions=new QListView ( fr ); frLay->addWidget ( sessions ); exportDir=new QPushButton ( tr ( "&share" ),fr ); editSession=new QPushButton ( tr ( "&Preferences ..." ),fr ); newDir=new QPushButton ( tr ( "&Custom folder ..." ),fr ); if(X2goSettings::centralSettings()) { editSession->setEnabled(false); editSession->setVisible(false); } QVBoxLayout* actLay=new QVBoxLayout(); actLay->addWidget ( exportDir ); actLay->addWidget ( editSession ); actLay->addWidget ( newDir ); actLay->addStretch(); frLay->addLayout ( actLay ); QShortcut* sc=new QShortcut ( QKeySequence ( tr ( "Delete","Delete" ) ), this ); connect ( cancel,SIGNAL ( clicked() ),this,SLOT ( close() ) ); connect ( sc,SIGNAL ( activated() ),exportDir,SIGNAL ( clicked() ) ); connect ( editSession,SIGNAL ( clicked() ),this,SLOT ( slot_edit() ) ); connect ( newDir,SIGNAL ( clicked() ),this,SLOT ( slotNew() ) ); connect ( exportDir,SIGNAL ( clicked() ),this,SLOT ( slot_accept() ) ); bLay->setSpacing ( 5 ); bLay->addStretch(); bLay->addWidget ( cancel ); ml->addWidget ( fr ); ml->addLayout ( bLay ); fr->setFrameStyle ( QFrame::StyledPanel | QFrame::Raised ); fr->setLineWidth ( 2 ); setSizeGripEnabled ( true ); setWindowTitle ( tr ( "Share Folders" ) ); connect ( sessions,SIGNAL ( clicked ( const QModelIndex& ) ), this,SLOT ( slot_activated ( const QModelIndex& ) ) ); connect ( sessions,SIGNAL ( doubleClicked ( const QModelIndex& ) ), this,SLOT ( slot_dclicked ( const QModelIndex& ) ) ); loadSessions(); } ExportDialog::~ExportDialog() {} void ExportDialog::loadSessions() { QStringListModel *model= ( QStringListModel* ) sessions->model(); if ( !model ) model=new QStringListModel(); sessions->setModel ( model ); QStringList dirs; model->setStringList ( dirs ); X2goSettings st ( "sessions" ); QString exports=st.setting()->value ( sessionId+"/export", ( QVariant ) QString::null ).toString(); QStringList lst=exports.split ( ";",QString::SkipEmptyParts ); for ( int i=0; isetStringList ( dirs ); // removeSession->setEnabled(false); exportDir->setEnabled ( false ); sessions->setEditTriggers ( QAbstractItemView::NoEditTriggers ); } void ExportDialog::slot_activated ( const QModelIndex& ) { // removeSession->setEnabled(true); exportDir->setEnabled ( true ); } void ExportDialog::slot_dclicked ( const QModelIndex& ) { slot_accept(); } void ExportDialog::slotNew() { directory=QString::null; directory= QFileDialog::getExistingDirectory ( this, tr ( "Select folder" ), QDir::homePath() ); if ( directory!=QString::null ) accept(); } void ExportDialog::slot_edit() { const QList* sess=parent->getSessionExplorer()->getSessionsList(); for ( int i=0; i< sess->size(); ++i ) { if ( sess->at ( i )->id() ==sessionId ) { parent->getSessionExplorer()->exportsEdit ( sess->at ( i ) ); break; } } loadSessions(); } void ExportDialog::slot_accept() { int ind=sessions->currentIndex().row(); if ( ind<0 ) return; QStringListModel *model= ( QStringListModel* ) sessions->model(); directory=model->stringList() [ind]; accept(); } x2goclient-4.0.5.1/src/exportdialog.h0000644000000000000000000000401312675050177014274 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef EXPORTDIALOG_H #define EXPORTDIALOG_H #include "x2goclientconfig.h" #include class QListView; class QPushButton; class QModelIndex; class ONMainWindow; /** @author Oleksandr Shneyder */ class ExportDialog : public QDialog { Q_OBJECT public: ExportDialog(QString sid,QWidget * par, Qt::WFlags f = 0); ~ExportDialog(); QString getExport(){return directory;} private: QListView* sessions; QPushButton* editSession; QPushButton* exportDir; QPushButton* newDir; QString directory; ONMainWindow* parent; void loadSessions(); QString sessionId; private slots: void slot_activated(const QModelIndex& index); void slotNew(); void slot_edit(); void slot_dclicked(const QModelIndex& index); void slot_accept(); }; #endif x2goclient-4.0.5.1/src/folderbutton.cpp0000644000000000000000000001234512675050177014644 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "folderbutton.h" #include "x2goclientconfig.h" #include "x2goutils.h" #include #include #include #include "x2gosettings.h" #include #include #include #include "onmainwindow.h" #include "x2gologdebug.h" #include #include #include "sessionexplorer.h" #include FolderButton::FolderButton ( ONMainWindow* mw,QWidget *parent, QString folderPath, QString folderName ) : SVGFrame ( ":/img/svg/folder.svg",false,parent ) { QPalette pal=palette(); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); setPalette(pal); path=folderPath; name=folderName; QFont fnt=font(); if ( mw->retMiniMode() ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif setFont ( fnt ); setFocusPolicy ( Qt::NoFocus ); bool miniMode=mw->retMiniMode(); if ( !miniMode ) setFixedSize ( 340,190 ); else setFixedSize ( 250,145 ); par= mw; connect ( this,SIGNAL ( clicked() ),this,SLOT ( slotClicked() ) ); nameLabel=new QLabel ( this ); description=tr("Sessions folder"); setChildrenList(QStringList() ); icon=new QLabel ( this ); nameLabel->setWordWrap(true); nameLabel->setTextInteractionFlags(Qt::NoTextInteraction); icon->move ( 10,25 ); if ( !miniMode ) { nameLabel->move ( 80,34 ); nameLabel->setFixedSize(235,135); } else { nameLabel->move ( 64,18 ); nameLabel->setFixedSize(170,120); } loadIcon(); } FolderButton::~FolderButton() {} void FolderButton::loadIcon() { X2goSettings *st; if (par->getBrokerMode()) st=new X2goSettings(par->getConfig()->iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); QString sessIcon=":/img/icons/128x128/folder.png"; QPixmap* pix; QString normPath=(path+"/"+name).split("/",QString::SkipEmptyParts).join("::"); QByteArray picture = QByteArray::fromBase64( st->setting()->value ( "icon_"+normPath, ( QVariant )QString()).toString().toLocal8Bit()); if(!picture.size()) { pix=new QPixmap( sessIcon ); } else { pix=new QPixmap(); pix->loadFromData(picture); } bool miniMode=par->retMiniMode(); if ( !miniMode ) { icon->setPixmap ( pix->scaled ( 64,64,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); } else { icon->setPixmap ( pix->scaled ( 48,48,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); } delete pix; } void FolderButton::slotClicked() { emit folderSelected ( this ); } bool FolderButton::lessThen ( const FolderButton* b1, const FolderButton* b2 ) { return b1->name.toLower().localeAwareCompare ( b2->name.toLower() ) <0; } void FolderButton::mousePressEvent ( QMouseEvent * event ) { SVGFrame::mousePressEvent ( event ); loadBg ( ":/img/svg/folder_grey.svg" ); } void FolderButton::mouseReleaseEvent ( QMouseEvent * event ) { SVGFrame::mouseReleaseEvent ( event ); int x=event->x(); int y=event->y(); loadBg ( ":/img/svg/folder.svg" ); if ( x>=0 && x< width() && y>=0 && y"; if(description.length()>0) { text+="
("+description+")"; } if(children.count()) { text+="

"+children.join(", ")+"

"; } nameLabel->setText(text); } x2goclient-4.0.5.1/src/folderbutton.h0000644000000000000000000000466712675050177014321 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef FOLDERBUTTON_H #define FOLDERBUTTON_H #include "SVGFrame.h" #include #include class ONMainWindow; class QComboBox; class QPushButton; /** @author Oleksandr Shneyder */ class FolderButton : public SVGFrame { Q_OBJECT public: FolderButton ( ONMainWindow* mw, QWidget* parent, QString folderPath, QString folderName ); ~FolderButton(); const QPixmap* folderIcon() { return icon->pixmap(); } static bool lessThen ( const FolderButton* b1, const FolderButton* b2 ); QString getName() { return name; } QString getPath() { return path; } void setPath(QString path) { this->path=path; } void setName(QString name) { this->name=name; } void loadIcon(); void setChildrenList(QStringList children); private: QString path; QString name; QString description; QLabel* nameLabel; QLabel* icon; ONMainWindow* par; private slots: void slotClicked(); signals: void folderSelected ( FolderButton* ); void clicked(); protected: virtual void mousePressEvent ( QMouseEvent * event ); virtual void mouseReleaseEvent ( QMouseEvent * event ); }; #endif x2goclient-4.0.5.1/src/folderexplorer.cpp0000644000000000000000000001351212675050177015166 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "folderexplorer.h" #include "x2gologdebug.h" #include "sessionexplorer.h" #include "folderbutton.h" #include #include #include #include FolderExplorer::FolderExplorer(QString path, SessionExplorer* explorer, QWidget* parent):QDialog(parent) { setupUi(this); this->explorer=explorer; root=new QTreeWidgetItem(treeWidget); root->setText(0,"/"); root->setIcon(0,QIcon(":/img/icons/128x128/folder.png")); currentPath=path; initFolders(root, ""); root->setExpanded(true); if(currentPath=="/") root->setSelected(true); root->setData(0,Qt::UserRole, "/"); } void FolderExplorer::initFolders(QTreeWidgetItem* parent, QString path) { FolderButton* b; foreach(b, *(explorer->getFoldersList())) { if(b->getPath()==path) { QTreeWidgetItem* it=new QTreeWidgetItem(parent); it->setText(0,b->getName()); it->setIcon(0, QIcon(*(b->folderIcon()))); QString normPath=(b->getPath()+"/"+b->getName()).split("/",QString::SkipEmptyParts).join("/"); it->setData(0,Qt::UserRole, normPath+"/"); if(normPath+"/"==currentPath) { it->setSelected(true); QTreeWidgetItem* p=it->parent(); while(p!=root) { p->setExpanded(true); p=p->parent(); } } initFolders(it, normPath); } } } void FolderExplorer::slotContextMenu(QPoint p) { menuItem=treeWidget->itemAt(p); if(!menuItem) return; QMenu menu(treeWidget); connect(menu.addAction(tr("Create New Folder")), SIGNAL(triggered(bool)), this, SLOT(slotNewFolder())); if(menuItem!=root) { connect(menu.addAction(tr("Rename Folder ...")), SIGNAL(triggered(bool)), this, SLOT(slotChangeName())); connect(menu.addAction(tr("Change Icon ...")), SIGNAL(triggered(bool)), this, SLOT(slotChangeIcon())); connect(menu.addAction(tr("Delete Folder ...")), SIGNAL(triggered(bool)), this, SLOT(slotDeleteFolder())); } menu.exec(treeWidget->viewport()->mapToGlobal(p)); } void FolderExplorer::slotItemSelected(QTreeWidgetItem* it, int) { currentPath=it->data(0,Qt::UserRole).toString(); } void FolderExplorer::slotChangeIcon() { QString path= QFileDialog::getOpenFileName ( this, tr ( "Open picture" ), QDir::homePath(), tr ( "Pictures" ) +" (*.png *.xpm *.jpg)" ); if ( path!=QString::null ) { explorer->setFolderIcon(menuItem->data(0, Qt::UserRole).toString(), path); menuItem->setIcon(0, QIcon(path)); } } void FolderExplorer::slotChangeName() { bool ok; QString oldPath=menuItem->data(0,Qt::UserRole).toString(); QStringList parts=oldPath.split("/",QString::SkipEmptyParts); QString text = QInputDialog::getText(this, tr("X2Go Client"), tr("Folder Name:"), QLineEdit::Normal, parts.last(), &ok); if (ok && !text.isEmpty()) { menuItem->setText(0,text); parts.pop_back(); parts<setData(0,Qt::UserRole, currentPath); explorer->renameFolder(oldPath, currentPath); } } void FolderExplorer::slotDeleteFolder() { if(!explorer->isFolderEmpty(menuItem->data(0, Qt::UserRole).toString())) { QMessageBox::critical(this, tr("Error"), tr("Unable to remove \"")+menuItem->text(0)+ tr("\". Folder is not empty. Please remove the contents of this directory and try again.")); return; } if(QMessageBox::question(this, "X2Go Client", tr("Delete folder \"")+menuItem->text(0)+"\"?",QMessageBox::Ok|QMessageBox::Cancel) == QMessageBox::Ok) { explorer->deleteFolder(menuItem->data(0, Qt::UserRole).toString()); currentPath="/"; delete menuItem; } } void FolderExplorer::slotNewFolder() { QTreeWidgetItem* it=new QTreeWidgetItem(menuItem); QString name=tr("New Folder"); it->setText(0,name); it->setIcon(0, QIcon(":/img/icons/128x128/folder.png")); QString normPath=(menuItem->data(0,Qt::UserRole).toString()+"/"+name).split("/",QString::SkipEmptyParts).join("/"); it->setData(0,Qt::UserRole, normPath+"/"); treeWidget->clearSelection(); it->setSelected(true); QTreeWidgetItem* p=it->parent(); while(p!=root) { p->setExpanded(true); p=p->parent(); } slotItemSelected(it,0); explorer->createNewFolder(normPath); } x2goclient-4.0.5.1/src/folderexplorer.h0000644000000000000000000000364412675050177014640 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef FOLDEREXPLORER_H #define FOLDEREXPLORER_H #include "ui_folderexplorer.h" class SessionExplorer; class FolderExplorer: public QDialog, Ui_FolderExplorer { Q_OBJECT public: FolderExplorer(QString path, SessionExplorer* explorer, QWidget* parent=0); QString getCurrentPath() { return currentPath; } private: SessionExplorer* explorer; QTreeWidgetItem* root; QTreeWidgetItem* menuItem; QString currentPath; void initFolders(QTreeWidgetItem* parent, QString path); private slots: void slotContextMenu(QPoint p); void slotItemSelected(QTreeWidgetItem* it, int); void slotNewFolder(); void slotChangeName(); void slotChangeIcon(); void slotDeleteFolder(); }; #endif x2goclient-4.0.5.1/src/help.cpp0000644000000000000000000003276012675050177013070 0ustar /******************************************************************************** * Copyright (C) 2015-2016 by Mihai Moldovan +49 721 14595728 * * * * 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, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ********************************************************************************/ #include #include #include #include #include #include #include #include /* For terminal size. */ #ifdef Q_OS_WIN /* winsock2.h is not really needed, but including it silences a compile warning... */ #include #include #elif defined (Q_OS_UNIX) #include #include #endif #include "help.h" #include "version.h" #include "x2gologdebug.h" #include "onmainwindow.h" #include "x2goutils.h" help::prelude_t help::cleanup_prelude (help::prelude_t prelude) { for (help::prelude_t::iterator it = prelude.begin (); it != prelude.end (); ++it) { *it = (*it).trimmed (); } return (prelude); } help::params_t help::cleanup_params (help::params_t params) { for (help::params_t::iterator it = params.begin (); it != params.end (); ++it) { (*it).first = (*it).first.trimmed (); (*it).second = (*it).second.trimmed (); } return (params); } help::prelude_t help::build_prelude () { help::prelude_t ret; QStringList args = QCoreApplication::arguments (); QString ver ("X2Go Client " + QString (VERSION)); if (QFile::exists (":/txt/git-info")) { QFile file (":/txt/git-info"); if (file.open (QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream (&file); QString git_info (stream.readAll ().trimmed ()); git_info = git_changelog_extract_commit_sha (git_info); if (!(git_info.isEmpty ())) { ver.append (" (Git information: " + git_info + ")"); } } } ret.append (ver); ret.append ("Usage: " + QString (args.at (0)) + " [OPTION]..."); ret.append ("Options:"); ret.append (""); return (ret); } help::params_t help::build_params () { params_t ret; # define ADD_OPT(param, desc) do { ret.append (params_elem_t (param, QObject::tr (desc))); } while (0) # define NEWLINE "\n" ADD_OPT ("--help", "Shows this message."); ADD_OPT ("--version", "Prints version information."); if (QFile::exists (":/txt/changelog")) { ADD_OPT ("--changelog", "Shows the changelog."); } if (QFile::exists (":/txt/git-info")) { ADD_OPT ("--git-info", "Shows git information as used at compile time. [Deprecated: please use --version.]"); } ADD_OPT ("--help-pack", "Shows available pack methods."); ADD_OPT ("--debug", "Enables extensive debug output to the console. On Windows also enables PulseAudio logging to a file in the \".x2go/pulse\" in the USERPROFILE directory." NEWLINE "The logs are not deleted when X2Go Client terminates."); ADD_OPT ("--no-menu", "Hides menu bar."); ADD_OPT ("--no-session-edit", "Disables session editing."); ADD_OPT ("--maximize", "Starts maximized."); ADD_OPT ("--hide", "Starts hidden (minimized to system tray where available.)"); ADD_OPT ("--portable", "Starts in \"portable\" mode."); ADD_OPT ("--pgp-card", "Forces OpenPGP smart card authentication."); ADD_OPT ("--xinerama", "Enables Xinerama by default."); ADD_OPT ("--ldap-printing", "Allows client side printing in LDAP mode."); ADD_OPT ("--thinclient", "Enables thinclient mode. Starts without a window manager."); ADD_OPT ("--haltbt", "Enables shutdown button."); ADD_OPT ("--add-to-known-hosts", "Adds RSA key fingerprint to \".ssh/known_hosts\" if authenticity of the server can't be determined."); ADD_OPT ("--ldap=", "Starts with LDAP support. Example: --ldap=ldapserver:389:o=organization,c=de"); ADD_OPT ("--ldap1=", "Defines the first LDAP failover server."); ADD_OPT ("--ldap2=", "Defines the second LDAP failover server."); ADD_OPT ("--ssh-port=", "Defines the remote SSH server port. Default: 22."); ADD_OPT ("--client-ssh-port=", "Defines the local machine's SSH server port. Needed for Client-Side Printing and File Sharing support. Default: 22."); ADD_OPT ("--command=", "Sets the default command. Default: 'KDE' (Desktop Session)"); ADD_OPT ("--session=", "Starts the session named \"session\"."); ADD_OPT ("--user=", "Sets the user name for connecting to the remote SSH server to \"username\"."); ADD_OPT ("--geometry=<x|fullscreen>", "Sets the default window geometry. Default: 800x600."); ADD_OPT ("--dpi=", "Sets the remote X2Go Agent's DPI value to \"dpi\". Default: same as local display."); ADD_OPT ("--link=", "Sets the default link type. Default: \"adsl\"."); ADD_OPT ("--pack=", "Sets default pack method. Default: \"16m-jpeg-9\"."); ADD_OPT ("--clipboard=", "Sets the default clipboard mode. Default: \"both\"."); ADD_OPT ("--kbd-layout=", "Sets the default keyboard layout to \"layout\". \"layout\" may be a comma-separated list."); ADD_OPT ("--kbd-type=", "Sets the default keyboard type."); ADD_OPT ("--home=
", "Sets the user's home directory."); ADD_OPT ("--set-kbd=<0|1>", "Enables or disables overwriting the current keyboard settings."); ADD_OPT ("--autostart=", "Automatically launches the application \"app\" on session start in Published Applications mode."); ADD_OPT ("--session-conf=", "Defines an alternative session config file path."); ADD_OPT ("--tray-icon", "Force-enables session system tray icon."); ADD_OPT ("--close-disconnect", "Automatically closes X2Go Client after a disconnect."); ADD_OPT ("--hide-foldersharing", "Hides all Folder-Sharing-related options."); ADD_OPT ("--broker-name=", "Sets the broker name to display in X2Go Client. This parameter is optional."); ADD_OPT ("--broker-url=://[username@][:port]/path", "Sets the URL of the session broker." NEWLINE "\"protocol\" must be one of \"http\", \"https\" or \"ssh\"." NEWLINE "If \"username@\" is provided, it will be pasted into the authorization dialog of X2Go Client." NEWLINE "URL examples are:" NEWLINE " https://x2gobroker.org/cgi-bin/x2gobroker.cgi" NEWLINE " ssh://user@x2gobroker.org:22/usr/lib/x2go/x2gobroker.pl"); ADD_OPT ("--broker-ssh-key=", "Sets the path to an SSH key to use for authentication against an SSH session broker. The client's behavior is undefined if this flag is used for non-SSH session brokers."); ADD_OPT ("--broker-autologin", "Enables the use of the default SSH key or SSH agent for authentication against an SSH session broker. The client's behavior is undefined if this flag is used for non-SSH session brokers."); ADD_OPT ("--broker-noauth", "Does not ask for user credentials during session broker authentication. This can be useful if you are using an HTTP(S) session broker without authentication. If you run an HTTP(S) server without authentication, but with user-specific profiles, then put the user name into the broker URL (refer to --broker-url.) The user name then will be extracted from the broker URL and be sent to the session broker. The client's behavior is undefined if this flag is used for non-HTTP(S) session brokers."); # undef NEWLINE # undef ADD_OPT return (ret); } help::data_t help::build_data () { return (help::data_t (help::cleanup_prelude (help::build_prelude ()), help::cleanup_params (help::build_params ()))); } help::string_split_t help::split_long_line (QString &line, std::ptrdiff_t max_length) { string_split_t ret (line, ""); if (line.size () > max_length) { /* Try to find the next split point. */ std::ptrdiff_t split_point = line.lastIndexOf (" ", max_length - 1); /* Only care for valid split points. */ if (0 <= split_point) { x2goDebug << "Split onto " << line.left (split_point) << " and new part " << line.mid (split_point + 1); ret.first = line.left (split_point); ret.second = line.mid (split_point + 1); } } return (ret); } QString help::pretty_print (bool terminal_output) { return (help::pretty_print (help::build_data (), terminal_output)); } QString help::pretty_print (help::data_t data, bool terminal_output) { QString ret = ""; QTextStream out (&ret); out << data.first.join ("\n") << "\n"; std::size_t max_len = 0; /* Iterate over all parameter options and get max width. */ for (help::params_t::const_iterator it = data.second.constBegin (); it != data.second.constEnd (); ++it) { max_len = std::max (max_len, static_cast ((*it).first.size ())); } std::size_t terminal_cols = 0; if (terminal_output) { #ifdef Q_OS_WIN CONSOLE_SCREEN_BUFFER_INFO terminal_internal; HANDLE stderr_handle = GetStdHandle (STD_ERROR_HANDLE); if (stderr_handle && (stderr_handle != INVALID_HANDLE_VALUE)) { if (GetConsoleScreenBufferInfo (stderr_handle, &terminal_internal)) { terminal_cols = (terminal_internal.srWindow.Right - terminal_internal.srWindow.Left) + 1; } } #elif defined (Q_OS_UNIX) struct winsize terminal_internal; ioctl (0, TIOCGWINSZ, &terminal_internal); terminal_cols = terminal_internal.ws_col; #endif } x2goDebug << "Terminal cols: " << terminal_cols << endl; for (help::params_t::const_iterator it = data.second.constBegin (); it != data.second.constEnd (); ++it) { std::size_t indent = (max_len - (*it).first.size ()) + 4; x2goDebug << "Indent: " << indent << "; max_len: " << max_len << "; param size: " << (*it).first.size () << endl; out << " "; out << (*it).first; out << QString (" ").repeated (indent); /* Append first two spaces to the general indent level for upcoming lines. */ indent += 2; std::ptrdiff_t remaining = 0; /* Split up description on newlines. */ QStringList desc_split = (*it).second.split ("\n"); for (QStringList::const_iterator desc_split_it = desc_split.constBegin (); desc_split_it != desc_split.constEnd (); ++desc_split_it) { std::size_t cur_len = (*desc_split_it).size (); x2goDebug << "Going to output a description " << (*desc_split_it).size () << " chars wide." << endl; if (0 != terminal_cols) { /* * Only set this the first time right after having written the parameter and indent spaces. * Don't change it after that. */ if (desc_split_it == desc_split.constBegin ()) { remaining = terminal_cols - (indent + (*it).first.size ()); } x2goDebug << "Still have " << remaining << " characters left on this line." << endl; /* Ran out of space? That's bad... print a newline and don't use any indentation level. */ if (0 > remaining) { x2goDebug << "Ran out of space! Will break line and start the description on a new one." << endl; out << "\n"; remaining = terminal_cols; indent = 0; } } QString working_copy (*desc_split_it); while (!working_copy.isEmpty ()) { cur_len = working_copy.size (); x2goDebug << "Trying to fit a (remaining) description " << cur_len << " characters wide." << endl; string_split_t string_split; if (0 != terminal_cols) { string_split = split_long_line (working_copy, remaining); } else { /* For non-terminal printing (or if the width is unknown), use the default splitting length. */ string_split = split_long_line (working_copy); } /* Print potentially splitted line. */ working_copy = string_split.first; out << working_copy; /* Continue with next chunk. */ working_copy = string_split.second;; out << "\n"; /* * Print whitespace if the remainder string is non-empty * or printing shall continue on next line. */ if ((!working_copy.isEmpty ()) || ((desc_split_it + 1) != desc_split.constEnd ())) { indent = 2 + max_len + 4; out << QString (" ").repeated (indent); } } } } if (terminal_output) { qCritical ().nospace () << qPrintable (ret); } return (ret); } x2goclient-4.0.5.1/src/helpdialog.cpp0000644000000000000000000000415512675050177014245 0ustar /************************************************************************** * Copyright (C) 2005-2016 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * Copyright (C) 2015-2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #include #include "helpdialog.h" #include "x2goutils.h" HelpDialog::HelpDialog (QWidget *parent): QDialog (parent) { setupUi (this); } void HelpDialog::setText (QString text) { /* Try real hard to get a monospaced font. */ QFont font ("monospace"); if (!font_is_monospaced (font)) { #if QT_VERSION >= 0x040700 font.setStyleHint (QFont::Monospace); #else font.setStyleHint (QFont::TypeWriter); #endif } if (!font_is_monospaced (font)) { font.setFamily ("Courier New"); } if (!font_is_monospaced (font)) { font.setFamily ("Courier"); } /* If the font is not monospaced by now, there's not much else we can do... */ font.setPointSize (10); plainTextEdit->setFont (font); plainTextEdit->setTabStopWidth (30); plainTextEdit->setWordWrapMode (QTextOption::NoWrap); plainTextEdit->setPlainText (text); } x2goclient-4.0.5.1/src/helpdialog.h0000644000000000000000000000301112675050177013700 0ustar /************************************************************************** * Copyright (C) 2005-2016 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * Copyright (C) 2015-2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #ifndef HELPDIALOG_H #define HELPDIALOG_H #include "ui_helpdialog.h" class HelpDialog : public QDialog, public Ui_HelpDialog { public: HelpDialog (QWidget *parent = 0); void setText (QString text); }; #endif /* !defined (HELPDIALOG_H) */ x2goclient-4.0.5.1/src/help.h0000644000000000000000000000612612675050177012532 0ustar /******************************************************************************** * Copyright (C) 2015-2016 by Mihai Moldovan +49 721 14595728 * * * * 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, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ********************************************************************************/ #ifndef HELP_H #define HELP_H #include #include #include #include namespace help { typedef QStringList prelude_t; typedef QPair params_elem_t; typedef QList params_t; typedef QPair data_t; typedef QPair string_split_t; /* Builds a prelude_t object. Values are hardcoded here. */ prelude_t build_prelude (); /* Builds a params_t object. Values are hardcoded here. */ params_t build_params (); /* Merges prelude_t and params_t into a data_t object. */ data_t build_data (); /* Cleanup functions for string trimming. */ prelude_t cleanup_prelude (prelude_t prelude); params_t cleanup_params (params_t params); /* * Splits a string into two component. * The first component is at most max_length (or 200) characters long. * The string is split on the nearest space surrounding max_length * (or max_length itself.) * Caveat: if the string length is less than max_length, no splitting * is performed. * In that case, the second component is empty. */ string_split_t split_long_line (QString &line, std::ptrdiff_t max_length = 100); /* * Returns a help_data_t structure as a QString. * If terminal_output is true, the terminal width is probed for and the function * family tries its best to adhere to the auto-detected width. * Additionally, terminal_output controls whether the resulting string is * printed to stderr or not. */ QString pretty_print (bool terminal_output = true); QString pretty_print (data_t data, bool terminal_output = true); } #endif /* !defined (HELP_H) */ x2goclient-4.0.5.1/src/httpbrokerclient.cpp0000644000000000000000000005673012675050177015526 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "httpbrokerclient.h" #include #include #include #include #include #include #include #include #include #include "x2gologdebug.h" #include #include #include "onmainwindow.h" #include "x2gosettings.h" #include #include #include "SVGFrame.h" #include "onmainwindow.h" #include #include HttpBrokerClient::HttpBrokerClient ( ONMainWindow* wnd, ConfigFile* cfg ) { config=cfg; mainWindow=wnd; sshConnection=0; QUrl lurl ( config->brokerurl ); if(lurl.userName().length()>0) config->brokerUser=lurl.userName(); nextAuthId=config->brokerUserId; if(config->brokerurl.indexOf("ssh://")==0) { sshBroker=true; x2goDebug<<"host:"<sshBrokerBin=lurl.path(); } else { sshBroker=false; if ((config->brokerCaCertFile.length() >0) && (QFile::exists(config->brokerCaCertFile))) { QSslSocket::addDefaultCaCertificates(config->brokerCaCertFile, QSsl::Pem); x2goDebug<<"Custom CA certificate file loaded into HTTPS broker client: "<brokerCaCertFile; } http=new QNetworkAccessManager ( this ); x2goDebug<<"Setting up connection to broker: "<brokerurl; connect ( http, SIGNAL ( sslErrors ( QNetworkReply*, const QList& ) ),this, SLOT ( slotSslErrors ( QNetworkReply*, const QList& ) ) ); connect ( http,SIGNAL ( finished (QNetworkReply*) ),this, SLOT ( slotRequestFinished (QNetworkReply*) ) ); } } HttpBrokerClient::~HttpBrokerClient() { } void HttpBrokerClient::createSshConnection() { QUrl lurl ( config->brokerurl ); sshConnection=new SshMasterConnection (this, lurl.host(), lurl.port(22),mainWindow->getAcceptRSA(), config->brokerUser, config->brokerPass,config->brokerSshKey,config->brokerAutologin, config->brokerKrbLogin, false); connect ( sshConnection, SIGNAL ( connectionOk(QString)), this, SLOT ( slotSshConnectionOk() ) ); connect ( sshConnection, SIGNAL ( serverAuthError ( int,QString, SshMasterConnection* ) ),this, SLOT ( slotSshServerAuthError ( int,QString, SshMasterConnection* ) ) ); connect ( sshConnection, SIGNAL ( needPassPhrase(SshMasterConnection*, bool)),this, SLOT ( slotSshServerAuthPassphrase(SshMasterConnection*, bool)) ); connect ( sshConnection, SIGNAL ( userAuthError ( QString ) ),this,SLOT ( slotSshUserAuthError ( QString ) ) ); connect ( sshConnection, SIGNAL ( connectionError(QString,QString)), this, SLOT ( slotSshConnectionError ( QString,QString ) ) ); connect ( sshConnection, SIGNAL(ioErr(SshProcess*,QString,QString)), this, SLOT(slotSshIoErr(SshProcess*,QString,QString))); sshConnection->start(); } void HttpBrokerClient::slotSshConnectionError(QString message, QString lastSessionError) { if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } QMessageBox::critical ( 0l,message,lastSessionError, QMessageBox::Ok, QMessageBox::NoButton ); } void HttpBrokerClient::slotSshConnectionOk() { getUserSessions(); } void HttpBrokerClient::slotSshServerAuthError(int error, QString sshMessage, SshMasterConnection* connection) { QString errMsg; switch ( error ) { case SSH_SERVER_KNOWN_CHANGED: errMsg=tr ( "Host key for server changed.\nIt is now: " ) +sshMessage+"\n"+ tr ( "For security reasons, the connection attempt will be aborted." ); connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( errMsg ); return; case SSH_SERVER_FOUND_OTHER: errMsg=tr ( "The host key for this server was not found but another" "type of key exists. An attacker might have changed the default server key to " "trick your client into thinking the key does not exist yet." ); connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( errMsg ); return ; case SSH_SERVER_ERROR: connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( sshMessage ); return ; case SSH_SERVER_FILE_NOT_FOUND: errMsg=tr ( "Could not find known hosts file." "If you accept the host key here, the file will be automatically created." ); break; case SSH_SERVER_NOT_KNOWN: errMsg=tr ( "The server is unknown. Do you trust the host key?\nPublic key hash: " ) +sshMessage; break; } if ( QMessageBox::warning ( 0, tr ( "Host key verification failed." ),errMsg,tr ( "Yes" ), tr ( "No" ) ) !=0 ) { connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( tr ( "Host key verification failed." ) ); return; } connection->writeKnownHosts(true); connection->wait(); connection->start(); } void HttpBrokerClient::slotSshServerAuthPassphrase(SshMasterConnection* connection, bool verificationCode) { bool ok; QString message; if(verificationCode) { message=tr("Verification code:"); } else { message=tr("Enter passphrase to decrypt a key"); } QString phrase=QInputDialog::getText(0,connection->getUser()+"@"+connection->getHost()+":"+QString::number(connection->getPort()), message, QLineEdit::Password,QString::null, &ok); if(!ok) { phrase=QString::null; } else { if(phrase==QString::null) phrase=""; } connection->setKeyPhrase(phrase); } void HttpBrokerClient::slotSshUserAuthError(QString error) { if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } QMessageBox::critical ( 0l,tr ( "Authentication failed." ),error, QMessageBox::Ok, QMessageBox::NoButton ); emit authFailed(); return; } void HttpBrokerClient::getUserSessions() { QString brokerUser=config->brokerUser; // Otherwise, after logout from the session, we will be connected by a previous user without a password by authid. if (config->brokerAutologoff) { nextAuthId=config->brokerUserId; } x2goDebug<<"Called getUserSessions: brokeruser: "<getUsePGPCard()) brokerUser=mainWindow->getCardLogin(); config->sessiondata=QString::null; if(!sshBroker) { QString req; QTextStream ( &req ) << "task=listsessions&"<< "user="<brokerurl)); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); sessionsRequest=http->post (request, req.toUtf8() ); } else { if(!sshConnection) { createSshConnection(); return; } if (nextAuthId.length() > 0) { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --authid "+nextAuthId+ " --task listsessions", this, SLOT ( slotListSessions ( bool, QString,int ) )); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --task listsessions", this, SLOT ( slotListSessions ( bool, QString,int ) )); } } } void HttpBrokerClient::selectUserSession(const QString& session) { x2goDebug<<"Called selectUserSession for session "<brokerUser; if(mainWindow->getUsePGPCard()) brokerUser=mainWindow->getCardLogin(); if(!sshBroker) { QString req; QTextStream ( &req ) << "task=selectsession&"<< "sid="<brokerurl)); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); selSessRequest=http->post (request, req.toUtf8() ); } else { if (nextAuthId.length() > 0) { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --authid "+nextAuthId+ " --task selectsession --sid \""+session+"\"", this,SLOT ( slotSelectSession(bool,QString,int))); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --task selectsession --sid \""+session+"\"", this,SLOT ( slotSelectSession(bool,QString,int))); } } } void HttpBrokerClient::changePassword(QString newPass) { newBrokerPass=newPass; QString brokerUser=config->brokerUser; if(mainWindow->getUsePGPCard()) brokerUser=mainWindow->getCardLogin(); if(!sshBroker) { QString req; QTextStream ( &req ) << "task=setpass&"<< "newpass="<brokerurl)); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); chPassRequest=http->post (request, req.toUtf8() ); } else { if (nextAuthId.length() > 0) { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --authid "+nextAuthId+ " --task setpass --newpass "+newPass, this, SLOT ( slotPassChanged(bool,QString,int))); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --task setpass --newpass "+newPass, this, SLOT ( slotPassChanged(bool,QString,int))); } } } void HttpBrokerClient::testConnection() { x2goDebug<<"Called testConnection."; if(!sshBroker) { QString req; QTextStream ( &req ) << "task=testcon"; x2goDebug << "Sending request: "<< req.toUtf8(); QNetworkRequest request(QUrl(config->brokerurl)); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); testConRequest=http->post (request, req.toUtf8() ); } else { if (nextAuthId.length() > 0) { sshConnection->executeCommand(config->sshBrokerBin+" --authid "+nextAuthId+ " --task testcon", this, SLOT ( slotSelectSession(bool,QString,int))); } else { sshConnection->executeCommand(config->sshBrokerBin+" --task testcon", this, SLOT ( slotSelectSession(bool,QString,int))); } } } void HttpBrokerClient::createIniFile(const QString& raw_content) { QString content; content = raw_content; content.replace("
","\n"); x2goDebug<<"Inifile content: "<1) { cont=lines[1]; cont=cont.split("END_USER_SESSIONS\n")[0]; } mainWindow->config.iniFile=cont; } bool HttpBrokerClient::checkAccess(QString answer ) { x2goDebug<<"Called checkAccess - answer was: "<" "Please try again." ) ); emit authFailed(); return false; } config->brokerAuthenticated=true; int authBegin=answer.indexOf("AUTHID:"); if (authBegin!=-1) { nextAuthId=answer.mid(authBegin+7, answer.indexOf("\n",authBegin)-authBegin-7); } return true; } void HttpBrokerClient::slotConnectionTest(bool success, QString answer, int) { x2goDebug<<"Called slotConnectionTest."; if(!success) { x2goDebug<error() != QNetworkReply::NoError) { x2goDebug<<"Broker HTTP request failed with error: "<errorString(); QMessageBox::critical(0,tr("Error"),reply->errorString()); emit fatalHttpError(); return; } QString answer ( reply->readAll() ); x2goDebug<<"A http request returned. Result was: "<deleteLater(); } void HttpBrokerClient::parseSession(QString sinfo) { x2goDebug<<"Starting parser."; QStringList lst=sinfo.split("SERVER:",QString::SkipEmptyParts); int keyStartPos=sinfo.indexOf("-----BEGIN DSA PRIVATE KEY-----"); if(keyStartPos==-1) keyStartPos=sinfo.indexOf("-----BEGIN RSA PRIVATE KEY-----"); QString endStr="-----END DSA PRIVATE KEY-----"; int keyEndPos=sinfo.indexOf(endStr); if(keyEndPos==-1) { endStr="-----END RSA PRIVATE KEY-----"; keyEndPos=sinfo.indexOf(endStr); } if (! (keyEndPos == -1 || keyStartPos == -1 || lst.size()==0)) config->key=sinfo.mid(keyStartPos, keyEndPos+endStr.length()-keyStartPos); QString serverLine=(lst[1].split("\n"))[0]; QStringList words=serverLine.split(":",QString::SkipEmptyParts); config->serverIp=words[0]; if (words.count()>1) config->sshport=words[1]; x2goDebug<<"Server IP address: "<serverIp; x2goDebug<<"Server port: "<sshport; if (sinfo.indexOf("SESSION_INFO")!=-1) { QStringList lst=sinfo.split("SESSION_INFO:",QString::SkipEmptyParts); config->sessiondata=lst[1]; x2goDebug<<"Session data: "<sessiondata<<"\n"; } x2goDebug<<"Parsing has finished."; emit sessionSelected(); } void HttpBrokerClient::slotSslErrors ( QNetworkReply* netReply, const QList & errors ) { QStringList err; QSslCertificate cert; for ( int i=0; ibrokerurl ); QString homeDir=mainWindow->getHomeDirectory(); if ( QFile::exists ( homeDir+"/.x2go/ssl/exceptions/"+ lurl.host() +"/"+fname ) ) { QFile fl ( homeDir+"/.x2go/ssl/exceptions/"+ lurl.host() +"/"+fname ); fl.open ( QIODevice::ReadOnly | QIODevice::Text ); QSslCertificate mcert ( &fl ); if ( mcert==cert ) { netReply->ignoreSslErrors(); requestTime.restart(); return; } } QString text=tr ( "
Server uses an invalid " "security certificate.

" ); text+=err.join ( "
" ); text+=tr ( "

" "You should not add an exception " "if you are using an internet connection " "that you do not trust completely or if you are " "not used to seeing a warning for this server.

" ); QMessageBox mb ( QMessageBox::Warning,tr ( "Secure connection failed." ), text ); text=QString::null; QTextStream ( &text ) <ignoreSslErrors(); x2goDebug<<"Storing certificate in "<. * ***************************************************************************/ #ifndef HTTPBROKERCLIENT_H #define HTTPBROKERCLIENT_H #include "x2goclientconfig.h" #include #include #include #include #include #include #include #include #include #include "sshmasterconnection.h" /** @author Oleksandr Shneyder */ class QNetworkAccessManager; struct ConfigFile; class ONMainWindow; class HttpBrokerClient: public QObject { Q_OBJECT public: HttpBrokerClient ( ONMainWindow* wnd, ConfigFile* cfg ); ~HttpBrokerClient(); void selectUserSession(const QString& session ); void changePassword(QString newPass); void testConnection(); private: QNetworkAccessManager* http; QNetworkRequest* netRequest; QSslSocket* sslSocket; QNetworkReply* sessionsRequest; QNetworkReply* selSessRequest; QNetworkReply* chPassRequest; QNetworkReply* testConRequest; QString nextAuthId; QString newBrokerPass; ConfigFile* config; ONMainWindow* mainWindow; QTime requestTime; bool sshBroker; SshMasterConnection* sshConnection; private: void createIniFile(const QString& raw_content); void parseSession(QString sInfo); void createSshConnection(); bool checkAccess(QString answer); private slots: void slotRequestFinished ( QNetworkReply* reply ); void slotSslErrors ( QNetworkReply* netReply, const QList & errors ) ; QString getHexVal ( const QByteArray& ba ); void slotSshConnectionError ( QString message, QString lastSessionError ); void slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ); void slotSshServerAuthPassphrase ( SshMasterConnection* connection, bool verificationCode=false ); void slotSshUserAuthError ( QString error ); void slotSshConnectionOk(); void slotListSessions ( bool success, QString answer, int pid); void slotSelectSession ( bool success, QString answer, int pid); void slotPassChanged ( bool success, QString answer, int pid); void slotConnectionTest( bool success, QString answer, int pid); void slotSshIoErr(SshProcess* caller, QString error, QString lastSessionError); public slots: void getUserSessions(); signals: void haveSshKey ( QString ); void fatalHttpError(); void authFailed(); void sessionsLoaded(); void sessionSelected( ); void passwordChanged( QString ); void connectionTime(int, int); }; #endif x2goclient-4.0.5.1/src/imgframe.cpp0000644000000000000000000000327412675050177013725 0ustar /************************************************************************** * Copyright (C) 2005-201 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 . * ***************************************************************************/ #include "imgframe.h" #include "x2goclientconfig.h" #include IMGFrame::IMGFrame(QImage* ,QWidget* parent, Qt::WFlags f) :QFrame(parent,f) { //setBg(img); } IMGFrame::~IMGFrame() { } void IMGFrame::setBg(QImage* img) { if(img) { setAutoFillBackground(true); QPalette pal=palette(); pal.setBrush(QPalette::Window,QBrush(QPixmap::fromImage(*img))); setPalette(pal); } } void IMGFrame::resizeEvent(QResizeEvent* event) { QFrame::resizeEvent(event); emit resized(event->size()); } x2goclient-4.0.5.1/src/imgframe.h0000644000000000000000000000317412675050177013371 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef IMGFRAME_H #define IMGFRAME_H #include "x2goclientconfig.h" #include /** @author Oleksandr Shneyder */ class QResizeEvent; class IMGFrame : public QFrame { Q_OBJECT public: IMGFrame(QImage* img,QWidget* parent=0, Qt::WFlags f=0); ~IMGFrame(); void setBg(QImage* img); virtual void resizeEvent(QResizeEvent* event); signals: void resized (const QSize); }; #endif x2goclient-4.0.5.1/src/LDAPSession.cpp0000644000000000000000000002363212675050177014222 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "LDAPSession.h" #include "x2goclientconfig.h" #ifdef USELDAP #include ByteArray::ByteArray() { size=0; data=0; } ByteArray::ByteArray ( const ByteArray& src ) { size=0; data=0; *this=src; } ByteArray::~ByteArray() { _delete(); } void ByteArray::load ( const char* buf,int len ) { _delete(); if ( len>0 ) { size=len; data=new char[size+1]; if ( !data ) throw string ( "Not enouth memory" ); memcpy ( data,buf,len ); data[size]=0; } } void ByteArray::fromStdStr ( const string& src ) { load ( src.c_str(),src.size() ); } void ByteArray::operator = ( const ByteArray& src ) { load ( src.data,src.size ); } void ByteArray::_delete() { if ( data ) { delete []data; size=0; } } ///////////////////////////////////// LDAPSession::LDAPSession ( string server,int port,string bindDN, string pass, bool simple, bool start_tls ) { ld=ldap_init ( server.c_str(),port ); if ( !ld ) throw LDAPExeption ( "ldap_init","Can't initialize LDAP library." ); int ver=3; int errc=ldap_set_option ( ld,LDAP_OPT_PROTOCOL_VERSION,&ver ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_set_option", ldap_err2string ( errc ) ); if ( start_tls ) { errc=ldap_start_tls_s ( ld,NULL,NULL ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_start_tls_s", ldap_err2string ( errc ) ); } if ( !simple ) { errc=ldap_bind_s ( ld,bindDN.c_str(),pass.c_str(), LDAP_AUTH_SIMPLE ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_bind_s", ldap_err2string ( errc ) ); } else { errc=ldap_simple_bind_s ( ld,bindDN.c_str(),pass.c_str() ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_simple_bind_s", ldap_err2string ( errc ) ); } } void LDAPSession::addStringValue ( string dn, const list& values ) { list::const_iterator it=values.begin(); list::const_iterator end=values.end(); int i=0; LDAPMod** mods= ( LDAPMod** ) malloc ( sizeof ( LDAPMod* ) *values.size() +1 ); for ( ;it!=end;++it ) { mods[i]= ( LDAPMod* ) malloc ( sizeof ( LDAPMod ) ); mods[i]->mod_op=LDAP_MOD_ADD; mods[i]->mod_type= ( char* ) malloc ( sizeof ( char ) * ( *it ).attr.length() ); strcpy ( mods[i]->mod_type, ( *it ).attr.c_str() ); list::const_iterator sit= ( *it ).value.begin(); list::const_iterator send= ( *it ).value.end(); int j=0; mods[i]->mod_vals.modv_strvals= ( char** ) malloc ( sizeof ( char* ) * ( *it ).value.size() +1 ); for ( ;sit!=send;++sit ) { mods[i]->mod_vals.modv_strvals[j]= ( char* ) malloc ( sizeof ( char ) * ( *sit ).length() ); strcpy ( mods[i]->mod_vals.modv_strvals[j], ( *sit ).c_str() ); ++j; } mods[i]->mod_vals.modv_strvals[j]=0l; ++i; } mods[i]=0l; int errc= ldap_add_s ( ld,dn.c_str(),mods ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_add_s",ldap_err2string ( errc ) ); ldap_mods_free ( mods,1 ); } void LDAPSession::modifyStringValue ( string dn, const list& values ) { list::const_iterator it=values.begin(); list::const_iterator end=values.end(); int i=0; LDAPMod** mods= ( LDAPMod** ) malloc ( sizeof ( LDAPMod* ) *values.size() +1 ); for ( ;it!=end;++it ) { mods[i]= ( LDAPMod* ) malloc ( sizeof ( LDAPMod ) ); mods[i]->mod_op=LDAP_MOD_REPLACE; mods[i]->mod_type= ( char* ) malloc ( sizeof ( char ) * ( *it ).attr.length() ); strcpy ( mods[i]->mod_type, ( *it ).attr.c_str() ); list::const_iterator sit= ( *it ).value.begin(); list::const_iterator send= ( *it ).value.end(); int j=0; mods[i]->mod_vals.modv_strvals= ( char** ) malloc ( sizeof ( char* ) * ( *it ).value.size() +1 ); for ( ;sit!=send;++sit ) { mods[i]->mod_vals.modv_strvals[j]= ( char* ) malloc ( sizeof ( char ) * ( *sit ).length() ); strcpy ( mods[i]->mod_vals.modv_strvals[j], ( *sit ).c_str() ); ++j; } mods[i]->mod_vals.modv_strvals[j]=0l; ++i; } mods[i]=0l; int errc= ldap_modify_s ( ld,dn.c_str(),mods ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_modify_s",ldap_err2string ( errc ) ); ldap_mods_free ( mods,1 ); } void LDAPSession::remove ( string dn ) { int errc= ldap_delete_s ( ld,dn.c_str() ); if ( errc != LDAP_SUCCESS ) throw LDAPExeption ( "ldap_delete_s",ldap_err2string ( errc ) ); } void LDAPSession::binSearch ( string dn,const list &attributes, string searchParam, list& result ) { char** attr; attr= ( char** ) malloc ( sizeof ( char* ) *attributes.size() +1 ); int i=0; list::const_iterator it=attributes.begin(); list::const_iterator end=attributes.end(); for ( ;it!=end;++it ) { attr[i]= ( char* ) malloc ( sizeof ( char ) * ( *it ).length() ); strcpy ( attr[i], ( *it ).c_str() ); ++i; } attr[i]=0l; LDAPMessage* res; int errc=ldap_search_s ( ld,dn.c_str(),LDAP_SCOPE_SUBTREE, searchParam.c_str(),attr,0,&res ); if ( errc != LDAP_SUCCESS ) { i=0; it=attributes.begin(); for ( ;it!=end;++it ) { free ( attr[i] ); ++i; } free ( attr ); throw LDAPExeption ( "ldap_search_s",ldap_err2string ( errc ) ); } LDAPMessage *entry=ldap_first_entry ( ld,res ); while ( entry ) { LDAPBinEntry binEntry; it=attributes.begin(); for ( ;it!=end;++it ) { LDAPBinValue val; val.attr= ( *it ); berval **atr=ldap_get_values_len ( ld,entry, ( *it ).c_str() ); int count=ldap_count_values_len ( atr ); for ( i=0;ibv_val,atr[i]->bv_len ); val.value.push_back ( arr ); } ldap_value_free_len ( atr ); binEntry.push_back ( val ); } entry=ldap_next_entry ( ld,entry ); result.push_back ( binEntry ); } free ( res ); i=0; it=attributes.begin(); for ( ;it!=end;++it ) { free ( attr[i] ); ++i; } free ( attr ); } void LDAPSession::stringSearch ( string dn,const list &attributes, string searchParam, list& result ) { char** attr; attr= ( char** ) malloc ( sizeof ( char* ) *attributes.size() +1 ); int i=0; list::const_iterator it=attributes.begin(); list::const_iterator end=attributes.end(); for ( ;it!=end;++it ) { attr[i]= ( char* ) malloc ( sizeof ( char ) * ( *it ).length() +1 ); strcpy ( attr[i], ( *it ).c_str() ); ++i; } attr[i]=0l; LDAPMessage* res; int errc=ldap_search_s ( ld,dn.c_str(),LDAP_SCOPE_SUBTREE, searchParam.c_str(),attr,0,&res ); if ( errc != LDAP_SUCCESS ) { i=0; it=attributes.begin(); for ( ;it!=end;++it ) { free ( attr[i] ); ++i; } free ( attr ); throw LDAPExeption ( "ldap_search_s",ldap_err2string ( errc ) ); } LDAPMessage *entry=ldap_first_entry ( ld,res ); while ( entry ) { LDAPStringEntry stringEntry; it=attributes.begin(); for ( ;it!=end;++it ) { LDAPStringValue val; val.attr= ( *it ); char **atr=ldap_get_values ( ld,entry, ( *it ).c_str() ); int count=ldap_count_values ( atr ); for ( i=0;i LDAPSession::getStringAttrValues ( const LDAPStringEntry& entry, string attr ) { list::const_iterator it=entry.begin(); list::const_iterator end=entry.end(); list lst; for ( ;it!=end;++it ) { if ( ( *it ).attr==attr ) return ( *it ).value; } return lst; } list LDAPSession::getBinAttrValues ( const LDAPBinEntry& entry, string attr ) { list::const_iterator it=entry.begin(); list::const_iterator end=entry.end(); list lst; for ( ;it!=end;++it ) { if ( ( *it ).attr==attr ) return ( *it ).value; } return lst; } LDAPSession::~LDAPSession() { ldap_unbind ( ld ); } #endif x2goclient-4.0.5.1/src/LDAPSession.h0000644000000000000000000000577612675050177013700 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef LDAPSESSION_H #define LDAPSESSION_H #define LDAP_DEPRECATED 1 #include "x2goclientconfig.h" #ifdef USELDAP #include #include #include using namespace std; struct LDAPExeption { LDAPExeption ( string type,string str ) {err_type=type;err_str=str;} string err_type; string err_str; }; class ByteArray { public: ByteArray(); ByteArray ( const ByteArray& ); ~ByteArray(); const char* getData() {return data;} string asString() {return data;} int length() {return size;} void load ( const char*,int ); void fromStdStr ( const string& ); void operator = ( const ByteArray& ); private: void _delete(); char* data; int size; }; struct LDAPBinValue { string attr; list value; }; struct LDAPStringValue { string attr; list value; }; typedef list LDAPStringEntry; typedef list LDAPBinEntry; #endif class LDAPSession { #ifdef USELDAP public: LDAPSession ( string,int,string,string, bool simple=false, bool start_tls=true ); ~LDAPSession(); void addStringValue ( string dn, const list& values ); void remove ( string ); static list getStringAttrValues ( const LDAPStringEntry& entry, string attr ); static list getBinAttrValues ( const LDAPBinEntry& entry, string attr ); void modifyStringValue ( string dn, const list& values ); void stringSearch ( string dn,const list &attributes, string searchParam, list &result ); void binSearch ( string dn,const list &attributes, string searchParam, list &result ); private: LDAP* ld; #endif }; #endif x2goclient-4.0.5.1/src/mediawidget.cpp0000644000000000000000000002502112675050177014413 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "mediawidget.h" #include "onmainwindow.h" #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include "x2gologdebug.h" #include 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(); } x2goclient-4.0.5.1/src/mediawidget.h0000644000000000000000000000443512675050177014066 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef MEDIAWIDGET_H #define MEDIAWIDGET_H #include /** @author Oleksandr Shneyder */ 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 x2goclient-4.0.5.1/src/non_modal_messagebox.cpp0000644000000000000000000000632412675050177016320 0ustar /************************************************************************** * Copyright (C) 2015-2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #include #include #include "non_modal_messagebox.h" #include "x2goutils.h" // Please look up the documentation in the header file! void Non_Modal_MessageBox::critical (QWidget *parent, const QString &title, const QString &text, const QString &informative_text, bool rich_text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton) { QMessageBox *msg_box = new QMessageBox (QMessageBox::Critical, title, text, buttons, parent); msg_box->setAttribute (Qt::WA_DeleteOnClose); msg_box->setDefaultButton (defaultButton); if (rich_text) { msg_box->setTextFormat (Qt::RichText); msg_box->setInformativeText (convert_to_rich_text (informative_text, true)); } // Set to minimum width of 500px. QSpacerItem *horizontal_spacer = new QSpacerItem (500, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); QGridLayout *grid_layout = (QGridLayout*) (msg_box->layout ()); grid_layout->addItem (horizontal_spacer, grid_layout->rowCount (), 0, 1, grid_layout->columnCount ()); // Here's the real magic. msg_box->setModal (false); msg_box->show (); msg_box->raise (); msg_box->activateWindow (); } void Non_Modal_MessageBox::critical (QWidget *parent, const QString &title, const QString &text, const QString &informative_text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton) { Non_Modal_MessageBox::critical (parent, title, text, informative_text, false, buttons, defaultButton); } void Non_Modal_MessageBox::critical (QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton) { Non_Modal_MessageBox::critical (parent, title, text, QString (), buttons, defaultButton); } x2goclient-4.0.5.1/src/non_modal_messagebox.h0000644000000000000000000000477312675050177015773 0ustar /************************************************************************** * Copyright (C) 2015-2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #ifndef NON_MODAL_MESSAGEBOX_H #define NON_MODAL_MESSAGEBOX_H #include class Non_Modal_MessageBox { public: // Main implementation. static void critical (QWidget *parent, const QString &title, const QString &text, const QString &informative_text, bool rich_text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton); // Wrapper. static void critical (QWidget *parent, const QString &title, const QString &text, const QString &informative_text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton); // Wrapper for QMessageBox::critical-like usage. // Use this instead QMessageBox::critical for a non-modal variant. // Caveat: this function does return immediately and will NOT return the clicked button. static void critical (QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton); }; #endif /* !defined (NON_MODAL_MESSAGEBOX_H) */ x2goclient-4.0.5.1/src/ongetpass.cpp0000644000000000000000000000724712675050177014145 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include #endif #include "ongetpass.h" #include "x2goclientconfig.h" #include #include #ifdef CFGCLIENT #include #endif #ifndef Q_OS_WIN #include #include #endif #include #include #include #include #include #include #include "x2gologdebug.h" int x2goMain ( int argc, char *argv[] ) { QApplication app ( argc,argv ); #ifndef Q_WS_HILDON #ifdef Q_OS_LINUX app.setStyle ( new QPlastiqueStyle() ); #endif #endif QStringList args; if ( argc > 1 ) args=app.arguments(); if ( args.count() >1 && args[1]=="--dialog" ) { #ifdef CFGCLIENT ONMainWindow::installTranslator(); #endif QString type=args[2]; QString caption=args[4]; caption=caption.replace ( "NX","X2Go" ); QString text=args[6]; if ( type=="error" || type=="panic" ) return QMessageBox::critical ( 0, caption,text ); if ( type=="ok" ) return QMessageBox::information ( 0, caption,text ); if ( type=="yesno" ) { if(text.indexOf("No response received from the remote server")!=-1 && text.indexOf("Do you want to terminate the current session")!=-1) { text=QObject::tr("No response received from the remote server. Do you want to terminate the current session?"); int rez=QMessageBox::question ( 0, caption,text, QMessageBox::Yes, QMessageBox::No ); if(rez==QMessageBox::Yes && args.count()>9) { #ifndef Q_OS_WIN int pid=args[9].toUInt(); kill(pid, SIGKILL); #else QProcess::execute("bash -c \"kill -9 "+args[9]+"\""); #endif } return rez; } else return QMessageBox::question ( 0, caption,text, QMessageBox::Yes, QMessageBox::No ); } return -1; } #ifdef CFGCLIENT else { ONMainWindow* mw = new ONMainWindow; mw->show(); int retval; app.setQuitOnLastWindowClosed(false); retval = app.exec(); delete mw; return retval; } #endif return 0; } x2goclient-4.0.5.1/src/ongetpass.h0000644000000000000000000000304512675050177013602 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef ONGETPASS_H #define ONGETPASS_H #include #ifdef __cplusplus extern "C" { #endif #ifdef Q_OS_WIN __declspec(dllexport) #endif int x2goMain ( int argc, char *argv[] ); void askpass ( const QString& param, const QString& accept, const QString& cookie, const QString& socketName ); #ifdef __cplusplus } #endif #endif x2goclient-4.0.5.1/src/onmainwindow.cpp0000644000000000000000000130231112675050177014642 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "onmainwindow_privat.h" #include "help.h" void x2goSession::operator = ( const x2goSession& s ) { agentPid=s.agentPid; clientIp=s.clientIp; cookie=s.cookie; crTime=s.crTime; display=s.display; grPort=s.grPort; server=s.server; sessionId=s.sessionId; sndPort=s.sndPort; fsPort=s.fsPort; status=s.status; } bool ONMainWindow::portable=false; QString ONMainWindow::homeDir; QString ONMainWindow::sessionCfg; #ifdef Q_OS_WIN QString ONMainWindow::u3Device; #endif bool ONMainWindow::debugging=false; ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) { haveTerminal=false; #ifndef Q_OS_WIN QFile fl("/dev/tty"); if(fl.open( QIODevice::ReadOnly)) { haveTerminal=true; fl.close(); } #endif #ifdef Q_OS_LINUX image=shape=0; #endif x2goInfof(1) << tr("Starting X2Go Client..."); debugging = false; setFocusPolicy ( Qt::NoFocus ); installTranslator(); cleanAllFiles=false; drawMenu=true; usePGPCard=false; PGPInited=false; extLogin=false; startMaximized=false; startHidden=false; keepTrayIcon=false; hideFolderSharing=false; brokerNoauthWithSessionUsername=false; thinMode=false; closeDisconnect=false; showHaltBtn=false; defaultUseSound=true; defaultSetKbd=true; extStarted=false; cmdAutologin=false; defaultLink=2; defaultFullscreen=false; defaultXinerama=false; acceptRsa=false; cardStarted=false; cardReady=false; shadowSession=false; proxyRunning=false; // useSshAgent=false; closeEventSent=false; miniMode=false; embedMode=false; proxyWinEmbedded=false; proxyWinId=0; embedParent=embedChild=0l; defaultSession=false; connTest=false; defaultUser=false; defaultWidth=800; defaultHeight=600; defaultPack="16m-jpeg"; defaultQuality=9; defaultLayout<physicalDpiX(); int dpiy = QApplication::desktop()->physicalDpiY(); if ( dpix >0 && dpiy >0) { defaultSetDPI=true; defaultDPI=(dpix+dpiy)/2; } else { defaultSetDPI=false; defaultDPI=96; } #ifdef Q_OS_WIN clientSshPort="7022"; pulsePort=4713; pulseStarted=false; X2goSettings st ( "settings" ); pulseNoRecord=st.setting()->value ( "pulse/norecord", false ).toBool(); winSshdStarted=false; #else userSshd=false; sshd=0l; #endif appDir=QApplication::applicationDirPath(); #if defined Q_OS_WIN && defined CFGPLUGIN wchar_t pluginpath[1024]; HMODULE module; module=GetModuleHandleW ( L"npx2goplugin.dll" ); GetModuleFileNameW ( module,pluginpath, 1024 ); QString ppstr=QString::fromUtf16 ( ( const ushort* ) pluginpath ); ppstr.replace ( "\\npx2goplugin.dll","" ); appDir=wapiShortFileName ( ppstr ); QDir::setCurrent ( appDir ); #endif homeDir=QDir::homePath(); #ifdef Q_OS_WIN pulseVersionTest=0l; pulseServer=0l; xorg=0l; xDisplay=0; #endif if(X2goSettings::centralSettings()) { x2goInfof(0)<<"using central configuration"; noSessionEdit=true; } cleanAskPass(); setWindowTitle ( tr ( "X2Go Client" ) ); ld=0; tunnel=0l; sndTunnel=0l; fsTunnel=0l; nxproxy=0l; soundServer=0l; scDaemon=0l; gpgAgent=0l; statusLabel=0; gpg=0l; restartResume=false; isPassShown=true; readExportsFrom=QString::null; spoolTimer=0l; #ifdef Q_OS_DARWIN modMapTimer = NULL; kbMap = QString (); #endif /* defined(Q_OS_DARWIN) */ ldapOnly=false; embedControlChanged=false; statusString=tr ( "connecting" ); hide(); kdeIconsPath=getKdeIconsPath(); addToAppNames ( "WWWBROWSER",tr ( "Internet browser" ) ); addToAppNames ( "MAILCLIENT",tr ( "Email client" ) ); addToAppNames ( "OFFICE",tr ( "OpenOffice.org" ) ); addToAppNames ( "TERMINAL",tr ( "Terminal" ) ); #ifndef Q_OS_LINUX widgetExtraStyle =new QPlastiqueStyle(); #endif agentCheckTimer=new QTimer ( this ); connect ( agentCheckTimer,SIGNAL ( timeout() ),this, SLOT ( slotCheckAgentProcess() ) ); #ifdef CFGCLIENT QStringList args; if(!X2goSettings::centralSettings()) args=QCoreApplication::arguments(); else { X2goSettings st ( "settings" ); QString cmdLine=st.setting()->value ( "commandline", "" ).toString(); // x2goErrorf(100)<<"cmd line:"<0 ) { portableDataPath=u3Path; ONMainWindow::portable=true; setWindowTitle ( "X2Go Client - U3" ); } #endif if ( ONMainWindow::portable ) { if ( portableDataPath.length() <=0 ) portableDataPath=QDir::currentPath(); homeDir=portableDataPath; x2goInfof(2)<start(1000); } loadSettings(); trayIconActiveConnectionMenu = NULL; trayIconMenu=NULL; trayAutoHidden=false; trayEnabled=trayMinToTray=trayMinCon=trayMaxDiscon=false; trayIconInit(); if ( embedMode ) { miniMode=false; useLdap=false; } if ( readExportsFrom!=QString::null ) { exportTimer=new QTimer ( this ); connect ( exportTimer,SIGNAL ( timeout() ),this, SLOT ( slotExportTimer() ) ); } if ( extLogin ) { extTimer=new QTimer ( this ); extTimer->start ( 2000 ); connect ( extTimer,SIGNAL ( timeout() ),this, SLOT ( slotExtTimer() ) ); } if ( startMaximized ) { QTimer::singleShot ( 10, this, SLOT ( slotResize() ) ); } QDesktopWidget wd; if ( wd.screenGeometry(wd.screenNumber(this)).width() <1024 || wd.screenGeometry(wd.screenNumber(this)).height() <768 ) { miniMode=true; x2goDebug<<"Switching to \"mini\" mode..."; } if ( usePGPCard && !useLdap) { QTimer::singleShot ( 10, this, SLOT ( slotStartPGPAuth() ) ); } //fr=new SVGFrame(QString::null,true,this); fr=new IMGFrame ( ( QImage* ) 0l,this ); setCentralWidget ( fr ); #ifndef Q_WS_HILDON if (BGFile.size()) bgFrame=new SVGFrame ( ( QString ) BGFile,true,fr ); else bgFrame=new SVGFrame ( ( QString ) ":/img/svg/bg.svg",true,fr ); #else bgFrame=new SVGFrame ( ( QString ) ":/img/svg/bg_hildon.svg",true,fr ); #endif //bgFrame=new SVGFrame((QString)"/home/admin/test.svg",false,fr); SVGFrame* x2g=new SVGFrame ( ( QString ) ":/img/svg/x2gologo.svg", false,fr ); QPalette pl=x2g->palette(); pl.setColor ( QPalette::Base, QColor ( 255,255,255,0 ) ); pl.setColor ( QPalette::Window, QColor ( 255,255,255,0 ) ); x2g->setPalette ( pl ); SVGFrame* on=new SVGFrame ( ( QString ) ":/img/svg/onlogo.svg",false,fr ); on->setPalette ( pl ); if ( !miniMode ) { x2g->setFixedSize ( 100,100 ); on->setFixedSize ( 100,100 ); } else { x2g->setFixedSize ( 50,50 ); on->setFixedSize ( 50,50 ); } mainL=new QHBoxLayout ( fr ); QVBoxLayout* onlay=new QVBoxLayout(); onlay->addStretch(); onlay->addWidget ( on ); QVBoxLayout* x2golay=new QVBoxLayout(); x2golay->addStretch(); x2golay->addWidget ( x2g ); bgLay=new QHBoxLayout ( bgFrame ); bgLay->setSpacing ( 0 ); bgLay->setMargin ( 0 ); bgLay->addLayout ( onlay ); bgLay->addStretch(); username=new QHBoxLayout(); bgLay->addLayout ( username ); if ( embedMode ) bgLay->addStretch(); bgLay->addLayout ( x2golay ); act_set=new QAction ( QIcon ( iconsPath ( "/32x32/edit_settings.png" ) ), tr ( "&Settings ..." ),this ); if (supportMenuFile!=QString::null) { act_support=new QAction ( tr ( "Support ..." ),this ); connect ( act_support,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotSupport() ) ); } act_abclient=new QAction ( QIcon ( ":/img/icons/32x32/x2goclient.png" ), tr ( "About X2Go Client" ),this ); connect ( act_set,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotConfig() ) ); connect ( act_abclient,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotAbout() ) ); sessionExplorer=new SessionExplorer(this); #ifdef Q_OS_DARWIN embedMode=false; #endif #if defined (Q_OS_WIN) //&& defined (CFGCLIENT ) xorgSettings(); #endif #ifdef Q_OS_WIN winServersReady=false; saveCygnusSettings(); pulseVersionIsLegacy=false; #endif initPassDlg(); initSelectSessDlg(); initStatusDlg(); #if defined(CFGPLUGIN) && defined(Q_OS_LINUX) x2goDebug<<"Creating embedded container."; embedContainer=new QX11EmbedContainer ( fr ); #endif if ( !embedMode ) { initWidgetsNormal(); } #ifdef Q_OS_WIN QProcess::startDetached("x2gohelper.exe "+QString::number(GetCurrentProcessId())); QTimer::singleShot ( 500, this, SLOT ( startWinServers() ) ); #endif mainL->setSpacing ( 0 ); mainL->setMargin ( 0 ); mainL->insertWidget ( 0, bgFrame ); hide(); QTimer::singleShot ( 1, this, SLOT ( slotResize() ) ); connect ( fr,SIGNAL ( resized ( const QSize ) ),this, 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(":/img/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 ); connect ( broker,SIGNAL ( fatalHttpError() ),this, SLOT ( close() ) ); connect ( broker, SIGNAL ( authFailed()), this ,SLOT ( slotGetBrokerAuth())); connect ( broker, SIGNAL( sessionsLoaded()), this, SLOT (slotReadSessions())); connect ( broker, SIGNAL ( sessionSelected()), this, SLOT (slotGetBrokerSession())); connect ( broker, SIGNAL ( passwordChanged(QString)), this, SLOT ( slotPassChanged(QString))); } proxyWinTimer=new QTimer ( this ); connect ( proxyWinTimer, SIGNAL ( timeout() ), this, SLOT ( slotFindProxyWin() ) ); xineramaTimer=new QTimer (this); connect( xineramaTimer, SIGNAL(timeout()), this, SLOT(slotConfigXinerama())); x2goInfof(3)<load (filename)) { *translator = tmp_translator; x2goInfof (4) << tr ("Translator: ") + filename.toAscii () + tr (" found."); return (true); } else { x2goWarningf (1) << tr ("Can't load translator: ") + filename.toAscii (); return (false); } #else /* QT_VERSION < 0x040800 */ QString load_filename = ""; bool translator_found = false; for (QStringList::const_iterator it = ui_languages.constBegin (); it != ui_languages.constEnd (); ++it) { /* Respect English locales. Don't try to load any translation, because we do not ship nop-English translations. */ if ((*it).startsWith ("en")) { x2goWarningf (1) << tr ("English language requested, not loading translator."); break; } else { /* * QLocale::uiLanguages() may return an unexpected format. * See: https://bugreports.qt.io/browse/QTBUG-25973 */ QString tmp_locale = (*it); tmp_locale.replace ("-", "_"); load_filename = filename; load_filename.append ("_").append (tmp_locale.toLower ()); if (tmp_translator->load (load_filename)) { /* Some translation successfully loaded. That's good enough. */ x2goInfof (4) << tr ("Translator: ") + load_filename.toAscii () + tr (" found."); translator_found = true; *translator = tmp_translator; break; } else { x2goWarningf (1) << tr ("Non-fatal: can't load translator: ") + load_filename.toAscii (); x2goWarningf (1) << tr ("Trying to load language with lower preference, if existent."); } } } return (translator_found); #endif /* QT_VERSION < 0x040800 */ } void ONMainWindow::installTranslator () { QTranslator *x2goclientTranslator = new QTranslator (); bool translator_found = get_translator (QString (":/i18n/x2goclient"), &x2goclientTranslator); if (translator_found) { QCoreApplication::installTranslator (x2goclientTranslator); } QTranslator *qtTranslator = new QTranslator (); translator_found = get_translator (QString (":/i18n/qt"), &qtTranslator); if (translator_found) { QCoreApplication::installTranslator (qtTranslator); } } void ONMainWindow::initWidgetsEmbed() { #ifdef CFGPLUGIN doPluginInit(); stb=new QToolBar ( this ); addToolBar ( stb ); stb->toggleViewAction()->setEnabled ( false ); stb->toggleViewAction()->setVisible ( false ); stb->setFloatable ( false ); stb->setMovable ( false ); statusBar()->setSizeGripEnabled ( false ); #ifndef Q_OS_WIN statusBar()->hide(); #endif act_shareFolder=new QAction ( QIcon ( ":/img/icons/32x32/file-open.png" ), tr ( "Share folder..." ),this ); act_showApps=new QAction ( QIcon ( ":/img/icons/32x32/apps.png" ), tr ( "Applications..." ),this ); act_suspend=new QAction ( QIcon ( ":/img/icons/32x32/suspend.png" ), tr ( "Suspend" ),this ); act_terminate=new QAction ( QIcon ( ":/img/icons/32x32/stop.png" ), tr ( "Terminate" ),this ); act_reconnect=new QAction ( QIcon ( ":/img/icons/32x32/reconnect.png" ), tr ( "Reconnect" ),this ); act_reconnect->setEnabled ( false ); act_embedContol=new QAction ( QIcon ( ":/img/icons/32x32/detach.png" ), tr ( "Detach X2Go window" ),this ); act_embedToolBar=new QAction ( QIcon ( ":/img/icons/32x32/tbhide.png" ), tr ( "Minimize toolbar" ),this ); setEmbedSessionActionsEnabled ( false ); connect ( act_shareFolder,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotExportDirectory() ) ); connect ( act_showApps,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotAppDialog() ) ); connect ( act_suspend,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotSuspendSessFromSt() ) ); connect ( act_terminate,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotTermSessFromSt() ) ); connect ( act_reconnect,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotReconnectSession() ) ); connect ( act_embedContol,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotEmbedControlAction() ) ); connect ( act_embedToolBar,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotEmbedToolBar() ) ); processSessionConfig(); ////embed container//////// #ifndef Q_OS_DARWIN oldParentSize=QSize ( 0,0 ); #ifdef Q_OS_WIN oldParentPos=QPoint ( 0,0 ); #endif childId=0l; #ifdef Q_OS_LINUX connect ( embedContainer, SIGNAL ( clientClosed() ), this, SLOT ( slotDetachProxyWindow() ) ); embedContainer->connect ( embedContainer, SIGNAL ( clientClosed() ), embedContainer, SLOT ( hide() ) ); #endif #ifdef Q_OS_WIN embedContainer=new QWidget ( mainWidget() ); updateTimer = new QTimer ( this ); connect ( updateTimer, SIGNAL ( timeout() ), this, SLOT ( slotUpdateEmbedWindow() ) ); #endif embedContainer->hide(); mainLayout()->addWidget ( embedContainer ); #endif //end of embed container X2goSettings st ( "sessions" ); embedTbVisible=!st.setting()->value ( "embedded/tbvisible", true ).toBool(); slotEmbedToolBar(); showTbTooltip=false; if ( !embedTbVisible ) { showTbTooltip=true; QTimer::singleShot ( 500, this, SLOT ( slotEmbedToolBarToolTip() ) ); QTimer::singleShot ( 3000, this, SLOT ( slotHideEmbedToolBarToolTip() ) ); } if ( !config.showtoolbar ) { stb->hide(); } if ( config.confFS&& ( !config.useFs ) ) { x2goDebug<<"hide share"; act_shareFolder->setVisible ( false ); } act_showApps->setVisible(false); if ( !managedMode ) { #ifdef Q_OS_LINUX QTimer::singleShot ( 500, this, SLOT ( slotActivateWindow() ) ); #endif } #endif//CFGPLUGIN } void ONMainWindow::initWidgetsNormal() { username->setSpacing ( 10 ); username->addStretch(); username->addStretch(); ln=new SVGFrame ( ( QString ) ":/img/svg/line.svg",true,fr ); ln->setFixedWidth ( ln->sizeHint().width() ); uname=new QLineEdit ( bgFrame ); setWidgetStyle ( uname ); uname->hide(); uname->setFrame ( false ); u=new QLabel ( tr ( "Session:" ),bgFrame ); u->hide(); QFont fnt=u->font(); fnt.setPointSize ( 16 ); #ifndef Q_WS_HILDON if ( miniMode ) { fnt.setPointSize ( 12 ); } #endif u->setFont ( fnt ); connect ( uname,SIGNAL ( returnPressed() ),this, SLOT ( slotUnameEntered() ) ); QPalette pal=u->palette(); pal.setColor ( QPalette::WindowText, QColor ( 200,200,200,255 ) ); u->setPalette ( pal ); uname->setFont ( fnt ); pal=uname->palette(); pal.setColor ( QPalette::Base, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Text, QColor ( 200,200,200,255 ) ); uname->setPalette ( pal ); u->show(); uname->show(); QVBoxLayout* vblay=new QVBoxLayout(); users=new QScrollArea ( fr ); vblay->addLayout(sessionExplorer->getNavigationLayout()); vblay->addWidget(users); pal=users->verticalScrollBar()->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::Base, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::Button, QColor ( 110,112,127,255 ) ); users->verticalScrollBar()->setPalette ( pal ); users->setFrameStyle ( QFrame::Plain ); users->setFocusPolicy ( Qt::NoFocus ); pal=users->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); users->setPalette ( pal ); users->setWidgetResizable ( true ); uframe=new QFrame(); users->setWidget ( uframe ); mainL->insertWidget ( 1, ln ); // mainL->addWidget ( users ); mainL->addLayout(vblay); QAction *act_exit=new QAction ( QIcon ( iconsPath ( "/32x32/exit.png" ) ), tr ( "&Quit" ),this ); act_exit->setShortcut ( tr ( "Ctrl+Q" ) ); act_exit->setStatusTip ( tr ( "Quit" ) ); act_new=new QAction ( QIcon ( iconsPath ( "/32x32/new_file.png" ) ), tr ( "&New session ..." ),this ); act_new->setShortcut ( tr ( "Ctrl+N" ) ); setWindowIcon ( QIcon ( ":/img/icons/128x128/x2go.png" ) ); act_edit=new QAction ( QIcon ( iconsPath ( "/32x32/edit.png" ) ), tr ( "Session management ..." ),this ); act_edit->setShortcut ( tr ( "Ctrl+E" ) ); if (noSessionEdit) { act_edit->setEnabled(false); act_new->setEnabled(false); } act_sessicon=new QAction ( QIcon ( iconsPath ( "/32x32/create_file.png" ) ), tr ( "&Create session icon on desktop ..." ), this ); if (brokerMode) act_sessicon->setEnabled(false); if (changeBrokerPass) { act_changeBrokerPass=new QAction ( QIcon ( iconsPath ( "/32x32/auth.png" ) ), tr ( "&Set broker password ..." ), this ); connect ( act_changeBrokerPass,SIGNAL ( triggered(bool)),this, SLOT ( slotChangeBrokerPass()) ); act_changeBrokerPass->setEnabled(false); } if (connTest) { act_testCon=new QAction ( QIcon ( iconsPath ( "/32x32/contest.png" ) ), tr ( "&Connectivity test ..." ), this ); connect ( act_testCon,SIGNAL ( triggered(bool)),this, SLOT ( slotTestConnection()) ); } QAction *act_tb=new QAction ( tr ( "Show toolbar" ),this ); act_tb->setCheckable ( true ); act_tb->setChecked ( showToolBar ); QAction *act_abqt=new QAction ( tr ( "About Qt" ),this ); connect ( act_abqt,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotAboutQt() ) ); connect ( act_new,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotNewSession() ) ); connect ( act_sessicon,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotCreateSessionIcon() ) ); connect ( act_edit,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotManage() ) ); connect ( act_exit,SIGNAL ( triggered ( bool ) ),this, SLOT ( trayQuit()) ) ; connect ( act_tb,SIGNAL ( toggled ( bool ) ),this, SLOT ( displayToolBar ( bool ) ) ); stb=addToolBar ( tr ( "Show toolbar" ) ); if ( drawMenu ) { QMenu* menu_sess=menuBar()->addMenu ( tr ( "&Session" ) ); QMenu* menu_opts=0; if(!X2goSettings::centralSettings()) menu_opts=menuBar()->addMenu ( tr ( "&Options" ) ); if (!brokerMode && !X2goSettings::centralSettings()) { menu_sess->addAction ( act_new ); menu_sess->addAction ( act_edit ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !portable ) menu_sess->addAction ( act_sessicon ); #endif menu_sess->addSeparator(); } menu_sess->addAction ( act_exit ); if(!X2goSettings::centralSettings()) { menu_opts->addAction ( act_set ); menu_opts->addAction ( act_tb ); if (changeBrokerPass) menu_opts->addAction(act_changeBrokerPass); if (connTest) menu_opts->addAction(act_testCon); } QMenu* menu_help=menuBar()->addMenu ( tr ( "&Help" ) ); if (supportMenuFile!=QString::null) menu_help->addAction ( act_support ); menu_help->addAction ( act_abclient ); menu_help->addAction ( act_abqt ); if (!brokerMode) { stb->addAction ( act_new ); stb->addAction ( act_edit ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !portable ) stb->addAction ( act_sessicon ); #endif stb->addSeparator(); } stb->addAction ( act_set ); if (changeBrokerPass) stb->addAction(act_changeBrokerPass); if (connTest) stb->addAction(act_testCon); if ( !showToolBar || X2goSettings::centralSettings()) stb->hide(); connect ( act_tb,SIGNAL ( toggled ( bool ) ),stb, SLOT ( setVisible ( bool ) ) ); } else stb->hide(); #if !defined USELDAP useLdap=false; #endif if ( useLdap ) { act_new->setEnabled ( false ); act_edit->setEnabled ( false ); u->setText ( tr ( "Login:" ) ); QTimer::singleShot ( 1500, this, SLOT ( readUsers() ) ); } else { if (!brokerMode) QTimer::singleShot ( 1, this, SLOT ( slotReadSessions() ) ); else { QTimer::singleShot(1, this,SLOT(slotGetBrokerAuth())); } } } void ONMainWindow::slotPassChanged(const QString& result) { if (result==QString::null) { QMessageBox::critical(this, tr("Error"),tr("Operation failed")); } else { QMessageBox::information(this, tr("Password changed"),tr("Password changed")); config.brokerPass=result; } setEnabled(true); slotClosePass(); sessionStatusDlg->hide(); } void ONMainWindow::slotTestConnection() { ConTest test( broker, config.brokerurl, this); test.exec(); } void ONMainWindow::slotChangeBrokerPass() { x2goDebug<<"Changing broker password."; BrokerPassDlg passDlg; if (passDlg.exec()!=QDialog::Accepted) return; if (passDlg.oldPass()!=config.brokerPass) { QMessageBox::critical(this,tr("Error"),tr("Wrong password!")); return; } broker->changePassword(passDlg.newPass()); setStatStatus ( tr ( "Connecting to broker" ) ); stInfo->insertPlainText ( "broker url: "+config.brokerurl ); setEnabled ( false ); uname->hide(); u->hide(); return; } void ONMainWindow::slotCheckPortableDir() { if (!QFile::exists(homeDir)) { x2goDebug<<"Portable directory does not exist, closing."; close(); } } void ONMainWindow::slotGetBrokerAuth() { pass->clear(); login->clear(); QString pixFile=":/img/icons/128x128/x2gosession.png"; if (SPixFile!=QString::null) pixFile=SPixFile; QPixmap pix(pixFile); if ( !miniMode ) { fotoLabel->setPixmap ( pix.scaled ( 64,64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 64,64 ); } else { fotoLabel->setPixmap ( pix.scaled ( 48,48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 48,48 ); } if(users->isVisible()) { users->hide(); ln->hide(); bgLay->insertStretch(3); } QString text=tr("Authentication"); /* if(config.brokerName.length()>0) text+=config.brokerName; else text+=config.brokerurl;*/ nameLabel->setText ( text ); slotShowPassForm(); config.brokerAuthenticated=false; if(config.brokerUser.length()>0) { login->setText(config.brokerUser); pass->setFocus(); } if(config.brokerNoAuth) slotSessEnter(); else if(config.brokerurl.indexOf("ssh://")==0 && (config.brokerAutologin || config.brokerKrbLogin|| config.brokerSshKey.length()>0)) slotSessEnter(); } void ONMainWindow::trayIconInit() { #ifndef CFGPLUGIN X2goSettings st ( "settings" ); trayEnabled=st.setting()->value ( "trayicon/enabled", false ).toBool(); trayMinCon=st.setting()->value ( "trayicon/mincon", false ).toBool(); trayMaxDiscon=st.setting()->value ( "trayicon/maxdiscon", false ).toBool(); trayNoclose=st.setting()->value ( "trayicon/noclose", false ).toBool(); trayMinToTray=st.setting()->value ( "trayicon/mintotray", false ).toBool(); if (!trayEnabled) { trayMinCon=trayMaxDiscon=trayNoclose=trayMinToTray=false; if (trayIcon) { delete trayIcon; delete trayIconMenu; trayIcon=0l; trayIconMenu=0l; } } else { if (!trayIcon) { trayIconMenu = new QMenu(this); trayIconMenu->addAction(tr("Restore"),this, SLOT(showNormal())); trayIconActiveConnectionMenu = trayIconMenu->addMenu(tr("Not connected")); appMenu[Application::MULTIMEDIA]=initTrayAppMenu(tr("Multimedia"), QPixmap(":/img/icons/22x22/applications-multimedia.png")); appMenu[Application::DEVELOPMENT]=initTrayAppMenu(tr("Development"), QPixmap(":/img/icons/22x22/applications-development.png")); appMenu[Application::EDUCATION]=initTrayAppMenu(tr("Education"), QPixmap(":/img/icons/22x22/applications-education.png")); appMenu[Application::GAME]=initTrayAppMenu(tr("Game"), QPixmap(":/img/icons/22x22/applications-games.png")); appMenu[Application::GRAPHICS]=initTrayAppMenu(tr("Graphics"), QPixmap(":/img/icons/22x22/applications-graphics.png")); appMenu[Application::NETWORK]=initTrayAppMenu(tr("Network"), QPixmap(":/img/icons/22x22/applications-internet.png")); appMenu[Application::OFFICE]=initTrayAppMenu(tr("Office"), QPixmap(":/img/icons/22x22/applications-office.png")); appMenu[Application::SETTINGS]=initTrayAppMenu(tr("Settings"), QPixmap(":/img/icons/22x22/preferences-system.png")); appMenu[Application::SYSTEM]=initTrayAppMenu(tr("System"), QPixmap(":/img/icons/22x22/applications-system.png")); appMenu[Application::UTILITY]=initTrayAppMenu(tr("Utility"), QPixmap(":/img/icons/22x22/applications-utilities.png")); appMenu[Application::OTHER]=initTrayAppMenu(tr("Other"), QPixmap(":/img/icons/22x22/applications-other.png")); appSeparator=trayIconActiveConnectionMenu->addSeparator(); if (!hideFolderSharing) trayIconActiveConnectionMenu->addAction(tr ("Share folder ..." ),this, SLOT(slotExportDirectory())); trayIconActiveConnectionMenu->addAction(tr("Suspend"),this, SLOT(slotSuspendSessFromSt())); trayIconActiveConnectionMenu->addAction(tr("Terminate"),this, SLOT(slotTermSessFromSt())); connect (trayIconActiveConnectionMenu, SIGNAL(triggered(QAction*)), this, SLOT(slotAppMenuTriggered(QAction*))); if (sessionStatusDlg && sessionStatusDlg->isVisible()) { if (!useLdap) trayIconActiveConnectionMenu->setTitle(sessionExplorer->getLastSession()->name()); else trayIconActiveConnectionMenu->setTitle(lastUser->username()); } else { trayIconActiveConnectionMenu->setEnabled(false); } trayIconMenu->addSeparator(); trayIconMenu->addAction(tr("Quit"),this, SLOT(trayQuit())); // setup the tray icon itself trayIcon = new QSystemTrayIcon(this); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); connect(trayIcon, SIGNAL(messageClicked()), this, SLOT(trayMessageClicked())); trayIcon->setContextMenu(trayIconMenu); trayIcon->setIcon(QIcon ( ":/img/icons/128x128/x2go.png") ); trayIcon->setToolTip(tr("A left click hides or restores the window. A right click displays the context menu.")); } if (!startHidden | forceToShowTrayicon) { trayIcon->show(); plugAppsInTray(); } } #endif } QMenu* ONMainWindow::initTrayAppMenu(QString text, QPixmap icon) { QMenu* menu=trayIconActiveConnectionMenu->addMenu(text); if (!keepTrayIcon) { menu->setIcon(icon); } return menu; } void ONMainWindow::slotAppMenuTriggered(QAction* action) { x2goDebug<<"slotAppMenuTriggered: "<data().toString(); if (action->data().toString() != "") runApplication(action->data().toString()); } void ONMainWindow::plugAppsInTray() { if (!trayIcon) return; removeAppsFromTray(); x2goDebug<<"Plugging apps in tray."; bool empty=true; topActions.clear(); foreach(Application app, applications) { QAction* act; if (app.category==Application::TOP) { act=new QAction(app.icon,app.name,trayIconActiveConnectionMenu); trayIconActiveConnectionMenu->insertAction(appSeparator, act); topActions.append(act); } else { act=appMenu[app.category]->addAction(app.icon,app.name); appMenu[app.category]->menuAction()->setVisible(true); } act->setToolTip(app.comment); act->setData(app.exec); empty=false; } if (!empty) appSeparator->setVisible(true); } void ONMainWindow::removeAppsFromTray() { if (!trayIcon) return; x2goDebug<<"Removing apps from tray"; for (int i=0; i<=Application::OTHER; ++i) { appMenu[i]->clear(); appMenu[i]->menuAction()->setVisible(false); } foreach (QAction* act, topActions) { trayIconActiveConnectionMenu->removeAction(act); delete act; } topActions.clear(); appSeparator->setVisible(false); } QString ONMainWindow::findTheme ( QString /*theme*/ ) { return QString::null; } QString ONMainWindow::getKdeIconsPath() { return ":/img/icons"; } void ONMainWindow::slotResize ( const QSize sz ) { if ( startHidden ) { return; } int height; int usize; height=sz.height(); if ( !embedMode ) { if ( !miniMode ) { usize=sz.width()-800; if ( usize<360 ) usize=360; if ( usize>500 ) usize=500; } else { usize=285; } if ( users->width() !=usize ) { users->setFixedWidth ( usize ); if ( useLdap ) { QList::iterator it; QList::iterator end=names.end(); for ( it=names.begin(); it!=end; it++ ) { if ( !miniMode ) ( *it )->move ( ( usize-360 ) /2, ( *it )->pos().y() ); else ( *it )->move ( ( usize-250 ) /2, ( *it )->pos().y() ); } } else { QList::iterator fit; QList::iterator fend=sessionExplorer->getFoldersList()->end(); for ( fit=sessionExplorer->getFoldersList()->begin(); fit!=fend; fit++ ) { if ( !miniMode ) ( *fit )->move ( ( usize-360 ) /2, ( *fit )->pos().y() ); else ( *fit )->move ( ( usize-250 ) /2, ( *fit )->pos().y() ); } QList::iterator it; QList::iterator end=sessionExplorer->getSessionsList()->end(); for ( it=sessionExplorer->getSessionsList()->begin(); it!=end; it++ ) { if ( !miniMode ) ( *it )->move ( ( usize-360 ) /2, ( *it )->pos().y() ); else ( *it )->move ( ( usize-250 ) /2, ( *it )->pos().y() ); } } } u->setFixedWidth ( u->sizeHint().width() ); int bwidth=bgFrame->width(); int upos= ( bwidth-u->width() ) /2; if ( upos<0 ) upos=0; int rwidth=bwidth- ( upos+u->width() +5 ); if ( rwidth<0 ) rwidth=1; uname->setMinimumWidth ( rwidth ); u->move ( upos,height/2 ); uname->move ( u->pos().x() +u->width() +5,u->pos().y() ); sessionExplorer->resize(); } } void ONMainWindow::closeClient() { x2goInfof(6)<hide(); closeEventSent=true; if ( !startMaximized && !startHidden && !embedMode ) { x2goDebug<<"Saving settings ..."; X2goSettings st ( "sizes" ); st.setting()->setValue ( "mainwindow/size", QVariant ( size() ) ); st.setting()->setValue ( "mainwindow/pos",QVariant ( pos() ) ); st.setting()->setValue ( "mainwindow/maximized", QVariant ( isMaximized() ) ); st.setting()->sync(); x2goDebug<<"Saved settings."; #ifdef Q_OS_LINUX if (image) XFreePixmap(QX11Info::display(),image); if (shape) XFreePixmap(QX11Info::display(),shape); #endif } if ( nxproxy!=0l ) { if ( nxproxy->state() ==QProcess::Running ) { x2goDebug<<"Terminating proxy ..."; nxproxy->terminate(); x2goDebug<<"Terminated proxy."; } x2goDebug<<"Deleting proxy ..."; delete nxproxy; x2goDebug<<"Deleted proxy."; } if ( sshConnection && !useLdap) { x2goDebug<<"Waiting for the SSH connection to finish ..."; delete sshConnection; x2goDebug<<"SSH connection finished."; sshConnection=0; } if (useLdap) { for (int i=0; istate() ==QProcess::Running ) { x2goDebug<<"Terminating GPG Agent ..."; gpgAgent->terminate(); x2goDebug<<"Terminated GPG Agent."; } } #ifndef Q_OS_WIN if ( agentPid.length() >0 ) { if ( checkAgentProcess() ) { QStringList arg; arg<<"-9"<kill(); x2goDebug<<"Killed the PulseAudio sound server."; x2goDebug<<"Deleting the PulseAudio process ..."; delete pulseServer; x2goDebug<<"Deleted the PulseAudio process."; QDir dr ( homeDir ); dr.remove ( pulseDir+"/config.pa" ); dr.remove ( pulseDir+"/pulse-pulseuser/pid" ); dr.rmdir ( pulseDir+"/pulse-pulseuser" ); dr.rmdir ( pulseDir ); } if ( xorg ) { x2goDebug<<"Terminating the X.Org Server ..."; xorg->terminate(); x2goDebug<<"Terminated the X.Org Server."; x2goDebug<<"Deleting the X.Org Server ..."; delete xorg; x2goDebug<<"Deleted the X.Org Server."; } if ( winSshdStarted ) { TerminateProcess ( sshd.hProcess,0 ); CloseHandle ( sshd.hProcess ); CloseHandle ( sshd.hThread ); } #else if ( userSshd && sshd ) { x2goDebug<<"Terminating the OpenSSH server ..."; sshd->terminate(); x2goDebug<<"Terminated the OpenSSH server."; delete sshd; } #endif if ( embedMode ) { passForm->close(); selectSessionDlg->close(); #ifndef Q_OS_DARWIN // closeEmbedWidget(); #endif } if ( ONMainWindow::portable ) { #ifdef Q_OS_WIN if ( !cyEntry ) { removeCygwinEntry(); } #endif cleanPortable(); } SshMasterConnection::finalizeLibSsh(); x2goInfof(7)<ignore(); } else { trayQuit(); } } void ONMainWindow::hideEvent(QHideEvent* event) { QMainWindow::hideEvent(event); if (event->spontaneous() && trayMinToTray) hide(); } void ONMainWindow::trayQuit() { x2goDebug<<"Quitting from tray icon and closing application."<quit(); } void ONMainWindow::trayIconActivated(QSystemTrayIcon::ActivationReason reason ) { switch (reason) { // use single left click on unix // and double click on windows (Is it standard behaviour conform?) #ifdef Q_OS_UNIX case QSystemTrayIcon::Trigger: #else case QSystemTrayIcon::DoubleClick: #endif x2goDebug << "tray icon clicked with Trigger (left click)"; if (isVisible()) hide(); else { showNormal(); } break; default: break; } } void ONMainWindow::trayMessageClicked() { } void ONMainWindow::loadSettings() { X2goSettings st ( "sizes" ); mwSize=st.setting()->value ( "mainwindow/size", ( QVariant ) QSize ( 800,600 ) ).toSize(); mwPos=st.setting()->value ( "mainwindow/pos", ( QVariant ) QPoint ( 20,20 ) ).toPoint(); mwMax=st.setting()->value ( "mainwindow/maximized", ( QVariant ) false ).toBool(); X2goSettings st1 ( "settings" ); if ( !ldapOnly ) { useLdap=st1.setting()->value ( "LDAP/useldap", ( QVariant ) false ).toBool(); ldapServer=st1.setting()->value ( "LDAP/server", ( QVariant ) "localhost" ).toString(); ldapPort=st1.setting()->value ( "LDAP/port", ( QVariant ) 389 ).toInt(); ldapDn=st1.setting()->value ( "LDAP/basedn", ( QVariant ) QString::null ).toString(); ldapServer1=st1.setting()->value ( "LDAP/server1", ( QVariant ) QString::null ).toString(); ldapPort1=st1.setting()->value ( "LDAP/port1", ( QVariant ) 0 ).toInt(); ldapServer2=st1.setting()->value ( "LDAP/server2", ( QVariant ) QString::null ).toString(); ldapPort2=st1.setting()->value ( "LDAP/port2", ( QVariant ) 0 ).toInt(); } #ifndef Q_OS_WIN if ( !userSshd ) clientSshPort=st1.setting()->value ( "clientport", ( QVariant ) 22 ).toString(); #endif showToolBar=st1.setting()->value ( "toolbar/show", ( QVariant ) true ).toBool(); } QString ONMainWindow::iconsPath ( QString fname ) { /* QFile fl(this->kdeIconsPath+fname); if(fl.exists()) return kdeIconsPath+fname;*/ return ( QString ) ":/img/icons"+fname; } void ONMainWindow::displayUsers() { QPixmap pix; if ( !miniMode ) pix=QPixmap ( ":/img/png/ico.png" ); else pix=QPixmap ( ":/img/png/ico_mini.png" ); QPixmap foto=QPixmap ( iconsPath ( "/64x64/personal.png" ) ); QPalette pal=palette(); pal.setBrush ( QPalette::Window, QBrush ( pix ) ); pal.setBrush ( QPalette::Base, QBrush ( pix ) ); pal.setBrush ( QPalette::Button, QBrush ( pix ) ); QFont fnt=font(); fnt.setPointSize ( 12 ); uframe->setFont ( fnt ); QList::iterator it; QList::iterator end=userList.end(); int i=0; for ( it=userList.begin(); it!=end; it++ ) { int val=i+1; UserButton* l; if ( ( *it ).foto.isNull() ) l=new UserButton ( this, uframe, ( *it ).uid, ( *it ).name,foto,pal ); else l=new UserButton ( this, uframe, ( *it ).uid, ( *it ).name, ( *it ).foto,pal ); connect ( l,SIGNAL ( userSelected ( UserButton* ) ),this, SLOT ( slotSelectedFromList ( UserButton* ) ) ); if ( !miniMode ) l->move ( ( users->width()-360 ) /2, i*120+ ( val-1 ) *25+5 ); else l->move ( ( users->width()-260 ) /2, i*120+ ( val-1 ) *25+5 ); l->show(); names.append ( l ); i++; } int val=i; uframe->setFixedHeight ( val*120+ ( val-1 ) *25 ); uname->setText ( "" ); disconnect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotSnameChanged ( const QString& ) ) ); connect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotUnameChanged ( const QString& ) ) ); if ( usePGPCard && !PGPInited) { PGPInited=true; x2goDebug<<"Users loaded, starting smart card daemon."; QTimer::singleShot ( 10, this, SLOT ( slotStartPGPAuth() ) ); } } void ONMainWindow::showPass ( UserButton* user ) { QPalette pal=users->palette(); setUsersEnabled ( false ); QString fullName; QPixmap foto; if ( user ) { foto=user->foto(); nick=user->username(); fullName=user->fullName(); user->hide(); lastUser=user; } else { lastUser=0; foto.load ( iconsPath ( "/64x64/personal.png" ) ); foto=foto.scaled ( 100,100 ); nick=uname->text(); fullName="User Unknown"; } fotoLabel->setPixmap ( foto ); QString text=""+nick+"
("+fullName+")"; nameLabel->setText ( text ); login->setText ( nick ); login->hide(); pass->setEchoMode ( QLineEdit::Password ); pass->setFocus(); slotShowPassForm(); } void ONMainWindow::slotSelectedFromList ( UserButton* user ) { pass->setText ( "" ); showPass ( user ); } void ONMainWindow::slotClosePass() { if (brokerMode) { if (!config.brokerAuthenticated) { x2goErrorf(15)<hide(); if ( !embedMode ) { u->show(); uname->show(); if ( useLdap ) { if ( lastUser ) { lastUser->show(); uname->setText ( lastUser->username() ); } } else { if (sessionExplorer->getLastSession()) { sessionExplorer->getLastSession()->show(); uname->setText ( sessionExplorer->getLastSession()->name() ); } } uname->setEnabled ( true ); u->setEnabled ( true ); setUsersEnabled ( true ); uname->selectAll(); uname->setFocus(); } } void ONMainWindow::slotPassEnter() { if(!embedMode) shadowSession=false; #if defined ( Q_OS_WIN ) || defined (Q_OS_DARWIN ) QString disp=getXDisplay(); if ( disp==QString::null ) return; #endif #ifdef USELDAP if ( ! initLdapSession() ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } passForm->setEnabled ( false ); x2goServers.clear(); list attr; attr.push_back ( "cn" ); attr.push_back ( "serialNumber" ); attr.push_back ( "l" ); list res; QString searchBase="ou=Servers,ou=ON,"+ldapDn; try { ld->stringSearch ( searchBase.toStdString(),attr, "objectClass=ipHost",res ); } catch ( LDAPExeption e ) { QString message="Exception in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } if ( res.size() ==0 ) { QString message=tr ( "no X2Go Server found in LDAP " ); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list::iterator it=res.begin(); list::iterator end=res.end(); QString freeServer; QString firstServer; bool isFirstServerSet=false; for ( ; it!=end; ++it ) { serv server; server.name=LDAPSession::getStringAttrValues ( *it,"cn" ).front().c_str(); QString sPort="22"; list sL=LDAPSession::getStringAttrValues ( *it,"l" ); if ( sL.size() >0 ) { sPort=sL.front().c_str(); } x2goDebug<<"SSH server: "< serialNumber=LDAPSession::getStringAttrValues ( *it,"serialNumber" ); if ( serialNumber.size() >0 ) { sFactor=serialNumber.front().c_str(); } x2goDebug<<"SSH server: "<setEnabled ( false ); QString passwd; if ( !extLogin ) currentKey=QString::null; QString user=getCurrentUname(); // get x2gogetservers not from ldap server, but from first x2goserver // QString host=ldapServer; QString host=firstServer; passwd=getCurrentPass(); if (sshConnection) delete sshConnection; sshConnection=startSshConnection ( host,sshPort,acceptRsa,user,passwd,true, false ); #endif } void ONMainWindow::slotUnameChanged ( const QString& text ) { if ( prevText==text ) return; if ( text=="" ) return; QList::iterator it; QList::iterator endit=names.end(); for ( it=names.begin(); it!=endit; it++ ) { QString username= ( *it )->username(); if ( username.indexOf ( text,0,Qt::CaseInsensitive ) ==0 ) { QPoint pos= ( *it )->pos(); uname->setText ( username ); QScrollBar* bar=users->verticalScrollBar(); int docLang=bar->maximum()-bar->minimum() + bar->pageStep(); double position= ( double ) ( pos.y() ) / ( double ) ( uframe->height() ); bar->setValue ( ( int ) ( docLang*position-height() /2+ ( *it )->height() /2 ) ); uname->setSelection ( username.length(),text.length()- username.length() ); break; } } prevText=text; } void ONMainWindow::slotUnameEntered() { QString text=uname->text(); if ( useLdap ) { UserButton* user=NULL; QList::iterator it; QList::iterator endit=names.end(); for ( it=names.begin(); it!=endit; it++ ) { QString username= ( *it )->username(); if ( username==text ) { user=*it; break; } } showPass ( user ); } else { SessionButton* sess=NULL; QList::iterator it; QList::iterator endit=sessionExplorer->getSessionsList()->end(); for ( it=sessionExplorer->getSessionsList()->begin(); it!=endit; it++ ) { QString name= ( *it )->name(); if ( name==text ) { sess=*it; break; } } if ( sess ) slotSelectedFromList ( sess ); } } void ONMainWindow::readUsers() { #ifdef USELDAP if ( ! initLdapSession() ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list attr; attr.push_back ( "uidNumber" ); attr.push_back ( "uid" ); attr.push_back ( "cn" ); attr.push_back ( "jpegPhoto" ); list result; try { ld->binSearch ( ldapDn.toStdString(),attr, "objectClass=posixAccount",result ); } catch ( LDAPExeption e ) { QString message="Exception in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ), message,QMessageBox::Ok, QMessageBox::NoButton ); QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP settings" ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list::iterator it=result.begin(); list::iterator end=result.end(); for ( ; it!=end; ++it ) { user u; QString uin=LDAPSession::getBinAttrValues ( *it,"uidNumber" ).front().getData(); u.uin=uin.toUInt(); if ( u.uinlastUid ) { continue; } u.uid=LDAPSession::getBinAttrValues ( *it, "uid" ).front().getData(); u.name=u.name.fromUtf8 ( LDAPSession::getBinAttrValues ( *it, "cn" ).front().getData() ); list lst=LDAPSession::getBinAttrValues ( *it,"jpegPhoto" ); if ( lst.size() ) { u.foto.loadFromData ( ( const uchar* ) ( lst.front().getData() ), lst.front().length() ); } userList.append ( u ); } qSort ( userList.begin(),userList.end(),user::lessThen ); delete ld; ld=0; displayUsers(); if ( defaultUser ) { defaultUser=false; for ( int i=0; isetText ( defaultUserName ); slotUnameChanged ( defaultUserName ); QTimer::singleShot ( 100, this, SLOT ( slotUnameEntered() ) ); break; } } } #endif } void ONMainWindow::slotConfig() { if ( !startMaximized && !startHidden && !embedMode ) { X2goSettings st ( "sizes" ); st.setting()->setValue ( "mainwindow/size", QVariant ( size() ) ); st.setting()->setValue ( "mainwindow/pos",QVariant ( pos() ) ); st.setting()->sync(); } if ( ld ) delete ld; ld=0; ConfigDialog dlg ( this ); if ( dlg.exec() ==QDialog::Accepted ) { int i; if ( passForm->isVisible() && !embedMode ) slotClosePass(); if ( sessionStatusDlg->isVisible() || embedMode ) { trayIconInit(); //if session is running or embed mode, save changes, //but not accept // return; } if ( !embedMode ) { for ( i=0; iclose(); sessionExplorer->cleanSessions(); userList.clear(); } loadSettings(); trayIconInit(); if ( useLdap ) { act_new->setEnabled ( false ); act_edit->setEnabled ( false ); u->setText ( tr ( "Login:" ) ); QTimer::singleShot ( 1, this, SLOT ( readUsers() ) ); } else { act_new->setEnabled ( true ); act_edit->setEnabled ( true ); u->setText ( tr ( "Session:" ) ); QTimer::singleShot ( 1, this, SLOT ( slotReadSessions() ) ); } slotResize ( fr->size() ); } } void ONMainWindow::slotReadSessions() { users->show(); ln->show(); if(brokerMode) { bgLay->removeItem(bgLay->itemAt(3)); slotResize(QSize(width(), height())); } X2goSettings *st; sessionExplorer->cleanSessions(); sessionExplorer->setLastSession(0); if (brokerMode) { if (changeBrokerPass) act_changeBrokerPass->setEnabled(true); config.key=QString::null; config.user=QString::null; config.sessiondata=QString::null; for (int i=sessionExplorer->getSessionsList()->count()-1; i>=0; --i) { SessionButton* but=sessionExplorer->getSessionsList()->takeAt(i); if (but) delete but; } st=new X2goSettings(config.iniFile,QSettings::IniFormat); sessionStatusDlg->hide(); selectSessionDlg->hide(); setEnabled ( true ); slotClosePass(); } else st= new X2goSettings( "sessions" ); QStringList slst=st->setting()->childGroups(); x2goDebug<<"Reading "<createBut ( slst[i] ); } sessionExplorer->placeButtons(); if ( slst.size() ==0 ) slotNewSession(); uname->setText ( "" ); disconnect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotUnameChanged ( const QString& ) ) ); connect ( uname,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotSnameChanged ( const QString& ) ) ); if(usePGPCard &&brokerMode&&cardReady) { if(sessionExplorer->getSessionsList()->count()==1) { slotSelectedFromList(sessionExplorer->getSessionsList()->at(0)); } } if ( !defaultSession&& startHidden ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } if ( defaultSession ) { bool sfound=false; defaultSession=false; if ( defaultSessionId.length() >0 ) { for ( int i=0; i< sessionExplorer->getSessionsList()->size(); ++i ) { if ( sessionExplorer->getSessionsList()->at(i)->id() ==defaultSessionId ) { sessionExplorer->setCurrrentPath(sessionExplorer->getSessionsList()->at(i)->getPath()); sessionExplorer->placeButtons(); sfound=true; slotSelectedFromList ( sessionExplorer->getSessionsList()->at(i) ); break; } } } else { QString normalDefaultSName=defaultSessionName.split("/",QString::SkipEmptyParts).join("/"); for ( int i=0; igetSessionsList()->size(); ++i ) { QString normalName=(sessionExplorer->getSessionsList()->at(i)->getPath()+"/"+sessionExplorer->getSessionsList()->at(i)->name()); normalName=normalName.split("/",QString::SkipEmptyParts).join("/"); if ( normalName == normalDefaultSName ) { sessionExplorer->setCurrrentPath(sessionExplorer->getSessionsList()->at(i)->getPath()); sessionExplorer->placeButtons(); sfound=true; uname->setText ( sessionExplorer->getSessionsList()->at(i)->name() ); QTimer::singleShot ( 100, this, SLOT ( slotUnameEntered() ) ); slotSnameChanged ( defaultSessionName ); break; } } } if ( !sfound && startHidden ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } } delete st; } void ONMainWindow::slotNewSession() { if(X2goSettings::centralSettings()) return; QString id=QDateTime::currentDateTime(). toString ( "yyyyMMddhhmmsszzz" ); EditConnectionDialog dlg (true, id, this ); if ( dlg.exec() ==QDialog::Accepted ) { SessionButton* bt=sessionExplorer->createBut ( id ); sessionExplorer->placeButtons(); users->ensureVisible ( bt->x(),bt->y(),50,220 ); } } void ONMainWindow::slotManage() { SessionManageDialog dlg ( this ); dlg.exec(); } void ONMainWindow::slotCreateSessionIcon() { SessionManageDialog dlg ( this,true ); dlg.exec(); } void ONMainWindow::displayToolBar ( bool show ) { X2goSettings st1 ( "settings" ); st1.setting()->setValue ( "toolbar/show",show ); st1.setting()->sync(); } bool ONMainWindow::initLdapSession ( bool showError ) { #ifdef USELDAP x2goDebug<<"Initializing LDAP sessions ..."; try { ld=new LDAPSession ( ldapServer.toStdString(), ldapPort,"","",true,false ); } catch ( LDAPExeption e ) { QString message="Exception0 in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); x2goDebug< attr; attr.push_back ( SESSIONCMD ); attr.push_back ( FIRSTUID ); attr.push_back ( LASTUID ); list res; QString searchBase="ou=Settings,ou=ON,"+ldapDn; QString srch="cn=session settings"; try { ld->stringSearch ( searchBase.toStdString(),attr, srch.toStdString(),res ); } catch ( LDAPExeption e ) { QString message="Exception in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); return false; } if ( res.size() !=0 ) { LDAPStringEntry entry=res.front(); list str=LDAPSession::getStringAttrValues ( entry,SESSIONCMD ); if ( str.size() ) { sessionCmd=str.front().c_str(); } str=LDAPSession::getStringAttrValues ( entry,FIRSTUID ); if ( str.size() ) { firstUid= ( ( QString ) str.front().c_str() ).toInt(); } str=LDAPSession::getStringAttrValues ( entry,LASTUID ); if ( str.size() ) { lastUid= ( ( QString ) str.front().c_str() ).toInt(); } } attr.clear(); res.clear(); attr.push_back ( NETSOUNDSYSTEM ); attr.push_back ( SNDSUPPORT ); attr.push_back ( SNDPORT ); attr.push_back ( STARTSNDSERVER ); srch="cn=sound settings"; try { ld->stringSearch ( searchBase.toStdString(),attr, srch.toStdString(),res ); } catch ( LDAPExeption e ) { QString message="Exception in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); return false; } if ( res.size() !=0 ) { LDAPStringEntry entry=res.front(); list str=LDAPSession::getStringAttrValues ( entry,NETSOUNDSYSTEM ); if ( str.size() ) { LDAPSndSys=str.front().c_str(); } if ( LDAPSndSys=="PULSE" ) { LDAPSndSys="pulse"; LDAPSndStartServer=false; LDAPSndPort="4713"; } if ( LDAPSndSys=="ARTS_SERVER" ) { LDAPSndPort="20221"; LDAPSndSys="arts"; } if ( LDAPSndSys=="ESPEAKER" ) { LDAPSndPort="16001"; LDAPSndSys="esd"; } str=LDAPSession::getStringAttrValues ( entry,SNDSUPPORT ); if ( str.size() ) { startSound= ( str.front() =="yes" ) ?true:false; } str=LDAPSession::getStringAttrValues ( entry,SNDPORT ); if ( str.size() ) { LDAPSndPort=str.front().c_str(); } str=LDAPSession::getStringAttrValues ( entry,STARTSNDSERVER ); if ( str.size() ) { LDAPSndStartServer= ( str.front() =="yes" ) ?true:false; } } #endif x2goDebug<<"Initialized LDAP sessions."; return true; } void ONMainWindow::slotSnameChanged ( const QString& text ) { if ( prevText==text ) return; if ( text=="" ) return; QList::iterator it; QList::iterator endit=sessionExplorer->getSessionsList()->end(); for ( it=sessionExplorer->getSessionsList()->begin(); it!=endit; it++ ) { if((*it)->getPath()!=sessionExplorer->getCurrentPath()) continue; QString name= ( *it )->name(); if ( name.indexOf ( text,0,Qt::CaseInsensitive ) ==0 ) { QPoint pos= ( *it )->pos(); uname->setText ( name ); QScrollBar* bar=users->verticalScrollBar(); int docLang=bar->maximum()-bar->minimum() + bar->pageStep(); double position= ( double ) ( pos.y() ) / ( double ) ( uframe->height() ); bar->setValue ( ( int ) ( docLang*position-height() / 2+ ( *it )->height() /2 ) ); uname->setSelection ( name.length(), text.length()-name.length() ); break; } } prevText=text; } void ONMainWindow::slotSelectedFromList ( SessionButton* session ) { pass->setText ( "" ); sessionExplorer->setLastSession(session); QString command; QString server; QString userName; bool autologin=false; bool krblogin=false; bool usebrokerpass=false; QString sessIcon; QPalette pal; QString sessionName; if ( !embedMode ) { session->hide(); pal=users->palette(); setUsersEnabled ( false ); sessionName=session->name(); QString sid=session->id(); X2goSettings* st; if (brokerMode) { st=new X2goSettings( config.iniFile, QSettings::IniFormat ); } else { st = new X2goSettings( "sessions" ); } sessIcon = wrap_legacy_resource_URIs (st->setting()->value (sid+"/icon", (QVariant) ":/img/icons/128x128/x2gosession.png" ).toString ()); sessIcon = expandHome(sessIcon); command=st->setting()->value ( sid+"/command", ( QVariant ) tr ( "KDE" ) ).toString(); server=st->setting()->value ( sid+"/host", ( QVariant ) QString::null ).toString(); userName=st->setting()->value ( sid+"/user", ( QVariant ) QString::null ).toString(); if (defaultUser && userName.length()<1) userName=defaultUserName; if(brokerMode) usebrokerpass=st->setting()->value ( sid+"/usebrokerpass", false ).toBool(); sshPort=st->setting()->value ( sid+"/sshport", ( QVariant ) defaultSshPort ).toString(); currentKey=st->setting()->value ( sid+"/key", ( QVariant ) QString::null ).toString(); currentKey=expandHome(currentKey); autologin=st->setting()->value ( sid+"/autologin", ( QVariant ) false ).toBool(); krblogin=st->setting()->value ( sid+"/krblogin", ( QVariant ) false ).toBool(); delete st; #ifdef Q_OS_WIN if ( portable && u3Device.length() >0 ) { currentKey.replace ( "(U3)",u3Device ); } #endif } else { command=config.command; server=config.server; userName=config.user; sshPort=config.sshport; sessIcon=":/img/icons/128x128/x2gosession.png"; sessionName=config.session; currentKey=config.key; } selectedCommand=command.split("/").last(); command=transAppName ( command ); login->setText ( userName ); x2goDebug << "Creating QPixmap with session icon: '" << sessIcon << "'."; QPixmap pix ( sessIcon ); if ( !miniMode ) { fotoLabel->setPixmap ( pix.scaled ( 64,64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 64,64 ); } else { fotoLabel->setPixmap ( pix.scaled ( 48,48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); fotoLabel->setFixedSize ( 48,48 ); } if(currentKey.length()<=0) { currentKey=findSshKeyForServer(userName, server, sshPort); } if ( command=="RDP" ) { command=tr ( "RDP connection" ); } if ( command=="XDMCP" ) { command=tr ( "XDMCP" ); } if ( command=="SHADOW" ) { command=tr ( "Connection to local desktop" ); } QString text=""+sessionName +"
"+ command+tr ( " on " ) +server; nameLabel->setText ( text ); if ( userName.length() <=0 ) login->setFocus(); bool nopass=false; if ( !embedMode ) slotShowPassForm(); /////////////////////////////////////////////////// if ( currentKey.length() >0 ) { nopass=true; } if(brokerMode &&usebrokerpass) { pass->setText(config.brokerPass); slotSessEnter(); } else if ( currentKey != QString::null && currentKey != "" && nopass ) { x2goDebug<<"Starting session with key."; slotSessEnter(); } else if ( cardReady || autologin || krblogin ) { x2goDebug<<"Starting session via Smart Card, SSH Agent or Kerberos token."; nopass=true; if ( cardReady ) login->setText ( cardLogin ); slotSessEnter(); return; } if ( startHidden && nopass==false ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } if ( embedMode ) { QTimer::singleShot ( 50, this, SLOT ( slotShowPassForm() ) ); } } SshMasterConnection* ONMainWindow::startSshConnection ( QString host, QString port, bool acceptUnknownHosts, QString login, QString password, bool autologin, bool krbLogin, bool getSrv, bool useproxy, SshMasterConnection::ProxyType type, QString proxyserver, quint16 proxyport, QString proxylogin, QString proxypassword, QString proxyKey, bool proxyAutologin, bool proxyKrbLogin) { x2goInfof(8)<setEnabled ( false ); if(cmdAutologin) { autologin=true; } con=new SshMasterConnection (this, host, port.toInt(),acceptUnknownHosts, login, password,currentKey, autologin, krbLogin,useproxy, type, proxyserver, proxyport, proxylogin, proxypassword, proxyKey,proxyAutologin, proxyKrbLogin); if (!getSrv) connect ( con, SIGNAL ( connectionOk(QString) ), this, SLOT ( slotSshConnectionOk() ) ); else connect ( con, SIGNAL ( connectionOk(QString)), this, SLOT ( slotServSshConnectionOk(QString) ) ); connect ( con, SIGNAL ( serverAuthError ( int,QString, SshMasterConnection* ) ),this, SLOT ( slotSshServerAuthError ( int,QString, SshMasterConnection* ) ) ); connect ( con, SIGNAL ( needPassPhrase(SshMasterConnection*, bool)),this, SLOT ( slotSshServerAuthPassphrase(SshMasterConnection*, bool)) ); connect ( con, SIGNAL ( userAuthError ( QString ) ),this,SLOT ( slotSshUserAuthError ( QString ) ) ); connect ( con, SIGNAL ( connectionError ( QString,QString ) ), this, SLOT ( slotSshConnectionError ( QString,QString ) ) ); con->start(); return con; } void ONMainWindow::slotSshConnectionError ( QString message, QString lastSessionError ) { x2goErrorf(2)<< tr("Connection error: ") + message + ": " + lastSessionError; if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } if (!startHidden) { QMessageBox::critical ( 0l,message,lastSessionError, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); slotShowPassForm(); pass->setFocus(); pass->selectAll(); passForm->setEnabled ( true ); } else { // In order to get this interaction free, we need to free this from windows and stuff // if ( startHidden ) // { // startHidden=false; // slotResize(); // show(); // activateWindow(); // raise(); // } // completely quit the application trayQuit(); } } void ONMainWindow::slotSshConnectionOk() { x2goDebug<<"SSH connection established."; passForm->setEnabled ( true ); if ( useLdap ) { continueLDAPSession(); } else continueNormalSession(); } SshMasterConnection* ONMainWindow::findServerSshConnection(QString host) { x2goDebug<<"Searching for SSH connections ..."; for (int i=0; igetHost()==host) { x2goDebug<<"Found SSH connection."; return serverSshConnections[i]; } } } x2goWarningf(3)<< tr("Couldn't find an SSH connection."); return 0l; } void ONMainWindow::slotServSshConnectionOk(QString server) { SshMasterConnection* con=findServerSshConnection(server); if (!con) return; x2goDebug<<"Getting sessions on host: " + server; con->executeCommand( "export HOSTNAME && x2golistsessions", this, SLOT (slotListAllSessions ( bool,QString,int ) )); } void ONMainWindow::slotSshServerAuthPassphrase(SshMasterConnection* connection, bool verificationCode) { bool ok; QString message; if(verificationCode) { message=tr("Verification code:"); } else { message=tr("Enter passphrase to decrypt a key"); } QString phrase=QInputDialog::getText(0,connection->getUser()+"@"+connection->getHost()+":"+QString::number(connection->getPort()), message,QLineEdit::Password,QString::null, &ok); if(!ok) { phrase=QString::null; } else { if(phrase==QString::null) phrase=""; } connection->setKeyPhrase(phrase); if(isHidden()) { show(); QTimer::singleShot(1, this, SLOT(hide())); } } void ONMainWindow::slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ) { if ( startHidden ) { startHidden=false; slotResize(); show(); activateWindow(); raise(); } QString errMsg; switch ( error ) { case SSH_SERVER_KNOWN_CHANGED: errMsg=tr ( "Host key for server changed.\nIt is now: " ) +sshMessage+"\n"+ tr ( "This can be an indication of a man-in-the-middle attack.\n" "Somebody might be eavesdropping on you.\n" "For security reasons, it is recommended to stop the connection attempt.\n" "Do you want to terminate the connection?\n" ); if (QMessageBox::warning (0, tr ("Host key verification failed."), errMsg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) { connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } slotSshUserAuthError ( tr ( "Host key verification failed." ) ); sshConnection=0; return; } else { errMsg = tr( "If you accept the new host key the security of your " "connection may be compromised.\n" "Do you want to update the host key?" ); } break; case SSH_SERVER_FOUND_OTHER: errMsg=tr ( "The host key for this server was not found but another" "type of key exists. An attacker might have changed the default server key to " "trick your client into thinking the key does not exist yet.\n" "For security reasons, it is recommended to stop the connection attempt.\n" "Do you want to terminate the connection?\n"); if (QMessageBox::warning (0, tr ("Host key verification failed."), errMsg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) { connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } slotSshUserAuthError ( tr ( "Host key verification failed." ) ); sshConnection=0; return; } else { errMsg = tr( "If you accept the new host key the security of your " "connection may be compromised.\n" "Do you want to update the host key?" ); } break; case SSH_SERVER_ERROR: connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( sshMessage ); return ; case SSH_SERVER_FILE_NOT_FOUND: errMsg=tr ( "Could not find known hosts file." "If you accept the host key here, the file will be automatically created." ); break; case SSH_SERVER_NOT_KNOWN: errMsg=tr ( "The server is unknown. Do you trust the host key?\nPublic key hash: " ) +sshMessage; break; } if (QMessageBox::warning (this, tr ("Host key verification failed."), errMsg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) { connection->writeKnownHosts(false); connection->wait(); if(sshConnection && sshConnection !=connection) { sshConnection->wait(); delete sshConnection; } sshConnection=0; slotSshUserAuthError ( tr ( "Host key verification failed." ) ); return; } connection->writeKnownHosts(true); connection->wait(); connection->start(); } void ONMainWindow::slotSshUserAuthError ( QString error ) { if ( sshConnection ) { sshConnection->wait(); delete sshConnection; sshConnection=0l; } // if ( startHidden ) // { // startHidden=false; // slotResize(); // show(); // activateWindow(); // raise(); // } // hidden means hidden, we'll close the client afterwards. if ( startHidden ) { x2goErrorf(3)<< tr("Authentication failed: ") + error; trayQuit(); } QMessageBox::critical (0l, tr ("Authentication failed."), error, QMessageBox::Ok, QMessageBox::NoButton); setEnabled ( true ); passForm->setEnabled ( true ); slotShowPassForm(); pass->setFocus(); pass->selectAll(); passForm->setEnabled ( true ); } void ONMainWindow::slotSessEnter() { if ( useLdap ) { slotPassEnter(); return; } if (brokerMode) { if (!config.brokerAuthenticated) { x2goDebug<<"Starting broker request."; slotStartBroker(); return; } } resumingSession.sessionId=QString::null; resumingSession.server=QString::null; resumingSession.display=QString::null; setStatStatus ( tr ( "connecting" ) ); if(brokerMode) { if (config.brokerNoAuth && brokerNoauthWithSessionUsername) { config.brokerUser = login->text(); } #ifdef Q_OS_LINUX X2goSettings* st=new X2goSettings(config.iniFile, QSettings::IniFormat); QString sid=sessionExplorer->getLastSession()->id(); QString cmd=st->setting()->value ( sid+"/command", ( QVariant ) QString::null ).toString(); bool directRDP=(st->setting()->value ( sid+"/directrdp", ( QVariant ) false ).toBool() && cmd == "RDP"); if (cmd =="RDP" && directRDP) { x2goDebug<<"Starting direct RDP Session from broker"; startSession ( sid ); return; } #endif broker->selectUserSession(sessionExplorer->getLastSession()->id()); config.session=sessionExplorer->getLastSession()->id(); setStatStatus ( tr ( "Connecting to broker" ) ); stInfo->insertPlainText ( "broker url: "+config.brokerurl ); setEnabled ( false ); uname->hide(); u->hide(); return; } QString sid=""; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); startSession ( sid ); } void ONMainWindow::continueNormalSession() { x2goDebug<<"Continue normal X2Go session"; if (brokerMode && !shadowSession) { slotListSessions(true,QString::null,0); return; } if ( !shadowSession ) sshConnection->executeCommand ( "export HOSTNAME && x2golistsessions", this,SLOT ( slotListSessions ( bool, QString,int ))); else sshConnection->executeCommand ( "export HOSTNAME && x2golistdesktops", this,SLOT ( slotListSessions ( bool, QString,int ))); } void ONMainWindow::continueLDAPSession() { sshConnection->executeCommand ( "x2gogetservers", this, SLOT ( slotGetServers ( bool, QString,int ) )); } #ifdef Q_OS_LINUX void ONMainWindow::startDirectRDP() { X2goSettings* st; if(brokerMode) { st=new X2goSettings(config.iniFile, QSettings::IniFormat); } else { st=new X2goSettings ( "sessions" ); } QString sid; bool freeRDPNew=false; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else sid="embedded"; bool fullscreen=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); bool maxRes=st->setting()->value ( sid+"/maxdim", ( QVariant ) false ).toBool(); int height=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toInt(); int width=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toInt(); 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", ( QVariant ) "3389").toString(); QString params=st->setting()->value ( sid+"/directrdpsettings", ( QVariant ) "").toString(); QString user,password; if(!brokerMode) { user=login->text(); password=pass->text(); } else { user=st->setting()->value ( sid+"/user", ( QVariant ) "").toString(); } nxproxy=new QProcess; proxyErrString=""; connect ( nxproxy,SIGNAL ( error ( QProcess::ProcessError ) ),this, SLOT ( slotProxyError ( QProcess::ProcessError ) ) ); connect ( nxproxy,SIGNAL ( finished ( int,QProcess::ExitStatus ) ),this, SLOT ( slotProxyFinished ( int,QProcess::ExitStatus ) ) ); connect ( nxproxy,SIGNAL ( readyReadStandardError() ),this, SLOT ( slotProxyStderr() ) ); connect ( nxproxy,SIGNAL ( readyReadStandardOutput() ),this, SLOT ( slotProxyStdout() ) ); QString userOpt; QString passOpt; QString grOpt; QString proxyCmd; if(!freeRDPNew) { 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 { 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 ; } // x2goDebug<<"starting direct session with cmd:"<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; delete st; } #endif QString ONMainWindow::findSshKeyForServer(QString user, QString server, QString port) { foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user == user && key.port == port) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user == user && key.port.length()<=0) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user.length()<=0 && key.port==port) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server == server && key.user.length()<=0 && key.port.length()<=0) return key.key; } foreach (sshKey key, cmdSshKeys) { if(key.server.length()<=0 && key.user.length()<=0 && key.port.length()<=0) return key.key; } return QString::null; } bool ONMainWindow::startSession ( const QString& sid ) { setEnabled ( false ); #ifdef Q_OS_LINUX directRDP=false; #endif QString passwd; QString user; QString host; bool autologin=false; bool krblogin=false; bool krbDelegation=false; bool useproxy=false; SshMasterConnection::ProxyType proxyType= SshMasterConnection::PROXYHTTP; QString proxyserver; int proxyport=22; QString proxylogin; QString proxypassword; QString proxyKey; bool proxyAutologin=false; bool proxyKrbLogin=false; user=getCurrentUname(); runRemoteCommand=true; if(!embedMode) shadowSession=false; applications.clear(); removeAppsFromTray(); if ( managedMode ) { slotListSessions ( true, QString::null,0 ); return true; } X2goSettings* st; if(!brokerMode) st=new X2goSettings( "sessions" ); else st=new X2goSettings(config.iniFile, QSettings::IniFormat); passForm->setEnabled ( false ); if(brokerMode) { host=config.serverIp; sshPort=config.sshport; x2goDebug<<"Server: "<setting()->value ( sid+"/host", ( QVariant ) QString::null ).toString(); } QString cmd=st->setting()->value ( sid+"/command", ( QVariant ) QString::null ).toString(); autologin=st->setting()->value ( sid+"/autologin", ( QVariant ) false ).toBool(); krblogin=st->setting()->value ( sid+"/krblogin", ( QVariant ) false ).toBool(); krbDelegation=st->setting()->value ( sid+"/krbdelegation", ( QVariant ) false ).toBool(); #ifdef Q_OS_LINUX directRDP=(st->setting()->value ( sid+"/directrdp", ( QVariant ) false ).toBool() && cmd == "RDP"); if (cmd =="RDP" && directRDP) { startDirectRDP(); return true; } #endif if ( cmd=="SHADOW" ) shadowSession=true; passwd=getCurrentPass(); if(brokerMode) { currentKey=config.key; sshPort=config.sshport; } if (sshConnection) delete sshConnection; if(currentKey.length()<=0) { currentKey=findSshKeyForServer(user, host, sshPort); } if (!embedMode) { useproxy = (st->setting ()->value (sid + "/usesshproxy", false).toBool ()); QString prtype = (st->setting ()->value (sid + "/sshproxytype", "SSH").toString ()); if (prtype.toLower () == "http") { proxyType = SshMasterConnection::PROXYHTTP; } else { proxyType = SshMasterConnection::PROXYSSH; } proxylogin = (st->setting ()->value (sid + "/sshproxyuser", QString ()).toString ()); proxyKey = (st->setting ()->value (sid + "/sshproxykeyfile", QString ()).toString ()); proxyKey = expandHome (proxyKey); proxyserver = (st->setting ()->value (sid + "/sshproxyhost", QString ()).toString ()); proxyport = (st->setting ()->value (sid + "/sshproxyport", 22).toInt ()); proxyAutologin = (st->setting ()->value (sid + "/sshproxyautologin", false).toBool ()); proxyKrbLogin = (st->setting ()->value (sid + "/sshproxykrblogin", false).toBool ()); } else { useproxy = config.useproxy; proxyType = config.proxyType; proxylogin = config.proxylogin; proxyKey = config.proxyKey; proxyserver = config.proxyserver; proxyport = config.proxyport; proxyAutologin = config.proxyAutologin; proxyKrbLogin = config.proxyKrbLogin; } if (proxyserver.indexOf (":") != -1) { QStringList parts = proxyserver.split (":"); proxyserver = parts[0]; proxyport = parts[1].toInt (); } bool proxySamePass=(st->setting()->value ( sid+"/sshproxysamepass", false ).toBool() ); bool proxySameUser (st->setting()->value ( sid+"/sshproxysameuser", false ).toBool() ); if(proxyKey.length()<=0 && proxyType==SshMasterConnection::PROXYSSH) { proxyKey=findSshKeyForServer(proxylogin, proxyserver, QString::number(proxyport)); } if(proxySameUser) proxylogin=user; if(proxySamePass) proxypassword=passwd; else { if(useproxy && !proxyAutologin && !proxyKrbLogin && proxyKey.length()<=0) { bool ok; bool useBrokerPassForProxy=false; if(brokerMode) { useBrokerPassForProxy=(st->setting()->value ( sid+"/usebrokerpassforproxy", false ).toBool() ); } if(useBrokerPassForProxy) proxypassword=config.brokerPass; else proxypassword=QInputDialog::getText(0,proxylogin+"@"+proxyserver+":"+QString::number(proxyport), tr("Enter password for SSH proxy"),QLineEdit::Password,QString::null, &ok); } } delete st; sshConnection=startSshConnection ( host,sshPort,acceptRsa,user,passwd,autologin, krblogin, false, useproxy,proxyType,proxyserver, proxyport, proxylogin, proxypassword, proxyKey,proxyAutologin, proxyKrbLogin); sshConnection->set_kerberosDelegation(krbDelegation); return true; } void ONMainWindow::slotListSessions ( bool result,QString output, int ) { x2goDebug<Connection failed.
\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } if ( !startHidden ) { QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { QString printout = tr( "Connection failed: ") + output.toAscii(); if ( output.indexOf ( "publickey,password" ) !=-1 ) x2goErrorf(4)<< tr( "Connection failed: ") + output + tr(" - Wrong password."); else x2goErrorf(5)<< tr( "Connection failed: ") + output; trayQuit(); } // currentKey=QString::null; setEnabled ( true ); passForm->setEnabled ( true ); slotShowPassForm(); pass->setFocus(); pass->selectAll(); return; } passForm->hide(); if ( !embedMode ) { setUsersEnabled ( false ); uname->setEnabled ( false ); u->setEnabled ( false ); } if ( managedMode ) { x2goDebug<<"Session data: " + config.sessiondata; if ( config.sessiondata.indexOf ( "|S|" ) ==-1 ) { x2goDebug<<"Starting new managed session."; startNewSession(); } else { x2goSession s=getSessionFromString (config.sessiondata); /* Check getSessionFromString for what this "invalid" string means. */ if (s.agentPid == "invalid") { startNewSession (); } else { x2goDebug << "Resuming managed session with ID: " + s.sessionId; resumeSession (s); } } return; } QStringList sessions; if(!brokerMode || shadowSession) { sessions=output.trimmed().split ( '\n', QString::SkipEmptyParts ); } else { sessions=config.sessiondata.trimmed().split ( '\n', QString::SkipEmptyParts ); } if ( shadowSession ) { selectSession ( sessions ); } else { if ( ( sessions.size() ==0 ) || ( sessions.size() ==1&&sessions[0].length() <5 ) ) startNewSession(); else if ( sessions.size() ==1 ) { x2goSession s=getSessionFromString ( sessions[0] ); QDesktopWidget wd; /* Check getSessionFromString for what this "invalid" string means. */ if ((s.agentPid != "invalid") && (s.status == "S") && (isColorDepthOk (wd.depth (), s.colorDepth)) && (s.command == selectedCommand)) resumeSession ( s ); else { if ((startHidden) || (s.agentPid == "invalid")) startNewSession(); else selectSession ( sessions ); } } else { if ( !startHidden ) selectSession ( sessions ); else { for ( int i=0; i13 ) s.fsPort=lst[13]; s.colorDepth=0; if ( s.sessionId.indexOf ( "_dp" ) !=-1 ) { s.colorDepth=s.sessionId.split ( "_dp" ) [1].toInt(); } s.sessionType=x2goSession::DESKTOP; s.command=tr ( "unknown" ); if ( s.sessionId.indexOf ( "_st" ) !=-1 ) { QString cmdinfo=s.sessionId.split ( "_st" ) [1]; cmdinfo=cmdinfo.split ( "_" ) [0]; QChar st=cmdinfo[0]; if ( st=='R' ) s.sessionType=x2goSession::ROOTLESS; if ( st=='S' ) s.sessionType=x2goSession::SHADOW; QString command=cmdinfo.mid ( 1 ); if ( command.length() >0 ) s.command=command; } return s; } void ONMainWindow::startNewSession() { newSession=true; QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString pack; bool fullscreen; int height; int width; int quality; int speed; bool usekbd; bool rootless=false; resumingSession.published=false; bool setDPI=defaultSetDPI; uint dpi=defaultDPI; QString layout; QString type; QString command; QString clipMode=defaultClipboardMode; QString xdmcpServer; runRemoteCommand=true; QString host=QString::null; runStartApp=true; removeAppsFromTray(); if ( useLdap ) { pack=defaultPack; fullscreen=defaultFullscreen; height=defaultHeight; width=defaultWidth; quality=defaultQuality; speed=defaultLink; usekbd=defaultSetKbd; layout=defaultLayout[0]; type=defaultKbdType; command=defaultCmd; shadowSession=false; for ( int j=0; jgetLastSession()->id(); else sid="embedded"; pack=st->setting()->value ( sid+"/pack", ( QVariant ) defaultPack ).toString(); fullscreen=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); //if maxdim = true we set maximun display area available for the selected monitor if ( st->setting()->value(sid + "/maxdim", (QVariant) false).toBool()) { int selectedScreen = st->setting()->value(sid + "/display", (QVariant) -1).toInt(); height=QApplication::desktop()->availableGeometry(selectedScreen).height(); width=QApplication::desktop()->availableGeometry(selectedScreen).width(); } else if(st->setting()->value(sid + "/multidisp", (QVariant) false).toBool()) { //workaround to avoid wm set windows maximized, which will break moving and resizing of window width=800; height=600; } else { height=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toInt(); width=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toInt(); } setDPI=st->setting()->value ( sid+"/setdpi", ( QVariant ) defaultSetDPI ).toBool(); dpi=st->setting()->value ( sid+"/dpi", ( QVariant ) defaultDPI ).toUInt(); quality=st->setting()->value ( sid+"/quality", ( QVariant ) defaultQuality ).toInt(); speed=st->setting()->value ( sid+"/speed", ( QVariant ) defaultLink ).toInt(); clipMode=st->setting()->value ( sid+"/clipboard", ( QVariant ) defaultClipboardMode ).toString(); usekbd=st->setting()->value ( sid+"/usekbd", ( QVariant ) defaultSetKbd ).toBool(); layout=st->setting()->value ( sid+"/layout", ( QVariant ) defaultLayout[0] ).toString(); type=st->setting()->value ( sid+"/type", ( QVariant ) defaultKbdType ).toString(); type.replace("\\",""); type.replace("(","\\("); type.replace(")","\\)"); if ( !embedMode ) { command=st->setting()->value ( sid+"/command", ( QVariant ) defaultCmd ).toString(); host=st->setting()->value ( sid+"/host", ( QVariant ) ( QString ) "localhost" ).toString(); rootless=st->setting()->value ( sid+"/rootless", ( QVariant ) false ).toBool(); resumingSession.published=st->setting()->value ( sid+"/published", ( QVariant ) false ).toBool(); xdmcpServer=st->setting()->value ( sid+"/xdmcpserver", ( QVariant ) "localhost" ).toString(); } else { command=config.command; if ( command=="SHADOW" ) { shadowSession=true; runRemoteCommand=false; } rootless= config.rootless; host=config.server; startEmbedded=false; resumingSession.published=config.published; if ( st->setting()->value ( sid+"/startembed", ( QVariant ) true ).toBool() ) { startEmbedded=true; fullscreen=false; height=bgFrame->size().height()-stb->height(); width=bgFrame->size().width(); if ( height<0 ||width<0 ) { height=defaultHeight; width=defaultWidth; } } if ( config.confConSpd ) speed=config.conSpeed; if ( config.confCompMet ) pack=config.compMet; if ( config.confImageQ ) quality=config.imageQ; if ( config.confDPI ) { dpi=config.dpi; setDPI=true; } if ( config.confKbd ) { layout=config.kbdLay; type=config.kbdType; usekbd=true; } } if ( command=="RDP" ) { if (fullscreen) { rootless=false; } else { rootless=true; } } if ( command=="XDMCP" ) { runRemoteCommand=false; } #ifdef Q_OS_WIN x2goDebug<<"Fullscreen: "<numScreens(); if ((!rootless) && (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool())) { xorgMode=MULTIDISPLAY; uint disp=st->setting()->value ( sid+"/display",( QVariant ) 1 ).toUInt(); if (disp>displays) { disp=1; } localDisplayNumber=disp; } if (! startXorgOnStart) startXOrg(); #endif delete st; } if ( shadowSession ) { runRemoteCommand=false; } resumingSession.server=host; if (defaultLayout.size()>0) layout=cbLayout->currentText(); QString geometry; if ( fullscreen ) { geometry="fullscreen"; #ifdef Q_OS_WIN // fullscreen=false; maximizeProxyWin=true; x2goDebug<<"Maximize proxy win: "<pos() ); geometry+="+"+QString::number ( position.x() ) +"+"+ QString::number ( position.y() + stb->height() ); } } QString link; switch ( speed ) { case MODEM: link="modem"; break; case ISDN: link="isdn"; break; case ADSL: link="adsl"; break; case WAN: link="wan"; break; case LAN: link="lan"; break; } QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); if ( pc==pack ) { pack+="-"+QString::number ( quality ); break; } } } file.close(); if ( selectSessionDlg->isVisible() ) { if ( !embedMode ) slotCloseSelectDlg(); else selectSessionDlg->hide(); } QDesktopWidget wd; QString depth=QString::number ( wd.depth() ); #ifdef Q_OS_DARWIN usekbd=0; type="query"; #endif QString sessTypeStr="D "; if ( rootless ) sessTypeStr="R "; if ( shadowSession ) sessTypeStr="S "; if ( resumingSession.published) { sessTypeStr="P "; command="PUBLISHED"; } QString dpiEnv; QString xdmcpEnv; if ( runRemoteCommand==false && command=="XDMCP" ) xdmcpEnv="X2GOXDMCP="+xdmcpServer+" "; if ( setDPI ) { dpiEnv="X2GODPI="+QString::number ( dpi ) +" "; } QString cmd=dpiEnv+xdmcpEnv+"x2gostartagent "+ geometry+" "+link+" "+pack+ " unix-kde-depth_"+depth+" "+layout+" "+type+" "; if ( usekbd ) cmd += "1 "; else cmd += "0 "; QFileInfo f ( command ); if ( !shadowSession ) { cmd+=sessTypeStr+f.fileName(); cmd+=" "+clipMode; } else { cmd+=sessTypeStr+QString::number ( shadowMode ) +"XSHAD"+ shadowUser+"XSHAD"+shadowDisplay; } resumingSession.fullscreen=fullscreen; x2goDebug<<"Executing remote command: "<hide(); return; } sshConnection->executeCommand ( cmd, this, SLOT ( slotRetResumeSess ( bool, QString,int ) ) ); passForm->hide(); } void ONMainWindow::resumeSession ( const x2goSession& s ) { newSession=false; runStartApp=false; applications.clear(); removeAppsFromTray(); QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=s.server; bool rootless=false; QString clipMode=defaultClipboardMode; QString pack; bool fullscreen; int height; int width; int quality; int speed; bool usekbd; QString layout; QString type; removeAppsFromTray(); if ( useLdap ) { pack=defaultPack; fullscreen=defaultFullscreen; height=defaultHeight; width=defaultWidth; quality=defaultQuality; speed=defaultLink; usekbd=defaultSetKbd; layout=defaultLayout[0]; type=defaultKbdType; sshConnection=findServerSshConnection(host); if (!sshConnection) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Server not available." ), QMessageBox::Ok, QMessageBox::NoButton ); return; } } else { QString sid; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else sid="embedded"; X2goSettings* st; if (!brokerMode) st=new X2goSettings( "sessions" ); else st=new X2goSettings(config.iniFile,QSettings::IniFormat); pack=st->setting()->value ( sid+"/pack", ( QVariant ) defaultPack ).toString(); fullscreen=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); height=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toInt(); width=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toInt(); quality=st->setting()->value ( sid+"/quality", ( QVariant ) defaultQuality ).toInt(); speed=st->setting()->value ( sid+"/speed", ( QVariant ) defaultLink ).toInt(); clipMode=st->setting()->value ( sid+"/clipboard", ( QVariant ) defaultClipboardMode ).toString(); usekbd=st->setting()->value ( sid+"/usekbd", ( QVariant ) defaultSetKbd ).toBool(); layout=st->setting()->value ( sid+"/layout", ( QVariant ) defaultLayout[0] ).toString(); type=st->setting()->value ( sid+"/type", ( QVariant ) defaultKbdType ).toString(); rootless=st->setting()->value ( sid+"/rootless", ( QVariant ) false ).toBool(); if ( brokerMode ) { host = config.serverIp; } else if ( embedMode ) { startEmbedded=false; if ( st->setting()->value ( sid+"/startembed", ( QVariant ) true ).toBool() ) { fullscreen=false; startEmbedded=true; height=bgFrame->size().height()-stb->height(); width=bgFrame->size().width(); if ( height<0 ||width<0 ) { height=defaultHeight; width=defaultWidth; } } rootless=config.rootless; host=config.server; if ( config.confConSpd ) speed=config.conSpeed; if ( config.confCompMet ) pack=config.compMet; if ( config.confImageQ ) quality=config.imageQ; if ( config.confKbd ) { layout=config.kbdLay; type=config.kbdType; usekbd=true; } } else { host=st->setting()->value ( sid+"/host", ( QVariant ) s.server ).toString(); } delete st; } if (defaultLayout.size()>0) layout=cbLayout->currentText(); QString geometry; #ifdef Q_OS_WIN maximizeProxyWin=false; proxyWinWidth=width; proxyWinHeight=height; // #ifdef CFGCLIENT xorgMode=WIN; if (fullscreen) xorgMode=FS; if (rootless) xorgMode=SAPP; xorgWidth=QString::number(width); xorgHeight=QString::number(height); if (! startXorgOnStart) startXOrg(); // #endif #endif if ( fullscreen ) { geometry="fullscreen"; #ifdef Q_OS_WIN // fullscreen=false; maximizeProxyWin=true; x2goDebug<<"Maximize proxy win: "<setDisabled(true); } else resumingSession.published=false; if ( selectSessionDlg->isVisible() ) { if ( !embedMode ) slotCloseSelectDlg(); else selectSessionDlg->hide(); } QString cmd="x2goresume-session "+s.sessionId+" "+geometry+ " "+link+" "+pack+" "+layout+ " "+type+" "; if ( usekbd ) cmd += "1"; else cmd += "0"; cmd +=" "+clipMode; sshConnection->executeCommand ( cmd, this, SLOT ( slotRetResumeSess ( bool, QString, int ) )); resumingSession=s; passForm->hide(); } /** * @brief ONMainWindow::setTrayIconToSessionIcon * @param info: message to be displayed in tray icon message * * Sets the tray session icon picture as the tray icon picture and * shows a tray icon information message about what X2Go Client * is currently doing. * * This message gives the user some feedback while the X2Go session * window is displayed. * */ void ONMainWindow::setTrayIconToSessionIcon(QString info) { //set session icon to tray icon if (trayIcon && sessionExplorer->getLastSession()) { X2goSettings* st; if (!brokerMode) st=new X2goSettings( "sessions" ); else st= new X2goSettings(config.iniFile,QSettings::IniFormat); QString sid; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else sid="embedded"; if (!keepTrayIcon) { QString imagePath = wrap_legacy_resource_URIs (expandHome(st->setting()->value(sid + "/icon", (QVariant) QString(":/img/icons/128x128/x2go.png")).toString())); trayIcon->setIcon(QIcon (imagePath)); } QString name=st->setting()->value ( sid +"/name").toString() ; //send a information notification about the connection is done trayIcon->showMessage("X2Go - " + name, info, QSystemTrayIcon::Information, 15000); } } void ONMainWindow::selectSession ( QStringList& sessions ) { setEnabled ( true ); sessionStatusDlg->hide(); passForm->hide(); if ( !shadowSession ) { x2goDebug<<"No shadow session."; if ( !miniMode ) selectSesDlgLayout->setContentsMargins ( 25,25,10,10 ); bNew->show(); bSusp->show(); bTerm->show(); sOk->show(); sCancel->show(); desktopFilter->hide(); desktopFilterCb->hide(); bShadow->hide(); bShadowView->hide(); bCancel->hide(); // model->clear(); model->removeRows ( 0,model->rowCount() ); selectSessionLabel->setText ( tr ( "Select session:" ) ); selectedSessions.clear(); QFontMetrics fm ( sessTv->font() ); for ( int row = 0; row < sessions.size(); ++row ) { x2goDebug<<"Decoding session string:" + sessions[row]; x2goSession s=getSessionFromString ( sessions[row] ); /* Check getSessionFromString for what this "invalid" string means. */ if (s.agentPid == "invalid") { continue; } selectedSessions.append ( s ); QStandardItem *item; item= new QStandardItem ( s.display ); model->setItem ( row,S_DISPLAY,item ); if ( s.status=="R" ) item= new QStandardItem ( tr ( "running" ) ); else item= new QStandardItem ( tr ( "suspended" ) ); model->setItem ( row,S_STATUS,item ); item= new QStandardItem ( transAppName ( s.command ) ); model->setItem ( row,S_COMMAND,item ); QString type=tr ( "Desktop" ); if ( s.sessionType==x2goSession::ROOTLESS ) type=tr ( "single application" ); if ( s.sessionType==x2goSession::SHADOW ) type=tr ( "shadow session" ); item= new QStandardItem ( type ); model->setItem ( row,S_TYPE,item ); item= new QStandardItem ( s.crTime ); model->setItem ( row,S_CRTIME,item ); item= new QStandardItem ( s.server ); model->setItem ( row,S_SERVER,item ); item= new QStandardItem ( s.clientIp ); model->setItem ( row,S_IP,item ); item= new QStandardItem ( s.sessionId ); model->setItem ( row,S_ID,item ); for ( int j=0; j<8; ++j ) { QString txt= model->index ( row,j ).data().toString(); if ( sessTv->header()->sectionSize ( j ) < fm.width ( txt ) +6 ) { sessTv->header()->resizeSection ( j,fm.width ( txt ) +6 ); } } } } else { shadowMode=SHADOW_VIEWONLY; selectedDesktops.clear(); selectedDesktops=sessions; if ( sessions.size() ==0 ) { QMessageBox::information ( this,tr ( "Information" ), tr ( "No accessible desktop " "found." ) ); slotCloseSelectDlg(); return; } sessTv->setModel ( ( QAbstractItemModel* ) modelDesktop ); desktopFilter->show(); desktopFilterCb->show(); sOk->hide(); sCancel->hide(); bShadow->show(); bCancel->show(); bShadowView->show(); desktopFilter->setText ( tr ( "Filter" ) ); sessions.sort(); if ( !miniMode ) selectSesDlgLayout->setContentsMargins ( 25,25,25,25 ); bNew->hide(); bSusp->hide(); bTerm->hide(); selectSessionLabel->setText ( tr ( "Select desktop:" ) ); filterDesktops ( "" ); desktopFilter->setFocus(); desktopFilter->selectAll(); if ( !embedMode ) { X2goSettings* st; if (!brokerMode) { st=new X2goSettings( "sessions" ); QString sid=sessionExplorer->getLastSession()->id(); QString suser = st->setting()->value(sid + "/shadowuser", (QVariant) QString::null).toString(); QString sdisplay = st->setting()->value(sid + "/shadowdisplay", (QVariant) QString::null).toString(); bool fullAccess= st->setting()->value(sid + "/shadowfullaccess", (QVariant) false).toBool(); if(suser != QString::null && sdisplay != QString::null) { shadowUser=suser; shadowDisplay=sdisplay; if(fullAccess) shadowMode=SHADOW_FULL; else shadowMode=SHADOW_VIEWONLY; startNewSession(); return; } } } } sessTv->setCurrentIndex ( sessTv->model()->index ( 0, 0 ) ); sessTv->setFocus(); selectSessionDlg->show(); if( startHidden && shadowSession && sessTv->model()->rowCount() == 1 ) slotShadowSess(); } void ONMainWindow::slotCloseSelectDlg() { selectSessionDlg->hide(); if ( !embedMode ) { u->setEnabled ( true ); uname->setEnabled ( true ); } slotShowPassForm(); } void ONMainWindow::slotActivated ( const QModelIndex& index ) { if ( !shadowSession ) { QString status=sessTv->model()->index ( index.row(), S_STATUS ).data().toString(); if ( status==tr ( "running" ) ) { bSusp->setEnabled ( true ); sOk->setEnabled ( false ); } else { bSusp->setEnabled ( false ); sOk->setEnabled ( true ); } bTerm->setEnabled ( true ); if ( status==QString::null ) { sOk->setEnabled ( false ); bTerm->setEnabled ( false ); } } else { QString user=sessTv->model()->index ( index.row(), D_USER ).data().toString(); bShadowView->setEnabled ( true ); bShadow->setEnabled ( true ); } } void ONMainWindow::slotResumeSess() { x2goSession s=getSelectedSession(); QDesktopWidget wd; if ( isColorDepthOk ( wd.depth(),s.colorDepth ) ) { if ( s.status=="R" && ! resumeAfterSuspending) { resumeAfterSuspending=true; slotSuspendSess(); return; } resumeAfterSuspending=false; resumeSession ( s ); } else { QString depth=QString::number ( s.colorDepth ); int res; if ( s.colorDepth==24 || s.colorDepth==32 ) { res=QMessageBox::warning ( 0l,tr ( "Warning" ), tr ("Your current color depth is different from " "the session's color depth. This may cause " "problems reconnecting to this session and " "in most cases you will loose the " "session and have to start a new one! " "It's highly recommended to change the color " "depth of your display to " ) + tr ( "24 or 32" ) + tr (" bits and restart your X.Org Server before you " "reconnect to this X2Go session.
" "Do you want to resume this session anyway?" ), tr ( "Yes" ), tr ( "No" ) ); } else { res=QMessageBox::warning ( 0l,tr ( "Warning" ), tr ("Your current color depth is different from " "the session's color depth. This may cause " "problems reconnecting to this session and " "in most cases you will loose the " "session and have to start a new one! " "It's highly recommended to change the color " "depth of your display to " ) + depth + tr (" bits and restart your X.Org Server before you " "reconnect to this X2Go session.
" "Do you want to resume this session anyway?" ), tr ( "Yes" ), tr ( "No" ) ); } if ( res==0 ) resumeSession ( s ); } } void ONMainWindow::slotSuspendSess() { #ifdef Q_OS_LINUX if (directRDP) { nxproxy->terminate(); proxyRunning=false; return; } #endif QString passwd; QString user=getCurrentUname(); passwd=getCurrentPass(); selectSessionDlg->setEnabled ( false ); QString sessId=sessTv->model()->index ( sessTv->currentIndex().row(), S_ID ).data().toString(); QString host=sessTv->model()->index ( sessTv->currentIndex().row(), S_SERVER ).data().toString(); if ( !useLdap ) { if ( brokerMode ) { host=config.serverIp; } if ( embedMode ) { host=config.server; } else { X2goSettings st ( "sessions" ); QString sid=sessionExplorer->getLastSession()->id(); host=st.setting()->value ( sid+"/host", ( QVariant ) host ).toString(); } } else { sshConnection=findServerSshConnection(host); if (!sshConnection) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Server not available." ), QMessageBox::Ok, QMessageBox::NoButton ); return; } } suspendSession ( sessId ); } void ONMainWindow::slotSuspendSessFromSt() { #ifdef Q_OS_LINUX if (directRDP) { nxproxy->terminate(); proxyRunning=false; return; } #endif QString passwd; QString user=getCurrentUname(); passwd=getCurrentPass(); setStatStatus ( tr ( "suspending" ) ); sbExp->setEnabled ( false ); if ( !shadowSession ) suspendSession ( resumingSession.sessionId ); else termSession ( resumingSession.sessionId,false ); } void ONMainWindow::slotTermSessFromSt() { #ifdef Q_OS_LINUX if (directRDP) { x2goDebug<<"Terminating direct RDP session."; nxproxy->terminate(); proxyRunning=false; return; } #endif x2goDebug<<"Disconnect export."; /* disconnect ( sbExp,SIGNAL ( clicked() ),this, SLOT ( slot_exportDirectory() ) );*/ sbExp->setEnabled ( false ); if ( !shadowSession ) { if ( termSession ( resumingSession.sessionId ) ) setStatStatus ( tr ( "terminating" ) ); } else termSession ( resumingSession.sessionId,false ); } void ONMainWindow::slotRetSuspSess ( bool result, QString output, int ) { if ( result==false ) { QString message=tr ( "Connection failed.\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) +message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { if ( selectSessionDlg->isVisible() ) { ( ( QStandardItemModel* ) ( sessTv->model() ) )->item ( sessTv->currentIndex().row(), S_STATUS )->setData ( QVariant ( ( QString ) tr ( "suspended" ) ), Qt::DisplayRole ); bSusp->setEnabled ( false ); sOk->setEnabled ( true ); } } if ( selectSessionDlg->isVisible() ) selectSessionDlg->setEnabled ( true ); if (resumeAfterSuspending) { slotResumeSess(); } } void ONMainWindow::slotTermSess() { #ifdef Q_OS_LINUX if (directRDP) { nxproxy->terminate(); proxyRunning=false; return; } #endif selectSessionDlg->setEnabled ( false ); QString sessId=sessTv->model()->index ( sessTv->currentIndex().row(), S_ID ).data().toString(); if ( !useLdap ) { if ( !embedMode ) { X2goSettings st ( "sessions" ); QString sid=sessionExplorer->getLastSession()->id(); } } else { QString host=sessTv->model()->index ( sessTv->currentIndex().row(), S_SERVER ).data().toString(); sshConnection=findServerSshConnection(host); if (!sshConnection) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Server not available." ), QMessageBox::Ok, QMessageBox::NoButton ); return; } } termSession ( sessId ); } void ONMainWindow::slotNewSess() { startNewSession(); } void ONMainWindow::slotRetTermSess ( bool result, QString output, int ) { if ( result==false ) { QString message=tr ( "Connection failed.\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) +message; } QMessageBox::critical ( 0l,tr ( "Error" ), message,QMessageBox::Ok, QMessageBox::NoButton ); } else { if ( selectSessionDlg->isVisible() ) { sessTv->model()->removeRow ( sessTv->currentIndex().row() ); slotActivated ( sessTv->currentIndex() ); } } if ( selectSessionDlg->isVisible() ) selectSessionDlg->setEnabled ( true ); } void ONMainWindow::slotRetResumeSess ( bool result, QString output, int ) { x2goDebug<<"Agent output: "<Connection failed.
\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong Password!

" ) +message; } if ( output.indexOf ( "LIMIT" ) !=-1 ) { QString sessions=output.mid ( output.indexOf ( "LIMIT" ) +6 ); message="Sessions limit reached:"+sessions; } if ( output.indexOf ( "ACCESS DENIED" ) !=-1 ) { message="Access denied for user"; } QMessageBox::critical ( 0l,tr ( "Error" ), message,QMessageBox::Ok, QMessageBox::NoButton ); slotShowPassForm(); return; } output.replace ( " ","" ); QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host; bool sound=true; int sndSystem=PULSE; QString sndPort; #ifndef Q_OS_WIN sndPort="4713"; #endif bool startSoundServer=true; bool sshSndTunnel=true; if ( useLdap ) { sound=startSound; startSoundServer=LDAPSndStartServer; if ( LDAPSndSys=="arts" ) sndSystem=ARTS; if ( LDAPSndSys=="esd" ) sndSystem=ESD; sndPort=LDAPSndPort; } else { QString sid; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else sid="embedded"; X2goSettings* st; if (!brokerMode) st= new X2goSettings( "sessions" ); else st= new X2goSettings(config.iniFile,QSettings::IniFormat); sound=st->setting()->value ( sid+"/sound", ( QVariant ) true ).toBool(); QString sndsys=st->setting()->value ( sid+"/soundsystem", ( QVariant ) "pulse" ).toString(); if ( sndsys=="arts" ) sndSystem=ARTS; if ( sndsys=="esd" ) sndSystem=ESD; #ifndef Q_OS_WIN sndPort=st->setting()->value ( sid+"/sndport" ).toString(); #endif startSoundServer=st->setting()->value ( sid+"/startsoundsystem", true ).toBool(); if ( embedMode&&config.confSnd ) { sound=config.useSnd; } #ifndef Q_OS_WIN bool defPort=st->setting()->value ( sid+ "/defsndport",true ).toBool(); if ( defPort ) { switch ( sndSystem ) { case PULSE: sndPort="4713"; break; case ESD: sndPort="16001"; break; } } #endif sshSndTunnel=st->setting()->value ( sid+"/soundtunnel", true ).toBool(); #ifdef Q_OS_WIN switch ( sndSystem ) { case PULSE: if(!pulseStarted && sound) { startPulsed(); } sndPort=QString::number ( pulsePort ); break; case ESD: sndPort=QString::number ( esdPort ); break; } #endif delete st; } //Will be used in runCommand startSessSound=sound; startSessSndSystem=sndSystem; if ( newSession ) { QString sString=output.trimmed(); sString.replace ( '\n','|' ); host=resumingSession.server; resumingSession=getNewSessionFromString ( sString ); resumingSession.server=host; resumingSession.crTime=QDateTime::currentDateTime().toString ( "dd.MM.yy HH:mm:ss" ); if ( managedMode ) { //replace session data for future resuming config.sessiondata=resumingSession.agentPid+"|"+ resumingSession.sessionId+"|"+ resumingSession.display+"|"+ resumingSession.server+"|"+ "S|"+ resumingSession.crTime+"|"+ resumingSession.cookie+"|"+ resumingSession.clientIp+"|"+ resumingSession.grPort+"|"+ resumingSession.sndPort+"|"+ resumingSession.crTime+"|"+ user+"|"+ "0|"+ resumingSession.fsPort; } //change the trayicon picture if (debugging) { setTrayIconToSessionIcon(tr("New session started") + ": " + resumingSession.sessionId); } else { setTrayIconToSessionIcon(tr("New session started") + "."); } } else { host=resumingSession.server; QStringList outputLines=output.split("\n",QString::SkipEmptyParts); foreach(QString line,outputLines) { if (line.indexOf("gr_port=")!=-1) { resumingSession.grPort=line.replace("gr_port=",""); x2goDebug<<"New gr_port: "<getLastSession()->id(); host=st.setting()->value ( sid+"/host", ( QVariant ) host ).toString(); } resumingSession.server=host; } localGraphicPort=resumingSession.grPort; int iport=localGraphicPort.toInt() +1000; while ( iport == resumingSession.sndPort.toInt() || iport == resumingSession.fsPort.toInt() || isServerRunning ( iport ) ) ++iport; localGraphicPort=QString::number ( iport ); sshConnection->startTunnel ( "localhost",resumingSession.grPort.toInt(),"localhost", localGraphicPort.toInt(), false, this, SLOT ( slotTunnelOk(int) ), SLOT ( slotTunnelFailed ( bool, QString,int ) ) ); if ( shadowSession ) return; sndTunnel=0l; if ( sound ) { if ( sndSystem==PULSE ) { startSoundServer=false; QString scmd; if ( !sshSndTunnel ) scmd="echo \"default-server=$(echo " "\"$SSH_CLIENT\" | awk '{print $1}'):"+ sndPort+ "\" > \"${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf\"" ";echo \"cookie-file=${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"+ "\" >> \"${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf\""; else scmd="echo \"default-server=localhost:"+ resumingSession.sndPort+ "\" > \"${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf\"" ";echo \"cookie-file=${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"+ "\" >> \"${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf\""; sshConnection->executeCommand (scmd); bool sysPulse=false; #ifdef Q_OS_LINUX loadPulseModuleNativeProtocol(); QFile file ( "/etc/default/pulseaudio" ); if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { while ( !file.atEnd() ) { QByteArray line = file.readLine(); int pos=line.indexOf ( "PULSEAUDIO_SYSTEM_START=1" ); if ( pos!=-1 ) { int commentPos=line.indexOf ( "#" ); if ( commentPos==-1 || commentPos>pos ) { sysPulse=true; break; } } } file.close(); } #endif QString pulsecookie_filename = ""; if ( sysPulse ) { if ( QFile::exists("/run/pulse/.config/pulse/cookie") ) { pulsecookie_filename = "/run/pulse/.config/pulse/cookie"; } else if ( QFile::exists("/run/pulse/.pulse-cookie") ) { pulsecookie_filename = "/run/pulse/.pulse-cookie"; } else if ( QFile::exists("/var/run/pulse/.config/pulse/cookie") ) { pulsecookie_filename = "/var/run/pulse/.config/pulse/cookie"; } else if ( QFile::exists("/var/run/pulse/.pulse-cookie") ) { pulsecookie_filename = "/var/run/pulse/.pulse-cookie"; } if ( pulsecookie_filename.length() > 0 ) { sshConnection->copyFile( pulsecookie_filename, "$HOME/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie", this, SLOT ( slotPCookieReady ( bool, QString,int ))); } } else { #ifndef Q_OS_WIN if ( QFile::exists(homeDir+"/.config/pulse/cookie") ) { pulsecookie_filename = homeDir+"/.config/pulse/cookie"; } else if ( QFile::exists(homeDir+"/.pulse-cookie") ) { pulsecookie_filename = homeDir+"/.pulse-cookie"; } if ( pulsecookie_filename.length() > 0 ) { sshConnection->copyFile(pulsecookie_filename, "$HOME/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie", this, SLOT ( slotPCookieReady ( bool, QString,int ))); } #else QString cooFile= wapiShortFileName ( homeDir ) + "/.x2go/pulse/.pulse-cookie"; QString destFile="$HOME/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"; sshConnection->copyFile(cooFile, destFile, this, SLOT ( slotPCookieReady ( bool, QString,int ))); parecTunnelOk=true; #endif } } if ( sndSystem==ESD ) { #ifndef Q_OS_WIN sshConnection->copyFile(homeDir+"/.esd_auth", "$HOME/.esd_auth" ); #else QString cooFile= wapiShortFileName ( homeDir ) + "/.x2go/pulse/.esd_auth"; QString destFile="$HOME/.esd_auth"; sshConnection->copyFile(cooFile, destFile ); #endif } #ifndef Q_OS_WIN if ( startSoundServer ) { soundServer=new QProcess ( this ); QString acmd="artsd",ecmd="esd"; #ifdef Q_OS_DARWIN QStringList env = soundServer->environment(); QDir dir ( appDir ); dir.cdUp(); dir.cd ( "esd" ); env.insert ( 0,"DYLD_LIBRARY_PATH="+ dir.absolutePath() ); soundServer->setEnvironment ( env ); ecmd="\""+dir.absolutePath() +"\"/esd"; #endif //Q_OS_DARWIN if ( sndSystem==ESD ) soundServer->start ( ecmd+ " -tcp -nobeeps -bind localhost -port "+ resumingSession.sndPort ); if ( sndSystem==ARTS ) soundServer->start ( acmd+" -u -N -p "+ resumingSession.sndPort ); sndPort=resumingSession.sndPort; } #endif //Q_OS_WIN if ( sshSndTunnel ) { const char* okSlot=0; #ifdef Q_OS_WIN if ( sndSystem==PULSE ) { parecTunnelOk=false; okSlot=SLOT ( slotSndTunOk() ); } #endif sndTunnel=sshConnection->startTunnel ( "localhost", resumingSession.sndPort.toInt(),"127.0.0.1", sndPort.toInt(),true,this,okSlot, SLOT ( slotSndTunnelFailed ( bool, QString, int ) )); } } } x2goSession ONMainWindow::getSelectedSession() { QString sessId=sessTv->model()->index ( sessTv->currentIndex().row(), S_ID ).data().toString(); for ( int i=0; istart ( proxyCmd ); proxyRunning=true; // always search for proxy window on linux. On Windows only in window mode #ifdef Q_OS_WIN if (xorgMode==WIN) { #endif proxyWinTimer->start ( 300 ); #ifdef Q_OS_WIN } #endif if ( embedMode ) { // proxyWinTimer->start ( 300 ); if ( !startEmbedded ) { act_embedContol->setText ( tr ( "Attach X2Go window" ) ); } } #ifdef Q_OS_WIN else { // #ifdef CFGCLIENT // // if using XMing, we must find proxy win for case, that we should make it fullscreen // if(useInternalX&& (internalX==XMING)) // #endif // proxyWinTimer->start ( 300 ); } #endif showSessionStatus(); QTimer::singleShot ( 30000,this,SLOT ( slotRestartProxy() ) ); } void ONMainWindow::slotTunnelFailed ( bool result, QString output, int ) { if ( result==false ) { if ( !managedMode ) { QString message=tr ( "Unable to create SSH tunnel for X2Go session (NX) startup:\n" ) +output; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } // if ( tunnel ) // delete tunnel; // if ( sndTunnel ) // delete sndTunnel; // if ( fsTunnel ) // delete fsTunnel; // if ( soundServer ) // delete soundServer; tunnel=sndTunnel=fsTunnel=0l; soundServer=0l; nxproxy=0l; proxyRunning=false; if ( !managedMode ) slotShowPassForm(); } } void ONMainWindow::slotSndTunnelFailed ( bool result, QString output, int ) { if ( result==false ) { if ( !managedMode ) { QString message=tr ( "Unable to create SSH tunnel for audio data:\n" ) +output; QMessageBox::warning ( 0l,tr ( "Warning" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } sndTunnel=0l; } } #ifdef Q_OS_DARWIN void ONMainWindow::slotSetModMap() { if (!nxproxy) { return; } if (kbMap.isEmpty ()) { QProcess pr (this); QProcessEnvironment tmp_env = QProcessEnvironment::systemEnvironment (); QString path_val = tmp_env.value ("PATH"); /* Let's set a reasonable default value if none is provided. */ if (path_val.isEmpty ()) { /* Prefer the default MacPorts prefix. */ path_val = "/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/opt/X11/bin"; tmp_env.insert ("PATH", path_val); } pr.setProcessEnvironment (tmp_env); QStringList key_map_fetch_args; key_map_fetch_args << "-pke"; pr.start ("xmodmap", key_map_fetch_args); bool key_map_fetch_ret = pr.waitForStarted (); if (!key_map_fetch_ret) { handle_xmodmap_error (pr); } else { key_map_fetch_ret = pr.waitForFinished (); if (!key_map_fetch_ret) { handle_xmodmap_error (pr); } kbMap = pr.readAllStandardOutput (); QStringList mod_fetch_args; mod_fetch_args << "-pm"; pr.start ("xmodmap", mod_fetch_args); bool mod_fetch_ret = pr.waitForStarted (); if (!mod_fetch_ret) { handle_xmodmap_error (pr); } else { mod_fetch_ret = pr.waitForFinished (); if (!mod_fetch_ret) { handle_xmodmap_error (pr); } QString modifiers = pr.readAllStandardOutput (); x2goDebug << "modifiers: " << modifiers; /* Reset all modifiers first. */ kbMap += "clear shift\nclear lock\nclear control\nclear mod1\nclear mod2\nclear mod3\nclear mod4\nclear mod5\n"; /* And set them back again. */ QStringList lines = modifiers.split ("\n", QString::SkipEmptyParts); for (int i = 0; i < lines.count (); ++i) { QStringList parts = lines[i].split (" ", QString::SkipEmptyParts); if (parts.count () < 2) { continue; } QString mod = parts[0]; if ((mod == "shift") || (mod == "lock") || (mod == "control") || (mod == "mod1") || (mod == "mod2") || (mod == "mod3") || (mod == "mod4") || (mod == "mod5")) { for (int j = 1; j < parts.count (); ++j) { if (parts[j].indexOf ("(") == -1) { kbMap += "add " + mod + " = " + parts[j] + "\n"; } } } } /* Send modified map to server. */ QString cmd = "export DISPLAY=\":" + resumingSession.display + "\"; echo \"" + kbMap + "\" | xmodmap -"; sshConnection->executeCommand (cmd); } } } } void ONMainWindow::handle_xmodmap_error (QProcess &proc) { QString main_text ("xmodmap "); QString informative_text; QProcessEnvironment proc_env = QProcessEnvironment::systemEnvironment (); /* If the process has a special env, fetch it. */ if (!(proc.processEnvironment ().isEmpty ())) { proc_env = proc.processEnvironment (); } switch (proc.error ()) { case QProcess::FailedToStart: { main_text += tr ("failed to start."); informative_text += tr ("This likely means the binary is not available.\n" "The current search path is: "); QString path_val = proc_env.value ("PATH", "unknown"); /* Add a newline every 100 characters. */ for (std::size_t i = 100; i < static_cast (path_val.size ()); i += 100) { path_val.insert (i, "\n"); } informative_text += path_val; break; } case QProcess::Crashed: { main_text += tr ("returned a non-zero exit code or crashed otherwise."); informative_text += tr ("Execution failed, exit code was: "); informative_text += QString::number (proc.exitCode ()); break; } case QProcess::Timedout: { main_text += tr ("didn't start up in time."); informative_text = tr ("This error shouldn't come up."); break; } case QProcess::WriteError: { main_text += tr ("didn't accept a write operation."); informative_text = tr ("It is probably not running correctly or crashed in-between."); break; } case QProcess::ReadError: { main_text = tr ("Unable to read from xmodmap."); informative_text = tr ("It is probably not running correctly or crashed in-between."); break; } case QProcess::UnknownError: { main_text += tr ("encountered an unknown error during start up or execution."); break; } default: { main_text += tr ("experienced an undefined error."); break; } } if (!informative_text.isEmpty ()) { informative_text += "\n\n"; } informative_text += tr ("X2Go Client will now terminate.\n\n" "File a bug report as outlined on the bugs wiki page."); show_RichText_ErrorMsgBox (main_text, informative_text); trayQuit (); } #endif void ONMainWindow::slotProxyError ( QProcess::ProcessError ) { slotProxyFinished ( -1,QProcess::CrashExit ); } void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus ) { #ifdef Q_OS_DARWIN if (modMapTimer) { disconnect (modMapTimer, SIGNAL (timeout ()), this, SLOT (slotSetModMap ())); modMapTimer->stop (); delete (modMapTimer); modMapTimer = 0; } kbMap = QString (); //fixes bug, when mainwindow inputs not accepting focus under mac setFocus (); #endif //set tray icon to default if (trayIcon && !keepTrayIcon) trayIcon->setIcon(QIcon ( ":/img/icons/128x128/x2go.png") ); if ( embedMode ) { if ( proxyWinEmbedded ) { #ifdef CFGPLUGIN detachClient(); #endif } proxyWinTimer->stop(); setEmbedSessionActionsEnabled ( false ); } #ifdef Q_OS_WIN else proxyWinTimer->stop(); if (! startXorgOnStart) { if (xorg) { if (xorg->state() ==QProcess::Running) { xorg->terminate(); delete xorg; xorg=0; } } } #endif if ( closeEventSent ) return; if ( soundServer ) delete soundServer; if ( spoolTimer ) delete spoolTimer; x2goDebug<<"Deleting Proxy." ; disconnect ( nxproxy,SIGNAL ( error ( QProcess::ProcessError ) ),this, SLOT ( slotProxyError ( QProcess::ProcessError ) ) ); disconnect ( nxproxy,SIGNAL ( finished ( int,QProcess::ExitStatus ) ),this, SLOT ( slotProxyFinished ( int,QProcess::ExitStatus ) ) ); disconnect ( nxproxy,SIGNAL ( readyReadStandardError() ),this, SLOT ( slotProxyStderr() ) ); disconnect ( nxproxy,SIGNAL ( readyReadStandardOutput() ),this, SLOT ( slotProxyStdout() ) ); proxyRunning=false; #ifndef CFGPLUGIN if (trayEnabled) { trayIconActiveConnectionMenu->setTitle(tr("Not connected")); trayIconActiveConnectionMenu->setEnabled(false); if (trayMaxDiscon) showNormal(); } trayAutoHidden=false; #endif bool emergencyExit=false; if(proxyErrString.indexOf("No data received from remote proxy")!=-1) { emergencyExit=true; x2goWarningf(4)<< tr( "Emergency exit." ); } #if ! (defined (CFGPLUGIN)) if ( nxproxy ) { if ( nxproxy->state() ==QProcess::Running ) { emergencyExit=true; x2goWarningf(5)<< tr( "Waiting for proxy to exit." ); if ( !nxproxy->waitForFinished ( 3000 ) ) { x2goWarningf(6)<< tr( "Proxy didn't terminate after 3 seconds. Killing the proxy." ); nxproxy->kill(); } } #ifdef Q_OS_LINUX if (directRDP) nxproxy=0; #endif } #endif x2goDebug<<"Waiting for proxy to exit."; spoolTimer=0l; tunnel=sndTunnel=fsTunnel=0l; soundServer=0l; nxproxy=0l; proxyWinId=0; #ifdef Q_OS_LINUX if (directRDP) { pass->setText ( "" ); QTimer::singleShot ( 2000,this, SLOT ( slotShowPassForm() ) ); return; } #endif if ( !emergencyExit && !shadowSession && !usePGPCard && ! ( embedMode && ( config.checkexitstatus==false ) ) ) { x2goDebug<<"Checking exit status."; check_cmd_status(); } else { x2goDebug<<"Deleting SSH connection instance."; delete sshConnection; x2goDebug<<"Deleted SSH connection instance." ; sshConnection=0; if (startHidden) { x2goInfof(9) << tr("Closing X2Go Client because it was started in hidden mode."); close(); } else if (closeDisconnect) { x2goInfof(10) << tr("Closing X2Go Client because the --close-disconnect parameter was passed."); close(); } } if ( readExportsFrom!=QString::null ) { exportTimer->stop(); if ( extLogin ) { currentKey=QString::null; } } if ( printSupport ) cleanPrintSpool(); if ( !restartResume ) { if ( brokerMode && (!config.brokerAutologoff) ) { x2goDebug<<"Re-reading user's session profiles from broker."; QTimer::singleShot ( 2000,broker, SLOT ( getUserSessions() ) ); } else if ( brokerMode && config.brokerAutologoff ) { x2goDebug<<"Logging off from broker as requested via command line."; QTimer::singleShot(1, this,SLOT(slotGetBrokerAuth())); } else if ( !embedMode ) { pass->setText ( "" ); QTimer::singleShot ( 2000,this, SLOT ( slotShowPassForm() ) ); } } else { restartResume=false; sessionStatusDlg->hide(); resumeSession ( resumingSession ); } x2goDebug<<"Finished proxy."; setStatStatus ( tr ( "Finished" ) ); #ifdef Q_OS_DARWIN //fixes bug, when mainwindow inputs not accepting focus under mac setFocus(); #endif } void ONMainWindow::slotProxyStderr() { QString reserr; if ( nxproxy ) reserr= nxproxy->readAllStandardError(); proxyErrString+=reserr; x2goDebug<<"Proxy wrote on stderr: "<insertPlainText ( reserr ); stInfo->ensureCursorVisible(); if ( stInfo->toPlainText().indexOf ( "Connecting to remote host 'localhost:"+ /*resumingSession.grPort*/ localGraphicPort ) !=-1 ) setStatStatus ( tr ( "connecting" ) ); if ( stInfo->toPlainText().indexOf ( "Connection to remote proxy 'localhost:"+ /*resumingSession.grPort*/ localGraphicPort+"' established" ) !=-1 ) { if ( newSession ) { setStatStatus ( tr ( "starting" ) ); } else { setStatStatus ( tr ( "resuming" ) ); } } if ( stInfo->toPlainText().indexOf ( "Established X server connection" ) !=-1 ) { setStatStatus ( tr ( "running" ) ); #ifndef CFGPLUGIN if (trayEnabled) { if (!useLdap) trayIconActiveConnectionMenu->setTitle(sessionExplorer->getLastSession()->name()); else trayIconActiveConnectionMenu->setTitle(lastUser->username()); trayIconActiveConnectionMenu->setEnabled(true); if (trayMinCon && !trayAutoHidden) { trayAutoHidden=true; hide(); } } #endif if ( embedMode ) setEmbedSessionActionsEnabled ( true ); disconnect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotTestSessionStatus() ) ); disconnect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotSuspendSessFromSt() ) ); connect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotSuspendSessFromSt() ) ); if ( !showExport ) { showExport=true; /*connect ( sbExp,SIGNAL ( clicked() ),this, SLOT ( slot_exportDirectory() ) );*/ sbExp->setEnabled ( true ); exportDefaultDirs(); if ( readExportsFrom!=QString::null ) { exportTimer->start ( 2000 ); } } sbSusp->setToolTip ( tr ( "Suspend" ) ); #ifdef Q_OS_DARWIN // Only start this once... if (!modMapTimer) { modMapTimer = new QTimer (this); connect (modMapTimer, SIGNAL (timeout ()), this, SLOT (slotSetModMap ())); modMapTimer->start (10000); slotSetModMap (); } #endif if ( newSession ) { runCommand(); newSession=false; } #ifdef Q_WS_HILDON else { if ( !xmodExecuted ) { xmodExecuted=true; QTimer::singleShot ( 2000, this, SLOT ( slotExecXmodmap() ) ); } } #endif } if ( stInfo->toPlainText().indexOf ( tr ( "Connection timeout, aborting" ) ) !=-1 ) setStatStatus ( tr ( "aborting" ) ); #if defined( Q_OS_WIN ) && defined (CFGPLUGIN) if ( reserr.indexOf ( "Session terminated at" ) !=-1 ) { x2goDebug<<"Proxy finished."; slotProxyFinished ( 0, QProcess::NormalExit ); } #endif } void ONMainWindow::slotProxyStdout() { QString resout ( nxproxy->readAllStandardOutput() ); x2goDebug<<"Proxy wrote on stdout: "<isVisible()) { if(pass && pass->isVisible()&& pass->hasFocus()) { passFocus=true; } if(login && login->isVisible()&& login->hasFocus()) { userFocus=true; } } #endif QWidget::setFocus(); #ifdef Q_OS_DARWIN if(userFocus) { login->setFocus(); } if(passFocus) { pass->setFocus(); } #endif } void ONMainWindow::slotShowPassForm() { #ifdef Q_OS_DARWIN //fixes bug, when mainwindow inputs not accepting focus under mac x2goDebug<<"Setting focus."<show(); login->show(); } else { loginPrompt->hide(); login->hide(); } setEnabled ( true ); if ( !embedMode ) { u->hide(); uname->hide(); } sessionStatusDlg->hide(); selectSessionDlg->hide(); setEnabled ( true ); if ( isPassShown ) { passForm->show(); passForm->setEnabled ( true ); } isPassShown=true; login->setEnabled ( true ); if ( login->text().length() >0 ) { pass->setFocus(); pass->selectAll(); } else { #ifdef Q_OS_WIN login->setText(getenv("USERNAME")); #else login->setText(getenv("USER")); #endif login->setFocus(); login->selectAll(); } if ( !embedMode ) { u->setEnabled ( true ); } else { if ( config.user.length() >0 ) login->setEnabled ( false ); } } void ONMainWindow::showSessionStatus() { setStatStatus(); } void ONMainWindow::slotShowAdvancedStat() { if ( !miniMode ) { if ( sbAdv->isChecked() ) { sessionStatusDlg->setFixedSize ( sessionStatusDlg->width(), sessionStatusDlg->height() *2 ); } else { sessionStatusDlg->setFixedSize ( sessionStatusDlg->sizeHint() ); stInfo->hide(); } } else { if ( sbAdv->isChecked() ) { sessionStatusDlg->setFixedSize ( 310,300 ); } else { stInfo->hide(); sessionStatusDlg->setFixedSize ( 310,200 ); } } // username->invalidate(); if ( sbAdv->isChecked() ) { stInfo->show(); } X2goSettings st ( "settings" ); st.setting()->setValue ( "showStatus", ( QVariant ) sbAdv->isChecked() ); st.setting()->sync(); } void ONMainWindow::slotResumeDoubleClick ( const QModelIndex& ) { if ( !shadowSession ) slotResumeSess(); } void ONMainWindow::suspendSession ( QString sessId ) { sshConnection->executeCommand ( "x2gosuspend-session "+sessId, this, SLOT ( slotRetSuspSess ( bool, QString, int ) ) ); } bool ONMainWindow::termSession ( QString sessId, bool warn ) { if ( warn ) { bool hide_after=false; if (isHidden()) { showNormal(); hide_after=true; } int answer=QMessageBox::warning ( this,tr ( "Warning" ), tr ( "Are you sure you want to terminate " "this session?\n" "Unsaved documents will be lost." ), QMessageBox::Yes,QMessageBox::No ); if (hide_after) hide(); if ( answer != QMessageBox::Yes ) { slotRetTermSess ( true,QString::null,0 ); return false; } } if ( shadowSession ) { nxproxy->terminate(); return true; } x2goDebug<<"Terminating session."; sshConnection->executeCommand ( "x2goterminate-session "+sessId, this, SLOT ( slotRetTermSess ( bool, QString,int) ) ); proxyRunning=false; return true; } void ONMainWindow::setStatStatus ( QString status ) { setEnabled ( true ); passForm->hide(); selectSessionDlg->hide(); if ( status == QString::null ) status=statusString; else statusString=status; QString tstr; if ( statusLabel ) statusLabel->setText ( QString::null ); if ( resumingSession.sessionId!=QString::null ) { QString f="dd.MM.yy HH:mm:ss"; QDateTime dt=QDateTime::fromString ( resumingSession.crTime,f ); dt=dt.addYears ( 100 ); tstr=dt.toString(); } if ( !embedMode || !proxyWinEmbedded ) { statusBar()->showMessage ( ""); #if ! (defined Q_OS_WIN && defined CFGPLUGIN) statusBar()->hide(); #endif QString srv; if ( brokerMode ) { srv=config.serverIp; } else if ( embedMode ) { srv=config.server; } else { srv=resumingSession.server; } slVal->setText ( resumingSession.sessionId+"\n"+ srv+"\n"+ getCurrentUname() +"\n"+ resumingSession.display+ "\n"+tstr+"\n"+status ); slVal->setFixedSize ( slVal->sizeHint() ); sessionStatusDlg->show(); if (resumingSession.published) sbApps->show(); else sbApps->hide(); } else { QString srv; if ( brokerMode ) { srv=config.serverIp; } else { srv=config.server; } QString message=getCurrentUname() +"@"+ srv+ ", "+tr ( "Session" ) +": "+ resumingSession.sessionId+", "+ tr ( "Display" ) +": "+ resumingSession.display+", "+ tr ( "Creation time" ) +": "+tstr; #if ! (defined Q_OS_WIN && defined CFGPLUGIN) if ( statusLabel ) { statusLabel->setText ( " "+message ); } else #endif { if ( config.showstatusbar ) { statusBar()->show(); statusBar()->showMessage ( message ); } } sessionStatusDlg->hide(); } } void ONMainWindow::slotRestartProxy() { if ( !sessionStatusDlg->isVisible() ) return; if ( stInfo->toPlainText().indexOf ( "Established X server connection" ) ==-1 ) { stInfo->insertPlainText ( tr ( "Connection timeout, aborting" ) ); if ( nxproxy ) nxproxy->terminate(); proxyRunning=false; restartResume=true; } } void ONMainWindow::slotTestSessionStatus() { if ( !sessionStatusDlg->isVisible() ) return; if ( stInfo->toPlainText().indexOf ( "Established X server connection" ) ==-1 ) { stInfo->insertPlainText ( tr ( "Connection timeout, aborting" ) ); if ( nxproxy ) nxproxy->terminate(); proxyRunning=false; } } x2goSession ONMainWindow::getNewSessionFromString ( const QString& string ) { QStringList lst=string.split ( '|' ); x2goSession s; s.display=lst[0]; s.cookie=lst[1]; s.agentPid=lst[2]; s.sessionId=lst[3]; s.grPort=lst[4]; s.sndPort=lst[5]; if ( lst.count() >6 ) s.fsPort=lst[6]; return s; } void ONMainWindow::slotAppDialog() { AppDialog dlg(this); dlg.exec(); } void ONMainWindow::runCommand() { QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString command; QString sessionType="D"; QString rdpOpts,rdpServer; bool rdpFS=false; QString rdpWidth; QString rdpHeight; bool rootless=false; resumingSession.published=false; if ( !embedMode ) { X2goSettings* st; if (!brokerMode) st=new X2goSettings( "sessions" ); else st=new X2goSettings(config.iniFile, QSettings::IniFormat); if ( useLdap ) command=sessionCmd; else { QString sid=sessionExplorer->getLastSession()->id(); command=st->setting()->value ( sid+"/command", ( QVariant ) tr ( "KDE" ) ).toString(); rdpOpts=st->setting()->value ( sid+"/rdpoptions", ( QVariant ) "" ).toString(); if ( user != "" ) { rdpOpts.replace("X2GO_USER", user); } if ( passwd != "" ) { rdpOpts.replace("X2GO_PASSWORD", passwd); } rdpServer=st->setting()->value ( sid+"/rdpserver", ( QVariant ) "" ).toString(); rootless=st->setting()->value ( sid+"/rootless", ( QVariant ) false ).toBool(); resumingSession.published=st->setting()->value ( sid+"/published", ( QVariant ) false ).toBool(); rdpFS=st->setting()->value ( sid+"/fullscreen", ( QVariant ) defaultFullscreen ).toBool(); rdpHeight=st->setting()->value ( sid+"/height", ( QVariant ) defaultHeight ).toString(); rdpWidth=st->setting()->value ( sid+"/width", ( QVariant ) defaultWidth ).toString(); } delete st; } else { command=config.command; rootless=config.rootless; resumingSession.published=config.published; } if ( rootless ) sessionType="R"; if ( resumingSession.published ) { sessionType="P"; command="PUBLISHED"; } if ( command=="KDE" ) { command="startkde"; } else if ( command=="GNOME" ) { command="gnome-session"; } else if ( command=="UNITY" ) { command="unity"; } else if ( command=="XFCE" ) { command="xfce4-session"; } else if ( command=="MATE" ) { command="mate-session"; } else if ( command=="LXDE" ) { command="startlxde"; } // Note that there are multiple possible Cinnamon commands that the server // may call. else if ( command=="CINNAMON" ) { command="cinnamon-session"; } else if ( command=="TRINITY" ) { command="starttrinity"; } else if ( command=="OPENBOX" ) { command="openbox-session"; } else if ( command=="ICEWM" ) { command="icewm-session"; } else if ( command=="RDP" ) { command="rdesktop "; if ( rdpFS ) { command+=" -f "; sessionType="D"; rootless=false; } else { command+=" -g "+rdpWidth+"x"+rdpHeight; rootless=true; } command+=" "+rdpOpts+ " "+rdpServer; } if ( managedMode ) return; QString cmd; command.replace ( " ","X2GO_SPACE_CHAR" ); QString krbFwString; if(sshConnection->useKerberos() && sshConnection->get_kerberosDelegation()) { krbFwString="KRB5CCNAME=`echo $KRB5CCNAME |sed 's/FILE://g'` \ KRBFL=$HOME/.x2go/C-"+resumingSession.sessionId+"/krb5cc ;\ cp -a $KRB5CCNAME $KRBFL;KRB5CCNAME=$KRBFL "; } if ( !startSessSound || startSessSndSystem==PULSE ) { cmd=krbFwString+"setsid x2goruncommand "+resumingSession.display+" "+ resumingSession.agentPid + " " + resumingSession.sessionId+" "+ resumingSession.sndPort+ " "+ command+" nosnd "+ sessionType +" 1> /dev/null 2>/dev/null & exit"; if ( startSessSndSystem ==PULSE ) { cmd="export PULSE_CLIENTCONFIG=\"${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf\";"+cmd; } } else { switch ( startSessSndSystem ) { case ESD: cmd=krbFwString+"setsid x2goruncommand "+ resumingSession.display+" "+ resumingSession.agentPid + " " + resumingSession.sessionId+" "+ resumingSession.sndPort+ " "+ command+" esd "+ sessionType +" 1> /dev/null 2>/dev/null & exit"; break; case ARTS: cmd=krbFwString+"setsid x2goruncommand "+ resumingSession.display+" "+ resumingSession.agentPid + " " + resumingSession.sessionId+" "+ resumingSession.sndPort+ " "+ command+" arts "+ sessionType +" 1> /dev/null 2>/dev/null & exit"; break; } } if ( runRemoteCommand ) { sshConnection->executeCommand ( cmd, this, SLOT ( slotRetRunCommand ( bool, QString, int ) )); } #ifdef Q_WS_HILDON //wait 5 seconds and execute xkbcomp QTimer::singleShot ( 5000, this, SLOT ( slotExecXmodmap() ) ); #endif } void ONMainWindow::runApplication(QString exec) { QString cmd = "PULSE_CLIENTCONFIG=\"${HOME}/.x2go/C-" + resumingSession.sessionId+"/.pulse-client.conf\" DISPLAY=:" + resumingSession.display + " setsid " + exec + " 1> /dev/null 2>/dev/null & exit"; sshConnection->executeCommand (cmd); } void ONMainWindow::slotRetRunCommand ( bool result, QString output, int ) { if ( result==false ) { QString message=tr ( "Connection failed.\n:\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { if (resumingSession.published) readApplications(); } } void ONMainWindow::readApplications() { sshConnection->executeCommand ( "x2gogetapps", this, SLOT ( slotReadApplications ( bool, QString, int) )); sbApps->setEnabled(false); } void ONMainWindow::slotReadApplications(bool result, QString output, int) { if ( result==false ) { QString message=tr ( "Connection failed.\n:\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); return; } sbApps->setEnabled(true); applications.clear(); QString locallong=QLocale::system().name(); QString localshort=QLocale::system().name().split("_")[0]; bool startAppFound=false; foreach(QString appstr, output.split("",QString::SkipEmptyParts)) { bool localcomment=false; bool localname=false; Application app; app.category=Application::OTHER; QStringList lines=appstr.split("\n", QString::SkipEmptyParts); for (int i=0; i")!=-1) { bool isSvg=false; line=lines[++i]; QByteArray pic; while (line.indexOf("")==-1) { pic+=QByteArray::fromBase64(line.toAscii()); line=lines[++i]; if (QString(QByteArray::fromBase64(line.toAscii())).indexOf("",Qt::CaseInsensitive)!=-1) { isSvg=true; } } if (!isSvg) app.icon.loadFromData(pic); else { QPixmap pix(32,32); QSvgRenderer svgRenderer( pic ); QPainter pixPainter(&pix); svgRenderer.render(&pixPainter); app.icon=pix; } } } if (app.name.length()>0) { if (app.comment.length()<=0) app.comment=app.name; applications.append(app); } } qSort(applications.begin(), applications.end(),Application::lessThen); plugAppsInTray(); if (runStartApp && autostartApp.length()>1) { if (!startAppFound) { x2goDebug<<"Autostart application "<setVisible(true); slotAppDialog(); } } } bool ONMainWindow::parseParameter ( QString param ) { if ( param=="--help" ) { showHelp(); return false; } if ( param=="--help-pack" ) { showHelpPack(); return false; } if ( param=="--version" || param=="-v") { showVersion(); return false; } if ( param=="--changelog" ) { showChangelog(); return false; } if ( param=="--git-info" ) { showGit(); return false; } if (param == "--debug") { ONMainWindow::debugging = true; return true; } if ( param == "--portable" ) { ONMainWindow::portable=true; return true; } if ( param == "--clean-all-files" ) { cleanAllFiles=true; return true; } if (param == "--connectivity-test") { connTest=true; return true; } if ( param=="--no-menu" ) { drawMenu=false; return true; } if ( param=="--maximize" ) { 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; return true; } if ( param=="--keep-trayicon" ) { keepTrayIcon=true; return true; } if ( param=="--hide-foldersharing" ) { hideFolderSharing=true; return true; } if ( param=="--pgp-card" ) { usePGPCard=true; return true; } if ( param=="--ldap-printing" ) { LDAPPrintSupport=true; return true; } if ( param=="--add-to-known-hosts" ) { acceptRsa=true; return true; } if ( param=="--no-session-edit" ) { noSessionEdit=true; return true; } if ( param=="--change-broker-pass") { changeBrokerPass=true; return true; } if ( param == "--autologin") { cmdAutologin=true; return true; } if ( param == "--broker-autologin") { config.brokerAutologin=true; return true; } if ( param == "--broker-krblogin") { config.brokerKrbLogin=true; return true; } if ( param == "--broker-autologoff") { config.brokerAutologoff=true; return true; } if ( param == "--broker-noauth") { config.brokerNoAuth=true; return true; } if ( param=="--broker-noauth-with-session-username" ) { brokerNoauthWithSessionUsername=true; return true; } //force to show trayicon if (param == "--tray-icon") { forceToShowTrayicon = true; return true; } if ( param=="--close-disconnect" ) { closeDisconnect=true; return true; } QString setting,value; QStringList vals=param.split ( "=" ); if ( vals.size() <2 ) { printError ( param ); return false; } setting=vals[0]; vals.removeFirst(); value=vals.join ( "=" ); if ( setting=="--link" ) { return linkParameter ( value ); } if ( setting=="--clipboard" ) { return clipboardParameter ( value ); } if ( setting=="--sound" ) { return soundParameter ( value ); } if ( setting=="--geometry" ) { return geometry_par ( value ); } if ( setting=="--pack" ) { return packParameter ( value ); } if ( setting=="--kbd-layout" ) { defaultLayout=value.split(",",QString::SkipEmptyParts); if (defaultLayout.size()==0) defaultLayout<0) { if(authPart.indexOf("@")!=-1) { key.user=authPart.split("@")[0]; key.server=authPart.split("@")[1]; } else key.server=authPart; } cmdSshKeys<0 && defaultHeight >0 && o1 && o2 ) ) { printError( tr ( "Invalid value for parameter \"--geometry\"." ). toLocal8Bit().data() ); return false; } } return true; } bool ONMainWindow::setKbd_par ( QString val ) { if ( val=="1" ) defaultSetKbd=true; else if ( val=="0" ) defaultSetKbd=false; else { printError( tr ( "Invalid value for parameter \"--set-kbd\"." ). toLocal8Bit().data() ); return false; } return true; } bool ONMainWindow::ldapParameter ( QString val ) { QString ldapstring=val; useLdap=true; ldapstring.replace ( "\"","" ); QStringList lst=ldapstring.split ( ':',QString::SkipEmptyParts ); if ( lst.size() !=3 ) { printError( tr ( "Invalid value for parameter \"--ldap\"." ). toLocal8Bit().data() ); return false; } ldapOnly=true; ldapServer=lst[0]; ldapPort=lst[1].toInt(); ldapDn=lst[2]; return true; } bool ONMainWindow::ldap1Parameter ( QString val ) { QString ldapstring=val; ldapstring.replace ( "\"","" ); QStringList lst=ldapstring.split ( ':',QString::SkipEmptyParts ); if ( lst.size() !=2 ) { printError( tr ( "Invalid value for parameter \"--ldap1\"." ). toLocal8Bit().data() ); return false; } ldapServer1=lst[0]; ldapPort1=lst[1].toInt(); return true; } bool ONMainWindow::ldap2Parameter ( QString val ) { QString ldapstring=val; ldapstring.replace ( "\"","" ); QStringList lst=ldapstring.split ( ':',QString::SkipEmptyParts ); if ( lst.size() !=2 ) { printError( tr ( "Invalid value for parameter \"--ldap2\"." ). toLocal8Bit().data() ); return false; } ldapServer2=lst[0]; ldapPort2=lst[1].toInt(); return true; } bool ONMainWindow::packParameter ( QString val ) { QFile file ( ":/txt/packs" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return true; QTextStream in ( &file ); while ( !in.atEnd() ) { QString pc=in.readLine(); if ( pc.indexOf ( "-%" ) !=-1 ) { pc=pc.left ( pc.indexOf ( "-%" ) ); QStringList pctails=val.split ( "-" ); QString pcq=pctails[pctails.size()-1]; pctails.removeLast(); if ( pctails.join ( "-" ) ==pc ) { bool ok; int v=pcq.toInt ( &ok ); if ( ok && v>=0 && v<=9 ) { defaultPack=pc; defaultQuality=v; return true; } else break; } } else { if ( pc==val ) { defaultPack=val; return true; } } } file.close(); printError ( tr("Invalid value for parameter \"--pack\"." )); return false; } void ONMainWindow::printError ( QString param ) { if( !startHidden ) { qCritical ( "%s", ( tr ( "Wrong parameter: " ) +param ). toLocal8Bit().data() ); if (!startHidden && !haveTerminal) { QMessageBox::critical(0,tr("Error"), tr ( "Wrong parameter: " ) +param); } } else { x2goErrorf(8)<Connection failed.\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); pass->setFocus(); pass->selectAll(); return; } passForm->hide(); setUsersEnabled ( false ); uname->setEnabled ( false ); u->setEnabled ( false ); QStringList servers=output.trimmed().split ( '\n' ); for ( int i=0; i1 ) { for ( int j=0; jConnection failed.\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); QString sv=output.split ( ":" ) [0]; for ( int j=0; jgetLastSession()->id(),this ); if ( dlg.exec() ==QDialog::Accepted ) path=dlg.getExport(); } else path= QFileDialog::getExistingDirectory ( this,QString::null, homeDir ); if (hide_after) hide(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { path.replace ( "(U3)",u3Device ); } path=cygwinPath ( wapiShortFileName ( path ) ); #endif if ( path!=QString::null ) exportDirs ( path ); } void ONMainWindow::exportDirs ( QString exports,bool removable ) { if ( shadowSession ) return; if ( embedMode ) { if ( config.confFS && ! ( config.useFs ) ) { return; } } fsExportKeyReady=false; directory dr; dr.dirList=exports; dr.key=createRSAKey(); // Key creation failure or the like. if (dr.key.isEmpty ()) { return; } QString passwd; x2goDebug<<"Key created on: "<getLastSession()->id(); fsInTun=st.setting()->value ( sid+"/fstunnel", ( QVariant ) true ).toBool(); } else fsInTun=true; } if ( fsInTun ) { if ( fsTunnel==0l ) if ( startSshFsTunnel() ) return; } QString uname=getCurrentUname(); QString dst=dr.key; QString dhdir=homeDir+"/.x2go"; #ifdef Q_OS_WIN dhdir=wapiShortFileName ( dhdir ); #endif dst.replace ( dhdir +"/ssh/gen/","" ); dst="~"+uname +"/.x2go/ssh/"+dst; dr.dstKey=dst; dr.isRemovable=removable; exportDir.append ( dr ); QString keyFile=dr.key; sshConnection->copyFile ( keyFile,dst, this, SLOT ( slotCopyKey ( bool, QString,int ) )); } void ONMainWindow::exportDefaultDirs() { QStringList dirs; bool clientPrinting= ( useLdap && LDAPPrintSupport ); if ( !useLdap ) { if ( !embedMode ) { X2goSettings* st; if (!brokerMode) st= new X2goSettings( "sessions" ); else st= new X2goSettings(config.iniFile,QSettings::IniFormat); clientPrinting= st->setting()->value ( sessionExplorer->getLastSession()->id() + "/print", true ).toBool(); QString exd=st->setting()->value ( sessionExplorer->getLastSession()->id() +"/export", ( QVariant ) QString::null ).toString(); QStringList lst=exd.split ( ";", QString::SkipEmptyParts ); for ( int i=0; i0 ) { tails[0].replace ( "(U3)",u3Device ); } tails[0]=cygwinPath ( wapiShortFileName ( tails[0] ) ); #endif dirs+=tails[0]; } } delete st; } else { clientPrinting=true; if ( config.confFS ) { clientPrinting=config.useFs; } } } if ( clientPrinting ) { QString path= homeDir + "/.x2go/S-"+ resumingSession.sessionId +"/spool"; QDir spooldir; if ( !spooldir.exists ( path ) ) { if ( !spooldir.mkpath ( path ) ) { QString message= tr ( "Unable to create directory:" ) + path; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } } spoolDir=path; #ifdef Q_OS_WIN path=cygwinPath ( wapiShortFileName ( path ) ); #endif QFile::setPermissions ( path,QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ); path+="__PRINT_SPOOL_"; dirs+=path; printSupport=true; if ( spoolTimer ) delete spoolTimer; spoolTimer=new QTimer ( this ); connect ( spoolTimer,SIGNAL ( timeout() ),this, SLOT ( slotCheckPrintSpool() ) ); spoolTimer->start ( 2000 ); } if ( dirs.size() <=0 ) return; exportDirs ( dirs.join ( ":" ) ); } QString ONMainWindow::createRSAKey() { QDir dr; QString keyPath=homeDir +"/.x2go/ssh/gen"; dr.mkpath ( keyPath ); #ifdef Q_OS_WIN keyPath=wapiShortFileName ( keyPath ); #endif QTemporaryFile fl ( keyPath+"/key" ); fl.open(); QString keyName=fl.fileName(); fl.setAutoRemove ( false ); fl.close(); fl.remove(); QStringList args; args<<"-t"<<"rsa"<<"-b"<<"1024"<<"-N"<<""<<"-f"<getSourceFile(pid); x2goDebug<<"Exported key: "<Connection failed.\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } if (!startHidden) { QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } else { QString printout = tr( "Connection failed: ") + output.toAscii(); if ( output.indexOf ( "publickey,password" ) !=-1 ) x2goErrorf(11)<< tr( "Connection failed: ") + output + tr(" - Wrong password."); else x2goErrorf(12)<< tr( "Connection failed: ") + output; trayQuit(); } QFile::remove ( fsExportKey+".pub" ); return; } fsExportKeyReady=true; //start reverse mounting if RSA Key and FS tunnel are ready //start only once from slotFsTunnelOk() or slotCopyKey(). if ( !fsInTun || fsTunReady ) startX2goMount(); } directory* ONMainWindow::getExpDir ( QString key ) { for ( int i=0; iConnection failed.\n" ) +output; x2goDebug<<"startX2goMount failed to mount client-side folder, reason: "<Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } QFile file ( key+".pub" ); x2goDebug<<"Deactivating public key from "<stop(); return; } QString loginDir; QString logoutDir; QDir dir ( readLoginsFrom ); QStringList list = dir.entryList ( QDir::Files ); for ( int i=0; iisActive() ) //running session { if ( logoutDir != QString::null ) { x2goDebug<<"External logout received"; externalLogout ( logoutDir ); } } else { if ( loginDir != QString::null ) { x2goDebug<<"External login."; externalLogin ( loginDir ); } } } void ONMainWindow::slotExportTimer() { if ( QFile::permissions ( readExportsFrom ) != ( QFile::ReadUser| QFile::WriteUser| QFile::ExeUser| QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ) ) { x2goDebug<<"Wrong permissions on "<< readExportsFrom <<":"<stop(); return; } QDir dir ( readExportsFrom ); QStringList list = dir.entryList ( QDir::Files ); QString expList; QString unexpList; QString loginDir; QString logoutDir; for ( int i=0; i0 ) { exportDirs ( expList,true ); } args.clear(); args=unexpList.split ( ":",QString::SkipEmptyParts ); QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString sessionId=resumingSession.sessionId; for ( int i=0; iexecuteCommand ( "export HOSTNAME && x2goumount_session "+ sessionId+" "+args[i] ); } } void ONMainWindow::slotAboutQt() { QMessageBox::aboutQt ( this ); } void ONMainWindow::slotSupport() { QFile file(supportMenuFile); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream in(&file); QString sup; while (!in.atEnd()) { sup+=in.readLine(); } QMessageBox::information (this,tr ( "Support" ),sup); } void ONMainWindow::slotAbout() { QString aboutStr=tr ("
(C) 2005-2016 by obviously nice: " "Oleksandr Shneyder, Heinz-Markus Graesing
" ); if ( embedMode ) aboutStr+=tr ( "
X2Go Plugin mode was sponsored by " "" "FOSS-Group GmbH (Freiburg)
" ); aboutStr+= tr ( "
This is a client to access the X2Go network-based " "computing environment. This client will be able " "to connect to X2Go Server(s) and start, stop, " "resume and terminate (running) desktop sessions. " "X2Go Client stores different server connections " "and may automatically request authentication " "data from LDAP directories. Furthermore, it can be " "used as a fullscreen login screen (replacement for " "login managers like XDM). Please visit the project home page at " "x2go.org for further information." ); QMessageBox::about ( this,tr ( "About X2Go Client" ), tr ( "X2Go Client v. " ) +VERSION+ " (Qt - "+qVersion() +")"+ aboutStr ); } void ONMainWindow::slotRereadUsers() { if ( !useLdap ) return; #ifdef USELDAP if ( ld ) { delete ld; ld=0; } if ( ! initLdapSession ( false ) ) { return; } list attr; attr.push_back ( "uidNumber" ); attr.push_back ( "uid" ); list result; try { ld->binSearch ( ldapDn.toStdString(),attr, "objectClass=posixAccount",result ); } catch ( LDAPExeption e ) { QString message="Exception in: "; message=message+e.err_type.c_str(); message=message+" : "+e.err_str.c_str(); QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok,QMessageBox::NoButton ); QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Please check LDAP Settings." ), QMessageBox::Ok,QMessageBox::NoButton ); slotConfig(); return; } list::iterator it=result.begin(); list::iterator end=result.end(); for ( ; it!=end; ++it ) { user u; QString uin=LDAPSession::getBinAttrValues ( *it,"uidNumber" ).front().getData(); u.uin=uin.toUInt(); if ( u.uinlastUid ) { continue; } u.uid=LDAPSession::getBinAttrValues ( *it,"uid" ).front().getData(); if ( !findInList ( u.uid ) ) { reloadUsers(); return; } } #endif } void ONMainWindow::reloadUsers() { int i; for ( i=0; iclose(); userList.clear(); sessionExplorer->cleanSessions(); loadSettings(); if ( useLdap ) { act_new->setEnabled ( false ); act_edit->setEnabled ( false ); u->setText ( tr ( "Login:" ) ); QTimer::singleShot ( 1, this, SLOT ( readUsers() ) ); } else { act_new->setEnabled ( true ); act_edit->setEnabled ( true ); u->setText ( tr ( "Session:" ) ); QTimer::singleShot ( 1, this, SLOT ( slotReadSessions() ) ); } slotResize ( fr->size() ); } bool ONMainWindow::findInList ( const QString& uid ) { for ( int i=0; iverticalScrollBar(); bar->setEnabled ( enable ); int upos=bar->value(); QDesktopWidget dw; int height=dw.screenGeometry ( fr ).height(); QList::iterator it; QList::iterator endit=names.end(); if ( !enable ) { for ( it=names.begin(); it!=endit; it++ ) { QPoint pos= ( *it )->pos(); if ( ( pos.y() >upos-height ) && ( pos.y() setEnabled ( false ); if ( pos.y() >upos+height ) break; } } else { for ( it=names.begin(); it!=endit; it++ ) { if ( ! ( *it )->isEnabled() ) ( *it )->setEnabled ( true ); } } } else { users->setEnabled ( enable ); sessionExplorer->setEnable(enable); } } void ONMainWindow::externalLogin ( const QString& loginDir ) { QFile file ( loginDir+"/username" ); QString user; if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { user=in.readLine(); break; } file.close(); if ( passForm->isVisible() ) slotClosePass(); uname->setText ( user ); slotUnameEntered(); currentKey=loginDir+"/dsa.key"; extStarted=true; slotPassEnter(); } void ONMainWindow::externalLogout ( const QString& ) { if ( extStarted ) { extStarted=false; currentKey=QString::null; if ( nxproxy ) if ( nxproxy->state() ==QProcess::Running ) nxproxy->terminate(); proxyRunning=false; } } void ONMainWindow::slotStartPGPAuth() { scDaemon=new QProcess ( this ); QStringList arguments; arguments<<"--multi-server"; QProcessEnvironment scdaemon_env = QProcessEnvironment::systemEnvironment (); QString path_env_separator = ":"; /* Let's hope that's really the only override... */ #ifdef Q_OS_WIN path_env_separator = ";"; #endif QString new_path_value = scdaemon_env.value ("PATH", ""); if (!new_path_value.isEmpty ()) { new_path_value += path_env_separator; } new_path_value += "/usr/lib/gnupg2/"; scdaemon_env.insert ("PATH", new_path_value); x2goDebug << "New PATH value for scdaemon: " << new_path_value; scDaemon->setProcessEnvironment (scdaemon_env); connect ( scDaemon,SIGNAL ( readyReadStandardError() ),this, SLOT ( slotScDaemonStdErr() ) ); connect ( scDaemon,SIGNAL ( readyReadStandardOutput() ),this, SLOT ( slotScDaemonStdOut() ) ); connect ( scDaemon,SIGNAL ( finished ( int,QProcess::ExitStatus ) ), this, SLOT ( slotScDaemonFinished ( int, QProcess::ExitStatus ) ) ); connect (scDaemon, SIGNAL (error (QProcess::ProcessError)), this, SLOT (slotScDaemonError (QProcess::ProcessError))); scDaemon->start ( "scdaemon",arguments ); QTimer::singleShot ( 3000, this, SLOT ( slotCheckScDaemon() ) ); isScDaemonOk=false; } void ONMainWindow::slotCheckScDaemon() { if ( !isScDaemonOk ) { scDaemon->kill(); } } void ONMainWindow::slotScDaemonStdErr() { QString stdOut ( scDaemon->readAllStandardError() ); stdOut=stdOut.simplified(); x2goDebug<<"SCDAEMON error: "<kill(); } } } void ONMainWindow::slotScDaemonStdOut() { QString stdOut ( scDaemon->readAllStandardOutput() ); stdOut=stdOut.simplified(); x2goDebug<<"SCDAEMON out: "<start ( "gpg",arguments ); } else slotStartPGPAuth(); } void ONMainWindow::slotScDaemonError (QProcess::ProcessError error) { QString main_text ("scdaemon "); QString informative_text; switch (error) { case QProcess::FailedToStart: { main_text += tr ("failed to start."); informative_text = tr ("Check whether the package providing \"scdaemon\" is installed.\n" "The current search path is: "); QProcessEnvironment tmp_env = QProcessEnvironment::systemEnvironment (); if (!(scDaemon->processEnvironment ().isEmpty ())) { tmp_env = scDaemon->processEnvironment (); } QString path_val = tmp_env.value ("PATH", "unknown"); /* Add a newline every 100 characters. */ for (std::size_t i = 100; i < static_cast (path_val.size ()); i += 100) { path_val.insert (i, "\n"); } informative_text += path_val; break; } case QProcess::Crashed: { /* This means the process exited with a non-zero exit code. * It didn't really crash at all. Everything is fine. * Just restart it. */ return; } case QProcess::Timedout: { main_text += tr ("didn't start yet."); informative_text = tr ("This error shouldn't come up."); break; } case QProcess::WriteError: { main_text += tr ("didn't accept a write operation."); informative_text = tr ("It is probably not running correctly or crashed in-between."); break; } case QProcess::ReadError: { main_text = tr ("Unable to read from scdaemon."); informative_text = tr ("It is probably not running correctly or crashed in-between."); break; } case QProcess::UnknownError: { main_text += tr ("encountered an unknown error during start up or execution."); break; } default: { main_text += tr ("experienced an undefined error."); break; } } if (!informative_text.isEmpty ()) { informative_text += "\n\n"; } informative_text += tr ("X2Go Client will now terminate.\n\n" "File a bug report as outlined on the bugs wiki page."); show_RichText_ErrorMsgBox (main_text, informative_text); trayQuit (); } void ONMainWindow::slotGpgError() { QString stdOut ( gpg->readAllStandardError() ); stdOut=stdOut.simplified(); x2goDebug<<"GPG error: "<kill(); } } void ONMainWindow::slotGpgFinished ( int exitCode, QProcess::ExitStatus exitStatus ) { x2goDebug<<"GPG finished, exit code: "<readAllStandardOutput() ); stdOut.chop ( 1 ); x2goDebug<<"GPG out: "<readAllStandardOutput() ); stdOut=stdOut.simplified(); stdOut.replace ( " ","" ); QStringList envLst=stdOut.split ( ";" ); QString gpg_agent_info=envLst[0].split ( "=" ) [1]; QString ssh_auth_sock=envLst[2].split ( "=" ) [1]; agentPid=envLst[4].split ( "=" ) [1]; x2goDebug<<"GPG Agent info: "<start ( 1000 ); cardReady=true; sshEnv.clear(); sshEnv<isVisible() && !brokerMode) { if ( passForm->isEnabled() ) { if ( login->isEnabled() ) { login->setText ( cardLogin ); slotSessEnter(); return; } } } QProcess sshadd ( this ); //using it to start scdaemon sshadd.setEnvironment ( sshEnv ); QStringList arguments; arguments<<"-l"; sshadd.start ( "ssh-add",arguments ); sshadd.waitForFinished ( -1 ); QString sshout ( sshadd.readAllStandardOutput() ); sshout=sshout.simplified(); x2goDebug<<"ssh-add out: "<getUserSessions(); } } else { if ( selectSessionDlg->isVisible() || sessionStatusDlg->isVisible() ) { QProcess sshadd ( this ); //using it to start scdaemon sshadd.setEnvironment ( sshEnv ); QStringList arguments; arguments<<"-l"; sshadd.start ( "ssh-add",arguments ); sshadd.waitForFinished ( -1 ); QString sshout ( sshadd.readAllStandardOutput() ); sshout=sshout.simplified(); x2goDebug<<"ssh-add out: "<isVisible() ) slotClosePass(); uname->setText ( cardLogin ); slotUnameEntered(); slotPassEnter(); } } void ONMainWindow::slotCheckAgentProcess() { if ( checkAgentProcess() ) return; agentCheckTimer->stop(); cardReady=false; if ( cardStarted ) { cardStarted=false; if ( nxproxy ) if ( nxproxy->state() ==QProcess::Running ) { x2goDebug<<"Suspending session ..."; slotSuspendSessFromSt(); x2goDebug<<"Suspended session."; // nxproxy->terminate(); } } x2goDebug<<"GPG Agent finished."; slotStartPGPAuth(); } bool ONMainWindow::checkAgentProcess() { QFile file ( "/proc/"+agentPid+"/cmdline" ); if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { QString line ( file.readLine() ); file.close(); if ( line.indexOf ( "gpg-agent" ) !=-1 ) { return true; } } return false; } #if defined ( Q_OS_DARWIN ) QString ONMainWindow::getXDisplay() { QLocalSocket unixSocket (this); QString xsocket (getenv ("DISPLAY")); if (xsocket.isEmpty ()) { // Mac OS X 10.4 compatibility mode. // There, it is possible no $DISPLAY variable is set. // Start X11 manually. First, find a free display number. x2goDebug<< "Entering 10.4 compat mode, checking for free X11 display."; int xFreeDisp = 0; QDir xtmpdir ("/tmp/.X11-unix"); if (xtmpdir.exists ()) { xtmpdir.setFilter (QDir::Files | QDir::System | QDir::NoSymLinks | QDir::NoDotAndDotDot); xtmpdir.setSorting (QDir::Name); QFileInfoList xtmpdirList = xtmpdir.entryInfoList (); bool foundFreeDisp = FALSE; xFreeDisp = -1; for (int i = 0; (i < 2000) && (!foundFreeDisp); ++i) { QFileInfo xtmpdirFile (xtmpdir.absolutePath () + "/X" + QString::number (i)); if ((!xtmpdirFile.exists ()) && (!xtmpdirFile.isSymLink ())) { xFreeDisp = i; foundFreeDisp = TRUE; } } } // Control flow will go to error condition if no free display port has been found. if (xFreeDisp != -1) { xsocket = "/tmp/.X11-unix/X" + QString::number (xFreeDisp); x2goDebug<< "Successfully detected free socket " << xsocket << "."; } if (!(xsocket.isEmpty ())) { QString xname = ConfigDialog::getXDarwinDirectory () + "/Contents/MacOS/X11"; QString xopt = ":" + QString::number (xFreeDisp); QProcessEnvironment env = QProcessEnvironment::systemEnvironment (); QProcess* startx = new QProcess (this); x2goDebug<< "Starting the X server on free display port."; env.insert (0, "PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin"); startx->setProcessEnvironment (env); startx->start (xname + QString (" ") + xopt, QIODevice::NotOpen); if (startx->waitForStarted (3000)) { x2goDebug<< "Sleeping for three seconds"; int sleeptime = 3; while ((sleeptime = sleep (sleeptime))) {}; x2goDebug<< "Leaving OS X 10.4 compat mode."; } } } // OS X >= 10.5 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, even on 10.4. Test, if connecting works. // Note: common sense may tell you to change this if into an else. Don't. // We do not want to skip this part, if coming from the compat section above. if (!(xsocket.isEmpty ())) { if (xsocket[0] == ':') { // Be backwards compatible with 10.4. // Delete the ":" character. xsocket.remove (0, 1); // xsocket may now contain the display value (one integer), // or something like "0.0" - we're only interested in the // display value, so keep the first char only. if (xsocket.indexOf (".") != -1) { xsocket = xsocket.left (xsocket.indexOf (".")); } // Prepend the well-known socket path. xsocket.prepend ("/tmp/.X11-unix/X"); x2goDebug<< "xsocket in compat mode: " << xsocket; } unixSocket.connectToServer (xsocket); if (unixSocket.waitForConnected (10000)) { unixSocket.disconnectFromServer (); // Mac OS X 10.4 compat: nxproxy expects // a DISPLAY variable like ":0", passing // an UNIX socket will just make it error out. // Instead of altering the nxproxy code, which does // already try to connect to "/tmp/.X11-unix/Xi" with // i = display number, pass ":i" as DISPLAY. if (xsocket.left (16).compare ("/tmp/.x11-unix/x", Qt::CaseInsensitive) == 0) { bool ok = FALSE; int tmp = -1; xsocket = xsocket.mid (16); tmp = xsocket.toInt (&ok); if (ok) { x2goDebug<<"Returning " << QString (":") + xsocket; return (QString (":") + xsocket); } } else { return (xsocket); } } } // And if not, error out. show_XQuartz_start_error (); slotConfig(); return QString::null; } #endif #ifdef Q_OS_WIN QString ONMainWindow::getXDisplay() { if ( !isServerRunning ( 6000+xDisplay ) ) { QMessageBox::critical ( this,QString::null, tr ( "Can't start X.Org Server.\nPlease check your installation." ) ); close(); } return QString::number ( xDisplay ); } QString ONMainWindow::cygwinPath ( const QString& winPath ) { QString cPath="/cygdrive/"+winPath; cPath.replace ( "\\","/" ); cPath.replace ( ":","" ); return cPath; } #endif bool ONMainWindow::isColorDepthOk ( int disp, int sess ) { if ( sess==0 ) return true; if ( disp==sess ) return true; if ( ( disp == 24 || disp == 32 ) && ( sess == 24 || sess == 32 ) ) return true; return false; } #ifndef Q_OS_LINUX void ONMainWindow::setWidgetStyle ( QWidget* widget ) { widget->setStyle ( widgetExtraStyle ); } #else void ONMainWindow::setWidgetStyle ( QWidget* ) { } #endif QString ONMainWindow::internAppName ( const QString& transAppName, bool* found ) { if ( found ) *found=false; int ind=_transApplicationsNames.indexOf ( transAppName ); if ( ind!=-1 ) { if ( found ) *found=true; return _internApplicationsNames[ind]; } return transAppName; } QString ONMainWindow::transAppName ( const QString& internAppName, bool* found ) { if ( found ) *found=false; int ind=_internApplicationsNames.indexOf ( internAppName ); if ( ind!=-1 ) { if ( found ) *found=true; return _transApplicationsNames[ind]; } return internAppName; } void ONMainWindow::addToAppNames ( QString intName, QString transName ) { _internApplicationsNames.append ( intName ); _transApplicationsNames.append ( transName ); } void ONMainWindow::slotExecXmodmap() { #ifdef Q_WS_HILDON QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString cmd; cmd="(xmodmap -pke ;" "echo keycode 73= ;" // "echo clear shift ;" // "echo clear lock ;" // "echo clear control ;" // "echo clear mod1 ;" // "echo clear mod2 ;" // "echo clear mod3 ;" // "echo clear mod4 ;" // "echo clear mod5 ;" // "echo add shift = Shift_L ;" "echo add control = Control_R " // "echo add mod5 = ISO_Level3_Shift" ")| DISPLAY=:" +resumingSession.display+" xmodmap - "; x2goDebug<<"Executing xmodmap with cmd: "<environment(); env+=sshEnv; xmodProc->setEnvironment ( env ); } xmodProc->setFwX ( true ); xmodProc->startNormal(); #endif } void ONMainWindow::check_cmd_status() { QString passwd; QString user=getCurrentUname(); QString host=resumingSession.server; passwd=getCurrentPass(); sshConnection->executeCommand ( "x2gocmdexitmessage "+ resumingSession.sessionId , this, SLOT(slotCmdMessage(bool, QString, int))); } void ONMainWindow::slotCmdMessage ( bool result,QString output, int) { x2goDebug<<"Command message: " + output; if ( result==false ) { cardReady=false; cardStarted=false; QString message=tr ( "Connection failed.\n" ) +output; if ( message.indexOf ( "publickey,password" ) !=-1 ) { message=tr ( "Wrong password!

" ) + message; } QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); setEnabled ( true ); passForm->setEnabled ( true ); pass->setFocus(); pass->selectAll(); } if ( output.indexOf ( "X2GORUNCOMMAND ERR NOEXEC:" ) !=-1 ) { QString cmd=output; cmd.replace ( "X2GORUNCOMMAND ERR NOEXEC:","" ); if(startHidden) { x2goErrorf(14)<< tr( "Unable to execute: ") + cmd; } else { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Unable to execute: " ) + cmd,QMessageBox::Ok, QMessageBox::NoButton ); } } if(sshConnection) delete sshConnection; sshConnection=0; if (startHidden) { x2goInfof(11) << tr("Closing X2Go Client because it was started in hidden mode."); close(); } else if (closeDisconnect) { x2goInfof(12) << tr("Closing X2Go Client because the --close-disconnect parameter was passed."); close(); } } int ONMainWindow::startSshFsTunnel() { fsTunReady=false; x2goDebug<<"Starting Folder Sharing tunnel for: "<startTunnel ( "localhost",resumingSession.fsPort.toUInt(),"127.0.0.1", clientSshPort.toInt(), true, this, SLOT ( slotFsTunnelOk(int)), SLOT ( slotFsTunnelFailed ( bool, QString,int ) ) ); return 0; } void ONMainWindow::slotFsTunnelFailed ( bool result, QString output, int) { if ( result==false ) { if ( !managedMode ) { QString message=tr ( "Unable to create SSH tunnel for Folder Sharing and Printing support:\n" ) +output; QMessageBox::critical ( 0l,tr ( "Error" ),message, QMessageBox::Ok, QMessageBox::NoButton ); } fsTunnel=0l; fsTunReady=false; } } void ONMainWindow::slotFsTunnelOk(int) { x2goDebug<<"FS tunnel through SSH seems to be up and running ..."<isRemovable; if ( !dir ) return; QTextStream out ( &file1 ); out<dirList; if ( !fsInTun && clientSshPort!="22" ) { dirs=dirs+"__SSH_PORT__"+clientSshPort; } if ( fsInTun ) { dirs=dirs+"__REVERSESSH_PORT__"+resumingSession.fsPort; } if ( !rem ) cmd="export HOSTNAME && x2gomountdirs dir "+sessionId+" "+cuser+ " "+dir->dstKey+" "+dirs; else cmd="export HOSTNAME && x2gomountdirs rem "+sessionId+" "+cuser+ " "+dir->dstKey+" "+dirs; #ifdef Q_OS_WIN cmd="chmod 600 "+dir->dstKey+"&&"+cmd; #endif X2goSettings st ( "sessions" ); if ( !useLdap ) { QString sid; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else sid="embedded"; if ( st.setting()->value ( sid+"/useiconv", ( QVariant ) false ).toBool() ) { QString toCode=st.setting()->value ( sid+"/iconvto", ( QVariant ) "UTF-8" ).toString(); #ifdef Q_OS_WIN QString fromCode=st.setting()->value ( sid+"/iconvfrom", ( QVariant ) tr ( "WINDOWS-1252" ) ).toString(); #endif #ifdef Q_OS_DARWIN QString fromCode=st.setting()->value ( sid+"/iconvfrom", ( QVariant ) "UTF-8" ).toString(); #endif #ifdef Q_OS_LINUX QString fromCode=st.setting()->value ( sid+"/iconvfrom", ( QVariant ) tr ( "ISO8859-1" ) ).toString(); #endif cmd="export X2GO_ICONV=modules=iconv,from_code="+ fromCode+ ",to_code="+toCode+"&&"+cmd; } } x2goDebug<<"Calling startX2goMount command."<pid=sshConnection->executeCommand(cmd,this,SLOT ( slotRetExportDir ( bool, QString,int) )); } void ONMainWindow::slotCheckPrintSpool() { QDir dir ( spoolDir ); QStringList list = dir.entryList ( QDir::Files ); for ( int i=0; i #include #include #endif bool ONMainWindow::isServerRunning ( int port ) { #ifdef Q_OS_WIN SOCKET ConnectSocket = INVALID_SOCKET; struct sockaddr_in saServer; hostent* localHost; char* localIP; int iResult; WSADATA wsaData; struct in_addr addr = { 0 }; iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); if (iResult != 0) { x2goDebug<<"WARNING: WSAStartup failed: "<< iResult; return false; } addr.s_addr = inet_addr("127.0.0.1"); if (addr.s_addr == INADDR_NONE) { x2goDebug<< "WARNING: The IPv4 address entered was invalid.\n"; return false; } localHost = gethostbyaddr((char*)&addr,4, AF_INET); if (!localHost) { x2goDebug<<"WARNING: gethostbyaddr failed: "<h_addr_list); saServer.sin_family = AF_INET; saServer.sin_addr.s_addr = inet_addr(localIP); saServer.sin_port = htons(port); ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { x2goDebug<<"WARNING: Socket failed with error: "<< WSAGetLastError(); return false; } iResult = ::connect( ConnectSocket, (SOCKADDR*) &saServer, sizeof(saServer)); if (iResult == SOCKET_ERROR) { closesocket(ConnectSocket); x2goDebug<<"Port is free: "<stop(); slotSetWinServersReady(); xorgLogMutex.unlock(); return; } } xorgLogMutex.unlock(); } void ONMainWindow::startXOrg () { while ( isServerRunning ( 6000+xDisplay ) ) ++xDisplay; QString dispString; QTextStream ( &dispString ) <<":"<setEnvironment ( env ); xorg-> setWorkingDirectory ( workingDir); } x2goDebug<<"Running "<start ( exec, args ); if ( !xorg->waitForStarted ( 3000 ) ) { QMessageBox::critical ( 0,QString::null, tr ( "Can't start X.Org Server.\n" "Please check your installation." ) ); close(); } // #ifdef CFGCLIENT if ( !useInternalX || internalX!= XMING) { //check connection in slot and launch setWinServerReady waitingForX=0; QTimer::singleShot(1000, this, SLOT(slotCheckXOrgConnection())); } // #endif } void ONMainWindow::slotCheckXOrgConnection() { ++waitingForX; if (isServerRunning(6000+xDisplay)) { x2goDebug<<"X.Org Server started."; slotSetWinServersReady(); } else { if (waitingForX > 10) { QMessageBox::critical ( 0,QString::null, tr ( "Can't start X.Org Server.\n" "Please check your installation." ) ); close(); } else { x2goDebug<<"Waiting for X.Org Server to start."; QTimer::singleShot(1000, this, SLOT(slotCheckXOrgConnection())); } } } WinServerStarter::WinServerStarter ( daemon server, ONMainWindow * par ) : QThread ( 0 ) { mode=server; parent=par; } void WinServerStarter::run() { switch ( mode ) { case SSH: parent->startSshd(); break; case X: parent->startXOrg(); break; } } void ONMainWindow::startWinServers() { x2goDebug<<"Starting helper servers for Windows ..."; QString etcDir=homeDir+"/.x2go/etc"; QDir dr ( homeDir ); pulseServer=0l; WinServerStarter* xStarter = new WinServerStarter ( WinServerStarter::X, this ); WinServerStarter* sshStarter = new WinServerStarter ( WinServerStarter::SSH, this ); if ( !embedMode || !config.confFS || ( config.confFS && config.useFs ) ) { dr.mkpath ( etcDir ); generateHostDsaKey(); generateEtcFiles(); sshStarter->start(); } if(embedMode) { if ( !config.confSnd || ( config.confSnd && config.useSnd ) ) { startPulsed(); } } // #ifdef CFGCLIENT //x2goDebug<<"Xorg settings: "<< startXorgOnStart <<" useXming: "<< useXming; if ( useInternalX && (internalX== XMING)) { // #endif xStarter->start(); xorgLogTimer=new QTimer ( this ); connect ( xorgLogTimer,SIGNAL ( timeout() ),this, SLOT ( slotCheckXOrgLog() ) ); xorgLogTimer->start ( 500 ); // #ifdef CFGCLIENT } else { if (startXorgOnStart) { startXOrg(); } } // #endif } bool ONMainWindow::haveCygwinEntry() { QSettings CygwSt ( "HKEY_CURRENT_USER\\Software" "\\Cygwin", QSettings::NativeFormat ); return ( CygwSt.childGroups().count() >0||CygwSt.childKeys().count() ); } void ONMainWindow::saveCygnusSettings() { if ( ONMainWindow::portable ) { if ( haveCygwinEntry() ) { x2goDebug<<"Cygnus Solutions entry exists."; cyEntry=true; } else { x2goDebug<<"Cygnus Solutions entry does not exist."; cyEntry=false; } } } void ONMainWindow::restoreCygnusSettings() { if ( ONMainWindow::portable ) { if ( !cyEntry ) { removeCygwinEntry(); } } } void ONMainWindow::removeCygwinEntry() { QSettings st ( "HKEY_CURRENT_USER\\Software" "\\Cygwin", QSettings::NativeFormat ); x2goDebug<<"Removing cygwin entry from registry."; st.remove ( "" ); st.sync(); } void ONMainWindow::startPulsed() { #ifdef Q_OS_WIN if(pulseStarted) { return; } pulseVersionTest=new QProcess ( 0 ); pulseVersionTest->start ( "pulse\\pulseaudio.exe --version" ); pulseVersionTest->waitForFinished(); QString pulseVersionLine= pulseVersionTest->readAllStandardOutput().replace("\n"," ").simplified(); x2goDebug <<"PulseAudio version line: "<= 3.0 detected. X2Go Client will tell PulseAudio to use .pulse-cookie."; } #endif while ( isServerRunning ( pulsePort ) ) ++pulsePort; esdPort=pulsePort+1; while ( isServerRunning ( esdPort ) ) ++esdPort; // The permanent dir for the pulse auth cookie pulseBaseDir=homeDir+"/.x2go/pulse"; QDir dr ( homeDir ); dr.mkpath ( pulseBaseDir ); // The tempoerary dir for config.pa (and pulse.log if it exists) pulseDir=pulseBaseDir; pulseDir=wapiShortFileName ( pulseDir ); x2goDebug<<"PulseAudio template: "<open(); pulseDir=fl->fileName(); fl->close(); delete fl; QFile::remove ( pulseDir ); dr.mkpath ( pulseDir ); x2goDebug<<"PulseAudio tmp file: "<setEnvironment ( pEnv ); pulseArgs.clear(); #ifdef Q_OS_WIN // FIXME: Explain why this dir needs to be created. pulseRuntimeDir=pulseBaseDir+"/.pulse/"+QHostInfo::localHostName ()+"-runtime"; QDir drr(pulseRuntimeDir); if (!drr.exists()) drr.mkpath(drr.path()); if (QFile::exists(pulseRuntimeDir+"/pid")) QFile::remove(pulseRuntimeDir+"/pid"); pulseDir=QDir::toNativeSeparators( pulseDir ); pulseArgs<<"--exit-idle-time=-1"<<"-n"<<"-F"<setWorkingDirectory ( QDir::toNativeSeparators ( wapiShortFileName ( appDir+"/pulse/" ) ) ); pulseServer->start ( "pulse\\pulseaudio.exe",pulseArgs ); x2goDebug<<"Starting pulse\\pulseaudio.exe "<start(2000); pulseStarted=true; } void ONMainWindow::slotCheckPulse() { //restart pulse server if(pulseServer->state()!=QProcess::Running) { pulseServer->start ( "pulse\\pulseaudio.exe",pulseArgs ); x2goDebug<<"Restarting pulse\\pulseaudio.exe "<value("useintx",true).toBool()); xorgExe=(st.setting()->value("xexec","C:\\program files\\vcxsrv\\vcxsrv.exe").toString()); xorgOptions=(st.setting()->value("options","-multiwindow -notrayicon -clipboard").toString()); startXorgOnStart=(st.setting()->value("onstart",true).toBool()); xorgWinOptions=(st.setting()->value("optionswin","-screen 0 %wx%h -notrayicon -clipboard").toString()); xorgFSOptions=(st.setting()->value("optionsfs","-fullscreen -notrayicon -clipboard").toString()); xorgSAppOptions=(st.setting()->value("optionssingle","-multiwindow -notrayicon -clipboard").toString()); xorgMDOptions=(st.setting()->value("optionswholedisplay","-nodecoration -notrayicon -clipboard -screen 0 @").toString()); if (QFile::exists(appDir+"\\vcxsrv")) internalX=VCXSRV; if (QFile::exists(appDir+"\\xming")) internalX=XMING; QString primClip; if(st.setting()->value("noprimaryclip",false).toBool() && internalX==VCXSRV) primClip=" -noprimary"; if (useInternalX) { startXorgOnStart=(internalX==XMING); xorgOptions="-multiwindow -notrayicon -clipboard"+primClip; if (internalX==VCXSRV) { // xorgWinOptions="-screen 0 %wx%h -notrayicon -clipboard"; xorgWinOptions="-multiwindow -notrayicon -clipboard"+primClip; xorgFSOptions="-fullscreen -notrayicon -clipboard"+primClip; xorgSAppOptions="-multiwindow -notrayicon -clipboard"+primClip; xorgMDOptions="-nodecoration -notrayicon -clipboard"+primClip+" -screen 0 @"; } } } // #endif void ONMainWindow::slotSetWinServersReady() { x2goDebug<<"All helper servers for Windows are started."; winServersReady=true; restoreCygnusSettings(); } #include #include #endif void ONMainWindow::generateEtcFiles() { QString etcDir=homeDir+"/.x2go/etc"; QString varDir = homeDir + "/.x2go/var"; QDir dr ( homeDir ); dr.mkpath ( etcDir ); dr.mkpath (varDir); QFile file ( etcDir +"/sshd_config" ); if ( !file.open ( QIODevice::WriteOnly | QIODevice::Text ) ) return; #ifdef Q_OS_WIN QString authKeyPath=cygwinPath ( homeDir+"/.x2go/.ssh/authorized_keys" ); authKeyPath.replace(wapiGetUserName(),"%u"); #endif QTextStream out ( &file ); out<<"StrictModes no\n"<< "UsePrivilegeSeparation no\n"<< "PidFile \"" + varDir + "/sshd.pid\"\n" << #ifdef Q_OS_WIN "Subsystem shell "<< wapiShortFileName ( appDir) +"/sh"+"\n"<< "Subsystem sftp "<< wapiShortFileName ( appDir) +"/sftp-server"+"\n"<< "AuthorizedKeysFile \""<start (binary, arguments); #endif // defined (Q_OS_WIN) // Allow sshd a grace time of 3 seconds to come up. QTime sleepTime = QTime::currentTime ().addSecs (3); while (QTime::currentTime () < sleepTime) { QCoreApplication::processEvents (QEventLoop::AllEvents, 100); } if (!isServerRunning (clientSshPort.toInt ())) { printSshDError_startupFailure (); x2goDebug << "Failed to start user mode OpenSSH server."; return (false); } else { x2goDebug << "User mode OpenSSH server started successfully."; return (true); } } void ONMainWindow::setProxyWinTitle() { if (embedMode) return; QString title; if (!useLdap) title=sessionExplorer->getLastSession()->name(); else title=getCurrentUname()+"@"+resumingSession.server; QPixmap pixmap; if (useLdap) pixmap=lastUser->foto(); else pixmap=*(sessionExplorer->getLastSession()->sessIcon()); #ifdef Q_OS_LINUX XStoreName(QX11Info::display(), proxyWinId, title.toLocal8Bit().data()); XWMHints* win_hints; QByteArray bytes; QBuffer buffer(&bytes); buffer.open(QIODevice::WriteOnly); pixmap.save(&buffer, "XPM"); int rez; if (image) XFreePixmap(QX11Info::display(),image); if (shape) XFreePixmap(QX11Info::display(),shape); rez=XpmCreatePixmapFromBuffer(QX11Info::display(), proxyWinId, bytes.data(), (Pixmap *) &image, (Pixmap *) &shape, NULL); if (!rez) { win_hints = XAllocWMHints(); if (win_hints) { win_hints->flags = IconPixmapHint|IconMaskHint; win_hints->icon_pixmap = image; win_hints->icon_mask = shape; XSetWMHints(QX11Info::display(), proxyWinId, win_hints); XFree(win_hints); } } #endif #ifdef Q_OS_WIN wapiSetWindowText((HWND)proxyWinId, title); // wapiSetWindowIcon((HWND)proxyWinId, pixmap); #endif } void ONMainWindow::slotSetProxyWinFullscreen() { #ifdef Q_OS_LINUX QRect geom=QApplication::desktop()->screenGeometry(localDisplayNumber-1); Atom atom = XInternAtom ( QX11Info::display(), "_NET_WM_STATE_FULLSCREEN", True ); XChangeProperty ( QX11Info::display(), proxyWinId, XInternAtom ( QX11Info::display(), "_NET_WM_STATE", True ), XA_ATOM, 32, PropModeReplace, (unsigned char*) &atom, 1 ); XMapWindow(QX11Info::display(), proxyWinId); XSync(QX11Info::display(),false); XEvent event; event.xclient.type = ClientMessage; event.xclient.serial = 0; event.xclient.send_event = True; event.xclient.display = QX11Info::display(); event.xclient.window = proxyWinId; event.xclient.message_type = XInternAtom(QX11Info::display(),"_NET_WM_STATE",False); event.xclient.format = 32; event.xclient.data.l[0] = 1; event.xclient.data.l[1] = XInternAtom(QX11Info::display(),"_NET_WM_STATE_FULLSCREEN",False); event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 1; event.xclient.data.l[4] = 0; Status st; st=XSendEvent(QX11Info::display(), DefaultRootWindow(QX11Info::display()), False, SubstructureNotifyMask ,&event); if(!st) { x2goDebug<<"Couldn't fetch fullscreen setting."; } XSync(QX11Info::display(),false); XMapWindow(QX11Info::display(), proxyWinId); QString geoStr = QString("%1").arg(geom.width()) + "x"+ QString("%1").arg(geom.height()); sshConnection->executeCommand("DISPLAY=:"+resumingSession.display+" xrandr --output default --mode "+geoStr); #endif } void ONMainWindow::resizeProxyWinOnDisplay(int disp) { QRect geom=QApplication::desktop()->screenGeometry(disp-1); QString geoStr = "(x: " + QString("%1").arg(geom.x()) + ", y: "+ QString("%1").arg(geom.y()) + ", w: "+ QString("%1").arg(geom.width()) + ", h: "+ QString("%1").arg(geom.height()); x2goDebug<<"Resizing proxy window to fit display: " + QString("%1").arg(disp) + " " + geoStr; #ifdef Q_OS_LINUX XSync(QX11Info::display(),false); XMoveResizeWindow(QX11Info::display(), proxyWinId, geom.x(), geom.y(), 800, 600); XMapWindow(QX11Info::display(), proxyWinId); XFlush(QX11Info::display()); #endif #ifdef Q_OS_WIN dispGeometry=geom; #endif QTimer::singleShot(500, this, SLOT(slotSetProxyWinFullscreen())); } QRect ONMainWindow::proxyWinGeometry() { #ifdef Q_OS_WIN QRect proxyRect; if (!wapiWindowRectWithoutDecoration((HWND)proxyWinId,proxyRect)) return QRect(); return proxyRect; #endif #ifdef Q_OS_LINUX QRect proxyRect; Window root; int x,y; uint w,h,border,depth; if (XGetGeometry(QX11Info::display(), proxyWinId, &root,&x,&y,&w,&h,&border,&depth)) { int realx,realy; Window child; XTranslateCoordinates(QX11Info::display(), proxyWinId, root, 0, 0, &realx, &realy, &child); proxyRect.setRect(realx, realy, w,h); } return proxyRect; #endif return QRect(); } void ONMainWindow::slotConfigXinerama() { QRect newGeometry=proxyWinGeometry(); if (newGeometry.isNull()) { x2goWarningf(7)<< tr("Error getting window geometry. (Did you close the window?)"); xineramaTimer->stop(); return; } if (newGeometry==lastDisplayGeometry) return; lastDisplayGeometry=newGeometry; QString geoStr = "(x: " + QString("%1").arg(lastDisplayGeometry.x()) + ", y: "+ QString("%1").arg(lastDisplayGeometry.y()) + ", w: "+ QString("%1").arg(lastDisplayGeometry.width()) + ", h: "+ QString("%1").arg(lastDisplayGeometry.height()); x2goDebug<<"New proxy geometry: " + geoStr; QDesktopWidget* root=QApplication::desktop(); QList newXineramaScreens; for (int i=0; i< root->numScreens(); ++i) { QRect intersection; if (resumingSession.fullscreen) intersection=root->screenGeometry(i); else intersection=root->screenGeometry(i).intersected(lastDisplayGeometry); if (!intersection.isNull()) { // x2goDebug<<"intersected with "<stop(); QStringList screens; foreach (QRect disp, xineramaScreens) screens< $HOME/.x2go/C-"+ resumingSession.sessionId+"/xinerama.conf"; sshConnection->executeCommand(cmd, this, SLOT(slotXineramaConfigured())); } } void ONMainWindow::slotXineramaConfigured() { if (resumingSession.fullscreen) return; if (xinSizeInc == -1) xinSizeInc=1; else xinSizeInc=-1; #ifdef Q_OS_LINUX lastDisplayGeometry.setWidth(lastDisplayGeometry.width()+xinSizeInc); XSync(QX11Info::display(),false); XResizeWindow(QX11Info::display(), proxyWinId, lastDisplayGeometry.width(),lastDisplayGeometry.height()); XSync(QX11Info::display(),false); #endif #ifdef Q_OS_WIN QRect geom; wapiWindowRect ( (HWND) proxyWinId, geom ); wapiMoveWindow( (HWND) proxyWinId, geom.x(), geom.y(), geom.width()+xinSizeInc, geom.height(),true); lastDisplayGeometry=proxyWinGeometry(); #endif xineramaTimer->start(500); } void ONMainWindow::slotFindProxyWin() { #ifndef Q_OS_DARWIN x2goDebug<<"Searching proxy window: X2GO-" + resumingSession.sessionId; proxyWinId=findWindow ( "X2GO-"+resumingSession.sessionId ); bool xinerama=defaultXinerama; if ( proxyWinId ) { x2goDebug<<"Proxy window found: " + QString("%1").arg(proxyWinId); setProxyWinTitle(); proxyWinTimer->stop(); if (!embedMode) { if (!useLdap) { X2goSettings *st; QString sid; if ( !embedMode ) sid=sessionExplorer->getLastSession()->id(); else sid="embedded"; if (brokerMode) st=new X2goSettings(config.iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); xinerama=st->setting()->value ( sid+"/xinerama", ( QVariant ) defaultXinerama ).toBool(); #ifndef Q_OS_WIN uint displays=QApplication::desktop()->numScreens(); if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool()) { uint disp=st->setting()->value ( sid+"/display", ( QVariant ) 1 ).toUInt(); if (disp>displays) { disp=1; } localDisplayNumber=disp; resizeProxyWinOnDisplay(disp); return; } #endif } if (xinerama) { x2goDebug<<"Starting Xinerama timer."; lastDisplayGeometry=QRect(); xineramaScreens.clear(); xineramaTimer->start(500); } } if ( embedMode ) { x2goDebug<<"Checking rootless config."; if ( config.rootless ) { x2goDebug<<"Window is rootless."; act_embedContol->setEnabled ( false ); } else slotAttachProxyWindow(); } #ifdef Q_OS_WIN x2goDebug<<"Maximize proxy window: "<text(); } QString ONMainWindow::getCurrentPass() { return pass->text(); } void ONMainWindow::slotDetachProxyWindow() { proxyWinEmbedded=false; bgFrame->show(); setStatStatus(); act_embedContol->setText ( tr ( "Attach X2Go window" ) ); act_embedContol->setIcon ( QIcon ( ":/img/icons/32x32/attach.png" ) ); #ifdef Q_OS_LINUX //if QX11EmbedContainer cannot embed window, check if window exists //and reconnect if ( !embedControlChanged ) { slotFindProxyWin(); x2goDebug<<"Proxy window detached, proxywin is: "<hide(); proxyWinEmbedded=true; setStatStatus(); act_embedContol->setText ( tr ( "Detach X2Go window" ) ); act_embedContol->setIcon ( QIcon ( ":/img/icons/32x32/detach.png" ) ); QTimer::singleShot ( 100, this, SLOT ( slotEmbedWindow() ) ); } else { x2goDebug<<"Start embedded was false."; startEmbedded=true; } } void ONMainWindow::slotEmbedWindow() { #ifndef Q_OS_DARWIN #ifdef CFGPLUGIN embedWindow ( proxyWinId ); #endif QTimer::singleShot ( 1000, this, SLOT ( slotActivateWindow() ) ); #endif } void ONMainWindow::setEmbedSessionActionsEnabled ( bool enable ) { act_shareFolder->setEnabled ( enable ); if(!enable) act_showApps->setVisible(enable); act_suspend->setEnabled ( enable ); act_terminate->setEnabled ( enable ); act_embedContol->setEnabled ( enable ); act_reconnect->setEnabled ( !enable ); } void ONMainWindow::slotEmbedControlAction() { #ifndef Q_OS_DARWIN embedControlChanged=true; if ( proxyWinEmbedded ) { #ifdef CFGPLUGIN detachClient(); #endif } else slotAttachProxyWindow(); #endif } void ONMainWindow::slotEmbedIntoParentWindow() { #ifndef Q_OS_DARWIN // embedInto ( embedParent ); #endif } void ONMainWindow::processSessionConfig() { bool haveKey=false; config.command="KDE"; config.brokerNoAuth=false; config.sshport="22"; config.session=tr ( "X2Go Session" ); config.checkexitstatus=true; config.showtermbutton=true; config.showexpbutton=true; config.showconfig=true; config.showextconfig=true; config.showtoolbar=true; config.showstatusbar=true; config.kbdType=getDefaultKbdType(); config.kbdLay=getDefaultLayout()[0]; config.confSnd=false; config.confFS=false; config.confConSpd=false; config.confCompMet=false; config.confImageQ=false; config.confDPI=false; config.confKbd=false; QStringList lines=m_x2goconfig.split ( "\n" ); for ( int i=0; isetVisible ( config.showtermbutton ); act_shareFolder->setVisible ( config.showexpbutton ); act_set->setVisible ( config.showconfig ); if (!config.showstatusbar) { statusBar()->hide(); } if ( managedMode ) { QTimer::singleShot ( 500, this, SLOT ( slotStartBroker() ) ); return; } slotSelectedFromList ( ( SessionButton* ) 0 ); } void ONMainWindow::processCfgLine ( QString line ) { QStringList lst=line.split ( "=" ); if ( lst[0]=="command" ) { config.command=lst[1]; if ( config.command=="SHADOW" ) { shadowSession=true; runRemoteCommand=false; } return; } if ( lst[0]=="server" ) { config.server=lst[1]; return; } if ( lst[0]=="session" ) { config.session=lst[1]; return; } if ( lst[0]=="sshport" ) { config.sshport=lst[1]; return; } if ( lst[0]=="user" ) { config.user=lst[1]; return; } if ( lst[0]=="rootless" ) { if ( lst[1]=="true" ) config.rootless=true; else config.rootless=false; return; } if ( lst[0]=="published" ) { if ( lst[1]=="true" ) config.published=true; else config.published=false; return; } if ( lst[0]=="checkexitstatus" ) { if ( lst[1]=="true" ) config.checkexitstatus=true; else config.checkexitstatus=false; return; } if ( lst[0]=="showtermbutton" ) { if ( lst[1]=="true" ) config.showtermbutton=true; else config.showtermbutton=false; return; } if ( lst[0]=="showexpbutton" ) { if ( lst[1]=="true" ) config.showexpbutton=true; else config.showexpbutton=false; return; } if ( lst[0]=="showconfig" ) { if ( lst[1]=="true" ) config.showconfig=true; else config.showconfig=false; return; } if ( lst[0]=="showextconfig" ) { if ( lst[1]=="true" ) config.showextconfig=true; else config.showextconfig=false; return; } if ( lst[0]=="showstatusbar" ) { if ( lst[1]=="true" ) config.showstatusbar=true; else config.showstatusbar=false; return; } if ( lst[0]=="showtoolbar" ) { if ( lst[1]=="true" ) config.showtoolbar=true; else config.showtoolbar=false; return; } if ( lst[0]=="sound" ) { config.confSnd=true; if ( lst[1]=="true" ) config.useSnd=true; else config.useSnd=false; return; } if ( lst[0]=="exportfs" ) { config.confFS=true; if ( lst[1]=="true" ) config.useFs=true; else config.useFs=false; return; } if ( lst[0]=="speed" ) { config.confConSpd=true; config.conSpeed=ADSL; if ( lst[1]=="modem" ) config.conSpeed=MODEM; else if ( lst[1]=="isdn" ) config.conSpeed=ISDN; else if ( lst[1]=="adsl" ) config.conSpeed=ADSL; else if ( lst[1]=="wan" ) config.conSpeed=WAN; else if ( lst[1]=="lan" ) config.conSpeed=LAN; else { qCritical ( "%s",tr ( "Invalid value for argument \"speed\"" ).toLocal8Bit().data() ); } return; } if ( lst[0]=="compression" ) { config.confCompMet=true; config.compMet=lst[1]; return; } if ( lst[0]=="quality" ) { config.confImageQ=true; config.imageQ=lst[1].toInt(); return; } if ( lst[0]=="dpi" ) { config.confDPI=true; config.dpi=lst[1].toInt(); return; } if ( lst[0]=="kbdlayout" ) { config.confKbd=true; config.kbdLay=lst[1]; return; } if ( lst[0]=="kbdtype" ) { config.confKbd=true; config.kbdType=lst[1]; return; } if ( lst[0]=="brokerurl" ) { config.brokerurl=lst[1]; managedMode=true; acceptRsa=true; } if ( lst[0]=="cookie" ) { config.cookie=lst[1]; return; } if ( lst[0]=="x2gosession" ) { config.sessiondata=lst[1]; return; } if ( lst[0]=="connectionts" ) { config.connectionts=lst[1]; return; } if (lst[0] == "usesshproxy") { config.useproxy = true; if (lst[1].toLower () == "true") { config.useproxy = true; } else { config.useproxy = false; } return; } if (lst[0] == "sshproxytype") { if (lst[1].toLower () == "http") { config.proxyType = SshMasterConnection::PROXYHTTP; } else { config.proxyType = SshMasterConnection::PROXYSSH; } return; } if (lst[0] == "sshproxyuser") { config.proxylogin = lst[1]; return; } if (lst[0] == "sshproxyhost") { config.proxyserver = lst[1]; return; } if (lst[0] == "sshproxyport") { config.proxyport = lst[1].toInt (); return; } if (lst[0] == "sshproxyautologin") { if (lst[1].toLower () == "true") { config.proxyAutologin = true; } else { config.proxyAutologin = false; } return; } if (lst[0] == "sshproxykrblogin") { if (lst[1].toLower () == "true") { config.proxyKrbLogin = true; } else { config.proxyKrbLogin = false; } return; } if (lst[0] == "sshproxykeyfile") { config.proxyKey = lst[1]; return; } } void ONMainWindow::slotChangeKbdLayout(const QString& layout) { #ifdef Q_OS_LINUX QStringList args; args<<"-layout"<setMainWidget ( ( QWidget* ) this ); #endif username->addWidget ( passForm ); passForm->hide(); setWidgetStyle ( passForm ); if ( !miniMode ) passForm->setFixedSize ( passForm->sizeHint() ); else passForm->setFixedSize ( 310,180 ); QPalette pal=passForm->palette(); pal.setBrush ( QPalette::Window, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); passForm->setPalette ( pal ); pal.setColor ( QPalette::Button, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Window, QColor ( 255,255,255,255 ) ); pal.setColor ( QPalette::Base, QColor ( 255,255,255,255 ) ); QFont fnt=passForm->font(); if ( miniMode ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif passForm->setFont ( fnt ); fotoLabel=new QLabel ( passForm ); fotoLabel->hide(); nameLabel=new QLabel ( "",passForm ); nameLabel->hide(); loginPrompt=new QLabel ( tr ( "Login:" ),passForm ); passPrompt=new QLabel ( tr ( "Password:" ),passForm ); layoutPrompt=new QLabel ( tr ( "Keyboard layout:" ),passForm ); login=new ClickLineEdit ( passForm ); setWidgetStyle ( login ); login->setFrame ( false ); login->setEnabled ( false ); login->hide(); loginPrompt->hide(); pass=new ClickLineEdit ( passForm ); setWidgetStyle ( pass ); pass->setFrame ( false ); fnt.setBold ( true ); pass->setFont ( fnt ); pass->setEchoMode ( QLineEdit::Password ); pass->setFocus(); #ifdef Q_OS_LINUX connect ( login,SIGNAL ( clicked() ),this, SLOT ( slotActivateWindow() ) ); connect ( pass,SIGNAL ( clicked() ),this, SLOT ( slotActivateWindow() ) ); #endif pass->hide(); passPrompt->hide(); cbLayout=new QComboBox(passForm); cbLayout->addItems(defaultLayout); cbLayout->setFocusPolicy(Qt::NoFocus); cbLayout->setFrame(false); setWidgetStyle(cbLayout); cbLayout->hide(); layoutPrompt->hide(); QHBoxLayout* cbLayoutLay=new QHBoxLayout(); cbLayoutLay->addWidget(cbLayout); cbLayoutLay->addStretch(); ok=new QPushButton ( tr ( "Ok" ),passForm ); setWidgetStyle ( ok ); cancel=new QPushButton ( tr ( "Cancel" ),passForm ); setWidgetStyle ( cancel ); ok->hide(); cancel->hide(); cbLayout->setPalette ( pal ); ok->setPalette ( pal ); cancel->setPalette ( pal ); #ifndef Q_WS_HILDON ok->setFixedSize ( ok->sizeHint() ); cancel->setFixedSize ( cancel->sizeHint() ); #else QSize sz=cancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); cancel->setFixedSize ( sz ); sz=ok->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); ok->setFixedSize ( sz ); #endif QVBoxLayout *layout=new QVBoxLayout ( passForm ); QHBoxLayout *labelLay=new QHBoxLayout(); QHBoxLayout *inputLay=new QHBoxLayout(); QHBoxLayout *buttonLay=new QHBoxLayout(); labelLay->setSpacing ( 20 ); inputLay->setSpacing ( 10 ); layout->setContentsMargins ( 20,20,10,10 ); layout->addLayout ( labelLay ); layout->addStretch(); layout->addLayout ( inputLay ); layout->addStretch(); layout->addLayout ( buttonLay ); labelLay->addWidget ( fotoLabel ); labelLay->addWidget ( nameLabel ); labelLay->addStretch(); QVBoxLayout* il1=new QVBoxLayout(); il1->addWidget ( loginPrompt ); il1->addWidget ( passPrompt ); il1->addWidget ( layoutPrompt ); QVBoxLayout* il2=new QVBoxLayout(); il2->addWidget ( login ); il2->addWidget ( pass ); il2->addLayout ( cbLayoutLay ); inputLay->addLayout ( il1 ); inputLay->addLayout ( il2 ); inputLay->addStretch(); buttonLay->addStretch(); buttonLay->addWidget ( ok ); buttonLay->addWidget ( cancel ); buttonLay->addStretch(); pal.setColor ( QPalette::Base, QColor ( 239,239,239,255 ) ); login->setPalette ( pal ); pass->setPalette ( pal ); connect ( ok,SIGNAL ( clicked() ),this, SLOT ( slotSessEnter() ) ); connect ( cancel,SIGNAL ( clicked() ),this, SLOT ( slotClosePass() ) ); connect ( pass,SIGNAL ( returnPressed() ),this, SLOT ( slotSessEnter() ) ); connect ( login,SIGNAL ( returnPressed() ),pass, SLOT ( selectAll() ) ); connect ( login,SIGNAL ( returnPressed() ),pass, SLOT ( setFocus() ) ); passPrompt->show(); pass->show(); ok->show(); cancel->show(); fotoLabel->show(); nameLabel->show(); if ( !useLdap ) { login->show(); loginPrompt->show(); } if ( embedMode ) { cancel->setEnabled ( false ); #ifdef Q_OS_WIN QRect r; wapiWindowRect ( ok->winId(),r ); #endif } if (defaultLayout.size()>1) { layoutPrompt->show(); cbLayout->show(); slotChangeKbdLayout(cbLayout->currentText()); connect (cbLayout,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotChangeKbdLayout(QString))); } } void ONMainWindow::initStatusDlg() { sessionStatusDlg = new SVGFrame ( ":/img/svg/passform.svg", false,bgFrame ); sessionStatusDlg->hide(); if ( !miniMode ) sessionStatusDlg->setFixedSize ( sessionStatusDlg->sizeHint() ); else sessionStatusDlg->setFixedSize ( 310,200 ); QFont fnt=sessionStatusDlg->font(); if ( miniMode ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif sessionStatusDlg->setFont ( fnt ); username->addWidget ( sessionStatusDlg ); QPalette pal=sessionStatusDlg->palette(); pal.setBrush ( QPalette::Window, QColor ( 0,0,0,0 ) ); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); sessionStatusDlg->setPalette ( pal ); slName=new QLabel ( sessionStatusDlg ); slVal=new QLabel ( sessionStatusDlg ); slName->setText ( tr ( "Session ID:
Server:
Username:" "
Display:
Creation time:
Status:
" ) ); slName->setFixedSize ( slName->sizeHint() ); slName->hide(); slVal->hide(); slVal->setFixedHeight ( slName->sizeHint().height() ); sbApps=new QToolButton (sessionStatusDlg ); sbApps->setToolTip(tr ( "Applications ..." )); sbApps->setIcon(QPixmap(":/img/icons/32x32/apps.png")); sbApps->setAutoRaise(true); sbApps->setFocusPolicy(Qt::NoFocus); sbExp=new QToolButton (sessionStatusDlg ); sbExp->setIcon(QPixmap(":/img/icons/32x32/open_dir.png")); sbExp->setToolTip (tr ("Share folder ..." )); sbExp->setAutoRaise(true); sbExp->setFocusPolicy(Qt::NoFocus); sbSusp=new QToolButton (sessionStatusDlg ); sbSusp->setIcon(QPixmap(":/img/icons/32x32/suspend_session.png")); sbSusp->setToolTip(tr ( "Abort" )); sbSusp->setAutoRaise(true); sbSusp->setFocusPolicy(Qt::NoFocus); sbTerm=new QToolButton (sessionStatusDlg ); sbTerm->setIcon(QPixmap(":/img/icons/32x32/stop_session.png")); sbTerm->setToolTip(tr ( "Terminate" )); sbTerm->setAutoRaise(true); sbTerm->setFocusPolicy(Qt::NoFocus); sbAdv=new QCheckBox ( tr ( "Show details" ),sessionStatusDlg ); setWidgetStyle ( sbTerm ); setWidgetStyle ( sbApps ); setWidgetStyle ( sbExp ); setWidgetStyle ( sbSusp ); setWidgetStyle ( sbAdv ); sbAdv->setFixedSize ( sbAdv->sizeHint() ); sbApps->setFixedSize ( 32,32 ); sbSusp->setFixedSize ( 32,32 ); sbTerm->setFixedSize ( 32,32 ); sbExp->setFixedSize ( 32,32 ); /* sbApps->setFocusPolicy(Qt::NoFocus); sbSusp->setFocusPolicy(Qt::NoFocus); sbTerm->setFocusPolicy(Qt::NoFocus); sbExp->setFocusPolicy(Qt::NoFocus);*/ sbAdv->hide(); sbSusp->hide(); sbTerm->hide(); sbExp->hide(); sbApps->hide(); pal.setColor ( QPalette::Button, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Window, QColor ( 255,255,255,255 ) ); pal.setColor ( QPalette::Base, QColor ( 255,255,255,255 ) ); sbAdv->setPalette ( pal ); sbApps->setPalette ( pal ); sbSusp->setPalette ( pal ); sbTerm->setPalette ( pal ); sbExp->setPalette ( pal ); stInfo=new QTextEdit ( sessionStatusDlg ); setWidgetStyle ( stInfo ); setWidgetStyle ( stInfo->verticalScrollBar() ); stInfo->setReadOnly ( true ); stInfo->hide(); stInfo->setFrameStyle ( QFrame::StyledPanel|QFrame::Plain ); stInfo->setPalette ( pal ); sbExp->setEnabled ( false ); connect ( sbSusp,SIGNAL ( clicked() ),this, SLOT ( slotTestSessionStatus() ) ); connect ( sbTerm,SIGNAL ( clicked() ),this, SLOT ( slotTermSessFromSt() ) ); connect ( sbAdv,SIGNAL ( clicked() ),this, SLOT ( slotShowAdvancedStat() ) ); connect ( sbExp,SIGNAL ( clicked() ),this, SLOT ( slotExportDirectory() ) ); connect ( sbApps,SIGNAL ( clicked() ),this, SLOT ( slotAppDialog()) ); QVBoxLayout* layout=new QVBoxLayout ( sessionStatusDlg ); QHBoxLayout* ll=new QHBoxLayout(); ll->addWidget ( slName ); ll->addWidget ( slVal ); ll->addStretch(); ll->setSpacing ( 10 ); if ( !miniMode ) layout->setContentsMargins ( 25,25,10,10 ); else layout->setContentsMargins ( 10,10,10,10 ); QHBoxLayout* bl=new QHBoxLayout(); bl->addStretch(); bl->addWidget ( sbApps ); bl->addWidget ( sbExp ); bl->addWidget ( sbSusp ); bl->addWidget ( sbTerm ); // bl->addStretch(); layout->addLayout ( ll ); layout->addStretch(); layout->addWidget ( stInfo ); layout->addWidget ( sbAdv ); layout->addStretch(); layout->addLayout ( bl ); layout->setSizeConstraint( QLayout::SetFixedSize ); slName->show(); slVal->show(); sbAdv->show(); if ( !embedMode ) { sbSusp->show(); sbTerm->show(); if (! hideFolderSharing ) sbExp->show(); } X2goSettings st ( "settings" ); if ( st.setting()->value ( "showStatus", ( QVariant ) false ).toBool() ) { sbAdv->setChecked ( true ); slotShowAdvancedStat(); } #ifdef Q_OS_WIN if ( embedMode ) { QRect r; wapiWindowRect ( sbAdv->winId(),r ); wapiWindowRect ( stInfo->verticalScrollBar ()->winId(),r ); } #endif } void ONMainWindow::initSelectSessDlg() { selectSessionDlg = new SVGFrame ( ":/img/svg/passform.svg", false,bgFrame ); username->addWidget ( selectSessionDlg ); setWidgetStyle ( selectSessionDlg ); if ( !miniMode ) selectSessionDlg->setFixedSize ( selectSessionDlg->sizeHint() ); else selectSessionDlg->setFixedSize ( 310,180 ); QPalette pal=selectSessionDlg->palette(); pal.setBrush ( QPalette::Window, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); selectSessionDlg->setPalette ( pal ); pal.setColor ( QPalette::Button, QColor ( 255,255,255,0 ) ); pal.setColor ( QPalette::Window, QColor ( 255,255,255,255 ) ); pal.setColor ( QPalette::Base, QColor ( 255,255,255,255 ) ); QFont fnt=selectSessionDlg->font(); if ( miniMode ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif selectSessionDlg->setFont ( fnt ); selectSessionLabel=new QLabel ( tr ( "Select session:" ), selectSessionDlg ); sOk=new QPushButton ( tr ( "Resume" ),selectSessionDlg ); setWidgetStyle ( sOk ); sCancel=new QPushButton ( tr ( "Cancel" ),selectSessionDlg ); setWidgetStyle ( sCancel ); bCancel=new QPushButton ( tr ( "Cancel" ),selectSessionDlg ); setWidgetStyle ( bCancel ); bSusp=new QPushButton ( tr ( "Suspend" ),selectSessionDlg ); setWidgetStyle ( bSusp ); bTerm=new QPushButton ( tr ( "Terminate" ),selectSessionDlg ); setWidgetStyle ( bTerm ); bNew=new QPushButton ( tr ( "New" ),selectSessionDlg ); setWidgetStyle ( bNew ); bShadow=new QPushButton ( tr ( "Full access" ),selectSessionDlg ); setWidgetStyle ( bShadow ); bShadowView=new QPushButton ( tr ( "View only" ),selectSessionDlg ); setWidgetStyle ( bShadowView ); sOk->setPalette ( pal ); sCancel->setPalette ( pal ); connect ( sCancel,SIGNAL ( clicked() ),this, SLOT ( slotCloseSelectDlg() ) ); connect ( bCancel,SIGNAL ( clicked() ),this, SLOT ( slotCloseSelectDlg() ) ); selectSessionDlg->show(); #ifndef Q_WS_HILDON sOk->setFixedSize ( ok->sizeHint() ); sCancel->setFixedSize ( cancel->sizeHint() ); #else QSize sz=sCancel->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); sCancel->setFixedSize ( sz ); sz=sOk->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); sOk->setFixedSize ( sz ); sz=bSusp->sizeHint(); if ( bTerm->sizeHint().width() > sz.width() ) sz=bTerm->sizeHint(); if ( bNew->sizeHint().width() > sz.width() ) sz=bNew->sizeHint(); sz.setWidth ( ( int ) ( sz.width() /1.5 ) ); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); bSusp->setFixedSize ( sz ); bTerm->setFixedSize ( sz ); bNew->setFixedSize ( sz ); #endif int bmaxw=bNew->size().width(); if ( bSusp->size().width() >bmaxw ) bmaxw=bSusp->size().width(); if ( bTerm->size().width() >bmaxw ) bmaxw=bTerm->size().width(); bNew->setFixedWidth ( bmaxw ); bSusp->setFixedWidth ( bmaxw ); bTerm->setFixedWidth ( bmaxw ); sOk->setEnabled ( true ); sCancel->setEnabled ( true ); selectSessionDlg->setEnabled ( true ); setEnabled ( true ); sessTv=new SessTreeView ( selectSessionDlg ); setWidgetStyle ( sessTv ); setWidgetStyle ( sessTv->horizontalScrollBar() ); setWidgetStyle ( sessTv->verticalScrollBar() ); sessTv->setItemsExpandable ( false ); sessTv->setRootIsDecorated ( false ); model=new QStandardItemModel ( sessionExplorer->getSessionsList()->size(), 8 ); model->setHeaderData ( S_DISPLAY,Qt::Horizontal, QVariant ( ( QString ) tr ( "Display" ) ) ); model->setHeaderData ( S_STATUS,Qt::Horizontal, QVariant ( ( QString ) tr ( "Status" ) ) ); model->setHeaderData ( S_COMMAND,Qt::Horizontal, QVariant ( ( QString ) tr ( "Command" ) ) ); model->setHeaderData ( S_TYPE,Qt::Horizontal, QVariant ( ( QString ) tr ( "Type" ) ) ); model->setHeaderData ( S_SERVER,Qt::Horizontal, QVariant ( ( QString ) tr ( "Server" ) ) ); model->setHeaderData ( S_CRTIME,Qt::Horizontal, QVariant ( ( QString ) tr ( "Creation time" ) ) ); model->setHeaderData ( S_IP,Qt::Horizontal, QVariant ( ( QString ) tr ( "Client IP" ) ) ); model->setHeaderData ( S_ID,Qt::Horizontal, QVariant ( ( QString ) tr ( "Session ID" ) ) ); modelDesktop=new QStandardItemModel ( sessionExplorer->getSessionsList()->size(), 2 ); modelDesktop->setHeaderData ( D_USER,Qt::Horizontal, QVariant ( ( QString ) tr ( "User" ) ) ); modelDesktop->setHeaderData ( D_DISPLAY,Qt::Horizontal, QVariant ( ( QString ) tr ( "Display" ) ) ); sessTv->setModel ( ( QAbstractItemModel* ) model ); QFontMetrics fm ( sessTv->font() ); sessTv->setEditTriggers ( QAbstractItemView::NoEditTriggers ); sessTv->setPalette ( pal ); sessTv->setModel ( ( QAbstractItemModel* ) model ); bNew->setPalette ( pal ); bShadow->setPalette ( pal ); bShadowView->setPalette ( pal ); bSusp->setPalette ( pal ); bTerm->setPalette ( pal ); sessTv->setFrameStyle ( QFrame::StyledPanel|QFrame::Plain ); sOk->setEnabled ( false ); bSusp->setEnabled ( false ); bTerm->setEnabled ( false ); bShadow->setEnabled ( false ); selectSessionLabel->hide(); bCancel->setPalette ( pal ); bCancel->hide(); desktopFilter=new QLineEdit ( selectSessionDlg ); setWidgetStyle ( desktopFilter ); // desktopFilter->setFrame ( false ); desktopFilterCb=new QCheckBox ( tr ( "Only my desktops" ), selectSessionDlg ); desktopFilterCb->hide(); QVBoxLayout* layout=new QVBoxLayout ( selectSessionDlg ); QHBoxLayout* filterLay=new QHBoxLayout(); QHBoxLayout* blay=new QHBoxLayout(); QVBoxLayout* alay=new QVBoxLayout(); QHBoxLayout* tvlay=new QHBoxLayout(); selectSesDlgLayout=layout; layout->addWidget ( selectSessionLabel ); layout->addLayout ( filterLay ); layout->addLayout ( tvlay ); layout->addLayout ( blay ); filterLay->addWidget ( desktopFilter ); filterLay->addWidget ( desktopFilterCb ); alay->addWidget ( bSusp ); alay->addWidget ( bTerm ); alay->addWidget ( bShadowView ); alay->addWidget ( bShadow ); alay->addStretch(); alay->addWidget ( bNew ); alay->addWidget ( bCancel ); tvlay->addWidget ( sessTv ); tvlay->addLayout ( alay ); blay->addStretch(); blay->addWidget ( sOk ); blay->addWidget ( sCancel ); blay->addStretch(); if ( !miniMode ) layout->setContentsMargins ( 25,25,10,10 ); else layout->setContentsMargins ( 10,10,10,10 ); sOk->hide(); sCancel->hide(); bNew->hide(); bSusp->hide(); bTerm->hide(); connect ( sessTv,SIGNAL ( selected ( const QModelIndex& ) ), this,SLOT ( slotActivated ( const QModelIndex& ) ) ); connect ( sessTv,SIGNAL ( doubleClicked ( const QModelIndex& ) ), this,SLOT ( slotResumeDoubleClick ( const QModelIndex& ) ) ); connect ( sOk,SIGNAL ( clicked() ),this, SLOT ( slotResumeSess() ) ); connect ( bSusp,SIGNAL ( clicked() ),this, SLOT ( slotSuspendSess() ) ); connect ( bTerm,SIGNAL ( clicked() ),this, SLOT ( slotTermSess() ) ); connect ( bNew,SIGNAL ( clicked() ),this, SLOT ( slotNewSess() ) ); connect ( bShadow,SIGNAL ( clicked() ),this, SLOT ( slotShadowSess() ) ); connect ( bShadowView,SIGNAL ( clicked() ),this, SLOT ( slotShadowViewSess() ) ); connect ( desktopFilter,SIGNAL ( textEdited ( const QString& ) ),this, SLOT ( slotDesktopFilterChanged ( const QString& ) ) ); connect ( desktopFilterCb,SIGNAL ( stateChanged ( int ) ), this, SLOT ( slotDesktopFilterCb ( int ) ) ); selectSessionLabel->show(); sOk->show(); sCancel->show(); bNew->show(); bSusp->show(); bTerm->show(); sessTv->show(); selectSessionDlg->hide(); #ifdef Q_OS_WIN if ( embedMode ) { QRect r; wapiWindowRect ( sOk->winId(),r ); wapiWindowRect ( sessTv->verticalScrollBar ()->winId(),r ); wapiWindowRect ( sessTv->horizontalScrollBar ()->winId(),r ); wapiWindowRect ( sessTv->header ()->viewport()->winId(),r ); } #endif } void ONMainWindow::printSshDError_startupFailure() { if ( closeEventSent ) return; QString error_message; #ifdef Q_OS_WIN error_message = tr ("SSH daemon could not be started.\n\n"); #else // defined (Q_OS_WIN) if (userSshd) { error_message = tr ("SSH daemon could not be started.\n\n"); } else { error_message = tr ("SSH daemon is not running.\n\n"); } #endif // defined (Q_OS_WIN) QString detailed_error_message = tr ("You have enabled Remote Printing or File Sharing.\n" "These features require a running and functioning SSH server on your computer.\n" "Printing and File Sharing will be disabled for this session.\n\n" "Please also check the Clientside SSH port in the general settings.\n\n"); #ifdef Q_OS_WIN detailed_error_message += tr ("Normally, this should not happen as X2Go Client for Windows " "ships its own internal SSH server.\n\n" "If you see this message, please report a bug on:\n" "
" "https://wiki.x2go.org/doku.php/wiki:bugs" "
\n"); #else // defined (Q_OS_WIN) if (userSshd) { detailed_error_message += tr ("The SSH server failed to start.\n\n"); detailed_error_message += tr ("X2Go Client did not detect a globally running SSH server " "on your machine and was unable to start its own.\n\n" "Please report a bug on:\n" "
" "https://wiki.x2go.org/doku.php/wiki:bugs" "
\n"); } else { detailed_error_message += tr ("The SSH server is currently not started.\n\n"); #ifdef Q_OS_DARWIN detailed_error_message += tr ("On OS X, please follow the following steps to enable " "SSH service:" "
    " "
  • Open System Preferences (Applications -> System Preferences)
  • " "
  • Go to Sharing
  • " "
  • Tick the checkbox besides Remote Login
  • " "
  • Check that Allow access for: is set to either:" "
      " "
    • All users: no further steps necessary
    • " "
    • Only these users and your user name is included in the list
    • " "
    " "
  • Optionally, add your user name to the allowed list " "via the Plus Button
  • " "
" "Warning: enabling SSH access will allow any user on the network to connect " "to your machine. It is your responsibility to set a strong password for every " "user that is allowed to log in via SSH.\n\n"); #else // defined (Q_OS_DARWIN) detailed_error_message += tr ("Please ask your system administrator to provide the SSH " "service on your computer.\n\n"); #endif // defined (Q_OS_DARWIN) } #endif // defined (Q_OS_WIN) detailed_error_message += tr ("Disabling Remote Printing or File Sharing support " "in the session settings will get rid of this message."); Non_Modal_MessageBox::critical (0l, "X2Go Client", error_message, detailed_error_message, true, QMessageBox::Ok, QMessageBox::NoButton); } void ONMainWindow::printSshDError_noHostPubKey() { if ( closeEventSent ) return; QString error_message = tr ("SSH daemon failed to open its public host key."); QString detailed_error_message = tr ("You have enabled Remote Printing or File Sharing.\n" "These features require a running and functioning SSH server on your computer.\n" "Printing and File Sharing will be disabled for this session.\n\n" "The SSH server is currently not configured correctly.\n\n" "Please ensure that the server's public exists.\n\n"); #ifdef Q_OS_WIN detailed_error_message += tr ("Normally, this should not happen as X2Go Client for Windows " "ships its own internal SSH server and automatically " "generates the required keys.\n\n" "If you see this message, please report a bug on:\n" "
" "https://wiki.x2go.org/doku.php/wiki:bugs" "
\n"); #else // defined (Q_OS_WIN) if (userSshd) { detailed_error_message += tr ("X2Go Client was unable to create SSH host keys.\n\n" "Please report a bug on:\n" "
" "https://wiki.x2go.org/doku.php/wiki:bugs" "
\n"); } else { #ifdef Q_OS_DARWIN detailed_error_message += tr ("On OS X, please follow these steps to generate the " "required keys:" "
    " "
  • Open a Terminal Window (Applications -> Utilities -> Terminal)
  • " "
  • Run this command: ssh -p " + clientSshPort.toAscii () + " localhost
  • " "
  • You do not need to login. Just quit the Terminal application " "via Cmd + Q
  • " "
"); #else // defined (Q_OS_DARWIN) detailed_error_message += tr ("Please ask your system administrator to generate the required host keys.\n\n" "If you are administrating this system yourself, please run:\n" "
sudo ssh-keygen -A
\n\n"); #endif // defined (Q_OS_DARWIN) } #endif // defined (Q_OS_WIN) detailed_error_message += tr ("Disabling Remote Printing or File Sharing support " "in the session settings will get rid of this message."); Non_Modal_MessageBox::critical (0l, "X2Go Client", error_message, detailed_error_message, true, QMessageBox::Ok, QMessageBox::NoButton); } void ONMainWindow::printSshDError_noExportPubKey() { if ( closeEventSent ) return; QMessageBox::critical ( 0l,tr ( "SSH Error" ), tr ( "SSH daemon failed to open the application's public key\n" "used for exporting folders and printers." ), QMessageBox::Ok,QMessageBox::NoButton ); } void ONMainWindow::printSshDError_noAuthorizedKeysFile() { if ( closeEventSent ) return; QMessageBox::critical ( 0l,tr ( "SSH Error" ), tr ( "SSH daemon failed to open the application's\n" "authorized_keys file." ), QMessageBox::Ok,QMessageBox::NoButton ); } #ifdef Q_OS_WIN void ONMainWindow::slotStartParec () { if ( !parecTunnelOk ) { // wait 1 sec and try again QTimer::singleShot ( 1000, this, SLOT ( slotStartParec() ) ); return; } QString passwd=getCurrentPass(); QString user=getCurrentUname(); QString host=resumingSession.server; QString scmd="PULSE_CLIENTCONFIG=\"${HOME}/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf\" "+ "parec 1> /dev/null & sleep 1 && kill %1"; } #endif void ONMainWindow::slotSndTunOk() { parecTunnelOk=true; } void ONMainWindow::slotPCookieReady ( bool result, QString , int ) { #ifdef Q_OS_WIN if ( result ) slotStartParec(); #else /* Silence warning. */ UNUSED (result); #endif /* defined (Q_OS_WIN) */ } void ONMainWindow::loadPulseModuleNativeProtocol() { QProcess* proc=new QProcess ( this ); QStringList args; args<<"load-module"<<"module-native-protocol-tcp"; proc->start ( "pactl",args ); proc->waitForFinished ( 3000 ); } void ONMainWindow::slotEmbedToolBar() { if ( statusLabel ) { delete statusLabel; statusLabel=0; } if ( embedTbVisible ) { stb->clear(); act_embedToolBar->setIcon ( QIcon ( ":/img/icons/16x16/tbshow.png" ) ); stb->addAction ( act_embedToolBar ); stb->setToolButtonStyle ( Qt::ToolButtonIconOnly ); stb->widgetForAction ( act_embedToolBar )->setFixedHeight ( 16 ); act_embedToolBar->setText ( tr ( "Restore toolbar" ) ); statusLabel=new QLabel; stb->addWidget ( statusLabel ); #ifndef Q_OS_WIN statusBar()->hide(); #endif } else { initEmbedToolBar(); act_embedToolBar->setIcon ( QIcon ( ":/img/icons/32x32/tbhide.png" ) ); act_embedToolBar->setText ( tr ( "Minimize toolbar" ) ); } embedTbVisible=!embedTbVisible; if ( proxyWinEmbedded ) setStatStatus(); X2goSettings st ( "sessions" ); st.setting()->setValue ( "embedded/tbvisible", embedTbVisible ); st.setting()->sync(); } void ONMainWindow::initEmbedToolBar() { stb->addAction ( act_embedToolBar ); stb->addSeparator(); stb->setToolButtonStyle ( Qt::ToolButtonTextUnderIcon ); stb->addAction ( act_shareFolder ); stb->addAction ( act_showApps ); stb->addAction ( act_reconnect ); stb->addAction ( act_suspend ); stb->addAction ( act_terminate ); stb->addSeparator(); stb->addAction ( act_embedContol ); stb->addSeparator(); stb->addAction ( act_set ); stb->addAction ( act_abclient ); } void ONMainWindow::slotEmbedToolBarToolTip() { if ( !showTbTooltip ) return; QWidget* widg=stb->widgetForAction ( act_embedToolBar ); QToolTip::showText ( this->mapToGlobal ( QPoint ( 6,6 ) ), tr ( "
   Click this " "button   
" "   to restore toolbar" "   

" ), widg ); } void ONMainWindow::slotActivateWindow() { if ( embedMode ) { QApplication::setActiveWindow ( this ) ; activateWindow(); /* x2goDebug<<"focus:"<hasFocus(); x2goDebug<<"activ:"<isActiveWindow();*/ QTimer::singleShot ( 50, this, SLOT ( slotEmbedToolBarToolTip() ) ); } } #ifndef Q_OS_WIN void ONMainWindow::mouseReleaseEvent ( QMouseEvent * event ) { QMainWindow::mouseReleaseEvent ( event ); slotActivateWindow(); } #endif void ONMainWindow::slotHideEmbedToolBarToolTip() { showTbTooltip=false; QToolTip::hideText(); } void ONMainWindow::slotDesktopFilterChanged ( const QString& text ) { filterDesktops ( text ); } void ONMainWindow::slotDesktopFilterCb ( int state ) { if ( state==Qt::Checked ) { filterDesktops ( getCurrentUname(),true ); desktopFilter->setEnabled ( false ); } else { filterDesktops ( desktopFilter->text() ); desktopFilter->setEnabled ( true ); } } void ONMainWindow::filterDesktops ( const QString& filter, bool strict ) { modelDesktop->setRowCount ( 0 ); bShadow->setEnabled ( false ); bShadowView->setEnabled ( false ); QFontMetrics fm ( sessTv->font() ); uint nextRow=0; for ( int row = 0; row < selectedDesktops.size(); ++row ) { QStringList desktop=selectedDesktops[row].split ( "@" ); if ( filter==tr ( "Filter" ) ||filter.length() <=0|| ( strict && desktop[0]==filter ) || ( !strict && desktop[0].startsWith ( filter ) ) ) { QStandardItem *item; item= new QStandardItem ( desktop[0] ); modelDesktop->setItem ( nextRow,D_USER,item ); item= new QStandardItem ( desktop[1] ); modelDesktop->setItem ( nextRow++,D_DISPLAY,item ); for ( int j=0; j<2; ++j ) { QString txt= modelDesktop->index ( row,j ).data().toString(); if ( sessTv->header()->sectionSize ( j ) < fm.width ( txt ) +6 ) { sessTv->header()->resizeSection ( j,fm.width ( txt ) +6 ); } } } } } void ONMainWindow::slotShadowSess() { shadowMode=SHADOW_FULL; slotShadowViewSess(); } void ONMainWindow::slotShadowViewSess() { shadowUser=sessTv->model()->index ( sessTv->currentIndex().row(), D_USER ).data().toString(); shadowDisplay=sessTv->model()->index ( sessTv->currentIndex().row(), D_DISPLAY ).data().toString(); startNewSession(); } void ONMainWindow::slotReconnectSession() { if ( !managedMode ) slotSelectedFromList ( ( SessionButton* ) 0 ); else { setEnabled ( false ); } } QSize ONMainWindow::getEmbedAreaSize() { if ( embedTbVisible && config.showstatusbar ) statusBar()->show(); QSize sz=bgFrame->size(); // sz.setHeight(sz.height()-statusBar()->size().height()); statusBar()->hide(); return sz; } void ONMainWindow::slotStartBroker() { config.brokerPass=pass->text(); config.brokerUser=login->text(); setStatStatus ( tr ( "Connecting to broker" ) ); stInfo->insertPlainText ( "broker url: "+config.brokerurl ); setEnabled ( false ); if(!usePGPCard) broker->getUserSessions(); } void ONMainWindow::slotGetBrokerSession() { startSession ( config.session); } void ONMainWindow::slotStartNewBrokerSession ( ) { if ( managedMode ) { setEnabled ( true ); slotSelectedFromList ( ( SessionButton* ) 0 ); } } #ifdef Q_OS_WIN QString ONMainWindow::u3DataPath() { QStringList env=QProcess::systemEnvironment(); QString dpath; for ( int i=0; i0 ) { dpath.replace ( "U3_APP_DATA_PATH=","" ); portableDataPath=dpath; return dpath; } return QString::null; } #endif void ONMainWindow::cleanPortable() { removeDir ( homeDir +"/.ssh" ); removeDir ( homeDir +"/ssh" ); removeDir ( homeDir+"/.x2go" ); if (cleanAllFiles) removeDir(homeDir+"/.x2goclient"); } void ONMainWindow::removeDir ( QString path ) { x2goDebug<<"removeDir, entering: " <size() || oldChildPos!= mapToGlobal ( QPoint ( 0,0 ) ) ) { QRect geom=embedContainer->geometry(); if ( gcor==1 ) gcor=0; else gcor=1; geom.setWidth ( geom.width()-gcor ); wapiSetFSWindow ( ( HWND ) childId, geom ); wapiUpdateWindow ( ( HWND ) childId ); oldContainerSize=embedContainer->size(); oldChildPos= mapToGlobal ( QPoint ( 0,0 ) ); x2goDebug<<"Updating embedded window."; } } #endif void ONMainWindow::embedWindow ( long wndId ) { childId=wndId; embedContainer->show(); #ifdef Q_OS_LINUX x2goDebug<<"Embedding window with ID "<embedClient ( wndId ); #endif #ifdef Q_OS_WIN wapiSetParent ( ( HWND ) childId, ( HWND ) ( embedContainer->winId() ) ); oldContainerSize=embedContainer->size(); oldChildPos= ( mapToGlobal ( QPoint ( 0,0 ) )); winFlags=wapiSetFSWindow ( ( HWND ) childId, embedContainer->geometry() ); updateTimer->start ( 500 ); #endif } void ONMainWindow::detachClient() { if ( !childId ) return; #ifdef Q_OS_LINUX if ( embedContainer ) { embedContainer->discardClient(); } #endif #ifdef Q_OS_WIN wapiSetParent ( ( HWND ) childId, ( HWND ) 0 ); slotDetachProxyWindow(); updateTimer->stop(); if ( childId ) { wapiRestoreWindow ( ( HWND ) childId, winFlags, embedContainer->geometry() ); wapiMoveWindow ( ( HWND ) childId,0,0, oldContainerSize.width(), oldContainerSize.height(),true ); } #endif childId=0; } #endif //(Q_OS_DARWIN) QTNPFACTORY_BEGIN ( "X2Go Client Plug-in "VERSION, "Allows you to start X2Go sessions in a web browser." ) QTNPCLASS ( ONMainWindow ) QTNPFACTORY_END() #ifdef QAXSERVER #include QAXFACTORY_BEGIN ( "{aa3216bf-7e20-482c-84c6-06167bacb616}", "{08538ca5-eb7a-4f24-a3c4-a120c6e04dc4}" ) QAXCLASS ( ONMainWindow ) QAXFACTORY_END() #endif #endif x2goclient-4.0.5.1/src/onmainwindow.h0000644000000000000000000007530212675050177014315 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef ONMAINWINDOW_H #define ONMAINWINDOW_H #ifdef CFGPLUGIN #include #include #ifdef QAXSERVER #include #include #include #endif #endif #include "x2goclientconfig.h" //#include "CallbackInterface.h" #include #include #include #include #include #include #include "LDAPSession.h" #include #include #include #include #include #include "sshmasterconnection.h" #include "non_modal_messagebox.h" #ifdef Q_OS_WIN #include #include #endif /** @author Oleksandr Shneyder */ #if defined(CFGPLUGIN) && defined(Q_OS_LINUX) class QX11EmbedContainer; #endif class QToolButton; class QTemporaryFile; class QLineEdit; class QFrame; class QVBoxLayout; class QHBoxLayout; class QScrollArea; class UserButton; class QTextEdit; class SessionButton; class QLabel; class QProcess; class QFile; class SVGFrame; class SessionButton; class QAction; class QCheckBox; class QModelIndex; class SshMasterConnection; class IMGFrame; class QStandardItemModel; class HttpBrokerClient; class QMenu; class QComboBox; class SessionExplorer; struct user { int uin; QString uid; QString name; QPixmap foto; static bool lessThen ( user u1,user u2 ) { return u1.uid < u2.uid; } }; struct directory { QString key; QString dstKey; QString dirList; bool isRemovable; int pid; }; struct serv { QString name; float factor; float sess; bool connOk; bool operator < ( const struct serv it ) { return ( it.sess < sess ); } static bool lt ( const struct serv it, const struct serv it1 ) { return it.sess #include class ONMainWindow; class WinServerStarter: public QThread { public: enum daemon {X,SSH,PULSE}; WinServerStarter ( daemon server, ONMainWindow * par ); void run(); private: daemon mode; ONMainWindow* parent; }; #endif class SessTreeView : public QTreeView { Q_OBJECT public: SessTreeView ( QWidget* parent = 0 ) : QTreeView ( parent ) {} virtual void selectionChanged ( const QItemSelection& selected, const QItemSelection& deselected ) { emit this->selected ( currentIndex() ); QTreeView::selectionChanged ( selected, deselected ); } Q_SIGNALS: void selected ( const QModelIndex& index ); }; class ClickLineEdit; class ONMainWindow : public QMainWindow #ifdef CFGPLUGIN , public QtNPBindable #ifdef QAXSERVER , public QAxBindable #endif #endif { friend class HttpBrokerClient; friend class SessionButton; #ifdef CFGPLUGIN Q_PROPERTY ( QString x2goconfig READ x2goconfig WRITE setX2goconfig ) Q_CLASSINFO ( "ClassID", "{5a20006d-118f-4185-9653-9f98958a0008}" ) Q_CLASSINFO ( "InterfaceID", "{2df000ba-da4f-4fb7-8f35-b8dfbf80009a}" ) Q_CLASSINFO ( "EventsID", "{44900013-f8bd-4d2e-a2cf-eab407c03005}" ) Q_CLASSINFO ( "MIME", "application/x2go:x2go:Configuration File " "for X2Go Sessions" ) Q_CLASSINFO ( "ToSuperClass", "ONMainWindow" ) Q_CLASSINFO ( "DefaultProperty","x2goconfig" ) #endif Q_OBJECT public: enum { S_DISPLAY, S_STATUS, S_COMMAND, S_TYPE, S_SERVER, S_CRTIME, S_IP, S_ID }; enum { MODEM, ISDN, ADSL, WAN, LAN }; enum { D_USER, D_DISPLAY }; enum { SHADOW_VIEWONLY, SHADOW_FULL }; enum { PULSE, ARTS, ESD }; static bool debugging; static bool portable; ONMainWindow ( QWidget *parent = 0 ); ~ONMainWindow(); static void installTranslator(); QString iconsPath ( QString fname ); static bool isServerRunning ( int port ); void startNewSession(); void suspendSession ( QString sessId ); bool termSession ( QString sessId, bool warn=true ); void setStatStatus ( QString status=QString::null ); x2goSession getNewSessionFromString ( const QString& string ); void runCommand(); long findWindow ( QString text ); bool retUseLdap() { return useLdap; } bool retMiniMode() { return miniMode; } QString retLdapServer() { return ldapServer; } int retLdapPort() { return ldapPort; } QString retLdapDn() { return ldapDn; } QString retLdapServer1() { return ldapServer1; } int retLdapPort1() { return ldapPort1; } QString retLdapServer2() { return ldapServer2; } int retLdapPort2() { return ldapPort2; } QHBoxLayout* mainLayout() { return mainL; } QWidget* mainWidget() { return ( QWidget* ) fr; } static bool getPortable() { return portable; } static QString getHomeDirectory() { return homeDir; } bool getShowAdvOption() { return config.showextconfig; } bool getUsePGPCard() { return usePGPCard; } QString getCardLogin() { return cardLogin; } QString getDefaultCmd() { return defaultCmd; } QString getDefaultSshPort() { return defaultSshPort; } QString getDefaultClipboardMode() { return defaultClipboardMode; } QString getDefaultKbdType() { return defaultKbdType; } QStringList getDefaultLayout() { return defaultLayout; } QString getDefaultPack() { return defaultPack; } int getDefaultQuality() { return defaultQuality; } uint getDefaultDPI() { return defaultDPI; } bool getDefaultSetDPI() { return defaultSetDPI; } bool getEmbedMode() { return embedMode; } int getDefaultLink() { return defaultLink; } int getDefaultWidth() { return defaultWidth; } int getDefaultHeight() { return defaultHeight; } bool getDefaultSetKbd() { return defaultSetKbd; } bool getDefaultUseSound() { return defaultUseSound; } bool getDefaultFullscreen() { return defaultFullscreen; } bool sessionEditEnabled() { return !noSessionEdit; } const QList& getApplications() { return applications; } static QString getSessionConf() { return sessionCfg; } bool getHideFolderSharing() { return hideFolderSharing; } SessionExplorer* getSessionExplorer() { return sessionExplorer; } bool getBrokerMode() { return brokerMode; } bool getMiniMode() { return miniMode; } bool getAcceptRSA() { return acceptRsa; } QScrollArea* getUsersArea() { return users; } QFrame* getUsersFrame() { return uframe; } IMGFrame* getCentralFrame() { return fr; } ConfigFile* getConfig() { return &config; } void runApplication(QString exec); SshMasterConnection* findServerSshConnection(QString host); void showHelp(); void showVersion(); void showTextFile(QString file, QString title); void showGit(); void showChangelog(); void showHelpPack(); void exportDirs ( QString exports,bool removable=false ); void reloadUsers(); void setWidgetStyle ( QWidget* widget ); QStringList internApplicationsNames() { return _internApplicationsNames; } QStringList transApplicationsNames() { return _transApplicationsNames; } QString transAppName ( const QString& internAppName, bool* found=0l ); QString internAppName ( const QString& transAppName, bool* found=0l ); void setEmbedSessionActionsEnabled ( bool enable ); bool startSshd(); QSize getEmbedAreaSize(); #ifdef Q_OS_WIN static QString cygwinPath ( const QString& winPath ); void startXOrg(); void startPulsed(); static bool haveCygwinEntry(); static void removeCygwinEntry(); static QString U3DevicePath() { return u3Device; } #endif private: QString m_x2goconfig; QStringList _internApplicationsNames; QStringList _transApplicationsNames; QString portableDataPath; QString proxyErrString; bool haveTerminal; bool proxyRunning; bool drawMenu; bool extStarted; bool startMaximized; bool closeDisconnect; bool startHidden; bool keepTrayIcon; bool hideFolderSharing; bool brokerNoauthWithSessionUsername; bool defaultUseSound; bool defaultXinerama; bool cardStarted; bool defaultSetKbd; bool showExport; bool usePGPCard; bool miniMode; bool managedMode; bool brokerMode; bool changeBrokerPass; bool connTest; bool embedMode; bool thinMode; QString statusString; QString autostartApp; bool cmdAutologin; int defaultLink; int defaultQuality; int defaultWidth; int defaultHeight; bool defaultFullscreen; bool acceptRsa; bool startEmbedded; bool extLogin; bool printSupport; bool showTbTooltip; bool noSessionEdit; bool cleanAllFiles; bool PGPInited; bool resumeAfterSuspending; QString sshPort; QString clientSshPort; QString defaultSshPort; QVBoxLayout* selectSesDlgLayout; SshMasterConnection* sshConnection; QList serverSshConnections; bool closeEventSent; int shadowMode; QString shadowUser; QString shadowDisplay; QString defaultPack; QStringList defaultLayout; QString selectedLayout; QString defaultKbdType; QString defaultClipboardMode; QString defaultCmd; bool defaultSetDPI; uint defaultDPI; QStringList listedSessions; QString appDir; QString localGraphicPort; static QString homeDir; int retSessions; QList x2goServers; QList applications; QList cmdSshKeys; bool forceToShowTrayicon; //true if --tray-icon passed in command line QPushButton* bSusp; QPushButton* bTerm; QPushButton* bNew; QPushButton* bShadow; QPushButton* bShadowView; QPushButton* bCancel; QLabel* selectSessionLabel; SessTreeView* sessTv; QLineEdit* desktopFilter; QCheckBox* desktopFilterCb; SessionExplorer* sessionExplorer; IMGFrame* fr; SVGFrame *bgFrame; QLineEdit* uname; ClickLineEdit* pass; ClickLineEdit* login; QFrame* uframe; SVGFrame *passForm; QSize mwSize; bool mwMax; QPoint mwPos; SVGFrame *selectSessionDlg; SVGFrame *sessionStatusDlg; QLabel* u; QLabel* fotoLabel; QLabel* nameLabel; QLabel* passPrompt; QLabel* loginPrompt; QLabel* layoutPrompt; QLabel* slName; QLabel* slVal; QComboBox* cbLayout; QPushButton* ok; QPushButton* cancel; QString readExportsFrom; QString readLoginsFrom; QPushButton* sOk; QToolButton* sbSusp; QToolButton* sbExp; QToolButton* sbTerm; QToolButton* sbApps; QCheckBox* sbAdv; QPushButton* sCancel; QString resolution; QString kdeIconsPath; QScrollArea* users; QVBoxLayout* userl; QHBoxLayout* mainL; QHBoxLayout* bgLay; QList names; UserButton* lastUser; QString prevText; QString onserver; QString id; QString selectedCommand; QString currentKey; QTimer *exportTimer; QTimer *extTimer; QTimer *agentCheckTimer; QTimer *spoolTimer; QTimer *proxyWinTimer; QTimer *xineramaTimer; short xinSizeInc; QRect lastDisplayGeometry; QList xineramaScreens; QStyle* widgetExtraStyle; bool isPassShown; bool xmodExecuted; long proxyWinId; bool embedControlChanged; bool embedTbVisible; QLabel* statusLabel; ConfigFile config; QStandardItemModel* model; QStandardItemModel* modelDesktop; QAction *act_set; QAction *act_abclient; QAction *act_support; QAction *act_shareFolder; QAction *act_showApps; QAction *act_suspend; QAction *act_terminate; QAction *act_reconnect; QAction *act_embedContol; QAction *act_embedToolBar; QAction *act_changeBrokerPass; QAction *act_testCon; QList topActions; QToolBar *stb; QString sessionStatus; QString spoolDir; QString sessionRes; QHBoxLayout* username; QList userList; QList exportDir; QString nick; QString nfsPort; QString mntPort; static QString sessionCfg; QProcess* ssh; QProcess* soundServer; QProcess* scDaemon; QProcess* gpgAgent; QProcess* gpg; LDAPSession* ld; long embedParent; long embedChild; bool proxyWinEmbedded; bool useLdap; bool showToolBar; bool showHaltBtn; bool newSession; bool runStartApp; bool ldapOnly; bool isScDaemonOk; bool parecTunnelOk; #ifdef Q_OS_LINUX bool directRDP; #endif bool startSessSound; int startSessSndSystem; bool fsInTun; bool fsTunReady; QString fsExportKey; bool fsExportKeyReady; QString ldapServer; int ldapPort; QString ldapServer1; int ldapPort1; QString ldapServer2; int ldapPort2; QString ldapDn; QString sessionCmd; QString supportMenuFile; QString BGFile; QString SPixFile; QString LDAPSndSys; QString LDAPSndPort; bool LDAPSndStartServer; bool LDAPPrintSupport; QAction *act_edit; QAction *act_new; QAction *act_sessicon; QProcess *nxproxy; #ifndef Q_OS_WIN QProcess *sshd; bool userSshd; #else QProcess *xorg; PROCESS_INFORMATION sshd; bool winSshdStarted; static QString u3Device; bool pulseStarted; QString pulseVersionTestOutput; QProcess* pulseVersionTest; bool pulseVersionIsLegacy; QProcess* pulseServer; QStringList pulseArgs; QTimer* pulseTimer; int xDisplay; int sshdPort; bool winServersReady; QString oldEtcDir; QString oldBinDir; QString oldTmpDir; bool cyEntry; QString pulseDir; QString pulseBaseDir; QString pulseRuntimeDir; QString pulseCookieArg; int pulsePort; bool pulseNoRecord; int esdPort; bool maximizeProxyWin; int proxyWinWidth; int proxyWinHeight; QTimer* xorgLogTimer; QString xorgLogFile; QMutex xorgLogMutex; #endif QString lastFreeServer; QString cardLogin; QTextEdit* stInfo; int localDisplayNumber; SVGFrame* ln; int tunnel; int sndTunnel; int fsTunnel; QList selectedSessions; QStringList selectedDesktops; x2goSession resumingSession; bool startSound; bool restartResume; bool runRemoteCommand; bool shadowSession; int firstUid; int lastUid; QStringList sshEnv; QString agentPid; bool cardReady; HttpBrokerClient* broker; #if defined ( Q_OS_WIN) //&& defined (CFGCLIENT ) void xorgSettings(); bool startXorgOnStart; bool useInternalX; enum {VCXSRV, XMING} internalX; QString xorgExe; QString xorgOptions; QString xorgWinOptions; QString xorgFSOptions; QString xorgSAppOptions; QString xorgMDOptions; enum {WIN,FS,SAPP,MULTIDISPLAY} xorgMode; QString xorgWidth; QString xorgHeight; int waitingForX; QRect dispGeometry; #endif #ifdef Q_OS_LINUX long image, shape; #endif // Tray icon stuff based on patch from Joachim Langenbach QSystemTrayIcon *trayIcon; QMenu *trayIconMenu; QMenu *trayIconActiveConnectionMenu; QAction* appSeparator; QMenu* appMenu[Application::OTHER+1]; bool trayEnabled; bool trayMinToTray; bool trayNoclose; bool trayMinCon; bool trayMaxDiscon; bool trayAutoHidden; QString findSshKeyForServer(QString user, QString server, QString port); void loadSettings(); void showPass ( UserButton* user ); void clean(); bool defaultSession; QString defaultSessionName; QString defaultSessionId; QString defaultUserName; bool defaultUser; QString getKdeIconsPath(); QString findTheme ( QString theme ); bool initLdapSession ( bool showBox=true ); bool startSession ( const QString& id ); x2goSession getSessionFromString ( const QString& string ); void resumeSession ( const x2goSession& s ); void selectSession ( QStringList& sessions ); x2goSession getSelectedSession(); bool parseParameter ( QString param ); bool linkParameter ( QString value ); bool clipboardParameter ( QString value ); bool geometry_par ( QString value ); bool setKbd_par ( QString value ); bool ldapParameter ( QString value ); bool ldap1Parameter ( QString value ); bool ldap2Parameter ( QString value ); bool packParameter ( QString value ); bool soundParameter ( QString val ); void printError ( QString param ); void exportDefaultDirs(); QString createRSAKey(); directory* getExpDir ( QString key ); bool findInList ( const QString& uid ); void setUsersEnabled ( bool enable ); void externalLogout ( const QString& logoutDir ); void externalLogin ( const QString& loginDir ); void startGPGAgent ( const QString& login, const QString& appId ); void closeClient(); void continueNormalSession(); void continueLDAPSession(); SshMasterConnection* startSshConnection ( QString host, QString port, bool acceptUnknownHosts, QString login, QString password, bool autologin, bool krbLogin, bool getSrv=false, bool useproxy=false, SshMasterConnection::ProxyType type=SshMasterConnection::PROXYSSH, QString proxyserver=QString::null, quint16 proxyport=0, QString proxylogin=QString::null, QString proxypassword=QString::null, QString proxyKey=QString::null, bool proxyAutologin=false, bool proxyKrbLogin=false ); void setProxyWinTitle(); QRect proxyWinGeometry(); void readApplications(); void removeAppsFromTray(); void plugAppsInTray(); QMenu* initTrayAppMenu(QString text, QPixmap icon); void setTrayIconToSessionIcon(QString info); /* * Tries to get the most suitable translator for the running system. * * The first parameter file_name_start denotes the start of a potential * translation file name. Locale values will be appended to this. * * On Qt 4.7 and lower, only tries to fetch a translator for the * main language as returned by QLocale::system(). * On Qt 4.8 and higher, tries to fetch the first available translator * for the list returned by QLocale::uiLanguages(). * * If no translator is available OR the best available translator * is for an English locale, returns false and doesn't touch * the passed translator object. * Otherwise returns true and sets the translator object to loaded * translation. */ static bool get_translator (const QString file_name_start, QTranslator **translator); protected: virtual void closeEvent ( QCloseEvent* event ); virtual void hideEvent ( QHideEvent* event); #ifndef Q_OS_WIN virtual void mouseReleaseEvent ( QMouseEvent * event ); #else private slots: void slotSetWinServersReady(); void startWinServers(); void slotCheckXOrgLog(); void slotCheckXOrgConnection(); void slotCheckPulse(); void slotStartParec (); #endif private slots: void slotAppDialog(); void slotShowPassForm(); void displayUsers(); void slotAppMenuTriggered ( QAction * action ); void slotPassChanged(const QString& result); void slotResize ( const QSize sz ); void slotUnameChanged ( const QString& text ); void slotPassEnter(); void slotChangeBrokerPass(); void slotTestConnection(); void slotCheckPortableDir(); void readUsers(); void slotSelectedFromList ( UserButton* user ); void slotUnameEntered(); void slotClosePass(); void slotReadSessions(); void slotManage(); void displayToolBar ( bool ); void showSessionStatus(); void slotSshConnectionError ( QString message, QString lastSessionError ); void slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ); void slotSshServerAuthPassphrase ( SshMasterConnection* connection, bool verificationCode ); void slotSshUserAuthError ( QString error ); void slotSshConnectionOk(); void slotServSshConnectionOk(QString server); void slotChangeKbdLayout(const QString& layout); void slotSyncX(); void slotShutdownThinClient(); void slotReadApplications(bool result, QString output, int pid ); public slots: void slotConfig(); void slotNewSession(); void slotEmbedControlAction(); void slotDetachProxyWindow(); void slotActivateWindow(); void setFocus(); private slots: void slotSnameChanged ( const QString& ); void slotSelectedFromList ( SessionButton* session ); void slotSessEnter(); void slotCloseSelectDlg(); void slotActivated ( const QModelIndex& index ); void slotResumeSess(); void slotSuspendSess(); void slotTermSessFromSt(); void slotSuspendSessFromSt(); void slotTermSess(); void slotNewSess(); void slotGetBrokerAuth(); void slotGetBrokerSession(); void slotCmdMessage ( bool result,QString output, int ); void slotListSessions ( bool result,QString output, int ); void slotRetSuspSess ( bool value,QString message, int ); void slotRetTermSess ( bool result,QString output, int ); void slotRetResumeSess ( bool result,QString output, int ); void slotTunnelFailed ( bool result,QString output, int ); void slotFsTunnelFailed ( bool result,QString output, int ); void slotSndTunnelFailed ( bool result,QString output, int ); void slotCopyKey ( bool result,QString output,int ); void slotTunnelOk(int = 0); void slotFsTunnelOk(int ); void slotProxyError ( QProcess::ProcessError err ); void slotProxyFinished ( int result,QProcess::ExitStatus st ); void slotProxyStderr(); void slotProxyStdout(); void slotResumeDoubleClick ( const QModelIndex& ); void slotShowAdvancedStat(); void slotRestartProxy(); void slotTestSessionStatus(); void slotRetRunCommand ( bool result, QString output, int ); void slotGetServers ( bool result, QString output, int ); void slotListAllSessions ( bool result,QString output, int ); void slotRetExportDir ( bool result,QString output, int ); void slotResize(); void slotExportDirectory(); void slotExportTimer(); void slotAboutQt(); void slotAbout(); void slotSupport(); //trayIcon stuff void trayIconActivated(QSystemTrayIcon::ActivationReason reason); void trayMessageClicked(); void trayQuit(); void trayIconInit(); private slots: void slotSetProxyWinFullscreen(); void slotCheckPrintSpool(); void slotRereadUsers(); void slotExtTimer(); void slotStartPGPAuth(); void slotScDaemonStdOut(); void slotScDaemonStdErr(); void slotGpgFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slotScDaemonFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slotScDaemonError (QProcess::ProcessError error); void slotGpgError(); void slotCheckScDaemon(); void slotGpgAgentFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slotCheckAgentProcess(); void slotExecXmodmap(); void slotCreateSessionIcon(); void slotFindProxyWin(); void slotConfigXinerama(); void slotXineramaConfigured(); void slotAttachProxyWindow(); void slotEmbedIntoParentWindow(); void slotEmbedWindow(); void slotSndTunOk(); void slotPCookieReady ( bool result,QString output, int proc ); void slotEmbedToolBar(); void slotEmbedToolBarToolTip(); void slotHideEmbedToolBarToolTip(); void slotDesktopFilterChanged ( const QString& text ) ; void slotDesktopFilterCb ( int state ) ; void slotShadowViewSess(); void slotShadowSess(); void slotReconnectSession(); void slotStartBroker(); void slotStartNewBrokerSession (); #ifdef Q_OS_DARWIN void slotSetModMap(); void handle_xmodmap_error (QProcess &proc); private: QTimer* modMapTimer; QString kbMap; #endif private: void resizeProxyWinOnDisplay(int display); #ifdef Q_OS_LINUX long X11FindWindow ( QString text, long rootWin=0 ); #endif void addToAppNames ( QString intName, QString transName ); bool checkAgentProcess(); bool isColorDepthOk ( int disp, int sess ); void check_cmd_status(); int startSshFsTunnel(); void startX2goMount(); void cleanPrintSpool(); void cleanAskPass(); void initWidgetsEmbed(); void initWidgetsNormal(); QString getCurrentUname(); QString getCurrentPass(); void processSessionConfig(); void processCfgLine ( QString line ); void initSelectSessDlg(); void initStatusDlg(); void initPassDlg(); void printSshDError_startupFailure(); void printSshDError_noHostPubKey(); void printSshDError_noExportPubKey(); void printSshDError_noAuthorizedKeysFile(); void loadPulseModuleNativeProtocol(); void initEmbedToolBar(); #ifdef Q_OS_LINUX void startDirectRDP(); #endif void filterDesktops ( const QString& filter, bool strict=false ); void generateHostDsaKey(); void generateEtcFiles(); QString u3DataPath(); void cleanPortable(); void removeDir ( QString path ); #ifdef Q_OS_WIN void saveCygnusSettings(); void restoreCygnusSettings(); #endif #if defined (Q_OS_WIN) || defined (Q_OS_DARWIN) QString getXDisplay(); #endif ////////////////plugin stuff//////////////////// #ifdef CFGPLUGIN public slots: void setX2goconfig ( const QString& text ); public: QString x2goconfig() const { return m_x2goconfig; } #ifndef Q_OS_DARWIN public: void embedWindow ( long wndId ); void detachClient(); private: long parentId; long childId; QSize oldParentSize; #ifdef Q_OS_LINUX QX11EmbedContainer* embedContainer; #endif #ifdef Q_OS_WIN QWidget* embedContainer; QPoint oldParentPos; QPoint oldChildPos; QSize oldContainerSize; QTimer *updateTimer; int gcor; long winFlags; #endif private: QSize getWindowSize ( long winId ); void doPluginInit(); #ifdef Q_OS_WIN private slots: void slotUpdateEmbedWindow(); #endif #endif //(Q_OS_DARWIN) #endif ////////////////end of plugin stuff//////////////////// }; #endif x2goclient-4.0.5.1/src/onmainwindow_privat.h0000644000000000000000000001001212675050177015665 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef ONMAINWINDOWPRIVAT_H #define ONMAINWINDOWPRIVAT_H #include #include #include #include #include "version.h" #include "x2goclientconfig.h" #include "x2goutils.h" #include "onmainwindow.h" #include "userbutton.h" #include "exportdialog.h" #include "printprocess.h" #include "helpdialog.h" #include "appdialog.h" #include #include #include #include #include #include #include "httpbrokerclient.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "imgframe.h" #include #include "clicklineedit.h" #include #include "brokerpassdlg.h" #include "sshmasterconnection.h" #include "contest.h" #if !defined Q_OS_WIN #include #ifdef Q_OS_LINUX #include #include #include #endif // Q_OS_LINUX #endif // !defined Q_OS_WIN #include #include #include #include #include #define ldap_SUCCESS 0 #define ldap_INITERROR 1 #define ldap_OPTERROR 2 #define ldap_BINDERROR 3 #define ldap_SEARCHERROR 4 #define ldap_NOBASE 5 //LDAP attributes #define SESSIONID "sn" #define USERNAME "cn" #define CLIENT "registeredAddress" #define SERVER "postalAddress" #define RES "title" #define DISPLAY "street" #define STATUS "st" #define STARTTIME "telephoneNumber" #define CREATTIME "telexNumber" #define SUSPTIME "internationaliSDNNumber" #define SESSIONCMD "o" #define FIRSTUID "ou" #define LASTUID "l" #define SNDSUPPORT "sn" #define NETSOUNDSYSTEM "o" #define SNDSUPPORT "sn" #define SNDPORT "ou" #define STARTSNDSERVER "title" #include #include "SVGFrame.h" #include "configdialog.h" #include "editconnectiondialog.h" #include "sessionbutton.h" #include "folderbutton.h" #include "sessionexplorer.h" #include "sessionmanagedialog.h" #include "x2gologdebug.h" #include #ifdef Q_OS_WIN #include "wapi.h" #include #endif #ifdef Q_OS_LINUX #include #include #include #endif #ifdef CFGPLUGIN #ifdef Q_OS_LINUX #include #include #endif #endif #endif //ONMAINWINDOWPRIVAT_H x2goclient-4.0.5.1/src/printdialog.cpp0000644000000000000000000000526412675050177014453 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "printdialog.h" #include #include "printwidget.h" #include #include "x2gologdebug.h" #include PrintDialog::PrintDialog ( QWidget* parent, Qt::WindowFlags f ) : QDialog ( parent,f ) { x2goDebug<<"Starting print dialog."<button ( QDialogButtonBox::Ok )->setText ( tr ( "Print" ) ); pwidg=new PrintWidget ( this ); ( ( QVBoxLayout* ) ( layout() ) )->insertWidget ( 0,pwidg ); //x2goclient can stay under the nxagent window //we must start it as toplevel window and be shure //that x2goclient window will not be activated //so we must start print dialog as window setWindowFlags ( Qt::Window|Qt::WindowStaysOnTopHint ); connect ( pwidg,SIGNAL ( dialogShowEnabled ( bool ) ), this,SLOT ( slot_dlgShowEnabled ( bool ) ) ); } PrintDialog::~PrintDialog() { x2goDebug<<"Closing print dialog."<saveSettings(); QDialog::accept(); } void PrintDialog::slot_dlgShowEnabled ( bool enable ) { if ( !enable ) QMessageBox::warning ( this, tr ( "You've deactivated the X2Go " "Client printing dialog." ), tr ( "You may reactivate this dialog " "using the X2Go Client settings " "dialog. To do so, follow this path " "in the menu bar: Options -> " "Settings)" ) ); } x2goclient-4.0.5.1/src/printdialog.h0000644000000000000000000000322412675050177014112 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef PRINTDIALOG_H #define PRINTDIALOG_H #include #include "ui_printdialog.h" /** @author Oleksandr Shneyder */ class PrintWidget; class PrintDialog : public QDialog { Q_OBJECT public: PrintDialog ( QWidget* par=0, Qt::WindowFlags f = 0 ); ~PrintDialog(); private: Ui::PrintDialog ui; PrintWidget* pwidg; public slots: void accept(); private slots: void slot_dlgShowEnabled(bool); }; #endif x2goclient-4.0.5.1/src/printercmddialog.cpp0000644000000000000000000000472012675050177015462 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "printercmddialog.h" #include "x2goclientconfig.h" #ifdef Q_OS_WIN #include "printwidget.h" #endif PrinterCmdDialog::PrinterCmdDialog ( QString* cmd, bool* stdinpr, bool* ps, QWidget* parent ) : QDialog ( parent ) { ui.setupUi ( this ); printCmd=cmd; printStdIn=stdinpr; printPs=ps; ui.leCmd->setText ( *printCmd ); if ( *printStdIn ) ui.rbStdIn->setChecked ( true ); else ui.rbParam->setChecked ( true ); if ( *printPs ) ui.rbPS->setChecked ( true ); else ui.rbPDF->setChecked ( true ); connect ( ui.buttonBox, SIGNAL ( accepted() ),this,SLOT ( slot_ok() ) ); #ifdef Q_OS_WIN QString txt=tr ( "Please enter your customized or" " individual printing command.\n" "Example:\n"); QString ver,path; if(PrintWidget::gsViewInfo(ver,path)) txt+=path+" -query -color"; else txt+=tr(" -query -color"); ui.label->setText (txt); if(!PrintWidget::gsInfo(ver,path)) { ui.rbPDF->setChecked ( true ); ui.rbPS->setEnabled(false); } #endif } PrinterCmdDialog::~PrinterCmdDialog() { } void PrinterCmdDialog::slot_ok() { *printCmd=ui.leCmd->text(); *printPs=ui.rbPS->isChecked(); *printStdIn=ui.rbStdIn->isChecked(); accept(); } x2goclient-4.0.5.1/src/printercmddialog.h0000644000000000000000000000330112675050177015121 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef PRINTERCMDDIALOG_H #define PRINTERCMDDIALOG_H #include #include "ui_printercmddialog.h" /** @author Oleksandr Shneyder */ class PrinterCmdDialog : public QDialog { Q_OBJECT public: PrinterCmdDialog ( QString* cmd, bool* stdinpr, bool* ps, QWidget* parent=0l ); ~PrinterCmdDialog(); private: Ui::PrinterCmdDialog ui; bool* printStdIn; bool* printPs; QString* printCmd; private slots: void slot_ok(); }; #endif x2goclient-4.0.5.1/src/printprocess.cpp0000644000000000000000000001777112675050177014700 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2goclientconfig.h" #include "printprocess.h" #include "x2gologdebug.h" #include #include "x2gosettings.h" #include #include "printdialog.h" #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) #include "cupsprint.h" #else #include "printwidget.h" #endif #include #include #include #include "x2gologdebug.h" #ifdef Q_OS_WIN #include "wapi.h" #endif #include PrintProcess::PrintProcess ( QString pdf, QString title, QObject *parent ) : QObject ( parent ) { x2goDebug<<"Starting print process."; pdfFile=pdf; pdfTitle=title; parentWidg= ( QWidget* ) parent; if ( !loadSettings() ) { QFile::remove ( pdfFile ); return; } if ( viewPdf ) { x2goDebug<<"Opening PDF file: "<setStandardInputFile ( psFile ); connect ( proc,SIGNAL ( error ( QProcess::ProcessError ) ), this,SLOT ( slot_error ( QProcess::ProcessError ) ) ); proc->start ( printCmd ); } } else slot_pdf2psError ( QProcess::Crashed ); } bool PrintProcess::loadSettings() { X2goSettings st ( "printing" ); if ( st.setting()->value ( "showdialog",true ).toBool() ) { PrintDialog dlg; if ( dlg.exec() ==QDialog::Rejected ) return false; } viewPdf=st.setting()->value ( "pdfview",false ).toBool(); customPrintCmd=st.setting()->value ( "print/startcmd",false ).toBool(); printCmd=st.setting()->value ( "print/command","lpr" ).toString(); printStdIn= st.setting()->value ( "print/stdin",false ).toBool(); printPs=st.setting()->value ( "print/ps",false ).toBool(); pdfOpen= st.setting()->value ( "view/open",true ).toBool(); #ifndef Q_OS_WIN pdfOpenCmd=st.setting()->value ( "view/command","xpdf" ).toString(); #else winX2goPrinter= st.setting()->value ( "print/defaultprinter", wapiGetDefaultPrinter() ).toString(); #endif #ifdef Q_WS_HILDON pdfOpenCmd="run-standalone.sh dbus-send --print-reply" " --dest=com.nokia.osso_pdfviewer " "/com/nokia/osso_pdfviewer " "com.nokia.osso_pdfviewer.mime_open string:file://"; viewPdf=true; #endif return true; } void PrintProcess::openPdf() { x2goDebug<<"Opening/saving PDF ..."; if ( pdfOpen ) { #ifndef Q_OS_WIN #ifndef Q_WS_HILDON QString cmd=pdfOpenCmd+" \""+pdfFile+"\""; #else QString cmd=pdfOpenCmd+"\""+pdfFile+"\""; #endif x2goDebug<<"Using PDF viewer command: "<0 ) QFile::rename ( pdfFile,fileName ); } } void PrintProcess::print() { #ifndef Q_WS_HILDON if ( !customPrintCmd ) { #ifndef Q_OS_WIN CUPSPrint prn; prn.setCurrentPrinter ( prn.getDefaultUserPrinter() ); prn.print ( pdfFile, pdfTitle ); #else x2goDebug<<"Printing to "<setStandardInputFile ( pdfFile ); connect ( proc,SIGNAL ( error ( QProcess::ProcessError ) ), this,SLOT ( slot_error ( QProcess::ProcessError ) ) ); proc->start ( printCmd ); } } else { QStringList args; psFile=pdfFile; psFile.replace ( "pdf","ps" ); args<start ( "pdf2ps",args ); #else QString pdf2ps,ver; PrintWidget::gsInfo ( ver,pdf2ps ); QString wdir=pdf2ps; wdir.replace ( "pdf2ps.bat","" ); proc->setWorkingDirectory ( wdir ); QStringList env=QProcess::systemEnvironment(); env.replaceInStrings ( QRegExp ( "^PATH=(.*)", Qt::CaseInsensitive ), "PATH=\\1;"+wdir ); wdir.replace ( "\\lib\\","\\bin\\" ); env.replaceInStrings ( QRegExp ( "^PATH=(.*)", Qt::CaseInsensitive ), "PATH=\\1;"+wdir ); proc->setEnvironment ( env ); proc->start ( pdf2ps,args ); #endif } } } void PrintProcess::slot_error ( QProcess::ProcessError ) { QString message=tr ( "Failed to execute command:\n" ); if ( viewPdf ) message+=" "+pdfOpenCmd+ " " +pdfFile; else { message+=printCmd; if ( !printStdIn ) { message+=" "; if ( printPs ) message+=psFile; else message+=pdfFile; } } QMessageBox::critical ( 0l, tr ( "Printing error." ), message ); } void PrintProcess::slot_pdf2psError ( QProcess::ProcessError ) { QMessageBox::critical ( 0l, tr ( "Printing error." ), tr ( "Failed to execute command:\n" ) + "pdf2ps "+pdfFile+" "+psFile ); } x2goclient-4.0.5.1/src/printprocess.h0000644000000000000000000000417612675050177014340 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef PRINTPROCESS_H #define PRINTPROCESS_H #include #include #include /** @author Oleksandr Shneyder */ class PrintProcess: public QObject { Q_OBJECT public: PrintProcess ( QString pdf, QString title, QObject * parent=0l ); ~PrintProcess(); private: QString pdfFile; QString pdfTitle; QString psFile; bool viewPdf; bool customPrintCmd; bool printStdIn; bool printPs; bool pdfOpen; QString pdfOpenCmd; QWidget* parentWidg; QString printCmd; #ifdef Q_OS_WIN QString winX2goPrinter; QString winDefaultPrinter; #endif private: bool loadSettings(); private slots: void slot_processFinished ( int exitCode, QProcess::ExitStatus exitStatus ); void slot_pdf2psError ( QProcess::ProcessError error ) ; void slot_error ( QProcess::ProcessError error ); void openPdf(); void print(); }; #endif x2goclient-4.0.5.1/src/printwidget.cpp0000644000000000000000000001737312675050177014503 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "printwidget.h" #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) #include "cupsprintwidget.h" #endif #include "printercmddialog.h" #include "x2gosettings.h" #include "x2gologdebug.h" #include #ifdef Q_OS_WIN #include "wapi.h" #endif PrintWidget::PrintWidget ( QWidget* parent ) : QWidget ( parent ) { ui.setupUi ( this ); ui.rbPrint->setChecked ( true ); ui.gbView->setVisible ( false ); QVBoxLayout* lay= ( QVBoxLayout* ) ui.gbPrint->layout(); #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) ui.cbWinPrinter->hide(); ui.lWinPrinter->hide(); ui.lWinInfo->hide(); pwid=new CUPSPrintWidget ( ui.gbPrint ); lay->insertWidget ( 0,pwid ); connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),pwid, SLOT ( setDisabled ( bool ) ) ); #else #ifdef Q_OS_WIN connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),ui.cbWinPrinter, SLOT ( setDisabled ( bool ) ) ); connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),ui.lWinPrinter, SLOT ( setDisabled ( bool ) ) ); connect ( ui.cbPrintCmd,SIGNAL ( toggled ( bool ) ),ui.lWinInfo, SLOT ( setDisabled ( bool ) ) ); printers=wapiGetLocalPrinters(); defaultPrinter=wapiGetDefaultPrinter(); ui.cbWinPrinter->insertItems ( 0,printers ); int index=printers.indexOf ( defaultPrinter ); if ( index!=-1 ) ui.cbWinPrinter->setCurrentIndex ( index ); QLabel *rtfm=new QLabel ( tr ( "Please configure your client side printing settings.

" "If you want to print the created file, you'll need " "an external application. Typically you can use " "" "ghostprint and " "" "ghostview
You can find further information " "here." ), ui.gbPrint ); rtfm->setWordWrap ( true ); rtfm->setOpenExternalLinks ( true ); lay->insertWidget ( 6,rtfm ); #endif #endif connect ( ui.pbPrintCmd,SIGNAL ( clicked() ),this, SLOT ( slot_editPrintCmd() ) ); QButtonGroup* bg=new QButtonGroup(); bg->addButton ( ui.rbPrint ); bg->addButton ( ui.rbView ); loadSettings(); connect ( ui.cbShowDialog,SIGNAL ( toggled ( bool ) ), this, SIGNAL ( dialogShowEnabled ( bool ) ) ); #if (defined Q_OS_WIN) ui.label->hide(); ui.leOpenCmd->hide(); #endif #ifdef Q_WS_HILDON ui.rbView->setChecked ( true ); ui.rbPrint->hide(); ui.rbView->hide(); ui.label->hide(); ui.leOpenCmd->hide(); #endif } PrintWidget::~PrintWidget() { } void PrintWidget::slot_editPrintCmd() { QString printCmd=ui.lePrintCmd->text(); PrinterCmdDialog dlg ( &printCmd,&printStdIn,&printPs, this ); dlg.exec(); ui.lePrintCmd->setText ( printCmd ); } void PrintWidget::loadSettings() { X2goSettings st ( "printing" ); bool pdfView=st.setting()->value ( "pdfview",false ).toBool(); QString prcmd= st.setting()->value ( "print/command","" ).toString(); #ifdef Q_OS_WIN defaultPrinter= st.setting()->value ( "print/defaultprinter",defaultPrinter ).toString(); int index=printers.indexOf ( defaultPrinter ); if ( index!=-1 ) ui.cbWinPrinter->setCurrentIndex ( index ); QString ver,gspath,gsvpath; bool isGsInstalled=gsInfo ( ver,gspath ); bool isGsViewInstalled=gsViewInfo ( ver,gsvpath ); if ( prcmd=="" && ! ( isGsInstalled && isGsViewInstalled ) ) { // x2goDebug<<"fallback to view"<setChecked ( st.setting()->value ( "showdialog",true ).toBool() ); if ( pdfView ) ui.rbView->setChecked ( true ); else ui.rbPrint->setChecked ( true ); ui.cbPrintCmd->setChecked ( st.setting()->value ( "print/startcmd", false ).toBool() ); #ifndef Q_OS_WIN if ( prcmd=="" ) prcmd="lpr"; #endif ui.lePrintCmd->setText ( prcmd ); printStdIn= st.setting()->value ( "print/stdin",false ).toBool(); printPs=st.setting()->value ( "print/ps",false ).toBool(); #ifdef Q_OS_WIN printPs=printPs&&isGsInstalled; #endif if ( ( st.setting()->value ( "view/open",true ).toBool() ) ) ui.rbOpen->setChecked ( true ); else ui.rbSave->setChecked ( true ); ui.leOpenCmd->setText ( st.setting()->value ( "view/command","xpdf" ).toString() ); } void PrintWidget::saveSettings() { X2goSettings st ( "printing" ); st.setting()->setValue ( "showdialog", QVariant ( ui.cbShowDialog->isChecked () ) ); st.setting()->setValue ( "pdfview", QVariant ( ui.rbView->isChecked () ) ); st.setting()->setValue ( "print/startcmd", QVariant ( ui.cbPrintCmd->isChecked ( ) ) ); st.setting()->setValue ( "print/command", QVariant ( ui.lePrintCmd->text () ) ); st.setting()->setValue ( "print/stdin", QVariant ( printStdIn ) ); st.setting()->setValue ( "print/ps", QVariant ( printPs ) ); st.setting()->setValue ( "view/open", QVariant ( ui.rbOpen->isChecked () ) ); st.setting()->setValue ( "view/command", QVariant ( ui.leOpenCmd->text () ) ); #ifdef Q_OS_WIN st.setting()->setValue ( "print/defaultprinter", QVariant ( ui.cbWinPrinter->currentText()) ); #endif #if (!defined Q_OS_WIN) && (!defined Q_WS_HILDON) pwid->savePrinter(); #endif } #ifdef Q_OS_WIN bool PrintWidget::gsInfo ( QString& version, QString& pdf2ps ) { QSettings st ( "HKEY_LOCAL_MACHINE\\" "SOFTWARE\\GPL Ghostscript", QSettings::NativeFormat ); version="0.0"; QStringList keys=st.allKeys(); for ( int i=0;iversion.toFloat() ) { version=v; pdf2ps=libs+"\\pdf2ps.bat"; } } } if ( version.toFloat() >0.0 ) { return true; } return false; } bool PrintWidget::gsViewInfo ( QString& version, QString& gsprint ) { QSettings st ( "HKEY_LOCAL_MACHINE\\" "SOFTWARE\\Ghostgum\\GSview", QSettings::NativeFormat ); version="0.0"; QStringList keys=st.allKeys(); for ( int i=0;iversion.toFloat() ) { version=v; gsprint=libs+"\\gsview\\gsprint.exe"; } } if ( version.toFloat() >0.0 ) { return true; } return false; } #endif //Q_OS_WIN x2goclient-4.0.5.1/src/printwidget.h0000644000000000000000000000373312675050177014143 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef PRINTWIDGET_H #define PRINTWIDGET_H #include "x2goclientconfig.h" #include "ui_printwidget.h" /** @author Oleksandr Shneyder */ class CUPSPrintWidget; class PrintWidget : public QWidget { Q_OBJECT public: PrintWidget ( QWidget* parent=0l ); ~PrintWidget(); void saveSettings(); #ifdef Q_OS_WIN static bool gsInfo ( QString& version, QString& pdf2ps ); static bool gsViewInfo ( QString& version, QString& gsprint ); #endif private: Ui::PrintWidget ui; bool printPs; bool printStdIn; #ifndef Q_OS_WIN CUPSPrintWidget* pwid; #else QStringList printers; QString defaultPrinter; #endif private slots: void slot_editPrintCmd(); private: void loadSettings(); signals: void dialogShowEnabled ( bool ); }; #endif x2goclient-4.0.5.1/src/sessionbutton.cpp0000644000000000000000000006601112675050177015053 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "sessionbutton.h" #include "x2goclientconfig.h" #include "x2goutils.h" #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include #include "onmainwindow.h" #include "x2gologdebug.h" #include #include #include "sessionexplorer.h" SessionButton::SessionButton ( ONMainWindow* mw,QWidget *parent, QString id ) : SVGFrame ( ":/img/svg/sessionbut.svg",false,parent ) { editable=mw->sessionEditEnabled(); QPalette pal=palette(); pal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Active, QPalette::Text, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); pal.setColor ( QPalette::Inactive, QPalette::Text, QPalette::Mid ); setPalette(pal); QFont fnt=font(); if ( mw->retMiniMode() ) #ifdef Q_WS_HILDON fnt.setPointSize ( 10 ); #else fnt.setPointSize ( 9 ); #endif setFont ( fnt ); setFocusPolicy ( Qt::NoFocus ); bool miniMode=mw->retMiniMode(); if ( !miniMode ) setFixedSize ( 340,190 ); else setFixedSize ( 250,145 ); par= mw; connect ( this,SIGNAL ( clicked() ),this,SLOT ( slotClicked() ) ); sid=id; cmdBox=new QComboBox ( this ); cmdBox->setMouseTracking ( true ); cmdBox->setFrame ( false ); QPalette cpal=cmdBox->palette(); cpal.setColor ( QPalette::Button,QColor ( 255,255,255 ) ); cpal.setColor ( QPalette::Base,QColor ( 255,255,255 ) ); cpal.setColor ( QPalette::Window,QColor ( 255,255,255 ) ); cmdBox->setPalette ( cpal ); geomBox=new QComboBox ( this ); geomBox->setMouseTracking ( true ); geomBox->setFrame ( false ); geomBox->setEditable ( true ); geomBox->setEditable ( false ); geomBox->update(); geomBox->setPalette ( cpal ); sessName=new QLabel ( this ); sessStatus=new QLabel ( this ); fnt=sessName->font(); fnt.setBold ( true ); sessName->setFont ( fnt ); icon=new QLabel ( this ); cmd=new QLabel ( this ); cmd->setMouseTracking ( true ); serverIcon=new QLabel ( this ); geomIcon=new QLabel ( this ); geomIcon->setMouseTracking ( true ); cmdIcon=new QLabel ( this ); cmdIcon->setMouseTracking ( true ); server=new QLabel ( this ); geom=new QLabel ( this ); geom->setMouseTracking ( true ); sound=new QPushButton ( this ); soundIcon=new QLabel ( this ); sound->setPalette ( cpal ); sound->setFlat ( true ); sound->setMouseTracking ( true ); connect ( sound,SIGNAL ( clicked() ),this, SLOT ( slot_soundClicked() ) ); editBut=new QPushButton ( this ); editBut->setMouseTracking ( true ); connect ( editBut,SIGNAL ( pressed() ),this,SLOT ( slotShowMenu() ) ); editBut->setIcon ( QIcon ( par->iconsPath ( "/16x16/preferences.png" ) ) ); editBut->setIconSize ( QSize ( 16,16 ) ); editBut->setFixedSize ( 24,24 ); editBut->setFlat ( true ); editBut->setPalette ( cpal ); sessMenu=new QMenu ( this ); connect ( sessMenu,SIGNAL ( aboutToHide() ),this, SLOT ( slotMenuHide() ) ); act_edit=sessMenu->addAction ( QIcon ( mw->iconsPath ( "/16x16/edit.png" ) ), tr ( "Session preferences ..." ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) act_createIcon=sessMenu->addAction ( QIcon ( mw->iconsPath ( "/16x16/create_file.png" ) ), tr ( "Create session icon on desktop ..." ) ); #endif act_remove=sessMenu->addAction ( QIcon ( mw->iconsPath ( "/16x16/delete.png" ) ), tr ( "Delete session" ) ); connect ( act_edit,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotEdit() ) ); connect ( act_remove,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotRemove() ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) connect ( act_createIcon,SIGNAL ( triggered ( bool ) ),this, SLOT ( slotCreateSessionIcon() ) ); #endif editBut->setToolTip ( tr ( "Session actions" ) ); cmdBox->setToolTip ( tr ( "Select type" ) ); geomBox->setToolTip ( tr ( "Select resolution" ) ); sound->setToolTip ( tr ( "Toggle sound support" ) ); icon->move ( 10,10 ); if ( !miniMode ) { sessName->move ( 80,34 ); sessStatus->move(80,50); editBut->move ( 307,156 ); serverIcon->move ( 58,84 ); server->move ( 80,84 ); cmdIcon->move ( 58,108 ); cmd->move ( 80,108 ); cmdBox->move ( 80,108 ); geomIcon->move ( 58,132 ); geom->move ( 80,132 ); geomBox->move ( 80,132 ); soundIcon->move ( 58,156 ); sound->move ( 76,156 ); } else { editBut->move ( 218,113 ); sessName->move ( 64,11 ); sessStatus->hide(); serverIcon->move ( 66,44 ); server->move ( 88,44 ); cmdIcon->move ( 66,68 ); cmd->move ( 88,68 ); cmdBox->move ( 88,68 ); geomIcon->move ( 66,92 ); geom->move ( 88,92 ); geomBox->move ( 88,92 ); soundIcon->move ( 66,116 ); sound->move ( 86,116 ); } if (mw->brokerMode) { icon->move(10,30); sessName->move(90,50); sessStatus->move(90,70); setFixedHeight(120); } cmdBox->hide(); geomBox->hide(); QPixmap spix; spix.load ( par->iconsPath ( "/16x16/session.png" ) ); serverIcon->setPixmap ( spix ); serverIcon->setFixedSize ( 16,16 ); QPixmap rpix; rpix.load ( par->iconsPath ( "/16x16/resolution.png" ) ); geomIcon->setPixmap ( rpix ); geomIcon->setFixedSize ( 16,16 ); QPixmap apix; apix.load ( par->iconsPath ( "/16x16/audio.png" ) ); soundIcon->setPixmap ( apix ); soundIcon->setFixedSize ( 16,16 ); redraw(); connect ( cmdBox,SIGNAL ( activated ( const QString& ) ),this, SLOT ( slot_cmd_change ( const QString& ) ) ); connect ( geomBox,SIGNAL ( activated ( const QString& ) ),this, SLOT ( slot_geom_change ( const QString& ) ) ); editBut->setFocusPolicy ( Qt::NoFocus ); sound->setFocusPolicy ( Qt::NoFocus ); cmdBox->setFocusPolicy ( Qt::NoFocus ); geomBox->setFocusPolicy ( Qt::NoFocus ); setMouseTracking(true); if (!editable) { editBut->hide(); cmdBox->hide(); geomBox->hide(); sessMenu->hide(); sound->setEnabled(false); } if (mw->brokerMode) { cmd->hide(); cmdIcon->hide(); server->hide(); serverIcon->hide(); geom->hide(); geomIcon->hide(); sound->hide(); soundIcon->hide(); } } SessionButton::~SessionButton() {} void SessionButton::slotClicked() { emit sessionSelected ( this ); } void SessionButton::slotEdit() { // editBut->setFlat ( true ); emit signal_edit ( this ); } void SessionButton::slotRemove() { emit ( signal_remove ( this ) ); } void SessionButton::redraw() { bool snd; X2goSettings *st; if (par->brokerMode) st=new X2goSettings(par->config.iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); QString name=st->setting()->value ( sid+"/name", ( QVariant ) tr ( "New Session" ) ).toString(); QStringList tails=name.split("/",QString::SkipEmptyParts); if(tails.count()>0) { name=tails.last(); tails.pop_back(); path=tails.join("/"); } QFontMetrics metr(sessName->font()); nameofSession=name; QString elName=metr.elidedText(name, Qt::ElideRight, 250); sessName->setText (elName); sessName->setToolTip(nameofSession); QString status=st->setting()->value ( sid+"/status", ( QVariant ) QString::null ).toString(); if (status == "R") { sessStatus->setText("("+tr("running")+")"); } if (status == "S") { sessStatus->setText("("+tr("suspended")+")"); } QString sessIcon = wrap_legacy_resource_URIs (st->setting()->value (sid+"/icon", (QVariant) ":/img/icons/128x128/x2gosession.png" ).toString ()); sessIcon = expandHome(sessIcon); QPixmap* pix; x2goDebug << "Creating QPixmap with session icon: " << sessIcon.toAscii () << "."; if (!par->brokerMode || sessIcon == ":/img/icons/128x128/x2gosession.png") pix=new QPixmap( sessIcon ); else { pix=new QPixmap; pix->loadFromData(QByteArray::fromBase64(sessIcon.toAscii())); } if ( !par->retMiniMode() ) icon->setPixmap ( pix->scaled ( 64,64,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); else icon->setPixmap ( pix->scaled ( 48,48,Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) ); delete pix; QString sv=st->setting()->value ( sid+"/host", ( QVariant ) QString::null ).toString(); QString uname=st->setting()->value ( sid+"/user", ( QVariant ) QString::null ).toString(); server->setText ( uname+"@"+sv ); QString command=st->setting()->value ( sid+"/command", ( QVariant ) tr ( "KDE" ) ). toString(); rootless=st->setting()->value ( sid+"/rootless", false ).toBool(); published=st->setting()->value ( sid+"/published", false ).toBool(); cmdBox->clear(); cmdBox->addItem ( "KDE" ); cmdBox->addItem ( "GNOME" ); cmdBox->addItem ( "LXDE" ); cmdBox->addItem ( "XFCE" ); cmdBox->addItem ( "MATE" ); cmdBox->addItem ( "UNITY" ); cmdBox->addItem ( "CINNAMON" ); cmdBox->addItem ( "TRINITY" ); cmdBox->addItem ( "OPENBOX" ); cmdBox->addItem ( "ICEWM" ); cmdBox->addItem ( tr ( "RDP connection" ) ); cmdBox->addItem ( tr ( "XDMCP" ) ); cmdBox->addItem ( tr ( "Connection to local desktop" ) ); cmdBox->addItem ( tr ( "Published applications" ) ); cmdBox->addItems ( par->transApplicationsNames() ); bool directRDP=false; QPixmap cmdpix; if ( command=="KDE" ) { cmdpix.load ( par->iconsPath ( "/16x16/kde.png" ) ); cmdBox->setCurrentIndex ( KDE ); } else if ( command =="GNOME" ) { cmdpix.load ( par->iconsPath ( "/16x16/gnome.png" ) ); cmdBox->setCurrentIndex ( GNOME ); } else if ( command =="UNITY" ) { cmdpix.load ( par->iconsPath ( "/16x16/unity.png" ) ); cmdBox->setCurrentIndex ( UNITY ); } else if ( command == "XFCE" ) { cmdpix.load ( par->iconsPath ( "/16x16/xfce.png" ) ); cmdBox->setCurrentIndex ( XFCE ); } else if ( command == "MATE" ) { cmdpix.load ( par->iconsPath ( "/16x16/mate.png" ) ); cmdBox->setCurrentIndex ( MATE ); } else if ( command =="LXDE" ) { cmdpix.load ( par->iconsPath ( "/16x16/lxde.png" ) ); cmdBox->setCurrentIndex ( LXDE ); } else if ( command == "CINNAMON" ) { cmdpix.load ( par->iconsPath ( "/16x16/cinnamon.png" ) ); cmdBox->setCurrentIndex ( CINNAMON ); } else if ( command == "TRINITY" ) { cmdpix.load ( par->iconsPath ( "/16x16/trinity.png" ) ); cmdBox->setCurrentIndex ( TRINITY ); } else if ( command == "OPENBOX" ) { cmdpix.load ( par->iconsPath ( "/16x16/openbox.png" ) ); cmdBox->setCurrentIndex ( OPENBOX ); } else if ( command == "ICEWM" ) { cmdpix.load ( par->iconsPath ( "/16x16/icewm.png" ) ); cmdBox->setCurrentIndex ( ICEWM ); } else if ( command =="SHADOW" ) { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmdBox->setCurrentIndex ( SHADOW ); command=tr ( "Connection to local desktop" ); } else if ( command =="RDP" ) { if (st->setting()->value ( sid+"/directrdp", ( QVariant ) false ).toBool()) directRDP=true; cmdpix.load ( par->iconsPath ( "/16x16/rdp.png" ) ); cmdBox->setCurrentIndex ( RDP ); command=tr ( "RDP connection" ); } else if ( command =="XDMCP" ) { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmdBox->setCurrentIndex ( XDMCP ); command=tr ( "XDMCP" ); } else if (published) { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); command=tr ("Published applications"); cmdBox->setCurrentIndex (PUBLISHED); } else { cmdpix.load ( par->iconsPath ( "/16x16/X.png" ) ); command=par->transAppName ( command ); int id= cmdBox->findText ( command ); if ( id ==-1 ) { cmdBox->addItem ( command ); cmdBox->setCurrentIndex ( cmdBox->count()-1 ); } else cmdBox->setCurrentIndex ( id ); } cmdIcon->setPixmap ( cmdpix ); cmd->setText ( command ); geomBox->clear(); geomBox->addItem ( tr ( "fullscreen" ) ); uint displays=QApplication::desktop()->numScreens(); if (!directRDP) for (uint i=0; iaddItem ( tr( "Display " )+QString::number(i+1)); //add maximun available area geomBox->addItem( QString::number(QApplication::desktop()->availableGeometry(i).width()) + "x" + QString::number(QApplication::desktop()->availableGeometry(i).height())); } #ifndef Q_WS_HILDON geomBox->addItem ( "1440x900" ); geomBox->addItem ( "1280x1024" ); geomBox->addItem ( "1024x768" ); geomBox->addItem ( "800x600" ); #else geomBox->addItem ( tr ( "window" ) ); #endif if ( st->setting()->value ( sid+"/fullscreen", ( QVariant ) false ).toBool() ) { geom->setText ( tr ( "fullscreen" ) ); } else if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool() && !directRDP) { uint disp=st->setting()->value ( sid+"/display", ( QVariant ) 1 ).toUInt(); if (disp<=displays) { geom->setText( tr( "Display " )+QString::number(disp)); } else { geom->setText( tr( "Display " )+QString::number(1)); } for (int i=0; icount(); ++i) if (geomBox->itemText(i)==geom->text()) { geomBox->setCurrentIndex(i); break; } } else { #ifndef Q_WS_HILDON QString g=QString::number ( st->setting()->value ( sid+"/width" ).toInt() ); g+="x"+QString::number ( st->setting()->value ( sid+"/height" ).toInt() ); geom->setText ( g ); if ( geomBox->findText ( g ) ==-1 ) geomBox->addItem ( g ); geomBox->setCurrentIndex ( geomBox->findText ( g ) ); #else geom->setText ( tr ( "window" ) ); geomBox->setCurrentIndex ( 1 ); #endif } if (directRDP) { geomBox->addItem ( tr("Maximum") ); if (st->setting()->value ( sid+"/maxdim", ( QVariant ) false ).toBool()) { geom->setText ( tr("Maximum") ); geomBox->setCurrentIndex ( geomBox->findText ( tr("Maximum") )); } } snd=st->setting()->value ( sid+"/sound", ( QVariant ) true ).toBool(); if ( snd ) sound->setText ( tr ( "Enabled" ) ); else sound->setText ( tr ( "Disabled" ) ); soundIcon->setEnabled ( snd ); QFontMetrics fm ( sound->font() ); sound->setFixedSize ( fm.size ( Qt::TextSingleLine,sound->text() ) + QSize ( 8,4 ) ); sessName->setMinimumSize ( sessName->sizeHint() ); geom->setMinimumSize ( geom->sizeHint() ); cmd->setMinimumSize ( cmd->sizeHint() ); server->setMinimumSize ( server->sizeHint() ); delete st; } void SessionButton::mousePressEvent ( QMouseEvent * event ) { SVGFrame::mousePressEvent ( event ); loadBg ( ":/img/svg/sessionbut_grey.svg" ); } void SessionButton::mouseReleaseEvent ( QMouseEvent * event ) { SVGFrame::mouseReleaseEvent ( event ); int x=event->x(); int y=event->y(); loadBg ( ":/img/svg/sessionbut.svg" ); if ( x>=0 && x< width() && y>=0 && yisVisible() ) if ( event->x() > cmd->x() && event->x() < cmd->x() + cmd->width() && event->y() >cmd->y() && event->y() y() + cmd->height() ) { if ( cmdBox->width() width() ) cmdBox->setFixedWidth ( cmd->width() +20 ); if ( cmdBox->height() !=cmd->height() ) cmdBox->setFixedHeight ( cmd->height() ); cmd->hide(); cmdBox->show(); } if ( cmdBox->isVisible() ) if ( event->x() < cmdBox->x() || event->x() > cmdBox->x() + cmdBox->width() || event->y() y() || event->y() >cmdBox->y() + cmdBox->height() ) { cmdBox->hide(); cmd->show(); } if ( sound->isFlat() ) { if ( event->x() > sound->x() && event->x() < sound->x() + sound->width() && event->y() >sound->y() && event->y() y() + sound->height() ) { sound->setFlat ( false ); } } else { if ( event->x() < sound->x() || event->x() > sound->x() + sound->width() || event->y() y() || event->y() >sound->y() + sound->height() ) { sound->setFlat ( true ); } } if ( editBut->isFlat() ) { if ( event->x() > editBut->x() && event->x() < editBut->x() + editBut->width() && event->y() >editBut->y() && event->y() y() + editBut->height() ) editBut->setFlat ( false ); } else { if ( event->x() < editBut->x() || event->x() > editBut->x() + editBut->width() || event->y() y() || event->y() >editBut->y() + editBut->height() ) editBut->setFlat ( true ); } if ( geom->isVisible() ) if ( event->x() > geom->x() && event->x() < geom->x() + geom->width() && event->y() >geom->y() && event->y() y() + geom->height() ) { if ( geomBox->width() width() ) geomBox->setFixedWidth ( geom->width() +20 ); if ( geomBox->height() !=geom->height() ) geomBox->setFixedHeight ( geom->height() ); geom->hide(); geomBox->show(); } if ( geomBox->isVisible() ) if ( event->x() < geomBox->x() || event->x() > geomBox->x() + geomBox->width() || event->y() y() || event->y() >geomBox->y() + geomBox->height() ) { geomBox->hide(); geom->show(); } } void SessionButton::slot_soundClicked() { bool snd=!soundIcon->isEnabled(); soundIcon->setEnabled ( snd ); if ( snd ) sound->setText ( tr ( "Enabled" ) ); else sound->setText ( tr ( "Disabled" ) ); QFontMetrics fm ( sound->font() ); sound->setFixedSize ( fm.size ( Qt::TextSingleLine,sound->text() ) + QSize ( 8,4 ) ); X2goSettings st ( "sessions" ); st.setting()->setValue ( sid+"/sound", ( QVariant ) snd ); st.setting()->sync(); } void SessionButton::slot_cmd_change ( const QString& command ) { cmd->setText ( command ); QPixmap pix; bool newRootless=rootless; published=false; QString cmd=command; if ( command=="KDE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/kde.png" ) ); } else if ( command =="GNOME" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/gnome.png" ) ); } else if ( command =="LXDE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/lxde.png" ) ); } else if ( command =="UNITY" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/unity.png" ) ); } else if ( command == "XFCE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/xfce.png" ) ); } else if ( command == "MATE" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/mate.png" ) ); } else if ( command == "CINNAMON" ) { newRootless=false; // As of 2014-10-01, Cinnamon does not have a logo. This icon is the // gear, which is the default start menu icon as of 2.2. pix.load ( par->iconsPath ( "/16x16/cinnamon.png" ) ); } else if ( command == "TRINITY" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/trinity.png" ) ); } else if ( command == "OPENBOX" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/openbox.png" ) ); } else if ( command == "ICEWM" ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/icewm.png" ) ); } else if ( command ==tr ( "Connection to local desktop" ) ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmd="SHADOW"; } else if ( command == tr ( "RDP connection" ) ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/rdp.png" ) ); cmd="RDP"; } else if ( command == tr ( "XDMCP" ) ) { newRootless=false; pix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmd="XDMCP"; } else pix.load ( par->iconsPath ( "/16x16/X.png" ) ); cmdIcon->setPixmap ( pix ); X2goSettings st ( "sessions" ); if ( command=="startkde" ) { cmd="KDE"; newRootless=false; } if ( command=="gnome-session" ) { cmd="GNOME"; newRootless=false; } if ( command=="LXDE" ) { cmd="LXDE"; newRootless=false; } if ( command=="unity" ) { cmd="UNITY"; newRootless=false; } if ( command=="xfce4-session" ) { cmd="XFCE"; newRootless=false; } if ( command=="mate-session" ) { cmd="MATE"; newRootless=false; } if ( command=="cinnamon-session" ) { cmd="CINNAMON"; newRootless=false; } if (command== tr("Published applications")) { published=true; cmd="PUBLISHED"; } bool found=false; cmd=par->internAppName ( cmd,&found ); if ( found ) newRootless=true; st.setting()->setValue ( sid+"/command", ( QVariant ) cmd ); st.setting()->setValue ( sid+"/rootless", ( QVariant ) newRootless ); st.setting()->setValue ( sid+"/published", ( QVariant ) published ); st.setting()->sync(); } void SessionButton::slot_geom_change ( const QString& new_g ) { geom->setText ( new_g ); X2goSettings st ( "sessions" ); if ( new_g==tr ( "fullscreen" ) ) { st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) true ); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) false ); } else if ( new_g==tr ( "Maximum" )) { st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) false ); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) true ); } else if (new_g.indexOf(tr("Display "))==0) { QString g= new_g; g.replace(tr("Display "),""); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) true ); st.setting()->setValue ( sid+"/display", ( QVariant ) g.toUInt()); st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) false ); } else { QString new_geom=new_g; #ifdef Q_WS_HILDON new_geom="800x600"; #endif st.setting()->setValue ( sid+"/fullscreen", ( QVariant ) false ); st.setting()->setValue ( sid+"/multidisp", ( QVariant ) false ); st.setting()->setValue ( sid+"/maxdim", ( QVariant ) false ); QStringList lst=new_geom.split ( 'x' ); st.setting()->setValue ( sid+"/width", ( QVariant ) lst[0] ); st.setting()->setValue ( sid+"/height", ( QVariant ) lst[1] ); } st.setting()->sync(); } bool SessionButton::lessThen ( const SessionButton* b1, const SessionButton* b2 ) { return b1->sessName->text().toLower().localeAwareCompare ( b2->sessName->text().toLower() ) <0; } QString SessionButton::name() { return nameofSession; } void SessionButton::slotMenuHide() { editBut->setDown ( false ); editBut->setFlat ( true ); } void SessionButton::slotShowMenu() { sessMenu->popup ( mapToGlobal ( QPoint ( editBut->x() +editBut->width(), editBut->y() +editBut->height() ) ) ); } void SessionButton::slotCreateSessionIcon() { par->getSessionExplorer()->slotCreateDesktopIcon ( this ); } x2goclient-4.0.5.1/src/sessionbutton.h0000644000000000000000000000634512675050177014524 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SESSIONBUTTON_H #define SESSIONBUTTON_H #include "SVGFrame.h" #include #include class ONMainWindow; class QComboBox; class QPushButton; /** @author Oleksandr Shneyder */ class SessionButton : public SVGFrame { Q_OBJECT public: enum {KDE,GNOME,LXDE,XFCE,MATE,UNITY,CINNAMON,TRINITY,OPENBOX,ICEWM,RDP,XDMCP,SHADOW,PUBLISHED,OTHER,APPLICATION}; SessionButton ( ONMainWindow* mw, QWidget* parent,QString id ); ~SessionButton(); QString id() { return sid; } void redraw(); const QPixmap* sessIcon() { return icon->pixmap(); } static bool lessThen ( const SessionButton* b1, const SessionButton* b2 ); QString name(); QString getPath() { return path; } void setPath(QString path) { this->path=path; } private: QString nameofSession; QString sid; QString path; QLabel* sessName; QLabel* sessStatus; QLabel* icon; QComboBox* cmdBox; QLabel* cmd; QLabel* serverIcon; QLabel* geomIcon; QLabel* cmdIcon; QLabel* server; QPushButton* editBut; QLabel* geom; QMenu* sessMenu; QComboBox* geomBox; QPushButton* sound; QLabel* soundIcon; ONMainWindow* par; QAction* act_edit; QAction* act_createIcon; QAction* act_remove; bool rootless; bool published; bool editable; private slots: void slotClicked(); void slotEdit(); void slot_soundClicked(); void slot_cmd_change ( const QString& command ); void slot_geom_change ( const QString& new_g ); void slotRemove(); void slotMenuHide(); void slotShowMenu(); void slotCreateSessionIcon(); signals: void sessionSelected ( SessionButton* ); void signal_edit ( SessionButton* ); void signal_remove ( SessionButton* ); void clicked(); protected: virtual void mouseMoveEvent ( QMouseEvent * event ); virtual void mousePressEvent ( QMouseEvent * event ); virtual void mouseReleaseEvent ( QMouseEvent * event ); }; #endif x2goclient-4.0.5.1/src/sessionexplorer.cpp0000644000000000000000000004505112675050177015401 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "sessionexplorer.h" #include "sessionbutton.h" #include "folderbutton.h" #include "editconnectiondialog.h" #include "onmainwindow.h" #include #include #include "x2gosettings.h" #include #include #include #include #include "x2goutils.h" #include "imgframe.h" #include #include "x2gologdebug.h" #include #include SessionExplorer::SessionExplorer(ONMainWindow* p):QObject(p) { parent=p; lastSession=0; backButton=new QToolButton(parent->getCentralFrame()); backButton->setIcon(QIcon( parent->iconsPath ( "/32x32/tbhide.png" ))); backButton->setAutoRaise(true); pathLabel=new QLabel(" ",parent->getCentralFrame()); backButton->setFixedWidth(36); navigationLayout=new QHBoxLayout(); navigationLayout->addWidget(backButton); navigationLayout->addWidget(pathLabel); backButton->setToolTip(tr("Back")); QPalette pal=backButton->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::Base, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::Button, QColor ( 110,112,127,255 ) ); backButton->setPalette(pal); backButton->setAutoFillBackground(true); pal=pathLabel->palette(); pal.setBrush ( QPalette::Window, QColor ( 110,112,127,255 ) ); pal.setBrush ( QPalette::WindowText, QColor ( 200,200,200,255 ) ); pathLabel->setPalette(pal); pathLabel->setAutoFillBackground(true); setNavigationVisible(false); connect(backButton,SIGNAL(clicked(bool)), this, SLOT(slotLevelUp())); } SessionExplorer::~SessionExplorer() { } void SessionExplorer::resize() { pathLabel->setMaximumWidth(parent->getUsersArea()->width()-backButton->width()); QFontMetrics metrics(pathLabel->font()); QString displayText = metrics.elidedText(" "+currentPath, Qt::ElideLeft, pathLabel->width()-6); pathLabel->setText(displayText); } void SessionExplorer::cleanSessions() { for ( int i=0; iclose(); sessions.clear(); for ( int i=0; iclose(); folders.clear(); } void SessionExplorer::exportsEdit ( SessionButton* bt ) { EditConnectionDialog dlg (false, bt->id(),parent,3 ); if ( dlg.exec() ==QDialog::Accepted ) { bt->redraw(); bool vis=bt->isVisible(); placeButtons(); parent->getUsersArea()->ensureVisible ( bt->x(),bt->y(),50,220 ); bt->setVisible ( vis ); } } void SessionExplorer::getFoldersFromConfig() { X2goSettings *st; if (parent->getBrokerMode()) st=new X2goSettings(parent->getConfig()->iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); QStringList folders=st->setting()->childKeys(); QString folder; foreach(folder,folders) { if(folder.indexOf("icon_")==0) { folder=folder.mid(strlen("icon_")); folder.replace("::","/"); if(findFolder(folder)==-1) createFolder(folder); } } } void SessionExplorer::slotEdit ( SessionButton* bt ) { EditConnectionDialog dlg (false, bt->id(),parent ); if ( dlg.exec() ==QDialog::Accepted ) { bt->redraw(); placeButtons(); parent->getUsersArea()->ensureVisible ( bt->x(),bt->y(),50,220 ); } } void SessionExplorer::slotCreateDesktopIcon ( SessionButton* bt ) { QMessageBox messageBox(QMessageBox::Question, tr ( "Create session icon on desktop." ), tr ( "Desktop icons can be configured " "not to show X2Go Client (hidden mode.) " "If you like to use this feature you'll " "need to configure login via a GPG key " "or GPG Smart Card.\n\n" "Use X2Go Client's hidden mode?" ), QMessageBox::Yes|QMessageBox::No, parent); //adding a chekbox to know if user want to enable trayicon in hide sessions QCheckBox cbShowTrayIcon(tr("Show session tray icon when running")); messageBox.layout()->addWidget(&cbShowTrayIcon); QGridLayout* gridLayout = (QGridLayout*) messageBox.layout(); gridLayout->addWidget(&cbShowTrayIcon, gridLayout->rowCount(), 0, 1, gridLayout->columnCount()); cbShowTrayIcon.blockSignals(true); //getting the result bool crHidden = (messageBox.exec() == QMessageBox::Yes); bool bShowTrayicon = (cbShowTrayIcon.checkState() == Qt::Checked); X2goSettings st ( "sessions" ); QString name=st.setting()->value ( bt->id() +"/name", ( QVariant ) tr ( "New Session" ) ).toString() ; // PyHoca-GUI uses the slash as separator for cascaded menus, so let's handle these on the file system name.replace("/","::"); QString sessIcon = wrap_legacy_resource_URIs (st.setting ()->value (bt->id() + "/icon", (QVariant) ":/img/icons/128x128/x2gosession.png" ).toString ()); sessIcon = expandHome(sessIcon); if ( sessIcon.startsWith ( ":/img/icons",Qt::CaseInsensitive ) || !sessIcon.endsWith ( ".png",Qt::CaseInsensitive ) ) { sessIcon="/usr/share/x2goclient/icons/x2gosession.png"; } QString cmd="x2goclient"; QStringList args; if ( crHidden ) args << "--hide"; if (bShowTrayicon) args << "--tray-icon"; args << QString ("--sessionid=" + bt->id ()); #ifndef Q_OS_WIN QFile file ( QDesktopServices::storageLocation ( QDesktopServices::DesktopLocation ) +"/"+name+".desktop" ); if ( !file.open ( QIODevice::WriteOnly | QIODevice::Text ) ) return; QTextStream out ( &file ); out << "[Desktop Entry]\n"<< "Exec="<getUsersFrame(),id ); sessions.append ( l ); connect ( l,SIGNAL ( signal_edit ( SessionButton* ) ), this,SLOT ( slotEdit ( SessionButton* ) ) ); connect ( l,SIGNAL ( signal_remove ( SessionButton* ) ), this,SLOT ( slotDeleteButton ( SessionButton* ) ) ); connect ( l,SIGNAL ( sessionSelected ( SessionButton* ) ),parent, SLOT ( slotSelectedFromList ( SessionButton* ) ) ); if(l->getPath()!="") { if(findFolder(l->getPath())==-1) { createFolder(l->getPath()); } } return l; } void SessionExplorer::placeButtons() { getFoldersFromConfig(); setNavigationVisible(currentPath.length()>0); resize(); int currentVerticalPosition=0; qSort ( sessions.begin(),sessions.end(),SessionButton::lessThen ); qSort ( folders.begin(), folders.end(), FolderButton::lessThen ); for ( int i=0; igetPath() != currentPath) { folders[i]->hide(); continue; } if ( parent->getMiniMode() ) { folders[i]->move ( ( parent->getUsersArea()->width()-260 ) /2, currentVerticalPosition+5 ); currentVerticalPosition+=170; } else { folders[i]->move ( ( parent->getUsersArea()->width()-360 ) /2, currentVerticalPosition+5 ); currentVerticalPosition+=230; } folders[i]->show(); folders[i]->setChildrenList(getFolderChildren(folders[i])); } for ( int i=0; igetPath() != currentPath) { sessions[i]->hide(); continue; } int horizontalPosition=(parent->getMiniMode())?(parent->getUsersArea()->width()-260 ) /2:(parent->getUsersArea()->width()-360 ) /2; sessions[i]->move ( horizontalPosition, currentVerticalPosition+5 ); if(parent->getBrokerMode()) { currentVerticalPosition+=150; } else { if ( parent->getMiniMode() ) { currentVerticalPosition+=170; } else { currentVerticalPosition+=230; } } sessions[i]->show(); } if ( currentVerticalPosition ) { parent->getUsersFrame()->setFixedHeight ( currentVerticalPosition); } } QStringList SessionExplorer::getFolderChildren(FolderButton* folder) { QStringList children; QString normPath=(folder->getPath()+"/"+folder->getName()).split("/",QString::SkipEmptyParts).join("/"); for(int i=0; igetPath()==normPath) children<getName(); } for(int i=0; igetPath()==normPath) children<name(); } return children; } void SessionExplorer::slotDeleteButton ( SessionButton * bt ) { if ( QMessageBox::warning ( parent,bt->name(), tr ( "Are you sure you want to delete this session?" ), QMessageBox::Yes,QMessageBox::No ) !=QMessageBox::Yes ) return; X2goSettings st ( "sessions" ); st.setting()->beginGroup ( bt->id() ); st.setting()->remove ( "" ); st.setting()->sync(); sessions.removeAll ( bt ); bt->close(); placeButtons(); parent->getUsersArea()->ensureVisible ( 0,0,50,220 ); } void SessionExplorer::setNavigationVisible(bool value) { backButton->setVisible(value); pathLabel->setVisible(value); } void SessionExplorer::createFolder(QString path) { QStringList tails=path.split("/"); QStringList currentPath; for(int i=0; igetUsersFrame(),currentPath.join("/"), tails.last()); connect(fb, SIGNAL(folderSelected(FolderButton*)), this, SLOT(slotFolderSelected(FolderButton*))); folders<getPath()+"/"+folders[i]->getName()).split("/",QString::SkipEmptyParts).join("/"); if(normPath==path) return i; } return -1; } void SessionExplorer::slotFolderSelected(FolderButton* bt) { currentPath=(bt->getPath()+"/"+bt->getName()).split("/",QString::SkipEmptyParts).join("/"); placeButtons(); } void SessionExplorer::slotLevelUp() { QStringList levels=currentPath.split("/",QString::SkipEmptyParts); if(levels.count()) { levels.pop_back(); currentPath=levels.join("/"); } placeButtons(); } void SessionExplorer::setFolderIcon(QString path, QString icon) { QPixmap pix(icon); if(!pix.isNull()) { pix=pix.scaled(64,64,Qt::KeepAspectRatio, Qt::SmoothTransformation); path=path.split("/",QString::SkipEmptyParts).join("::"); X2goSettings *st; if (parent->getBrokerMode()) st=new X2goSettings(parent->getConfig()->iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); QByteArray bytes; QBuffer buffer(&bytes); buffer.open(QIODevice::WriteOnly); pix.save(&buffer,"PNG"); x2goDebug<<"Save: "<setting()->setValue("icon_"+path, QString(bytes.toBase64())); st->setting()->sync(); FolderButton* b; foreach(b, folders) { if((b->getPath()+"/"+b->getName()).split("/",QString::SkipEmptyParts).join("::")==path) { b->loadIcon(); break; } } } } void SessionExplorer::createNewFolder(QString path) { X2goSettings *st; if (parent->getBrokerMode()) st=new X2goSettings(parent->getConfig()->iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); if(findFolder(path)==-1) { QString name=path; name.replace("/","::"); st->setting()->setValue(name, QByteArray()); st->setting()->sync(); createFolder(path); placeButtons(); } } void SessionExplorer::renameFolder(QString oldPath, QString currentPath) { FolderButton* b; oldPath=oldPath.split("/",QString::SkipEmptyParts).join("/"); currentPath=currentPath.split("/",QString::SkipEmptyParts).join("/"); QStringList parts=oldPath.split("/",QString::SkipEmptyParts); QString oldName=parts.last(); parts.pop_back(); QString pathOfFolder=parts.join("/"); foreach(b, folders) { if(b->getPath()==pathOfFolder && b->getName()==oldName) { b->setName(currentPath.split("/",QString::SkipEmptyParts).last()); } if((b->getPath()+"/").indexOf(oldPath+"/")==0) { QString newPath=currentPath+b->getPath().mid(oldPath.length()); b->setPath(newPath); } } SessionButton* s; foreach(s, sessions) { if((s->getPath()+"/").indexOf(oldPath+"/")==0) { QString newPath=currentPath+s->getPath().mid(oldPath.length()); s->setPath(newPath); } } if((this->currentPath+"/").indexOf(oldPath+"/")==0) { this->currentPath=currentPath+this->currentPath.mid(oldPath.length()); } X2goSettings *st; if (parent->getBrokerMode()) st=new X2goSettings(parent->getConfig()->iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); QStringList folders=st->setting()->childKeys(); QString folder; foreach(folder,folders) { QString fname=folder; folder.replace("::","/"); if((folder+"/").indexOf(oldPath+"/")==0) { QVariant value=st->setting()->value(fname); folder=currentPath+folder.mid(oldPath.length()); folder.replace("/","::"); st->setting()->setValue(folder,value); st->setting()->remove(fname); } } QStringList sessions=st->setting()->childGroups(); QString session; foreach(session, sessions) { QString sname=st->setting()->value(session+"/name").toString(); if((sname+"/").indexOf(oldPath+"/")==0) { sname=currentPath+sname.mid(oldPath.length()); st->setting()->setValue(session+"/name",sname); } } st->setting()->sync(); placeButtons(); } bool SessionExplorer::isFolderEmpty(QString path) { FolderButton* b; path=path.split("/",QString::SkipEmptyParts).join("/"); foreach(b, folders) { if(b->getPath()==path) { return false; } } SessionButton* s; foreach(s, sessions) { if(s->getPath()==path) { return false; } } return true; } void SessionExplorer::deleteFolder(QString path) { path=path.split("/",QString::SkipEmptyParts).join("::"); X2goSettings *st; if (parent->getBrokerMode()) st=new X2goSettings(parent->getConfig()->iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); st->setting()->remove(path); path.replace("::","/"); for(int i=0; i< folders.count(); ++i) { FolderButton* b=folders[i]; if((b->getPath()+"/"+b->getName()).split("/",QString::SkipEmptyParts).join("/")==path) { b->close(); folders.removeAt(i); break; } } if(currentPath==path) { currentPath=""; } placeButtons(); } void SessionExplorer::setEnable(bool enable) { backButton->setEnabled(enable); } x2goclient-4.0.5.1/src/sessionexplorer.h0000644000000000000000000000632012675050177015042 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SESSIONEXPLORER_H #define SESSIONEXPLORER_H #include #include #include class SessionButton; class FolderButton; class ONMainWindow; class QToolButton; class QLabel; class QHBoxLayout; class SessionExplorer: public QObject { Q_OBJECT public: SessionExplorer(ONMainWindow *p); ~SessionExplorer(); QList * getSessionsList() { return &sessions; } QList * getFoldersList() { return &folders; } SessionButton* getLastSession() { return lastSession; } void setLastSession(SessionButton* s) { lastSession=s; } void cleanSessions(); SessionButton* createBut ( const QString& id ); void placeButtons(); QHBoxLayout* getNavigationLayout() { return navigationLayout; } bool isFolderEmpty(QString path); void resize(); void setFolderIcon(QString path, QString icon); void createNewFolder(QString path); void renameFolder(QString oldPath, QString currentPath); void deleteFolder(QString path); QString getCurrentPath() { return currentPath; } void setCurrrentPath(QString path) { currentPath=path; } void setEnable(bool enable); //vars private: QList sessions; QList folders; SessionButton* lastSession; ONMainWindow* parent; QToolButton* backButton; QLabel* pathLabel; QHBoxLayout* navigationLayout; QString currentPath; //functions private: void setNavigationVisible(bool value); int findFolder(QString path); void createFolder(QString path); void getFoldersFromConfig(); public slots: void slotDeleteButton ( SessionButton * bt ); void slotEdit ( SessionButton* ); void slotCreateDesktopIcon ( SessionButton* bt ); void exportsEdit ( SessionButton* bt ); private slots: void slotFolderSelected(FolderButton* bt); void slotLevelUp(); QStringList getFolderChildren(FolderButton* folder); }; #endif x2goclient-4.0.5.1/src/sessionmanagedialog.cpp0000644000000000000000000002337412675050177016155 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2goclientconfig.h" #include "sessionmanagedialog.h" #include "onmainwindow.h" #include "x2gologdebug.h" #include #include #include #include #include #include #include #include "sessionbutton.h" #include "folderbutton.h" #include "sessionexplorer.h" #define SESSIONROLE Qt::UserRole+1 #define SESSIONIDROLE Qt::UserRole+2 SessionManageDialog::SessionManageDialog ( QWidget * parent, bool onlyCreateIcon, Qt::WFlags f ) : QDialog ( parent, f ) { QVBoxLayout* ml=new QVBoxLayout ( this ); QFrame *fr=new QFrame ( this ); QHBoxLayout* frLay=new QHBoxLayout ( fr ); currentPath=""; QPushButton* ok=new QPushButton ( tr ( "E&xit" ),this ); QHBoxLayout* bLay=new QHBoxLayout(); sessions=new QTreeWidget ( fr ); frLay->addWidget ( sessions ); QPushButton* newSession=new QPushButton ( tr ( "&New session" ),fr ); editSession=new QPushButton ( tr ( "&Session preferences" ),fr ); removeSession=new QPushButton ( tr ( "&Delete session" ),fr ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon=new QPushButton ( tr ( "&Create session icon on desktop ..." ),fr ); #endif par= ( ONMainWindow* ) parent; newSession->setIcon ( QIcon ( par->iconsPath ( "/16x16/new_file.png" ) ) ); editSession->setIcon ( QIcon ( par->iconsPath ( "/16x16/edit.png" ) ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon->setIcon ( QIcon ( par->iconsPath ( "/16x16/create_file.png" ) ) ); #endif removeSession->setIcon ( QIcon ( par->iconsPath ( "/16x16/delete.png" ) ) ); QVBoxLayout* actLay=new QVBoxLayout(); actLay->addWidget ( newSession ); actLay->addWidget ( editSession ); actLay->addWidget ( removeSession ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) actLay->addWidget ( createSessionIcon ); #endif actLay->addStretch(); frLay->addLayout ( actLay ); if ( onlyCreateIcon ) { newSession->hide(); editSession->hide(); removeSession->hide(); } QShortcut* sc=new QShortcut ( QKeySequence ( tr ( "Delete","Delete" ) ),this ); connect ( ok,SIGNAL ( clicked() ),this,SLOT ( close() ) ); connect ( sc,SIGNAL ( activated() ),removeSession,SIGNAL ( clicked() ) ); connect ( removeSession,SIGNAL ( clicked() ),this,SLOT ( slot_delete() ) ); connect ( editSession,SIGNAL ( clicked() ),this,SLOT ( slot_edit() ) ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) connect ( createSessionIcon,SIGNAL ( clicked() ), this,SLOT ( slot_createSessionIcon() ) ); #endif connect ( newSession,SIGNAL ( clicked() ),this,SLOT ( slotNew() ) ); bLay->setSpacing ( 5 ); bLay->addStretch(); bLay->addWidget ( ok ); ml->addWidget ( fr ); ml->addLayout ( bLay ); fr->setFrameStyle ( QFrame::StyledPanel | QFrame::Raised ); fr->setLineWidth ( 2 ); setSizeGripEnabled ( true ); setWindowIcon ( QIcon ( ( ( ONMainWindow* ) parent )->iconsPath ( "/32x32/edit.png" ) ) ); setWindowTitle ( tr ( "Session management" ) ); loadSessions(); connect (sessions, SIGNAL (itemPressed (QTreeWidgetItem *, int)), this, SLOT (slot_endisable (QTreeWidgetItem *, int))); connect (sessions, SIGNAL (itemActivated (QTreeWidgetItem *, int)), this, SLOT (slot_endisable (QTreeWidgetItem *, int))); connect (sessions, SIGNAL (itemChanged (QTreeWidgetItem *, int)), this, SLOT (slot_endisable (QTreeWidgetItem *, int))); connect (sessions, SIGNAL (currentItemChanged (QTreeWidgetItem *, QTreeWidgetItem *)), this, SLOT (slot_endisable_ItemChanged_wrapper (QTreeWidgetItem *, QTreeWidgetItem *))); connect (sessions,SIGNAL (itemDoubleClicked (QTreeWidgetItem *, int)), this, SLOT (slot_dclicked (QTreeWidgetItem *, int))); } SessionManageDialog::~SessionManageDialog() {} void SessionManageDialog::loadSessions() { sessions->clear(); /*const QList *sess=par->getSessionExplorer()->getSessionsList();*/ /*const QList *folders=par->getSessionExplorer()->getFoldersList();*/ removeSession->setEnabled ( false ); editSession->setEnabled ( false ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon->setEnabled ( false ); #endif QTreeWidgetItem* root; root=new QTreeWidgetItem(sessions); root->setText(0,"/"); root->setIcon(0,QIcon(":/img/icons/128x128/folder.png")); initFolders(root, ""); root->setExpanded(true); root->setData(0, SESSIONROLE , false); sessions->setRootIsDecorated(false); sessions->setHeaderHidden(true); } void SessionManageDialog::initFolders(QTreeWidgetItem* parent, QString path) { FolderButton* b; foreach(b, *(par->getSessionExplorer()->getFoldersList())) { if(b->getPath()==path) { QTreeWidgetItem* it=new QTreeWidgetItem(parent); it->setText(0,b->getName()); it->setIcon(0, QIcon(*(b->folderIcon()))); QString normPath=(b->getPath()+"/"+b->getName()).split("/",QString::SkipEmptyParts).join("/"); it->setData(0,Qt::UserRole, normPath+"/"); it->setData(0, SESSIONROLE , false); initFolders(it, normPath); } } for(int i=0; i< par->getSessionExplorer()->getSessionsList()->count(); ++i) { SessionButton* s=par->getSessionExplorer()->getSessionsList()->at(i); if(s->getPath()==path) { QTreeWidgetItem* it=new QTreeWidgetItem(parent); it->setText(0,s->name()); it->setIcon(0, QIcon(*(s->sessIcon()))); QString normPath=(s->getPath()+"/"+s->name()).split("/",QString::SkipEmptyParts).join("/"); it->setData(0,Qt::UserRole, normPath+"/"); it->setData(0, SESSIONROLE, true); it->setData(0, SESSIONIDROLE, i); initFolders(it, normPath); } } } void SessionManageDialog::slot_endisable ( QTreeWidgetItem* item, int col) { Q_UNUSED (col); bool isSess=(item && item->data(0, SESSIONROLE).toBool()); x2goDebug << "slot_endisable: isSess: " << isSess; if(!isSess) { if(item) currentPath=item->data(0,Qt::UserRole).toString().split("/",QString::SkipEmptyParts).join("/"); else currentPath="/"; x2goDebug << "slot_endisable: no session, currentPath(?): " << currentPath; } removeSession->setEnabled ( isSess ); editSession->setEnabled ( isSess ); #if (!defined Q_WS_HILDON) && (!defined Q_OS_DARWIN) if ( !ONMainWindow::getPortable() ) createSessionIcon->setEnabled ( isSess ); #endif } void SessionManageDialog::slot_endisable_ItemChanged_wrapper (QTreeWidgetItem *item, QTreeWidgetItem *) { /* * The int parameter of slot_endisable is unused anyway, * just use the default value in this special case. */ slot_endisable (item); } void SessionManageDialog::slot_dclicked ( QTreeWidgetItem* item, int ) { if(item->data(0, SESSIONROLE).toBool()) slot_edit(); } void SessionManageDialog::slotNew() { par->getSessionExplorer()->setCurrrentPath(currentPath); par->slotNewSession(); loadSessions(); } void SessionManageDialog::slot_edit() { if((! sessions->currentItem()) || (! sessions->currentItem()->data(0, SESSIONROLE).toBool())) return; int ind=sessions->currentItem()->data(0, SESSIONIDROLE).toInt(); par->getSessionExplorer()->slotEdit ( par->getSessionExplorer()->getSessionsList()->at ( ind ) ); loadSessions(); } void SessionManageDialog::slot_createSessionIcon() { if((! sessions->currentItem()) || (! sessions->currentItem()->data(0, SESSIONROLE).toBool())) return; int ind=sessions->currentItem()->data(0, SESSIONIDROLE).toInt(); par->getSessionExplorer()->slotCreateDesktopIcon ( par->getSessionExplorer()->getSessionsList()->at ( ind ) ); } void SessionManageDialog::slot_delete() { if((! sessions->currentItem()) || (! sessions->currentItem()->data(0, SESSIONROLE).toBool())) return; int ind=sessions->currentItem()->data(0, SESSIONIDROLE).toInt(); par->getSessionExplorer()->slotDeleteButton ( par->getSessionExplorer()->getSessionsList()->at ( ind ) ); loadSessions(); } x2goclient-4.0.5.1/src/sessionmanagedialog.h0000644000000000000000000000445512675050177015621 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SESSIONMANAGEDIALOG_H #define SESSIONMANAGEDIALOG_H #include "x2goclientconfig.h" #include class QTreeWidget; class QTreeWidgetItem; class QPushButton; class QModelIndex; class ONMainWindow; /** @author Oleksandr Shneyder */ class SessionManageDialog : public QDialog { Q_OBJECT public: SessionManageDialog ( QWidget * parent, bool onlyCreateIcon=false, Qt::WFlags f=0 ); ~SessionManageDialog(); void loadSessions(); private: void initFolders(QTreeWidgetItem* parent, QString path); private: QTreeWidget* sessions; QPushButton* editSession; QPushButton* removeSession; QPushButton* createSessionIcon; ONMainWindow* par; QString currentPath; private slots: void slot_endisable (QTreeWidgetItem *item, int col = -1); void slot_endisable_ItemChanged_wrapper (QTreeWidgetItem *item, QTreeWidgetItem *); void slotNew(); void slot_edit(); void slot_createSessionIcon(); void slot_delete(); void slot_dclicked ( QTreeWidgetItem * item, int ); }; #endif x2goclient-4.0.5.1/src/sessionwidget.cpp0000644000000000000000000007702412675050177015031 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "sessionwidget.h" #include "x2goutils.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "onmainwindow.h" #include "x2gosettings.h" #include #include #include #include "folderexplorer.h" #include "sessionexplorer.h" SessionWidget::SessionWidget ( bool newSession, QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { QVBoxLayout* sessLay=new QVBoxLayout ( this ); #ifdef Q_WS_HILDON sessLay->setMargin ( 2 ); #endif this->parent=mw; this->newSession=newSession; sessName=new QLineEdit ( this ); icon=new QPushButton ( QString::null,this ); if ( !miniMode ) { icon->setIconSize ( QSize ( 100,100 ) ); icon->setFixedSize ( 100,100 ); } else { icon->setIconSize ( QSize ( 48,48 ) ); icon->setFixedSize ( 48,48 ); } icon->setFlat ( true ); QHBoxLayout* slay=new QHBoxLayout(); slay->addWidget ( new QLabel ( tr ( "Session name:" ),this ) ); slay->addWidget ( sessName ); QHBoxLayout* ilay=new QHBoxLayout(); ilay->addWidget ( icon ); ilay->addWidget ( new QLabel ( tr ( "<< change icon" ),this ) ); lPath=new QLabel(this); lPath->setFrameStyle(QFrame::StyledPanel); QPushButton* pathButton=new QPushButton("...",this); QHBoxLayout* pathLay=new QHBoxLayout(); pathLay->addWidget(new QLabel(tr("Path:"), this),0); pathLay->addWidget(lPath,1); pathLay->addWidget(pathButton,0); #ifndef Q_WS_HILDON QGroupBox *sgb=new QGroupBox ( tr ( "&Server" ),this ); #else QFrame* sgb=this; #endif server=new QLineEdit ( sgb ); uname=new QLineEdit ( sgb ); sshPort=new QSpinBox ( sgb ); sshPort->setValue ( mainWindow->getDefaultSshPort().toInt() ); sshPort->setMinimum ( 1 ); sshPort->setMaximum ( 999999999 ); #ifdef Q_OS_LINUX rdpPort=new QSpinBox ( sgb ); rdpPort->setValue ( mainWindow->getDefaultSshPort().toInt() ); rdpPort->setMinimum ( 1 ); rdpPort->setMaximum ( 999999999 ); #endif key=new QLineEdit ( sgb ); #ifndef Q_WS_HILDON openKey=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/32x32/file-open.png" ) ), QString::null,sgb ); QVBoxLayout *sgbLay = new QVBoxLayout ( sgb ); #else QPushButton* openKey=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/16x16/file-open.png" ) ), QString::null,sgb ); QVBoxLayout *sgbLay = new QVBoxLayout (); #endif QHBoxLayout *suLay =new QHBoxLayout(); QVBoxLayout *slLay =new QVBoxLayout(); QVBoxLayout *elLay =new QVBoxLayout(); slLay->addWidget ( new QLabel ( tr ( "Host:" ),sgb ) ); slLay->addWidget ( new QLabel ( tr ( "Login:" ),sgb ) ); lPort=new QLabel ( tr ( "SSH port:" ),sgb ); slLay->addWidget ( lPort ); elLay->addWidget ( server ); elLay->addWidget ( uname ); elLay->addWidget ( sshPort ); #ifdef Q_OS_LINUX elLay->addWidget ( rdpPort ); #endif suLay->addLayout ( slLay ); suLay->addLayout ( elLay ); #ifdef Q_WS_HILDON sshPort->setFixedHeight ( int ( sshPort->sizeHint().height() *1.5 ) ); #endif QHBoxLayout *keyLay =new QHBoxLayout(); lKey=new QLabel ( tr ( "Use RSA/DSA key for ssh connection:" ),sgb ); keyLay->addWidget (lKey ); keyLay->addWidget ( key ); keyLay->addWidget ( openKey ); sgbLay->addLayout ( suLay ); sgbLay->addLayout ( keyLay ); cbAutoLogin=new QCheckBox(tr("Try auto login (via SSH Agent or default SSH key)"),sgb); cbKrbLogin=new QCheckBox(tr("Kerberos 5 (GSSAPI) authentication"),sgb); cbKrbDelegation=new QCheckBox(tr("Delegation of GSSAPI credentials to the server"),sgb); sgbLay->addWidget(cbAutoLogin); sgbLay->addWidget(cbKrbLogin); sgbLay->addWidget(cbKrbDelegation); cbProxy=new QCheckBox(tr("Use Proxy server for SSH connection"),sgb); proxyBox=new QGroupBox(tr("Proxy server"),sgb); sgbLay->addWidget(cbProxy); sgbLay->addWidget(proxyBox); QGridLayout* proxyLaout=new QGridLayout(proxyBox); QButtonGroup* proxyType=new QButtonGroup(proxyBox); proxyType->setExclusive(true); rbSshProxy=new QRadioButton(tr("SSH"),proxyBox); rbHttpProxy=new QRadioButton(tr("HTTP"),proxyBox); proxyType->addButton(rbSshProxy); proxyType->addButton(rbHttpProxy); proxyHost=new QLineEdit(proxyBox); proxyPort=new QSpinBox(proxyBox); proxyPort->setMinimum ( 1 ); proxyPort->setMaximum ( 999999999 ); cbProxySameUser=new QCheckBox(tr("Same login as on X2Go Server"), proxyBox); proxyLogin=new QLineEdit(proxyBox); cbProxySamePass=new QCheckBox(tr("Same password as on X2Go Server"), proxyBox); proxyKeyLabel=new QLabel( tr ( "RSA/DSA key:" ), proxyBox); proxyKey=new QLineEdit(proxyBox); pbOpenProxyKey=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/16x16/file-open.png" ) ), QString::null,proxyBox ); cbProxyAutologin=new QCheckBox(tr("SSH Agent or default SSH key"),proxyBox); cbProxyKrbLogin=new QCheckBox(tr("Kerberos 5 (GSSAPI) authentication"),proxyBox); proxyLaout->addWidget(new QLabel(tr("Type:"),proxyBox),0,0,1,2); proxyLaout->addWidget(rbSshProxy,1,0,1,2); proxyLaout->addWidget(rbHttpProxy,2,0,1,2); proxyLaout->addWidget(new QLabel(tr("Host:"),proxyBox),3,0); proxyLaout->addWidget(new QLabel(tr("Port:"),proxyBox),4,0); proxyLaout->addWidget(proxyHost,3,1); proxyLaout->addWidget(proxyPort,4,1); proxyLaout->addWidget(cbProxySameUser,0,3,1,3); proxyLaout->addWidget(lProxyLogin=new QLabel(tr("Login:"),proxyBox),1,3,1,1); proxyLaout->addWidget(proxyLogin,1,4,1,2); proxyLaout->addWidget(cbProxySamePass,2,3,1,3); proxyLaout->addWidget(proxyKeyLabel,3,3,1,1); proxyLaout->addWidget(proxyKey,3,4,1,1); proxyLaout->addWidget(pbOpenProxyKey,3,5,1,1); proxyLaout->addWidget(cbProxyAutologin,4,3,1,3); proxyLaout->addWidget(cbProxyKrbLogin,5,3,1,3); #ifndef Q_WS_HILDON QGroupBox *deskSess=new QGroupBox ( tr ( "&Session type" ),this ); QGridLayout* cmdLay=new QGridLayout ( deskSess ); #else QFrame* deskSess=this; QHBoxLayout* cmdLay=new QHBoxLayout (); cmdLay->addWidget ( new QLabel ( tr ( "Session type:" ),this ) ); #endif sessBox=new QComboBox ( deskSess ); cmd=new QLineEdit ( deskSess ); cmdCombo=new QComboBox ( deskSess ); cmdCombo->setEditable ( true ); sessBox->addItem ( "KDE" ); sessBox->addItem ( "GNOME" ); sessBox->addItem ( "LXDE" ); sessBox->addItem ( "XFCE" ); sessBox->addItem ( "MATE" ); sessBox->addItem ( "UNITY" ); sessBox->addItem ( "CINNAMON" ); sessBox->addItem ( "TRINITY" ); sessBox->addItem ( "OPENBOX" ); sessBox->addItem ( "ICEWM" ); sessBox->addItem ( tr ( "Connect to Windows Terminal Server" ) ); sessBox->addItem ( tr ( "XDMCP" ) ); sessBox->addItem ( tr ( "Connect to local desktop" ) ); sessBox->addItem ( tr ( "Custom desktop" ) ); sessBox->addItem ( tr ( "Single application" ) ); sessBox->addItem ( tr ( "Published applications" ) ); cmdLay->addWidget ( sessBox,0,1,Qt::AlignLeft ); leCmdIp=new QLabel ( tr ( "Command:" ),deskSess ); pbAdvanced=new QPushButton ( tr ( "Advanced options..." ),deskSess ); cmdLay->addWidget ( leCmdIp,0,2 ); cmdLay->setColumnStretch(6,1); cmdLay->addWidget ( cmd ,0,3); cmdLay->addWidget ( cmdCombo,0,4 ); cmdLay->addWidget ( pbAdvanced ,0,5); cmdCombo->setSizePolicy ( QSizePolicy::Expanding, QSizePolicy::Preferred ); cmdCombo->hide(); pbAdvanced->hide(); cmdCombo->addItem ( "" ); cmdCombo->addItems ( mainWindow->transApplicationsNames() ); cmdCombo->lineEdit()->setText ( tr ( "Path to executable" ) ); cmdCombo->lineEdit()->selectAll(); #ifndef Q_WS_HILDON sessLay->addLayout ( slay ); sessLay->addLayout ( ilay ); sessLay->addLayout ( pathLay ); if ( !miniMode ) sessLay->addSpacing ( 15 ); sessLay->addWidget ( sgb ); sessLay->addWidget ( deskSess ); #ifdef Q_OS_LINUX cbDirectRDP=new QCheckBox(tr("Direct RDP connection"), deskSess); cmdLay->addWidget(cbDirectRDP,1,0,1,6); cbDirectRDP->hide(); connect(cbDirectRDP,SIGNAL(clicked()), this, SLOT(slot_rdpDirectClicked())); #endif #else QVBoxLayout* sHildILay = new QVBoxLayout(); sHildILay->addLayout ( slay ); sHildILay->addLayout ( ilay ); sHildILay->addStretch(); QHBoxLayout* sHildLay = new QHBoxLayout(); sHildLay->addLayout ( sHildILay ); QFrame* vl=new QFrame; vl->setLineWidth ( 0 ); vl->setFrameStyle ( QFrame::VLine|QFrame::Plain ); sHildLay->addWidget ( vl ); sHildLay->setSpacing ( 6 ); sHildLay->addLayout ( sgbLay ); sessLay->addLayout ( sHildLay ); sessLay->addStretch(); sessLay->addLayout ( cmdLay ); #endif sessLay->addStretch(); connect ( icon,SIGNAL ( clicked() ),this,SLOT ( slot_getIcon() ) ); connect ( openKey,SIGNAL ( clicked() ),this,SLOT ( slot_getKey() ) ); connect ( pbAdvanced,SIGNAL ( clicked() ),this, SLOT ( slot_rdpOptions() ) ); connect ( sessBox,SIGNAL ( activated ( int ) ),this, SLOT ( slot_changeCmd ( int ) ) ); connect ( sessName,SIGNAL ( textChanged ( const QString & ) ),this, SIGNAL ( nameChanged ( const QString & ) ) ); connect (server, SIGNAL(textChanged(const QString&)),this, SLOT(slot_emitSettings())); connect (uname, SIGNAL(textChanged(const QString&)),this, SLOT(slot_emitSettings())); connect (cbKrbLogin, SIGNAL(clicked(bool)), this, SLOT(slot_krbChecked())); #ifdef Q_OS_LINUX connect (rdpPort, SIGNAL(valueChanged(int)),this, SLOT(slot_emitSettings())); #endif connect ( pbOpenProxyKey,SIGNAL ( clicked() ),this,SLOT ( slot_proxyGetKey()) ); connect ( proxyType, SIGNAL ( buttonClicked(int)) ,this,SLOT ( slot_proxyType())); connect (cbProxy, SIGNAL(clicked(bool)), this, SLOT(slot_proxyOptions())); connect (cbProxySameUser, SIGNAL(clicked(bool)), this, SLOT(slot_proxySameLogin())); connect ( pathButton, SIGNAL(clicked(bool)), this, SLOT(slot_openFolder())); readConfig(); } SessionWidget::~SessionWidget() { } void SessionWidget::slot_proxyGetKey() { QString path; QString startDir=ONMainWindow::getHomeDirectory(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { startDir=ONMainWindow::U3DevicePath() +"/"; } #endif path = QFileDialog::getOpenFileName ( this, tr ( "Open key file" ), startDir, tr ( "All files" ) +" (*)" ); if ( path!=QString::null ) { #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { if ( path.indexOf ( ONMainWindow::U3DevicePath() ) !=0 ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "X2Go Client is running in " "portable mode. You should " "use a path on your USB device " "to be able to access your data " "wherever you are." ), QMessageBox::Ok,QMessageBox::NoButton ); slot_getKey(); return; } path.replace ( ONMainWindow::U3DevicePath(), "(U3)" ); } #endif proxyKey->setText ( path ); } } void SessionWidget::slot_proxyOptions() { proxyBox->setVisible(cbProxy->isChecked() && cbProxy->isVisible()); } void SessionWidget::slot_proxySameLogin() { lProxyLogin->setDisabled(cbProxySameUser->isChecked()); proxyLogin->setDisabled(cbProxySameUser->isChecked()); } void SessionWidget::slot_proxyType() { bool isSsh=rbSshProxy->isChecked(); cbProxyAutologin->setVisible(isSsh); cbProxyKrbLogin->setVisible(isSsh); proxyKey->setVisible(isSsh); proxyKeyLabel->setVisible(isSsh); pbOpenProxyKey->setVisible(isSsh); } #ifdef Q_OS_LINUX void SessionWidget::slot_rdpDirectClicked() { bool isDirectRDP=cbDirectRDP->isChecked(); if (cbDirectRDP->isHidden()) isDirectRDP=false; pbAdvanced->setVisible((!isDirectRDP) && (sessBox->currentIndex()==RDP)); leCmdIp->setVisible(!isDirectRDP); cmd->setVisible(!isDirectRDP); key->setVisible(!isDirectRDP); cbAutoLogin->setVisible(!isDirectRDP); lKey->setVisible(!isDirectRDP); openKey->setVisible(!isDirectRDP); sshPort->setVisible(!isDirectRDP); rdpPort->setVisible(isDirectRDP); cbKrbDelegation->setVisible(!isDirectRDP); cbKrbLogin->setVisible(!isDirectRDP); cbProxy->setVisible(!isDirectRDP); proxyBox->setVisible(!isDirectRDP && cbProxy->isChecked()); if (isDirectRDP) { lPort->setText(tr("RDP port:")); } else { lPort->setText(tr("SSH port:")); } emit directRDP(isDirectRDP); slot_emitSettings(); } #endif void SessionWidget::slot_getIcon() { QString path= QFileDialog::getOpenFileName ( this, tr ( "Open picture" ), QDir::homePath(), tr ( "Pictures" ) +" (*.png *.xpm *.jpg)" ); if ( path!=QString::null ) { sessIcon = wrap_legacy_resource_URIs (path); icon->setIcon ( QIcon ( sessIcon ) ); } } void SessionWidget::slot_getKey() { QString path; QString startDir=ONMainWindow::getHomeDirectory(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { startDir=ONMainWindow::U3DevicePath() +"/"; } #endif path = QFileDialog::getOpenFileName ( this, tr ( "Open key file" ), startDir, tr ( "All files" ) +" (*)" ); if ( path!=QString::null ) { #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { if ( path.indexOf ( ONMainWindow::U3DevicePath() ) !=0 ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "X2Go Client is running in " "portable mode. You should " "use a path on your USB device " "to be able to access your data " "wherever you are." ), QMessageBox::Ok,QMessageBox::NoButton ); slot_getKey(); return; } path.replace ( ONMainWindow::U3DevicePath(), "(U3)" ); } #endif key->setText ( path ); } } void SessionWidget::slot_changeCmd ( int var ) { leCmdIp->setText ( tr ( "Command:" ) ); pbAdvanced->hide(); #ifdef Q_OS_LINUX cbDirectRDP->hide(); #endif leCmdIp->show(); cmd->show(); if ( var==APPLICATION ) { cmd->hide(); cmdCombo->setVisible ( true ); cmdCombo->setEnabled(true); cmdCombo->lineEdit()->selectAll(); cmdCombo->lineEdit()->setFocus(); } else { cmdCombo->hide(); cmd->setVisible ( true ); if ( var==OTHER || var == RDP || var == XDMCP ) { cmd->setText ( "" ); cmd->setEnabled ( true ); cmd->selectAll(); cmd->setFocus(); if ( var==RDP ) { leCmdIp->setText ( tr ( "Server:" ) ); pbAdvanced->show(); cmd->setText ( rdpServer ); #ifdef Q_OS_LINUX cbDirectRDP->show(); #endif } if ( var== XDMCP ) { leCmdIp->setText ( tr ( "XDMCP server:" ) ); cmd->setText ( xdmcpServer ); } } else { cmd->setEnabled ( false ); cmd->setText ( "" ); } } #ifdef Q_OS_LINUX slot_rdpDirectClicked(); #endif } void SessionWidget::slot_rdpOptions() { bool ok; QString text = QInputDialog::getText ( this, tr ( "Connect to Windows Terminal Server" ), tr ( "rdesktop command line options:" ), QLineEdit::Normal, rdpOptions, &ok ); rdpOptions= text; } void SessionWidget::readConfig() { X2goSettings st ( "sessions" ); QString name=st.setting()->value ( sessionId+"/name", ( QVariant ) tr ( "New session" ) ).toString().trimmed(); QStringList tails=name.split("/",QString::SkipEmptyParts); QString path; if(tails.count()>0) { name=tails.last(); tails.pop_back(); path=tails.join("/")+"/"; } lPath->setText(path); if(newSession) lPath->setText(parent->getSessionExplorer()->getCurrentPath()+"/"); sessName->setText (name); sessIcon = wrap_legacy_resource_URIs (st.setting ()->value (sessionId+"/icon", (QVariant) ":/img/icons/128x128/x2gosession.png" ).toString ().trimmed ()); sessIcon = expandHome (sessIcon); icon->setIcon ( QIcon ( sessIcon ) ); server->setText ( st.setting()->value ( sessionId+"/host", ( QVariant ) QString::null ).toString().trimmed() ); uname->setText ( st.setting()->value ( sessionId+"/user", ( QVariant ) QString::null ).toString().trimmed() ); key->setText ( st.setting()->value ( sessionId+"/key", ( QVariant ) QString::null ).toString().trimmed() ); cbAutoLogin->setChecked(st.setting()->value ( sessionId+"/autologin", ( QVariant ) false ).toBool()); cbKrbLogin->setChecked(st.setting()->value ( sessionId+"/krblogin", ( QVariant ) false ).toBool()); cbKrbDelegation->setChecked(st.setting()->value ( sessionId+"/krbdelegation", ( QVariant ) false ).toBool()); sshPort->setValue ( st.setting()->value ( sessionId+"/sshport", ( QVariant ) mainWindow->getDefaultSshPort().toInt() ).toInt() ); #ifdef Q_OS_LINUX rdpPort->setValue ( st.setting()->value ( sessionId+"/rdpport",3389 ).toInt() ); #endif cbProxy->setChecked(st.setting()->value ( sessionId+"/usesshproxy", false ).toBool() ); QString prtype= st.setting()->value ( sessionId+"/sshproxytype", "SSH" ).toString().trimmed() ; if(prtype=="HTTP") { rbHttpProxy->setChecked(true); } else { rbSshProxy->setChecked(true); } proxyLogin->setText(st.setting()->value ( sessionId+"/sshproxyuser", QString() ).toString().trimmed() ); proxyKey->setText(st.setting()->value ( sessionId+"/sshproxykeyfile", QString() ).toString().trimmed() ); proxyHost->setText(st.setting()->value ( sessionId+"/sshproxyhost", QString() ).toString().trimmed() ); proxyPort->setValue(st.setting()->value ( sessionId+"/sshproxyport", 22 ).toInt() ); cbProxySamePass->setChecked(st.setting()->value ( sessionId+"/sshproxysamepass", false ).toBool() ); cbProxySameUser->setChecked(st.setting()->value ( sessionId+"/sshproxysameuser", false ).toBool() ); cbProxyAutologin->setChecked(st.setting()->value ( sessionId+"/sshproxyautologin", false ).toBool() ); cbProxyKrbLogin->setChecked(st.setting()->value ( sessionId+"/sshproxykrblogin", false ).toBool() ); if(proxyHost->text().indexOf(":")!=-1) { QStringList parts=proxyHost->text().split(":"); proxyHost->setText(parts[0]); proxyPort->setValue(parts[1].toInt()); } QTimer::singleShot(1, this,SLOT(slot_proxySameLogin())); QTimer::singleShot(2, this,SLOT(slot_proxyType())); QTimer::singleShot(3, this,SLOT(slot_proxyOptions())); QStringList appNames=st.setting()->value ( sessionId+"/applications" ).toStringList(); bool rootless=st.setting()->value ( sessionId+"/rootless",false ).toBool(); bool published=st.setting()->value ( sessionId+"/published",false ).toBool(); QString command=st.setting()->value ( sessionId+"/command", ( QVariant ) mainWindow->getDefaultCmd() ).toString().trimmed(); rdpOptions=st.setting()->value ( sessionId+"/rdpoptions", ( QVariant ) "" ).toString().trimmed(); rdpServer=st.setting()->value ( sessionId+"/rdpserver", ( QVariant ) "" ).toString().trimmed(); xdmcpServer=st.setting()->value ( sessionId+"/xdmcpserver", ( QVariant ) "localhost" ).toString().trimmed(); #ifdef Q_OS_LINUX cbDirectRDP->setChecked(st.setting()->value ( sessionId+"/directrdp",false ).toBool()); #endif for ( int i=0; itransAppName ( appNames[i] ); if ( cmdCombo->findText ( app ) ==-1 ) cmdCombo->addItem ( app ); } if ( published ) { sessBox->setCurrentIndex( PUBLISHED ); cmdCombo->setDisabled(true); slot_changeCmd(PUBLISHED); } else if ( rootless ) { sessBox->setCurrentIndex ( APPLICATION ); QString app=mainWindow->transAppName ( command ); cmdCombo->lineEdit()->setText ( app ); slot_changeCmd ( APPLICATION ); } else { if ( command=="KDE" ) { sessBox->setCurrentIndex ( KDE ); cmd->setEnabled ( false ); } else if ( command=="GNOME" ) { sessBox->setCurrentIndex ( GNOME ); cmd->setEnabled ( false ); } else if ( command=="LXDE" ) { sessBox->setCurrentIndex ( LXDE ); cmd->setEnabled ( false ); } else if ( command=="UNITY" ) { sessBox->setCurrentIndex ( UNITY ); cmd->setEnabled ( false ); } else if ( command=="XFCE" ) { sessBox->setCurrentIndex ( XFCE ); cmd->setEnabled ( false ); } else if ( command=="SHADOW" ) { sessBox->setCurrentIndex ( SHADOW ); cmd->setEnabled ( false ); } else if ( command=="RDP" ) { leCmdIp->setText ( tr ( "Server:" ) ); sessBox->setCurrentIndex ( RDP ); cmd->setEnabled ( true ); cmd->setText ( rdpServer ); pbAdvanced->show(); #ifdef Q_OS_LINUX cbDirectRDP->show(); slot_rdpDirectClicked(); #endif } else if ( command=="XDMCP" ) { leCmdIp->setText ( tr ( "XDMCP server:" ) ); sessBox->setCurrentIndex ( XDMCP ); cmd->setEnabled ( true ); cmd->setText ( xdmcpServer ); } else { cmd->setText ( command ); sessBox->setCurrentIndex ( OTHER ); cmd->setEnabled ( true ); } } if ( sessName->text() ==tr ( "New session" ) ) { sessName->selectAll(); sessName->setFocus(); } #ifdef Q_OS_LINUX slot_rdpDirectClicked(); #endif slot_krbChecked(); } void SessionWidget::setDefaults() { cmd->setText ( "" ); sessBox->setCurrentIndex ( KDE ); cmdCombo->clear(); cmdCombo->addItem ( "" ); cmdCombo->addItems ( mainWindow->transApplicationsNames() ); cbAutoLogin->setChecked(false); cbKrbLogin->setChecked(false); cmdCombo->lineEdit()->setText ( tr ( "Path to executable" ) ); cmdCombo->lineEdit()->selectAll(); slot_changeCmd ( 0 ); cmd->setEnabled ( false ); sessIcon=":/img/icons/128x128/x2gosession.png"; icon->setIcon ( QIcon ( sessIcon ) ); sshPort->setValue ( mainWindow->getDefaultSshPort().toInt() ); #ifdef Q_OS_LINUX rdpPort->setValue (3389); #endif cbProxy->setChecked(false); rbSshProxy->setChecked(true); proxyKey->setText(QString::null); proxyPort->setValue(22); cbProxySamePass->setChecked(false); cbProxySameUser->setChecked(false); cbProxyAutologin->setChecked(false); cbProxyKrbLogin->setChecked(false); QTimer::singleShot(1, this,SLOT(slot_proxySameLogin())); QTimer::singleShot(2, this,SLOT(slot_proxyType())); QTimer::singleShot(3, this,SLOT(slot_proxyOptions())); } void SessionWidget::saveSettings() { X2goSettings st ( "sessions" ); QString normPath=(lPath->text()+"/"+sessName->text()).split("/",QString::SkipEmptyParts).join("/"); st.setting()->setValue ( sessionId+"/name", ( QVariant ) normPath.trimmed() ); st.setting()->setValue ( sessionId+"/icon", ( QVariant ) sessIcon ); st.setting()->setValue ( sessionId+"/host", ( QVariant ) server->text().trimmed() ); st.setting()->setValue ( sessionId+"/user", ( QVariant ) uname->text().trimmed() ); st.setting()->setValue ( sessionId+"/key", ( QVariant ) key->text().trimmed() ); #ifdef Q_OS_LINUX st.setting()->setValue ( sessionId+"/rdpport", ( QVariant ) rdpPort->value() ); #endif st.setting()->setValue ( sessionId+"/sshport", ( QVariant ) sshPort->value() ); st.setting()->setValue(sessionId+"/autologin",( QVariant ) cbAutoLogin->isChecked()); st.setting()->setValue(sessionId+"/krblogin",( QVariant ) cbKrbLogin->isChecked()); st.setting()->setValue(sessionId+"/krbdelegation",( QVariant ) cbKrbDelegation->isChecked()); #ifdef Q_OS_LINUX st.setting()->setValue(sessionId+"/directrdp",( QVariant ) cbDirectRDP->isChecked()); #endif QString command; bool rootless=false; bool published=false; if ( sessBox->currentIndex() < OTHER ) command=sessBox->currentText(); else command=cmd->text().trimmed(); if ( sessBox->currentIndex() == RDP ) { command="RDP"; rdpServer=cmd->text().trimmed(); } if ( sessBox->currentIndex() == XDMCP ) { command="XDMCP"; xdmcpServer=cmd->text().trimmed(); } if ( sessBox->currentIndex() == SHADOW ) { command="SHADOW"; } QStringList appList; for ( int i=-1; icount(); ++i ) { QString app; if ( i==-1 ) app=mainWindow->internAppName ( cmdCombo->lineEdit()->text () ); else app=mainWindow->internAppName ( cmdCombo->itemText ( i ) ); if ( appList.indexOf ( app ) ==-1 && app!="" && app!=tr ( "Path to executable" ) ) { appList.append ( app ); } } if ( sessBox->currentIndex() ==APPLICATION ) { rootless=true; command=mainWindow->internAppName ( cmdCombo->lineEdit()->text().trimmed() ); } if ( sessBox->currentIndex() == PUBLISHED) published=true; st.setting()->setValue ( sessionId+"/rootless", ( QVariant ) rootless ); st.setting()->setValue ( sessionId+"/published", ( QVariant ) published ); st.setting()->setValue ( sessionId+"/applications", ( QVariant ) appList ); st.setting()->setValue ( sessionId+"/command", ( QVariant ) command ); st.setting()->setValue ( sessionId+"/rdpoptions", ( QVariant ) rdpOptions ); st.setting()->setValue ( sessionId+"/rdpserver", ( QVariant ) rdpServer ); st.setting()->setValue ( sessionId+"/xdmcpserver", ( QVariant ) xdmcpServer ); st.setting()->setValue ( sessionId+"/usesshproxy",cbProxy->isChecked()); if(rbHttpProxy->isChecked()) { st.setting()->setValue ( sessionId+"/sshproxytype","HTTP"); } else { st.setting()->setValue ( sessionId+"/sshproxytype","SSH"); } st.setting()->setValue (sessionId+"/sshproxyuser",proxyLogin->text().trimmed()); st.setting()->setValue (sessionId+"/sshproxykeyfile",proxyKey->text().trimmed()); st.setting()->setValue (sessionId+"/sshproxyhost",proxyHost->text().trimmed()); st.setting()->setValue (sessionId+"/sshproxyport",proxyPort->value()); st.setting()->setValue (sessionId+"/sshproxysamepass",cbProxySamePass->isChecked()); st.setting()->setValue (sessionId+"/sshproxysameuser",cbProxySameUser->isChecked()); st.setting()->setValue (sessionId+"/sshproxyautologin",cbProxyAutologin->isChecked()); st.setting()->setValue (sessionId+"/sshproxykrblogin",cbProxyKrbLogin->isChecked()); st.setting()->sync(); } QString SessionWidget::sessionName() { return sessName->text(); } #ifdef Q_OS_LINUX void SessionWidget::slot_emitSettings() { emit settingsChanged(server->text(), QString::number( rdpPort->value()), uname->text()); } #endif void SessionWidget::slot_krbChecked() { cbKrbDelegation->setEnabled(cbKrbLogin->isChecked()); } void SessionWidget::slot_openFolder() { FolderExplorer explorer(lPath->text(), parent->getSessionExplorer(), this); if(explorer.exec()==QDialog::Accepted) { lPath->setText(explorer.getCurrentPath()); } } x2goclient-4.0.5.1/src/sessionwidget.h0000644000000000000000000000710512675050177014467 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SESSIONWIDGET_H #define SESSIONWIDGET_H #include "configwidget.h" /** @author Oleksandr Shneyder */ class QLineEdit; class QSpinBox; class QPushButton; class QComboBox; class QLabel; class QCheckBox; class QGroupBox; class QRadioButton; class SessionWidget : public ConfigWidget { Q_OBJECT public: SessionWidget ( bool newSession, QString id, ONMainWindow * mv, QWidget * parent = 0, Qt::WindowFlags f = 0 ); ~SessionWidget(); void setDefaults(); void saveSettings(); QString sessionName(); private slots: void slot_getIcon(); void slot_getKey(); void slot_changeCmd ( int var ); void slot_rdpOptions(); void slot_proxyOptions(); void slot_proxyType(); void slot_proxySameLogin(); void slot_proxyGetKey(); void slot_krbChecked(); void slot_openFolder(); public slots: #ifdef Q_OS_LINUX void slot_rdpDirectClicked(); void slot_emitSettings(); #endif private: enum {KDE,GNOME,LXDE,XFCE,MATE,UNITY,CINNAMON,TRINITY,OPENBOX,ICEWM,RDP,XDMCP,SHADOW,OTHER,APPLICATION,PUBLISHED}; QLineEdit* sessName; QLineEdit* uname; QLineEdit* server; QSpinBox* sshPort; ONMainWindow* parent; bool newSession; #ifdef Q_OS_LINUX QSpinBox* rdpPort; #endif QLineEdit* key; QCheckBox* cbAutoLogin; QCheckBox* cbKrbLogin; QCheckBox* cbKrbDelegation; #ifdef Q_OS_LINUX QCheckBox* cbDirectRDP; #endif QString sessIcon; QPushButton* icon; QLineEdit* cmd; QComboBox* cmdCombo; QComboBox* sessBox; QLabel* leCmdIp; QLabel* lPort; QLabel* lKey; QLabel* lPath; QPushButton* pbAdvanced; QString rdpOptions; QString rdpServer; QString xdmcpServer; QPushButton* openKey; QGroupBox* proxyBox; QCheckBox* cbProxy; QRadioButton* rbSshProxy; QRadioButton* rbHttpProxy; QLineEdit* proxyHost; QSpinBox* proxyPort; QLineEdit* proxyLogin; QLabel* lProxyLogin; QCheckBox* cbProxySameUser; QCheckBox* cbProxySamePass; QCheckBox* cbProxyAutologin; QCheckBox* cbProxyKrbLogin; QLineEdit* proxyKey; QPushButton* pbOpenProxyKey; QLabel* proxyKeyLabel; private: void readConfig(); signals: void nameChanged ( const QString & ); #ifdef Q_OS_LINUX void directRDP(bool); void settingsChanged(const QString &, const QString &, const QString &); #endif }; #endif x2goclient-4.0.5.1/src/settingswidget.cpp0000644000000000000000000005245712675050177015211 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "settingswidget.h" #include "onmainwindow.h" #include #include #include #include #include #include #include #include #include "x2gosettings.h" #include #include #include #include #include #include "x2gologdebug.h" #include SettingsWidget::SettingsWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { multiDisp=(QApplication::desktop()->screenCount()>1); #ifdef Q_WS_HILDON QTabWidget* tabSettings=new QTabWidget ( this ); QFrame* dgb=new QFrame(); QFrame* kgb=new QFrame(); tabSettings->addTab ( dgb, tr ( "&Display" ) ); tabSettings->addTab ( kgb,tr ( "&Keyboard" ) ); #else QGroupBox *dgb=new QGroupBox ( tr ( "&Display" ),this ); clipGr=new QGroupBox ( tr ( "&Clipboard mode" ),this ); kgb=new QGroupBox ( tr ( "&Keyboard" ),this ); #endif QVBoxLayout *dbLay = new QVBoxLayout ( dgb ); QVBoxLayout *cbLay=new QVBoxLayout ( clipGr ); 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 ); QButtonGroup* radio = new QButtonGroup ( dgb ); fs=new QRadioButton ( tr ( "Fullscreen" ),dgb ); #ifndef Q_WS_HILDON custom=new QRadioButton ( tr ( "Custom" ),dgb ); #else custom=new QRadioButton ( tr ( "Window" ),dgb ); #endif display=new QRadioButton ( tr ( "Use whole display" ),dgb ); maxRes=new QRadioButton ( tr ( "Maximum available" ),dgb ); radio->addButton ( fs ); radio->addButton ( custom ); radio->setExclusive ( true ); radio->addButton(display); radio->addButton(maxRes); width=new QSpinBox ( dgb ); height=new QSpinBox ( dgb ); cbSetDPI=new QCheckBox ( tr ( "Set display DPI" ),dgb ); DPI=new QSpinBox ( dgb ); DPI->setRange ( 1,1000 ); cbXinerama= new QCheckBox(tr( "Xinerama extension (support for two or more physical displays)"),dgb); QHBoxLayout *dgLay =new QHBoxLayout(); QHBoxLayout *dwLay =new QHBoxLayout(); QHBoxLayout *ddLay =new QHBoxLayout(); QHBoxLayout *dispLay= new QHBoxLayout(); ddLay->addWidget ( cbSetDPI ); ddLay->addWidget ( DPI ); ddLay->addStretch(); ddLay->setSpacing ( 15 ); dgLay->addWidget ( fs ); dgLay->addStretch(); dwLay->addWidget ( custom ); dwLay->addSpacing ( 15 ); dwLay->addWidget ( widthLabel=new QLabel ( tr ( "Width:" ),dgb ) ); dwLay->addWidget ( width ); width->setRange ( 0,10000 ); dwLay->addWidget ( heightLabel=new QLabel ( tr ( "Height:" ),dgb ) ); dwLay->addWidget ( height ); height->setRange ( 0,10000 ); dwLay->addStretch(); dispLay->addWidget(display); dispLay->addWidget(maxRes); dispLay->addSpacing(15); dispLay->addWidget(lDisplay=new QLabel(tr("&Display:"),dgb)); dispLay->addWidget(displayNumber=new QSpinBox(dgb)); pbIdentDisp=new QPushButton(tr("&Identify all displays"), dgb); dispLay->addWidget(pbIdentDisp); dispLay->addStretch(); lDisplay->setBuddy(displayNumber); displayNumber->setMinimum(1); displayNumber->setMaximum(QApplication::desktop()->screenCount()); if (!multiDisp) { displayNumber->hide(); lDisplay->hide(); pbIdentDisp->hide(); display->hide(); } lDisplay->setEnabled ( false ); displayNumber->setEnabled ( false ); dbLay->addLayout ( dgLay ); dbLay->addLayout ( dwLay ); dbLay->addLayout(dispLay); QFrame* dhl=new QFrame ( dgb ); hLine1=dhl; dhl->setFrameStyle ( QFrame::HLine | QFrame::Sunken ); dbLay->addWidget ( dhl ); dbLay->addLayout ( ddLay ); dhl=new QFrame ( dgb ); hLine2=dhl; dhl->setFrameStyle ( QFrame::HLine | QFrame::Sunken ); dbLay->addWidget ( dhl ); dbLay->addWidget ( cbXinerama ); #ifdef Q_WS_HILDON width->hide(); height->hide(); widthLabel->hide(); 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); rbClipNone=new QRadioButton(tr("Disable clipboard completely"), clipGr); cbLay->addWidget(rbClipBoth); cbLay->addWidget(rbClipClient); cbLay->addWidget(rbClipServer); cbLay->addWidget(rbClipNone); QButtonGroup* clipRadioGroup=new QButtonGroup(clipGr); clipRadioGroup->addButton(rbClipBoth); clipRadioGroup->addButton(rbClipClient); clipRadioGroup->addButton(rbClipServer); clipRadioGroup->addButton(rbClipNone); rbKbdAuto=new QRadioButton(tr("Auto-detect keyboard settings"),kgb); rbKbdNoSet=new QRadioButton(tr("Do not configure keyboard"),kgb); rbKbdSet=new QRadioButton(tr("Configure keyboard"),kgb); QButtonGroup* kbRadio=new QButtonGroup(kgb); kbRadio->addButton(rbKbdAuto); kbRadio->addButton(rbKbdNoSet); kbRadio->addButton(rbKbdSet); gbKbdString=new QGroupBox(kgb); gbKbdString->setFlat(true); QHBoxLayout* kbstrlay=new QHBoxLayout(gbKbdString); kbstrlay->addWidget(new QLabel(tr("Model: "), gbKbdString)); leModel=new QLineEdit(gbKbdString); kbstrlay->addWidget(leModel); kbstrlay->addWidget(new QLabel(tr("Layout: "), gbKbdString)); leLayout=new QLineEdit(gbKbdString); kbstrlay->addWidget(leLayout); kbstrlay->addWidget(new QLabel(tr("Variant: "), gbKbdString)); leVariant=new QLineEdit(gbKbdString); kbstrlay->addWidget(leVariant); QVBoxLayout *kbLay = new QVBoxLayout ( kgb ); kbLay->addWidget ( rbKbdAuto); kbLay->addWidget ( rbKbdNoSet); kbLay->addWidget ( rbKbdSet); kbLay->addWidget( gbKbdString ); #ifndef Q_WS_HILDON setLay->addWidget ( dgb ); setLay->addWidget ( clipGr ); setLay->addWidget ( kgb ); #ifdef Q_OS_LINUX #ifdef CFGCLIENT rdpBox=new QGroupBox ( tr ( "RDP client" ),this ); setLay->addWidget ( rdpBox ); rRdesktop=new QRadioButton ("rdesktop",rdpBox ); rRdesktop->setChecked(true); 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 ( rXfreeRDPOld ); rClient->addButton ( rXfreeRDPNew ); rClient->setExclusive ( true ); QGridLayout *rdpLay=new QGridLayout(rdpBox); rdpLay->addWidget(rRdesktop,0,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,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())); connect (width, SIGNAL(valueChanged(int)), this, SLOT(updateCmdLine())); connect (height, SIGNAL(valueChanged(int)), this, SLOT(updateCmdLine())); #endif //CFGCLIENT #endif //Q_OS_LINUX #else setLay->addWidget ( tabSettings ); // cbClientPrint->hide(); #endif //Q_WS_HILDON setLay->addStretch(); connect ( custom,SIGNAL ( toggled ( bool ) ),width, SLOT ( setEnabled ( bool ) ) ); connect ( custom,SIGNAL ( toggled ( bool ) ),height, SLOT ( setEnabled ( bool ) ) ); connect ( custom,SIGNAL ( toggled ( bool ) ),widthLabel, SLOT ( setEnabled ( bool ) ) ); connect ( custom,SIGNAL ( toggled ( bool ) ),heightLabel, SLOT ( setEnabled ( bool ) ) ); connect ( display,SIGNAL ( toggled ( bool ) ),displayNumber, SLOT ( setEnabled ( bool ) ) ); connect ( display,SIGNAL ( toggled ( bool ) ),lDisplay, SLOT ( setEnabled ( bool ) ) ); connect(pbIdentDisp, SIGNAL(clicked()), this, SLOT (slot_identDisplays())); connect ( kbRadio, SIGNAL (buttonClicked(QAbstractButton*)), this, SLOT(slot_kbdClicked())); connect ( cbSetDPI,SIGNAL ( toggled ( bool ) ),DPI, SLOT ( setEnabled ( bool ) ) ); setDefaults(); custom->setChecked ( true ); readConfig(); } SettingsWidget::~SettingsWidget() { } void SettingsWidget::slot_kbdClicked() { gbKbdString->setVisible(rbKbdSet->isChecked()); } #ifdef Q_OS_LINUX void SettingsWidget::setDirectRdp(bool direct) { clipGr->setVisible(!direct); kgb->setVisible(!direct); cbSetDPI->setVisible(!direct); cbXinerama->setVisible(!direct); display->setVisible(!direct); maxRes->setVisible(direct); DPI->setVisible(!direct); lDisplay->setVisible(!direct); displayNumber->setVisible(!direct); pbIdentDisp->setVisible(!direct); hLine1->setVisible(!direct); hLine2->setVisible(!direct); rdpBox->setVisible(direct); if (direct) { if (display->isChecked()) { display->setChecked(false); custom->setChecked(true); } } else { if (maxRes->isChecked()) { maxRes->setChecked(false); custom->setChecked(true); } } } #endif void SettingsWidget::slot_identDisplays() { pbIdentDisp->setEnabled(false); identWins.clear(); for (int i=0; iscreenCount(); ++i) { QMainWindow *mw=new QMainWindow( this, Qt::FramelessWindowHint|Qt::X11BypassWindowManagerHint|Qt::WindowStaysOnTopHint); mw->setFixedSize(150,200); QLabel* fr=new QLabel(QString::number(i+1), mw); QFont f=fr->font(); f.setBold(true); f.setPointSize(56); fr->setFont(f); fr->setAlignment(Qt::AlignCenter); mw->setCentralWidget(fr); fr->setFrameStyle(QFrame::Box); QRect geom=QApplication::desktop()->screenGeometry(i); int x_pos=geom.width()/2-75; int y_pos=geom.height()/2-100; x_pos=565; identWins<move(geom.x()+x_pos, geom.y()+y_pos); mw->show(); mw->raise(); } QTimer::singleShot(1200,this, SLOT(slot_hideIdentWins())); } void SettingsWidget::slot_hideIdentWins() { QMainWindow* mw; foreach(mw,identWins) { mw->close(); } pbIdentDisp->setEnabled(true); } void SettingsWidget::readConfig() { X2goSettings st ( "sessions" ); fs->setChecked ( st.setting()->value ( sessionId+"/fullscreen", ( QVariant ) mainWindow->getDefaultFullscreen() ).toBool() ); custom->setChecked ( ! st.setting()->value ( sessionId+"/fullscreen", ( QVariant ) mainWindow->getDefaultFullscreen() ).toBool() ); width->setValue ( st.setting()->value ( sessionId+"/width", ( QVariant ) mainWindow->getDefaultWidth() ).toInt() ); height->setValue ( st.setting()->value ( sessionId+"/height", ( QVariant ) mainWindow->getDefaultHeight() ).toInt() ); if (multiDisp) { bool md=st.setting()->value ( sessionId+"/multidisp", ( QVariant ) false).toBool(); if (md) display->setChecked(true); int disp=st.setting()->value ( sessionId+"/display", ( QVariant ) 1).toUInt(); if (disp<= displayNumber->maximum()) displayNumber->setValue(disp); else displayNumber->setValue(1); } #ifdef Q_OS_LINUX #ifdef CFGCLIENT maxRes->setChecked(st.setting()->value ( sessionId+"/maxdim", false).toBool()); QString client=st.setting()->value ( sessionId+"/rdpclient","rdesktop").toString(); if(client=="rdesktop") rRdesktop->setChecked(true); else if(client=="xfreerdpnew") rXfreeRDPNew->setChecked(true); else rXfreeRDPOld->setChecked(true); params->setText(st.setting()->value ( sessionId+"/directrdpsettings","").toString()); #endif #endif cbSetDPI->setChecked ( st.setting()->value ( sessionId+"/setdpi", ( QVariant ) mainWindow->getDefaultSetDPI() ).toBool() ); cbXinerama->setChecked ( st.setting()->value ( sessionId+"/xinerama", ( QVariant ) false).toBool()); DPI->setEnabled ( cbSetDPI->isChecked() ); DPI->setValue ( st.setting()->value ( sessionId+"/dpi", ( QVariant ) mainWindow->getDefaultDPI() ).toUInt() ); QString clipboard=st.setting()->value ( sessionId+"/clipboard", ( QVariant ) mainWindow->getDefaultClipboardMode() ).toString(); if(clipboard =="both") { rbClipBoth->setChecked(true); } if(clipboard =="client") { rbClipClient->setChecked(true); } if(clipboard =="server") { rbClipServer->setChecked(true); } if(clipboard =="none") { rbClipNone->setChecked(true); } QString ktype=st.setting()->value ( sessionId+"/type", ( QVariant ) mainWindow->getDefaultKbdType() ).toString(); if(ktype=="auto") { rbKbdAuto->setChecked(true); } else { rbKbdSet->setChecked(true); ktype.replace("\\",""); QStringList str=ktype.split("/"); if(str.size()>0) { leModel->setText(str[0]); } if(str.size()>1) { str[1].replace(")",""); str=str[1].split("("); if(str.size()>0) { leLayout->setText(str[0]); } if(str.size()>1) { leVariant->setText(str[1]); } } } rbKbdNoSet->setChecked ( !st.setting()->value ( sessionId+"/usekbd", ( QVariant ) mainWindow->getDefaultSetKbd() ).toBool() ); slot_kbdClicked(); } void SettingsWidget::setDefaults() { fs->setChecked ( false ); display->setChecked ( false ); lDisplay->setEnabled ( false ); displayNumber->setEnabled ( false ); custom->setChecked ( true ); width->setValue ( 800 ); height->setValue ( 600 ); cbSetDPI->setChecked ( mainWindow->getDefaultSetDPI() ); DPI->setValue ( mainWindow->getDefaultDPI() ); DPI->setEnabled ( mainWindow->getDefaultSetDPI() ); rbClipBoth->setChecked(true); rbKbdAuto->setChecked ( mainWindow->getDefaultSetKbd() ); rbKbdNoSet->setChecked ( !mainWindow->getDefaultSetKbd() ); rbKbdSet->setChecked (false ); leLayout->setText ( tr ( "us" ) ); leModel->setText ( "pc105" ); leVariant->setText(""); slot_kbdClicked(); cbXinerama->setChecked ( false ); } void SettingsWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/fullscreen", ( QVariant ) fs->isChecked() ); st.setting()->setValue ( sessionId+"/multidisp", ( QVariant ) display->isChecked() ); st.setting()->setValue ( sessionId+"/display", ( QVariant ) displayNumber->value() ); #ifdef Q_OS_LINUX #ifdef CFGCLIENT st.setting()->setValue ( sessionId+"/maxdim", ( QVariant ) maxRes->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 #endif st.setting()->setValue ( sessionId+"/width", ( QVariant ) width->value() ); st.setting()->setValue ( sessionId+"/height", ( QVariant ) height->value() ); //if maxRes is checked width and height are setted to max area available if (maxRes->isChecked() || st.setting()->value(sessionId + "/multidisp", (QVariant) false).toBool() || st.setting()->value(sessionId + "/maxdim", (QVariant) false).toBool()) { //get screen number int selectedScreen = st.setting()->value(sessionId + "/display", (QVariant) -1).toInt(); //get max available desktop area for selected screen int height = QApplication::desktop()->availableGeometry(selectedScreen).height(); int width = QApplication::desktop()->availableGeometry(selectedScreen).width(); //save max resolution st.setting()->setValue (sessionId + "/width", (QVariant) width); st.setting()->setValue (sessionId + "/height", (QVariant) height); } st.setting()->setValue ( sessionId+"/dpi", ( QVariant ) DPI->value() ); st.setting()->setValue ( sessionId+"/setdpi", ( QVariant ) cbSetDPI->isChecked() ); st.setting()->setValue ( sessionId+"/xinerama", ( QVariant ) cbXinerama->isChecked() ); QString clipMode; if(rbClipBoth->isChecked()) clipMode="both"; if(rbClipClient->isChecked()) clipMode="client"; if(rbClipServer->isChecked()) clipMode="server"; if(rbClipNone->isChecked()) clipMode="none"; st.setting()->setValue ( sessionId+"/clipboard", ( QVariant ) clipMode ); st.setting()->setValue ( sessionId+"/usekbd", ( QVariant ) !rbKbdNoSet->isChecked() ); QString ktype; if(rbKbdAuto->isChecked()) { ktype="auto"; } else { ktype=leModel->text()+"/"+leLayout->text(); if(leVariant->text().length()>0) { ktype+="\\("+leVariant->text()+"\\)"; } } st.setting()->setValue ( sessionId+"/type", ( QVariant ) ktype ); st.setting()->sync(); } #ifdef Q_OS_LINUX void SettingsWidget::setServerSettings(QString server, QString port, QString user) { this->server=server; this->port=port; this->user=user; updateCmdLine(); } void SettingsWidget::updateCmdLine() { #ifdef CFGCLIENT QString client="xfreerdp"; QString userOpt; if (user.length()>0) { userOpt=" -u "; userOpt+=user; } if (rRdesktop->isChecked()) { client="rdesktop"; } QString grOpt; if(!rXfreeRDPNew->isChecked()) { if (fs->isChecked()) { grOpt=" -f "; } if (maxRes->isChecked()) { grOpt=" -D -g x"; } 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 ); } else { if (user.length()>0) { userOpt=" /u:"; userOpt+=user; } if (fs->isChecked()) { grOpt=" /f "; } if (maxRes->isChecked()) { grOpt=" /w: /h:"; } 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 ); } #endif } #endif x2goclient-4.0.5.1/src/settingswidget.h0000644000000000000000000000620412675050177014643 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SETTINGSWIDGET_H #define SETTINGSWIDGET_H #include /** @author Oleksandr Shneyder */ class QSpinBox; class QRadioButton; class QCheckBox; class QLineEdit; class QSpinBox; class QLabel; class QPushButton; class QMainWindow; class QGroupBox; class SettingsWidget : public ConfigWidget { Q_OBJECT public: SettingsWidget ( QString id, ONMainWindow * mw, QWidget * parent=0, Qt::WindowFlags f=0 ); ~SettingsWidget(); void setDefaults(); void saveSettings(); #ifdef Q_OS_LINUX void setDirectRdp(bool direct); public slots: void setServerSettings(QString server, QString port, QString user); void updateCmdLine(); #endif private slots: void slot_identDisplays(); void slot_hideIdentWins(); void slot_kbdClicked(); private: QSpinBox* width; QSpinBox* height; QSpinBox* displayNumber; QRadioButton* fs; QRadioButton* custom; QRadioButton* display; QRadioButton* maxRes; QRadioButton* rbKbdAuto; QRadioButton* rbKbdNoSet; QRadioButton* rbKbdSet; QGroupBox* gbKbdString; QLineEdit* leModel; QLineEdit* leLayout; QLineEdit* leVariant; QCheckBox* cbSetDPI; QCheckBox* cbXinerama; QSpinBox* DPI; QLabel* widthLabel; QLabel* heightLabel; QLabel* layoutLabel; QLabel* typeLabel; QLabel* lDisplay; bool multiDisp; QPushButton* pbIdentDisp; QList identWins; QGroupBox *kgb; QGroupBox *clipGr; QRadioButton *rbClipBoth; QRadioButton *rbClipServer; QRadioButton *rbClipClient; QRadioButton *rbClipNone; #ifdef Q_OS_LINUX QGroupBox *rdpBox; QRadioButton* rRdesktop; QRadioButton* rXfreeRDPOld; QRadioButton* rXfreeRDPNew; QLineEdit* cmdLine; QLineEdit* params; QString server; QString user; QString port; #endif QFrame* hLine1; QFrame* hLine2; private: void readConfig(); }; #endif x2goclient-4.0.5.1/src/sharewidget.cpp0000644000000000000000000002565512675050177014453 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "sharewidget.h" #include "onmainwindow.h" #include #include #include #include #include #include #include #include #include #include #include #include "x2gologdebug.h" #include #include #include "x2gosettings.h" ShareWidget::ShareWidget ( QString id, ONMainWindow * mw, QWidget * parent, Qt::WindowFlags f ) : ConfigWidget ( id,mw,parent,f ) { QGroupBox *egb=new QGroupBox ( tr ( "&Folders" ),this ); expTv=new QTreeView ( egb ); expTv->setItemsExpandable ( false ); expTv->setRootIsDecorated ( false ); model=new QStandardItemModel ( 0,2 ); ldir=new QLabel ( egb ); model->setHeaderData ( 0,Qt::Horizontal,QVariant ( ( QString ) tr ( "Path" ) ) ); model->setHeaderData ( 1,Qt::Horizontal,QVariant ( ( QString ) tr ( "Automount" ) ) ); expTv->setEditTriggers ( QAbstractItemView::NoEditTriggers ); QPushButton* openDir=new QPushButton ( QIcon ( mainWindow->iconsPath ( "/16x16/file-open.png" ) ), QString::null,egb ); QPushButton* addDir=new QPushButton ( tr ( "Add" ),egb ); QPushButton* delDir=new QPushButton ( tr ( "Delete" ),egb ); #ifdef Q_WS_HILDON QSize sz=addDir->sizeHint(); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); addDir->setFixedSize ( sz ); sz=delDir->sizeHint(); sz.setHeight ( ( int ) ( sz.height() /1.5 ) ); delDir->setFixedSize ( sz ); #endif QLabel *dirPrompt=new QLabel ( tr ( "Path:" ),egb ); dirPrompt->setFixedSize ( dirPrompt->sizeHint() ); openDir->setFixedSize ( openDir->sizeHint() ); ldir->setFrameStyle ( QFrame::StyledPanel|QFrame::Sunken ); cbFsConv=new QCheckBox ( tr ( "Filename encoding" ),egb ); QHBoxLayout* enclay=new QHBoxLayout; cbFrom=new QComboBox ( egb ); cbTo=new QComboBox ( egb ); lFrom=new QLabel ( tr ( "local:" ),egb ); lTo=new QLabel ( tr ( "remote:" ),egb ); enclay->addWidget ( cbFsConv ); enclay->addWidget ( lFrom ); enclay->addWidget ( cbFrom ); enclay->addWidget ( lTo ); enclay->addWidget ( cbTo ); enclay->addStretch(); loadEnc ( cbFrom ); loadEnc ( cbTo ); cbFsSshTun=new QCheckBox ( tr ( "Use SSH port forwarding to tunnel file system " "connections through firewalls" ),egb ); QVBoxLayout* expLay=new QVBoxLayout ( this ); expLay->addWidget ( egb ); QHBoxLayout *tvLay=new QHBoxLayout ( egb ); QHBoxLayout *dirLAy=new QHBoxLayout(); dirLAy->addWidget ( dirPrompt ); dirLAy->addWidget ( ldir ); dirLAy->addWidget ( openDir ); QVBoxLayout* leftLay=new QVBoxLayout(); leftLay->addLayout ( dirLAy ); leftLay->addSpacing ( 10 ); leftLay->addWidget ( expTv ); expLay->addLayout ( enclay ); expLay->addWidget ( cbFsSshTun ); QVBoxLayout* rightLay=new QVBoxLayout(); rightLay->addWidget ( addDir ); rightLay->addStretch(); rightLay->addWidget ( delDir ); rightLay->addStretch(); tvLay->addLayout ( leftLay ); tvLay->addSpacing ( 10 ); tvLay->addLayout ( rightLay ); expTv->setModel ( ( QAbstractItemModel* ) model ); QFontMetrics fm1 ( expTv->font() ); expTv->header()->resizeSection ( 1, fm1.width ( tr ( "Automount" ) ) +10 ); connect ( openDir,SIGNAL ( clicked() ),this,SLOT ( slot_openDir() ) ); connect ( addDir,SIGNAL ( clicked() ),this,SLOT ( slot_addDir() ) ); connect ( delDir,SIGNAL ( clicked() ),this,SLOT ( slot_delDir() ) ); connect ( cbFsConv,SIGNAL ( clicked() ),this ,SLOT ( slot_convClicked() ) ); readConfig(); } ShareWidget::~ShareWidget() { } void ShareWidget::slot_openDir() { QString startDir=ONMainWindow::getHomeDirectory(); #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { startDir=ONMainWindow::U3DevicePath() +"/"; } #endif QString path= QFileDialog::getExistingDirectory ( this, tr ( "Select folder" ), startDir ); if ( path!=QString::null ) { #ifdef Q_OS_WIN if ( ONMainWindow::getPortable() && ONMainWindow::U3DevicePath().length() >0 ) { if ( path.indexOf ( ONMainWindow::U3DevicePath() ) !=0 ) { QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "X2Go Client is running in " "portable mode. You should " "use a path on your USB device " "to be able to access your data " "wherever you are." ), QMessageBox::Ok,QMessageBox::NoButton ); slot_openDir(); return; } path.replace ( ONMainWindow::U3DevicePath(), "(U3)" ); } #endif ldir->setText ( path ); } } void ShareWidget::slot_addDir() { QString path=ldir->text(); if ( path.length() <1 ) return; for ( int i=0; irowCount(); ++i ) if ( model->index ( i,0 ).data().toString() ==path ) return; QStandardItem *item; item= new QStandardItem ( path ); model->setItem ( model->rowCount(),0,item ); item= new QStandardItem(); item->setCheckable ( true ); model->setItem ( model->rowCount()-1,1,item ); ldir->setText ( QString::null ); } void ShareWidget::slot_delDir() { model->removeRow ( expTv->currentIndex().row() ); } void ShareWidget::readConfig() { X2goSettings st ( "sessions" ); QString exportDir=st.setting()->value ( sessionId+"/export", ( QVariant ) QString::null ).toString(); cbFsSshTun->setChecked ( st.setting()->value ( sessionId+"/fstunnel", true ).toBool() ); QStringList lst=exportDir.split ( ";",QString::SkipEmptyParts ); QString toCode=st.setting()->value ( sessionId+"/iconvto", ( QVariant ) "UTF-8" ).toString(); #ifdef Q_OS_WIN QString fromCode=st.setting()->value ( sessionId+"/iconvfrom", ( QVariant ) tr ( "WINDOWS-1252" ) ).toString(); #endif #ifdef Q_OS_DARWIN QString fromCode=st.setting()->value ( sessionId+"/iconvfrom", ( QVariant ) "UTF-8" ).toString(); #endif #ifdef Q_OS_LINUX QString fromCode=st.setting()->value ( sessionId+"/iconvfrom", ( QVariant ) tr ( "ISO8859-1" ) ).toString(); #endif cbFsConv->setChecked ( st.setting()->value ( sessionId+"/useiconv", ( QVariant ) false ).toBool() ); slot_convClicked(); int ind=cbFrom->findText ( fromCode ); if ( ind !=-1 ) cbFrom->setCurrentIndex ( ind ); ind=cbTo->findText ( toCode ); if ( ind !=-1 ) cbTo->setCurrentIndex ( ind ); for ( int i=0; isetItem ( model->rowCount(),0,item ); item= new QStandardItem(); item->setCheckable ( true ); if ( tails[1]=="1" ) item->setCheckState ( Qt::Checked ); model->setItem ( model->rowCount()-1,1,item ); } } void ShareWidget::setDefaults() { cbFsSshTun->setChecked ( true ); QString toCode="UTF-8"; #ifdef Q_OS_WIN QString fromCode=tr ( "WINDOWS-1252" ); #endif #ifdef Q_OS_DARWIN QString fromCode="UTF-8"; #endif #ifdef Q_OS_LINUX QString fromCode=tr ( "ISO8859-1" ); #endif cbFsConv->setChecked ( false ); slot_convClicked(); int ind=cbFrom->findText ( fromCode ); if ( ind !=-1 ) cbFrom->setCurrentIndex ( ind ); ind=cbTo->findText ( toCode ); if ( ind !=-1 ) cbTo->setCurrentIndex ( ind ); } void ShareWidget::saveSettings() { X2goSettings st ( "sessions" ); st.setting()->setValue ( sessionId+"/fstunnel", ( QVariant ) cbFsSshTun->isChecked() ); QString exportDirs; for ( int i=0; irowCount(); ++i ) { #ifndef Q_OS_WIN exportDirs+=model->index ( i,0 ).data().toString() +":"; #else exportDirs+=model->index ( i,0 ).data().toString() +"#"; #endif if ( model->item ( i,1 )->checkState() ==Qt::Checked ) exportDirs+="1;"; else exportDirs+="0;"; } st.setting()->setValue ( sessionId+"/export", ( QVariant ) exportDirs ); st.setting()->setValue ( sessionId+"/iconvto",cbTo->currentText() ); st.setting()->setValue ( sessionId+"/iconvfrom",cbFrom->currentText() ); st.setting()->setValue ( sessionId+"/useiconv",cbFsConv->isChecked() ); st.setting()->sync(); } void ShareWidget::loadEnc ( QComboBox* cb ) { QFile file ( ":/txt/encodings" ); if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) return; QTextStream in ( &file ); while ( !in.atEnd() ) { QString line = in.readLine(); line=line.replace ( "//","" ); cb->addItem ( line ); } } void ShareWidget::slot_convClicked() { bool val=cbFsConv->isChecked(); cbTo->setEnabled ( val ); cbFrom->setEnabled ( val ); lTo->setEnabled ( val ); lFrom->setEnabled ( val ); } x2goclient-4.0.5.1/src/sharewidget.h0000644000000000000000000000402612675050177014105 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SHAREWIDGET_H #define SHAREWIDGET_H #include /** @author Oleksandr Shneyder */ class QTreeView; class QStandardItemModel; class QLabel; class QCheckBox; class QComboBox; class ShareWidget : public ConfigWidget { Q_OBJECT public: ShareWidget ( QString id, ONMainWindow * mw, QWidget * parent=0, Qt::WindowFlags f=0 ); ~ShareWidget(); void setDefaults(); void saveSettings(); private slots: void slot_openDir(); void slot_addDir(); void slot_delDir(); void slot_convClicked(); private: QTreeView* expTv; QStandardItemModel* model; QLabel *ldir; QCheckBox* cbFsSshTun; QCheckBox* cbFsConv; QComboBox* cbFrom; QComboBox* cbTo; QLabel* lFrom; QLabel* lTo; private: void readConfig(); void loadEnc ( QComboBox* cb ); }; #endif x2goclient-4.0.5.1/src/sshmasterconnection.cpp0000644000000000000000000014606012675050177016230 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "sshmasterconnection.h" #include #include #include "sshprocess.h" #include #include #include #include #ifndef Q_OS_WIN #include #endif #include #include #ifndef Q_OS_WIN #include /* for socket(), connect(), send(), and recv() */ #include /* for sockaddr_in and inet_addr() */ #include #include #include #endif #include "onmainwindow.h" #define PROXYTUNNELPORT 44444 #define DEBUG #undef SSH_DEBUG // #define SSH_DEBUG static bool isLibSshInited=false; const QString SshMasterConnection::challenge_auth_code_prompts_[] = { "Verification code:", "One-time password (OATH) for" }; #ifdef Q_OS_WIN #include // parse known_hosts file from libssh and export keys in registry to use with plink.exe void SshMasterConnection::parseKnownHosts() { QFile fl(mainWnd->getHomeDirectory()+"/ssh/known_hosts"); if (!fl.open(QFile::ReadOnly)) return; QSettings settings("HKEY_CURRENT_USER\\Software\\SimonTatham\\PuTTY\\SshHostKeys", QSettings::NativeFormat); while (!fl.atEnd()) { QString line=fl.readLine(); QStringList parts=line.split(' ',QString::SkipEmptyParts); if (parts.count()!=3) continue; //lines in known_hosts have format: //[host]:port //we proceeding only lines from libssh - no hashed hostnames //or patterns are allowed QString type="unknown"; QString port="22"; if (parts[1]=="ssh-dss") type="dss"; if (parts[1]=="ssh-rsa") type="rsa2"; QStringList hostParts=parts[0].split(":",QString::SkipEmptyParts); if (hostParts.count()>1) port=hostParts[1]; hostParts[0].replace("[",""); hostParts[0].replace("]",""); QString keyName=type+"@"+port+":"+hostParts[0]; QByteArray bytes=QByteArray::fromBase64(parts[2].toAscii()); QStringList fields; //key is a set of data fields: //[size][data][size][data].....[size][data] for (int i=0; ihost=host; this->port=port; this->user=user; this->pass=pass; this->key=key; this->autologin=autologin; this->acceptUnknownServers=acceptUnknownServers; this->useproxy=useproxy; this->proxytype=type; this->proxyautologin=proxyautologin; this->proxykey=proxykey; this->proxyserver=proxyserver; this->proxyport=proxyport; this->proxylogin=proxylogin; this->proxypassword=proxypassword; this->proxyKrbLogin=proxyKrbLogin; mainWnd=(ONMainWindow*) parent; kerberos=krblogin; challengeAuthVerificationCode=QString::null; if(this->user==QString::null||this->user.length()<=0) { #ifdef Q_OS_WIN this->user=getenv("USERNAME"); #else this->user=getenv("USER"); #endif } #ifdef DEBUG if (kerberos) { x2goDebug<<"Starting SSH connection with Kerberos authentication."; } else { x2goDebug<<"Starting SSH connection without Kerberos authentication."; } #endif #ifdef DEBUG x2goDebug<<"SshMasterConnection, instance "<startTunnel ( host, port, "127.0.0.1",localProxyPort,false,this, SLOT ( slotSshProxyTunnelOk(int)), SLOT ( slotSshProxyTunnelFailed(bool,QString,int))); } int SshMasterConnection::copyFile(const QString& src, const QString dst, QObject* receiver, const char* slotFinished) { SshProcess* proc=new SshProcess(this, nextPid++); if(receiver && slotFinished) { connect(proc, SIGNAL(sshFinished(bool,QString,int)), receiver, slotFinished); } proc->start_cp(src,dst); processes<pid; } int SshMasterConnection::executeCommand(const QString& command, QObject* receiver, const char* slotFinished) { SshProcess* proc=new SshProcess(this, nextPid++); if(receiver && slotFinished) { connect(proc, SIGNAL(sshFinished(bool,QString,int)), receiver, slotFinished); } proc->startNormal(command); processes<pid; } QString SshMasterConnection::getSourceFile(int pid) { foreach (SshProcess* proc, processes) { if(proc->pid==pid) return proc->getSource(); } return QString ::null; } void SshMasterConnection::addReverseTunnelConnections() { reverseTunnelRequestMutex.lock(); for(int i=0; i (req.forwardPort) == port) { #ifdef DEBUG x2goDebug<<"Creating new channel for reverse tunnel "<startTunnel(forwardHost, forwardPort, localHost, localPort, reverse); if(reverse && !kerberos) { connect(this, SIGNAL(reverseTunnelOk(SshProcess*)), proc, SLOT(slotReverseTunnelOk(SshProcess*))); connect(this, SIGNAL(reverseTunnelFailed(SshProcess*,QString)), proc, SLOT(slotReverseTunnelFailed(SshProcess*,QString))); ReverseTunnelRequest req; req.creator=proc; req.localPort=localPort; req.localHost=localHost; req.forwardPort=forwardPort; req.listen=false; #ifdef DEBUG x2goDebug<<"Requesting reverse tunnel from port "<pid; } void SshMasterConnection::slotSshProxyConnectionError(QString err1, QString err2) { breakLoop=true; emit connectionError(tr("SSH proxy connection error."),err1+" "+err2); } void SshMasterConnection::slotSshProxyServerAuthError(int errCode, QString err, SshMasterConnection* con) { emit serverAuthError(errCode, tr("SSH proxy connection error: ")+err, con); } void SshMasterConnection::slotSshProxyUserAuthError(QString err) { breakLoop=true; emit userAuthError(tr("SSH proxy connection error: ")+err); } void SshMasterConnection::slotSshProxyTunnelOk(int) { #ifdef DEBUG x2goDebug<<"SSH proxy tunnel established."; #endif sshProxyReady=true; } void SshMasterConnection::slotSshProxyTunnelFailed(bool , QString output, int) { breakLoop=true; emit connectionError(tr("Failed to create SSH proxy tunnel."), output); } void SshMasterConnection::slotSshProxyServerAuthAborted() { breakLoop=true; } void SshMasterConnection::run() { #ifdef DEBUG x2goDebug<<"SshMasterConnection, instance "<start(); while(! sshProxyReady) { if(breakLoop) { quit(); return; } this->usleep(200); } } disconnectSessionFlag=false; if ( !isLibSshInited ) { #ifdef DEBUG x2goDebug<<"libssh not initialized yet. Initializing."; #endif if ( ssh_init() !=0 ) { QString err=tr ( "Cannot initialize libssh." ); #ifdef DEBUG x2goDebug<getHomeDirectory()+"/ssh").toLocal8Bit()); #ifdef DEBUG x2goDebug<<"Setting SSH directory to "<<(mainWnd->getHomeDirectory()+"/ssh").toLocal8Bit(); #endif if (kerberos) { parseKnownHosts(); } #endif ssh_options_set(my_ssh_session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity); ssh_options_set(my_ssh_session, SSH_OPTIONS_TIMEOUT, &timeout); if (useproxy && proxytype == PROXYHTTP) { socket_t proxysocket = SSH_INVALID_SOCKET; tcpNetworkProxy = new QNetworkProxy( QNetworkProxy::HttpProxy, proxyserver, proxyport, proxylogin, proxypassword); tcpProxySocket = new QTcpSocket(); tcpProxySocket->setProxy( *tcpNetworkProxy ); tcpProxySocket->connectToHost(host, port); if (!tcpProxySocket->waitForConnected(30000)) { QString message=tr ( "Cannot connect to proxy server." ); #ifdef DEBUG x2goDebug<socketDescriptor(); #ifdef DEBUG x2goDebug << "Created HTTP proxy socket: " << proxysocket << endl; #endif ssh_options_set( my_ssh_session, SSH_OPTIONS_FD, &proxysocket); ssh_set_fd_toread( my_ssh_session); #ifdef DEBUG x2goDebug<<"Connected to HTTP proxy server: " << proxyserver << ":" << proxyport <usleep(100); writeHostKeyMutex.lock(); if(writeHostKeyReady) { if(writeHostKey) ssh_write_knownhost(my_ssh_session); writeHostKeyMutex.unlock(); break; } writeHostKeyMutex.unlock(); } ssh_disconnect ( my_ssh_session ); ssh_free ( my_ssh_session ); return; } if(disconnectSessionFlag) { #ifdef DEBUG x2goDebug<<"Session is already disconnected, exiting."<getHomeDirectory()+"/ssh").toLocal8Bit()); #ifdef DEBUG x2goDebug<<"Setting SSH directory to "<<(mainWnd->getHomeDirectory()+"/ssh").toLocal8Bit(); #endif #endif if ( userAuth() ) { if(disconnectSessionFlag) { #ifdef DEBUG x2goDebug<<"Session is already disconnected, exiting."<=0; --i) { delete processes[i]; } #ifdef DEBUG x2goDebug<<"SshMasterConnection, instance "<usleep(200); keyPhraseMutex.lock(); if(keyPhraseReady) ready=true; keyPhraseMutex.unlock(); if(ready) break; } challengeAuthVerificationCode=keyPhrase; if(challengeAuthVerificationCode==QString::null) { authErrors<usleep(200); keyPhraseMutex.lock(); if(keyPhraseReady) ready=true; keyPhraseMutex.unlock(); if(ready) break; } if(keyPhrase==QString::null) break; rc = ssh_userauth_autopubkey ( my_ssh_session, keyPhrase.toAscii() ); if(i++==2) { break; } } if ( rc != SSH_AUTH_SUCCESS ) { QString err=ssh_get_error ( my_ssh_session ); authErrors<getHomeDirectory() +"/.x2go/ssh/gen"; dr.mkpath ( keyPath ); QTemporaryFile fl ( keyPath+"/key" ); fl.open(); keyName=fl.fileName(); fl.setAutoRemove ( false ); QTextStream out ( &fl ); out<usleep(200); keyPhraseMutex.lock(); if(keyPhraseReady) ready=true; keyPhraseMutex.unlock(); if(ready) break; } if(keyPhrase==QString::null) break; prkey=privatekey_from_file(my_ssh_session, keyName.toAscii(), 0,keyPhrase.toAscii()); if(i++==2) { break; } } if (!prkey) { #ifdef DEBUG x2goDebug<<"Failed to get private key from "<=0; --i ) { QStringList lst=copyRequests[i].dst.split ( "/" ); QString dstFile=lst.last(); lst.removeLast(); QString dstPath=lst.join ( "/" ); #ifdef DEBUG x2goDebug<<"SSH Master Connection copy - dst path:"< "<0 ) copy(); copyRequestMutex.unlock(); char buffer[1024*512]; //512K buffer int nbytes; fd_set rfds; struct timeval tv; tv.tv_sec = 0; tv.tv_usec = 500000; int retval; int maxsock=-1; channelConnectionsMutex.lock(); if ( channelConnections.size() <=0 ) { #ifdef DEBUG // x2goDebug<<"no channel connections, waiting\n"; #endif channelConnectionsMutex.unlock(); usleep ( 500 ); continue; } ssh_channel* read_chan=new ssh_channel[channelConnections.size() +1]; ssh_channel* out_chan=new ssh_channel[channelConnections.size() +1]; read_chan[channelConnections.size() ]=NULL; FD_ZERO ( &rfds ); for ( int i=0; i0 ) FD_SET ( tcpSocket, &rfds ); if ( channelConnections.at ( i ).channel==0l ) { #ifdef DEBUG x2goDebug<<"Creating new channel."<0 ) { #ifdef DEBUG x2goDebug<<"Forwarding new channel, local port: "<maxsock ) maxsock=tcpSocket; } channelConnectionsMutex.unlock(); retval=ssh_select ( read_chan,out_chan,maxsock+1,&rfds,&tv ); delete [] read_chan; delete [] out_chan; if ( retval == -1 ) { #ifdef DEBUG x2goDebug<<"select() error."; #endif continue; } #ifdef DEBUG // x2goDebug<<"select exited"<=0; --i ) { int tcpSocket=channelConnections.at ( i ).sock; ssh_channel channel=channelConnections.at ( i ).channel; if ( channel==0l ) continue; if ( channel_poll ( channel,1 ) >0 ) { #ifdef DEBUG // x2goDebug<<"read err data from channel\n"; #endif nbytes = channel_read ( channel, buffer, sizeof ( buffer )-1, 1 ); emit stdErr ( channelConnections[i].creator, QByteArray ( buffer,nbytes ) ); #ifdef DEBUG // x2goDebug<pid; #endif //////Finished//////// finalize ( i ); continue; } if ( rez>0 ) { #ifdef DEBUG // x2goDebug<<"read data from channel "< 0 ) { if ( tcpSocket>0 ) { if ( send ( tcpSocket,buffer, nbytes,0 ) != nbytes ) { QString errMsg=tr ( "Error writing to socket." ); #ifdef DEBUG x2goDebug<<"Error writing "<pid; #endif //////Finished//////// finalize ( i ); continue; } } if ( tcpSocket<=0 ) { continue; } if ( FD_ISSET ( tcpSocket,&rfds ) ) { nbytes = recv ( tcpSocket, buffer, sizeof ( buffer )-1,0 ); #ifdef DEBUG // x2goDebug< 0 ) { if ( channel_write ( channel, buffer, nbytes ) !=nbytes ) { QString err=ssh_get_error ( my_ssh_session ); QString errorMsg=tr ( "channel_write failed." ); emit ioErr ( channelConnections[i].creator, errorMsg, err ); #ifdef DEBUG x2goDebug<0 ) { #ifndef Q_OS_WIN shutdown(tcpSocket, SHUT_RDWR); close ( tcpSocket ); #else shutdown(tcpSocket, SD_BOTH); closesocket ( tcpSocket ); #endif } SshProcess* proc=channelConnections[item].creator; QString uuid=channelConnections[item].uuid; channelConnections.removeAt ( item ); emit channelClosed ( proc, uuid ); } x2goclient-4.0.5.1/src/sshmasterconnection.h0000644000000000000000000001577312675050177015703 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SSHMASTERCONNECTION_H #define SSHMASTERCONNECTION_H #include #include #include #include #include #include #include #include #define PROPERTY(TYPE,NAME) private: TYPE NAME; \ public: TYPE get_##NAME(){return NAME;} \ void set_##NAME(TYPE VAL){NAME=VAL;} class ONMainWindow; class SshProcess; struct ChannelConnection { ssh_channel channel; int sock; SshProcess* creator; int forwardPort; int localPort; QString forwardHost; QString localHost; QString command; QString uuid; bool operator==(ChannelConnection& t) { return (channel==t.channel); } }; struct ReverseTunnelRequest { uint localPort; uint forwardPort; QString localHost; SshProcess* creator; bool listen; }; struct CopyRequest { SshProcess* creator; QString src; QString dst; }; class SshMasterConnection: public QThread { Q_OBJECT PROPERTY(bool, kerberosDelegation) public: enum ProxyType {PROXYSSH, PROXYHTTP}; void run(); SshMasterConnection(QObject* parent, QString host, int port, bool acceptUnknownServers, QString user, QString pass, QString key, bool autologin, bool krblogin=false, bool useproxy=false, ProxyType type=PROXYSSH, QString proxyserver=QString::null, quint16 proxyport=0, QString proxylogin=QString::null, QString proxypassword=QString::null, QString proxyKey=QString::null, bool proxyAutologin=false, bool proxyKrbLogin=false); ~SshMasterConnection(); static void finalizeLibSsh(); void addChannelConnection(SshProcess* creator, int sock, QString forwardHost, int forwardPort, QString localHost, int localPort, void* channel=0l); void addChannelConnection(SshProcess* creator, QString uuid, QString cmd); void addCopyRequest(SshProcess* creator, QString src, QString dst); void writeKnownHosts(bool); void setKeyPhrase(QString); int executeCommand(const QString& command, QObject* receiver=0, const char* slotFinished=0); int startTunnel(const QString& forwardHost, uint forwardPort, const QString& localHost, uint localPort, bool reverse=false, QObject* receiver=0, const char* slotTunnelOk=0, const char* slotFinished=0); int copyFile(const QString& src, const QString dst, QObject* receiver=0, const char* slotFinished=0); QString getSourceFile(int pid); void setAcceptUnknownServers(bool accept) { acceptUnknownServers=accept; } QString getHost() { return host; } QString getUser() { return user; } int getPort() { return port; } bool useKerberos() { return kerberos; }; private: bool sshConnect(); bool userAuthWithPass(); bool userAuthAuto(); bool userAuthWithKey(); bool userChallengeAuth(); bool userAuth(); bool userAuthKrb(); void channelLoop(); void finalize(int arg1); void copy(); int serverAuth(QString& errorMsg); void setVerficationCode(QString code); void checkReverseTunnelConnections(); void addReverseTunnelConnections(); #ifdef Q_OS_WIN void parseKnownHosts(); #endif private slots: void slotSshProxyServerAuthError ( int,QString, SshMasterConnection* ); void slotSshProxyServerAuthAborted (); void slotSshProxyUserAuthError ( QString ); void slotSshProxyConnectionError ( QString,QString ); void slotSshProxyConnectionOk(); void slotSshProxyTunnelOk(int); void slotSshProxyTunnelFailed(bool result, QString output, int); private: ssh_session my_ssh_session; QList channelConnections; QList copyRequests; QList reverseTunnelRequest; QMutex channelConnectionsMutex; QMutex copyRequestMutex; QMutex disconnectFlagMutex; QMutex writeHostKeyMutex; QMutex reverseTunnelRequestMutex; bool writeHostKey; bool writeHostKeyReady; int nextPid; QList processes; QString keyPhrase; bool keyPhraseReady; QMutex keyPhraseMutex; QString host; int port; QString user; QString pass; QString key; bool useproxy; QString proxyserver; quint16 proxyport; QString proxylogin; QString proxypassword; ProxyType proxytype; bool proxyautologin; bool proxyKrbLogin; QString proxykey; QStringList authErrors; bool autologin; bool disconnectSessionFlag; int localProxyPort; bool acceptUnknownServers; ONMainWindow* mainWnd; bool kerberos; QString sshProcErrString; QTcpSocket *tcpProxySocket; QNetworkProxy *tcpNetworkProxy; SshMasterConnection* sshProxy; bool sshProxyReady; bool breakLoop; bool challengeAuthPasswordAccepted; QString challengeAuthVerificationCode; static const QString challenge_auth_code_prompts_[]; signals: void stdErr(SshProcess* caller, QByteArray data); void stdOut(SshProcess* caller, QByteArray data); void ioErr(SshProcess* caller, QString error, QString lastSessionError); void copyErr(SshProcess* caller, QString error, QString lastSessionError); void copyOk(SshProcess* caller); void channelClosed(SshProcess* caller, QString uuid); void reverseTunnelOk(SshProcess* caller); void reverseTunnelFailed(SshProcess* caller, QString error); void connectionError(QString message, QString lastSessionError); void serverAuthError(int errCode, QString lastSessionError, SshMasterConnection*); void serverAuthAborted(); void userAuthError(QString error); void connectionOk( QString host); void needPassPhrase(SshMasterConnection*, bool verificationCode); }; #endif // SSHMASTERCONNECTION_H x2goclient-4.0.5.1/src/sshprocess.cpp0000644000000000000000000004204412675050177014330 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "sshmasterconnection.h" #include "sshprocess.h" #include #include #include #ifndef Q_OS_WIN #include #include #endif // #undef DEBUG #define DEBUG #define KEEPALIVE_OPTION " -o ServerAliveInterval=60 " SshProcess::SshProcess(SshMasterConnection* master, int pid): QObject(0) { masterCon=master; serverSocket=0; connect(master,SIGNAL(stdErr(SshProcess*,QByteArray)),this,SLOT(slotStdErr(SshProcess*,QByteArray))); connect(master,SIGNAL(ioErr(SshProcess*,QString,QString)),this,SLOT(slotIOerr(SshProcess*,QString,QString))); tunnel=false; normalExited=true; this->pid=pid; proc=0l; execProcess=false; } SshProcess::~SshProcess() { #ifdef DEBUG x2goDebug<<"SshProcess destructor called."; #endif if (proc) { if (tunnel) { disconnect(proc,SIGNAL(finished(int,QProcess::ExitStatus)),this, SLOT(slotSshProcFinished(int,QProcess::ExitStatus))); disconnect(proc,SIGNAL(readyReadStandardError()),this,SLOT(slotSshProcStdErr())); disconnect(proc,SIGNAL(readyReadStandardOutput()),this,SLOT(slotSshProcStdOut())); } if (proc->state()==QProcess::Running && execProcess) { if(!proc->waitForFinished(3000)) { proc->terminate(); } } if (proc->state()==QProcess::Running) { proc->kill(); } if(proc->state()!=QProcess::Running) { delete proc; } proc=0; } if (serverSocket>0) { #ifdef Q_OS_WIN closesocket(serverSocket); WSACleanup(); #else close(serverSocket); #endif } } void SshProcess::slotCheckNewConnection() { fd_set rfds; struct timeval tv; tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&rfds); FD_SET(serverSocket, &rfds); if (select(serverSocket+1,&rfds,NULL,NULL,&tv)<=0) return; #ifdef DEBUG x2goDebug<<"New TCP connection."; #endif int tcpSocket=accept(serverSocket, (struct sockaddr*)&address,&addrlen); #ifdef DEBUG x2goDebug<<"New socket: "<addChannelConnection(this, tcpSocket, forwardHost, forwardPort, localHost, ntohs(address.sin_port)); } void SshProcess::tunnelLoop() { serverSocket=socket(AF_INET, SOCK_STREAM, 0); if (serverSocket<=0) { QString err=tr("Error creating socket."); x2goDebug<start(100); emit sshTunnelOk(pid); #ifdef DEBUG x2goDebug<<"Direct tunnel: waiting for connections on "< void SshProcess::addPuttyReg(QString host, QString uuidStr) { QSettings st("HKEY_CURRENT_USER\\Software\\SimonTatham\\PuTTY\\Sessions\\"+uuidStr, QSettings::NativeFormat); st.setValue("HostName", host); st.setValue("GssapiFwd", (uint) 1); st.sync(); } void SshProcess::rmPuttyReg(QString uuidStr) { if (uuidStr.isEmpty()) { #ifdef DEBUG x2goDebug<<"uuidStr is empty. No PuTTY session reg key to delete."; #endif return; } #ifdef DEBUG x2goDebug<<"Deleting key in registry: HKEY_CURRENT_USER\\Software\\SimonTatham\\PuTTY\\Sessions\\"+uuidStr; #endif QSettings st("HKEY_CURRENT_USER\\Software\\SimonTatham\\PuTTY\\Sessions", QSettings::NativeFormat); st.remove(uuidStr); st.sync(); } #endif void SshProcess::startNormal(const QString& cmd) { QUuid uuid = QUuid::createUuid(); QString uuidStr = uuid.toString().mid(1, 36).toLower(); execProcess=true; //#ifdef DEBUG // ONLY UNCOMMENT FOR TESTING, MIGHT REVEAL PASSWORD WHEN command=RDP x2goDebug<<"Executing remote command via SshProcess object "<useKerberos()) { QString shcmd = "bash -l -c 'echo \"X2GODATABEGIN:" + uuidStr + "\"; export PATH=\"/usr/local/bin:/usr/bin:/bin\"; export TERM=\"dumb\"; "+cmd+"; echo \"X2GODATAEND:" + uuidStr + "\";'"; x2goDebug << "this="<addChannelConnection(this, '" << uuidStr << "', '" << shcmd.left (200) << "');"; masterCon->addChannelConnection(this, uuidStr, shcmd); connect(masterCon,SIGNAL(stdOut(SshProcess*,QByteArray)),this,SLOT(slotStdOut(SshProcess*,QByteArray))); connect(masterCon,SIGNAL(channelClosed(SshProcess*,QString)), this,SLOT(slotChannelClosed(SshProcess*,QString))); } else { QString host=masterCon->getHost(); QString shcmd = ""; /* On Windows, arguments are automatically wrapped in double quotes. * Additionally, QProcess automatically doubles escape characters before * double quotes and inserts an escape character before any non-escaped * double quotes. * Thus, we don't escape double quotes here and let Qt handle this stuff. * * On UNIX-like platforms, likewise, we MUST NOT escape double quotes, * as there is no preceding "outer double quote" the whole argument * is wrapped in. */ shcmd = "bash -l -c 'echo \"X2GODATABEGIN:" + uuidStr + "\"; export PATH=\"/usr/local/bin:/usr/bin:/bin\"; export TERM=\"dumb\"; "+cmd+"; echo \"X2GODATAEND:" + uuidStr + "\";'"; proc=new QProcess(this); QString local_cmd = ""; QStringList local_args; #ifdef Q_OS_WIN if(masterCon->get_kerberosDelegation()) { addPuttyReg(host, uuidStr); host = uuidStr; } local_cmd = "plink"; /* General options. */ local_args << "-batch"; /* Port option. Must be the last one added! */ local_args << "-P"; #else local_cmd = "ssh"; /* General options. */ local_args << QString (KEEPALIVE_OPTION).trimmed ().split (" "); /* Kerberos options. */ local_args << "-k"; if(masterCon->get_kerberosDelegation()) { local_args << "-K"; } /* Authentication options. */ local_args << "-o" << "GSSApiAuthentication=yes" << "-o" << "PasswordAuthentication=no" << "-o" << "PubkeyAuthentication=no"; /* Port option. Must be the last one added! */ local_args << "-p"; #endif local_args << QString::number (masterCon->getPort ()) << "-l" << masterCon->getUser () << host; /* On Windows, arguments are automatically wrapped in double quotes. * This means we do not have to wrap shcmd ourselves. * * On UNIX-like platforms, we likewise MUST NOT wrap the command in * double quotes, as each entry in the arguments list is passed as * one entry in argv. */ local_args << shcmd; x2goDebug << "Invoking SSH command via SshProcess object " << pid << ": " << local_cmd << " " << local_args.join (" "); procUuid=uuidStr; proc->start (local_cmd, local_args); if (!proc->waitForStarted(15000)) { stdErrString=proc->errorString(); #ifdef DEBUG //x2goDebug<<"ssh start failed:" < "<useKerberos()) { connect(masterCon, SIGNAL(copyErr(SshProcess*,QString,QString)), this, SLOT(slotCopyErr(SshProcess*,QString,QString))); connect(masterCon, SIGNAL(copyOk(SshProcess*)), this,SLOT(slotCopyOk(SshProcess*))); masterCon->addCopyRequest(this,src,dst); } else { proc=new QProcess(this); #ifdef Q_OS_WIN //pscp doesn't acccept paths like the following when in SFTP mode (default) //~user/foo.txt //~/foo.txt //${HOME}/foo.txt //$HOME/foo.txt // //However, pscp does let you specify a path relative to the user's home dir. //You simply specify the relative path without a / at the beginning. //For example: //foo.txt // //This workaround assumes that files will never be uploaded to a home dir //other than the user's. dst.remove("~"+masterCon->getUser()+"/"); dst.remove("~"+masterCon->getUser() ); dst.remove("~/"); dst.remove("~" ); dst.remove("${HOME}/"); dst.remove("${HOME}"); dst.remove("$HOME/"); dst.remove("$HOME"); QString sshString="pscp -batch -P "+ #else QString sshString="scp -o GSSApiAuthentication=yes -o PasswordAuthentication=no -o PubkeyAuthentication=no -P "+ #endif QString::number(masterCon->getPort())+" "+src+" "+ masterCon->getUser()+"@"+ masterCon->getHost()+":"+dst; #ifdef DEBUG x2goDebug<<"Running scp:" <start(sshString); if (!proc->waitForStarted(15000)) { stdErrString=proc->errorString(); #ifdef DEBUG x2goDebug<<"SSH start failed:" < "<useKerberos()) { this->forwardHost=forwardHost; this->forwardPort=forwardPort; this->localHost=localHost; this->localPort=localPort; if (!reverse) tunnelLoop(); } else { proc=new QProcess(0); #ifdef Q_OS_WIN QString sshString="plink -batch -P "+ #else QString sshString=QString::null+"ssh"+ KEEPALIVE_OPTION +"-o GSSApiAuthentication=yes -o PasswordAuthentication=no -o PubkeyAuthentication=no -p "+ #endif QString::number(masterCon->getPort())+" "+ masterCon->getUser()+"@"+ masterCon->getHost() + " -N -v "; if (!reverse) sshString+=" -L " + QString::number(localPort)+":"+forwardHost+":"+QString::number(forwardPort); else sshString+=" -R "+ QString::number(forwardPort)+":"+forwardHost+":"+QString::number(localPort); #ifdef DEBUG x2goDebug<<"Tunnel: running ssh:" <start(sshString); if (!proc->waitForStarted(5000)) { stdErrString=proc->errorString(); #ifdef DEBUG x2goDebug<<"SSH start failed:" <0 ) { normalExited=false; output=stdErrString; #ifdef DEBUG x2goDebug<<"Have stderr only, something must be wrong."; #endif } } #ifdef DEBUG x2goDebug<<"SSH finished: "<useKerberos()) { rmPuttyReg(procUuid); } #endif slotChannelClosed(this,procUuid); } void SshProcess::slotSshProcStdErr() { slotStdErr(this, proc->readAllStandardError()); } void SshProcess::slotSshProcStdOut() { slotStdOut(this, proc->readAllStandardOutput()); } x2goclient-4.0.5.1/src/sshprocess.h0000644000000000000000000000666612675050177014007 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SSHPROCESS_H #define SSHPROCESS_H #include #include #include #ifndef Q_OS_WIN #include #endif #include "sshmasterconnection.h" class SshProcess : public QObject { Q_OBJECT friend class SshMasterConnection; private: SshProcess(SshMasterConnection* master, int pid); ~SshProcess(); void startNormal(const QString& cmd); void startTunnel(const QString& forwardHost, uint forwardPort, const QString& localHost, uint localPort, bool reverse=false); void start_cp(QString src, QString dst); QString getSource() { return scpSource; } void tunnelLoop(); #ifdef Q_OS_WIN void addPuttyReg(QString host, QString uuidStr); void rmPuttyReg(QString uuidStr); #endif private: SshMasterConnection* masterCon; SshMasterConnection* tunnelConnection; int pid; QString forwardHost; QString localHost; QString command; QString scpSource; quint16 forwardPort; quint16 localPort; uint serverSocket; struct sockaddr_in address; #ifndef Q_OS_WIN socklen_t addrlen; #else int addrlen; #endif QString stdOutString; QString stdErrString; QString abortString; bool tunnel; bool normalExited; //only to use with krb (until no GSSAPI support in libssh) QProcess* proc; QString procUuid; bool execProcess; bool tunnelOkEmited; private slots: void slotCheckNewConnection(); void slotStdErr(SshProcess* creator, QByteArray data); void slotStdOut(SshProcess* creator, QByteArray data); void slotIOerr(SshProcess* creator,QString message, QString sshSessionErr); void slotChannelClosed(SshProcess* creator, QString uuid); void slotReverseTunnelOk(SshProcess* creator); void slotReverseTunnelFailed(SshProcess* creator, QString error); void slotCopyOk(SshProcess* creator); void slotCopyErr(SshProcess* creator,QString message, QString sshSessionErr); //krb stuff void slotSshProcFinished( int exitCode, QProcess::ExitStatus exitStatus); void slotSshProcStdErr(); void slotSshProcStdOut(); signals: void sshFinished ( bool result, QString output, int processId); void sshTunnelOk(int processId); }; #endif // SSHPROCESS_H x2goclient-4.0.5.1/src/SVGFrame.cpp0000644000000000000000000000766412675050177013557 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "SVGFrame.h" #include "x2goclientconfig.h" #include #include #include "x2gologdebug.h" #include SVGFrame::SVGFrame ( QString fname,bool st,QWidget* parent, Qt::WFlags f ) :QFrame ( parent,f ) { empty=false; #ifdef Q_OS_WIN parentWidget=0; #endif if ( fname==QString::null ) empty=true; if ( !empty ) { repaint=true; drawImg=st; renderer=new QSvgRenderer ( this ); renderer->load ( fname ); if ( drawImg ) { setAutoFillBackground ( true ); QPalette pal=palette(); QImage img ( renderer->defaultSize(), QImage::Format_ARGB32_Premultiplied ); QPainter p ( &img ); renderer->render ( &p ); pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) ); setPalette ( pal ); } else { QTimer *timer = new QTimer ( this ); connect ( timer, SIGNAL ( timeout() ), this, SLOT ( update() ) ); if ( renderer->animated() ) { timer->start ( 1000/renderer->framesPerSecond() ); x2goDebug<<"Animated, fps:"<framesPerSecond() <render ( &p ); } QFrame::paintEvent ( event ); } void SVGFrame::resizeEvent ( QResizeEvent* event ) { QFrame::resizeEvent ( event ); emit resized ( event->size() ); if ( drawImg && event->size().width() >0 && event->size().height() >0 &&!empty ) { QPalette pal=palette(); QImage img ( event->size(),QImage::Format_ARGB32_Premultiplied ); QPainter p ( &img ); if ( p.isActive() ) renderer->render ( &p ); pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) ); setPalette ( pal ); } } QSize SVGFrame::sizeHint() const { if ( !empty ) return renderer->defaultSize(); return QFrame::sizeHint(); } void SVGFrame::loadBg ( QString fl ) { renderer->load ( fl ); update(); } #ifdef Q_OS_WIN #include "wapi.h" void SVGFrame::mousePressEvent ( QMouseEvent * event ) { /* if ( isVisible() ) { int vBorder; int hBorder; int barHeight; if ( parentWidget ) wapiGetBorders ( parentWidget->winId(), vBorder, hBorder, barHeight ); x2goDebug<<"svg frame: "<pos() << ":"<pos() ) <<":"<type(), QPoint(0,0), event->button(), event-> buttons(), event->modifiers()); QFrame::mousePressEvent ( nevent ); return; }*/ QFrame::mousePressEvent ( event ); } #endif x2goclient-4.0.5.1/src/SVGFrame.h0000644000000000000000000000404112675050177013206 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef SVGFRAME_H #define SVGFRAME_H #include "x2goclientconfig.h" #include #include class SVGFrame: public QFrame { Q_OBJECT public: SVGFrame ( QString fname, bool st, QWidget* parent=0, Qt::WFlags f=0 ); SVGFrame ( QWidget* parent=0, Qt::WFlags f=0 ); void setRepaintable ( bool val ) { repaint=val; } void loadBg ( QString fl ); virtual QSize sizeHint() const; private: QSvgRenderer* renderer; bool repaint; bool drawImg; bool empty; protected: virtual void paintEvent ( QPaintEvent* event ); virtual void resizeEvent ( QResizeEvent* event ); #ifdef Q_OS_WIN virtual void mousePressEvent ( QMouseEvent * event ); private: QWidget* parentWidget; public: void setMainWidget ( QWidget* widg ) { parentWidget=widg; } #endif signals: void resized ( const QSize ); }; #endif x2goclient-4.0.5.1/src/ui/appdialog.ui0000644000000000000000000001076112675050177014345 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) AppDialog 0 0 510 400 Published Applications 22 22 true true true false false false 1 Search: &Start Qt::Vertical 20 40 &Close closeButton clicked() AppDialog reject() 475 372 468 286 treeWidget itemSelectionChanged() AppDialog slotSelectedChanged() 180 121 468 144 startButton clicked() AppDialog slotStartSelected() 462 18 453 78 treeWidget itemDoubleClicked(QTreeWidgetItem*,int) AppDialog slotDoubleClicked(QTreeWidgetItem*) 266 226 459 200 lineEdit textChanged(QString) AppDialog slotSearchChanged(QString) 167 378 444 314 slotSelectedChanged() slotStartSelected() slotDoubleClicked(QTreeWidgetItem*) slotSearchChanged(QString) x2goclient-4.0.5.1/src/ui/brokerpassdialog.ui0000644000000000000000000001051712675050177015737 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) BrokerPassDialogUi 0 0 311 176 Dialog Old password: QLineEdit::Password New password: QLineEdit::Password Confirm password: QLineEdit::Password Qt::Vertical 20 40 TextLabel Qt::Horizontal 40 20 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox accepted() BrokerPassDialogUi accept() 292 143 157 153 buttonBox rejected() BrokerPassDialogUi reject() 286 143 286 153 lePass1 textChanged(QString) BrokerPassDialogUi slotPassChanged() 167 46 103 113 lePass2 textChanged(QString) BrokerPassDialogUi slotPassChanged() 215 79 208 105 slotPassChanged() x2goclient-4.0.5.1/src/ui/contest.ui0000644000000000000000000001650012675050177014061 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) ConTest 0 0 336 161 Connectivity test HTTPS connection: SSH connection: Connection speed: 24 false false 24 false 24 false 255 0 0 255 0 0 146 145 144 Failed 255 0 0 255 0 0 146 145 144 Failed 255 0 0 255 0 0 146 145 144 0 Kb/s Qt::Vertical 20 4 Qt::Horizontal QDialogButtonBox::Close|QDialogButtonBox::Retry buttonBox rejected() ConTest reject() 281 132 286 146 buttonBox accepted() ConTest start() 242 122 4 84 start() x2goclient-4.0.5.1/src/ui/cupsprintsettingsdialog.ui0000644000000000000000000001577512675050177017407 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) CupsPrinterSettingsDialog 0 0 503 551 0 0 Dialog 0 0 0 General Page size: 0 0 Paper type: Paper source: Qt::Horizontal 40 20 Duplex Printing None Long side Short side Qt::Vertical 20 211 Driver settings true Qt::Vertical false false true true true false Option Value No option selected false false true false text QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::RestoreDefaults|QDialogButtonBox::Save false x2goclient-4.0.5.1/src/ui/cupsprintwidget.ui0000644000000000000000000000601012675050177015630 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) CUPSPrintWidget 0 0 362 292 0 0 Form Name: 0 0 Properties State: Accepting jobs: Type: Location: Comment: x2goclient-4.0.5.1/src/ui/folderexplorer.ui0000644000000000000000000000531312675050177015436 0ustar FolderExplorer 0 0 400 300 Folders Qt::CustomContextMenu false false 1 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox accepted() FolderExplorer accept() 9 290 157 274 buttonBox rejected() FolderExplorer reject() 35 290 286 274 treeWidget customContextMenuRequested(QPoint) FolderExplorer slotContextMenu(QPoint) 152 93 396 182 treeWidget itemActivated(QTreeWidgetItem*,int) FolderExplorer slotItemSelected(QTreeWidgetItem*,int) 150 106 398 68 slotContextMenu(QPoint) slotItemSelected(QTreeWidgetItem*,int) x2goclient-4.0.5.1/src/ui/helpdialog.ui0000644000000000000000000000257712675050177014523 0ustar HelpDialog 0 0 700 600 Options :/img/icons/32x32/x2goclient.png:/img/icons/32x32/x2goclient.png true QDialogButtonBox::Close buttonBox clicked(QAbstractButton*) HelpDialog accept() 630 577 4 184 x2goclient-4.0.5.1/src/ui/printdialog.ui0000644000000000000000000000316112675050177014715 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) PrintDialog Qt::NonModal 0 0 400 300 Print - X2Go Client Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox accepted() PrintDialog accept() 199 277 199 149 buttonBox rejected() PrintDialog reject() 199 277 199 149 x2goclient-4.0.5.1/src/ui/printercmddialog.ui0000644000000000000000000001060412675050177015730 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) PrinterCmdDialog 0 0 462 542 Printer command Command Please enter your customized or individual printing command. Examples: kprinter lpr -P hp_laserjet true Output format Please choose the printing file format (regarding to your printing environment - if you use CUPS you may use PDF) Qt::PlainText false true PDF PS rbPDF label_2 rbPS Data structure Please choose the method of printing file input (some commands accepting printing files as program options, some are awaiting data on standard input): Qt::PlainText false true standard input (STDIN) Specify path as program parameter Qt::Vertical 20 37 QDialogButtonBox::Cancel|QDialogButtonBox::Ok buttonBox rejected() PrinterCmdDialog reject() 230 519 230 270 x2goclient-4.0.5.1/src/ui/printwidget.ui0000644000000000000000000002046312675050177014745 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) PrintWidget 0 0 559 497 Form Print true View as PDF Qt::Vertical 20 40 0 0 Print settings Printer: Print using default Windows PDF Viewer (Viewer application needs to be installed) Qt::Horizontal Printer command: false true false ... Qt::Vertical 325 2 0 0 Viewer settings Open in viewer application true Command: Save to disk false Qt::Vertical 20 18 Show this dialog before start printing true rbOpen toggled(bool) label setEnabled(bool) 249 120 165 150 rbOpen toggled(bool) leOpenCmd setEnabled(bool) 249 120 284 150 cbPrintCmd toggled(bool) lePrintCmd setEnabled(bool) 248 56 206 88 cbPrintCmd toggled(bool) pbPrintCmd setEnabled(bool) 248 56 327 88 rbPrint toggled(bool) gbPrint setVisible(bool) 62 22 296 64 rbView toggled(bool) gbView setVisible(bool) 62 46 296 188 x2goclient-4.0.5.1/src/ui/xsettingsui.ui0000644000000000000000000001606312675050177014774 0ustar Oleksandr Shneyder(o.shneyder@phoca-gmbh.de) XSettingsWidgetUI 0 0 583 495 Form 12 75 true You must restart the X2Go Client for the changes to take effect true Qt::Vertical 20 97 use integrated X-Server true do not use primary clipboard use custom X-Server false custom X-Server executable: true start X-Server on X2Go Client start false command line options: X-Server command line options window mode: fullscreen mode: single application: whole display: rbOther toggled(bool) groupBox setEnabled(bool) 142 198 196 373 cbOnstart toggled(bool) label_2 setVisible(bool) 83 300 88 332 cbOnstart toggled(bool) leCmdOptions setVisible(bool) 152 300 406 332 cbOnstart toggled(bool) groupBox_2 setHidden(bool) 73 300 53 474 pbExec clicked() XSettingsWidgetUI slotSetExecutable() 561 269 498 333 rbXming toggled(bool) cbNoPrimary setEnabled(bool) 68 132 129 162 slotSetExecutable() x2goclient-4.0.5.1/src/userbutton.cpp0000644000000000000000000000545512675050177014353 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2goclientconfig.h" #include "userbutton.h" #include #include #include #include "onmainwindow.h" UserButton::UserButton ( ONMainWindow* wnd, QWidget *par, QString name, QString fullName, QPixmap& foto, QPalette& bgpal, int width,int height ) : QPushButton ( par ) { user=name; fname=fullName; image=foto; setFocusPolicy ( Qt::NoFocus ); setAutoFillBackground ( true ); setFlat ( true ); bgpal.setColor ( QPalette::Active, QPalette::WindowText, QPalette::Mid ); bgpal.setColor ( QPalette::Active, QPalette::ButtonText, QPalette::Mid ); bgpal.setColor ( QPalette::Inactive, QPalette::WindowText, QPalette::Mid ); bgpal.setColor ( QPalette::Inactive, QPalette::ButtonText, QPalette::Mid ); setPalette ( bgpal ); bool miniMode=wnd->retMiniMode(); if ( width==0 || height==0 ) { if ( !miniMode ) { setFixedSize ( 340,100 ); } else setFixedSize ( 250,100 ); } else { setFixedSize ( width,height ); } QLabel* f=new QLabel ( this ); QString text=name+"\n("+fullName+")"; QLabel* n=new QLabel ( text,this ); if ( !miniMode ) n->move ( 110,25 ); else n->move ( 90,25 ); f->setPixmap ( foto ); f->setMaximumSize ( 80,80 ); if ( !miniMode ) f->move ( 10,10 ); else f->move ( 5,10 ); connect ( this,SIGNAL ( clicked() ),this,SLOT ( slotClicked() ) ); } UserButton::~UserButton() {} void UserButton::slotClicked() { emit userSelected ( this ); } x2goclient-4.0.5.1/src/userbutton.h0000644000000000000000000000370112675050177014010 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef USERBUTTON_H #define USERBUTTON_H #include "x2goclientconfig.h" #include /** @author Oleksandr Shneyder */ class QPixmap; class ONMainWindow; class UserButton : public QPushButton { Q_OBJECT public: UserButton ( ONMainWindow* wnd, QWidget *parent, QString username, QString fullName, QPixmap& foto, QPalette& backGround, int width=0,int height=0 ); ~UserButton(); QString username() {return user;} QString fullName() {return fname;} const QPixmap& foto() {return image;} const QPixmap& background() {return bg;} private: QString user; QString fname; QPixmap image; QPixmap bg; private slots: void slotClicked(); signals: void userSelected ( UserButton* ); }; #endif x2goclient-4.0.5.1/src/version.h0000644000000000000000000000256012675050177013265 0ustar /************************************************************************** * Copyright (C) 2005-2016 by Oleksandr Shneyder * * o.shneyder@phoca-gmbh.de * * Copyright (C) 2015-2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #ifndef VERSION_H #define VERSION_H #define VERSION "4.0.5.1" #endif /* !defined (VERSION_H) */ x2goclient-4.0.5.1/src/wapi.cpp0000644000000000000000000003521212675050177013073 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef _WIN32_WINDOWS #define _WIN32_WINDOWS 0x0500 #define _WIN32_WINNT 0x0500 #define WINVER 0x0500 #endif #include "x2goclientconfig.h" #ifdef Q_OS_WIN #include #include #include #include "wapi.h" #include "x2gologdebug.h" long wapiSetFSWindow ( HWND hWnd, const QRect& desktopGeometry ) { SetWindowLong(hWnd, GWL_STYLE, WS_VISIBLE); SetWindowLong(hWnd, GWL_EXSTYLE, 0); SetWindowPos ( hWnd, HWND_TOPMOST, desktopGeometry.x(), desktopGeometry.y(), desktopGeometry.width(), desktopGeometry.height(), 0); return WS_VISIBLE; } void wapiRestoreWindow( HWND hWnd, long style, const QRect& desktopGeometry ) { SetWindowLong ( hWnd, GWL_STYLE,style); SetWindowPos ( hWnd, HWND_TOP, desktopGeometry.x(), desktopGeometry.y(), desktopGeometry.width(), desktopGeometry.height(), SWP_FRAMECHANGED ); } void wapiHideFromTaskBar ( HWND wnd ) { ShowWindow ( wnd, SW_HIDE ) ; SetWindowLong ( wnd, GWL_EXSTYLE, GetWindowLong ( wnd, GWL_EXSTYLE ) & ~WS_EX_APPWINDOW ); SetWindowLong ( wnd, GWL_EXSTYLE, GetWindowLong ( wnd, GWL_EXSTYLE ) | WS_EX_TOOLWINDOW ); ShowWindow ( wnd, SW_SHOW ) ; } HWND wapiSetParent ( HWND child, HWND par ) { HWND wn=SetParent ( child,par ); if ( par ) SetWindowLong ( child, GWL_STYLE, GetWindowLong ( child, GWL_STYLE ) | WS_CHILD ); else SetWindowLong ( child, GWL_STYLE, GetWindowLong ( child, GWL_STYLE ) &~ WS_CHILD ); SetWindowLong ( child, GWL_STYLE, GetWindowLong ( child, GWL_STYLE ) | WS_POPUP ); return wn; } bool wapiClientRect ( HWND wnd, QRect& rect ) { RECT rcWindow; if ( GetClientRect ( wnd,&rcWindow ) ) { rect.setCoords ( rcWindow.left, rcWindow.top, rcWindow.right,rcWindow.bottom ); return true; } return false; } bool wapiWindowRectWithoutDecoration ( HWND wnd, QRect& rect ) { RECT rcWindow; if ( GetClientRect ( wnd,&rcWindow ) ) { POINT pnt; pnt.x=0; pnt.y=0; ClientToScreen(wnd,&pnt); rect.setRect ( pnt.x, pnt.y, rcWindow.right-rcWindow.left,rcWindow.bottom-rcWindow.top ); return true; } return false; } bool wapiWindowRect ( HWND wnd, QRect& rect ) { RECT rcWindow; if ( GetWindowRect ( wnd,&rcWindow ) ) { rect.setCoords ( rcWindow.left, rcWindow.top, rcWindow.right,rcWindow.bottom ); return true; } return false; } bool wapiGetBorders ( HWND wnd, int& vBorder, int& hBorder, int& barHeight ) { WINDOWINFO wifo; wifo.cbSize=sizeof ( WINDOWINFO ); if ( !GetWindowInfo ( wnd,&wifo ) ) return false; vBorder=wifo.cxWindowBorders; hBorder=wifo.cyWindowBorders; TITLEBARINFO bifo; bifo.cbSize=sizeof ( TITLEBARINFO ); if ( !GetTitleBarInfo ( wnd,&bifo ) ) return false; barHeight=bifo.rcTitleBar.bottom-bifo.rcTitleBar.top; return true; } bool wapiShowWindow ( HWND wnd, wapiCmdShow nCmdShow ) { int cmd=WAPI_SHOWNORMAL; switch ( nCmdShow ) { case WAPI_FORCEMINIMIZE: cmd=SW_FORCEMINIMIZE; break; case WAPI_HIDE: cmd=SW_HIDE; break; case WAPI_MAXIMIZE: cmd=SW_MAXIMIZE; break; case WAPI_MINIMIZE: cmd=SW_MINIMIZE; break; case WAPI_RESTORE: cmd=SW_RESTORE; break; case WAPI_SHOW: cmd=SW_SHOW; break; case WAPI_SHOWDEFAULT: cmd=SW_SHOWDEFAULT; break; case WAPI_SHOWMAXIMIZED: cmd=SW_SHOWMAXIMIZED; break; case WAPI_SHOWMINIMIZED: cmd=SW_SHOWMINIMIZED; break; case WAPI_SHOWMINNOACTIVE: cmd=SW_SHOWMINNOACTIVE; break; case WAPI_SHOWNA: cmd=SW_SHOWNA; break; case WAPI_SHOWNOACTIVATE: cmd=SW_SHOWNOACTIVATE; break; case WAPI_SHOWNORMAL: cmd=SW_SHOWNORMAL; break; } return ShowWindow ( wnd, cmd ); } bool wapiUpdateWindow ( HWND wnd ) { return RedrawWindow ( wnd,0,0,RDW_INVALIDATE ); } bool wapiMoveWindow ( HWND wnd, int x, int y, int width, int height, bool repaint ) { return MoveWindow ( wnd, x, y, width, height, repaint ); } HWND wapiFindWindow ( const ushort * className, const ushort * text ) { return FindWindowEx ( 0,0, ( LPCTSTR ) className, ( LPCTSTR ) text ); } bool wapiSetWindowText( HWND wnd, const QString& text) { return SetWindowText(wnd, (LPCTSTR)text.utf16() ); } void wapiSetWindowIcon ( HWND wnd, const QPixmap& icon) { int iconx=GetSystemMetrics(SM_CXICON); int icony=GetSystemMetrics(SM_CYICON); int smallx=GetSystemMetrics(SM_CXSMICON); int smally=GetSystemMetrics(SM_CXSMICON); HICON largeIcon=0; HICON smallIcon=0; largeIcon=icon.scaled(iconx,icony, Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON (); smallIcon=icon.scaled(smallx,smally, Qt::IgnoreAspectRatio,Qt::SmoothTransformation).toWinHICON (); x2goDebug<<"Large icon: "<0) { TCHAR* buf=new TCHAR[len+1]; len=GetLogicalDriveStrings(len,buf); for (int i=0; iPrimaryGroup ); } if ( primaryGroupName ) { *primaryGroupName=getNameFromSid ( pGroupInfo->PrimaryGroup, retSysName ); } if ( pGroupInfo ) GlobalFree ( pGroupInfo ); } if ( retSid || retUname ) { PTOKEN_USER pUserInfo=0; DWORD dwResult=0; DWORD dwSize=0; if ( !GetTokenInformation ( hToken, TokenUser, NULL, dwSize, &dwSize ) ) { dwResult = GetLastError(); if ( dwResult != ERROR_INSUFFICIENT_BUFFER ) { CloseHandle ( hToken ); return false; } } pUserInfo = ( PTOKEN_USER ) GlobalAlloc ( GPTR, dwSize ); if ( ! GetTokenInformation ( hToken, TokenUser, pUserInfo, dwSize, &dwSize ) ) { if ( pUserInfo ) GlobalFree ( pUserInfo ); CloseHandle ( hToken ); return false; } if ( retSid ) { *retSid=getStringFromSid ( pUserInfo->User.Sid ); } if ( retUname ) { *retUname=getNameFromSid ( pUserInfo->User.Sid, retSysName ); } if ( pUserInfo ) GlobalFree ( pUserInfo ); } CloseHandle ( hToken ); return true; } void wapiShellExecute ( const QString& operation, const QString& file, const QString& parameters, const QString& dir, HWND win ) { if ( parameters==QString::null ) ShellExecute ( win, ( LPCTSTR ) ( operation.utf16() ), ( LPCTSTR ) ( file.utf16() ),0, ( LPCTSTR ) ( dir.utf16() ),SW_SHOWNORMAL ); else ShellExecute ( win, ( LPCTSTR ) ( operation.utf16() ), ( LPCTSTR ) ( file.utf16() ), ( LPCTSTR ) ( parameters.utf16() ), ( LPCTSTR ) ( dir.utf16() ),SW_SHOWNORMAL ); } QString wapiGetDefaultPrinter() { TCHAR *prName; DWORD length; GetDefaultPrinter ( 0,&length ); if ( !length ) return QString::null; prName=new TCHAR[length]; GetDefaultPrinter ( prName,&length ); if ( !length ) { delete []prName; return QString::null; } QString printer=QString::fromUtf16 ( ( const ushort* ) prName ); delete []prName; return printer; } QStringList wapiGetLocalPrinters() { QStringList printers; PRINTER_INFO_4 *info_array; DWORD sizeOfArray; DWORD bufSize=0; DWORD sizeNeeded=0; EnumPrinters ( PRINTER_ENUM_LOCAL,0,4,NULL,bufSize, &sizeNeeded,&sizeOfArray ); if ( !sizeNeeded ) { return printers; } info_array= ( PRINTER_INFO_4* ) new char[sizeNeeded]; if ( !info_array ) return printers; bufSize=sizeNeeded; EnumPrinters ( PRINTER_ENUM_LOCAL,0,4, ( LPBYTE ) info_array,bufSize, &sizeNeeded,&sizeOfArray ); if ( !sizeNeeded || !sizeOfArray ) { delete []info_array; return printers; } for ( uint i=0; i. * ***************************************************************************/ #ifndef _WAPI_H #define _WAPI_H #include "x2goclientconfig.h" #ifdef Q_OS_WIN #include #include #include #include #include enum wapiCmdShow { WAPI_FORCEMINIMIZE, WAPI_HIDE, WAPI_MAXIMIZE, WAPI_MINIMIZE, WAPI_RESTORE, WAPI_SHOW, WAPI_SHOWDEFAULT, WAPI_SHOWMAXIMIZED, WAPI_SHOWMINIMIZED, WAPI_SHOWMINNOACTIVE, WAPI_SHOWNA, WAPI_SHOWNOACTIVATE, WAPI_SHOWNORMAL }; enum wapiBtnEvent { WAPI_LBUTTONUP, WAPI_LBUTTONDOWN }; HWND wapiSetParent ( HWND child, HWND par ); bool wapiClientRect ( HWND wnd, QRect& rect ); bool wapiWindowRect ( HWND wnd, QRect& rect ); bool wapiWindowRectWithoutDecoration(HWND wnd, QRect& rect) ; bool wapiShowWindow ( HWND wnd, wapiCmdShow nCmdShow ); bool wapiUpdateWindow ( HWND wnd ); bool wapiSetWindowText ( HWND wnd, const QString& text); void wapiSetWindowIcon ( HWND wnd, const QPixmap& icon); bool wapiMoveWindow ( HWND wnd, int x, int y, int width, int height, bool repaint ); bool wapiGetBorders ( HWND wnd, int& vBorder, int& hBorder, int& barHeight ); void wapiSetCallBackProc ( void ( *prc ) ( wapiBtnEvent, QPoint ) ); void wapiHideFromTaskBar ( HWND wnd ); HWND wapiFindWindow ( const ushort * className, const ushort * text ); QString wapiShortFileName ( const QString& longName ); bool wapiAccountInfo ( QString* retSid, QString* retUname, QString* primaryGroupSID, QString* primaryGroupName, QString* retSysName ); void wapiShellExecute ( const QString& operation, const QString& file, const QString& parameters, const QString& dir,HWND win=0 ); QString wapiGetDefaultPrinter(); QStringList wapiGetLocalPrinters(); long wapiSetFSWindow ( HWND hWnd, const QRect& desktopGeometry ); void wapiRestoreWindow ( HWND hWnd, long style, const QRect& desktopGeometry ); QString wapiGetDriveByLabel(const QString& label); QString wapiGetUserName(); #endif #endif x2goclient-4.0.5.1/src/x2goclientconfig.h0000644000000000000000000000300512675050177015037 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #if !defined(_X2GOCLIENT_CONFIG_H_) #define _X2GOCLIENT_CONFIG_H_ #include #include #include //#define LOGFILE QDir::homePath()+"/x2goclient.log" #if !defined Q_OS_WIN #define USELDAP #endif #ifdef Q_OS_WIN #undef USELDAP #endif #if defined Q_WS_HILDON #undef USELDAP #endif #endif x2goclient-4.0.5.1/src/x2goclient.cpp0000644000000000000000000000243412675050177014211 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "ongetpass.h" int main(int argc, char *argv[]) { return x2goMain(argc,argv); } x2goclient-4.0.5.1/src/x2gologdebug.cpp0000644000000000000000000000303712675050177014523 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "x2gologdebug.h" #include "x2goclientconfig.h" #ifdef LOGFILE #include X2goLogDebug::X2goLogDebug():QTextStream() { logFile.setFileName(LOGFILE); if(logFile.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Append)) { setDevice(&logFile); } } X2goLogDebug::~X2goLogDebug() { logFile.close(); } #endif x2goclient-4.0.5.1/src/x2gologdebug.h0000644000000000000000000000524112675050177014167 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef X2GOLOGDEBUG_H #define X2GOLOGDEBUG_H #include #include #include "x2goclientconfig.h" #include "onmainwindow.h" /** @author Oleksandr Shneyder */ #define __x2goPrefix "x2go-" #define __x2goDebugPrefix "DEBUG-" #define __x2goInfoPrefix "INFO-" #define __x2goWarningPrefix "WARNING-" #define __x2goErrorPrefix "ERROR-" #define __x2goPostfix "> " #ifdef LOGFILE class X2goLogDebug: public QTextStream { public: X2goLogDebug(); ~X2goLogDebug(); private: QFile logFile; }; #define __x2goDebug X2goLogDebug()<<"\n" #define __x2goInfo X2goLogDebug()<<"\n" #define __x2goWarning X2goLogDebug()<<"\n" #define __x2goError X2goLogDebug()<<"\n" #else #include #define __x2goDebug qDebug().nospace() #define __x2goInfo qDebug().nospace() #define __x2goWarning qWarning().nospace() #define __x2goError qCritical().nospace() #endif //LOGFILE #define x2goDebugf __x2goDebug <<__x2goPrefix<<__x2goDebugPrefix <<__FILE__<<":"<<__LINE__<<__x2goPostfix #define x2goInfof(NUM) __x2goInfo <<__x2goPrefix<<__x2goInfoPrefix <. * ***************************************************************************/ #include "x2gosettings.h" #include "x2goclientconfig.h" #include "x2gologdebug.h" #include "onmainwindow.h" #include #include #include X2goSettings::X2goSettings(QString fileContent, QSettings::Format format) { cfgFile=new QTemporaryFile(); cfgFile->open(); QTextStream out(cfgFile); out<close(); set=new QSettings ( cfgFile->fileName(), format ); } X2goSettings::X2goSettings ( QString group ) { cfgFile=0l; if (group=="sessions" && ONMainWindow::getSessionConf().length()>0) { set=new QSettings ( ONMainWindow::getSessionConf(), QSettings::IniFormat ); return; } #ifndef Q_OS_WIN if(!centralSettings()) { set=new QSettings ( ONMainWindow::getHomeDirectory() + "/.x2goclient/"+group, QSettings::NativeFormat ); } else { QString settingPath="/etc/x2goclient/config/"+qgetenv("USER")+"/"; QDir d(settingPath); if(!d.exists()) { settingPath="/etc/x2goclient/config/All Users/"; } // x2goErrorf(99)<<"CFG PATH:"<beginGroup ( group ); } else { QSettings setroot("HKEY_LOCAL_MACHINE\\SOFTWARE\\x2goclient\\config",QSettings::NativeFormat); QString setPath="HKEY_LOCAL_MACHINE\\SOFTWARE\\x2goclient\\config\\All Users"; QString uname=getenv("USERNAME"); foreach(QString group, setroot.childGroups()) { if(group==uname) { setPath="HKEY_LOCAL_MACHINE\\SOFTWARE\\x2goclient\\config\\"+uname; break; } } set=new QSettings ( setPath, QSettings::NativeFormat); set->beginGroup ( group ); } } else { set=new QSettings ( ONMainWindow::getHomeDirectory() + "/.x2goclient/"+group, QSettings::IniFormat ); } #endif } X2goSettings::~X2goSettings() { delete set; if (cfgFile) delete cfgFile; } bool X2goSettings::centralSettings() { #ifndef Q_OS_WIN QDir d("/etc/x2goclient/config"); return d.exists(); #else QSettings set("HKEY_LOCAL_MACHINE\\SOFTWARE\\x2goclient",QSettings::NativeFormat); foreach(QString group,set.childGroups()) { if(group=="config") { return true; } } return false; #endif } x2goclient-4.0.5.1/src/x2gosettings.h0000644000000000000000000000324412675050177014240 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef X2GOSETTINGS_H #define X2GOSETTINGS_H #include class QTemporaryFile; /** @author Oleksandr Shneyder */ class X2goSettings { public: X2goSettings ( QString group ); X2goSettings ( QString fileContent, QSettings::Format format); ~X2goSettings(); static bool centralSettings(); QSettings* setting() { return set; } private: QSettings* set; QTemporaryFile* cfgFile; }; #endif x2goclient-4.0.5.1/src/x2goutils.cpp0000644000000000000000000001705212675050177014075 0ustar /************************************************************************** * Copyright (C) 2005-2016 by Oleksandr Shneyder * * * * Copyright (C) 2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #include #include #include #include #include #include #include #include #include "x2goutils.h" #include "onmainwindow.h" #include "x2gologdebug.h" QString expandHome (QString path) { path = path.trimmed (); if (path.startsWith ("~/") || path.startsWith ("~\\")) { path = path.replace (QString ("~"), QDir::homePath ()); } return path; } QString fixup_resource_URIs (const QString &res_path) { QString ret (res_path); if (!(res_path.isEmpty ())) { if (ret.at (1) != '/') { ret.insert (1, '/'); } } return (ret); } QString wrap_legacy_resource_URIs (const QString &res_path) { QString ret (res_path); if (!(res_path.isEmpty ())) { std::vector legacy_locations; legacy_locations.push_back (QString (":/icons/")); legacy_locations.push_back (QString (":/png/")); legacy_locations.push_back (QString (":/svg/")); ret = fixup_resource_URIs (ret); bool detected = false; /* This would be so much easier with C++ and lambdas... */ std::vector::const_iterator it = legacy_locations.begin (); while (it != legacy_locations.end ()) { if (ret.startsWith (*(it++))) { detected = true; break; } } if (detected) ret.insert (1, QString ("/img")); } return (ret); } QString convert_to_rich_text (const QString &text, bool force) { QString fixup_text (text); fixup_text.replace ("\n", "\n
\n"); if (force) { // This is a workaround for a bug in Qt. Even though we set Qt::RichText as the text format // later on, the informative text is not recognized as rich text, UNLESS a HTML tag // is used ON THE VERY FIRST LINE. // Make sure, that there always is one... fixup_text.prepend (""); } return (fixup_text); } void show_RichText_Generic_MsgBox (QMessageBox::Icon icon, const QString &main_text, const QString &informative_text) { QString fixup_main_text (convert_to_rich_text (main_text)); QString fixup_informative_text (convert_to_rich_text (informative_text, true)); QMessageBox msg_box (icon, QString ("X2Go Client"), fixup_main_text, QMessageBox::Ok); msg_box.setTextFormat (Qt::RichText); msg_box.setInformativeText (fixup_informative_text); msg_box.setWindowModality (Qt::WindowModal); msg_box.exec (); } void show_RichText_WarningMsgBox (const QString &main_text, const QString &informative_text) { show_RichText_Generic_MsgBox (QMessageBox::Warning, main_text, informative_text); } void show_RichText_ErrorMsgBox (const QString &main_text, const QString &informative_text) { show_RichText_Generic_MsgBox (QMessageBox::Critical, main_text, informative_text); } QString git_changelog_extract_commit_sha (const QString &gitlog) { QString ret = ""; /* * Do a poor man's split. * We know that a newline character should be somewhere at the beginning of the string. * We don't need to have Qt split the string up completely as we only care about * a substring: from start to the first newline character. */ std::ptrdiff_t pos = gitlog.indexOf ("\n"); if (0 < pos) { ret = gitlog.left (pos + 1); x2goDebug << "First line of git changelog: " << ret; pos = ret.lastIndexOf (")"); if (0 < pos) { std::ptrdiff_t pos_paren_start = ret.lastIndexOf ("("); if ((0 < pos_paren_start) && (pos_paren_start < pos)) { ret = ret.mid (pos_paren_start + 1, pos - pos_paren_start - 1); } else { // Either starting parenthesis not found or starting parenthesis comes first. ret = ""; } } else { // End parenthesis not found. ret = ""; } } return (ret); } bool font_is_monospaced (const QFont &font) { const QFontInfo font_info (font); return (font_info.fixedPitch ()); } #ifdef Q_OS_DARWIN void show_XQuartz_not_found_error () { show_XQuartz_generic_error (QObject::tr ("X2Go Client could not find any suitable X11 server."), QString ()); } void show_XQuartz_start_error () { show_XQuartz_generic_error (QObject::tr ("X2Go Client could not start X11 server."), QObject::tr ("X2Go Client requires XQuartz to be installed.\n\n" "If XQuartz is already installed on your system,\n" "please select the correct path in the now upcoming dialog.\n" "Refer to the end of this message for path examples,\n" "in case you do not know the exact location yourself.\n\n" "Should you have not installed XQuartz yet, please\n" "follow the outlined steps:\n\n")); } void show_XQuartz_generic_error (const QString &main_error, const QString &additional_info) { show_RichText_WarningMsgBox (main_error, additional_info + QObject::tr ("MacPorts users, please install either the port xorg-server\n" "or the port xorg-server-devel.\n" "Upon successful installation, please follow the instructions printed\n" "by the port utility to autostart/load the server.\n\n" "All other users, please obtain and install XQuartz from:\n" "
" "https://xquartz.macosforge.org/" "
\n\n" "Afterwards, restart X2Go Client and select the correct path\n" "to the X11 application in the general X2Go Client settings.\n" "This will most likely be\n" "
/Applications/MacPorts/X11.app
\n" "or\n" "
/Applications/Utilities/XQuartz.app
")); } #endif /* defined (Q_OS_DARWIN) */ x2goclient-4.0.5.1/src/x2goutils.h0000644000000000000000000000446112675050177013542 0ustar /************************************************************************** * Copyright (C) 2005-2016 by Oleksandr Shneyder * * * * Copyright (C) 2016 by Mihai Moldovan * * * * 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 . * ***************************************************************************/ #ifndef X2GOUTILS_H #define X2GOUTILS_H #include #include #include #define UNUSED(x) do { (void) x; } while (0) QString expandHome (QString path); QString fixup_resource_URIs (const QString &res_path); QString wrap_legacy_resource_URIs (const QString &res_path); QString convert_to_rich_text (const QString &text, bool force = false); void show_RichText_Generic_MsgBox (QMessageBox::Icon icon, const QString &main_text, const QString &informative_text); void show_RichText_WarningMsgBox (const QString &main_text, const QString &informative_text = ""); void show_RichText_ErrorMsgBox (const QString &main_text, const QString &informative_text = ""); QString git_changelog_extract_commit_sha (const QString &gitlog); bool font_is_monospaced (const QFont &font); #ifdef Q_OS_DARWIN void show_XQuartz_not_found_error (); void show_XQuartz_start_error (); void show_XQuartz_generic_error (const QString &main_error, const QString &additional_info); #endif /* defined (Q_OS_DARWIN) */ #endif /* !defined (X2GOUTILS_H) */ x2goclient-4.0.5.1/src/xsettingswidget.cpp0000644000000000000000000001014412675050177015364 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include "xsettingswidget.h" #include "x2gosettings.h" #include "x2goutils.h" #include #ifdef Q_OS_WIN XSettingsWidget::XSettingsWidget(QWidget* parent) { UNUSED (parent); setupUi(this); X2goSettings st ( "settings" ); rbXming->setChecked(st.setting()->value("useintx",true).toBool()); rbOther->setChecked(!(st.setting()->value("useintx",true).toBool())); cbNoPrimary->setChecked(st.setting()->value("noprimaryclip",false).toBool()); leExec->setText(st.setting()->value("xexec","C:\\program files\\vcxsrv\\vcxsrv.exe").toString()); leCmdOptions->setText(st.setting()->value("options","-multiwindow -notrayicon -clipboard").toString()); cbOnstart->setChecked(true); cbOnstart->setChecked(st.setting()->value("onstart",true).toBool()); leWinMod->setText(st.setting()->value("optionswin","-screen 0 %wx%h -notrayicon -clipboard").toString()); leFSMod->setText(st.setting()->value("optionsfs","-fullscreen -notrayicon -clipboard").toString()); leSingApp->setText(st.setting()->value("optionssingle","-multiwindow -notrayicon -clipboard").toString()); leWholeDisplay->setText (st.setting ()->value ("optionswholedisplay", "-nodecoration -notrayicon -clipboard -screen 0 @").toString ()); // spDelay->setValue(st.setting()->value("delay",3).toInt()); pbExec->setIcon( QPixmap ( ":/img/icons/16x16/file-open.png" ) ); } XSettingsWidget::~XSettingsWidget() { } void XSettingsWidget::slotSetExecutable() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "C:\\", tr("Executable (*.exe)")); if (fileName.length()) leExec->setText(fileName); } void XSettingsWidget::setDefaults() { rbXming->setChecked(true); leExec->setText("C:\\program files\\vcxsrv\\vcxsrv.exe"); leCmdOptions->setText("-multiwindow -notrayicon -clipboard"); cbOnstart->setChecked(true); leWinMod->setText("-screen 0 %wx%h -notrayicon -clipboard"); leFSMod->setText("-fullscreen -notrayicon -clipboard"); leSingApp->setText("-multiwindow -notrayicon -clipboard"); leWholeDisplay->setText ("-nodecoration -notrayicon -clipboard -screen 0 @"); // spDelay->setValue(3); } void XSettingsWidget::saveSettings() { X2goSettings st ( "settings" ); st.setting()->setValue("useintx",rbXming->isChecked()); st.setting()->setValue("xexec",leExec->text()); st.setting()->setValue("options",leCmdOptions->text()); st.setting()->setValue("onstart",cbOnstart->isChecked()); st.setting()->setValue("noprimaryclip", cbNoPrimary->isChecked()); st.setting()->setValue("optionswin",leWinMod->text()); st.setting()->setValue("optionsfs",leFSMod->text()); st.setting()->setValue("optionssingle",leSingApp->text()); st.setting ()->setValue ("optionswholedisplay", leWholeDisplay->text ()); // st.setting()->setValue("delay",spDelay->value()); st.setting()->sync(); } #endif //Q_OS_WIN x2goclient-4.0.5.1/src/xsettingswidget.h0000644000000000000000000000315512675050177015035 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #ifndef XSETTINGSWIDGET_H #define XSETTINGSWIDGET_H #include #ifdef Q_OS_WIN #include "ui_xsettingsui.h" class XSettingsWidget : public QWidget, private Ui_XSettingsWidgetUI { Q_OBJECT public: XSettingsWidget(QWidget* parent = 0); virtual ~XSettingsWidget(); void setDefaults(); void saveSettings(); private slots: void slotSetExecutable(); }; #endif //Q_OS_WIN #endif // XSETTINGSWIDGET_H x2goclient-4.0.5.1/VERSION0000644000000000000000000000001012675050177011674 0ustar 4.0.5.1 x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserpluginax.def0000644000000000000000000000033712675050177022132 0ustar EXPORTS NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3 DllCanUnloadNow PRIVATE DllGetClassObject PRIVATE DllRegisterServer PRIVATE DllUnregisterServer PRIVATE DumpIDL PRIVATE x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.cpp0000644000000000000000000014517512675050177021637 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include "qtnpapi.h" #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" #ifndef WINAPI # ifdef Q_WS_WIN # define WINAPI __stdcall # else # define WINAPI # endif #endif #ifdef Q_WS_X11 # ifdef Bool # undef Bool # endif /* static void debuginfo(const QString &str) { static bool inited = false; QFile file("/tmp/qnsdebug.txt"); if (file.open(QFile::WriteOnly | QFile::Append)) { if (!inited) { file.write("\n\n*** New run started ***\n"); inited = true; } file.write(qtNPFactory()->pluginName().toLatin1() + ": " + str.toLatin1() + '\n'); file.close(); } } */ #endif static QtNPFactory *qNP = 0; static NPNetscapeFuncs *qNetscapeFuncs = 0; // The single global plugin QtNPFactory *qtNPFactory() { extern QtNPFactory *qtns_instantiate(); if (!qNP) { qNP = qtns_instantiate(); } return qNP; } // NPN functions, forwarding to function pointers provided by browser void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor) { Q_ASSERT(qNetscapeFuncs); *plugin_major = NP_VERSION_MAJOR; *plugin_minor = NP_VERSION_MINOR; *netscape_major = qNetscapeFuncs->version >> 8; // Major version is in high byte *netscape_minor = qNetscapeFuncs->version & 0xFF; // Minor version is in low byte } #define NPN_Prolog(x) \ Q_ASSERT(qNetscapeFuncs); \ Q_ASSERT(qNetscapeFuncs->x); \ const char *NPN_UserAgent(NPP instance) { NPN_Prolog(uagent); return FIND_FUNCTION_POINTER(NPN_UserAgentFP, qNetscapeFuncs->uagent)(instance); } void NPN_Status(NPP instance, const char* message) { NPN_Prolog(status); FIND_FUNCTION_POINTER(NPN_StatusFP, qNetscapeFuncs->status)(instance, message); } NPError NPN_GetURL(NPP instance, const char* url, const char* window) { NPN_Prolog(geturl); return FIND_FUNCTION_POINTER(NPN_GetURLFP, qNetscapeFuncs->geturl)(instance, url, window); } NPError NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData) { if ((qNetscapeFuncs->version & 0xFF) < NPVERS_HAS_NOTIFICATION) return NPERR_INCOMPATIBLE_VERSION_ERROR; NPN_Prolog(geturlnotify); return FIND_FUNCTION_POINTER(NPN_GetURLNotifyFP, qNetscapeFuncs->geturlnotify)(instance, url, window, notifyData); } NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData) { if ((qNetscapeFuncs->version & 0xFF) < NPVERS_HAS_NOTIFICATION) return NPERR_INCOMPATIBLE_VERSION_ERROR; NPN_Prolog(posturlnotify); return FIND_FUNCTION_POINTER(NPN_PostURLNotifyFP, qNetscapeFuncs->posturlnotify)(instance, url, window, len, buf, file, notifyData); } void* NPN_MemAlloc(uint32 size) { NPN_Prolog(memalloc); return FIND_FUNCTION_POINTER(NPN_MemAllocFP, qNetscapeFuncs->memalloc)(size); } void NPN_MemFree(void* ptr) { NPN_Prolog(memfree); FIND_FUNCTION_POINTER(NPN_MemFreeFP, qNetscapeFuncs->memfree)(ptr); } uint32 NPN_MemFlush(uint32 size) { NPN_Prolog(memflush); return FIND_FUNCTION_POINTER(NPN_MemFlushFP, qNetscapeFuncs->memflush)(size); } NPError NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value) { NPN_Prolog(getvalue); return FIND_FUNCTION_POINTER(NPN_GetValueFP, qNetscapeFuncs->getvalue)(instance, variable, ret_value); } NPError NPN_SetValue(NPP instance, NPPVariable variable, void *ret_value) { NPN_Prolog(setvalue); return FIND_FUNCTION_POINTER(NPN_SetValueFP, qNetscapeFuncs->setvalue)(instance, variable, ret_value); } NPIdentifier NPN_GetStringIdentifier(const char* name) { NPN_Prolog(getstringidentifier); return FIND_FUNCTION_POINTER(NPN_GetStringIdentifierFP, qNetscapeFuncs->getstringidentifier)(name); } void NPN_GetStringIdentifiers(const char** names, int32 nameCount, NPIdentifier* identifiers) { NPN_Prolog(getstringidentifiers); FIND_FUNCTION_POINTER(NPN_GetStringIdentifiersFP, qNetscapeFuncs->getstringidentifiers)(names, nameCount, identifiers); } NPIdentifier NPN_GetIntIdentifier(int32 intid) { NPN_Prolog(getintidentifier); return FIND_FUNCTION_POINTER(NPN_GetIntIdentifierFP, qNetscapeFuncs->getintidentifier)(intid); } bool NPN_IdentifierIsString(NPIdentifier identifier) { NPN_Prolog(identifierisstring); return FIND_FUNCTION_POINTER(NPN_IdentifierIsStringFP, qNetscapeFuncs->identifierisstring)(identifier); } char* NPN_UTF8FromIdentifier(NPIdentifier identifier) { NPN_Prolog(utf8fromidentifier); return FIND_FUNCTION_POINTER(NPN_UTF8FromIdentifierFP, qNetscapeFuncs->utf8fromidentifier)(identifier); } int32 NPN_IntFromIdentifier(NPIdentifier identifier) { NPN_Prolog(intfromidentifier); return FIND_FUNCTION_POINTER(NPN_IntFromIdentifierFP, qNetscapeFuncs->intfromidentifier)(identifier); } NPObject* NPN_CreateObject(NPP npp, NPClass *aClass) { NPN_Prolog(createobject); return FIND_FUNCTION_POINTER(NPN_CreateObjectFP, qNetscapeFuncs->createobject)(npp, aClass); } NPObject* NPN_RetainObject(NPObject *obj) { NPN_Prolog(retainobject); return FIND_FUNCTION_POINTER(NPN_RetainObjectFP, qNetscapeFuncs->retainobject)(obj); } void NPN_ReleaseObject(NPObject *obj) { NPN_Prolog(releaseobject); FIND_FUNCTION_POINTER(NPN_ReleaseObjectFP, qNetscapeFuncs->releaseobject)(obj); } // Scripting implementation (QObject calling JavaScript in browser) - we don't use those bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result) { NPN_Prolog(invoke); return FIND_FUNCTION_POINTER(NPN_InvokeFP, qNetscapeFuncs->invoke)(npp, obj, methodName, args, argCount, result); } bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result) { NPN_Prolog(invokedefault); return FIND_FUNCTION_POINTER(NPN_InvokeDefaultFP, qNetscapeFuncs->invokedefault)(npp, obj, args, argCount, result); } bool NPN_Evaluate(NPP npp, NPObject *obj, NPString *script, NPVariant *result) { NPN_Prolog(evaluate); return FIND_FUNCTION_POINTER(NPN_EvaluateFP, qNetscapeFuncs->evaluate)(npp, obj, script, result); } bool NPN_GetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result) { NPN_Prolog(getproperty); return FIND_FUNCTION_POINTER(NPN_GetPropertyFP, qNetscapeFuncs->getproperty)(npp, obj, propertyName, result); } bool NPN_SetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value) { NPN_Prolog(setproperty); return FIND_FUNCTION_POINTER(NPN_SetPropertyFP, qNetscapeFuncs->setproperty)(npp, obj, propertyName, value); } bool NPN_RemoveProperty(NPP npp, NPObject *obj, NPIdentifier propertyName) { NPN_Prolog(removeproperty); return FIND_FUNCTION_POINTER(NPN_RemovePropertyFP, qNetscapeFuncs->removeproperty)(npp, obj, propertyName); } bool NPN_HasProperty(NPP npp, NPObject *obj, NPIdentifier propertyName) { NPN_Prolog(hasproperty); return FIND_FUNCTION_POINTER(NPN_HasPropertyFP, qNetscapeFuncs->hasproperty)(npp, obj, propertyName); } bool NPN_HasMethod(NPP npp, NPObject *obj, NPIdentifier methodName) { NPN_Prolog(hasmethod); return FIND_FUNCTION_POINTER(NPN_HasMethodFP, qNetscapeFuncs->hasmethod)(npp, obj, methodName); } void NPN_ReleaseVariantValue(NPVariant *variant) { NPN_Prolog(releasevariantvalue); FIND_FUNCTION_POINTER(NPN_ReleaseVariantValueFP, qNetscapeFuncs->releasevariantvalue)(variant); } void NPN_SetException(NPObject *obj, const char *message) { qDebug("NPN_SetException: %s", message); NPN_Prolog(setexception); FIND_FUNCTION_POINTER(NPN_SetExceptionFP, qNetscapeFuncs->setexception)(obj, message); } // Scripting implementation (JavaScript calling QObject) #define NPClass_Prolog \ if (!npobj->_class) return false; \ if (!npobj->_class->qtnp) return false; \ QtNPInstance *This = npobj->_class->qtnp; \ if (!This->qt.object) return false; \ QObject *qobject = This->qt.object \ static NPObject *NPAllocate(NPP npp, NPClass *aClass) { Q_UNUSED(npp); Q_UNUSED(aClass); Q_ASSERT(false); return 0; } static void NPDeallocate(NPObject *npobj) { Q_UNUSED(npobj); Q_ASSERT(false); return; } static void NPInvalidate(NPObject *npobj) { if (npobj) delete npobj->_class; npobj->_class = 0; } enum MetaOffset { MetaProperty, MetaMethod }; static int metaOffset(const QMetaObject *metaObject, MetaOffset offsetType) { int classInfoIndex = metaObject->indexOfClassInfo("ToSuperClass"); if (classInfoIndex == -1) return 0; QByteArray ToSuperClass = metaObject->classInfo(classInfoIndex).value(); int offset = offsetType == MetaProperty ? metaObject->propertyOffset() : metaObject->methodOffset(); while (ToSuperClass != metaObject->className()) { metaObject = metaObject->superClass(); if (!metaObject) break; offset -= offsetType == MetaProperty ? metaObject->propertyCount() : metaObject->methodCount(); } return offset; } static int publicMethodIndex(NPObject *npobj, const QByteArray &slotName, int argCount = -1) { NPClass_Prolog; const QMetaObject *metaObject = qobject->metaObject(); for (int slotIndex = metaOffset(metaObject, MetaMethod); slotIndex < metaObject->methodCount(); ++slotIndex) { const QMetaMethod slot = qobject->metaObject()->method(slotIndex); if (slot.access() != QMetaMethod::Public || slot.methodType() == QMetaMethod::Signal) continue; QByteArray signature = slot.signature(); if (signature.left(signature.indexOf('(')) == slotName) { if (argCount == -1 || slot.parameterTypes().count() == argCount) return slotIndex; } } return -1; } static bool NPClass_HasMethod(NPObject *npobj, NPIdentifier name) { NPClass_Prolog; Q_UNUSED(qobject); return publicMethodIndex(npobj, NPN_UTF8FromIdentifier(name)) != -1; } static bool NPClass_Invoke(NPObject *npobj, NPIdentifier name, const NPVariant *args, uint32 argCount, NPVariant *result) { NPClass_Prolog; const QByteArray slotName = NPN_UTF8FromIdentifier(name); int slotIndex = publicMethodIndex(npobj, slotName, static_cast(argCount)); if (slotIndex == -1) { NPN_SetException(npobj, QByteArray("No method '" + slotName + "' with " + QByteArray::number(argCount) + " parameters").constData()); return false; } const QMetaMethod slot = qobject->metaObject()->method(slotIndex); QList parameterTypes = slot.parameterTypes(); if (parameterTypes.count() != static_cast(argCount)) { NPN_SetException(npobj, QByteArray("Wrong parameter count for method " + slotName).constData()); return false; } QVariant returnVariant(QVariant::nameToType(slot.typeName()), (void*)0); QVector variants(parameterTypes.count()); // keep data alive QVector metacallArgs(parameterTypes.count() + 1); // arguments for qt_metacall metacallArgs[0] = returnVariant.data(); // args[0] == return value for (int p = 0; p < parameterTypes.count(); ++p) { QVariant::Type type = QVariant::nameToType(parameterTypes.at(p)); if (type == QVariant::Invalid && parameterTypes.at(p) != "QVariant") { NPN_SetException(npobj, QString("Parameter %1 in method '%2' has invalid type") .arg(p).arg(QString::fromUtf8(slotName)).toAscii().constData()); return false; } QVariant qvar = args[p]; if (type != QVariant::Invalid && !qvar.convert(type)) { NPN_SetException(npobj, QString("Parameter %1 to method '%2' needs to be convertable to '%3'") .arg(p).arg(QString::fromUtf8(slotName)).arg(QString::fromAscii(parameterTypes.at(p))).toAscii().constData()); return false; } variants[p] = qvar; if (type == QVariant::Invalid) metacallArgs[p + 1] = &variants.at(p); else metacallArgs[p + 1] = variants.at(p).constData(); // must not detach! } qobject->qt_metacall(QMetaObject::InvokeMetaMethod, slotIndex, const_cast(metacallArgs.data())); if (returnVariant.isValid() && result) *result = NPVariant::fromQVariant(This, returnVariant); return true; } static bool NPClass_InvokeDefault(NPObject * /*npobj*/, const NPVariant * /*args*/, uint32 /*argCount*/, NPVariant * /*result*/) { return false; } static bool NPClass_HasProperty(NPObject *npobj, NPIdentifier name) { NPClass_Prolog; const QByteArray qname = NPN_UTF8FromIdentifier(name); const QMetaObject *metaObject = qobject->metaObject(); int propertyIndex = metaObject->indexOfProperty(qname); if (propertyIndex == -1 || propertyIndex < metaOffset(metaObject, MetaProperty)) return false; QMetaProperty property = qobject->metaObject()->property(propertyIndex); if (!property.isScriptable()) return false; return true; } static bool NPClass_GetProperty(NPObject *npobj, NPIdentifier name, NPVariant *result) { NPClass_Prolog; const QByteArray qname = NPN_UTF8FromIdentifier(name); QVariant qvar = qobject->property(qname); if (!qvar.isValid()) { NPN_SetException(npobj, QByteArray("Failed to get value for property " + qname).constData()); return false; } *result = NPVariant::fromQVariant(This, qvar); return true; } static bool NPClass_SetProperty(NPObject *npobj, NPIdentifier name, const NPVariant *result) { NPClass_Prolog; const QByteArray qname = NPN_UTF8FromIdentifier(name); QVariant qvar = *result; return qobject->setProperty(qname, qvar); } static bool NPClass_RemoveProperty(NPObject * /*npobj*/, NPIdentifier /*name*/) { return false; } NPClass::NPClass(QtNPInstance *This) { structVersion = NP_CLASS_STRUCT_VERSION; allocate = 0; deallocate = 0; invalidate = NPInvalidate; hasMethod = NPClass_HasMethod; invoke = NPClass_Invoke; invokeDefault = NPClass_InvokeDefault; hasProperty = NPClass_HasProperty; getProperty = NPClass_GetProperty; setProperty = NPClass_SetProperty; removeProperty = NPClass_RemoveProperty; qtnp = This; delete_qtnp = false; } NPClass::~NPClass() { if (delete_qtnp) delete qtnp; } // Type conversions NPString NPString::fromQString(const QString &qstr) { NPString npstring; const QByteArray qutf8 = qstr.toUtf8(); npstring.utf8length = qutf8.length(); npstring.utf8characters = (char*)NPN_MemAlloc(npstring.utf8length); memcpy((char*)npstring.utf8characters, qutf8.constData(), npstring.utf8length); return npstring; } NPString::operator QString() const { return QString::fromUtf8(utf8characters, utf8length); } NPVariant NPVariant::fromQVariant(QtNPInstance *This, const QVariant &qvariant) { Q_ASSERT(This); NPVariant npvar; npvar.type = Null; QVariant qvar(qvariant); switch(qvariant.type()) { case QVariant::Bool: npvar.value.boolValue = qvar.toBool(); npvar.type = Boolean; break; case QVariant::Int: npvar.value.intValue = qvar.toInt(); npvar.type = Int32; break; case QVariant::Double: npvar.value.doubleValue = qvar.toDouble(); npvar.type = Double; break; case QVariant::UserType: { QByteArray userType = qvariant.typeName(); if (userType.endsWith('*')) { QtNPInstance *that = new QtNPInstance; that->npp = This->npp; that->qt.object = *(QObject**)qvariant.constData(); NPClass *npclass = new NPClass(that); npclass->delete_qtnp = true; npvar.value.objectValue = NPN_CreateObject(This->npp, npclass); npvar.type = Object; } } break; default: // including QVariant::String if (!qvar.convert(QVariant::String)) break; npvar.type = String; npvar.value.stringValue = NPString::fromQString(qvar.toString()); break; } return npvar; } NPVariant::operator QVariant() const { switch(type) { case Void: case Null: return QVariant(); case Object: { if (!value.objectValue || !value.objectValue->_class) break; NPClass *aClass = value.objectValue->_class; // not one of ours? if (aClass->invoke != NPClass_Invoke) break; // or just empty for some reason QObject *qobject = aClass->qtnp->qt.object; if (!qobject) break; QByteArray typeName = qobject->metaObject()->className(); int userType = QMetaType::type(typeName + "*"); if (userType == QVariant::Invalid) break; QVariant result(userType, &aClass->qtnp->qt.object); // sanity check Q_ASSERT(*(QObject**)result.constData() == aClass->qtnp->qt.object); return result; } case Boolean: return value.boolValue; case Int32: return value.intValue; case Double: return value.doubleValue; case String: return QString(value.stringValue); default: break; } return QVariant(); } // Helper class for handling incoming data class QtNPStream { public: QtNPStream(NPP instance, NPStream *st); virtual ~QtNPStream() { } QString url() const; bool finish(QtNPBindable *bindable); QByteArray buffer; QFile file; QString mime; NPError reason; NPP npp; NPStream* stream; protected: qint64 readData(char *, qint64); qint64 writeData(const char *, qint64); }; QtNPStream::QtNPStream(NPP instance, NPStream *st) : reason(NPRES_DONE), npp(instance), stream(st) { } /*! Returns the URL from which the stream was created, or the empty string for write-only streams. */ QString QtNPStream::url() const { if (!stream) return QString(); return QString::fromLocal8Bit(stream->url); } class ErrorBuffer : public QBuffer { friend class QtNPStream; }; bool QtNPStream::finish(QtNPBindable *bindable) { if (!bindable) return false; bool res = false; if (bindable) { switch(reason) { case NPRES_DONE: // no data at all? url is probably local file (Opera) if (buffer.isEmpty() && file.fileName().isEmpty()) { QUrl u = QUrl::fromEncoded(stream->url); QString lfn = u.toLocalFile(); if (lfn.startsWith("//localhost/")) lfn = lfn.mid(12); file.setFileName(lfn); } if (file.exists()) { file.setObjectName(url()); res = bindable->readData(&file, mime); } else { QBuffer io(&buffer); io.setObjectName(url()); res = bindable->readData(&io, mime); } break; case NPRES_USER_BREAK: { ErrorBuffer empty; empty.setObjectName(url()); empty.setErrorString("User cancelled operation."), res = bindable->readData(&empty, mime); } break; case NPRES_NETWORK_ERR: { ErrorBuffer empty; empty.setObjectName(url()); empty.setErrorString("Network error during download."), res = bindable->readData(&empty, mime); } break; default: break; } } stream->pdata = 0; delete this; return res; } // Helper class for forwarding signal emissions to the respective JavaScript class QtSignalForwarder : public QObject { public: QtSignalForwarder(QtNPInstance *that) : This(that), domNode(0) { } ~QtSignalForwarder() { if (domNode) NPN_ReleaseObject(domNode); } int qt_metacall(QMetaObject::Call call, int index, void **args); private: QtNPInstance *This; NPObject *domNode; }; int QtSignalForwarder::qt_metacall(QMetaObject::Call call, int index, void **args) { // no support for QObject method/properties etc! if (!This || !This->npp || call != QMetaObject::InvokeMetaMethod || !This->qt.object) return index; switch (index) { case -1: { QString msg = *(QString*)args[1]; NPN_Status(This->npp, msg.toLocal8Bit().constData()); } break; default: { QObject *qobject = This->qt.object; if (!domNode) NPN_GetValue(This->npp, NPNVPluginElementNPObject, &domNode); if (!domNode) break; const QMetaObject *metaObject = qobject->metaObject(); if (index < metaOffset(metaObject, MetaMethod)) break; const QMetaMethod method = metaObject->method(index); Q_ASSERT(method.methodType() == QMetaMethod::Signal); QByteArray signalSignature = method.signature(); QByteArray scriptFunction = signalSignature.left(signalSignature.indexOf('(')); NPIdentifier id = NPN_GetStringIdentifier(scriptFunction.constData()); if (NPN_HasMethod(This->npp, domNode, id)) { QList parameterTypes = method.parameterTypes(); QVector parameters; NPVariant result; bool error = false; for (int p = 0; p < parameterTypes.count(); ++p) { QVariant::Type type = QVariant::nameToType(parameterTypes.at(p)); if (type == QVariant::Invalid) { NPN_SetException(domNode, QByteArray("Unsupported parameter type in ") + scriptFunction); error = true; break; } QVariant qvar(type, args[p + 1]); NPVariant npvar = NPVariant::fromQVariant(This, qvar); if (npvar.type == NPVariant::Null || npvar.type == NPVariant::Void) { NPN_SetException(domNode, QByteArray("Unsupported parameter value in ") + scriptFunction); error =true; break; } parameters += npvar; } if (error) break; NPError nperror = NPN_Invoke(This->npp, domNode, id, parameters.constData(), parameters.count(), &result); if (nperror != NPERR_NO_ERROR && false) { // disabled, as NPN_Invoke seems to always return GENERICERROR NPN_SetException(domNode, QByteArray("Error invoking event handler ") + scriptFunction); } // ### TODO: update return value (args[0]) (out-parameters not supported anyway) NPN_ReleaseVariantValue(&result); } } break; } return index; } // Plugin functions extern "C" NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) { if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; switch (variable) { case NPPVpluginNameString: { static QByteArray name = qtNPFactory()->pluginName().toLocal8Bit(); *(const char**)value = name.constData(); } break; case NPPVpluginDescriptionString: { static QByteArray description = qtNPFactory()->pluginDescription().toLocal8Bit(); *(const char**)value = description.constData(); } break; #ifdef Q_WS_X11 case NPPVpluginNeedsXEmbed: *(int*)value = true; // PRBool = int break; #endif case NPPVpluginScriptableNPObject: { NPObject *object = NPN_CreateObject(instance, new NPClass(This)); *(NPObject**)value = object; } break; case NPPVformValue: { QObject *object = This->qt.object; const QMetaObject *metaObject = object->metaObject(); int defaultIndex = metaObject->indexOfClassInfo("DefaultProperty"); if (defaultIndex == -1) return NPERR_GENERIC_ERROR; QByteArray defaultProperty = metaObject->classInfo(defaultIndex).value(); if (defaultProperty.isEmpty()) return NPERR_GENERIC_ERROR; QVariant defaultValue = object->property(defaultProperty); if (!defaultValue.isValid()) return NPERR_GENERIC_ERROR; defaultProperty = defaultValue.toString().toUtf8(); int size = defaultProperty.size(); char *utf8 = (char*)NPN_MemAlloc(size + 1); memcpy(utf8, defaultProperty.constData(), size); utf8[size] = 0; // null-terminator *(void**)value = utf8; } break; default: return NPERR_GENERIC_ERROR; } return NPERR_NO_ERROR; } extern "C" NPError NPP_SetValue(NPP instance, NPPVariable variable, void *value) { Q_UNUSED(variable); Q_UNUSED(value); if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; /* switch(variable) { default: return NPERR_GENERIC_ERROR; } */ return NPERR_NO_ERROR; } extern "C" int16 NPP_Event(NPP instance, NPEvent* event) { if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; extern bool qtns_event(QtNPInstance *, NPEvent *); return qtns_event(This, event) ? 1 : 0; } #ifdef Q_WS_X11 // Instance state information about the plugin. extern "C" char* NP_GetMIMEDescription(void) { static QByteArray mime = qtNPFactory()->mimeTypes().join(";").toLocal8Bit(); return (char*)mime.constData(); } extern "C" NPError NP_GetValue(void*, NPPVariable aVariable, void *aValue) { NPError err = NPERR_NO_ERROR; static QByteArray name = qtNPFactory()->pluginName().toLocal8Bit(); static QByteArray descr = qtNPFactory()->pluginDescription().toLocal8Bit(); switch (aVariable) { case NPPVpluginNameString: *static_cast (aValue) = name.constData(); break; case NPPVpluginDescriptionString: *static_cast(aValue) = descr.constData(); break; case NPPVpluginNeedsXEmbed: *static_cast(aValue) = true; break; case NPPVpluginTimerInterval: case NPPVpluginKeepLibraryInMemory: default: err = NPERR_INVALID_PARAM; break; } return err; } #endif /* ** NPP_New is called when your plugin is instantiated (i.e. when an EMBED ** tag appears on a page). */ extern "C" NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* /*saved*/) { if (!instance) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = new QtNPInstance; if (!This) return NPERR_OUT_OF_MEMORY_ERROR; instance->pdata = This; This->filter = 0; This->bindable = 0; This->npp = instance; This->fMode = mode; // NP_EMBED, NP_FULL, or NP_BACKGROUND (see npapi.h) This->window = 0; This->qt.object = 0; #ifdef Q_WS_MAC This->rootWidget = 0; #endif This->pendingStream = 0; // stream might be created before instance This->mimetype = QString::fromLatin1(pluginType); This->notificationSeqNum = 0; for (int i = 0; i < argc; i++) { QByteArray name = QByteArray(argn[i]).toLower(); if (name == "id") This->htmlID = argv[i]; This->parameters[name] = QVariant(argv[i]); } return NPERR_NO_ERROR; } extern "C" NPError NPP_Destroy(NPP instance, NPSavedData** /*save*/) { if (!instance || !instance->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; #ifdef Q_WS_X11 //This->widget->destroy(false, false); // X has destroyed all windows #endif delete This->qt.object; This->qt.object = 0; delete This->filter; This->filter = 0; extern void qtns_destroy(QtNPInstance *This); qtns_destroy(This); delete This; instance->pdata = 0; return NPERR_NO_ERROR; } static QtNPInstance *next_pi = 0; // helper to connect to QtNPBindable extern "C" NPError NPP_SetWindow(NPP instance, NPWindow* window) { if (!instance) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; extern void qtns_setGeometry(QtNPInstance*, const QRect &, const QRect &); const QRect clipRect(window->clipRect.left, window->clipRect.top, window->clipRect.right - window->clipRect.left, window->clipRect.bottom - window->clipRect.top); if (window) This->geometry = QRect(window->x, window->y, window->width, window->height); // take a shortcut if all that was changed is the geometry if (qobject_cast(This->qt.object) && window && This->window == (QtNPInstance::Widget)window->window) { qtns_setGeometry(This, This->geometry, clipRect); return NPERR_NO_ERROR; } delete This->qt.object; This->qt.object = 0; extern void qtns_destroy(QtNPInstance *This); qtns_destroy(This); if (!window) { This->window = 0; return NPERR_NO_ERROR; } This->window = (QtNPInstance::Widget)window->window; #ifdef Q_WS_X11 //This->display = ((NPSetWindowCallbackStruct *)window->ws_info)->display; #endif extern void qtns_initialize(QtNPInstance*); qtns_initialize(This); next_pi = This; This->qt.object = qtNPFactory()->createObject(This->mimetype); next_pi = 0; if (!This->qt.object) return NPERR_NO_ERROR; if (!This->htmlID.isEmpty()) This->qt.object->setObjectName(QLatin1String(This->htmlID)); This->filter = new QtSignalForwarder(This); QStatusBar *statusbar = qFindChild(This->qt.object); if (statusbar) { int statusSignal = statusbar->metaObject()->indexOfSignal("messageChanged(QString)"); if (statusSignal != -1) { QMetaObject::connect(statusbar, statusSignal, This->filter, -1); statusbar->hide(); } } const QMetaObject *mo = This->qt.object->metaObject(); for (int p = 0; p < mo->propertyCount(); ++p) { const QMetaProperty property = mo->property(p); QByteArray name(property.name()); QVariant value = This->parameters.value(name.toLower()); if (value.isValid()) property.write(This->qt.object, value); } for (int methodIndex = 0; methodIndex < mo->methodCount(); ++methodIndex) { const QMetaMethod method = mo->method(methodIndex); if (method.methodType() == QMetaMethod::Signal) QMetaObject::connect(This->qt.object, methodIndex, This->filter, methodIndex); } if (This->pendingStream) { This->pendingStream->finish(This->bindable); This->pendingStream = 0; } if (!qobject_cast(This->qt.object)) return NPERR_NO_ERROR; extern void qtns_embed(QtNPInstance*); qtns_embed(This); QEvent e(QEvent::EmbeddingControl); QApplication::sendEvent(This->qt.widget, &e); if (!This->qt.widget->testAttribute(Qt::WA_PaintOnScreen)) This->qt.widget->setAutoFillBackground(true); This->qt.widget->raise(); qtns_setGeometry(This, This->geometry, clipRect); This->qt.widget->show(); return NPERR_NO_ERROR; } extern "C" NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream, NPBool /*seekable*/, uint16 *stype) { if (!instance) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance* This = (QtNPInstance*) instance->pdata; if (!This) return NPERR_NO_ERROR; QtNPStream *qstream = new QtNPStream(instance, stream); qstream->mime = QString::fromLocal8Bit(type); stream->pdata = qstream; // Workaround bug in Firefox/Gecko/Mozilla; observed in version 3.0.5 on Windows: // On page reload, it does not call StreamAsFile() even when stype is AsFileOnly if (QByteArray(NPN_UserAgent(instance)).contains("Mozilla")) *stype = NP_NORMAL; else *stype = NP_ASFILEONLY; return NPERR_NO_ERROR; } extern "C" int32 NPP_WriteReady(NPP, NPStream *stream) { if (stream->pdata) return 0x0FFFFFFF; return 0; } // Both Netscape and FireFox call this for OnDemand streams as well... extern "C" int32 NPP_Write(NPP instance, NPStream *stream, int32 /*offset*/, int32 len, void *buffer) { if (!instance || !stream || !stream->pdata) return NPERR_INVALID_INSTANCE_ERROR; // this should not be called, as we always demand a download QtNPStream *qstream = (QtNPStream*)stream->pdata; QByteArray data((const char*)buffer, len); // make deep copy qstream->buffer += data; return len; } // Opera calls this for OnDemand streams without calling NPP_Write first extern "C" NPError NPP_DestroyStream(NPP instance, NPStream *stream, NPError reason) { if (!instance || !instance->pdata || !stream || !stream->pdata) return NPERR_INVALID_INSTANCE_ERROR; QtNPInstance *This = (QtNPInstance*)instance->pdata; QtNPStream *qstream = (QtNPStream*)stream->pdata; qstream->reason = reason; if (!This->qt.object) { // not yet initialized This->pendingStream = qstream; return NPERR_NO_ERROR; } This->pendingStream = 0; qstream->finish(This->bindable); return NPERR_NO_ERROR; } extern "C" void NPP_StreamAsFile(NPP instance, NPStream *stream, const char* fname) { if (!instance || !stream || !stream->pdata) return; QString path = QString::fromLocal8Bit(fname); #ifdef Q_WS_MAC path = "/" + path.section(':', 1).replace(':', '/'); #endif QtNPStream *qstream = (QtNPStream*)stream->pdata; qstream->file.setFileName(path); } extern "C" void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData) { if (!instance) return; QtNPInstance* This = (QtNPInstance*) instance->pdata; if (!This->bindable) return; QtNPBindable::Reason r; switch (reason) { case NPRES_DONE: r = QtNPBindable::ReasonDone; break; case NPRES_USER_BREAK: r = QtNPBindable::ReasonBreak; break; case NPRES_NETWORK_ERR: r = QtNPBindable::ReasonError; break; default: r = QtNPBindable::ReasonUnknown; break; } qint32 id = static_cast(reinterpret_cast(notifyData)); if (id < 0) // Sanity check id = 0; This->bindable->transferComplete(QString::fromLocal8Bit(url), id, r); } extern "C" void NPP_Print(NPP instance, NPPrint* printInfo) { if(!printInfo || !instance) return; QtNPInstance* This = (QtNPInstance*) instance->pdata; if (!This->bindable) return; /* if (printInfo->mode == NP_FULL) { printInfo->print.fullPrint.pluginPrinted = This->bindable->printFullPage(); } else if (printInfo->mode == NP_EMBED) { extern void qtns_print(QtNPInstance*, NPPrint*); qtns_print(This, printInfo); } */ } // Plug-in entrypoints - these are called by the browser // Fills in functiontable used by browser to call entry points in plugin. extern "C" NPError WINAPI NP_GetEntryPoints(NPPluginFuncs* pFuncs) { if(!pFuncs) return NPERR_INVALID_FUNCTABLE_ERROR; if(!pFuncs->size) pFuncs->size = sizeof(NPPluginFuncs); else if (pFuncs->size < sizeof(NPPluginFuncs)) return NPERR_INVALID_FUNCTABLE_ERROR; pFuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR; pFuncs->newp = MAKE_FUNCTION_POINTER(NPP_New); pFuncs->destroy = MAKE_FUNCTION_POINTER(NPP_Destroy); pFuncs->setwindow = MAKE_FUNCTION_POINTER(NPP_SetWindow); pFuncs->newstream = MAKE_FUNCTION_POINTER(NPP_NewStream); pFuncs->destroystream = MAKE_FUNCTION_POINTER(NPP_DestroyStream); pFuncs->asfile = MAKE_FUNCTION_POINTER(NPP_StreamAsFile); pFuncs->writeready = MAKE_FUNCTION_POINTER(NPP_WriteReady); pFuncs->write = MAKE_FUNCTION_POINTER(NPP_Write); pFuncs->print = MAKE_FUNCTION_POINTER(NPP_Print); pFuncs->event = MAKE_FUNCTION_POINTER(NPP_Event); pFuncs->urlnotify = MAKE_FUNCTION_POINTER(NPP_URLNotify); pFuncs->javaClass = 0; pFuncs->getvalue = MAKE_FUNCTION_POINTER(NPP_GetValue); pFuncs->setvalue = MAKE_FUNCTION_POINTER(NPP_SetValue); return NPERR_NO_ERROR; } enum NPNToolkitType { NPNVGtk12 = 1, NPNVGtk2 }; #ifndef Q_WS_X11 extern "C" NPError WINAPI NP_Initialize(NPNetscapeFuncs* pFuncs) { if(!pFuncs) return NPERR_INVALID_FUNCTABLE_ERROR; qNetscapeFuncs = pFuncs; int navMajorVers = qNetscapeFuncs->version >> 8; // if the plugin's major version is lower than the Navigator's, // then they are incompatible, and should return an error if(navMajorVers > NP_VERSION_MAJOR) return NPERR_INCOMPATIBLE_VERSION_ERROR; return NPERR_NO_ERROR; } #else extern "C" NPError WINAPI NP_Initialize(NPNetscapeFuncs* nFuncs, NPPluginFuncs* pFuncs) { if(!nFuncs) return NPERR_INVALID_FUNCTABLE_ERROR; qNetscapeFuncs = nFuncs; int navMajorVers = qNetscapeFuncs->version >> 8; // if the plugin's major version is lower than the Navigator's, // then they are incompatible, and should return an error if(navMajorVers > NP_VERSION_MAJOR) return NPERR_INCOMPATIBLE_VERSION_ERROR; // check if the Browser supports the XEmbed protocol int supportsXEmbed = 0; NPError err = NPN_GetValue(0, NPNVSupportsXEmbedBool, (void *)&supportsXEmbed); if (err != NPERR_NO_ERROR ||!supportsXEmbed) return NPERR_INCOMPATIBLE_VERSION_ERROR; return NP_GetEntryPoints(pFuncs); } #endif extern "C" NPError WINAPI NP_Shutdown() { delete qNP; qNP = 0; extern void qtns_shutdown(); qtns_shutdown(); qNetscapeFuncs = 0; return NPERR_NO_ERROR; } /*! \class QtNPBindable qtnetscape.h \brief The QtNPBindable class provides an interface between a widget and the web browser. Inherit your plugin widget class from both QWidget (or QObject) and QtNPBindable to be able to call the functions of this class, and to reimplement the virtual functions. The \l{moc}{meta-object compiler} requires you to inherit from the QObject subclass first. \code class PluginWidget : public QWidget, public QtNPBindable { Q_OBJECT public: PluginWidget(QWidget *parent = 0) { } //... }; \endcode */ /*! \enum QtNPBindable::DisplayMode \brief This enum specifies the different display modes of a plugin \value Embedded The plugin widget is embedded in a web page, usually with the or the tag. \value Fullpage The plugin widget is the primary content of the web browser, which is usually the case when the web browser displays a file the plugin supports. */ /*! \enum QtNPBindable::Reason \brief This enum specifies how an URL operation was completed \value ReasonDone \value ReasonBreak \value ReasonError \value ReasonUnknown */ /*! Constructs a QtNPBindable object. This can only happen when the plugin object is created. */ QtNPBindable::QtNPBindable() : pi(next_pi) { if (pi) pi->bindable = this; next_pi = 0; } /*! Destroys the object. This can only happen when the plugin object is destroyed. */ QtNPBindable::~QtNPBindable() { } /*! Returns the parameters passed to the plugin instance. The framework sets the properties of the plugin to the corresponding parameters when the plugin object has been created, but you can use this function to process additional parameters. Note that the SGML specification does not permit multiple arguments with the same name. */ QMap QtNPBindable::parameters() const { if (!pi) return QMap(); return pi->parameters; } /*! Returns the user agent (browser name) containing this plugin. This is a wrapper around NPN_UserAgent. \sa getBrowserVersion() */ QString QtNPBindable::userAgent() const { if (!pi) return QString(); return QString::fromLocal8Bit(NPN_UserAgent(pi->npp)); } /*! Extracts the version of the plugin API used by this plugin into \a major and \a minor. See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/ for an explanation of those values. \sa getBrowserVersion() userAgent() */ void QtNPBindable::getNppVersion(int *major, int *minor) const { int dummy = 0; if (pi) NPN_Version(major, minor, &dummy, &dummy); } /*! Extracts the version of the browser into \a major and \a minor. See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/ for an explanation of those values. \sa getNppVersion() userAgent() */ void QtNPBindable::getBrowserVersion(int *major, int *minor) const { int dummy = 0; if (pi) NPN_Version(&dummy, &dummy, major, minor); } /*! Returns the display mode of the plugin. */ QtNPBindable::DisplayMode QtNPBindable::displayMode() const { if (!pi) return Embedded; return (QtNPBindable::DisplayMode)pi->fMode; } /*! Returns the mime type this plugin has been instantiated for. */ QString QtNPBindable::mimeType() const { if (!pi) return QString(); return pi->mimetype; } /*! Returns the browser's plugin instance associated with this plugin object. The instance is required to call functions in the Netscape Plugin API, i.e. NPN_GetJavaPeer(). The instance returned is only valid as long as this object is. See http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/ for documentation of the \c NPP type. */ NPP QtNPBindable::instance() const { if (!pi) return 0; return pi->npp; } /*! Reimplement this function to read data from \a source provided with mime type \a format. The data is the one specified in the \c src or \c data attribute of the \c{} or \c{} tag of in HTML page. This function is called once for every stream the browser creates for the plugin. Return true to indicate successfull processing of the data, otherwise return false. The default implementation does nothing and returns false. */ bool QtNPBindable::readData(QIODevice *source, const QString &format) { Q_UNUSED(source); Q_UNUSED(format); return false; } /*! Requests that the \a url be retrieved and sent to the named \a window (or a new window if \a window is empty), and returns the ID of the request that is delivered to transferComplete() when the get-operation has finished. Returns 0 when the browser or the system doesn't support notification, or -1 when an error occured. \code void MyPlugin::aboutQtSoftware() { openUrl("http://qt.nokia.com"); } \endcode See Netscape's JavaScript documentation for an explanation of window names. \sa transferComplete() uploadData() uploadFile() */ int QtNPBindable::openUrl(const QString &url, const QString &window) { if (!pi) return -1; QString wnd = window; if (wnd.isEmpty()) wnd = "_blank"; qint32 id = pi->getNotificationSeqNum(); NPError err = NPN_GetURLNotify(pi->npp, url.toLocal8Bit().constData(), wnd.toLocal8Bit().constData(), reinterpret_cast(id)); if (err != NPERR_NO_ERROR) id = -1; if (err == NPERR_INCOMPATIBLE_VERSION_ERROR) { err = NPN_GetURL(pi->npp, url.toLocal8Bit().constData(), wnd.toLocal8Bit().constData()); if (NPERR_NO_ERROR == err) id = 0; else id = -1; } return id; } /*! Posts \a data to \a url, and displays the result in \a window. Returns the ID of the request that is delivered to transferComplete() when the post-operation has finished. Returns 0 when the browser or the system doesn't support notification, or -1 when an error occured. \code void MyPlugin::sendMail() { uploadData("mailto:fred@somewhere.com", QString(), "There is a new file for you!"); } \endcode See Netscape's JavaScript documentation for an explanation of window names. \sa transferComplete() openUrl() uploadFile() */ int QtNPBindable::uploadData(const QString &url, const QString &window, const QByteArray &data) { if (!pi) return -1; int id = pi->getNotificationSeqNum(); if (NPERR_NO_ERROR != NPN_PostURLNotify(pi->npp, url.toLocal8Bit().constData(), window.isEmpty() ? 0 : window.toLocal8Bit().constData(), data.size(), data.constData(), false, reinterpret_cast(id))) id = -1; return id; } /*! Posts \a filename to \a url, and displays the result in \a window. Returns the ID of the request that is delivered to transferComplete() when the post-operation has finished. Returns 0 when the browser or the system doesn't support notification, or -1 when an error occured. \code void MyPlugin::uploadFile() { uploadFile("ftp://ftp.somewhere.com/incoming", "response", "c:\\temp\\file.txt"); } \endcode See Netscape's JavaScript documentation for an explanation of window names. \sa transferComplete() uploadData() openUrl() */ int QtNPBindable::uploadFile(const QString &url, const QString &window, const QString &filename) { if (!pi) return -1; QByteArray data = filename.toLocal8Bit(); int id = pi->getNotificationSeqNum(); if (NPERR_NO_ERROR != NPN_PostURLNotify(pi->npp, url.toLocal8Bit().constData(), window.isEmpty() ? 0 : window.toLocal8Bit().constData(), data.size(), data.constData(), true, reinterpret_cast(id))) id = -1; return id; } /*! Called as a result of a call to openUrl, uploadData or uploadFile. \a url corresponds to the respective parameter, and \a id to value returned by the call. \a reason indicates how the transfer was completed. */ void QtNPBindable::transferComplete(const QString &url, int id, Reason reason) { Q_UNUSED(url) Q_UNUSED(id) Q_UNUSED(reason) } /****************************************************************************** * The plugin itself - only one ever exists, created by QtNPFactory::create() *****************************************************************************/ /*! \class QtNPFactory qtbrowserplugin.h \brief The QtNPFactory class provides the factory for plugin objects. Implement this factory once in your plugin project to provide information about the plugin and to create the plugin objects. Subclass QtNPFactory and implement the pure virtual functions, and export the factory using the \c QTNPFACTORY_EXPORT() macro. If you use the Q_CLASSINFO macro in your object classes you can use the \c QTNPFACTORY_BEGIN(), \c QTNPCLASS() and \c QTNPFACTORY_END() macros to generate a factory implementation: \code class Widget : public QWidget { Q_OBJECT Q_CLASSINFO("MIME", "application/x-graphable:g1n:Graphable data") public: ... }; QTNPFACTORY_BEGIN("Plugin name", "Plugin description") QTNPCLASS(WidgetClass) QTNPFACTORY_END() \endcode The classes exposed must provide a constructor. If Qt is linked to the plugin as a dynamic library, only one instance of QApplication will exist \e{across all plugins that have been made with Qt}. So, your plugin should tread lightly on global settings. Do not, for example, use QApplication::setFont() - that will change the font in every widget of every Qt-based plugin currently loaded! */ /*! Creates a QtNPFactory. */ QtNPFactory::QtNPFactory() { } /*! Destroys the QtNPFactory. This is called by the plugin binding code just before the plugin is about to be unloaded from memory. If createObject() has been called, a QApplication will still exist at this time, but will be deleted shortly after, just before the plugin is deleted. */ QtNPFactory::~QtNPFactory() { } /*! \fn QStringList QtNPFactory::mimeTypes() const Reimplement this function to return the MIME types of the data formats supported by your plugin. The format of each string is mime:extension(s):description: \code QStringList mimeTypes() const { QStringList list; list << "image/x-png:png:PNG Image" << "image/png:png:PNG Image" << "image/jpeg:jpg,jpeg:JPEG Image"; return list; } \endcode */ /*! \fn QObject *QtNPFactory::createObject(const QString &type) Reimplement this function to return the QObject or QWidget subclass supporting the mime type \a type, or 0 if the factory doesn't support the type requested. \a type will be in the same form as the leftmost (mime) part of the string(s) returned by mimeTypes(), e.g. "image/png". */ /*! \fn QString QtNPFactory::pluginName() const Reimplement this function to return the name of the plugin. */ /*! \fn QString QtNPFactory::pluginDescription() const Reimplement this function to return the description of the plugin. */ x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.def0000644000000000000000000000012012675050177021567 0ustar EXPORTS NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3 x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.h0000644000000000000000000001267612675050177021303 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #ifndef QTNETSCAPE_H #define QTNETSCAPE_H #include #include #include #include struct QtNPInstance; class QtNPBindable; class QtNPStreamPrivate; struct NPP_t; typedef NPP_t* NPP; class QtNPBindable { friend class QtNPStream; public: enum Reason { ReasonDone = 0, ReasonBreak = 1, ReasonError = 2, ReasonUnknown = -1 }; enum DisplayMode { Embedded = 1, Fullpage = 2 }; QMap parameters() const; DisplayMode displayMode() const; QString mimeType() const; QString userAgent() const; void getNppVersion(int *major, int *minor) const; void getBrowserVersion(int *major, int *minor) const; // incoming streams (SRC=... tag) virtual bool readData(QIODevice *source, const QString &format); // URL stuff int openUrl(const QString &url, const QString &window = QString()); int uploadData(const QString &url, const QString &window, const QByteArray &data); int uploadFile(const QString &url, const QString &window, const QString &filename); virtual void transferComplete(const QString &url, int id, Reason r); NPP instance() const; protected: QtNPBindable(); virtual ~QtNPBindable(); private: QtNPInstance* pi; }; class QtNPFactory { public: QtNPFactory(); virtual ~QtNPFactory(); virtual QStringList mimeTypes() const = 0; virtual QObject* createObject(const QString &type) = 0; virtual QString pluginName() const = 0; virtual QString pluginDescription() const = 0; }; extern QtNPFactory *qtNPFactory(); template class QtNPClass : public QtNPFactory { public: QtNPClass() {} QObject *createObject(const QString &key) { foreach (QString mime, mimeTypes()) { if (mime.left(mime.indexOf(':')) == key) return new T; } return 0; } QStringList mimeTypes() const { const QMetaObject &mo = T::staticMetaObject; return QString::fromLatin1(mo.classInfo(mo.indexOfClassInfo("MIME")).value()).split(';'); } QString pluginName() const { return QString(); } QString pluginDescription() const { return QString(); } }; #define QTNPFACTORY_BEGIN(Name, Description) \ class QtNPClassList : public QtNPFactory \ { \ QHash factories; \ QStringList mimeStrings; \ QString m_name, m_description; \ public: \ QtNPClassList() \ : m_name(Name), m_description(Description) \ { \ QtNPFactory *factory = 0; \ QStringList keys; \ #define QTNPCLASS(Class) \ { \ factory = new QtNPClass; \ keys = factory->mimeTypes(); \ foreach (QString key, keys) { \ mimeStrings.append(key); \ factories.insert(key.left(key.indexOf(':')), factory); \ } \ } \ #define QTNPFACTORY_END() \ } \ ~QtNPClassList() { /*crashes? qDeleteAll(factories);*/ } \ QObject *createObject(const QString &mime) { \ QtNPFactory *factory = factories.value(mime); \ return factory ? factory->createObject(mime) : 0; \ } \ QStringList mimeTypes() const { return mimeStrings; } \ QString pluginName() const { return m_name; } \ QString pluginDescription() const { return m_description; } \ }; \ QtNPFactory *qtns_instantiate() { return new QtNPClassList; } \ #define QTNPFACTORY_EXPORT(Class) \ QtNPFactory *qtns_instantiate() { return new Class; } #endif // QTNETSCAPE_H x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_mac.cpp0000644000000000000000000004647212675050177022457 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include "qtnpapi.h" #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" static bool ownsqapp = false; extern void qt_mac_set_native_menubar(bool b); const UInt32 kWidgetCreatorQt = 'cute'; enum { kWidgetPropertyQWidget = 'QWId' //QWidget * }; class QMacBrowserRoot : public QWidget { Q_OBJECT public: QMacBrowserRoot(HIViewRef root) : QWidget() { // make sure we're not registered with Qt before create WindowRef window = HIViewGetWindow(root); QWidget *oldwindow=0; OSErr err; err = GetWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget, sizeof(oldwindow), 0, &oldwindow); if (err == noErr) RemoveWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget); create((WId)root); // re-register the root window with Qt err = SetWindowProperty(window, kWidgetCreatorQt, kWidgetPropertyQWidget, sizeof(oldwindow), &oldwindow); if (err != noErr) { qWarning("Error, couldn't register Window with Qt: (%s:%d:%d)", __FILE__, __LINE__, err); } QPalette pal = palette(); pal.setColor(QPalette::Window,Qt::transparent); setPalette(pal); setAttribute(Qt::WA_WState_Polished); } ~QMacBrowserRoot() { } }; #include "qtbrowserplugin_mac.moc" struct key_sym { int mac_code; int qt_code; const char *desc; }; static key_sym modifier_syms[] = { { shiftKey, Qt::ShiftModifier, "Qt::ShiftModifier" }, { controlKey, Qt::MetaModifier, "Qt::MetaModifier" }, { rightControlKey, Qt::MetaModifier, "Qt::MetaModifier" }, { optionKey, Qt::AltModifier, "Qt::AltModifier" }, { rightOptionKey, Qt::AltModifier, "Qt::AltModifier" }, { cmdKey, Qt::ControlModifier, "Qt::ControlModifier" }, { 0, 0, NULL } }; static Qt::KeyboardModifiers get_modifiers(int key) { Qt::KeyboardModifiers ret = 0; for(int i = 0; modifier_syms[i].desc; i++) { if(key & modifier_syms[i].mac_code) { ret |= Qt::KeyboardModifier(modifier_syms[i].qt_code); } } return ret; } static key_sym key_syms[] = { { kHomeCharCode, Qt::Key_Home, "Qt::Home" }, { kEnterCharCode, Qt::Key_Enter, "Qt::Key_Enter" }, { kEndCharCode, Qt::Key_End, "Qt::Key_End" }, { kBackspaceCharCode, Qt::Key_Backspace, "Qt::Backspace" }, { kTabCharCode, Qt::Key_Tab, "Qt::Tab" }, { kPageUpCharCode, Qt::Key_PageUp, "Qt::PageUp" }, { kPageDownCharCode, Qt::Key_PageDown, "Qt::PageDown" }, { kReturnCharCode, Qt::Key_Return, "Qt::Key_Return" }, //function keys? { kEscapeCharCode, Qt::Key_Escape, "Qt::Key_Escape" }, { kLeftArrowCharCode, Qt::Key_Left, "Qt::Key_Left" }, { kRightArrowCharCode, Qt::Key_Right, "Qt::Key_Right" }, { kUpArrowCharCode, Qt::Key_Up, "Qt::Key_Up" }, { kDownArrowCharCode, Qt::Key_Down, "Qt::Key_Down" }, { kDeleteCharCode, Qt::Key_Delete, "Qt::Key_Delete" } }; static int get_key(int key) { for(int i = 0; key_syms[i].desc; i++) { if(key_syms[i].mac_code == key) { return key_syms[i].qt_code; } } return key; } struct qt_last_mouse_down_struct { unsigned int when; int x, y; } qt_last_mouse_down = { 0, 0, 0 }; //nasty, copied code - static void qt_dispatchEnterLeave(QWidget* enter, QWidget* leave) { #if 0 if(leave) { QEvent e(QEvent::Leave); QApplication::sendEvent(leave, & e); } if(enter) { QEvent e(QEvent::Enter); QApplication::sendEvent(enter, & e); } return; #endif QWidget* w ; if(!enter && !leave) return; QWidgetList leaveList; QWidgetList enterList; bool sameWindow = leave && enter && leave->window() == enter->window(); if(leave && !sameWindow) { w = leave; do { leaveList.append(w); } while(!w->isWindow() && (w = w->parentWidget())); } if(enter && !sameWindow) { w = enter; do { enterList.prepend(w); } while(!w->isWindow() && (w = w->parentWidget())); } if(sameWindow) { int enterDepth = 0; int leaveDepth = 0; w = enter; while(!w->isWindow() && (w = w->parentWidget())) enterDepth++; w = leave; while(!w->isWindow() && (w = w->parentWidget())) leaveDepth++; QWidget* wenter = enter; QWidget* wleave = leave; while(enterDepth > leaveDepth) { wenter = wenter->parentWidget(); enterDepth--; } while(leaveDepth > enterDepth) { wleave = wleave->parentWidget(); leaveDepth--; } while(!wenter->isWindow() && wenter != wleave) { wenter = wenter->parentWidget(); wleave = wleave->parentWidget(); } w = leave; while(w != wleave) { leaveList.append(w); w = w->parentWidget(); } w = enter; while(w != wenter) { enterList.prepend(w); w = w->parentWidget(); } } QEvent leaveEvent(QEvent::Leave); for (int i = 0; i < leaveList.size(); ++i) { w = leaveList.at(i); QApplication::sendEvent(w, &leaveEvent); #if 0 if(w->testAttribute(Qt::WA_Hover)) { Q_ASSERT(instance()); QHoverEvent he(QEvent::HoverLeave, QPoint(-1, -1), w->mapFromGlobal(QApplicationPrivate::instance()->hoverGlobalPos)); QApplication::sendEvent(w, &he); } #endif } QPoint posEnter = QCursor::pos(); QEvent enterEvent(QEvent::Enter); for (int i = 0; i < enterList.size(); ++i) { w = enterList.at(i); QApplication::sendEvent(w, &enterEvent); if(w->testAttribute(Qt::WA_Hover)) { QHoverEvent he(QEvent::HoverEnter, w->mapFromGlobal(posEnter), QPoint(-1, -1)); QApplication::sendEvent(w, &he); } } } extern "C" bool qtns_event(QtNPInstance *This, NPEvent *event) { static QPointer lastWidget; static QPointer qt_button_down; static Point lastPosition = { 0, 0 }; if(event->what == nullEvent || event->what == adjustCursorEvent) { if(event->what == nullEvent) { qApp->processEvents(); QApplication::sendPostedEvents(); } //watch for mouse moves Point currentPosition; GetMouse(¤tPosition); LocalToGlobal(¤tPosition); if(currentPosition.h != lastPosition.h || currentPosition.v != lastPosition.v) { lastPosition = currentPosition; WindowPtr wp; FindWindow(currentPosition, &wp); QWidget *widget = 0; if(wp == GetWindowFromPort((CGrafPtr)This->window->port)) widget = This->rootWidget->childAt(This->rootWidget->mapFromGlobal(QPoint(event->where.h, event->where.v))); else widget = QApplication::widgetAt(event->where.h, event->where.v); if(widget != lastWidget) { qt_dispatchEnterLeave(widget, lastWidget); lastWidget = widget; } if(widget) { QPoint p(currentPosition.h, currentPosition.v); QPoint plocal(widget->mapFromGlobal(p)); QMouseEvent qme(QEvent::MouseMove, plocal, p, Button() ? Qt::LeftButton : Qt::NoButton, 0, get_modifiers(GetCurrentKeyModifiers())); QApplication::sendEvent(widget, &qme); } } return true; } else if(QWidget *widget = qobject_cast(This->qt.object)) { if(event->what == updateEvt) { widget->repaint(); return true; } else if(event->what == keyUp || event->what == keyDown) { QWidget *widget = 0; if(QWidget::keyboardGrabber()) widget = QWidget::keyboardGrabber(); else if(QApplication::focusWidget()) widget = QApplication::focusWidget(); else //last ditch effort widget = QApplication::widgetAt(event->where.h, event->where.v); if(widget) { #if 0 if(app_do_modal && !qt_try_modal(widget, er)) return 1; #endif int mychar=get_key(event->message & charCodeMask); QEvent::Type etype = event->what == keyUp ? QEvent::KeyRelease : QEvent::KeyPress; QKeyEvent ke(etype, mychar, get_modifiers(event->modifiers), QString(QChar(mychar))); QApplication::sendEvent(widget,&ke); return true; } } else if(event->what == mouseDown || event->what == mouseUp) { QEvent::Type etype = QEvent::None; Qt::KeyboardModifiers keys = get_modifiers(event->modifiers); Qt::MouseButton button = Qt::LeftButton; if(event->what == mouseDown) { if (lastWidget) qt_button_down = lastWidget; //check if this is the second click, there must be a way to make the //mac do this for us, FIXME!! if(qt_last_mouse_down.when && (event->when - qt_last_mouse_down.when <= (uint)QApplication::doubleClickInterval())) { int x = event->where.h, y = event->where.v; if(x >= (qt_last_mouse_down.x-2) && x <= (qt_last_mouse_down.x+4) && y >= (qt_last_mouse_down.y-2) && y <= (qt_last_mouse_down.y+4)) { etype = QEvent::MouseButtonDblClick; qt_last_mouse_down.when = 0; } } if(etype == QEvent::None) { //guess it's just a press etype = QEvent::MouseButtonPress; qt_last_mouse_down.when = event->when; qt_last_mouse_down.x = event->where.h; qt_last_mouse_down.y = event->where.v; } } else { etype = QEvent::MouseButtonRelease; } WindowPtr wp; FindWindow(event->where, &wp); //handle popup's first QWidget *popupwidget = NULL; if(QApplication::activePopupWidget()) { if(wp) { QWidget *clt=QWidget::find((WId)wp); if(clt && clt->windowType() == Qt::Popup) popupwidget = clt; } if(!popupwidget) popupwidget = QApplication::activePopupWidget(); if(QWidget *child = popupwidget->childAt(popupwidget->mapFromGlobal(QPoint(event->where.h, event->where.v)))) popupwidget = child; QPoint p(event->where.h, event->where.v); QPoint plocal(popupwidget->mapFromGlobal(p)); QMouseEvent qme(etype, plocal, p, button, 0, keys); QApplication::sendEvent(popupwidget, &qme); } { QWidget *widget = 0; //figure out which widget to send it to if(event->what == mouseUp && qt_button_down) widget = qt_button_down; else if(QWidget::mouseGrabber()) widget = QWidget::mouseGrabber(); else if(wp == GetWindowFromPort((CGrafPtr)This->window->port)) widget = This->rootWidget->childAt(This->rootWidget->mapFromGlobal(QPoint(event->where.h, event->where.v))); else widget = QApplication::widgetAt(event->where.h, event->where.v); //setup the saved widget qt_button_down = event->what == mouseDown ? widget : 0; //finally send the event to the widget if its not the popup if(widget && widget != popupwidget) { #if 0 if(app_do_modal && !qt_try_modal(widget, er)) return 1; #endif if(event->what == mouseDown) { QWidget* w = widget; while(w->focusProxy()) w = w->focusProxy(); if(w->focusPolicy() & Qt::ClickFocus) w->setFocus(Qt::MouseFocusReason); if(QWidget *tlw = widget->topLevelWidget()) { tlw->raise(); if(tlw->isTopLevel() && tlw->windowType() != Qt::Popup && (tlw->isModal() || tlw->windowType() != Qt::Dialog)) QApplication::setActiveWindow(tlw); } } QPoint p(event->where.h, event->where.v); QPoint plocal(widget->mapFromGlobal( p )); QMouseEvent qme(etype, plocal, p, button, 0, keys); QApplication::sendEvent(widget, &qme); return true; } } } else { //qDebug("%d", event->what); } } return false; } #ifdef QTBROWSER_USE_CFM static bool qtbrowser_use_cfm = false; static UInt32 gGlueTemplate[6] = { 0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420 }; struct TVector_rec { ProcPtr fProcPtr; void *fTOC; }; void *CFMFunctionPointerForMachOFunctionPointer(void *inMachProcPtr) { if(!qtbrowser_use_cfm) return inMachProcPtr; TVector_rec *vTVector = (TVector_rec*)malloc(sizeof(TVector_rec)); if(MemError() == noErr && vTVector != 0) { vTVector->fProcPtr = (ProcPtr)inMachProcPtr; vTVector->fTOC = 0; // ignored } return((void *)vTVector); } void DisposeCFMFunctionPointer(void *inCfmProcPtr) { if(!qtbrowser_use_cfm) return; if(inCfmProcPtr) free(inCfmProcPtr); } void* MachOFunctionPointerForCFMFunctionPointer(void* inCfmProcPtr) { if(!qtbrowser_use_cfm) return inCfmProcPtr; UInt32 *vMachProcPtr = (UInt32*)NewPtr(sizeof(gGlueTemplate)); vMachProcPtr[0] = gGlueTemplate[0] | ((UInt32)inCfmProcPtr >> 16); vMachProcPtr[1] = gGlueTemplate[1] | ((UInt32)inCfmProcPtr & 0xFFFF); vMachProcPtr[2] = gGlueTemplate[2]; vMachProcPtr[3] = gGlueTemplate[3]; vMachProcPtr[4] = gGlueTemplate[4]; vMachProcPtr[5] = gGlueTemplate[5]; MakeDataExecutable(vMachProcPtr, sizeof(gGlueTemplate)); return(vMachProcPtr); } #endif extern "C" void qtns_initialize(QtNPInstance *) { qt_mac_set_native_menubar(false); if(!qApp) { ownsqapp = true; static int argc=0; static char **argv={ 0 }; (void)new QApplication(argc, argv); } } extern "C" void qtns_destroy(QtNPInstance *This) { delete This->rootWidget; This->rootWidget = 0; } extern "C" void qtns_shutdown() { if(!ownsqapp) return; // TODO: find out if other plugin DLL's still need qApp delete qApp; ownsqapp = false; } extern "C" void qtns_embed(QtNPInstance *This) { Q_ASSERT(qobject_cast(This->qt.object)); WindowPtr windowptr = GetWindowFromPort((CGrafPtr)This->window->port); HIViewRef root = 0; OSErr err; err = GetRootControl(windowptr,&root); if(!root) root = HIViewGetRoot(windowptr); if(!root) { qDebug("No window composition!"); } else { This->rootWidget = new QMacBrowserRoot(root); This->qt.widget->setParent(This->rootWidget); } } extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &clipRect) { Q_ASSERT(qobject_cast(This->qt.object)); WindowPtr windowptr = GetWindowFromPort((CGrafPtr)This->window->port); Rect content_r; GetWindowBounds(windowptr, kWindowContentRgn, &content_r); Rect structure_r; GetWindowBounds(windowptr, kWindowStructureRgn, &structure_r); QRect geom(rect.translated(content_r.left-structure_r.left, content_r.top-structure_r.top)); if(rect != clipRect) { QRegion clipRegion(QRect(clipRect.x()-geom.x(), clipRect.y()-geom.y(), clipRect.width(), clipRect.height()) .translated(content_r.left-structure_r.left, content_r.top-structure_r.top)); if(clipRegion.isEmpty()) clipRegion = QRegion(-1, -1, 1, 1); //eww ### FIXME This->qt.widget->setMask(clipRegion); } else { This->qt.widget->clearMask(); } This->qt.widget->setGeometry(geom); } typedef void (*NPP_ShutdownUPP)(void); extern "C" void NPP_MacShutdown() { //extern NPError NP_Shutdown(); //NP_Shutdown(); } extern "C" int main(NPNetscapeFuncs *npn_funcs, NPPluginFuncs *np_funcs, NPP_ShutdownUPP *shutdown) { qtbrowser_use_cfm = true; //quite the heuristic.. NPError ret; extern NPError NP_Initialize(NPNetscapeFuncs*); if((ret=NP_Initialize(npn_funcs)) != NPERR_NO_ERROR) return ret; extern NPError NP_GetEntryPoints(NPPluginFuncs*); if((ret=NP_GetEntryPoints(np_funcs)) != NPERR_NO_ERROR) return ret; *shutdown = (NPP_ShutdownUPP)MAKE_FUNCTION_POINTER(NPP_MacShutdown); return NPERR_NO_ERROR; } x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_p.h0000644000000000000000000000564212675050177021615 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include #include #ifdef Q_WS_X11 # include class QtNPStream; class QtNPBindable; #endif struct QtNPInstance { NPP npp; short fMode; #ifdef Q_WS_WIN typedef HWND Widget; #endif #ifdef Q_WS_X11 typedef Window Widget; Display *display; #endif #ifdef Q_WS_MAC typedef NPPort* Widget; QWidget *rootWidget; #endif Widget window; QRect geometry; QString mimetype; QByteArray htmlID; union { QObject* object; QWidget* widget; } qt; QtNPStream *pendingStream; QtNPBindable* bindable; QObject *filter; QMap parameters; qint32 notificationSeqNum; QMutex seqNumMutex; qint32 getNotificationSeqNum() { QMutexLocker locker(&seqNumMutex); if (++notificationSeqNum < 0) notificationSeqNum = 1; return notificationSeqNum; } }; x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri0000644000000000000000000000412712675050177021636 0ustar TEMPLATE = lib CONFIG += dll win32-* { # Uncomment the following line to build a plugin that can be used also in # Internet Explorer, through ActiveX. # CONFIG += qaxserver } else { CONFIG += plugin } INCLUDEPATH += $$PWD DEPENDPATH += $$PWD SOURCES += $$PWD/qtbrowserplugin.cpp HEADERS += $$PWD/qtbrowserplugin.h qtnpapi.h win32-* { SOURCES += $$PWD/qtbrowserplugin_win.cpp !isEmpty(TARGET) { TARGET = np$$TARGET } LIBS += -luser32 qaxserver { DEF_FILE += $$PWD/qtbrowserpluginax.def } else { DEF_FILE += $$PWD/qtbrowserplugin.def } firefox { exists("c:/program files/mozilla firefox/plugins") { DLLDESTDIR += "c:/program files/mozilla firefox/plugins" } else { message("Firefox not found at default location") } } opera { exists("c:/program files/opera/program/plugins") { DLLDESTDIR += "c:/program files/opera/program/plugins" } else { message("Opera not found at default location") } } netscape { exists("c:/program files/netscape/netscape browser/plugins") { DLLDESTDIR += "c:/program files/netscape/netscape browser/plugins" } else { message("Netscape not found at default location") } } } else:mac { CONFIG += plugin_bundle SOURCES += $$PWD/qtbrowserplugin_mac.cpp #target.path = /Library/Internet\ Plugins #INSTALLS += target } else { SOURCES += $$PWD/qtbrowserplugin_x11.cpp INCLUDEPATH += /usr/include/X11 # Avoiding symbol clash with other instances of the Qt library # (ref. developingplugins.html in the doc.): # # For Qt 4.4 and later, just configure Qt to use a separate namespace: # configure -qtnamespace SomeNamespace # # For Qt 4.3: Uncomment the line below. # It makes the dynamic linker prefer our own Qt symbols for the plugin, # provided that our Qt is statically built and linked into the # plugin. Note that to force the linker to prefer the static Qt # libraries (.a files), the dynamic libraries (.so) files must not # be present in the lib directory. # # QMAKE_LFLAGS += -Wl,-Bsymbolic } x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_win.cpp0000644000000000000000000001566312675050177022512 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" #include #include "qtnpapi.h" static HHOOK hhook = 0; static bool ownsqapp = false; Q_GUI_EXPORT int qt_translateKeyCode(int); LRESULT CALLBACK FilterProc( int nCode, WPARAM wParam, LPARAM lParam ) { if (qApp) qApp->sendPostedEvents(0, -1); if (nCode < 0 || !(wParam & PM_REMOVE)) return CallNextHookEx(hhook, nCode, wParam, lParam); MSG *msg = (MSG*)lParam; bool processed = false; // (some) support for key-sequences via QAction and QShortcut if(msg->message == WM_KEYDOWN || msg->message == WM_SYSKEYDOWN) { QWidget *focusWidget = QWidget::find(msg->hwnd); if (focusWidget) { int key = msg->wParam; if (!(key >= 'A' && key <= 'Z') && !(key >= '0' && key <= '9')) key = qt_translateKeyCode(msg->wParam); Qt::KeyboardModifiers modifiers = 0; int modifierKey = 0; if (GetKeyState(VK_SHIFT) < 0) { modifierKey |= Qt::SHIFT; modifiers |= Qt::ShiftModifier; } if (GetKeyState(VK_CONTROL) < 0) { modifierKey |= Qt::CTRL; modifiers |= Qt::ControlModifier; } if (GetKeyState(VK_MENU) < 0) { modifierKey |= Qt::ALT; modifiers |= Qt::AltModifier; } QKeySequence shortcutKey(modifierKey + key); if (!shortcutKey.isEmpty()) { QKeyEvent override(QEvent::ShortcutOverride, key, modifiers); override.ignore(); QApplication::sendEvent(focusWidget, &override); processed = override.isAccepted(); if (!processed) { QList actions = qFindChildren(focusWidget->window()); for (int i = 0; i < actions.count() && !processed; ++i) { QAction *action = actions.at(i); if (!action->isEnabled() || action->shortcut() != shortcutKey) continue; QShortcutEvent event(shortcutKey, 0); processed = QApplication::sendEvent(action, &event); } } if (!processed) { QList shortcuts = qFindChildren(focusWidget->window()); for (int i = 0; i < shortcuts.count() && !processed; ++i) { QShortcut *shortcut = shortcuts.at(i); if (!shortcut->isEnabled() || shortcut->key() != shortcutKey) continue; QShortcutEvent event(shortcutKey, shortcut->id()); processed = QApplication::sendEvent(shortcut, &event); } } } } } return CallNextHookEx(hhook, nCode, wParam, lParam); } extern "C" bool qtns_event(QtNPInstance *, NPEvent *) { return false; } extern Q_CORE_EXPORT void qWinMsgHandler(QtMsgType t, const char* str); extern "C" void qtns_initialize(QtNPInstance*) { if (!qApp) { qInstallMsgHandler(qWinMsgHandler); ownsqapp = true; static int argc=0; static char **argv={ 0 }; (void)new QApplication(argc, argv); QT_WA({ hhook = SetWindowsHookExW( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() ); }, { hhook = SetWindowsHookExA( WH_GETMESSAGE, FilterProc, 0, GetCurrentThreadId() ); }); } } extern "C" void qtns_destroy(QtNPInstance *) { } extern "C" void qtns_shutdown() { if (!ownsqapp) return; // check if qApp still runs widgets (in other DLLs) QWidgetList widgets = qApp->allWidgets(); int count = widgets.count(); for (int w = 0; w < widgets.count(); ++w) { // ignore all Qt generated widgets QWidget *widget = widgets.at(w); if (widget->windowFlags() & Qt::Desktop) count--; } if (count) // qApp still used return; delete qApp; ownsqapp = false; if ( hhook ) UnhookWindowsHookEx( hhook ); hhook = 0; } extern "C" void qtns_embed(QtNPInstance *This) { Q_ASSERT(qobject_cast(This->qt.object)); LONG oldLong = GetWindowLong(This->window, GWL_STYLE); ::SetWindowLong(This->window, GWL_STYLE, oldLong | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); ::SetWindowLong(This->qt.widget->winId(), GWL_STYLE, WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); ::SetParent(This->qt.widget->winId(), This->window); } extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &) { Q_ASSERT(qobject_cast(This->qt.object)); This->qt.widget->setGeometry(QRect(0, 0, rect.width(), rect.height())); } /* extern "C" void qtns_print(QtNPInstance * This, NPPrint *printInfo) { NPWindow* printWindow = &(printInfo->print.embedPrint.window); void* platformPrint = printInfo->print.embedPrint.platformPrint; // #### Nothing yet. } */ x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtbrowserplugin_x11.cpp0000644000000000000000000001154212675050177022316 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ #include #include #include "qtbrowserplugin.h" #include "qtbrowserplugin_p.h" #include "qtnpapi.h" #include static bool ownsqapp = false; static QMap clients; extern "C" bool qtns_event(QtNPInstance *, NPEvent *) { return false; } extern "C" void qtns_initialize(QtNPInstance* This) { if (!qApp) { ownsqapp = true; static int argc = 0; static char **argv = {0}; // Workaround to avoid re-initilaziation of glib char* envvar = qstrdup("QT_NO_THREADED_GLIB=1"); // Unavoidable memory leak; the variable must survive plugin unloading ::putenv(envvar); (void)new QApplication(argc, argv); } if (!clients.contains(This)) { QX11EmbedWidget* client = new QX11EmbedWidget; QHBoxLayout* layout = new QHBoxLayout(client); layout->setMargin(0); clients.insert(This, client); } } extern "C" void qtns_destroy(QtNPInstance* This) { QMap::iterator it = clients.find(This); if (it == clients.end()) return; delete it.value(); clients.erase(it); } extern "C" void qtns_shutdown() { if (clients.count() > 0) { QMap::iterator it = clients.begin(); while (it != clients.end()) { delete it.value(); ++it; } clients.clear(); } if (!ownsqapp) return; // check if qApp still runs widgets (in other DLLs) QWidgetList widgets = qApp->allWidgets(); int count = widgets.count(); for (int w = 0; w < widgets.count(); ++w) { // ignore all Qt generated widgets QWidget *widget = widgets.at(w); if (widget->windowFlags() & Qt::Desktop) count--; } if (count) // qApp still used return; delete qApp; ownsqapp = false; } extern "C" void qtns_embed(QtNPInstance *This) { Q_ASSERT(qobject_cast(This->qt.object)); QMap::iterator it = clients.find(This); if (it == clients.end()) return; QX11EmbedWidget* client = it.value(); This->qt.widget->setParent(client); client->layout()->addWidget(This->qt.widget); client->embedInto(This->window); client->show(); } extern "C" void qtns_setGeometry(QtNPInstance *This, const QRect &rect, const QRect &) { Q_ASSERT(qobject_cast(This->qt.object)); QMap::iterator it = clients.find(This); if (it == clients.end()) return; QX11EmbedWidget* client = it.value(); client->setGeometry(QRect(0, 0, rect.width(), rect.height())); } /* extern "C" void qtns_print(QtNPInstance * This, NPPrint *printInfo) { NPWindow* printWindow = &(printInfo->print.embedPrint.window); void* platformPrint = printInfo->print.embedPrint.platformPrint; // #### Nothing yet. } */ x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/qtnpapi.h0000644000000000000000000005151212675050177017500 0ustar /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of a Qt Solutions component. ** ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** ****************************************************************************/ // see http://www.mozilla.org/projects/plugins/ for details regarding the structs and API prototypes #ifndef QTNPAPI_H #define QTNPAPI_H // Plugin API version #define NP_VERSION_MAJOR 0 #define NP_VERSION_MINOR 17 // basic types typedef unsigned short uint16; typedef short int16; typedef unsigned int uint32; typedef int int32; typedef unsigned char NPBool; typedef int16 NPError; typedef int16 NPReason; typedef char* NPMIMEType; typedef void *NPRegion; typedef void *NPIdentifier; // Java stuff typedef void* jref; typedef void* JRIGlobalRef; typedef void* JRIEnv; // ### not quite correct, but we don't use it anyway // NP-types struct NPP_t { void* pdata; // plug-in private data void* ndata; // browser private data }; typedef NPP_t* NPP; struct NPRect { uint16 top; uint16 left; uint16 bottom; uint16 right; }; #ifdef Q_WS_WIN struct NPEvent { uint16 event; uint32 wParam; uint32 lParam; }; #elif defined(Q_WS_X11) # include typedef XEvent NPEvent; #elif defined (Q_WS_MAC) typedef struct EventRecord NPEvent; #endif // Variable names for NPP_GetValue enum NPPVariable { NPPVpluginNameString = 1, NPPVpluginDescriptionString, NPPVpluginWindowBool, NPPVpluginTransparentBool, NPPVjavaClass, NPPVpluginWindowSize, NPPVpluginTimerInterval, NPPVpluginScriptableInstance = 10, NPPVpluginScriptableIID = 11, // Introduced in Mozilla 0.9.9 NPPVjavascriptPushCallerBool = 12, // Introduced in Mozilla 1.0 NPPVpluginKeepLibraryInMemory = 13, NPPVpluginNeedsXEmbed = 14, // Introduced in Firefox 1.0 NPPVpluginScriptableNPObject = 15, NPPVformValue = 16 } ; // Variable names for NPN_GetValue enum NPNVariable { NPNVxDisplay = 1, NPNVxtAppContext, NPNVnetscapeWindow, NPNVjavascriptEnabledBool, NPNVasdEnabledBool, NPNVisOfflineBool, // Introduced in Mozilla 0.9.4 NPNVserviceManager = 10, NPNVDOMElement = 11, // Introduced in Mozilla 1.2 NPNVDOMWindow = 12, NPNVToolkit = 13, NPNVSupportsXEmbedBool = 14, NPNVWindowNPObject = 15, NPNVPluginElementNPObject = 16 }; enum NPWindowType { NPWindowTypeWindow = 1, // Windowed plug-in. The window field holds a platform-specific handle to a window. NPWindowTypeDrawable // Windows: HDC; Mac OS: pointer to NP_Port structure. }; struct NPWindow { // Platform-specific handle to a native window element in the browser's window hierarchy // XEmbed: "In the NPP_SetWindow call, the window parameter will be the XID of the hosting // XEmbed window. As an implementation note, this is really the XID of a GtkSocket window." void* window; // The x and y coordinates for the top left corner of the plug-in relative to the page // (and thus relative to the origin of the drawable) uint32 x, y; // The height and width of the plug-in area. Should not be modified by the plug-in. uint32 width, height; // Used by MAC only (Clipping rectangle in port coordinates) NPRect clipRect; #ifdef Q_WS_X11 // Contains information about the plug-in's Unix window environment // points to an NPSetWindowCallbackStruct void* ws_info; // probably obsolete with XEmbed #endif // The type field indicates the NPWindow type of the target area NPWindowType type; }; struct NPPort { void *port; int32 portx; int32 porty; }; struct NPFullPrint { NPBool pluginPrinted; // true if plugin handled fullscreen printing NPBool printOne; // true if plugin should print one copy to default printer void* platformPrint; // Platform-specific printing info }; struct NPEmbedPrint { NPWindow window; void* platformPrint; // Platform-specific printing info }; struct NPPrint { uint16 mode; // NP_FULL or NP_EMBED union { NPFullPrint fullPrint; NPEmbedPrint embedPrint; } print; }; struct NPSavedData { int32 len; void* buf; }; struct NPStream { void* pdata; void* ndata; const char* url; uint32 end; uint32 lastmodified; void* notifyData; }; struct NPByteRange { int32 offset; // negative offset means from the end uint32 length; NPByteRange* next; }; // Values for mode passed to NPP_New: #define NP_EMBED 1 #define NP_FULL 2 // Values for stream type passed to NPP_NewStream: #define NP_NORMAL 1 #define NP_SEEK 2 #define NP_ASFILE 3 #define NP_ASFILEONLY 4 #define NP_MAXREADY (((unsigned)(~0)<<1)>>1) // Values of type NPError: #define NPERR_NO_ERROR 0 #define NPERR_GENERIC_ERROR 1 #define NPERR_INVALID_INSTANCE_ERROR 2 #define NPERR_INVALID_FUNCTABLE_ERROR 3 #define NPERR_MODULE_LOAD_FAILED_ERROR 4 #define NPERR_OUT_OF_MEMORY_ERROR 5 #define NPERR_INVALID_PLUGIN_ERROR 6 #define NPERR_INVALID_PLUGIN_DIR_ERROR 7 #define NPERR_INCOMPATIBLE_VERSION_ERROR 8 #define NPERR_INVALID_PARAM 9 #define NPERR_INVALID_URL 10 #define NPERR_FILE_NOT_FOUND 11 #define NPERR_NO_DATA 12 #define NPERR_STREAM_NOT_SEEKABLE 13 // Values of type NPReason: #define NPRES_DONE 0 #define NPRES_NETWORK_ERR 1 #define NPRES_USER_BREAK 2 // Version feature information #define NPVERS_HAS_STREAMOUTPUT 8 #define NPVERS_HAS_NOTIFICATION 9 #define NPVERS_HAS_LIVECONNECT 9 #define NPVERS_WIN16_HAS_LIVECONNECT 10 // Mac specifics #ifdef Q_WS_MAC # define getFocusEvent (osEvt + 16) # define loseFocusEvent (osEvt + 17) # define adjustCursorEvent (osEvt + 18) # define QTBROWSER_USE_CFM #endif #ifdef QTBROWSER_USE_CFM extern void *CFMFunctionPointerForMachOFunctionPointer(void*); extern void DisposeCFMFunctionPointer(void *); extern void* MachOFunctionPointerForCFMFunctionPointer(void*); # define FUNCTION_POINTER(t) void* # define MAKE_FUNCTION_POINTER(f) CFMFunctionPointerForMachOFunctionPointer((void*)f) # define DESTROY_FUNCTION_POINTER(n) DisposeCFMFunctionPointer(n) # define FIND_FUNCTION_POINTER(t, n) (*(t)MachOFunctionPointerForCFMFunctionPointer(n)) #else # define FUNCTION_POINTER(t) t # define MAKE_FUNCTION_POINTER(f) f # define DESTROY_FUNCTION_POINTER(n) # define FIND_FUNCTION_POINTER(t, n) (*n) #endif // Plugin function prototypes typedef NPError (*NPP_NewFP)(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved); typedef NPError (*NPP_DestroyFP)(NPP instance, NPSavedData** save); typedef NPError (*NPP_SetWindowFP)(NPP instance, NPWindow* window); typedef NPError (*NPP_NewStreamFP)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype); typedef NPError (*NPP_DestroyStreamFP)(NPP instance, NPStream* stream, NPReason reason); typedef void (*NPP_StreamAsFileFP)(NPP instance, NPStream* stream, const char* fname); typedef int32 (*NPP_WriteReadyFP)(NPP instance, NPStream* stream); typedef int32 (*NPP_WriteFP)(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer); typedef void (*NPP_PrintFP)(NPP instance, NPPrint* platformPrint); typedef int16 (*NPP_HandleEventFP)(NPP instance, NPEvent* event); typedef void (*NPP_URLNotifyFP)(NPP instance, const char* url, NPReason reason, void* notifyData); typedef NPError (*NPP_GetValueFP)(NPP instance, NPPVariable variable, void *value); typedef NPError (*NPP_SetValueFP)(NPP instance, NPPVariable variable, void *value); // table of functions implemented by the plugin struct NPPluginFuncs { uint16 size; uint16 version; FUNCTION_POINTER(NPP_NewFP) newp; FUNCTION_POINTER(NPP_DestroyFP) destroy; FUNCTION_POINTER(NPP_SetWindowFP) setwindow; FUNCTION_POINTER(NPP_NewStreamFP) newstream; FUNCTION_POINTER(NPP_DestroyStreamFP) destroystream; FUNCTION_POINTER(NPP_StreamAsFileFP) asfile; FUNCTION_POINTER(NPP_WriteReadyFP) writeready; FUNCTION_POINTER(NPP_WriteFP) write; FUNCTION_POINTER(NPP_PrintFP) print; FUNCTION_POINTER(NPP_HandleEventFP) event; FUNCTION_POINTER(NPP_URLNotifyFP) urlnotify; JRIGlobalRef javaClass; FUNCTION_POINTER(NPP_GetValueFP) getvalue; FUNCTION_POINTER(NPP_SetValueFP) setvalue; } ; // forward declarations struct NPObject; struct NPClass; struct NPVariant; struct NPString; struct QtNPInstance; // NPObject is the type used to express objects exposed by either // the plugin or by the browser. Implementation specific (i.e. plugin // specific, or browser specific) members can come after the struct. // In our case, the plugin specific member (aka QObject) lives in NPClass. struct NPObject { NPClass *_class; uint32 refCount; }; // NPClass is what virtual function tables would look like if // there was no C++... typedef NPObject *(*NPAllocateFP)(NPP npp, NPClass *aClass); typedef void (*NPDeallocateFP)(NPObject *npobj); typedef void (*NPInvalidateFP)(NPObject *npobj); typedef bool (*NPHasMethodFP)(NPObject *npobj, NPIdentifier name); typedef bool (*NPInvokeFP)(NPObject *npobj, NPIdentifier name,const NPVariant *args, uint32 argCount,NPVariant *result); typedef bool (*NPInvokeDefaultFP)(NPObject *npobj,const NPVariant *args,uint32 argCount,NPVariant *result); typedef bool (*NPHasPropertyFP)(NPObject *npobj, NPIdentifier name); typedef bool (*NPGetPropertyFP)(NPObject *npobj, NPIdentifier name, NPVariant *result); typedef bool (*NPSetPropertyFP)(NPObject *npobj, NPIdentifier name, const NPVariant *value); typedef bool (*NPRemovePropertyFP)(NPObject *npobj, NPIdentifier name); #define NP_CLASS_STRUCT_VERSION 1 struct NPClass { NPClass(QtNPInstance *qtnp); ~NPClass(); // NP API uint32 structVersion; NPAllocateFP allocate; NPDeallocateFP deallocate; NPInvalidateFP invalidate; NPHasMethodFP hasMethod; NPInvokeFP invoke; NPInvokeDefaultFP invokeDefault; NPHasPropertyFP hasProperty; NPGetPropertyFP getProperty; NPSetPropertyFP setProperty; NPRemovePropertyFP removeProperty; // User data lives here QtNPInstance *qtnp; bool delete_qtnp; }; struct NPString { const char *utf8characters; uint32 utf8length; // Qt specific conversion routines // (no c'tor as it would be misleading that there is no d'tor in spite of memory allocation) static NPString fromQString(const QString &qstr); operator QString() const; }; struct NPVariant { enum Type { Void, Null, Boolean, Int32, Double, String, Object }; Type type; union { bool boolValue; uint32 intValue; double doubleValue; NPString stringValue; NPObject *objectValue; } value; NPVariant() : type(Null) {} // Qt specific conversion routines // (no c'tor as the NPP instance is required) static NPVariant fromQVariant(QtNPInstance *This, const QVariant &qvariant); operator QVariant() const; private: }; #ifdef Q_WS_X11 extern "C" { #endif // Browser function prototypes typedef NPError (*NPN_GetURLFP)(NPP instance, const char* url, const char* window); typedef NPError (*NPN_PostURLFP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file); typedef NPError (*NPN_RequestReadFP)(NPStream* stream, NPByteRange* rangeList); typedef NPError (*NPN_NewStreamFP)(NPP instance, NPMIMEType type, const char* window, NPStream** stream); typedef int32 (*NPN_WriteFP)(NPP instance, NPStream* stream, int32 len, void* buffer); typedef NPError (*NPN_DestroyStreamFP)(NPP instance, NPStream* stream, NPReason reason); typedef void (*NPN_StatusFP)(NPP instance, const char* message); typedef const char* (*NPN_UserAgentFP)(NPP instance); typedef void* (*NPN_MemAllocFP)(uint32 size); typedef void (*NPN_MemFreeFP)(void* ptr); typedef uint32 (*NPN_MemFlushFP)(uint32 size); typedef void (*NPN_ReloadPluginsFP)(NPBool reloadPages); typedef JRIEnv* (*NPN_GetJavaEnvFP)(void); typedef jref (*NPN_GetJavaPeerFP)(NPP instance); typedef NPError (*NPN_GetURLNotifyFP)(NPP instance, const char* url, const char* window, void* notifyData); typedef NPError (*NPN_PostURLNotifyFP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData); typedef NPError (*NPN_GetValueFP)(NPP instance, NPNVariable variable, void *ret_value); typedef NPError (*NPN_SetValueFP)(NPP instance, NPPVariable variable, void *ret_value); typedef void (*NPN_InvalidateRectFP)(NPP instance, NPRect *rect); typedef void (*NPN_InvalidateRegionFP)(NPP instance, NPRegion *region); typedef void (*NPN_ForceRedrawFP)(NPP instance); typedef NPIdentifier (*NPN_GetStringIdentifierFP)(const char* name); typedef void (*NPN_GetStringIdentifiersFP)(const char** names, int32 nameCount, NPIdentifier* identifiers); typedef NPIdentifier (*NPN_GetIntIdentifierFP)(int32 intid); typedef bool (*NPN_IdentifierIsStringFP)(NPIdentifier identifier); typedef char* (*NPN_UTF8FromIdentifierFP)(NPIdentifier identifier); typedef int32 (*NPN_IntFromIdentifierFP)(NPIdentifier identifier); typedef NPObject* (*NPN_CreateObjectFP)(NPP npp, NPClass *aClass); typedef NPObject* (*NPN_RetainObjectFP)(NPObject *obj); typedef void (*NPN_ReleaseObjectFP)(NPObject *obj); typedef bool (*NPN_InvokeFP)(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result); typedef bool (*NPN_InvokeDefaultFP)(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result); typedef bool (*NPN_EvaluateFP)(NPP npp, NPObject *obj, NPString *script, NPVariant *result); typedef bool (*NPN_GetPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result); typedef bool (*NPN_SetPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value); typedef bool (*NPN_RemovePropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName); typedef bool (*NPN_HasPropertyFP)(NPP npp, NPObject *obj, NPIdentifier propertyName); typedef bool (*NPN_HasMethodFP)(NPP npp, NPObject *obj, NPIdentifier methodName); typedef void (*NPN_ReleaseVariantValueFP)(NPVariant *variant); typedef void (*NPN_SetExceptionFP)(NPObject *obj, const char *message); // function declarations NPError NPN_GetURL(NPP instance, const char* url, const char* window); NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file); NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList); NPError NPN_NewStream(NPP instance, NPMIMEType type, const char* window, NPStream** stream); int32 NPN_Write(NPP instance, NPStream* stream, int32 len, void* buffer); NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPReason reason); void NPN_Status(NPP instance, const char* message); const char* NPN_UserAgent(NPP instance); void* NPN_MemAlloc(uint32 size); void NPN_MemFree(void* ptr); uint32 NPN_MemFlush(uint32 size); void NPN_ReloadPlugins(NPBool reloadPages); JRIEnv* NPN_GetJavaEnv(void); jref NPN_GetJavaPeer(NPP instance); NPError NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData); NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData); NPError NPN_GetValue(NPP instance, NPNVariable variable, void *ret_value); NPError NPN_SetValue(NPP instance, NPPVariable variable, void *ret_value); void NPN_InvalidateRect(NPP instance, NPRect *rect); void NPN_InvalidateRegion(NPP instance, NPRegion *region); void NPN_ForceRedraw(NPP instance); NPIdentifier NPN_GetStringIdentifier(const char* name); void NPN_GetStringIdentifiers(const char** names, int32 nameCount, NPIdentifier* identifiers); NPIdentifier NPN_GetIntIdentifier(int32 intid); bool NPN_IdentifierIsString(NPIdentifier identifier); char* NPN_UTF8FromIdentifier(NPIdentifier identifier); int32 NPN_IntFromIdentifier(NPIdentifier identifier); NPObject* NPN_CreateObject(NPP npp, NPClass *aClass); NPObject* NPN_RetainObject(NPObject *obj); void NPN_ReleaseObject(NPObject *obj); bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, int32 argCount, NPVariant *result); bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args, int32 argCount, NPVariant *result); bool NPN_Evaluate(NPP npp, NPObject *obj, NPString *script, NPVariant *result); bool NPN_GetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result); bool NPN_SetProperty(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value); bool NPN_RemoveProperty(NPP npp, NPObject *obj, NPIdentifier propertyName); bool NPN_HasProperty(NPP npp, NPObject *obj, NPIdentifier propertyName); bool NPN_HasMethod(NPP npp, NPObject *obj, NPIdentifier methodName); void NPN_ReleaseVariantValue(NPVariant *variant); void NPN_SetException(NPObject *obj, const char *message); // table of function implemented by the browser struct NPNetscapeFuncs { uint16 size; uint16 version; FUNCTION_POINTER(NPN_GetURLFP) geturl; FUNCTION_POINTER(NPN_PostURLFP) posturl; FUNCTION_POINTER(NPN_RequestReadFP) requestread; FUNCTION_POINTER(NPN_NewStreamFP) newstream; FUNCTION_POINTER(NPN_WriteFP) write; FUNCTION_POINTER(NPN_DestroyStreamFP) destroystream; FUNCTION_POINTER(NPN_StatusFP) status; FUNCTION_POINTER(NPN_UserAgentFP) uagent; FUNCTION_POINTER(NPN_MemAllocFP) memalloc; FUNCTION_POINTER(NPN_MemFreeFP) memfree; FUNCTION_POINTER(NPN_MemFlushFP) memflush; FUNCTION_POINTER(NPN_ReloadPluginsFP) reloadplugins; FUNCTION_POINTER(NPN_GetJavaEnvFP) getJavaEnv; FUNCTION_POINTER(NPN_GetJavaPeerFP) getJavaPeer; FUNCTION_POINTER(NPN_GetURLNotifyFP) geturlnotify; FUNCTION_POINTER(NPN_PostURLNotifyFP) posturlnotify; FUNCTION_POINTER(NPN_GetValueFP) getvalue; FUNCTION_POINTER(NPN_SetValueFP) setvalue; FUNCTION_POINTER(NPN_InvalidateRectFP) invalidaterect; FUNCTION_POINTER(NPN_InvalidateRegionFP) invalidateregion; FUNCTION_POINTER(NPN_ForceRedrawFP) forceredraw; FUNCTION_POINTER(NPN_GetStringIdentifierFP) getstringidentifier; FUNCTION_POINTER(NPN_GetStringIdentifiersFP) getstringidentifiers; FUNCTION_POINTER(NPN_GetIntIdentifierFP) getintidentifier; FUNCTION_POINTER(NPN_IdentifierIsStringFP) identifierisstring; FUNCTION_POINTER(NPN_UTF8FromIdentifierFP) utf8fromidentifier; FUNCTION_POINTER(NPN_IntFromIdentifierFP) intfromidentifier; FUNCTION_POINTER(NPN_CreateObjectFP) createobject; FUNCTION_POINTER(NPN_RetainObjectFP) retainobject; FUNCTION_POINTER(NPN_ReleaseObjectFP) releaseobject; FUNCTION_POINTER(NPN_InvokeFP) invoke; FUNCTION_POINTER(NPN_InvokeDefaultFP) invokedefault; FUNCTION_POINTER(NPN_EvaluateFP) evaluate; FUNCTION_POINTER(NPN_GetPropertyFP) getproperty; FUNCTION_POINTER(NPN_SetPropertyFP) setproperty; FUNCTION_POINTER(NPN_RemovePropertyFP) removeproperty; FUNCTION_POINTER(NPN_HasPropertyFP) hasproperty; FUNCTION_POINTER(NPN_HasMethodFP) hasmethod; FUNCTION_POINTER(NPN_ReleaseVariantValueFP) releasevariantvalue; FUNCTION_POINTER(NPN_SetExceptionFP) setexception; }; #ifdef Q_WS_X11 } #endif #endif x2goclient-4.0.5.1/x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc0000644000000000000000000000205112675050177021062 0ustar 1 TYPELIB "x2goplugin.rc" 1 VERSIONINFO FILEVERSION 4.0.5.1 PRODUCTVERSION 4.0.5.1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "Obviously Nice\0" 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", "4, 0, 4 ,1\0" VALUE "InternalName", "x2goplugin\0" VALUE "LegalCopyright", "Copyright 2010-2016 X2Go Project\0" VALUE "MIMEType", "application/x2go\0" VALUE "OriginalFilename", "npx2goplugin.dll\0" VALUE "ProductName", "X2GoClient Plug-in 4.0.5.1\0" VALUE "ProductVersion", "4, 0, 4, 1\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END x2goclient-4.0.5.1/x2goclientconfig.pri0000644000000000000000000000006612675050177014617 0ustar # Override settings specified in x2goclient.pro here. x2goclient-4.0.5.1/x2goclient.pro0000644000000000000000000001721012675050177013436 0ustar # This file was created by KDevelop. # ------------------------------------------- # Override settings in this file. include (x2goclientconfig.pri) CONFIG += $$(X2GO_CLIENT_TARGET) CONFIG += $$(X2GO_LINUX_STATIC) #CONFIG += console VERSION = "$$cat($${PWD}/VERSION)" FORMS += src/ui/cupsprintsettingsdialog.ui \ src/ui/cupsprintwidget.ui \ src/ui/printdialog.ui \ src/ui/printercmddialog.ui \ src/ui/printwidget.ui \ src/ui/xsettingsui.ui \ src/ui/brokerpassdialog.ui \ src/ui/contest.ui \ src/ui/appdialog.ui \ src/ui/helpdialog.ui \ src/ui/folderexplorer.ui TRANSLATIONS += res/i18n/x2goclient_de.ts \ res/i18n/x2goclient_da.ts \ res/i18n/x2goclient_es.ts \ res/i18n/x2goclient_et.ts \ res/i18n/x2goclient_fi.ts \ res/i18n/x2goclient_fr.ts \ res/i18n/x2goclient_nb_no.ts \ res/i18n/x2goclient_nl.ts \ res/i18n/x2goclient_pt.ts \ res/i18n/x2goclient_ru.ts \ res/i18n/x2goclient_sv.ts \ res/i18n/x2goclient_tr.ts \ res/i18n/x2goclient_zh_tw.ts HEADERS += src/configdialog.h \ src/editconnectiondialog.h \ src/exportdialog.h \ src/imgframe.h \ src/LDAPSession.h \ src/onmainwindow.h \ src/sessionbutton.h \ src/sessionmanagedialog.h \ src/sshmasterconnection.h \ src/sshprocess.h \ src/SVGFrame.h \ src/userbutton.h \ src/x2goclientconfig.h \ src/x2gologdebug.h \ src/printprocess.h \ src/cupsprint.h \ src/cupsprintwidget.h \ src/cupsprintersettingsdialog.h \ src/printwidget.h \ src/printercmddialog.h \ src/printdialog.h \ src/wapi.h \ src/sessionwidget.h \ src/configwidget.h \ src/connectionwidget.h \ src/settingswidget.h \ src/mediawidget.h \ src/sharewidget.h \ src/clicklineedit.h \ src/httpbrokerclient.h \ src/ongetpass.h \ src/onmainwindow_privat.h \ src/x2gosettings.h \ src/brokerpassdlg.h \ src/contest.h \ src/xsettingswidget.h \ src/appdialog.h \ src/x2goutils.h \ src/helpdialog.h \ src/sessionexplorer.h \ src/folderbutton.h \ src/folderexplorer.h \ src/non_modal_messagebox.h \ src/help.h SOURCES += src/sharewidget.cpp \ src/settingswidget.cpp \ src/mediawidget.cpp \ src/configwidget.cpp \ src/sessionwidget.cpp \ src/connectionwidget.cpp \ src/configdialog.cpp \ src/editconnectiondialog.cpp \ src/exportdialog.cpp \ src/imgframe.cpp \ src/LDAPSession.cpp \ src/onmainwindow.cpp \ src/sessionbutton.cpp \ src/sessionmanagedialog.cpp \ src/sshmasterconnection.cpp \ src/sshprocess.cpp \ src/SVGFrame.cpp \ src/userbutton.cpp \ src/x2gologdebug.cpp \ src/printprocess.cpp \ src/cupsprint.cpp \ src/cupsprintwidget.cpp \ src/cupsprintersettingsdialog.cpp \ src/printwidget.cpp \ src/printercmddialog.cpp \ src/printdialog.cpp \ src/wapi.cpp \ src/clicklineedit.cpp \ src/httpbrokerclient.cpp \ src/ongetpass.cpp \ src/x2gosettings.cpp \ src/brokerpassdlg.cpp \ src/contest.cpp \ src/xsettingswidget.cpp \ src/appdialog.cpp \ src/x2goutils.cpp \ src/helpdialog.cpp \ src/sessionexplorer.cpp \ src/folderbutton.cpp \ src/folderexplorer.cpp \ src/non_modal_messagebox.cpp \ src/help.cpp LIBS += -lssh win32:LIBS += -lAdvAPI32 -lshell32 -lUser32 plugin { TARGET = x2goplugin } else { RC_FILE = res/x2goclient.rc SOURCES += src/x2goclient.cpp TARGET = x2goclient DEFINES += CFGCLIENT message("if you want to build x2goplugin you should export X2GO_CLIENT_TARGET=plugin") } !isEmpty(TRANSLATIONS) { isEmpty(QMAKE_LRELEASE) { # Some Qt versions (looking at you, EPEL 6) are broken # and do not provide the qtPrepareTool test function. # This section is only for working around bugs... !defined(qtPrepareTool) { win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease } else { qtPrepareTool(QMAKE_LRELEASE, lrelease) } } isEmpty(TS_DIR):TS_DIR = . TSQM.name = lrelease ${QMAKE_FILE_IN} TSQM.input = TRANSLATIONS TSQM.output = $$TS_DIR/${QMAKE_FILE_BASE}.qm TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} TSQM.CONFIG = no_link QMAKE_EXTRA_COMPILERS += TSQM PRE_TARGETDEPS += compiler_TSQM_make_all } else:message("No translation files in project") TEMPLATE = app DEPENDPATH += . INCLUDEPATH += src RESOURCES += res/resources.rcc exists(res/txt/git-info) { message("Configuring with --git-info") RESOURCES += res/git.rcc } exists(res/txt/changelog) { message("Configuring with --changelog") RESOURCES += res/changelog.rcc } linux-g++ { message("building $$TARGET with ldap and cups") LIBS += -lldap -lcups -lX11 -lXpm DEFINES += __linux__ } linux-g++-64 { message("building $$TARGET with ldap and cups") LIBS += -lldap -lcups -lX11 -lXpm DEFINES += __linux__ } x2go_linux_static { message("linking all libs statically") DEFINES += __linux__ LIBS -= -lssh LIBS += -lssh_static -lssl -lXpm QMAKE_LFLAGS = -Bstatic $$QMAKE_LFLAGS } ICON = $${PWD}/res/img/icons/x2go-mac.icns macx { message("building $$TARGET with ldap and cups") LIBS += -framework LDAP -lcups -lcrypto -lssl -lz !isEmpty(OSX_STDLIB) { QMAKE_CXXFLAGS += -stdlib=$${OSX_STDLIB} } !isEmpty(MACPORTS_INCLUDE_PATH) { INCLUDEPATH += $${MACPORTS_INCLUDE_PATH} } !isEmpty(MACPORTS_LIBRARY_PATH) { LIBS = -L$${MACPORTS_LIBRARY_PATH} $${LIBS} } # Strictly speaking, this is a bug in qmake and we should neither need $${PWD} # nor QMAKE_INFO_PLIST_OUT nor PRE_TARGETDEPS nor QMAKE_POST_LINK. # Not defining the latter two will however lead to it being empty and no # Info.plist file being created in the first place. # The last command takes care of actually putting the icon in place - yet # another bug in qmake. Bummer. # Qt 4.8 is currently missing patches for substituting FULL_VERSION. Work # around by using the postbuild.sh script. QMAKE_INFO_PLIST = $${PWD}/res/osxbundle/Info.plist QMAKE_INFO_PLIST_OUT = $${TARGET}.app/Contents/Info.plist PRE_TARGETDEPS += $${TARGET}.app/Contents/Info.plist QMAKE_POST_LINK += $${PWD}/res/osxbundle/postbuild.sh \"$${TARGET}\" \"$${VERSION}\" \"$${QMAKE_INFO_PLIST_OUT}\" \"$${QMAKE_COPY}\" \"$${ICON}\" \"$${OUT_PWD}/$${TARGET}.app/Contents/Resources/\" } win32-* { message("building $$TARGET for windows without ldap and cups") LIBS += -lwinspool -lws2_32 CONFIG += static release } QT += svg network QMAKE_CXXFLAGS_DEBUG -= -g QMAKE_CXXFLAGS_DEBUG += -O2 -g3 -ggdb3 -gdwarf-4 plugin { DEFINES += CFGPLUGIN linux-g++ { include(x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri) } linux-g++-64 { include(x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri) } win32-* { DEFINES += QT_NODLL CONFIG += qaxserver include(x2gobrowserplugin-2.4_1/src/qtbrowserplugin.pri) } RC_FILE = x2gobrowserplugin-2.4_1/src/res/x2goplugin.rc } x2goclient-4.0.5.1/x2goclient.pro.maemo0000644000000000000000000000440112675050177014531 0ustar # This file was created by KDevelop. # ------------------------------------------- # FORMS += src/ui/cupsprintsettingsdialog.ui \ src/ui/cupsprintwidget.ui \ src/ui/printwidget.ui \ src/ui/printercmddialog.ui \ src/ui/printdialog.ui TRANSLATIONS += res/i18n/x2goclient_de.ts \ res/i18n/x2goclient_ru.ts HEADERS += src/configdialog.h \ src/editconnectiondialog.h \ src/exportdialog.h \ src/imgframe.h \ src/LDAPSession.h \ src/onmainwindow.h \ src/sessionbutton.h \ src/sessionmanagedialog.h \ src/sshprocess.h \ src/SVGFrame.h \ src/userbutton.h \ src/x2goclientconfig.h \ src/x2gologdebug.h \ src/printprocess.h \ src/printwidget.h \ src/printercmddialog.h \ src/printdialog.h \ src/embedwidget.h \ src/wapi.h \ src/sessionwidget.h \ src/configwidget.h \ src/connectionwidget.h \ src/settingswidget.h \ src/sharewidget.h \ src/clicklineedit.h \ src/help.h SOURCES += src/sharewidget.cpp \ src/settingswidget.cpp \ src/configwidget.cpp \ src/sessionwidget.cpp \ src/connectionwidget.cpp \ src/configdialog.cpp \ src/editconnectiondialog.cpp \ src/exportdialog.cpp \ src/imgframe.cpp \ src/LDAPSession.cpp \ src/ongetpass.cpp \ src/onmainwindow.cpp \ src/sessionbutton.cpp \ src/sessionmanagedialog.cpp \ src/sshprocess.cpp \ src/SVGFrame.cpp \ src/userbutton.cpp \ src/x2gologdebug.cpp \ src/printprocess.cpp \ src/printwidget.cpp \ src/printercmddialog.cpp \ src/printdialog.cpp \ src/embedwidget.cpp \ src/wapi.cpp \ src/clicklineedit.cpp \ src/help.cpp TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . RESOURCES += res/resources.rcc RC_FILE = res/x2goclient.rc QT += svg network ICON = $${PWD}/res/img/icons/x2go-mac.icns QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk CONFIG += x86 ppc x2goclient-4.0.5.1/x2gohelper/Makefile0000644000000000000000000000020012675050177014344 0ustar all: g++ -mwindows -o ../client_build/release/x2gohelper.exe x2gohelper.cpp clean: del ..\client_build\release\x2gohelper.exe x2goclient-4.0.5.1/x2gohelper/x2gohelper.cpp0000644000000000000000000000561212675050177015503 0ustar /************************************************************************** * Copyright (C) 2005-2016 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 . * ***************************************************************************/ #include #include void killProcess(DWORD pid) { HANDLE handle=OpenProcess(PROCESS_TERMINATE,0,pid); if(!handle) { return; } if(!TerminateProcess(handle,0)) { return; } CloseHandle(handle); } void enumerateFromParent(DWORD pid) { HANDLE hndl=CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); if(hndl==INVALID_HANDLE_VALUE) { //Failed to get system snapshot return; } PROCESSENTRY32 pentry; pentry.dwSize = sizeof( PROCESSENTRY32 ); if( Process32First(hndl,&pentry)) { while(Process32Next(hndl,&pentry)) { if(pid==pentry.th32ParentProcessID) { if(pentry.th32ProcessID == GetCurrentProcessId()) { //skip own process continue; } enumerateFromParent(pentry.th32ProcessID); killProcess(pentry.th32ProcessID); } } } CloseHandle(hndl); } int main(int argc, char* argv[]) { if(argc!=2) { //wrong number of arguments return -1; } DWORD pid=atoi(argv[1]); if(!pid) { //error converting argument to int; return -1; } HANDLE handle=OpenProcess(SYNCHRONIZE,0,pid); if(!handle) { //error open process return -1; } //Process empty message to stop AppStarting cursor MSG message; PostMessage(NULL, WM_NULL, 0, 0); GetMessage(&message, NULL, 0, 0); //waiting for process to finish if(WaitForSingleObject(handle,INFINITE)!=WAIT_FAILED) { enumerateFromParent(pid); } CloseHandle(handle); return 0; }