1
0
mirror of https://github.com/KDE/krfb synced 2026-07-01 15:51:18 -07:00

Compare commits

...

48 Commits

Author SHA1 Message Date
Script Kiddy
48d986b0fe SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1062934
2009-12-16 10:55:50 +00:00
Script Kiddy
f500e055f1 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1060242
2009-12-08 10:51:54 +00:00
Dariusz Mikulski
e8fd5fe0c7 Fix CMakeLists
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1056635
2009-11-30 13:50:46 +00:00
Script Kiddy
35b6b28c0a SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1055593
2009-11-28 11:09:36 +00:00
Script Kiddy
0389c8262e SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1054026
2009-11-25 11:05:50 +00:00
George Goldberg
689df377e1 Make libkrfb more obviously a private library.
It is meant to be used only by plugins built together with krfb, and does not make any binary compatability at all.
It should not be linked against by anything outside of the krfb source tree, so we definitely shouldn't be installing headers.

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1053592
2009-11-24 10:42:04 +00:00
Script Kiddy
efdb74b025 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1052339
2009-11-21 10:53:29 +00:00
Script Kiddy
4e47380ef5 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1051368
2009-11-19 10:37:19 +00:00
Harsh Chouraria J
db400bb3d0 BUG: 152149
Fixed bug related to Timezone data in KRFB-sent emails by using KSystemTimeZones::local() and adding the zone name.

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1047949
2009-11-12 11:57:11 +00:00
Script Kiddy
e82c2ac46a SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1046623
2009-11-09 10:34:31 +00:00
Aurélien Gâteau
009e6457a0 notification -> statusnotifier
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1042743
2009-10-30 14:50:00 +00:00
Script Kiddy
3b8c774b86 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1040510
2009-10-26 11:01:57 +00:00
Script Kiddy
1bca95204b SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1039375
2009-10-23 09:34:38 +00:00
Script Kiddy
1f89d959e4 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1035099
2009-10-14 10:19:30 +00:00
Script Kiddy
8fc303b572 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1033023
2009-10-09 09:28:50 +00:00
Script Kiddy
f5f6b5eb15 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1032691
2009-10-08 09:20:20 +00:00
Script Kiddy
6c81fc7fdf SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1031831
2009-10-06 08:47:43 +00:00
Script Kiddy
d885b64b2a SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1031174
2009-10-04 09:36:05 +00:00
Script Kiddy
037d1f6e3a SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1029211
2009-09-29 09:27:49 +00:00
Laurent Montel
343fc2638c Fix pedantic
Fix iterator

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1028866
2009-09-28 11:19:44 +00:00
Laurent Montel
00e32bca00 Pedantic
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1028756
2009-09-28 06:40:54 +00:00
Script Kiddy
efcc0ed62c SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1028206
2009-09-26 09:09:50 +00:00
Script Kiddy
dbaa5dcdff SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1027962
2009-09-25 09:16:08 +00:00
George Goldberg
fa0417140c Forgot to delete moved files in svn r1027330.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1027331
2009-09-23 20:59:40 +00:00
George Goldberg
0b04afe5c1 Framebuffers are now plugins. This means we can switch between the Qt and X11 framebuffers at runtime.
- Currently there is no configuration UI, so you have to edit the krfbrc by hand to select the framebuffer plugin to use. This will be fixed later.
- Framebuffers are shared, so that when krfb supports having mutliple servers running, the framebuffer can be shared between them (when appropriate) for better performance.
- Currently defaults to the X11 framebuffer, since this is what was hardcoded before.

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1027330
2009-09-23 20:57:47 +00:00
Laurent Montel
9b8eca676e warning--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1026445
2009-09-21 20:10:08 +00:00
Script Kiddy
8dfed7d523 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1025951
2009-09-20 09:22:20 +00:00
Script Kiddy
e19ec55f31 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024786
2009-09-17 09:32:21 +00:00
George Goldberg
c708cfbc16 Change -Ask before accepting uninvited connections- to just -Ask before accepting connections- and make it behave as expceted.
This is because we can't know until after the connection has been accepted whether it was invited or not, so the old code used the broken method of seeing if there were 0 or more invitations to tell.

BUG: 188676

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024354
2009-09-16 12:25:42 +00:00
George Goldberg
70c18c5c2f When we change the global can-control-keyboard-and-mouse property we should only apply this change to connections where the remote was initially permitted to control the keyboard and mouse.
Othwise we should just leave control disabled whatever happens.
This makes krfb err on the side of caution, so it is now much harder for the user
to accidentally give control of their desktop to someone they didn't want to give it to.

BUG:166447

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024346
2009-09-16 12:13:48 +00:00
George Goldberg
327070588c Set the control enabled state for new connections correctly when they are launched.
Still need to disallow connection becoming controllable if the prefernces are changed after they are launched as not controllable.

CCBUG: 166447

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024345
2009-09-16 12:13:43 +00:00
George Goldberg
90e352fb8f When a new connection comes in, only allow the option of letting the remote control keyboard and mouse if it is allowed in the krfb configuration.
CCBUG: 166447

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024344
2009-09-16 12:13:38 +00:00
George Goldberg
d61a7dbdbd Show KNotifications when a user connects, rather than KPassivePopups.
BUG: 207501

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024313
2009-09-16 11:15:02 +00:00
George Goldberg
3c60d88afb Display notifications as popups. Also correct the unexpected connection notification name in the source.
BUG: 207565

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024312
2009-09-16 11:14:58 +00:00
George Goldberg
9c397fd8bb Fix an incorrect QOject::disconnect() and add some debug.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024049
2009-09-15 21:13:18 +00:00
George Goldberg
176cd16c3e When the client is disconnected, signal that the session finished to update the trayicon &c
BUG: 207499

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024040
2009-09-15 20:57:53 +00:00
George Goldberg
238e12a35a Set the clientGoneHook correctly for all cases where the connection is at least partially accepted.
CCBUG:207499

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024039
2009-09-15 20:57:51 +00:00
George Goldberg
cfb358a62f When the remote session is established after asking for confirmation locally, don't forget to emit the signal that the connection is established.
CCBUG:207499

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024038
2009-09-15 20:57:48 +00:00
George Goldberg
8d0debac72 After deleting the contents of fb in the Qt framebuffer, assign it to 0 (as the X11 framebuffer does) to avoid a crash on exit.
BUG: 207497

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1024014
2009-09-15 20:19:51 +00:00
George Goldberg
31949c6bee Mark the notification item as active when there are connections to the rfb server, otherwise passive.
BUG:92107

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1023991
2009-09-15 18:54:49 +00:00
Script Kiddy
28bf97c57f SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1023232
2009-09-14 09:54:05 +00:00
George Goldberg
fcbfa9613e Fix calculation of bpp to use libvncserver friendly values. Thanks to Shane for the patch.
BUG: 162493

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1022261
2009-09-11 09:45:13 +00:00
Marco Martin
f3665ae765 KNotificationItem is out of experimental
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1019133
2009-09-02 23:30:19 +00:00
Script Kiddy
8167b932f2 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1018923
2009-09-02 10:28:04 +00:00
Script Kiddy
571a612efc SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1000565
2009-07-21 15:16:39 +00:00
Pino Toscano
604469ad27 explicitly link to X11, Xext, QtNetwork and kdeui
BUG: 200100

svn path=/trunk/KDE/kdenetwork/krfb/; revision=1000050
2009-07-20 18:46:47 +00:00
Laurent Montel
c6d7427b5c Port to knotificationitem
svn path=/trunk/KDE/kdenetwork/krfb/; revision=989474
2009-06-30 11:28:39 +00:00
Script Kiddy
a7a28dad55 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=987256
2009-06-25 18:32:22 +00:00
37 changed files with 1037 additions and 139 deletions

View File

