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

Compare commits

...

137 Commits

Author SHA1 Message Date
Urs Wolfer
6cfc27b67f port KAboutApplication -> KAboutApplicationDialog, KAboutKDE -> KAboutKDEDialog
svn path=/trunk/KDE/kdenetwork/krfb/; revision=628395
2007-01-29 23:28:40 +00:00
Matthias Kretz
771495dc6f merge the kinstance-redesign branch back to trunk.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=628304
2007-01-29 18:01:48 +00:00
David Faure
9de81c5664 fix include path
svn path=/trunk/KDE/kdenetwork/krfb/; revision=627483
2007-01-26 19:06:39 +00:00
David Faure
fce4ebbb4f Get rid of module-wide config.h mess, use per-directory equivalents (although config-kopete.h is still quite a mess in itself)
Many configuration-related cleanups.

svn path=/trunk/KDE/kdenetwork/krfb/; revision=627480
2007-01-26 18:56:02 +00:00
Laurent Montel
9fe1ef9099 Try to fix compile
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626280
2007-01-22 18:15:27 +00:00
Laurent Montel
18c741e625 Install doc
Cleanup

svn path=/trunk/KDE/kdenetwork/doc/krfb/; revision=626193
2007-01-22 12:49:38 +00:00
Laurent Montel
1117ebb747 SVN_SILENT: minor
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626128
2007-01-22 09:11:36 +00:00
Laurent Montel
9cb088cfad Not necessary
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626127
2007-01-22 09:06:31 +00:00
Laurent Montel
fd512171bc D-Bus port++
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626126
2007-01-22 09:02:49 +00:00
Laurent Montel
d80c5803ec Fix install it as service
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626124
2007-01-22 08:57:01 +00:00
Laurent Montel
73ddb17d52 Remove not necessary files (port to cmake check)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626121
2007-01-22 08:40:48 +00:00
Laurent Montel
1fda4b4f4c Port++
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626032
2007-01-21 21:45:12 +00:00
Laurent Montel
63148c4613 oops forgot to commit it
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626027
2007-01-21 21:34:44 +00:00
Laurent Montel
3ce1258cb8 not necessary
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626026
2007-01-21 21:31:43 +00:00
Laurent Montel
59d82ef5b6 D-Bus port++
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626024
2007-01-21 21:26:43 +00:00
Laurent Montel
6891e92369 Adapt
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626020
2007-01-21 21:15:56 +00:00
Dirk Mueller
f4dc94825e at least initialize them somehow
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626018
2007-01-21 21:13:37 +00:00
Laurent Montel
f16e3cdf4c Not necessary to create static lib (which create some pb on x86_64)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=626017
2007-01-21 21:12:26 +00:00
Urs Wolfer
23d5c0008f generate moc
svn path=/trunk/KDE/kdenetwork/krfb/; revision=625952
2007-01-21 18:06:20 +00:00
Urs Wolfer
120bd94f22 use cmake lib names
svn path=/trunk/KDE/kdenetwork/krfb/; revision=625937
2007-01-21 17:07:26 +00:00
Urs Wolfer
6b2329e8ac readd krfb
* make it compile (without kinetd subfolder)
* left out DCOP->DBUS port
=> the cmake conversation for this app was quite bad. the libvncserver and srvloc were not created.
* some changes in FindSLP.cmake. i am not sure if they are correct. Laurent can you please check?
CCMAIL: montel@kde.org

svn path=/trunk/KDE/kdenetwork/krfb/; revision=625859
2007-01-21 12:51:14 +00:00
Script Kiddy
2ab02f7d89 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=624053
2007-01-16 07:35:09 +00:00
Burkhard Lück
7d6c29d3db fixed wrong link in khelpcenter
svn path=/trunk/KDE/kdenetwork/krfb/; revision=620549
2007-01-06 15:28:40 +00:00
Aaron J. Seigo
1813f696b4 KStdAction->KStandardAction
svn path=/trunk/KDE/kdenetwork/krfb/; revision=614800
2006-12-18 23:18:31 +00:00
Pino Toscano
a00075dc62 Make them a bit more freedesktop.org compliant.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=613962
2006-12-15 21:06:11 +00:00
Alexander Neundorf
ad51e6a120 remove old Makefile.am contents
Alex

svn path=/trunk/KDE/kdenetwork/doc/krfb/; revision=604195
2006-11-11 23:06:09 +00:00
Alexander Neundorf
6b8f53fc2a -remove kde4_install_libtool_file(), not required anymore since we switched away from libltdl
-some cleanups 
-add JPEG_INCLUDE_DIRECTORY where required

Alex



svn path=/trunk/KDE/kdenetwork/krfb/; revision=602264
2006-11-05 15:19:05 +00:00
Laurent Montel
64f3616cde Apply Alex patch (now we can use enable-final argument
some module compiles with enable-final now)
As discussed with Alex it's not necessary to have program name
into automoc macro

svn path=/trunk/KDE/kdenetwork/krfb/; revision=598296
2006-10-23 07:12:29 +00:00
Laurent Montel
5518eb135b Necessary to change KDE4_AUTOMOC macro to support
enable-final argument

(there was not a dependancy between <name>_final.cpp file and
moc generated files => moc files were never created)

Not necessary to rebuild all kdelibs just cp kdelibs/cmake/modules/KDE4Macros.cmake <path_kde4>/share/apps/cmake/modules

I ported and tested all kde module (without enable-final argument, it compiles fines (test and program))
Don't try to use enable-final argument for the moment it doesn't compile (but dependancy works)

Regards

svn path=/trunk/KDE/kdenetwork/krfb/; revision=595050
2006-10-13 08:01:52 +00:00
Laurent Montel
d0bf3af30a Use cmake macro
svn path=/trunk/KDE/kdenetwork/krfb/; revision=591280
2006-10-02 09:06:07 +00:00
Laurent Montel
d7a2a8d778 Fix wordwrap
svn path=/trunk/KDE/kdenetwork/krfb/; revision=589493
2006-09-28 07:20:38 +00:00
Thomas Häber
7b0d8fe050 SVN_SILENT:
replaced depreciated assignment to QString::null with QString() in return context (EBN)

svn path=/trunk/KDE/kdenetwork/krfb/; revision=589332
2006-09-27 23:46:56 +00:00
Thomas Häber
1662794c65 SVN_SILENT:
changed single chars from QString to QChar in add to QString context -> faster (EBN)

svn path=/trunk/KDE/kdenetwork/krfb/; revision=589331
2006-09-27 23:45:58 +00:00
Laurent Montel
d8f557a836 Clean up
Fix svn file attribute (remove excutable attribute)
Remove not necessary files

svn path=/trunk/KDE/kdenetwork/krfb/; revision=579690
2006-09-01 12:41:54 +00:00
Laurent Montel
91e715a0fb Adapt with new KDE4_INSTALL_ICONS
(automatic detect of icons theme)


svn path=/trunk/KDE/kdenetwork/krfb/; revision=572967
2006-08-14 13:31:07 +00:00
Laurent Montel
677bbcd796 Fix install binary
svn path=/trunk/KDE/kdenetwork/krfb/; revision=572577
2006-08-13 09:52:28 +00:00
Laurent Montel
685df6b16f Cleanup
svn path=/trunk/KDE/kdenetwork/krfb/; revision=567292
2006-07-28 13:45:00 +00:00
Laurent Montel
9dce8277b8 Clean up CMakeLists.txt
svn path=/trunk/KDE/kdenetwork/krfb/; revision=564751
2006-07-21 07:46:40 +00:00
Alexander Neundorf
d91e8a2c97 -adapt to the new install dir scheme
Alex


svn path=/trunk/KDE/kdenetwork/krfb/; revision=558213
2006-07-04 22:03:28 +00:00
Jaison Lee
a311552ca9 EBN corrections.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=551588
2006-06-15 02:47:32 +00:00
Jaison Lee
2793ecf8be Follow license policy on copyright notices.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=550455
2006-06-11 20:08:05 +00:00
Jaison Lee
248a5d9f22 EBN update.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=549564
2006-06-09 04:15:52 +00:00
Alexander Neundorf
f940a77e9e kde4_header and kde4_footer() are gone now
svn path=/trunk/KDE/kdenetwork/krfb/; revision=540226
2006-05-12 18:33:35 +00:00
Laurent Montel
81eaed4163 Remove Makefile.am, all is into CMakeLists.txt
Keep for the moment configure.in.in (need for avoid to lose check)

