summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeL10n.txt1
-rw-r--r--CMakeLists.txt7
-rw-r--r--ConfigureChecks.cmake36
-rw-r--r--FindXscreensaver.cmake72
m---------admin0
-rw-r--r--config.h.cmake14
-rw-r--r--doc/khelpcenter/faq/misc.docbook11
-rw-r--r--doc/khelpcenter/releasenotes/index.docbook2
-rw-r--r--doc/khelpcenter/releasenotes/r14.0.12.docbook87
-rw-r--r--doc/khelpcenter/releasenotes/r14.0.13.docbook12
-rw-r--r--doc/khelpcenter/userguide/removable-disks.docbook13
-rw-r--r--doc/man/appletproxy.1163
-rw-r--r--doc/man/drkonqi.1175
-rw-r--r--doc/man/extensionproxy.1163
-rw-r--r--doc/man/gentdmconf.191
-rw-r--r--doc/man/kappfinder.154
-rw-r--r--doc/man/kasbar.1148
-rw-r--r--doc/man/kate.183
-rw-r--r--doc/man/kblankscrn.kss.1156
-rw-r--r--doc/man/kcheckpass.149
-rw-r--r--doc/man/kcminit.1153
-rw-r--r--doc/man/kdcop.1159
-rw-r--r--doc/man/kdialog.1209
-rw-r--r--doc/man/keditbookmarks.1181
-rw-r--r--doc/man/kfind.158
-rw-r--r--doc/man/kfmclient.1222
-rw-r--r--doc/man/khotkeys.1150
-rw-r--r--doc/man/kicker.1171
-rw-r--r--doc/man/kjobviewer.1202
-rw-r--r--doc/man/kmenuedit.151
-rw-r--r--doc/man/knetattach.1164
-rw-r--r--doc/man/konqueror.1245
-rw-r--r--doc/man/konsole.1179
-rw-r--r--doc/man/kpager.153
-rw-r--r--doc/man/kpersonalizer.166
-rw-r--r--doc/man/kprinter.1209
-rw-r--r--doc/man/krandom.kss.1152
-rw-r--r--doc/man/kreadconfig.1173
-rw-r--r--doc/man/krootimage.1151
-rw-r--r--doc/man/kstart.1215
-rw-r--r--doc/man/ksystraycmd.1189
-rw-r--r--doc/man/ktrash.1155
-rw-r--r--doc/man/kwrite.160
-rw-r--r--doc/man/kwriteconfig.1173
-rw-r--r--doc/man/kxkb.1163
-rw-r--r--doc/man/starttde.146
-rw-r--r--doc/man/tdedebugdialog.1200
-rw-r--r--doc/man/tdeio_media_mounthelper.1163
-rw-r--r--doc/man/tdeio_system_documenthelper.122
-rw-r--r--doc/man/tdepasswd.1169
-rw-r--r--doc/man/tdeprintfax.1160
-rw-r--r--doc/man/tdesu.1102
-rw-r--r--doc/man/tdm.1116
-rw-r--r--doc/man/tdm_config.122
-rw-r--r--doc/man/tdm_greet.122
-rw-r--r--doc/man/tdmctl.1220
-rw-r--r--kcontrol/hwmanager/deviceiconview.h20
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.cpp208
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.h6
-rw-r--r--kcontrol/hwmanager/devicepropsdlgbase.ui16
-rw-r--r--kcontrol/hwmanager/hwdevicetray.cpp213
-rw-r--r--kcontrol/hwmanager/hwdevicetray.h6
-rw-r--r--kcontrol/hwmanager/hwmanager.cpp10
-rw-r--r--kcontrol/konsole/kcmkonsole.cpp11
-rw-r--r--kcontrol/konsole/kcmkonsole.h1
-rw-r--r--kcontrol/konsole/kcmkonsoledialog.ui22
-rw-r--r--kcontrol/screensaver/scrnsave.cpp35
-rw-r--r--kdesktop/lock/lockprocess.cpp6
-rw-r--r--kicker/applets/media/mediumbutton.cpp3
-rw-r--r--kicker/kicker/ui/CMakeLists.txt3
-rw-r--r--kicker/kicker/ui/k_new_mnu.cpp122
-rw-r--r--kicker/kicker/ui/k_new_mnu.h15
-rw-r--r--konsole/konsole/konsole.cpp20
-rw-r--r--konsole/konsole/konsole.h1
-rw-r--r--ksmserver/CMakeLists.txt5
-rw-r--r--ksmserver/Makefile.am6
-rw-r--r--ksmserver/shutdowndlg.cpp128
-rw-r--r--ksmserver/shutdowndlg.h14
-rw-r--r--kxkb/kcmlayout.cpp8
-rw-r--r--kxkb/kcmlayoutwidget.ui222
-rw-r--r--kxkb/kxkbconfig.cpp2
-rw-r--r--kxkb/kxkbconfig.h1
-rw-r--r--kxkb/pixmap.cpp26
-rw-r--r--kxkb/pixmap.h1
-rw-r--r--r14-xdg-update9
-rwxr-xr-xstarttde3
-rw-r--r--tdeioslave/man/tdeio_man.cpp1
-rw-r--r--tdeioslave/media/Makefile.am4
-rw-r--r--tdeioslave/media/configure.in.in176
-rw-r--r--tdeioslave/media/contrib/README8
-rw-r--r--tdeioslave/media/libmediacommon/mediamanagersettings.kcfg5
-rw-r--r--tdeioslave/media/mediaimpl.cpp9
-rw-r--r--tdeioslave/media/mediamanager/CMakeLists.txt12
-rw-r--r--tdeioslave/media/mediamanager/Makefile.am17
-rw-r--r--tdeioslave/media/mediamanager/fstabbackend.cpp1
-rw-r--r--tdeioslave/media/mediamanager/halbackend.cpp2000
-rw-r--r--tdeioslave/media/mediamanager/halbackend.h233
-rw-r--r--tdeioslave/media/mediamanager/mediamanager.cpp228
-rw-r--r--tdeioslave/media/mediamanager/mediamanager.h11
-rw-r--r--tdeioslave/media/mediamanager/tdehardwarebackend.cpp126
-rw-r--r--tdeioslave/media/mediamanager/tdehardwarebackend.h16
-rw-r--r--tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp204
-rw-r--r--tdeioslave/media/mounthelper/tdeio_media_mounthelper.h5
-rw-r--r--tdeioslave/media/tdecmodule/managermodule.cpp18
-rw-r--r--tdeioslave/media/tdecmodule/managermoduleview.ui20
-rw-r--r--tdm/kfrontend/kgapp.cpp2
-rw-r--r--translations/desktop_files/kappfinder-data/ru.po18
-rw-r--r--translations/desktop_files/kappfinder.desktop/ru.po16
-rw-r--r--translations/desktop_files/kate-desktops/ru.po16
-rw-r--r--translations/desktop_files/kcontrol-desktops/ru.po29
-rw-r--r--translations/desktop_files/kmenuedit.desktop/ru.po17
-rw-r--r--translations/desktop_files/knetattach.desktop/ru.po16
-rw-r--r--translations/desktop_files/konsole-eventsrc/ru.po16
-rw-r--r--translations/desktop_files/kpager.desktop/it.po15
-rw-r--r--translations/desktop_files/ksplash-desktops/it.po22
-rw-r--r--translations/desktop_files/ksplash-themes/it.po9
-rw-r--r--translations/desktop_files/ksysguard-desktops/it.po16
-rw-r--r--translations/desktop_files/ksysguard-desktops/ru.po15
-rw-r--r--translations/desktop_files/ksysguard-eventsrc/ru.po17
-rw-r--r--translations/desktop_files/ktip.desktop/it.po15
-rw-r--r--translations/desktop_files/l10n-desktops/it.po250
-rw-r--r--translations/desktop_files/tde_release_notes.desktop/it.po23
-rw-r--r--translations/desktop_files/tdeioslave-desktops/it.po42
-rw-r--r--translations/desktop_files/tdeprint-desktops/it.po20
-rw-r--r--translations/desktop_files/tdeprint-desktops/ru.po16
-rw-r--r--translations/desktop_files/tdm-sessions/it.po120
-rw-r--r--translations/desktop_files/tdm-sessions/nl.po32
-rw-r--r--translations/desktop_files/tdm-sessions/ru.po21
-rw-r--r--translations/desktop_files/tdm-themes/it.po9
-rw-r--r--translations/desktop_files/twin-clients-desktops/it.po21
-rw-r--r--translations/desktop_files/twin-clients-desktops/ru.po16
-rw-r--r--translations/desktop_files/twin-desktops/it.po32
-rw-r--r--translations/desktop_files/twin-eventsrc/it.po53
133 files changed, 7626 insertions, 3987 deletions
diff --git a/CMakeL10n.txt b/CMakeL10n.txt
index afb35d489..061049432 100644
--- a/CMakeL10n.txt
+++ b/CMakeL10n.txt
@@ -14,7 +14,6 @@ cmake_minimum_required( VERSION 3.1 )
##### include our cmake modules #################
-set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEL10n )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d49e28e09..a884913ca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,7 +38,6 @@ include( CheckTypeSize )
##### include our cmake modules #################
-set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )
@@ -117,7 +116,6 @@ option( WITH_XINERAMA "Enable xinerama extension support" ${WITH_ALL_OPTIONS} )
option( WITH_ARTS "Enable aRts support" ${WITH_ALL_OPTIONS} )
option( WITH_I8K "Enable Dell laptop support (ksysguard)" ${WITH_ALL_OPTIONS} )
option( WITH_SENSORS "Enable lm_sensors support (ksysguard)" ${WITH_ALL_OPTIONS} )
-option( WITH_HAL "Enable HAL support" OFF )
option( WITH_TDEHWLIB "Enable TDE hardware library support" ${WITH_ALL_OPTIONS} )
option( WITH_UPOWER "Enable UPOWER support" ${WITH_ALL_OPTIONS} )
option( WITH_ELFICON "Enable ELF embedded metadata support" ${WITH_ALL_OPTIONS} )
@@ -148,8 +146,7 @@ option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden"
# WITH_ARTS affects libkonq khotkeys
# WITH_I8K affects ksysguard
# WITH_SENSORS affects ksysguard
-# WITH_HAL affects tdeioslaves(media) ksmserver kicker
-# WITH_TDEHWLIB affects tdeioslaves(media), replaces WITH_HAL on systems without HAL
+# WITH_TDEHWLIB affects tdeioslaves(media)
# WITH_LIBRAW1394 affects kcontrol(view1394)
# WITH_PAM affects tdm kdesktop kcheckpass
# WITH_SHADOW affects tdm kcheckpass
@@ -254,7 +251,7 @@ tde_conditional_add_subdirectory( BUILD_TDEINIT tdeinit )
tde_conditional_add_subdirectory( BUILD_L10N l10n )
tde_conditional_add_subdirectory( BUILD_PICS pics )
tde_conditional_add_subdirectory( BUILD_APPLNK applnk )
-tde_conditional_add_subdirectory( BUILD_DOC doc )
+tde_conditional_add_project_docs( BUILD_DOC )
tde_conditional_add_subdirectory( BUILD_LIBKONQ libkonq )
tde_conditional_add_subdirectory( BUILD_KCMINIT kcminit )
tde_conditional_add_subdirectory( BUILD_TWIN twin )
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 7a698f144..b60dd5dc0 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -121,15 +121,6 @@ if( NOT HAVE_CRYPT )
endif( NOT HAVE_CRYPT )
-# hal (ksmserver, tdeioslaves)
-if( WITH_HAL )
- pkg_search_module( HAL hal )
- if( NOT HAL_FOUND )
- tde_message_fatal( "hal is required, but was not found on your system" )
- endif( )
-endif( )
-
-
# tdehwlib (drkonqi, kcontrol, kicker, ksmserver, tdeioslaves, tdm)
if( WITH_TDEHWLIB )
tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${TDE_INCLUDE_DIR}" )
@@ -318,10 +309,10 @@ if( WITH_XSCREENSAVER )
# where xscreensaver stores its executables. So give the user the possibility
# to define XSCREENSAVER_DIR and speficy the location manually.
include( FindXscreensaver.cmake ) # not really good practise
- if( NOT XSCREENSAVER_DIR )
+ if( NOT XSCREENSAVER_DIRS )
tde_message_fatal(
- "xscreensaver is requested, but cmake can not determine the location of XSCREENSAVER_DIR
- You have to either specify it manually with e.g. -DXSCREENSAVER_DIR=/usr/lib/misc/xscreensaver/
+ "xscreensaver is requested, but cmake can not determine the location of XSCREENSAVER_DIRS
+ You have to either specify it manually with e.g. -DXSCREENSAVER_DIRS=/usr/lib/misc/xscreensaver/
or make sure that xscreensaver installed properly" )
endif( )
@@ -458,27 +449,6 @@ if( BUILD_KDESKTOP )
endif( )
-# dbus-tqt (ksmserver, kicker, tdeioslaves(media))
-if( WITH_HAL AND (BUILD_KSMSERVER OR BUILD_KICKER OR BUILD_TDEIOSLAVES) )
-
- # check for dbus-tqt
- # dbus-tqt need Qt flags
- pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
- tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
- set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS})
- set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
- check_cxx_source_compiles("
- #include <tqt.h>
- #include <dbus/connection.h>
- int main(int, char**) { return 0; } "
- HAVE_DBUS_QT3_07 )
- tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
- if( NOT HAVE_DBUS_QT3_07 )
- tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
- endif( )
-
-endif( )
-
# check for krb5
if( WITH_KRB5 )
pkg_search_module( KRB5 krb5 )
diff --git a/FindXscreensaver.cmake b/FindXscreensaver.cmake
index 72ee19eda..93ca210ef 100644
--- a/FindXscreensaver.cmake
+++ b/FindXscreensaver.cmake
@@ -8,29 +8,7 @@
if (NOT XSCREENSAVER_FOUND)
set(xscreensaver_alldirs)
- set(xscreensaver_checkdirs ${TDE_INCLUDE_DIR}
- /usr/
- /usr/local/
- /opt/local/
- /usr/X11R6/
- /opt/kde/
- /opt/kde3/
- /usr/kde/
- /usr/local/kde/
- /usr/local/xscreensaver/
- /usr/openwin/lib/xscreensaver/
- /etc/ )
- foreach(suffix lib${LIB_SUFFIX}/xscreensaver lib${LIB_SUFFIX}/misc/xscreensaver lib/xscreensaver lib64/xscreensaver libexec/xscreensaver
-bin/xscreensaver-hacks hacks)
- foreach(xscreensaver_path ${xscreensaver_checkdirs} )
- set(xscreensaver_alldirs ${xscreensaver_alldirs} ${xscreensaver_path}/${suffix})
- endforeach(xscreensaver_path ${xscreensaver_checkdirs} )
- endforeach(suffix lib${LIB_SUFFIX}/xscreensaver lib/xscreensaver lib64/xscreensaver libexec/xscreensaver bin/xscreensaver-hacks hacks)
- FIND_PATH(XSCREENSAVER_DIR deco ${xscreensaver_alldirs})
-
- set(XSCREENSAVER_CONFIG_DIR)
- FIND_PATH(XSCREENSAVER_CONFIG_DECO config/deco.xml
- ${TDE_INCLUDE_DIR}
+ set(xscreensaver_checkdirs
/usr/
/usr/local/
/opt/local/
@@ -45,33 +23,58 @@ bin/xscreensaver-hacks hacks)
/usr/openwin/lib/xscreensaver/
/etc/
)
- #MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
+ foreach(suffix lib${LIB_SUFFIX}/xscreensaver lib${LIB_SUFFIX}/misc/xscreensaver
+ lib/xscreensaver lib64/xscreensaver libexec/xscreensaver
+ bin/xscreensaver-hacks hacks)
+ foreach(xscreensaver_path ${xscreensaver_checkdirs} )
+ set(xscreensaver_alldirs ${xscreensaver_alldirs} ${xscreensaver_path}/${suffix})
+ endforeach(xscreensaver_path ${xscreensaver_checkdirs} )
+ endforeach()
+
+ set(XSCREENSAVER_DIRS)
+ FIND_PATH(XSCREENSAVER_DIR_DECO deco ${xscreensaver_alldirs})
+ FIND_PATH(XSCREENSAVER_DIR_FLUX flux ${xscreensaver_alldirs})
+ if(XSCREENSAVER_DIR_DECO)
+ list(APPEND XSCREENSAVER_DIRS ${XSCREENSAVER_DIR_DECO})
+ endif(XSCREENSAVER_DIR_DECO)
+ if(XSCREENSAVER_DIR_FLUX)
+ list(APPEND XSCREENSAVER_DIRS ${XSCREENSAVER_DIR_FLUX})
+ endif(XSCREENSAVER_DIR_FLUX)
+ list( REMOVE_DUPLICATES XSCREENSAVER_DIRS )
+ string( REPLACE ";" ":" XSCREENSAVER_DIRS "${XSCREENSAVER_DIRS}" )
+ set(XSCREENSAVER_CONFIG_DIRS)
+ FIND_PATH(XSCREENSAVER_CONFIG_DECO config/deco.xml ${xscreensaver_checkdirs} )
+ FIND_PATH(XSCREENSAVER_CONFIG_FLUX config/flux.xml ${xscreensaver_checkdirs} )
if(XSCREENSAVER_CONFIG_DECO)
- set(XSCREENSAVER_CONFIG_DIR "${XSCREENSAVER_CONFIG_DECO}/config/")
- #MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+ list(APPEND XSCREENSAVER_CONFIG_DIRS "${XSCREENSAVER_CONFIG_DECO}/config/")
endif(XSCREENSAVER_CONFIG_DECO)
-
+ if(XSCREENSAVER_CONFIG_FLUX)
+ list(APPEND XSCREENSAVER_CONFIG_DIRS "${XSCREENSAVER_CONFIG_FLUX}/config/")
+ endif(XSCREENSAVER_CONFIG_FLUX)
# Try and locate XScreenSaver config when path doesn't include config
- if(NOT XSCREENSAVER_CONFIG_DIR)
- FIND_PATH(XSCREENSAVER_CONFIG_DIR deco.xml
+ if(NOT XSCREENSAVER_CONFIG_DIRS)
+ FIND_PATH(XSCREENSAVER_CONFIG_DIRS deco.xml
/etc/xscreensaver
)
- endif(NOT XSCREENSAVER_CONFIG_DIR)
+ endif(NOT XSCREENSAVER_CONFIG_DIRS)
+
+ list( REMOVE_DUPLICATES XSCREENSAVER_CONFIG_DIRS )
+ string( REPLACE ";" ":" XSCREENSAVER_CONFIG_DIRS "${XSCREENSAVER_CONFIG_DIRS}" )
endif(NOT XSCREENSAVER_FOUND)
#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
#MESSAGE(STATUS "XSCREENSAVER_DIR :<${XSCREENSAVER_DIR}>")
# Need to fix hack
-if(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+if(XSCREENSAVER_DIRS AND XSCREENSAVER_CONFIG_DIRS)
set(XSCREENSAVER_FOUND TRUE)
-endif(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
+endif(XSCREENSAVER_DIRS AND XSCREENSAVER_CONFIG_DIRS)
if (XSCREENSAVER_FOUND)
if (NOT Xscreensaver_FIND_QUIETLY)
- message(STATUS "Found SCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
+ message(STATUS "Found SCREENSAVER_CONFIG_DIRS <${XSCREENSAVER_CONFIG_DIRS}>")
endif (NOT Xscreensaver_FIND_QUIETLY)
else (XSCREENSAVER_FOUND)
if (Xscreensaver_FIND_REQUIRED)
@@ -79,5 +82,4 @@ else (XSCREENSAVER_FOUND)
endif (Xscreensaver_FIND_REQUIRED)
endif (XSCREENSAVER_FOUND)
-
-MARK_AS_ADVANCED(XSCREENSAVER_DIR XSCREENSAVER_CONFIG_DIR)
+MARK_AS_ADVANCED(XSCREENSAVER_DIRS XSCREENSAVER_CONFIG_DIRS)
diff --git a/admin b/admin
-Subproject 8c7e0d40de084fe5d54e173918756639e0d4d63
+Subproject a7f75ac0ff587d5b8694a1b78557597161f8104
diff --git a/config.h.cmake b/config.h.cmake
index 6a10e786e..4fab81d2f 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -35,7 +35,7 @@
#cmakedefine HAVE_XSCREENSAVER 1
/* Defines where xscreensaver stores its graphic hacks */
-#define XSCREENSAVER_HACKS_DIR "@XSCREENSAVER_DIR@"
+#define XSCREENSAVER_HACKS_DIRS "@XSCREENSAVER_DIRS@"
// libart
#cmakedefine HAVE_LIBART 1
@@ -65,17 +65,8 @@
#cmakedefine HAVE_SYS_TYPES_H 1
// tdeioslave/media
-#cmakedefine WITH_HAL 1
-#ifdef WITH_HAL
-#define COMPILE_HALBACKEND
-#define COMPILE_LINUXCDPOLLING
-#endif
-
-// tdeioslave/media
#cmakedefine WITH_TDEHWLIB 1
#ifdef WITH_TDEHWLIB
-// forcibly deactivate HAL support and substitute TDE hardware library support
-#undef COMPILE_HALBACKEND
#define COMPILE_TDEHARDWAREBACKEND
#endif
@@ -239,3 +230,6 @@
// TDE compositor binary name
#define TDE_COMPOSITOR_BINARY "compton-tde"
+
+// TDE man installation folder
+#define TDE_MANDIR "@MAN_INSTALL_DIR@"
diff --git a/doc/khelpcenter/faq/misc.docbook b/doc/khelpcenter/faq/misc.docbook
index 18644fb03..c22a11138 100644
--- a/doc/khelpcenter/faq/misc.docbook
+++ b/doc/khelpcenter/faq/misc.docbook
@@ -228,16 +228,5 @@ if you want to read without subscribing.</para>
</answer>
</qandaentry>
-<qandaentry>
-<question>
-<para>How do the developers propose to transition away from HAL (hardware abstraction layer)?</para>
-</question>
-<answer>
-<para>The Trinity team developed a new native hardware support layer that is under testing.
-That new system will be enabled by default in a future release, but is available now
-in the development sources.</para>
-</answer>
-</qandaentry>
-
</qandaset>
</chapter>
diff --git a/doc/khelpcenter/releasenotes/index.docbook b/doc/khelpcenter/releasenotes/index.docbook
index c9a56c5cc..aeb5f47b4 100644
--- a/doc/khelpcenter/releasenotes/index.docbook
+++ b/doc/khelpcenter/releasenotes/index.docbook
@@ -16,6 +16,7 @@
<!ENTITY r14.0.10 SYSTEM "r14.0.10.docbook">
<!ENTITY r14.0.11 SYSTEM "r14.0.11.docbook">
<!ENTITY r14.0.12 SYSTEM "r14.0.12.docbook">
+ <!ENTITY r14.0.13 SYSTEM "r14.0.13.docbook">
]>
@@ -65,6 +66,7 @@ role, including bug fixing, enhancements, testing, etc.</para>
</sect1>
+&r14.0.13;
&r14.0.12;
&r14.0.11;
&r14.0.10;
diff --git a/doc/khelpcenter/releasenotes/r14.0.12.docbook b/doc/khelpcenter/releasenotes/r14.0.12.docbook
index fb7ee7600..69ec96ad5 100644
--- a/doc/khelpcenter/releasenotes/r14.0.12.docbook
+++ b/doc/khelpcenter/releasenotes/r14.0.12.docbook
@@ -1,12 +1,87 @@
<sect1 id="release-notes-r14.0.12">
-<title>R14.0.12 Release Notes (draft)</title>
+<title>R14.0.12 Release Notes</title>
<para>R14.0.12 is the twelfth maintenance release of the R14.0 series,
-and is built on and improves the previous versions.</para>
-<para>Maintenance releases are intended to promptly bring bug fixes and
-new features to users, while preserving overall stability through the
-avoidance of both major API or feature changes and major codebase re-factoring.</para>
+and is built on and improves the previous maintenance versions.</para>
+<para>Maintenance releases are intended to promptly bring bug fixes and new
+features to users, while preserving overall stability through the avoidance
+of both major API or feature changes and major codebase re-factoring.
+</para>
-<para>The ongoing temporary list of changes introduced by this release can be found <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tde/issues/66">here</ulink>.</para>
+<sect2 id="release-notes-r14.0.12-notes">
+<title>Important fixes</title>
+
+<para>This section highlights some of the most important changes introduced by this
+release.</para>
+
+<itemizedlist>
+<listitem>
+ <para>New applications</para>
+ <itemizedlist>
+ <listitem><para>Polkit-agent-tde - a D-Bus service that provides a TDE based polkit authentication agent</para></listitem>
+ <listitem><para>Polkit-tqt - a library that lets developers use the PolicyKit API through a nice TQt-styled interface</para></listitem>
+ <listitem><para>tdemarkdown part - an embeddable lightweight markdown document viewer</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Enhancements</para>
+ <itemizedlist>
+ <listitem><para>Some improvements on Konsole terminal emulation</para></listitem>
+ <listitem><para>Quanta: improved support for complex characters/dead keys in VPL editor</para></listitem>
+ <listitem><para>KSSL: added Let's Encrypt certificates support</para></listitem>
+ <listitem><para>Kxkb: systray label can now have a transparent background</para></listitem>
+ <listitem><para>Konsole: added real transparency checkbox option</para></listitem>
+ <listitem><para>Quanta: added support for HTML 5</para></listitem>
+ <listitem><para>Sip4-tqt: initial support for python 3</para></listitem>
+ <listitem><para>Tdebase: added dispwin (Argyll) support to set the ICC profile</para></listitem>
+ <listitem><para>Translation updates (thanks to all translators)</para></listitem>
+ <listitem><para>Several packages have been migrated to CMake build system</para></listitem>
+ <listitem><para>Dropped automake build system for various packages</para></listitem>
+ <listitem><para>Continued overall look polishing</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Bug fixes</para>
+ <itemizedlist>
+ <listitem><para>Fixed timeout on dbus' service startup response on first call</para></listitem>
+ <listitem><para>Fixed hanging of system on shutdown caused by conflicts between tdm and plymouth</para></listitem>
+ <listitem><para>Added support for Poppler >= 21.11</para></listitem>
+ <listitem><para>TCC: make sure correct encoding is used for editing bashrc (affects gtk-qt-engine)</para></listitem>
+ <listitem><para>Fixed issue with ICEAuthority ownership stealing when programs were run using tdesu in a user session</para></listitem>
+ <listitem><para>KMail: redirecting messages now uses the default account</para></listitem>
+ <listitem><para>Amarok: fixed default scoring script error caused by using a feature deprecated in latest Ruby version</para></listitem>
+ <listitem><para>Kaffeine: fixed detection of libdvdcss</para></listitem>
+ <listitem><para>Kexi: added support for postgresql 12 and later</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Distro support</para>
+ <itemizedlist>
+ <listitem><para>Gentoo: several improvements and addition to supported ebuilds</para></listitem>
+ <listitem><para>Debian: dropped Jessie</para></listitem>
+ <listitem><para>Ubuntu: dropped Trusty (14.04), added Jammy (22.04).</para></listitem>
+ </itemizedlist>
+</listitem>
+</itemizedlist>
+
+<para>The full list of changes is available at these links:</para>
+<itemizedlist>
+ <listitem><para><ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tde/issues/65">TGW issue list</ulink></para></listitem>
+ <listitem><para><ulink url="https://bugs.trinitydesktop.org/showdependencytree.cgi?id=3189&amp;hide_resolved=0">Bugzilla bug list</ulink></para></listitem>
+ <listitem><para><ulink url="https://wiki.trinitydesktop.org/Changelog_For_R14.0.12">Detailed commit change log</ulink></para></listitem>
+ <listitem><para><ulink url="https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.12">Full release notes on TDE wiki</ulink></para></listitem>
+</itemizedlist>
+
+<para>Additional info for developers/packagers</para>
+<itemizedlist>
+ <listitem><para>Minimum required version of CMake raised to 3.1</para></listitem>
+ <listitem><para>c++11 features are now allowed in the code base</para></listitem>
+ <listitem><para>cmake-trinity: added TQT_CMAKE_DIR variable, for installing and importing exported CMake targets for TQt dependent libraries</para></listitem>
+ <listitem><para>cmake-trinity: added ability to specify necessary CXX features</para></listitem>
+</itemizedlist>
+</sect2>
</sect1>
diff --git a/doc/khelpcenter/releasenotes/r14.0.13.docbook b/doc/khelpcenter/releasenotes/r14.0.13.docbook
new file mode 100644
index 000000000..3308fd79f
--- /dev/null
+++ b/doc/khelpcenter/releasenotes/r14.0.13.docbook
@@ -0,0 +1,12 @@
+<sect1 id="release-notes-r14.0.13">
+<title>R14.0.13 Release Notes (draft)</title>
+
+<para>R14.0.13 is the thirteenth maintenance release of the R14.0 series,
+and is built on and improves the previous versions.</para>
+<para>Maintenance releases are intended to promptly bring bug fixes and
+new features to users, while preserving overall stability through the
+avoidance of both major API or feature changes and major codebase re-factoring.</para>
+
+<para>The ongoing temporary list of changes introduced by this release can be found <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tde/issues/83">here</ulink>.</para>
+
+</sect1>
diff --git a/doc/khelpcenter/userguide/removable-disks.docbook b/doc/khelpcenter/userguide/removable-disks.docbook
index 92929dcbe..9c3575e1b 100644
--- a/doc/khelpcenter/userguide/removable-disks.docbook
+++ b/doc/khelpcenter/userguide/removable-disks.docbook
@@ -19,10 +19,7 @@ it, and much more.</para>
<para>The use of a device is controlled by the operating
system and it is important your operating system has tools for managing
-these devices. &tde; can also auto mount devices, working with
-<acronym>HAL</acronym> (Hardware Abstraction Layer). Your distribution
-should have set up <acronym>HAL</acronym> automatically; if not,
-consult the documentation provided by your distribution.</para>
+these devices. &tde; can also auto mount devices.</para>
<para>There are several ways to find the list of media devices: use
whichever one suits you best:</para>
@@ -89,14 +86,6 @@ configured. To find out if they are running on your system check the
<command>udevd</command>. &tde; does not provide any of these
components. You must check with you distribution.</para>
-<itemizedlist>
-<title>Related Information</title>
-<listitem><para><ulink url="http://wiki.kde.org/tiki-index.php?page=DBUS">HOWTO: setting up D-BUS and HAL with TDE's media ioslave
-edit</ulink> (A community maintained HOWTO on the &tde; wiki)</para></listitem>
-<listitem><para><ulink url="http://www.freedesktop.org/wiki/Software/dbus">The DBus page</ulink></para></listitem>
-<listitem><para><ulink url="http://www.freedesktop.org/wiki/Software/hal"></ulink>HAL - Hardware Abstraction Layer</para></listitem>
-</itemizedlist>
-
</sect2>
<sect2 id="mounting-removable-disks">
diff --git a/doc/man/appletproxy.1 b/doc/man/appletproxy.1
new file mode 100644
index 000000000..3ab13208f
--- /dev/null
+++ b/doc/man/appletproxy.1
@@ -0,0 +1,163 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH APPLETPROXY 1 "June 2006" "Trinity Desktop Environment" "Panel applet proxy"
+.SH NAME
+appletproxy
+\- TDE kicker panel applet proxy
+.SH SYNOPSIS
+\fBappletproxy\fP [Qt\-options] [TDE\-options] \fIdesktopfile\fP
+.SH DESCRIPTION
+\fBappletproxy\fP is a small application that allows you to run a kicker applet outside of \fBkicker\fP itself. The applet will appear in it's own window, making this a convenient way to debug panel applets.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B desktopfile
+The applet's desktop file
+.SS
+.SS Options:
+.TP
+.B \-\-configfile <file>
+The config file to be used
+.TP
+.B \-\-callbackid <id>
+DCOP callback id of the applet container
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+.SH FILES
+\fI/usr/share/apps/kicker/applets\fP
+kicker applets directory
+.SH SEE ALSO
+\fBkicker\fP(1), \fBextensionproxy\fP(1)
+.SH AUTHORS
+.nf
+Matthias Elter <elter@kde.org>
+.br
+Matthias Ettrich <ettrich@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/drkonqi.1 b/doc/man/drkonqi.1
new file mode 100644
index 000000000..987164834
--- /dev/null
+++ b/doc/man/drkonqi.1
@@ -0,0 +1,175 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH DRKONQI 1 "June 2006" "Trinity Desktop Environment" "TDE crash handler"
+.SH NAME
+drkonqi
+\- TDE crash handler gives the user feedback if a program crashed
+.SH SYNOPSIS
+\fBdrkonqi\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+The TDE crash handler gives the user feedback if a program crashed.
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-\-signal <number>
+The signal number that was caught
+.TP
+.B \-\-appname <name>
+Name of the program
+.TP
+.B \-\-apppath <path>
+Path to the executable
+.TP
+.B \-\-appversion <version>
+The version of the program
+.TP
+.B \-\-bugaddress <address>
+The bug address to use
+.TP
+.B \-\-programname <name>
+Translated name of the program
+.TP
+.B \-\-pid <pid>
+The PID of the program
+.TP
+.B \-\-startupid <id>
+Startup ID of the program
+.TP
+.B \-\-tdeinit
+The program was started by tdeinit
+.TP
+.B \-\-safer
+Disable arbitrary disk access
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+Hans Petter Bieker <bieker@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/extensionproxy.1 b/doc/man/extensionproxy.1
new file mode 100644
index 000000000..4ea041189
--- /dev/null
+++ b/doc/man/extensionproxy.1
@@ -0,0 +1,163 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH EXTENSIONPROXY 1 "June 2006" "Trinity Desktop Environment" "Panel extension proxy"
+.SH NAME
+extensionproxy
+\- TDE kicker panel extension proxy
+.SH SYNOPSIS
+\fBextensionproxy\fP [Qt\-options] [TDE\-options] \fIdesktopfile\fP
+.SH DESCRIPTION
+\fBextensionproxy\fP is a small application that allows you to run a kicker extension outside of \fBkicker\fP itself.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B desktopfile
+The extension's desktop file
+.SS
+.SS Options:
+.TP
+.B \-\-configfile <file>
+The config file to be used
+.TP
+.B \-\-callbackid <id>
+DCOP callback id of the extension container
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+.SH FILES
+\fI/usr/share/apps/kicker/extensions\fP
+kicker extensions directory
+.SH SEE ALSO
+\fBkicker\fP(1), \fBappletproxy\fP(1)
+.SH AUTHORS
+.nf
+Matthias Elter <elter@kde.org>
+.br
+Matthias Ettrich <ettrich@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/gentdmconf.1 b/doc/man/gentdmconf.1
new file mode 100644
index 000000000..d98e166c2
--- /dev/null
+++ b/doc/man/gentdmconf.1
@@ -0,0 +1,91 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH GENTDMCONF 1 "June 2006" "Trinity Desktop Environment" "generate configuration files for tdm"
+.SH NAME
+gentdmconf
+\- generate configuration files for tdm
+.SH SYNOPSIS
+\fBgentdmconf\fP
+.RB [ \-\-in
+.IR /path/to/new/tdm\-config\-dir ]
+.RS 11
+.RB [ \-\-old\-xdm
+.IR /path/to/old/xdm\-dir ]
+.br
+.RB [ \-\-old\-kde
+.IR /path/to/old/kde\-config\-dir ]
+.br
+.RB [ \-\-no\-old ]
+.RB [ \-\-no\-old\-xdm ]
+.RB [ \-\-no\-old\-kde ]
+.RB [ \-\-old\-scripts ]
+.br
+.RB [ \-\-no\-old\-scripts ]
+.RB [ \-\-old\-confs ]
+.RB [ \-\-no\-backup ]
+.br
+.RB [ \-\-no\-in\-notice ]
+.RE
+
+.SH DESCRIPTION
+\fBgentdmconf\fP is used to generate configuration files for \fBtdm\fP.
+.br
+If an older xdm/tdm configuration is found, its config files are "absorbed";
+if it lives in the new target directory, its scripts are reused (and possibly
+modified) as well, otherwise the scripts are ignored and default scripts are
+installed.
+.SH OPTIONS
+.TP
+.BI \-\-in \ /path/to/new/tdm\-config\-dir
+In which directory to put the new configuration. You can use this to support a $(DESTDIR), but not to change the final location of the installation \- the paths inside the files are not affected.
+.br
+Default is \fI/etc/trinity/tdm\fP.
+.TP
+.BI \-\-old\-xdm \ /path/to/old/xdm\-dir
+Where to look for the config files of an \fBxdm\fP / older \fBtdm\fP. Default is to scan
+.IR /etc/X11/tdm , \ $XLIBDIR/tdm , \ /etc/X11/xdm , \ $XLIBDIR/xdm ;
+there in turn look for \fItdm\-config\fP and \fIxdm\-config\fP.
+.br
+Note that you possibly need to use \fB\-\-no\-old\-kde\fP to make this take effect.
+.TP
+.BI \-\-old\-kde \ /path/to/old/kde\-config\-dir
+Where to look for the \fItdmrc\fP of an older \fBtdm\fP.
+.br
+.RI Default\ is\ to\ scan\ /etc/trinity \ and\ { /usr,/usr/local ,
+.RI { /opt,/usr/local }{ trinity,kde,kde2,kde1 }} /share/config .
+.TP
+.B \-\-no\-old
+Don't look at older xdm/tdm configurations, just create default config.
+.TP
+.B \-\-no\-old\-xdm
+Don't look at older xdm configurations.
+.TP
+.B \-\-no\-old\-kde
+Don't look at older tdm configurations.
+.TP
+.B \-\-old\-scripts
+Directly use all scripts from the older xdm/tdm configuration.
+.TP
+.B \-\-no\-old\-scripts
+Don't use scripts from the older xdm/tdm configuration even if it lives in the new target directory.
+.TP
+.B \-\-old\-confs
+Directly use all ancillary config files from the older xdm/tdm configuration. This is usually a bad idea.
+.TP
+.B \-\-no\-backup
+Overwrite/delete old config files instead of backing them up.
+.TP
+.B \-\-no\-in\-notice
+Don't put the notice about \fB\-\-in\fP being used into the generated README.
+.SH SEE ALSO
+.BR tdm (1)
+.SH AUTHORS
+.nf
+Oswald Buddenhagen <ossi@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kappfinder.1 b/doc/man/kappfinder.1
new file mode 100644
index 000000000..ec8eae964
--- /dev/null
+++ b/doc/man/kappfinder.1
@@ -0,0 +1,54 @@
+.TH KAPPFINDER 1 "August, 24 2003"
+.SH NAME
+kappfinder \- searches for program to add to the Kde menu
+.SH SYNOPSIS
+.B kappfinder
+.RI [ options ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kappfinder
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBkappfinder\fP is a program that searches your system for applications that can be inserted in the TDE menu, but that are not yet there. User can then select individually each of them and choose whether to add them.
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-\-help\-qt
+Show QT specific help (common for all QT apps).
+.TP
+.B \-\-help\-tde
+Show TDE specific help (common for all TDE apps).
+.TP
+.B \-\-help\-all
+Show the complete help.
+.TP
+.B \-\-author
+Show program author(s).
+.TP
+.B \-\-license
+Show program license.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.TP
+.B \-\-dir directory
+Use this option to set where the .desktop files will be installed (default is $(HOME)/.trinity/share/applnk
+
+.SH SEE ALSO
+For more details, you should have a look at the TDE Help center, available
+from the T menu.
+.SH AUTHOR
+This manual page was written by Clement Stenac <zorglub@via.ecp.fr>,
+for the Debian GNU/Linux project (but may be used by others).
+.PP
+kappfinder was written by the KDE project
diff --git a/doc/man/kasbar.1 b/doc/man/kasbar.1
new file mode 100644
index 000000000..7d57958d2
--- /dev/null
+++ b/doc/man/kasbar.1
@@ -0,0 +1,148 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KASBAR 1 "June 2006" "Trinity Desktop Environment" "An alternative task manager"
+.SH NAME
+kasbar
+\- An alternative task manager
+.SH SYNOPSIS
+\fBkasbar\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+The \fBKasBar\fP is an iconic replacement of the taskbar. It always shows the icons of all currently running applications on any desktop, they can be chosen by clicking with the left mouse button. The active window is highlighted, minimized windows will show a little triangle pointing downwards instead of the square in the lower right of the icons. A triangle pointing to the right indicates that the application is shaded.
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-\-test
+Test the basic kasbar code
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH SEE ALSO
+\fBkicker\fP(1)
+.SH AUTHORS
+.nf
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kate.1 b/doc/man/kate.1
new file mode 100644
index 000000000..e48268d6f
--- /dev/null
+++ b/doc/man/kate.1
@@ -0,0 +1,83 @@
+.TH KATE 1 "May 2006"
+.SH NAME
+kate \- TDE Advanced Text Editor
+.SH SYNOPSIS
+.B kate
+.RI [ options ] [file(s)]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kate
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBkate\fP is a powerful text editor for TDE. It allows multiple documents (MDI interface), syntax coloration for many languages, ...
+
+It is able to expand or collapse parts of code (C functions, ...), can handle complete projects, and includes a terminal emulator.
+
+Kate is primarily intended for developers but can be used by anyone. It will for example be very useful to edit configuration files for example.
+
+It can handle plugins to expand its capabilities (more languages support, vim/Emacs compatibility, ...)
+
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-\-help\-qt
+Show QT specific help (common for all QT apps).
+.TP
+.B \-\-help\-tde
+Show TDE specific help (common for all TDE apps).
+.TP
+.B \-\-help\-all
+Show the complete help.
+.TP
+.B \-\-author
+Show program author(s).
+.TP
+.B \-\-license
+Show program license.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.TP
+.B \-s, \-\-start <name>
+Start Kate with a given session
+.TP
+.B \-u, \-\-use
+Use a already running kate instance (if possible)
+.TP
+.B \-p, \-\-pid <pid>
+Only try to reuse kate instance with this pid
+.TP
+.B \-e, \-\-encoding <name>
+Set encoding for the file to open
+.TP
+.B \-l, \-\-line <line>
+Navigate to this line
+.TP
+.B \-c, \-\-column <column>
+Navigate to this column
+.TP
+.B \-i, \-\-stdin
+Read the contents of stdin
+.TP
+.B file(s)
+is the file or the files to open
+
+.SH SEE ALSO
+.BR kwrite (1)
+.PP
+For more details, you should have a look at the TDE Help center, available
+from the T menu.
+.SH AUTHOR
+This manual page was written by Clement Stenac <zorglub@via.ecp.fr>, for Debian GNU/Linux, but may be used by others.
+.PP
+kate was written by the KDE project
diff --git a/doc/man/kblankscrn.kss.1 b/doc/man/kblankscrn.kss.1
new file mode 100644
index 000000000..46b2d4e1a
--- /dev/null
+++ b/doc/man/kblankscrn.kss.1
@@ -0,0 +1,156 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KBLANKSCRN.KSS 1 "June 2006" "Trinity Desktop Environment" "TDE screen saver"
+.SH NAME
+kblankscrn.kss
+\- TDE screensaver which shows a blank screen
+.SH SYNOPSIS
+\fBkblankscrn.kss\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+\fBKBlankScreen\fP is a screensaver which shows a blank screen.
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-\-setup
+Setup screen saver
+.TP
+.B \-\-window\-id wid
+Run in the specified XWindow
+.TP
+.B \-\-root
+Run in the root XWindow
+.TP
+.B \-\-demo
+Start screen saver in demo mode [default]
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+The KDE Project <www.kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kcheckpass.1 b/doc/man/kcheckpass.1
new file mode 100644
index 000000000..fa5a4c817
--- /dev/null
+++ b/doc/man/kcheckpass.1
@@ -0,0 +1,49 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KCHECKPASS 1 "June 2006" "Trinity Desktop Environment" "authentication software"
+.SH NAME
+kcheckpass
+\- The KCheckPass authentication software
+.SH SYNOPSIS
+\fBkcheckpass\fP
+.SH DESCRIPTION
+\fBKCheckPass\fP is TDE's authentication program. It is meant to be
+used by any software in need of user authentication, most
+notably screensavers.
+.sp 1
+It enhances security be the following means:
+.br
+.IP " \-"
+It's only a small program, which is hopefully simple enough to
+allow it to be SUID root. Setting it to SUID root is necessary
+on Shadow Password systems.
+.IP " \-"
+No other program in need of user authentication, must be
+SUID root.
+.IP " \-"
+It provides a single implementation to check passwords. So one only must take a closer look at \fBKCheckPass\fP to ensure password security. It's much easier for programs using \fBKCheckPass\fP to preserve security.
+.PP
+.br
+\fBTechnique:\fP
+.sp 1
+\fBKCheckPass\fP is a simple password checker. Just invoke and send it the password on stdin.
+.sp 1
+If the password was accepted, the program exits with 0;
+.br
+if it was rejected, it exits with 1. Any other exit code signals an error.
+
+.SH AUTHORS
+.nf
+Olaf Kirch <okir@caldera.de>
+.br
+Christian Esken <esken@kde.org>
+.br
+Oswald Buddenhagen <ossi@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kcminit.1 b/doc/man/kcminit.1
new file mode 100644
index 000000000..4c557456e
--- /dev/null
+++ b/doc/man/kcminit.1
@@ -0,0 +1,153 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KCMINIT 1 "June 2006" "Trinity Desktop Environment" "Trinity Control Modules initialization"
+.SH NAME
+kcminit
+\- runs startups initialization for Control Modules.
+.SH SYNOPSIS
+\fBkcminit\fP [Qt\-options] [TDE\-options] [options] module
+.SH DESCRIPTION
+\fBkcminit\fP runs startups initialization for Control Modules.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B module
+Configuration module to run
+.SS Options:
+.TP
+.B \-\-list
+List modules that are run at startup
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+Matthias Hoelzer\-Kluepfel <hoelzer@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kdcop.1 b/doc/man/kdcop.1
new file mode 100644
index 000000000..1c01dcc47
--- /dev/null
+++ b/doc/man/kdcop.1
@@ -0,0 +1,159 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KDCOP 1 "June 2006" "Trinity Desktop Environment" "A graphical DCOP browser/client"
+.SH NAME
+kdcop
+\- A graphical DCOP browser/client
+.SH SYNOPSIS
+\fBkdcop\fP [Qt\-options] [TDE\-options]
+.SH DESCRIPTION
+\fBkdcop\fP is a browser/executor for DCOP. It queries the DCOP clients in a system,
+their interfaces, and the interfaces' arguments. You can even execute DCOP
+calls by double\-clicking on a call. If the method has parameters, \fBkdcop\fP will
+open a dialog and prompt you for them. If the method returns a return value,
+you will see it in a message box after the call.
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/kdcop/
+directly into konqueror or you can run
+.BR "khelpcenter help:/kdcop/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+Matthias Kalle Dalheimer <kalle@kde.org>
+.br
+Rik Hemsley <rik@kde.org>
+.br
+Ian Reinhart Geiser <geiseri@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kdialog.1 b/doc/man/kdialog.1
new file mode 100644
index 000000000..243709ed1
--- /dev/null
+++ b/doc/man/kdialog.1
@@ -0,0 +1,209 @@
+.TH KDIALOG "1" "December 2002" "TDE" "TDE Application"
+.SH NAME
+kdialog \- Show TDE dialog boxes from shell scripts
+.SH SYNOPSIS
+.B kdialog
+[\fIQt-options\fR] [\fITDE-options\fR] [\fIoptions\fR] [\fIarg\fR]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kdialog
+TDE Application.
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+.PP
+.B kdialog
+allows to display dialog boxes from shell scripts.
+The syntax is very much inspired from the
+.B dialog
+command
+(which shows text mode dialogs).
+.SH OPTIONS
+.TP
+.BI \-\-yesno " text"
+Question message box with yes/no buttons
+.TP
+.BI \-\-yesnocancel " text"
+Question message box with yes/no/cancel buttons
+.TP
+.BI \-\-warningyesno " text"
+Warning message box with yes/no buttons
+.TP
+.BI \-\-warningcontinuecancel " text"
+Warning message box with continue/cancel buttons
+.TP
+.BI \-\-warningyesnocancel " text"
+Warning message box with yes/no/cancel buttons
+.TP
+.BI \-\-sorry " text"
+\&'Sorry' message box
+.TP
+.BI \-\-error " text"
+\&'Error' message box
+.TP
+.BI \-\-msgbox " text"
+Message Box dialog
+.TP
+.BI \-\-inputbox " text init"
+Input Box dialog
+.TP
+.BI \-\-password " text"
+Password dialog
+.TP
+.RI \fB\-\-textbox\fP \ file " [" width "] [" height ]
+Text Box dialog
+.TP
+.RI \fB\-\-menu\fP \ text " [" "tag item" "] [" "tag item" "] ..."
+Menu dialog
+.TP
+.RI \fB\-\-checklist\fP \ text " [" "tag item status" "] ..."
+Check List dialog
+.TP
+.RI \fB\-\-radiolist\fP " text" " [" "tag item status" "] ..."
+Radio List dialog
+.TP
+.BI \-\-title " text"
+Dialog title
+.TP
+.B \-\-separate\-output
+Return list items on separate lines (for checklist option)
+.SS "Arguments:"
+.TP
+arg
+Arguments - depending on main option
+.SS "Generic options:"
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS "Qt options:"
+.TP
+.BI \-\-display \ displayname
+Use the X-server display \fIdisplayname\fP.
+.TP
+.BI \-\-session \ sessionId
+Restore the application for the given \fIsessionId\fP.
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8-bit display.
+.TP
+.BI \-\-ncols \ count
+Limits the number of colors allocated in the color
+cube on an 8-bit display, if the application is
+using the QApplication::ManyColor color
+specification.
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard.
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+.B \-nograb, use \fB\-dograb\fR to override.
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging.
+.TP
+.BI "\-\-fn\fR, \fP\-\-font" \ fontname
+defines the application font.
+.TP
+.BI "-\-bg\fR, \fB\-\-background" \ color
+sets the default background color and an
+application palette (light and dark shades are
+calculated).
+.TP
+.BI "\-\-fg\fR, \fB\-\-foreground" \ color
+sets the default foreground color.
+.TP
+.BI \-\-btn\fR, \fB\-\-button \ color
+sets the default button color.
+.TP
+.BI \-\-name \ name
+sets the application name.
+.TP
+.BI \-\-title \ title
+sets the application title (caption).
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8-bit display.
+.TP
+.BI \-\-inputstyle \ inputstyle
+sets XIM (X Input Method) input style. Possible
+values are
+.BR onthespot ", " overthespot ", " offthespot and root .
+.TP
+.BI \-\-im " XIM-server"
+set XIM server.
+.TP
+.B \-\-noxim
+disable XIM.
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets.
+.SS "TDE options:"
+.TP
+.BI \-\-caption \ caption
+Use \fIcaption\fP as name in the titlebar.
+.TP
+.BI \-\-icon \ icon
+Use \fIicon\fP as the application icon.
+.TP
+.BI \-\-miniicon \ icon
+Use \fIicon\fP as the icon in the titlebar.
+.TP
+.BI \-\-config \ filename
+Use alternative configuration file.
+.TP
+.BI \-\-dcopserver \ server
+Use the DCOP Server specified by \fIserver\fP.
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps.
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager.
+.TP
+.BI \-\-style \ style
+sets the application GUI style.
+.TP
+.BI \-\-geometry \ geometry
+sets the client geometry of the main widget.
+.SH AUTHOR
+KDialog was written by
+.nh
+.ad l
+David Faure <faure@kde.org>,
+Nick Thompson,
+Nick Thompson,
+Matthias Hoelzer <hoelzer@kde.org> and
+David Gumbel <david.guembel@gmx.net>.
+.br
+.hy
+Please use http://bugs.trinitydesktop.org to report bugs, do not mail the authors directly.
+.br
+This manual page was prepared by
+.nh
+.ad l
+Karolina Lindqvist <pgd\-karolinali@algonet.se>
+.hy
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/doc/man/keditbookmarks.1 b/doc/man/keditbookmarks.1
new file mode 100644
index 000000000..23606dccb
--- /dev/null
+++ b/doc/man/keditbookmarks.1
@@ -0,0 +1,181 @@
+.\" This file was generated by kdemangen.pl
+.TH KEDITBOOKMARKS 1 "Jan 2005" "Trinity Desktop Environment" "Konqueror Bookmarks Editor"
+.SH NAME
+keditbookmarks
+- Konqueror Bookmark Editor
+.SH SYNOPSIS
+keditbookmarks [Qt-options] [TDE-options] [options] [file]
+.SH DESCRIPTION
+Bookmark editor for TDE.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B file
+File to edit
+.SS Options:
+.TP
+.B --importmoz <filename>
+Import bookmarks from a file in Mozilla format
+.TP
+.B --importns <filename>
+Import bookmarks from a file in Netscape (4.x and earlier) format
+.TP
+.B --importie <filename>
+Import bookmarks from a file in Internet Explorer's Favorites format
+.TP
+.B --importopera <filename>
+Import bookmarks from a file in Opera format
+.TP
+.B --exportmoz <filename>
+Export bookmarks to a file in Mozilla format
+.TP
+.B --exportns <filename>
+Export bookmarks to a file in Netscape (4.x and earlier) format
+.TP
+.B --exporthtml <filename>
+Export bookmarks to a file in a printable HTML format
+.TP
+.B --exportie <filename>
+Export bookmarks to a file in Internet Explorer's Favorites format
+.TP
+.B --exportopera <filename>
+Export bookmarks to a file in Opera format
+.TP
+.B --address <address>
+Open at the given position in the bookmarks file
+.TP
+.B --customcaption <caption>
+Set the user readable caption for example "Konsole"
+.TP
+.B --nobrowser
+Hide all browser related functions
+.SS
+.SS Generic options:
+.TP
+.B --help
+Show help about options
+.TP
+.B --help-qt
+Show Qt specific options
+.TP
+.B --help-tde
+Show TDE specific options
+.TP
+.B --help-all
+Show all options
+.TP
+.B --author
+Show author information
+.TP
+.B -v, --version
+Show version information
+.TP
+.B --license
+Show license information
+.TP
+.B --
+End of options
+.SS
+.SS TDE options:
+.TP
+.B --caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B --icon <icon>
+Use 'icon' as the application icon
+.TP
+.B --miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B --config <filename>
+Use alternative configuration file
+.TP
+.B --dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B --nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B --waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B --style <style>
+sets the application GUI style
+.TP
+.B --geometry <geometry>
+sets the client geometry of the main widget
+.SS
+.SS Qt options:
+.TP
+.B --display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B --session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B --cmap
+Causes the application to install a private color
+map on an 8-bit display
+.TP
+.B --ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B --nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B --dograb
+running under a debugger can cause an implicit
+-nograb, use -dograb to override
+.TP
+.B --sync
+switches to synchronous mode for debugging
+.TP
+.B --fn, --font <fontname>
+defines the application font
+.TP
+.B --bg, --background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B --fg, --foreground <color>
+sets the default foreground color
+.TP
+.B --btn, --button <color>
+sets the default button color
+.TP
+.B --name <name>
+sets the application name
+.TP
+.B --title <title>
+sets the application title (caption)
+.TP
+.B --visual TrueColor
+forces the application to use a TrueColor visual on
+an 8-bit display
+.TP
+.B --inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B --im <XIM server>
+set XIM server
+.TP
+.B --noxim
+disable XIM
+.TP
+.B --reverse
+mirrors the whole layout of widgets
+.SS
+.SH AUTHORS
+.nf
+David Faure <faure@kde.org>
+.br
+Alexander Kellett <lypanov@kde.org>
+.br
+
diff --git a/doc/man/kfind.1 b/doc/man/kfind.1
new file mode 100644
index 000000000..55542fd66
--- /dev/null
+++ b/doc/man/kfind.1
@@ -0,0 +1,58 @@
+.TH KFIND 1 "August, 25 2003"
+.SH NAME
+kfind \- TDE find tool
+.SH SYNOPSIS
+.B kfind
+.RI [ options ] [searchpath]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kfind
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBkfind\fP is a find tool for TDE. It allows fine tuning of the search options (name, path, type, plain text search, meta search, modification date, size, user, group, ...)
+
+It also permits to save the results of the search in a file, which is a plain-text list of file URIs. (file:/path_to_file)
+
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-\-help\-qt
+Show QT specific help (common for all QT apps).
+.TP
+.B \-\-help\-tde
+Show TDE specific help (common for all TDE apps).
+.TP
+.B \-\-help\-all
+Show the complete help.
+.TP
+.B \-\-author
+Show program author(s).
+.TP
+.B \-\-license
+Show program license.
+.TP
+.B \-v, \-\-version
+Show version of program.
+
+.TP
+.B searchpath
+is the path in which the search must be done
+
+.SH SEE ALSO
+For more details, you should have a look at the TDE Help center, available
+from the T menu.
+.SH AUTHOR
+This manual page was written by Clement Stenac <zorglub@via.ecp.fr>,
+for the Debian GNU/Linux project (but may be used by others).
+.PP
+kfind was written by the KDE project
diff --git a/doc/man/kfmclient.1 b/doc/man/kfmclient.1
new file mode 100644
index 000000000..67cbed380
--- /dev/null
+++ b/doc/man/kfmclient.1
@@ -0,0 +1,222 @@
+.\" This file was generated by kdemangen.pl
+.\" Further edits by Adeodato Simó. COMMANDS and EXAMPLES sections added.
+.TH KFMCLIENT 1 "Jan 2005" "Trinity Desktop Environment" "TDE tool for opening URLs from the command line"
+.SH NAME
+kfmclient
+- TDE tool for opening URLs from the command line
+.SH SYNOPSIS
+kfmclient [Qt-options] [TDE-options] [options] command [URL(s)]
+.SH DESCRIPTION
+kfmclient is a tool for opening local and remote URLs in Konqueror from
+the command line.
+.SH COMMANDS
+.SS
+.SS openURL
+.TP
+kfmclient openURL \fIurl\fR [ \fImimetype\fR ]
+Opens a window showing \fIurl\fR. \fIurl\fR may be a relative path or file name,
+such as . or subdir/. If \fIurl\fR is omitted, $HOME is used instead.
+
+If \fImimetype\fR is specified, it will be used to determine the component
+that Konqueror should use. For instance, set it to text/html for a web
+page, to make it appear faster.
+.SS newTab
+.TP
+kfmclient newTab \fIurl\fR [ \fImimetype\fR ]
+Same as above but opens a new tab with \fIurl\fR in an existing Konqueror
+window on the current active desktop if possible.
+.SS openProfile
+.TP
+kfmclient openProfile \fIprofile\fR [ \fIurl\fR ]
+Opens a window using the given profile. \fIprofile\fR is a file under
+~/.trinity/share/apps/konqueror/profiles. \fIurl\fR is an optional URL to open.
+.SS openProperties
+.TP
+kfmclient openProperties \fIurl\fR
+Opens a properties menu.
+.SS exec
+.TP
+kfmclient exec [ \fIurl\fR [ \fIbinding\fR ] ]
+Tries to execute \fIurl\fR. \fIurl\fR may be a usual URL, this URL will
+be opened. You may omit \fIbinding\fR. In this case the default binding
+is tried. Of course URL may be the URL of a document, or it may be a
+*.desktop file.
+This way you could for example mount a device by passing 'Mount default'
+as binding to 'cdrom.desktop'.
+.SS move
+.TP
+kfmclient move \fIsrc\fR \fIdest\fR
+Moves the URL \fIsrc\fR to \fIdest\fR. \fIsrc\fR may be a list of URLs.
+.SS copy
+.TP
+kfmclient copy \fIsrc\fR \fIdest\fR
+Copies the URL \fIsrc\fR to \fIdest\fR. \fIsrc\fR may be a list of URLs.
+.SS download
+.TP
+kfmclient download [ \fIsrc\fR ]
+Copies the URL \fIsrc\fR to a user specified location. \fIsrc\fR may be
+a list of URLs, if not present then a URL will be requested.
+.SS sortDesktop
+.TP
+kfmclient sortDesktop
+Rearranges all icons on the desktop.
+.SS configure
+.TP
+kfmclient configure
+Re-read Konqueror's configuration.
+.SS configureDesktop
+.TP
+kfmclient configureDesktop
+Re-read kdesktop's configuration.
+.SH OPTIONS
+.SS
+.SS Generic options:
+.TP
+.B --help
+Show help about options
+.TP
+.B --help-qt
+Show Qt specific options
+.TP
+.B --help-tde
+Show TDE specific options
+.TP
+.B --help-all
+Show all options
+.TP
+.B --author
+Show author information
+.TP
+.B -v, --version
+Show version information
+.TP
+.B --license
+Show license information
+.TP
+.B --
+End of options
+.SS
+.SS TDE options:
+.TP
+.B --caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B --icon <icon>
+Use 'icon' as the application icon
+.TP
+.B --miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B --config <filename>
+Use alternative configuration file
+.TP
+.B --dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B --nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B --waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B --style <style>
+sets the application GUI style
+.TP
+.B --geometry <geometry>
+sets the client geometry of the main widget
+.SS
+.SS Qt options:
+.TP
+.B --display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B --session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B --cmap
+Causes the application to install a private color
+map on an 8-bit display
+.TP
+.B --ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B --nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B --dograb
+running under a debugger can cause an implicit
+-nograb, use -dograb to override
+.TP
+.B --sync
+switches to synchronous mode for debugging
+.TP
+.B --fn, --font <fontname>
+defines the application font
+.TP
+.B --bg, --background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B --fg, --foreground <color>
+sets the default foreground color
+.TP
+.B --btn, --button <color>
+sets the default button color
+.TP
+.B --name <name>
+sets the application name
+.TP
+.B --title <title>
+sets the application title (caption)
+.TP
+.B --visual TrueColor
+forces the application to use a TrueColor visual on
+an 8-bit display
+.TP
+.B --inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B --im <XIM server>
+set XIM server
+.TP
+.B --noxim
+disable XIM
+.TP
+.B --reverse
+mirrors the whole layout of widgets
+.SH EXAMPLES
+.TP
+kfmclient exec file:/root/Desktop/cdrom.desktop "Mount default"
+Mounts the CD-ROM.
+.TP
+kfmclient exec file:/home/weis/data/test.html
+Opens the file with default binding.
+.TP
+kfmclient exec file:/home/weis/data/test.html Netscape
+Opens the file with netscape.
+.TP
+kfmclient exec ftp://localhost/
+Opens new window with URL.
+.TP
+kfmclient exec file:/root/Desktop/emacs.desktop
+Starts emacs.
+.TP
+kfmclient exec file:/root/Desktop/cdrom.desktop
+Opens the CD-ROM's mount directory.
+.TP
+kfmclient exec .
+Opens the current directory. Very convenient.
+.SH OTHER
+This manual page was written by Adeodato Simo <asp16@alu.ua.es> for the
+Debian system (but may be used by others).
+
+This manual page can be redistribute and/or modified it under the terms
+of the GNU General Public License as published by the Free Software
+Foundation; version 2 dated June, 1991.
+.nf
diff --git a/doc/man/khotkeys.1 b/doc/man/khotkeys.1
new file mode 100644
index 000000000..34d754b05
--- /dev/null
+++ b/doc/man/khotkeys.1
@@ -0,0 +1,150 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KHOTKEYS 1 "June 2006" "Trinity Desktop Environment" "KHotKeys daemon"
+.SH NAME
+khotkeys
+\- daemon to bind actions to triggers and conditions
+.SH SYNOPSIS
+\fBkhotkeys\fP [Qt\-options] [TDE\-options]
+.SH DESCRIPTION
+\fBKHotKeys\fP is a utility that allows you to bind actions to triggers and conditions. The most common case is where action means launching some command/application/URL, the trigger is some key combination pressed and condition is some window being (not) active/existing.
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.TP
+.B \-\-nofork
+Don't run in the background.
+.SS
+
+.SH FILES
+.I ~/.trinity/share/config/khotkeysrc
+\fBkhotkeys\fP configuration file
+
+.SH AUTHORS
+.nf
+Lubos Lunak <l.lunak@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kicker.1 b/doc/man/kicker.1
new file mode 100644
index 000000000..1d17fa199
--- /dev/null
+++ b/doc/man/kicker.1
@@ -0,0 +1,171 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KICKER 1 "June 2006" "Trinity Desktop Environment" "The TDE panel"
+.SH NAME
+kicker
+\- The TDE panel
+.SH SYNOPSIS
+\fBkicker\fP [Qt\-options] [TDE\-options]
+.SH DESCRIPTION
+\fBKicker\fP is the TDE application starter panel and is also capable of some useful applets and extensions. It usually resides on the bottom of the desktop.
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.TP
+.B \-\-nofork
+Don't run in the background.
+
+.SH SEE ALSO
+\fBkasbar\fP(1)
+.sp 1
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/kicker/
+directly into konqueror or you can run
+.BR "khelpcenter help:/kicker/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+Aaron J. Seigo <aseigo@kde.org>
+.br
+Matthias Elter <elter@kde.org>
+.br
+Matthias Ettrich <ettrich@kde.org>
+.br
+Wilco Greven <greven@kde.org>
+.br
+Rik Hemsley <rik@kde.org>
+.br
+Daniel M. Duley <mosfet@kde.org>
+.br
+Preston Brown <pbrown@kde.org>
+.br
+John Firebaugh <jfirebaugh@kde.org>
+.br
+Waldo Bastian <bastian@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kjobviewer.1 b/doc/man/kjobviewer.1
new file mode 100644
index 000000000..6dae2692e
--- /dev/null
+++ b/doc/man/kjobviewer.1
@@ -0,0 +1,202 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KJOBVIEWER 1 "June 2006" "Trinity Desktop Environment" "A print job viewer"
+.SH NAME
+kjobviewer
+\- a print job viewer
+.SH SYNOPSIS
+\fBkjobviewer\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+\fBKJobViewer\fP is a powerful queue and spool manager. You can view jobs in the different queues waiting for print as well as manipulate jobs in many ways.
+.sp 1
+The details are, again, as with all other modules of \fBTDEPrint\fP, dependent on the print subsystem in use. \fBCUPS\fP, as is usual now, in this field is the most feature\-complete system for "doing something with jobs that are sent away already and wait for print, possibly on a remote print server".
+.sp 1
+With kjobviewer you can...
+.IP " \-"
+see an overview for a certain queue or see all jobs on all queues;
+.IP " \-"
+filter the list to see your "own" jobs only;
+.IP " \-"
+sort the pending jobs according to different criteria (size, ownership, job\-ide, job\-name; billing\-tags);
+.IP " \-"
+stop a job from printing, putting it into a "held" state;
+.IP " \-"
+re\-start a held job;
+.IP " \-"
+manually release a job that was sent to "hold" from the client already;
+.IP " \-"
+reschedule a job for printing at a specified time;
+.IP " \-"
+increase or decrease the job\-priorities (allowed values are 1\-100) to re-arrange the order of automatic printing;
+.IP " \-"
+move a job to a different print\-queue;
+.IP " \-"
+stop jobs from leaving the queue (while still accepting incoming ones);
+.IP " \-"
+reject new incoming jobs (while still printing all the pending ones until the queue is empty);
+.IP " \-"
+check and re\-set all job options \-\- even adapt them to another target printet which might have a complete different set of commands;
+.IP " \-"
+view the existing and re\-assign a new job\-billing tag to a job;
+.IP " \-"
+pop up on screen a nicely formatted report of IPP attributes for any job and also print it;
+.IP " \-"
+increase or decrease the number of required copies;
+.IP " \-"
+cancel and delete a no-longer\-required job.
+.PP
+Note, that some of these manipulations require job ownership or root access.
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-d
+<printer\-name> The printer for which jobs are requested
+.TP
+.B \-\-noshow
+Show job viewer at startup
+.TP
+.B \-\-all
+Show jobs for all printers
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.TP
+.B \-\-nofork
+Don't run in the background.
+.SS
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/kjobviewer/
+directly into konqueror or you can run
+.BR "khelpcenter help:/kjobviewer/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+Michael Goffioul <tdeprint@swing.be>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kmenuedit.1 b/doc/man/kmenuedit.1
new file mode 100644
index 000000000..fd5c7daf5
--- /dev/null
+++ b/doc/man/kmenuedit.1
@@ -0,0 +1,51 @@
+.TH KMENUEDIT 1 "August, 24 2003"
+.SH NAME
+kmenuedit \- editor for the TDE menu
+.SH SYNOPSIS
+.B kmenuedit
+.RI [ options ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kmenuedit
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBkmenuedit\fP is a powerful editor for the TDE menu. It allows you to add, remove, or move items in the menu, add sub-menus, ...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-\-help\-qt
+Show QT specific help (common for all QT apps).
+.TP
+.B \-\-help\-tde
+Show TDE specific help (common for all TDE apps).
+.TP
+.B \-\-help\-all
+Show the complete help.
+.TP
+.B \-\-author
+Show program author(s).
+.TP
+.B \-\-license
+Show program license.
+.TP
+.B \-v, \-\-version
+Show version of program.
+
+.SH SEE ALSO
+For more details, you should have a look at the TDE Help center, available
+from the T menu.
+.SH AUTHOR
+This manual page was written by Clement Stenac <zorglub@via.ecp.fr>,
+for the Debian GNU/Linux project (but may be used by others).
+.PP
+kmenuedit was written by the KDE project
diff --git a/doc/man/knetattach.1 b/doc/man/knetattach.1
new file mode 100644
index 000000000..84bc38fcf
--- /dev/null
+++ b/doc/man/knetattach.1
@@ -0,0 +1,164 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KNETATTACH 1 "June 2006" "Trinity Desktop Environment" "TDE Network Wizard"
+.SH NAME
+knetattach
+\- TDE Network Wizard
+.SH SYNOPSIS
+\fBknetattach\fP [Qt\-options] [TDE\-options]
+.SH DESCRIPTION
+The \fBTDE Network Wizard\fP is an application which makes it easier to integrate your network resources with your Trinity Desktop.
+.sp 1
+The program, also known as the \fBNetwork Folder Wizard\fP, allows easy addition and integration of various network folders with your Trinity desktop.
+.sp 1
+The \fBNetwork Folder Wizard\fP currently allows you to add four types of network folders:
+.br
+.RS 3
+\- WebDav
+.br
+\- FTP
+.br
+\- Microsoft(R) Windows(R) (Samba) network drives
+.br
+\- SSH
+.RE
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/knetattach/
+directly into konqueror or you can run
+.BR "khelpcenter help:/knetattach/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+George Staikos <staikos@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/konqueror.1 b/doc/man/konqueror.1
new file mode 100644
index 000000000..0515c4f87
--- /dev/null
+++ b/doc/man/konqueror.1
@@ -0,0 +1,245 @@
+.\" This file was generated by kdemangen.pl
+.TH KONQUEROR 1 "Jan 2005" "Trinity Desktop Environment" "Web browser, file manager, ..."
+.SH NAME
+konqueror
+- Web browser, file manager, ...
+.SH SYNOPSIS
+konqueror [Qt-options] [TDE-options] [options] [URL]
+.SH DESCRIPTION
+Konqueror is the file manager for the Trinity Desktop Environment.
+It supports basic file management on local UNIX filesystems,
+from simple cut/copy and paste operations to advanced remote
+and local network file browsing.
+
+It is also the canvas for all the latest TDE technology,
+from KIO slaves (which provide mechanisms for file access) to
+component embedding via the KParts object interface, and it
+is one of the most customizable applications available.
+
+Konqueror is an Open Source web browser with HTML4.0 compliance,
+supporting Java applets, JavaScript, CSS1 and (partially) CSS2,
+as well as Netscape plugins (for example, Flash or RealVideo plugins).
+
+It is a universal viewing application, capable of embedding
+read-only viewing components in itself to view
+documents without ever launching another application.
+
+This package is part of the official TDE base module.
+
+
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B URL
+Location to open
+.SS Options:
+.TP
+.B --silent
+Start without a default window
+.TP
+.B --preload
+Preload for later use
+.TP
+.B --profile <profile>
+Profile to open
+.TP
+.B --profiles
+List available profiles
+.TP
+.B --mimetype <mimetype>
+Mimetype to use for this URL (e.g. text/html or inode/directory)
+.TP
+.B --select
+For URLs that point to files, opens the directory and selects the file, instead of opening the actual file
+.SS
+.SS Generic options:
+.TP
+.B --help
+Show help about options
+.TP
+.B --help-qt
+Show Qt specific options
+.TP
+.B --help-tde
+Show TDE specific options
+.TP
+.B --help-all
+Show all options
+.TP
+.B --author
+Show author information
+.TP
+.B -v, --version
+Show version information
+.TP
+.B --license
+Show license information
+.TP
+.B --
+End of options
+.SS
+.SS TDE options:
+.TP
+.B --caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B --icon <icon>
+Use 'icon' as the application icon
+.TP
+.B --miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B --config <filename>
+Use alternative configuration file
+.TP
+.B --dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B --nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B --waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B --style <style>
+sets the application GUI style
+.TP
+.B --geometry <geometry>
+sets the client geometry of the main widget
+.SS
+.SS Qt options:
+.TP
+.B --display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B --session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B --cmap
+Causes the application to install a private color
+map on an 8-bit display
+.TP
+.B --ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B --nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B --dograb
+running under a debugger can cause an implicit
+-nograb, use -dograb to override
+.TP
+.B --sync
+switches to synchronous mode for debugging
+.TP
+.B --fn, --font <fontname>
+defines the application font
+.TP
+.B --bg, --background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B --fg, --foreground <color>
+sets the default foreground color
+.TP
+.B --btn, --button <color>
+sets the default button color
+.TP
+.B --name <name>
+sets the application name
+.TP
+.B --title <title>
+sets the application title (caption)
+.TP
+.B --visual TrueColor
+forces the application to use a TrueColor visual on
+an 8-bit display
+.TP
+.B --inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B --im <XIM server>
+set XIM server
+.TP
+.B --noxim
+disable XIM
+.TP
+.B --reverse
+mirrors the whole layout of widgets
+.SS
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/konqueror/
+directly into konqueror or you can run
+.BR "`khelpcenter help:/konqueror/'"
+from the command-line.
+.br
+.SH AUTHORS
+.nf
+David Faure <faure@kde.org>
+.br
+Simon Hausmann <hausmann@kde.org>
+.br
+Michael Reiher <michael.reiher@gmx.de>
+.br
+Matthias Welk <welk@fokus.gmd.de>
+.br
+Alexander Neundorf <neundorf@kde.org>
+.br
+Michael Brade <brade@kde.org>
+.br
+Lars Knoll <knoll@kde.org>
+.br
+Dirk Mueller <mueller@kde.org>
+.br
+Peter Kelly <pmk@post.com>
+.br
+Waldo Bastian <bastian@kde.org>
+.br
+Germain Garand <germain@ebooksfrance.org>
+.br
+Leo Savernik <l.savernik@aon.at>
+.br
+Stephan Kulow <coolo@kde.org>
+.br
+Antti Koivisto <koivisto@kde.org>
+.br
+Apple Safari Developers
+.br
+Harri Porten <porten@kde.org>
+.br
+Koos Vriezen <koos.vriezen@xs4all.nl>
+.br
+Matt Koss <koss@miesto.sk>
+.br
+Alex Zepeda <zipzippy@sonic.net>
+.br
+Richard Moore <rich@kde.org>
+.br
+Dima Rogozin <dima@mercury.co.il>
+.br
+Wynn Wilkes <wynnw@calderasystems.com>
+.br
+Stefan Schimanski <schimmi@kde.org>
+.br
+George Staikos <staikos@kde.org>
+.br
+Dawit Alemayehu <adawit@kde.org>
+.br
+Carsten Pfeiffer <pfeiffer@kde.org>
+.br
+Torsten Rahn <torsten@kde.org>
+.br
+Torben Weis <weis@kde.org>
+.br
+Joseph Wenninger <jowenn@kde.org>
+.br
+
diff --git a/doc/man/konsole.1 b/doc/man/konsole.1
new file mode 100644
index 000000000..5de5500b4
--- /dev/null
+++ b/doc/man/konsole.1
@@ -0,0 +1,179 @@
+.\" The draft of this file was generated by kdemangen.pl and edited after.
+.TH Konsole 1 "Nov 2005" "Trinity Desktop Environment" ""
+.SH NAME
+.BR Konsole
+\- X terminal emulator for TDE.
+.SH SYNOPSIS
+.BR Konsole
+[Qt\-options] [TDE\-options] [options] [args]
+.SH DESCRIPTION
+Konsole is an X terminal emulation which provides a command-line interface
+(CLI) while using the graphical Trinity Desktop Environment. Konsole helps to
+better organize user's desktop by containing multiple sessions in a single
+window (a less cluttered desktop).
+.PP
+Konsole advanced features include simple configuration and the ability to use
+multiple terminal shells in a single window, making for a less
+cluttered desktop.
+.PP
+Using Konsole, a user can open:
+.PP
+.RS
+Linux console sessions
+.PP
+Shell sessions
+.PP
+Screen sessions
+.PP
+Midnight Commander file manager sessions
+.PP
+Root console sessions
+.PP
+Root Midnight Commander sessions
+.PP
+User created sessions
+.RE
+
+These sessions can be renamed to help you keep track of all your shells,
+or signaled (STOP, CONT, HUP, INT, TERM, KILL).
+.PP
+For more control over konsole, a user can:
+hide/show the menubar and/or frame;
+select the size of a konsole window, fonts, color
+schemes, and key mapping;
+change location of the scrollbar or hide the scrollbar;
+change location of the tabbar or hide the tabbar.
+.PP
+All chosen settings can be made the default for forthcoming sessions by
+saving them.
+.SH OPTIONS
+.SS
+.SS Konsole specific options:
+.TP
+.B \-\-name <name>
+Set window class
+.TP
+.B \-\-ls
+Start login shell
+.B \-T <title>
+Set the window title
+.TP
+.B \-\-tn <terminal>
+Specify terminal type as set in the TERM [xterm]
+environment variable
+.TP
+.B \-\-noclose
+Do not close Konsole when command exits
+.TP
+.B \-\-nohist
+Do not save lines in history
+.TP
+.B \-\-nomenubar
+Do not display menubar
+.TP
+.B \-\-notabbar, \-\-notoolbar
+Do not display tab bar
+.TP
+.B \-\-noframe
+Do not display frame
+.TP
+.B \-\-noscrollbar
+Do not display scrollbar
+.TP
+.B \-\-noxft
+Do not use Xft (anti-aliasing)
+.TP
+.B \-\-vt_sz CCxLL
+Terminal size in columns x lines
+.TP
+.B \-\-noresize
+Terminal size is fixed
+.TP
+.B \-\-type <type>
+Start with given session type
+.TP
+.B \-\-types
+List available session types
+.TP
+.B \-\-keytab <name>
+Set keytab to 'name'
+.TP
+.B \-\-keytabs
+List available keytabs
+.TP
+.B \-\-profile <name>
+Start with given session profile
+.TP
+.B \-\-profiles
+List available session profiles
+.TP
+.B \-\-schema <name>
+| <file> Set schema to 'name' or use 'file'
+.TP
+.B \-\-schemas, \-\-schemata
+List available schemata
+.TP
+.B \-\-script
+Enable extended DCOP Qt functions
+.TP
+.B \-\-workdir <dir>
+Change working directory to 'dir'
+.TP
+.B \-e <command> [ arguments ]
+Execute 'command' instead of shell. It also sets the window title and
+icon name to be the basename of the program being executed if neither
+-T nor -n are given on the command line.
+This must be the last option on the command line.
+.SS
+.SS Arguments:
+.TP
+.B args
+Arguments for 'command'
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/konsole/
+directly into konqueror or you can run
+.BR "`khelpcenter help:/konsole/'"
+from the command-line.
+.BR
+
+Konsole homepage:
+.BR http://konsole.kde.org/
+.SH AUTHORS
+Kurt V. Hindenburg <kurt.hindenburg@kdemail.net>
+
+Lars Doelle <lars.doelle@on-line.de>
+.BR
+.SH OTHER
+This manual page was written by Ana Beatriz Guerrero Lopez <ana@ekaia.org> for the Debian
+system (but may be used by others).
+.BR
+
diff --git a/doc/man/kpager.1 b/doc/man/kpager.1
new file mode 100644
index 000000000..63a24f267
--- /dev/null
+++ b/doc/man/kpager.1
@@ -0,0 +1,53 @@
+.TH KPAGER 1 "August, 24 2003"
+.SH NAME
+kpager \- Trinity desktop pager
+.SH SYNOPSIS
+.B kpager
+.RI [ options ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kpager
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBkpager\fP is a desktop pager for the Trinity desktop. It creates mini-views of the different Trinity desktops. These views show the real content of the desktop, or only icons.
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-\-help\-qt
+Show QT specific help (common for all QT apps).
+.TP
+.B \-\-help\-tde
+Show TDE specific help (common for all TDE apps).
+.TP
+.B \-\-help\-all
+Show the complete help.
+.TP
+.B \-\-author
+Show program author(s).
+.TP
+.B \-\-license
+Show program license.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.TP
+.B \-\-hidden
+Create the preview of the desktops, but hide the window
+.SH SEE ALSO
+For more details, you should have a look at the TDE Help center, available
+from the T menu.
+.SH AUTHOR
+This manual page was written by Clement Stenac <zorglub@via.ecp.fr>,
+for the Debian GNU/Linux project (but may be used by others).
+.PP
+kpager was written by the KDE project
diff --git a/doc/man/kpersonalizer.1 b/doc/man/kpersonalizer.1
new file mode 100644
index 000000000..01dc0b3cc
--- /dev/null
+++ b/doc/man/kpersonalizer.1
@@ -0,0 +1,66 @@
+.TH KPERSONALIZER 1
+.SH NAME
+kpersonalizer - TDE basic settings wizard
+
+.SH SYNOPSIS
+
+.B kpersonalizer [OPTION...]
+
+.SH DESCRIPTION
+
+The TDE Personalizer (KPersonalizer) is a wizard to configure TDE, and should automatically be run the first time a user runs TDE, to allow the user to configure basic TDE settings.
+.PP
+KPersonalizer allows the user to set locales, desktop behavior, enable accessibility features, and so forth. The options can be changed later by the Trinity Control Center application.
+
+.SH OPTIONS
+
+KPersonalizer accepts the following options:
+.PP
+.B Help options
+.TP
+.B \-\-help
+Show help about options.
+.TP
+.B \-\-help-qt
+Show Qt specific options.
+.TP
+.B \-\-help-tde
+Show TDE specific options.
+.TP
+.B \-\-help-all
+Show all options.
+.TP
+.B \-\-author
+Show author information.
+.TP
+.B \-v, \-\-version
+Show version information.
+.TP
+.B \-\-license
+Show license information.
+
+.PP
+.B Options
+.TP
+.B \-r
+KPersonalizer is restarted by itself.
+.TP
+.B \-\-before-session
+KPersonalizer is started before the TDE session.
+
+.SH EXAMPLES
+.TP
+.B kpersonalizer
+Run kpersonalizer to set (or reset) TDE preferences.
+.TP
+.B kpersonalizer --before-session
+Run kpersonalizer before the first TDE session.
+
+.SH AUTHORS
+
+Kpersonalizer was written by Ralf Nolden <nolden@kde.org>, Carsten Wolff <wolff@kde.org>, qwertz <kraftw@gmx.de>, and Bernhard Rosenkraenzer <bero@redhat.com>.
+.PP
+This manual page was written by Joe Brockmeier <jzb@zonker.net>, for the Debian GNU/Linux project, but may be used by others.
+.SH "SEE ALSO"
+.TP
+.BR khelpcenter (1)
diff --git a/doc/man/kprinter.1 b/doc/man/kprinter.1
new file mode 100644
index 000000000..a3ecdc88b
--- /dev/null
+++ b/doc/man/kprinter.1
@@ -0,0 +1,209 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KPRINTER 1 "June 2006" "Trinity Desktop Environment" "A printer tool for TDE"
+.SH NAME
+kprinter
+\- a printer tool for TDE
+.SH SYNOPSIS
+\fBkprinter\fP [Qt\-options] [TDE\-options] [options] file(s)
+.SH DESCRIPTION
+\fBKPrinter\fP opens automatically when you click on the "Print" icon of any TDE application. Choose your print job settings by going through the dialog and then click on the "Print" button.
+.sp 1
+\fBkprinter\fP is a very versatile tool. Depending on the actual features and power of the print subsystem of your computer, \fBkprinter\fP translates the former's abilities into a nice and easy\-to\-understand GUI. If your print subsystem does not support duplexing, \fBkprinter\fP will not show the option. If your print subsystem is CUPS, kprinter is at its peak shape.
+.sp 1
+With \fBKPrinter\fP you can...
+.IP " \-"
+switch "on the fly" the print subsystem\-to\-use,
+.IP " \-"
+start the Add Printer Wizard,
+.IP " \-"
+choose the target printer,
+.IP " \-"
+possibly select one or more files to print,
+.IP " \-"
+drag'n'drop files for print,
+.IP " \-"
+check for or set the print options,
+.IP " \-"
+schedule the job for later printing,
+.IP " \-"
+tag the print job with accounting information for billing purposes,
+.IP " \-"
+set the job priority for a higher or lower level to influence the order of the job queue,
+.IP " \-"
+access the TDEPrint configurator,
+.IP " \-"
+and activate (or disable) a viewing filter that shows all or just the selected few printers relevant to the user.
+.SP
+.SH OPTIONS
+.SS
+.SS Arguments:
+file(s) Files to load
+.SS Options:
+.TP
+.B \-c
+Make an internal copy of the files to print
+.TP
+.B \-P, \-d <printer>
+Printer/destination to print on
+.TP
+.B \-J, \-t <title>
+Title/Name for the print job
+.TP
+.B \-#, \-n <number>
+Number of copies
+.TP
+.B \-o
+<option=value> Printer option
+.TP
+.B \-j <mode>
+Job output mode (gui, console, none) [gui]
+.TP
+.B \-\-system <printsys>
+Print system to use (lpd, cups)
+.TP
+.B \-\-stdin
+Allow printing from STDIN
+.TP
+.B \-\-nodialog
+Do not show the print dialog (print directly)
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\fB\-\-nograb\fP, use \fB\-\-dograb\fP to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/kprinter/
+directly into konqueror or you can run
+.BR "khelpcenter help:/kprinter/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+Michael Goffioul <tdeprint@swing.be>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/krandom.kss.1 b/doc/man/krandom.kss.1
new file mode 100644
index 000000000..4a13d95ec
--- /dev/null
+++ b/doc/man/krandom.kss.1
@@ -0,0 +1,152 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KRANDOM.KSS 1 "June 2006" "Trinity Desktop Environment" "TDE screen saver"
+.SH NAME
+krandom.kss
+\- Start a random TDE screen saver
+.SH SYNOPSIS
+\fBkrandom.kss\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+\fBkrandom.kss\fP starts a random TDE screen saver.
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-\-setup
+Setup screen saver
+.TP
+.B \-\-window\-id wid
+Run in the specified XWindow
+.TP
+.B \-\-root
+Run in the root XWindow
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kreadconfig.1 b/doc/man/kreadconfig.1
new file mode 100644
index 000000000..3bb6c4d0b
--- /dev/null
+++ b/doc/man/kreadconfig.1
@@ -0,0 +1,173 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KREADCONFIG 1 "June 2006" "Trinity Desktop Environment" "Read TDEConfig entries"
+.SH NAME
+kreadconfig
+\- Read TDEConfig entries (for use in shell scripts)
+.SH SYNOPSIS
+\fBkreadconfig\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+\fBkreadconfig\fP is a command line tool to retrieve values from TDE configuration files.
+.sp 1
+If a file given via option \fB\-\-file\fP does not contain a path the TDE standard configuration directory is used.
+.SS Example:
+.TP
+\fBkreadconfig \-\-group\fP Directories \fB--key\fP dir_tmp
+read the \fBvalue\fP for \fBkey\fP dir_tmp in \fBgroup\fP Directories from TDE's main configuration file
+
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-\-file <file>
+Use <file> instead of global config
+.TP
+.B \-\-group <group>
+Group to look in [TDE]
+.TP
+.B \-\-key <key>
+Key to look for
+.TP
+.B \-\-default <default>
+Default value
+.TP
+.B \-\-type <type>
+Type of variable
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH FILES
+.I /etc/trinity/system.kdeglobals
+global TDE configuration file
+.I ~/.trinity/share/config
+standard configuration directory
+
+.SH AUTHORS
+.nf
+Bernhard Rosenkraenzer <bero@redhat.com>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/krootimage.1 b/doc/man/krootimage.1
new file mode 100644
index 000000000..e9b19a604
--- /dev/null
+++ b/doc/man/krootimage.1
@@ -0,0 +1,151 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KROOTIMAGE 1 "June 2006" "Trinity Desktop Environment" "helper program"
+.SH NAME
+krootimage
+\- set desktop background for tdm
+.SH SYNOPSIS
+\fBkrootimage\fP [Qt\-options] [TDE\-options] config
+.SH DESCRIPTION
+\fBkrootimage\fP is a helper program for \fBtdm\fP to set the desktop background.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B config
+Name of the configuration file
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+.SH SEE ALSO
+.BR tdm (1)
+.SH AUTHORS
+.nf
+Matthias Hoelzer\-Kluepfel <hoelzer@kde.org>
+.br
+Oswald Buddenhagen <ossi@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kstart.1 b/doc/man/kstart.1
new file mode 100644
index 000000000..9d3a77ddc
--- /dev/null
+++ b/doc/man/kstart.1
@@ -0,0 +1,215 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KSTART 1 "June 2006" "Trinity Desktop Environment" "application launch utility"
+.SH NAME
+kstart
+\- Utility to launch applications with special window properties
+.SH SYNOPSIS
+\fBkstart\fP [Qt\-options] [TDE\-options] [options] command
+.SH DESCRIPTION
+Utility to launch applications with special window properties.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B command
+Command to execute
+.SS
+.SS Options:
+.TP
+.B \-\-window <regexp>
+A regular expression matching the window title
+.TP
+.B \-\-windowclass <class>
+A string matching the window class (WM_CLASS property)
+The window class can be found out by running
+'xprop | grep WM_CLASS' and clicking on a window
+(use either both parts separated by a space or only the right part).
+NOTE: If you specify neither window title nor window class,
+then the very first window to appear will be taken;
+omitting both options is NOT recommended.
+.TP
+.B \-\-desktop <number>
+Desktop on which to make the window appear
+.TP
+.B \-\-currentdesktop
+Make the window appear on the desktop that was active
+when starting the application
+.TP
+.B \-\-alldesktops
+Make the window appear on all desktops
+.TP
+.B \-\-iconify
+Iconify the window
+.TP
+.B \-\-maximize
+Maximize the window
+.TP
+.B \-\-maximize\-vertically
+Maximize the window vertically
+.TP
+.B \-\-maximize\-horizontally
+Maximize the window horizontally
+.TP
+.B \-\-fullscreen
+Show window fullscreen
+.TP
+.B \-\-type <type>
+The window type: Normal, Desktop, Dock, Tool,
+Menu, Dialog, TopMenu or Override
+.TP
+.B \-\-activate
+Jump to the window even if it is started on a
+different virtual desktop
+.TP
+.B \-\-ontop, \-\-keepabove
+Try to keep the window above other windows
+.TP
+.B \-\-onbottom, \-\-keepbelow
+Try to keep the window below other windows
+.TP
+.B \-\-skiptaskbar
+The window does not get an entry in the taskbar
+.TP
+.B \-\-skippager
+The window does not get an entry on the pager
+.TP
+.B \-\-tosystray
+The window is sent to the system tray in Kicker
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+Matthias Ettrich <ettrich@kde.org>
+.br
+David Faure <faure@kde.org>
+.br
+Richard J. Moore <rich@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs, do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/ksystraycmd.1 b/doc/man/ksystraycmd.1
new file mode 100644
index 000000000..4807276c0
--- /dev/null
+++ b/doc/man/ksystraycmd.1
@@ -0,0 +1,189 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KSYSTRAYCMD 1 "June 2006" "Trinity Desktop Environment" "system tray utility"
+.SH NAME
+ksystraycmd
+\- Allows any application to be kept in the system tray
+.SH SYNOPSIS
+\fBksystraycmd\fP [Qt\-options] [TDE\-options] [options] command
+.SH DESCRIPTION
+The system tray is an area in which an application can display a small window.
+It may be used to display status information or provide quick access to commands.
+Normally tray icons are developed as part of an application.
+\fBksystraycmd\fP allows any application to be kept in the system tray.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B command
+Command to execute
+.SS
+.SS Options:
+.TP
+.B \-\-window <regexp>
+A regular expression matching the window title
+If you do not specify one, then the very first window
+to appear will be taken \- not recommended.
+.TP
+.B \-\-wid <int>
+The window id of the target window
+Specifies the id of the window to use. If the id starts with 0x
+it is assumed to be in hex.
+.TP
+.B \-\-hidden
+Hide the window to the tray on startup
+.TP
+.B \-\-startonshow
+Wait until we are told to show the window before
+executing the command
+.TP
+.B \-\-tooltip <text>
+Sets the initial tooltip for the tray icon
+.TP
+.B \-\-keeprunning
+Keep the tray icon even if the client exits. This option
+has no effect unless startonshow is specified.
+.TP
+.B \-\-ownicon
+Use ksystraycmd's icon instead of window's icon in systray
+(should be used with \-\-icon to specify ksystraycmd icon)
+.TP
+.B \-\-ontop
+Try to keep the window above other windows
+.TP
+.B \-\-quitonhide
+Quit the client when we are told to hide the window.
+This has no effect unless startonshow is specified and implies keeprunning.
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X\-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+Richard Moore <rich@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/ktrash.1 b/doc/man/ktrash.1
new file mode 100644
index 000000000..0094c84fa
--- /dev/null
+++ b/doc/man/ktrash.1
@@ -0,0 +1,155 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KTRASH 1 "June 2006" "Trinity Desktop Environment" "helper program"
+.SH NAME
+ktrash
+\- Helper program to handle the TDE trash can
+.SH SYNOPSIS
+\fBktrash\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+\fBktrash\fP is a helper program to handle the TDE trash can.
+.sp 1
+Note: to move files to the trash, do not use \fBktrash\fP, but "\fBkfmclient\fP move 'url' trash:/"
+.SH OPTIONS
+.SS
+.SS Options:
+.TP
+.B \-\-empty
+Empty the contents of the trash
+.TP
+.B \-\-restore <file>
+Restore a trashed file to its original location
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+.SH SEE ALSO
+\fBkfmclient\fP(1)
+.SH AUTHORS
+.nf
+David Faure <faure@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kwrite.1 b/doc/man/kwrite.1
new file mode 100644
index 000000000..f7d39f61d
--- /dev/null
+++ b/doc/man/kwrite.1
@@ -0,0 +1,60 @@
+.TH KWRITE 1 "August, 25 2003"
+.SH NAME
+kwrite \- TDE text editor
+.SH SYNOPSIS
+.B kwrite
+.RI [ options ] [file]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B kwrite
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBkwrite\fP is a text editor for TDE, that is a light version of \fIkate\fP.
+It allows syntax coloration for many langages.
+
+It is able to expand or collapse parts of code (C functions, ...).
+
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-\-help\-qt
+Show QT specific help (common for all QT apps).
+.TP
+.B \-\-help\-tde
+Show TDE specific help (common for all TDE apps).
+.TP
+.B \-\-help\-all
+Show the complete help.
+.TP
+.B \-\-author
+Show program author(s).
+.TP
+.B \-\-license
+Show program license.
+.TP
+.B \-v, \-\-version
+Show version of program.
+
+.B file
+is the file to open
+
+.SH SEE ALSO
+.BR kate (1)
+.PP
+For more details, you should have a look at the TDE Help center, available
+from the T menu.
+.SH AUTHOR
+This manual page was written by Clement Stenac <zorglub@via.ecp.fr>,
+for the Debian GNU/Linux project (but may be used by others).
+.PP
+kwrite was written by the KDE project
diff --git a/doc/man/kwriteconfig.1 b/doc/man/kwriteconfig.1
new file mode 100644
index 000000000..b347b9849
--- /dev/null
+++ b/doc/man/kwriteconfig.1
@@ -0,0 +1,173 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KWRITECONFIG 1 "June 2006" "Trinity Desktop Environment" "Write TDEConfig entries"
+.SH NAME
+kwriteconfig
+\- Write TDEConfig entries (for use in shell scripts)
+.SH SYNOPSIS
+\fBkwriteconfig\fP [Qt\-options] [TDE\-options] [options] value
+.SH DESCRIPTION
+\fBkwriteconfig\fP is a command line tool to write values in TDE configuration files.
+Nonexisting files/groups/keys will be created.
+.sp 1
+If a file given via option \fB\-\-file\fP does not contain a path the TDE standard configuration directory is used.
+.SS Example:
+.TP
+\fBkwriteconfig \-\-file\fP \fImyrc\fP \fB\-\-group\fP Directories \fB\-\-key\fP dir_tmp /tmp
+writes the \fBvalue\fP for \fBkey\fP dir_tmp in \fBgroup\fP Directories in configuration \fBfile\fP \fImyrc\fP
+
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B value
+The value to write. Mandatory, on a shell use '' for empty
+.SS Options:
+.TP
+.B \-\-file <file>
+Use <file> instead of global config
+.TP
+.B \-\-group <group>
+Group to look in [TDE]
+.TP
+.B \-\-key <key>
+Key to look for
+.TP
+.B \-\-type <type>
+Type of variable. Use "bool" for a boolean, otherwise it is treated as a string
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+Luis Pedro Coelho <luis_pedro@netcabo.pt>
+.br
+Bernhard Rosenkraenzer <bero@redhat.com>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/kxkb.1 b/doc/man/kxkb.1
new file mode 100644
index 000000000..9a6a6bcf6
--- /dev/null
+++ b/doc/man/kxkb.1
@@ -0,0 +1,163 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KXKB 1 "June 2006" "Trinity Desktop Environment" "A utility to switch keyboard maps"
+.SH NAME
+kxkb
+\- A utility to switch keyboard maps
+.SH SYNOPSIS
+\fBkxkb\fP [Qt\-options] [TDE\-options]
+.SH DESCRIPTION
+\fBKxkb\fP is a keyboard layout switching utility based on X11 xkb extension. It allows to use different keyboard layouts for inputing text. \fBKxkb\fP features keyboard layout indicator.
+.sp 1
+\fBKxkb\fP starts automatically and stays in system tray as a flag with 2 or 3 letter abbreviation of layout name on top of it if more than one layout is defined or Show indicator for single layout option is turned on.
+.sp 1
+When \fBKxkb\fP is running you can change layouts clicking on its tray icon with the mouse or pressing its keyboard shortcut. Keyboard shortcut or mouse click will switch to next layout or alternatively you can right mouse button click the \fBKxkb\fP icon and select layout from the list.
+.sp 1
+Right mouse button clicking on the \fBKxkb\fP icon you can start its configuration by selecting Configure... or by opening \fBControl Center\fP and selecting Localization/Keyboard Layout. Alternatively, you can start it by typing \fBtdecmshell keyboard_layout\fP in a terminal.
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.TP
+.B \-\-nofork
+Don't run in the background.
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/kxkb/
+directly into konqueror or you can run
+.BR "khelpcenter help:/kxkb/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+Andriy Rysin <rysin@kde.org>
+.br
+Shaheed Haque <srhaque@iee.org>
+.br
+Ilya Konstantinov <kde\-devel@future.galanet.net>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/starttde.1 b/doc/man/starttde.1
new file mode 100644
index 000000000..73ab27b9c
--- /dev/null
+++ b/doc/man/starttde.1
@@ -0,0 +1,46 @@
+.TH starttde 1 "Jan 17, 2005"
+.SH NAME
+starttde \- Starts up the Trinity Desktop Environment
+.SH SYNOPSIS
+.B starttde
+.br
+.SH DESCRIPTION
+This manual page documents briefly the
+.B starttde
+command.
+This manual page was written for the Debian distribution
+because the original program does not have a manual page.
+.PP
+The \fBstarttde\fP script starts up the Trinity Desktop Environment and
+is typically executed by your login manager (e.g. xdm, gdm, tdm, wdm or from
+your X startup scripts). \fBstarttde\fP in turn launches ksmserver, which
+will load your last session, or a default session that includes the standard
+TDE programs if no saved session is available.
+
+\fBstarttde\fP, with ksmserver, is a standard X11R6 session manager that can manage
+any X11R6 SM compliant program.
+
+\fBstarttde\fP and ksmserver use the contents of the ~/.trinity directory
+for starting previously saved sessions. Source scripts found in ~/.trinity/env/*.sh
+can be used to define environment variables that will be available to all TDE
+programs.
+
+For anything else (that doesn't set env vars, or that needs a window manager),
+better use the ~/.trinity/Autostart folder.
+
+At the end of a session, the scripts found in ~/.trinity/shutdown will be executed.
+
+
+.SH OPTIONS
+\fBstarttde\fP takes no command line options.
+
+.SH AUTHOR
+\fBstarttde\fP is written by the KDE Project.
+
+This manual page was written by Philipp Grau.
+
+.SH "REPORTING BUGS"
+Report bugs of this modified Debian version of starttde to the Bug
+Tracking System at: http://bugs.debian.org
+.SH COPYRIGHT
+Copyright \(co 2005 Philipp Grau.
diff --git a/doc/man/tdedebugdialog.1 b/doc/man/tdedebugdialog.1
new file mode 100644
index 000000000..af48f59e6
--- /dev/null
+++ b/doc/man/tdedebugdialog.1
@@ -0,0 +1,200 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH TDEDEBUGDIALOG 1 "June 2006" "Trinity Desktop Environment" "control debug output"
+.SH NAME
+tdedebugdialog
+\- A dialog box for setting preferences for debug output
+.SH SYNOPSIS
+\fBtdedebugdialog\fP [Qt\-options] [TDE\-options] [options]
+.SH DESCRIPTION
+\fBTDEDebugDialog\fP shows a dialog box for managing diagnostic messages at runtime.
+.sp 1
+If you simply start \fBtdedebugdialog\fP, you will see a list of \fBareas\fP, that can be disabled or enabled.
+.sp 1
+If you start \fBtdedebugdialog \-\-fullmode\fP, then for every severity level you can define separately what should be done with the diagnostic messages of that level, and the same for each debug area.
+.sp 1
+In full mode, first you should select the debug area you are interested in from the drop down list at the top.
+.sp 1
+You may independently set the output for various types of messages:
+.sp 1
+.RS 3
+\- Information
+.br
+\- Warning
+.br
+\- Error
+.br
+\- Fatal Error
+.RE
+.PP
+For each of these types, you can set the following:
+.sp 1
+\fBOutput to\fP:
+.br
+In this Combobox, you can choose where the messages should be output. The choices are: \fBFile\fP?, \fBMessage Box\fP, \fBShell\fP (meaning stderr), \fBSyslog\fP an \fBNone\fP. Please do not direct fatal messages to syslog unless you are the system administrator yourself. The default is ?Message Box?.
+.sp 1
+\fBFilename:\fP
+.br
+This is only enabled when you have chosen \fBFile\fP as the output and provides the name of that file (which is interpreted as relative to the current folder). The default is \fIkdebug.dbg\fP.
+Apart from this, you can also tick the checkbox Abort on fatal errors. In this case, if a diagnostic message with the severity level TDEBUG_FATAL is output, the application aborts with a SIGABRT after outputting the message.
+.sp 1
+When you close the dialog by pressing OK, your entries apply immediately and are saved in \fIkdebugrc\fP. When you press Cancel, your entries are discarded and the old ones are restored.
+
+.SH OPTIONS
+.SS Options:
+.TP
+.B \-\-fullmode
+Show the fully\-fledged dialog instead of the default list dialog
+.TP
+.B \-\-on <area>
+Turn area on
+.TP
+.B \-\-off <area>
+Turn area off
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.TP
+.B \-\-nofork
+Don't run in the background.
+.SS
+
+.SH FILES
+.I ~/.trinity/share/config/kdebugrc
+\fBtdedebugdialog\fP configuration file
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/tdedebugdialog/
+directly into konqueror or you can run
+.BR "khelpcenter help:/tdedebugdialog/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+David Faure <faure@kde.org>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdeio_media_mounthelper.1 b/doc/man/tdeio_media_mounthelper.1
new file mode 100644
index 000000000..1e7b055f6
--- /dev/null
+++ b/doc/man/tdeio_media_mounthelper.1
@@ -0,0 +1,163 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH KIO_MEDIA_MOUNTHELPER 1 "June 2006" "Trinity Desktop Environment" "helper program"
+.SH NAME
+tdeio_media_mounthelper
+\- tdeio_media_mounthelper
+.SH SYNOPSIS
+\fBtdeio_media_mounthelper\fP [Qt\-options] [TDE\-options] [options] URL
+.SH DESCRIPTION
+\fBtdeio_media_mounthelper\fP is a helper program to handle the mounting of media in TDE. It is part of the KIO subsystem.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B URL
+media:/ URL to mount/unmount/eject/remove
+.SS Options:
+.TP
+.B \-u
+Unmount given URL
+.TP
+.B \-m
+Mount given URL (default)
+.TP
+.B \-e
+Eject given URL via tdeeject
+.TP
+.B \-s
+Unmount and Eject given URL (necessary for some USB devices)
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+.SH AUTHORS
+.nf
+Waldo Bastian <bastian@kde.org>
+.br
+Kevin Ottens <ervin@ipsquad.net>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdeio_system_documenthelper.1 b/doc/man/tdeio_system_documenthelper.1
new file mode 100644
index 000000000..270dd86e6
--- /dev/null
+++ b/doc/man/tdeio_system_documenthelper.1
@@ -0,0 +1,22 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH tdeio_system_documenthelper 1 "June 2006" "Trinity Desktop Environment" "helper script"
+.SH NAME
+tdeio_system_documenthelper
+\- TDE helper script used by document.desktop
+.SH SYNOPSIS
+\fBtdeio_system_documenthelper\fP
+
+.SH DESCRIPTION
+The script is used by document.desktop entry to determine if it must be shown or not.
+
+.SH AUTHORS
+.nf
+Kevin Ottens <ervin@ipsquad.net>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdepasswd.1 b/doc/man/tdepasswd.1
new file mode 100644
index 000000000..e09aff0e2
--- /dev/null
+++ b/doc/man/tdepasswd.1
@@ -0,0 +1,169 @@
+.TH TDEPASSWD 1
+
+.SH NAME
+tdepasswd \- graphical frontend to change the user's password
+
+.SH SYNOPSIS
+.B tdepasswd [ \fIQt-options\fR ] [ \fITDE-options\fR ] \fIoptions\fR
+
+.SH DESCRIPTION
+Changes a UNIX password.
+
+.SH OPTIONS
+.B Generic options:
+.TP
+.HP
+.B \-\-help
+Show help about options
+.TP
+.HP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.HP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.HP
+.B \-\-help\-all
+Show all options
+.TP
+.HP
+.B \-\-author
+Show author information
+.TP
+.HP
+.B \-v\fR, \fB \-\-version
+Show version information
+.TP
+.HP
+.B \-\-license
+Show license information
+.TP
+.B Qt options:
+.TP
+.HP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'.
+.TP
+.HP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'.
+.TP
+.HP
+.B \-\-cmap
+Causes the application to install a private
+color map on an 8-bit display.
+.TP
+.HP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8-bit display, if the application is
+using the QApplication::ManyColor color
+specification.
+.TP
+.HP
+.B \-\-nograb
+Tells Qt to never grab the mouse or the keyboard.
+.TP
+.HP
+.B \-\-dograb
+Running under a debugger can cause an implicit
+-nograb, use -dograb to override.
+.TP
+.HP
+.B \-\-sync
+Switches to synchronous mode for debugging.
+.TP
+.HP
+.B \-\-fn, \-\-font <fontname>
+Defines the application font.
+.TP
+.HP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated).
+.TP
+.HP
+.B \-\-fg, \-\-foreground <color>
+Sets the default foreground color.
+.TP
+.HP
+.B \-\-btn, \-\-button <color>
+Sets the default button color.
+.TP
+.HP
+.B \-\-name <name>
+Sets the application name.
+.TP
+.HP
+.B \-\-title <title>
+Sets the application title (caption).
+.TP
+.HP
+.B \-\-visual TrueColor
+Forces the application to use a TrueColor visual on
+an 8-bit display.
+.TP
+.HP
+.B \-\-inputstyle <inputstyle>
+Sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root.
+.TP
+.HP
+.B \-\-im <XIM server>
+Set XIM server.
+.TP
+.HP
+.B \-\-noxim
+Disable XIM.
+.TP
+.HP
+.B \-\-reverse
+Mirrors the whole layout of widgets.
+.TP
+.B TDE options:
+.TP
+.HP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar.
+.TP
+.HP
+.B \-\-icon <icon>
+Use 'icon' as the application icon.
+.TP
+.HP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar.
+.TP
+.HP
+.B \-\-config <filename>
+Use alternative configuration file.
+.TP
+.HP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'.
+.TP
+.HP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps.
+.TP
+.HP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager.
+.TP
+.HP
+.B \-\-style <style>
+Sets the application GUI style.
+.TP
+.HP
+.B \-\-geometry <geometry>
+Sets the client geometry of the main widget.
+
+.SH "SEE ALSO"
+.BR passwd (1).
+
+.SH AUTHOR
+Andre Ramos <andre@alunos.di.fc.ul.pt>
diff --git a/doc/man/tdeprintfax.1 b/doc/man/tdeprintfax.1
new file mode 100644
index 000000000..e407c294e
--- /dev/null
+++ b/doc/man/tdeprintfax.1
@@ -0,0 +1,160 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH TDEPRINTFAX 1 "June 2006" "Trinity Desktop Environment" "A fax utility"
+.SH NAME
+tdeprintfax
+\- a interface to fax-packages
+.SH SYNOPSIS
+\fBtdeprintfax\fP [Qt\-options] [TDE\-options] [options] [file]
+.SH DESCRIPTION
+\fBtdeprintfax\fP is a small fax utility to be used with tdeprint.
+.SH OPTIONS
+.SS
+.SS Arguments:
+.TP
+.B file
+File to fax (added to the file list)
+.SS Options:
+.TP
+.B \-\-phone
+Phone number to fax to
+.TP
+.B \-\-immediate
+Send fax immediately
+.TP
+.B \-\-batch
+Exit after sending
+.SS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-qt
+Show Qt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS Qt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8\-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8\-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells Qt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+\-nograb, use \-dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8\-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget \- see man X for the argument format
+.SS
+
+.SH AUTHORS
+.nf
+Michael Goffioul <tdeprint@swing.be>
+.br
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdesu.1 b/doc/man/tdesu.1
new file mode 100644
index 000000000..fa8c45e09
--- /dev/null
+++ b/doc/man/tdesu.1
@@ -0,0 +1,102 @@
+.TH TDESU 1 "May 2005" "Trinity Desktop Environment" "Runs a program with elevated privileges."
+.SH NAME
+tdesu \- Runs a program with elevated privileges.
+.SH SYNOPSIS
+\fBtdesu\fR [Qt\-options] [TDE\-options] [tdesu options] command
+.SH DESCRIPTION
+Runs a program with elevated privileges.
+.PP
+TDE su is a graphical front end to the Unix \fBsu\fR utility. It allows you to run programs as another user by entering their password. It is not a SUID root program, but runs unprivileged. The system program \fBsu\fR is used for acquiring special privileges.
+.PP
+\fBtdesu\fR has the ability to store passwords for the convenience of users. The passwords are NOT written to disk, but stored in memory using a special program, \fBtdesud\fR. This is only done if the user specifies that the password be remembered. In this case, passwords are stored in memory for a certain period of time before being removed. \fBtdesud\fR runs in such a way that only the user who entered the password originally can use it, though no one, not even the user who originally entered the password, can retrieve the password that is stored by \fBtdesud\fR. Through these measures, users can avoid having to repeatedly enter root passwords or other passwords, without a significant risk to overall system security.
+.PP
+\fBtdesu\fR uses normally \fBsu\fR to gain root by using the root password. \fBtdesu\fR can also be configured to use other commands to gain root like sudo to use users password.
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B --help
+Show help about options
+.TP
+.B --help-qt
+Show Qt specific options
+.TP
+.B --help-tde
+Show TDE specific options
+.TP
+.B --help-all
+Show all options
+.TP
+.B --author
+Show author information
+.TP
+.B -v, --version
+Show version information
+.TP
+.B --license
+Show license information
+.SS
+.SS tdesu Options:
+.TP
+.TP
+.B -c <command>
+Specifies the command to run
+.TP
+.B -f <file>
+Run command under target uid if <file> is not writable
+.TP
+.B -u <user>
+Specifies the target uid [default is root]
+.TP
+.B -n
+Do not keep password
+.TP
+.B -s
+Stop the daemon (forgets all passwords)
+.TP
+.B -t
+Enable terminal output (no password keeping)
+.TP
+.B -p <prio>
+Set priority value: 0 <= prio <= 100, 0 is lowest [default is 50]
+.TP
+.B -r
+Use realtime scheduling
+.TP
+.B --nonewdcop
+Let command use existing dcopserver
+.TP
+.B -i <icon name>
+Specify icon to use in the password dialog
+.TP
+.B -d
+Do not show the command to be run in the dialog
+.SS
+.SS Arguments:
+.TP
+.B command
+Specifies the command to run
+
+.SH CONFIGURATION FILES
+.PP
+\fBtdesu\fR can be configured with a default configuration file /etc/trinity/tdesurc and with a per user configuration file in .trinity/share/config/tdesurc. Alternative a section could be added to kdeglobals.
+.SH EXAMPLE
+The configuration item for the configuration files is the following:
+.br
+[super-user-command]
+.br
+super-user-command=sudo
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/tdesu/
+directly into konqueror or you can run
+.BR "`khelpcenter help:/tdesu/'"
+from the command-line.
+.br
+.SH AUTHORS
+.br
+Geert Jansen <jansen@kde.org>
+.br
+Pietro Iglio <iglio@fub.it>
+.PP
+This manual page was written by Christopher Martin <chrsmrtn@debian.org> for Debian GNU/Linux, but may be used by others. It borrows from an earlier manpage by Karolina Lindqvist <pgd\-karolinali@algonet.se>.
diff --git a/doc/man/tdm.1 b/doc/man/tdm.1
new file mode 100644
index 000000000..1150fe5a8
--- /dev/null
+++ b/doc/man/tdm.1
@@ -0,0 +1,116 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH TDM 1 "June 2006" "Trinity Desktop Environment" "Trinity Display Manager"
+.SH NAME
+tdm
+\- Trinity Display Manager
+.SH SYNOPSIS
+\fBtdm\fP [options] [tty]
+.SH DESCRIPTION
+\fBtdm\fP is the Trinity display manager also known as login manager. It shows a graphical login screen for username and password. After authenticating the user it starts a session.
+.br
+\fBtdm\fP can be configured for remote login via XDMCP. XDMCP is the "X Display Manager Control Protocol" which is used to set up connections between remote systems over the network.
+.sp 1
+\fBtdm\fP is a derivative of \fBxdm\fP. \fBman 1 xdm\fP may provide useful information (requires installed \fBxdm\fP). For X-related problems try \fBman 7x X\fP and \fBman 1 startx\fP.
+.SH OPTIONS
+.TP
+.B \-daemon
+Daemonize even when started by init
+.TP
+.B \-nodaemon
+Don't daemonize even when started from command line
+.TP
+.BI \-config\ file
+Use alternative master configuration file
+.TP
+.BR \-xrm \ res
+Override frontend\-specific resource
+.TP
+.BI \-error\ file
+Use alternative log file
+.TP
+.BR \-debug \ num
+Debug option bitfield:
+.RS 11
+0x1 \- core log
+.br
+0x2 \- config reader log
+.br
+0x4 \- greeter log
+.br
+0x8 \- IPC log
+.br
+0x10 \- session sub-daemon post-fork delay
+.br
+0x20 \- config reader post-start delay
+.br
+0x40 \- greeter post-start delay
+.br
+0x80 \- don't use syslog
+.br
+0x100 \- core Xauth log
+.br
+0x400 \- valgrind config reader and greeter
+.br
+0x800 \- strace config reader and greeter
+.RE
+.SH FILES
+.TP
+.I /etc/trinity/tdm/backgroundrc
+configuration file with background settings
+.TP
+.I /etc/trinity/tdm/tdm.options
+options for X display manager tdm
+.TP
+.I /etc/trinity/tdm/tdmrc
+the tdm configuration file
+.TP
+.I /etc/trinity/tdm/Xaccess
+access control file for XDMCP connections
+.TP
+.I /etc/trinity/tdm/Xservers
+list of local X-servers
+.TP
+.I /etc/trinity/tdm/Xreset
+script to run as root after session exits
+.TP
+.I /etc/trinity/tdm/Xsession
+script to run as user after login of user
+.TP
+.I /etc/trinity/tdm/Xsetup
+script to run as root before the login dialog appears
+.sp 1
+this script can be edited to disable or modify the running of \fBxconsole\fP on the tdm greeter screen
+.TP
+.I /etc/trinity/tdm/Xstartup
+script to run as root before session starts
+.TP
+.I /etc/trinity/tdm/Xwilling
+output of this script is displayed in the chooser window
+.SH SEE ALSO
+.BR tdm.options (5),\ tdmctl (1),\ tdm_config (1),\ tdm_greet (1),\ startx (1),\ X (7x),\ xconsole (1),\ xdm (1)
+.TP
+.I /opt/trinity/share/doc/tdm/README.gz
+Information about \fBtdm\fP and its options
+.sp 1
+.RE
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/tdm/
+directly into konqueror or you can run
+.BR "khelpcenter help:/tdm/"
+from the command\-line.
+.br
+.SH AUTHORS
+.nf
+Steffen Hansen <hansen@kde.org>
+.br
+Thomas Tanghus <tanghus@earthling.net>
+.br
+Oswald Buddenhagen <ossi@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdm_config.1 b/doc/man/tdm_config.1
new file mode 100644
index 000000000..b8753b168
--- /dev/null
+++ b/doc/man/tdm_config.1
@@ -0,0 +1,22 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH TDM_CONFIG 1 "June 2006" "Trinity Desktop Environment" "helper program"
+.SH NAME
+tdm_config
+\- helper programm for tdm to read configuration files
+.SH SYNOPSIS
+\fBtdm_config\fP
+.SH DESCRIPTION
+\fBtdm_config\fP is a helper program for \fBtdm\fP to read configuration files.
+.SH SEE ALSO
+\fBtdm\fP(1)
+.SH AUTHORS
+.nf
+Oswald Buddenhagen <ossi@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdm_greet.1 b/doc/man/tdm_greet.1
new file mode 100644
index 000000000..10b7bde6e
--- /dev/null
+++ b/doc/man/tdm_greet.1
@@ -0,0 +1,22 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH TDM_GREET 1 "June 2006" "Trinity Desktop Environment" "TDE greeter module"
+.SH NAME
+tdm_greet
+\- TDE greeter module for tdm
+.SH SYNOPSIS
+\fBtdm_greet\fP
+.SH DESCRIPTION
+\fBtdm_greet\fP is a TDE greeter module for \fBtdm\fP. It shows the login dialog.
+.SH SEE ALSO
+.BR tdm (1)
+.SH AUTHORS
+.nf
+Oswald Buddenhagen <ossi@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the author directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project, but may be used by others. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/doc/man/tdmctl.1 b/doc/man/tdmctl.1
new file mode 100644
index 000000000..82be6ae16
--- /dev/null
+++ b/doc/man/tdmctl.1
@@ -0,0 +1,220 @@
+.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
+.TH TDMCTL 1 "June 2006" "Trinity Desktop Environment" "TDM remote control application"
+.SH NAME
+tdmctl
+\- tdm remote control application
+.SH SYNOPSIS
+\fBtdmctl\fP [options] [command [command arguments]]
+.SH DESCRIPTION
+\fBtdmctl\fP is an application to remote\-control \fBtdm\fP. It makes use of UNIX domain sockets.
+.sp 1
+There are two types of sockets: the global one (dmctl) and the per\-display ones (dmctl\-<display>). The global one's subdir is owned by root, the subdirs of the per\-display ones' are owned by the user currently owning the session (root or the logged in user).
+.sp 1
+The directory in which the sockets are located is determined this way:
+.RS 3
+\- the \fB\-s\fP option is examined
+.br
+\- the $DM_CONTROL variable is examined
+.br
+\- the tdm config file is searched for the FifoDir key
+.br
+.RI \- /var/run/xdmctl \ and\ /var/run \ are\ tried
+.RE
+.sp 1
+If $DISPLAY is set (or \fB\-d\fP was specified) and \fB\-g\fP was not specified, the
+display\-specific control socket will be used, otherwise the global one.
+.sp 1
+Tokens in the command and the reply are tab\-separated.
+Command arguments can be specified as separate command line parameters,
+in which case they are simply concatenated with tabs in between.
+.sp 1
+If the command is '\-', \fBtdmctl\fP reads commands from stdin.
+The default command is 'caps'.
+.SH OPTIONS
+.SS
+.SS Options:
+.TP
+.B \-h \-help
+print help message.
+.TP
+.B \-g \-global
+Use global control socket even if $DISPLAY is set
+.TP
+.B \-d \-display
+Override $DISPLAY
+.TP
+.B \-s \-sockets
+Override $DM_CONTROL
+.TP
+.B \-c \-config
+Use alternative tdm config file
+.SS Commands:
+.br
+.SS Global commands:
+.TP
+.B login
+display (now|schedule) user password [session_arguments]
+.br
+ login user at specified display. if "now" is specified, a possibly running session is killed, otherwise the login is done after the session exits.
+.br
+session_arguments are printf\-like escaped contents for \fI.dmrc\fP. Unlisted keys will default to previously saved values.
+.SS Per\-display commands:
+.TP
+.B lock
+The display is marked as locked. If the X\-Server crashes in this state, no auto\-relogin will be performed even if the option is on.
+.TP
+.B unlock
+Reverse the effect of "lock": re\-enable auto\-relogin.
+.TP
+.B suicide
+The currently running session is forcibly terminated. No auto\-relogin is attempted, but a scheduled "login" command will be executed.
+.SS Commands for all sockets:
+.TP
+.B caps
+Returns a list of this socket's capabilities:
+.IP " \- tdm"
+identifies tdm, in case some other DM implements this protocol, too.
+.IP " \- list, activate, lock, suicide, login"
+the respective command is supported.
+.IP " \- bootoptions"
+the "listbootoptions" command and the "=" option to "shutdown" are supported.
+.IP " \- shutdown <list>"
+"shutdown" is supported and allowed to the listed users (comma\-separated). "*" means all authenticated users.
+.IP " \- shutdown"
+"shutdown" is supported and allowed to everybody.
+.IP " \- nuke <list>"
+forced shutdown is allowed to the listed users.
+.IP " \- nuke"
+forced shutdown is allowed to everybody.
+.IP " \- reserve <number>"
+reserve displays are configured and <number> are available at this time.
+.TP
+\fBlist\fP [all|alllocal]
+.br
+Return a list of running sessions. By default all active sessions are listed. If "all" is specified, passive sessions are listed as well. If "alllocal" is specified, passive sessions are listed as well, but all incoming remote sessions are skipped.
+.sp 1
+Each session entry is a comma\-separated tuple of:
+.RS 7
+\- Display or TTY name
+.br
+\- VT name for local sessions
+.br
+\- Logged in user's name, empty for passive sessions and outgoing
+.br
+ remote sessions (local chooser mode)
+.br
+\- Session type or remote host for outgoing remote sessions,
+.br
+ empty for passive sessions
+.br
+\- A flag field:
+.RS 5
+\- "t" for tty sessions
+.br
+\- "*" for the display belonging to the requesting socket
+.br
+\- "!" for sessions that cannot be killed by the requesting
+.br
+ socket
+.br
+\- New flags might be added later
+.br
+.RE
+\- New fields might be added later
+.RE
+.TP
+\fBreserve\fP [timeout in seconds]
+.br
+Start a reserve login screen. If nobody logs in within the specified amount of time (one minute by default), the display is removed again. When the session on the display exits, the display is removed, too.
+.br
+Permitted only on sockets of local displays and the global socket.
+.TP
+\fBactivate\fP (vt|display)
+.br
+Switch to a particular VT (virtual terminal). The VT may be specified either directly (e.g., vt3) or by a display using it (e.g., :2).
+.br
+Permitted only on sockets of local displays and the global socket.
+.TP
+.B listbootoptions
+List available boot options.
+.br
+=> "ok" list default current default and current are indices into the list and are \-1 if unset or undeterminable.
+.TP
+\fBshutdown\fP (reboot|halt) [=bootchoice]
+.br
+ (ask|trynow|forcenow|schedule|start
+.br
+ (\-1|end (force|forcemy|cancel)))
+.br
+.RS 7
+Request a system shutdown, either a reboot or a halt/poweroff.
+.sp 1
+An OS choice for the next boot may be specified from the list returned by "listbootoptions".
+.sp 1
+Shutdowns requested from per\-display sockets are executed when the current session on that display exits. Such a request may pop up a dialog asking for confirmation and/or authentication.
+.sp 1
+start is the time for which the shutdown is scheduled. If it starts with a plus\-sign, the current time is added. Zero means immediately.
+.sp 1
+end is the latest time at which the shutdown should be performed if active sessions are still running. If it starts with a plus\-sign, the start time is added. Minus one means wait infinitely. If end is through and active sessions are still running, \fBTDM\fP can do one of the following:
+.RS 3
+- "cancel" \- give up the shutdown.
+.br
+- "force" \- shut down nonetheless.
+.br
+- "forcemy" \- shut down nonetheless if all active sessions
+.br
+ belong to the requesting user. Only for per\-display sockets.
+.RE
+.sp 1
+start and end are specified in seconds since the UNIX epoch.
+.sp 1
+"trynow" is a synonym for "0 0 cancel", "forcenow" for "0 0 force" and "schedule" for "0 \-1".
+.sp 1
+"ask" attempts an immediate shutdown and interacts with the user if active sessions are still running. Only for per\-display sockets.
+.RE
+.TP
+\fBshutdown cancel\fP [local|global]
+.br
+Cancel a scheduled shutdown. The global socket always cancels the currently pending shutdown, while per\-display sockets default to cancelling their queued request.
+.TP
+\fBshutdown status\fP
+Return a list with information about shutdowns.
+.br
+The entries are comma\-separated tuples of:
+.RS 10
+\- ("global"|"local") \- pending vs. queued shutdown. A local
+.br
+ entry can be returned only by a per\-display socket.
+.br
+\- ("halt"|"reboot")
+.br
+\- start
+.br
+\- end
+.br
+\- ("ask"|"force"|"forcemy"|"cancel")
+.br
+\- Numeric user ID of the requesting user, \-1 for the global
+.br
+ socket.
+.br
+\- The next boot OS choice or "\-" for none.
+.br
+\- New fields might be added later.
+.RE
+.SH SEE ALSO
+.BR tdm (1)
+.TP
+.I /opt/trinity/share/doc/tdm/README.gz
+Information about the command sockets (and \fBtdm\fP)
+.SH AUTHORS
+.nf
+Oswald Buddenhagen <ossi@kde.org>
+
+.br
+.fi
+Please use http://bugs.trinitydesktop.org to report bugs; do not mail the authors directly.
+.PP
+This manual page was written by Holger Hartmann <Holger_Hartmann@gmx.de> for the Debian Project (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
diff --git a/kcontrol/hwmanager/deviceiconview.h b/kcontrol/hwmanager/deviceiconview.h
index 913c4c9ef..746fb2253 100644
--- a/kcontrol/hwmanager/deviceiconview.h
+++ b/kcontrol/hwmanager/deviceiconview.h
@@ -32,31 +32,25 @@ class ConfigModuleList;
class DeviceIconItem : public TDEListViewItem
{
public:
- DeviceIconItem(TQListViewItem *parent, const TQString& text, const TQPixmap& pm, TDEGenericDevice *d = 0)
+ DeviceIconItem(TQListViewItem *parent, const TQString& text, const TQPixmap& pm, TQString deviceUid)
: TDEListViewItem(parent, text)
- , _tag(TQString::null)
- , _device(d)
+ , _deviceUid(deviceUid)
{
setPixmap(0, pm);
}
- DeviceIconItem(TQListView *parent, const TQString& text, const TQPixmap& pm, TDEGenericDevice *d = 0)
+ DeviceIconItem(TQListView *parent, const TQString& text, const TQPixmap& pm, TQString deviceUid)
: TDEListViewItem(parent, text)
- , _tag(TQString::null)
- , _device(d)
+ , _deviceUid(deviceUid)
{
setPixmap(0, pm);
}
- void setDevice(TDEGenericDevice* d) { _device = d; }
- void setTag(const TQString& t) { _tag = t; }
+ void setDevice(TQString deviceUid) { _deviceUid = deviceUid; }
- TDEGenericDevice* device() { return _device; }
- TQString tag() { return _tag; }
-
+ TDEGenericDevice* device() { return TDEGlobal::hardwareDevices()->findByUniqueID(_deviceUid); }
private:
- TQString _tag;
- TDEGenericDevice *_device;
+ TQString _deviceUid; // device unique id
};
class DeviceIconView : public TDEListView
diff --git a/kcontrol/hwmanager/devicepropsdlg.cpp b/kcontrol/hwmanager/devicepropsdlg.cpp
index ffb19da1a..89a7e867f 100644
--- a/kcontrol/hwmanager/devicepropsdlg.cpp
+++ b/kcontrol/hwmanager/devicepropsdlg.cpp
@@ -29,6 +29,7 @@
#include <tqpainter.h>
#include <tqstyle.h>
#include <tqinternal_p.h>
+#include <kprocess.h>
#include <dcopclient.h>
#include <dcopref.h>
#undef Unsorted // Required for --enable-final (tqdir.h)
@@ -253,7 +254,7 @@ void SensorDisplayWidget::updateDisplay() {
}
DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidget *parent)
- : KDialogBase(Plain, TQString::null, Ok|Cancel, Ok, parent, 0L, true, true), m_passDlg(NULL)
+ : KDialogBase(Plain, TQString::null, Ok|Cancel, Ok, parent, 0L, true, true)
{
m_device = device;
enableButtonOK( false );
@@ -306,6 +307,8 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
connect(base->buttonDiskUnmount, TQT_SIGNAL(clicked()), this, TQT_SLOT(unmountDisk()));
connect(base->buttonDiskUnlock, TQT_SIGNAL(clicked()), this, TQT_SLOT(unlockDisk()));
connect(base->buttonDiskLock, TQT_SIGNAL(clicked()), this, TQT_SLOT(lockDisk()));
+ connect(base->buttonDiskEject, TQT_SIGNAL(clicked()), this, TQT_SLOT(ejectDisk()));
+ connect(base->buttonDiskSafeRemove, TQT_SIGNAL(clicked()), this, TQT_SLOT(safeRemoveDisk()));
if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) {
connect(base->cryptLUKSAddKey, TQT_SIGNAL(clicked()), this, TQT_SLOT(cryptLUKSAddKey()));
connect(base->cryptLUKSDelKey, TQT_SIGNAL(clicked()), this, TQT_SLOT(cryptLUKSDelKey()));
@@ -350,10 +353,6 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
DevicePropertiesDialog::~DevicePropertiesDialog()
{
- if (m_passDlg)
- {
- delete m_passDlg;
- }
}
void DevicePropertiesDialog::processHardwareRemoved(TDEGenericDevice* dev) {
@@ -376,7 +375,49 @@ static TQString formatDisplayString(TQString input) {
return TQStyleSheet::escape(input);
}
-void DevicePropertiesDialog::populateDeviceInformation() {
+bool DevicePropertiesDialog::isMonitoredDevice(TDEStorageDevice *sdevice)
+{
+ // Type selection logic largely duplicated from the media manager tdeioslave
+ return ((sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) ||
+ sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) ||
+ sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) &&
+ !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden) &&
+ (sdevice->isDiskOfType(TDEDiskDeviceType::HDD) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDMO) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRWW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRAM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRWDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRWDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDVideo) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDVideo) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDVideo) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Floppy) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Zip) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Jaz) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Camera)));
+}
+
+void DevicePropertiesDialog::populateDeviceInformation()
+{
if (m_device) {
base->labelDeviceType->setText(m_device->friendlyDeviceType());
base->iconDeviceType->setPixmap(m_device->icon(TDEIcon::SizeSmall));
@@ -464,29 +505,53 @@ void DevicePropertiesDialog::populateDeviceInformation() {
status_text += "</qt>";
base->labelDiskStatus->setText(status_text);
- // Update mount/unmount button status
+ // Update action button status
base->buttonDiskMount->setEnabled(false);
base->buttonDiskUnmount->setEnabled(false);
base->buttonDiskUnlock->setEnabled(false);
base->buttonDiskLock->setEnabled(false);
+ base->buttonDiskEject->setEnabled(false);
+ base->buttonDiskSafeRemove->setEnabled(false);
base->buttonDiskMount->setHidden(true);
base->buttonDiskUnmount->setHidden(true);
base->buttonDiskUnlock->setHidden(true);
base->buttonDiskLock->setHidden(true);
- if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Mountable)) {
- base->groupDiskActions->show();
+ base->buttonDiskEject->setHidden(true);
+ base->buttonDiskSafeRemove->setHidden(true);
+ bool showGroup = false;
+ if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Mountable))
+ {
base->buttonDiskMount->setEnabled((sdevice->mountPath() == ""));
base->buttonDiskUnmount->setEnabled((sdevice->mountPath() != ""));
base->buttonDiskMount->setHidden(false);
base->buttonDiskUnmount->setHidden(false);
+ showGroup = true;
}
- else if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) {
+ else if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted))
+ {
base->buttonDiskUnlock->setEnabled(!sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt));
base->buttonDiskLock->setEnabled(sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt));
base->buttonDiskUnlock->setHidden(false);
base->buttonDiskLock->setHidden(false);
+ showGroup = true;
}
- else {
+ if (isMonitoredDevice(sdevice) &&
+ (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable) ||
+ sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hotpluggable)))
+ {
+ base->buttonDiskEject->setEnabled(true);
+ base->buttonDiskSafeRemove->setEnabled(true);
+ base->buttonDiskEject->setHidden(false);
+ base->buttonDiskSafeRemove->setHidden(false);
+ showGroup = true;
+ }
+ if (showGroup)
+ {
+ base->groupDiskActions->show();
+ }
+ else
+ {
base->groupDiskActions->hide();
}
}
@@ -908,111 +973,74 @@ void DevicePropertiesDialog::setHibernationMethod(int value) {
void DevicePropertiesDialog::mountDisk() {
TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
- TQString qerror;
- TQString diskLabel = sdevice->diskLabel();
- if (diskLabel.isNull()) {
- diskLabel = i18n("%1 Removable Device").arg(sdevice->deviceFriendlySize());
- }
- TDEStorageMountOptions mountOptions;
- TQStringVariantMap mountResult = sdevice->mountDevice(diskLabel, mountOptions);
- TQString mountedPath = mountResult.contains("mountPath") ? mountResult["mountPath"].toString() : TQString::null;
- if (mountedPath.isEmpty()) {
- qerror = i18n("<qt>Unable to mount this device.<p>Potential reasons include:<br>Improper device and/or user privilege level<br>Corrupt data on storage device");
- TQString errStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : TQString::null;
- if (!errStr.isEmpty()) {
- qerror.append(i18n("<p>Technical details:<br>").append(errStr));
- }
- qerror.append("</qt>");
- }
- else {
- qerror = "";
- }
-
- if (qerror != "") KMessageBox::error(this, qerror, i18n("Mount Failed"));
- populateDeviceInformation();
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-m" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
+ {
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
+ }
}
void DevicePropertiesDialog::unmountDisk() {
TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
- TQString qerror;
- TQStringVariantMap unmountResult = sdevice->unmountDevice();
- if (unmountResult["result"].toBool() == false) {
- // Unmount failed!
- qerror = "<qt>" + i18n("<b>The device could not be unmounted.</b>");
- TQString errStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : TQString::null;
- if (!errStr.isEmpty()) {
- qerror.append(i18n("<p>Technical details:<br>").append(errStr));
- }
- qerror.append("</qt>");
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-u" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
+ {
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
-
- if (qerror != "") KMessageBox::error(this, qerror, i18n("Unmount Failed"));
-
- populateDeviceInformation();
}
void DevicePropertiesDialog::unlockDisk() {
TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
- if (!m_passDlg)
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-k" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- m_passDlg = new PasswordDlg();
- connect(m_passDlg, TQT_SIGNAL(user1Clicked()), this, TQT_SLOT(doUnlockDisk()));
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- m_passDlg->setDevice(sdevice->deviceNode());
- m_passDlg->clearPassword();
- m_passDlg->show();
}
-void DevicePropertiesDialog::doUnlockDisk() {
+void DevicePropertiesDialog::lockDisk() {
TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
- // Use DCOP call to unlock the disk to make sure the status and mime type of the underlying medium
- // is correctly updated throughout TDE
- DCOPRef mediamanager("kded", "mediamanager");
- DCOPReply reply = mediamanager.call("unlockByNode", sdevice->deviceNode(), m_passDlg->getPassword());
- TQStringVariantMap unlockResult;
- if (reply.isValid()) {
- reply.get(unlockResult);
- }
- if (!unlockResult.contains("result") || !unlockResult["result"].toBool())
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-l" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- TQString errStr = unlockResult.contains("errStr") ? unlockResult["errStr"].toString() : TQString::null;
- if (errStr.isEmpty())
- {
- errStr = i18n("<qt>Unable to unlock this device.<p>Potential reasons include:<br>Wrong password "
- "and/or user privilege level.<br>Corrupt data on storage device.</qt>");
- }
- KMessageBox::error(this, errStr, i18n("Unlock Failed"));
- m_passDlg->clearPassword();
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- else {
- m_passDlg->hide();
- }
-
- populateDeviceInformation();
}
-void DevicePropertiesDialog::lockDisk() {
+void DevicePropertiesDialog::ejectDisk() {
TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
- // Use DCOP call to lock the disk to make sure the status and mime type of the underlying medium
- // is correctly updated throughout TDE
- DCOPRef mediamanager("kded", "mediamanager");
- DCOPReply reply = mediamanager.call("lockByNode", sdevice->deviceNode());
- TQStringVariantMap lockResult;
- if (reply.isValid()) {
- reply.get(lockResult);
- }
- if (!lockResult.contains("result") || lockResult["result"].toBool() == false) {
- // Lock failed!
- TQString errStr = lockResult.contains("errStr") ? lockResult["errStr"].toString() : i18n("Unable to lock the device.");
- KMessageBox::error(this, "<qt>" + errStr + "</qt>", i18n("Lock Failed"));
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-e" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
+ {
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
+}
- populateDeviceInformation();
+void DevicePropertiesDialog::safeRemoveDisk() {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
+
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-s" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
+ {
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
+ }
}
void DevicePropertiesDialog::cryptLUKSAddKey() {
diff --git a/kcontrol/hwmanager/devicepropsdlg.h b/kcontrol/hwmanager/devicepropsdlg.h
index 50fd1cac1..aabda590f 100644
--- a/kcontrol/hwmanager/devicepropsdlg.h
+++ b/kcontrol/hwmanager/devicepropsdlg.h
@@ -191,8 +191,9 @@ private slots:
void mountDisk();
void unmountDisk();
void unlockDisk();
- void doUnlockDisk();
void lockDisk();
+ void ejectDisk();
+ void safeRemoveDisk();
void cryptLUKSAddKey();
void cryptLUKSDelKey();
@@ -205,9 +206,10 @@ private slots:
void processLockouts();
private:
+ static bool isMonitoredDevice(TDEStorageDevice *sdevice);
+
TDEGenericDevice* m_device;
DevicePropertiesDialogBase* base;
- PasswordDlg *m_passDlg;
TQGridLayout* m_sensorDataGrid;
SensorDisplayWidgetList m_sensorDataGridWidgets;
diff --git a/kcontrol/hwmanager/devicepropsdlgbase.ui b/kcontrol/hwmanager/devicepropsdlgbase.ui
index b5ffe362d..e7d7cee22 100644
--- a/kcontrol/hwmanager/devicepropsdlgbase.ui
+++ b/kcontrol/hwmanager/devicepropsdlgbase.ui
@@ -371,6 +371,22 @@
<string>Lock</string>
</property>
</widget>
+ <widget class="KPushButton" row="1" column="0" colspan="1">
+ <property name="name">
+ <cstring>buttonDiskEject</cstring>
+ </property>
+ <property name="text">
+ <string>Eject</string>
+ </property>
+ </widget>
+ <widget class="KPushButton" row="1" column="1" colspan="1">
+ <property name="name">
+ <cstring>buttonDiskSafeRemove</cstring>
+ </property>
+ <property name="text">
+ <string>Safe Remove</string>
+ </property>
+ </widget>
</grid>
</widget>
<spacer row="8" column="0">
diff --git a/kcontrol/hwmanager/hwdevicetray.cpp b/kcontrol/hwmanager/hwdevicetray.cpp
index 354991699..509fe2835 100644
--- a/kcontrol/hwmanager/hwdevicetray.cpp
+++ b/kcontrol/hwmanager/hwdevicetray.cpp
@@ -33,6 +33,7 @@
#include <kdebug.h>
#include <khelpmenu.h>
#include <kiconloader.h>
+#include "kprocess.h"
#include <tdelocale.h>
#include <tdepopupmenu.h>
#include <kstdaction.h>
@@ -45,6 +46,7 @@
#include "passworddlg.h"
#include <dcopclient.h>
+#include <dcopref.h>
#include <cstdlib>
#include <unistd.h>
@@ -53,7 +55,7 @@
#include "hwdevicetray.h"
HwDeviceSystemTray::HwDeviceSystemTray(TQWidget* parent, const char *name)
- : KSystemTray(parent, name), m_passDlg(NULL)
+ : KSystemTray(parent, name)
{
// Create notifier
m_hardwareNotifierContainer = new TDEPassivePopupStackContainer();
@@ -86,6 +88,7 @@ HwDeviceSystemTray::HwDeviceSystemTray(TQWidget* parent, const char *name)
new TDEActionMenu(i18n("Unlock"), SmallIcon("decrypted", TQIconSet::Automatic), actionCollection(), "unlock_menu");
new TDEActionMenu(i18n("Lock"), SmallIcon("encrypted", TQIconSet::Automatic), actionCollection(), "lock_menu");
new TDEActionMenu(i18n("Eject"), SmallIcon("player_eject", TQIconSet::Automatic), actionCollection(), "eject_menu");
+ new TDEActionMenu(i18n("Safe remove"), SmallIcon("player_safe_removal", TQIconSet::Automatic), actionCollection(), "safe_remove_menu");
new TDEActionMenu(i18n("Properties"), SmallIcon("edit", TQIconSet::Automatic), actionCollection(), "properties_menu");
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
@@ -98,10 +101,6 @@ HwDeviceSystemTray::HwDeviceSystemTray(TQWidget* parent, const char *name)
HwDeviceSystemTray::~HwDeviceSystemTray()
{
delete m_hardwareNotifierContainer;
- if (m_passDlg)
- {
- delete m_passDlg;
- }
}
/*!
@@ -155,50 +154,45 @@ void HwDeviceSystemTray::mousePressEvent(TQMouseEvent* e) {
KSystemTray::mousePressEvent(e);
}
-bool HwDeviceSystemTray::isMonitoredDevice(TDEStorageDevice* sdevice) {
+bool HwDeviceSystemTray::isMonitoredDevice(TDEStorageDevice* sdevice)
+{
// Type selection logic largely duplicated from the media manager tdeioslave
- if ((sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) ||
- sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) ||
- sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) &&
- !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden) &&
- (sdevice->isDiskOfType(TDEDiskDeviceType::HDD) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDROM) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDR) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDRW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDMO) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRWW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDROM) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDRAM) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDR) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDRW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDRDL) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDRWDL) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSR) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRDL) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRWDL) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::BDROM) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::BDR) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::BDRW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDROM) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDR) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDRW) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::CDVideo) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::DVDVideo) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::BDVideo) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::Floppy) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::Zip) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::Jaz) ||
- sdevice->isDiskOfType(TDEDiskDeviceType::Camera)))
- {
- return true;
- }
- else {
- return false;
- }
+ return ((sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) ||
+ sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) ||
+ sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) &&
+ !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden) &&
+ (sdevice->isDiskOfType(TDEDiskDeviceType::HDD) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDMO) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRWW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRAM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDRWDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRWDL) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDROM) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDR) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDRW) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::CDVideo) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::DVDVideo) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::BDVideo) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Floppy) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Zip) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Jaz) ||
+ sdevice->isDiskOfType(TDEDiskDeviceType::Camera)));
}
void HwDeviceSystemTray::contextMenuAboutToShow(TDEPopupMenu* menu) {
@@ -235,6 +229,7 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
TDEActionMenu *unlockDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("unlock_menu"));
TDEActionMenu *lockDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("lock_menu"));
TDEActionMenu *ejectDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("eject_menu"));
+ TDEActionMenu *safeRemoveDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("safe_remove_menu"));
TDEActionMenu *propertiesDeviceActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("properties_menu"));
openDeviceActionMenu->popupMenu()->clear();
@@ -243,6 +238,7 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
unlockDeviceActionMenu->popupMenu()->clear();
lockDeviceActionMenu->popupMenu()->clear();
ejectDeviceActionMenu->popupMenu()->clear();
+ safeRemoveDeviceActionMenu->popupMenu()->clear();
propertiesDeviceActionMenu->popupMenu()->clear();
m_openMenuIndexMap.clear();
@@ -251,6 +247,7 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
m_unlockMenuIndexMap.clear();
m_lockMenuIndexMap.clear();
m_ejectMenuIndexMap.clear();
+ m_safeRemoveMenuIndexMap.clear();
m_propertiesMenuIndexMap.clear();
// Find all storage devices and add them to the popup menus
@@ -260,6 +257,7 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
int lastUnlockIndex = -1;
int lastLockIndex = -1;
int lastEjectIndex = -1;
+ int lastSafeRemoveIndex = -1;
int lastPropertiesIndex = -1;
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
@@ -348,6 +346,15 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
{
m_ejectMenuIndexMap[lastEjectIndex] = sdevice->systemPath();
}
+
+ lastSafeRemoveIndex = safeRemoveDeviceActionMenu->popupMenu()->insertItem(hwdevice->icon(TDEIcon::SizeSmall),
+ i18n("%1 (%2)").arg(friendlyName, sdevice->deviceNode()));
+ safeRemoveDeviceActionMenu->popupMenu()->connectItem(lastSafeRemoveIndex, this, TQT_SLOT(slotSafeRemoveDevice(int)));
+ m_safeRemoveMenuIndexMap[lastSafeRemoveIndex] = sdevice->diskUUID();
+ if (m_safeRemoveMenuIndexMap[lastSafeRemoveIndex] == "")
+ {
+ m_safeRemoveMenuIndexMap[lastSafeRemoveIndex] = sdevice->systemPath();
+ }
}
lastPropertiesIndex = propertiesDeviceActionMenu->popupMenu()->insertItem(hwdevice->icon(TDEIcon::SizeSmall),
@@ -367,6 +374,7 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
unlockDeviceActionMenu->setEnabled(lastUnlockIndex != -1);
lockDeviceActionMenu->setEnabled(lastLockIndex != -1);
ejectDeviceActionMenu->setEnabled(lastEjectIndex != -1);
+ safeRemoveDeviceActionMenu->setEnabled(lastSafeRemoveIndex != -1);
propertiesDeviceActionMenu->setEnabled(lastPropertiesIndex != -1);
if (lastOpenIndex != -1)
@@ -393,6 +401,10 @@ void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
{
ejectDeviceActionMenu->plug(menu);
}
+ if (lastSafeRemoveIndex != -1)
+ {
+ safeRemoveDeviceActionMenu->plug(menu);
+ }
if (lastPropertiesIndex != -1)
{
propertiesDeviceActionMenu->plug(menu);
@@ -439,16 +451,13 @@ void HwDeviceSystemTray::slotMountDevice(int parameter)
{
if (sdevice->mountPath().isEmpty())
{
- TQStringVariantMap mountResult = sdevice->mountDevice();
- if (mountResult["result"].toBool() == false)
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-m" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- TQString errStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : TQString::null;
- TQString retcodeStr = mountResult.contains("retCode") ? mountResult["retCode"].toString() : i18n("not available");
- TQString qerror = i18n("<p>Technical details:<br>") + (!errStr.isEmpty() ? errStr : i18n("unknown"));
- KMessageBox::error(0, i18n("<qt><b>Unable to mount the device.</b>") + qerror + " (error code " +
- retcodeStr + ").</qt>", i18n("Mount failed"));
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- return;
}
}
}
@@ -469,16 +478,13 @@ void HwDeviceSystemTray::slotUnmountDevice(int parameter)
{
if (!sdevice->mountPath().isEmpty())
{
- TQStringVariantMap unmountResult = sdevice->unmountDevice();
- if (unmountResult["result"].toBool() == false)
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-u" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- TQString errStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : TQString::null;
- TQString retcodeStr = unmountResult.contains("retCode") ? unmountResult["retCode"].toString() : i18n("not available");
- TQString qerror = i18n("<p>Technical details:<br>") + (!errStr.isEmpty() ? errStr : i18n("unknown"));
- KMessageBox::error(0, i18n("<qt><b>Unable to unmount the device.</b>") + qerror + " (error code " +
- retcodeStr + ").</qt>", i18n("Unmount failed"));
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- return;
}
}
}
@@ -497,82 +503,69 @@ void HwDeviceSystemTray::slotUnlockDevice(int parameter)
TDEStorageDevice *sdevice = static_cast<TDEStorageDevice*>(hwdevice);
if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid))
{
- if (!m_passDlg)
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-k" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- m_passDlg = new PasswordDlg();
- connect(m_passDlg, TQT_SIGNAL(user1Clicked()), this, TQT_SLOT(doUnlockDisk()));
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- m_passDlg->setDevice(sdevice->deviceNode());
- m_passDlg->index = parameter;
- m_passDlg->clearPassword();
- m_passDlg->show();
}
}
}
}
-void HwDeviceSystemTray::doUnlockDisk()
+void HwDeviceSystemTray::slotLockDevice(int parameter)
{
- TQString uuid = m_unlockMenuIndexMap[m_passDlg->index];
+ TDEGenericDevice *hwdevice;
+ TQString uuid = m_lockMenuIndexMap[parameter];
if (!uuid.isEmpty())
{
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
TDEGenericHardwareList diskDeviceList = hwdevices->listByDeviceClass(TDEGenericDeviceType::Disk);
- for (TDEGenericDevice *hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next())
- {
+ for (hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next()) {
TDEStorageDevice *sdevice = static_cast<TDEStorageDevice*>(hwdevice);
if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid))
{
- TQStringVariantMap unlockResult = sdevice->unlockDevice(m_passDlg->getPassword());
- if (unlockResult["result"].toBool() == false)
- {
- // Unlock failed!
- TQString errStr = unlockResult.contains("errStr") ? unlockResult["errStr"].toString() : TQString::null;
- TQString retcodeStr = unlockResult.contains("retCode") ? unlockResult["retCode"].toString() : i18n("not available");
- TQString qerror = i18n("<p>Technical details:<br>") + (!errStr.isEmpty() ? errStr : i18n("unknown"));
- KMessageBox::error(0, i18n("<qt><b>Unable to unlock the device.</b>") + qerror + " (error code " +
- retcodeStr + ").</qt>", i18n("Unlock failed"));
- m_passDlg->clearPassword();
- }
- else
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-l" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- m_passDlg->hide();
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- }
+ }
}
}
}
-void HwDeviceSystemTray::slotLockDevice(int parameter)
+void HwDeviceSystemTray::slotEjectDevice(int parameter)
{
- TDEGenericDevice *hwdevice;
- TQString uuid = m_lockMenuIndexMap[parameter];
+ TQString uuid = m_ejectMenuIndexMap[parameter];
if (!uuid.isEmpty())
{
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
TDEGenericHardwareList diskDeviceList = hwdevices->listByDeviceClass(TDEGenericDeviceType::Disk);
- for (hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next()) {
+ for (TDEGenericDevice *hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next())
+ {
TDEStorageDevice *sdevice = static_cast<TDEStorageDevice*>(hwdevice);
if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid))
{
- TQStringVariantMap lockResult = sdevice->lockDevice();
- if (lockResult["result"].toBool() == false)
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-e" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- // Lock failed!
- TQString errStr = lockResult.contains("errStr") ? lockResult["errStr"].toString() : TQString::null;
- TQString retcodeStr = lockResult.contains("retCode") ? lockResult["retCode"].toString() : i18n("not available");
- TQString qerror = i18n("<p>Technical details:<br>") + (!errStr.isEmpty() ? errStr : i18n("unknown"));
- KMessageBox::error(0, i18n("<qt><b>Unable to lock the device.</b>") + qerror + " (error code " +
- retcodeStr + ").</qt>", i18n("Lock failed"));
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
}
}
}
}
-void HwDeviceSystemTray::slotEjectDevice(int parameter)
+void HwDeviceSystemTray::slotSafeRemoveDevice(int parameter)
{
- TQString uuid = m_ejectMenuIndexMap[parameter];
+ TQString uuid = m_safeRemoveMenuIndexMap[parameter];
if (!uuid.isEmpty())
{
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
@@ -582,17 +575,13 @@ void HwDeviceSystemTray::slotEjectDevice(int parameter)
TDEStorageDevice *sdevice = static_cast<TDEStorageDevice*>(hwdevice);
if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid))
{
- TQStringVariantMap ejectResult = sdevice->ejectDrive();
- if (ejectResult["result"].toBool() == false)
+ TDEProcess proc;
+ proc << "tdeio_media_mounthelper" << "-s" << sdevice->deviceNode();
+ if (!proc.start(TDEProcess::DontCare))
{
- // Eject failed!
- TQString errStr = ejectResult.contains("errStr") ? ejectResult["errStr"].toString() : TQString::null;
- TQString retcodeStr = ejectResult.contains("retCode") ? ejectResult["retCode"].toString() : i18n("not available");
- TQString qerror = i18n("<p>Technical details:<br>") + (!errStr.isEmpty() ? errStr : i18n("unknown"));
- KMessageBox::error(0, i18n("<qt><b>Unable to eject the device.</b>") + qerror + " (error code " +
- retcodeStr + ").</qt>", i18n("Eject failed"));
+ KMessageBox::error(this, i18n("Could not start tdeio_media_mounthelper process."),
+ i18n("Device monitor"));
}
- return;
}
}
}
diff --git a/kcontrol/hwmanager/hwdevicetray.h b/kcontrol/hwmanager/hwdevicetray.h
index 1300ac6ec..c0465f2bf 100644
--- a/kcontrol/hwmanager/hwdevicetray.h
+++ b/kcontrol/hwmanager/hwdevicetray.h
@@ -61,6 +61,7 @@ protected slots:
void slotUnlockDevice(int parameter);
void slotLockDevice(int parameter);
void slotEjectDevice(int parameter);
+ void slotSafeRemoveDevice(int parameter);
void slotPropertiesDevice(int parameter);
protected:
@@ -74,11 +75,10 @@ private slots:
void deviceRemoved(TDEGenericDevice*);
void deviceChanged(TDEGenericDevice*);
void devicePopupClicked(KPassivePopup*, TQPoint, TQString);
- void doUnlockDisk();
void doDiskNotifications(bool scanOnly);
private:
- bool isMonitoredDevice(TDEStorageDevice* sdevice);
+ static bool isMonitoredDevice(TDEStorageDevice *sdevice);
private:
void populateMenu(TDEPopupMenu* menu);
@@ -96,10 +96,10 @@ private:
TQStringMap m_unlockMenuIndexMap;
TQStringMap m_lockMenuIndexMap;
TQStringMap m_ejectMenuIndexMap;
+ TQStringMap m_safeRemoveMenuIndexMap;
TQStringMap m_propertiesMenuIndexMap;
TDEPopupMenu* m_menu;
KSimpleConfig *r_config;
- PasswordDlg *m_passDlg;
struct KnownDiskDeviceInfo
{
diff --git a/kcontrol/hwmanager/hwmanager.cpp b/kcontrol/hwmanager/hwmanager.cpp
index ecfed649a..265901003 100644
--- a/kcontrol/hwmanager/hwmanager.cpp
+++ b/kcontrol/hwmanager/hwmanager.cpp
@@ -23,6 +23,7 @@
#include <tqlayout.h>
#include <tqlineedit.h>
#include <tqpushbutton.h>
+#include <tqtimer.h>
#include <dcopclient.h>
@@ -106,6 +107,7 @@ TDEHWManager::TDEHWManager(TQWidget *parent, const char *name, const TQStringLis
TDEHWManager::~TDEHWManager()
{
+ TDEGlobal::hardwareDevices()->setTriggerlessHardwareUpdatesEnabled(false);
delete config;
delete systemconfig;
}
@@ -156,7 +158,7 @@ void TDEHWManager::populateTreeView()
cdevice->enableCardMonitoring(true);
cdevice->enablePINEntryCallbacks(true);
}
- DeviceIconItem* item = new DeviceIconItem(base->deviceTree, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
+ DeviceIconItem* item = new DeviceIconItem(base->deviceTree, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice->uniqueID());
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
base->deviceTree->ensureItemVisible(item);
base->deviceTree->setSelected(item, true);
@@ -168,7 +170,7 @@ void TDEHWManager::populateTreeView()
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
for (int i=0;i<=TDEGenericDeviceType::Last;i++) {
if (i != TDEGenericDeviceType::Root) {
- DeviceIconItem* rootitem = new DeviceIconItem(base->deviceTree, hwdevices->getFriendlyDeviceTypeStringFromType((TDEGenericDeviceType::TDEGenericDeviceType)i), hwdevices->getDeviceTypeIconFromType((TDEGenericDeviceType::TDEGenericDeviceType)i, base->deviceTree->iconSize()), 0);
+ DeviceIconItem* rootitem = new DeviceIconItem(base->deviceTree, hwdevices->getFriendlyDeviceTypeStringFromType((TDEGenericDeviceType::TDEGenericDeviceType)i), hwdevices->getDeviceTypeIconFromType((TDEGenericDeviceType::TDEGenericDeviceType)i, base->deviceTree->iconSize()), TQString::null);
TDEGenericDevice *hwdevice;
TDEGenericHardwareList hwlist = hwdevices->listByDeviceClass((TDEGenericDeviceType::TDEGenericDeviceType)i);
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
@@ -178,7 +180,7 @@ void TDEHWManager::populateTreeView()
cdevice->enableCardMonitoring(true);
cdevice->enablePINEntryCallbacks(true);
}
- DeviceIconItem* item = new DeviceIconItem(rootitem, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
+ DeviceIconItem* item = new DeviceIconItem(rootitem, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice->uniqueID());
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
base->deviceTree->ensureItemVisible(item);
base->deviceTree->setSelected(item, true);
@@ -202,7 +204,7 @@ void TDEHWManager::populateTreeViewLeaf(DeviceIconItem *parent, bool show_by_con
cdevice->enablePINEntryCallbacks(true);
}
if (hwdevice->parentDevice() == parent->device()) {
- DeviceIconItem* item = new DeviceIconItem(parent, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
+ DeviceIconItem* item = new DeviceIconItem(parent, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice->uniqueID());
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
base->deviceTree->ensureItemVisible(item);
base->deviceTree->setSelected(item, true);
diff --git a/kcontrol/konsole/kcmkonsole.cpp b/kcontrol/konsole/kcmkonsole.cpp
index ace7409a7..7dfb77dae 100644
--- a/kcontrol/konsole/kcmkonsole.cpp
+++ b/kcontrol/konsole/kcmkonsole.cpp
@@ -74,6 +74,7 @@ KCMKonsole::KCMKonsole(TQWidget * parent, const char *name, const TQStringList&)
connect(dialog->tabsCycleWheelCB,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() ));
connect(dialog->menuAcceleratorsCB,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() ));
connect(dialog->metaAsAltModeCB,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() ));
+ connect(dialog->realTransparency,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() ));
connect(dialog->silence_secondsSB,TQT_SIGNAL(valueChanged(int)), TQT_SLOT( changed() ));
connect(dialog->word_connectorLE,TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT( changed() ));
connect(dialog->SchemaEditor1, TQT_SIGNAL(changed()), TQT_SLOT( changed() ));
@@ -112,6 +113,8 @@ void KCMKonsole::load(bool useDefaults)
dialog->silence_secondsSB->setValue(config.readUnsignedNumEntry( "SilenceSeconds", 10 ));
dialog->word_connectorLE->setText(config.readEntry("wordseps",":@-./_~"));
dialog->metaAsAltModeCB->setChecked(config.readBoolEntry("metaAsAltMode",false));
+ realTransparencyOrig = config.readBoolEntry("RealTransparency",false);
+ dialog->realTransparency->setChecked(realTransparencyOrig);
dialog->SchemaEditor1->setSchema(config.readEntry("schema"));
@@ -153,6 +156,8 @@ void KCMKonsole::save()
config.writeEntry("SilenceSeconds" , dialog->silence_secondsSB->value());
config.writeEntry("wordseps", dialog->word_connectorLE->text());
config.writeEntry("metaAsAltMode", dialog->metaAsAltModeCB->isChecked());
+ bool realTransparencyNew = dialog->realTransparency->isChecked();
+ config.writeEntry("RealTransparency", realTransparencyNew);
config.writeEntry("schema", dialog->SchemaEditor1->schema());
@@ -174,6 +179,12 @@ void KCMKonsole::save()
"settings of existing Konsole sessions."));
}
+ if (realTransparencyOrig != realTransparencyNew)
+ {
+ KMessageBox::information(this, i18n("The real transparency setting will only affect "
+ "newly started Konsole sessions.\n"));
+ }
+
if (bidiNew && !bidiOrig)
{
KMessageBox::information(this, i18n("You have chosen to enable "
diff --git a/kcontrol/konsole/kcmkonsole.h b/kcontrol/konsole/kcmkonsole.h
index 561cb4502..abdd4cc76 100644
--- a/kcontrol/konsole/kcmkonsole.h
+++ b/kcontrol/konsole/kcmkonsole.h
@@ -40,6 +40,7 @@ public:
private:
KCMKonsoleDialog *dialog;
bool xonXoffOrig;
+ bool realTransparencyOrig;
bool bidiOrig;
};
diff --git a/kcontrol/konsole/kcmkonsoledialog.ui b/kcontrol/konsole/kcmkonsoledialog.ui
index fea9ad139..a94a1b48b 100644
--- a/kcontrol/konsole/kcmkonsoledialog.ui
+++ b/kcontrol/konsole/kcmkonsoledialog.ui
@@ -174,7 +174,15 @@
<string>Handle Meta &amp;key as Alt Key</string>
</property>
</widget>
- <widget class="TQLabel" row="13" column="0" rowspan="1" colspan="2">
+ <widget class="TQCheckBox" row="13" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>realTransparency</cstring>
+ </property>
+ <property name="text">
+ <string>Use &amp;real transparency</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="14" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>TextLabel1_4</cstring>
</property>
@@ -193,7 +201,7 @@
<cstring>line_spacingSB</cstring>
</property>
</widget>
- <spacer row="12" column="3">
+ <spacer row="13" column="3">
<property name="name">
<cstring>Spacer3</cstring>
</property>
@@ -210,7 +218,7 @@
</size>
</property>
</spacer>
- <widget class="KIntNumInput" row="13" column="2">
+ <widget class="KIntNumInput" row="14" column="2">
<property name="name">
<cstring>line_spacingSB</cstring>
</property>
@@ -246,7 +254,7 @@
</size>
</property>
</spacer>
- <widget class="TQLabel" row="14" column="0" rowspan="1" colspan="2">
+ <widget class="TQLabel" row="15" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>SilenceLabel</cstring>
</property>
@@ -265,7 +273,7 @@
<cstring>silence_secondsSB</cstring>
</property>
</widget>
- <widget class="KIntNumInput" row="14" column="2">
+ <widget class="KIntNumInput" row="15" column="2">
<property name="name">
<cstring>silence_secondsSB</cstring>
</property>
@@ -284,7 +292,7 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="TQLabel" row="15" column="0" colspan="3">
+ <widget class="TQLabel" row="16" column="0" colspan="3">
<property name="name">
<cstring>TextLabel1_3</cstring>
</property>
@@ -295,7 +303,7 @@
<cstring>word_connectorLE</cstring>
</property>
</widget>
- <widget class="TQLineEdit" row="16" column="0" colspan="3">
+ <widget class="TQLineEdit" row="17" column="0" colspan="3">
<property name="name">
<cstring>word_connectorLE</cstring>
</property>
diff --git a/kcontrol/screensaver/scrnsave.cpp b/kcontrol/screensaver/scrnsave.cpp
index b66f7bbd6..cd30fa1a1 100644
--- a/kcontrol/screensaver/scrnsave.cpp
+++ b/kcontrol/screensaver/scrnsave.cpp
@@ -523,28 +523,39 @@ void KScreenSaver::findSavers()
i++, mNumLoaded++ ) {
TQString file = mSaverFileList[mNumLoaded];
SaverConfig *saver = new SaverConfig;
- if (saver->read(file)) {
- TQString saverexec = TQString("%1/%2").arg(XSCREENSAVER_HACKS_DIR).arg(saver->exec());
+ bool saverFound = false;
+ if (saver->read(file))
+ {
// find the xscreensaver executable
//work around a TDEStandardDirs::findExe() "feature" where it looks in $TDEDIR/bin first no matter what and sometimes finds the wrong executable
TQFileInfo checkExe;
- checkExe.setFile(saverexec);
- if (checkExe.exists() && checkExe.isExecutable() && checkExe.isFile()) {
- mSaverList.append(saver);
+ TQStringList saverPaths = TQStringList::split(':', XSCREENSAVER_HACKS_DIRS);
+ for (TQStringList::ConstIterator it = saverPaths.begin(); it != saverPaths.end(); ++it)
+ {
+ checkExe.setFile((*it) + "/" + saver->exec());
+ if (checkExe.exists() && checkExe.isExecutable() && checkExe.isFile())
+ {
+ mSaverList.append(saver);
+ saverFound = true;
+ break;
+ }
}
- else {
+
+ if (!saverFound)
+ {
// Executable not present in XScreenSaver directory!
// Try standard paths
- if (TDEStandardDirs::findExe(saver->exec()) != TQString::null) {
+ if (TDEStandardDirs::findExe(saver->exec()) != TQString::null)
+ {
mSaverList.append(saver);
- }
- else {
- delete saver;
+ saverFound = true;
}
}
}
- else {
- delete saver;
+
+ if (!saverFound)
+ {
+ delete saver;
}
}
diff --git a/kdesktop/lock/lockprocess.cpp b/kdesktop/lock/lockprocess.cpp
index b2db4a5cf..96955b6de 100644
--- a/kdesktop/lock/lockprocess.cpp
+++ b/kdesktop/lock/lockprocess.cpp
@@ -2458,13 +2458,7 @@ static int run_vkbd = -1;
void LockProcess::showVkbd()
{
if( run_vkbd == - 1 ) {
-#ifdef WITH_HAL
- int status = system( "hal-find-by-property --key system.formfactor.subtype --string tabletpc" );
-// status = 0; // enable for testing
- run_vkbd = ( WIFEXITED( status ) && WEXITSTATUS( status ) == 0 && !TDEStandardDirs::findExe( "xvkbd" ).isEmpty()) ? 1 : 0;
-#else // WITH_HAL
run_vkbd = (!TDEStandardDirs::findExe( "xvkbd" ).isEmpty());
-#endif // WITH_HAL
}
if( run_vkbd ) {
mVkbdWindows.clear();
diff --git a/kicker/applets/media/mediumbutton.cpp b/kicker/applets/media/mediumbutton.cpp
index ce61cfbd6..b87f73ab1 100644
--- a/kicker/applets/media/mediumbutton.cpp
+++ b/kicker/applets/media/mediumbutton.cpp
@@ -122,8 +122,7 @@ void MediumButton::initPopup()
void MediumButton::refreshType()
{
- KMimeType::Ptr mime = mFileItem.determineMimeType();
- TQToolTip::add(this, mime->comment());
+ TQToolTip::add(this, mFileItem.text());
setIcon(mFileItem.iconName());
}
diff --git a/kicker/kicker/ui/CMakeLists.txt b/kicker/kicker/ui/CMakeLists.txt
index 315ec73bc..c773cfe7b 100644
--- a/kicker/kicker/ui/CMakeLists.txt
+++ b/kicker/kicker/ui/CMakeLists.txt
@@ -20,7 +20,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/kicker/kicker/buttons
${CMAKE_SOURCE_DIR}/tdmlib
${CMAKE_SOURCE_DIR}/libkonq
- ${DBUS_TQT_INCLUDE_DIRS}
${TDE_INCLUDE_DIR}
${TQT_INCLUDE_DIRS}
)
@@ -56,5 +55,5 @@ set( ${target}_SRCS
tde_add_library( ${target} STATIC_PIC AUTOMOC
SOURCES ${${target}_SRCS}
DEPENDENCIES kicker_core-static
- LINK dmctl-static kickoffsearch_interfaces-shared ${TDEHW_LIBRARIES} ${DBUS_TQT_LIBRARIES} ${HAL_LIBRARIES}
+ LINK dmctl-static kickoffsearch_interfaces-shared ${TDEHW_LIBRARIES}
)
diff --git a/kicker/kicker/ui/k_new_mnu.cpp b/kicker/kicker/ui/k_new_mnu.cpp
index cafe65bb8..712868adb 100644
--- a/kicker/kicker/ui/k_new_mnu.cpp
+++ b/kicker/kicker/ui/k_new_mnu.cpp
@@ -116,16 +116,6 @@
#include "config.h"
-#ifdef COMPILE_HALBACKEND
-#ifndef NO_QT3_DBUS_SUPPORT
-/* We acknowledge the the dbus API is unstable */
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include <dbus/connection.h>
-#endif // NO_QT3_DBUS_SUPPORT
-
-#include <hal/libhal.h>
-#endif // COMPILE_HALBACKEND
-
#ifdef __NetBSD__
#define statfs statvfs
#endif
@@ -447,38 +437,6 @@ KMenu::KMenu()
search_tab_top_left.load( locate("data", "kicker/pics/search-tab-top-left.png" ) );
search_tab_top_right.load( locate("data", "kicker/pics/search-tab-top-right.png" ) );
search_tab_top_center.load( locate("data", "kicker/pics/search-tab-top-center.png" ) );
-
-#ifdef COMPILE_HALBACKEND
- m_halCtx = NULL;
- m_halCtx = libhal_ctx_new();
-
- DBusError error;
- dbus_error_init(&error);
- m_dbusConn = dbus_connection_open_private(DBUS_SYSTEM_BUS, &error);
- if (!m_dbusConn) {
- dbus_error_free(&error);
- libhal_ctx_free(m_halCtx);
- m_halCtx = NULL;
- } else {
- dbus_bus_register(m_dbusConn, &error);
- if (dbus_error_is_set(&error)) {
- dbus_error_free(&error);
- libhal_ctx_free(m_halCtx);
- m_dbusConn = NULL;
- m_halCtx = NULL;
- } else {
- libhal_ctx_set_dbus_connection(m_halCtx, m_dbusConn);
- if (!libhal_ctx_init(m_halCtx, &error)) {
- if (dbus_error_is_set(&error)) {
- dbus_error_free(&error);
- }
- libhal_ctx_free(m_halCtx);
- m_dbusConn = NULL;
- m_halCtx = NULL;
- }
- }
- }
-#endif
}
void KMenu::setupUi()
@@ -501,15 +459,6 @@ KMenu::~KMenu()
clearSubmenus();
delete m_filterData;
-
-#ifdef COMPILE_HALBACKEND
- if (m_halCtx) {
- DBusError error;
- dbus_error_init(&error);
- libhal_ctx_shutdown(m_halCtx, &error);
- libhal_ctx_free(m_halCtx);
- }
-#endif
}
bool KMenu::eventFilter ( TQObject * receiver, TQEvent* e)
@@ -1378,10 +1327,7 @@ void KMenu::insertStaticExitItems()
}
bool maysd = false;
-#if defined(COMPILE_HALBACKEND)
- if (ksmserver.readBoolEntry( "offerShutdown", true ) && DM().canShutdown())
- maysd = true;
-#elif defined(WITH_TDEHWLIB)
+#if defined(WITH_TDEHWLIB)
TDERootSystemDevice* rootDevice = TDEGlobal::hardwareDevices()->rootSystemDevice();
if( rootDevice ) {
maysd = rootDevice->canPowerOff();
@@ -3794,27 +3740,7 @@ void KMenu::insertSuspendOption( int &nId, int &index )
bool standby = false;
bool suspend_disk = false;
bool hybrid_suspend = false;
-#if defined(COMPILE_HALBACKEND)
- suspend_ram = libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend",
- NULL);
-
- standby = libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_standby",
- NULL);
-
- suspend_disk = libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_hibernate",
- NULL);
-
- hybrid_suspend = libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend_hybrid",
- NULL);
-#elif defined(WITH_TDEHWLIB) // COMPILE_HALBACKEND
+#if defined(WITH_TDEHWLIB)
TDERootSystemDevice* rootDevice = TDEGlobal::hardwareDevices()->rootSystemDevice();
if (rootDevice) {
suspend_ram = rootDevice->canSuspend();
@@ -3886,49 +3812,7 @@ void KMenu::slotSuspend(int id)
DCOPRef("kdesktop", "KScreensaverIface").call("lock()");
}
-#if defined(COMPILE_HALBACKEND)
- DBusMessage* msg = NULL;
-
- if (m_dbusConn) {
- // No Freeze support in HAL
- if (id == SuspendType::Standby) {
- msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Standby");
- } else if (id == SuspendType::Suspend) {
- msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Suspend");
- int wakeup=0;
- dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
- } else if (id == SuspendType::Hibernate) {
- msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Hibernate");
- } else if (id == SuspendType::HybridSuspend) {
- msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "SuspendHybrid");
- int wakeup=0;
- dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
- } else {
- return;
- }
-
- if(dbus_connection_send(m_dbusConn, msg, NULL)) {
- error = false;
- }
- dbus_message_unref(msg);
- }
-#elif defined(WITH_TDEHWLIB) // COMPILE_HALBACKEND
+#if defined(WITH_TDEHWLIB)
TDERootSystemDevice* rootDevice = TDEGlobal::hardwareDevices()->rootSystemDevice();
if (rootDevice) {
if (id == SuspendType::Freeze) {
diff --git a/kicker/kicker/ui/k_new_mnu.h b/kicker/kicker/ui/k_new_mnu.h
index acb80342b..e4ffe91fc 100644
--- a/kicker/kicker/ui/k_new_mnu.h
+++ b/kicker/kicker/ui/k_new_mnu.h
@@ -45,16 +45,6 @@
#include <config.h>
-#ifdef COMPILE_HALBACKEND
-#ifndef NO_QT3_DBUS_SUPPORT
-/* We acknowledge the the dbus API is unstable */
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include <dbus/connection.h>
-#endif // NO_QT3_DBUS_SUPPORT
-
-#include <hal/libhal.h>
-#endif // COMPILE_HALBACKEND
-
class KickerClientMenu;
class KickoffTabBar;
class KBookmarkMenu;
@@ -347,11 +337,6 @@ private:
void fillOverflowCategory();
TQString insertBreaks(const TQString& text, TQFontMetrics fm, int width, TQString leadInsert = TQString::null);
-
-#ifdef COMPILE_HALBACKEND
- LibHalContext* m_halCtx;
- DBusConnection *m_dbusConn;
-#endif
};
#endif
diff --git a/konsole/konsole/konsole.cpp b/konsole/konsole/konsole.cpp
index b6d5e1c69..4faef5239 100644
--- a/konsole/konsole/konsole.cpp
+++ b/konsole/konsole/konsole.cpp
@@ -266,6 +266,7 @@ Konsole::Konsole(const char* name, int histon, bool menubaron, bool tabbaron, bo
,b_installBitmapFonts(false)
,b_framevis(true)
,b_metaAsAlt(false)
+,b_realTransparency(false)
,b_fullscreen(false)
,m_menuCreated(false)
,b_warnQuit(false)
@@ -361,11 +362,6 @@ Konsole::Konsole(const char* name, int histon, bool menubaron, bool tabbaron, bo
// connect(kapp, TQT_SIGNAL(tdedisplayFontChanged()), this, TQT_SLOT(slotFontChanged()));
kapp->dcopClient()->setDefaultObject( "konsole" );
-
- // Signal that we want to be transparent to the desktop, not to windows behind us...
- Atom kde_wm_transparent_to_desktop;
- kde_wm_transparent_to_desktop = XInternAtom(tqt_xdisplay(), "_TDE_TRANSPARENT_TO_DESKTOP", False);
- XChangeProperty(tqt_xdisplay(), winId(), kde_wm_transparent_to_desktop, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
}
@@ -1616,6 +1612,20 @@ void Konsole::readProperties(TDEConfig* config, const TQString &schema, bool glo
s_word_seps= config->readEntry("wordseps",":@-./_~");
b_framevis = config->readBoolEntry("has frame",true);
b_metaAsAlt = config->readBoolEntry("metaAsAltMode",false);
+ b_realTransparency = config->readBoolEntry("RealTransparency",false);
+
+ Atom kde_wm_transparent_to_desktop;
+ kde_wm_transparent_to_desktop = XInternAtom(tqt_xdisplay(), "_TDE_TRANSPARENT_TO_DESKTOP", False);
+ if (b_realTransparency)
+ {
+ XDeleteProperty(tqt_xdisplay(), winId(), kde_wm_transparent_to_desktop);
+ }
+ else
+ {
+ // Signal that we want to be transparent to the desktop, not to windows behind us...
+ XChangeProperty(tqt_xdisplay(), winId(), kde_wm_transparent_to_desktop, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
+ }
+
TQPtrList<TEWidget> tes = activeTEs();
for (TEWidget *_te = tes.first(); _te; _te = tes.next()) {
_te->setWordCharacters(s_word_seps);
diff --git a/konsole/konsole/konsole.h b/konsole/konsole/konsole.h
index 30ca6e5a1..fff364eb7 100644
--- a/konsole/konsole/konsole.h
+++ b/konsole/konsole/konsole.h
@@ -428,6 +428,7 @@ private:
bool b_framevis:1;
bool b_metaAsAlt:1;
+ bool b_realTransparency:1;
bool b_fullscreen:1;
bool m_menuCreated:1;
bool b_warnQuit:1;
diff --git a/ksmserver/CMakeLists.txt b/ksmserver/CMakeLists.txt
index 37bd9cfaf..aa6681f28 100644
--- a/ksmserver/CMakeLists.txt
+++ b/ksmserver/CMakeLists.txt
@@ -25,13 +25,10 @@ include_directories(
${CMAKE_SOURCE_DIR}/tdmlib
${TDE_INCLUDE_DIR}
${TQT_INCLUDE_DIRS}
- ${DBUS_TQT_INCLUDE_DIRS}
- ${HAL_INCLUDE_DIRS}
)
link_directories(
${TQT_LIBRARY_DIRS}
- ${DBUS_TQT_LIBRARY_DIRS}
)
@@ -50,5 +47,5 @@ tde_add_tdeinit_executable( ksmserver AUTOMOC
main.cpp server.cpp shutdowndlg.cpp startupdlg.cpp
legacy.cpp startup.cpp shutdown.cpp client.cpp
KSMServerInterface.skel server.skel timed.ui
- LINK dmctl-static tdeui-shared tdersync-shared ${TDEHW_LIBRARIES} ${HAL_LIBRARIES} ${DBUS_TQT_LIBRARIES}
+ LINK dmctl-static tdeui-shared tdersync-shared ${TDEHW_LIBRARIES}
)
diff --git a/ksmserver/Makefile.am b/ksmserver/Makefile.am
index 8f1a236e4..2c2fa237d 100644
--- a/ksmserver/Makefile.am
+++ b/ksmserver/Makefile.am
@@ -17,7 +17,7 @@
SUBDIRS = .
-INCLUDES= -I$(top_srcdir)/tdmlib $(all_includes) $(HAL_INCS) $(DBUS_INCS)
+INCLUDES= -I$(top_srcdir)/tdmlib $(all_includes)
bin_PROGRAMS =
lib_LTLIBRARIES =
@@ -31,7 +31,7 @@ ksmserver_la_SOURCES = main.cpp server.cpp shutdowndlg.cpp \
KSMServerInterface.skel server.skel timed.ui
ksmserver_la_LDFLAGS = $(all_libraries) -avoid-version -module
-ksmserver_la_LIBADD = ../tdmlib/libdmctl.la $(LIB_TDEUI) $(HAL_LIBS) $(DBUS_LIBS)
+ksmserver_la_LIBADD = ../tdmlib/libdmctl.la $(LIB_TDEUI)
picsdir = $(kde_datadir)/ksmserver/pics
pics_DATA = shutdownkonq.png
@@ -44,7 +44,7 @@ updatedir = $(kde_datadir)/tdeconf_update
EXTRA_PROGRAMS = testsh
testsh_SOURCES = test.cpp timed.ui
testsh_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_TQT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_TDEIO) -ltdetexteditor
-testsh_LDADD = $(LIB_TDEUI) shutdowndlg.lo ../tdmlib/libdmctl.la $(HAL_LIBS) $(DBUS_LIBS)
+testsh_LDADD = $(LIB_TDEUI) shutdowndlg.lo ../tdmlib/libdmctl.la
messages:
$(XGETTEXT) *.cpp -o $(podir)/ksmserver.pot
diff --git a/ksmserver/shutdowndlg.cpp b/ksmserver/shutdowndlg.cpp
index a794388c3..97287ede0 100644
--- a/ksmserver/shutdowndlg.cpp
+++ b/ksmserver/shutdowndlg.cpp
@@ -797,10 +797,6 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
connect(btnLogout, TQT_SIGNAL(clicked()), TQT_SLOT(slotLogout()));
}
-#ifdef COMPILE_HALBACKEND
- m_halCtx = NULL;
-#endif
-
if ((maysd) || (mayrb)) {
// respect lock on resume & disable suspend/hibernate settings
@@ -815,70 +811,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
bool canHibernate = false;
bool canHybridSuspend = false;
-#if defined(COMPILE_HALBACKEND)
- // Query HAL for suspend/resume support
- m_halCtx = libhal_ctx_new();
-
- DBusError error;
- dbus_error_init(&error);
- m_dbusConn = dbus_connection_open_private(DBUS_SYSTEM_BUS, &error);
- if (!m_dbusConn)
- {
- dbus_error_free(&error);
- libhal_ctx_free(m_halCtx);
- m_halCtx = NULL;
- }
- else
- {
- dbus_bus_register(m_dbusConn, &error);
- if (dbus_error_is_set(&error))
- {
- dbus_error_free(&error);
- libhal_ctx_free(m_halCtx);
- m_dbusConn = NULL;
- m_halCtx = NULL;
- }
- else
- {
- libhal_ctx_set_dbus_connection(m_halCtx, m_dbusConn);
- if (!libhal_ctx_init(m_halCtx, &error))
- {
- if (dbus_error_is_set(&error))
- dbus_error_free(&error);
- libhal_ctx_free(m_halCtx);
- m_dbusConn = NULL;
- m_halCtx = NULL;
- }
- }
- }
-
- if (m_halCtx)
- {
- if (libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend",
- NULL))
- {
- canSuspend = true;
- }
-
- if (libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_hibernate",
- NULL))
- {
- canHibernate = true;
- }
-
- if (libhal_device_get_property_bool(m_halCtx,
- "/org/freedesktop/Hal/devices/computer",
- "power_management.can_suspend_hybrid",
- NULL))
- {
- canHybridSuspend = true;
- }
- }
-#elif defined(WITH_TDEHWLIB) // COMPILE_HALBACKEND
+#if defined(WITH_TDEHWLIB)
TDERootSystemDevice* rootDevice = TDEGlobal::hardwareDevices()->rootSystemDevice();
if (rootDevice) {
canFreeze = rootDevice->canFreeze();
@@ -892,7 +825,7 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
canHibernate = false;
canHybridSuspend = false;
}
-#endif // COMPILE_HALBACKEND
+#endif
if(doUbuntuLogout) {
// Ubuntu style logout window
@@ -1175,15 +1108,6 @@ KSMShutdownDlg::KSMShutdownDlg( TQWidget* parent,
KSMShutdownDlg::~KSMShutdownDlg()
{
-#ifdef COMPILE_HALBACKEND
- if (m_halCtx)
- {
- DBusError error;
- dbus_error_init(&error);
- libhal_ctx_shutdown(m_halCtx, &error);
- libhal_ctx_free(m_halCtx);
- }
-#endif
}
@@ -1220,46 +1144,13 @@ void KSMShutdownDlg::slotHalt()
void KSMShutdownDlg::slotSuspend()
{
-#ifndef COMPILE_HALBACKEND
*m_selection = SuspendType::Suspend;
-#else
- if (m_dbusConn)
- {
- DBusMessage *msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Suspend");
-
- int wakeup=0;
- dbus_message_append_args(msg, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
-
- dbus_connection_send(m_dbusConn, msg, NULL);
-
- dbus_message_unref(msg);
- }
-#endif
reject(); // continue on resume
}
void KSMShutdownDlg::slotHibernate()
{
-#ifndef COMPILE_HALBACKEND
*m_selection = SuspendType::Hibernate;
-#else
- if (m_dbusConn)
- {
- DBusMessage *msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "Hibernate");
-
- dbus_connection_send(m_dbusConn, msg, NULL);
-
- dbus_message_unref(msg);
- }
-#endif
reject(); // continue on resume
}
@@ -1271,22 +1162,7 @@ void KSMShutdownDlg::slotFreeze()
void KSMShutdownDlg::slotHybridSuspend()
{
-#ifndef COMPILE_HALBACKEND
*m_selection = SuspendType::HybridSuspend;
-#else
- if (m_dbusConn)
- {
- DBusMessage *msg = dbus_message_new_method_call(
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/devices/computer",
- "org.freedesktop.Hal.Device.SystemPowerManagement",
- "SuspendHybrid");
-
- dbus_connection_send(m_dbusConn, msg, NULL);
-
- dbus_message_unref(msg);
- }
-#endif
reject(); // continue on resume
}
diff --git a/ksmserver/shutdowndlg.h b/ksmserver/shutdowndlg.h
index 25ee60f77..e92b6c3cd 100644
--- a/ksmserver/shutdowndlg.h
+++ b/ksmserver/shutdowndlg.h
@@ -34,16 +34,6 @@ class TDEAction;
#include <config.h>
-#ifdef COMPILE_HALBACKEND
- #ifndef NO_QT3_DBUS_SUPPORT
- /* We acknowledge the the dbus API is unstable */
- #define DBUS_API_SUBJECT_TO_CHANGE
- #include <dbus/connection.h>
- #endif // NO_QT3_DBUS_SUPPORT
-
- #include <hal/libhal.h>
-#endif // COMPILE_HALBACKEND
-
namespace SuspendType {
enum SuspendType {
NotSpecified = 0,
@@ -159,10 +149,6 @@ private:
TQString m_bootOption;
TQPopupMenu *targets;
TQStringList rebootOptions;
-#ifdef COMPILE_HALBACKEND
- LibHalContext* m_halCtx;
- DBusConnection *m_dbusConn;
-#endif
bool m_lockOnResume;
int* m_selection;
};
diff --git a/kxkb/kcmlayout.cpp b/kxkb/kcmlayout.cpp
index 682ea10da..a022b6389 100644
--- a/kxkb/kcmlayout.cpp
+++ b/kxkb/kcmlayout.cpp
@@ -237,10 +237,17 @@ void LayoutConfig::initUI() {
widget->grpLabel->setButton( ( m_kxkbConfig.m_useThemeColors ? 0 : 1 ) );
widget->bgColor->setColor( m_kxkbConfig.m_colorBackground );
widget->fgColor->setColor( m_kxkbConfig.m_colorLabel );
+ widget->chkBgTransparent->setChecked( m_kxkbConfig.m_bgTransparent );
widget->labelFont->setFont( m_kxkbConfig.m_labelFont );
widget->chkLabelShadow->setChecked( m_kxkbConfig.m_labelShadow );
widget->shColor->setColor( m_kxkbConfig.m_colorShadow );
+ widget->grpLabel->setDisabled(showFlag && !showLabel);
+ widget->grpLabelColors->setDisabled(m_kxkbConfig.m_useThemeColors);
+ widget->labelBgColor->setDisabled(showFlag);
+ widget->bgColor->setDisabled(showFlag);
+ widget->chkBgTransparent->setDisabled(showFlag);
+
switch( m_kxkbConfig.m_switchingPolicy ) {
default:
case SWITCH_POLICY_GLOBAL:
@@ -303,6 +310,7 @@ void LayoutConfig::save()
m_kxkbConfig.m_useThemeColors = widget->radLabelUseTheme->isChecked();
m_kxkbConfig.m_colorBackground = widget->bgColor->color();
m_kxkbConfig.m_colorLabel = widget->fgColor->color();
+ m_kxkbConfig.m_bgTransparent = widget->chkBgTransparent->isChecked();
m_kxkbConfig.m_labelFont = widget->labelFont->font();
m_kxkbConfig.m_labelShadow = widget->chkLabelShadow->isChecked();
m_kxkbConfig.m_colorShadow = widget->shColor->color();
diff --git a/kxkb/kcmlayoutwidget.ui b/kxkb/kcmlayoutwidget.ui
index dc3350a87..e8dcc3a9e 100644
--- a/kxkb/kcmlayoutwidget.ui
+++ b/kxkb/kcmlayoutwidget.ui
@@ -545,96 +545,108 @@
<bool>false</bool>
</property>
</widget>
- <spacer row="2" column="0">
+ <widget class="TQFrame" row="2" column="0" colspan="3">
<property name="name">
- <cstring>spacer2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Fixed</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="TQLabel" row="2" column="1">
- <property name="name">
- <cstring>labelBgColor</cstring>
- </property>
- <property name="text">
- <string>Background color:</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>This color will be used as the indicator's background unless the indicator was set to display a flag.</string>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
+ <cstring>grpLabelColors</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <grid>
+ <spacer row="0" column="0">
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel" row="0" column="1">
+ <property name="name">
+ <cstring>labelBgColor</cstring>
+ </property>
+ <property name="text">
+ <string>Background color:</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This color will be used as the indicator's background unless the indicator was set to display a flag.</string>
+ </property>
+ </widget>
+ <widget class="KColorButton" row="0" column="2">
+ <property name="name">
+ <cstring>bgColor</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This color will be used as the indicator's background unless the indicator was set to display a flag.</string>
+ </property>
+ </widget>
+ <spacer row="1" column="0">
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel" row="1" column="1">
+ <property name="name">
+ <cstring>labelFgColor</cstring>
+ </property>
+ <property name="text">
+ <string>Text color:</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This color will be used to draw the language label on the indicator.</string>
+ </property>
+ </widget>
+ <widget class="KColorButton" row="1" column="2">
+ <property name="name">
+ <cstring>fgColor</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This color will be used to draw the language label on the indicator.</string>
+ </property>
+ </widget>
+ </grid>
</widget>
- <widget class="KColorButton" row="2" column="2">
+ <widget class="TQCheckBox" row="4" column="0" rowspan="1" colspan="3">
<property name="name">
- <cstring>bgColor</cstring>
- </property>
- <property name="whatsThis" stdset="0">
- <string>This color will be used as the indicator's background unless the indicator was set to display a flag.</string>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <spacer row="3" column="0">
- <property name="name">
- <cstring>spacer2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Fixed</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="TQLabel" row="3" column="1">
- <property name="name">
- <cstring>labelFgColor</cstring>
+ <cstring>chkBgTransparent</cstring>
</property>
<property name="text">
- <string>Text color:</string>
+ <string>Transparent background</string>
</property>
<property name="whatsThis" stdset="0">
- <string>This color will be used to draw the language label on the indicator.</string>
- </property>
- <property name="enabled">
- <bool>false</bool>
+ <string>Check this to remove the indicator's background. Only applicable in "Label only" mode.</string>
</property>
</widget>
- <widget class="KColorButton" row="3" column="2">
- <property name="name">
- <cstring>fgColor</cstring>
- </property>
- <property name="whatsThis" stdset="0">
- <string>This color will be used to draw the language label on the indicator.</string>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- </widget>
- <widget class="KSeparator" row="4" column="0" rowspan="1" colspan="3">
+ <widget class="KSeparator" row="5" column="0" rowspan="1" colspan="3">
<property name="name">
<cstring>separator1</cstring>
</property>
</widget>
- <widget class="TQLabel" row="5" column="0" rowspan="1" colspan="2">
+ <widget class="TQLabel" row="6" column="0" rowspan="1">
<property name="name">
<cstring>labelFontRequester</cstring>
</property>
@@ -645,12 +657,12 @@
<string>This is the font which will be used by the layout indicator to draw the label.</string>
</property>
</widget>
- <widget class="TDEFontRequester" row="5" column="2">
+ <widget class="TDEFontRequester" row="6" column="2">
<property name="name">
<cstring>labelFont</cstring>
</property>
</widget>
- <widget class="TQCheckBox" row="6" column="0" rowspan="1" colspan="2">
+ <widget class="TQCheckBox" row="7" column="0" rowspan="1" colspan="2">
<property name="name">
<cstring>chkLabelShadow</cstring>
</property>
@@ -661,7 +673,7 @@
<string>Draw a drop shadow behind the language label. In some cases this option can improve readability.</string>
</property>
</widget>
- <widget class="KColorButton" row="6" column="2">
+ <widget class="KColorButton" row="7" column="2">
<property name="name">
<cstring>shColor</cstring>
</property>
@@ -920,38 +932,56 @@
<connection>
<sender>radLabelUseCustom</sender>
<signal>toggled(bool)</signal>
- <receiver>bgColor</receiver>
+ <receiver>grpLabelColors</receiver>
<slot>setEnabled(bool)</slot>
</connection>
<connection>
- <sender>radLabelUseCustom</sender>
+ <sender>chkLabelShadow</sender>
<signal>toggled(bool)</signal>
- <receiver>fgColor</receiver>
+ <receiver>shColor</receiver>
<slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>radLabelUseCustom</sender>
+ </connection>
+ <connection>
+ <sender>chkEnable</sender>
<signal>toggled(bool)</signal>
- <receiver>labelBgColor</receiver>
+ <receiver>optionsFrame</receiver>
<slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>radLabelUseCustom</sender>
+ </connection>
+ <connection>
+ <sender>radFlagOnly</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>grpLabel</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>radLabelOnly</sender>
<signal>toggled(bool)</signal>
- <receiver>labelFgColor</receiver>
+ <receiver>chkBgTransparent</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>radLabelOnly</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>bgColor</receiver>
<slot>setEnabled(bool)</slot>
</connection>
<connection>
- <sender>chkLabelShadow</sender>
+ <sender>radLabelOnly</sender>
<signal>toggled(bool)</signal>
- <receiver>shColor</receiver>
+ <receiver>labelBgColor</receiver>
<slot>setEnabled(bool)</slot>
</connection>
<connection>
- <sender>chkEnable</sender>
+ <sender>radFlagLabel</sender>
<signal>toggled(bool)</signal>
- <receiver>optionsFrame</receiver>
- <slot>setEnabled(bool)</slot>
+ <receiver>bgColor</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>radFlagLabel</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>labelBgColor</receiver>
+ <slot>setDisabled(bool)</slot>
</connection>
</connections>
<includes>
diff --git a/kxkb/kxkbconfig.cpp b/kxkb/kxkbconfig.cpp
index a01fd6a0e..8e6890161 100644
--- a/kxkb/kxkbconfig.cpp
+++ b/kxkb/kxkbconfig.cpp
@@ -131,6 +131,7 @@ bool KxkbConfig::load(int loadMode)
m_useThemeColors = config->readBoolEntry("UseThemeColors", false);
m_colorBackground = config->readColorEntry("ColorBackground", new TQColor(TQt::gray));
+ m_bgTransparent = config->readBoolEntry("BgTransparent", false);
m_colorLabel = config->readColorEntry("ColorLabel", new TQColor(TQt::white));
m_labelFont = config->readFontEntry("LabelFont", new TQFont("sans", 10, TQFont::Bold));
m_labelShadow = config->readBoolEntry("LabelShadow", true);
@@ -230,6 +231,7 @@ void KxkbConfig::save()
config->writeEntry("UseThemeColors", m_useThemeColors);
config->writeEntry("ColorBackground", m_colorBackground);
+ config->writeEntry("BgTransparent", m_bgTransparent);
config->writeEntry("ColorLabel", m_colorLabel);
config->writeEntry("LabelFont", m_labelFont);
config->writeEntry("LabelShadow", m_labelShadow);
diff --git a/kxkb/kxkbconfig.h b/kxkb/kxkbconfig.h
index 0f8c981ea..a4dc83e5a 100644
--- a/kxkb/kxkbconfig.h
+++ b/kxkb/kxkbconfig.h
@@ -105,6 +105,7 @@ public:
bool m_useThemeColors;
TQColor m_colorBackground;
+ bool m_bgTransparent;
TQColor m_colorLabel;
TQFont m_labelFont;
bool m_labelShadow;
diff --git a/kxkb/pixmap.cpp b/kxkb/pixmap.cpp
index 238023d9b..c7e08a741 100644
--- a/kxkb/pixmap.cpp
+++ b/kxkb/pixmap.cpp
@@ -1,5 +1,5 @@
#include <tqimage.h>
-//#include <tqbitmap.h>
+#include <tqbitmap.h>
#include <tqfont.h>
#include <tqpainter.h>
#include <tqregexp.h>
@@ -49,6 +49,7 @@ LayoutIcon::findPixmap(const TQString& code_, int pixmapStyle, const TQString& d
m_labelFont = m_kxkbConfig.m_labelFont;
m_labelShadow = m_kxkbConfig.m_labelShadow;
m_shColor = m_kxkbConfig.m_colorShadow;
+ m_bgTransparent = m_kxkbConfig.m_bgTransparent;
// Decide on how to style the pixmap
switch(pixmapStyle) {
@@ -96,7 +97,7 @@ LayoutIcon::findPixmap(const TQString& code_, int pixmapStyle, const TQString& d
const TQString pixmapKey(
TQString( m_showFlag ? "f" : "" ) + TQString( m_showLabel ? "l" : "" ) + TQString( m_labelShadow ? "s" : "" ) + "." +
- m_labelFont.key() + "." + m_bgColor.name() + "." + m_fgColor.name() + "." + m_shColor.name() + '.' + code_ + "." + displayName
+ m_labelFont.key() + "." + ( m_bgTransparent ? "x" : m_bgColor.name() ) + "." + m_fgColor.name() + "." + m_shColor.name() + '.' + code_ + "." + displayName
);
// Only use cache for indicator
@@ -145,8 +146,29 @@ LayoutIcon::findPixmap(const TQString& code_, int pixmapStyle, const TQString& d
p.setPen(m_fgColor);
p.drawText(0, 0, pm->width(), pm->height(), Qt::AlignCenter, displayName);
+
+ if( m_bgTransparent && !m_showFlag )
+ {
+ TQPixmap maskpix(pm->width(), pm->height());
+ TQPainter maskp(&maskpix);
+
+ maskpix.fill(TQt::white);
+ maskp.setPen(TQt::black);
+ maskp.setFont(m_labelFont);
+
+ maskp.drawText(0, 0, maskpix.width(), maskpix.height(), Qt::AlignCenter, displayName);
+ if( m_labelShadow )
+ {
+ maskp.drawText(1, 1, maskpix.width(), maskpix.height(), Qt::AlignCenter, displayName);
+ }
+
+ TQBitmap mask;
+ mask = maskpix;
+ pm->setMask(mask);
+ }
}
+
if( pixmapStyle == PIXMAP_STYLE_INDICATOR )
m_pixmapCache.insert(pixmapKey, pm);
diff --git a/kxkb/pixmap.h b/kxkb/pixmap.h
index 2fd6c2a3c..a17f48d89 100644
--- a/kxkb/pixmap.h
+++ b/kxkb/pixmap.h
@@ -24,6 +24,7 @@ private:
bool m_showFlag;
bool m_showLabel;
TQColor m_bgColor;
+ bool m_bgTransparent;
TQColor m_fgColor;
TQFont m_labelFont;
bool m_labelShadow;
diff --git a/r14-xdg-update b/r14-xdg-update
index fc7b2c20f..623e69606 100644
--- a/r14-xdg-update
+++ b/r14-xdg-update
@@ -3,7 +3,7 @@
# A script to perform R14.0.0 XDG compliance updates.
SCRIPT_NAME="$(basename -- "$0")"
-SCRIPT_VERSION=202103280
+SCRIPT_VERSION=202202130
# This script should be needed to run only once, but corner cases
# and file/directory permissions could cause incomplete updates.
@@ -824,15 +824,14 @@ if [ "$R14_VERSION" -lt "201401070" ]; then
mv $PROFILE_DIR/share/apps/kstyle $PROFILE_DIR/share/apps/tdestyle 2>/dev/null
fi
fi
-if [ "$R14_VERSION" -lt "201309150" ]; then
- # Copy the following two rc files rather than move because the older versions are needed for HAL systems.
+if [ "$R14_VERSION" -lt "202202130" ]; then
if [ ! -f $PROFILE_DIR/share/config/tdenetworkmanagerrc ] && [ -f $PROFILE_DIR/share/config/knetworkmanagerrc ]; then
Log " knetworkmanager->tdenetworkmanager"
- cp -a $PROFILE_DIR/share/config/knetworkmanagerrc $PROFILE_DIR/share/config/tdenetworkmanagerrc 2>/dev/null
+ mv $PROFILE_DIR/share/config/knetworkmanagerrc $PROFILE_DIR/share/config/tdenetworkmanagerrc 2>/dev/null
fi
if [ ! -f $PROFILE_DIR/share/config/tdepowersaverc ] && [ -f $PROFILE_DIR/share/config/kpowersaverc ]; then
Log " kpowersave->tdepowersave"
- cp -a $PROFILE_DIR/share/config/kpowersaverc $PROFILE_DIR/share/config/tdepowersaverc 2>/dev/null
+ mv $PROFILE_DIR/share/config/kpowersaverc $PROFILE_DIR/share/config/tdepowersaverc 2>/dev/null
fi
fi
if [ "$R14_VERSION" -lt "201401050" ]; then
diff --git a/starttde b/starttde
index 3037259bf..66360e228 100755
--- a/starttde
+++ b/starttde
@@ -839,8 +839,7 @@ for prefix in `echo "$exepath" | sed -n -e 's,/bin[^/]*/,/shutdown/,p'`; do
done
done
-unset TDE_FULL_SESSION
xprop -root -remove TDE_FULL_SESSION
-unset TDE_SESSION_UID
+unset TDE_FULL_SESSION TDE_SESSION_UID
echo "[starttde] Trinity shutdown complete." 1>&2
diff --git a/tdeioslave/man/tdeio_man.cpp b/tdeioslave/man/tdeio_man.cpp
index 92530facb..13fc3b4d5 100644
--- a/tdeioslave/man/tdeio_man.cpp
+++ b/tdeioslave/man/tdeio_man.cpp
@@ -963,6 +963,7 @@ void MANProtocol::constructPath(TQStringList& constr_path, TQStringList constr_c
"/usr/sunpc/man",
"/usr/ncd/man",
"/usr/newsprint/man",
+ TDE_MANDIR,
NULL };
diff --git a/tdeioslave/media/Makefile.am b/tdeioslave/media/Makefile.am
index a5551fb2e..2ce7900b4 100644
--- a/tdeioslave/media/Makefile.am
+++ b/tdeioslave/media/Makefile.am
@@ -1,7 +1,3 @@
-if include_media_halbackend
-PROPSDLGPLUGINDIR = propsdlgplugin
-endif
-
SUBDIRS = libmediacommon . mediamanager medianotifier mounthelper \
tdefile-plugin tdecmodule mimetypes services $(PROPSDLGPLUGINDIR)
diff --git a/tdeioslave/media/configure.in.in b/tdeioslave/media/configure.in.in
index 413848b64..a6718eb16 100644
--- a/tdeioslave/media/configure.in.in
+++ b/tdeioslave/media/configure.in.in
@@ -6,179 +6,3 @@ AC_CHECK_HEADER(linux/cdrom.h,
LINUXCDPOLLING=yes
AC_SUBST(LINUXCDPOLLING)
])
-
-
-AC_ARG_WITH(hal,AC_HELP_STRING([--with-hal],[Enable HAL support [default=check]]),[hal_test="$withval"],[hal_test="yes"])
-
-if test "x$hal_test" = "xyes" ; then
-
-########### Check for the HAL
- AC_MSG_CHECKING(for the HAL)
-
- hal_inc=NOTFOUND
- hal_lib=NOTFOUND
- hal=NOTFOUND
-
- search_incs="$kde_includes $kde_extra_includes /usr/include /usr/include/hal /usr/local/include /usr/local/include/hal"
- AC_FIND_FILE(libhal.h libhal-storage.h, $search_incs, hal_incdir)
-
- if test -r $hal_incdir/libhal.h && test -r $hal_incdir/libhal-storage.h && grep LibHalVolume $hal_incdir/libhal-storage.h > /dev/null 2>&1; then
- HAL_INCS="-I$hal_incdir"
- hal_inc=FOUND
- fi
-
- search_libs="$kde_libraries $kde_extra_libs /usr/lib$tdelibsuff /usr/local/lib$tdelibsuff"
- AC_FIND_FILE(libhal.so libhal-storage.so, $search_libs, hal_libdir)
-
- if test -r $hal_libdir/libhal.so && test -r $hal_libdir/libhal-storage.so ; then
- HAL_LIBS="-L$hal_libdir -lhal -lhal-storage"
- hal_lib=FOUND
- fi
-
- if test "$hal_inc" != FOUND || test "$hal_lib" != FOUND; then
- KDE_PKG_CHECK_MODULES( HAL, hal > 0.5, [ HAL_INCS=$HAL_CFLAGS; hal_inc=FOUND; hal_lib=FOUND; ] , AC_MSG_RESULT(Nothing found on PKG_CONFIG_PATH) )
- fi
-
- if test "$hal_inc" = FOUND && test "$hal_lib" = FOUND ; then
- AC_MSG_RESULT(headers $HAL_INCS libraries $HAL_LIBS)
- hal=FOUND
- else
- AC_MSG_RESULT(searched but not found)
- fi
-
-
- AC_SUBST(HAL_INCS)
- AC_SUBST(HAL_LIBS)
-
-
-########### Check for DBus
-
- AC_MSG_CHECKING(for DBus)
-
- dbus_inc=NOTFOUND
- dbus_lib=NOTFOUND
- dbus=NOTFOUND
-
- search_incs="$kde_includes $kde_extra_includes /usr/include /usr/include/dbus-1.0 /usr/local/include /usr/local/include/dbus-1.0"
- AC_FIND_FILE(dbus/dbus.h, $search_incs, dbus_incdir)
-
- search_incs_arch_deps="$kde_includes $kde_extra_includes /usr/lib$tdelibsuff/dbus-1.0/include /usr/local/lib$tdelibsuff/dbus-1.0/include"
- AC_FIND_FILE(dbus/dbus-arch-deps.h, $search_incs_arch_deps, dbus_incdir_arch_deps)
-
- if test -r $dbus_incdir/dbus/dbus.h && test -r $dbus_incdir_arch_deps/dbus/dbus-arch-deps.h ; then
- DBUS_INCS="-I$dbus_incdir -I$dbus_incdir_arch_deps"
- dbus_inc=FOUND
- fi
-
- search_libs="$kde_libraries $kde_extra_libs /usr/lib$tdelibsuff /usr/local/lib$tdelibsuff"
- AC_FIND_FILE(libdbus-1.so, $search_libs, dbus_libdir)
-
- if test -r $dbus_libdir/libdbus-1.so ; then
- DBUS_LIBS="-L$dbus_libdir -ldbus-1"
- dbus_lib=FOUND
- fi
-
- if test $dbus_inc != FOUND || test $dbus_lib != FOUND ; then
- KDE_PKG_CHECK_MODULES( DBUS, "dbus-1", [ DBUS_INCS=$DBUS_CFLAGS; dbus_inc=FOUND; dbus_lib=FOUND; ] , AC_MSG_RESULT( Nothing found on PKG_CONFIG_PATH ) )
- fi
-
- dbus_bus_var=`pkg-config --variable=system_bus_default_address dbus-1 2>/dev/null`
- if test -z "$dbus_bus_var"; then
- dbus_bus_var="unix:path=/var/run/dbus/system_bus_socket"
- fi
- AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS, "$dbus_bus_var", [Define the unix domain path for dbus system bus])
-
- if test $dbus_inc = FOUND && test $dbus_lib = FOUND ; then
- AC_MSG_RESULT(headers $DBUS_INCS libraries $DBUS_LIBS)
- dbus=FOUND
- else
- AC_MSG_RESULT(searched but not found)
- fi
-
- AC_SUBST(DBUS_INCS)
- AC_SUBST(DBUS_LIBS)
-
-########### Check for DBus-Qt3 bindings
-
- AC_MSG_CHECKING(for DBus-Qt3 bindings)
-
- dbusqt_inc=NOTFOUND
- dbusqt_lib=NOTFOUND
- dbusqt=NOTFOUND
-
- search_incs="$kde_includes $kde_extra_includes /usr/include /usr/include/dbus-1.0 /usr/local/include /usr/local/include/dbus-1.0"
- AC_FIND_FILE(dbus/connection.h, $search_incs, dbusqt_incdir)
-
- if test -r $dbusqt_incdir/dbus/connection.h ; then
- have_qt_patch=0
- grep dbus_connection_setup_with_qt_main $dbusqt_incdir/dbus/connection.h \
- > /dev/null 2>&1 && have_qt_patch=1
- if test $have_qt_patch = 1 ; then
- DBUSTQT_INCS="-I$dbusqt_incdir"
- dbusqt_inc=FOUND
- fi
- fi
-
- search_libs="$kde_libraries $kde_extra_libs /usr/lib$tdelibsuff /usr/local/lib$tdelibsuff"
- AC_FIND_FILE(libdbus-qt-1.so, $search_libs, dbusqt_libdir)
-
- if test -r $dbusqt_libdir/libdbus-qt-1.so ; then
- DBUSTQT_LIBS="-L$dbusqt_libdir -ldbus-qt-1"
- dbusqt_lib=FOUND
- fi
-
- if test $dbusqt_inc != FOUND || test $dbusqt_lib != FOUND ; then
-
- search_incs="`pkg-config --cflags dbus-1 |sed 's/-I//g'`"
- AC_FIND_FILE(dbus/connection.h, $search_incs, dbusqt_incdir)
- if test -r $dbusqt_incdir/dbus/connection.h ; then
- have_qt_patch=0
- grep dbus_connection_setup_with_qt_main $dbusqt_incdir/dbus/connection.h \
- > /dev/null 2>&1 && have_qt_patch=1
- if test $have_qt_patch = 1 ; then
- DBUSTQT_INCS="-I$dbusqt_incdir"
- dbusqt_inc=FOUND
- fi
- fi
-
- search_libs="`pkg-config --libs dbus-1 --libs-only-L | sed 's/-L//g'`"
- AC_FIND_FILE(libdbus-qt-1.so, $search_libs, dbusqt_libdir)
-
- if test -r $dbusqt_libdir/libdbus-qt-1.so ; then
- DBUSTQT_LIBS="-L$dbusqt_libdir -ldbus-qt-1"
- dbusqt_lib=FOUND
- fi
-
- fi
-
-
- if test $dbusqt_inc = FOUND && test $dbusqt_lib = FOUND ; then
- AC_MSG_RESULT(headers $dbusqt_incdir libraries $dbusqt_libdir)
- dbusqt=FOUND
- else
- AC_MSG_RESULT(searched but not found)
- fi
-
- AC_SUBST(DBUSTQT_INCS)
- AC_SUBST(DBUSTQT_LIBS)
-fi
-
-########### Check if media HAL backend sould be compiled
-
-AC_MSG_CHECKING(if the HAL backend for media:/ should be compiled)
-
-HALBACKEND=no
-if test "x$hal" = "xFOUND" && test "x$dbus" = "xFOUND" && test "x$dbusqt" = "xFOUND" ; then
- AC_DEFINE_UNQUOTED([COMPILE_HALBACKEND],1, [media HAL backend compilation])
- HALBACKEND=yes
- AC_SUBST(HALBACKEND)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AM_CONDITIONAL(include_media_linuxcdpolling, test "$LINUXCDPOLLING" = "yes")
-AM_CONDITIONAL(include_media_halbackend, test "$HALBACKEND" = yes)
-
-AC_CHECK_FUNCS(statvfs)
-
diff --git a/tdeioslave/media/contrib/README b/tdeioslave/media/contrib/README
index 8f6041578..4e330e073 100644
--- a/tdeioslave/media/contrib/README
+++ b/tdeioslave/media/contrib/README
@@ -1,11 +1,5 @@
Those scripts are an example on how to allow media:/ to use
-hotplugging events if you don't use HAL. They're targeting
-"Linux 2.6 + hotplug + udev" platforms, but we can surely make
-something equivalent for Linux 2.4, FreeBSD...
-
-They are just examples, the packagers will surely develop their
-own version (I'm currently using them on Debian Sid, Linux 2.6.9
-though).
+hotplugging events.
1) mediamanager_usbstorage.dev
This file only needs to be copied to /etc/dev.d/default
diff --git a/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg b/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg
index 35af31484..8136ecd79 100644
--- a/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg
+++ b/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg
@@ -4,11 +4,6 @@
<kcfg>
<kcfgfile name="mediamanagerrc"/>
<group name="Global">
- <entry name="HalBackendEnabled" type="Bool">
- <label>Enable HAL backend</label>
- <whatsthis>When HAL (Hardware Abstraction Layer) support is enabled, TDE will use it to gather information on the storage media available in your system.</whatsthis>
- <default>true</default>
- </entry>
<entry name="TdeHardwareBackendEnabled" type="Bool">
<label>Enable TDE hardware library backend</label>
<whatsthis>When TDE hardware library support is enabled, TDE will use it to gather information on the storage media available in your system.</whatsthis>
diff --git a/tdeioslave/media/mediaimpl.cpp b/tdeioslave/media/mediaimpl.cpp
index ff66375aa..aacbcc5e2 100644
--- a/tdeioslave/media/mediaimpl.cpp
+++ b/tdeioslave/media/mediaimpl.cpp
@@ -230,15 +230,6 @@ bool MediaImpl::ensureMediumMounted(Medium &medium)
return false;
}
-#ifdef COMPILE_HALBACKEND
- if ( medium.isEncrypted() && medium.clearDeviceUdi().isEmpty() )
- {
- m_lastErrorCode = TDEIO::ERR_COULD_NOT_MOUNT;
- m_lastErrorMessage = i18n("The drive is encrypted.");
- return false;
- }
-#endif // COMPILE_HALBACKEND
-
if ( medium.needMounting() )
{
m_lastErrorCode = 0;
diff --git a/tdeioslave/media/mediamanager/CMakeLists.txt b/tdeioslave/media/mediamanager/CMakeLists.txt
index c5150100a..b052bff87 100644
--- a/tdeioslave/media/mediamanager/CMakeLists.txt
+++ b/tdeioslave/media/mediamanager/CMakeLists.txt
@@ -16,13 +16,10 @@ include_directories(
${CMAKE_BINARY_DIR}
${TDE_INCLUDE_DIR}
${TQT_INCLUDE_DIRS}
- ${HAL_INCLUDE_DIRS}
- ${DBUS_TQT_INCLUDE_DIRS}
)
link_directories(
${TQT_LIBRARY_DIRS}
- ${DBUS_TQT_LIBRARY_DIRS}
)
@@ -45,11 +42,6 @@ tde_create_translated_desktop(
set( target kded_mediamanager )
-if( WITH_HAL )
- set( HAL_MEDIA_BACKEND halbackend.cpp linuxcdpolling.cpp )
- set( HAL_MEDIA_LIBRARIES ${HAL_LIBRARIES} -lhal-storage ${DBUS_TQT_LIBRARIES} )
-endif( )
-
if( WITH_TDEHWLIB )
set( TDEHWBACKEND tdehardwarebackend.cpp )
endif( WITH_TDEHWLIB )
@@ -60,7 +52,7 @@ tde_add_kpart( ${target} AUTOMOC
backendbase.cpp fstabbackend.cpp removablebackend.cpp
unlockdialog.ui dialog.cpp
mediadirnotify.cpp mediadirnotify.skel
- ${HAL_MEDIA_BACKEND} ${TDEHWBACKEND}
- LINK mediacommon-static tdeinit_kded-shared ${TDEHW_LIBRARIES} ${HAL_MEDIA_LIBRARIES}
+ ${TDEHWBACKEND}
+ LINK mediacommon-static tdeinit_kded-shared ${TDEHW_LIBRARIES}
DESTINATION ${PLUGIN_INSTALL_DIR}
)
diff --git a/tdeioslave/media/mediamanager/Makefile.am b/tdeioslave/media/mediamanager/Makefile.am
index 489226e8e..87a20cb89 100644
--- a/tdeioslave/media/mediamanager/Makefile.am
+++ b/tdeioslave/media/mediamanager/Makefile.am
@@ -1,18 +1,7 @@
kde_module_LTLIBRARIES = kded_mediamanager.la
-if include_media_halbackend
-HALBACKEND_INCS = $(HAL_INCS) $(DBUS_INCS) $(DBUSTQT_INCS)
-endif
-
METASOURCES = AUTO
-INCLUDES = -I$(srcdir)/../libmediacommon -I../libmediacommon $(HALBACKEND_INCS) $(all_includes)
-
-if include_media_halbackend
-HALBACKEND_LIB = libhalbackend.la
-libhalbackend_la_SOURCES = halbackend.cpp
-libhalbackend_la_LDFLAGS = -avoid-version $(all_libraries) -no-undefined
-libhalbackend_la_LIBADD = $(HAL_LIBS) $(DBUS_LIBS) $(DBUSTQT_LIBS)
-endif
+INCLUDES = -I$(srcdir)/../libmediacommon -I../libmediacommon $(all_includes)
if include_media_linuxcdpolling
LINUXCDPOLLING_LIB = liblinuxcdpolling.la
@@ -20,11 +9,11 @@ liblinuxcdpolling_la_SOURCES = linuxcdpolling.cpp
liblinuxcdpolling_la_LDFLAGS = -avoid-version $(all_libraries) -no-undefined
endif
-noinst_LTLIBRARIES = $(LINUXCDPOLLING_LIB) $(HALBACKEND_LIB)
+noinst_LTLIBRARIES = $(LINUXCDPOLLING_LIB)
kded_mediamanager_la_SOURCES = mediamanager.cpp mediamanager.skel medialist.cpp backendbase.cpp fstabbackend.cpp removablebackend.cpp mediadirnotify.cpp mediadirnotify.skel
kded_mediamanager_la_LDFLAGS = $(all_libraries) -module -avoid-version
-kded_mediamanager_la_LIBADD = $(LIB_TDESYCOCA) ../libmediacommon/libmediacommon.la $(HALBACKEND_LIB) $(LINUXCDPOLLING_LIB)
+kded_mediamanager_la_LIBADD = $(LIB_TDESYCOCA) ../libmediacommon/libmediacommon.la $(LINUXCDPOLLING_LIB)
servicesdir = $(kde_servicesdir)/kded
diff --git a/tdeioslave/media/mediamanager/fstabbackend.cpp b/tdeioslave/media/mediamanager/fstabbackend.cpp
index acd1dced2..6549723fe 100644
--- a/tdeioslave/media/mediamanager/fstabbackend.cpp
+++ b/tdeioslave/media/mediamanager/fstabbackend.cpp
@@ -160,7 +160,6 @@ bool inExclusionPattern(KMountPoint *mount, bool networkSharesOnly)
|| mount->mountPoint().find("/sys") == 0
// We might want to display only network shares
- // since HAL doesn't handle them
|| ( networkSharesOnly
&& mount->mountType().find( "smb" ) == -1
&& mount->mountType().find( "cifs" ) == -1
diff --git a/tdeioslave/media/mediamanager/halbackend.cpp b/tdeioslave/media/mediamanager/halbackend.cpp
deleted file mode 100644
index 3eb18d4c8..000000000
--- a/tdeioslave/media/mediamanager/halbackend.cpp
+++ /dev/null
@@ -1,2000 +0,0 @@
-/* This file is part of the KDE Project
- Copyright (c) 2004-2005 Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org>
- Copyright (c) 2006 Valentine Sinitsyn <e_val@inbox.ru>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "halbackend.h"
-#include "linuxcdpolling.h"
-
-#include <stdlib.h>
-#include <locale.h>
-
-#include <tdeapplication.h>
-#include <tdemessagebox.h>
-#include <tqeventloop.h>
-#include <tqfile.h>
-#include <tdelocale.h>
-#include <kurl.h>
-#include <kdebug.h>
-#include <kprocess.h>
-#include <tdeconfig.h>
-#include <tqstylesheet.h>
-#include <kmountpoint.h>
-#include <tdemessagebox.h>
-#include <tdeio/job.h>
-#include <kprotocolinfo.h>
-#include <kstandarddirs.h>
-#include <kprocess.h>
-
-#define MOUNT_MEDIA_SUFFIX (medium->isEncrypted() ? \
- (TQString("_encrypted") + (halClearVolume ? "_unlocked" : "_locked")) : \
- (medium->isMounted() ? TQString("_mounted") : TQString("_unmounted")))
-
-#define MOUNTED_ICON_SUFFIX (medium->isEncrypted() ? \
- (halClearVolume ? "-unlocked" : "-locked") : \
- (medium->isMounted() ? TQString("-mounted") : TQString("-unmounted")))
-
-/* Static instance of this class, for static HAL callbacks */
-static HALBackend* s_HALBackend;
-
-/* A macro function to convert HAL string properties to TQString */
-TQString libhal_device_get_property_QString(LibHalContext *ctx, const char* udi, const char *key)
-{
- char* _ppt_string;
- TQString _ppt_QString;
- _ppt_string = libhal_device_get_property_string(ctx, udi, key, NULL);
- if ( _ppt_string )
- _ppt_QString = _ppt_string;
- libhal_free_string(_ppt_string);
- return _ppt_QString;
-}
-
-/* Constructor */
-HALBackend::HALBackend(MediaList &list, TQObject* parent)
- : TQObject()
- , BackendBase(list)
- , m_halContext(NULL)
- , m_halStoragePolicy(NULL)
- , m_parent(parent)
-{
- s_HALBackend = this;
-}
-
-/* Destructor */
-HALBackend::~HALBackend()
-{
- /* Close HAL connection */
- if (m_halContext)
- {
- const TQPtrList<Medium> medlist = m_mediaList.list();
- TQPtrListIterator<Medium> it (medlist);
- for ( const Medium *current_medium = it.current(); current_medium; current_medium = ++it)
- {
- if( !current_medium->id().startsWith( "/org/kde" ))
- unmount(current_medium->id());
- }
-
-
- /* Remove all the registered media first */
- int numDevices;
- char** halDeviceList = libhal_get_all_devices( m_halContext, &numDevices, NULL );
-
- if ( halDeviceList )
- {
- for ( int i = 0; i < numDevices; i++ )
- {
- m_mediaList.removeMedium( halDeviceList[i], false );
- }
- }
-
- libhal_free_string_array( halDeviceList );
-
- DBusError error;
- dbus_error_init(&error);
- libhal_ctx_shutdown(m_halContext, &error);
- libhal_ctx_free(m_halContext);
- }
-
- if (m_halStoragePolicy)
- libhal_storage_policy_free(m_halStoragePolicy);
-}
-
-/* Connect to the HAL */
-bool HALBackend::InitHal()
-{
- kdDebug(1219) << "Context new" << endl;
- m_halContext = libhal_ctx_new();
- if (!m_halContext)
- {
- kdDebug(1219) << "Failed to initialize HAL!" << endl;
- return false;
- }
-
- // Main loop integration
- kdDebug(1219) << "Main loop integration" << endl;
- DBusError error;
- dbus_error_init(&error);
- dbus_connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error);
-
- if (!dbus_connection || dbus_error_is_set(&error)) {
- dbus_error_free(&error);
- libhal_ctx_free(m_halContext);
- m_halContext = NULL;
- return false;
- }
-
- dbus_connection_set_exit_on_disconnect (dbus_connection, FALSE);
-
- MainLoopIntegration(dbus_connection);
- libhal_ctx_set_dbus_connection(m_halContext, dbus_connection);
-
- // HAL callback functions
- kdDebug(1219) << "Callback functions" << endl;
- libhal_ctx_set_device_added(m_halContext, HALBackend::hal_device_added);
- libhal_ctx_set_device_removed(m_halContext, HALBackend::hal_device_removed);
- libhal_ctx_set_device_new_capability (m_halContext, NULL);
- libhal_ctx_set_device_lost_capability (m_halContext, NULL);
- libhal_ctx_set_device_property_modified (m_halContext, HALBackend::hal_device_property_modified);
- libhal_ctx_set_device_condition(m_halContext, HALBackend::hal_device_condition);
-
- kdDebug(1219) << "Context Init" << endl;
- if (!libhal_ctx_init(m_halContext, &error))
- {
- if (dbus_error_is_set(&error))
- dbus_error_free(&error);
- libhal_ctx_free(m_halContext);
- m_halContext = NULL;
- kdDebug(1219) << "Failed to init HAL context!" << endl;
- return false;
- }
-
- /** @todo customize watch policy */
- kdDebug(1219) << "Watch properties" << endl;
- if (!libhal_device_property_watch_all(m_halContext, &error))
- {
- kdDebug(1219) << "Failed to watch HAL properties!" << endl;
- return false;
- }
-
- /* libhal-storage initialization */
- kdDebug(1219) << "Storage Policy" << endl;
- m_halStoragePolicy = libhal_storage_policy_new();
- /** @todo define libhal-storage icon policy */
-
- /* List devices at startup */
- return ListDevices();
-}
-
-/* List devices (at startup)*/
-bool HALBackend::ListDevices()
-{
- kdDebug(1219) << "ListDevices" << endl;
-
- int numDevices;
- char** halDeviceList = libhal_get_all_devices(m_halContext, &numDevices, NULL);
-
- if (!halDeviceList)
- return false;
-
- kdDebug(1219) << "HALBackend::ListDevices : " << numDevices << " devices found" << endl;
- for (int i = 0; i < numDevices; i++)
- AddDevice(halDeviceList[i], false);
-
- libhal_free_string_array( halDeviceList );
-
- return true;
-}
-
-/* Create a media instance for the HAL device "udi".
- This functions checks whether the device is worth listing */
-void HALBackend::AddDevice(const char *udi, bool allowNotification)
-{
- /* We don't deal with devices that do not expose their capabilities.
- If we don't check this, we will get a lot of warning messages from libhal */
- if (!libhal_device_property_exists(m_halContext, udi, "info.capabilities", NULL))
- return;
-
- /* If the device is already listed, do not process.
- This should not happen, but who knows... */
- /** @todo : refresh properties instead ? */
- if (m_mediaList.findById(udi))
- return;
-
- if (libhal_device_get_property_bool(m_halContext, "/org/freedesktop/Hal/devices/computer", "storage.disable_volume_handling", NULL))
- allowNotification=false;
-
- /* Add volume block devices */
- if (libhal_device_query_capability(m_halContext, udi, "volume", NULL))
- {
- /* We only list volumes that...
- * - are encrypted with LUKS or
- * - have a filesystem or
- * - have an audio track
- */
- if ( ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "crypto" ||
- libhal_device_get_property_QString(m_halContext, udi, "volume.fstype") != "crypto_LUKS"
- ) &&
- libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "filesystem" &&
- !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.has_audio", NULL) &&
- !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_blank", NULL) )
- return;
-
- /* Query drive udi */
- TQString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device");
- if ( driveUdi.isNull() ) // no storage - no fun
- return;
-
- // if the device is locked do not act upon it
- if (libhal_device_get_property_bool(m_halContext, driveUdi.ascii(), "info.locked", NULL))
- allowNotification=false;
-
- // if the device is locked do not act upon it
- if (libhal_device_get_property_bool(m_halContext, driveUdi.ascii(), "storage.partition_table_changed", NULL))
- allowNotification=false;
-
- /** @todo check exclusion list **/
-
- /* Special handling for clear crypto volumes */
- LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi);
- if (!halVolume)
- return;
- const char* backingVolumeUdi = libhal_volume_crypto_get_backing_volume_udi(halVolume);
- if ( backingVolumeUdi != NULL )
- {
- /* The crypto drive was unlocked and may now be mounted... */
- kdDebug(1219) << "HALBackend::AddDevice : ClearVolume appeared for " << backingVolumeUdi << endl;
- ResetProperties(backingVolumeUdi, allowNotification);
- libhal_volume_free(halVolume);
- return;
- }
- libhal_volume_free(halVolume);
-
- /* Create medium */
- Medium* medium = new Medium(udi, udi, "");
- setVolumeProperties(medium);
-
- if ( isInFstab( medium ).isNull() )
- {
- // if it's not mountable by user and not by HAL, don't show it at all
- if ( ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") == "filesystem" &&
- !libhal_device_get_property_bool(m_halContext, udi, "volume.is_mounted", NULL ) ) &&
- ( libhal_device_get_property_bool(m_halContext, udi, "volume.ignore", NULL ) ) )
- {
- delete medium;
- return;
- }
- }
-
- // instert medium into list
- m_mediaList.addMedium(medium, allowNotification);
-
- // finally check for automount
- TQMap<TQString,TQString> options = MediaManagerUtils::splitOptions(mountoptions(udi));
- kdDebug() << "automount " << options["automount"] << endl;
- if (options["automount"] == "true" && allowNotification ) {
- TQStringVariantMap mountResult = mount(medium);
- if (!mountResult["result"].toBool()) {
- TQString error = mountResult.contains("errStr") ? mountResult["errStr"].toString() : i18n("Unknown mount error.");
- kdDebug() << "error " << error << endl;
- }
- }
- return;
- }
-
- /* Floppy & zip drives */
- if (libhal_device_query_capability(m_halContext, udi, "storage", NULL))
- if ((libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "floppy") ||
- (libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "zip") ||
- (libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "jaz"))
- {
- if (! libhal_device_get_property_bool(m_halContext, udi, "storage.removable.media_available", NULL) )
- allowNotification = false;
- /* Create medium */
- Medium* medium = new Medium(udi, udi, "");
- // if the storage has a volume, we ignore it
- if ( setFloppyProperties(medium) )
- m_mediaList.addMedium(medium, allowNotification);
- else
- delete medium;
- return;
- }
-
- /* Camera handled by gphoto2*/
- if (libhal_device_query_capability(m_halContext, udi, "camera", NULL) &&
- ((libhal_device_get_property_QString(m_halContext, udi, "camera.access_method")=="ptp") ||
-
- (libhal_device_property_exists(m_halContext, udi, "camera.libgphoto2.support", NULL) &&
- libhal_device_get_property_bool(m_halContext, udi, "camera.libgphoto2.support", NULL)))
- )
- {
- /* Create medium */
- Medium* medium = new Medium(udi, udi, "");
- setCameraProperties(medium);
- m_mediaList.addMedium(medium, allowNotification);
- return;
- }
-}
-
-void HALBackend::RemoveDevice(const char *udi)
-{
- const Medium *medium = m_mediaList.findByClearUdi(udi);
- if (medium) {
- ResetProperties(medium->id().ascii());
- } else {
- m_mediaList.removeMedium(udi, true);
- }
-}
-
-void HALBackend::ModifyDevice(const char *udi, const char* key)
-{
- kdDebug(1219) << "HALBackend::ModifyDevice for '" << udi << "' on '" << key << "'\n";
-
- const char* mediumUdi = findMediumUdiFromUdi(udi);
- if (!mediumUdi)
- return;
- bool allowNotification = false;
- if (strcmp(key, "storage.removable.media_available") == 0)
- allowNotification = libhal_device_get_property_bool(m_halContext, udi, key, NULL);
- ResetProperties(mediumUdi, allowNotification);
-}
-
-void HALBackend::DeviceCondition(const char* udi, const char* condition)
-{
- TQString conditionName = TQString(condition);
- kdDebug(1219) << "Processing device condition " << conditionName << " for " << udi << endl;
-
- if (conditionName == "EjectPressed") {
- const Medium* medium = m_mediaList.findById(udi);
- if (!medium) {
- /* the ejectpressed appears on the drive and we need to find the volume */
- const TQPtrList<Medium> medlist = m_mediaList.list();
- TQPtrListIterator<Medium> it (medlist);
- for ( const Medium *current_medium = it.current(); current_medium; current_medium = ++it)
- {
- if( current_medium->id().startsWith( "/org/kde" ))
- continue;
- TQString driveUdi = libhal_device_get_property_QString(m_halContext, current_medium->id().latin1(), "block.storage_device");
- if (driveUdi == udi)
- {
- medium = current_medium;
- break;
- }
- }
- }
- if (medium) {
- TDEProcess p;
- p << "tdeio_media_mounthelper" << "-e" << medium->name();
- p.start(TDEProcess::DontCare);
- }
- }
-
- const char* mediumUdi = findMediumUdiFromUdi(udi);
- kdDebug() << "findMedumUdiFromUdi " << udi << " returned " << mediumUdi << endl;
- if (!mediumUdi)
- return;
-
- /* TODO: Warn the user that (s)he should unmount devices before unplugging */
- if (conditionName == "VolumeUnmountForced")
- ResetProperties(mediumUdi);
-
- /* Reset properties after mounting */
- if (conditionName == "VolumeMount")
- ResetProperties(mediumUdi);
-
- /* Reset properties after unmounting */
- if (conditionName == "VolumeUnmount")
- ResetProperties(mediumUdi);
-
-}
-
-void HALBackend::MainLoopIntegration(DBusConnection *dbusConnection)
-{
- m_dBusQtConnection = new DBusQt::Connection(m_parent);
- m_dBusQtConnection->dbus_connection_setup_with_qt_main(dbusConnection);
-}
-
-/******************************************
- ** Properties attribution **
- ******************************************/
-
-/* Return the medium udi that should be updated when recieving a call for
- device udi */
-const char* HALBackend::findMediumUdiFromUdi(const char* udi)
-{
- /* Easy part : this Udi is already registered as a device */
- const Medium* medium = m_mediaList.findById(udi);
- if (medium)
- return medium->id().ascii();
-
- /* Hard part : this is a volume whose drive is registered */
- if (libhal_device_property_exists(m_halContext, udi, "info.capabilities", NULL))
- if (libhal_device_query_capability(m_halContext, udi, "volume", NULL))
- {
- /* check if this belongs to an encrypted volume */
- LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi);
- if (!halVolume) return NULL;
- const char* backingUdi = libhal_volume_crypto_get_backing_volume_udi(halVolume);
- if (backingUdi != NULL) {
- const char* result = findMediumUdiFromUdi(backingUdi);
- libhal_volume_free(halVolume);
- return result;
- }
- libhal_volume_free(halVolume);
-
- /* this is a volume whose drive is registered */
- TQString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device");
- return findMediumUdiFromUdi(driveUdi.ascii());
- }
-
- return NULL;
-}
-
-void HALBackend::ResetProperties(const char* mediumUdi, bool allowNotification)
-{
- kdDebug(1219) << "HALBackend::setProperties" << endl;
- if ( TQString::fromLatin1( mediumUdi ).startsWith( "/org/kde/" ) )
- {
- const Medium *cmedium = m_mediaList.findById(mediumUdi);
- if ( cmedium )
- {
- Medium m( *cmedium );
- if ( setFstabProperties( &m ) ) {
- kdDebug() << "setFstabProperties worked" << endl;
- m_mediaList.changeMediumState(m, allowNotification);
- }
- return;
- }
- }
-
- Medium* m = new Medium(mediumUdi, mediumUdi, "");
-
- if (libhal_device_query_capability(m_halContext, mediumUdi, "volume", NULL))
- setVolumeProperties(m);
- if (libhal_device_query_capability(m_halContext, mediumUdi, "storage", NULL))
- setFloppyProperties(m);
- if (libhal_device_query_capability(m_halContext, mediumUdi, "camera", NULL))
- setCameraProperties(m);
-
- m_mediaList.changeMediumState(*m, allowNotification);
-
- delete m;
-}
-
-void HALBackend::setVolumeProperties(Medium* medium)
-{
- kdDebug(1219) << "HALBackend::setVolumeProperties for " << medium->id() << endl;
-
- const char* udi = medium->id().ascii();
- /* Check if the device still exists */
- if (!libhal_device_exists(m_halContext, udi, NULL))
- return;
-
- /* Get device information from libhal-storage */
- LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi);
- if (!halVolume)
- return;
- TQString driveUdi = libhal_volume_get_storage_device_udi(halVolume);
- LibHalDrive* halDrive = 0;
- if ( !driveUdi.isNull() )
- halDrive = libhal_drive_from_udi(m_halContext, driveUdi.ascii());
- if (!halDrive) {
- // at times HAL sends an UnmountForced event before the device is removed
- libhal_volume_free(halVolume);
- return;
- }
-
- medium->setName(
- generateName(libhal_volume_get_device_file(halVolume)) );
-
- LibHalVolume* halClearVolume = NULL;
- if ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") == "crypto" )
- {
- kdDebug(1219) << "HALBackend::setVolumeProperties : crypto volume" << endl;
-
- medium->setEncrypted(true);
- char* clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume);
- TQString clearUdiString;
- if (clearUdi != NULL) {
- kdDebug(1219) << "HALBackend::setVolumeProperties : crypto clear volume avail - " << clearUdi << endl;
- halClearVolume = libhal_volume_from_udi(m_halContext, clearUdi);
- // ignore if halClearVolume is NULL -> just not unlocked in this case
- clearUdiString = clearUdi;
- libhal_free_string(clearUdi);
- }
-
- if (halClearVolume)
- {
- medium->setLocked(false);
- medium->setMountable(true);
- medium->setDeviceNode(libhal_volume_get_device_file(halVolume));
- medium->setClearDeviceUdi(clearUdiString);
- medium->setMountPoint(libhal_volume_get_mount_point(halClearVolume));
- medium->setFsType(libhal_volume_get_fstype(halClearVolume));
- medium->setMounted(libhal_volume_is_mounted(halClearVolume));
- }
- else
- {
- medium->setLocked(true);
- medium->setMountable(false);
- medium->setDeviceNode(libhal_volume_get_device_file(halVolume));
- medium->setClearDeviceUdi(TQString::null);
- medium->setMountPoint(TQString::null);
- medium->setFsType(TQString::null);
- medium->setMounted(false);
- }
- }
- else
- {
- kdDebug(1219) << "HALBackend::setVolumeProperties : normal volume" << endl;
- medium->setEncrypted(false);
- medium->setMountable(true);
- medium->setDeviceNode(libhal_volume_get_device_file(halVolume));
- medium->setMountPoint(TQString::fromUtf8(libhal_volume_get_mount_point(halVolume)));
- medium->setFsType(libhal_volume_get_fstype(halVolume));
- medium->setMounted(libhal_volume_is_mounted(halVolume));
- }
-
-
- char* name = libhal_volume_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy);
- TQString volume_name = TQString::fromUtf8(name);
- TQString media_name = volume_name;
- /* media_name contains something like "501M Removable Media" or "Blank CD-R"
- The former needs special handling for correct translation
- */
- if (media_name.find(TQRegExp("^[0-9]+\\.?[0-9]*[KMGT] (Removable )?Media$")) > -1) {
- TQString pattern = media_name.section(" ", 1);
- media_name.replace(pattern, i18n(pattern.utf8()));
- medium->setLabel(media_name);
- } else {
- medium->setLabel(i18n(media_name.utf8()));
- }
-
- free(name);
-
- TQString mimeType;
- if (libhal_volume_is_disc(halVolume))
- {
- mimeType = "media/cdrom" + MOUNT_MEDIA_SUFFIX;
-
- LibHalVolumeDiscType discType = libhal_volume_get_disc_type(halVolume);
- if ((discType == LIBHAL_VOLUME_DISC_TYPE_CDROM) ||
- (discType == LIBHAL_VOLUME_DISC_TYPE_CDR) ||
- (discType == LIBHAL_VOLUME_DISC_TYPE_CDRW))
- {
- if (libhal_volume_disc_is_blank(halVolume))
- {
- mimeType = "media/blankcd";
- medium->setMountable(false);
- medium->setBaseURL(TQString::null);
- }
- else
- {
- mimeType = "media/cdwriter" + MOUNT_MEDIA_SUFFIX;
- }
- }
- else if ((discType == LIBHAL_VOLUME_DISC_TYPE_DVDROM) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDRAM) ||
- (discType == LIBHAL_VOLUME_DISC_TYPE_DVDR) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDRW) ||
- (discType == LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW) )
- {
- if (libhal_volume_disc_is_blank(halVolume))
- {
- mimeType = "media/blankdvd";
- medium->setMountable(false);
- medium->setBaseURL(TQString::null);
- }
- else
- {
- mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
- }
- }
- else if ((discType == LIBHAL_VOLUME_DISC_TYPE_BDROM) || (discType == LIBHAL_VOLUME_DISC_TYPE_BDR) ||
- (discType == LIBHAL_VOLUME_DISC_TYPE_BDRE) || (discType == LIBHAL_VOLUME_DISC_TYPE_HDDVDROM) ||
- (discType == LIBHAL_VOLUME_DISC_TYPE_HDDVDR) || (discType == LIBHAL_VOLUME_DISC_TYPE_HDDVDRW) )
- {
- if (libhal_volume_disc_is_blank(halVolume))
- {
- mimeType = "media/blankbluray";
- medium->setMountable(false);
- medium->setBaseURL(TQString::null);
- }
- else
- {
- mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
- }
- }
-
- if (libhal_volume_disc_has_audio(halVolume) && !libhal_volume_disc_has_data(halVolume))
- {
- mimeType = "media/audiocd";
- medium->setMountable(false);
- medium->setBaseURL("audiocd:/?device=" + TQString(libhal_volume_get_device_file(halVolume)));
- }
-
- medium->setIconName(TQString::null);
-
- /* check if the disc id a vcd or a video dvd */
- if (libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_vcd", NULL))
- {
- mimeType = "media/vcd";
- }
- else if (libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_svcd", NULL))
- {
- mimeType = "media/svcd";
- }
- else if (libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_videodvd", NULL))
- {
- mimeType = "media/dvdvideo";
- }
-
- }
- else
- {
- mimeType = "media/hdd" + MOUNT_MEDIA_SUFFIX;
- medium->setIconName(TQString::null); // reset icon
- if (libhal_drive_is_hotpluggable(halDrive))
- {
- mimeType = "media/removable" + MOUNT_MEDIA_SUFFIX;
- medium->needMounting();
- switch (libhal_drive_get_type(halDrive)) {
- case LIBHAL_DRIVE_TYPE_COMPACT_FLASH:
- medium->setIconName("media-flash-compact_flash" + MOUNTED_ICON_SUFFIX);
- break;
- case LIBHAL_DRIVE_TYPE_MEMORY_STICK:
- medium->setIconName("media-flash-memory_stick" + MOUNTED_ICON_SUFFIX);
- break;
- case LIBHAL_DRIVE_TYPE_SMART_MEDIA:
- medium->setIconName("media-flash-smart_media" + MOUNTED_ICON_SUFFIX);
- break;
- case LIBHAL_DRIVE_TYPE_SD_MMC:
- medium->setIconName("media-flash-sd_mmc" + MOUNTED_ICON_SUFFIX);
- break;
- case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
- {
- medium->setIconName("ipod" + MOUNTED_ICON_SUFFIX);
- if (libhal_device_get_property_QString(m_halContext, driveUdi.latin1(), "info.product") == "iPod" &&
- KProtocolInfo::isKnownProtocol( TQString("ipod") ) )
- {
- medium->setBaseURL("ipod:/");
- medium->setMountable(true);
- medium->setMounted(libhal_volume_is_mounted(halVolume));
- }
- break;
- }
- case LIBHAL_DRIVE_TYPE_CAMERA:
- {
- mimeType = "media/camera" + MOUNT_MEDIA_SUFFIX;
- const char *physdev = libhal_drive_get_physical_device_udi(halDrive);
- // get model from camera
- if (physdev && libhal_device_query_capability(m_halContext, physdev, "camera", NULL))
- {
- if (libhal_device_property_exists(m_halContext, physdev, "usb_device.product", NULL))
- medium->setLabel(libhal_device_get_property_QString(m_halContext, physdev, "usb_device.product"));
- else if (libhal_device_property_exists(m_halContext, physdev, "usb.product", NULL))
- medium->setLabel(libhal_device_get_property_QString(m_halContext, physdev, "usb.product"));
- }
- break;
- }
- case LIBHAL_DRIVE_TYPE_TAPE:
- medium->setIconName("media-tape" + MOUNTED_ICON_SUFFIX);
- break;
- default:
- medium->setIconName(TQString::null);
- }
-
- if (medium->isMounted() && TQFile::exists(medium->mountPoint() + "/dcim"))
- {
- mimeType = "media/camera" + MOUNT_MEDIA_SUFFIX;
- }
- }
- }
- medium->setMimeType(mimeType);
-
- libhal_drive_free(halDrive);
- libhal_volume_free(halVolume);
-}
-
-bool HALBackend::setFstabProperties( Medium *medium )
-{
- TQString mp = isInFstab(medium);
-
- if (!mp.isNull() && !medium->id().startsWith( "/org/kde" ) )
- {
- // now that we know it's in fstab, we have to find out if it's mounted
- KMountPoint::List mtab = KMountPoint::currentMountPoints();
-
- KMountPoint::List::iterator it = mtab.begin();
- KMountPoint::List::iterator end = mtab.end();
-
- bool mounted = false;
-
- for (; it!=end; ++it)
- {
- if ((*it)->mountedFrom() == medium->deviceNode() && (*it)->mountPoint() == mp )
- {
- mounted = true;
- break;
- }
- }
-
- kdDebug() << mp << " " << mounted << " " << medium->deviceNode() << " " << endl;
- TQString fstype = medium->fsType();
- if ( fstype.isNull() )
- fstype = "auto";
-
- medium->setMountable(true);
- medium->setDeviceNode(medium->deviceNode());
- medium->setMountPoint(mp);
- medium->setFsType(fstype);
- medium->setMounted(mounted);
-
- return true;
- }
-
- return false;
-
-}
-
-// Handle floppies and zip drives
-bool HALBackend::setFloppyProperties(Medium* medium)
-{
- kdDebug(1219) << "HALBackend::setFloppyProperties for " << medium->id() << endl;
-
- const char* udi = medium->id().ascii();
- /* Check if the device still exists */
- if (!libhal_device_exists(m_halContext, udi, NULL))
- return false;
-
- LibHalDrive* halDrive = libhal_drive_from_udi(m_halContext, udi);
- if (!halDrive)
- return false;
-
- TQString drive_type = libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type");
-
- if (drive_type == "zip") {
- int numVolumes;
- char** volumes = libhal_drive_find_all_volumes(m_halContext, halDrive, &numVolumes);
- libhal_free_string_array(volumes);
- kdDebug(1219) << " found " << numVolumes << " volumes" << endl;
- if (numVolumes)
- {
- libhal_drive_free(halDrive);
- return false;
- }
- }
-
- medium->setName( generateName(libhal_drive_get_device_file(halDrive)) );
- medium->setLabel(i18n("Unknown Drive"));
-
- // HAL hates floppies - so we have to do it twice ;(
- medium->setMountable(true);
- medium->setDeviceNode(libhal_drive_get_device_file(halDrive));
- medium->setMountPoint(TQString::null);
- medium->setFsType(TQString::null);
- medium->setMounted(false);
- setFloppyMountState(medium);
-
- if (drive_type == "floppy")
- {
- if (medium->isMounted()) // don't use _SUFFIX here as it accesses the volume
- medium->setMimeType("media/floppy_mounted" );
- else
- medium->setMimeType("media/floppy_unmounted");
- medium->setLabel(i18n("Floppy Drive"));
- }
- else if (drive_type == "zip")
- {
- if (medium->isMounted())
- medium->setMimeType("media/zip_mounted" );
- else
- medium->setMimeType("media/zip_unmounted");
- medium->setLabel(i18n("Zip Drive"));
- }
-
- /** @todo And mimtype for JAZ drives ? */
-
- medium->setIconName(TQString::null);
-
- libhal_drive_free(halDrive);
-
- return true;
-}
-
-void HALBackend::setFloppyMountState( Medium *medium )
-{
- if ( !medium->id().startsWith( "/org/kde" ) )
- {
- KMountPoint::List mtab = KMountPoint::currentMountPoints();
- KMountPoint::List::iterator it = mtab.begin();
- KMountPoint::List::iterator end = mtab.end();
-
- TQString fstype;
- TQString mountpoint;
- for (; it!=end; ++it)
- {
- if ((*it)->mountedFrom() == medium->deviceNode() )
- {
- fstype = (*it)->mountType().isNull() ? (*it)->mountType() : "auto";
- mountpoint = (*it)->mountPoint();
- medium->setMountable(true);
- medium->setDeviceNode(medium->deviceNode());
- medium->setMountPoint(mountpoint);
- medium->setFsType(fstype);
- medium->setMounted(true);
- return;
- }
- }
- }
-}
-
-void HALBackend::setCameraProperties(Medium* medium)
-{
- kdDebug(1219) << "HALBackend::setCameraProperties for " << medium->id() << endl;
-
- const char* udi = medium->id().ascii();
- /* Check if the device still exists */
- if (!libhal_device_exists(m_halContext, udi, NULL))
- return;
-
- /** @todo find name */
- medium->setName("camera");
-
- TQString device = "camera:/";
-
- char *cam = libhal_device_get_property_string(m_halContext, udi, "camera.libgphoto2.name", NULL);
- DBusError error;
- dbus_error_init(&error);
- if (cam &&
- libhal_device_property_exists(m_halContext, udi, "usb.linux.device_number", NULL) &&
- libhal_device_property_exists(m_halContext, udi, "usb.bus_number", NULL))
- device.sprintf("camera://%s@[usb:%03d,%03d]/", cam,
- libhal_device_get_property_int(m_halContext, udi, "usb.bus_number", &error),
- libhal_device_get_property_int(m_halContext, udi, "usb.linux.device_number", &error));
-
- libhal_free_string(cam);
-
- /** @todo find the rest of this URL */
- medium->setMountable(false);
- medium->setBaseURL(device);
- medium->setMimeType("media/gphoto2camera");
- medium->setIconName(TQString::null);
- if (libhal_device_property_exists(m_halContext, udi, "usb_device.product", NULL))
- medium->setLabel(libhal_device_get_property_QString(m_halContext, udi, "usb_device.product"));
- else if (libhal_device_property_exists(m_halContext, udi, "usb.product", NULL))
- medium->setLabel(libhal_device_get_property_QString(m_halContext, udi, "usb.product"));
- else
- medium->setLabel(i18n("Camera"));
-}
-
-TQString HALBackend::generateName(const TQString &devNode)
-{
- return KURL(devNode).fileName();
-}
-
-/******************************************
- ** HAL CALL-BACKS **
- ******************************************/
-
-void HALBackend::hal_device_added(LibHalContext *ctx, const char *udi)
-{
- kdDebug(1219) << "HALBackend::hal_device_added " << udi << endl;
- Q_UNUSED(ctx);
- s_HALBackend->AddDevice(udi);
-}
-
-void HALBackend::hal_device_removed(LibHalContext *ctx, const char *udi)
-{
- kdDebug(1219) << "HALBackend::hal_device_removed " << udi << endl;
- Q_UNUSED(ctx);
- s_HALBackend->RemoveDevice(udi);
-}
-
-void HALBackend::hal_device_property_modified(LibHalContext *ctx, const char *udi,
- const char *key, dbus_bool_t is_removed, dbus_bool_t is_added)
-{
- kdDebug(1219) << "HALBackend::hal_property_modified " << udi << " -- " << key << endl;
- Q_UNUSED(ctx);
- Q_UNUSED(is_removed);
- Q_UNUSED(is_added);
- s_HALBackend->ModifyDevice(udi, key);
-}
-
-void HALBackend::hal_device_condition(LibHalContext *ctx, const char *udi,
- const char *condition_name,
- const char* message
- )
-{
- kdDebug(1219) << "HALBackend::hal_device_condition " << udi << " -- " << condition_name << endl;
- Q_UNUSED(ctx);
- Q_UNUSED(message);
- s_HALBackend->DeviceCondition(udi, condition_name);
-}
-
-TQStringList HALBackend::getHALmountoptions(TQString udi)
-{
- const char* _ppt_string;
- LibHalVolume* volume;
- LibHalDrive* drive;
-
- TQString _ppt_TQString;
-
- volume = libhal_volume_from_udi( m_halContext, udi.latin1() );
- if( volume )
- drive = libhal_drive_from_udi( m_halContext, libhal_volume_get_storage_device_udi( volume ) );
- else
- drive = libhal_drive_from_udi( m_halContext, udi.latin1() );
-
- if( !drive )
- return TQString::null;
-
- if( volume )
- _ppt_string = libhal_volume_policy_get_mount_options ( drive, volume, NULL );
- else
- _ppt_string = libhal_drive_policy_get_mount_options ( drive, NULL );
-
- _ppt_TQString = TQString(_ppt_string ? _ppt_string : "");
-
- return TQStringList::split(",",_ppt_TQString);
-}
-
-TQStringList HALBackend::mountoptions(const TQString &name)
-{
- const Medium* medium = m_mediaList.findById(name);
- if (!medium)
- return TQStringList(); // we don't know about that one
- if (!isInFstab(medium).isNull())
- return TQStringList(); // not handled by HAL - fstab entry
-
- TQString volume_udi = name;
- if (medium->isEncrypted()) {
- // see if we have a clear volume
- LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, medium->id().latin1());
- if (halVolume) {
- char* clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume);
- if (clearUdi != NULL) {
- volume_udi = clearUdi;
- libhal_free_string(clearUdi);
- } else {
- // if not unlocked yet then no mountoptions
- return TQStringList();
- }
- libhal_volume_free(halVolume);
- } else {
- // strange...
- return TQStringList();
- }
- }
-
- TDEConfig config("mediamanagerrc");
-
- bool use_defaults = true;
- if (config.hasGroup(name))
- {
- config.setGroup(name);
- use_defaults = config.readBoolEntry("use_defaults", false);
- }
-
- if (use_defaults)
- config.setGroup("DefaultOptions");
-
- char ** array = libhal_device_get_property_strlist(m_halContext, volume_udi.latin1(), "volume.mount.valid_options", NULL);
- TQMap<TQString,bool> valids;
-
- for (int index = 0; array && array[index]; ++index) {
- TQString t = array[index];
- if (t.endsWith("="))
- t = t.left(t.length() - 1);
- valids[t] = true;
- kdDebug() << "valid " << t << endl;
- }
- libhal_free_string_array(array);
- TQStringList result;
- TQString tmp;
-
- result << TQString("use_defaults=%1").arg(use_defaults ? "true" : "false");
-
- TQString fstype = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.fstype");
- if (fstype.isNull())
- fstype = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.policy.mount_filesystem");
-
- TQString drive_udi = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "block.storage_device");
-
- bool removable = false;
- if ( !drive_udi.isNull() )
- removable = libhal_device_get_property_bool(m_halContext, drive_udi.latin1(), "storage.removable", NULL)
- || libhal_device_get_property_bool(m_halContext, drive_udi.latin1(), "storage.hotpluggable", NULL);
-
- bool value;
- if (use_defaults)
- {
- value = config.readBoolEntry("automount", false);
- }
- else
- {
- QString current_group = config.group();
- config.setGroup(drive_udi);
- value = config.readBoolEntry("automount", false);
- config.setGroup(current_group);
- }
-
- if (libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_blank", NULL)
- || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_vcd", NULL)
- || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_svcd", NULL)
- || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_videodvd", NULL)
- || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.has_audio", NULL))
- value = false;
-
- result << TQString("automount=%1").arg(value ? "true" : "false");
-
- if (valids.contains("ro"))
- {
- value = config.readBoolEntry("ro", false);
- tmp = TQString("ro=%1").arg(value ? "true" : "false");
- if (fstype != "iso9660") // makes no sense
- result << tmp;
- }
-
- if (valids.contains("quiet"))
- {
- value = config.readBoolEntry("quiet", false);
- tmp = TQString("quiet=%1").arg(value ? "true" : "false");
- if (fstype != "iso9660") // makes no sense
- result << tmp;
- }
-
- if (valids.contains("flush"))
- {
- value = config.readBoolEntry("flush", fstype.endsWith("fat"));
- tmp = TQString("flush=%1").arg(value ? "true" : "false");
- result << tmp;
- }
-
- if (valids.contains("uid"))
- {
- value = config.readBoolEntry("uid", true);
- tmp = TQString("uid=%1").arg(value ? "true" : "false");
- result << tmp;
- }
-
- if (valids.contains("utf8"))
- {
- value = config.readBoolEntry("utf8", true);
- tmp = TQString("utf8=%1").arg(value ? "true" : "false");
- result << tmp;
- }
-
- if (valids.contains("shortname"))
- {
- TQString svalue = config.readEntry("shortname", "lower").lower();
- if (svalue == "windows nt")
- result << "shortname=winnt";
- else if (svalue == "windows 95")
- result << "shortname=win95";
- else if (svalue == "mixed")
- result << "shortname=mixed";
- else
- result << "shortname=lower";
- }
-
- // pass our locale to the ntfs-3g driver so it can translate local characters
- if (valids.contains("locale") && fstype == "ntfs-3g")
- {
- // have to obtain LC_CTYPE as returned by the `locale` command
- // check in the same order as `locale` does
- char *cType;
- if ( (cType = getenv("LC_ALL")) || (cType = getenv("LC_CTYPE")) || (cType = getenv("LANG")) ) {
- result << TQString("locale=%1").arg(cType);
- }
- }
-
- if (valids.contains("sync"))
- {
- value = config.readBoolEntry("sync", ( valids.contains("flush") && !fstype.endsWith("fat") ) && removable);
- tmp = TQString("sync=%1").arg(value ? "true" : "false");
- if (fstype != "iso9660") // makes no sense
- result << tmp;
- }
-
- if (valids.contains("noatime"))
- {
- value = config.readBoolEntry("atime", !fstype.endsWith("fat"));
- tmp = TQString("atime=%1").arg(value ? "true" : "false");
- if (fstype != "iso9660") // makes no sense
- result << tmp;
- }
-
- TQString mount_point = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.mount_point");
- if (mount_point.isEmpty())
- mount_point = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.policy.desired_mount_point");
-
- mount_point = config.readEntry("mountpoint", mount_point);
-
- if (!mount_point.startsWith("/"))
- mount_point = "/media/" + mount_point;
-
- result << TQString("mountpoint=%1").arg(mount_point);
- result << TQString("filesystem=%1").arg(fstype);
-
- if (valids.contains("data"))
- {
- TQString svalue = config.readEntry("journaling").lower();
- if (svalue == "ordered")
- result << "journaling=ordered";
- else if (svalue == "writeback")
- result << "journaling=writeback";
- else if (svalue == "data")
- result << "journaling=data";
- else
- result << "journaling=ordered";
- }
-
- return result;
-}
-
-bool HALBackend::setMountoptions(const TQString &name, const TQStringList &options )
-{
- kdDebug() << "setMountoptions " << name << " " << options << endl;
-
- TDEConfig config("mediamanagerrc");
- config.setGroup(name);
-
- TQMap<TQString,TQString> valids = MediaManagerUtils::splitOptions(options);
-
- const char *names[] = { "use_defaults", "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", 0 };
- for (int index = 0; names[index]; ++index)
- if (valids.contains(names[index]))
- config.writeEntry(names[index], valids[names[index]] == "true");
-
- if (valids.contains("shortname"))
- config.writeEntry("shortname", valids["shortname"]);
-
- if (valids.contains("journaling"))
- config.writeEntry("journaling", valids["journaling"]);
-
- if (!mountoptions(name).contains(TQString("mountpoint=%1").arg(valids["mountpoint"])))
- config.writeEntry("mountpoint", valids["mountpoint"]);
-
- if (valids.contains("automount")) {
- TQString drive_udi = libhal_device_get_property_QString(m_halContext, name.latin1(), "block.storage_device");
- config.setGroup(drive_udi);
- config.writeEntry("automount", valids["automount"]);
- }
-
- return true;
-}
-
-TQString startKdeSudoProcess(const TQString& tdesudoPath, const TQString& command,
- const TQString& dialogCaption, const TQString& dialogComment)
-{
- TDEProcess tdesudoProcess;
-
- tdesudoProcess << tdesudoPath
- << "-d"
- << "--noignorebutton"
- << "--caption" << dialogCaption
- << "--comment" << dialogComment
- << "-c" << command;
-
- // @todo handle tdesudo output
- tdesudoProcess.start(TDEProcess::Block);
-
- return TQString();
-}
-
-TQString startKdeSuProcess(const TQString& tdesuPath, const TQString& command,
- const TQString& dialogCaption)
-{
- TDEProcess tdesuProcess;
-
- tdesuProcess << tdesuPath
- << "-d"
- << "--noignorebutton"
- << "--caption" << dialogCaption
- << "-c" << command;
-
- // @todo handle tdesu output
- tdesuProcess.start(TDEProcess::Block);
-
- return TQString();
-}
-
-TQString startPrivilegedProcess(const TQString& command, const TQString& dialogCaption, const TQString& dialogComment)
-{
- TQString error;
-
- TQString tdesudoPath = TDEStandardDirs::findExe("tdesudo");
-
- if (!tdesudoPath.isEmpty())
- error = startKdeSudoProcess(tdesudoPath, command, dialogCaption, dialogComment);
- else {
- TQString tdesuPath = TDEStandardDirs::findExe("tdesu");
-
- if (!tdesuPath.isEmpty())
- error = startKdeSuProcess(tdesuPath, command, dialogCaption);
- }
-
- return error;
-}
-
-TQString privilegedMount(const char* udi, const char* mountPoint, const char** options, int numberOfOptions)
-{
- TQString error;
-
- kdDebug() << "run privileged mount for " << udi << endl;
-
- TQString dbusSendPath = TDEStandardDirs::findExe("dbus-send");
-
- // @todo return error message
- if (dbusSendPath.isEmpty())
- return TQString();
-
- TQString mountOptions;
- TQTextOStream optionsStream(&mountOptions);
- for (int optionIndex = 0; optionIndex < numberOfOptions; optionIndex++) {
- optionsStream << options[optionIndex];
- if (optionIndex < numberOfOptions - 1)
- optionsStream << ",";
- }
-
- TQString command;
- TQTextOStream(&command) << dbusSendPath
- << " --system --print-reply --dest=org.freedesktop.Hal " << udi
- << " org.freedesktop.Hal.Device.Volume.Mount string:" << mountPoint
- << " string: array:string:" << mountOptions;
-
- kdDebug() << "command: " << command << endl;
-
- error = startPrivilegedProcess(command,
- i18n("Authenticate"),
- i18n("<big><b>System policy prevents mounting internal media</b></big><br/>Authentication is required to perform this action. Please enter your password to verify."));
-
- return error;
-}
-
-TQString privilegedUnmount(const char* udi)
-{
- TQString error;
-
- kdDebug() << "run privileged unmount for " << udi << endl;
-
- TQString dbusSendPath = TDEStandardDirs::findExe("dbus-send");
-
- // @todo return error message
- if (dbusSendPath.isEmpty())
- return TQString();
-
- TQString command;
- TQTextOStream(&command) << dbusSendPath
- << " --system --print-reply --dest=org.freedesktop.Hal " << udi
- << " org.freedesktop.Hal.Device.Volume.Unmount array:string:force";
-
- kdDebug() << "command: " << command << endl;
-
- error = startPrivilegedProcess(command,
- i18n("Authenticate"),
- i18n("<big><b>System policy prevents unmounting media mounted by other users</b></big><br/>Authentication is required to perform this action. Please enter your password to verify."));
-
- return error;
-}
-
-static TQString mount_priv(const char *udi, const char *mount_point, const char **poptions, int noptions,
- DBusConnection *dbus_connection)
-{
- DBusMessage *dmesg, *reply;
- DBusError error;
-
- const char *fstype = "";
- if (!(dmesg = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
- "org.freedesktop.Hal.Device.Volume",
- "Mount"))) {
- kdDebug() << "mount failed for " << udi << ": could not create dbus message\n";
- return i18n("Internal Error");
- }
-
- if (!dbus_message_append_args (dmesg, DBUS_TYPE_STRING, &mount_point, DBUS_TYPE_STRING, &fstype,
- DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &poptions, noptions,
- DBUS_TYPE_INVALID))
- {
- kdDebug() << "mount failed for " << udi << ": could not append args to dbus message\n";
- dbus_message_unref (dmesg);
- return i18n("Internal Error");
- }
-
- TQString qerror;
-
- dbus_error_init (&error);
- if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, dmesg, -1, &error)))
- {
- TQString qerror = error.message;
- kdError() << "mount failed for " << udi << ": " << error.name << " - " << qerror << endl;
- if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.UnknownFilesystemType"))
- qerror = i18n("Invalid filesystem type");
- else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.PermissionDenied"))
- qerror = i18n("Permission denied<p>Please ensure that:<br>1. You have permission to access this device.<br>2. This device node is not listed in /etc/fstab.</p>");
- else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy"))
- qerror = privilegedMount(udi, mount_point, poptions, noptions);
- else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.AlreadyMounted"))
- qerror = i18n("Device is already mounted.");
- else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.InvalidMountpoint") && strlen(mount_point)) {
- dbus_message_unref (dmesg);
- dbus_error_free (&error);
- return mount_priv(udi, "", poptions, noptions, dbus_connection);
- }
- dbus_message_unref (dmesg);
- dbus_error_free (&error);
- return qerror;
- }
-
- kdDebug() << "mount queued for " << udi << endl;
-
- dbus_message_unref (dmesg);
- dbus_message_unref (reply);
-
- return qerror;
-
-}
-
-TQString HALBackend::listUsingProcesses(const Medium* medium)
-{
- TQString proclist, fullmsg;
- TQString fuserpath = TDEStandardDirs::findExe("fuser", TQString("/sbin:/usr/sbin:") + getenv( "PATH" ));
- FILE *fuser = NULL;
-
- uint counter = 0;
- if (!fuserpath.isEmpty()) {
- TQString cmdline = TQString("/usr/bin/env %1 -vm %2 2>&1").arg(fuserpath, TDEProcess::quote(medium->mountPoint()));
- fuser = popen(cmdline.latin1(), "r");
- }
- if (fuser) {
- proclist += "<pre>";
- TQTextIStream is(fuser);
- TQString tmp;
- while (!is.atEnd()) {
- tmp = is.readLine();
- tmp = TQStyleSheet::escape(tmp) + "\n";
-
- proclist += tmp;
- if (counter++ > 10)
- {
- proclist += "...";
- break;
- }
- }
- proclist += "</pre>";
- (void)pclose( fuser );
- }
- if (counter) {
- fullmsg = i18n("Moreover, programs still using the device "
- "have been detected. They are listed below. You have to "
- "close them or change their working directory before "
- "attempting to unmount the device again.");
- fullmsg += "<br>" + proclist;
- return fullmsg;
- } else {
- return TQString::null;
- }
-}
-
-TQString HALBackend::killUsingProcesses(const Medium* medium)
-{
- TQString proclist, fullmsg;
- TQString fuserpath = TDEStandardDirs::findExe("fuser", TQString("/sbin:/usr/sbin:") + getenv( "PATH" ));
- FILE *fuser = NULL;
-
- uint counter = 0;
- if (!fuserpath.isEmpty()) {
- TQString cmdline = TQString("/usr/bin/env %1 -vmk %2 2>&1").arg(fuserpath, TDEProcess::quote(medium->mountPoint()));
- fuser = popen(cmdline.latin1(), "r");
- }
- if (fuser) {
- proclist += "<pre>";
- TQTextIStream is(fuser);
- TQString tmp;
- while (!is.atEnd()) {
- tmp = is.readLine();
- tmp = TQStyleSheet::escape(tmp) + "\n";
-
- proclist += tmp;
- if (counter++ > 10)
- {
- proclist += "...";
- break;
- }
- }
- proclist += "</pre>";
- (void)pclose( fuser );
- }
- if (counter) {
- fullmsg = i18n("Programs that were still using the device "
- "have been forcibly terminated. They are listed below.");
- fullmsg += "<br>" + proclist;
- return fullmsg;
- } else {
- return TQString::null;
- }
-}
-
-void HALBackend::slotResult(TDEIO::Job *job)
-{
- kdDebug() << "slotResult " << mount_jobs[job] << endl;
-
- struct mount_job_data *data = mount_jobs[job];
- TQString& qerror = data->errorMessage;
- const Medium* medium = data->medium;
-
- if (job->error() == TDEIO::ERR_COULD_NOT_UNMOUNT) {
- TQString proclist(listUsingProcesses(medium));
-
- qerror += "<p>" + i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and "
- "currently mounted at <b>%4</b> could not be unmounted. ").arg(
- "system:/media/" + medium->name(),
- medium->deviceNode(),
- medium->prettyLabel(),
- medium->prettyBaseURL().pathOrURL()) + "</p>";
- qerror += "<p>" + i18n("The following error was returned by umount command:");
- qerror += "</p><pre>" + job->errorText() + "</pre>";
-
- if (!proclist.isEmpty()) {
- qerror += proclist;
- }
- } else if (job->error()) {
- qerror = job->errorText();
- }
-
- ResetProperties( medium->id().latin1() );
- mount_jobs.remove(job);
-
- /* Job completed. Notify the caller */
- data->error = job->error();
- data->completed = true;
- kapp->eventLoop()->exitLoop();
-}
-
-TQString HALBackend::isInFstab(const Medium *medium)
-{
- KMountPoint::List fstab = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions|KMountPoint::NeedRealDeviceName);
-
- KMountPoint::List::iterator it = fstab.begin();
- KMountPoint::List::iterator end = fstab.end();
-
- for (; it!=end; ++it)
- {
- TQString reald = (*it)->realDeviceName();
- if ( reald.endsWith( "/" ) )
- reald = reald.left( reald.length() - 1 );
- kdDebug() << "isInFstab -" << medium->deviceNode() << "- -" << reald << "- -" << (*it)->mountedFrom() << "-" << endl;
- if ((*it)->mountedFrom() == medium->deviceNode() || ( !medium->deviceNode().isEmpty() && reald == medium->deviceNode() ) )
- {
- TQStringList opts = (*it)->mountOptions();
- if (opts.contains("user") || opts.contains("users"))
- return (*it)->mountPoint();
- }
- }
-
- return TQString::null;
-}
-
-TQStringVariantMap HALBackend::mount(const Medium *medium)
-{
- TQStringVariantMap result;
- if (!medium->isMountable()) {
- result["errStr"] = i18n("%1 is not a mountable media.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
- else if (medium->isMounted()) {
- result["errStr"] = i18n("%1 is already mounted to %2.").arg(medium->deviceNode()).arg(medium->mountPoint());
- result["result"] = false;
- return result;
- }
-
- TQString mountPoint = isInFstab(medium);
- if (!mountPoint.isNull())
- {
- struct mount_job_data data;
- data.completed = false;
- data.medium = medium;
-
- kdDebug() << "triggering user mount " << medium->deviceNode() << " " << mountPoint << " " << medium->id() << endl;
- TDEIO::Job *job = TDEIO::mount( false, 0, medium->deviceNode(), mountPoint );
- connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*)));
- mount_jobs[job] = &data;
- // The caller expects the device to be mounted when the function
- // completes. Thus block until the job completes.
- while (!data.completed) {
- kapp->eventLoop()->enterLoop();
- }
- if (!data.error) {
- result["result"] = true;
- return result;
- }
- else {
- result["errStr"] = data.errorMessage; // Return the error message (if any) to the caller
- result["result"] = false;
- return result;
- }
- }
-
- kdDebug() << "mounting " << medium->id() << "..." << endl;
-
- TQStringList soptions;
- TQMap<TQString,TQString> valids = MediaManagerUtils::splitOptions(mountoptions(medium->id()));
- if (valids["flush"] == "true")
- soptions << "flush";
-
- if ((valids["uid"] == "true") && (medium->fsType() != "ntfs"))
- {
- soptions << TQString("uid=%1").arg(getuid());
- }
-
- if (valids["ro"] == "true")
- soptions << "ro";
-
- if (valids["atime"] != "true")
- soptions << "noatime";
-
- if (valids["quiet"] == "true")
- soptions << "quiet";
-
- if (valids["utf8"] == "true")
- soptions << "utf8";
-
- if (valids["sync"] == "true")
- soptions << "sync";
-
- if (medium->fsType() == "ntfs") {
- TQString fsLocale("locale=");
- fsLocale += setlocale(LC_ALL, "");
- soptions << fsLocale;
- }
-
- TQString mount_point = valids["mountpoint"];
- if (mount_point.startsWith("/media/"))
- mount_point = mount_point.mid(7);
-
- if (valids.contains("shortname"))
- {
- soptions << TQString("shortname=%1").arg(valids["shortname"]);
- }
-
- if (valids.contains("locale"))
- {
- soptions << TQString("locale=%1").arg(valids["locale"]);
- }
-
- if (valids.contains("journaling"))
- {
- TQString option = valids["journaling"];
- if (option == "data")
- soptions << TQString("data=journal");
- else if (option == "writeback")
- soptions << TQString("data=writeback");
- else
- soptions << TQString("data=ordered");
- }
-
- TQStringList hal_mount_options = getHALmountoptions(medium->id());
- for (TQValueListIterator<TQString> it=hal_mount_options.begin();it!=hal_mount_options.end();it++)
- {
- soptions << *it;
- kdDebug()<<"HALOption: "<<*it<<endl;
- if ((*it).startsWith("iocharset="))
- {
- soptions.remove("utf8");
- kdDebug()<<"\"iocharset=\" found. Removing \"utf8\" from options."<<endl;
- }
- }
-
- const char **options = new const char*[soptions.size() + 1];
- uint noptions = 0;
- for (TQStringList::ConstIterator it = soptions.begin(); it != soptions.end(); ++it, ++noptions)
- {
- options[noptions] = (*it).latin1();
- kdDebug()<<"Option: "<<*it<<endl;
- }
- options[noptions] = NULL;
-
- TQString qerror;
- if (!medium->isEncrypted()) {
- // normal volume
- qerror = mount_priv(medium->id().latin1(), mount_point.utf8(), options, noptions, dbus_connection);
- } else {
- // see if we have a clear volume
- qerror = i18n("Cannot mount encrypted locked drives!");
- LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, medium->id().latin1());
- if (halVolume) {
- char* clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume);
- if (clearUdi != NULL) {
- qerror = mount_priv(clearUdi, mount_point.utf8(), options, noptions, dbus_connection);
- libhal_free_string(clearUdi);
- }
- libhal_volume_free(halVolume);
- }
- }
-
- if (!qerror.isEmpty()) {
- kdError() << "mounting " << medium->id() << " returned " << qerror << endl;
- result["errStr"] = qerror;
- result["result"] = false;
- return result;
- }
-
- ResetProperties(medium->id().latin1());
-
- result["result"] = true;
- return result;
-}
-
-TQStringVariantMap HALBackend::mount(const TQString &id)
-{
- const Medium *medium = m_mediaList.findById(id);
- if (!medium) {
- TQStringVariantMap result;
- result["errStr"] = i18n("No such medium: %1").arg(id);
- result["result"] = false;
- return result;
- }
- return mount(medium);
-}
-
-TQStringVariantMap HALBackend::unmount(const TQString &id)
-{
- TQStringVariantMap result;
-
- const Medium* medium = m_mediaList.findById(id);
- if (!medium)
- {
- // now we get fancy: if the udi is no volume, it _might_ be a device with only one
- // volume on it (think CDs) - so we're so nice to the caller to unmount that volume
- LibHalDrive* halDrive = libhal_drive_from_udi(m_halContext, id.latin1());
- if (halDrive)
- {
- int numVolumes;
- char** volumes = libhal_drive_find_all_volumes(m_halContext, halDrive, &numVolumes);
- if (numVolumes == 1)
- medium = m_mediaList.findById(volumes[0]);
- }
- }
-
- if (!medium) {
- result["errStr"] = i18n("No such medium: %1").arg(id);
- result["result"] = false;
- return result;
- }
- else if (!medium->isMountable()) {
- result["errStr"] = i18n("%1 is not a mountable media.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
- else if (!medium->isMounted()) {
- result["errStr"] = i18n("%1 is already unmounted.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
-
- TQString mountPoint = isInFstab(medium);
- if (!mountPoint.isEmpty())
- {
- struct mount_job_data data;
- data.completed = false;
- data.medium = medium;
-
- kdDebug() << "triggering user unmount " << medium->deviceNode() << " " << mountPoint << endl;
- TDEIO::Job *job = TDEIO::unmount( medium->mountPoint(), false );
- connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*)));
- mount_jobs[job] = &data;
- // The caller expects the device to be unmounted when the function
- // completes. Thus block until the job completes.
- while (!data.completed) {
- kapp->eventLoop()->enterLoop();
- }
- if (!data.error) {
- result["result"] = true;
- return result;
- }
- else {
- result["errStr"] = data.errorMessage; // Return the error message (if any) to the caller
- result["result"] = false;
- return result;
- }
- }
-
- DBusMessage *dmesg, *reply;
- DBusError error;
- const char *options[2];
- TQString udi = TQString::null;
-
- if (!medium->isEncrypted()) {
- // normal volume
- udi = medium->id();
- } else {
- // see if we have a clear volume
- LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, medium->id().latin1());
- if (halVolume) {
- char *clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume);
- udi = clearUdi;
- libhal_free_string(clearUdi);
- libhal_volume_free(halVolume);
- }
- }
- if (udi.isNull()) {
- kdDebug() << "unmount failed: no udi" << endl;
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- kdDebug() << "unmounting " << udi << "..." << endl;
-
- dbus_error_init(&error);
- DBusConnection *dbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
- if (dbus_error_is_set(&error))
- {
- dbus_error_free(&error);
- result["errStr"] = i18n("Unknown error");
- result["result"] = false;
- return result;
- }
-
- if (!(dmesg = dbus_message_new_method_call ("org.freedesktop.Hal", udi.latin1(),
- "org.freedesktop.Hal.Device.Volume",
- "Unmount"))) {
- kdDebug() << "unmount failed for " << udi << ": could not create dbus message\n";
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- options[0] = "force";
- options[1] = 0;
-
- if (!dbus_message_append_args (dmesg, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &options, 0,
- DBUS_TYPE_INVALID))
- {
- kdDebug() << "unmount failed for " << udi << ": could not append args to dbus message\n";
- dbus_message_unref (dmesg);
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- char thisunmounthasfailed = 0;
- dbus_error_init (&error);
- if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, dmesg, -1, &error)))
- {
- thisunmounthasfailed = 1;
- TQString qerror, reason, origqerror;
-
- if (!strcmp(error.name, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy")) {
- qerror = privilegedUnmount(udi.latin1());
-
- if (qerror.isEmpty()) {
- dbus_message_unref(dmesg);
- dbus_error_free(&error);
- result["result"] = true;
- return result;
- }
-
- // @todo handle unmount error message
- }
-
- kdDebug() << "unmount failed for " << udi << ": " << error.name << " " << error.message << endl;
- qerror += "<p>" + i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and "
- "currently mounted at <b>%4</b> could not be unmounted. ").arg(
- "system:/media/" + medium->name(),
- medium->deviceNode(),
- medium->prettyLabel(),
- medium->prettyBaseURL().pathOrURL()) + "</p>";
- qerror += "<p>" + i18n("Unmounting failed due to the following error:") + "</p>";
- if (!strcmp(error.name, "org.freedesktop.Hal.Device.Volume.Busy")) {
- reason = i18n("Device is Busy:");
- thisunmounthasfailed = 2;
- } else if (!strcmp(error.name, "org.freedesktop.Hal.Device.Volume.NotMounted")) {
- // this is faking. The error is that the device wasn't mounted by hal (but by the system)
- reason = i18n("Permission denied<p>Please ensure that:<br>1. You have permission to access this device.<br>2. This device was originally mounted using TDE.</p>");
- } else {
- reason = error.message;
- }
- qerror += "<p><b>" + reason + "</b></p>";
- origqerror = qerror;
-
- // Include list of processes (if any) using the device in the error message
- reason = listUsingProcesses(medium);
- if (!reason.isEmpty()) {
- qerror += reason;
- if (thisunmounthasfailed == 2) { // Failed as BUSY
- if (KMessageBox::warningYesNo(0, i18n("%1<p><b>Would you like to forcibly terminate these processes?</b><br><i>All unsaved data would be lost</i>").arg(qerror)) == KMessageBox::Yes) {
- qerror = origqerror;
- reason = killUsingProcesses(medium);
- TQStringVariantMap unmountResult = HALBackend::unmount(udi);
- if (unmountResult["result"].toBool())
- {
- thisunmounthasfailed = 0;
- }
- }
- }
- }
-
- if (thisunmounthasfailed != 0) {
- dbus_message_unref (dmesg);
- dbus_error_free (&error);
- result["errStr"] = qerror;
- result["result"] = false;
- return result;
- }
- }
-
- kdDebug() << "unmount queued for " << udi << endl;
-
- dbus_message_unref (dmesg);
- if (reply) {
- dbus_message_unref (reply);
- }
-
- ResetProperties(medium->id().latin1());
-
- while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ;
-
- result["result"] = true;
- return result;
-}
-
-TQStringVariantMap HALBackend::unlock(const TQString &id, const TQString &password)
-{
- TQStringVariantMap result;
-
- const Medium *medium = m_mediaList.findById(id);
- if (!medium) {
- result["errStr"] = i18n("No such medium: %1").arg(id);
- result["result"] = false;
- return result;
- }
- else if (!medium->isEncrypted()) {
- result["errStr"] = i18n("%1 is not an encrypted media.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
- else if (!medium->needUnlocking()) {
- result["errStr"] = i18n("%1 is already unlocked.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
-
- const char *udi = medium->id().latin1();
- DBusMessage *msg = NULL;
- DBusMessage *reply = NULL;
- DBusError error;
-
- kdDebug() << "Setting up " << udi << " for crypto\n" <<endl;
-
- msg = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
- "org.freedesktop.Hal.Device.Volume.Crypto",
- "Setup");
- if (msg == NULL) {
- kdDebug() << "unlock failed for " << udi << ": could not create dbus message\n";
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- TQCString pwdUtf8 = password.utf8();
- const char *pwd_utf8 = pwdUtf8;
- if (!dbus_message_append_args (msg, DBUS_TYPE_STRING, &pwd_utf8, DBUS_TYPE_INVALID)) {
- kdDebug() << "unlock failed for " << udi << ": could not append args to dbus message\n";
- dbus_message_unref (msg);
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- dbus_error_init (&error);
- if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, msg, -1, &error)) ||
- dbus_error_is_set (&error))
- {
- TQString qerror = i18n("Internal Error");
- kdDebug() << "unlock failed for " << udi << ": " << error.name << " " << error.message << endl;
- if (strcmp (error.name, "org.freedesktop.Hal.Device.Volume.Crypto.SetupPasswordError") == 0) {
- qerror = i18n("Wrong password");
- }
- dbus_error_free (&error);
- dbus_message_unref (msg);
- while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ;
- result["errStr"] = qerror;
- result["result"] = false;
- return result;
- }
-
- dbus_message_unref (msg);
- dbus_message_unref (reply);
-
- while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ;
-
- result["result"] = true;
- return result;
-}
-
-TQStringVariantMap HALBackend::lock(const TQString &id)
-{
- TQStringVariantMap result;
-
- const Medium *medium = m_mediaList.findById(id);
- if (!medium) {
- result["errStr"] = i18n("No such medium: %1").arg(id);
- result["result"] = false;
- return result;
- }
- else if (!medium->isEncrypted()) {
- result["errStr"] = i18n("%1 is not an encrypted media.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
- else if (medium->needUnlocking()) {
- result["errStr"] = i18n("%1 is already locked.").arg(medium->deviceNode());
- result["result"] = false;
- return result;
- }
-
- const char *udi = medium->id().latin1();
- DBusMessage *msg = NULL;
- DBusMessage *reply = NULL;
- DBusError error;
-
- kdDebug() << "Tear down " << udi << "\n" <<endl;
-
- msg = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
- "org.freedesktop.Hal.Device.Volume.Crypto",
- "Teardown");
- if (msg == NULL) {
- kdDebug() << "lock failed for " << udi << ": could not create dbus message\n";
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- if (!dbus_message_append_args (msg, DBUS_TYPE_INVALID)) {
- kdDebug() << "lock failed for " << udi << ": could not append args to dbus message\n";
- dbus_message_unref (msg);
- result["errStr"] = i18n("Internal error");
- result["result"] = false;
- return result;
- }
-
- dbus_error_init (&error);
- if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, msg, -1, &error)) ||
- dbus_error_is_set (&error))
- {
- TQString qerror = i18n("Internal Error");
- kdDebug() << "lock failed for " << udi << ": " << error.name << " " << error.message << endl;
- dbus_error_free (&error);
- dbus_message_unref (msg);
- while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ;
- result["errStr"] = qerror;
- result["result"] = false;
- return result;
- }
-
- dbus_message_unref (msg);
- dbus_message_unref (reply);
-
- ResetProperties(udi);
-
- while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ;
-
- result["result"] = true;
- return result;
-}
-
-#include "halbackend.moc"
diff --git a/tdeioslave/media/mediamanager/halbackend.h b/tdeioslave/media/mediamanager/halbackend.h
deleted file mode 100644
index ed512fa7b..000000000
--- a/tdeioslave/media/mediamanager/halbackend.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/* This file is part of the KDE Project
- Copyright (c) 2004-2005 Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-/**
-* This is a media:/ backend for the freedesktop Hardware Abstraction Layer
-* Usage : create an instance of HALBackend, then call InitHal(). A false
-* result from the later function means that something went wrong and that
-* the backend shall not be used.
-*
-* @author Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org>
-* @short media:/ backend for the HAL
-*/
-
-#ifndef _HALBACKEND_H_
-#define _HALBACKEND_H_
-
-#include "backendbase.h"
-
-#include <tqobject.h>
-#include <tqstringlist.h>
-#include <tqstring.h>
-#include <tqregexp.h>
-
-#include <config.h>
-
-/* We acknowledge the the dbus API is unstable */
-#define DBUS_API_SUBJECT_TO_CHANGE
-/* DBus-Qt bindings */
-#include <dbus/connection.h>
-/* HAL libraries */
-#include <libhal.h>
-#include <libhal-storage.h>
-
-namespace TDEIO {
- class Job;
-}
-
-class HALBackend : public TQObject, public BackendBase
-{
-Q_OBJECT
-
-public:
- /**
- * Constructor
- */
- HALBackend(MediaList &list, TQObject* parent);
-
- /**
- * Destructor
- */
- ~HALBackend();
-
- /**
- * Perform HAL initialization.
- *
- * @return true if succeded. If not, rely on some other backend
- */
- bool InitHal();
-
- /**
- * List all devices and append them to the media device list (called only once, at startup).
- *
- * @return true if succeded, false otherwise
- */
- bool ListDevices();
-
- TQStringList mountoptions(const TQString &id);
-
- bool setMountoptions(const TQString &id, const TQStringList &options);
-
- TQStringVariantMap mount(const TQString &id);
- TQStringVariantMap mount(const Medium *medium);
- TQStringVariantMap unmount(const TQString &id);
- TQStringVariantMap unlock(const TQString &id, const TQString &password);
- TQStringVariantMap lock(const TQString &id);
-
-private:
- /**
- * Append a device in the media list. This function will check if the device
- * is worth listing.
- *
- * @param udi Universal Device Id
- * @param allowNotification Indicates if this event will be notified to the user
- */
- void AddDevice(const char* udi, bool allowNotification=true);
-
- /**
- * Remove a device from the device list
- *
- * @param udi Universal Device Id
- */
- void RemoveDevice(const char* udi);
-
- /**
- * A device has changed, update it
- *
- * @param udi Universal Device Id
- */
- void ModifyDevice(const char *udi, const char* key);
-
- /**
- * HAL informed that a special action has occured
- * (e.g. device unplugged without unmounting)
- *
- * @param udi Universal Device Id
- */
- void DeviceCondition(const char *udi, const char *condition);
-
- /**
- * Integrate the DBus connection within qt main loop
- */
- void MainLoopIntegration(DBusConnection *dbusConnection);
-
-/* Set media properties */
-private:
- /**
- * Reset properties for the given medium
- */
- void ResetProperties(const char* MediumUdi, bool allowNotification=false);
-
- /**
- * Find the medium that is concerned with device udi
- */
- const char* findMediumUdiFromUdi(const char* udi);
-
- void setVolumeProperties(Medium* medium);
- bool setFloppyProperties(Medium* medium);
- void setFloppyMountState( Medium* medium );
- bool setFstabProperties(Medium* medium);
- void setCameraProperties(Medium* medium);
- TQString generateName(const TQString &devNode);
- static TQString isInFstab(const Medium *medium);
- static TQString listUsingProcesses(const Medium *medium);
- static TQString killUsingProcesses(const Medium *medium);
-
-private slots:
- void slotResult(TDEIO::Job *job);
-
-/* Hal call-backs -- from gvm*/
-public:
- /** Invoked when a device is added to the Global Device List.
- *
- * @param ctx LibHal context
- * @param udi Universal Device Id
- */
- static void hal_device_added(LibHalContext *ctx, const char *udi);
-
- /** Invoked when a device is removed from the Global Device List.
- *
- * @param ctx LibHal context
- * @param udi Universal Device Id
- */
- static void hal_device_removed(LibHalContext *ctx, const char *udi);
-
- /** Invoked when a property of a device in the Global Device List is
- * changed, and we have we have subscribed to changes for that device.
- *
- * @param ctx LibHal context
- * @param udi Univerisal Device Id
- * @param key Key of property
- */
- static void hal_device_property_modified(LibHalContext *ctx, const char *udi, const char *key,
- dbus_bool_t is_removed, dbus_bool_t is_added);
-
- /** Type for callback when a non-continuos condition occurs on a device
- *
- * @param udi Univerisal Device Id
- * @param condition_name Name of the condition
- * @param message D-BUS message with variable parameters depending on condition
- */
- static void hal_device_condition(LibHalContext *ctx, const char *udi,
- const char *condition_name,
- const char* message
- );
-
- TQStringList getHALmountoptions(TQString udi);
-/* HAL and DBus structures */
-private:
- /**
- * The HAL context connecting the whole application to the HAL
- */
- LibHalContext* m_halContext;
-
- /**
- * libhal-storage HAL policy, e.g. for icon names
- */
- LibHalStoragePolicy* m_halStoragePolicy;
-
- /**
- * The DBus-Qt bindings connection for mainloop integration
- */
- DBusQt::Connection* m_dBusQtConnection;
-
- /**
- * Object for the kded module
- */
- TQObject* m_parent;
-
- DBusConnection *dbus_connection;
-
- /**
- * Data structure for fstab mount/unmount jobs
- */
- struct mount_job_data {
- // [in] Medium, which is being mounted/unmounted by the job
- const Medium* medium;
- // [in,out] Should be set to true when the job completes
- bool completed;
- // [out] TDEIO::Error if an error occured during operation. Otherwise, 0
- int error;
- // [out] Error message to be displayed to the user
- TQString errorMessage;
- };
-
- TQMap<TDEIO::Job *, struct mount_job_data*> mount_jobs;
-};
-
-#endif /* _HALBACKEND_H_ */
diff --git a/tdeioslave/media/mediamanager/mediamanager.cpp b/tdeioslave/media/mediamanager/mediamanager.cpp
index 325609baf..f8c2a574b 100644
--- a/tdeioslave/media/mediamanager/mediamanager.cpp
+++ b/tdeioslave/media/mediamanager/mediamanager.cpp
@@ -36,10 +36,6 @@
#include "tdehardwarebackend.h"
#endif // COMPILE_TDEHARDWAREBACKEND
-#ifdef COMPILE_HALBACKEND
-#include "halbackend.h"
-#endif //COMPILE_HALBACKEND
-
#ifdef COMPILE_LINUXCDPOLLING
#include "linuxcdpolling.h"
#endif //COMPILE_LINUXCDPOLLING
@@ -80,33 +76,9 @@ void MediaManager::loadBackends()
}
mp_removableBackend = 0L;
- m_halbackend = 0L;
m_tdebackend = 0L;
m_fstabbackend = 0L;
-#ifdef COMPILE_HALBACKEND
- if ( MediaManagerSettings::self()->halBackendEnabled() )
- {
- m_mediaList.blockSignals(false);
- m_halbackend = new HALBackend(m_mediaList, this);
- if (m_halbackend->InitHal())
- {
- m_backends.append( m_halbackend );
- m_fstabbackend = new FstabBackend(m_mediaList, true);
- m_backends.append( m_fstabbackend );
- // No need to load something else...
- m_mediaList.blockSignals(false);
- return;
- }
- else
- {
- delete m_halbackend;
- m_halbackend = 0;
- m_mediaList.blockSignals(true);
- }
- }
-#endif // COMPILE_HALBACKEND
-
#ifdef COMPILE_TDEHARDWAREBACKEND
if ( MediaManagerSettings::self()->tdeHardwareBackendEnabled() )
{
@@ -216,144 +188,118 @@ TQStringList MediaManager::properties(const TQString &name)
TQStringList MediaManager::mountoptions(const TQString &name)
{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return TQStringList();
- return m_halbackend->mountoptions(name);
-#else // COMPILE_HALBACKEND
- #ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend)
- return TQStringList();
+#ifdef COMPILE_TDEHARDWAREBACKEND
+ if (m_tdebackend)
+ {
return m_tdebackend->mountoptions(name);
- #else // COMPILE_TDEHARDWAREBACKEND
- return TQStringList();
- #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
+ }
+#endif
+ return TQStringList();
}
bool MediaManager::setMountoptions(const TQString &name, const TQStringList &options)
{
-#ifdef COMPILE_HALBACKEND
- if (!m_halbackend)
- return false;
- return m_halbackend->setMountoptions(name, options);
-#else // COMPILE_HALBACKEND
- #ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend)
- return false;
+#ifdef COMPILE_TDEHARDWAREBACKEND
+ if (m_tdebackend)
+ {
return m_tdebackend->setMountoptions(name, options);
- #else // COMPILE_TDEHARDWAREBACKEND
- return false;
- #endif // COMPILE_TDEHARDWAREBACKEND
-#endif // COMPILE_HALBACKEND
+ }
+#endif
+ return false;
}
TQStringVariantMap MediaManager::mount(const TQString &uid)
{
- TQStringVariantMap result;
#ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend) {
- result["errStr"] = i18n("Feature only available with the TDE hardware backend");
- result["result"] = false;
- return result;
- }
- return m_tdebackend->mount(uid);
-#elif defined COMPILE_HALBACKEND
- if (!m_halbackend) {
- result["errStr"] = i18n("Feature only available with HAL");
- result["result"] = false;
- return result;
+ if (m_tdebackend)
+ {
+ return m_tdebackend->mount(uid);
}
- return m_halbackend->mount(uid);
#else
- if (!m_fstabbackend) {
- result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend");
- result["result"] = false;
- return result;
+ if (m_fstabbackend)
+ {
+ return m_fstabbackend->mount(uid);
}
- return m_fstabbackend->mount(uid);
#endif
+ TQStringVariantMap result;
+ result["errStr"] = i18n("Feature only available with the TDE hardware or fstab backend");
+ result["result"] = false;
+ return result;
}
TQStringVariantMap MediaManager::unmount(const TQString &uid)
{
- TQStringVariantMap result;
#ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend) {
- result["errStr"] = i18n("Feature only available with the TDE hardware backend");
- result["result"] = false;
- return result;
+ if (m_tdebackend)
+ {
+ return m_tdebackend->unmount(uid);
}
- return m_tdebackend->unmount(uid);
-#elif defined COMPILE_HALBACKEND
- if (!m_halbackend) {
- result["errStr"] = i18n("Feature only available with HAL");
- result["result"] = false;
- return result;
- }
- return m_halbackend->unmount(uid);
#else
- if (!m_fstabbackend) {
- result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend");
- result["result"] = false;
- return result;
+ if (m_fstabbackend)
+ {
+ return m_fstabbackend->unmount(uid);
}
- return m_fstabbackend->unmount(uid);
#endif
+ TQStringVariantMap result;
+ result["errStr"] = i18n("Feature only available with the TDE hardware or fstab backend");
+ result["result"] = false;
+ return result;
}
TQStringVariantMap MediaManager::unlock(const TQString &uid, const TQString &password)
{
- TQStringVariantMap result;
#ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend) {
- result["errStr"] = i18n("Feature only available with the TDE hardware backend");
- result["result"] = false;
- return result;
- }
- return m_tdebackend->unlock(uid, password);
-#elif defined COMPILE_HALBACKEND
- if (!m_halbackend) {
- result["errStr"] = i18n("Feature only available with HAL");
- result["result"] = false;
- return result;
+ if (m_tdebackend)
+ {
+ return m_tdebackend->unlock(uid, password);
}
- return m_halbackend->unlock(uid, password);
-#else
-// if (!m_fstabbackend) {
- result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend");
- result["result"] = false;
- return result;
-// }
-// return m_fstabbackend->unlock(uid, password);
#endif
+ TQStringVariantMap result;
+ result["errStr"] = i18n("Feature only available with the TDE hardware backend");
+ result["result"] = false;
+ return result;
}
-TQStringVariantMap MediaManager::lock(const TQString &uid)
+TQStringVariantMap MediaManager::lock(const TQString &uid, bool releaseHolders)
{
+#ifdef COMPILE_TDEHARDWAREBACKEND
+ if (m_tdebackend)
+ {
+ return m_tdebackend->lock(uid, releaseHolders);
+ }
+#endif
TQStringVariantMap result;
+ result["errStr"] = i18n("Feature only available with the TDE hardware backend");
+ result["result"] = false;
+ return result;
+}
+
+TQStringVariantMap MediaManager::eject(const TQString &uid)
+{
#ifdef COMPILE_TDEHARDWAREBACKEND
- if (!m_tdebackend) {
- result["errStr"] = i18n("Feature only available with the TDE hardware backend");
- result["result"] = false;
- return result;
+ if (m_tdebackend)
+ {
+ return m_tdebackend->eject(uid);
}
- return m_tdebackend->lock(uid);
-#elif defined COMPILE_HALBACKEND
- if (!m_halbackend) {
- result["errStr"] = i18n("Feature only available with HAL");
- result["result"] = false;
- return result;
+#endif
+ TQStringVariantMap result;
+ result["errStr"] = i18n("Feature only available with the TDE hardware backend");
+ result["result"] = false;
+ return result;
+}
+
+TQStringVariantMap MediaManager::safeRemove(const TQString &uid)
+{
+#ifdef COMPILE_TDEHARDWAREBACKEND
+ if (m_tdebackend)
+ {
+ return m_tdebackend->safeRemove(uid);
}
- return m_halbackend->lock(uid);
-#else
-// if (!m_fstabbackend) {
- result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend");
- result["result"] = false;
- return result;
-// }
-// return m_fstabbackend->lock(uid);
#endif
+ TQStringVariantMap result;
+ result["errStr"] = i18n("Feature only available with the TDE hardware backend");
+ result["result"] = false;
+ return result;
}
TQStringVariantMap MediaManager::mountByNode(const TQString &deviceNode)
@@ -392,7 +338,31 @@ TQStringVariantMap MediaManager::unlockByNode(const TQString &deviceNode, const
return unlock(medium->id(), password);
}
-TQStringVariantMap MediaManager::lockByNode(const TQString &deviceNode)
+TQStringVariantMap MediaManager::lockByNode(const TQString &deviceNode, bool releaseHolders)
+{
+ const Medium *medium = m_mediaList.findByNode(deviceNode);
+ if (!medium) {
+ TQStringVariantMap result;
+ result["errStr"] = i18n("No such medium: %1").arg(deviceNode);
+ result["result"] = false;
+ return result;
+ }
+ return lock(medium->id(), releaseHolders);
+}
+
+TQStringVariantMap MediaManager::ejectByNode(const TQString &deviceNode)
+{
+ const Medium *medium = m_mediaList.findByNode(deviceNode);
+ if (!medium) {
+ TQStringVariantMap result;
+ result["errStr"] = i18n("No such medium: %1").arg(deviceNode);
+ result["result"] = false;
+ return result;
+ }
+ return eject(medium->id());
+}
+
+TQStringVariantMap MediaManager::safeRemoveByNode(const TQString &deviceNode)
{
const Medium *medium = m_mediaList.findByNode(deviceNode);
if (!medium) {
@@ -401,7 +371,7 @@ TQStringVariantMap MediaManager::lockByNode(const TQString &deviceNode)
result["result"] = false;
return result;
}
- return lock(medium->id());
+ return safeRemove(medium->id());
}
TQString MediaManager::mimeType(const TQString &name)
diff --git a/tdeioslave/media/mediamanager/mediamanager.h b/tdeioslave/media/mediamanager/mediamanager.h
index 3c49109f3..7bc67b24c 100644
--- a/tdeioslave/media/mediamanager/mediamanager.h
+++ b/tdeioslave/media/mediamanager/mediamanager.h
@@ -29,7 +29,6 @@
#include "removablebackend.h"
#include "mediadirnotify.h"
-class HALBackend;
class TDEBackend;
class FstabBackend;
@@ -52,12 +51,16 @@ k_dcop:
TQStringVariantMap mount(const TQString &uid);
TQStringVariantMap unmount(const TQString &uid);
TQStringVariantMap unlock(const TQString &uid, const TQString &password);
- TQStringVariantMap lock(const TQString &uid);
+ TQStringVariantMap lock(const TQString &uid, bool releaseHolders);
+ TQStringVariantMap eject(const TQString &uid);
+ TQStringVariantMap safeRemove(const TQString &uid);
TQStringVariantMap mountByNode(const TQString &deviceNode);
TQStringVariantMap unmountByNode(const TQString &deviceNode);
TQStringVariantMap unlockByNode(const TQString &deviceNode, const TQString &password);
- TQStringVariantMap lockByNode(const TQString &deviceNode);
+ TQStringVariantMap lockByNode(const TQString &deviceNode, bool releaseHolders);
+ TQStringVariantMap ejectByNode(const TQString &deviceNode);
+ TQStringVariantMap safeRemoveByNode(const TQString &deviceNode);
TQString mimeType(const TQString &name);
TQString nameForLabel(const TQString &label);
@@ -65,7 +68,6 @@ k_dcop:
ASYNC reloadBackends();
- // Removable media handling (for people not having HAL)
bool removablePlug(const TQString &devNode, const TQString &label);
bool removableUnplug(const TQString &devNode);
bool removableCamera(const TQString &devNode);
@@ -94,7 +96,6 @@ private:
MediaList m_mediaList;
TQValueList<BackendBase*> m_backends;
RemovableBackend *mp_removableBackend;
- HALBackend *m_halbackend;
TDEBackend *m_tdebackend;
MediaDirNotify m_dirNotify;
FstabBackend *m_fstabbackend;
diff --git a/tdeioslave/media/mediamanager/tdehardwarebackend.cpp b/tdeioslave/media/mediamanager/tdehardwarebackend.cpp
index 1da7634d0..0e6eb4ad8 100644
--- a/tdeioslave/media/mediamanager/tdehardwarebackend.cpp
+++ b/tdeioslave/media/mediamanager/tdehardwarebackend.cpp
@@ -1427,6 +1427,7 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id)
m_mediaList.removeMedium(uid, true);
}
+ ResetProperties(sdevice, false, true);
result["result"] = true;
return result;
}
@@ -1474,14 +1475,14 @@ TQStringVariantMap TDEBackend::unlock(const TQString &id, const TQString &passwo
}
ResetProperties(sdevice, false, true);
- result["result"] = unlockResult["unlockedDevice"];
result["result"] = true;
return result;
}
-TQStringVariantMap TDEBackend::lock(const TQString &id)
+TQStringVariantMap TDEBackend::lock(const TQString &id, bool releaseHolders)
{
- kdDebug(1219) << "TDEBackend::lock for id " << id << endl;
+ kdDebug(1219) << "TDEBackend::lock for id " << id << ", release holders "
+ << releaseHolders << endl;
TQStringVariantMap result;
@@ -1510,6 +1511,12 @@ TQStringVariantMap TDEBackend::lock(const TQString &id)
return result;
}
+ // Release device holders if requested
+ if (releaseHolders)
+ {
+ releaseHolderDevices(medium->deviceNode(), false);
+ }
+
TQStringVariantMap lockResult = sdevice->lockDevice();
if (lockResult["result"].toBool() == false) {
TQString qerror = i18n("<b>Unable to lock the device.</b>");
@@ -1522,10 +1529,123 @@ TQStringVariantMap TDEBackend::lock(const TQString &id)
}
}
+ ResetProperties(sdevice, false, true);
+ result["result"] = true;
+ return result;
+}
+
+TQStringVariantMap TDEBackend::eject(const TQString &id)
+{
+ kdDebug(1219) << "TDEBackend::eject for id " << id << endl;
+
+ TQStringVariantMap result;
+
+ const Medium *medium = m_mediaList.findById(id);
+ if (!medium)
+ {
+ result["errStr"] = i18n("No such medium: %1").arg(id);
+ result["result"] = false;
+ return result;
+ }
+
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id());
+ if (!sdevice)
+ {
+ result["errStr"] = i18n("Internal error. Couldn't find medium id %1.").arg(medium->id());
+ result["result"] = false;
+ return result;
+ }
+
+ TQStringVariantMap ejectResult = sdevice->ejectDrive();
+ if (ejectResult["result"].toBool() == false)
+ {
+ TQString qerror = i18n("<b>Unable to eject the device.</b>");
+ TQString errStr = ejectResult.contains("errStr") ? ejectResult["errStr"].toString() : TQString::null;
+ if (!errStr.isEmpty())
+ {
+ qerror.append(i18n("<p>Technical details:<br>").append(errStr));
+ result["errStr"] = qerror;
+ result["result"] = false;
+ return result;
+ }
+ }
+
result["result"] = true;
return result;
}
+TQStringVariantMap TDEBackend::safeRemove(const TQString &id)
+{
+ kdDebug(1219) << "TDEBackend::safeRemove for id " << id << endl;
+
+ TQStringVariantMap result;
+
+ const Medium *medium = m_mediaList.findById(id);
+ if (!medium)
+ {
+ result["errStr"] = i18n("No such medium: %1").arg(id);
+ result["result"] = false;
+ return result;
+ }
+
+ releaseHolderDevices(medium->deviceNode(), true);
+ return eject(id);
+}
+
+void TDEBackend::releaseHolderDevices(const TQString &deviceNode, bool handleThis)
+{
+ kdDebug(1219) << "TDEBackend::releaseHolderDevices for node " << deviceNode
+ << ", handle this " << (handleThis ? "yes" : "no") << endl;
+
+ const Medium *medium = m_mediaList.findByNode(deviceNode);
+ if (!medium)
+ {
+ return;
+ }
+
+ // Scan the holding devices and unmount/lock them if possible
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id());
+ if (sdevice)
+ {
+ TQStringList holdingDeviceList = sdevice->holdingDevices();
+ for (TQStringList::Iterator holdingDevIt = holdingDeviceList.begin(); holdingDevIt != holdingDeviceList.end(); ++holdingDevIt)
+ {
+ TDEGenericDevice *hwHolderDevice = hwdevices->findBySystemPath(*holdingDevIt);
+ if (hwHolderDevice->type() == TDEGenericDeviceType::Disk)
+ {
+ TDEStorageDevice *holderSDevice = static_cast<TDEStorageDevice*>(hwHolderDevice);
+ const Medium *holderMedium = m_mediaList.findByNode(holderSDevice->deviceNode());
+ if (holderMedium && !holderMedium->id().isEmpty())
+ {
+ releaseHolderDevices(holderMedium->deviceNode(), true);
+ }
+ }
+ }
+ }
+
+ if (handleThis)
+ {
+ // Unmount if necessary
+ if (medium->isMountable() && medium->isMounted())
+ {
+ unmount(medium->id());
+ // Must process udev events before continuing, to make sure all
+ // affected devices are properly updated
+ tqApp->processEvents();
+ }
+ // Lock if necessary.
+ if (medium->isEncrypted() && !medium->isLocked())
+ {
+ lock(medium->id(), false);
+ // Must process udev events before continuing, to make sure all
+ // affected devices are properly updated
+ tqApp->processEvents();
+ }
+ }
+}
+
void TDEBackend::slotResult(TDEIO::Job *job)
{
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
diff --git a/tdeioslave/media/mediamanager/tdehardwarebackend.h b/tdeioslave/media/mediamanager/tdehardwarebackend.h
index 449d6369d..308a9421e 100644
--- a/tdeioslave/media/mediamanager/tdehardwarebackend.h
+++ b/tdeioslave/media/mediamanager/tdehardwarebackend.h
@@ -68,11 +68,13 @@ public:
bool setMountoptions(const TQString &id, const TQStringList &options);
- TQStringVariantMap mount(const TQString &id);
TQStringVariantMap mount(const Medium *medium);
+ TQStringVariantMap mount(const TQString &id);
TQStringVariantMap unmount(const TQString &id);
TQStringVariantMap unlock(const TQString &id, const TQString &password);
- TQStringVariantMap lock(const TQString &id);
+ TQStringVariantMap lock(const TQString &id, bool releaseHolders);
+ TQStringVariantMap eject(const TQString &id);
+ TQStringVariantMap safeRemove(const TQString &uid);
private:
/**
@@ -117,17 +119,13 @@ private:
*/
void ResetProperties(TDEStorageDevice * sdevice, bool allowNotification=false, bool overrideIgnoreList=false);
- /**
- * Find the medium that is concerned with device udi
- */
-// const char* findMediumUdiFromUdi(const char* udi);
-
void setVolumeProperties(Medium* medium);
bool setFloppyProperties(Medium* medium);
- void setFloppyMountState( Medium* medium );
-// bool setFstabProperties(Medium* medium);
+ void setFloppyMountState(Medium* medium);
void setCameraProperties(Medium* medium);
+ void releaseHolderDevices(const TQString &deviceNode, bool handleThis);
TQString generateName(const TQString &devNode);
+
static TQString isInFstab(const Medium *medium);
static TQString listUsingProcesses(const Medium *medium);
static TQString killUsingProcesses(const Medium *medium);
diff --git a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp
index ef3f10e8e..9094b8e56 100644
--- a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp
+++ b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp
@@ -29,6 +29,7 @@
#include <kurl.h>
#include <tdemessagebox.h>
#include <dcopclient.h>
+#include <dcopref.h>
#include <tqtimer.h>
#include <stdlib.h>
#include <kdebug.h>
@@ -45,7 +46,8 @@
const Medium MountHelper::findMedium(const TQString &device)
{
- DCOPReply reply = m_mediamanager.call("properties", device);
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("properties", device);
if (!reply.isValid())
{
m_errorStr = i18n("The TDE mediamanager is not running.\n");
@@ -57,21 +59,8 @@ const Medium MountHelper::findMedium(const TQString &device)
void MountHelper::mount(const Medium &medium)
{
- if (medium.id().isEmpty()) {
- m_errorStr = i18n("Try to mount an unknown medium.");
- errorAndExit();
- }
- TQString device = medium.deviceNode();
- if (!medium.isMountable()) {
- m_errorStr = i18n("%1 is not a mountable media.").arg(device);
- errorAndExit();
- }
- else if (medium.isMounted()) {
- m_errorStr = i18n("%1 is already mounted to %2.").arg(device).arg(medium.mountPoint());
- errorAndExit();
- }
-
- DCOPReply reply = m_mediamanager.call("mount", medium.id());
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("mount", medium.id());
TQStringVariantMap mountResult;
if (reply.isValid()) {
reply.get(mountResult);
@@ -84,21 +73,8 @@ void MountHelper::mount(const Medium &medium)
void MountHelper::unmount(const Medium &medium)
{
- if (medium.id().isEmpty()) {
- m_errorStr = i18n("Try to unmount an unknown medium.");
- errorAndExit();
- }
- TQString device = medium.deviceNode();
- if (!medium.isMountable()) {
- m_errorStr = i18n("%1 is not a mountable media.").arg(device);
- errorAndExit();
- }
- else if (!medium.isMounted()) {
- m_errorStr = i18n("%1 is already unmounted.").arg(device);
- errorAndExit();
- }
-
- DCOPReply reply = m_mediamanager.call("unmount", medium.id());
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("unmount", medium.id());
TQStringVariantMap unmountResult;
if (reply.isValid()) {
reply.get(unmountResult);
@@ -112,19 +88,9 @@ void MountHelper::unmount(const Medium &medium)
void MountHelper::unlock(const Medium &medium)
{
- if (medium.id().isEmpty()) {
- m_errorStr = i18n("Try to unlock an unknown medium.");
- errorAndExit();
- }
TQString device = medium.deviceNode();
- if (!medium.isEncrypted())
- {
- m_errorStr = i18n("%1 is not an encrypted media.").arg(device);
- errorAndExit();
- }
- if (!medium.needUnlocking())
- {
- m_errorStr = i18n("%1 is already unlocked.").arg(device);
+ if (device.isEmpty()) {
+ m_errorStr = i18n("Try to unlock an unknown medium.");
errorAndExit();
}
@@ -143,27 +109,8 @@ void MountHelper::unlock(const Medium &medium)
void MountHelper::lock(const Medium &medium)
{
- if (medium.id().isEmpty())
- {
- m_errorStr = i18n("Try to lock an unknown medium.");
- errorAndExit();
- }
- TQString device = medium.deviceNode();
- if (!medium.isEncrypted())
- {
- m_errorStr = i18n("%1 is not an encrypted media.").arg(device);
- errorAndExit();
- }
- if (medium.needUnlocking())
- {
- m_errorStr = i18n("%1 is already locked.").arg(device);
- errorAndExit();
- }
-
- // Release children devices
- releaseHolders(medium);
-
- DCOPReply reply = m_mediamanager.call("lock", medium.id());
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("lock", medium.id(), true);
TQStringVariantMap lockResult;
if (reply.isValid()) {
reply.get(lockResult);
@@ -175,119 +122,46 @@ void MountHelper::lock(const Medium &medium)
}
}
-void MountHelper::eject(const TQString &device, bool quiet)
+void MountHelper::eject(const Medium &medium)
{
#ifdef WITH_TDEHWLIB
- // Try TDE HW library eject first...
- TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
- TDEGenericDevice *hwdevice = hwdevices->findByDeviceNode(device);
- if (hwdevice->type() == TDEGenericDeviceType::Disk)
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("eject", medium.id());
+ TQStringVariantMap ejectResult;
+ if (reply.isValid()) {
+ reply.get(ejectResult);
+ }
+ if (!ejectResult.contains("result") || !ejectResult["result"].toBool()) {
+ m_errorStr = ejectResult.contains("errStr") ? ejectResult["errStr"].toString() : i18n("Unknown eject error.");
+ kdDebug() << "medium eject " << m_errorStr << endl;
+ errorAndExit();
+ }
+ else
{
- TDEStorageDevice *sdevice = static_cast<TDEStorageDevice*>(hwdevice);
- TQStringVariantMap ejectResult = sdevice->ejectDrive();
- if (ejectResult["result"].toBool() == true)
- {
- // Success!
- ::exit(0);
- }
+ ::exit(0); // Success!
}
#endif
// Otherwise fall back to tdeeject
TDEProcess *proc = new TDEProcess(TQT_TQOBJECT(this));
*proc << "tdeeject";
- if (quiet)
- {
- *proc << "-q";
- }
- *proc << device;
+ *proc << medium.deviceNode();
connect(proc, TQT_SIGNAL(processExited(TDEProcess*)), this, TQT_SLOT(ejectFinished(TDEProcess*)));
proc->start();
}
-void MountHelper::releaseHolders(const Medium &medium, bool handleThis)
-{
-#ifdef WITH_TDEHWLIB
- if (medium.id().isEmpty())
- {
- m_errorStr = i18n("Try to release holders from an unknown medium.");
- return;
- }
-
- // Scan the holding devices and unmount/lock them if possible
- TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
- TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium.id());
- if (sdevice)
- {
- TQStringList holdingDeviceList = sdevice->holdingDevices();
- for (TQStringList::Iterator holdingDevIt = holdingDeviceList.begin(); holdingDevIt != holdingDeviceList.end(); ++holdingDevIt)
- {
- TDEGenericDevice *hwHolderDevice = hwdevices->findBySystemPath(*holdingDevIt);
- if (hwHolderDevice->type() == TDEGenericDeviceType::Disk)
- {
- TDEStorageDevice *holderSDevice = static_cast<TDEStorageDevice*>(hwHolderDevice);
- const Medium holderMedium = findMedium(holderSDevice->deviceNode());
- if (!holderMedium.id().isEmpty())
- {
- releaseHolders(holderMedium, true);
- }
- }
- }
- }
-
- if (handleThis)
- {
- // Unmount if necessary
- if (medium.isMountable() && medium.isMounted())
- {
- unmount(medium);
- }
- // Lock if necessary.
- if (medium.isEncrypted() && !medium.isLocked())
- {
- lock(medium);
- }
- }
-#endif
-}
-
void MountHelper::safeRemoval(const Medium &medium)
{
- /*
- * Safely remove will performs the following tasks:
- * 1) release children devices (if tdehw is available)
- * 2) if the medium is mounted, unmount it
- * 3) if the medium is encrypted and unlocked, lock it
- * 4) invoke eject to release the medium.
- * If any of the above steps fails, the procedure will interrupt and an
- * error message will be displayed to the user.
- *
- * Note: previously eject was invoked also in case of unmount failure. This
- * could lead to data loss and therefore the behaviour has been changed.
- * If a user really wants to eject the medium, he needs to either unmount it
- * first or invoke eject manually.
- */
- if (medium.id().isEmpty())
- {
- m_errorStr = i18n("Try to safe remove an unknown medium.");
- errorAndExit();
- }
-
- // Release children devices
- releaseHolders(medium);
-
- TQStringVariantMap opResult;
- TQString device = medium.deviceNode();
-
- // Unmount if necessary
- if (medium.isMountable() && medium.isMounted())
- {
- unmount(medium);
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("safeRemove", medium.id());
+ TQStringVariantMap safeRemoveResult;
+ if (reply.isValid()) {
+ reply.get(safeRemoveResult);
}
- // Lock if necessary.
- if (medium.isEncrypted() && !medium.isLocked())
- {
- lock(medium);
+ if (!safeRemoveResult.contains("result") || !safeRemoveResult["result"].toBool()) {
+ m_errorStr = safeRemoveResult.contains("errStr") ? safeRemoveResult["errStr"].toString() : i18n("Unknown safe removal error.");
+ kdDebug() << "medium safeRemoval " << m_errorStr << endl;
+ errorAndExit();
}
}
@@ -312,7 +186,7 @@ void MountHelper::openRealFolder(const Medium &medium)
}
}
-MountHelper::MountHelper() : TDEApplication(), m_mediamanager("kded", "mediamanager")
+MountHelper::MountHelper() : TDEApplication()
{
TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
m_errorStr = TQString::null;
@@ -356,13 +230,12 @@ MountHelper::MountHelper() : TDEApplication(), m_mediamanager("kded", "mediamana
}
else if (args->isSet("e"))
{
- eject(device, true);
+ eject(medium);
::exit(0);
}
else if (args->isSet("s"))
{
safeRemoval(medium);
- eject(device, true);
::exit(0);
}
else if (args->isSet("f"))
@@ -418,7 +291,8 @@ void MountHelper::errorAndExit()
void MountHelper::slotSendPassword()
{
- DCOPReply reply = m_mediamanager.call("unlock", m_mediumId, m_dialog->getPassword());
+ DCOPRef mediamanager("kded", "mediamanager");
+ DCOPReply reply = mediamanager.call("unlock", m_mediumId, m_dialog->getPassword());
TQStringVariantMap unlockResult;
if (reply.isValid()) {
reply.get(unlockResult);
diff --git a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h
index 5bbe594b8..e1ae0c5c2 100644
--- a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h
+++ b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h
@@ -25,7 +25,6 @@
#include <tdeapplication.h>
#include <tqstring.h>
#include <tdeio/job.h>
-#include <dcopref.h>
#include "medium.h"
@@ -44,7 +43,6 @@ private:
TQString m_errorStr;
TQString m_mediumId;
Dialog *m_dialog;
- DCOPRef m_mediamanager;
const Medium findMedium(const TQString &device);
void error();
@@ -53,9 +51,8 @@ private:
void unmount(const Medium &medium);
void unlock(const Medium &medium);
void lock(const Medium &medium);
- void eject(const TQString &device, bool quiet=false);
+ void eject(const Medium &medium);
void safeRemoval(const Medium &medium);
- void releaseHolders(const Medium &medium, bool handleThis = false);
void openRealFolder(const Medium &medium);
private slots:
diff --git a/tdeioslave/media/tdecmodule/managermodule.cpp b/tdeioslave/media/tdecmodule/managermodule.cpp
index 6478ee2a8..813775cbd 100644
--- a/tdeioslave/media/tdecmodule/managermodule.cpp
+++ b/tdeioslave/media/tdecmodule/managermodule.cpp
@@ -44,13 +44,6 @@ ManagerModule::ManagerModule( TQWidget* parent, const char* name )
addConfig( MediaManagerSettings::self(), view );
-#ifndef COMPILE_HALBACKEND
- TQString hal_text = view->kcfg_HalBackendEnabled->text();
- hal_text += " ("+i18n("No support for HAL on this system")+")";
- view->kcfg_HalBackendEnabled->setText( hal_text );
-#endif
- view->kcfg_HalBackendEnabled->setEnabled( false );
-
#ifndef COMPILE_LINUXCDPOLLING
TQString poll_text = view->kcfg_CdPollingEnabled->text();
poll_text += " ("+i18n("No support for CD polling on this system")+")";
@@ -140,13 +133,12 @@ void ManagerModule::save()
rememberSettings();
- //Well... reloadBackends is buggy with HAL, it seems to be linked
- //to a bug in the unmaintained Qt3 DBUS binding ;-/
- //DCOPRef mediamanager( "kded", "mediamanager" );
- //DCOPReply reply = mediamanager.call( "reloadBackends" );
-
- // So we use this hack instead...
DCOPRef kded( "kded", "kded" );
+ // DCOPReply reply = mediamanager.call( "reloadBackends" );
+ // Well... reloadBackends had issues with HAL, it seems it was linked
+ // to a bug in the unmaintained Qt3 DBUS binding, but it is not quite clear.
+ // It may be ok now that HAL is no longer supported but needs to be tested.
+ // So we use this hack instead...
kded.call( "unloadModule", "mediamanager" );
kded.call( "loadModule", "mediamanager" );
diff --git a/tdeioslave/media/tdecmodule/managermoduleview.ui b/tdeioslave/media/tdecmodule/managermoduleview.ui
index 6b477317b..748cd825c 100644
--- a/tdeioslave/media/tdecmodule/managermoduleview.ui
+++ b/tdeioslave/media/tdecmodule/managermoduleview.ui
@@ -21,17 +21,6 @@
</property>
<widget class="TQCheckBox">
<property name="name">
- <cstring>kcfg_HalBackendEnabled</cstring>
- </property>
- <property name="text">
- <string>Enable HAL backend</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Select this if you want to enable the Hardware Abstraction Layer (http://hal.freedesktop.org/wiki/Software/hal) support.</string>
- </property>
- </widget>
- <widget class="TQCheckBox">
- <property name="name">
<cstring>kcfg_CdPollingEnabled</cstring>
</property>
<property name="text">
@@ -348,16 +337,7 @@ Display the short name as is; store a long name when the short name is not all u
</spacer>
</vbox>
</widget>
-<connections>
- <connection>
- <sender>kcfg_HalBackendEnabled</sender>
- <signal>toggled(bool)</signal>
- <receiver>groupbox_mount</receiver>
- <slot>setEnabled(bool)</slot>
- </connection>
-</connections>
<tabstops>
- <tabstop>kcfg_HalBackendEnabled</tabstop>
<tabstop>kcfg_CdPollingEnabled</tabstop>
<tabstop>kcfg_AutostartEnabled</tabstop>
<tabstop>kcfg_NotificationPopupsEnabled</tabstop>
diff --git a/tdm/kfrontend/kgapp.cpp b/tdm/kfrontend/kgapp.cpp
index 82630ba09..58b9d2e9c 100644
--- a/tdm/kfrontend/kgapp.cpp
+++ b/tdm/kfrontend/kgapp.cpp
@@ -322,7 +322,7 @@ kg_main( const char *argv0 )
iccCommand += TQString(" %1 &").arg(iccconfig.readEntry("ICCFile"));
if (system(iccCommand.local8Bit()) < 0)
{
- printf("WARNING: Unable to execute command \"%s\"\n", iccCommand.local8Bit());
+ printf("WARNING: Unable to execute command \"%s\"\n", iccCommand.local8Bit().data());
}
}
}
diff --git a/translations/desktop_files/kappfinder-data/ru.po b/translations/desktop_files/kappfinder-data/ru.po
index b74257ff4..2e3fcecf9 100644
--- a/translations/desktop_files/kappfinder-data/ru.po
+++ b/translations/desktop_files/kappfinder-data/ru.po
@@ -1,30 +1,32 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-07 18:16+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kappfinder-data/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: Development/Forte.desktop:2
msgid "Forte"
-msgstr ""
+msgstr "Forte"
#. GenericName
#: Development/Forte.desktop:3
msgid "Java IDE"
-msgstr ""
+msgstr "IDE для Java"
#. Name
#: Development/assistant.desktop:2
diff --git a/translations/desktop_files/kappfinder.desktop/ru.po b/translations/desktop_files/kappfinder.desktop/ru.po
index bba5a2de3..f7eef618f 100644
--- a/translations/desktop_files/kappfinder.desktop/ru.po
+++ b/translations/desktop_files/kappfinder.desktop/ru.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-17 21:48+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kappfinder-kappfinderdesktop/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: kappfinder.desktop:2
msgid "KAppfinder"
-msgstr ""
+msgstr "KAppfinder"
#. GenericName
#: kappfinder.desktop:3
diff --git a/translations/desktop_files/kate-desktops/ru.po b/translations/desktop_files/kate-desktops/ru.po
index 537882289..9e6153ae1 100644
--- a/translations/desktop_files/kate-desktops/ru.po
+++ b/translations/desktop_files/kate-desktops/ru.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-18 03:49+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kate-desktop-files/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. GenericName
#: data/kate.desktop:2
@@ -24,7 +26,7 @@ msgstr "Улучшенный текстовый редактор"
#. Name
#: data/kate.desktop:3
msgid "Kate"
-msgstr ""
+msgstr "Kate"
#. Comment
#: data/kateplugin.desktop:5
diff --git a/translations/desktop_files/kcontrol-desktops/ru.po b/translations/desktop_files/kcontrol-desktops/ru.po
index f29e8258e..a449cd4e3 100644
--- a/translations/desktop_files/kcontrol-desktops/ru.po
+++ b/translations/desktop_files/kcontrol-desktops/ru.po
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Alexander Golubev <fatzer2@gmail.com>, 2021.
+# Alexander Golubev <fatzer2@gmail.com>, 2021, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-07 18:17+0000\n"
-"PO-Revision-Date: 2021-01-21 09:11+0000\n"
+"PO-Revision-Date: 2022-02-27 19:02+0000\n"
"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/kcontrol-desktop-files/ru/>\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.4.2\n"
+"X-Generator: Weblate 4.11\n"
#. Name
#: access/kaccess.desktop:3
@@ -97,6 +97,8 @@ msgstr "Настройка системного звукового сигнал
#: bell/bell.desktop:17
msgid "Bell;Audio;Sound;Volume;Pitch;Duration;"
msgstr ""
+"Bell;Audio;Sound;Volume;Pitch;Duration;Звонок;Аудио;Звук;Громкость;Сигнал;Тон"
+";Длительность;"
#. Name
#: clock/clock.desktop:13
@@ -111,7 +113,7 @@ msgstr "Настройка даты и времени"
#. Keywords
#: clock/clock.desktop:17
msgid "clock;date;time;time zone;"
-msgstr ""
+msgstr "clock;date;time;time zone;часы;дата;время;временная зона;"
#. Name
#: colors/colors.desktop:12
@@ -127,6 +129,8 @@ msgstr "Настройка цветов"
#: colors/colors.desktop:16
msgid "colors;colours;scheme;contrast;Widget colors;Color Scheme;"
msgstr ""
+"colors;colours;scheme;contrast;Widget colors;Color "
+"Scheme;цвета;схема;тема;контраст;цвет виджетов;цветовая схема;"
#. Name
#: componentchooser/EXAMPLE.desktop:1
@@ -258,6 +262,8 @@ msgstr "Настройка стилей CSS, используемых при п
#: css/kcmcss.desktop:16
msgid "CSS;HTML;style;stylesheet;accessibility;"
msgstr ""
+"CSS;HTML;style;stylesheet;accessibility;стиль;таблица стилей;особые "
+"возможности;"
#. Name
#: display/display.desktop:11
@@ -297,7 +303,7 @@ msgstr "Настройка обнаружения сервисов"
#. Name
#: ebrowsing/ebrowsing.desktop:12
msgid "Web Shortcuts"
-msgstr "Сокращения Веб"
+msgstr "Веб-сокращения"
#. Comment
#: ebrowsing/ebrowsing.desktop:14
@@ -1807,7 +1813,7 @@ msgstr "Настройка режима менеджера файлов "
#. Name
#: konq/filepreviews.desktop:11
msgid "Previews & Metadata"
-msgstr "Миниатюры и мета-данные"
+msgstr "Миниатюры"
#. Comment
#: konq/filepreviews.desktop:13
@@ -1876,7 +1882,7 @@ msgstr ""
#. Name
#: konqhtml/tdehtml_userinterface.desktop:11
msgid "User Interface"
-msgstr "Пользовательский интерфейс"
+msgstr "Интерфейс"
#. Comment
#: konqhtml/tdehtml_userinterface.desktop:13
@@ -1887,7 +1893,8 @@ msgstr "Конфигурация параметров"
#: konqhtml/tdehtml_userinterface.desktop:15
msgid "konqueror;kfm;user;interface;tabbed;browsing;"
msgstr ""
-"конкэрор;кфм;пользователь;пользовательский интерфейс;вкладки;навигация;"
+"konqueror;kfm;user;interface;tabbed;browsing;конкэрор;кфм;пользователь;"
+"пользовательский интерфейс;вкладки;навигация;"
#. Name
#: konsole/kcmkonsole.desktop:10
@@ -1994,10 +2001,10 @@ msgstr "Настройка параметров, которые влияют н
#. Keywords
#: performance/kcmkonqyperformance.desktop:15
-#, fuzzy
msgid "konqueror;reuse;preloading;"
msgstr ""
-"конкэрор;кфм;пользователь;пользовательский интерфейс;вкладки;навигация;"
+"konqueror;reuse;preloading;конкэрор;повторное использование;предварительная "
+"загрузка;предзагрузка;"
#. Comment
#: performance/kcmperformance.desktop:13
@@ -2394,7 +2401,7 @@ msgstr "UADescription (Wget 1.11.4)"
#. Name
#: tdeio/useragent.desktop:12
msgid "Browser Identification"
-msgstr "Идентификация браузера"
+msgstr "Идентификация"
#. Comment
#: tdeio/useragent.desktop:14
diff --git a/translations/desktop_files/kmenuedit.desktop/ru.po b/translations/desktop_files/kmenuedit.desktop/ru.po
index 94d10dccb..916c116c2 100644
--- a/translations/desktop_files/kmenuedit.desktop/ru.po
+++ b/translations/desktop_files/kmenuedit.desktop/ru.po
@@ -1,26 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 14:56+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kmenuedit-kmenueditdesktop/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: kmenuedit.desktop:2
-#, fuzzy
msgid "KMenuEdit"
-msgstr "Редактор меню"
+msgstr "Редактор меню TDE"
#. GenericName
#: kmenuedit.desktop:4
diff --git a/translations/desktop_files/knetattach.desktop/ru.po b/translations/desktop_files/knetattach.desktop/ru.po
index 3c6e3d114..3751ebe66 100644
--- a/translations/desktop_files/knetattach.desktop/ru.po
+++ b/translations/desktop_files/knetattach.desktop/ru.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 14:58+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/knetattach-knetattachdesktop/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: knetattach.desktop:2
msgid "KNetAttach"
-msgstr ""
+msgstr "Мастер сети TDE"
#. GenericName
#: knetattach.desktop:4
diff --git a/translations/desktop_files/konsole-eventsrc/ru.po b/translations/desktop_files/konsole-eventsrc/ru.po
index 790e4729c..5bf25c484 100644
--- a/translations/desktop_files/konsole-eventsrc/ru.po
+++ b/translations/desktop_files/konsole-eventsrc/ru.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 15:54+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/konsole-events/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Comment
#: eventsrc:3
msgid "Konsole"
-msgstr ""
+msgstr "Konsole"
#. Name
#: eventsrc:6
diff --git a/translations/desktop_files/kpager.desktop/it.po b/translations/desktop_files/kpager.desktop/it.po
index 0b2c70b2c..4083b010c 100644
--- a/translations/desktop_files/kpager.desktop/it.po
+++ b/translations/desktop_files/kpager.desktop/it.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 16:16+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-01-25 04:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kpager-kpagerdesktop/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: kpager.desktop:2
msgid "KPager"
-msgstr ""
+msgstr "KPager"
#. GenericName
#: kpager.desktop:4
diff --git a/translations/desktop_files/ksplash-desktops/it.po b/translations/desktop_files/ksplash-desktops/it.po
index 738af2942..58805eaa4 100644
--- a/translations/desktop_files/ksplash-desktops/it.po
+++ b/translations/desktop_files/ksplash-desktops/it.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 19:16+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-01-29 11:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ksplash-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: kcmksplash/ksplashthememgr.desktop:12
@@ -33,9 +34,8 @@ msgstr "schermata di avvio;splash screen;tema schermata di avvio;avvio;"
#. Name
#: ksplash.desktop:2
-#, fuzzy
msgid "KSplash"
-msgstr "KSplashVecchio"
+msgstr "KSplash"
#. Name
#: themeengine/default/ksplashdefault.desktop:3
@@ -53,14 +53,14 @@ msgstr "Plugin KSplash"
#. Name
#: themeengine/redmond/ksplashredmond.desktop:3
msgid "KSplashRedmond"
-msgstr ""
+msgstr "KSplashRedmond"
#. Name
#: themeengine/standard/ksplashstandard.desktop:3
msgid "KSplashStandard"
-msgstr ""
+msgstr "KSplashStandard"
#. Name
#: themeengine/unified/ksplashunified.desktop:3
msgid "KSplashUnified"
-msgstr ""
+msgstr "KSplashUnified"
diff --git a/translations/desktop_files/ksplash-themes/it.po b/translations/desktop_files/ksplash-themes/it.po
index 78d0cc9fb..864a49a5b 100644
--- a/translations/desktop_files/ksplash-themes/it.po
+++ b/translations/desktop_files/ksplash-themes/it.po
@@ -1,13 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# Leandro Nini <drfiemost@email.it>, 2021.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-24 18:26+0100\n"
-"PO-Revision-Date: 2021-11-02 08:31+0000\n"
-"Last-Translator: Leandro Nini <drfiemost@email.it>\n"
+"PO-Revision-Date: 2022-01-29 11:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/ksplash-themes/it/>\n"
"Language: it\n"
@@ -15,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.8.1\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: pics/themes/TDE-Classic/Theme.rc:4
@@ -47,7 +48,7 @@ msgstr "Ricarica il tema Splash TDE"
#. Description
#: pics/themes/default/Theme.rc:7
msgid "Load Refresh TDE KSplash theme."
-msgstr ""
+msgstr "Carica il tema Aggiorna TDE KSplash."
#. Name
#: pics/themes/none/Theme.rc:4
diff --git a/translations/desktop_files/ksysguard-desktops/it.po b/translations/desktop_files/ksysguard-desktops/it.po
index 1d00708e7..95d069e8c 100644
--- a/translations/desktop_files/ksysguard-desktops/it.po
+++ b/translations/desktop_files/ksysguard-desktops/it.po
@@ -1,26 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 20:10+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-01-30 18:18+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ksysguard-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: gui/ksysguard.desktop:2
-#, fuzzy
msgid "KSysGuard"
-msgstr "Controllo del sistema"
+msgstr "KSysGuard"
#. GenericName
#: gui/ksysguard.desktop:4
diff --git a/translations/desktop_files/ksysguard-desktops/ru.po b/translations/desktop_files/ksysguard-desktops/ru.po
index 78abb6434..dba04e197 100644
--- a/translations/desktop_files/ksysguard-desktops/ru.po
+++ b/translations/desktop_files/ksysguard-desktops/ru.po
@@ -1,24 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 20:10+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ksysguard-desktop-files/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: gui/ksysguard.desktop:2
-#, fuzzy
msgid "KSysGuard"
msgstr "Системный монитор"
diff --git a/translations/desktop_files/ksysguard-eventsrc/ru.po b/translations/desktop_files/ksysguard-eventsrc/ru.po
index 7c1f3a795..32cd04328 100644
--- a/translations/desktop_files/ksysguard-eventsrc/ru.po
+++ b/translations/desktop_files/ksysguard-eventsrc/ru.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 20:10+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ksysguard-events/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Comment
#: eventsrc:3
@@ -23,9 +25,8 @@ msgstr "Системный монитор"
#. Name
#: eventsrc:6
-#, fuzzy
msgid "pattern_match"
-msgstr "Соответствие шаблону поиска"
+msgstr "pattern_match"
#. Comment
#: eventsrc:7
diff --git a/translations/desktop_files/ktip.desktop/it.po b/translations/desktop_files/ktip.desktop/it.po
index 90d0ccf45..97c20a7b1 100644
--- a/translations/desktop_files/ktip.desktop/it.po
+++ b/translations/desktop_files/ktip.desktop/it.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-21 20:16+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-03 15:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ktip-ktipdesktop/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: ktip.desktop:2
msgid "KTip"
-msgstr ""
+msgstr "KTip"
#. GenericName
#: ktip.desktop:4
diff --git a/translations/desktop_files/l10n-desktops/it.po b/translations/desktop_files/l10n-desktops/it.po
index 8fffa2b92..2d2cc85c8 100644
--- a/translations/desktop_files/l10n-desktops/it.po
+++ b/translations/desktop_files/l10n-desktops/it.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-16 18:21+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-06 09:01+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/l10n-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: caribbean.desktop:2
@@ -74,7 +75,7 @@ msgstr "Europa settentrionale"
#. Name
#: oceania.desktop:2
msgid "Oceania"
-msgstr ""
+msgstr "Oceania"
#. Name
#: southafrica.desktop:2
@@ -119,7 +120,7 @@ msgstr "Predefinito"
#. Name
#: ad/entry.desktop:2
msgid "Andorra"
-msgstr ""
+msgstr "Andorra"
#. Name
#: ae/entry.desktop:2
@@ -139,17 +140,17 @@ msgstr "Antigua e Barbuda"
#. Name
#: ai/entry.desktop:2
msgid "Anguilla"
-msgstr ""
+msgstr "Anguilla"
#. Name
#: al/entry.desktop:2
msgid "Albania"
-msgstr ""
+msgstr "Albania"
#. Name
#: am/entry.desktop:2
msgid "Armenia"
-msgstr ""
+msgstr "Armenia"
#. Name
#: an/entry.desktop:2
@@ -159,12 +160,12 @@ msgstr "Antille Olandesi"
#. Name
#: ao/entry.desktop:2
msgid "Angola"
-msgstr ""
+msgstr "Angola"
#. Name
#: ar/entry.desktop:2
msgid "Argentina"
-msgstr ""
+msgstr "Argentina"
#. Name
#: as/entry.desktop:2
@@ -174,17 +175,17 @@ msgstr "Samoa Americane"
#. Name
#: at/entry.desktop:2
msgid "Austria"
-msgstr ""
+msgstr "Austria"
#. Name
#: au/entry.desktop:2
msgid "Australia"
-msgstr ""
+msgstr "Australia"
#. Name
#: aw/entry.desktop:2
msgid "Aruba"
-msgstr ""
+msgstr "Aruba"
#. Name
#: ax/entry.desktop:2
@@ -204,12 +205,12 @@ msgstr "Bosnia e Erzegovina"
#. Name
#: bb/entry.desktop:2
msgid "Barbados"
-msgstr ""
+msgstr "Barbados"
#. Name
#: bd/entry.desktop:2
msgid "Bangladesh"
-msgstr ""
+msgstr "Bangladesh"
#. Name
#: be/entry.desktop:2
@@ -219,32 +220,32 @@ msgstr "Belgio"
#. Name
#: bf/entry.desktop:2
msgid "Burkina Faso"
-msgstr ""
+msgstr "Burkina Faso"
#. Name
#: bg/entry.desktop:2
msgid "Bulgaria"
-msgstr ""
+msgstr "Bulgaria"
#. Name
#: bh/entry.desktop:2
msgid "Bahrain"
-msgstr ""
+msgstr "Bahrain"
#. Name
#: bi/entry.desktop:2
msgid "Burundi"
-msgstr ""
+msgstr "Burundi"
#. Name
#: bj/entry.desktop:2
msgid "Benin"
-msgstr ""
+msgstr "Benin"
#. Name
#: bm/entry.desktop:2
msgid "Bermuda"
-msgstr ""
+msgstr "Bermuda"
#. Name
#: bn/entry.desktop:3
@@ -254,7 +255,7 @@ msgstr "Brunei"
#. Name
#: bo/entry.desktop:2
msgid "Bolivia"
-msgstr ""
+msgstr "Bolivia"
#. Name
#: br/entry.desktop:2
@@ -264,22 +265,22 @@ msgstr "Brasile"
#. Name
#: braille/entry.desktop:2
msgid "Braille"
-msgstr ""
+msgstr "Braille"
#. Name
#: bs/entry.desktop:2
msgid "Bahamas"
-msgstr ""
+msgstr "Bahamas"
#. Name
#: bt/entry.desktop:3
msgid "Bhutan"
-msgstr ""
+msgstr "Bhutan"
#. Name
#: bw/entry.desktop:2
msgid "Botswana"
-msgstr ""
+msgstr "Botswana"
#. Name
#: by/entry.desktop:3
@@ -289,13 +290,12 @@ msgstr "Bielorussia"
#. Name
#: bz/entry.desktop:2
msgid "Belize"
-msgstr ""
+msgstr "Belize"
#. Name
#: ca/entry.desktop:5
-#, fuzzy
msgid "Canada"
-msgstr "Granada"
+msgstr "Canada"
#. Name
#: cc/entry.desktop:2
@@ -315,7 +315,7 @@ msgstr "Repubblica Centrafricana"
#. Name
#: cg/entry.desktop:2
msgid "Congo"
-msgstr ""
+msgstr "Congo"
#. Name
#: ch/entry.desktop:2
@@ -350,17 +350,17 @@ msgstr "Cina"
#. Name
#: co/entry.desktop:2
msgid "Colombia"
-msgstr ""
+msgstr "Colombia"
#. Name
#: cr/entry.desktop:2
msgid "Costa Rica"
-msgstr ""
+msgstr "Costa Rica"
#. Name
#: cu/entry.desktop:2
msgid "Cuba"
-msgstr ""
+msgstr "Cuba"
#. Name
#: cv/entry.desktop:2
@@ -399,7 +399,6 @@ msgstr "Danimarca"
#. Name
#: dm/entry.desktop:2
-#, fuzzy
msgid "Dominica"
msgstr "Repubblica Dominicana"
@@ -411,7 +410,7 @@ msgstr "Repubblica Dominicana"
#. Name
#: dz/entry.desktop:2
msgid "Algeria"
-msgstr ""
+msgstr "Algeria"
#. Name
#: ec/entry.desktop:2
@@ -421,7 +420,7 @@ msgstr "Ecuador"
#. Name
#: ee/entry.desktop:2
msgid "Estonia"
-msgstr ""
+msgstr "Estonia"
#. Name
#: eg/entry.desktop:2
@@ -436,12 +435,12 @@ msgstr "Sahara Occidentale"
#. Name
#: eo/entry.desktop:2
msgid "Esperanto"
-msgstr ""
+msgstr "Esperanto"
#. Name
#: er/entry.desktop:2
msgid "Eritrea"
-msgstr ""
+msgstr "Eritrea"
#. Name
#: es/entry.desktop:2
@@ -486,7 +485,7 @@ msgstr "Francia"
#. Name
#: ga/entry.desktop:2
msgid "Gabon"
-msgstr ""
+msgstr "Gabon"
#. Name
#: gb/entry.desktop:2
@@ -501,12 +500,12 @@ msgstr "Granada"
#. Name
#: ge/entry.desktop:2
msgid "Georgia"
-msgstr ""
+msgstr "Georgia"
#. Name
#: gh/entry.desktop:2
msgid "Ghana"
-msgstr ""
+msgstr "Ghana"
#. Name
#: gi/entry.desktop:2
@@ -521,12 +520,12 @@ msgstr "Groenlandia"
#. Name
#: gm/entry.desktop:2
msgid "Gambia"
-msgstr ""
+msgstr "Gambia"
#. Name
#: gn/entry.desktop:2
msgid "Guinea"
-msgstr ""
+msgstr "Guinea"
#. Name
#: gp/entry.desktop:2
@@ -546,22 +545,22 @@ msgstr "Grecia"
#. Name
#: gt/entry.desktop:2
msgid "Guatemala"
-msgstr ""
+msgstr "Guatemala"
#. Name
#: gu/entry.desktop:2
msgid "Guam"
-msgstr ""
+msgstr "Guam"
#. Name
#: gw/entry.desktop:2
msgid "Guinea-Bissau"
-msgstr ""
+msgstr "Guinea-Bissau"
#. Name
#: gy/entry.desktop:2
msgid "Guyana"
-msgstr ""
+msgstr "Guyana"
#. Name
#: hk/entry.desktop:2
@@ -571,7 +570,7 @@ msgstr "Hong Kong SAR(Cina)"
#. Name
#: hn/entry.desktop:2
msgid "Honduras"
-msgstr ""
+msgstr "Honduras"
#. Name
#: hr/entry.desktop:2
@@ -581,7 +580,7 @@ msgstr "Croazia"
#. Name
#: ht/entry.desktop:2
msgid "Haiti"
-msgstr ""
+msgstr "Haiti"
#. Name
#: hu/entry.desktop:2
@@ -591,7 +590,7 @@ msgstr "Ungheria"
#. Name
#: id/entry.desktop:2
msgid "Indonesia"
-msgstr ""
+msgstr "Indonesia"
#. Name
#: ie/entry.desktop:2
@@ -606,17 +605,17 @@ msgstr "Israele"
#. Name
#: in/entry.desktop:2
msgid "India"
-msgstr ""
+msgstr "India"
#. Name
#: iq/entry.desktop:2
msgid "Iraq"
-msgstr ""
+msgstr "Iraq"
#. Name
#: ir/entry.desktop:2
msgid "Iran"
-msgstr ""
+msgstr "Iran"
#. Name
#: is/entry.desktop:2
@@ -646,12 +645,12 @@ msgstr "Giappone"
#. Name
#: jv/entry.desktop:2
msgid "Indonesia (Java)"
-msgstr ""
+msgstr "Indonesia (Java)"
#. Name
#: ke/entry.desktop:2
msgid "Kenya"
-msgstr ""
+msgstr "Kenya"
#. Name
#: kg/entry.desktop:2
@@ -666,7 +665,7 @@ msgstr "Cambogia"
#. Name
#: ki/entry.desktop:2
msgid "Kiribati"
-msgstr ""
+msgstr "Kiribati"
#. Name
#: km/entry.desktop:2
@@ -691,7 +690,7 @@ msgstr "Corea del Sud"
#. Name
#: kw/entry.desktop:2
msgid "Kuwait"
-msgstr ""
+msgstr "Kuwait"
#. Name
#: ky/entry.desktop:2
@@ -706,7 +705,7 @@ msgstr "Kazakistan"
#. Name
#: la/entry.desktop:2
msgid "Laos"
-msgstr ""
+msgstr "Laos"
#. Name
#: lb/entry.desktop:2
@@ -721,22 +720,22 @@ msgstr "Santa Lucia"
#. Name
#: li/entry.desktop:2
msgid "Liechtenstein"
-msgstr ""
+msgstr "Liechtenstein"
#. Name
#: lk/entry.desktop:2
msgid "Sri Lanka"
-msgstr ""
+msgstr "Sri Lanka"
#. Name
#: lr/entry.desktop:2
msgid "Liberia"
-msgstr ""
+msgstr "Liberia"
#. Name
#: ls/entry.desktop:2
msgid "Lesotho"
-msgstr ""
+msgstr "Lesotho"
#. Name
#: lt/entry.desktop:2
@@ -766,7 +765,7 @@ msgstr "Marocco"
#. Name
#: mc/entry.desktop:2
msgid "Monaco"
-msgstr ""
+msgstr "Monaco"
#. Name
#: md/entry.desktop:2
@@ -775,14 +774,13 @@ msgstr "Moldavia"
#. Name
#: me/entry.desktop:3
-#, fuzzy
msgid "Montenegro"
-msgstr "Monserrat"
+msgstr "Montenegro"
#. Name
#: mg/entry.desktop:2
msgid "Madagascar"
-msgstr ""
+msgstr "Madagascar"
#. Name
#: mh/entry.desktop:2
@@ -796,24 +794,23 @@ msgstr "Nuova Zelanda"
#. Name
#: mk/entry.desktop:3
-#, fuzzy
msgid "Macedonia"
-msgstr "Nuova Caledonia"
+msgstr "Macedonia"
#. Name
#: ml/entry.desktop:2
msgid "Mali"
-msgstr ""
+msgstr "Mali"
#. Name
#: mm/entry.desktop:2
msgid "Myanmar"
-msgstr ""
+msgstr "Birmania"
#. Name
#: mn/entry.desktop:2
msgid "Mongolia"
-msgstr ""
+msgstr "Mongolia"
#. Name
#: mo/entry.desktop:2
@@ -827,9 +824,8 @@ msgstr "Martinica"
#. Name
#: mr/entry.desktop:2
-#, fuzzy
msgid "Mauritania"
-msgstr "Lituania"
+msgstr "Mauritania"
#. Name
#: ms/entry.desktop:2
@@ -839,12 +835,12 @@ msgstr "Monserrat"
#. Name
#: mt/entry.desktop:3
msgid "Malta"
-msgstr ""
+msgstr "Malta"
#. Name
#: mu/entry.desktop:2
msgid "Mauritius"
-msgstr ""
+msgstr "Mauritius"
#. Name
#: mv/entry.desktop:2
@@ -854,7 +850,7 @@ msgstr "Maldive"
#. Name
#: mw/entry.desktop:2
msgid "Malawi"
-msgstr ""
+msgstr "Malawi"
#. Name
#: mx/entry.desktop:2
@@ -864,7 +860,7 @@ msgstr "Messico"
#. Name
#: my/entry.desktop:2
msgid "Malaysia"
-msgstr ""
+msgstr "Malaysia"
#. Name
#: mz/entry.desktop:2
@@ -874,7 +870,7 @@ msgstr "Mozambico"
#. Name
#: na/entry.desktop:2
msgid "Namibia"
-msgstr ""
+msgstr "Namibia"
#. Name
#: nc/entry.desktop:2
@@ -884,7 +880,7 @@ msgstr "Nuova Caledonia"
#. Name
#: ne/entry.desktop:2
msgid "Niger"
-msgstr ""
+msgstr "Niger"
#. Name
#: nf/entry.desktop:2
@@ -894,12 +890,12 @@ msgstr "Isola Norfolk"
#. Name
#: ng/entry.desktop:2
msgid "Nigeria"
-msgstr ""
+msgstr "Nigeria"
#. Name
#: ni/entry.desktop:2
msgid "Nicaragua"
-msgstr ""
+msgstr "Nicaragua"
#. Name
#: nl/entry.desktop:3
@@ -914,27 +910,27 @@ msgstr "Norvegia"
#. Name
#: np/entry.desktop:2
msgid "Nepal"
-msgstr ""
+msgstr "Nepal"
#. Name
#: nr/entry.desktop:2
msgid "Nauru"
-msgstr ""
+msgstr "Nauru"
#. Name
#: nu/entry.desktop:2
msgid "Niue"
-msgstr ""
+msgstr "Niue"
#. Name
#: om/entry.desktop:2
msgid "Oman"
-msgstr ""
+msgstr "Oman"
#. Name
#: pa/entry.desktop:2
msgid "Panama"
-msgstr ""
+msgstr "Panama"
#. Name
#: pe/entry.desktop:2
@@ -958,9 +954,8 @@ msgstr "Filippine"
#. Name
#: pk/entry.desktop:2
-#, fuzzy
msgid "Pakistan"
-msgstr "Tagikistan"
+msgstr "Pakistan"
#. Name
#: pl/entry.desktop:2
@@ -975,7 +970,7 @@ msgstr "Saint Pierre e Miquelon"
#. Name
#: pn/entry.desktop:2
msgid "Pitcairn"
-msgstr ""
+msgstr "Pitcairn"
#. Name
#: pr/entry.desktop:2
@@ -995,32 +990,32 @@ msgstr "Portogallo"
#. Name
#: pw/entry.desktop:2
msgid "Palau"
-msgstr ""
+msgstr "Palau"
#. Name
#: py/entry.desktop:2
msgid "Paraguay"
-msgstr ""
+msgstr "Paraguay"
#. Name
#: qa/entry.desktop:2
msgid "Qatar"
-msgstr ""
+msgstr "Qatar"
#. Name
#: ro/entry.desktop:2
msgid "Romania"
-msgstr ""
+msgstr "Romania"
#. Name
#: rs/entry.desktop:3
msgid "Serbia"
-msgstr ""
+msgstr "Serbia"
#. Name
#: ru/entry.desktop:3
msgid "Russia"
-msgstr ""
+msgstr "Russia"
#. Name
#: rw/entry.desktop:2
@@ -1040,12 +1035,12 @@ msgstr "Isole Salomone"
#. Name
#: sc/entry.desktop:2
msgid "Seychelles"
-msgstr ""
+msgstr "Seychelles"
#. Name
#: sd/entry.desktop:2
msgid "Sudan"
-msgstr ""
+msgstr "Sudan"
#. Name
#: se/entry.desktop:2
@@ -1055,7 +1050,7 @@ msgstr "Svezia"
#. Name
#: sg/entry.desktop:2
msgid "Singapore"
-msgstr ""
+msgstr "Singapore"
#. Name
#: sh/entry.desktop:2
@@ -1064,9 +1059,8 @@ msgstr "Sant'Elena"
#. Name
#: si/entry.desktop:2
-#, fuzzy
msgid "Slovenia"
-msgstr "Slovacchia"
+msgstr "Slovenia"
#. Name
#: sk/entry.desktop:2
@@ -1076,22 +1070,22 @@ msgstr "Slovacchia"
#. Name
#: sm/entry.desktop:2
msgid "San Marino"
-msgstr ""
+msgstr "San Marino"
#. Name
#: sn/entry.desktop:2
msgid "Senegal"
-msgstr ""
+msgstr "Senegal"
#. Name
#: so/entry.desktop:2
msgid "Somalia"
-msgstr ""
+msgstr "Somalia"
#. Name
#: sr/entry.desktop:2
msgid "Suriname"
-msgstr ""
+msgstr "Suriname"
#. Name
#: st/entry.desktop:2
@@ -1101,7 +1095,7 @@ msgstr "São Tomé e Príncipe"
#. Name
#: sv/entry.desktop:2
msgid "El Salvador"
-msgstr ""
+msgstr "El Salvador"
#. Name
#: sy/entry.desktop:2
@@ -1110,9 +1104,8 @@ msgstr "Siria"
#. Name
#: sz/entry.desktop:2
-#, fuzzy
msgid "Swaziland"
-msgstr "Tailandia"
+msgstr "Swaziland"
#. Name
#: tc/entry.desktop:2
@@ -1127,7 +1120,7 @@ msgstr "Ciad"
#. Name
#: tg/entry.desktop:2
msgid "Togo"
-msgstr ""
+msgstr "Togo"
#. Name
#: th/entry.desktop:2
@@ -1142,23 +1135,22 @@ msgstr "Tagikistan"
#. Name
#: tk/entry.desktop:2
msgid "Tokelau"
-msgstr ""
+msgstr "Tokelau"
#. Name
#: tm/entry.desktop:2
-#, fuzzy
msgid "Turkmenistan"
-msgstr "Tagikistan"
+msgstr "Turkmenistan"
#. Name
#: tn/entry.desktop:2
msgid "Tunisia"
-msgstr ""
+msgstr "Tunisia"
#. Name
#: to/entry.desktop:2
msgid "Tonga"
-msgstr ""
+msgstr "Tonga"
#. Name
#: tp/entry.desktop:2
@@ -1178,12 +1170,12 @@ msgstr "Trinidad e Tobago"
#. Name
#: tv/entry.desktop:2
msgid "Tuvalu"
-msgstr ""
+msgstr "Tuvalu"
#. Name
#: tw/entry.desktop:3
msgid "Taiwan"
-msgstr ""
+msgstr "Taiwan"
#. Name
#: tz/entry.desktop:2
@@ -1197,9 +1189,8 @@ msgstr "Ucraina"
#. Name
#: ug/entry.desktop:2
-#, fuzzy
msgid "Uganda"
-msgstr "Ruanda"
+msgstr "Uganda"
#. Name
#: us/entry.desktop:2
@@ -1209,13 +1200,12 @@ msgstr "Stati Uniti d'America"
#. Name
#: uy/entry.desktop:2
msgid "Uruguay"
-msgstr ""
+msgstr "Uruguay"
#. Name
#: uz/entry.desktop:2
-#, fuzzy
msgid "Uzbekistan"
-msgstr "Tagikistan"
+msgstr "Uzbekistan"
#. Name
#: va/entry.desktop:2
@@ -1230,7 +1220,7 @@ msgstr "Saint Vincent e Grenadines"
#. Name
#: ve/entry.desktop:2
msgid "Venezuela"
-msgstr ""
+msgstr "Venezuela"
#. Name
#: vg/entry.desktop:2
@@ -1245,12 +1235,12 @@ msgstr "Isole Vergini Americane"
#. Name
#: vn/entry.desktop:2
msgid "Vietnam"
-msgstr ""
+msgstr "Vietnam"
#. Name
#: vu/entry.desktop:2
msgid "Vanuatu"
-msgstr ""
+msgstr "Vanuatu"
#. Name
#: wf/entry.desktop:2
@@ -1260,12 +1250,12 @@ msgstr "Wallis e Futuna"
#. Name
#: ws/entry.desktop:3
msgid "Samoa"
-msgstr ""
+msgstr "Samoa"
#. Name
#: ye/entry.desktop:2
msgid "Yemen"
-msgstr ""
+msgstr "Yemen"
#. Name
#: za/entry.desktop:3
@@ -1275,12 +1265,12 @@ msgstr "Sud Africa"
#. Name
#: zm/entry.desktop:2
msgid "Zambia"
-msgstr ""
+msgstr "Zambia"
#. Name
#: zw/entry.desktop:2
msgid "Zimbabwe"
-msgstr ""
+msgstr "Zimbabwe"
#~ msgid "F"
#~ msgstr "F"
diff --git a/translations/desktop_files/tde_release_notes.desktop/it.po b/translations/desktop_files/tde_release_notes.desktop/it.po
new file mode 100644
index 000000000..e529d839e
--- /dev/null
+++ b/translations/desktop_files/tde_release_notes.desktop/it.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-17 20:22+0200\n"
+"PO-Revision-Date: 2022-03-16 06:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tde_release_notesdesktop/it/>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11.2\n"
+
+#. Name
+#: tde_release_notes.desktop:3
+msgid "tde_release_notes"
+msgstr "Note di rilascio di TDE"
diff --git a/translations/desktop_files/tdeioslave-desktops/it.po b/translations/desktop_files/tdeioslave-desktops/it.po
index fd4d3f864..bd439fa6c 100644
--- a/translations/desktop_files/tdeioslave-desktops/it.po
+++ b/translations/desktop_files/tdeioslave-desktops/it.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-07 18:17+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-01 07:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdeioslave-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11\n"
#. Name
#: cgi/kcmcgi/kcmcgi.desktop:9
@@ -38,14 +39,13 @@ msgstr "Notifica KDED Home Base URL"
#. Comment
#: home/kdedmodule/homedirnotify.desktop:6
-#, fuzzy
msgid "Provides change notification for user's home folder ($HOME)"
-msgstr "Dà notifiche dei cambiamenti per le cartelle di rete"
+msgstr "Fornisce notifiche di modifica per la cartella home dell'utente ($HOME)"
#. Name
#: man/kmanpart.desktop:4
msgid "KManPart"
-msgstr ""
+msgstr "KManPart"
#. Comment
#: man/kmanpart.desktop:6
@@ -262,19 +262,17 @@ msgstr "Volume disco rigido non montato"
#. Comment
#: media/mimetypes/mycomputer.desktop:6
msgid "My Computer"
-msgstr ""
+msgstr "Computer"
#. Comment
#: media/mimetypes/mydocuments.desktop:6
-#, fuzzy
msgid "My Documents"
-msgstr "Cartella documenti"
+msgstr "Documenti"
#. Comment
#: media/mimetypes/mynetworkplaces.desktop:6
-#, fuzzy
msgid "My Network Places"
-msgstr "Indirizzi remoti"
+msgstr "Indirizzi di rete"
#. Comment
#: media/mimetypes/nfs_mounted.desktop:6
@@ -289,7 +287,7 @@ msgstr "Risorsa NFS non montata"
#. Comment
#: media/mimetypes/printers.desktop:6
msgid "Printers"
-msgstr ""
+msgstr "Stampanti"
#. Comment
#: media/mimetypes/removable_encrypted_locked.desktop:7
@@ -335,14 +333,13 @@ msgstr "Cestino"
#. Comment
#: media/mimetypes/vcd.desktop:6
-#, fuzzy
msgid "Video CD"
-msgstr "Super video CD"
+msgstr "Video CD"
#. Comment
#: media/mimetypes/webbrowser.desktop:6
msgid "Web Browser"
-msgstr ""
+msgstr "Browser di rete"
#. Comment
#: media/mimetypes/zip_mounted.desktop:6
@@ -372,7 +369,7 @@ msgstr "Espelli"
#. Name
#: media/services/media_lock.desktop:10
msgid "Lock"
-msgstr ""
+msgstr "Blocca"
#. Name
#: media/services/media_mount.desktop:10
@@ -392,7 +389,7 @@ msgstr "Rimozione sicura"
#. Name
#: media/services/media_unlock.desktop:10
msgid "Unlock"
-msgstr ""
+msgstr "Sblocca"
#. Name
#: media/services/media_unmount.desktop:10
@@ -471,11 +468,12 @@ msgstr "Notifica KDED System Base URL"
#. Comment
#: system/kdedmodule/systemdirnotify.desktop:6
-#, fuzzy
msgid ""
"Provides change notification for folders monitored by the system:/ tdeio "
"plugin"
-msgstr "Dà notifiche dei cambiamenti per le cartelle di rete"
+msgstr ""
+"Fornisce notifiche di modifica per le cartelle monitorate dal plug-in "
+"system:/tdeio"
#. Comment
#: system/mimetypes/system_directory.desktop:6
diff --git a/translations/desktop_files/tdeprint-desktops/it.po b/translations/desktop_files/tdeprint-desktops/it.po
index 3a96de7bb..9c6c41aee 100644
--- a/translations/desktop_files/tdeprint-desktops/it.po
+++ b/translations/desktop_files/tdeprint-desktops/it.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-07 18:17+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-01 07:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdeprint-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11\n"
#. Name
#: kjobviewer/kjobviewer-autostart.desktop:7 kjobviewer/kjobviewer.desktop:8
msgid "KJobViewer"
-msgstr ""
+msgstr "KJobViewer"
#. GenericName
#. Comment
@@ -30,9 +31,8 @@ msgstr "Lavori di stampa"
#. Name
#: kprinter/kprinter.desktop:9
-#, fuzzy
msgid "KPrinter"
-msgstr "Stampante"
+msgstr "KPrinter"
#. GenericName
#: kprinter/kprinter.desktop:11
@@ -88,7 +88,7 @@ msgstr "Modello stampante"
#. Name
#: tdeprintfax/tdeprintfax.desktop:2
msgid "TDEPrintFax"
-msgstr ""
+msgstr "TDEPrintFax"
#. GenericName
#: tdeprintfax/tdeprintfax.desktop:4
diff --git a/translations/desktop_files/tdeprint-desktops/ru.po b/translations/desktop_files/tdeprint-desktops/ru.po
index 6df524cdf..60c2e3ae1 100644
--- a/translations/desktop_files/tdeprint-desktops/ru.po
+++ b/translations/desktop_files/tdeprint-desktops/ru.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-07-07 18:17+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdeprint-desktop-files/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: kjobviewer/kjobviewer-autostart.desktop:7 kjobviewer/kjobviewer.desktop:8
msgid "KJobViewer"
-msgstr ""
+msgstr "Просмотрщик заданий печати TDE"
#. GenericName
#. Comment
diff --git a/translations/desktop_files/tdm-sessions/it.po b/translations/desktop_files/tdm-sessions/it.po
index 9b8f23a71..3eabe0868 100644
--- a/translations/desktop_files/tdm-sessions/it.po
+++ b/translations/desktop_files/tdm-sessions/it.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 20:47+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-08 02:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdm-sessions/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11.2\n"
#. Name
#: tde.desktop.cmake:7
msgid "TDE"
-msgstr ""
+msgstr "TDE"
#. Comment
#: tde.desktop.cmake:8
@@ -32,7 +33,7 @@ msgstr ""
#. Name
#: 9wm.desktop:6
msgid "9WM"
-msgstr ""
+msgstr "9WM"
#. Comment
#: 9wm.desktop:8
@@ -42,17 +43,17 @@ msgstr "Un emulatore del window manager 8-1/2 Plan 9"
#. Name
#: admin.desktop:7
msgid "admin"
-msgstr ""
+msgstr "Amministratore"
#. Comment
#: admin.desktop:9
msgid "Yast Admin Session"
-msgstr ""
+msgstr "Sessione amministrativa Yast"
#. Name
#: aewm++.desktop:6
msgid "AEWM++"
-msgstr ""
+msgstr "AEWM++"
#. Comment
#: aewm++.desktop:8
@@ -66,7 +67,7 @@ msgstr ""
#. Name
#: aewm.desktop:6
msgid "AEWM"
-msgstr ""
+msgstr "AEWM"
#. Comment
#: aewm.desktop:8
@@ -76,7 +77,7 @@ msgstr "Un window manager minimalista"
#. Name
#: afterstep.desktop:6
msgid "AfterStep"
-msgstr ""
+msgstr "AfterStep"
#. Comment
#: afterstep.desktop:8
@@ -86,7 +87,7 @@ msgstr "Un window manager con lo stile NeXTStep, basato su FVWM"
#. Name
#: amaterus.desktop:6
msgid "AMATERUS"
-msgstr ""
+msgstr "AMATERUS"
#. Comment
#: amaterus.desktop:8
@@ -98,7 +99,7 @@ msgstr ""
#. Name
#: amiwm.desktop:6
msgid "AmiWM"
-msgstr ""
+msgstr "AmiWM"
#. Comment
#: amiwm.desktop:8
@@ -108,7 +109,7 @@ msgstr "Un window manager in stile Amiga"
#. Name
#: asclassic.desktop:6
msgid "ASClassic"
-msgstr ""
+msgstr "ASClassic"
#. Comment
#: asclassic.desktop:8
@@ -118,7 +119,7 @@ msgstr "AfterStep Classico, un window manager basato su AfterStep v1.1"
#. Name
#: blackbox.desktop:6
msgid "Blackbox"
-msgstr ""
+msgstr "Blackbox"
#. Comment
#: blackbox.desktop:8
@@ -128,7 +129,7 @@ msgstr "Un window manager veloce e leggero"
#. Name
#: cde.desktop:6
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Comment
#: cde.desktop:8
@@ -136,12 +137,12 @@ msgid ""
"The Common Desktop Environment, a proprietary industry standard desktop "
"environment"
msgstr ""
-"Il Common Desktop Environment, un desktop environment proprietario standard."
+"Il Common Desktop Environment, un desktop environment proprietario standard"
#. Name
#: ctwm.desktop:6
msgid "CTWM"
-msgstr ""
+msgstr "CTWM"
#. Comment
#: ctwm.desktop:8
@@ -153,7 +154,7 @@ msgstr ""
#. Name
#: cwwm.desktop:6
msgid "CWWM"
-msgstr ""
+msgstr "CWWM"
#. Comment
#: cwwm.desktop:8
@@ -164,7 +165,7 @@ msgstr ""
#. Name
#: enlightenment.desktop:6
msgid "Enlightenment"
-msgstr ""
+msgstr "Enlightenment"
#. Comment
#: enlightenment.desktop:8
@@ -174,7 +175,7 @@ msgstr "Un window manager estremamente temabile con molte funzionalità"
#. Name
#: evilwm.desktop:6
msgid "EvilWM"
-msgstr ""
+msgstr "EvilWM"
#. Comment
#: evilwm.desktop:8
@@ -184,7 +185,7 @@ msgstr "Un window manager minimalista basato su AEWM"
#. Name
#: fluxbox.desktop:6
msgid "Fluxbox"
-msgstr ""
+msgstr "Fluxbox"
#. Comment
#: fluxbox.desktop:8
@@ -196,7 +197,7 @@ msgstr ""
#. Name
#: flwm.desktop:6
msgid "FLWM"
-msgstr ""
+msgstr "FLWM"
#. Comment
#: flwm.desktop:8
@@ -206,7 +207,7 @@ msgstr "Il Fast Light Window Manager, basato principalmente su WM2"
#. Name
#: fvwm.desktop:6
msgid "FVWM"
-msgstr ""
+msgstr "FVWM"
#. Comment
#: fvwm.desktop:8 fvwm2.desktop:8
@@ -218,12 +219,12 @@ msgstr ""
#. Name
#: fvwm2.desktop:6
msgid "FVWM2"
-msgstr ""
+msgstr "FVWM2"
#. Name
#: fvwm95.desktop:6
msgid "FVWM95"
-msgstr ""
+msgstr "FVWM95"
#. Comment
#: fvwm95.desktop:8
@@ -233,7 +234,7 @@ msgstr "Una variante di FVWM che assomiglia a Windows 95"
#. Name
#: gnome.desktop:6
msgid "GNOME"
-msgstr ""
+msgstr "GNOME"
#. Comment
#: gnome.desktop:8
@@ -247,7 +248,7 @@ msgstr ""
#. Name
#: golem.desktop:6
msgid "Golem"
-msgstr ""
+msgstr "Golem"
#. Comment
#: golem.desktop:8
@@ -257,7 +258,7 @@ msgstr "Un window manager leggero"
#. Name
#: icewm.desktop:6
msgid "IceWM"
-msgstr ""
+msgstr "IceWM"
#. Comment
#: icewm.desktop:8
@@ -267,14 +268,14 @@ msgstr "Un window manager in stile Windows 95-OS/2-Motif"
#. Name
#: ion.desktop:6
msgid "Ion"
-msgstr ""
+msgstr "Ion"
#. Comment
#: ion.desktop:8
msgid "A keyboard-friendly window manager with tiled windows, based on PWM"
msgstr ""
"Un window manager \"amico della tastiera\" con finestre affiancate, basato "
-"su PWM "
+"su PWM"
#. Name
#: kde-plasma-safe.desktop:7
@@ -299,7 +300,7 @@ msgstr "Il desktop fatto da KDE"
#. Name
#: larswm.desktop:6
msgid "LarsWM"
-msgstr ""
+msgstr "LarsWM"
#. Comment
#: larswm.desktop:8
@@ -310,7 +311,7 @@ msgstr ""
#. Name
#: lwm.desktop:6
msgid "LWM"
-msgstr ""
+msgstr "LWM"
#. Comment
#: lwm.desktop:8
@@ -321,7 +322,7 @@ msgstr ""
#. Name
#: matchbox.desktop:6
msgid "Matchbox"
-msgstr ""
+msgstr "Matchbox"
#. Comment
#: matchbox.desktop:8
@@ -331,7 +332,7 @@ msgstr "Un window manager per palmari"
#. Name
#: metacity.desktop:6
msgid "Metacity"
-msgstr ""
+msgstr "Metacity"
#. Comment
#: metacity.desktop:8
@@ -341,7 +342,7 @@ msgstr "Un window manager leggero basato su GTK2"
#. Name
#: mwm.desktop:6
msgid "MWM"
-msgstr ""
+msgstr "MWM"
#. Comment
#: mwm.desktop:8
@@ -351,7 +352,7 @@ msgstr "Il window manager di Motif"
#. Name
#: olvwm.desktop:6
msgid "OLVWM"
-msgstr ""
+msgstr "OLVWM"
#. Comment
#: olvwm.desktop:8
@@ -365,7 +366,7 @@ msgstr ""
#. Name
#: olwm.desktop:6
msgid "OLWM"
-msgstr ""
+msgstr "OLWM"
#. Comment
#: olwm.desktop:8
@@ -375,7 +376,7 @@ msgstr "L'Open Look Window Manager tradizionale"
#. Name
#: openbox.desktop:6
msgid "Openbox"
-msgstr ""
+msgstr "Openbox"
#. Comment
#: openbox.desktop:8
@@ -385,7 +386,7 @@ msgstr "Un window manager leggero basato su BlackBox"
#. Name
#: oroborus.desktop:6
msgid "Oroborus"
-msgstr ""
+msgstr "Oroborus"
#. Comment
#: oroborus.desktop:8
@@ -395,7 +396,7 @@ msgstr "Un window manager leggero che supporta i temi"
#. Name
#: phluid.desktop:6
msgid "Phluid"
-msgstr ""
+msgstr "Phluid"
#. Comment
#: phluid.desktop:8
@@ -405,7 +406,7 @@ msgstr "Un window manager basato su Imlib2"
#. Name
#: pwm.desktop:6
msgid "PWM"
-msgstr ""
+msgstr "PWM"
#. Comment
#: pwm.desktop:8
@@ -417,7 +418,7 @@ msgstr ""
#. Name
#: qvwm.desktop:6
msgid "QVWM"
-msgstr ""
+msgstr "QVWM"
#. Comment
#: qvwm.desktop:8
@@ -427,7 +428,7 @@ msgstr "Un window manager in stile Windows 95"
#. Name
#: ratpoison.desktop:6
msgid "Ratpoison"
-msgstr ""
+msgstr "Ratpoison"
#. Comment
#: ratpoison.desktop:8
@@ -437,7 +438,7 @@ msgstr "Un window manager semplice solo-tastiera pensato come Screen"
#. Name
#: sapphire.desktop:6
msgid "Sapphire"
-msgstr ""
+msgstr "Sapphire"
#. Comment
#: sapphire.desktop:8
@@ -447,7 +448,7 @@ msgstr "Un window manager minimale ma configurabile"
#. Name
#: sawfish.desktop:6
msgid "Sawfish"
-msgstr ""
+msgstr "Sawfish"
#. Comment
#: sawfish.desktop:8
@@ -460,7 +461,7 @@ msgstr ""
#. Name
#: twm.desktop:6
msgid "TWM"
-msgstr ""
+msgstr "TWM"
#. Comment
#: twm.desktop:8
@@ -470,7 +471,7 @@ msgstr "Il Tab Window Manager"
#. Name
#: ude.desktop:6
msgid "UDE"
-msgstr ""
+msgstr "UDE"
#. Comment
#: ude.desktop:8
@@ -480,7 +481,7 @@ msgstr "Lo Unix Desktop Environment"
#. Name
#: vtwm.desktop:6
msgid "VTWM"
-msgstr ""
+msgstr "VTWM"
#. Comment
#: vtwm.desktop:8
@@ -491,7 +492,7 @@ msgstr ""
#. Name
#: w9wm.desktop:6
msgid "W9WM"
-msgstr ""
+msgstr "W9WM"
#. Comment
#: w9wm.desktop:8
@@ -500,12 +501,12 @@ msgid ""
"bindings"
msgstr ""
"Un window manager basato su 9WM, migliorato con schermi virtuali e "
-"scorciatoie per la tastiera."
+"scorciatoie per la tastiera"
#. Name
#: waimea.desktop:6
msgid "Waimea"
-msgstr ""
+msgstr "Waimea"
#. Comment
#: waimea.desktop:8
@@ -515,7 +516,7 @@ msgstr "Un window manager molto personalizzabile basato su BlackBox"
#. Name
#: wm2.desktop:6
msgid "WM2"
-msgstr ""
+msgstr "WM2"
#. Comment
#: wm2.desktop:8
@@ -524,19 +525,18 @@ msgstr "Un window manager piccolo e non configurabile"
#. Name
#: wmaker.desktop:6
-#, fuzzy
msgid "WindowMaker"
-msgstr "Il Tab Window Manager"
+msgstr "WindowMaker"
#. Comment
#: wmaker.desktop:8
msgid "A simple window manager that resembles the NeXTStep look very closely"
-msgstr "Un semplice window manager che assomiglia molto a NeXTStep."
+msgstr "Un semplice window manager che assomiglia molto a NeXTStep"
#. Name
#: xfce.desktop:6
msgid "XFce"
-msgstr ""
+msgstr "XFce"
#. Comment
#: xfce.desktop:8
@@ -550,7 +550,7 @@ msgstr ""
#. Name
#: xfce4.desktop:6
msgid "XFce 4"
-msgstr ""
+msgstr "XFce 4"
#. Comment
#: xfce4.desktop:8
diff --git a/translations/desktop_files/tdm-sessions/nl.po b/translations/desktop_files/tdm-sessions/nl.po
index 21f023504..450b78291 100644
--- a/translations/desktop_files/tdm-sessions/nl.po
+++ b/translations/desktop_files/tdm-sessions/nl.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Heimen Stoffels <vistausss@outlook.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 20:47+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-05-03 17:20+0000\n"
+"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
+"Language-Team: Dutch <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/tdm-sessions/nl/>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.12.1\n"
#. Name
#: tde.desktop.cmake:7
msgid "TDE"
-msgstr ""
+msgstr "TDE"
#. Comment
#: tde.desktop.cmake:8
@@ -33,7 +34,7 @@ msgstr ""
#. Name
#: 9wm.desktop:6
msgid "9WM"
-msgstr ""
+msgstr "9WM"
#. Comment
#: 9wm.desktop:8
@@ -43,17 +44,17 @@ msgstr "Een emulator voor de Plan9 windowmanager 8-1/2"
#. Name
#: admin.desktop:7
msgid "admin"
-msgstr ""
+msgstr "beheerder"
#. Comment
#: admin.desktop:9
msgid "Yast Admin Session"
-msgstr ""
+msgstr "YAST-beheerderssessie"
#. Name
#: aewm++.desktop:6
msgid "AEWM++"
-msgstr ""
+msgstr "AEWM++"
#. Comment
#: aewm++.desktop:8
@@ -67,7 +68,7 @@ msgstr ""
#. Name
#: aewm.desktop:6
msgid "AEWM"
-msgstr ""
+msgstr "AEWM"
#. Comment
#: aewm.desktop:8
@@ -77,7 +78,7 @@ msgstr "Een minimalistische windowmanager"
#. Name
#: afterstep.desktop:6
msgid "AfterStep"
-msgstr ""
+msgstr "AfterStep"
#. Comment
#: afterstep.desktop:8
@@ -88,7 +89,7 @@ msgstr ""
#. Name
#: amaterus.desktop:6
msgid "AMATERUS"
-msgstr ""
+msgstr "AMATERUS"
#. Comment
#: amaterus.desktop:8
@@ -523,9 +524,8 @@ msgstr "Een kleine, niet-instelbare windowmanager"
#. Name
#: wmaker.desktop:6
-#, fuzzy
msgid "WindowMaker"
-msgstr "De Tab Window Manager"
+msgstr "WindowMaker"
#. Comment
#: wmaker.desktop:8
diff --git a/translations/desktop_files/tdm-sessions/ru.po b/translations/desktop_files/tdm-sessions/ru.po
index d3bd0f3c8..1fa334753 100644
--- a/translations/desktop_files/tdm-sessions/ru.po
+++ b/translations/desktop_files/tdm-sessions/ru.po
@@ -1,33 +1,36 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 20:47+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdm-sessions/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: tde.desktop.cmake:7
msgid "TDE"
-msgstr ""
+msgstr "TDE"
#. Comment
#: tde.desktop.cmake:8
-#, fuzzy
msgid ""
"The Trinity Desktop Environment. A powerful Open Source graphical desktop "
"environment"
-msgstr "Common Desktop Environment, промышленный стандарт рабочей среды UNIX"
+msgstr ""
+"Trinity Desktop Environment. Мощная графическая среда рабочего с открытым "
+"исходным кодом"
#. Name
#: 9wm.desktop:6
diff --git a/translations/desktop_files/tdm-themes/it.po b/translations/desktop_files/tdm-themes/it.po
index 7a742dd24..034755e75 100644
--- a/translations/desktop_files/tdm-themes/it.po
+++ b/translations/desktop_files/tdm-themes/it.po
@@ -1,13 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# Fiflagar Lorizen <fiflagar.lorizen@posteo.net>, 2021.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 20:50+0200\n"
-"PO-Revision-Date: 2021-04-20 20:01+0000\n"
-"Last-Translator: Fiflagar Lorizen <fiflagar.lorizen@posteo.net>\n"
+"PO-Revision-Date: 2022-03-06 19:02+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/tdm-themes/it/>\n"
"Language: it\n"
@@ -15,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5.3\n"
+"X-Generator: Weblate 4.11.2\n"
#. Name
#: circles/GdmGreeterTheme.desktop:7
@@ -40,7 +41,7 @@ msgstr "Un tema TDM minimalista per l'ambiente TDE, ispirato da LigthDM"
#. Name
#: o2_enterprise/GdmGreeterTheme.desktop:8
msgid "O2 Enterprise"
-msgstr ""
+msgstr "O2 Enterprise"
#. Description
#: o2_enterprise/GdmGreeterTheme.desktop:10
diff --git a/translations/desktop_files/twin-clients-desktops/it.po b/translations/desktop_files/twin-clients-desktops/it.po
index 2ac0567cd..18c9892e8 100644
--- a/translations/desktop_files/twin-clients-desktops/it.po
+++ b/translations/desktop_files/twin-clients-desktops/it.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 21:19+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-13 09:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/twin-clients-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11.2\n"
#. Name
#: b2/b2.desktop:2
msgid "B II"
-msgstr ""
+msgstr "B II"
#. Name
#: keramik/keramik.desktop:2
@@ -49,12 +50,12 @@ msgstr "Plastica"
#. Name
#: quartz/quartz.desktop:2
msgid "Quartz"
-msgstr ""
+msgstr "Quarzo"
#. Name
#: redmond/redmond.desktop:2
msgid "Redmond"
-msgstr ""
+msgstr "Redmond"
#. Name
#: test/test.desktop:2
@@ -64,4 +65,4 @@ msgstr "Prova KWin"
#. Name
#: web/web.desktop:2
msgid "Web"
-msgstr ""
+msgstr "Web"
diff --git a/translations/desktop_files/twin-clients-desktops/ru.po b/translations/desktop_files/twin-clients-desktops/ru.po
index 9fa01043e..db2d1ff33 100644
--- a/translations/desktop_files/twin-clients-desktops/ru.po
+++ b/translations/desktop_files/twin-clients-desktops/ru.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Alexander Golubev <fatzer2@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 21:19+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-02-14 23:01+0000\n"
+"Last-Translator: Alexander Golubev <fatzer2@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/twin-clients-desktop-files/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10.1\n"
#. Name
#: b2/b2.desktop:2
msgid "B II"
-msgstr ""
+msgstr "B II"
#. Name
#: keramik/keramik.desktop:2
diff --git a/translations/desktop_files/twin-desktops/it.po b/translations/desktop_files/twin-desktops/it.po
index b669cbdbb..3fff615e3 100644
--- a/translations/desktop_files/twin-desktops/it.po
+++ b/translations/desktop_files/twin-desktops/it.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 21:32+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-13 09:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/twin-desktop-files/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11.2\n"
#. Name
#: kcmtwin/showdesktop.desktop:4
@@ -82,7 +83,7 @@ msgstr "arrotola;bordi;passaggio del mouse;bordi attivi;"
#. Name
#: kcmtwin/twinoptions/twinfocus.desktop:11
msgid "Focus"
-msgstr ""
+msgstr "Focus"
#. Comment
#: kcmtwin/twinoptions/twinfocus.desktop:13
@@ -171,27 +172,30 @@ msgstr ""
#. Description
#: data/fsp_workarounds_1.twinrules:2
msgid "(Default) Disable focus stealing prevention for XV"
-msgstr "(Predefinita) Disabilita la prevenzione della cattura del fuoco per XV"
+msgstr "(Predefinito) Disabilita la prevenzione della cattura del fuoco per XV"
#. Description
#: data/fsp_workarounds_1.twinrules:10
-#, fuzzy
msgid "(Default) Allow focus stealing by the screen locker"
-msgstr "(Predefinita) Disabilita la prevenzione della cattura del fuoco per XV"
+msgstr "(Predefinito) Consenti la cattura del focus da parte del blocca schermo"
#. Description
#: data/fsp_workarounds_1.twinrules:21
-#, fuzzy
msgid "(Default) Allow focus stealing by the kdesktop run dialog"
-msgstr "(Predefinita) Disabilita la prevenzione della cattura del fuoco per XV"
+msgstr ""
+"(Predefinito) Consenti la cattura del focus da parte della finestra di "
+"dialogo \"Esegui programma\" di kdesktop"
#. Description
#: data/fsp_workarounds_1.twinrules:32
-#, fuzzy
msgid "(Default) Allow focus stealing by the settings test dialog"
-msgstr "(Predefinita) Disabilita la prevenzione della cattura del fuoco per XV"
+msgstr ""
+"(Predefinito) Consenti la cattura del focus da parte della finestra di "
+"dialogo usata per testare i settaggi"
#. Description
#: data/fsp_workarounds_1.twinrules:45
msgid "(Default) Hide system modal dialog class from taskbar"
msgstr ""
+"(Predefinito) Nascondi la finestra di dialogo modale di classe del sistema "
+"dalla barra delle applicazioni"
diff --git a/translations/desktop_files/twin-eventsrc/it.po b/translations/desktop_files/twin-eventsrc/it.po
index 6c03bdade..1e48fa9ca 100644
--- a/translations/desktop_files/twin-eventsrc/it.po
+++ b/translations/desktop_files/twin-eventsrc/it.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 21:20+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2022-03-16 06:11+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/twin-events/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11.2\n"
#. Comment
#: eventsrc:3
@@ -29,7 +30,7 @@ msgstr "Va al desktop 1"
#. Comment
#: eventsrc:7
msgid "Virtual desktop one is selected"
-msgstr "Il desktop virtuale uno viene selezionato."
+msgstr "Il desktop virtuale uno viene selezionato"
#. Name
#: eventsrc:12
@@ -39,7 +40,7 @@ msgstr "Va al desktop 2"
#. Comment
#: eventsrc:13
msgid "Virtual desktop two is selected"
-msgstr "Il desktop virtuale due viene selezionato."
+msgstr "Il desktop virtuale due viene selezionato"
#. Name
#: eventsrc:18
@@ -49,7 +50,7 @@ msgstr "Va al desktop 3"
#. Comment
#: eventsrc:19
msgid "Virtual desktop three is selected"
-msgstr "Il desktop virtuale tre viene selezionato."
+msgstr "Il desktop virtuale tre viene selezionato"
#. Name
#: eventsrc:24
@@ -59,7 +60,7 @@ msgstr "Va al desktop 4"
#. Comment
#: eventsrc:25
msgid "Virtual desktop four is selected"
-msgstr "Il desktop virtuale quattro viene selezionato."
+msgstr "Il desktop virtuale quattro viene selezionato"
#. Name
#: eventsrc:30
@@ -69,7 +70,7 @@ msgstr "Va al desktop 5"
#. Comment
#: eventsrc:31
msgid "Virtual desktop five is selected"
-msgstr "Il desktop virtuale cinque viene selezionato."
+msgstr "Il desktop virtuale cinque viene selezionato"
#. Name
#: eventsrc:36
@@ -79,7 +80,7 @@ msgstr "Va al desktop 6"
#. Comment
#: eventsrc:37
msgid "Virtual desktop six is selected"
-msgstr "Il desktop virtuale sei viene selezionato."
+msgstr "Il desktop virtuale sei viene selezionato"
#. Name
#: eventsrc:42
@@ -89,7 +90,7 @@ msgstr "Va al desktop 7"
#. Comment
#: eventsrc:43
msgid "Virtual desktop seven is selected"
-msgstr "Il desktop virtuale sette viene selezionato."
+msgstr "Il desktop virtuale sette viene selezionato"
#. Name
#: eventsrc:48
@@ -99,7 +100,7 @@ msgstr "Va al desktop 8"
#. Comment
#: eventsrc:49
msgid "Virtual desktop eight is selected"
-msgstr "Il desktop virtuale otto viene selezionato."
+msgstr "Il desktop virtuale otto viene selezionato"
#. Name
#: eventsrc:54
@@ -109,7 +110,7 @@ msgstr "Va al desktop 9"
#. Comment
#: eventsrc:55
msgid "Virtual desktop nine is selected"
-msgstr "Il desktop virtuale nove viene selezionato."
+msgstr "Il desktop virtuale nove viene selezionato"
#. Name
#: eventsrc:59
@@ -119,7 +120,7 @@ msgstr "Va al desktop 10"
#. Comment
#: eventsrc:60
msgid "Virtual desktop ten is selected"
-msgstr "Il desktop virtuale dieci viene selezionato."
+msgstr "Il desktop virtuale dieci viene selezionato"
#. Name
#: eventsrc:64
@@ -129,7 +130,7 @@ msgstr "Va al desktop 11"
#. Comment
#: eventsrc:65
msgid "Virtual desktop eleven is selected"
-msgstr "Il desktop virtuale undici viene selezionato."
+msgstr "Il desktop virtuale undici viene selezionato"
#. Name
#: eventsrc:69
@@ -139,7 +140,7 @@ msgstr "Va al desktop 12"
#. Comment
#: eventsrc:70
msgid "Virtual desktop twelve is selected"
-msgstr "Il desktop virtuale dodici viene selezionato."
+msgstr "Il desktop virtuale dodici viene selezionato"
#. Name
#: eventsrc:74
@@ -149,7 +150,7 @@ msgstr "Va al desktop 13"
#. Comment
#: eventsrc:75
msgid "Virtual desktop thirteen is selected"
-msgstr "Il desktop virtuale tredici viene selezionato."
+msgstr "Il desktop virtuale tredici viene selezionato"
#. Name
#: eventsrc:79
@@ -159,7 +160,7 @@ msgstr "Va al desktop 14"
#. Comment
#: eventsrc:80
msgid "Virtual desktop fourteen is selected"
-msgstr "Il desktop virtuale quattordici viene selezionato."
+msgstr "Il desktop virtuale quattordici viene selezionato"
#. Name
#: eventsrc:84
@@ -169,7 +170,7 @@ msgstr "Va al desktop 15"
#. Comment
#: eventsrc:85
msgid "Virtual desktop fifteen is selected"
-msgstr "Il desktop virtuale quindici viene selezionato."
+msgstr "Il desktop virtuale quindici viene selezionato"
#. Name
#: eventsrc:89
@@ -179,7 +180,7 @@ msgstr "Va al desktop 16"
#. Comment
#: eventsrc:90
msgid "Virtual desktop sixteen is selected"
-msgstr "Il desktop virtuale sedici viene selezionato."
+msgstr "Il desktop virtuale sedici viene selezionato"
#. Name
#: eventsrc:94
@@ -189,7 +190,7 @@ msgstr "Va al desktop 17"
#. Comment
#: eventsrc:95
msgid "Virtual desktop seventeen is selected"
-msgstr "Il desktop virtuale diciassette viene selezionato."
+msgstr "Il desktop virtuale diciassette viene selezionato"
#. Name
#: eventsrc:99
@@ -199,7 +200,7 @@ msgstr "Va al desktop 18"
#. Comment
#: eventsrc:100
msgid "Virtual desktop eighteen is selected"
-msgstr "Il desktop virtuale diciotto viene selezionato."
+msgstr "Il desktop virtuale diciotto viene selezionato"
#. Name
#: eventsrc:104
@@ -209,7 +210,7 @@ msgstr "Va al desktop 19"
#. Comment
#: eventsrc:105
msgid "Virtual desktop nineteen is selected"
-msgstr "Il desktop virtuale diciannove viene selezionato."
+msgstr "Il desktop virtuale diciannove viene selezionato"
#. Name
#: eventsrc:109
@@ -219,7 +220,7 @@ msgstr "Va al desktop 20"
#. Comment
#: eventsrc:110
msgid "Virtual desktop twenty is selected"
-msgstr "Il desktop virtuale venti viene selezionato."
+msgstr "Il desktop virtuale venti viene selezionato"
#. Name
#: eventsrc:114