summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohann Latocha2010-07-07 00:38:57 +0200
committerJohann Latocha2010-07-07 00:38:57 +0200
commitb8931920233f245060be5b837cb3f7dc08a7c02e (patch)
treeeb45228933f717bbc31b8be6b593ec062c090839
parentinitial import of latest svn version (diff)
downloadpvs-b8931920233f245060be5b837cb3f7dc08a7c02e.tar.gz
pvs-b8931920233f245060be5b837cb3f7dc08a7c02e.tar.xz
pvs-b8931920233f245060be5b837cb3f7dc08a7c02e.zip
jjls first git commit ever! (svn changes since r793)
-rw-r--r--.gitignore4
-rw-r--r--CMakeLists.txt9
-rw-r--r--doc/LaTeX/devel/0300-pvs.tex81
-rw-r--r--doc/LaTeX/devel/0400-pvs-console.tex2
-rw-r--r--doc/LaTeX/devel/0500-pvs-client.tex30
-rw-r--r--i18n/pvsgui_es_MX.ts182
-rw-r--r--i18n/pvsmgr_es_MX.ts310
-rw-r--r--src/pvsDaemon.cpp21
-rw-r--r--src/version.h4
9 files changed, 339 insertions, 304 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d9453b2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.cproject
+.project
+build/
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00de7a5..2153497 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -324,19 +324,20 @@ SET_PROPERTY(TARGET pvsmgr PROPERTY COMPILE_DEFINITIONS MAINWINDOW_USE_NORMALGUI
# add install target to our makefile
CONFIGURE_FILE( org.openslx.pvs.service ${CMAKE_BINARY_DIR}/org.openslx.pvs.service )
INSTALL( TARGETS pvsmgr pvs pvsgui pvsmgrtouch RUNTIME DESTINATION bin )
+INSTALL( PROGRAMS misc/pvs-vncsrv DESTINATION bin)
INSTALL( FILES ${CMAKE_BINARY_DIR}/org.openslx.pvs.service DESTINATION share/dbus-1/services )
# add package target to our makefile
SET( CPACK_GENERATOR "DEB" )
SET( CPACK_SET_DESTDIR "ON" )
SET( CPACK_PACKAGE_NAME "pvs" )
-SET( CPACK_PACKAGE_VERSION_MAJOR "1" )
-SET( CPACK_PACKAGE_VERSION_MINOR "7" )
-SET( CPACK_PACKAGE_VERSION_PATCH "9" )
+SET( CPACK_PACKAGE_VERSION_MAJOR "2" )
+SET( CPACK_PACKAGE_VERSION_MINOR "0" )
+SET( CPACK_PACKAGE_VERSION_PATCH "1" )
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Pool Video Switch" )
SET( CPACK_PACKAGE_DESCRIPTION "")
SET( CPACK_PACKAGE_CONTACT "Simon Wittenberg <wittenb@informatik.uni-freiburg.de>" )
-SET( CPACK_DEBIAN_PACKAGE_DEPENDS "libvncserver0 (>= 0.9.3.dfsg.1-2), libqtgui4 (>= 4:4.5.3-4), libqt4-dbus (>= 4:4.5.3-4), libqt4-network (4:4.5.3-4)" )
+SET( CPACK_DEBIAN_PACKAGE_DEPENDS "libvncserver0 (>= 0.9.3.dfsg.1-2), libqtgui4 (>= 4:4.5.3-4), libqt4-dbus (>= 4:4.5.3-4), libqt4-network (>= 4:4.5.3-4)" )
SET( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386" )
SET( CPACK_DEBIAN_PACKAGE_SECTION "Network" )
SET( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" )
diff --git a/doc/LaTeX/devel/0300-pvs.tex b/doc/LaTeX/devel/0300-pvs.tex
index 329e03a..92b36f7 100644
--- a/doc/LaTeX/devel/0300-pvs.tex
+++ b/doc/LaTeX/devel/0300-pvs.tex
@@ -9,7 +9,7 @@ Generelles Konzept
\subsection{Zuordnung von Konsole und Clients}
\input{devel/0310-service-discovery}
-\subsection{Überblick über Aktivitäten auf Clients}
+\section{Überblick über Aktivitäten auf Clients}
\subsection{Projektion an Alle}
\index{Projektion}
@@ -52,7 +52,7 @@ als gelesen markiert durch das Drucken auf dem Knopf \textit{'OK'}.
\textbf{Behandlung der Nachrichten im Server}
\\
\\
-Chat-Nachtichten werden von Server in der Klasse 'PVSConnectionManager' mittels der Methode 'onChat' behandelt. Dort wird aus der Nachrit den Empfänger
+Chat-Nachtichten werden von Server in der Klasse \texttt{PVSConnectionManager} mittels der Methode \texttt{onChat} behandelt. Dort wird aus der Nachrit den Empfänger
und den Absender ausglesen und die Nachricht an beide versendet. So gilt das Empfangen eine eigene Nachricht als Bestätigung, dass die Nachricht ordentlich vom Server
behandelt und versendet wurde. Das Gestalt von solchen Nachrichten sieht folgendermaßen aus
@@ -60,45 +60,47 @@ behandelt und versendet wurde. Das Gestalt von solchen Nachrichten sieht folgend
PVSMSG
\end{center}
\begin{center}
-\begin{tabular}{l | l | p{4cm} | p{4cm}}
+\begin{tabular}{|l | p{3cm} | p{3cm} | p{3cm}|}
\hline
Type & Ident & Msg & sndID\\
\hline
-PVSMESSAGE & <Username des Empfängers> & <Username des Absenders>:<Die eigentliche nachrich> & <Vom server zugewissene ID des Absenders>\\
+\texttt{PVSMESSAGE} & \texttt{<Username des Empfängers>} & \texttt{<<Username des Absenders>:<Die eigentliche nachrich>} & \texttt{<<Vom server zugewissene ID des Absenders>}\\
\end{tabular}
\end{center}
-Informationsnachrichten werden ausschließlich vom PVSManager versendet.Dies geschiet in der Klasse 'ConnectionList' mittels der Methode 'on\_Message'.
+Informationsnachrichten werden ausschließlich vom PVSManager versendet.Dies geschiet in der Klasse \texttt{ConnectionList} mittels der Methode \texttt{on\_Message}.
\begin{center}
PVSMSG
\end{center}
\begin{center}
-\begin{tabular}{l | l | p{4cm} | p{4cm}}
+\begin{tabular}{|l | l | p{6cm} | p{6cm}}
\hline
Type & Ident & Msg\\
\hline
-PVSMESSAGE & BROADCAST & <Die eigentliche nachrich> \\
+\texttt{PVSMESSAGE} & \texttt{BROADCAST} & \texttt{<Die eigentliche nachrich>} \\
\end{tabular}
\end{center}
-Informationnachrichten können außerdem einen oder mehrere Clients sperren, wenn sie den Ident 'LOCKSTATION' enthalten. Sobald ein Client die Nachricht empfängt,
+Informationnachrichten können außerdem einen oder mehrere Clients sperren, wenn sie den Ident \texttt{LOCKSTATION} enthalten. Sobald ein Client die Nachricht empfängt,
wird diese auf dem Bilschirm angezeigt und 10 Sekunden später wird der Client gesperrt.
Abgesehen von der Behandlung der Nachrichten muss sich der Server darum kümmern, dass jeder verbunde Client über alle nötige Informationionen verfügt damit er
Nachrichten mit andren Clients austauschen kann. Dies wird folgendermaßen erledigt:
\begin{itemize}
- \item \textbf{Einfügen eines Clients:} um die Verwaltung von Clients kümmert sich die Klasse 'PVSConnectionManager', in der die Methode 'onClientNew' für das Einfügen
+ \item \textbf{Einfügen eines Clients:} um die Verwaltung von Clients kümmert sich die Klasse \texttt{PVSConnectionManager}, in der die Methode \texttt{onClientNew} für das Einfügen
von neuen Clients zuständigt ist. Sowald ein neuer Client in der Client-Liste des Servers eingefügt wird, wird an ihn die Liste aller im Server bereits angemeldete
-Clients geschickt. Dazu dient die Methode 'sendEventToClients'.
+Clients geschickt. Dazu dient die Methode \texttt{sendEventToClients}.
Bis hier ist der neue Client noch unbekannt für den Rest der Nutzer. Der neuer Client wird erst bekannt gegeben sobald er vom Server einen Benutzername
zugewissen bekommen hat. Da es sein kann, dass den Name, mit dem der neue Client sich beim Server anmelden wollte,
-bereits vergeben ist und muss unter Umständen verändert werden. Diese Zuweisung findet in der Methode 'onLoginUsername' statt,
-wo nicht nur alle andere Clients sondern auch der neue Client darüber informiert werden. Auch hier kümmert sich die Methoder 'sendEventToClients'
+bereits vergeben ist und muss unter Umständen verändert werden. Diese Zuweisung findet in der Methode \texttt{onLoginUsername} statt,
+wo nicht nur alle andere Clients sondern auch der neue Client darüber informiert werden. Auch hier kümmert sich die Methoder \texttt{sendEventToClients}
ums Vesenden der entsprechenden Informationen.
- \item \textbf{Entfernen eines Clients:} das Entfernen von Clients wird von der Methode 'onClientRemove' erledigt, wo analog wie
+ \item \textbf{Entfernen eines Clients:} das Entfernen von Clients wird von der Methode
+\\
+\texttt{onClientRemove} erledigt, wo analog wie
Oben alle Clients darüber informiert werden.
\end{itemize}
@@ -108,26 +110,26 @@ Für dei Übermittlung solche Informationen werden Nachrichten mit folgenden Ges
PVSMSG
\end{center}
\begin{center}
-\begin{tabular}{l | l | p{4cm} | p{4cm}}
+\begin{tabular}{|l | l | p{6cm} |}
\hline
Type & Ident & Msg\\
\hline
-PVSMESSAGE & <Befehl> & <Benutzername>:<IP-Adresse> \\
+\texttt{PVSMESSAGE} & \texttt{<Befehl>} & \texttt{<Benutzername>:<IP-Adresse>} \\
\end{tabular}
\end{center}
Es gibt drei unterschiedliche Befehle, die welche Änderung in der localen Client-Liste der Clients vorgenommen werden soll angeben.
\begin{enumerate}
- \item 'clientToAdd'
-\item 'clientToRemove'
-\item 'assignedName'
+ \item \texttt{clientToAdd}
+\item \texttt{clientToRemove}
+\item \texttt{assignedName}
\end{enumerate}
Wie es bei Servern gewöhnt ist, werden alle relevante Ereignisse in Log-Dateien protokolliert. Ereignisse werden im Chat-Log mit folgendem
Befehl eingetragen
\begin{center}
-'ConsoleLog writeChat(<Beschreibung des Ereignisses>)'
+\texttt{ConsoleLog writeChat(<Beschreibung des Ereignisses>)}
\end{center}
\textbf{Chat-Interface der Steuerkonsole}
@@ -135,28 +137,28 @@ Befehl eingetragen
\\
So wie alle Clients ist der PVSManager auch ein Teilnehmer im Chat. Der PVSManager steht wie alle andere Teilnehmer auch in der Nutzer-Liste
jedes Chat-Fenster und kann ebenfalls über private Nachrichten direkt angesprochen werden. Die Arbeitsweise dieser Chat-Interface ist sehr simple.
-Da sie sich im Server befindet, müssen einfach alle Ereignise (Nachrichten senden ist die einzige Ausnahme) von der Klasse 'PVSConnectionManager'
-an die Klasse 'MainWindow' weitergegeben werden. Dies kümmert sich darum, alle Informationen zu verarbeiten und diesein der Chat-Fenster der
+Da sie sich im Server befindet, müssen einfach alle Ereignise (Nachrichten senden ist die einzige Ausnahme) von der Klasse \texttt{PVSConnectionManager}
+an die Klasse \texttt{MainWindow} weitergegeben werden. Dies kümmert sich darum, alle Informationen zu verarbeiten und diesein der Chat-Fenster der
Steuerkonsole anzuzeigen.
-Folgende Methoden der Klasse 'MainWindow' ermöglichen das Anzeigen einer empfangenen Nachricht im Chat-Fenster der Steuerkonsole und Änderungen (Clients einfügen
+Folgende Methoden der Klasse \texttt{MainWindow} ermöglichen das Anzeigen einer empfangenen Nachricht im Chat-Fenster der Steuerkonsole und Änderungen (Clients einfügen
und entfernen) in der sowohl im Chat-Fenster als auch in der Steuerkonsole angezeigten Client-Liste.
\\
\\
-'receiveChatMsg(<Absender>, <Empfänger>, <Nachricht>)'
+\texttt{receiveChatMsg(<Absender>, <Empfänger>, <Nachricht>)}
\\
-'removeConnection(*pvsClient)'
+\texttt{removeConnection(*pvsClient)}
\\
-'addConnection(*pvsClient)'
+\texttt{addConnection(*pvsClient)}
\\
\\
-Alle diese Methoden werden im Gegensatz von der Methode 'sendChatMsg(PVSMsg myMsg)' von der Klasse 'PVSConnectionManager' aus ausgeführt. Da alle durchs
+Alle diese Methoden werden im Gegensatz von der Methode \texttt{sendChatMsg(PVSMsg myMsg)} von der Klasse \texttt{PVSConnectionManager} aus ausgeführt. Da alle durchs
Netz empfangene Nachrichten müssen an die GUI-Weitergegeben werden. Beim Versenden von Nachrichten funktioniert es genau umgekehrt. Die Nachricht wird
-vom Nutzer in der GUI eingegeben und muss an die Klasse 'PVSConnectionManager' weitergeleitet werden, damit diese ins Netz gesendet wird. Darum kümmert
-sich die Methode in der Klasse 'MainWindow'
+vom Nutzer in der GUI eingegeben und muss an die Klasse \texttt{PVSConnectionManager} weitergeleitet werden, damit diese ins Netz gesendet wird. Darum kümmert
+sich die Methode in der Klasse \texttt{MainWindow}.
\\
\\
-'MainWindow::sendChatMsg(PVSMsg myMsg)'
+\texttt{MainWindow::sendChatMsg(PVSMsg myMsg)}
\\
\\
\textbf{Chat-Clients}
@@ -166,11 +168,11 @@ So weit haben wir die Funtionsweisen des Servers im Bezug auf dem Chat kennengel
Nun wird erläutert wie die einzelnen Clients die Nachrichten bearbeiten.
\\
\\
-Auf der Client-Seite in der Klasse 'PVSConnectionServer' werden alle Nachrichten des PVS-Protokolls empfangen und gefiltert (Siehe Methode 'handleClientMsg').
-Nachrichten mit dem Ident 'PVSMESSAGE' werden durch den Dispatcher direkt an die Klasse 'PVSChatClient' weitergeleitet, wo die Methode 'receive' feststellen wird,
+Auf der Client-Seite in der Klasse \texttt{PVSConnectionServer} werden alle Nachrichten des PVS-Protokolls empfangen und gefiltert (Siehe Methode \texttt{handleClientMsg}).
+Nachrichten mit dem Ident \texttt{PVSMESSAGE} werden durch den Dispatcher direkt an die Klasse \texttt{PVSChatClient} weitergeleitet, wo die Methode \texttt{receive} feststellen wird,
ob es sich dabei um eine Gespräch-Nachricht oder eine Befehl-Nachricht handelt. Um es feststellen zu können, wird aus der empfangenen Nachricht ein PVSChatMsg-Objekt
-erzeugt (siehe Konstruktor 'PVSChatMsg::PVSChatMsg(PVSMsg pvsMsg)') und mittels der Methode 'isCommand' erfährt man ob es sich um einen Befehl handelt oder nicht.
-Falls ja leitet der Dispatche die Nachricht an die Stelle 'PVS::UpdateChatClients' sonst an die Stelle 'PVS::chat\_receive', wo die Änderungen in der Client-Liste
+erzeugt (siehe Konstruktor) und mittels der Methode \texttt{isCommand} erfährt man ob es sich um einen Befehl handelt oder nicht.
+Falls ja leitet der Dispatche die Nachricht an die Stelle \texttt{PVS::UpdateChatClients} sonst an die Stelle \texttt{PVS::chat\_receive}, wo die Änderungen in der Client-Liste
vorgenommen werden oder die Gespräch-Nachricht der GUI abgegeben wird.
@@ -182,16 +184,17 @@ vorgenommen werden oder die Gespräch-Nachricht der GUI abgegeben wird.
Im Zuge der Entwicklung des PVS wurde ein sehr einfaches Messagingprotokoll entwickelt.
Die Nachrichten bzw. Messages bestehen dabei aus Header, Nachrichtentyp, Ident und dem eigentlichen Nachrichtentext. Die einzelnen Nachrichtenteile, welche bis auf den Header selbst definiert werden können, werden verknüpft und versendet. Es sind schon Nachrichtentypen vordefiniert, welche sich nur durch unterschiedliche Dispatcher unterscheiden.
Bereits vorhandene Typen sind COMMAND, LOGIN, MESSAGE und UNKNOWN. Die Dispatcher (\_commandDispatcher, \_loginDispatcher und \_chatDispatcher) befinden sich im Client in der Klasse \texttt{ServerConnection}, in der Steuerkonsole in der Klasse \texttt{ClientConnection} bzw. \texttt{ListenServer}. Ein Ident wie z.B. Username, Befehl oder Beschreibung des Nachrichteninhalts dient zur Unterscheidung verschiedener Nachrichten mit demselben Nachrichtentyp, wobei die Nachricht dann den dem Ident entsprechenden Nachrichtentext enthält.
-Um eine Funktion zur Behandlung einer bestimmten Nachricht zu definieren, wird diese Funktion als Handler mit dem entsprechenden Dispatcher verknüpft. Im PVS-Client beispielsweise befindet sich der Dispatcher für Nachrichten vom Typ Command in der Klasse \texttt{pvsServerConnection}, daher wird in der Klasse \texttt{pvs} die Funktion \verb|void PVS::onCommand(PVSMsg cmdMessage)| wie folgt als Handler registriert: \verb|_pvsServerConnection->addCommandHandler("*", this, &PVS::onCommand)|. Erhält nun der Client eine Nachricht vom Typ COMMAND, so wird die Funktion onCommand mit dem entsprechenden Nachrichtenobjekt aufgerufen. Auf die eigentliche Nachricht kann dann über die Methoden \texttt{getIdent()} und \texttt{getMessage()} des Objektes zugegriffen werden.
+Um eine Funktion zur Behandlung einer bestimmten Nachricht zu definieren, wird diese Funktion als Handler mit dem entsprechenden Dispatcher verknüpft. Im PVS-Client beispielsweise befindet sich der Dispatcher für Nachrichten vom Typ Command in der Klasse \texttt{pvsServerConnection}, daher wird in der Klasse \texttt{pvs} die Funktion \texttt{void PVS::onCommand(PVSMsg cmdMessage)} wie folgt als Handler registriert:
+\texttt{\_pvsServerConnection->addCommandHandler("*", this, \&PVS::onCommand)}. Erhält nun der Client eine Nachricht vom Typ COMMAND, so wird die Funktion onCommand mit dem entsprechenden Nachrichtenobjekt aufgerufen. Auf die eigentliche Nachricht kann dann über die Methoden \texttt{getIdent()} und \texttt{getMessage()} des Objektes zugegriffen werden.
\subsection{PVS-Messages}
\index{Message!PVS} \index{Message}
-Im Folgenden sind die Messages, die zwischen den einzelnen PVS Komponenenten ausgetauscht werden, aufgelistet.
+In Tabelle \ref{tab:messagelist} sind die Messages, die zwischen den einzelnen PVS Komponenenten ausgetauscht werden, aufgelistet.
Der Nachrichtentyp gibt dabei an, welcher Dispatcher die Nachricht behandelt.
Der Ident einer Nachricht wird zur Verarbeitung einer empfangenen Nachricht in der aufzurufenden Funktion benötigt (Unterscheidung von anderen Nachrichten gleichen Typs).
+\begin{table}
\begin{center}
-\small
\begin{tabular}{l | l | p{2cm} | p{4cm}}
\label{pvs-msg-liste}
Nachrichtentyp & Nachrichten Ident & Inhalt & Beschreibung \\
@@ -204,7 +207,7 @@ PVSCOMMAND & UNLOCKSTATION & & \\
PVSLOGIN & USERNAME & username & Client Benutzername \\
PVSLOGIN & PASSWORD & password & Serverpasswort \\
PVSLOGIN & ID & id & \\
-PVSLOGIN & FAILED & "`Wrong Password"' & Wird bei falschem Passwort gesendet \\ "`
+PVSLOGIN & FAILED & "`Wrong Password"' & Wird bei falschem Passwort gesendet \\
PVSCOMMAND & PORT & port & \\
PVSCOMMAND & PASSWORD & password & VNC Passwort\\
PVSCOMMAND & RWPASSWORD & rwpassword & Passwort für den Zugriff auf die Tastatur und Maus \\
@@ -219,4 +222,6 @@ PVSMESSAGE & clientToRemove & & Client entfernen (Chat)\\
PVSMESSAGE & assignedName & & Festgelegter Name (Chat)\\
\end{tabular}
\end{center}
-
+\caption{Liste der PVS Messages}
+\label{tab:messagelist}
+\end{table}
diff --git a/doc/LaTeX/devel/0400-pvs-console.tex b/doc/LaTeX/devel/0400-pvs-console.tex
index 495f52a..d9b1ca0 100644
--- a/doc/LaTeX/devel/0400-pvs-console.tex
+++ b/doc/LaTeX/devel/0400-pvs-console.tex
@@ -176,6 +176,6 @@ Soll ein Client als Ziel zu einer existierenden Projektion hinzugefügt werden,
Zusätzlich zu den Verbindungsdaten werden Qualitätsoptionen zu der gesendeten Nachricht hinzugefügt. Die Qualitätsoption ist ein Integerwert 0,1 oder 2 wobei 0 der besten Qualität, 2 der schlechtesten Qualität entspricht. Dieser Wert wird an den Zielclient einer Projektion gesendet, welcher die Qualitätseinstellungen des VNC-Viewers entsprechend anpasst. Aktuell wird die Qualität immer auf 0 gesetzt, da noch die Einstellungsmöglichkeiten in der GUI fehlen.
\subsection{Remote Help}
-Remote Help funktioniert analog zur Projektion, jedoch ist hier zu gewährleisten, dass jeweils nur ein Quellclient und ein Zielclient ausgewählt werden, da es nicht sinnvoll ist, Tastatur und Maus eines Clients von mehreren anderen Clients aus zu steuern. Anstelle des Passworts wird das RW-Passwort des Clients verwendet. Die Möglichkeit, die Maus und die Tastatur eines Clients zu steuern, ist mit dem verwendeten VNC-Server schon gegeben, für die Steuerkonsole ändert sich hier nichts, lediglich der VNC Viewer muss die Tastatureingaben und die Mausbewegung an den VNC Server weitergeben (siehe hierzu auch \ref{}.
+Remote Help funktioniert analog zur Projektion, jedoch ist hier zu gewährleisten, dass jeweils nur ein Quellclient und ein Zielclient ausgewählt werden, da es nicht sinnvoll ist, Tastatur und Maus eines Clients von mehreren anderen Clients aus zu steuern. Anstelle des Passworts wird das RW-Passwort des Clients verwendet. Die Möglichkeit, die Maus und die Tastatur eines Clients zu steuern, ist mit dem verwendeten VNC-Server schon gegeben, für die Steuerkonsole ändert sich hier nichts, lediglich der VNC Viewer muss die Tastatureingaben und die Mausbewegung an den VNC Server weitergeben (siehe hierzu auch \ref{pvsclient-remotehelp} Tastatur und Maussteuerung).
diff --git a/doc/LaTeX/devel/0500-pvs-client.tex b/doc/LaTeX/devel/0500-pvs-client.tex
index 9c0b572..bbca766 100644
--- a/doc/LaTeX/devel/0500-pvs-client.tex
+++ b/doc/LaTeX/devel/0500-pvs-client.tex
@@ -113,21 +113,23 @@ Es gibt zwei Arten von VNC Servern. Server, die eine laufende Sitzung bzw. ein v
Motivation für den eigentlichen Vergleich ist die Integration mancher VNC Server in die Desktopumgebung. Hier müsste der x11vnc nicht extra installiert werden. Wichtig für den Einsatz im PVS ist vor allem die Unterstützung von Shared Modus, d.h. mehrere VNC Viewer können sich gleichzeitig mit dem VNC Server verbinden, und Forever Modus, d.h. der VNC Server wird nicht nach Trennung des letzten Clients beendet. Sicherheitsoptionen wie die Vergabe von Passwörtern und die Unterscheidung von RW und Viewonly Modus sind ebenso nicht zu vernachlässigen.
\paragraph{Vino}
+\begin{sloppypar}
~\\
Vino ist der VNC Server der Gnome Desktopumgebung.
Er wird standardmäßig über die graphische Oberfläche \textbf{vino-preferences} konfiguriert. Über die Kommandozeile ist Vino entweder über \textbf{gconftool-2} oder über direktes editieren der Datei \\
\textit{\~{}/.gconf/desktop/gnome/remote\_access/\%gconf.xml} konfigurierbar.
Parameter können nicht übergeben werden, was die Verwendbarkeit im PVS einschränkt.
-Vino benutzt standardmäßig den Port 5900, um auf eingehende Verbindungen zu warten. Dieser Port kann nur durch \\
-\small \texttt{gconftool-2 -s -t int /desktop/gnome/remote\_access/alternative\_port <portnumber>} bzw. das Einfügen von z.B. \\
-\small \verb|<entry name="alternative_port" mtime="1259858032" type="int" value="<portnumber>"/>|
-in die entsprechende \%gconf.xml Datei geändert werden. Hierbei ist zu beachten, dass nicht überprüft wird, ob der entsprechende Port schon belegt ist. Dementsprechend wird auch kein anderer freier Port gewählt. %TODO Formulierung.
+Vino benutzt standardmäßig den Port 5900, um auf eingehende Verbindungen zu warten. Dieser Port kann nur durch
+\texttt{gconftool-2 -s -t int \/desktop/gnome/remote\_access/alternative\_port <portnumber>} bzw. das Einfügen von z.B.
+\texttt{<entry name=``alternative\_port'' mtime=``1259858032'' type= ``int'' value=``<portnumber>''/>}
+in die entsprechende \%gconf.xml Datei geändert werden. Hierbei ist zu beachten, dass nicht überprüft wird, ob der entsprechende Port schon belegt ist. Dementsprechend wird auch kein anderer freier Port gewählt.
Außerdem wird eine Änderung des Ports erst nach dem Neustart der grafischen Oberfläche aktiv.
Vino unterstützt die Vergabe eines Passworts, welches base64 kodiert in der gconf Datei abgelegt wird. Ebenso kann man den Zugriff auf den Viewonly Modus beschränken. Unterschiedliche Passwörter für den RW Modus und den Viewonly Modus können jedoch nicht vergeben werden. Der Shared und Forever Modus sind standardmäßig aktiv.
+\end{sloppypar}
\paragraph{Krfb}
~\\
-Krfb ist das Pendant zu Vino der KDE Desktopumgebung und kann entweder über eine Konfigurationsdatei oder über die grafische Oberfläche konfiguriert werden. Es kann entweder das Einladungssystem verwendet werden, bei dem eine Einladung mit einem Einmalpasswort generiert wird, oder man erlaubt uneingeladene Verbindungen und vergibt ein eigenes Passwort. Um Krfb über eine Konfigurationsdatei mit einem selbstgewählten Passwort für uneingeladene Verbindungen zu konfigurieren, erstellt man die Datei wie in \ref{pvs-client-krfbconfig} angegeben und übergibt sie an krfb mit \texttt{krfb --config <Pfad> } bzw überschreibt oder bearbeitet die eigentliche Konfigurationsdatei in \textit{~/.kde/share/config/krfbrc}.
+Krfb ist das Pendant zu Vino der KDE Desktopumgebung und kann entweder über eine Konfigurationsdatei oder über die grafische Oberfläche konfiguriert werden. Es kann entweder das Einladungssystem verwendet werden, bei dem eine Einladung mit einem Einmalpasswort generiert wird, oder man erlaubt uneingeladene Verbindungen und vergibt ein eigenes Passwort. Um Krfb über eine Konfigurationsdatei mit einem selbstgewählten Passwort für uneingeladene Verbindungen zu konfigurieren, erstellt man die Datei wie im folgenden angegeben und übergibt sie an krfb mit \texttt{krfb --config <Pfad> } bzw überschreibt oder bearbeitet die eigentliche Konfigurationsdatei in \textit{~/.kde/share/config/krfbrc}.
%\label{pvs-client-krfbconfig}
\begin{verbatim}
[Security]
@@ -190,8 +192,11 @@ Um einen Mehrfachstart des VNC Servers zu verhindern, wird zunächst immer ein \
Der VNC Viewer ist, wie in der \ref{pvsclient-datenstrom} Darstellung von VNC-Datenströmen beschrieben, implementiert.
Die direkte Integration des Viewers im Gegensatz zum Einsatz eines externen VNC Servers bietet sich hier wegen der Integrationsmöglichkeiten in die GUI an (der VNC-Server ist GUI unabhängig). Jedoch muss der VNC-Viewer zur Unterstützung des RW-Modus des VNC-Servers noch verändert werden.
\subsection{Tastatur und Maussteuerung}
-Um die Maus- und Tastatureingaben an den VNC-Server weiterzuleiten, müssen zunächst die Eingaben in der Klasse \texttt{ClientVNCViewer} abgefangen und verarbeitet werden. Dies kann durch Überschreiben der geerbten Methode \texttt{event} erreicht werden \verb|bool ClientVNCViewer::event(QEvent *event)|. Hier kann durch \verb|event->type()| der Typ des Events herausgefunden werden.
+\label{pvsclient-remotehelp}
+\begin{sloppypar}
+Um die Maus- und Tastatureingaben an den VNC-Server weiterzuleiten, müssen zunächst die Eingaben in der Klasse \texttt{ClientVNCViewer} abgefangen und verarbeitet werden. Dies kann durch Überschreiben der geerbten Methode \texttt{event} erreicht werden \texttt{bool ClientVNCViewer::event(QEvent *event)}. Hier kann durch \texttt{event->type()} der Typ des Events herausgefunden werden.
Zu behandelnde Eventtypen sind:
+\end{sloppypar}
\begin{itemize}
\item QEvent:KeyPress - Eine Taste wurde gedrückt
@@ -215,17 +220,24 @@ Werte sind dabei:
\item 0xfd = mittlere Maustaste losgelassen
\item 0xfb = rechte Maustaste losgelassen
\end{itemize}
-\texttt{KeyEvents} bestehen aus einem hexadezimalen Wert, der die Taste repräsentiert, und True oder False je nachdem, ob die Taste gedrückt wurde oder nicht. Die hexadezimalen Werte entsprechen den Werten in einem X Window System und können in der Headerdatei \texttt{<X11/keysymdef.h>} nachgeschlagen werden (siehe hierzu auch \url{http://www.realvnc.com/docs/rfbproto.pdf} - RFB Protokollspezifikation, Abschnitt KeyEvent). Beim Leeren der Queue werden die Methoden der rfbclient Klasse der libvnc Bibliothek \verb|SendPointerEvent(cl, _x, _y, _buttonMask)| und \verb|SendKeyEvent(cl, _key, _pressed)| mit den entsprechenden Werten aufgerufen (cl entspricht dabei einem Pointer auf die eigentliche rfbClient Instanz).
+\begin{sloppypar}
+\texttt{KeyEvents} bestehen aus einem hexadezimalen Wert, der die Taste repräsentiert, und True oder False je nachdem, ob die Taste gedrückt wurde oder nicht. Die hexadezimalen Werte entsprechen den Werten in einem X Window System und können in der Headerdatei \texttt{<X11/keysymdef.h>} nachgeschlagen werden (siehe hierzu auch \url{http://www.realvnc.com/docs/rfbproto.pdf} - RFB Protokollspezifikation, Abschnitt KeyEvent). Beim Leeren der Queue werden die Methoden der rfbclient Klasse der libvnc Bibliothek \texttt{SendPointerEvent(cl, \_x, \_y, \_buttonMask)} und \texttt{SendKeyEvent(cl, \_key, \_pressed)} mit den entsprechenden Werten aufgerufen (cl entspricht dabei einem Pointer auf die eigentliche rfbClient Instanz).
+\end{sloppypar}
\section{Signalbehandlung}
+\begin{sloppypar}
Um zu gewährleisten, dass bei einer Terminierung des PVS-Clients auch der gegebenenfalls gestartete VNC-Server gestoppt wird, werden Sigterm, Sighup, Sigquit und Sigint Signale abgefangen und weiterbehandelt.
Um die Signale behandeln zu können, muss die C Bibliothek \texttt{signals.h} eingebunden werden und ein sigaction Objekt erstellt werden. Das Feld sa\_handler des sigaction Objektes gibt dabei die aufzurufende Funktion an (Pointer auf die Funktion). Diese Funktion (in der Klasse \texttt{pvs} die Funktion \texttt{signalHandler}) muss dabei vom Typ void sein und die Signalnummer als Parameter erwarten (\texttt{void PVS::signalHandler(int signal)}).
+\end{sloppypar}
+
\begin{verbatim}
struct sigaction act;
act.sa_handler = &PVS::signalHandler;
\end{verbatim}
-Um Signale abfangen zu können, muss nun noch das sigaction Objekt durch \verb|sigaction(SIGTERM, &act, 0)| mit den entsprechenden Signalen (hier SIGTERM) verknüpft werden (muss für alle zu behandelnde Signale durchgeführt werden).
+\begin{sloppypar}
+Um Signale abfangen zu können, muss nun noch das sigaction Objekt durch \texttt{sigaction(SIGTERM, \&act, 0)} mit den entsprechenden Signalen (hier SIGTERM) verknüpft werden (muss für alle zu behandelnde Signale durchgeführt werden).
Danach wird, sobald ein entsprechendes Signal erhalten wird, die Funktion aufgerufen und die Signalnummer übergeben.
-Für alle Signale kann die gleiche Funktion aufgerufen werden, hier kann die Unterscheidung dann mittels der in \texttt{signal.h} vorhandenen Konstanten SIGHUP, SIGTERM, SIGQUIT usw. erfolgen. Zu beachten ist hierbei, dass ein SIGKILL nicht abgefangen werden kann. \ No newline at end of file
+Für alle Signale kann die gleiche Funktion aufgerufen werden, hier kann die Unterscheidung dann mittels der in \texttt{signal.h} vorhandenen Konstanten SIGHUP, SIGTERM, SIGQUIT usw. erfolgen. Zu beachten ist hierbei, dass ein SIGKILL nicht abgefangen werden kann.
+\end{sloppypar} \ No newline at end of file
diff --git a/i18n/pvsgui_es_MX.ts b/i18n/pvsgui_es_MX.ts
index f3e6d65..32b6195 100644
--- a/i18n/pvsgui_es_MX.ts
+++ b/i18n/pvsgui_es_MX.ts
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="es_MX" sourcelanguage="en_US">
<context>
<name>AboutDialog</name>
<message>
<location filename="../src/gui/aboutDialog.cpp" line="27"/>
<source>Version: </source>
- <translation type="unfinished"></translation>
+ <translation>Version: </translation>
</message>
</context>
<context>
@@ -14,27 +14,27 @@
<message>
<location filename="../build/ui_aboutDialog.h" line="213"/>
<source>PVS - About</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Acerca de</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="215"/>
<source>&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;License: GNU General Public License Version 2&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;License: GNU General Public License Version 2&lt;/a&gt;</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="216"/>
<source>About</source>
- <translation type="unfinished"></translation>
+ <translation>Acerca de</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="218"/>
<source>Authors</source>
- <translation type="unfinished"></translation>
+ <translation>Autores</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="219"/>
<source>Translation</source>
- <translation type="unfinished"></translation>
+ <translation>Traducción</translation>
</message>
</context>
<context>
@@ -42,47 +42,47 @@
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="65"/>
<source>&amp;Send File...</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar archivo...</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="178"/>
<source> has joined the chat.</source>
- <translation type="unfinished"></translation>
+ <translation> ha ingresado al chat.</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="184"/>
<source> has left the chat.</source>
- <translation type="unfinished"></translation>
+ <translation> ha abandonado el chat</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="211"/>
<source>PVS File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS Transferencia de datos</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="212"/>
<source>Send file &apos;</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar archivo &apos;</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="212"/>
<source>&apos; to </source>
- <translation type="unfinished"></translation>
+ <translation>&apos; a </translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="231"/>
<source>Connected.</source>
- <translation type="unfinished"></translation>
+ <translation>Conectado.</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="241"/>
<source>Disconnected.</source>
- <translation type="unfinished"></translation>
+ <translation>Desconectado.</translation>
</message>
<message>
<location filename="../src/gui/clientChatDialog.cpp" line="280"/>
<source>Message from &lt;</source>
- <translation type="unfinished"></translation>
+ <translation>Mensaje de &lt;</translation>
</message>
</context>
<context>
@@ -90,12 +90,12 @@
<message>
<location filename="../build/ui_clientChatDialog.h" line="115"/>
<source>PVS - Chat </source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Chat</translation>
</message>
<message>
<location filename="../build/ui_clientChatDialog.h" line="116"/>
<source>&amp;Send</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enviar</translation>
</message>
</context>
<context>
@@ -103,85 +103,85 @@
<message>
<location filename="../build/ui_clientConfigDialog.h" line="200"/>
<source>PVS - Configuration</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Configuración</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="201"/>
<source>Allow vnc access to lecturer?</source>
- <translation type="unfinished"></translation>
+ <translation>Permitir al profesor el acceso VNC?</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="202"/>
<location filename="../build/ui_clientConfigDialog.h" line="206"/>
<source>Full access</source>
- <translation type="unfinished"></translation>
+ <translation>Acceso completo</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="203"/>
<location filename="../build/ui_clientConfigDialog.h" line="207"/>
<source>View only</source>
- <translation type="unfinished"></translation>
+ <translation>Solo ver</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="204"/>
<location filename="../build/ui_clientConfigDialog.h" line="208"/>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Ninguno</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="205"/>
<source>Allow vnc access to other?</source>
- <translation type="unfinished"></translation>
+ <translation>Permitir a otros el acceso VNC?</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="209"/>
<source>Accept chat messages</source>
- <translation type="unfinished"></translation>
+ <translation>Aceptar mensages de chat?</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="210"/>
<source>Accept file transfers</source>
- <translation type="unfinished"></translation>
+ <translation>Aceptar transferencias de datos?</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="211"/>
<source>Permissions</source>
- <translation type="unfinished"></translation>
+ <translation>Permisos</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="214"/>
<source>Top Left</source>
- <translation type="unfinished"></translation>
+ <translation>Esquina superior izquierda</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="215"/>
<source>Top Center</source>
- <translation type="unfinished"></translation>
+ <translation>Arriba centrado</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="216"/>
<source>Top Right</source>
- <translation type="unfinished"></translation>
+ <translation>Esquina superion derecha</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="217"/>
<source>Bottom Left</source>
- <translation type="unfinished"></translation>
+ <translation>Esquina inferior izquierda</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="218"/>
<source>Bottom Center</source>
- <translation type="unfinished"></translation>
+ <translation>Abajo centrado</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="219"/>
<source>Bottom Right</source>
- <translation type="unfinished"></translation>
+ <translation>Esquina inferior derecha</translation>
</message>
<message>
<location filename="../build/ui_clientConfigDialog.h" line="221"/>
<source>Display</source>
- <translation type="unfinished"></translation>
+ <translation>Pantalla</translation>
</message>
</context>
<context>
@@ -189,38 +189,38 @@
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="63"/>
<source>PVS File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS Transferencia de datos</translation>
</message>
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="63"/>
<source>User &apos;</source>
- <translation type="unfinished"></translation>
+ <translation>Usuario &apos;</translation>
</message>
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="64"/>
<source>&apos; would like to send you a file: </source>
- <translation type="unfinished"></translation>
+ <translation>&apos; desea enviarle un archivo: </translation>
</message>
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="75"/>
<source>Open File</source>
- <translation type="unfinished"></translation>
+ <translation>Abiri archivo</translation>
</message>
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="150"/>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="156"/>
<source>PVS - File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Transferencia de datos</translation>
</message>
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="151"/>
<source>File Transfer complete.</source>
- <translation type="unfinished"></translation>
+ <translation>La transferencia de datos ha sido completada.</translation>
</message>
<message>
<location filename="../src/gui/clientFileReceiveDialog.cpp" line="157"/>
<source>File Transfer canceled!</source>
- <translation type="unfinished"></translation>
+ <translation>La transferencia de datos ha sido cancelada!</translation>
</message>
</context>
<context>
@@ -228,33 +228,33 @@
<message>
<location filename="../build/ui_clientFileReceiveDialog.h" line="123"/>
<source>PVS - File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Transferencia de datos</translation>
</message>
<message>
<location filename="../build/ui_clientFileReceiveDialog.h" line="125"/>
<source>Receiving from:</source>
- <translation type="unfinished"></translation>
+ <translation>Recibiendo de:</translation>
</message>
<message>
<location filename="../build/ui_clientFileReceiveDialog.h" line="126"/>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>desconocido</translation>
</message>
<message>
<location filename="../build/ui_clientFileReceiveDialog.h" line="127"/>
<location filename="../build/ui_clientFileReceiveDialog.h" line="129"/>
<source>0</source>
- <translation type="unfinished"></translation>
+ <translation>0</translation>
</message>
<message>
<location filename="../build/ui_clientFileReceiveDialog.h" line="128"/>
<source>/</source>
- <translation type="unfinished"></translation>
+ <translation>/</translation>
</message>
<message>
<location filename="../build/ui_clientFileReceiveDialog.h" line="130"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Cancelar</translation>
</message>
</context>
<context>
@@ -262,23 +262,23 @@
<message>
<location filename="../src/gui/clientFileSendDialog.cpp" line="68"/>
<source>Open File</source>
- <translation type="unfinished"></translation>
+ <translation>Abrir archivo</translation>
</message>
<message>
<location filename="../src/gui/clientFileSendDialog.cpp" line="186"/>
<location filename="../src/gui/clientFileSendDialog.cpp" line="192"/>
<source>PVS - File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Transferencia de datos</translation>
</message>
<message>
<location filename="../src/gui/clientFileSendDialog.cpp" line="187"/>
<source>File Transfer complete.</source>
- <translation type="unfinished"></translation>
+ <translation>La transferencia de datos ha sido completada.</translation>
</message>
<message>
<location filename="../src/gui/clientFileSendDialog.cpp" line="193"/>
<source>File Transfer canceled!</source>
- <translation type="unfinished"></translation>
+ <translation>La transferencia de datos ha sido cancelada!</translation>
</message>
</context>
<context>
@@ -286,33 +286,33 @@
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="123"/>
<source>PVS - File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Transferencia de datos</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="125"/>
<source>Sending to:</source>
- <translation type="unfinished"></translation>
+ <translation>Enviando a:</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="126"/>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>desconocido</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="127"/>
<location filename="../build/ui_clientFileSendDialog.h" line="129"/>
<source>0</source>
- <translation type="unfinished"></translation>
+ <translation>0</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="128"/>
<source>/</source>
- <translation type="unfinished"></translation>
+ <translation>/</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="130"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Cancelar</translation>
</message>
</context>
<context>
@@ -320,12 +320,12 @@
<message>
<location filename="../build/ui_clientNicklistDialog.h" line="84"/>
<source>PVS - Users</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Usuarios</translation>
</message>
<message>
<location filename="../build/ui_clientNicklistDialog.h" line="85"/>
<source>Select user:</source>
- <translation type="unfinished"></translation>
+ <translation>Seleccionar usuario:</translation>
</message>
</context>
<context>
@@ -333,37 +333,37 @@
<message>
<location filename="../build/ui_clientToolbar.h" line="179"/>
<source>Form</source>
- <translation type="unfinished"></translation>
+ <translation>de</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="181"/>
<source>Menu</source>
- <translation type="unfinished"></translation>
+ <translation>Menu</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="183"/>
<source>Host:</source>
- <translation type="unfinished"></translation>
+ <translation>Host:</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="185"/>
<source>Click to connect</source>
- <translation type="unfinished"></translation>
+ <translation>Click para conectar</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="187"/>
<source>-</source>
- <translation type="unfinished"></translation>
+ <translation>-</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="189"/>
<source>Enable/Disable VNC only for this session</source>
- <translation type="unfinished"></translation>
+ <translation>Avilitar/Desavilitar VNC solamente para esta sesión</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="191"/>
<source>Allow VNC</source>
- <translation type="unfinished"></translation>
+ <translation>Permitir VNC</translation>
</message>
<message>
<location filename="../build/ui_clientToolbar.h" line="192"/>
@@ -372,7 +372,11 @@
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Pool Video Switch&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Pool Video Switch&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -380,7 +384,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../build/ui_clientInfoDialog.h" line="64"/>
<source>PVS - Information</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Información</translation>
</message>
<message>
<location filename="../build/ui_clientInfoDialog.h" line="65"/>
@@ -389,7 +393,11 @@ p, li { white-space: pre-wrap; }
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:72pt; font-weight:600; color:#0000ff;&quot;&gt;HOST&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:72pt; font-weight:600; color:#0000ff;&quot;&gt;HOST&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../build/ui_clientInfoDialog.h" line="70"/>
@@ -398,7 +406,11 @@ p, li { white-space: pre-wrap; }
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:48pt; font-weight:600; color:#ff0000;&quot;&gt;PASSWD&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Sans&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:48pt; font-weight:600; color:#ff0000;&quot;&gt;PASSWD&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -406,82 +418,82 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../src/pvsgui.cpp" line="28"/>
<source>Connect</source>
- <translation type="unfinished"></translation>
+ <translation>Conectar</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="189"/>
<source>&amp;Disconnect</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Desconectar</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="190"/>
<source>C&amp;hat</source>
- <translation type="unfinished"></translation>
+ <translation>???</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="191"/>
<source>&amp;Send File</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enviar archivo</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="192"/>
<source>&amp;Config</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Configuración</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="193"/>
<source>&amp;Information</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Información</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="194"/>
<source>&amp;About</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Acerca de</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="195"/>
<source>&amp;Quit</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Cerrar</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="282"/>
<location filename="../src/pvsgui.cpp" line="297"/>
<location filename="../src/pvsgui.cpp" line="377"/>
<source>PVS Connection</source>
- <translation type="unfinished"></translation>
+ <translation>PVS Connección</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="282"/>
<source>Please enter password (If not needed leave blank):</source>
- <translation type="unfinished"></translation>
+ <translation>Porfavor ingrese una contraseña (Deje la seccion vacia si no lo necesita):</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="298"/>
<source>Are you sure you want to disconnect?</source>
- <translation type="unfinished"></translation>
+ <translation>Realmente desea desconectarse?</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="321"/>
<location filename="../src/pvsgui.cpp" line="343"/>
<source>PVS connection</source>
- <translation type="unfinished"></translation>
+ <translation>PVS Connección</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="321"/>
<location filename="../src/pvsgui.cpp" line="335"/>
<source>Connected to </source>
- <translation type="unfinished"></translation>
+ <translation>Connectar a </translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="343"/>
<location filename="../src/pvsgui.cpp" line="355"/>
<source>Disconnected</source>
- <translation type="unfinished"></translation>
+ <translation>Desconectado</translation>
</message>
<message>
<location filename="../src/pvsgui.cpp" line="377"/>
<source>New host available: </source>
- <translation type="unfinished"></translation>
+ <translation>Nuevo Host disponible: </translation>
</message>
</context>
</TS>
diff --git a/i18n/pvsmgr_es_MX.ts b/i18n/pvsmgr_es_MX.ts
index bc5c69c..fc53e6d 100644
--- a/i18n/pvsmgr_es_MX.ts
+++ b/i18n/pvsmgr_es_MX.ts
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="es_MX" sourcelanguage="en_US">
<context>
<name>AboutDialog</name>
<message>
<location filename="../src/gui/aboutDialog.cpp" line="27"/>
<source>Version: </source>
- <translation type="unfinished"></translation>
+ <translation>Version: </translation>
</message>
</context>
<context>
@@ -14,27 +14,27 @@
<message>
<location filename="../build/ui_aboutDialog.h" line="213"/>
<source>PVS - About</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Acerca de</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="215"/>
<source>&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;License: GNU General Public License Version 2&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.txt&quot;&gt;Licencia: GNU General Public License Version 2&lt;/a&gt;</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="216"/>
<source>About</source>
- <translation type="unfinished"></translation>
+ <translation>Acerca de</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="218"/>
<source>Authors</source>
- <translation type="unfinished"></translation>
+ <translation>Autores</translation>
</message>
<message>
<location filename="../build/ui_aboutDialog.h" line="219"/>
<source>Translation</source>
- <translation type="unfinished"></translation>
+ <translation>Traducción</translation>
</message>
</context>
<context>
@@ -42,33 +42,33 @@
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="123"/>
<source>PVS - File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Transferencia de datos</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="125"/>
<source>Sending to:</source>
- <translation type="unfinished"></translation>
+ <translation>Enviando a:</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="126"/>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>desconocido</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="127"/>
<location filename="../build/ui_clientFileSendDialog.h" line="129"/>
<source>0</source>
- <translation type="unfinished"></translation>
+ <translation>0</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="128"/>
<source>/</source>
- <translation type="unfinished"></translation>
+ <translation>/</translation>
</message>
<message>
<location filename="../build/ui_clientFileSendDialog.h" line="130"/>
<source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Cancelar</translation>
</message>
</context>
<context>
@@ -76,42 +76,42 @@
<message>
<location filename="../src/gui/connectionFrame.cpp" line="100"/>
<source>&amp;Remove dummy...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Remover dummy...</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="102"/>
<source>&amp;Lock Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bloquear Cliente(s)</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="104"/>
<source>&amp;Unlock Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Desbloquear Cliente(s)</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="112"/>
<source>&amp;MsgLock Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bloquear Cliente(s) con mensaje</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="114"/>
<source>&amp;MsgLock all Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bloquear todos los clientes con mensaje</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="116"/>
<source>&amp;Message Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enviar mensaje a Cliente(s)</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="118"/>
<source>&amp;Projection</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Proyección</translation>
</message>
<message>
<location filename="../src/gui/connectionFrame.cpp" line="120"/>
<source>&amp;Unprojection</source>
- <translation type="unfinished"></translation>
+ <translation>Retirar proyección</translation>
</message>
</context>
<context>
@@ -119,89 +119,89 @@
<message>
<location filename="../src/gui/connectionList.cpp" line="31"/>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Nombre</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="32"/>
<source>IP</source>
- <translation type="unfinished"></translation>
+ <translation>IP</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="33"/>
<source>Username</source>
- <translation type="unfinished"></translation>
+ <translation>Nombre de usuario</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="70"/>
<source>&amp;Lock Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bloquear cliente(s)</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="72"/>
<source>&amp;Unlock Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Desbloquear Cliente(s)</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="80"/>
<source>&amp;MsgLock Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bloquear Cliente(s) con mensaje</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="82"/>
<source>&amp;MsgLock all Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Bloquear todos los Clientes con mensaje</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="84"/>
<source>&amp;Message Client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enviar mensaje a Cliente(s)</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="87"/>
<source>&amp;Projection</source>
- <translation type="unfinished"></translation>
+ <translation>Proyección</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="89"/>
<source>&amp;Unprojection</source>
- <translation type="unfinished"></translation>
+ <translation>Retirar proyección</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="309"/>
<source>No Target is available for a projection!
Perform an unprojection to get a target.</source>
- <translation type="unfinished"></translation>
+ <translation>El objetivo no esta disponible para ser proyectado! Retire una proyección para obtener un objetivo.</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="317"/>
<source>This source is already in a projection process involved.
You can perform a unprojection on it to get it free.</source>
- <translation type="unfinished"></translation>
+ <translation>Esta fuente ya ha sido proyectada. Usted puede remover la proyección para liberar la fuente.</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="349"/>
<location filename="../src/gui/connectionList.cpp" line="355"/>
<location filename="../src/gui/connectionList.cpp" line="430"/>
<source>To perform a projection you have to select only one source in a list with more than one index!</source>
- <translation type="unfinished"></translation>
+ <translation>Para realizar una proyección debe seleccionar una fuente con más de un indice en la lista!</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="372"/>
<location filename="../src/gui/connectionList.cpp" line="378"/>
<source>An unprojection is only possible on a selected source that is involved in a projection process, in a list with more than one index!</source>
- <translation type="unfinished"></translation>
+ <translation>Una projección solamente puede ser removida si la fuente ya ha sido proyectada en una lista con más de un indice.</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="391"/>
<source>No Target is available for remote Help!
Perform an unprojection or remove remote help to get a target.</source>
- <translation type="unfinished"></translation>
+ <translation>No hay objetivos disponibles para asistencia remota! Retire una projección o retire una asistencia remota para obtener objetivos.</translation>
</message>
<message>
<location filename="../src/gui/connectionList.cpp" line="399"/>
<source>This source is already in a projection or remote Help process involved.
You can perform a unprojection or remove remote Help on it to get it free.</source>
- <translation type="unfinished"></translation>
+ <translation>Esta fuente ya esta envuelta en un proceso de proyección o asistencia remota. Usted puede retirar la projección o asistencia remota para liberar la fuente.</translation>
</message>
</context>
<context>
@@ -209,14 +209,14 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../src/gui/connectionWindow.cpp" line="34"/>
<source>&amp;Add a dummy...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Agregar un dummy...</translation>
</message>
<message>
<location filename="../src/gui/connectionWindow.cpp" line="342"/>
<location filename="../src/gui/connectionWindow.cpp" line="479"/>
<location filename="../src/gui/connectionWindow.cpp" line="516"/>
<source>You have to set a Superclient-machine before performing this action.</source>
- <translation type="unfinished"></translation>
+ <translation>Usted debe asignar un super cliente antes de iniciar esta acción.</translation>
</message>
</context>
<context>
@@ -224,47 +224,47 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../src/gui/dialog.cpp" line="29"/>
<source>Enter the Text for the client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Ingrese el mensage</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="167"/>
<source>ProfileDialog</source>
- <translation type="unfinished"></translation>
+ <translation>Diálogo de perfil</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="168"/>
<source>background-color: rgb(255, 255, 255);</source>
- <translation type="unfinished"></translation>
+ <translation>background-color: rgb(255, 255, 255);</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="169"/>
<source>&amp;Remove</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Remover</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="170"/>
<source>&amp;Edit</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Editar</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="171"/>
<source>&amp;New</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Nuevo</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="172"/>
<source>&amp;Load</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Cargar</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="173"/>
<source>Add</source>
- <translation type="unfinished"></translation>
+ <translation>Agregar</translation>
</message>
<message>
<location filename="../build/ui_profileDialog.h" line="174"/>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Cerrar</translation>
</message>
</context>
<context>
@@ -272,43 +272,43 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../src/gui/frame.cpp" line="49"/>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Ver</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="50"/>
<source>Foto</source>
- <translation type="unfinished"></translation>
+ <translation>Imagen</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="51"/>
<location filename="../src/gui/frame.cpp" line="276"/>
<source>Lock this client</source>
- <translation type="unfinished"></translation>
+ <translation>Bloquear este cliente</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="53"/>
<source>Set as Superclient</source>
- <translation type="unfinished"></translation>
+ <translation>Asignar como super cliente</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="271"/>
<source>Unlock this client</source>
- <translation type="unfinished"></translation>
+ <translation>Desbloquear este cliente</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="311"/>
<source>You can&apos;t lock a Superclient-machine.</source>
- <translation type="unfinished"></translation>
+ <translation>Super clientes no pueden ser bloqueados.</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="320"/>
<source>Set client as Superclient</source>
- <translation type="unfinished"></translation>
+ <translation>Asignar cliente como super cliente</translation>
</message>
<message>
<location filename="../src/gui/frame.cpp" line="327"/>
<source>Unset client as Superclient</source>
- <translation type="unfinished"></translation>
+ <translation>Desactivar como super cliente</translation>
</message>
</context>
<context>
@@ -317,359 +317,359 @@ Perform an unprojection or remove remote help to get a target.</source>
<location filename="../build/ui_mainwindow.h" line="403"/>
<location filename="../src/gui/mainWindow.cpp" line="120"/>
<source>Exit</source>
- <translation type="unfinished"></translation>
+ <translation>Salir</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="122"/>
<source>Remove the vnc-Connection for the selected client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Remover la conexión VNC de los clientes seleccionados</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="125"/>
<source>Show the selected client in the whole window</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar el cliente seleccionado en toda la ventana</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="129"/>
<source>Make a screenshot for the selected client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Capturar la pantalla de los clientes seleccionados</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="418"/>
<location filename="../src/gui/mainWindow.cpp" line="130"/>
<source>Lock or Unlock all Clients</source>
- <translation type="unfinished"></translation>
+ <translation>Bloquear o desbloquear todos los clientes</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="151"/>
<source>The pvs manager</source>
- <translation type="unfinished"></translation>
+ <translation>PVS Manager</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="740"/>
<source>This operation can only be performed for one selected Client!</source>
- <translation type="unfinished"></translation>
+ <translation>Esta operación solamente puede ser realizada para un cliente!</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="792"/>
<source>This operation can only be performed for at least one selected Client!</source>
- <translation type="unfinished"></translation>
+ <translation>Esta operación solamente puede ser realizada para el ultimo cliente seleccionado!</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="1061"/>
<source>You have to set a Superclient-machine before performing this action.</source>
- <translation type="unfinished"></translation>
+ <translation>Usted debe asignar un super cliente antes de realizar esta acción.</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="1141"/>
<source>Open Image</source>
- <translation type="unfinished"></translation>
+ <translation>Abrir imagen</translation>
</message>
<message>
<location filename="../src/gui/mainWindow.cpp" line="1141"/>
<source>Image Files (*.png *.jpg *.svg)</source>
- <translation type="unfinished"></translation>
+ <translation>Extensión de imagenes (*.png *.jpg *.svg)</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="376"/>
<source>PVSmgr</source>
- <translation type="unfinished"></translation>
+ <translation>PVSmgr</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="377"/>
<source>Show Username</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar nombre de usuario</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="378"/>
<source>Ctrl+3</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+3</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="379"/>
<source>Show IP</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar IP</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="380"/>
<source>Ctrl+2</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+2</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="381"/>
<source>VNC-Placeholders</source>
- <translation type="unfinished"></translation>
+ <translation>VNC - Marcadores de posición</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="382"/>
<source>Show Log</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Log</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="383"/>
<source>Ctrl+L</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+L</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="384"/>
<source>Show Normal</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar normal</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="385"/>
<source>Ctrl+O</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+O</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="386"/>
<source>Show Error</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Errores</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="387"/>
<source>Ctrl+E</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+E</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="388"/>
<source>Show Network</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Red</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="389"/>
<source>Ctrl+N</source>
- <translation type="unfinished"></translation>
+ <translation></translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="390"/>
<source>Show Terminal</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Linea de comandos</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="391"/>
<source>Ctrl+T</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+T</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="392"/>
<source>Show Chat</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar Chat</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="393"/>
<source>Ctrl+G</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+G</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="394"/>
<source>About pvs</source>
- <translation type="unfinished"></translation>
+ <translation>Acerca de PVS</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="395"/>
<source>Ctrl+P</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+P</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="396"/>
<source>100 x 100</source>
- <translation type="unfinished"></translation>
+ <translation>100 x 100</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="397"/>
<source>200 x 200</source>
- <translation type="unfinished"></translation>
+ <translation>200 x 200</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="398"/>
<source>500 x 500</source>
- <translation type="unfinished"></translation>
+ <translation>500 x 500</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="399"/>
<source>&amp;Disconnect</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Desconectar</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="400"/>
<source>Ctrl+W</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+W</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="401"/>
<source>&amp;Exit</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Salir</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="405"/>
<source>Ctrl+Q</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+Q</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="406"/>
<location filename="../build/ui_mainwindow.h" line="408"/>
<source>Foto</source>
- <translation type="unfinished"></translation>
+ <translation>Imagen</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="410"/>
<source>Ctrl+F</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+F</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="411"/>
<source>view</source>
- <translation type="unfinished"></translation>
+ <translation>ver</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="413"/>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Ver</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="415"/>
<source>Ctrl+V</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+V</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="416"/>
<source>lock</source>
- <translation type="unfinished"></translation>
+ <translation>bloquear</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="420"/>
<source>Ctrl+A</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+A</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="421"/>
<source>Profile &amp;manager</source>
- <translation type="unfinished"></translation>
+ <translation>Perfil &amp;manager</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="422"/>
<source>Ctrl+M</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+M</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="423"/>
<source>Show Name</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar nombre</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="424"/>
<source>Ctrl+1</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+1</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="425"/>
<source>Chat</source>
- <translation type="unfinished"></translation>
+ <translation>Chat</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="427"/>
<source>Start Chat with client(s)</source>
- <translation type="unfinished"></translation>
+ <translation>Iniciar Chat con cliente(s)</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="429"/>
<source>Ctrl+D</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+D</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="430"/>
<source>-</source>
- <translation type="unfinished"></translation>
+ <translation>-</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="431"/>
<source>border-color: rgb(0, 0, 0);</source>
- <translation type="unfinished"></translation>
+ <translation>border-color: rgb(0, 0, 0);</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="432"/>
<source>VNC quality</source>
- <translation type="unfinished"></translation>
+ <translation>VNC calidad</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="435"/>
<source>HIGH</source>
- <translation type="unfinished"></translation>
+ <translation>Alta</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="436"/>
<source>MEDIUM</source>
- <translation type="unfinished"></translation>
+ <translation>Media</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="437"/>
<source>LOW</source>
- <translation type="unfinished"></translation>
+ <translation>Baja</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="439"/>
<source>Set password</source>
- <translation type="unfinished"></translation>
+ <translation>Asignar contraseña</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="442"/>
<source>Thumbnailratio</source>
- <translation type="unfinished"></translation>
+ <translation>Radio de la vista en miniatura</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="443"/>
<source>Thumbnailrate</source>
- <translation type="unfinished"></translation>
+ <translation>Frecuancia de actualización para las vistas en miniatura</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="445"/>
<source> 0</source>
- <translation type="unfinished"></translation>
+ <translation> 0</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="446"/>
<source>%</source>
- <translation type="unfinished"></translation>
+ <translation>%</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="447"/>
<source>background-color: rgb(255, 255, 255);</source>
- <translation type="unfinished"></translation>
+ <translation>background-color: rgb(255, 255, 255);</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="448"/>
<source>background-color: rgb(150, 150, 150);</source>
- <translation type="unfinished"></translation>
+ <translation>background-color: rgb(150, 150, 150);</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="449"/>
<source>&amp;File</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Archivo</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="450"/>
<source>Load profile </source>
- <translation type="unfinished"></translation>
+ <translation>Cargar perfil</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="451"/>
<source>&amp;Clients</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Clientes</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="452"/>
<source>&amp;Logging</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Logging</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="453"/>
<source>&amp;Help</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Ayuda</translation>
</message>
<message>
<location filename="../build/ui_mainwindow.h" line="454"/>
<source>toolBar</source>
- <translation type="unfinished"></translation>
+ <translation>Barra de herramientas</translation>
</message>
</context>
<context>
@@ -677,17 +677,17 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../build/ui_dialog.h" line="85"/>
<source>Dialog</source>
- <translation type="unfinished"></translation>
+ <translation>Dialogo</translation>
</message>
<message>
<location filename="../build/ui_dialog.h" line="86"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancelar</translation>
</message>
<message>
<location filename="../build/ui_dialog.h" line="87"/>
<source>Send</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar</translation>
</message>
</context>
<context>
@@ -695,7 +695,7 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../src/gui/projectionDialog.cpp" line="28"/>
<source>Target for Projection</source>
- <translation type="unfinished"></translation>
+ <translation>Objetivo para projección</translation>
</message>
</context>
<context>
@@ -703,32 +703,32 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../src/gui/serverChatDialog.cpp" line="39"/>
<source>&amp;Send File...</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enviar archivo...</translation>
</message>
<message>
<location filename="../src/gui/serverChatDialog.cpp" line="119"/>
<source> has joined the chat.</source>
- <translation type="unfinished"></translation>
+ <translation> ha ingresado en el chat.</translation>
</message>
<message>
<location filename="../src/gui/serverChatDialog.cpp" line="125"/>
<source> has left the chat.</source>
- <translation type="unfinished"></translation>
+ <translation> ha abandonado el chat.</translation>
</message>
<message>
<location filename="../src/gui/serverChatDialog.cpp" line="231"/>
<source>PVS File Transfer with </source>
- <translation type="unfinished"></translation>
+ <translation>PVS transferencia de datos con</translation>
</message>
<message>
<location filename="../src/gui/serverChatDialog.cpp" line="232"/>
<source>Send file &apos;</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar archivo &apos;</translation>
</message>
<message>
<location filename="../src/gui/serverChatDialog.cpp" line="232"/>
<source>&apos; to </source>
- <translation type="unfinished"></translation>
+ <translation>&apos; a </translation>
</message>
</context>
<context>
@@ -736,12 +736,12 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../build/ui_serverChatDialog.h" line="115"/>
<source>PVSmgr - Chat </source>
- <translation type="unfinished"></translation>
+ <translation>PVSmgr - Chat </translation>
</message>
<message>
<location filename="../build/ui_serverChatDialog.h" line="116"/>
<source>&amp;Send</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Enviar</translation>
</message>
</context>
<context>
@@ -750,38 +750,38 @@ Perform an unprojection or remove remote help to get a target.</source>
<location filename="../src/gui/serverFileTransfert.cpp" line="35"/>
<location filename="../src/gui/serverFileTransfert.cpp" line="130"/>
<source>Open File</source>
- <translation type="unfinished"></translation>
+ <translation>Abrir archivo</translation>
</message>
<message>
<location filename="../src/gui/serverFileTransfert.cpp" line="118"/>
<source>PVS File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS Transferencia de datos</translation>
</message>
<message>
<location filename="../src/gui/serverFileTransfert.cpp" line="118"/>
<source>User &apos;</source>
- <translation type="unfinished"></translation>
+ <translation>Usuario &apos;</translation>
</message>
<message>
<location filename="../src/gui/serverFileTransfert.cpp" line="119"/>
<source>&apos; would like to send you a file: </source>
- <translation type="unfinished"></translation>
+ <translation>&apos; desea enviarle un archivo: </translation>
</message>
<message>
<location filename="../src/gui/serverFileTransfert.cpp" line="238"/>
<location filename="../src/gui/serverFileTransfert.cpp" line="244"/>
<source>PVS - File Transfer</source>
- <translation type="unfinished"></translation>
+ <translation>PVS - Transferecia de datos</translation>
</message>
<message>
<location filename="../src/gui/serverFileTransfert.cpp" line="239"/>
<source>File Transfer complete.</source>
- <translation type="unfinished"></translation>
+ <translation>La transferencia de datos ha sido completada.</translation>
</message>
<message>
<location filename="../src/gui/serverFileTransfert.cpp" line="245"/>
<source>File Transfer canceled!</source>
- <translation type="unfinished"></translation>
+ <translation>La transferencia de datos ha sido cancelada!</translation>
</message>
</context>
<context>
@@ -789,22 +789,22 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../src/gui/profileDialog.cpp" line="32"/>
<source>Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Perfil</translation>
</message>
<message>
<location filename="../src/gui/profileDialog.cpp" line="96"/>
<source>This field can&apos;t be empty.</source>
- <translation type="unfinished"></translation>
+ <translation>Esta sección no puede estar vacía</translation>
</message>
<message>
<location filename="../src/gui/profileDialog.cpp" line="102"/>
<source>This name is already in the list.</source>
- <translation type="unfinished"></translation>
+ <translation>Este nombre ya se encuentra en la lista.</translation>
</message>
<message>
<location filename="../src/gui/profileDialog.cpp" line="150"/>
<source>You can only load one profile at time</source>
- <translation type="unfinished"></translation>
+ <translation>Solamenten se puede cargar un perfil a la vez.</translation>
</message>
</context>
<context>
@@ -812,27 +812,27 @@ Perform an unprojection or remove remote help to get a target.</source>
<message>
<location filename="../build/ui_projectionDialog.h" line="120"/>
<source>Dialog</source>
- <translation type="unfinished"></translation>
+ <translation>Dialogo</translation>
</message>
<message>
<location filename="../build/ui_projectionDialog.h" line="121"/>
<source>Select all</source>
- <translation type="unfinished"></translation>
+ <translation>Seleccionar todo</translation>
</message>
<message>
<location filename="../build/ui_projectionDialog.h" line="122"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancelar</translation>
</message>
<message>
<location filename="../build/ui_projectionDialog.h" line="123"/>
<source>Project</source>
- <translation type="unfinished"></translation>
+ <translation>Proyectar</translation>
</message>
<message>
<location filename="../build/ui_projectionDialog.h" line="124"/>
<source>Select Target for projection</source>
- <translation type="unfinished"></translation>
+ <translation>Seleccionar objetivo para proyección</translation>
</message>
</context>
</TS>
diff --git a/src/pvsDaemon.cpp b/src/pvsDaemon.cpp
index 961e0f3..e87bfe7 100644
--- a/src/pvsDaemon.cpp
+++ b/src/pvsDaemon.cpp
@@ -66,11 +66,13 @@ int main(int argc, char** argv)
{
int frequency = 5;
int port = -1;
- QString homeDir("/home/");
- QString scriptPath = homeDir;
- scriptPath.append(getUserName().append(QString("/.pvs/pvs-vncsrv")));
- QString scriptName;
- scriptName = getFilenameFromPath(scriptPath);
+
+ QFileInfo script;
+ script.setFile("/usr/bin/pvs-vncsrv");
+ if (!script.exists())
+ script.setFile("/usr/local/bin/pvs-vncsrv");
+ if (!script.exists())
+ script.setFile("/home/" + getUserName() + "/.pvs/pvs-vncsrv");
QCoreApplication app(argc, argv);
app.setOrganizationName("openslx");
@@ -259,8 +261,7 @@ int main(int argc, char** argv)
{
if (option_index + 1 < argc)
{
- scriptPath = QString(argv[option_index + 1]);
- scriptName = getFilenameFromPath(scriptPath);
+ script.setFile(QString(argv[option_index + 1]));
option_index++;
continue;
}
@@ -347,13 +348,13 @@ int main(int argc, char** argv)
if (port <= 0)
port = SERVER_PORT_INT;
ConsoleLog writeLine(QString("TCP-Port: ").append(int2String(port)));
- mainClient->setScriptPath(scriptPath);
- ConsoleLog writeLine(QString("VNCScriptPath: ").append(scriptPath));
+ mainClient->setScriptPath(script.filePath());
+ ConsoleLog writeLine(QString("VNCScriptPath: ").append(script.filePath()));
createPolicyDir();
createPolicyFiles();
// long int gr = 0;
- mainClient->setScriptPath(scriptPath);
+ mainClient->setScriptPath(script.filePath());
app.exec();
delete mainClient;
diff --git a/src/version.h b/src/version.h
index c217c07..ac24ac2 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1,2 +1,2 @@
-#define VERSION_STRING "1.9.8.0"
-#define VERSION_NUMBER 1980
+#define VERSION_STRING "2.0.1.0"
+#define VERSION_NUMBER 2010