svn path=/trunk/KDE/kdenetwork/krfb/; revision=539990
2006-05-12 08:48:46 +00:00
Alexander Neundorf
34ac7aedad cleanup the toplevel CMakeLists.txt a bit
-remove include_directories( CMAKE_CURRENT_SOURCE_DIR CMAKE_CURRENT_BINARY_DIR)
in the subdirs, since this is done now automatically by cmake (the CMAKE_INCLUDE_CURRENT_DIR option
-include_directories(KDE4_INCLUDES) in the toplevel CMakeLists.txt, so it
doesn't have to be done in every subdir

Alex


svn path=/trunk/KDE/kdenetwork/krfb/; revision=539887
2006-05-11 22:49:47 +00:00
Laurent Montel
bbc790e2f2 KPixmap->QPixmap
svn path=/trunk/KDE/kdenetwork/krfb/; revision=538602
2006-05-08 12:27:07 +00:00
Stephan Kulow
08b27f474c deprecated--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=537029
2006-05-03 19:01:57 +00:00
Stephan Kulow
29ee58e17b moved messages targets
svn path=/trunk/KDE/kdenetwork/krfb/; revision=536316
2006-05-01 20:03:39 +00:00
Tom Albers
05df948016 This fixes all docbook issues for kdenetwork mentioned at ebn.
svn path=/trunk/KDE/kdenetwork/doc/krfb/; revision=532373
2006-04-21 19:41:49 +00:00
Laurent Montel
285e31c454 better use
svn path=/trunk/KDE/kdenetwork/krfb/; revision=530949
2006-04-18 07:53:32 +00:00
Chusslove Illich
8fa14c8b56 Conversion to new i18n API (see KDE4PORTING.html->I18N->i18n calls).
svn path=/trunk/KDE/kdenetwork/krfb/; revision=528186
2006-04-10 11:45:42 +00:00
Laurent Montel
15001e9894 adapt to new kdelibs api
svn path=/trunk/KDE/kdenetwork/krfb/; revision=521401
2006-03-22 14:09:46 +00:00
Laurent Montel
10f5e80601 Adapt to new cmake variable from new kdelibs snapshot
svn path=/trunk/KDE/kdenetwork/krfb/; revision=521399
2006-03-22 14:05:36 +00:00
Laurent Montel
3b465c1a2d klistview->k3listview
svn path=/trunk/KDE/kdenetwork/krfb/; revision=520934
2006-03-21 10:25:12 +00:00
Laurent Montel
bddf9e2d3d Adapt to new kde4 api
svn path=/trunk/KDE/kdenetwork/krfb/; revision=518183
2006-03-13 11:16:11 +00:00
Fabio Pedretti
8784fcb0c8 Losslessly optimize file size of *.png files in /trunk/KDE/kdenetwork with optipng -i0 -o5 and advdef -z -4.
Losslessly optimize file size of *.mng and *gz files in /trunk/KDE/kdenetwork with advdef -z -4.
Total *.png file size goes to 2746375 from 3357534 (-18.20%).
Total *.mng file size goes to 114658 from 115504 (-0.73%).
Total *gz file size goes to 24786 from 25939 (-4.45%).
For more info see bug 122897.

svn path=/trunk/KDE/kdenetwork/doc/krfb/; revision=518176
2006-03-13 10:57:38 +00:00
Laurent Montel
a82f9c7404 Add cmake support
svn path=/trunk/KDE/kdenetwork/doc/krfb/; revision=517205
2006-03-10 11:11:07 +00:00
Script Kiddy
2244c564cd SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=511226
2006-02-19 08:05:59 +00:00
Laurent Montel
6a0dccb067 Deprecated--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=510437
2006-02-17 10:06:16 +00:00
Laurent Montel
3cde21088a Deprecated--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=509838
2006-02-15 17:36:43 +00:00
Laurent Montel
6a59d9610c Adapt to kde4 api
svn path=/trunk/KDE/kdenetwork/krfb/; revision=508601
2006-02-12 12:28:15 +00:00
Laurent Montel
8064fc26fc deprecated--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=507123
2006-02-08 15:56:52 +00:00
Laurent Montel
0ede5f885c KURL->KUrl
svn path=/trunk/KDE/kdenetwork/krfb/; revision=503500
2006-01-29 13:20:56 +00:00
Caleb Tennis
b4f6c211b1 Change head call so it works with latest coreutils
svn path=/trunk/KDE/kdenetwork/krfb/; revision=502435
2006-01-25 23:24:25 +00:00
Script Kiddy
458c90d1ec Improve portability by using #! /usr/bin/env bash
(Bug #95475)
(goutte)

svn path=/trunk/KDE/kdenetwork/krfb/; revision=499198
2006-01-17 08:55:56 +00:00
Script Kiddy
d7bc527cf3 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=495182
2006-01-07 12:20:28 +00:00
Laurent Montel
7c0933f206 Q3ValueList--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=494952
2006-01-06 17:02:44 +00:00
Laurent Montel
ad47c47b20 Fix compile
svn path=/trunk/KDE/kdenetwork/krfb/; revision=494951
2006-01-06 17:01:02 +00:00
Script Kiddy
d8b288f071 Remove svn:executable from some typical non-executable files
(goutte)

svn path=/trunk/KDE/kdenetwork/doc/krfb/; revision=492795
2005-12-31 07:56:08 +00:00
André Wöbbeking
a44ca51c4c - removed not supported %m
- removed %i if not needed (app name == icon name)

svn path=/trunk/KDE/kdenetwork/krfb/; revision=492086
2005-12-28 18:56:40 +00:00
Laurent Montel
e89e2989f4 Q3ValueVector->QVector
svn path=/trunk/KDE/kdenetwork/krfb/; revision=486648
2005-12-08 09:28:50 +00:00
Laurent Montel
5699651d71 Minor fix
svn path=/trunk/KDE/kdenetwork/krfb/; revision=484419
2005-11-30 18:15:39 +00:00
Laurent Montel
290f76eab1 Compile/link
svn path=/trunk/KDE/kdenetwork/krfb/; revision=484418
2005-11-30 18:13:41 +00:00
Laurent Montel
4353c27742 Minor fix
svn path=/trunk/KDE/kdenetwork/krfb/; revision=484416
2005-11-30 18:08:23 +00:00
Laurent Montel
e226d0fe93 Continue to fix compile
svn path=/trunk/KDE/kdenetwork/krfb/; revision=484413
2005-11-30 18:02:48 +00:00
Laurent Montel
d0a0acc68d Fix compile/link
svn path=/trunk/KDE/kdenetwork/krfb/; revision=484411
2005-11-30 17:59:41 +00:00
Laurent Montel
0b5bec27af Use DCOPCString
svn path=/trunk/KDE/kdenetwork/krfb/; revision=479704
2005-11-11 13:37:51 +00:00
Laurent Montel
2334a40699 Qt3support--
svn path=/trunk/KDE/kdenetwork/krfb/; revision=478970
2005-11-08 16:10:18 +00:00
Laurent Montel
14dcfe340d Launch script to adapt to new kdelibs api
svn path=/trunk/KDE/kdenetwork/krfb/; revision=472335
2005-10-20 13:29:56 +00:00
Dirk Mueller
48f165396a SVN_SILENT: fix typo
svn path=/trunk/KDE/kdenetwork/krfb/; revision=467420
2005-10-05 09:03:00 +00:00
Stephan Binner
31a8c98fda add small icon
svn path=/trunk/KDE/kdenetwork/krfb/; revision=453645
2005-08-26 18:25:13 +00:00
Dirk Mueller
9ee62b7612 update FSF address
svn path=/trunk/KDE/kdenetwork/krfb/; revision=439840
2005-07-29 02:40:16 +00:00
Stephan Kulow
05a5475fa4 merge kde4 into trunk / ignoring kopete - hope it will
get ported now too

svn path=/trunk/KDE/kdenetwork/krfb/; revision=439726
2005-07-28 19:15:32 +00:00
Script Kiddy
60ecb10298 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=436121
2005-07-19 04:05:24 +00:00
Script Kiddy
f059eedd88 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=434433
2005-07-14 04:03:30 +00:00
Script Kiddy
fe4cd8c787 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=434157
2005-07-13 04:05:45 +00:00
Script Kiddy
0ab660525e SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=425586
2005-06-15 04:25:55 +00:00
Script Kiddy
7ecfdbbad1 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=424487
2005-06-12 03:54:41 +00:00
Script Kiddy
2c068866bf SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=424186
2005-06-11 03:32:04 +00:00
Script Kiddy
f301b9c443 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=421949
2005-06-04 03:45:23 +00:00
Script Kiddy
690a53c590 CVS_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=413567
2005-05-14 03:40:12 +00:00
Script Kiddy
5cb29d745f CVS_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdenetwork/krfb/; revision=410634
2005-05-08 07:11:34 +00:00
Script Kiddy
a812ef6393 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=401169
2005-03-28 03:34:02 +00:00
Script Kiddy
0ef8f2d453 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=400397
2005-03-25 04:09:59 +00:00
Script Kiddy
c5b1b80c7d CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=392535
2005-02-23 05:08:44 +00:00
Aaron J. Seigo
c207e3bb73 fix frame
CCBUG:99396

svn path=/trunk/kdenetwork/krfb/; revision=389454
2005-02-14 21:03:08 +00:00
Script Kiddy
c936f30db9 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=388264
2005-02-11 04:54:21 +00:00
Stephan Kulow
4f703bf678 characters can be unsigned too
svn path=/trunk/kdenetwork/krfb/; revision=388040
2005-02-10 14:12:16 +00:00
Stephan Binner
9b59119cf3 CVS_SILENT i18n style guide fixes, first run
svn path=/trunk/kdenetwork/krfb/; revision=385798
2005-02-03 10:49:53 +00:00
Script Kiddy
69bd756bb7 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=384484
2005-01-31 08:38:42 +00:00
Script Kiddy
d3fac404e0 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=382809
2005-01-27 04:10:52 +00:00
Stephan Binner
b72740d994 fix menu entries
svn path=/trunk/kdenetwork/krfb/; revision=378969
2005-01-16 08:28:22 +00:00
Script Kiddy
f067112601 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=378951
2005-01-16 04:04:50 +00:00
Edwin Schepers
153c22d929 Give labels a NoFocus policy, so that it is not selected at startup of the dialog and is not in the tab sequence.
BUG: 92032

svn path=/trunk/kdenetwork/krfb/; revision=378279
2005-01-13 22:40:35 +00:00
Laurent Montel
bea44ed778 Fix export
svn path=/trunk/kdenetwork/krfb/; revision=377514
2005-01-11 16:35:05 +00:00
Script Kiddy
385d4455a9 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=376742
2005-01-09 04:06:23 +00:00
Script Kiddy
7c29d37323 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=375595
2005-01-05 04:03:22 +00:00
Script Kiddy
eaa39967b3 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=375379
2005-01-04 03:51:03 +00:00
Script Kiddy
b80715e14a CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=374823
2005-01-02 03:44:29 +00:00
Script Kiddy
b751d5529e CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=374569
2005-01-01 03:35:52 +00:00
Albert Astals Cid
fdaa7d29c1 fixuifiles
svn path=/trunk/kdenetwork/krfb/; revision=374524
2004-12-31 17:47:59 +00:00
Script Kiddy
f41085f9d2 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=374048
2004-12-29 17:55:25 +00:00
Laurent Montel
93abc31703 Use krun to launch kcm module
svn path=/trunk/kdenetwork/krfb/; revision=371072
2004-12-16 14:04:42 +00:00
Laurent Montel
de51a27501 Backport reload config
svn path=/trunk/kdenetwork/krfb/; revision=370499
2004-12-14 10:17:16 +00:00
Script Kiddy
6b2da6a798 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=370471
2004-12-14 03:41:19 +00:00
Script Kiddy
68351df3b4 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=369788
2004-12-11 06:41:41 +00:00
Jakub Stachowski
a7808c2433 Add DNS-SD based service publishing to kinetd and enable it in krfb.
svn path=/trunk/kdenetwork/krfb/; revision=369499
2004-12-09 20:10:23 +00:00
Stephan Binner
b66e85cb4a knewsticker/knewstickerstub/Makefile.am: KDE_ICON used but no icons present
krfb/kinetd/Makefile.am: KDE_ICON used but no icons present

svn path=/trunk/kdenetwork/krfb/; revision=367795
2004-12-02 09:47:55 +00:00
Script Kiddy
d5fedd911c CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=365706
2004-11-24 04:17:20 +00:00
Script Kiddy
7f6af1accf CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=364999
2004-11-22 04:42:34 +00:00
Dirk Mueller
988edb72ba fix export's
svn path=/trunk/kdenetwork/krfb/; revision=364991
2004-11-22 03:58:56 +00:00
Chris Howells
8e6c5ce5f8 s/whatever/whichever
svn path=/trunk/kdenetwork/krfb/; revision=362004
2004-11-10 14:08:23 +00:00
Script Kiddy
997ef4a6ff CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=361625
2004-11-09 03:39:00 +00:00
Script Kiddy
7e14c20337 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=359745
2004-11-02 04:22:33 +00:00
Script Kiddy
eaeea7803a CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=357783
2004-10-26 02:51:12 +00:00
Script Kiddy
2b02a82b11 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=356372
2004-10-21 03:02:16 +00:00
Benjamin Meyer
499b09de92 Terminal=0 -> Terminal=false
Terminal=1 -> Terminal=true
Add missing ';' to Categories
Remove depreceted: TerminalOptions, BinaryPattern, MiniIcon
(double checked)

svn path=/trunk/kdenetwork/krfb/; revision=355834
2004-10-19 03:49:14 +00:00
Albert Astals Cid
6029bcfdc5 Even more fixuifiles
svn path=/trunk/kdenetwork/krfb/; revision=355797
2004-10-18 21:42:05 +00:00
Script Kiddy
b4d7816864 CVS_SILENT made messages (.desktop file)
svn path=/trunk/kdenetwork/krfb/; revision=353574
2004-10-11 03:13:35 +00:00
Script Kiddy
7a7b70d192 CVS_SILENT made messages (desktop files)
svn path=/trunk/kdenetwork/krfb/; revision=353053
2004-10-09 02:33:51 +00:00
Script Kiddy
5d3cf54649 CVS_SILENT made messages
svn path=/trunk/kdenetwork/krfb/; revision=350701
2004-10-01 06:51:58 +00:00
Nadeem Hasan
3f01551a08 Use KDialogBase.
svn path=/trunk/kdenetwork/krfb/; revision=349503
2004-09-26 17:10:32 +00:00
Laurent Montel
54a7625438 QString(i18n(...)) -> i18n(...)
svn path=/trunk/kdenetwork/krfb/; revision=347601
2004-09-19 11:52:23 +00:00
Nadeem Hasan
75f35ea664 Port to KDialogBase.
svn path=/trunk/kdenetwork/krfb/; revision=347549
2004-09-19 06:36:43 +00:00
Script Kiddy
671433402e CVS_SILENT made messages
svn path=/trunk/kdenetwork/krfb/; revision=342856
2004-08-30 23:28:00 +00:00
Tim Jansen
c05a9b9d9f #67519: adjust applet name, patch by Allen Rouse
svn path=/trunk/kdenetwork/krfb/; revision=341875
2004-08-27 17:09:16 +00:00
Script Kiddy
d5b080ec40 CVS_SILENT made messages
svn path=/trunk/kdenetwork/krfb/; revision=340251
2004-08-23 22:08:42 +00:00
126 changed files with 1950 additions and 3642 deletions

45
CMakeLists.txt Normal file
View File

@@ -0,0 +1,45 @@
check_symbol_exists(getifaddrs "sys/socket.h;netdb.h;ifaddrs.h" HAVE_GETIFADDRS)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-krfb.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-krfb.h )
include_directories(${CMAKE_CURRENT_BINARY_DIR}) # for config-krfb.h
set(vncserver_SRCS
${CMAKE_SOURCE_DIR}/krfb/libvncserver/main.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/rfbserver.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/sraRegion.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/auth.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/sockets.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/stats.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/corre.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/hextile.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/rre.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/translate.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/cutpaste.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/zlib.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/tight.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/httpd.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/cursor.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/font.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/draw.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/selbox.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/d3des.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/vncauth.c
${CMAKE_SOURCE_DIR}/krfb/libvncserver/cargs.c)
set(srvloc_SRCS
${CMAKE_SOURCE_DIR}/krfb/srvloc/kinetinterface.cpp
${CMAKE_SOURCE_DIR}/krfb/srvloc/uuid.cpp
${CMAKE_SOURCE_DIR}/krfb/srvloc/getifaddrs.cpp
${CMAKE_SOURCE_DIR}/krfb/srvloc/kserviceregistry.cpp
${CMAKE_SOURCE_DIR}/krfb/srvloc/kinetinterfacewatcher.cpp)
set(krfbconfig_SRCS
${CMAKE_SOURCE_DIR}/krfb/krfb/configuration.cc
${CMAKE_SOURCE_DIR}/krfb/krfb/invitedialog.cc
${CMAKE_SOURCE_DIR}/krfb/krfb/invitation.cc
${CMAKE_SOURCE_DIR}/krfb/krfb/personalinvitedialog.cc)
# add_subdirectory(kinetd)
add_subdirectory(kcm_krfb)
add_subdirectory(krfb)
add_subdirectory(krfb_httpd)

View File

@@ -1,8 +0,0 @@
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

5
config-krfb.h.cmake Normal file
View File

@@ -0,0 +1,5 @@
/* Define to 1 if you have the `getifaddrs' function. */
#cmakedefine HAVE_GETIFADDRS 1
/* Define if SLP is available */
#cmakedefine HAVE_SLP 1

View File

@@ -1,21 +0,0 @@
KDE_CHECK_HEADER(X11/extensions/XTest.h,
[],
AC_MSG_ERROR([XTest extension header not found / no xlib headers]))
#check for getifaddrs(3) (as in glibc >= 2.3 and newer bsds)
AC_MSG_CHECKING(for getifaddrs support)
AC_TRY_LINK( [
#include <sys/types.h>
#include <sys/socket.h>
#include <ifaddrs.h>
],[
getifaddrs(0);
],[
AC_DEFINE(HAVE_GETIFADDRS,1,[Define if getifaddrs is available])
AC_MSG_RESULT(yes)
COMPILE_GETIFADDRS=""
],[
AC_MSG_RESULT(no)
COMPILE_GETIFADDRS="getifaddrs.cpp"
])
AC_SUBST(COMPILE_GETIFADDRS)

3
doc/CMakeLists.txt Normal file
View File

@@ -0,0 +1,3 @@
########### install files ###############
kde4_create_handbook(index.docbook)
kde4_install_handbook()

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 39 KiB

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

@@ -25,9 +25,8 @@ as Authors, publish date, the abstract, and Keywords -->
&Brad.Hards;
&Brad.Hards.mail;
</author>
</authorgroup>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<copyright>
<year>2003</year>
@@ -369,10 +368,10 @@ as &krdc;.
</para>
<para>
The <guilabel>Allow uninvited connections</guilabel> checkbox controls
The <guilabel>Allow uninvited connections</guilabel> check box 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 checkboxes here to choose whether you
password. You can also use the check boxes 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>
@@ -397,7 +396,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 checkbox in the
the client, or not. This is controlled using a check box in the
<guilabel>Session</guilabel> tab, as shown below.
</para>
@@ -493,7 +492,7 @@ Connection</guibutton>, then the attempt to connect will be terminated.
<para>
The <guilabel>Allow remote user to control keyboard and
mouse</guilabel> checkbox determines whether this client can only
mouse</guilabel> check box determines whether this client can only
observe, or can take control of your machine.
</para>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 79 KiB

19
kcm_krfb/CMakeLists.txt Normal file
View File

@@ -0,0 +1,19 @@
include_directories(${CMAKE_BINARY_DIR}/krfb/krfb/ ${CMAKE_SOURCE_DIR}/krfb/srvloc/)
set(kcm_krfb_PART_SRCS kcm_krfb.cpp ${srvloc_SRCS} ${krfbconfig_SRCS})
kde4_automoc(${kcm_krfb_PART_SRCS})
kde4_add_ui3_files(kcm_krfb_PART_SRCS configurationwidget.ui)
kde4_add_ui3_files(kcm_krfb_PART_SRCS
${CMAKE_SOURCE_DIR}/krfb/krfb/manageinvitations.ui
${CMAKE_SOURCE_DIR}/krfb/krfb/personalinvitewidget.ui
${CMAKE_SOURCE_DIR}/krfb/krfb/invitewidget.ui)
kde4_add_plugin(kcm_krfb ${kcm_krfb_PART_SRCS})
target_link_libraries(kcm_krfb ${KDE4_KDECORE_LIBS} ${KDE4_KDE3SUPPORT_LIBS} ${SLP_LIBRARIES})
install(TARGETS kcm_krfb DESTINATION ${PLUGIN_INSTALL_DIR})
install( FILES kcmkrfb.desktop DESTINATION ${SERVICES_INSTALL_DIR})

View File

@@ -1,20 +0,0 @@
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

2
kcm_krfb/Messages.sh Normal file
View File

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

View File

@@ -50,12 +50,6 @@
<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>
@@ -420,10 +414,10 @@
<property name="value">
<number>5900</number>
</property>
<property name="minValue">
<property name="minimum">
<number>1024</number>
</property>
<property name="maxValue">
<property name="maximum">
<number>32767</number>
</property>
<property name="toolTip" stdset="0">
@@ -502,6 +496,13 @@ 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,7 +25,6 @@
#include <qradiobutton.h>
#include <qlineedit.h>
#include <qbuttongroup.h>
#include <qcstring.h>
#include <qdatastream.h>
#include <kapplication.h>
#include <kdialog.h>
@@ -34,34 +33,30 @@
#include <kaboutdata.h>
#include <kconfig.h>
#include <kgenericfactory.h>
#include <kdatastream.h>
#include <kdebug.h>
#include <dcopclient.h>
#include <QDBusInterface>
#include <QDBusReply>
#define VERSION "0.7"
typedef KGenericFactory<KcmKRfb, QWidget> KcmKRfbFactory;
// Can't use K_EXPORT_COMPONENT_FACTORY, since insertCatalogue necessary
extern "C" {
void *init_kcm_krfb() {
KGlobal::locale()->insertCatalogue("krfb"); // For invitation translations
return new KcmKRfbFactory("kcm_krfb");
}
}
K_EXPORT_COMPONENT_FACTORY( krfb, KcmKRfbFactory( "kcm_krfb" ) )
KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) :
KCModule(KcmKRfbFactory::instance(), p, name),
KcmKRfb::KcmKRfb(QWidget *p, const QStringList &) :
KCModule(KcmKRfbFactory::componentData(), p),
m_configuration(KRFB_CONFIGURATION_MODE) {
KGlobal::locale()->insertCatalog("krfb");
m_confWidget = new ConfigurationWidget(this);
QVBoxLayout *l = new QVBoxLayout(this, 0, KDialog::spacingHint());
QVBoxLayout *l = new QVBoxLayout(this);
l->setSpacing(KDialog::spacingHint());
l->setMargin(0);
l->add(m_confWidget);
setButtons(Default|Apply|Reset);
setButtons(Default|Apply|Default);
KAboutData* about = new KAboutData( "kcm_krfb", I18N_NOOP("Desktop Sharing Control Module"),
VERSION,
@@ -96,28 +91,19 @@ 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").arg(num));
m_confWidget->invitationNumLabel->setText(i18n("Open invitations: %1", num));
}
void KcmKRfb::checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
kinetdAvailable = false;
krfbAvailable = false;
DCOPClient *d = KApplication::dcopClient();
QByteArray sdata, rdata;
QCString replyType;
QDataStream arg(sdata, IO_WriteOnly);
arg << QString("krfb");
if (!d->call ("kded", "kinetd", "isInstalled(QString)", sdata, replyType, rdata))
return;
if (replyType != "bool")
return;
QDataStream answer(rdata, IO_ReadOnly);
answer >> krfbAvailable;
kinetdAvailable = true;
//TODO verify it when kinetd will port
QDBusInterface kinetd("org.kde.kded", "/modules/kinetd", "org.kde.kinetd");
QDBusReply<bool> reply = kinetd.call("isInstalled","krfb");
if(!reply.isValid())
return;
krfbAvailable = reply;
kinetdAvailable=true;
}
void KcmKRfb::load() {
@@ -151,6 +137,9 @@ void KcmKRfb::save() {
m_configuration.setPreferredPort(m_confWidget->portInput->value());
m_configuration.setDisableBackground(m_confWidget->disableBackgroundCB->isChecked());
m_configuration.save();
#if 0
kapp->dcopClient()->emitDCOPSignal("KRFB::ConfigChanged", "KRFB_ConfigChanged()", QByteArray());
#endif
emit changed(false);
}

View File

@@ -32,7 +32,7 @@ private:
ConfigurationWidget *m_confWidget;
void checkKInetd(bool&, bool&);
public:
KcmKRfb(QWidget *p, const char *name, const QStringList &);
KcmKRfb(QWidget *p, const QStringList &);
void load();
void save();

View File

@@ -1,155 +1,28 @@
[Desktop Entry]
Encoding=UTF-8
Icon=krfb
Type=Application
Exec=kcmshell kcmkrfb
DocPath=help:/krfb/krfb-configuration.html
Type=Service
DocPath=krfb/krfb-configuration.html
ServiceTypes=KCModule
X-KDE-ModuleType=Library
X-KDE-Library=krfb
X-KDE-Factoryname=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[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[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[tg]=Истифодабарии муштараки Мизи корӣ
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
Name[x-test]=xxDesktop Sharingxx
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[el]=Ρύθμιση της κοινής χρήσης της επιφάνειας εργασίας
Comment[fr]=Configuration du partage du bureau
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[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[tg]=Батанзимдарории Истифодабарии муштараки Мизи корӣ
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
Comment[x-test]=xxConfigure Desktop Sharingxx
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[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,桌面共享,共享,远程桌面连接,邀请,端口,未邀请
Keywords[x-test]=xxdesktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvitedxx
Categories=Qt;KDE;X-KDE-settings-network
Categories=Qt;KDE;X-KDE-settings-network;

30
kinetd/CMakeLists.txt Normal file
View File

@@ -0,0 +1,30 @@
include_directories( ${CMAKE_SOURCE_DIR}/krfb/srvloc )
########### next target ###############
set(kded_kinetd_PART_SRCS kinetd.cpp ${srvloc_SRCS})
kde4_automoc(${kded_kinetd_PART_SRCS})
message(STATUS "Port to krfb DBUS")
# kde4_add_dcop_skels(kded_kinetd_PART_SRCS kinetd.h )
kde4_add_plugin(kded_kinetd ${kded_kinetd_PART_SRCS})
target_link_libraries(kded_kinetd ${KDE4_KIO_LIBS} ${KDE4_KDNSSD_LIBS} ${SLP_LIBRARIES})
install(TARGETS kded_kinetd DESTINATION ${PLUGIN_INSTALL_DIR})
########### install files ###############
install(FILES kinetd.notifyrc DESTINATION ${DATA_INSTALL_DIR}/krfb)
install(FILES kinetdmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
install(FILES kinetd.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded)

View File

@@ -1,30 +0,0 @@
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

2
kinetd/Messages.sh Normal file
View File

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

View File

@@ -1,215 +0,0 @@
[!Global!]
IconName=kinetd
Comment=KInetD
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[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[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[tg]=Пайвастшавии Воридшаванда
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[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[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[tg]=Пайвастшавии воридшаванда қабул гардид
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[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[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[tg]=Ҷараён бо Нокомӣ анҷомид
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[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[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[tg]=Барои даскории пайвастшавӣ ҷараён бозхонда нашуд
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

@@ -26,9 +26,9 @@
#include <kdebug.h>
#include <kstandarddirs.h>
#include <kconfig.h>
#include <knotifyclient.h>
#include <ksockaddr.h>
#include <kextsock.h>
#include <KNotification>
#include <ksocketaddress.h>
#include <ksocketdevice.h>
#include <klocale.h>
#include <kglobal.h>
@@ -42,7 +42,8 @@ PortListener::PortListener(KService::Ptr s,
m_serviceRegistered(false),
m_socket(0),
m_config(config),
m_srvreg(srvreg)
m_srvreg(srvreg),
m_dnssdreg(0)
{
m_uuid = createUUID();
loadConfig(s);
@@ -60,11 +61,11 @@ bool PortListener::acquirePort() {
delete m_socket;
}
m_port = m_portBase;
m_socket = new KServerSocket(m_port, false);
m_socket = new KNetwork::KServerSocket(m_port, false);
while (!m_socket->bindAndListen()) {
m_port++;
if (m_port >= (m_portBase+m_autoPortRange)) {
kdDebug() << "Kinetd cannot load service "<<m_serviceName
kDebug() << "Kinetd cannot load service "<<m_serviceName
<<": unable to get port" << endl;
m_port = -1;
delete m_socket;
@@ -72,34 +73,37 @@ bool PortListener::acquirePort() {
return false;
}
delete m_socket;
m_socket = new KServerSocket(m_port, false);
m_socket = new KNetwork::KServerSocket(m_port, false);
}
connect(m_socket, SIGNAL(accepted(KSocket*)),
SLOT(accepted(KSocket*)));
bool s = m_registerService;
bool sd =m_dnssdRegister;
setServiceRegistrationEnabledInternal(false);
dnssdRegister(false);
setServiceRegistrationEnabledInternal(s);
dnssdRegister(sd);
return true;
}
void PortListener::freePort() {
m_port = -1;
if (m_socket)
delete m_socket;
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 = QString::null;
m_argument.clear();
m_multiInstance = false;
QVariant vid, vport, vautoport, venabled, vargument, vmultiInstance, vurl,
vsattributes, vslifetime;
vsattributes, vslifetime, vdname, vdtype, vddata;
m_execPath = s->exec().utf8();
vid = s->property("X-KDE-KINETD-id");
@@ -111,16 +115,19 @@ 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()) {
kdDebug() << "Kinetd cannot load service "<<m_serviceName
kDebug() << "Kinetd cannot load service "<<m_serviceName
<<": no id set" << endl;
m_valid = false;
return;
}
if (!vport.isValid()) {
kdDebug() << "Kinetd cannot load service "<<m_serviceName
kDebug() << "Kinetd cannot load service "<<m_serviceName
<<": invalid port" << endl;
m_valid = false;
return;
@@ -144,7 +151,7 @@ void PortListener::loadConfig(KService::Ptr s) {
m_registerService = true;
}
else {
m_serviceURL = QString::null;
m_serviceURL.clear();
m_registerService = false;
}
if (vsattributes.isValid()) {
@@ -152,37 +159,56 @@ 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->readBoolEntry("enabled_" + m_serviceName,
m_enabled = m_config->readEntry("enabled_" + m_serviceName,
m_enabled);
m_portBase = m_config->readNumEntry("port_base_" + m_serviceName,
m_portBase = m_config->readEntry("port_base_" + m_serviceName,
m_portBase);
m_autoPortRange = m_config->readNumEntry("auto_port_range_" + m_serviceName,
m_autoPortRange = m_config->readEntry("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->readBoolEntry("enabled_srvreg_"+m_serviceName,
m_registerService = m_config->readEntry("enabled_srvreg_"+m_serviceName,
m_registerService);
}
void PortListener::accepted(KSocket *sock) {
QString host, port;
KSocketAddress *ksa = KExtendedSocket::peerAddress(sock->socket());
if ((!ksa) || !ksa->address()) {
KSocketDevice device(sock->socket());
KSocketAddress ksa = device->peerAddress();
if ( ksa.address()) {
delete sock;
return;
}
KExtendedSocket::resolve(ksa, host, port);
KNotifyClient::event("IncomingConnection",
i18n("Connection from %1").arg(host));
KNotification::event("IncomingConnection",
i18n("Connection from %1", host));
delete ksa;
if ((!m_enabled) ||
@@ -197,10 +223,10 @@ void PortListener::accepted(KSocket *sock) {
m_process.clearArguments();
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").arg(m_execPath)
.arg(m_argument)
.arg(sock->socket()));
KNotification::event("ProcessFailed",
i18n("Call \"%1 %2 %3\" failed", m_execPath,
m_argument,
sock->socket()));
}
delete sock;
@@ -281,6 +307,7 @@ void PortListener::setEnabledInternal(bool e, const QDateTime &ex) {
if (m_port < 0)
acquirePort();
m_enabled = m_port >= 0;
}
else {
freePort();
@@ -298,6 +325,7 @@ 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();
@@ -322,7 +350,7 @@ void PortListener::setServiceRegistrationEnabledInternal(bool e) {
*(it++),
*(it2++),
m_serviceLifetime))
kdDebug(7021) << "Failure registering SLP service (no slpd running?)"<< endl;
kDebug(7021) << "Failure registering SLP service (no slpd running?)"<< endl;
}
m_serviceRegistered = true;
// make lifetime 30s shorter, because the timeout is not precise
@@ -335,6 +363,23 @@ 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);
@@ -363,13 +408,13 @@ PortListener::~PortListener() {
}
KInetD::KInetD(QCString &n) :
KDEDModule(n)
KInetD::KInetD() :
KDEDModule()
{
m_config = new KConfig("kinetdrc");
m_srvreg = new KServiceRegistry();
if (!m_srvreg->available()) {
kdDebug(7021) << "SLP not available"<< endl;
kDebug(7021) << "SLP not available"<< endl;
delete m_srvreg;
m_srvreg = 0;
}
@@ -598,14 +643,14 @@ bool KInetD::isServiceRegistrationEnabled(QString service)
KInetD::~KInetD() {
m_portListeners.clear();
delete m_config;
if (m_srvreg)
delete m_srvreg;
delete m_srvreg;
}
extern "C" {
KDEDModule *create_kinetd(QCString &name)
KDE_EXPORT KDEDModule *create_kinetd()
{
KGlobal::locale()->insertCatalogue("kinetd");
return new KInetD(name);
KGlobal::locale()->insertCatalog("kinetd");
return new KInetD();
}
}

View File

@@ -9,105 +9,10 @@ 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[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[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]=கேடிஇ இணைய டேமொன்
Name[tg]=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
Name[x-test]=xxKDE Internet Daemonxx
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[el]=Ένας δαίμονας για το διαδίκτυο ο οποίος ξεκινάει τις υπηρεσίες δικτύου όταν απαιτείται
Comment[fr]=Un démon Internet qui démarre le service réseau à la demande
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[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[tg]=Азозили шабакавие, ки хидматрасони шабакавиро бо дархост сар медиҳад
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
Comment[x-test]=xxAn Internet daemon that starts network services on demandxx

View File

@@ -21,13 +21,14 @@
#include <kdedmodule.h>
#include <kservice.h>
#include <ksock.h>
#include <kprocess.h>
#include <qstringlist.h>
#include <qstring.h>
#include <qdatetime.h>
#include <qtimer.h>
#include <kserversocket.h>
#include <dnssd/publicservice.h>
#include <q3ptrlist.h>
#include "kserviceregistry.h"
class PortListener : public QObject {
@@ -37,6 +38,8 @@ 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;
@@ -46,19 +49,22 @@ 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;
KServerSocket *m_socket;
KNetwork::KServerSocket *m_socket;
KProcess m_process;
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:
@@ -86,9 +92,8 @@ private slots:
class KInetD : public KDEDModule {
Q_OBJECT
K_DCOP
k_dcop:
public slots:
/**
* Returns a list of all registered services in KInetd.
* To add a service you need to add a .desktop file with
@@ -130,8 +135,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 didnt 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 did not 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
@@ -172,7 +177,7 @@ k_dcop:
KConfig *m_config;
KServiceRegistry *m_srvreg;
QPtrList<PortListener> m_portListeners;
Q3PtrList<PortListener> m_portListeners;
QTimer m_expirationTimer;
QTimer m_portRetryTimer;
QTimer m_reregistrationTimer;
@@ -184,7 +189,7 @@ k_dcop:
void reregistrationTimer();
public:
KInetD(QCString &n);
KInetD();
virtual ~KInetD();
void loadServiceList();
PortListener *getListenerByName(QString name);

26
kinetd/kinetd.notifyrc Normal file
View File

@@ -0,0 +1,26 @@
[Global]
IconName=kinetd
Comment=KInetD
Comment[x-test]=xxKInetDxx
[Event/IncomingConnection]
Name=IncomingConnection
Name[el]=Εισερχόμενη σύνδεση
Name[fr]=Connexion entrante
Name[x-test]=xxIncomingConnectionxx
Comment=Received incoming connection
Comment[el]=Λήψη εισερχόμενης σύνδεσης
Comment[fr]=Reçu une connexion entrante
Comment[x-test]=xxReceived incoming connectionxx
Action=None
[Event/ProcessFailed]
Name=ProcessFailed
Name[el]=Η επεξεργασία απέτυχε
Name[fr]=Échec du processus
Name[x-test]=xxProcessFailedxx
Comment=Could not call process to handle connection
Comment[el]=Δεν ήταν δυνατή η κλήση της διεργασίας για τον έλεγχο της σύνδεσης
Comment[fr]=Impossible d'appeler le processus pour gérer la connexion
Comment[x-test]=xxCould not call process to handle connectionxx
Action=None

View File

@@ -4,56 +4,9 @@
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[el]=Τύπος αρθρώματος KInetD
Name[fr]=Type de module de 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[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[tg]=Навъи Модули 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
Name[x-test]=xxKInetD Module Typexx
# id to manipulate the service
[PropertyDef::X-KDE-KINETD-id]
@@ -82,7 +35,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:
@@ -104,9 +57,31 @@ 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

37
krfb/CMakeLists.txt Normal file
View File

@@ -0,0 +1,37 @@
project(krfb)
include_directories(${CMAKE_SOURCE_DIR}/krfb/libvncserver ${CMAKE_SOURCE_DIR}/krfb/srvloc)
set(krfb_SRCS ${vncserver_SRCS} ${srvloc_SRCS} ${krfbconfig_SRCS}
rfbcontroller.cc
xupdatescanner.cc
main.cpp
krfbifaceimpl.cc
trayicon.cpp
connectiondialog.cc)
qt4_add_dbus_adaptor(krfb_SRCS org.kde.krfb.xml krfbifaceimpl.h KRfbIfaceImpl)
kde4_automoc(${krfb_SRCS})
kde4_add_ui3_files(krfb_SRCS connectionwidget.ui
manageinvitations.ui
personalinvitewidget.ui
invitewidget.ui)
kde4_add_executable(krfb ${krfb_SRCS})
target_link_libraries(krfb ${KDE4_KIO_LIBS} ${KDE4_KDE3SUPPORT_LIBS} ${JPEG_LIBRARIES} ${SLP_LIBRARIES})
install(TARGETS krfb DESTINATION ${BIN_INSTALL_DIR})
########### install files ###############
install(FILES krfb.desktop DESTINATION ${XDG_APPS_DIR})
install(FILES krfb.notifyrc 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})
install(FILES org.kde.krfb.xml DESTINATION ${DBUS_INTERFACES_DIR} )
kde4_install_icons(${ICON_INSTALL_DIR})

View File

@@ -1,38 +0,0 @@
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

2
krfb/Messages.sh Normal file
View File

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

View File

@@ -23,18 +23,19 @@
#include <kapplication.h>
#include <kmessagebox.h>
#include <kprocess.h>
#include <ksockaddr.h>
#include <kactivelabel.h>
#include <ksocketaddress.h>
#include <k3activelabel.h>
#include <ktoolinvocation.h>
#include <qdatastream.h>
#include <dcopclient.h>
#include <dcopref.h>
#include <qlabel.h>
#include <qpushbutton.h>
#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
@@ -44,33 +45,43 @@
Configuration::Configuration(krfb_mode mode) :
m_mode(mode),
invMngDlg(0, 0, true),
invDlg(0, 0, true),
persInvDlg(0, 0, true),
portNum(-1),
invDlg(0),
persInvDlg(0),
portNum(-1)
#ifdef __GNUC__
#warning "Port to DBUS"
#endif
#if 0
kinetdRef("kded", "kinetd")
#endif
{
#if 0
kinetdRef.setDCOPClient(KApplication::dcopClient());
loadFromKConfig();
saveToDialogs();
doKinetdConf();
connectDCOPSignal( 0, "KRFB::ConfigChanged", "KRFB_ConfigChanged()",
"updateKConfig()", false );
#endif
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(QListView::Extended);
invMngDlg.listView->setSelectionMode(Q3ListView::Extended);
invMngDlg.listView->setMinimumSize(QSize(400, 100)); // QTs size is much to small
connect(invDlg.createInvitationButton, SIGNAL(clicked()),
connect(&invDlg, SIGNAL(createInviteClicked()),
SLOT(showPersonalInvitationDialog()));
connect(invDlg.createInvitationEMailButton, SIGNAL(clicked()),
connect(&invDlg, SIGNAL(emailInviteClicked()),
SLOT(inviteEmail()));
connect(invDlg.manageInvitationsButton, SIGNAL(clicked()),
connect(&invDlg, SIGNAL(manageInviteClicked()),
SLOT(showManageInvitationsDialog()));
connect(invDlg.configurationButton, SIGNAL(clicked()),
connect(&invDlg, SIGNAL(configureClicked()),
SLOT(showConfigurationModule()));
connect(this, SIGNAL(invitationNumChanged(int)), this, SLOT(changeInvDlgNum(int)));
connect(this, SIGNAL(invitationNumChanged(int)),
&invDlg, SLOT(setInviteCount(int)));
connect(this, SIGNAL(invitationNumChanged(int)),
&invMngDlg, SLOT(listSizeChanged(int)));
emit invitationNumChanged(invitationList.size());
@@ -83,38 +94,55 @@ Configuration::~Configuration() {
save();
}
#if 0
void Configuration::updateKConfig()
{
loadFromKConfig();
}
#endif
void Configuration::setKInetdEnabled(bool enabled) {
#if 0
kinetdRef.send("setEnabled", QString("krfb"), enabled);
kinetdRef.send("setEnabled", QString("krfb_httpd"), enabled);
#endif
}
void Configuration::setKInetdEnabled(const QDateTime &date) {
#if 0
kinetdRef.send("setEnabled", QString("krfb"), date);
kinetdRef.send("setEnabled", QString("krfb_httpd"), date);
#endif
}
void Configuration::setKInetdServiceRegistrationEnabled(bool enabled) {
#if 0
kinetdRef.send("setServiceRegistrationEnabled",
QString("krfb"), enabled);
kinetdRef.send("setServiceRegistrationEnabled",
QString("krfb_httpd"), enabled);
#endif
}
void Configuration::getPortFromKInetd() {
#if 0
DCOPReply r = kinetdRef.call("port", QString("krfb"));
if (!r.isValid())
return; // nice error msg here?
r.get(portNum);
#endif
}
void Configuration::setKInetdPort(int p) {
#if 0
DCOPReply r = kinetdRef.call("setPort",
QString("krfb"), p, 1);
// nice error msg here?
#endif
}
void Configuration::removeInvitation(QValueList<Invitation>::iterator it) {
void Configuration::removeInvitation(QList<Invitation>::iterator it) {
invitationList.remove(it);
save();
}
@@ -130,7 +158,7 @@ void Configuration::doKinetdConf() {
}
QDateTime lastExpiration;
QValueList<Invitation>::iterator it = invitationList.begin();
QList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
Invitation &ix = (*it);
QDateTime t = ix.expirationTime();
@@ -152,13 +180,13 @@ void Configuration::doKinetdConf() {
void Configuration::loadFromKConfig() {
KConfig c("krfbrc");
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);
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);
if (c.hasKey("uninvitedPasswordCrypted"))
passwordString = cryptStr(c.readEntry("uninvitedPasswordCrypted", ""));
else
@@ -167,7 +195,7 @@ void Configuration::loadFromKConfig() {
unsigned int invNum = invitationList.size();
invitationList.clear();
c.setGroup("invitations");
int num = c.readNumEntry("invitation_num", 0);
int num = c.readEntry("invitation_num", 0);
for (int i = 0; i < num; i++)
invitationList.push_back(Invitation(&c, i));
@@ -203,11 +231,11 @@ void Configuration::saveToKConfig() {
void Configuration::saveToDialogs() {
invalidateOldInvitations();
QValueList<Invitation>::iterator it = invitationList.begin();
QList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
Invitation &inv = *(it++);
if (!inv.getViewItem())
inv.setViewItem(new KListViewItem(invMngDlg.listView,
inv.setViewItem(new K3ListViewItem(invMngDlg.listView,
inv.creationTime().toString(Qt::LocalDate),
inv.expirationTime().toString(Qt::LocalDate)));
}
@@ -232,7 +260,7 @@ Invitation Configuration::createInvitation() {
}
void Configuration::invalidateOldInvitations() {
QValueList<Invitation>::iterator it = invitationList.begin();
QList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
if (!(*it).isValid())
it = invitationList.remove(it);
@@ -251,7 +279,7 @@ void Configuration::refreshTimeout() {
QString Configuration::hostname() const
{
KInetSocketAddress *a = KInetInterface::getPublicInetAddress();
KNetwork::KInetSocketAddress *a = KInetInterface::getPublicInetAddress();
QString hostName;
if (a) {
hostName = a->nodeName();
@@ -288,7 +316,7 @@ QString Configuration::password() const {
return passwordString;
}
QValueList<Invitation> &Configuration::invitations() {
QList<Invitation> &Configuration::invitations() {
return invitationList;
}
@@ -359,10 +387,10 @@ void Configuration::showManageInvitationsDialog() {
}
void Configuration::invMngDlgDeleteOnePressed() {
QValueList<Invitation>::iterator it = invitationList.begin();
QList<Invitation>::iterator it = invitationList.begin();
while (it != invitationList.end()) {
Invitation &ix = (*it);
KListViewItem *iv = ix.getViewItem();
K3ListViewItem *iv = ix.getViewItem();
if (iv && iv->isSelected())
it = invitationList.remove(it);
else
@@ -388,10 +416,6 @@ void Configuration::showInvitationDialog() {
saveToKConfig();
}
void Configuration::changeInvDlgNum(int newNum) {
invDlg.manageInvitationsButton->setText( i18n("&Manage Invitations (%1)...").arg(newNum) );
}
////////////// personal invitation dialog //////////////////////////
void Configuration::showPersonalInvitationDialog() {
@@ -400,16 +424,15 @@ void Configuration::showPersonalInvitationDialog() {
save();
emit invitationNumChanged(invitationList.size());
invDlg.createInvitationButton->setEnabled(false);
invDlg.enableInviteButton(false);
invMngDlg.newPersonalInvitationButton->setEnabled(false);
persInvDlg.hostLabel->setText(QString("%1:%2").arg(hostname()).arg(port()));
persInvDlg.passwordLabel->setText(inv.password());
persInvDlg.expirationLabel->setText(
inv.expirationTime().toString(Qt::LocalDate));
persInvDlg.setHost(hostname(), port());
persInvDlg.setPassword(inv.password());
persInvDlg.setExpiration(inv.expirationTime());
persInvDlg.exec();
invDlg.createInvitationButton->setEnabled(true);
invDlg.enableInviteButton(true);
invMngDlg.newPersonalInvitationButton->setEnabled(true);
}
@@ -419,11 +442,11 @@ 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, whatever comes first. \n"
"successful connection took place, whichever 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"),
KStdGuiItem::cont(),
KStandardGuiItem::cont(),
"showEmailInvitationWarning");
if (r == KMessageBox::Cancel)
return;
@@ -433,10 +456,9 @@ void Configuration::inviteEmail() {
save();
emit invitationNumChanged(invitationList.size());
KApplication *app = KApplication::kApplication();
app->invokeMailer(QString::null, QString::null, QString::null,
KToolInvocation::invokeMailer(QString::null, QString::null, QString::null,
i18n("Desktop Sharing (VNC) invitation"),
i18n("You have been invited to a VNC session. If you have the KDE Remote "
ki18n("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"
@@ -448,23 +470,22 @@ void Configuration::inviteEmail() {
" http://%7:%8/\n"
"\n"
"For security reasons this invitation will expire at %9.")
.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())));
.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());
}
////////////// invoke kcontrol module //////////////////////////
void Configuration::showConfigurationModule() {
KProcess p;
p << "kcmshell" << "Network/kcmkrfb";
p.start(KProcess::DontCare);
KRun::run( "kcmshell kcmkrfb", KUrl::List() );
}

View File

@@ -21,10 +21,9 @@
#include "invitation.h"
#include "manageinvitations.h"
#include "personalinvitation.h"
#include "invite.h"
#include "personalinvitedialog.h"
#include "invitedialog.h"
#include <dcopref.h>
#include <kconfig.h>
#include <qtimer.h>
#include <qobject.h>
@@ -48,7 +47,7 @@ class Configuration : public QObject {
Q_OBJECT
public:
Configuration(krfb_mode mode);
~Configuration();
virtual ~Configuration();
krfb_mode mode() const;
bool askOnConnect() const;
@@ -72,8 +71,8 @@ public:
void save();
void update();
QValueList<Invitation> &invitations();
void removeInvitation(QValueList<Invitation>::iterator it);
QList<Invitation> &invitations();
void removeInvitation(QList<Invitation>::iterator it);
signals:
void invitationFinished();
void invitationNumChanged(int num);
@@ -104,8 +103,8 @@ private:
krfb_mode m_mode;
ManageInvitationsDialog invMngDlg;
InvitationDialog invDlg;
PersonalInvitationDialog persInvDlg;
InviteDialog invDlg;
PersonalInviteDialog persInvDlg;
QTimer refreshTimer;
bool askOnConnectFlag;
@@ -115,20 +114,26 @@ private:
int portNum, preferredPortNum;
#if 0
DCOPRef kinetdRef;
#endif
QString passwordString;
QValueList<Invitation> invitationList;
QList<Invitation> invitationList;
bool disableBackgroundFlag;
bool disableXShmFlag;
#if 0
k_dcop:
// Connected to the DCOP signal
void updateKConfig();
#endif
private slots:
void refreshTimeout();
void invMngDlgDeleteOnePressed();
void invMngDlgDeleteAllPressed();
void changeInvDlgNum(int newNum);
};
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 39 KiB

68
krfb/connectiondialog.cc Normal file
View File

@@ -0,0 +1,68 @@
/* 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>
#include <KStandardGuiItem>
ConnectionDialog::ConnectionDialog( QWidget *parent )
: KDialog( parent )
{
setCaption(i18n("New Connection"));
setButtons(Ok|Cancel);
setDefaultButton(Cancel);
setModal(true);
m_connectWidget = new ConnectionWidget( this, "ConnectWidget" );
m_connectWidget->pixmapLabel->setPixmap(
UserIcon( "connection-side-image.png" ) );
KGuiItem accept = KStandardGuiItem::ok();
accept.setText( i18n( "Accept Connection" ) );
setButtonGuiItem(Ok, accept);
KGuiItem refuse = KStandardGuiItem::cancel();
refuse.setText( i18n( "Refuse Connection" ) );
setButtonGuiItem(Cancel, 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"

44
krfb/connectiondialog.h Normal file
View File

@@ -0,0 +1,44 @@
/* 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 <KDialog>
class ConnectionWidget;
class ConnectionDialog : public KDialog
{
Q_OBJECT
public:
ConnectionDialog( QWidget *parent );
~ConnectionDialog() {};
void setRemoteHost( const QString &host );
void setAllowRemoteControl( bool b );
bool allowRemoteControl();
protected:
ConnectionWidget *m_connectWidget;
};
#endif // CONNECTIONDIALOG_H

211
krfb/connectionwidget.ui Normal file
View File

@@ -0,0 +1,211 @@
<!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>

BIN
krfb/cr16-app-krfb.png Normal file

Binary file not shown.

After

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: 5.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 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,10 +1,6 @@
/***************************************************************************
invitation.cpp
-------------------
begin : Sat Mar 30 2002
copyright : (C) 2002 by Tim Jansen
(C) Stefan Taferner (password encryption)
email : tim@tjansen.de
Copyright 2002 Tim Jansen <tim@tjansen.de>
Copyright 2002 Stefan Taferner <taferner@kde.org>
***************************************************************************/
/***************************************************************************
@@ -17,26 +13,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 (unsigned int i = 0; i < aStr.length(); i++)
for ( 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 KApplication::randomString()
// based on KRandom::randomString()
static QString readableRandomString(int length) {
QString str;
while (length)
{
int r = KApplication::random() % 62;
int r = KRandom::random() % 62;
r += 48;
if (r > 57)
r += 7;
@@ -58,7 +54,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);
}
@@ -71,7 +67,7 @@ Invitation::Invitation(const Invitation &x) :
}
Invitation::Invitation(KConfig* config, int num) {
m_password = cryptStr(config->readEntry(QString("password%1").arg(num), ""));
m_password = cryptStr(config->readEntry(QString("password%1").arg(num), QString()));
m_creationTime = config->readDateTimeEntry(QString("creation%1").arg(num));
m_expirationTime = config->readDateTimeEntry(QString("expiration%1").arg(num));
m_viewItem = 0;
@@ -114,12 +110,12 @@ bool Invitation::isValid() const {
return m_expirationTime > QDateTime::currentDateTime();
}
void Invitation::setViewItem(KListViewItem *i) {
void Invitation::setViewItem(K3ListViewItem *i) {
if (m_viewItem)
delete m_viewItem;
m_viewItem = i;
}
KListViewItem *Invitation::getViewItem() const{
K3ListViewItem *Invitation::getViewItem() const{
return m_viewItem;
}

View File

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

File diff suppressed because one or more lines are too long

View File

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

69
krfb/invitedialog.cc Normal file
View File

@@ -0,0 +1,69 @@
/* 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 <KStandardGuiItem>
#include <qlabel.h>
#include <qpushbutton.h>
InviteDialog::InviteDialog( QWidget *parent )
: KDialog( parent )
{
setCaption(i18n("Invitation"));
setButtons(User1|Close|Help);
setDefaultButton(NoDefault);
setModal(true);
m_inviteWidget = new InviteWidget( this, "InviteWidget" );
m_inviteWidget->pixmapLabel->setPixmap(
UserIcon( "connection-side-image.png" ) );
setMainWidget( m_inviteWidget );
setButtonGuiItem( User1, KStandardGuiItem::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"

54
krfb/invitedialog.h Normal file
View File

@@ -0,0 +1,54 @@
/* 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 <KDialog>
class InviteDialog : public KDialog
{
Q_OBJECT
public:
InviteDialog( QWidget *parent );
~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

197
krfb/invitewidget.ui Normal file
View File

@@ -0,0 +1,197 @@
<!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="K3ActiveLabel" 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="html">
<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,108 +14,15 @@ 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[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[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]=KRfb மேசைமேல் பகிர்வு
Name[tg]=Истифодабарии муштакари Мизи кории KRfb
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
Name[x-test]=xxKRfb Desktop Sharingxx
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[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[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[tg]=Азозиле, ки ба шумо истифодабарии муштараки мизи кориро медиҳад
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
Comment[x-test]=xxA daemon that allows you to share your desktopxx

View File

@@ -1,61 +1,15 @@
# KDE Config File
# KDE Config File
[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=krfb -caption "%c" %i %m
Exec=krfb -caption "%c"
Icon=krfb
DocPath=krfb/index.html
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[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[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[tg]=Истифодабарии муштараки Мизи корӣ
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
Terminal=false
Name=Krfb
Name[x-test]=xxKrfbxx
GenericName=Desktop Sharing
GenericName[el]=Κοινή χρήση επιφάνειας εργασίας
GenericName[fr]=Partage de bureau
GenericName[x-test]=xxDesktop Sharingxx
Categories=Qt;KDE;System;

106
krfb/krfb.notifyrc Normal file
View File

@@ -0,0 +1,106 @@
[Global]
IconName=krfb
Comment=Desktop Sharing
Comment[el]=Κοινή χρήση επιφάνειας εργασίας
Comment[fr]=Partage du bureau
Comment[x-test]=xxDesktop Sharingxx
[Event/UserAcceptsConnection]
Name=UserAcceptsConnection
Name[el]=Ο χρήστης αποδέχεται σύνδεση
Name[fr]=L'utilisateur accepte les connexions
Name[x-test]=xxUserAcceptsConnectionxx
Comment=User accepts connection
Comment[el]=Ο χρήστης αποδέχεται σύνδεση
Comment[fr]=l'utilisateur accepte les connexions
Comment[x-test]=xxUser accepts connectionxx
Action=None
[Event/UserRefusesConnection]
Name=UserRefusesConnection
Name[el]=Ο χρήστης απορρίπτει σύνδεση
Name[fr]=L'utilisateur refuse les connexions
Name[x-test]=xxUserRefusesConnectionxx
Comment=User refuses connection
Comment[el]=Ο χρήστης απορρίπτει σύνδεση
Comment[fr]=L'utilisateur refuse les connexions
Comment[x-test]=xxUser refuses connectionxx
Action=None
[Event/ConnectionClosed]
Name=ConnectionClosed
Name[el]=Η σύνδεση έκλεισε
Name[fr]=Connexion fermée
Name[x-test]=xxConnectionClosedxx
Comment=Connection closed
Comment[el]=Η σύνδεση έκλεισε
Comment[fr]=Connexion coupée
Comment[x-test]=xxConnection closedxx
Action=None
[Event/InvalidPassword]
Name=InvalidPassword
Name[el]=Μη έγκυρος κωδικός πρόσβασης
Name[fr]=Mots de passe non valable
Name[x-test]=xxInvalidPasswordxx
Comment=Invalid password
Comment[el]=Μη έγκυρος κωδικός πρόσβασης
Comment[fr]=Mot de passe non valable
Comment[x-test]=xxInvalid passwordxx
Action=None
[Event/InvalidPasswordInvitations]
Name=InvalidPasswordInvitations
Name[el]=Μη έγκυρες προσκλήσεις κωδικού πρόσβασης
Name[fr]=Invitations de mot de passe non valable
Name[x-test]=xxInvalidPasswordInvitationsxx
Comment=The invited party sent an invalid password. Connection refused.
Comment[el]=Η πλευρά που προσκλήθηκε έστειλε μη έγκυρο κωδικό πρόσβασης. Η σύνδεση απορρίφθηκε.
Comment[fr]=La partie invitée a envoyé un mot de passe non valable. Connexion refusée.
Comment[x-test]=xxThe invited party sent an invalid password. Connection refused.xx
Action=Popup
[Event/NewConnectionOnHold]
Name=NewConnectionOnHold
Name[el]=Νέα σύνδεση σε αναμονή
Name[fr]=Nouvelle connexion au raccroché
Name[x-test]=xxNewConnectionOnHoldxx
Comment=Connection requested, user must accept
Comment[el]=Αιτήθηκε σύνδεση, ο χρήστης πρέπει να αποδεχθεί
Comment[fr]=Connexion demandée, l'utilisateur doit accepter
Comment[x-test]=xxConnection requested, user must acceptxx
Action=None
[Event/NewConnectionAutoAccepted]
Name=NewConnectionAutoAccepted
Name[el]=Αυτόματη αποδοχή νέας σύνδεσης
Name[fr]=Nouvelle connexion auto-acceptée
Name[x-test]=xxNewConnectionAutoAcceptedxx
Comment=New connection automatically established
Comment[el]=Νέα σύνδεση αυτόματα αποκαταστάθηκε
Comment[fr]=Nouvelle connexion établie automatiquement
Comment[x-test]=xxNew connection automatically establishedxx
Action=None
[Event/TooManyConnections]
Name=TooManyConnections
Name[el]=Πάρα πολλές συνδέσεις
Name[fr]=Trop de connexions
Name[x-test]=xxTooManyConnectionsxx
Comment=Busy, connection refused
Comment[el]=Απασχολημένο, η σύνδεση απορρίφθηκε
Comment[fr]=Occupé, connexion refusée
Comment[x-test]=xxBusy, connection refusedxx
Action=None
default_logfile=
[Event/UnexpectedConnection]
Name=UnexpectedConnection
Name[el]=Μη αναμενόμενη σύνδεση
Name[fr]=Connexion inattendue
Name[x-test]=xxUnexpectedConnectionxx
Comment=Received unexpected connection, abort
Comment[el]=Λήψη μη αναμενόμενης σύνδεσης, εγκατάλειψη
Comment[fr]=Reçu une connexion inattendue, interruption
Comment[x-test]=xxReceived unexpected connection, abortxx
Action=None

View File

@@ -1,24 +0,0 @@
#ifndef __KRFB_IFACE_H
#define __KRFB_IFACE_H
#include <dcopobject.h>
class krfbIface : virtual public DCOPObject
{
K_DCOP
k_dcop:
/**
* Quits krfb, connected clients will be disconnected.
*/
virtual void exit() = 0;
/**
* If this feature is activated krfb allows the connecting client to
* control the desktop (pointer & keyboard).
* @return a true to activate desktop control
*/
virtual void setAllowDesktopControl(bool a) = 0;
};
#endif

View File

@@ -1,3 +1,7 @@
/*
Copyright 2002 Tim Jansen <tim@tjansen.de>
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
@@ -8,11 +12,13 @@
***************************************************************************/
#include "krfbifaceimpl.h"
#include <krfbadaptor.h>
KRfbIfaceImpl::KRfbIfaceImpl(RFBController *c) :
DCOPObject("krfbIface"),
controller(c)
{
(void)new KrfbAdaptor(this);
QDBusConnection::sessionBus().registerObject("/Krfb",this);
}
void KRfbIfaceImpl::exit()

View File

@@ -1,11 +1,23 @@
/*
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
#include <qobject.h>
#include "rfbcontroller.h"
#include "krfbiface.h"
class KRfbIfaceImpl : public QObject, public virtual krfbIface
class KRfbIfaceImpl : public QObject
{
Q_OBJECT
private:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 485 B

View File

@@ -17,25 +17,27 @@
#include "trayicon.h"
#include "configuration.h"
#ifdef __GNUC__
#warning "Port to DBUS"
#endif
#include "krfbifaceimpl.h"
#include "rfbcontroller.h"
#include <kpixmap.h>
#include <QPixmap>
#include <kaction.h>
#include <kdebug.h>
#include <kapplication.h>
#include <knotifyclient.h>
#include <ksystemtray.h>
#include <KNotification>
#include <ksystemtrayicon.h>
#include <kcmdlineargs.h>
#include <kaboutdata.h>
#include <kaboutapplication.h>
#include <kaboutapplicationdialog.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <qobject.h>
#include <qwindowdefs.h>
#include <qcstring.h>
#include <q3cstring.h>
#include <qdatastream.h>
#include <dcopref.h>
#include <signal.h>
@@ -53,6 +55,7 @@ static KCmdLineOptions options[] =
};
void checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
#if 0
DCOPRef ref("kded", "kinetd");
ref.setDCOPClient(KApplication::dcopClient());
@@ -65,6 +68,9 @@ void checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
r.get(krfbAvailable);
kinetdAvailable = true;
#endif
kinetdAvailable = false;
krfbAvailable = false;
}
int main(int argc, char *argv[])
@@ -132,19 +138,19 @@ int main(int argc, char *argv[])
args->clear();
if ((!config->allowUninvitedConnections()) && (config->invitations().size() == 0)) {
KNotifyClient::event("UnexpectedConnection");
KNotification::event("UnexpectedConnection");
return 1;
}
if (!RFBController::checkX11Capabilities())
return 1;
TrayIcon trayicon(new KAboutApplication(&aboutData),
TrayIcon trayicon(new KAboutApplicationDialog(&aboutData),
config);
RFBController controller(config);
KRfbIfaceImpl dcopiface(&controller);
QObject::connect(&app, SIGNAL(lastWindowClosed()), // dont show passivepopup
QObject::connect(&app, SIGNAL(lastWindowClosed()), // do not show passivepopup
&trayicon, SLOT(prepareQuit()));
QObject::connect(&app, SIGNAL(lastWindowClosed()),
&controller, SLOT(closeConnection()));
@@ -156,10 +162,12 @@ int main(int argc, char *argv[])
QObject::connect(&trayicon, SIGNAL(diconnectedMessageDisplayed()),
&app, SLOT(quit()));
#if 0
QObject::connect(&dcopiface, SIGNAL(exitApp()),
&controller, SLOT(closeConnection()));
QObject::connect(&dcopiface, SIGNAL(exitApp()),
&app, SLOT(quit()));
#endif
QObject::connect(&controller, SIGNAL(sessionRefused()),
&app, SLOT(quit()));
@@ -180,7 +188,7 @@ int main(int argc, char *argv[])
bool ok;
int fdNum = fdString.toInt(&ok);
if (!ok) {
kdError() << "kinetd fd was not numeric." << endl;
kError() << "kinetd fd was not numeric." << endl;
return 2;
}
controller.startServer(fdNum);

View File

@@ -12,7 +12,7 @@
<height>350</height>
</rect>
</property>
<property name="caption">
<property name="windowTitle">
<string>Manage Invitations - Desktop Sharing</string>
</property>
<property name="icon">
@@ -33,7 +33,7 @@
<cstring>Spacer10</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
@@ -50,7 +50,7 @@
<cstring>Spacer7</cstring>
</property>
<property name="orientation">
<enum>Vertical</enum>
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
@@ -62,7 +62,7 @@
</size>
</property>
</spacer>
<widget class="KListView" row="0" column="0" rowspan="5" colspan="1">
<widget class="K3ListView" 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">klistview.h</include>
<include location="global" impldecl="in declaration">k3listview.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>klistview.h</includehint>
<includehint>k3listview.h</includehint>
</includehints>
</UI>

View File

@@ -1,9 +1,22 @@
/*
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() {
QListViewItem *i = listView->firstChild();
Q3ListViewItem *i = listView->firstChild();
while(i) {
if (i->isSelected()) {
deleteOneButton->setEnabled(true);

File diff suppressed because one or more lines are too long

10
krfb/org.kde.krfb.xml Normal file
View File

@@ -0,0 +1,10 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.kde.krfb">
<method name="setAllowDesktopControl">
<arg name="a" type="b" direction="in"/>
</method>
<method name="exit"/>
</interface>
</node>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,58 @@
/* 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 <k3activelabel.h>
#include <kiconloader.h>
#include <klocale.h>
PersonalInviteDialog::PersonalInviteDialog( QWidget *parent )
: KDialog( parent )
{
setCaption(i18n("Personal Invitation"));
setButtons(Close);
setDefaultButton(Close);
setModal(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

@@ -0,0 +1,44 @@
/* 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 <KDialog>
class PersonalInviteDialog : public KDialog
{
public:
PersonalInviteDialog( QWidget *parent );
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

@@ -0,0 +1,241 @@
<!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="K3ActiveLabel" 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="K3ActiveLabel" 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="K3ActiveLabel" 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="K3ActiveLabel" 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="K3ActiveLabel" 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

@@ -15,10 +15,6 @@
* *
***************************************************************************/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
/*
* Contains keyboard & pointer handling from libvncserver's x11vnc.c
*/
@@ -36,12 +32,12 @@
#include <strings.h>
#endif
#include <kdefakes.h> // gethostname
#include <kapplication.h>
#include <knotifyclient.h>
#include <KNotification>
#include <kdebug.h>
#include <kmessagebox.h>
#include <klocale.h>
#include <kextsock.h>
#include <qstring.h>
#include <qcursor.h>
#include <qwindowdefs.h>
@@ -51,12 +47,15 @@
#include <qglobal.h>
#include <qlabel.h>
#include <qmutex.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)
@@ -170,17 +169,11 @@ 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;
char KeyboardEvent::modifiers[0x100];
signed char KeyboardEvent::modifiers[0x100];
KeyCode KeyboardEvent::keycodes[0x100];
KeyCode KeyboardEvent::leftShiftCode;
KeyCode KeyboardEvent::rightShiftCode;
@@ -199,7 +192,7 @@ void KeyboardEvent::initKeycodes() {
KeySym key,*keymap;
int i,j,minkey,maxkey,syms_per_keycode;
dpy = qt_xdisplay();
dpy = QX11Info::display();
memset(modifiers,-1,sizeof(modifiers));
@@ -228,7 +221,7 @@ void KeyboardEvent::initKeycodes() {
}
/* this function adjusts the modifiers according to mod (as from modifiers) and ModifierState */
void KeyboardEvent::tweakModifiers(char mod, bool down) {
void KeyboardEvent::tweakModifiers(signed char mod, bool down) {
bool isShift = ModifierState & (LEFTSHIFT|RIGHTSHIFT);
if(mod < 0)
@@ -290,7 +283,7 @@ PointerEvent::PointerEvent(int b, int _x, int _y) :
y(_y) {
if (!initialized) {
initialized = true;
dpy = qt_xdisplay();
dpy = QX11Info::display();
buttonMask = 0;
}
}
@@ -315,7 +308,7 @@ void PointerEvent::exec() {
ClipboardEvent::ClipboardEvent(RFBController *c, const QString &ctext) :
controller(c),
text(QDeepCopy<QString>(ctext)) {
text(ctext) {
}
void ClipboardEvent::exec() {
@@ -340,7 +333,7 @@ KNotifyEvent::~KNotifyEvent() {
}
void KNotifyEvent::exec() {
KNotifyClient::event(name, desc);
KNotification::event(name, desc);
}
SessionEstablishedEvent::SessionEstablishedEvent(RFBController *c) :
@@ -351,23 +344,19 @@ void SessionEstablishedEvent::exec() {
controller->sendSessionEstablished();
}
RFBController::RFBController(Configuration *c) :
allowDesktopControl(false),
lastClipboardDirection(LAST_SYNC_TO_SERVER),
configuration(c),
dialog(0),
disableBackgroundPending(false),
disableBackgroundState(false),
closePending(false),
forcedClose(false)
{
self = this;
connect(dialog.acceptConnectionButton, SIGNAL(clicked()),
SLOT(dialogAccepted()));
connect(dialog.refuseConnectionButton, SIGNAL(clicked()),
SLOT(dialogRefused()));
connect(&dialog, SIGNAL(closed()), SLOT(dialogRefused()));
connect(&dialog, SIGNAL(okClicked()), SLOT(dialogAccepted()));
connect(&dialog, SIGNAL(cancelClicked()), SLOT(dialogRefused()));
connect(&initIdleTimer, SIGNAL(timeout()), SLOT(checkAsyncEvents()));
connect(&idleTimer, SIGNAL(timeout()), SLOT(idleSlot()));
@@ -383,7 +372,7 @@ RFBController::RFBController(Configuration *c) :
if (gethostname(hostname, 255))
hostname[0] = 0;
hostname[255] = 0;
desktopName = QString(i18n("%1@%2 (shared desktop)")).arg(KUser().loginName()).arg(hostname);
desktopName = i18n("%1@%2 (shared desktop)", KUser().loginName(), hostname);
}
RFBController::~RFBController()
@@ -395,7 +384,7 @@ RFBController::~RFBController()
void RFBController::startServer(int inetdFd, bool xtestGrab)
{
framebufferImage = XGetImage(qt_xdisplay(),
framebufferImage = XGetImage(QX11Info::display(),
QApplication::desktop()->winId(),
0,
0,
@@ -465,19 +454,23 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
passwordChanged();
scanner = new XUpdateScanner(qt_xdisplay(),
scanner = new XUpdateScanner(QX11Info::display(),
QApplication::desktop()->winId(),
(unsigned char*)fb, w, h,
server->rfbServerFormat.bitsPerPixel,
server->paddedWidthInBytes,
!configuration->disableXShm());
#ifdef __GNUC__
#warning "FIXME (linking problem)"
#endif
#if 0
rfbInitServer(server);
#endif
state = RFB_WAITING;
if (xtestGrab) {
disabler.disable = false;
XTestGrabControl(qt_xdisplay(), true);
XTestGrabControl(QX11Info::display(), true);
}
rfbRunEventLoop(server, -1, TRUE);
@@ -516,9 +509,9 @@ void RFBController::connectionAccepted(bool aRC)
void RFBController::acceptConnection(bool aRemoteControl)
{
KNotifyClient::event("UserAcceptsConnection",
i18n("User accepts connection from %1")
.arg(remoteIp));
KNotification::event("UserAcceptsConnection",
i18n("User accepts connection from %1",
remoteIp));
if (state != RFB_CONNECTING)
return;
@@ -529,9 +522,9 @@ void RFBController::acceptConnection(bool aRemoteControl)
void RFBController::refuseConnection()
{
KNotifyClient::event("UserRefusesConnection",
i18n("User refuses connection from %1")
.arg(remoteIp));
KNotification::event("UserRefusesConnection",
i18n("User refuses connection from %1",
remoteIp));
if (state != RFB_CONNECTING)
return;
@@ -569,17 +562,19 @@ void RFBController::disableBackground(bool state) {
return;
disableBackgroundState = state;
#if 0
DCOPRef ref("kdesktop", "KBackgroundIface");
ref.setDCOPClient(KApplication::dcopClient());
ref.send("setBackgroundEnabled(bool)", bool(!state));
#endif
}
void RFBController::connectionClosed()
{
KNotifyClient::event("ConnectionClosed",
i18n("Closed connection: %1.")
.arg(remoteIp));
KNotification::event("ConnectionClosed",
i18n("Closed connection: %1.",
remoteIp));
idleTimer.stop();
initIdleTimer.stop();
@@ -623,7 +618,7 @@ void RFBController::idleSlot()
rfbUndrawCursor(server);
QPtrList<Hint> v;
Q3PtrList<Hint> v;
v.setAutoDelete(true);
QPoint p = QCursor::pos();
scanner->searchUpdates(v, p.y());
@@ -647,7 +642,7 @@ void RFBController::idleSlot()
void RFBController::dialogAccepted()
{
dialog.hide();
acceptConnection(dialog.allowRemoteControlCB->isChecked());
acceptConnection(dialog.allowRemoteControl());
}
void RFBController::dialogRefused()
@@ -690,7 +685,7 @@ bool RFBController::handleCheckPassword(rfbClientPtr cl,
cl->authChallenge, response, len);
if (!authd) {
QValueList<Invitation>::iterator it =
QList<Invitation>::iterator it =
configuration->invitations().begin();
while (it != configuration->invitations().end()) {
if (checkPassword((*it).password(),
@@ -707,13 +702,13 @@ bool RFBController::handleCheckPassword(rfbClientPtr cl,
if (!authd) {
if (configuration->invitations().size() > 0) {
sendKNotifyEvent("InvalidPasswordInvitations",
i18n("Failed login attempt from %1: wrong password")
.arg(remoteIp));
i18n("Failed login attempt from %1: wrong password",
remoteIp));
}
else
sendKNotifyEvent("InvalidPassword",
i18n("Failed login attempt from %1: wrong password")
.arg(remoteIp));
i18n("Failed login attempt from %1: wrong password",
remoteIp));
return FALSE;
}
@@ -730,6 +725,10 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
cl->negotiationFinishedHook = negotiationFinishedHook;
QString host, port;
#ifdef __GNUC__
#warning "FIXME (port KSocketAddress)"
#endif
#if 0
KSocketAddress *ksa = KExtendedSocket::peerAddress(socket);
if (ksa) {
hostent *he = 0;
@@ -745,11 +744,12 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
host = ksa->nodeName();
delete ksa;
}
#endif
if (state != RFB_WAITING) {
sendKNotifyEvent("TooManyConnections",
i18n("Connection refused from %1, already connected.")
.arg(host));
i18n("Connection refused from %1, already connected.",
host));
return RFB_CLIENT_REFUSE;
}
remoteIp = host;
@@ -758,19 +758,19 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
if ((!configuration->askOnConnect()) &&
(configuration->invitations().size() == 0)) {
sendKNotifyEvent("NewConnectionAutoAccepted",
i18n("Accepted uninvited connection from %1")
.arg(remoteIp));
i18n("Accepted uninvited connection from %1",
remoteIp));
connectionAccepted(configuration->allowDesktopControl());
return RFB_CLIENT_ACCEPT;
}
sendKNotifyEvent("NewConnectionOnHold",
i18n("Received connection from %1, on hold (waiting for confirmation)")
.arg(remoteIp));
i18n("Received connection from %1, on hold (waiting for confirmation)",
remoteIp));
dialog.ipLabel->setText(remoteIp);
dialog.allowRemoteControlCB->setChecked(true);
dialog.setRemoteHost(remoteIp);
dialog.setAllowRemoteControl( true );
dialog.setFixedSize(dialog.sizeHint());
dialog.show();
return RFB_CLIENT_ON_HOLD;
@@ -835,7 +835,7 @@ void RFBController::clipboardChanged() {
lastClipboardDirection = LAST_SYNC_TO_CLIENT;
lastClipboardText = text;
QCString ctext = text.utf8();
Q3CString ctext = text.utf8();
rfbSendServerCutText(server, ctext.data(), ctext.length());
}
@@ -855,7 +855,7 @@ void RFBController::selectionChanged() {
lastClipboardDirection = LAST_SYNC_TO_CLIENT;
lastClipboardText = text;
QCString ctext = text.utf8();
Q3CString ctext = text.utf8();
rfbSendServerCutText(server, ctext.data(), ctext.length());
}
@@ -887,7 +887,7 @@ extern "C" Bool XShmQueryExtension(Display*);
bool RFBController::checkX11Capabilities() {
int bp1, bp2, majorv, minorv;
Bool r = XTestQueryExtension(qt_xdisplay(), &bp1, &bp2,
Bool r = XTestQueryExtension(QX11Info::display(), &bp1, &bp2,
&majorv, &minorv);
if ((!r) || (((majorv*1000)+minorv) < 2002)) {
KMessageBox::error(0,
@@ -906,7 +906,7 @@ XTestDisabler::XTestDisabler() :
void XTestDisabler::exec() {
if (disable)
XTestDiscard(qt_xdisplay());
XTestDiscard(QX11Info::display());
}
#include "rfbcontroller.moc"

View File

@@ -24,12 +24,13 @@
#define RFBCONTROLLER_H
#include "configuration.h"
#include "newconnectiondialog.h"
#include "connectiondialog.h"
#include "xupdatescanner.h"
#include <ksock.h>
#include <qobject.h>
#include <qtimer.h>
#include <qmutex.h>
#include <QCloseEvent>
#include <Q3PtrList>
#define HAVE_PTHREADS
#include "rfb.h"
@@ -49,15 +50,6 @@ 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;
@@ -70,14 +62,14 @@ class KeyboardEvent : public VNCEvent {
KeySym keySym;
static Display *dpy;
static char modifiers[0x100];
static signed 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(char mod, bool down);
static void tweakModifiers(signed char mod, bool down);
public:
static void initKeycodes();
@@ -198,7 +190,7 @@ private:
XImage *framebufferImage;
QMutex asyncMutex;
QPtrList<VNCEvent> asyncQueue;
Q3PtrList<VNCEvent> asyncQueue;
bool disableBackgroundPending; // background, as desired by libvncserver
bool disableBackgroundState; // real background state

View File

@@ -1,16 +0,0 @@
/***************************************************************************
|FILENAME| - description
-------------------
begin : |DATE|
copyright : (C) |YEAR| by |AUTHOR|
email : |EMAIL|
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/

View File

@@ -1,16 +0,0 @@
/***************************************************************************
|FILENAME| - description
-------------------
begin : |DATE|
copyright : (C) |YEAR| by |AUTHOR|
email : |EMAIL|
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/

View File

@@ -17,13 +17,17 @@
#include "trayicon.h"
#include <qtooltip.h>
#include <kstdaction.h>
//Added by qt3to4:
#include <QHideEvent>
#include <QPixmap>
#include <QMouseEvent>
#include <kstandardaction.h>
#include <kapplication.h>
#include <klocale.h>
#include <kdialog.h>
#include <kglobal.h>
#include <kiconloader.h>
#include <kpopupmenu.h>
#include <kmenu.h>
KPassivePopup2::KPassivePopup2(QWidget *parent) :
KPassivePopup(parent){
@@ -48,35 +52,37 @@ KPassivePopup2 *KPassivePopup2::message( const QString &caption, const QString &
TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
KSystemTray(0, "krfb trayicon"),
KSystemTrayIcon(),
configuration(c),
aboutDialog(d),
actionCollection(this),
quitting(false)
{
KIconLoader *loader = KGlobal::iconLoader();
trayIconOpen = loader->loadIcon("eyes-open24", KIcon::User);
trayIconClosed = loader->loadIcon("eyes-closed24", KIcon::User);
setPixmap(trayIconClosed);
QToolTip::add(this, i18n("Desktop Sharing - connecting"));
KIconLoader *loader = KIconLoader::global();
trayIconOpen = loader->loadIcon("eyes-open24", K3Icon::User);
trayIconClosed = loader->loadIcon("eyes-closed24", K3Icon::User);
setIcon(trayIconClosed);
setToolTip(i18n("Desktop Sharing - connecting"));
manageInvitationsAction = new KAction(i18n("Manage &Invitations"), QString::null,
0, this, SIGNAL(showManageInvitations()),
&actionCollection);
manageInvitationsAction->plug(contextMenu());
manageInvitationsAction = new KAction(i18n("Manage &Invitations"), &actionCollection);
actionCollection.addAction("manage_invitations", manageInvitationsAction);
connect(manageInvitationsAction, SIGNAL(toggled()), SIGNAL(showManageInvitations()));
contextMenu()->addAction(actionCollection.action("manage_invitations"));
contextMenu()->insertSeparator();
contextMenu()->addSeparator();
enableControlAction = new KToggleAction(i18n("Enable Remote Control"));
enableControlAction->setCheckedState(i18n("Disable Remote Control"));
enableControlAction->plug(contextMenu());
enableControlAction = new KToggleAction(i18n("Enable Remote Control"), &actionCollection);
enableControlAction->setCheckedState(KGuiItem(i18n("Disable Remote Control")));
enableControlAction->setEnabled(false);
actionCollection.addAction("enable_control", enableControlAction);
connect(enableControlAction, SIGNAL(toggled(bool)), SIGNAL(enableDesktopControl(bool)));
contextMenu()->addAction("enable_control");
contextMenu()->insertSeparator();
contextMenu()->addSeparator();
aboutAction = KStdAction::aboutApp(this, SLOT(showAbout()), &actionCollection);
aboutAction->plug(contextMenu());
aboutAction = KStandardAction::aboutApp(this, SLOT(showAbout()), &actionCollection);
actionCollection.addAction("about", aboutAction);
contextMenu()->addAction("about");
show();
}
@@ -96,24 +102,24 @@ void TrayIcon::prepareQuit() {
void TrayIcon::showConnectedMessage(QString host) {
setPixmap(trayIconOpen);
setIcon(trayIconOpen);
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").arg(host));
(QWidget*)this);
setToolTip(i18n("Desktop Sharing - connected with %1", host));
}
void TrayIcon::showDisconnectedMessage() {
if (quitting)
return;
QToolTip::add(this, i18n("Desktop Sharing - disconnected"));
setPixmap(trayIconClosed);
setToolTip(i18n("Desktop Sharing - disconnected"));
setIcon(trayIconClosed);
KPassivePopup2 *p = KPassivePopup2::message(i18n("Desktop Sharing"),
i18n("The remote user has closed the connection."),
trayIconClosed,
this);
(QWidget*)this);
connect(p, SIGNAL(hidden()), this, SIGNAL(diconnectedMessageDisplayed()));
}
@@ -122,17 +128,14 @@ void TrayIcon::setDesktopControlSetting(bool b) {
enableControlAction->setChecked(b);
}
void TrayIcon::mousePressEvent(QMouseEvent *e)
void TrayIcon::activated(QSystemTrayIcon::ActivationReason reason)
{
if (!rect().contains(e->pos()))
return;
if (e->button() == LeftButton) {
contextMenuAboutToShow(contextMenu());
contextMenu()->popup(e->globalPos());
}
else
KSystemTray::mousePressEvent(e);
if (reason == QSystemTrayIcon::Trigger)
{
contextMenu()->popup(QCursor::pos());
}
else
KSystemTrayIcon::activated(reason);
}
#include "trayicon.moc"

View File

@@ -21,10 +21,16 @@
#include "configuration.h"
#include <qwidget.h>
#include <kpixmap.h>
//Added by qt3to4:
#include <QPixmap>
#include <QHideEvent>
#include <QMouseEvent>
#include <QPixmap>
#include <kaction.h>
#include <ksystemtray.h>
#include <ksystemtrayicon.h>
#include <kpassivepopup.h>
#include <KActionCollection>
#include <KToggleAction>
class KDialog;
@@ -51,7 +57,7 @@ protected:
* @author Tim Jansen
*/
class TrayIcon : public KSystemTray {
class TrayIcon : public KSystemTrayIcon {
Q_OBJECT
public:
TrayIcon(KDialog*, Configuration*);
@@ -69,12 +75,12 @@ public slots:
void setDesktopControlSetting(bool);
protected:
void mousePressEvent(QMouseEvent *e);
void activated(QSystemTrayIcon::ActivationReason reason);
private:
KPixmap trayIconOpen;
KPixmap trayIconClosed;
QPixmap trayIconOpen;
QPixmap 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
/*
@@ -43,6 +43,8 @@
#include <assert.h>
#include "xupdatescanner.h"
//Added by qt3to4:
#include <Q3PtrList>
/* ../../krfb/libvncserver/rfb.h */
#ifdef Bool
@@ -352,11 +354,11 @@ static void printStatistics(Hint &hint) {
ssum += p;
snum++;
float avg = ssum / snum;
kdDebug() << "avg size: "<< avg <<"%"<<endl;
kDebug() << "avg size: "<< avg <<"%"<<endl;
}
void XUpdateScanner::flushHint(int x, int y, int &x0,
Hint &hint, QPtrList<Hint> &hintList)
Hint &hint, Q3PtrList<Hint> &hintList)
{
if (x0 < 0)
return;
@@ -371,7 +373,7 @@ void XUpdateScanner::flushHint(int x, int y, int &x0,
hintList.append(new Hint(hint));
}
void XUpdateScanner::createHints(QPtrList<Hint> &hintList)
void XUpdateScanner::createHints(Q3PtrList<Hint> &hintList)
{
Hint hint;
int x0 = -1;
@@ -441,7 +443,7 @@ void XUpdateScanner::testScanline(int y, bool rememberHits) {
recentHitScanlines[MAX_RECENT_HITS-1] = y;
}
void XUpdateScanner::searchUpdates(QPtrList<Hint> &hintList, int ptrY)
void XUpdateScanner::searchUpdates(Q3PtrList<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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
#ifndef _hexonet_rfb_XUpdateScanner_h_
#define _hexonet_rfb_XUpdateScanner_h_
#include <qptrlist.h>
#include <q3ptrlist.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( QPtrList<Hint> &hintList, int ptrY);
void searchUpdates( Q3PtrList<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,
QPtrList<Hint> &hintList);
void createHints(QPtrList<Hint> &hintList);
Q3PtrList<Hint> &hintList);
void createHints(Q3PtrList<Hint> &hintList);
void addTileToHint(int x, int y, int th, Hint &hint);
void createHintFromTile(int x, int y, int th, Hint &hint);

View File

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

View File

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

View File

@@ -14,63 +14,9 @@ X-KDE-KINETD-multiInstance=false
X-KDE-KINETD-serviceLifetime=1200
Name=KRfb Micro Httpd
Name[ar]=KRfb ميكرو httpd
Name[bg]=Микро уеб сървър (KRfb - httpd)
Name[cs]=KRfb mikro 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[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[sv]=Krfb mikro-HTTP demon
Name[tr]=KRfb Mini Httpd
Name[uk]=KRfb мікро Httpd
Name[xx]=xxKRfb Micro Httpdxx
Name[zh_CN]=KRfb 微 Httpd
Name[x-test]=xxKRfb Micro Httpdxx
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[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[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[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[tg]=Азозили micro http барои krfb, ки хидматрасони 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 守护程序
Comment[x-test]=xxA micro http daemon for krfb that serves the VNC viewer applet.xx

View File

@@ -1,72 +1 @@
#!/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"
#! /usr/bin/env bash

View File

@@ -2,8 +2,8 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
51 Franklin Steet, Fifth Floor, Boston, MA
02110-1301, USA.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.

View File

@@ -1,14 +0,0 @@
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.dfdf
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/

View File

@@ -1,12 +1,12 @@
/*
* This parses the command line arguments. It was seperated from main.c by
* This parses the command line arguments. It was separated 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/

View File

@@ -14,6 +14,9 @@
*/
/* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* 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]:"cancelled");
fprintf(stderr,"Selection: %d: %s\n",i,(i>=0)?fontlist[i]:"canceled");
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/

0
libvncserver/keysym.h Executable file → Normal 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
@@ -242,7 +242,7 @@ typedef struct _rfbScreenInfo
*/
void* screenData;
/* The following two members are used to minimise the amount of unnecessary
/* The following two members are used to minimize 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 cancelled or something else
It returns the index in the list or -1 if canceled 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/

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