Compare commits

..

11 Commits

Author SHA1 Message Date
nobody
0bd0f55e52 This commit was manufactured by cvs2svn to create tag
'KDE_3_2_3_RELEASE'.

svn path=/tags/KDE_3_2_3_RELEASE/kdenetwork/krfb/; revision=316997
2004-06-02 07:33:03 +00:00
Script Kiddy
11cb05b2e7 CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=315769
2004-05-29 12:55:57 +00:00
Script Kiddy
bd7ac182e3 CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=306155
2004-04-24 23:33:35 +00:00
Tim Jansen
3df37f41e6 backport fix for #77412
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=300241
2004-03-31 21:52:45 +00:00
Dirk Mueller
ff143ee6b2 fix --enable-final
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=299685
2004-03-29 23:42:29 +00:00
Script Kiddy
5e27538d7a CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=296869
2004-03-18 13:51:27 +00:00
Script Kiddy
c2814dabfc CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=293567
2004-03-04 13:13:07 +00:00
Script Kiddy
ea61bef84e CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=293327
2004-03-03 13:51:58 +00:00
Script Kiddy
45ee1bbbf6 CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=292553
2004-02-29 16:00:14 +00:00
Script Kiddy
e97f9e63c4 CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=287166
2004-02-11 17:13:27 +00:00
Script Kiddy
1ac245cc55 CVS_SILENT made messages
svn path=/branches/KDE_3_2_BRANCH/kdenetwork/krfb/; revision=283870
2004-01-30 18:26:51 +00:00
121 changed files with 3412 additions and 1841 deletions

View File

@@ -1,8 +0,0 @@
add_subdirectory( srvloc )
add_subdirectory( kinetd )
add_subdirectory( libvncserver )
add_subdirectory( krfb )
add_subdirectory( kcm_krfb )
add_subdirectory( krfb_httpd )

8
Makefile.am Normal file
View File

@@ -0,0 +1,8 @@
SUBDIRS = srvloc kinetd libvncserver krfb kcm_krfb krfb_httpd
EXTRA_DIST = AUTHORS README TODO NOTES DCOP-INTERFACE
# not a GNU package. You can remove this line, if
# have all needed files, that a GNU package needs
AUTOMAKE_OPTIONS = foreign

View File

@@ -1,16 +0,0 @@
########### install files ###############
#original Makefile.am contents follow:
#
#KDE_LANG = en
#KDE_DOCS = AUTO
#

4
doc/Makefile.am Executable file
View File

@@ -0,0 +1,4 @@
KDE_LANG = en
KDE_DOCS = AUTO

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 48 KiB

13
doc/index.docbook Normal file → Executable file
View File

@@ -25,9 +25,10 @@ as Authors, publish date, the abstract, and Keywords -->
&Brad.Hards;
&Brad.Hards.mail;
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
<copyright>
<year>2003</year>
<holder>&Brad.Hards;</holder>
@@ -112,7 +113,7 @@ to help you perform a task.
<para>
Please report any problems or feature requests to the &kde; mailing
lists or file a bug at <ulink
url="http://bugs.kde.org">http://bugs.kde.org</ulink>.
url="http://bugs.kde.org">http://www.bugs.kde.org</ulink>.
</para>
</chapter>
@@ -368,10 +369,10 @@ as &krdc;.
</para>
<para>
The <guilabel>Allow uninvited connections</guilabel> check box controls
The <guilabel>Allow uninvited connections</guilabel> checkbox controls
whether &krfb; allows connection without an invitation. If uninvited
connections are allowed, then you should probably specify a
password. You can also use the check boxes here to choose whether you
password. You can also use the checkboxes here to choose whether you
have to confirm the connection before it proceeds, and whether the
person connecting can control the desktop, or only view.
</para>
@@ -396,7 +397,7 @@ password is securely guarded.
<para>
&krfb; allows you to control whether the background image is passed to
the client, or not. This is controlled using a check box in the
the client, or not. This is controlled using a checkbox in the
<guilabel>Session</guilabel> tab, as shown below.
</para>
@@ -492,7 +493,7 @@ Connection</guibutton>, then the attempt to connect will be terminated.
<para>
The <guilabel>Allow remote user to control keyboard and
mouse</guilabel> check box determines whether this client can only
mouse</guilabel> checkbox determines whether this client can only
observe, or can take control of your machine.
</para>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View File

@@ -1,50 +0,0 @@
########### next target ###############
set(kcm_krfb_PART_SRCS kcm_krfb.cpp )
kde4_automoc(${kcm_krfb_PART_SRCS})
kde4_add_ui_files(kcm_krfb_PART_SRCS configurationwidget.ui )
kde4_add_plugin(kcm_krfb ${kcm_krfb_PART_SRCS})
kde4_install_libtool_file( ${PLUGIN_INSTALL_DIR} kcm_krfb )
target_link_libraries(kcm_krfb ${KDE4_KIO_LIBS} krfbconfig )
install(TARGETS kcm_krfb DESTINATION ${PLUGIN_INSTALL_DIR})
########### install files ###############
install( FILES kcmkrfb.desktop DESTINATION ${XDG_APPS_DIR})
#original Makefile.am contents follow:
#METASOURCES = AUTO
#
## Code
#kde_module_LTLIBRARIES = kcm_krfb.la
#
#kcm_krfb_la_SOURCES = configurationwidget.ui kcm_krfb.cpp
#kcm_krfb_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module
#kcm_krfb_la_LIBADD = ../krfb/libkrfbconfig.la $(LIB_KDEUI) -lkio
#
## Services
#xdg_apps_DATA = kcmkrfb.desktop
#
#EXTRA_DIST = $(kcm_krfb_la_SOURCES)\
# $(xdg_apps_DATA)
#
## set the include path for X, qt and KDE
#INCLUDES= -I../krfb $(all_includes)
#
#messages: rc.cpp
# $(XGETTEXT) *.cpp *.h -o $(podir)/kcm_krfb.pot

20
kcm_krfb/Makefile.am Normal file
View File

@@ -0,0 +1,20 @@
METASOURCES = AUTO
# Code
kde_module_LTLIBRARIES = kcm_krfb.la
kcm_krfb_la_SOURCES = configurationwidget.ui kcm_krfb.cpp
kcm_krfb_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module
kcm_krfb_la_LIBADD = ../krfb/libkrfbconfig.la $(LIB_KDEUI)
# Services
xdg_apps_DATA = kcmkrfb.desktop
EXTRA_DIST = $(kcm_krfb_la_SOURCES)\
$(xdg_apps_DATA)
# set the include path for X, qt and KDE
INCLUDES= -I../krfb $(all_includes)
messages: rc.cpp
$(XGETTEXT) *.cpp *.h -o $(podir)/kcm_krfb.pot

View File

@@ -1,2 +0,0 @@
#! /bin/sh
$XGETTEXT *.cpp *.h -o $podir/kcm_krfb.pot

View File

@@ -50,6 +50,12 @@
<property name="name">
<cstring>GroupBox1</cstring>
</property>
<property name="frameShape">
<enum>Box</enum>
</property>
<property name="frameShadow">
<enum>Sunken</enum>
</property>
<property name="title">
<string>Invitations</string>
</property>
@@ -414,10 +420,10 @@
<property name="value">
<number>5900</number>
</property>
<property name="minimum">
<property name="minValue">
<number>1024</number>
</property>
<property name="maximum">
<property name="maxValue">
<number>32767</number>
</property>
<property name="toolTip" stdset="0">
@@ -496,13 +502,6 @@ Most VNC clients use a display number instead of the actual port. This display n
<tabstop>portInput</tabstop>
</tabstops>
<layoutdefaults spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>KIntNumInput</class>
<header location="global">knuminput.h</header>
<container>0</container>
</customwidget>
</customwidgets>
<includehints>
<includehint>knuminput.h</includehint>
<includehint>knuminput.h</includehint>

View File