@@ -1,5 +1,22 @@
project(krfb)
if(NOT INSIDE_KDENETWORK)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../cmake/modules ${CMAKE_MODULE_PATH})
find_package(KDE4 REQUIRED)
include(KDE4Defaults)
include(MacroLibrary)
include(CheckSymbolExists)
find_package(LibVNCServer)
macro_optional_find_package(LibVNCServer)
set(CMAKE_REQUIRED_DEFINITIONS ${_KDE_PLATFORM_DEFINITIONS})
add_definitions(${QT_DEFINITIONS} ${QT_DBUS_DEFINITIONS} ${KDE4_DEFINITIONS})
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})
endif(NOT INSIDE_KDENETWORK)
check_symbol_exists(rfbInitServer "rfb/rfb.h" HAVE_LIBVNCSERVER)
macro_bool_to_01(X11_Xdamage_FOUND HAVE_XDAMAGE)
macro_bool_to_01(X11_XShm_FOUND HAVE_XSHM)
@@ -16,6 +33,51 @@ endif(Q_WS_X11)
#add_subdirectory(kcm_krfb)
if (HAVE_LIBVNCSERVER)
#####################################
# First target: libkrfb - a library
# for linking plugins against.
set (krfbprivate_SRCS
framebuffer.cpp
framebufferplugin.cpp
)
kde4_add_library (krfbprivate
SHARED
${krfbprivate_SRCS}
)
target_link_libraries (krfbprivate
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${X11_X11_LIB}
${LIBVNCSERVER_LIBRARIES}
)
set_target_properties (krfbprivate PROPERTIES
VERSION ${GENERIC_LIB_VERSION}
SOVERSION ${GENERIC_LIB_VERSION}
)
install (TARGETS krfbprivate
${INSTALL_TARGETS_DEFAULT_ARGS}
)
install (FILES
krfb-framebuffer.desktop
DESTINATION ${SERVICETYPES_INSTALL_DIR}
)
#####################################
# Build the plugins
include_directories (${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory (framebuffers)
#####################################
# Second target: krfb - the app
# itself.
set(krfb_SRCS
main.cpp
trayicon.cpp
@@ -28,9 +90,7 @@ set(krfb_SRCS
personalinvitedialog.cpp
connectioncontroller.cpp
events.cpp
framebuffer.cpp
qtframebuffer.cpp
x11framebuffer.cpp
framebuffermanager.cpp
)
kde4_add_kcfg_files(krfb_SRCS krfbconfig.kcfgc)
@@ -45,7 +105,18 @@ kde4_add_ui_files(krfb_SRCS connectionwidget.ui
kde4_add_executable(krfb ${krfb_SRCS})
target_link_libraries(krfb ${JPEG_LIBRARIES} ${LIBVNCSERVER_LIBRARIES} ${X11_Xdamage_LIB} ${KDE4_KDNSSD_LIBS})
target_link_libraries(krfb
krfbprivate
${JPEG_LIBRARIES}
${LIBVNCSERVER_LIBRARIES}
${X11_Xext_LIB}
${X11_X11_LIB}
${X11_Xdamage_LIB}
${QT_QTNETWORK_LIBRARY}
${KDE4_KDNSSD_LIBS}
${KDE4_KDEUI_LIBS}
)
if(X11_XTest_FOUND)
target_link_libraries(krfb ${X11_XTest_LIB})
endif(X11_XTest_FOUND)

View File

@@ -1,7 +1,8 @@
<ui version="4.0" >
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Security</class>
<widget class="QWidget" name="Security" >
<property name="geometry" >
<widget class="QWidget" name="Security">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@@ -9,66 +10,66 @@
<height>201</height>
</rect>
</property>
<layout class="QVBoxLayout" >
<layout class="QVBoxLayout">
<item>
<widget class="QCheckBox" name="kcfg_allowUninvitedConnections" >
<property name="text" >
<widget class="QCheckBox" name="kcfg_allowUninvitedConnections">
<property name="text">
<string>Allow uninvited connections</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_allowDesktopControl" >
<property name="text" >
<widget class="QCheckBox" name="kcfg_allowDesktopControl">
<property name="text">
<string>Allow remote connections to control your desktop</string>
</property>
<property name="checked" >
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="kcfg_askOnConnect" >
<property name="enabled" >
<widget class="QCheckBox" name="kcfg_askOnConnect">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text" >
<string>Ask before accepting an uninvited connection</string>
<property name="text">
<string>Ask before accepting connections</string>
</property>
<property name="checked" >
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label" >
<property name="enabled" >
<widget class="QLabel" name="label">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text" >
<property name="text">
<string>Uninvited connections password:</string>
</property>
<property name="buddy" >
<property name="buddy">
<cstring>kcfg_uninvitedConnectionPassword</cstring>
</property>
</widget>
</item>
<item>
<widget class="KLineEdit" name="kcfg_uninvitedConnectionPassword" >
<property name="enabled" >
<widget class="KLineEdit" name="kcfg_uninvitedConnectionPassword">
<property name="enabled">
<bool>false</bool>
</property>
<property name="echoMode" >
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation" >
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" >
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
@@ -93,11 +94,11 @@
<receiver>kcfg_askOnConnect</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>22</x>
<y>24</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>29</x>
<y>80</y>
</hint>
@@ -109,11 +110,11 @@
<receiver>kcfg_uninvitedConnectionPassword</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>98</x>
<y>21</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>192</x>
<y>137</y>
</hint>
@@ -125,11 +126,11 @@
<receiver>label</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<hint type="sourcelabel">
<x>117</x>
<y>20</y>
</hint>
<hint type="destinationlabel" >
<hint type="destinationlabel">
<x>120</x>
<y>94</y>
</hint>

View File

@@ -99,6 +99,7 @@ ConnectionController::~ConnectionController()
enum rfbNewClientAction ConnectionController::handleNewClient()
{
kDebug();
bool askOnConnect = KrfbConfig::askOnConnect();
bool allowUninvited = KrfbConfig::allowUninvitedConnections();
@@ -106,13 +107,17 @@ enum rfbNewClientAction ConnectionController::handleNewClient()
remoteIp = peerAddress(cl->sock);
if (!allowUninvited && InvitationManager::self()->activeInvitations() == 0) {
KNotification::event("ConnectionAttempted",
KNotification::event("UnexpectedConnection",
i18n("Refused uninvited connection attempt from %1",
remoteIp));
return RFB_CLIENT_REFUSE;
}
if (!askOnConnect && InvitationManager::self()->activeInvitations() == 0) {
// In the remaining cases, the connection will be at least partially established, so we need
// the clientGoneHook to be called when the connection ends.
cl->clientGoneHook = clientGoneHook;
if (!askOnConnect) {
KNotification::event("NewConnectionAutoAccepted",
i18n("Accepted uninvited connection from %1",
remoteIp));
@@ -125,11 +130,9 @@ enum rfbNewClientAction ConnectionController::handleNewClient()
i18n("Received connection from %1, on hold (waiting for confirmation)",
remoteIp));
cl->clientGoneHook = clientGoneHook;
ConnectionDialog *dialog = new ConnectionDialog(0);
dialog->setRemoteHost(remoteIp);
dialog->setAllowRemoteControl( true );
dialog->setAllowRemoteControl(KrfbConfig::allowDesktopControl());
connect(dialog, SIGNAL(okClicked()), SLOT(dialogAccepted()));
connect(dialog, SIGNAL(cancelClicked()), SLOT(dialogRejected()));
@@ -213,8 +216,17 @@ void ConnectionController::clipboardToServer(const QString &s)
void ConnectionController::dialogAccepted()
{
ConnectionDialog *dialog = qobject_cast<ConnectionDialog*>(sender());
if (!dialog) {
kWarning() << "Wrong type of sender.";
return;
}
// rfbStartOnHoldClient(cl);
cl->onHold = false;
setControlEnabled(dialog->cbAllowRemoteControl->isChecked());
setControlCanBeEnabled(dialog->cbAllowRemoteControl->isChecked());
emit sessionEstablished(remoteIp);
}
void ConnectionController::dialogRejected()
@@ -228,4 +240,14 @@ void ConnectionController::setControlEnabled(bool enable)
controlEnabled = enable;
}
void ConnectionController::setControlCanBeEnabled(bool canBeEnabled)
{
m_controlCanBeEnabled = canBeEnabled;
}
bool ConnectionController::controlCanBeEnabled() const
{
return m_controlCanBeEnabled;
}

View File

@@ -39,6 +39,9 @@ public:
void setControlEnabled(bool enable);
void setControlCanBeEnabled(bool canBeEnabled);
bool controlCanBeEnabled() const;
Q_SIGNALS:
void sessionEstablished(QString);
void notification(QString, QString);
@@ -52,6 +55,7 @@ private:
QString remoteIp;
struct _rfbClientRec *cl;
bool controlEnabled;
bool m_controlCanBeEnabled;
/*
int fd;
KrfbServer *server;

View File

@@ -60,6 +60,7 @@ void ConnectionDialog::setRemoteHost( const QString &host )
void ConnectionDialog::setAllowRemoteControl( bool b )
{
cbAllowRemoteControl->setChecked( b );
cbAllowRemoteControl->setVisible(b);
}
bool ConnectionDialog::allowRemoteControl()

View File

@@ -12,26 +12,14 @@
#include <config-krfb.h>
#include <QX11Info>
#include "qtframebuffer.h"
#include "x11framebuffer.h"
#include <X11/Xutil.h>
#ifdef HAVE_XDAMAGE
#include <X11/extensions/Xdamage.h>
#endif
FrameBuffer::FrameBuffer(WId id, QObject *parent)
: QObject(parent), win(id)
{
//TODO: implement reference counting to avoid update the screen
// while no client is connected.
}
FrameBuffer::~FrameBuffer()
{
delete fb;
@@ -68,18 +56,6 @@ int FrameBuffer::depth()
return 32;
}
FrameBuffer * FrameBuffer::getFrameBuffer(WId id, QObject * parent)
{
#ifdef HAVE_XDAMAGE
int tmp, er;
if (XDamageQueryExtension(QX11Info::display(), &tmp, &er)) {
return new X11FrameBuffer(id, parent);
}
#endif
return new QtFrameBuffer(id, parent);
}
int FrameBuffer::paddedWidth()
{
return width() * depth() / 8;
@@ -93,4 +69,3 @@ void FrameBuffer::stopMonitor()
{
}

View File

@@ -15,18 +15,19 @@
#include <QList>
#include <QWidget>
#include <kdemacros.h>
#include <rfb/rfb.h>
class FrameBuffer;
/**
@author Alessandro Praduroux <pradu@pradu.it>
*/
class FrameBuffer : public QObject
class KDE_EXPORT FrameBuffer : public QObject
{
Q_OBJECT
public:
static FrameBuffer* getFrameBuffer(WId id, QObject *parent);
explicit FrameBuffer(WId id, QObject *parent = 0);
virtual ~FrameBuffer();
@@ -43,12 +44,13 @@ public:
virtual void getServerFormat(rfbPixelFormat &format);
protected:
explicit FrameBuffer(WId id, QObject *parent = 0);
WId win;
char *fb;
QList<QRect> tiles;
private:
Q_DISABLE_COPY(FrameBuffer)
};
#endif

132
framebuffermanager.cpp Normal file
View File

@@ -0,0 +1,132 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "framebuffermanager.h"
#include "framebufferplugin.h"
#include "krfbconfig.h"
#include <KDebug>
#include <KGlobal>
#include <KServiceTypeTrader>
#include <QtCore/QSharedPointer>
class FrameBufferManagerStatic
{
public:
FrameBufferManager instance;
};
K_GLOBAL_STATIC(FrameBufferManagerStatic, frameBufferManagerStatic)
FrameBufferManager::FrameBufferManager()
{
kDebug();
loadPlugins();
}
FrameBufferManager::~FrameBufferManager()
{
kDebug();
}
FrameBufferManager *FrameBufferManager::instance()
{
kDebug();
return &frameBufferManagerStatic->instance;
}
void FrameBufferManager::loadPlugins()
{
kDebug();
// Load the all the plugin factories here, for use later.
KService::List offers = KServiceTypeTrader::self()->query("krfb/framebuffer");
KService::List::const_iterator iter;
for (iter = offers.constBegin(); iter < offers.constEnd(); ++iter) {
QString error;
KService::Ptr service = *iter;
KPluginFactory *factory = KPluginLoader(service->library()).factory();
if (!factory) {
kWarning() << "KPluginFactory could not load the plugin:" << service->library();
continue;
}
FrameBufferPlugin *plugin = factory->create<FrameBufferPlugin>(this);
if (plugin) {
kDebug() << "Loaded plugin:" << service->name();
m_plugins.insert(service->library(), plugin);
} else {
kDebug() << error;
}
}
}
QSharedPointer<FrameBuffer> FrameBufferManager::frameBuffer(WId id)
{
kDebug();
// See if there is still an existing framebuffer to this WId.
if (m_frameBuffers.contains(id)) {
QWeakPointer<FrameBuffer> weakFrameBuffer = m_frameBuffers.value(id);
if (weakFrameBuffer) {
kDebug() << "Found cached frame buffer.";
return weakFrameBuffer.toStrongRef();
} else {
kDebug() << "Found deleted cached frame buffer. Don't use.";
m_frameBuffers.remove(id);
}
}
// We don't already have that frame buffer.
QMap<QString, FrameBufferPlugin*>::const_iterator iter = m_plugins.constBegin();
while (iter != m_plugins.constEnd()) {
if (iter.key() == KrfbConfig::preferredFrameBufferPlugin()) {
kDebug() << "Using FrameBuffer:" << KrfbConfig::preferredFrameBufferPlugin();
QSharedPointer<FrameBuffer> frameBuffer(iter.value()->frameBuffer(id));
if (frameBuffer) {
m_frameBuffers.insert(id, frameBuffer.toWeakRef());
return frameBuffer;
}
}
++iter;
}
// No valid framebuffer plugin found.
kDebug() << "No valid framebuffer found. returning null.";
return QSharedPointer<FrameBuffer>();
}
#include "framebuffermanager.moc"

62
framebuffermanager.h Normal file
View File

@@ -0,0 +1,62 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KRFB_FRAMEBUFFERMANAGER_H
#define KRFB_FRAMEBUFFERMANAGER_H
#include "framebuffer.h"
#include <kdemacros.h>
#include <QtCore/QMap>
#include <QtCore/QObject>
#include <QtCore/QSharedPointer>
#include <QtCore/QWeakPointer>
#include <QtGui/QWidget>
class FrameBufferPlugin;
class KPluginFactory;
class KDE_EXPORT FrameBufferManager : public QObject
{
Q_OBJECT
friend class FrameBufferManagerStatic;
public:
static FrameBufferManager *instance();
virtual ~FrameBufferManager();
QSharedPointer<FrameBuffer> frameBuffer(WId id);
private:
Q_DISABLE_COPY(FrameBufferManager)
FrameBufferManager();
void loadPlugins();
QMap<QString, FrameBufferPlugin*> m_plugins;
QMap<WId, QWeakPointer<FrameBuffer> > m_frameBuffers;
};
#endif // Header guard

36
framebufferplugin.cpp Normal file
View File

@@ -0,0 +1,36 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "framebufferplugin.h"
#include "framebuffer.h"
FrameBufferPlugin::FrameBufferPlugin(QObject *parent, const QVariantList &)
: QObject(parent)
{
}
FrameBufferPlugin::~FrameBufferPlugin()
{
}
#include "framebufferplugin.moc"

44
framebufferplugin.h Normal file
View File

@@ -0,0 +1,44 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef LIB_KRFB_FRAMEBUFFERPLUGIN_H
#define LIB_KRFB_FRAMEBUFFERPLUGIN_H
#include <kdemacros.h>
#include <QtCore/QVariantList>
#include <QtGui/QWidget>
class FrameBuffer;
class KDE_EXPORT FrameBufferPlugin : public QObject
{
Q_OBJECT
public:
FrameBufferPlugin(QObject *parent, const QVariantList &args);
virtual ~FrameBufferPlugin();
virtual FrameBuffer *frameBuffer(WId id) = 0;
};
#endif // Header guard

View File

@@ -0,0 +1,3 @@
add_subdirectory (qt)
add_subdirectory (x11)

View File

@@ -0,0 +1,28 @@
include_directories (${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
set (krfb_framebuffer_qt_SRCS
qtframebuffer.cpp
qtframebufferplugin.cpp
)
kde4_add_plugin (krfb_framebuffer_qt
${krfb_framebuffer_qt_SRCS}
)
target_link_libraries (krfb_framebuffer_qt
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${KDE4_KDEUI_LIBS}
krfbprivate
)
install (TARGETS krfb_framebuffer_qt
DESTINATION ${PLUGIN_INSTALL_DIR}
)
install (FILES krfb_framebuffer_qt.desktop
DESTINATION ${SERVICES_INSTALL_DIR}
)

View File

@@ -0,0 +1,53 @@
[Desktop Entry]
Encoding=UTF-8
Comment=Qt based Framebuffer for KRfb.
Comment[ca]=«Framebuffer» basat en Qt per al KRfb.
Comment[da]=Qt-baseret framebuffer til KRfb.
Comment[en_GB]=Qt based Framebuffer for KRfb.
Comment[es]=Esquema Qt de buffer para KRfb
Comment[et]=KRfb Qt põhine kaadripuhver
Comment[gl]=Framebuffer baseado en Qt para KRfb.
Comment[ko]=KRfb를 위한 Qt 기반 프레임버퍼.
Comment[nb]=Qt-basert rammebuffer for KRfb.
Comment[nds]=Op Qt opbuut Bildpuffer för KRfb
Comment[nl]=Op Qt gebaseerd framebuffer voor KRfb.
Comment[nn]=Qt basert framebuffer for KRfb.
Comment[pt]='Framebuffer' baseado no Qt para o KRfb.
Comment[pt_BR]=Framebuffer baseado no Qt para o KRfb.
Comment[sr]=Кадробафер за КРФБ на основу КуТу
Comment[sr@latin]=Kadrobafer za KRFB na osnovu Qtu
Comment[sv]=Qt-baserad rambuffert för Krfb.
Comment[tr]=KRfb için Qt temelli Çerçeve tamponu.
Comment[uk]=Заснований на Qt буфер кадрів для KRfb.
Comment[x-test]=xxQt based Framebuffer for KRfb.xx
Comment[zh_TW]=KRfb 的 Qt-based Framebuffer
Name=Qt Framebuffer for KRfb
Name[ca]=«Framebuffer» Qt per al KRfb.
Name[da]=Qt-framebuffer til KRfb
Name[en_GB]=Qt Framebuffer for KRfb
Name[es]=Esquema Qt de buffer para KRfb
Name[et]=KRfb Qt kaadripuhver
Name[gl]=Framebuffer de Qt para KRfb
Name[ko]=KRfb를 위한 Qt 프레임버퍼
Name[nb]=Qt rammebuffer for KRfb
Name[nds]=Qt-Bildpuffer för KRfb
Name[nl]=Qt-framebuffer voor KRfb
Name[nn]=Qt-framebuffer for KRfb
Name[pt]='Framebuffer' do Qt para o KRfb
Name[pt_BR]=Framebuffer do Qt para o KRfb
Name[sr]=КуТ‑ов кадробафер за КРФБ
Name[sr@latin]=Qtov kadrobafer za KRFB
Name[sv]=Qt-rambuffert för Krfb
Name[tr]=KRfb için Qt Çerçeve tamponu
Name[uk]=Буфер кадрів на Qt для KRfb
Name[x-test]=xxQt Framebuffer for KRfbxx
Name[zh_TW]=Krfb 的 Qt Framebuffer
Type=Service
ServiceTypes=krfb/framebuffer
X-KDE-Library=krfb_framebuffer_qt
X-KDE-PluginInfo-Name=qt
X-KDE-PluginInfo-Version=0.1
X-KDE-PluginInfo-Website=http://www.kde.org
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true

View File

@@ -31,6 +31,7 @@ QtFrameBuffer::QtFrameBuffer(WId id, QObject *parent)
QtFrameBuffer::~QtFrameBuffer()
{
delete [] fb;
fb = 0;
}
int QtFrameBuffer::depth()

View File

@@ -7,8 +7,8 @@
version 2 of the License, or (at your option) any later version.
*/
#ifndef QTFRAMEBUFFER_H
#define QTFRAMEBUFFER_H
#ifndef KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFER_H
#define KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFER_H
#include <QImage>
#include "framebuffer.h"

View File

@@ -0,0 +1,47 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "qtframebufferplugin.h"
#include "qtframebuffer.h"
#include <KGenericFactory>
QtFrameBufferPlugin::QtFrameBufferPlugin(QObject *parent, const QVariantList &args)
: FrameBufferPlugin(parent, args)
{
}
QtFrameBufferPlugin::~QtFrameBufferPlugin()
{
}
FrameBuffer *QtFrameBufferPlugin::frameBuffer(WId id)
{
return new QtFrameBuffer(id);
}
K_PLUGIN_FACTORY(factory, registerPlugin<QtFrameBufferPlugin>();) \
K_EXPORT_PLUGIN(factory("krfb_framebuffer_qt"))
#include "qtframebufferplugin.moc"

View File

@@ -0,0 +1,48 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFERPLUGIN_H
#define KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFERPLUGIN_H
#include "framebufferplugin.h"
#include <kdemacros.h>
#include <QtGui/QWidget>
class FrameBuffer;
class QtFrameBufferPlugin : public FrameBufferPlugin
{
Q_OBJECT
public:
QtFrameBufferPlugin(QObject *parent, const QVariantList &args);
virtual ~QtFrameBufferPlugin();
virtual FrameBuffer *frameBuffer(WId id);
private:
Q_DISABLE_COPY(QtFrameBufferPlugin)
};
#endif // Header guard

View File

@@ -0,0 +1,31 @@
include_directories (${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
set (krfb_framebuffer_x11_SRCS
x11framebuffer.cpp
x11framebufferplugin.cpp
)
kde4_add_plugin (krfb_framebuffer_x11
${krfb_framebuffer_x11_SRCS}
)
target_link_libraries (krfb_framebuffer_x11
${KDE4_KDEUI_LIBS}
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${X11_X11_LIB}
${X11_Xdamage_LIB}
${X11_Xext_LIB}
krfbprivate
)
install (TARGETS krfb_framebuffer_x11
DESTINATION ${PLUGIN_INSTALL_DIR}
)
install (FILES krfb_framebuffer_x11.desktop
DESTINATION ${SERVICES_INSTALL_DIR}
)

View File

@@ -0,0 +1,53 @@
[Desktop Entry]
Encoding=UTF-8
Comment=X11 XDamage/XShm based Framebuffer for KRfb.
Comment[ca]=«Framebuffer» basat en XDamage/XShmQt de l'X11 per al KRfb.
Comment[da]=X11 XDamage/XShm-baseret framebuffer til KRfb.
Comment[en_GB]=X11 XDamage/XShm based Framebuffer for KRfb.
Comment[es]=Esquema de buffer para KRfb basado en XDamage/XShm
Comment[et]=KRfb X11 XDamage/XShm põhine kaadripuhver
Comment[gl]=Framebuffer baseado en Xll XDamage/Xshm para XRfb.
Comment[ko]=KRfb를 위한 X11 XDamage/XShm 기반 프레임버퍼.
Comment[nb]=Rammebuffer for KRfb basert på X11 XDamage/XShm.
Comment[nds]=Op X11-XDamage/-XShm opbuut Bildpuffer för KRfb
Comment[nl]=Op X11 XDamage/XShm gebaseerd framebuffer voor KRfb.
Comment[nn]=X11 XDamage/XShm basert framebuffer for KRfb.
Comment[pt]='Framebuffer' baseado no XDamage/XShm do X11 para o KRfb.
Comment[pt_BR]=Framebuffer baseado no XDamage/XShm do X11 para o KRfb.
Comment[sr]=Кадробафер за КРФБ на основу Икс‑демиџа/Икс‑схма у Иксу11.
Comment[sr@latin]=Kadrobafer za KRFB na osnovu XDamagea/XShma u X11.
Comment[sv]=X11 XDamage/XShm-baserad rambuffert för Krfb.
Comment[tr]=KRfb için X11 XDamage/XShm temelli Çerçeve Tamponu.
Comment[uk]=Заснований на XDamage/XShm X11 буфер кадрів для KRfb.
Comment[x-test]=xxX11 XDamage/XShm based Framebuffer for KRfb.xx
Comment[zh_TW]=KRfb 的 X11 XDamage/XShm based Framebuffer
Name=X11 Framebuffer for KRfb
Name[ca]=«Framebuffer» de l'X11 per al KRfb.
Name[da]=X11-framebuffer til KRfb
Name[en_GB]=X11 Framebuffer for KRfb
Name[es]=Buffer de X11 para KRfb
Name[et]=KRfb X11 kaadripuhver
Name[gl]=Framebuffer de X11 para KRfb
Name[ko]=KRfb를 위한 X11 프레임버퍼
Name[nb]=X11 rammebuffer for KRfb
Name[nds]=X11-Bildpuffer för KRfb
Name[nl]=X11 framebuffer voor KRfb
Name[nn]=X11-framebuffer for KRfb
Name[pt]='Framebuffer' do X11 para o KRfb
Name[pt_BR]=Framebuffer do X11 para o KRfb
Name[sr]=Икс11 кадробафер за КРФБ.
Name[sr@latin]=X11 kadrobafer za KRFB.
Name[sv]=X11-rambuffert för Krfb
Name[tr]=KRfb için X11 Çerçeve Tamponu
Name[uk]=Буфер кадрів X11 для KRfb
Name[x-test]=xxX11 Framebuffer for KRfbxx
Name[zh_TW]=KRfb 的 X11 Framebuffer
Type=Service
ServiceTypes=krfb/framebuffer
X-KDE-Library=krfb_framebuffer_x11
X-KDE-PluginInfo-Name=x11
X-KDE-PluginInfo-Version=0.1
X-KDE-PluginInfo-Website=http://www.kde.org
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true

View File

@@ -6,8 +6,8 @@
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
*/
#ifndef X11FRAMEBUFFER_H
#define X11FRAMEBUFFER_H
#ifndef KRFB_FRAMEBUFFER_X11_X11FRAMEBUFFER_H
#define KRFB_FRAMEBUFFER_X11_X11FRAMEBUFFER_H
#include <framebuffer.h>
#include <QWidget>
@@ -35,7 +35,7 @@ class X11FrameBuffer : public FrameBuffer
{
Q_OBJECT
public:
X11FrameBuffer(WId id, QObject* parent);
X11FrameBuffer(WId id, QObject* parent = 0);
~X11FrameBuffer();

View File

@@ -0,0 +1,47 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "x11framebufferplugin.h"
#include "x11framebuffer.h"
#include <KGenericFactory>
X11FrameBufferPlugin::X11FrameBufferPlugin(QObject *parent, const QVariantList &args)
: FrameBufferPlugin(parent, args)
{
}
X11FrameBufferPlugin::~X11FrameBufferPlugin()
{
}
FrameBuffer *X11FrameBufferPlugin::frameBuffer(WId id)
{
return new X11FrameBuffer(id);
}
K_PLUGIN_FACTORY(factory, registerPlugin<X11FrameBufferPlugin>();) \
K_EXPORT_PLUGIN(factory("krfb_framebuffer_x11"))
#include "x11framebufferplugin.moc"

View File

@@ -0,0 +1,48 @@
/* This file is part of the KDE project
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
@author George Goldberg <george.goldberg@collabora.co.uk>
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KRFB_FRAMEBUFFER_X11_X11FRAMEBUFFERPLUGIN_H
#define KRFB_FRAMEBUFFER_X11_X11FRAMEBUFFERPLUGIN_H
#include "framebufferplugin.h"
#include <kdemacros.h>
#include <QtGui/QWidget>
class FrameBuffer;
class X11FrameBufferPlugin : public FrameBufferPlugin
{
Q_OBJECT
public:
X11FrameBufferPlugin(QObject *parent, const QVariantList &args);
virtual ~X11FrameBufferPlugin();
virtual FrameBuffer *frameBuffer(WId id);
private:
Q_DISABLE_COPY(X11FrameBufferPlugin)
};
#endif // Header guard

View File

@@ -22,6 +22,7 @@ Name[cy]=Rhannu Penbwrdd
Name[da]=Desktopdeling
Name[de]=Arbeitsflächen-Freigabe
Name[el]=Κοινή χρήση επιφάνειας εργασίας
Name[en_GB]=Desktop Sharing
Name[eo]=Tabula komunigado
Name[es]=Escritorio compartido
Name[et]=Töölaua jagamine
@@ -87,6 +88,7 @@ Comment[cy]=Ffurfweddu Rhannu Penbwrdd
Comment[da]=Indstil desktopdeling
Comment[de]=Freigabe der Arbeitsfläche einrichten
Comment[el]=Ρύθμιση της κοινής χρήσης της επιφάνειας εργασίας
Comment[en_GB]=Configure Desktop Sharing
Comment[eo]=Agordi la tabulan komunigadon
Comment[es]=Configure su escritorio compartido
Comment[et]=Töölaua jagamise seadistamine

View File

@@ -24,13 +24,14 @@ Name[es]=Demonio de Internet de KDE
Name[et]=KDE internetideemon
Name[eu]=KDE interneteko daemona
Name[fa]=شبح اینترنتی KDE
Name[fi]=KDE Internet-palvelin
Name[fi]=KDE:n Internet-palvelin
Name[fr]=Démon Internet de KDE
Name[ga]=Deamhan Idirlín KDE
Name[gl]=Daemon de internet de KDE
Name[he]=תהליך הרקע האינטרנטי של KDE
Name[hi]=केडीई इंटरनेट डेमन
Name[hne]=केडीई इंटरनेट डेमन
Name[hr]=KDE Internet Daemon
Name[hu]=KDE internetes szolgáltatás
Name[is]=KDE Internetþjónn
Name[it]=Demone internet di KDE
@@ -46,6 +47,7 @@ Name[ms]=Daemon Internet KDE
Name[nb]=KDEs Internett-nisse
Name[nds]=KDE-Internetdämoon
Name[ne]=केडीई इन्टरनेट डेइमोन
Name[nl]=KDE Internet Daemon
Name[nn]=KDE-Internett-teneste
Name[pa]=KDE ਇੰਟਰਨੈੱਟ ਡੈਮਨ
Name[pl]=Internet/sieć
@@ -66,6 +68,7 @@ Name[uk]=Фонова служба Інтернет KDE
Name[uz]=KDE Internet demoni
Name[uz@cyrillic]=KDE Интернет демони
Name[vi]=Trình nền Mạng KDE
Name[xh]=KDE Internet Daemon
Name[x-test]=xxKDE Internet Daemonxx
Name[zh_CN]=KDE Internet 守护进程
Name[zh_HK]=KDE 互聯網系統程式
@@ -89,7 +92,7 @@ Comment[fa]=یک شبح اینترنتی که خدمات شبکه را بر اس
Comment[fi]=Internet-palvelin, joka käynnistää verkkopalveluita
Comment[fr]=Un démon Internet qui démarre le service réseau à la demande
Comment[ga]=Deamhan Idirlín a thosaíonn seirbhísí líonra ar éileamh
Comment[gl]=Un daemon de Internet que comenza servizos de rede baixo demanda
Comment[gl]=Un daemon de Internet que inicia servizos de rede baixo demanda
Comment[he]=תהליך רקע של אינטרנט שמתחיל שירותי רשת לפי דרישה
Comment[hi]=एक इंटरनेट डेमन जो मांग पर नेटवर्क सेवा प्रारंभ करता है
Comment[hne]=एक इंटरनेट डेमन जऊन मांग मं नेटवर्क सेवा चालू करथे

View File

@@ -1,13 +1,63 @@
[Global]
IconName=kinetd
Comment=KInetD
Comment[ar]=KInetD
Comment[bn]=কে-আইনেট-ডি
Comment[br]=KInetD
Comment[ca]=KInetD
Comment[cs]=KInetD
Comment[cy]=KInetD
Comment[da]=KInetD
Comment[de]=KInetD
Comment[el]=KInetD
Comment[en_GB]=KInetD
Comment[eo]=KInetD
Comment[es]=KInetD
Comment[et]=KInetD
Comment[eu]=KInetD
Comment[fi]=KInetD
Comment[fr]=KInetD
Comment[ga]=KInetD
Comment[gl]=KInetD
Comment[he]=KInetD
Comment[hi]=के-इनिट-डी
Comment[hne]=के-इनिट-डी
Comment[hr]=KInetD
Comment[hu]=KInetD
Comment[is]=KInetD
Comment[it]=KInetD
Comment[ja]=KInetD
Comment[km]=KInetD
Comment[ko]=KInetD
Comment[lt]=KInetD
Comment[lv]=KInetD
Comment[mk]=KInetD
Comment[ml]=കെഐനെറ്റ്ഡി
Comment[ms]=KInetD
Comment[nb]=KInetD
Comment[nds]=KInetD
Comment[nl]=KInetD
Comment[nn]=KInetD
Comment[pa]=KInetD
Comment[pl]=KInetD
Comment[pt]=KInetD
Comment[pt_BR]=KInetD
Comment[ro]=KInetD
Comment[ru]=KInetD
Comment[sk]=KInetD
Comment[sl]=KInetD
Comment[sr]=КинетД
Comment[sr@latin]=KInetD
Comment[sv]=Kinetd
Comment[ta]=KInetD
Comment[tg]=KInetD
Comment[tr]=KInetD
Comment[uk]=KInetD
Comment[xh]=KInetD
Comment[x-test]=xxKInetDxx
Comment[zh_CN]=KInetD
Comment[zh_HK]=KInetD
Comment[zh_TW]=KInetD
[Event/IncomingConnection]
Name=IncomingConnection
@@ -20,6 +70,7 @@ Name[cy]=CysylltiadCyrraedd
Name[da]=IndkommendeForbindelse
Name[de]=Eingehende Verbindung
Name[el]=Εισερχόμενη σύνδεση
Name[en_GB]=IncomingConnection
Name[eo]=Envenanta konekto
Name[es]=Conexión entrante
Name[et]=Sissetulev ühendus
@@ -27,15 +78,17 @@ Name[eu]=Sarrerako konexioa
Name[fi]=Saapuva yhteys
Name[fr]=Connexion entrante
Name[ga]=Ceangal Isteach
Name[gl]=Conexón entrante
Name[gl]=Conexión entrante
Name[he]=חיבור נכנס
Name[hi]=आवक-कनेक्शन
Name[hne]=आवक-कनेक्सन
Name[hr]=DolaznaVeza
Name[hu]=Bejövő kapcsolat
Name[is]=IncomingConnection
Name[it]=Connessioni in entrata
Name[ja]=外部からの接続
Name[km]=ការ​តភ្ជាប់​ចូល
Name[ko]=IncomingConnection
Name[lt]=Gautas kvietimas ryšiui
Name[lv]=IenākošaisSavienojums
Name[mk]=Дојдовно поврзување
@@ -47,6 +100,7 @@ Name[nl]=Inkomende_verbinding
Name[nn]=Innkommande tilkopling
Name[pa]=ਆ ਰਹੇ ਕੁਨੈਕਸ਼ਨ
Name[pl]=Połączenia przychodzące
Name[pt]=IncomingConnection
Name[pt_BR]=Conexões de Entrada
Name[ro]=ConexiuneDeIntrare
Name[ru]=Входящее соединение
@@ -58,6 +112,7 @@ Name[sv]=Inkommande anslutning
Name[ta]=உள்வரும் இணைப்புகள்
Name[tg]=Пайвастшавии Воридшаванда
Name[tr]=Gelen Bağlantı
Name[uk]=IncomingConnection
Name[xh]=Uxhumaniso Olungenayo
Name[x-test]=xxIncomingConnectionxx
Name[zh_CN]=进入的连接
@@ -73,6 +128,7 @@ Comment[cy]=Derbynwyd cysylltiad a gyrhaeddodd
Comment[da]=Modtog indkommende forbindelse
Comment[de]=Verbindungsanfrage eingegangen
Comment[el]=Λήφθηκε μια εισερχόμενη σύνδεση
Comment[en_GB]=Received incoming connection
Comment[eo]=Ricevis envenantan konekton
Comment[es]=Recibida conexión entrante
Comment[et]=Saadi sissetulev ühendus
@@ -80,7 +136,7 @@ Comment[eu]=Sarrerako konexio bat jaso da
Comment[fi]=Vastaanotettiin saapuva yhteys
Comment[fr]=Reçu une connexion entrante
Comment[ga]=Fuarthas ceangal isteach
Comment[gl]=Recebeuse unha conexón entrante
Comment[gl]=Recibiuse unha conexión entrante
Comment[he]=נתקבל חיבור נכנס
Comment[hi]=आवक कनेक्शन प्राप्त
Comment[hne]=आवक कनेक्सन प्राप्त
@@ -101,7 +157,7 @@ Comment[nds]=Tokoppelanfraag kregen
Comment[nl]=Inkomende verbinding ontvangen
Comment[nn]=Fekk ei innkommande tilkopling
Comment[pa]=ਮਿਲੇ ਆ ਰਹੇ ਕੁਨੈਕਸ਼ਨ
Comment[pl]=Otrzymano połącznie przychodzące
Comment[pl]=Otrzymano połączenie przychodzące
Comment[pt]=Foi recebida uma ligação
Comment[pt_BR]=Recebendo conexão de entrada
Comment[ro]=Conexiune de intrare recepționată
@@ -131,6 +187,7 @@ Name[cy]=MethoddProses
Name[da]=ProcesMislykkedes
Name[de]=Prozess fehlgeschlagen
Name[el]=Η διεργασία απέτυχε
Name[en_GB]=ProcessFailed
Name[eo]=Procezo fiaskis
Name[es]=Proceso fallido
Name[et]=Protsess nurjus
@@ -144,9 +201,11 @@ Name[hi]=प्रक्रिया-असफल
Name[hne]=काम-फेल
Name[hr]=ProcesNeuspješan
Name[hu]=Hibás folyamat
Name[is]=ProcessFailed
Name[it]=Processo fallito
Name[ja]=プロセス失敗
Name[km]=ដំណើរ​ការ​បាន​បរាជ័យ
Name[ko]=ProcessFailed
Name[lt]=Procesas nepavyko
Name[lv]=ProcessNeveiksmīgs
Name[mk]=Процесот не успеа
@@ -158,6 +217,7 @@ Name[nl]=Proces_mislukt
Name[nn]=Prosessen feila
Name[pa]=ਪਰੋਸੈਸ ਫੇਲ੍ਹ
Name[pl]=Błąd procesu
Name[pt]=ProcessFailed
Name[pt_BR]=Falha de Processo
Name[ro]=ProcesEșuat
Name[ru]=Ошибка процесса
@@ -169,6 +229,7 @@ Name[sv]=Process misslyckades
Name[ta]=செயல் தோல்வியுற்றது
Name[tg]=Ҷараён бо Нокомӣ анҷомид
Name[tr]=Başarısız İşlemler
Name[uk]=ProcessFailed
Name[xh]=Inkqubo Yahlulekile
Name[x-test]=xxProcessFailedxx
Name[zh_CN]=处理失败
@@ -184,6 +245,7 @@ Comment[cy]=Methu galw proses i drin y cysylltiad
Comment[da]=Kunne ikke kalde proces til at håndtere forbindelse
Comment[de]=Der Prozess zur Bearbeitung der Verbindungsanfrage kann nicht gestartet werden
Comment[el]=Αδύνατη η κλήση της διεργασίας για τη διαχείριση της σύνδεσης
Comment[en_GB]=Could not call process to handle connection
Comment[eo]=Ne eblis lanĉi la procezon por trakti la konekton
Comment[es]=No se puede llamar un proceso para manejar la conexión
Comment[et]=Ei suuda käivitada protsessi ühenduse käsitsemiseks
@@ -191,7 +253,7 @@ Comment[eu]=Ezin izan da konexioa kudeatzeko prozesua deitu
Comment[fi]=Ei voitu kutsua prosessia yhteyden hoitamiseksi
Comment[fr]=Impossible d'appeler le processus pour gérer la connexion
Comment[ga]=Níorbh fhéidir próiseas a thosú chun an ceangal a láimhseáil
Comment[gl]=Non foi posíbel chamar ao proceso que xestiona a conexón
Comment[gl]=Non foi posíbel chamar ao proceso que xestiona a conexión
Comment[he]=אין אפשרות לקרוא לתהליך על מנת לטפל בחיבור
Comment[hi]=कनेक्शन हैंडल करने के लिए प्रक्रिया काल नहीं कर सका
Comment[hne]=कनेक्सन हेंडल करे बर काम काल नइ कर सकिस

View File

@@ -14,6 +14,7 @@ Name[cy]=Math Modiwl KInetD
Name[da]=KInetD-modultype
Name[de]=KInetD-Modultyp
Name[el]=Τύπος αρθρώματος KInetD
Name[en_GB]=KInetD Module Type
Name[eo]=KInetD modulotipo
Name[es]=Tipo de módulo KInetD
Name[et]=KInetD mooduli tüüp

25
krfb-framebuffer.desktop Normal file
View File

@@ -0,0 +1,25 @@
[Desktop Entry]
Type=ServiceType
X-KDE-ServiceType=krfb/framebuffer
Comment=Frame Buffer plugins for KRfb
Comment[ca]=Connectors de «framebuffer» per al KRfb.
Comment[da]=Framebuffer-plugins til KRfb
Comment[en_GB]=Frame Buffer plugins for KRfb
Comment[es]=Complemento de buffer para KRfb
Comment[et]=KRfb kaadripuhvri plugin
Comment[gl]=Engadido de frame buffer para KRfb
Comment[ko]=KRfb 프레임버퍼 플러그인
Comment[nb]=Rammebuffer-programtillegg for KRfb
Comment[nds]=Bildpuffer-Modulen för KRfb
Comment[nl]=Framebuffer-plugins voor KRfb
Comment[nn]=Framebuffer-tillegg KRfb
Comment[pt]='Plugins' de 'framebuffers' para o KRfb
Comment[pt_BR]=Plug-ins de framebuffers para o KRfb
Comment[sr]=Прикључци кадробафера за КРФБ
Comment[sr@latin]=Priključci kadrobafera za KRFB
Comment[sv]=Insticksprogram med rambuffert för Krfb
Comment[tr]=KRfb için Çerçeve Tamponu eklentileri
Comment[uk]=Додатки буфера кадрів для KRfb
Comment[x-test]=xxFrame Buffer plugins for KRfbxx
Comment[zh_TW]=KRfb 的 Frame Buffer 外掛程式

View File

@@ -6,13 +6,62 @@ Icon=krfb
X-DocPath=krfb/index.html
Terminal=false
Name=Krfb
Name[ar]=Krfb
Name[bg]=Krfb
Name[bn]=কে-আর-এফ-বি
Name[br]=Krfb
Name[ca]=Krfb
Name[cs]=Krfb
Name[da]=Krfb
Name[de]=Krfb
Name[el]=Krfb
Name[en_GB]=Krfb
Name[eo]=Krfb
Name[es]=Krfb
Name[et]=Krfb
Name[eu]=Krfb
Name[fi]=Krfb
Name[fr]=Krfb
Name[ga]=Krfb
Name[gl]=Krfb
Name[he]=Krfb
Name[hi]=केआरएफबी
Name[hne]=केआरएफबी
Name[hr]=Krfb
Name[hu]=Krfb
Name[is]=Krfb
Name[it]=Krfb
Name[ja]=Krfb
Name[kk]=Krfb
Name[km]=Krfb
Name[ko]=Krfb
Name[lt]=Krfb
Name[lv]=Krfb
Name[ml]=കെആര്‍എഫ്ബി
Name[nb]=Krfb
Name[nds]=KRfb
Name[ne]=Krfb
Name[nl]=Krfb
Name[nn]=Krfb
Name[pa]=Krfb
Name[pl]=Krfb
Name[pt]=Krfb
Name[pt_BR]=Krfb
Name[ro]=Krfb
Name[ru]=Krfb
Name[sk]=Krfb
Name[sl]=Krfb
Name[sr]=КРФБ
Name[sr@latin]=KRFB
Name[sv]=Krfb
Name[tr]=Krfb
Name[uk]=Krfb
Name[uz]=Krfb
Name[uz@cyrillic]=Krfb
Name[vi]=Krfb
Name[x-test]=xxKrfbxx
Name[zh_CN]=Krfb
Name[zh_HK]=Krfb
Name[zh_TW]=Krfb 桌面分享
GenericName=Desktop Sharing
GenericName[ar]=مشاركة سطح المكتب
@@ -25,6 +74,7 @@ GenericName[cy]=Rhannu Penbwrdd
GenericName[da]=Desktopdeling
GenericName[de]=Arbeitsfläche freigeben
GenericName[el]=Κοινή χρήση επιφάνειας εργασίας
GenericName[en_GB]=Desktop Sharing
GenericName[eo]=Tabula komunigado
GenericName[es]=Escritorio compartido
GenericName[et]=Töölaua jagamine
@@ -37,6 +87,7 @@ GenericName[gl]=Compartilla de escritorio
GenericName[he]=שיתוף שולחנות עבודה
GenericName[hi]=डेस्कटॉप साझेदारी
GenericName[hne]=डेस्कटाप साझेदारी
GenericName[hr]=Dijeljenje radne površine
GenericName[hu]=Munkaasztal-megosztás
GenericName[is]=Skjáborðsmiðlun
GenericName[it]=Condivisione desktop

View File

@@ -34,4 +34,10 @@
<label>Password for uninvited connections.</label>
</entry>
</group>
<group name="FrameBuffer">
<entry name="preferredFrameBufferPlugin" type="String">
<label>Preferred Frame Buffer Plugin</label>
<default>krfb_framebuffer_x11</default>
</entry>
</group>
</kcfg>

View File

@@ -11,6 +11,7 @@ Comment[cy]=Rhannu Penbwrdd
Comment[da]=Desktopdeling
Comment[de]=Arbeitsflächen-Freigabe
Comment[el]=Κοινή χρήση επιφάνειας εργασίας
Comment[en_GB]=Desktop Sharing
Comment[eo]=Tabula komunigado
Comment[es]=Escritorio compartido
Comment[et]=Töölaua jagamine
@@ -67,6 +68,7 @@ Name[cs]=Uživatel přijímá spojení
Name[da]=Bruger accepterer forbindelse
Name[de]=Benutzer akzeptiert Verbindung
Name[el]=Ο χρήστης δέχεται τη σύνδεση
Name[en_GB]=User Accepts Connection
Name[eo]=Uzanto akceptas la konekton
Name[es]=El usuario acepta la conexión
Name[et]=Kasutaja nõustub ühendusega
@@ -74,9 +76,10 @@ Name[eu]=Erabiltzaileak konexioa onartu du
Name[fi]=Käyttäjä hyväksyy yhteyden
Name[fr]=L'utilisateur accepte la connexion
Name[ga]=Glacann an tÚsáideoir Le Ceangal
Name[gl]=O usuario aceita a conexón
Name[gl]=O usuario acepta a conexión
Name[hi]=उपयोक्ता ने कनेक्शन स्वीकारा
Name[hne]=कमइया हर कनेक्सन स्वीकारा
Name[hr]=Korisnik prihvaća vezu
Name[hu]=A felhasználó engedélyezi a csatlakozást
Name[is]=Notandi samþykkir tengingar
Name[it]=L'utente accetta la connessione
@@ -115,6 +118,7 @@ Comment[cy]=Mae'r defnyddiwr yn derbyn y cysylltiad
Comment[da]=Bruger accepterer forbindelse
Comment[de]=Der Benutzer akzeptiert die Verbindung
Comment[el]=Ο χρήστης δέχεται τη σύνδεση
Comment[en_GB]=User accepts connection
Comment[eo]=Uzanto akceptas la konekton
Comment[es]=El usuario acepta la conexión
Comment[et]=Kasutaja nõustub ühendusega
@@ -122,7 +126,7 @@ Comment[eu]=Erabiltzaileak konexioa onartu du
Comment[fi]=Käyttäjä hyväksyy yhteyden
Comment[fr]=L'utilisateur accepte la connexion
Comment[ga]=Glacann úsáideoir le ceangal
Comment[gl]=O usuario aceitou a conexón
Comment[gl]=O usuario acepta a conexión
Comment[he]=המשתמש מקבל את החיבור
Comment[hi]=उपयोक्ता ने कनेक्शन स्वीकारा
Comment[hne]=कमइया हर कनेक्सन स्वीकारा
@@ -162,7 +166,7 @@ Comment[x-test]=xxUser accepts connectionxx
Comment[zh_CN]=用户接受连接
Comment[zh_HK]=用戶接受連線
Comment[zh_TW]=使用者接受連線
Action=None
Action=Popup
[Event/UserRefusesConnection]
Name=User Refuses Connection
@@ -172,6 +176,7 @@ Name[cs]=Uživatel odmítá spojení
Name[da]=Bruger afslår forbindelse
Name[de]=Benutzer verweigert Verbindung
Name[el]=Ο χρήστης απέρριψε τη σύνδεση
Name[en_GB]=User Refuses Connection
Name[eo]=Uzanto rifuzas la konekton
Name[es]=El usuario rechaza la conexión
Name[et]=Kasutaja keeldub ühendusest
@@ -179,9 +184,10 @@ Name[eu]=Erabiltzaileak konexioa ukatu du
Name[fi]=Käyttäjä hylkää yhteyden
Name[fr]=L'utilisateur refuse la connexion
Name[ga]=Diúltaíonn an tÚsáideoir Le Ceangal
Name[gl]=O usuario recusou a conexón
Name[gl]=O usuario rexeita a conexión
Name[hi]=उपयोक्ता ने कनेक्शन अस्वीकारा
Name[hne]=कमइया हर कनेक्सन अस्वीकारा
Name[hr]=Korisnik odbija vezu
Name[hu]=A felhasználó elutasítja a csatlakozást
Name[is]=Notandi hafnar tengingum
Name[it]=L'utente rifiuta la connessione
@@ -220,6 +226,7 @@ Comment[cy]=Mae'r defnyddiwr yn gwrthod y cysylltiad
Comment[da]=Bruger afslår forbindelse
Comment[de]=Der Benutzer verweigert die Verbindung
Comment[el]=Ο χρήστης απέρριψε τη σύνδεση
Comment[en_GB]=User refuses connection
Comment[eo]=Uzanto rifuzas konektojn
Comment[es]=El usuario rechaza la conexión
Comment[et]=Kasutaja keeldub ühendusest
@@ -227,7 +234,7 @@ Comment[eu]=Erabiltzaileak konexioa ukatu du
Comment[fi]=Käyttäjä hylkää yhteyden
Comment[fr]=L'utilisateur refuse la connexion
Comment[ga]=Diúltaíonn úsáideoir ceangal
Comment[gl]=O usuario non aceita a conexón
Comment[gl]=O usuario non acepta a conexión
Comment[he]=המשתמש מסרב לחיבור
Comment[hi]=उपयोक्ता ने कनेक्शन अस्वीकारा
Comment[hne]=कमइया हर कनेक्सन अस्वीकारा
@@ -267,7 +274,7 @@ Comment[x-test]=xxUser refuses connectionxx
Comment[zh_CN]=用户拒绝连接
Comment[zh_HK]=用戶拒絕連線
Comment[zh_TW]=使用者拒絕連線使用者
Action=None
Action=Popup
[Event/ConnectionClosed]
Name=Connection Closed
@@ -277,6 +284,7 @@ Name[cs]=Spojení ukončeno
Name[da]=Forbindelse lukket
Name[de]=Verbindung geschlossen
Name[el]=Η σύνδεση έκλεισε
Name[en_GB]=Connection Closed
Name[eo]=Konekto fermita
Name[es]=Conexión cerrada
Name[et]=Ühendus suletud
@@ -284,9 +292,10 @@ Name[eu]=Konexioa itxi da
Name[fi]=Yhteys suljettu
Name[fr]=Connexion fermée
Name[ga]=Ceangal Dúnta
Name[gl]=Conexón pechada
Name[gl]=Conexión fechada
Name[hi]=कनेक्शन बन्द
Name[hne]=कनेक्सन बन्द
Name[hr]=Veza prekinuta
Name[hu]=A kapcsolat megszűnt
Name[is]=Tengingu lokað
Name[it]=Connessione chiusa
@@ -327,6 +336,7 @@ Comment[cy]=Mae'r cysylltiad ar gau
Comment[da]=Forbindelse lukket
Comment[de]=Verbindung geschlossen
Comment[el]=Η σύνδεση έκλεισε
Comment[en_GB]=Connection closed
Comment[eo]=Konekto fermita
Comment[es]=Conexión cerrada
Comment[et]=Ühendus suletud
@@ -334,7 +344,7 @@ Comment[eu]=Konexioa itxi da
Comment[fi]=Yhteys suljettu
Comment[fr]=Connexion coupée
Comment[ga]=Ceangal dúnta
Comment[gl]=A conexón está pechada
Comment[gl]=A conexión está fechada
Comment[he]=החיבור נסגר
Comment[hi]=कनेक्शन बन्द
Comment[hne]=कनेक्सन बन्द
@@ -376,7 +386,7 @@ Comment[x-test]=xxConnection closedxx
Comment[zh_CN]=连接关闭
Comment[zh_HK]=連線已關閉
Comment[zh_TW]=連線已關閉
Action=None
Action=Popup
[Event/InvalidPassword]
Name=Invalid Password
@@ -386,6 +396,7 @@ Name[cs]=Neplatné heslo
Name[da]=Ugyldig adgangskode
Name[de]=Passwort ungültig
Name[el]=Μη έγκυρος κωδικός πρόσβασης
Name[en_GB]=Invalid Password
Name[eo]=Nevalida pasvorto
Name[es]=Contraseña incorrecta
Name[et]=Vale parool
@@ -393,9 +404,10 @@ Name[eu]=Baliogabeko pasahitza
Name[fi]=Virheellinen salasana
Name[fr]=Mot de passe non valable
Name[ga]=Focal Faire Neamhbhailí
Name[gl]=Contrasinal non válido
Name[gl]=O contrasinal non é válido
Name[hi]=अवैध पासवर्ड
Name[hne]=अवैध पासवर्ड
Name[hr]=Nevažeća zaporka
Name[hu]=Érvénytelen jelszó
Name[is]=Ógilt lykilorð
Name[it]=Password non valida
@@ -435,6 +447,7 @@ Comment[cy]=Cyfrinair annilys
Comment[da]=Ugyldig adgangskode
Comment[de]=Passwort ungültig
Comment[el]=Μη έγκυρος κωδικός πρόσβασης
Comment[en_GB]=Invalid password
Comment[eo]=Nevalida pasvorto
Comment[es]=Contraseña incorrecta
Comment[et]=Vale parool
@@ -442,7 +455,7 @@ Comment[eu]=Baliogabeko pasahitza
Comment[fi]=Virheellinen salasana
Comment[fr]=Mot de passe non valable
Comment[ga]=Focal faire neamhbhailí
Comment[gl]=O contrasinal non é válido
Comment[gl]=Este contrasinal non é válido
Comment[he]=הסיסמה שגויה
Comment[hi]=अवैध पासवर्ड
Comment[hne]=अवैध पासवर्ड
@@ -487,7 +500,7 @@ Comment[x-test]=xxInvalid passwordxx
Comment[zh_CN]=无效密码
Comment[zh_HK]=無效的密碼
Comment[zh_TW]=不正確的密碼
Action=None
Action=Popup
[Event/InvalidPasswordInvitations]
Name=Invalid Password Invitations
@@ -497,6 +510,7 @@ Name[cs]=Neplatné hesla výzev
Name[da]=Ugyldige adgangskodeinvitationer
Name[de]=Ungültiges Einladungs-Passwort
Name[el]=Μη έγκυρος κωδικός πρόσβασης πρόσκλησης
Name[en_GB]=Invalid Password Invitations
Name[eo]=Nevalidaj pasvortaj invitoj
Name[es]=Contraseñas de invitaciones incorrectas
Name[et]=Kutsutu vale parool
@@ -504,9 +518,10 @@ Name[eu]=Baliogabeko pasahitz gonbidapena
Name[fi]=Virheellinen salasana kutsuun
Name[fr]=Invitations de mot de passe non valables
Name[ga]=Cuirí Neamhbhailí Focal Faire
Name[gl]=Contrasinal de convidado non válido
Name[gl]=O contrasinal de convidado non válido
Name[hi]=अवैध पासवर्ड निमंत्रण
Name[hne]=अवैध पासवर्ड निमंत्रन
Name[hr]=Pozivnice s nevažećim zaporkama
Name[hu]=Érvénytelen jelszavas meghívó
Name[is]=Ógild lykilorðsboð
Name[it]=Password di invito non valida
@@ -545,6 +560,7 @@ Comment[cy]=Anfonodd y person gwahodd cyfrinair annilys. Gwrthodwyd y cysylltia
Comment[da]=Den inviterede part sendte en ugyldig adgangskode. Forbindelse afslået.
Comment[de]=Die eingeladene Person hat ein ungültiges Passwort gesendet: Verbindung abgelehnt.
Comment[el]=Η πρόσκληση περιέχει μη έγκυρο κωδικό πρόσβασης. Η σύνδεση απορρίφθηκε.
Comment[en_GB]=The invited party sent an invalid password. Connection refused.
Comment[eo]=La invitita kliento sendis nevalidan pasvorton. Konekto rifuzita.
Comment[es]=El invitado envió una contraseña incorrecta. Conexión rechazada.
Comment[et]=Kutsutu saatis vigase parooli. Ühendusest keelduti.
@@ -552,7 +568,7 @@ Comment[eu]=Gonbidatutako parekoak baliogabeko pasahitza bidali du. Konexioa uka
Comment[fi]=Kutsuttu taho lähetti virheellisen salasanan. Yhteys hylättiin.
Comment[fr]=La partie invitée a envoyé un mot de passe non valable. Connexion refusée.
Comment[ga]=Sheol an duine le cuireadh focal faire neamhbhailí. Diúltaíodh an ceangal.
Comment[gl]=A parte convidante envioulle un contrasinal non válido. A conexón foi rexeitada.
Comment[gl]=A parte convidada envioulle un contrasinal non válido. A conexión foi rexeitada.
Comment[he]=הצד המוזמן שלח סיסמה שגויה. החיבור נדחה.
Comment[hi]=निमंत्रित पार्टी ने अवैध पासवर्ड भेजा. कनेक्शन अस्वीकृत.
Comment[hne]=निमंत्रित पार्टी हर अवैध पासवर्ड भेजिस. कनेक्सन अस्वीकृत.
@@ -601,6 +617,7 @@ Name[cs]=Nové spojení pozdrženo
Name[da]=Ny forbindelse sat til at vente
Name[de]=Neue Verbindung wartet
Name[el]=Νέα σύνδεση σε αναμονή
Name[en_GB]=New Connection on Hold
Name[eo]=Nova konekto atendante
Name[es]=Conexión nueva a la espera
Name[et]=Uus ühendus ootel
@@ -608,9 +625,10 @@ Name[eu]=Konexio berria itxarote moduan
Name[fi]=Uusi yhteys odottaa
Name[fr]=Nouvelle connexion en attente
Name[ga]=Ceangal Nua Ag Fanacht
Name[gl]=Nova conexón en espera
Name[gl]=Nova conexión en espera
Name[hi]=नया कनेक्शन होल्ड पर रखा
Name[hne]=नवा कनेक्सन होल्ड मं रखा
Name[hr]=Nova veza na čekanju
Name[hu]=Új kapcsolat tartva
Name[is]=Ný tenging á bið
Name[it]=Nuova connessione da tenere
@@ -629,6 +647,7 @@ Name[pl]=Nowe połączenie wstrzymane
Name[pt]=Ligação Nova em Espera
Name[pt_BR]=Nova conexão ativa
Name[ro]=Conexiune nouă în așteptare
Name[ru]=Новое соединение приостановлено
Name[sl]=Nova povezava na čakanju
Name[sr]=Нова веза је на чекању
Name[sr@latin]=Nova veza je na čekanju
@@ -648,6 +667,7 @@ Comment[cy]=Cais wedi'i wneud am gysylltiad,rhaid i'r ddefnyddiwr ei dderbyn
Comment[da]=Forbindelse forespurgt, bruger skal acceptere
Comment[de]=Verbindungsanfrage, Benutzer muss bestätigen
Comment[el]=Αίτηση για σύνδεση, απαιτείται παρέμβαση του χρήστη
Comment[en_GB]=Connection requested, user must accept
Comment[eo]=Konekto pridemandita, la uzanto devas akcepti
Comment[es]=Conexión solicitada, el usuario debe aceptarla
Comment[et]=Nõutakse ühendust, kasutaja peab seda lubama
@@ -655,7 +675,7 @@ Comment[eu]=Konexioa eskatu da, erabiltzaileak onartu behar du
Comment[fi]=Pyydettiin yhteyttä, käyttäjän tulee hyväksyä
Comment[fr]=Connexion demandée, l'utilisateur doit accepter
Comment[ga]=Ceangal iarrtha; ní mór don úsáideoir glacadh leis
Comment[gl]=Pediuse a conexón, o usuario debe aceitar
Comment[gl]=Pediuse a conexión; o usuario debe aceptar
Comment[he]=נתבקש חיבור, על המשתמש לקבלו
Comment[hi]=कनेक्शन निवेदित. उपयोक्ता को स्वीकार होना चाहिए
Comment[hne]=कनेक्सन निवेदित. कमइया ल स्वीकार होना चाही
@@ -695,7 +715,7 @@ Comment[x-test]=xxConnection requested, user must acceptxx
Comment[zh_CN]=连接已请求,用户必须接受
Comment[zh_HK]=已請求連線,用戶必須接受
Comment[zh_TW]=連線已要求,必須等使用者接受
Action=None
Action=Popup
[Event/NewConnectionAutoAccepted]
Name=New Connection Auto Accepted
@@ -705,6 +725,7 @@ Name[cs]=Nové spojení automaticky přijato
Name[da]=Ny forbindelse automatisk accepteret
Name[de]=Neue Verbindung automatisch angenommen
Name[el]=Αυτόματη αποδοχή νέας σύνδεσης
Name[en_GB]=New Connection Auto Accepted
Name[eo]=Nova konekto aŭtomate akceptita
Name[es]=Conexión nueva aceptada automáticamente
Name[et]=Uue ühendusega automaatselt nõus
@@ -712,9 +733,10 @@ Name[eu]=Konexio berria auto-onartu da
Name[fi]=Uusi yhteys hyväksyttiin automaattisesti
Name[fr]=Nouvelle connexion auto-acceptée
Name[ga]=Ceangal nua bunaithe go huathoibríoch
Name[gl]=Nova conexón aceitada automaticamente
Name[gl]=Nova conexión aceptada automaticamente
Name[hi]=नय कनेक्शन स्वचालित स्वीकारा
Name[hne]=नय कनेक्सन अपने अपन स्वीकारा
Name[hr]=Nova veza automatski prihvaćena
Name[hu]=Új kapcsolat automatikusan engedélyezve
Name[is]=Ný tenging sjálfvirkt samþykkt
Name[it]=Accettata nuova connessione automatica
@@ -753,6 +775,7 @@ Comment[cy]=Sefydlwyd cysylltiad newydd yn awtomatig
Comment[da]=Ny forbindelse automatisk etableret
Comment[de]=Neue Verbindung automatisch hergestellt
Comment[el]=Μια νέα σύνδεση δημιουργήθηκε αυτόματα
Comment[en_GB]=New connection automatically established
Comment[eo]=Nova konekto aŭtomate establita
Comment[es]=Conexión nueva establecida automáticamente
Comment[et]=Uus ühendus automaatselt loodud
@@ -760,7 +783,7 @@ Comment[eu]=Konexio berria automatikoki ezarri da
Comment[fi]=Uusi yhteys muodostettiin automaattisesti
Comment[fr]=Nouvelle connexion établie automatiquement
Comment[ga]=Ceangal nua bunaithe go huathoibríoch
Comment[gl]=Estabeleceuse automaticamente unha nova conexón
Comment[gl]=Estableceuse automaticamente unha conexión nova
Comment[he]=נוצר חיבור חדש באופן אוטומטי
Comment[hi]=नया कनेक्शन स्वचलित स्थापित
Comment[hne]=नवा कनेक्सन अपने अपन स्थापित
@@ -800,7 +823,7 @@ Comment[x-test]=xxNew connection automatically establishedxx
Comment[zh_CN]=自动建立新连接
Comment[zh_HK]=已自動建立新連線
Comment[zh_TW]=新連線自動建立
Action=None
Action=Popup
[Event/TooManyConnections]
Name=Too Many Connections
@@ -810,6 +833,7 @@ Name[cs]=Příliš mnoho spojení
Name[da]=For mange forbindelser
Name[de]=Zu viele Verbindungen
Name[el]=Πάρα πολλές συνδέσεις
Name[en_GB]=Too Many Connections
Name[eo]=Tro multaj konektoj
Name[es]=Demasiadas conexiones
Name[et]=Liiga palju ühendusi
@@ -817,9 +841,10 @@ Name[eu]=Konexio gehiegi
Name[fi]=Liikaa yhteyksiä
Name[fr]=Trop de connexions
Name[ga]=An Iomarca Ceangal
Name[gl]=Demasiadas conexóns
Name[gl]=Hai demasiadas conexións
Name[hi]=बहुत सारे कनेक्शन
Name[hne]=बहुत अकन कनेक्सन
Name[hr]=Previše veza
Name[hu]=Túl sok kapcsolat
Name[is]=Of margar tengingar
Name[it]=Troppe connessioni
@@ -859,6 +884,7 @@ Comment[cy]=Prysur, gwrthodwyd y cysylltiad
Comment[da]=Optaget, forbindelse afslået
Comment[de]=Beschäftigt, Verbindung abgelehnt
Comment[el]=Απασχολημένος, η σύνδεση απορρίφθηκε
Comment[en_GB]=Busy, connection refused
Comment[eo]=Okupata, konekto rifuzita
Comment[es]=Ocupado, conexión rechazada
Comment[et]=Hõivatud, ühendusest keelduti
@@ -866,7 +892,7 @@ Comment[eu]=Lanpetuta, konexioa ukatu da
Comment[fi]=Varattu, yhteys hylättiin
Comment[fr]=Occupé, connexion refusée
Comment[ga]=Gnóthach; ceangal diúltaithe
Comment[gl]=Ocupado, a conexón foi recusada
Comment[gl]=Ocupado; a conexión foi rexeitada
Comment[he]=תפוס, החיבור נדחה
Comment[hi]=व्यस्त, कनेक्शन अस्वीकृत
Comment[hne]=व्यस्त, कनेक्सन अस्वीकृत
@@ -908,8 +934,7 @@ Comment[x-test]=xxBusy, connection refusedxx
Comment[zh_CN]=对方处于忙碌状态,连接被拒绝
Comment[zh_HK]=忙碌,已拒絕連線
Comment[zh_TW]=忙碌,連線被拒
Action=None
default_logfile=
Action=Popup
[Event/UnexpectedConnection]
Name=Unexpected Connection
@@ -919,6 +944,7 @@ Name[cs]=Neočekávané spojení
Name[da]=Uventet forbindelse
Name[de]=Unerwartete Verbindung
Name[el]=Μη αναμενόμενη σύνδεση
Name[en_GB]=Unexpected Connection
Name[eo]=Neatendita konekto
Name[es]=Conexión inesperada
Name[et]=Ootamatu ühendus
@@ -926,9 +952,10 @@ Name[eu]=Ustekabeko konexioa
Name[fi]=Odottamaton yhteys
Name[fr]=Connexion inattendue
Name[ga]=Ceangal Gan Choinne
Name[gl]=Conexón non agardada
Name[gl]=Conexión non agardada
Name[hi]=अप्रत्याशित कनेक्शन
Name[hne]=अप्रत्यासित कनेक्सन
Name[hr]=Neočekivana veza
Name[hu]=Nem várt kapcsolat
Name[is]=Óvænt Tenging
Name[it]=Connessione inaspettata
@@ -967,6 +994,7 @@ Comment[cy]=Derbynwyd cysylltiad annisgwyl,terfynu
Comment[da]=Modtog uventet forbindelse, afbrød
Comment[de]=Unerwartete Verbindung hergestellt, Abbruch
Comment[el]=Λήφθηκε μια μη αναμενόμενη σύνδεση· εγκατάλειψη
Comment[en_GB]=Received unexpected connection, abort
Comment[eo]=Ricevis neatenditan konekton, ĉesi
Comment[es]=Recibida conexión inesperada, interrumpir
Comment[et]=Saadi ootamatu ühendus, loobuti
@@ -974,7 +1002,7 @@ Comment[eu]=Ustegabeko konexioa jaso da, abortatzen
Comment[fi]=Vastaanotettiin odottamaton yhteys, lopeta
Comment[fr]=Reçu une connexion inattendue, interruption
Comment[ga]=Fuarthas ceangal gan choinne, á thobscor
Comment[gl]=Recebiuse unha conexón non agardada, abortouse
Comment[gl]=Recibiuse unha conexión non agardada; cancélase
Comment[he]=נתקבל חיבור בלתי צפוי, בוטל
Comment[hi]=अप्रत्याशित कनेक्शन प्राप्त. छोड़ा
Comment[hne]=अप्रत्यासित कनेक्सन प्राप्त. छोड़ा
@@ -1013,4 +1041,4 @@ Comment[x-test]=xxReceived unexpected connection, abortxx
Comment[zh_CN]=收到意外连接,已中止
Comment[zh_HK]=接收到非預期的連線,中止
Comment[zh_TW]=已接收到未知的連線,中止。
Action=None
Action=Popup

View File

@@ -29,6 +29,7 @@
#include "connectioncontroller.h"
#include "framebuffer.h"
#include "framebuffermanager.h"
#include "krfbconfig.h"
#include "invitationmanager.h"
@@ -117,9 +118,9 @@ static void clipboardHook(char* str,int len, rfbClientPtr cl)
class KrfbServer::KrfbServerP {
public:
KrfbServerP() : fb(0), screen(0), numClients(0) {};
KrfbServerP() : screen(0), numClients(0) {};
FrameBuffer *fb;
QSharedPointer<FrameBuffer> fb;
QList< QPointer<ConnectionController> > controllers;
rfbScreenInfoPtr screen;
int numClients;
@@ -144,7 +145,7 @@ KrfbServer::KrfbServer()
:d(new KrfbServerP)
{
kDebug() << "starting ";
d->fb = FrameBuffer::getFrameBuffer(QApplication::desktop()->winId(), this);
d->fb = FrameBufferManager::instance()->frameBuffer(QApplication::desktop()->winId());
QTimer::singleShot(0, this, SLOT(startListening()));
connect(InvitationManager::self(), SIGNAL(invitationNumChanged(int)),SLOT(updatePassword()));
}
@@ -164,9 +165,14 @@ void KrfbServer::startListening()
int w = d->fb->width();
int h = d->fb->height();
int depth = d->fb->depth();
int bpp = depth >> 3;
if (bpp != 1 && bpp != 2 && bpp != 4) bpp = 4;
kDebug() << "bpp: " << bpp;
rfbLogEnable(0);
screen = rfbGetScreen(0, 0, w, h, 8, 3,depth / 8);
screen = rfbGetScreen(0, 0, w, h, 8, 3, bpp);
screen->paddedWidthInBytes = d->fb->paddedWidth();
d->fb->getServerFormat(screen->serverFormat);
@@ -232,8 +238,7 @@ void KrfbServer::shutdown()
{
rfbShutdownServer(d->screen, true);
// framebuffer has to be deleted before X11 connection goes down
delete d->fb;
d->fb = 0;
d->fb.clear();
}
@@ -241,7 +246,9 @@ void KrfbServer::enableDesktopControl(bool enable)
{
foreach (QPointer<ConnectionController> ptr, d->controllers) {
if (ptr) {
ptr->setControlEnabled(enable);
if (ptr->controlCanBeEnabled()) {
ptr->setControlEnabled(enable);
}
}
}
}
@@ -254,6 +261,7 @@ enum rfbNewClientAction KrfbServer::handleNewClient(struct _rfbClientRec * cl)
d->controllers.append(cc);
cc->setControlEnabled(KrfbConfig::allowDesktopControl());
cc->setControlCanBeEnabled(KrfbConfig::allowDesktopControl());
connect(cc, SIGNAL(sessionEstablished(QString)), SIGNAL(sessionEstablished(QString)));
connect(cc, SIGNAL(clientDisconnected(ConnectionController *)),SLOT(clientDisconnected(ConnectionController *)));
@@ -304,8 +312,11 @@ void KrfbServer::clientDisconnected(ConnectionController *cc)
kDebug() << "clients--: " << d->numClients;
if (!--d->numClients) {
d->fb->stopMonitor();
kDebug() << "stopMonitor: d->numClients = " << d->numClients;
}
disconnect(cc, SIGNAL(clientDisconnected(ConnectionController)),this, SLOT(clientDisconnected(ConnectionController)));
disconnect(cc, SIGNAL(clientDisconnected(ConnectionController*)),this, SLOT(clientDisconnected(ConnectionController*)));
Q_EMIT sessionFinished();
}

View File

@@ -12,9 +12,6 @@
<property name="windowTitle" >
<string>Manage Invitations - Desktop Sharing</string>
</property>
<property name="windowIcon" >
<iconset/>
</property>
<layout class="QGridLayout" >
<item row="0" column="1" colspan="2" >
<widget class="QLabel" name="TextLabel2" >

View File

@@ -28,6 +28,7 @@
#include <KConfigDialog>
#include <KMessageBox>
#include <KToolInvocation>
#include <KSystemTimeZone>
// settings dialog
#include "ui_configtcp.h"
@@ -146,12 +147,13 @@ void ManageInvitationsDialog::inviteByMail()
"Otherwise you can use any VNC client with the following parameters:\n\n"
"Host: %2:%3\n"
"Password: %4\n\n"
"For security reasons this invitation will expire at %5.")
"For security reasons this invitation will expire at %5 (%6).")
.subs(invUrl.url())
.subs(host)
.subs(QString::number(port))
.subs(inv.password())
.subs(KGlobal::locale()->formatDateTime(inv.expirationTime()))
.subs(KSystemTimeZones::local().name())
.toString());
}

View File

@@ -24,19 +24,20 @@
#include <kglobal.h>
#include <kactioncollection.h>
#include <kaboutapplicationdialog.h>
#include <KNotification>
#include "manageinvitationsdialog.h"
#include "invitedialog.h"
TrayIcon::TrayIcon(KDialog *d)
: KSystemTrayIcon(d),
: KStatusNotifierItem(d),
quitting(false)
{
setIcon(KIcon("krfb").pixmap(22, 22, KIcon::Disabled));
setToolTip(i18n("Desktop Sharing - disconnected"));
setIconByPixmap(KIcon("krfb").pixmap(22, 22, KIcon::Disabled));
setToolTipTitle(i18n("Desktop Sharing - disconnected"));
setCategory(KStatusNotifierItem::ApplicationStatus);
// manageInvitationsAction = new KAction(i18n("Manage &Invitations"), &actionCollection);
// actionCollection.addAction("manage_invitations", manageInvitationsAction);
// connect(manageInvitationsAction, SIGNAL(triggered(bool)), SLOT(showManageInvitations()));
@@ -54,7 +55,6 @@ TrayIcon::TrayIcon(KDialog *d)
contextMenu()->addSeparator();
contextMenu()->addAction(KStandardAction::aboutApp(this, SLOT(showAbout()), actionCollection()));
show();
}
TrayIcon::~TrayIcon()
@@ -74,12 +74,13 @@ void TrayIcon::prepareQuit()
void TrayIcon::showConnectedMessage(const QString &host)
{
setIcon(KIcon("krfb"));
KPassivePopup::message(i18n("Desktop Sharing"),
i18n("The remote user has been authenticated and is now connected."),
KIcon("krfb").pixmap(22, 22),
this);
setToolTip(i18n("Desktop Sharing - connected with %1", host));
setIconByPixmap(KIcon("krfb"));
KNotification::event("UserAcceptsConnection",
i18n("The remote user %1 is now connected.",
host));
setToolTipTitle(i18n("Desktop Sharing - connected with %1", host));
setStatus(KStatusNotifierItem::Active);
}
void TrayIcon::showDisconnectedMessage()
@@ -87,13 +88,13 @@ void TrayIcon::showDisconnectedMessage()
if (quitting)
return;
setToolTip(i18n("Desktop Sharing - disconnected"));
setIcon(KIcon("krfb").pixmap(22, 22, KIcon::Disabled));
KPassivePopup *p = KPassivePopup::message(i18n("Desktop Sharing"),
i18n("The remote user has closed the connection."),
KIcon("krfb").pixmap(22, 22, KIcon::Disabled),
this);
connect(p, SIGNAL(hidden()), this, SIGNAL(diconnectedMessageDisplayed()));
setToolTipTitle(i18n("Desktop Sharing - disconnected"));
setIconByPixmap(KIcon("krfb").pixmap(22, 22, KIcon::Disabled));
KNotification::event("ConnectionClosed", i18n("The remote user has closed the connection."));
setStatus(KStatusNotifierItem::Passive);
Q_EMIT disconnectedMessageDisplayed();
}
void TrayIcon::setDesktopControlSetting(bool b)

View File

@@ -18,10 +18,10 @@
#ifndef TRAYICON_H
#define TRAYICON_H
#include <ksystemtrayicon.h>
#include <kpassivepopup.h>
#include <KActionCollection>
#include <KToggleAction>
#include <kstatusnotifieritem.h>
class KDialog;
@@ -30,7 +30,7 @@ class KDialog;
* @author Tim Jansen
*/
class TrayIcon : public KSystemTrayIcon {
class TrayIcon : public KStatusNotifierItem {
Q_OBJECT
public:
TrayIcon(KDialog*);
@@ -38,7 +38,7 @@ public:
signals:
void diconnectedMessageDisplayed();
void disconnectedMessageDisplayed();
void enableDesktopControl(bool);
void quitApp();