@@ -25,6 +25,7 @@
#include <qradiobutton.h>
#include <qlineedit.h>
#include <qbuttongroup.h>
#include <qcstring.h>
#include <qdatastream.h>
#include <kapplication.h>
#include <kdialog.h>
@@ -44,33 +45,30 @@ typedef KGenericFactory<KcmKRfb, QWidget> KcmKRfbFactory;
// Can't use K_EXPORT_COMPONENT_FACTORY, since insertCatalogue necessary
extern "C" {
KDE_EXPORT void *init_kcm_krfb() {
KGlobal::locale()->insertCatalog("krfb"); // For invitation translations
void *init_kcm_krfb() {
KGlobal::locale()->insertCatalogue("krfb"); // For invitation translations
return new KcmKRfbFactory("kcm_krfb");
}
}
KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) :
KCModule(KcmKRfbFactory::instance(), p),
KCModule(KcmKRfbFactory::instance(), p, name),
m_configuration(KRFB_CONFIGURATION_MODE) {
m_confWidget = new ConfigurationWidget(this);
QVBoxLayout *l = new QVBoxLayout(this);
l->setSpacing(KDialog::spacingHint());
l->setMargin(0);
QVBoxLayout *l = new QVBoxLayout(this, 0, KDialog::spacingHint());
l->add(m_confWidget);
setButtons(Default|Apply|Reset);
KAboutData* about = new KAboutData( "kcm_krfb", I18N_NOOP("Desktop Sharing Control Module"),
m_about = new KAboutData( "kcm_krfb", I18N_NOOP("Desktop Sharing Control Module"),
VERSION,
I18N_NOOP("Configure desktop sharing"), KAboutData::License_GPL,
"(c) 2002, Tim Jansen\n",
0, "http://www.tjansen.de/krfb", "tim@tjansen.de");
about->addAuthor("Tim Jansen", 0, "tim@tjansen.de");
setAboutData( about );
m_about->addAuthor("Tim Jansen", 0, "tim@tjansen.de");
load();
@@ -88,6 +86,9 @@ KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) :
setInvitationNum(m_configuration.invitations().size());
connect(m_confWidget->disableBackgroundCB, SIGNAL(clicked()), SLOT(configChanged()) );
}
KcmKRfb::~KcmKRfb() {
delete m_about;
}
void KcmKRfb::configChanged() {
emit changed(true);
@@ -97,7 +98,7 @@ void KcmKRfb::setInvitationNum(int num) {
if (num == 0)
m_confWidget->invitationNumLabel->setText(i18n("You have no open invitation."));
else
m_confWidget->invitationNumLabel->setText(i18n("Open invitations: %1", num));
m_confWidget->invitationNumLabel->setText(i18n("Open invitations: %1").arg(num));
}
void KcmKRfb::checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
@@ -107,8 +108,8 @@ void KcmKRfb::checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
DCOPClient *d = KApplication::dcopClient();
QByteArray sdata, rdata;
DCOPCString replyType;
QDataStream arg(&sdata, QIODevice::WriteOnly);
QCString replyType;
QDataStream arg(sdata, IO_WriteOnly);
arg << QString("krfb");
if (!d->call ("kded", "kinetd", "isInstalled(QString)", sdata, replyType, rdata))
return;
@@ -116,7 +117,7 @@ void KcmKRfb::checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
if (replyType != "bool")
return;
QDataStream answer(&rdata, QIODevice::ReadOnly);
QDataStream answer(rdata, IO_ReadOnly);
answer >> krfbAvailable;
kinetdAvailable = true;
}
@@ -152,7 +153,6 @@ void KcmKRfb::save() {
m_configuration.setPreferredPort(m_confWidget->portInput->value());
m_configuration.setDisableBackground(m_confWidget->disableBackgroundCB->isChecked());
m_configuration.save();
kapp->dcopClient()->emitDCOPSignal("KRFB::ConfigChanged", "KRFB_ConfigChanged()", QByteArray());
emit changed(false);
}
@@ -171,6 +171,11 @@ void KcmKRfb::defaults() {
emit changed(true);
}
const KAboutData *KcmKRfb::aboutData() const
{
return m_about;
}
QString KcmKRfb::quickHelp() const
{
return i18n("<h1>Desktop Sharing</h1> This module allows you to configure"

View File

@@ -30,14 +30,17 @@ class KcmKRfb : public KCModule {
private:
Configuration m_configuration;
ConfigurationWidget *m_confWidget;
KAboutData *m_about;
void checkKInetd(bool&, bool&);
public:
KcmKRfb(QWidget *p, const char *name, const QStringList &);
~KcmKRfb();
void load();
void save();
void defaults();
QString quickHelp() const;
const KAboutData *aboutData() const;
private slots:
void setInvitationNum(int num);
void configChanged();

View File

@@ -10,14 +10,148 @@ X-KDE-Library=krfb
X-KDE-ParentApp=kcontrol
Name=Desktop Sharing
Name[af]=Werkskerm Deeling
Name[ar]=مشاركة سطح المكتب
Name[bg]=Споделяне на работно място
Name[bs]=Dijeljenje desktopa
Name[ca]=Compartició de l'escriptori
Name[cs]=Sdílení pracovní plochy
Name[cy]=Rhannu Penbwrdd
Name[da]=Skrivebordsdeling
Name[de]=Arbeitsfläche freigeben
Name[el]=Κοινή χρήση επιφάνειας εργασίας
Name[eo]=Tabuloj komunaj
Name[es]=Compartición de escritorio
Name[et]=Töölaua jagamine
Name[fi]=Työpöydän jakaminen
Name[fr]=Partage de bureau
Name[x-test]=xxDesktop Sharingxx
Name[ga]=Roinnt Deisce
Name[gl]=Compartición do escritorio
Name[he]=שיתוף שולחנות עבודה
Name[hi]=डेस्कटॉप साझा
Name[hr]=Dijeljenje radne površine
Name[hu]=Munkaasztal-megosztás
Name[is]=Skjáborðamiðlun
Name[it]=Condivisione Desktop
Name[ja]=デスクトップ共有
Name[lt]=Dalinimasis darbastaliu
Name[mk]=Десктоп Делење
Name[mn]=Ажлын байрыг хамтран эзэмших
Name[ms]=Perkongsian Ruang Kerja
Name[mt]=Qsim tad-desktop
Name[nb]=Delte skrivebord
Name[nl]=Bureaubladvrijgave
Name[nn]=Skrivebordsdeling
Name[nso]=Kabagano ya Desktop
Name[pl]=Współdzielenie pulpitu
Name[pt]=Partilha do Ambiente de Trabalho
Name[pt_BR]=Compartilhamento do Desktop
Name[ro]=Partajare ecran
Name[ru]=Общий рабочий стол
Name[sk]=Zdieľanie pracovnej plochy
Name[sl]=Deljenje namizja
Name[sr]=Дељење радне површине
Name[sr@Latn]=Deljenje radne površine
Name[sv]=Dela ut skrivbordet
Name[ta]=மேசைமேல் பகிர்வு
Name[th]=ใช้งานพื้นที่ทำงานร่วมกัน
Name[tr]=Masaüstü Paylaşımı
Name[uk]=Спільні стільниці
Name[ven]=U kovhekana ha Desikithopo
Name[xh]=Ukwehlulelana kwe Desktop
Name[xx]=xxDesktop Sharingxx
Name[zh_CN]=桌面共享
Name[zh_TW]=桌面分享
Name[zu]=Ukwahlulelana kwe-Desktop
Comment=Configure Desktop Sharing
Comment[af]=Konfigureer Werkskerm Deeling
Comment[ar]=تعديل مشاركة سطح المكتب
Comment[bg]=Настройки на споделянето на работно място
Comment[bs]=Podesite dijeljenje desktopa
Comment[ca]=Lupa de l'escriptori
Comment[cs]=Nastavit sdílení pracovní plochy
Comment[cy]=Ffurfweddu Rhannu Penbwrdd
Comment[da]=Indstil skrivebordsdeling
Comment[de]=Freigabe der Arbeitsfläche einrichten
Comment[el]=Ρύθμιση του μοιράσματος της επιφάνειας εργασίας
Comment[eo]=Agordu fordonadon de viaj tabuloj
Comment[es]=Compartición de escritorio
Comment[et]=Töölaua jagamise seadistamine
Comment[fi]=Aseta työpöydän jakamista
Comment[fr]=Configuration du partage du bureau
Comment[x-test]=xxConfigure Desktop Sharingxx
Comment[ga]=Cumraigh Roinnt Deisce
Comment[gl]=Configura-la compartición do escritorio
Comment[he]=שינוי הגדרות שיתוף שולחנות העבודה
Comment[hi]=कॉन्फ़िगर डेस्कटॉप साझा
Comment[hr]=Podešavanje dijeljenja radne površine
Comment[hu]=A munkaasztal-megosztás beállításai
Comment[is]=Stilla skjáborðsmiðlun
Comment[it]=Configura condivisione desktop
Comment[ja]=デスクトップ共有の設定
Comment[lt]=Konfigūruoti dalinimąsi darbastaliu
Comment[mk]=Конфигурирај Десктоп Делење
Comment[mn]=Ажлын байрны хамтран эзэмших тохируулга
Comment[ms]= Selaraskan Perkongsian Desktop
Comment[nb]=Tilpass delte skrivebord
Comment[nl]=Bureaubladvrijgave instellen
Comment[nn]=Set opp skrivebordsdeling
Comment[nso]=Beakanya Kabagano ya Desktop
Comment[pl]=Konfiguracja współdzielenia pulpitu
Comment[pt]=Configura a Partilha do Ecrã
Comment[pt_BR]=Configurar Compartilhamento do Desktop
Comment[ru]=Параметры общего рабочего стола
Comment[sk]=Nastavenie zdieľania pracovnej plochy
Comment[sl]=Nastavi deljenje namizja
Comment[sr]=Подешавање дељења радне површине
Comment[sr@Latn]=Podešavanje deljenja radne površine
Comment[sv]=Anpassa utdelning av skrivbord
Comment[ta]=மேஜைமேல் பகிர்வை உள்ளமை
Comment[tr]=Masaüstü Paylaşımını Yapılandır
Comment[uk]=Налаштувати спільні стільниці
Comment[ven]=Dzudzanyani u kovhekana ha desikithopo
Comment[xh]=Qwalasela Ukusebenzisa ngokuhlangeneyo kwe Desktop
Comment[xx]=xxConfigure Desktop Sharingxx
Comment[zh_CN]=配置桌面共享
Comment[zh_TW]=設定桌面分享
Comment[zu]=Hlela kahle Ukwahlulelana kwe-Desktop
Keywords=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited
Keywords[ar]=مشاركة سطح المكتب,krfb,vnc,مشاركة,krdc,اتصال سطح مكتب بعيد,دعوة,منفذ,slp,غير مدعو
Keywords[bg]=споделяне,работно,място,десктоп,покана,връзка,desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited
Keywords[bs]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,dijeljenje desktopa,dijeljenje,udaljeni dekstop,poziv,nepozvan
Keywords[ca]=compartició de l'escriptori,krfb,vnc,compartir,krdc,connexió a l'escriptori remot,invitació,port,slp,no invitat
Keywords[cs]=sdílení plochy,krfb,vnc,sdílení,rdp,krdc,připojení vzdálené plochy,pozvánka,port,slp
Keywords[cy]=rhannu penbwrdd,krfb,vnc,rhannu,rdp,krdc,cysylltiad penbwrdd pell,gwahoddiad,porth,slp,heb wahoddiad
Keywords[da]=skrivebordsdeling,krfb,vnc,deling,krdc,ekstern skrivebordsforbindelse,invitation,port,slp,ikke inviteret
Keywords[de]=Arbeitsfläche freigeben,krfb,VNC,freigeben,krdc,Entfernte Arbeitsfläche,Einladung,Port,slp,uneingeladen
Keywords[el]=κοινή χρήση επιφάνειας εργασίας,krfb,vnc,κοινή χρήση,krdc,σύνδεση σε απομακρυσμένη επιφάνεια εργασίας,πρόσκληση,θύρα,slp,απρόσκλητο
Keywords[es]=compartición de escritorio,krfb,vnc,compartir,rdp,krdc, conexión escritorio remoto,invitación,puerto,slp,no invitado
Keywords[et]=töölaua jagamine,krfb,vnc,jagamine,rdp,krdc,kaugtöölaua ühendus,rdp,kutse,port,slp,kutsumata
Keywords[fi]=työpöydän jakaminen,krfb,vnc,jakaminen,krdc,etätyöpöytäyhteys, kutsu,portti,slp,kutsumaton
Keywords[fr]=partage de bureau,krfb,vnc,partage,rdp,krdc,connexion à un bureau distant,invitation,port,slp,non invité
Keywords[x-test]=xxdesktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvitedxx
Keywords[gl]=compartición de escritorio, vnc, compartir, krdc, conexión escritorio remoto, invitación, porto, slt
Keywords[he]=שיתוף שולחן עבודה,krfb,vnc,שיתוף,rdp,krdc,חיבור לשולחן עבודה מרוחק,rdp
Keywords[hi]=डेस्कटॉप साझा, केआरएफबी,वीएनसी,साझा,केआरडीसी,रिमोट डेस्कटॉप कनेक्शन,निमंत्रण,पोर्ट,एसएलपी,अनिमंत्रित
Keywords[hu]=munkaasztal-megosztás,krfb,vnc,megosztás,krdc,csatlakozás távoli munkaasztalhoz,meghívás,port,slp,meghívás nélkül
Keywords[is]=skjáborðsmiðlun,miðlun,krfb,vnc,rdp,krdc,fjarvinnsla,remote desktop connection,rdp
Keywords[it]=condivisione desktop,krfb,vnc,condivisione,krdc,connessione desktop remoto,invito,porta,slp,non invitato
Keywords[ja]=デスクトップ共有,krfb,vnc,共有,rdp,krdc,リモートデスクトップ接続,invitation,port,slp,uninvited
Keywords[ms]= perkongsian ruang kerja, sambungan, liang, desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited
Keywords[nb]=skrivebordsdeling,krfb,vnc,deling,krdc,tilkobling til fjernt skrivebord,invitasjon,port,slp,ikke invitert
Keywords[nl]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,uitnodiging,slp,rdp,verbinding,bureaubladvrijgave,bureaublad op afstand
Keywords[nn]=skrivebordsdeling,krfb,vnc,deling,krdc,nettverksskrivebord,invitasjon,port,slp,ikkje invitert
Keywords[pl]=współdzielenie pulpitu,krfb,vnc,współdzielenie,rdp,krdc,zdalne połączenie, zdalne biurko, zdalny pulpit, zaproszenie,port,slp
Keywords[pt]=partilha do ecrã,krfb,vnc,partilha,krdc,ligação a um ecrã remoto,convite,porto,slp,sem convite
Keywords[pt_BR]=compartilhamento de desktop,krfb,vnc,compartilhamento,krdc,conexão a desktop remoto,convite,porta,slp,não convidado
Keywords[sk]=zdieľanie plochy,krfb,vnc,zdieľanie,rdp,krdc,pripojenie vzdialenej pracovnej plochy,rdp
Keywords[sl]=namizje,souporaba,krfb,vnc,krdc,povezava oddaljenega namizja, povabilo,port,slp,nepovabljen
Keywords[sr]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,радна површина,дељење,позив,порт,непозван,удаљено
Keywords[sr@Latn]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,radna površina,deljenje,poziv,port,nepozvan,udaljeno
Keywords[sv]=dela skrivbord,krfb,vnc,dela,krdc,fjärrskrivbordsanslutning,inbjudan,port,slp
Keywords[ta]=மேஜைமேல் பகிர்வு,krfb,vnc,பகிர்வு,krdc,தொலை மேஜைமேல் இணைப்பு,அழைப்பிதழ்,துரை,slp,uninvited
Keywords[tr]=masaüstü paylaşımı,krfb,vnc,paylaşım,krdc,uzak masaüstü bağlantısı,davet,port,slp
Keywords[uk]=спільні стільниці,krfb,vnc,спільний,rdp,krdc,з'єднання віддаленої стільниці,запрошення,rdp,slp,без запрошення
Keywords[xx]=xxdesktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvitedxx
Keywords[zh_CN]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,桌面共享,共享,远程桌面连接,邀请,端口,未邀请
Categories=Qt;KDE;X-KDE-settings-network;
Categories=Qt;KDE;X-KDE-settings-network

View File

@@ -1,59 +0,0 @@
include_directories( ${CMAKE_SOURCE_DIR}/krfb/srvloc )
########### next target ###############
set(kded_kinetd_PART_SRCS kinetd.cpp )
kde4_automoc(${kded_kinetd_PART_SRCS})
kde4_add_dcop_skels(kded_kinetd_PART_SRCS kinetd.h )
kde4_add_plugin(kded_kinetd ${kded_kinetd_PART_SRCS})
kde4_install_libtool_file( ${PLUGIN_INSTALL_DIR} kded_kinetd )
target_link_libraries(kded_kinetd ${KDE4_KIO_LIBS} srvloc ${KDE4_KDNSSD_LIBS} )
install(TARGETS kded_kinetd DESTINATION ${PLUGIN_INSTALL_DIR})
########### install files ###############
install( FILES kinetdmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
install( FILES kinetd.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded)
#original Makefile.am contents follow:
#METASOURCES = AUTO
#
## Code
#kde_module_LTLIBRARIES = kded_kinetd.la
#
#kded_kinetd_la_SOURCES = kinetd.cpp kinetd.skel
#kded_kinetd_la_LDFLAGS = $(all_libraries) -module -avoid-version
#kded_kinetd_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KIO) $(LIB_KDNSSD)
#
## Services
#kde_servicetypes_DATA = kinetdmodule.desktop
#kdeddir = $(kde_servicesdir)/kded
#kded_DATA = kinetd.desktop
#
#EXTRA_DIST = $(kded_kinetd_la_SOURCES)\
# $(kded_DATA) \
# $(kde_servicetypes_DATA) \
# eventsrc README.debugging
#
#install-data-local:
# $(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kinetd
# $(INSTALL_DATA) $(srcdir)/eventsrc $(DESTDIR)$(kde_datadir)/kinetd/eventsrc
#
## set the include path for X, qt and KDE
#INCLUDES= -I$(top_srcdir)/krfb/srvloc $(all_includes)
#
#messages: rc.cpp
# $(XGETTEXT) *.cpp -o $(podir)/kinetd.pot

30
kinetd/Makefile.am Normal file
View File

@@ -0,0 +1,30 @@
METASOURCES = AUTO
# Code
kde_module_LTLIBRARIES = kded_kinetd.la
kded_kinetd_la_SOURCES = kinetd.cpp kinetd.skel
kded_kinetd_la_LDFLAGS = $(all_libraries) -module -avoid-version
kded_kinetd_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KIO)
# Services
kde_servicetypes_DATA = kinetdmodule.desktop
kdeddir = $(kde_servicesdir)/kded
kded_DATA = kinetd.desktop
EXTRA_DIST = $(kded_kinetd_la_SOURCES)\
$(kded_DATA) \
$(kde_servicetypes_DATA) \
eventsrc README.debugging
KDE_ICON = kinetd
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kinetd
$(INSTALL_DATA) $(srcdir)/eventsrc $(DESTDIR)$(kde_datadir)/kinetd/eventsrc
# set the include path for X, qt and KDE
INCLUDES= -I$(top_srcdir)/krfb/srvloc $(all_includes)
messages: rc.cpp
$(XGETTEXT) *.cpp -o $(podir)/kinetd.pot

View File

@@ -1,2 +0,0 @@
#! /bin/sh
$XGETTEXT *.cpp -o $podir/kinetd.pot

View File

@@ -1,22 +1,217 @@
[!Global!]
IconName=kinetd
Comment=KInetD
Comment[x-test]=xxKInetDxx
Comment[hi]=के-इनिट-डी
Comment[sv]=Kinetd
Comment[xx]=xxKInetDxx
[IncomingConnection]
Name=IncomingConnection
Name[ar]=اتصال وارد
Name[bg]=Входяща връзка
Name[ca]=Connexió entrant
Name[cs]=Příchozí spojení
Name[cy]=CysylltiadCyrraedd
Name[da]=IndkommendeForbindelse
Name[de]=Eingehende Verbindung
Name[el]=Εισερχόμενη σύνδεση
Name[eo]=EnvenantaKonekto
Name[es]=Conexión entrante
Name[et]=Sissetulev ühendus
Name[fi]=Saapuva yhteys
Name[fr]=Connexion entrante
Name[x-test]=xxIncomingConnectionxx
Name[ga]=CeangalIsteach
Name[gl]=Conexión Entrante
Name[he]=חיבור נכנס
Name[hi]=आवक-कनेक्शन
Name[hr]=DolaznaVeza
Name[hu]=Bejövő kapcsolat
Name[it]=Connessioni in entrata
Name[ja]=外部からの接続
Name[lt]=Ateinantis prisijungimas
Name[mk]=ВлезнаВрска
Name[mn]=Орж ирсэн Холболт
Name[ms]=Sambungan Masuk
Name[mt]=KonnessjonijiDieħla
Name[nb]=Innkommende forbindelse
Name[nl]=Inkomende verbinding
Name[nn]=Innkomande samband
Name[nso]=Kopantsho yeo e Tsenago
Name[pl]=Połączenia przychodzące
Name[pt_BR]=Conexões de Entrada
Name[ro]=Conexiune de intrare
Name[ru]=Входящее соединение
Name[se]=Boahtti oktavuohta
Name[sk]=Prichádzajúce spojenia
Name[sl]=Prihajajoča povezava
Name[sr]=Долазећа веза
Name[sr@Latn]=Dolazeća veza
Name[sv]=Inkommande anslutning
Name[ta]=பல இணைப்புக்கள்
Name[th]=มีการเชื่อมต่อเข้ามา
Name[tr]=Gelen Bağlantı
Name[uk]=ВхіднеЗ'єднання
Name[ven]=Vhukwamanihanga ngomu
Name[xh]=Uxhumaniso Olungenayo
Name[xx]=xxIncomingConnectionxx
Name[zh_CN]=进入的连接
Name[zh_TW]=進來的連接
Name[zu]=UkuxhumanaOkuzayo
Comment=Received incoming connection
Comment[af]=Ontvang inkomende verbinding
Comment[ar]=تم استلام اتصال وارد
Comment[bg]=Получена е входяща връзка
Comment[bs]=Primio dolaznu konekciju
Comment[ca]=Rebuda connexió entrant
Comment[cs]=Obdrženo příchozí spojení
Comment[cy]=Derbynwyd cysylltiad a gyrhaeddodd
Comment[da]=Modtog indkommende forbindelse
Comment[de]=Verbindungsanfrage eingegangen
Comment[el]=Λήψη εισερχόμενης σύνδεσης
Comment[eo]=Ricevantaj envenantaj konektoj
Comment[es]=Recibida conexión entrante
Comment[et]=Saadi sissetulev ühendus
Comment[fi]=Vastaanotettiin saapuva yhteys
Comment[fr]=Reçu une connexion entrante
Comment[x-test]=xxReceived incoming connectionxx
Comment[gl]=Recibíuse unha conexión entrante
Comment[he]=נתקבל חיבור נכנס
Comment[hi]=आवक कनेक्शन प्राप्त
Comment[hr]=Primio dolaznu vezu
Comment[hu]=Csatlakozási kérés érkezett
Comment[is]=Tók á móti uppkalli
Comment[it]=Connessione in entrata stabilita
Comment[ja]=着信した外部からの接続
Comment[lt]=Gautas įeinantis prisijungimas
Comment[mk]=Примена влезна врска
Comment[mn]=Орж ирсэн Холболтыг хүлээн авав
Comment[ms]=Menerima sambungan masuk
Comment[mt]=Irċevejt konnessjoni dieħla
Comment[nb]=Motta innkommende forbindelse
Comment[nl]=Ontving een inkomende verbinding
Comment[nn]=Motta innkomande samband
Comment[nso]=Kopantsho yeo e amogetswego ya tseo di tsenago
Comment[pl]=Otrzymano połącznie przychodzące
Comment[pt]=Foi recebida uma ligação
Comment[pt_BR]=Recebendo conexão de entrada
Comment[ro]=Conexiune de intrare recepţionată
Comment[ru]=Входящее соединение завершилось успешно
Comment[sk]=Prijaté príchodzie spojenia
Comment[sl]=Prejeta je prihajajoča povezava
Comment[sr]=Примљена је долазећа веза
Comment[sr@Latn]=Primljena je dolazeća veza
Comment[sv]=Tar emot inkommande anslutning
Comment[ta]=எதிர்பாராத இணைப்பு ஏற்க்கப்ப்ட்டது
Comment[th]=ได้รับการเชื่อมต่อเข้ามา
Comment[tr]=Gelen bağlantı alınıyor
Comment[uk]=Отримано вхідне з'єднання
Comment[ven]=Vhukwamani hau dzhena ho tanganedzhwaho
Comment[xh]=Uxhulumano olungenayo olufunyenweyo
Comment[xx]=xxReceived incoming connectionxx
Comment[zh_CN]=收到进入的连接
Comment[zh_TW]=已接收的進來的連線
Comment[zu]=Ukuxhumanisa okungenayo okutholakele
default_presentation=4
[ProcessFailed]
Name=ProcessFailed
Name[ar]=فشلت العملية
Name[bg]=Процесът се провали
Name[ca]=Procés fallit
Name[cs]=Proces selhal
Name[cy]=MethoddProses
Name[da]=ProcesMislykkedes
Name[de]=Prozess fehlgeschlagen
Name[el]=Η επεξεργασία απέτυχε
Name[eo]=ProcezoFiaskis
Name[es]=Proceso fallido
Name[et]=Protsess ebaõnnestus
Name[fi]=Prosessi epäonnistui
Name[fr]=Échec du processus
Name[x-test]=xxProcessFailedxx
Name[ga]=PróiseasTeipthe
Name[gl]=Proceso fallido
Name[he]=תהליך נכשל
Name[hi]=प्रक्रिया-असफल
Name[hr]=ProcesNeuspješan
Name[hu]=Hibás folyamat
Name[it]=Processo fallito
Name[ja]=プロセス失敗
Name[lt]=Procesas nepavyko
Name[mk]=ПроцесотНеУспеа
Name[mn]=Ажиллагаа сүйрэв
Name[ms]=Proses Gagal
Name[mt]=ProċessFalla
Name[nb]=Prosess mislyktes
Name[nl]=Proces mislukt
Name[nn]=Prosess mislukkast
Name[nso]=Tiragalo e Paletswe
Name[pl]=Błąd procesu
Name[pt_BR]=Falha de Processo
Name[ro]=Proces eşuat
Name[ru]=Ошибка процесса
Name[se]=Proseassa filtii
Name[sk]=Proces neúspešny
Name[sl]=Proces ni uspel
Name[sr]=Процес није успео
Name[sr@Latn]=Proces nije uspeo
Name[sv]=Process misslyckades
Name[ta]=செயல் தோல்வியுற்றது
Name[th]=โปรเซสล้มเหลว
Name[uk]=ПомилкаПроцесу
Name[ven]=Tshitenwa tsho bala
Name[xh]=Inkqubo Yahlulekile
Name[xx]=xxProcessFailedxx
Name[zh_CN]=处理失败
Name[zh_TW]=程序失敗
Name[zu]=UkwenzekaKuhlulekile
Comment=Could not call process to handle connection
Comment[af]=Kon nie roep proses na handvatsel verbinding
Comment[ar]=لم أستطع استحضار العملية لحمل المكالمة
Comment[bg]=Процесът за обработка на входящи връзки не може да бъде стартиран
Comment[bs]=Ne mogu pokrenuti proces koji upravlja konekcijom
Comment[ca]=No es pot cridar al procés per a manejar la connexió
Comment[cs]=Nelze spustit proces k obsluze spojení
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 wurde nicht gefunden
Comment[el]=Δεν ήταν δυνατή η κλήση της διεργασίας για τον έλεγχο της σύνδεσης
Comment[eo]=Ne eblis lanĉi instancon por prizorgi la konekton
Comment[es]=Imposible lanzar proceso para manejar conexión
Comment[et]=Ei suuda käivitada protsessi ühenduse käsitsemiseks
Comment[fi]=Ei voitu kutsua prosessia yhteyden hoitamiseksi
Comment[fr]=Impossible d'appeler le processus pour gérer la connexion
Comment[x-test]=xxCould not call process to handle connectionxx
Comment[gl]=Non se puidcho chamar ó proceso para que atendese á conexión
Comment[he]=אין אפשרות לקרוא לתהליך על מנת לטפל בחיבור
Comment[hi]=कनेक्शन हैंडल करने हेतु प्रक्रिया काल नहीं कर सका
Comment[hr]=Nisam mogao pozvati proces za kontrolu veze
Comment[hu]=A kapcsolat kezelése nem sikerült
Comment[is]=Gat ekki kallað á forrit til að höndla tengingu
Comment[it]=Impossibile richiamare il processo per gestire la connessione
Comment[ja]=接続を扱うプロセスを呼び出せません
Comment[lt]=Negaliu iškviesti proceso prisijungimui apdoroti
Comment[mk]=Не може да повикам процес да ја превземе врската
Comment[mn]=Холболтыг заах ажиллагаагдуудаж чадаагүй
Comment[ms]=Tidak dapat memanggil proses untuk mengendalikan sambungan
Comment[mt]=Ma stajtx insejjaħ proċess biex jieħu ħsieb il-konnessjoni
Comment[nb]=Kunne ikke kalle en prosess for å håndtere forbindelsen
Comment[nl]=Het proces om de verbinding af te handelen kon niet worden aangeroepen
Comment[nn]=Klarte ikkje kalla prosess for sambandshandtering
Comment[nso]=Ebe ekase bitse tiragalo go swara kopantsho
Comment[pl]=Nie można było uruchomić procesu obsługi połączenia
Comment[pt]=Não foi possível chamar o processo de tratamento da ligação
Comment[pt_BR]=Não foi possível chamar o processo de controle da conexão
Comment[ru]=Не удается запустить процесс обработки соединения
Comment[sk]=Nemohol som zavolať proces pre spracovanie spojenia
Comment[sl]=Ni možno poklicati procesa za upravljanje s povezavo
Comment[sr]=Нисам могао да позовем процес да опслужи везу
Comment[sr@Latn]=Nisam mogao da pozovem proces da opsluži vezu
Comment[sv]=Kunde inte anropa process för att hantera anslutning
Comment[ta]=இணைப்பை கையாள செயற்பாட்டை அழைக்க முடியவில்லை
Comment[th]=ไม่สามารถเรียกโปรเซสเพื่อรับการเชื่อมต่อได้
Comment[uk]=Неможливо викликати процес для обробки з'єднання
Comment[ven]=Ingasi vhidze tshitenwa uitela u fara vhukwamani
Comment[xh]=Ayikwazanga ukubiza inkqubo ezakuphatha uxhulumano
Comment[xx]=xxCould not call process to handle connectionxx
Comment[zh_CN]=无法调用进程处理连接
Comment[zh_TW]=無法呼叫處理連線的程序
Comment[zu]=Ayikwazanga ukubiza umsebenzi ukuzophatha ukuxhumanisa
default_presentation=4

View File

@@ -27,7 +27,7 @@
#include <kstandarddirs.h>
#include <kconfig.h>
#include <knotifyclient.h>
#include <ksocketaddress.h>
#include <ksockaddr.h>
#include <kextsock.h>
#include <klocale.h>
#include <kglobal.h>
@@ -42,8 +42,7 @@ PortListener::PortListener(KService::Ptr s,
m_serviceRegistered(false),
m_socket(0),
m_config(config),
m_srvreg(srvreg),
m_dnssdreg(0)
m_srvreg(srvreg)
{
m_uuid = createUUID();
loadConfig(s);
@@ -65,7 +64,7 @@ bool PortListener::acquirePort() {
while (!m_socket->bindAndListen()) {
m_port++;
if (m_port >= (m_portBase+m_autoPortRange)) {
kDebug() << "Kinetd cannot load service "<<m_serviceName
kdDebug() << "Kinetd cannot load service "<<m_serviceName
<<": unable to get port" << endl;
m_port = -1;
delete m_socket;
@@ -79,11 +78,8 @@ bool PortListener::acquirePort() {
SLOT(accepted(KSocket*)));
bool s = m_registerService;
bool sd =m_dnssdRegister;
setServiceRegistrationEnabledInternal(false);
dnssdRegister(false);
setServiceRegistrationEnabledInternal(s);
dnssdRegister(sd);
return true;
}
@@ -93,18 +89,17 @@ void PortListener::freePort() {
delete m_socket;
m_socket = 0;
setServiceRegistrationEnabledInternal(m_registerService);
dnssdRegister(false);
}
void PortListener::loadConfig(KService::Ptr s) {
m_valid = true;
m_autoPortRange = 0;
m_enabled = true;
m_argument.clear();
m_argument = QString::null;
m_multiInstance = false;
QVariant vid, vport, vautoport, venabled, vargument, vmultiInstance, vurl,
vsattributes, vslifetime, vdname, vdtype, vddata;
vsattributes, vslifetime;
m_execPath = s->exec().utf8();
vid = s->property("X-KDE-KINETD-id");
@@ -116,19 +111,16 @@ void PortListener::loadConfig(KService::Ptr s) {
vurl = s->property("X-KDE-KINETD-serviceURL");
vsattributes = s->property("X-KDE-KINETD-serviceAttributes");
vslifetime = s->property("X-KDE-KINETD-serviceLifetime");
vdname = s->property("X-KDE-KINETD-DNSSD-Name");
vdtype = s->property("X-KDE-KINETD-DNSSD-Type");
vddata = s->property("X-KDE-KINETD-DNSSD-Properties");
if (!vid.isValid()) {
kDebug() << "Kinetd cannot load service "<<m_serviceName
kdDebug() << "Kinetd cannot load service "<<m_serviceName
<<": no id set" << endl;
m_valid = false;
return;
}
if (!vport.isValid()) {
kDebug() << "Kinetd cannot load service "<<m_serviceName
kdDebug() << "Kinetd cannot load service "<<m_serviceName
<<": invalid port" << endl;
m_valid = false;
return;
@@ -152,7 +144,7 @@ void PortListener::loadConfig(KService::Ptr s) {
m_registerService = true;
}
else {
m_serviceURL.clear();
m_serviceURL = QString::null;
m_registerService = false;
}
if (vsattributes.isValid()) {
@@ -160,42 +152,24 @@ void PortListener::loadConfig(KService::Ptr s) {
}
else
m_serviceAttributes = "";
if (vddata.isValid()) {
QStringList attrs = vddata.toStringList();
for (QStringList::iterator it=attrs.begin();
it!=attrs.end();it++) {
QString key = (*it).section('=',0,0);
QString value = processServiceTemplate((*it).section('=',1))[0];
if (!key.isEmpty()) m_dnssdData[key]=value;
}
}
if (vdname.isValid() && vdtype.isValid()) {
m_dnssdName = processServiceTemplate(vdname.toString())[0];
m_dnssdType = vdtype.toString();
m_dnssdRegister = true;
kDebug() << "DNS-SD register is enabled\n";
}
else
m_dnssdRegister = false;
m_slpLifetimeEnd = QDateTime::currentDateTime().addSecs(m_serviceLifetime);
m_defaultPortBase = m_portBase;
m_defaultAutoPortRange = m_autoPortRange;
m_config->setGroup("ListenerConfig");
m_enabled = m_config->readEntry("enabled_" + m_serviceName,
m_enabled = m_config->readBoolEntry("enabled_" + m_serviceName,
m_enabled);
m_portBase = m_config->readEntry("port_base_" + m_serviceName,
m_portBase = m_config->readNumEntry("port_base_" + m_serviceName,
m_portBase);
m_autoPortRange = m_config->readEntry("auto_port_range_" + m_serviceName,
m_autoPortRange = m_config->readNumEntry("auto_port_range_" + m_serviceName,
m_autoPortRange);
QDateTime nullTime;
m_expirationTime = m_config->readDateTimeEntry("enabled_expiration_"+m_serviceName,
&nullTime);
if ((!m_expirationTime.isNull()) && (m_expirationTime < QDateTime::currentDateTime()))
m_enabled = false;
m_registerService = m_config->readEntry("enabled_srvreg_"+m_serviceName,
m_registerService = m_config->readBoolEntry("enabled_srvreg_"+m_serviceName,
m_registerService);
}
@@ -208,7 +182,7 @@ void PortListener::accepted(KSocket *sock) {
}
KExtendedSocket::resolve(ksa, host, port);
KNotifyClient::event("IncomingConnection",
i18n("Connection from %1", host));
i18n("Connection from %1").arg(host));
delete ksa;
if ((!m_enabled) ||
@@ -224,9 +198,9 @@ void PortListener::accepted(KSocket *sock) {
m_process << m_execPath << m_argument << QString::number(sock->socket());
if (!m_process.start(KProcess::DontCare)) {
KNotifyClient::event("ProcessFailed",
i18n("Call \"%1 %2 %3\" failed", m_execPath,
m_argument,
sock->socket()));
i18n("Call \"%1 %2 %3\" failed").arg(m_execPath)
.arg(m_argument)
.arg(sock->socket()));
}
delete sock;
@@ -307,7 +281,6 @@ void PortListener::setEnabledInternal(bool e, const QDateTime &ex) {
if (m_port < 0)
acquirePort();
m_enabled = m_port >= 0;
}
else {
freePort();
@@ -325,7 +298,6 @@ bool PortListener::isServiceRegistrationEnabled() {
void PortListener::setServiceRegistrationEnabled(bool e) {
setServiceRegistrationEnabledInternal(e);
dnssdRegister(e && m_enabled);
m_config->setGroup("ListenerConfig");
m_config->writeEntry("enable_srvreg_" + m_serviceName, e);
m_config->sync();
@@ -350,7 +322,7 @@ void PortListener::setServiceRegistrationEnabledInternal(bool e) {
*(it++),
*(it2++),
m_serviceLifetime))
kDebug(7021) << "Failure registering SLP service (no slpd running?)"<< endl;
kdDebug(7021) << "Failure registering SLP service (no slpd running?)"<< endl;
}
m_serviceRegistered = true;
// make lifetime 30s shorter, because the timeout is not precise
@@ -363,23 +335,6 @@ void PortListener::setServiceRegistrationEnabledInternal(bool e) {
}
}
void PortListener::dnssdRegister(bool e) {
if (m_dnssdName.isNull() || m_dnssdType.isNull())
return;
if (m_dnssdRegistered == e)
return;
if (e) {
m_dnssdRegistered=true;
m_dnssdreg = new DNSSD::PublicService(m_dnssdName,m_dnssdType,m_port);
m_dnssdreg->setTextData(m_dnssdData);
m_dnssdreg->publishAsync();
} else {
m_dnssdRegistered=false;
delete m_dnssdreg;
m_dnssdreg=0;
}
}
void PortListener::refreshRegistration() {
if (m_serviceRegistered && (m_slpLifetimeEnd.addSecs(-90) < QDateTime::currentDateTime())) {
setServiceRegistrationEnabledInternal(false);
@@ -414,7 +369,7 @@ KInetD::KInetD(QCString &n) :
m_config = new KConfig("kinetdrc");
m_srvreg = new KServiceRegistry();
if (!m_srvreg->available()) {
kDebug(7021) << "SLP not available"<< endl;
kdDebug(7021) << "SLP not available"<< endl;
delete m_srvreg;
m_srvreg = 0;
}
@@ -648,10 +603,9 @@ KInetD::~KInetD() {
}
extern "C" {
KDE_EXPORT KDEDModule *create_kinetd(const DCOPCString &name)
KDEDModule *create_kinetd(QCString &name)
{
KGlobal::locale()->insertCatalog("kinetd");
KGlobal::locale()->insertCatalogue("kinetd");
return new KInetD(name);
}
}

View File

@@ -9,8 +9,107 @@ X-KDE-FactoryName=kinetd
X-KDE-Kded-autoload=true
Name=KDE Internet Daemon
Name[af]=Kde Internet Bediener
Name[ar]=مراقب انترنت كيدي
Name[bg]=Интернет демон за КДЕ
Name[ca]=Dimoni d'Internet per al KDE
Name[cs]=KDE Internet démon
Name[cy]=Daemon Rhyngrwyd KDE
Name[da]=KDE Internet-dæmon
Name[de]=KDE Internet-Dämon
Name[el]=Δαίμονας διαδικτύου για το KDE
Name[eo]=Retodemono
Name[es]=Demonio de Internet de KDE
Name[et]=KDE internetideemon
Name[fi]=KDE Internet palvelin
Name[fr]=Démon Internet de KDE
Name[x-test]=xxKDE Internet Daemonxx
Name[ga]=Deamhan Idirlín KDE
Name[gl]=O demo de Internet de KDE
Name[he]=תהליך הרקע האינטרנטי של KDE
Name[hi]=केडीई इंटरनेट डेमन
Name[hu]=KDE internetes szolgáltatás
Name[is]=KDE Internetþjónn
Name[it]=Demone internet di KDE
Name[ja]=KDE インターネットデーモン
Name[lt]=KDE Interneto tarnyba
Name[mk]=KDE Интернет Демон
Name[mn]=KDE Интернет-демон
Name[ms]=Daemon Internet KDE
Name[mt]=Daemon tal-internet KDE
Name[nb]=KDEs Internett-nisse
Name[nn]=KDE-Internett-nisse
Name[nso]=Daemon ya Internet ya KDE
Name[pl]=Internet/sieć
Name[pt]=Servidor de Internet do KDE
Name[pt_BR]=Servidor Internet do do KDE
Name[ro]=Demon internet KDE
Name[ru]=Интернет-демон KDE
Name[se]=KDE-Interneahtta-duogášprográmma
Name[sk]=KDE Internet démon
Name[sl]=Internetni strežnik za KDE
Name[sr]=KDE-ов интернет демон
Name[sr@Latn]=KDE-ov internet demon
Name[sv]=KDE:s Internetdemon
Name[ta]=KDE இணைய டேமொன்
Name[th]=เดมอนอินเตอร์เน็ต KDE
Name[tr]=KDE İnternet Programı
Name[uk]=Демон Інтернет KDE
Name[uz]=KDE Интернет демони
Name[xx]=xxKDE Internet Daemonxx
Name[zh_CN]=KDE Internet 守护进程
Name[zh_TW]=KDE Internet 伺服程式
Name[zu]=KDE Internet ye-Daemon
Comment=An Internet daemon that starts network services on demand
Comment[ar]=مراقب انترنت يقوم ببدء خدمات الشبكة عند الطلب
Comment[bg]=Интернет демон, който служи за стартиране на мрежови услуги при поискване
Comment[bs]=Internet daemon koji pokreće mrežne servise po potrebi
Comment[ca]=Un dimoni d'Internet que arrenca els serveis de xarxa sota demanda
Comment[cs]=Internetový démon spouštějící síťové služby na požádání
Comment[cy]=Daemon Rhyngrwyd sy'n cychwyn gwasanaethau rhwydwaith ar alw
Comment[da]=En internet-dæmon der starter netværkstjenester efter forespørgsel
Comment[de]=Ein Internet-Dämon, der Netzwerkdienste bei Bedarf startet
Comment[el]=Ένας δαίμονας για το διαδίκτυο ο οποίος ξεκινάει τις υπηρεσίες δικτύου βάση αίτησης
Comment[eo]=retdemono kiu lanĉas retajn servojn laŭ bezono
Comment[es]=Un demonio de Internet que inicia los servicios de red a demanda
Comment[et]=Internetideemon, mis käivitab nõudmisel võrguteenused
Comment[fi]=Internet palvelin, joka käynnistää verkkopalveluita
Comment[fr]=Un démon Internet qui démarre le service réseau à la demande
Comment[x-test]=xxAn Internet daemon that starts network services on demandxx
Comment[ga]=Deamhan Idirlín a thosaíonn seirbhisí gréasáin ar éileamh
Comment[gl]=Un demo de Internet que comenza servicios de rede según demanda
Comment[he]=תהליך רקע של אינטרנט שמתחיל שירותי רשת לפי דרישה
Comment[hi]=एक इंटरनेट डेमन जो मांग पर नेटवर्क सेवा प्रारंभ करता है
Comment[hr]=Internet daemon koji pokreće mrežne usluge kada su zatražene
Comment[hu]=A hálózati szolgáltatások vezérlését biztosító program
Comment[is]=Internetþjónn sem ræsir tengingar við Internetið eftir þörfum
Comment[it]=Un demone internet che avvia i servizi di rete a richiesta
Comment[ja]=要求時にネットワークサービスを起動するインターネットデーモン
Comment[lt]=Interneto tarnyba, paleidžianti tinklo tarnybas esant poreikiui
Comment[mk]=Интернет демон кој стартува мрежни сервиси на побарување
Comment[mn]=Сүлжээ-үйлчилгээний эрэлтээр ассан Сүлжээний демон
Comment[ms]=Daemon Internet yang memulakan servis jaringan di atas permintaan
Comment[mt]=Proċess tal-internet li jħaddem servizzi skond il-bżonn
Comment[nb]=Internett-nisse som starter nettverkstjenester ved behov
Comment[nl]=Een internetdaemon die netwerkdiensten op afroep start
Comment[nn]=Internett-nisse som startar nettverkstenester når dei trengst
Comment[nso]=Daemon ya Internet yeo e thomisago ditirelo tsa kgokagano ge e nyakilwe
Comment[pl]=Uruchamianie usług na żądanie
Comment[pt]=Um servidor da Internet que inicia os serviços de rede a pedido
Comment[pt_BR]=Um servidor Internet que inicia os serviços de rede por demanda
Comment[ro]=Un demone internet care porneşte serviciile de reţea la cerere
Comment[ru]=Сетевой демон, запускающий серверы по запросу из сети
Comment[se]=Interneahtta-duogášprográmma mii álggaha fierpmádatbálvalusaid go dárbbašuvvo
Comment[sk]=Internetový démon ktorý spúšťa sieťové služby na požiadanie
Comment[sl]=Internetni strežnik, ki zažene omrežne storitve na zahtevo
Comment[sr]=Интернет демон који покреће мрежне сервисе по захтеву
Comment[sr@Latn]=Internet demon koji pokreće mrežne servise po zahtevu
Comment[sv]=Internetdemon som startar nätverkstjänster vid behov
Comment[ta]=ஒரு இணைய டேமொன், டேமொன் பிணைய சேவையை ஆரம்பிகிறது
Comment[th]=เดมอนอินเตอร์เน็ตซึ่งจะเริ่มทำงานบริการเครือข่ายเมื่อมีความต้องการ
Comment[uk]=Демон Інтернет, що запускає служби мережі при запиті
Comment[uz]=Талаб қилинганда тармоқ хизматларини ишга тушурувчи Интернет демони
Comment[ven]=Internet daemon ine ya thoma tshumelo ya vhukwamani kha muthetho
Comment[xh]=Internet daemon eqala iinkonzo zomsebenzi wonatha xa zifunwa
Comment[xx]=xxAn Internet daemon that starts network services on demandxx
Comment[zh_CN]=按需启动网络服务的守护进程
Comment[zh_TW]=依要求起動網路服務的 Internet 伺服程式
Comment[zu]=I-Internet ye-daemon eqala ama-sevisi we-network adingekayo

View File

@@ -27,8 +27,7 @@
#include <qstring.h>
#include <qdatetime.h>
#include <qtimer.h>
#include <dnssd/publicservice.h>
#include <q3ptrlist.h>
#include "kserviceregistry.h"
class PortListener : public QObject {
@@ -38,8 +37,6 @@ private:
QString m_serviceName;
QString m_serviceURL, m_serviceAttributes;
QStringList m_registeredServiceURLs;
QString m_dnssdName, m_dnssdType;
QMap<QString,QString> m_dnssdData;
int m_serviceLifetime;
int m_port;
int m_portBase, m_autoPortRange;
@@ -49,7 +46,6 @@ private:
QString m_argument;
bool m_enabled;
bool m_serviceRegistered, m_registerService;
bool m_dnssdRegister, m_dnssdRegistered;
QDateTime m_expirationTime;
QDateTime m_slpLifetimeEnd;
QString m_uuid;
@@ -59,12 +55,10 @@ private:
KConfig *m_config;
KServiceRegistry *m_srvreg;
DNSSD::PublicService *m_dnssdreg;
void freePort();
void loadConfig(KService::Ptr s);
void setEnabledInternal(bool e, const QDateTime &ex);
void dnssdRegister(bool enabled);
void setServiceRegistrationEnabledInternal(bool enabled);
public:
@@ -136,8 +130,8 @@ k_dcop:
/**
* Sets the port of the service, and possibly a range of ports to try.
* It will return true if a port could be found. If it did not find one
* but is enabled it will start a timer that probes that port every 30s.
* It will return true if a port could be found. If it didnt find one but is
* enabled it will start a timer that probes that port every 30s.
* @param service name of a service as specified in its .desktop file
* @param port the first port number to try or -1 to restore defaults
* @param autoPortRange the number of ports to try
@@ -178,7 +172,7 @@ k_dcop:
KConfig *m_config;
KServiceRegistry *m_srvreg;
Q3PtrList<PortListener> m_portListeners;
QPtrList<PortListener> m_portListeners;
QTimer m_expirationTimer;
QTimer m_portRetryTimer;
QTimer m_reregistrationTimer;
@@ -190,7 +184,7 @@ k_dcop:
void reregistrationTimer();
public:
KInetD(const DCOPCString &n);
KInetD(QCString &n);
virtual ~KInetD();
void loadServiceList();
PortListener *getListenerByName(QString name);

View File

@@ -4,8 +4,57 @@
Type=ServiceType
X-KDE-ServiceType=KInetDModule
Name=KInetD Module Type
Name[ar]=KInetD نوع وحدة
Name[bg]=Модул на KInetD
Name[bs]=KInetD tip modula
Name[ca]=Tipus de mòdul del KInetD
Name[cs]=Typ modulu KInetD
Name[cy]=Math Modiwl KInetD
Name[da]=KInetD-modultype
Name[de]=KInetD Modultyp
Name[eo]=KInetD-modulotipo
Name[es]=Tipo de módulo KInetD
Name[et]=KInetD mooduli tüüp
Name[fi]=KInetD moduulityyppi
Name[fr]=Type de module de KInetD
Name[x-test]=xxKInetD Module Typexx
Name[ga]=Cineál Modúil KInetD
Name[gl]=Tipo de módulo KInetD
Name[he]=סוג מודול של KInetD
Name[hi]=के-इनिट-डी मॉड्यूल प्रकार
Name[hr]=Tip KInetD Modula
Name[hu]=KInetD modultípus
Name[is]=KInetD Module tegund
Name[it]=Tipo modulo KInetD
Name[ja]=KInetD モジュールタイプ
Name[lt]=KInetD modulio tipas
Name[mk]=KInetD Тип на Модул
Name[mn]=Модуль KInetD
Name[ms]=Jenis Modul KInetD
Name[mt]=Tip ta' modulu KInetD
Name[nb]=KInetd-programtillegstype
Name[nl]=KInetD-moduletype
Name[nn]=KInetD-programtilleggstype
Name[nso]=Mohuta wa Seripa sa KInetD
Name[pl]=Typ modułu KInetD
Name[pt]=Tipo de Módulo do KInetD
Name[pt_BR]=Módulo KInetD
Name[ro]=Tip modul KInetD
Name[ru]=Модуль KInetD
Name[se]=KInetD-moduvlašládja
Name[sk]=Typ modulu KInetD
Name[sl]=Vrsta modula KInetD
Name[sr]=KInetD врста модула
Name[sr@Latn]=KInetD vrsta modula
Name[sv]=Kinetd-modultyp
Name[ta]=KInetD கூறு வகை
Name[tr]=KDED Modül Türü
Name[uk]=Тип модулю KinetD
Name[ven]=Lushaka lwa Modulu ya KInetD
Name[xh]=Udidi Lomqongo womlinganiselo we KInetD
Name[xx]=xxKInetD Module Typexx
Name[zh_CN]=KInetD 模块类型
Name[zh_TW]=KInetD 模組類型
Name[zu]=KInetD Uhlobo Lokwenza
# id to manipulate the service
[PropertyDef::X-KDE-KINETD-id]
@@ -34,7 +83,7 @@ Type=QString
[PropertyDef::X-KDE-KINETD-multiInstance]
Type=bool
# if set, kinetd will register the given URL at the local SLP SA while
# if set, kinetd will register the given URL at the local SLP SA while
# the port is open. It will register one URL for each IP address of the
# host.
# The following strings will be substituted:
@@ -56,31 +105,9 @@ Type=QString
[PropertyDef::X-KDE-KINETD-serviceAttributes]
Type=QString
# the lifetime of a service in seconds. kinets will renew the service
# the lifetime of a service in seconds. kinets will renew the service
# automatically. Max 65535, never use anything under 2 min. Something like
# 5-20 minutes is a sane value for most desktop applications.
[PropertyDef::X-KDE-KINETD-serviceLifetime]
Type=int
# if set, kinetd will announce service with given name on local network while
# the port is open.
# The following strings will be substituted:
# %h with the local IP address
# %f with the user's full name
# %p with the port number
[PropertyDef::X-KDE-KINETD-DNSSD-Name]
Type=QString
# if kinetd announces service on network using DNS-SD, this string will be used as service
# type. It must be in form _yourservice._udp or _yourservice._tcp
# it uses the same substitution rules as X-KDE-KINETD-DNSSD-Name
[PropertyDef::X-KDE-KINETD-DNSSD-Type]
Type=QString
# defines list of text properties for service announced via DNS-SD
# it uses the same substitution rules as X-KDE-KINETD-DNSSD-Name
[PropertyDef::X-KDE-KINETD-DNSSD-Properties]
Type=QStringList

View File

@@ -1,79 +0,0 @@
project(krfb)
include_directories( ${CMAKE_SOURCE_DIR}/krfb/libvncserver ${CMAKE_SOURCE_DIR}/krfb/srvloc )
########### next target ###############
########### next target ###############
set(krfb_SRCS
rfbcontroller.cc
xupdatescanner.cc
main.cpp
krfbifaceimpl.cc
trayicon.cpp
connectiondialog.cc )
kde4_automoc(${krfb_SRCS})
kde4_add_ui_files(krfb_SRCS connectionwidget.ui )
kde4_add_dcop_skels(krfb_SRCS krfbiface.h )
kde4_add_executable(krfb ${krfb_SRCS})
target_link_libraries(krfb ${KDE4_KIO_LIBS} krfbconfig vncserver srvloc Xtst )
install(TARGETS krfb DESTINATION ${BIN_INSTALL_DIR} )
########### install files ###############
install( FILES krfb.desktop DESTINATION ${XDG_APPS_DIR})
install( FILES eventsrc DESTINATION ${DATA_INSTALL_DIR}/krfb)
install( FILES eyes-open24.png eyes-closed24.png connection-side-image.png DESTINATION ${DATA_INSTALL_DIR}/krfb/pics)
install( FILES kinetd_krfb.desktop DESTINATION ${SERVICES_INSTALL_DIR})
kde4_install_icons( ${ICON_INSTALL_DIR} )
#original Makefile.am contents follow:
#KDE_CXXFLAGS = $(USE_THREADS)
#
#METASOURCES = AUTO
#
#noinst_LTLIBRARIES = libkrfbconfig.la
#libkrfbconfig_la_SOURCES = configuration.cc configuration.skel invitedialog.cc invitation.cc \
# manageinvitations.ui personalinvitewidget.ui \
# invitewidget.ui personalinvitedialog.cc
#libkrfbconfig_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KDEUI)
#
#bin_PROGRAMS = krfb
#krfb_SOURCES = rfbcontroller.cc xupdatescanner.cc main.cpp \
# connectionwidget.ui krfbifaceimpl.cc krfbiface.skel \
# trayicon.cpp connectiondialog.cc
#krfb_LDADD = libkrfbconfig.la ../libvncserver/libvncserver.la ../srvloc/libsrvloc.la -lXtst $(LIB_KDEUI) $(LIBJPEG) -lkio
#krfb_LDFLAGS = $(all_libraries) $(KDE_RPATH)
#
#appdatadir = $(kde_datadir)/krfb/pics
#appdata_DATA = eyes-open24.png eyes-closed24.png connection-side-image.png
#
#kde_services_DATA = kinetd_krfb.desktop
#
#xdg_apps_DATA = krfb.desktop
#
#appdir = $(kde_datadir)/krfb
#app_DATA = eventsrc
#
#KDE_ICON = krfb
#
#INCLUDES= -I$(top_srcdir)/krfb/libvncserver -I$(top_srcdir)/krfb/srvloc \
# $(all_includes)
#
#messages: rc.cpp
# $(XGETTEXT) rc.cpp *.cpp *.cc -o $(podir)/krfb.pot

38
krfb/Makefile.am Normal file
View File

@@ -0,0 +1,38 @@
KDE_CXXFLAGS = $(USE_THREADS)
METASOURCES = AUTO
noinst_LTLIBRARIES = libkrfbconfig.la
libkrfbconfig_la_SOURCES = configuration.cc manageinvitations.ui \
personalinvitation.ui invite.ui invitation.cc
libkrfbconfig_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KDEUI)
bin_PROGRAMS = krfb
krfb_SOURCES = rfbcontroller.cc xupdatescanner.cc main.cpp \
newconnectiondialog.ui krfbifaceimpl.cc krfbiface.skel \
trayicon.cpp
krfb_LDADD = libkrfbconfig.la ../libvncserver/libvncserver.la ../srvloc/libsrvloc.la -lXtst $(LIB_KDEUI) $(LIBJPEG)
krfb_LDFLAGS = $(all_libraries) $(KDE_RPATH)
krfb_COMPILE_FIRST = manageinvitations.h personalinvitation.h invite.h
noinst_HEADERS = configuration.h invitation.h invite.h krfbiface.h \
krfbifaceimpl.h rfbcontroller.h trayicon.h xupdatescanner.h
appdatadir = $(kde_datadir)/krfb/pics
appdata_DATA = eyes-open24.png eyes-closed24.png connection-side-image.png
kde_services_DATA = kinetd_krfb.desktop
xdg_apps_DATA = krfb.desktop
appdir = $(kde_datadir)/krfb
app_DATA = eventsrc
KDE_ICON = krfb
INCLUDES= -I$(top_srcdir)/krfb/libvncserver -I$(top_srcdir)/krfb/srvloc \
$(all_includes)
messages: rc.cpp
$(XGETTEXT) rc.cpp *.cpp *.cc -o $(podir)/krfb.pot

View File

@@ -1,2 +0,0 @@
#! /bin/sh
$XGETTEXT rc.cpp *.cpp *.cc -o $podir/krfb.pot

View File

@@ -23,9 +23,8 @@
#include <kapplication.h>
#include <kmessagebox.h>
#include <kprocess.h>
#include <ksocketaddress.h>
#include <ksockaddr.h>
#include <kactivelabel.h>
#include <ktoolinvocation.h>
#include <qdatastream.h>
#include <dcopclient.h>
@@ -36,8 +35,6 @@
#include <qlineedit.h>
#include <qcheckbox.h>
#include <krun.h>
/**
* Note that this class is used and provides GUI in every mode:
* - for the invitation dialogs
@@ -47,8 +44,8 @@
Configuration::Configuration(krfb_mode mode) :
m_mode(mode),
invMngDlg(0, 0, true),
invDlg(0, "InviteDialog"),
persInvDlg(0, "PersonalInviteDialog"),
invDlg(0, 0, true),
persInvDlg(0, 0, true),
portNum(-1),
kinetdRef("kded", "kinetd")
{
@@ -57,26 +54,23 @@ Configuration::Configuration(krfb_mode mode) :
saveToDialogs();
doKinetdConf();
connectDCOPSignal( 0, "KRFB::ConfigChanged", "KRFB_ConfigChanged()",
"updateKConfig()", false );
connect(invMngDlg.newPersonalInvitationButton, SIGNAL(clicked()),
SLOT(showPersonalInvitationDialog()));
connect(invMngDlg.newEmailInvitationButton, SIGNAL(clicked()), SLOT(inviteEmail()));
connect(invMngDlg.deleteOneButton, SIGNAL(clicked()), SLOT(invMngDlgDeleteOnePressed()));
connect(invMngDlg.deleteAllButton, SIGNAL(clicked()), SLOT(invMngDlgDeleteAllPressed()));
invMngDlg.listView->setSelectionMode(Q3ListView::Extended);
invMngDlg.listView->setSelectionMode(QListView::Extended);
invMngDlg.listView->setMinimumSize(QSize(400, 100)); // QTs size is much to small
connect(&invDlg, SIGNAL(createInviteClicked()),
connect(invDlg.createInvitationButton, SIGNAL(clicked()),
SLOT(showPersonalInvitationDialog()));
connect(&invDlg, SIGNAL(emailInviteClicked()),
connect(invDlg.createInvitationEMailButton, SIGNAL(clicked()),
SLOT(inviteEmail()));
connect(&invDlg, SIGNAL(manageInviteClicked()),
connect(invDlg.manageInvitationsButton, SIGNAL(clicked()),
SLOT(showManageInvitationsDialog()));
connect(&invDlg, SIGNAL(configureClicked()),
connect(invDlg.configurationButton, SIGNAL(clicked()),
SLOT(showConfigurationModule()));
connect(this, SIGNAL(invitationNumChanged(int)),
&invDlg, SLOT(setInviteCount(int)));
connect(this, SIGNAL(invitationNumChanged(int)), this, SLOT(changeInvDlgNum(int)));
connect(this, SIGNAL(invitationNumChanged(int)),
&invMngDlg, SLOT(listSizeChanged(int)));
emit invitationNumChanged(invitationList.size());
@@ -89,11 +83,6 @@ Configuration::~Configuration() {
save();
}
void Configuration::updateKConfig()
{
loadFromKConfig();
}
void Configuration::setKInetdEnabled(bool enabled) {
kinetdRef.send("setEnabled", QString("krfb"), enabled);
kinetdRef.send("setEnabled", QString("krfb_httpd"), enabled);
@@ -125,7 +114,7 @@ void Configuration::setKInetdPort(int p) {
}
void Configuration::removeInvitation(QList<Invitation>::iterator it) {
void Configuration::removeInvitation(QValueList<Invitation>::iterator it) {
invitationList.remove(it);
save();
}
@@ -141,7 +130,7 @@ void Configuration::doKinetdConf() {
}
QDateTime lastExpiration;
QList<Invitation>::iterator it = invitationList.begin();
QValueList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
Invitation &ix = (*it);
QDateTime t = ix.expirationTime();
@@ -163,13 +152,13 @@ void Configuration::doKinetdConf() {
void Configuration::loadFromKConfig() {
KConfig c("krfbrc");
allowUninvitedFlag = c.readEntry("allowUninvited", false);
enableSLPFlag = c.readEntry("enableSLP", true);
askOnConnectFlag = c.readEntry("confirmUninvitedConnection", true);
allowDesktopControlFlag = c.readEntry("allowDesktopControl", false);
preferredPortNum = c.readEntry("preferredPort", -1);
disableBackgroundFlag = c.readEntry("disableBackground", false);
disableXShmFlag = c.readEntry("disableXShm", false);
allowUninvitedFlag = c.readBoolEntry("allowUninvited", false);
enableSLPFlag = c.readBoolEntry("enableSLP", true);
askOnConnectFlag = c.readBoolEntry("confirmUninvitedConnection", true);
allowDesktopControlFlag = c.readBoolEntry("allowDesktopControl", false);
preferredPortNum = c.readNumEntry("preferredPort", -1);
disableBackgroundFlag = c.readBoolEntry("disableBackground", false);
disableXShmFlag = c.readBoolEntry("disableXShm", false);
if (c.hasKey("uninvitedPasswordCrypted"))
passwordString = cryptStr(c.readEntry("uninvitedPasswordCrypted", ""));
else
@@ -178,7 +167,7 @@ void Configuration::loadFromKConfig() {
unsigned int invNum = invitationList.size();
invitationList.clear();
c.setGroup("invitations");
int num = c.readEntry("invitation_num", 0);
int num = c.readNumEntry("invitation_num", 0);
for (int i = 0; i < num; i++)
invitationList.push_back(Invitation(&c, i));
@@ -214,11 +203,11 @@ void Configuration::saveToKConfig() {
void Configuration::saveToDialogs() {
invalidateOldInvitations();
QList<Invitation>::iterator it = invitationList.begin();
QValueList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
Invitation &inv = *(it++);
if (!inv.getViewItem())
inv.setViewItem(new K3ListViewItem(invMngDlg.listView,
inv.setViewItem(new KListViewItem(invMngDlg.listView,
inv.creationTime().toString(Qt::LocalDate),
inv.expirationTime().toString(Qt::LocalDate)));
}
@@ -243,7 +232,7 @@ Invitation Configuration::createInvitation() {
}
void Configuration::invalidateOldInvitations() {
QList<Invitation>::iterator it = invitationList.begin();
QValueList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
if (!(*it).isValid())
it = invitationList.remove(it);
@@ -262,7 +251,7 @@ void Configuration::refreshTimeout() {
QString Configuration::hostname() const
{
KNetwork::KInetSocketAddress *a = KInetInterface::getPublicInetAddress();
KInetSocketAddress *a = KInetInterface::getPublicInetAddress();
QString hostName;
if (a) {
hostName = a->nodeName();
@@ -299,7 +288,7 @@ QString Configuration::password() const {
return passwordString;
}
QList<Invitation> &Configuration::invitations() {
QValueList<Invitation> &Configuration::invitations() {
return invitationList;
}
@@ -370,10 +359,10 @@ void Configuration::showManageInvitationsDialog() {
}
void Configuration::invMngDlgDeleteOnePressed() {
QList<Invitation>::iterator it = invitationList.begin();
QValueList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
Invitation &ix = (*it);
K3ListViewItem *iv = ix.getViewItem();
KListViewItem *iv = ix.getViewItem();
if (iv && iv->isSelected())
it = invitationList.remove(it);
else
@@ -399,6 +388,10 @@ void Configuration::showInvitationDialog() {
saveToKConfig();
}
void Configuration::changeInvDlgNum(int newNum) {
invDlg.manageInvitationsButton->setText( i18n("&Manage Invitations (%1)...").arg(newNum) );
}
////////////// personal invitation dialog //////////////////////////
void Configuration::showPersonalInvitationDialog() {
@@ -407,15 +400,16 @@ void Configuration::showPersonalInvitationDialog() {
save();
emit invitationNumChanged(invitationList.size());
invDlg.enableInviteButton(false);
invDlg.createInvitationButton->setEnabled(false);
invMngDlg.newPersonalInvitationButton->setEnabled(false);
persInvDlg.setHost(hostname(), port());
persInvDlg.setPassword(inv.password());
persInvDlg.setExpiration(inv.expirationTime());
persInvDlg.hostLabel->setText(QString("%1:%2").arg(hostname()).arg(port()));
persInvDlg.passwordLabel->setText(inv.password());
persInvDlg.expirationLabel->setText(
inv.expirationTime().toString(Qt::LocalDate));
persInvDlg.exec();
invDlg.enableInviteButton(true);
invDlg.createInvitationButton->setEnabled(true);
invMngDlg.newPersonalInvitationButton->setEnabled(true);
}
@@ -425,7 +419,7 @@ void Configuration::inviteEmail() {
int r = KMessageBox::warningContinueCancel(0,
i18n("When sending an invitation by email, note that everybody who reads this email "
"will be able to connect to your computer for one hour, or until the first "
"successful connection took place, whichever comes first. \n"
"successful connection took place, whatever comes first. \n"
"You should either encrypt the email or at least send it only in a "
"secure network, but not over the Internet."),
i18n("Send Invitation via Email"),
@@ -439,9 +433,10 @@ void Configuration::inviteEmail() {
save();
emit invitationNumChanged(invitationList.size());
KToolInvocation::invokeMailer(QString::null, QString::null, QString::null,
KApplication *app = KApplication::kApplication();
app->invokeMailer(QString::null, QString::null, QString::null,
i18n("Desktop Sharing (VNC) invitation"),
ki18n("You have been invited to a VNC session. If you have the KDE Remote "
i18n("You have been invited to a VNC session. If you have the KDE Remote "
"Desktop Connection installed, just click on the link below.\n\n"
"vnc://invitation:%1@%2:%3\n\n"
"Otherwise you can use any VNC client with the following parameters:\n\n"
@@ -453,22 +448,23 @@ void Configuration::inviteEmail() {
" http://%7:%8/\n"
"\n"
"For security reasons this invitation will expire at %9.")
.subs(inv.password())
.subs(hostname())
.subs(port())
.subs(hostname())
.subs(port())
.subs(inv.password())
.subs(hostname())
.subs(5800) // determine with dcop ... later ...
.subs(KGlobal::locale()->formatDateTime(inv.expirationTime()))
.toString());
.arg(inv.password())
.arg(hostname())
.arg(port())
.arg(hostname())
.arg(port())
.arg(inv.password())
.arg(hostname())
.arg(5800) // determine with dcop ... later ...
.arg(KGlobal::locale()->formatDateTime(inv.expirationTime())));
}
////////////// invoke kcontrol module //////////////////////////
void Configuration::showConfigurationModule() {
KRun::run( "kcmshell kcmkrfb", KUrl::List() );
KProcess p;
p << "kcmshell" << "Network/kcmkrfb";
p.start(KProcess::DontCare);
}

View File

@@ -21,8 +21,8 @@
#include "invitation.h"
#include "manageinvitations.h"
#include "personalinvitedialog.h"
#include "invitedialog.h"
#include "personalinvitation.h"
#include "invite.h"
#include <dcopref.h>
#include <kconfig.h>
@@ -31,8 +31,6 @@
#include <qvalidator.h>
#include <qstring.h>
#include <dcopobject.h>
enum krfb_mode {
KRFB_UNKNOWN_MODE = 0,
KRFB_KINETD_MODE,
@@ -46,12 +44,11 @@ enum krfb_mode {
* standalone-config-dialog and all the invitation dialogs
* @author Tim Jansen
*/
class Configuration : public QObject, public DCOPObject {
K_DCOP
class Configuration : public QObject {
Q_OBJECT
public:
Configuration(krfb_mode mode);
virtual ~Configuration();
~Configuration();
krfb_mode mode() const;
bool askOnConnect() const;
@@ -75,8 +72,8 @@ public:
void save();
void update();
QList<Invitation> &invitations();
void removeInvitation(QList<Invitation>::iterator it);
QValueList<Invitation> &invitations();
void removeInvitation(QValueList<Invitation>::iterator it);
signals:
void invitationFinished();
void invitationNumChanged(int num);
@@ -107,8 +104,8 @@ private:
krfb_mode m_mode;
ManageInvitationsDialog invMngDlg;
InviteDialog invDlg;
PersonalInviteDialog persInvDlg;
InvitationDialog invDlg;
PersonalInvitationDialog persInvDlg;
QTimer refreshTimer;
bool askOnConnectFlag;
@@ -121,19 +118,17 @@ private:
DCOPRef kinetdRef;
QString passwordString;
QList<Invitation> invitationList;
QValueList<Invitation> invitationList;
bool disableBackgroundFlag;
bool disableXShmFlag;
k_dcop:
// Connected to the DCOP signal
void updateKConfig();
private slots:
void refreshTimeout();
void invMngDlgDeleteOnePressed();
void invMngDlgDeleteAllPressed();
void changeInvDlgNum(int newNum);
};
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -1,63 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "connectiondialog.h"
#include "connectionwidget.h"
#include <qcheckbox.h>
#include <qlabel.h>
#include <kiconloader.h>
#include <klocale.h>
ConnectionDialog::ConnectionDialog( QWidget *parent, const char *name )
: KDialogBase( parent, name, true, i18n( "New Connection" ),
Ok|Cancel, Cancel, true )
{
m_connectWidget = new ConnectionWidget( this, "ConnectWidget" );
m_connectWidget->pixmapLabel->setPixmap(
UserIcon( "connection-side-image.png" ) );
KGuiItem accept = KStdGuiItem::ok();
accept.setText( i18n( "Accept Connection" ) );
setButtonOK( accept );
KGuiItem refuse = KStdGuiItem::cancel();
refuse.setText( i18n( "Refuse Connection" ) );
setButtonCancel( refuse );
setMainWidget( m_connectWidget );
}
void ConnectionDialog::setRemoteHost( const QString &host )
{
m_connectWidget->remoteHost->setText( host );
}
void ConnectionDialog::setAllowRemoteControl( bool b )
{
m_connectWidget->cbAllowRemoteControl->setChecked( b );
}
bool ConnectionDialog::allowRemoteControl()
{
return m_connectWidget->cbAllowRemoteControl->isChecked();
}
#include "connectiondialog.moc"

View File

@@ -1,44 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef CONNECTIONDIALOG_H
#define CONNECTIONDIALOG_H
#include <kdialogbase.h>
class ConnectionWidget;
class ConnectionDialog : public KDialogBase
{
Q_OBJECT
public:
ConnectionDialog( QWidget *parent, const char *name );
~ConnectionDialog() {};
void setRemoteHost( const QString &host );
void setAllowRemoteControl( bool b );
bool allowRemoteControl();
protected:
ConnectionWidget *m_connectWidget;
};
#endif // CONNECTIONDIALOG_H

View File

@@ -1,211 +0,0 @@
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
<class>ConnectionWidget</class>
<widget class="QWidget">
<property name="name">
<cstring>NewConnectWidget</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>521</width>
<height>328</height>
</rect>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>0</number>
</property>
<widget class="QLabel" row="0" column="1" rowspan="1" colspan="2">
<property name="name">
<cstring>TextLabel5</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
<bold>1</bold>
</font>
</property>
<property name="text">
<string>Attention</string>
</property>
<property name="indent">
<number>0</number>
</property>
</widget>
<widget class="QLabel" row="1" column="1" rowspan="1" colspan="2">
<property name="name">
<cstring>mainTextLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="lineWidth">
<number>-1</number>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="midLineWidth">
<number>5</number>
</property>
<property name="text">
<string>Somebody is requesting a connection to your computer. Granting this will allow the remote user to watch your desktop. </string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="alignment">
<set>Qt::AlignVCenter|Qt::AlignLeft</set>
</property>
<property name="wordWrap" >
<bool>true</bool>
</property>
<property name="indent">
<number>0</number>
</property>
<property name="wordwrap" stdset="0">
</property>
</widget>
<widget class="QLabel" row="0" column="0" rowspan="6" colspan="1">
<property name="name">
<cstring>pixmapLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>108</width>
<height>318</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>108</width>
<height>318</height>
</size>
</property>
<property name="frameShape">
<enum>WinPanel</enum>
</property>
<property name="frameShadow">
<enum>Sunken</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
<property name="indent">
<number>0</number>
</property>
</widget>
<widget class="QLabel" row="3" column="2">
<property name="name">
<cstring>remoteHost</cstring>
</property>
<property name="font">
<font>
<bold>1</bold>
</font>
</property>
<property name="text">
<string>123.234.123.234</string>
</property>
</widget>
<widget class="QCheckBox" row="5" column="1" rowspan="1" colspan="2">
<property name="name">
<cstring>cbAllowRemoteControl</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Allow remote user to &amp;control keyboard and mouse</string>
</property>
<property name="whatsThis" stdset="0">
<string>If you turn this option on, the remote user can enter keystrokes and use your mouse pointer. This gives them full control over your computer, so be careful. When the option is disabled the remote user can only watch your screen.</string>
</property>
</widget>
<widget class="QLabel" row="3" column="1">
<property name="name">
<cstring>TextLabel1</cstring>
</property>
<property name="font">
<font>
<bold>1</bold>
</font>
</property>
<property name="text">
<string>Remote system:</string>
</property>
</widget>
<spacer row="4" column="1">
<property name="name">
<cstring>spacer23</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>Minimum</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>84</height>
</size>
</property>
</spacer>
<spacer row="2" column="1">
<property name="name">
<cstring>spacer22</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>Minimum</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>80</height>
</size>
</property>
</spacer>
</grid>
</widget>
<layoutdefaults spacing="6" margin="11"/>
</UI>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,6 +1,10 @@
/***************************************************************************
Copyright 2002 Tim Jansen <tim@tjansen.de>
Copyright 2002 Stefan Taferner <taferner@kde.org>
invitation.cpp
-------------------
begin : Sat Mar 30 2002
copyright : (C) 2002 by Tim Jansen
(C) Stefan Taferner (password encryption)
email : tim@tjansen.de
***************************************************************************/
/***************************************************************************
@@ -13,26 +17,26 @@
***************************************************************************/
#include "invitation.h"
#include <krandom.h>
/*
* Function for (en/de)crypting strings for config file, taken from KMail
* Author: Stefan Taferner <taferner@alpin.or.at>
*/
QString cryptStr(const QString &aStr) {
QString result;
for ( int i = 0; i < aStr.length(); i++)
for (unsigned int i = 0; i < aStr.length(); i++)
result += (aStr[i].unicode() < 0x20) ? aStr[i] :
QChar(0x1001F - aStr[i].unicode());
return result;
}
// a random string that doesn't contain i, I, o, O, 1, 0
// based on KRandom::randomString()
// based on KApplication::randomString()
static QString readableRandomString(int length) {
QString str;
while (length)
{
int r = KRandom::random() % 62;
int r = KApplication::random() % 62;
r += 48;
if (r > 57)
r += 7;
@@ -54,7 +58,7 @@ static QString readableRandomString(int length) {
Invitation::Invitation() :
m_viewItem(0) {
m_password = readableRandomString(4)+'-'+readableRandomString(3);
m_password = readableRandomString(4)+"-"+readableRandomString(3);
m_creationTime = QDateTime::currentDateTime();
m_expirationTime = QDateTime::currentDateTime().addSecs(INVITATION_DURATION);
}
@@ -67,7 +71,7 @@ Invitation::Invitation(const Invitation &x) :
}
Invitation::Invitation(KConfig* config, int num) {
m_password = cryptStr(config->readEntry(QString("password%1").arg(num), QString()));
m_password = cryptStr(config->readEntry(QString("password%1").arg(num), ""));
m_creationTime = config->readDateTimeEntry(QString("creation%1").arg(num));
m_expirationTime = config->readDateTimeEntry(QString("expiration%1").arg(num));
m_viewItem = 0;
@@ -110,12 +114,12 @@ bool Invitation::isValid() const {
return m_expirationTime > QDateTime::currentDateTime();
}
void Invitation::setViewItem(K3ListViewItem *i) {
void Invitation::setViewItem(KListViewItem *i) {
if (m_viewItem)
delete m_viewItem;
m_viewItem = i;
}
K3ListViewItem *Invitation::getViewItem() const{
KListViewItem *Invitation::getViewItem() const{
return m_viewItem;
}

View File

@@ -19,7 +19,7 @@
#define INVITATION_H
#include <kapplication.h>
#include <k3listview.h>
#include <klistview.h>
#include <kconfig.h>
#include <qobject.h>
#include <qstring.h>
@@ -43,15 +43,15 @@ public:
QDateTime creationTime() const;
bool isValid() const;
void setViewItem(K3ListViewItem*);
K3ListViewItem* getViewItem() const;
void setViewItem(KListViewItem*);
KListViewItem* getViewItem() const;
void save(KConfig *config, int num) const;
private:
QString m_password;
QDateTime m_creationTime;
QDateTime m_expirationTime;
K3ListViewItem *m_viewItem;
KListViewItem *m_viewItem;
};
#endif

378
krfb/invite.ui Normal file

File diff suppressed because one or more lines are too long

7
krfb/invite.ui.h Normal file
View File

@@ -0,0 +1,7 @@
#include <kapplication.h>
void InvitationDialog::helpClicked()
{
KApplication::kApplication()->invokeHelp();
}

View File

@@ -1,65 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "invitedialog.h"
#include "invitewidget.h"
#include <kiconloader.h>
#include <klocale.h>
#include <kstdguiitem.h>
#include <qlabel.h>
#include <qpushbutton.h>
InviteDialog::InviteDialog( QWidget *parent, const char *name )
: KDialogBase( parent, name, true, i18n( "Invitation" ),
User1|Close|Help, NoDefault, true )
{
m_inviteWidget = new InviteWidget( this, "InviteWidget" );
m_inviteWidget->pixmapLabel->setPixmap(
UserIcon( "connection-side-image.png" ) );
setMainWidget( m_inviteWidget );
setButtonGuiItem( User1, KStdGuiItem::configure() );
connect( m_inviteWidget->btnCreateInvite, SIGNAL( clicked() ),
SIGNAL( createInviteClicked() ) );
connect( m_inviteWidget->btnEmailInvite, SIGNAL( clicked() ),
SIGNAL( emailInviteClicked() ) );
connect( m_inviteWidget->btnManageInvite, SIGNAL( clicked() ),
SIGNAL( manageInviteClicked() ) );
}
void InviteDialog::slotUser1()
{
emit configureClicked();
}
void InviteDialog::enableInviteButton( bool enable )
{
m_inviteWidget->btnCreateInvite->setEnabled( enable );
}
void InviteDialog::setInviteCount( int count )
{
m_inviteWidget->btnManageInvite->setText(
i18n( "&Manage Invitations (%1)...", count ) );
}
#include "invitedialog.moc"

View File

@@ -1,54 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef INVITEDIALOG_H
#define INVITEDIALOG_H
class InviteWidget;
#include <kdialogbase.h>
class InviteDialog : public KDialogBase
{
Q_OBJECT
public:
InviteDialog( QWidget *parent, const char *name );
~InviteDialog() {}
void enableInviteButton( bool enable );
public slots:
void setInviteCount( int count );
signals:
void createInviteClicked();
void emailInviteClicked();
void manageInviteClicked();
void configureClicked();
protected slots:
void slotUser1();
protected:
InviteWidget *m_inviteWidget;
};
#endif // INVITEDIALOG_H

View File

@@ -1,197 +0,0 @@
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
<class>InviteWidget</class>
<widget class="QWidget">
<property name="name">
<cstring>InviteWidget</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>521</width>
<height>328</height>
</rect>
</property>
<property name="windowTitle">
<string></string>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>0</number>
</property>
<widget class="QLabel" row="0" column="1" rowspan="1" colspan="3">
<property name="name">
<cstring>TextLabel2</cstring>
</property>
<property name="font">
<font>
<bold>1</bold>
</font>
</property>
<property name="text">
<string>Welcome to KDE Desktop Sharing</string>
</property>
</widget>
<widget class="KActiveLabel" row="1" column="1" rowspan="1" colspan="3">
<property name="name">
<cstring>kActiveLabel1</cstring>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>KDE Desktop Sharing allows you to invite somebody at a remote location to watch and possibly control your desktop.
&lt;a href="whatsthis:&lt;p&gt;An invitation creates a one-time password that allows the receiver to connect to your desktop. It is valid for only one successful connection and will expire after an hour if it has not been used. When somebody connects to your computer a dialog will appear and ask you for permission. The connection will not be established before you accept it. In this dialog you can also restrict the other person to view your desktop only, without the ability to move your mouse pointer or press keys.&lt;/p&gt;&lt;p&gt;If you want to create a permanent password for Desktop Sharing, allow 'Uninvited Connections' in the configuration.&lt;/p&gt;"&gt;More about invitations...&lt;/a&gt;</string>
</property>
</widget>
<widget class="QLabel" row="0" column="0" rowspan="7" colspan="1">
<property name="name">
<cstring>pixmapLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>108</width>
<height>318</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>108</width>
<height>318</height>
</size>
</property>
<property name="frameShape">
<enum>WinPanel</enum>
</property>
<property name="frameShadow">
<enum>Sunken</enum>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignTop</set>
</property>
</widget>
<spacer row="4" column="3">
<property name="name">
<cstring>spacer4</cstring>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
<widget class="QPushButton" row="3" column="2">
<property name="name">
<cstring>btnCreateInvite</cstring>
</property>
<property name="text">
<string>Create &amp;Personal Invitation...</string>
</property>
<property name="toolTip" stdset="0">
<string></string>
</property>
<property name="whatsThis" stdset="0">
<string>Create a new invitation and display the connection data. Use this option if you want to invite somebody personally, for example, to give the connection data over the phone.</string>
</property>
</widget>
<spacer row="6" column="2">
<property name="name">
<cstring>spacer5</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>Fixed</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>24</height>
</size>
</property>
</spacer>
<spacer row="4" column="1">
<property name="name">
<cstring>spacer3</cstring>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
<widget class="QPushButton" row="5" column="2">
<property name="name">
<cstring>btnManageInvite</cstring>
</property>
<property name="text">
<string>&amp;Manage Invitations (%1)...</string>
</property>
</widget>
<widget class="QPushButton" row="4" column="2">
<property name="name">
<cstring>btnEmailInvite</cstring>
</property>
<property name="text">
<string>Invite via &amp;Email...</string>
</property>
<property name="whatsThis" stdset="0">
<string>This button will start your email application with a pre-configured text that explains to the recipient how to connect to your computer. </string>
</property>
</widget>
<spacer row="2" column="2">
<property name="name">
<cstring>spacer2</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>MinimumExpanding</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>89</height>
</size>
</property>
</spacer>
</grid>
</widget>
<signals>
<signal>createInviteClicked()</signal>
<signal>emailInviteClicked()</signal>
<signal>manageInviteClicked()</signal>
</signals>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
</UI>

View File

@@ -14,13 +14,110 @@ X-KDE-KINETD-multiInstance=false
X-KDE-KINETD-serviceURL=service:remotedesktop.kde:vnc://%h:%p;(type=shared),(username=%u),(fullname=%f),(serviceid=%i)
X-KDE-KINETD-serviceAttributes=(type=shared),(username=%u),(fullname=%f),(serviceid=%i)
X-KDE-KINETD-serviceLifetime=1200
X-KDE-KINETD-DNSSD-Name=Remote Desktop of %u
X-KDE-KINETD-DNSSD-Type=_rfb._tcp
X-KDE-KINETD-DNSSD-Properties=type=shared,u=%u,fullname=%f
Name=KRfb Desktop Sharing
Name[ar]=KRfb مشاركة سطح المكتب
Name[bg]=Споделяне на работно място (KRfb)
Name[bs]=KRfb dijeljenje desktopa
Name[ca]=Compartició de l'escriptori KRfb
Name[cs]=Sdílení pracovní plochy KRfb
Name[cy]=Rhannu Penbwrdd KRfb
Name[da]=KRfb Skrivebordsdeling
Name[de]=KRfb Arbeitsfläche freigeben
Name[el]=Κοινή χρήση επιφάνειας εργασίας KRfb
Name[eo]=KRfb Tabula fordonado
Name[es]=Compartición de escritorio KRfb
Name[et]=KRfb Töölaua jagamine
Name[fi]=Työpöydän jakaminen
Name[fr]=Partage de bureau KRfb
Name[x-test]=xxKRfb Desktop Sharingxx
Name[ga]=Roinnt Deisce KRfb
Name[gl]=KRfb Compartición de Escritorios
Name[he]=שיתוף שולחנות עבודה של KRfb
Name[hi]=KRfb डेस्कटॉप साझा
Name[hr]=KRfb dijeljenje radne površine
Name[hu]=KRfb munkaasztal-megosztás
Name[is]=KRfb Skjáborðsmiðlun
Name[it]=Condivisione desktop KRfb
Name[ja]=KRfb デスクトップ共有
Name[lt]=KRfb dalinimasis darbastaliu
Name[mk]=KRfb Десктоп Делење
Name[mn]=KRfb ажлын байр
Name[ms]=Perkongsian Ruang Kerja KRfb
Name[mt]=Qsim tad-desktop KRfb
Name[nb]=KRfb skrivebordsdeling
Name[nn]=KRfb-skrivebordsdeling
Name[nso]=Kabagano ya Desktop ya KRfp
Name[pl]=KRfb Współdzielenie pulpitu
Name[pt]=Partilha do Ecrã KRfb
Name[pt_BR]=Compartilhamento do Ambiente de Trabalho KRfb
Name[ro]=Partajare ecran KRfb
Name[ru]=Общий рабочий стол KRfb
Name[sk]=KRfb zdieľanie pracovnej plochy
Name[sl]=Deljenje namizja z KRfb
Name[sr]=KRfb дељење радне површине
Name[sr@Latn]=KRfb deljenje radne površine
Name[sv]=Krfb dela ut skrivbord
Name[ta]=மேசைமேல் பகிர்வு
Name[th]=แบ่งการใช้งานพื้นที่ทำงานร่วมกัน
Name[tr]=KRfb Masaüstü Paylaşımı
Name[uk]=Спільні стільниця KRfb
Name[ven]=U kovhekana ha Desikithopo ya KRfb
Name[xh]=Desktop ye KRfb Isebenza ngokuhlangeneyo
Name[xx]=xxKRfb Desktop Sharingxx
Name[zh_CN]=KRfb 桌面共享
Name[zh_TW]=KRfb 桌面分享
Name[zu]=KRfb ukwahlukanisela kwe-Desktop Sharing
Comment=A daemon that allows you to share your desktop
Comment[af]='n bediener wat laat toe jy na deel jou werkskerm
Comment[ar]=مراقب يسمح لك بمشاركة سطح مكتبك
Comment[bg]=Демон за споделяне на работното място
Comment[bs]=Daemon koji vam omogućuje da dijelite vaš desktop
Comment[ca]=Un dimoni que us permetrà compartir el vostre escriptori
Comment[cs]=Démon umožňující sdílení vaší plochy
Comment[cy]=Daemon sy'n gadael i chi rannu eich penbwrdd
Comment[da]=En dæmon der tillader dig at dele dit skrivebord
Comment[de]=Ein Dämon, der die Freigabe der Arbeitsfläche erlaubt
Comment[el]=Ένας δαίμονας που σας επιτρέπει να μοιραστείτε την επιφάνεια εργασίας σας
Comment[eo]=demono por permesi retan fordonadon de via tabulo
Comment[es]=Un demonio que le permite compartir su escritorio
Comment[et]=Deemon, mis lubab sul töölauda jagada
Comment[fi]=Palvelin joka mahdollistaa työpöydän jakamisen
Comment[fr]=Un démon qui vous permet de partager votre bureau
Comment[x-test]=xxA daemon that allows you to share your desktopxx
Comment[ga]=Deamhan a chuireann ar do chumas do dheasca a roinnt
Comment[gl]=Un demo que permite a compartición do teu escritorio
Comment[he]=תהליך רקע שמאפשר לך לשתף את שולחן העבודה שלך
Comment[hi]=आपके डेस्कटॉप को साझा करने देने वाला डेमन
Comment[hr]=Daemon koji vam omogućuje da dijelite svoju radnu površinu s drugima
Comment[hu]=Munkaasztal-megosztási szolgáltatás
Comment[is]=Þjónn sem leyfir þér að miðla skjáborðinu þínu
Comment[it]=Un demone che permette di condividere il tuo desktop
Comment[ja]=デスクトップ共有を可能にするデーモン
Comment[lt]=Tarnyba, leidžianti jums dalintis savo darbastaliu
Comment[mk]=Демон што дозволува да го делиш десктопот
Comment[mn]=Таны ажлын байрыг хамтран эзэмшихийгзөвшөөрсөн демон
Comment[ms]=Daemon yang membenarkan anda berkongsi ruang kerja
Comment[mt]=Daemon li jħallik taqsam id-desktop ma' ħaddieħor
Comment[nb]=En programnisse som tillater deling av ditt skrivebord med andre
Comment[nl]=Een daemon waarmee u uw bureaublad kunt vrijgeven om te delen
Comment[nn]=Ein nisse som let deg dela skrivebordet
Comment[nso]=Daemon yeo ego dumelelago go abelana ka desktop ya gago
Comment[pl]=Usługa, która pozwala na współdzielenie pulpitu
Comment[pt]=Um servidor que lhe permite partilhar o seu ecrã
Comment[pt_BR]=Um servidor que permite a você compartilhar o seu ambiente de trabalho
Comment[ro]=Un demon care vă permite saă partajaţi sistemul dumneavoastră
Comment[ru]=Демон общего доступа к рабочему столу
Comment[se]=Duogášprográmma mii diktá du juohkit čállinbeavddi earáiguin
Comment[sk]=Démon ktorý umožní zdieľať vašu pracovnú plochu
Comment[sl]=Demon, s katerim lahko delite vaše namizje
Comment[sr]=Демон који вам дозвољава да делите вашу радну површину
Comment[sr@Latn]=Demon koji vam dozvoljava da delite vašu radnu površinu
Comment[sv]=Demon som låter dig dela ut skrivbordet
Comment[ta]=ஒரு டேமொன் உங்கள் மேஜைமேல் பகிர்வை அளிக்கும்
Comment[th]=เดมอนอนุญาตให้คุณแบ่งการใช้งานพื้นที่ทำงานร่วมกัน
Comment[uk]=Демон, що дозволяє спільне використання стільниць
Comment[ven]=Daemon ine yani tendela nitshi kovhekana desktop yanu
Comment[xh]=Daemon ekuvumela ukuba wabe i desktop yakho
Comment[xx]=xxA daemon that allows you to share your desktopxx
Comment[zh_CN]=允许您共享桌面的守护进程
Comment[zh_TW]=讓您分享您的桌面的伺服程式
Comment[zu]=I-daemoni ekuvumela uhlukaniselana nge-desktop

View File

@@ -1,13 +1,62 @@
# KDE Config File
# KDE Config File
[Desktop Entry]
Type=Application
Exec=krfb -caption "%c"
Exec=krfb -caption "%c" %i %m
Icon=krfb
DocPath=krfb/index.html
Terminal=false
Name=Krfb
Name[x-test]=xxKrfbxx
GenericName=Desktop Sharing
GenericName[fr]=Partage de bureau
GenericName[x-test]=xxDesktop Sharingxx
Categories=Qt;KDE;System;
Terminal=0
Name=Desktop Sharing
Name[af]=Werkskerm Deeling
Name[ar]=مشاركة سطح المكتب
Name[bg]=Споделяне на работно място
Name[bs]=Dijeljenje desktopa
Name[ca]=Compartició de l'escriptori
Name[cs]=Sdílení pracovní plochy
Name[cy]=Rhannu Penbwrdd
Name[da]=Skrivebordsdeling
Name[de]=Arbeitsfläche freigeben
Name[el]=Κοινή χρήση επιφάνειας εργασίας
Name[eo]=Tabuloj komunaj
Name[es]=Compartición de escritorio
Name[et]=Töölaua jagamine
Name[fi]=Työpöydän jakaminen
Name[fr]=Partage de bureau
Name[ga]=Roinnt Deisce
Name[gl]=Compartición do escritorio
Name[he]=שיתוף שולחנות עבודה
Name[hi]=डेस्कटॉप साझा
Name[hr]=Dijeljenje radne površine
Name[hu]=Munkaasztal-megosztás
Name[is]=Skjáborðamiðlun
Name[it]=Condivisione Desktop
Name[ja]=デスクトップ共有
Name[lt]=Dalinimasis darbastaliu
Name[mk]=Десктоп Делење
Name[mn]=Ажлын байрыг хамтран эзэмших
Name[ms]=Perkongsian Ruang Kerja
Name[mt]=Qsim tad-desktop
Name[nb]=Delte skrivebord
Name[nl]=Bureaubladvrijgave
Name[nn]=Skrivebordsdeling
Name[nso]=Kabagano ya Desktop
Name[pl]=Współdzielenie pulpitu
Name[pt]=Partilha do Ambiente de Trabalho
Name[pt_BR]=Compartilhamento do Desktop
Name[ro]=Partajare ecran
Name[ru]=Общий рабочий стол
Name[sk]=Zdieľanie pracovnej plochy
Name[sl]=Deljenje namizja
Name[sr]=Дељење радне површине
Name[sr@Latn]=Deljenje radne površine
Name[sv]=Dela ut skrivbordet
Name[ta]=மேசைமேல் பகிர்வு
Name[th]=ใช้งานพื้นที่ทำงานร่วมกัน
Name[tr]=Masaüstü Paylaşımı
Name[uk]=Спільні стільниці
Name[ven]=U kovhekana ha Desikithopo
Name[xh]=Ukwehlulelana kwe Desktop
Name[xx]=xxDesktop Sharingxx
Name[zh_CN]=桌面共享
Name[zh_TW]=桌面分享
Name[zu]=Ukwahlulelana kwe-Desktop
Categories=Qt;KDE;System

View File

@@ -1,15 +1,3 @@
/*
Copyright 2002 Tim Jansen <tim@tjansen.de>
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef __KRFB_IFACE_H
#define __KRFB_IFACE_H

View File

@@ -1,7 +1,3 @@
/*
Copyright 2002 Tim Jansen <tim@tjansen.de>
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *

View File

@@ -1,16 +1,3 @@
/*
Copyright 2002 Tim Jansen <tim@tjansen.de>
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef __KRFB_IFACE_IMPL_H
#define __KRFB_IFACE_IMPL_H

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -33,7 +33,7 @@
#include <kmessagebox.h>
#include <qobject.h>
#include <qwindowdefs.h>
#include <q3cstring.h>
#include <qcstring.h>
#include <qdatastream.h>
#include <dcopref.h>
@@ -48,7 +48,7 @@ static const char description[] = I18N_NOOP("VNC-compatible server to share "
static KCmdLineOptions options[] =
{
{ ARG_KINETD " ", I18N_NOOP("Used for calling from kinetd"), 0},
{ ARG_KINETD " ", I18N_NOOP("Used for calling from kinetd."), 0},
KCmdLineLastOption
};
@@ -144,7 +144,7 @@ int main(int argc, char *argv[])
RFBController controller(config);
KRfbIfaceImpl dcopiface(&controller);
QObject::connect(&app, SIGNAL(lastWindowClosed()), // do not show passivepopup
QObject::connect(&app, SIGNAL(lastWindowClosed()), // dont show passivepopup
&trayicon, SLOT(prepareQuit()));
QObject::connect(&app, SIGNAL(lastWindowClosed()),
&controller, SLOT(closeConnection()));
@@ -180,7 +180,7 @@ int main(int argc, char *argv[])
bool ok;
int fdNum = fdString.toInt(&ok);
if (!ok) {
kError() << "kinetd fd was not numeric." << endl;
kdError() << "kinetd fd was not numeric." << endl;
return 2;
}
controller.startServer(fdNum);

View File

@@ -12,7 +12,7 @@
<height>350</height>
</rect>
</property>
<property name="windowTitle">
<property name="caption">
<string>Manage Invitations - Desktop Sharing</string>
</property>
<property name="icon">
@@ -33,7 +33,7 @@
<cstring>Spacer10</cstring>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
@@ -50,7 +50,7 @@
<cstring>Spacer7</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Vertical</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
@@ -62,7 +62,7 @@
</size>
</property>
</spacer>
<widget class="K3ListView" row="0" column="0" rowspan="5" colspan="1">
<widget class="KListView" row="0" column="0" rowspan="5" colspan="1">
<column>
<property name="text">
<string>Created</string>
@@ -202,7 +202,7 @@
</connection>
</connections>
<includes>
<include location="global" impldecl="in declaration">k3listview.h</include>
<include location="global" impldecl="in declaration">klistview.h</include>
<include location="local" impldecl="in implementation">manageinvitations.ui.h</include>
</includes>
<slots>
@@ -211,6 +211,6 @@
</slots>
<layoutdefaults spacing="6" margin="11"/>
<includehints>
<includehint>k3listview.h</includehint>
<includehint>klistview.h</includehint>
</includehints>
</UI>

View File

@@ -1,22 +1,9 @@
/*
Copyright 2002 Tim Jansen <tim@tjansen.de>
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
void ManageInvitationsDialog::listSizeChanged(int i) {
deleteAllButton->setEnabled(i);
}
void ManageInvitationsDialog::listSelectionChanged() {
Q3ListViewItem *i = listView->firstChild();
QListViewItem *i = listView->firstChild();
while(i) {
if (i->isSelected()) {
deleteOneButton->setEnabled(true);

362
krfb/newconnectiondialog.ui Normal file

File diff suppressed because one or more lines are too long

374
krfb/personalinvitation.ui Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,54 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "personalinvitedialog.h"
#include "personalinvitewidget.h"
#include <qlabel.h>
#include <kactivelabel.h>
#include <kiconloader.h>
#include <klocale.h>
PersonalInviteDialog::PersonalInviteDialog( QWidget *parent, const char *name )
: KDialogBase( parent, name, true, i18n( "Personal Invitation" ),
Close, Close, true )
{
m_inviteWidget = new PersonalInviteWidget( this, "PersonalInviteWidget" );
m_inviteWidget->pixmapLabel->setPixmap(
UserIcon( "connection-side-image.png" ) );
setMainWidget( m_inviteWidget );
}
void PersonalInviteDialog::setHost( const QString &host, uint port )
{
m_inviteWidget->hostLabel->setText( QString( "%1:%2" )
.arg( host ).arg( port ) );
}
void PersonalInviteDialog::setPassword( const QString &passwd )
{
m_inviteWidget->passwordLabel->setText( passwd );
}
void PersonalInviteDialog::setExpiration( const QDateTime &expire )
{
m_inviteWidget->expirationLabel->setText( expire.toString( Qt::LocalDate ) );
}

View File

@@ -1,44 +0,0 @@
/* This file is part of the KDE project
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef PERSONALINVITEDIALOG_H
#define PERSONALINVITEDIALOG_H
class PersonalInviteWidget;
#include <qdatetime.h>
#include <kdialogbase.h>
class PersonalInviteDialog : public KDialogBase
{
public:
PersonalInviteDialog( QWidget *parent, const char *name );
virtual ~PersonalInviteDialog() {}
void setHost( const QString &host, uint port );
void setPassword( const QString &passwd );
void setExpiration( const QDateTime &expire );
protected:
PersonalInviteWidget *m_inviteWidget;
};
#endif // PERSONALINVITEDIALOG_H

View File

@@ -1,241 +0,0 @@
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
<class>PersonalInviteWidget</class>
<widget class="QWidget">
<property name="name">
<cstring>Form1</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>519</width>
<height>328</height>
</rect>
</property>
<property name="windowTitle">
<string></string>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="resizeMode">
<enum>Fixed</enum>
</property>
<widget class="KActiveLabel" row="0" column="1" rowspan="1" colspan="3">
<property name="name">
<cstring>mainTextLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>&lt;h2&gt;Personal Invitation&lt;/h2&gt;
Give the information below to the person that you want to invite (&lt;a href="whatsthis:Desktop Sharing uses the VNC protocol. You can use any VNC client to connect. In KDE the client is called 'Remote Desktop Connection'. Enter the host information into the client and it will connect.."&gt;how to connect&lt;/a&gt;). Note that everybody who gets the password can connect, so be careful.</string>
</property>
</widget>
<spacer row="1" column="2">
<property name="name">
<cstring>spacer9</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>34</height>
</size>
</property>
</spacer>
<widget class="QLabel" row="0" column="0" rowspan="6" colspan="1">
<property name="name">
<cstring>pixmapLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>108</width>
<height>318</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>108</width>
<height>318</height>
</size>
</property>
<property name="frameShape">
<enum>WinPanel</enum>
</property>
<property name="frameShadow">
<enum>Sunken</enum>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<spacer row="5" column="2">
<property name="name">
<cstring>spacer10</cstring>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>30</height>
</size>
</property>
</spacer>
<widget class="KActiveLabel" row="2" column="2">
<property name="name">
<cstring>hostLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>cookie.tjansen.de:0</string>
</property>
</widget>
<widget class="QLabel" row="3" column="1">
<property name="name">
<cstring>kActiveLabel6</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&lt;b&gt;Password:&lt;/b&gt;</string>
</property>
</widget>
<widget class="QLabel" row="4" column="1">
<property name="name">
<cstring>kActiveLabel7</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&lt;b&gt;Expiration time:&lt;/b&gt;</string>
</property>
</widget>
<widget class="KActiveLabel" row="3" column="2">
<property name="name">
<cstring>passwordLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>12345</string>
</property>
</widget>
<widget class="KActiveLabel" row="4" column="2">
<property name="name">
<cstring>expirationLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>17:12</string>
</property>
</widget>
<widget class="QLabel" row="2" column="1">
<property name="name">
<cstring>kActiveLabel5</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&lt;b&gt;Host:&lt;/b&gt;</string>
</property>
</widget>
<widget class="KActiveLabel" row="2" column="3">
<property name="name">
<cstring>hostHelpLabel</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>(&lt;a href="whatsthis:This field contains the address of your computer and the display number, separated by a colon. The address is just a hint - you can use any address that can reach your computer. Desktop Sharing tries to guess your address from your network configuration, but does not always succeed in doing so. If your computer is behind a firewall it may have a different address or be unreachable for other computers."&gt;Help&lt;/a&gt;)</string>
</property>
</widget>
</grid>
</widget>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
</UI>

View File

@@ -41,6 +41,7 @@
#include <kdebug.h>
#include <kmessagebox.h>
#include <klocale.h>
#include <kextsock.h>
#include <qstring.h>
#include <qcursor.h>
#include <qwindowdefs.h>
@@ -50,16 +51,12 @@
#include <qglobal.h>
#include <qlabel.h>
#include <qmutex.h>
#include <q3deepcopy.h>
#include <qdeepcopy.h>
#include <qclipboard.h>
#include <qdesktopwidget.h>
//Added by qt3to4:
#include <Q3CString>
#include <Q3PtrList>
#include <X11/Xutil.h>
#include <X11/extensions/XTest.h>
#include <QX11Info>
#ifndef ASSERT
#define ASSERT(x) Q_ASSERT(x)
@@ -173,11 +170,17 @@ static void clipboardHook(char* str,int len, rfbClientPtr)
self->clipboardToServer(QString::fromUtf8(str, len));
}
void ConnectionDialog::closeEvent(QCloseEvent *)
{
emit closed();
}
VNCEvent::~VNCEvent() {
}
Display *KeyboardEvent::dpy;
signed char KeyboardEvent::modifiers[0x100];
char KeyboardEvent::modifiers[0x100];
KeyCode KeyboardEvent::keycodes[0x100];
KeyCode KeyboardEvent::leftShiftCode;
KeyCode KeyboardEvent::rightShiftCode;
@@ -196,7 +199,7 @@ void KeyboardEvent::initKeycodes() {
KeySym key,*keymap;
int i,j,minkey,maxkey,syms_per_keycode;
dpy = QX11Info::display();
dpy = qt_xdisplay();
memset(modifiers,-1,sizeof(modifiers));
@@ -225,7 +228,7 @@ void KeyboardEvent::initKeycodes() {
}
/* this function adjusts the modifiers according to mod (as from modifiers) and ModifierState */
void KeyboardEvent::tweakModifiers(signed char mod, bool down) {
void KeyboardEvent::tweakModifiers(char mod, bool down) {
bool isShift = ModifierState & (LEFTSHIFT|RIGHTSHIFT);
if(mod < 0)
@@ -287,7 +290,7 @@ PointerEvent::PointerEvent(int b, int _x, int _y) :
y(_y) {
if (!initialized) {
initialized = true;
dpy = QX11Info::display();
dpy = qt_xdisplay();
buttonMask = 0;
}
}
@@ -348,19 +351,23 @@ void SessionEstablishedEvent::exec() {
controller->sendSessionEstablished();
}
RFBController::RFBController(Configuration *c) :
allowDesktopControl(false),
lastClipboardDirection(LAST_SYNC_TO_SERVER),
configuration(c),
dialog( 0, "ConnectionDialog" ),
disableBackgroundPending(false),
disableBackgroundState(false),
closePending(false),
forcedClose(false)
{
self = this;
connect(&dialog, SIGNAL(okClicked()), SLOT(dialogAccepted()));
connect(&dialog, SIGNAL(cancelClicked()), SLOT(dialogRefused()));
connect(dialog.acceptConnectionButton, SIGNAL(clicked()),
SLOT(dialogAccepted()));
connect(dialog.refuseConnectionButton, SIGNAL(clicked()),
SLOT(dialogRefused()));
connect(&dialog, SIGNAL(closed()), SLOT(dialogRefused()));
connect(&initIdleTimer, SIGNAL(timeout()), SLOT(checkAsyncEvents()));
connect(&idleTimer, SIGNAL(timeout()), SLOT(idleSlot()));
@@ -376,7 +383,7 @@ RFBController::RFBController(Configuration *c) :
if (gethostname(hostname, 255))
hostname[0] = 0;
hostname[255] = 0;
desktopName = i18n("%1@%2 (shared desktop)", KUser().loginName(), hostname);
desktopName = QString(i18n("%1@%2 (shared desktop)")).arg(KUser().loginName()).arg(hostname);
}
RFBController::~RFBController()
@@ -388,7 +395,7 @@ RFBController::~RFBController()
void RFBController::startServer(int inetdFd, bool xtestGrab)
{
framebufferImage = XGetImage(QX11Info::display(),
framebufferImage = XGetImage(qt_xdisplay(),
QApplication::desktop()->winId(),
0,
0,
@@ -458,7 +465,7 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
passwordChanged();
scanner = new XUpdateScanner(QX11Info::display(),
scanner = new XUpdateScanner(qt_xdisplay(),
QApplication::desktop()->winId(),
(unsigned char*)fb, w, h,
server->rfbServerFormat.bitsPerPixel,
@@ -470,7 +477,7 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
if (xtestGrab) {
disabler.disable = false;
XTestGrabControl(QX11Info::display(), true);
XTestGrabControl(qt_xdisplay(), true);
}
rfbRunEventLoop(server, -1, TRUE);
@@ -510,8 +517,8 @@ void RFBController::connectionAccepted(bool aRC)
void RFBController::acceptConnection(bool aRemoteControl)
{
KNotifyClient::event("UserAcceptsConnection",
i18n("User accepts connection from %1",
remoteIp));
i18n("User accepts connection from %1")
.arg(remoteIp));
if (state != RFB_CONNECTING)
return;
@@ -523,8 +530,8 @@ void RFBController::acceptConnection(bool aRemoteControl)
void RFBController::refuseConnection()
{
KNotifyClient::event("UserRefusesConnection",
i18n("User refuses connection from %1",
remoteIp));
i18n("User refuses connection from %1")
.arg(remoteIp));
if (state != RFB_CONNECTING)
return;
@@ -571,8 +578,8 @@ void RFBController::disableBackground(bool state) {
void RFBController::connectionClosed()
{
KNotifyClient::event("ConnectionClosed",
i18n("Closed connection: %1.",
remoteIp));
i18n("Closed connection: %1.")
.arg(remoteIp));
idleTimer.stop();
initIdleTimer.stop();
@@ -616,7 +623,7 @@ void RFBController::idleSlot()
rfbUndrawCursor(server);
Q3PtrList<Hint> v;
QPtrList<Hint> v;
v.setAutoDelete(true);
QPoint p = QCursor::pos();
scanner->searchUpdates(v, p.y());
@@ -640,7 +647,7 @@ void RFBController::idleSlot()
void RFBController::dialogAccepted()
{
dialog.hide();
acceptConnection(dialog.allowRemoteControl());
acceptConnection(dialog.allowRemoteControlCB->isChecked());
}
void RFBController::dialogRefused()
@@ -683,7 +690,7 @@ bool RFBController::handleCheckPassword(rfbClientPtr cl,
cl->authChallenge, response, len);
if (!authd) {
QList<Invitation>::iterator it =
QValueList<Invitation>::iterator it =
configuration->invitations().begin();
while (it != configuration->invitations().end()) {
if (checkPassword((*it).password(),
@@ -700,13 +707,13 @@ bool RFBController::handleCheckPassword(rfbClientPtr cl,
if (!authd) {
if (configuration->invitations().size() > 0) {
sendKNotifyEvent("InvalidPasswordInvitations",
i18n("Failed login attempt from %1: wrong password",
remoteIp));
i18n("Failed login attempt from %1: wrong password")
.arg(remoteIp));
}
else
sendKNotifyEvent("InvalidPassword",
i18n("Failed login attempt from %1: wrong password",
remoteIp));
i18n("Failed login attempt from %1: wrong password")
.arg(remoteIp));
return FALSE;
}
@@ -741,8 +748,8 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
if (state != RFB_WAITING) {
sendKNotifyEvent("TooManyConnections",
i18n("Connection refused from %1, already connected.",
host));
i18n("Connection refused from %1, already connected.")
.arg(host));
return RFB_CLIENT_REFUSE;
}
remoteIp = host;
@@ -751,19 +758,19 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
if ((!configuration->askOnConnect()) &&
(configuration->invitations().size() == 0)) {
sendKNotifyEvent("NewConnectionAutoAccepted",
i18n("Accepted uninvited connection from %1",
remoteIp));
i18n("Accepted uninvited connection from %1")
.arg(remoteIp));
connectionAccepted(configuration->allowDesktopControl());
return RFB_CLIENT_ACCEPT;
}
sendKNotifyEvent("NewConnectionOnHold",
i18n("Received connection from %1, on hold (waiting for confirmation)",
remoteIp));
i18n("Received connection from %1, on hold (waiting for confirmation)")
.arg(remoteIp));
dialog.setRemoteHost(remoteIp);
dialog.setAllowRemoteControl( true );
dialog.ipLabel->setText(remoteIp);
dialog.allowRemoteControlCB->setChecked(true);
dialog.setFixedSize(dialog.sizeHint());
dialog.show();
return RFB_CLIENT_ON_HOLD;
@@ -828,7 +835,7 @@ void RFBController::clipboardChanged() {
lastClipboardDirection = LAST_SYNC_TO_CLIENT;
lastClipboardText = text;
Q3CString ctext = text.utf8();
QCString ctext = text.utf8();
rfbSendServerCutText(server, ctext.data(), ctext.length());
}
@@ -848,7 +855,7 @@ void RFBController::selectionChanged() {
lastClipboardDirection = LAST_SYNC_TO_CLIENT;
lastClipboardText = text;
Q3CString ctext = text.utf8();
QCString ctext = text.utf8();
rfbSendServerCutText(server, ctext.data(), ctext.length());
}
@@ -880,7 +887,7 @@ extern "C" Bool XShmQueryExtension(Display*);
bool RFBController::checkX11Capabilities() {
int bp1, bp2, majorv, minorv;
Bool r = XTestQueryExtension(QX11Info::display(), &bp1, &bp2,
Bool r = XTestQueryExtension(qt_xdisplay(), &bp1, &bp2,
&majorv, &minorv);
if ((!r) || (((majorv*1000)+minorv) < 2002)) {
KMessageBox::error(0,
@@ -899,7 +906,7 @@ XTestDisabler::XTestDisabler() :
void XTestDisabler::exec() {
if (disable)
XTestDiscard(QX11Info::display());
XTestDiscard(qt_xdisplay());
}
#include "rfbcontroller.moc"

View File

@@ -24,15 +24,12 @@
#define RFBCONTROLLER_H
#include "configuration.h"
#include "connectiondialog.h"
#include "newconnectiondialog.h"
#include "xupdatescanner.h"
#include <ksock.h>
#include <qobject.h>
#include <qtimer.h>
#include <qmutex.h>
//Added by qt3to4:
#include <QCloseEvent>
#include <Q3PtrList>
#define HAVE_PTHREADS
#include "rfb.h"
@@ -52,6 +49,15 @@ typedef enum {
RFB_CONNECTED
} RFBState;
class ConnectionDialog : public KRFBConnectionDialog {
Q_OBJECT
public:
virtual void closeEvent(QCloseEvent *);
signals:
void closed();
};
class VNCEvent {
public:
virtual void exec() = 0;
@@ -64,14 +70,14 @@ class KeyboardEvent : public VNCEvent {
KeySym keySym;
static Display *dpy;
static signed char modifiers[0x100];
static char modifiers[0x100];
static KeyCode keycodes[0x100], leftShiftCode, rightShiftCode, altGrCode;
static const int LEFTSHIFT;
static const int RIGHTSHIFT;
static const int ALTGR;
static char ModifierState;
static void tweakModifiers(signed char mod, bool down);
static void tweakModifiers(char mod, bool down);
public:
static void initKeycodes();
@@ -192,7 +198,7 @@ private:
XImage *framebufferImage;
QMutex asyncMutex;
Q3PtrList<VNCEvent> asyncQueue;
QPtrList<VNCEvent> asyncQueue;
bool disableBackgroundPending; // background, as desired by libvncserver
bool disableBackgroundState; // real background state

View File

@@ -17,17 +17,13 @@
#include "trayicon.h"
#include <qtooltip.h>
//Added by qt3to4:
#include <QHideEvent>
#include <QPixmap>
#include <QMouseEvent>
#include <kstdaction.h>
#include <kapplication.h>
#include <klocale.h>
#include <kdialog.h>
#include <kglobal.h>
#include <kiconloader.h>
#include <kmenu.h>
#include <kpopupmenu.h>
KPassivePopup2::KPassivePopup2(QWidget *parent) :
KPassivePopup(parent){
@@ -51,7 +47,7 @@ KPassivePopup2 *KPassivePopup2::message( const QString &caption, const QString &
}
TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
KSystemTray(0, "krfb trayicon"),
configuration(c),
aboutDialog(d),
@@ -59,20 +55,19 @@ TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
quitting(false)
{
KIconLoader *loader = KGlobal::iconLoader();
trayIconOpen = loader->loadIcon("eyes-open24", K3Icon::User);
trayIconClosed = loader->loadIcon("eyes-closed24", K3Icon::User);
trayIconOpen = loader->loadIcon("eyes-open24", KIcon::User);
trayIconClosed = loader->loadIcon("eyes-closed24", KIcon::User);
setPixmap(trayIconClosed);
QToolTip::add(this, i18n("Desktop Sharing - connecting"));
manageInvitationsAction = new KAction(i18n("Manage &Invitations"), QString::null,
0, this, SIGNAL(showManageInvitations()),
manageInvitationsAction = new KAction(i18n("Manage &Invitations"), QString::null,
0, this, SIGNAL(showManageInvitations()),
&actionCollection);
manageInvitationsAction->plug(contextMenu());
contextMenu()->insertSeparator();
enableControlAction = new KToggleAction(i18n("Enable Remote Control"));
enableControlAction->setCheckedState(i18n("Disable Remote Control"));
enableControlAction->plug(contextMenu());
enableControlAction->setEnabled(false);
connect(enableControlAction, SIGNAL(toggled(bool)), SIGNAL(enableDesktopControl(bool)));
@@ -101,11 +96,11 @@ void TrayIcon::prepareQuit() {
void TrayIcon::showConnectedMessage(QString host) {
setPixmap(trayIconOpen);
KPassivePopup2::message(i18n("Desktop Sharing"),
i18n("The remote user has been authenticated and is now connected."),
KPassivePopup2::message(i18n("Desktop Sharing"),
i18n("The remote user has been authenticated and is now connected."),
trayIconOpen,
this);
QToolTip::add(this, i18n("Desktop Sharing - connected with %1", host));
QToolTip::add(this, i18n("Desktop Sharing - connected with %1").arg(host));
}
void TrayIcon::showDisconnectedMessage() {
@@ -114,8 +109,8 @@ void TrayIcon::showDisconnectedMessage() {
QToolTip::add(this, i18n("Desktop Sharing - disconnected"));
setPixmap(trayIconClosed);
KPassivePopup2 *p = KPassivePopup2::message(i18n("Desktop Sharing"),
i18n("The remote user has closed the connection."),
KPassivePopup2 *p = KPassivePopup2::message(i18n("Desktop Sharing"),
i18n("The remote user has closed the connection."),
trayIconClosed,
this);
connect(p, SIGNAL(hidden()), this, SIGNAL(diconnectedMessageDisplayed()));

View File

@@ -21,11 +21,7 @@
#include "configuration.h"
#include <qwidget.h>
//Added by qt3to4:
#include <QPixmap>
#include <QHideEvent>
#include <QMouseEvent>
#include <QPixmap>
#include <kpixmap.h>
#include <kaction.h>
#include <ksystemtray.h>
#include <kpassivepopup.h>
@@ -77,8 +73,8 @@ protected:
private:
QPixmap trayIconOpen;
QPixmap trayIconClosed;
KPixmap trayIconOpen;
KPixmap trayIconClosed;
Configuration *configuration;
KDialog* aboutDialog;
KActionCollection actionCollection;

View File

@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
/*
@@ -43,8 +43,6 @@
#include <assert.h>
#include "xupdatescanner.h"
//Added by qt3to4:
#include <Q3PtrList>
/* ../../krfb/libvncserver/rfb.h */
#ifdef Bool
@@ -354,11 +352,11 @@ static void printStatistics(Hint &hint) {
ssum += p;
snum++;
float avg = ssum / snum;
kDebug() << "avg size: "<< avg <<"%"<<endl;
kdDebug() << "avg size: "<< avg <<"%"<<endl;
}
void XUpdateScanner::flushHint(int x, int y, int &x0,
Hint &hint, Q3PtrList<Hint> &hintList)
Hint &hint, QPtrList<Hint> &hintList)
{
if (x0 < 0)
return;
@@ -373,7 +371,7 @@ void XUpdateScanner::flushHint(int x, int y, int &x0,
hintList.append(new Hint(hint));
}
void XUpdateScanner::createHints(Q3PtrList<Hint> &hintList)
void XUpdateScanner::createHints(QPtrList<Hint> &hintList)
{
Hint hint;
int x0 = -1;
@@ -443,7 +441,7 @@ void XUpdateScanner::testScanline(int y, bool rememberHits) {
recentHitScanlines[MAX_RECENT_HITS-1] = y;
}
void XUpdateScanner::searchUpdates(Q3PtrList<Hint> &hintList, int ptrY)
void XUpdateScanner::searchUpdates(QPtrList<Hint> &hintList, int ptrY)
{
count++;
count %= SCANLINES;

View File

@@ -14,14 +14,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef _hexonet_rfb_XUpdateScanner_h_
#define _hexonet_rfb_XUpdateScanner_h_
#include <q3ptrlist.h>
#include <qptrlist.h>
#include <X11/Xlib.h>
#include <X11/extensions/XShm.h>
@@ -76,15 +76,15 @@ class XUpdateScanner
// hitList: returns list of changes
// ptrY: ptrY: position of the cursor
void searchUpdates( Q3PtrList<Hint> &hintList, int ptrY);
void searchUpdates( QPtrList<Hint> &hintList, int ptrY);
private:
void testScanline(int y, bool rememberHits);
bool copyTile(int x, int y, int tx, int ty);
void copyAllTiles();
void flushHint(int x, int y, int &x0, Hint &hint,
Q3PtrList<Hint> &hintList);
void createHints(Q3PtrList<Hint> &hintList);
QPtrList<Hint> &hintList);
void createHints(QPtrList<Hint> &hintList);
void addTileToHint(int x, int y, int th, Hint &hint);
void createHintFromTile(int x, int y, int th, Hint &hint);

View File

@@ -1,3 +0,0 @@
install( FILES kinetd_krfb_httpd.desktop DESTINATION ${SERVICES_INSTALL_DIR})
install(PROGRAMS krfb_httpd DESTINATION ${BIN_INSTALL_DIR})

3
krfb_httpd/Makefile.am Normal file
View File

@@ -0,0 +1,3 @@
bin_SCRIPTS = krfb_httpd
kde_services_DATA = kinetd_krfb_httpd.desktop

View File

@@ -14,8 +14,64 @@ X-KDE-KINETD-multiInstance=false
X-KDE-KINETD-serviceLifetime=1200
Name=KRfb Micro Httpd
Name[ar]=KRfb ميكرو httpd
Name[bg]=Микро уеб сървър (KRfb - httpd)
Name[cy]=Meicro-Httpd KRfb
Name[da]=KRfb Micro-Httpd
Name[de]=KRfb Mikro-Httpd
Name[et]=KRfb mikro-httpd
Name[fr]=Micro serveur httpd de KRfb
Name[x-test]=xxKRfb Micro Httpdxx
Name[gl]=KRfg Micro-Httpd
Name[hu]=KRfb mini-httpd
Name[is]=KRfb Micro vefþjónn
Name[ja]=KRfbマイクロHttpd
Name[ms]=Httpd Mikro KRfb
Name[nb]=KRfb mikro- http-nisse
Name[nl]=KRfb micro webserver
Name[nn]=KRfb-mikro-http-nisse
Name[pl]=Mikroskopijny serwer HTTP dla KRfb
Name[pt]=Micro Httpd do KRfb
Name[ru]=KRfb микро-httpd
Name[sv]=Krfb mikro-HTTP demon
Name[tr]=KRfb Mini Httpd
Name[uk]=KRfb мікро Httpd
Name[xx]=xxKRfb Micro Httpdxx
Name[zh_CN]=KRfb 微 Httpd
Comment=A micro http daemon for krfb that serves the VNC viewer applet.
Comment[ar]=مراقب httpd صغير لـkrfb الذي يخدم بريمج عرض VNC.
Comment[bg]=Малък уеб сървър, който обслужва аплета за преглед на VNC
Comment[bs]=Mikro HTTP demon za krfb koji služi za applet VNC preglednika.
Comment[ca]=Un micro-dimoni http per a krfb que serveix l'applet visor VNC.
Comment[cs]=Mikro http démon pro krfb, který slouží appletu prohlížení VNC.
Comment[cy]=Meicro-daemon http sy'n gwasanaethu'r rhaglennig gwelydd VNC
Comment[da]=En mikro http-dæmon for krfb der betjener VNC visningsappletten.
Comment[de]=Ein Mikro-HTTP-Dämon für krfb, der als VNC-Anzeige-Applet dient.
Comment[el]=Ένας μικρός δαίμονας http για το krfb που εξυπηρετεί το εφαρμογίδιο προβολής VNC.
Comment[es]=Un micro demonio http para krfb que sirve de applet de visor VNC.
Comment[et]=Mikro-HTTP deemon KRfb jaoks, mis teenindab VNC apletti.
Comment[fi]=Pieni http-palvelin krfb ohjelmalle, joka jakaa VNC-näyttäjäsovelmaa
Comment[fr]=Un mini serveur http pour KRfb dédié à l'applet d'affichage de bureaux VNC.
Comment[x-test]=xxA micro http daemon for krfb that serves the VNC viewer applet.xx
Comment[gl]=Un micro demo de HTTP para krfb que serve unha applet de visualización de VNC
Comment[he]=שרת http זעיר עבור krfb שמשרת את יישומון תצוגת VNC.
Comment[hu]=Mini HTTP-szolgáltatás a KRfb-hez, a VNC nézegető használatához.
Comment[is]=Verulega lítill vefþjónn sem veitir aðgang í VNC.
Comment[it]=Un micro demone http per krfb che server l'applet di VNC viewer.
Comment[ja]=krfb用のマイクロhttpデーモン(VNCビューアアプレットを提供)
Comment[ms]=Daemon http miKro untuk krfb yang melayan aplet pelihat VNC.
Comment[nb]=En bitteliten http-nisse for krfb som hjelper visningsprogrammet for VNC.
Comment[nl]=Een micro webserver voor krfb dat de VNC weergave-applet beschikbaar stelt.
Comment[nn]=Ein ørliten http-nisse for krfb som hjelper visingsprogrammet for VNC.
Comment[pl]=Mikroskopijny serwer HTTP dla KRfb obsługującego aplet przeglądarki VNC.
Comment[pt]=Um micro-servidor de HTTP para o krfb que serve a 'applet' de visualização de VNC.
Comment[pt_BR]=Um micro daemon de http, para o krfb, que serve o miniaplicativo de visualização do VNC.
Comment[ru]=Миниатюрный http-демон, который обслуживает апплет клиента VNC.
Comment[sk]=Mikro http démon pre krfb ktorý ovláda prehliadací applet VNC.
Comment[sl]=Mikro http demon za krfb, ki streže pregledovalniku vstavkov VNC.
Comment[sr]=Микро http демон за krfb који опслужује аплет VNC приказивача.
Comment[sr@Latn]=Mikro http demon za krfb koji opslužuje aplet VNC prikazivača.
Comment[sv]=En mikro-HTTP demon för Krfb som hanterar VNC-visningsminiprogrammet
Comment[ta]=krfb க்காண நுண்ணிய http அது VNC சேவையை குறுப்பயன் பார்வையாளர்.
Comment[tr]=VNC izleyici programcığını çalıştıran mini bir web sunucu.
Comment[uk]=Мікро http даемон для krfb, який обслуговує аплет переглядача VNC.
Comment[xx]=xxA micro http daemon for krfb that serves the VNC viewer applet.xx
Comment[zh_CN]=支持 VNC 查看器小程序的 krfb 小 http 守护程序

View File

@@ -1 +1,72 @@
#! /usr/bin/env bash
#!/bin/bash
if [ "$1" = "--kinetd" ]; then
# redirect stdin and stdout to the inetd socket.
exec <&$2 >&$2
fi
read request url httptype || exit 0
url="${url/
/}"
httptype="${httptype/
/}"
if [ "x$httptype" != "x" ]; then
line="x"
while [ -n "$line" ]; do
read line || exit 0
line="${line/
/}"
done
fi
# echo "url = $url, request = $request" >> /tmp/httpd.log
case "$url" in
/)
# We need the size of the display for the current applet.
size=`xdpyinfo -display :0| grep dimensions:|head -1|sed -e "s/.*dimensions: *//" -e "s/ pixels.*//"`
width=`echo $size|sed -e "s/x.*//"`
height=`echo $size|sed -e "s/.*x//"`
# The VNC menubar is 20 pixels high ...
height=$((height+20))
port=`dcop kded kinetd port krfb`
if [ "$port" == "-1" ]; then
port=5900
fi
ctype="text/html"
content="
<HTML><HEAD><TITLE>$LOGNAME's desktop</TITLE></HEAD>
<BODY>
<APPLET CODE=vncviewer.class ARCHIVE=vncviewer.jar WIDTH=$width HEIGHT=$height>
<param name=PORT value=$port>
</APPLET>
</BODY></HTML>"
;;
*.jar|*.class)
# Use basename to make sure we have just a filename, not ../../...
url="`basename "$url"`"
ctype="application/octet-stream"
cfile="/usr/share/vnc/classes/$url"
content="FILE"
;;
esac
if [ "x$httptype" != "x" ]; then
echo "HTTP/1.0 200 OK"
echo "Content-Type: $ctype"
if [ "$content" == "FILE" ]; then
clen=`wc -c "$cfile"`
else
clen=`echo "$content"|wc -c`
fi
echo "Content-Length: $clen"
echo "Connection: close"
echo
fi
if [ "$request" == "GET" ]; then
if [ "$content" == "FILE" ]; then
cat "$cfile"
else
echo "$content"

View File

@@ -1,29 +0,0 @@
########### next target ###############
########### install files ###############
#original Makefile.am contents follow:
#INCLUDES = $(all_includes)
#
#noinst_LTLIBRARIES = libvncserver.la
#
#libvncserver_la_SOURCES = main.c rfbserver.c sraRegion.c auth.c sockets.c \
# stats.c corre.c hextile.c rre.c translate.c cutpaste.c \
# zlib.c tight.c httpd.c cursor.c font.c \
# draw.c selbox.c d3des.c vncauth.c cargs.c
#
#EXTRA_DIST = CHANGES COPYING README TODO
#
#AM_CPPFLAGS = -DHAVE_PTHREADS -DALLOW24BPP
#AM_CFLAGS = -Wno-unused
#

View File

@@ -2,8 +2,8 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Steet, Fifth Floor, Boston, MA
02110-1301, USA.
59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -306,7 +306,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Also add information on how to contact you by electronic and paper mail.

14
libvncserver/Makefile.am Normal file
View File

@@ -0,0 +1,14 @@
INCLUDES = $(all_includes)
noinst_LTLIBRARIES = libvncserver.la
libvncserver_la_SOURCES = main.c rfbserver.c sraRegion.c auth.c sockets.c \
stats.c corre.c hextile.c rre.c translate.c cutpaste.c \
zlib.c tight.c httpd.c cursor.c font.c \
draw.c selbox.c d3des.c vncauth.c cargs.c
EXTRA_DIST = CHANGES COPYING README TODO
AM_CPPFLAGS = -DHAVE_PTHREADS -DALLOW24BPP
AM_CFLAGS = -Wno-unused

View File

@@ -409,7 +409,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.dfdf
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.dfdf
Contact
-------

View File

@@ -22,7 +22,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -1,12 +1,12 @@
/*
* This parses the command line arguments. It was separated from main.c by
* This parses the command line arguments. It was seperated from main.c by
* Justin Dearing <jdeari01@longisland.poly.edu>.
*/
/*
* LibVNCServer (C) 2001 Johannes E. Schindelin <Johannes.Schindelin@gmx.de>
* Original OSXvnc (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>.
* Original Xvnc (C) 1999 AT&T Laboratories Cambridge.
* Original Xvnc (C) 1999 AT&T Laboratories Cambridge.
* All Rights Reserved.
*
* see GPL (latest version) for full details
@@ -46,13 +46,13 @@ void rfbPurgeArguments(int* argc,int* position,int count,char *argv[])
(*position)--;
}
void
void
rfbProcessArguments(rfbScreenInfoPtr rfbScreen,int* argc, char *argv[])
{
int i,i1;
if(!argc) return;
for (i = i1 = 1; i < *argc; i++) {
if (strcmp(argv[i], "-help") == 0) {
rfbUsage();
@@ -107,7 +107,7 @@ void rfbSizeUsage()
exit(1);
}
void
void
rfbProcessSizeArguments(int* width,int* height,int* bpp,int* argc, char *argv[])
{
int i,i1;

View File

@@ -22,7 +22,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -18,7 +18,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -248,8 +248,8 @@ rfbSendSoftCursor(rfbClientPtr cl, Bool cursorWasChanged)
/* Send buffer contents if needed. */
if ( cl->ublen + sizeof(rfbSoftCursorMove) +
((scNindex >= 0 && cursorWasChanged) ?
(sizeof(rfbSoftCursorSetImage) + imgLen) : 0) > UPDATE_BUF_SIZE) {
((scNindex >= 0) ?
(sizeof(rfbSoftCursorSetImage) + imgLen) : 0)) {
if (!rfbSendUpdateBuf(cl))
return FALSE;
@@ -257,7 +257,7 @@ rfbSendSoftCursor(rfbClientPtr cl, Bool cursorWasChanged)
saved_ublen = cl->ublen;
if (scNindex >= 0 && cursorWasChanged) {
if (scNindex >= 0) {
rect.encoding = Swap32IfLE(rfbEncodingSoftCursor);
if (pCursor) {
rect.r.x = Swap16IfLE(pCursor->xhot);

View File

@@ -19,7 +19,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -14,9 +14,6 @@
*/
/* d3des.h -
*
*
* A portable, public domain, version of the Data Encryption Standard.
*
* Headers and defines for d3des.c
* Graven Imagery, 1992.

View File

@@ -17,7 +17,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -57,12 +57,12 @@ int main(int argc,char** argv)
fprintf(stderr,"Couldn't find %s\n",DEFAULTFONT);
exit(1);
}
for(j=0;j<0;j++)
rfbProcessEvents(s,900000);
i = rfbSelectBox(s,font,fontlist,10,20,200,300,0xffdfdf,0x602040,2,showFont);
fprintf(stderr,"Selection: %d: %s\n",i,(i>=0)?fontlist[i]:"canceled");
fprintf(stderr,"Selection: %d: %s\n",i,(i>=0)?fontlist[i]:"cancelled");
rfbFreeFont(font);

View File

@@ -21,7 +21,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -17,7 +17,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

0
libvncserver/keysym.h Normal file → Executable file
View File

View File

@@ -22,7 +22,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -242,7 +242,7 @@ typedef struct _rfbScreenInfo
*/
void* screenData;
/* The following two members are used to minimize the amount of unnecessary
/* The following two members are used to minimise the amount of unnecessary
drawing caused by cursor movement. Whenever any drawing affects the
part of the screen where the cursor is, the cursor is removed first and
then the drawing is done (this is what the sprite routines test for).
@@ -794,7 +794,7 @@ void rfbDrawLine(rfbScreenInfoPtr s,int x1,int y1,int x2,int y2,Pixel col);
/* this opens a modal select box. list is an array of strings, the end marked
with a NULL.
It returns the index in the list or -1 if canceled or something else
It returns the index in the list or -1 if cancelled or something else
wasn't kosher. */
typedef void (*SelectionChangedHookPtr)(int _index);
extern int rfbSelectBox(rfbScreenInfoPtr rfbScreen,

View File

@@ -18,7 +18,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -19,7 +19,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -22,7 +22,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -35,7 +35,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

0
libvncserver/sraRegion.c Normal file → Executable file
View File

0
libvncserver/sraRegion.h Normal file → Executable file
View File

View File

@@ -19,7 +19,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

View File

@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/

Some files were not shown because too many files have changed in this diff Show More