summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeL10n.txt3
-rw-r--r--CMakeLists.txt11
-rw-r--r--ConfigureChecks.cmake16
-rw-r--r--FindXscreensaver.cmake72
-rw-r--r--README41
m---------admin0
-rw-r--r--config.h.cmake5
-rw-r--r--doc/kappfinder/CMakeLists.txt6
-rw-r--r--doc/kate/highlighting.docbook4
-rw-r--r--doc/kcontrol/samba/index.docbook8
-rw-r--r--doc/khelpcenter/adminguide/index.docbook2
-rw-r--r--doc/khelpcenter/faq/filemng.docbook2
-rw-r--r--doc/khelpcenter/releasenotes/index.docbook4
-rw-r--r--doc/khelpcenter/releasenotes/r14.0.11.docbook105
-rw-r--r--doc/khelpcenter/releasenotes/r14.0.12.docbook87
-rw-r--r--doc/khelpcenter/releasenotes/r14.0.13.docbook127
-rw-r--r--doc/khelpcenter/userguide/switching-sessions.docbook8
-rw-r--r--doc/khelpcenter/userguide/under-the-hood.docbook2
-rw-r--r--doc/khelpcenter/whatistde.docbook2
-rw-r--r--doc/kompmgr/index.docbook2
-rw-r--r--doc/kwrite/index.docbook10
-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--doc/tdeioslave/gopher/CMakeLists.txt9
-rw-r--r--doc/tdeioslave/gopher/Makefile.am2
-rw-r--r--doc/tdeioslave/gopher/index.docbook72
-rw-r--r--doc/tdeprint/cups-config.docbook2
-rw-r--r--doc/tdeprint/cupsoptions.docbook10
-rw-r--r--doc/tdeprint/rlpr.docbook2
-rw-r--r--doc/tdeprint/theory.docbook6
-rw-r--r--kcontrol/CMakeLists.txt2
-rw-r--r--kcontrol/background/bgdefaults.h4
-rw-r--r--kcontrol/background/bgdialog.cpp54
-rw-r--r--kcontrol/background/bgdialog.h7
-rw-r--r--kcontrol/background/bgdialog_ui.ui8
-rw-r--r--kcontrol/componentchooser/componentchooser_ui.ui5
-rw-r--r--kcontrol/css/cssconfig.ui10
-rw-r--r--kcontrol/css/csscustom.ui4
-rw-r--r--kcontrol/css/preview.ui3
-rw-r--r--kcontrol/displayconfig/displayconfig.cpp5
-rw-r--r--kcontrol/dnssd/configdialog.ui12
-rw-r--r--kcontrol/fonts/fonts.cpp64
-rw-r--r--kcontrol/fonts/fonts.h6
-rw-r--r--kcontrol/hwmanager/deviceiconview.cpp3
-rw-r--r--kcontrol/hwmanager/deviceiconview.h20
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.cpp22
-rw-r--r--kcontrol/hwmanager/hwmanager.cpp30
-rw-r--r--kcontrol/hwmanager/hwmanager.h1
-rw-r--r--kcontrol/kicker/applettab.ui6
-rw-r--r--kcontrol/kicker/hidingtab.ui5
-rw-r--r--kcontrol/kicker/lookandfeeltab.ui8
-rw-r--r--kcontrol/kicker/menutab.ui76
-rw-r--r--kcontrol/kicker/menutab_impl.cpp29
-rw-r--r--kcontrol/kicker/menutab_impl.h3
-rw-r--r--kcontrol/kicker/positiontab.ui8
-rw-r--r--kcontrol/knotify/playersettings.ui6
-rw-r--r--kcontrol/konq/desktopbehavior.ui1
-rw-r--r--kcontrol/konqhtml/nsconfigwidget.ui14
-rw-r--r--kcontrol/konsole/kcmkonsole.cpp11
-rw-r--r--kcontrol/konsole/kcmkonsole.h1
-rw-r--r--kcontrol/konsole/kcmkonsoledialog.ui34
-rw-r--r--kcontrol/konsole/sessiondialog.ui6
-rw-r--r--kcontrol/krdb/krdb.cpp17
-rw-r--r--kcontrol/screensaver/scrnsave.cpp35
-rw-r--r--kcontrol/tdeio/kproxydlg_ui.ui4
-rw-r--r--kcontrol/usbview/usbdevices.cpp19
-rw-r--r--kcontrol/usbview/usbdevices.h5
-rw-r--r--kdcop/kdcopview.ui4
-rw-r--r--kdesktop/kdesktopSetAsBackground.desktop38
-rw-r--r--kdesktop/minicli_ui.ui11
-rw-r--r--khotkeys/kcontrol/CMakeLists.txt2
-rw-r--r--khotkeys/kcontrol/Makefile.am2
-rw-r--r--khotkeys/kcontrol/action_list_widget.cpp121
-rw-r--r--khotkeys/kcontrol/action_list_widget.h40
-rw-r--r--khotkeys/kcontrol/actions_listview_widget.cpp10
-rw-r--r--khotkeys/kcontrol/actions_listview_widget.h16
-rw-r--r--khotkeys/kcontrol/condition_list_widget.cpp97
-rw-r--r--khotkeys/kcontrol/condition_list_widget.h18
-rw-r--r--khotkeys/kcontrol/ui/CMakeLists.txt2
-rw-r--r--khotkeys/kcontrol/ui/Makefile.am2
-rw-r--r--khotkeys/kcontrol/ui/action_list_widget_ui.ui30
-rw-r--r--khotkeys/kcontrol/ui/command_url_widget_ui.ui6
-rw-r--r--khotkeys/kcontrol/ui/condition_list_widget_ui.ui32
-rw-r--r--khotkeys/kcontrol/ui/waiting_widget_ui.ui72
-rw-r--r--khotkeys/kcontrol/waiting_widget.cpp56
-rw-r--r--khotkeys/kcontrol/waiting_widget.h36
-rw-r--r--khotkeys/shared/actions.cpp34
-rw-r--r--khotkeys/shared/actions.h29
-rw-r--r--khotkeys/shared/settings.cpp6
-rw-r--r--khotkeys/shared/triggers.cpp2
-rw-r--r--kicker/applets/media/mediumbutton.cpp3
-rw-r--r--kicker/applets/swallow/prefwidgetbase.ui17
-rw-r--r--kicker/kicker/ui/appletview.ui4
-rw-r--r--kicker/kicker/ui/k_mnu.cpp42
-rw-r--r--kicker/kicker/ui/k_mnu.h1
-rw-r--r--kicker/libkicker/kickerSettings.kcfg5
-rw-r--r--kicker/taskbar/taskcontainer.cpp5
-rw-r--r--kicker/taskmanager/taskrmbmenu.cpp77
-rw-r--r--konsole/README.konsole_kiosk2
-rw-r--r--konsole/konsole/TEScreen.cpp97
-rw-r--r--konsole/konsole/TEScreen.h22
-rw-r--r--konsole/konsole/TEWidget.cpp24
-rw-r--r--konsole/konsole/TEWidget.h4
-rw-r--r--konsole/konsole/TEmuVt102.cpp7
-rw-r--r--konsole/konsole/konsole.cpp32
-rw-r--r--konsole/konsole/konsole.h1
-rw-r--r--konsole/konsole/konsole_part.cpp11
-rw-r--r--kpersonalizer/README6
-rw-r--r--kpersonalizer/keyecandypage.cpp2
-rw-r--r--ksysguard/gui/SensorDisplayLib/MultiMeterSettingsWidget.ui6
-rw-r--r--ktip/tips12
-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--libkonq/PLUGINS.md (renamed from libkonq/PLUGINS)17
-rw-r--r--libkonq/SERVICEMENUS52
-rw-r--r--libkonq/SERVICEMENUS.md55
-rwxr-xr-xstarttde25
-rw-r--r--tdeinit/phase1.cpp4
-rw-r--r--tdeioslave/fish/fish.cpp4
-rw-r--r--tdeioslave/man/tdeio_man.cpp1
-rw-r--r--tdeioslave/sftp/AUTHORS3
-rw-r--r--tdeioslave/sftp/CHANGELOG59
-rw-r--r--tdeioslave/sftp/CMakeLists.txt25
-rw-r--r--tdeioslave/sftp/DEBUGGING12
-rw-r--r--tdeioslave/sftp/Makefile.am25
-rw-r--r--tdeioslave/sftp/TODO5
-rw-r--r--tdeioslave/sftp/atomicio.cpp67
-rw-r--r--tdeioslave/sftp/atomicio.h39
-rw-r--r--tdeioslave/sftp/ksshprocess.cpp1114
-rw-r--r--tdeioslave/sftp/ksshprocess.h623
-rw-r--r--tdeioslave/sftp/ksshprocesstest.cpp98
-rw-r--r--tdeioslave/sftp/process.cpp493
-rw-r--r--tdeioslave/sftp/process.h148
-rw-r--r--tdeioslave/sftp/sftp.h91
-rw-r--r--tdeioslave/sftp/sftp.protocol2
-rw-r--r--tdeioslave/sftp/sftpfileattr.cpp345
-rw-r--r--tdeioslave/sftp/sftpfileattr.h261
-rw-r--r--tdeioslave/sftp/tdeio_sftp.cpp3406
-rw-r--r--tdeioslave/sftp/tdeio_sftp.h217
-rw-r--r--tdm/config.def3
-rw-r--r--tdm/kfrontend/kgapp.cpp21
-rw-r--r--tdm/tdm.service.cmake4
-rw-r--r--tdm/tdm.service.debian.cmake7
-rw-r--r--tdm/tdm.service.fedora-18.cmake4
-rw-r--r--tdm/tdm.service.fedora-19.cmake4
-rw-r--r--tdm/tdm.service.fedora.cmake2
-rw-r--r--tdm/tdm.service.rhel.cmake2
-rw-r--r--tdm/tdm.service.ubuntu.cmake7
-rw-r--r--tdmlib/kgreet_winbind.cpp2
-rw-r--r--translations/desktop_files/applnk-compat/es.po17
-rw-r--r--translations/desktop_files/applnk-compat/pl.po20
-rw-r--r--translations/desktop_files/applnk-directories/es.po27
-rw-r--r--translations/desktop_files/applnk-directories/pl.po37
-rw-r--r--translations/desktop_files/applnk-directories/pt.po41
-rw-r--r--translations/desktop_files/drkonqi-presets/pl.po22
-rw-r--r--translations/desktop_files/drkonqi-presets/pt.po23
-rw-r--r--translations/desktop_files/kappfinder-data/it.po393
-rw-r--r--translations/desktop_files/kappfinder-data/ru.po20
-rw-r--r--translations/desktop_files/kappfinder.desktop/ru.po16
-rw-r--r--translations/desktop_files/kate-desktops/it.po11
-rw-r--r--translations/desktop_files/kate-desktops/ru.po16
-rw-r--r--translations/desktop_files/kcontrol-color-schemes/el.po40
-rw-r--r--translations/desktop_files/kcontrol-color-schemes/pl.po44
-rw-r--r--translations/desktop_files/kcontrol-color-schemes/pt.po40
-rw-r--r--translations/desktop_files/kcontrol-color-schemes/ru.po54
-rw-r--r--translations/desktop_files/kcontrol-desktops/cs.po64
-rw-r--r--translations/desktop_files/kcontrol-desktops/es.po24
-rw-r--r--translations/desktop_files/kcontrol-desktops/it.po311
-rw-r--r--translations/desktop_files/kcontrol-desktops/ru.po31
-rw-r--r--translations/desktop_files/kdcop.desktop/el.po28
-rw-r--r--translations/desktop_files/kdcop.desktop/fr.po25
-rw-r--r--translations/desktop_files/kdcop.desktop/it.po28
-rw-r--r--translations/desktop_files/kdcop.desktop/pt.po15
-rw-r--r--translations/desktop_files/kdesktop-desktops/af.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ar.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/az.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/be.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/bg.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/bn.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/br.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/bs.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ca.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/cs.po47
-rw-r--r--translations/desktop_files/kdesktop-desktops/csb.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/cy.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/da.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/de.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/el.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/en_GB.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/eo.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/es.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/et.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/eu.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/fa.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/fi.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/fr.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/fy.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ga.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/gl.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/he.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/hi.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/hr.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/hu.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/id.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/is.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/it.po47
-rw-r--r--translations/desktop_files/kdesktop-desktops/ja.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ka.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/kdesktop-desktops.pot32
-rw-r--r--translations/desktop_files/kdesktop-desktops/kk.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/km.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ko.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/lo.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/lt.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/lv.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/mk.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/mn.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/ms.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/mt.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/nb.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/nds.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ne.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/nl.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/nn.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/nso.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/oc.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/pa.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/pl.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/pt.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/pt_BR.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ro.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ru.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/rw.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/se.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/sk.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/sl.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/sr.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/sr@Latn.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ss.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/sv.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ta.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/te.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/tg.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/th.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/tr.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/tt.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/uk.po38
-rw-r--r--translations/desktop_files/kdesktop-desktops/uz.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/uz@cyrillic.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/ven.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/vi.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/wa.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/xh.po32
-rw-r--r--translations/desktop_files/kdesktop-desktops/zh_CN.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/zh_TW.po35
-rw-r--r--translations/desktop_files/kdesktop-desktops/zu.po32
-rw-r--r--translations/desktop_files/kdesktop-icons/it.po21
-rw-r--r--translations/desktop_files/kdesktop-icons/pl.po30
-rw-r--r--translations/desktop_files/khelpcenter-desktops/it.po26
-rw-r--r--translations/desktop_files/khotkeys-data/cs.po54
-rw-r--r--translations/desktop_files/khotkeys-data/it.po33
-rw-r--r--translations/desktop_files/khotkeys-data/pl.po27
-rw-r--r--translations/desktop_files/kicker-desktops/el.po19
-rw-r--r--translations/desktop_files/kicker-desktops/it.po25
-rw-r--r--translations/desktop_files/klipper-desktops/it.po17
-rw-r--r--translations/desktop_files/kmenuedit.desktop/it.po16
-rw-r--r--translations/desktop_files/kmenuedit.desktop/ru.po17
-rw-r--r--translations/desktop_files/knetattach.desktop/es.po15
-rw-r--r--translations/desktop_files/knetattach.desktop/it.po15
-rw-r--r--translations/desktop_files/knetattach.desktop/ru.po16
-rw-r--r--translations/desktop_files/konqueror-desktops/it.po27
-rw-r--r--translations/desktop_files/konsole-desktops/it.po54
-rw-r--r--translations/desktop_files/konsole-eventsrc/it.po15
-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/kpersonalizer.desktop/it.po15
-rw-r--r--translations/desktop_files/ksplash-desktops/it.po22
-rw-r--r--translations/desktop_files/ksplash-desktops/pl.po15
-rw-r--r--translations/desktop_files/ksplash-themes/el.po101
-rw-r--r--translations/desktop_files/ksplash-themes/es.po45
-rw-r--r--translations/desktop_files/ksplash-themes/it.po101
-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/el.po15
-rw-r--r--translations/desktop_files/ktip.desktop/es.po15
-rw-r--r--translations/desktop_files/ktip.desktop/it.po15
-rw-r--r--translations/desktop_files/ktip.desktop/ru.po16
-rw-r--r--translations/desktop_files/l10n-desktops/cs.po191
-rw-r--r--translations/desktop_files/l10n-desktops/it.po250
-rw-r--r--translations/desktop_files/l10n-desktops/pt.po19
-rw-r--r--translations/desktop_files/l10n-desktops/uk.po15
-rw-r--r--translations/desktop_files/tde_release_notes.desktop/it.po23
-rw-r--r--translations/desktop_files/tde_release_notes.desktop/pt.po13
-rw-r--r--translations/desktop_files/tdeintegration.desktop/cs.po8
-rw-r--r--translations/desktop_files/tdeioslave-desktops/cs.po149
-rw-r--r--translations/desktop_files/tdeioslave-desktops/it.po47
-rw-r--r--translations/desktop_files/tdeprint-desktops/it.po22
-rw-r--r--translations/desktop_files/tdeprint-desktops/ru.po18
-rw-r--r--translations/desktop_files/tdescreensaver-desktops/cs.po17
-rw-r--r--translations/desktop_files/tdm-sessions/cs.po171
-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/pl.po108
-rw-r--r--translations/desktop_files/tdm-sessions/ru.po21
-rw-r--r--translations/desktop_files/tdm-themes/es.po19
-rw-r--r--translations/desktop_files/tdm-themes/it.po9
-rw-r--r--translations/desktop_files/tdm-themes/pt.po21
-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.po33
-rw-r--r--translations/desktop_files/twin-eventsrc/it.po53
-rw-r--r--translations/desktop_files/wallpapers-desktops/cs.po40
-rw-r--r--twin/clients/plastik/config/configdialog.ui3
-rw-r--r--twin/compton-tde/compton.c2
-rw-r--r--twin/kcmtwin/twinoptions/mouse.cpp61
-rw-r--r--twin/kcmtwin/twinoptions/mouse.h14
-rw-r--r--twin/kcmtwin/twinrules/ruleslistbase.ui3
-rw-r--r--twin/kcmtwin/twinrules/ruleswidgetbase.ui25
-rw-r--r--twin/options.cpp22
-rw-r--r--twin/options.h32
368 files changed, 14626 insertions, 8029 deletions
diff --git a/CMakeL10n.txt b/CMakeL10n.txt
index 60f084676..061049432 100644
--- a/CMakeL10n.txt
+++ b/CMakeL10n.txt
@@ -9,12 +9,11 @@
#
#################################################
-cmake_minimum_required( VERSION 2.8 )
+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 890022789..2790c5c27 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@
#
#################################################
-cmake_minimum_required( VERSION 2.8.12 )
+cmake_minimum_required( VERSION 3.1 )
##### general package setup #####################
@@ -18,7 +18,6 @@ cmake_minimum_required( VERSION 2.8.12 )
project( tdebase )
set( PACKAGE tdebase )
-set( VERSION R14.0.11 )
##### include essential cmake modules ###########
@@ -38,10 +37,14 @@ include( CheckTypeSize )
##### include our cmake modules #################
-set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )
+##### set version number ########################
+
+tde_set_project_version( )
+
+
##### setup install paths #######################
include( TDESetupPaths )
@@ -254,7 +257,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 070c32f02..d32996ffe 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -89,11 +89,19 @@ endif( )
# sys/time.h (tdeioslave/sftp, ksmserver, ksplashml)
-if( BUILD_KSMSERVER OR BUILD_KSPLASHML OR BUILD_TDEIOSLAVES)
+if( BUILD_KSMSERVER OR BUILD_KSPLASHML OR BUILD_TDEIOSLAVES )
check_include_file( sys/time.h HAVE_SYS_TIME_H )
check_include_files( "sys/time.h;time.h" TIME_WITH_SYS_TIME )
endif( )
+# libssh (tdeioslave/sftp)
+if( BUILD_TDEIOSLAVES )
+ pkg_search_module( LIBSSH libssh )
+ if( NOT LIBSSH_FOUND )
+ tde_message_fatal( "LibSSH is required, but was not found on your system" )
+ endif( )
+endif( )
+
# pam
if( WITH_PAM AND (BUILD_KCHECKPASS OR BUILD_TDM) )
@@ -317,10 +325,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( )
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/README b/README
index fb40fb1ec..e2353bb6b 100644
--- a/README
+++ b/README
@@ -32,7 +32,7 @@ libraries. Here is an overview of the directories:
* kappfinder
Searches for non-TDE applications, e.g. Acrobat Reader (tm) and installs
- those apps under the K start button.
+ those apps under the T start button.
* kate
A fast and advanced text editor, extensible with nice plugins.
@@ -42,7 +42,7 @@ libraries. Here is an overview of the directories:
programs.
* kcontrol
- The Trinity Control Center allows you to tweak the KDE settings.
+ The Trinity Control Center allows you to tweak the TDE settings.
* kdcop
GUI app to browse for DCOP interfaces, can also execute them.
@@ -69,14 +69,14 @@ libraries. Here is an overview of the directories:
File find utility (standalone and in Konqueror's file manager).
* khelpcenter
- Used to to read all great documentation about KDE, unix man pages,
+ Used to to read all great documentation about TDE, unix man pages,
info pages etc.
* khotkeys
Intercepts keys and can call applications.
* kicker
- The panel at the botton with the K start button and the taskbar etc.
+ The panel at the botton with the T start button and the taskbar etc.
* tdeioslave
Infrastructure that helps make every application internet enabled
@@ -86,7 +86,7 @@ libraries. Here is an overview of the directories:
Taskbar applet that enhances and extenses the X clipboard.
* kmenuedit
- Edit for the menu below the K start button.
+ Edit for the menu below the T start button.
* konqueror
The file manager and web browser you get easily used to.
@@ -118,7 +118,7 @@ libraries. Here is an overview of the directories:
A KDE frontend for passwd. Also contains the "Password & User Information" KCM.
* ksplashml
- The screen displayed while KDE starts.
+ The screen displayed while TDE starts.
* kstart
Launches applications with special window properties such as iconified,
@@ -131,10 +131,10 @@ libraries. Here is an overview of the directories:
Allows to run any application in the system tray.
* ktip
- Gives you tips how to use KDE.
+ Gives you tips how to use TDE.
* twin
- The KDE window manager (moves, resizes and decorates windows).
+ The TDE window manager (moves, resizes and decorates windows).
* kxkb
A keyboard map tool.
@@ -268,17 +268,17 @@ they do.
Debugging
---------
You can use --enable-debug with the configure script, if you want to have
-debug code in your KDE apps and libs. If you experience problems and want to
-report problems to the KDE Bugs database, it is recommended to recompile
-with this switch enabled to make the backtraces more verbose (and thus
-giving the developer more information about the cause of the bug).
+debug code in your TDE apps and libs. If you experience problems and want to
+report problems, it is recommended to recompile with this switch enabled to
+make the backtraces more verbose (and thus giving the developer more
+information about the cause of the bug).
Removal/Uninstallation
----------------------
-You can use 'make uninstall' if you want to remove the kde from the dirs.
+You can use 'make uninstall' if you want to remove the tde from the dirs.
This feature has not been tested completely, and is depreciated. On a system
-where TDEDIR is specific to KDE (i.e. not /usr), rm -rf $TDEDIR does it as
+where TDEDIR is specific to TDE (i.e. not /usr), rm -rf $TDEDIR does it as
well.
@@ -295,18 +295,19 @@ Will Andrews <will@FreeBSD.org> and Arun Sharma <adsharma@sharmas.dhs.org>
for identifying what needed to be done, and how to do it, and such.
If your system supports PAM (Plugable Authentication Modules), please see
-the README.pam file in this directory for more information about using KDE
+the README.pam file in this directory for more information about using TDE
with PAM.
Have a look at the individual subdirectories, if you would like to find out
more about a specific application included in tdebase.
-More FAQs on http://www.kde.org/info/faq.html
+More FAQs on https://trinitydesktop.org/faq/index.php
If you have problems compiling and installing this package, please check the
-kde-devel@kde.org mailing list archive (see http://lists.kde.org) to see if
-somebody had a similiar problem already. If not, try posting a message to
-the list with detailed information about the compile problem.
+devels@trinitydesktop.org mailing list archive (see
+https://trinitydesktop.org/mailinglist.php) to see if somebody had a similiar
+problem already. If not, try posting a message to the list with detailed
+information about the compile problem.
-General KDE discussions should go to the KDE mailing list (kde@kde.org).
+General TDE discussions should go to the TDE-users mailing list (users@trinitydesktop.org).
diff --git a/admin b/admin
-Subproject 709ea75c2c6bc299ad0469b9f5e0fb27dd300f8
+Subproject a9e0c7eb508ebea59f1fc26d4a6858c4b6feea3
diff --git a/config.h.cmake b/config.h.cmake
index 2e8cb800b..9afb66814 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
@@ -236,3 +236,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/kappfinder/CMakeLists.txt b/doc/kappfinder/CMakeLists.txt
new file mode 100644
index 000000000..54e4d7175
--- /dev/null
+++ b/doc/kappfinder/CMakeLists.txt
@@ -0,0 +1,6 @@
+#################################################
+#
+# Empty CMake rules to avoid unwanted automatic
+# installation of man-kappfinder.1.docbook
+#
+#################################################
diff --git a/doc/kate/highlighting.docbook b/doc/kate/highlighting.docbook
index 3a64d9d2c..64ab9e2b0 100644
--- a/doc/kate/highlighting.docbook
+++ b/doc/kate/highlighting.docbook
@@ -244,7 +244,7 @@ Available attributes are:</term>
<para><userinput>kateversion</userinput> specifies the latest supported &kate; version.</para>
<para><userinput>casesensitive</userinput> defines, whether the keywords are casesensitiv or not.</para>
<para><userinput>priority</userinput> is necessary if another highlight definition file uses the same extensions. The higher priority will win.</para>
-<para><userinput>author</userinput> contains the name of the author and his email-address.</para>
+<para><userinput>author</userinput> contains the name of the author and their email-address.</para>
<para><userinput>license</userinput> contains the license, usually LGPL, Artistic, GPL and others.</para>
<para><userinput>hidden</userinput> defines, whether the name should appear in &kate;'s menus.</para>
<para>So the next line may look like this:</para>
@@ -459,7 +459,7 @@ do not need to set it, as it defaults to <emphasis>false</emphasis>.</para>
<userinput>general</userinput> defines which indenter will be used, however we strongly
recommend to omit this element, as the indenter usually will be set by either defining
a File Type or by adding a mode line to the text file. If you specify an indenter though,
-you will force a specific indentation on the user, which he might not like at all.
+you will force a specific indentation on the user, which they might not like at all.
Available attributes are:</term>
<listitem>
diff --git a/doc/kcontrol/samba/index.docbook b/doc/kcontrol/samba/index.docbook
index 69d7b91b9..dcf058947 100644
--- a/doc/kcontrol/samba/index.docbook
+++ b/doc/kcontrol/samba/index.docbook
@@ -70,12 +70,12 @@ process (<command>smbd</command>), the next column shows the process
<abbrev>ID</abbrev> (<acronym>pid</acronym>) of this
<command>smbd</command>. If you kill this process the connected user
will be disconnected. If the remote user works from &Windows;, as soon
-as this process is killed a new one will be created, so he will almost
+as this process is killed a new one will be created, so they will almost
not notice it.</para>
<para>The last column shows how many files this user has currently open.
-Here you see only, how many files he has <emphasis>open</emphasis> just
-now, you don't see how many he copied or formerly opened &etc;</para>
+Here you see only how many files they have <emphasis>open</emphasis> just
+now, you don't see how many they copied or formerly opened &etc;</para>
</sect2>
@@ -204,4 +204,4 @@ fixed:</para>
</sect2>
</sect1>
-</article> \ No newline at end of file
+</article>
diff --git a/doc/khelpcenter/adminguide/index.docbook b/doc/khelpcenter/adminguide/index.docbook
index e474c626f..85c82ff95 100644
--- a/doc/khelpcenter/adminguide/index.docbook
+++ b/doc/khelpcenter/adminguide/index.docbook
@@ -2216,7 +2216,7 @@ indicate the users home directory and the &tde; temporary directory of the
user, &eg; <filename class="directory">/tmp/tde-bastian</filename></para>
<para>The following rules makes that the user can no longer open local files
-that are outside his $<envar>HOME</envar> directory:</para>
+that are outside their $<envar>HOME</envar> directory:</para>
<screenco><areaspec>
<area id="local_rule1" coords="3"/>
diff --git a/doc/khelpcenter/faq/filemng.docbook b/doc/khelpcenter/faq/filemng.docbook
index 7620b0f00..76007bcb6 100644
--- a/doc/khelpcenter/faq/filemng.docbook
+++ b/doc/khelpcenter/faq/filemng.docbook
@@ -152,7 +152,7 @@ Foo" are properties defined in the <filename>.desktop</filename> file. If
the icons are not defined, they simply default to the executable name
<replaceable>foo</replaceable>.</para>
-<para>This way a user can change these things in &kmenuedit; for his or her
+<para>This way a user can change these things in &kmenuedit; for their
applications. The <option>-caption</option> option is important, because no
user will accept that the menu item <guimenuitem>Editor</guimenuitem> starts
something called <guilabel>kedit-0.9pl4-build47</guilabel>. Instead, users
diff --git a/doc/khelpcenter/releasenotes/index.docbook b/doc/khelpcenter/releasenotes/index.docbook
index a7b7df8bf..aeb5f47b4 100644
--- a/doc/khelpcenter/releasenotes/index.docbook
+++ b/doc/khelpcenter/releasenotes/index.docbook
@@ -15,6 +15,8 @@
<!ENTITY r14.0.09 SYSTEM "r14.0.09.docbook">
<!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">
]>
@@ -64,6 +66,8 @@ role, including bug fixing, enhancements, testing, etc.</para>
</sect1>
+&r14.0.13;
+&r14.0.12;
&r14.0.11;
&r14.0.10;
&r14.0.09;
diff --git a/doc/khelpcenter/releasenotes/r14.0.11.docbook b/doc/khelpcenter/releasenotes/r14.0.11.docbook
index da3b700cf..da6a62cdc 100644
--- a/doc/khelpcenter/releasenotes/r14.0.11.docbook
+++ b/doc/khelpcenter/releasenotes/r14.0.11.docbook
@@ -1,12 +1,105 @@
<sect1 id="release-notes-r14.0.11">
-<title>R14.0.11 Release Notes (draft)</title>
+<title>R14.0.11 Release Notes</title>
<para>R14.0.11 is the eleventh maintenance release of the R14.0 series,
-and is built on and improves the previous R14.0.10 version.</para>
-<para>Maintenance releases are intended to promptly bring bug fixes
-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/51">here</ulink>.</para>
+<sect2 id="release-notes-r14.0.11-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>Twin style SUSE2 - Twin decoration theme from SUSE 9.3/10.0/10.1.</para></listitem>
+ <listitem><para>Twin style DeKorator - a pixmap-based theme engine and styles for Twin.</para></listitem>
+ <listitem><para>TDEAsciiquarium - an ASCII art aquarium screensaver.</para></listitem>
+ <listitem><para>tdeio-gopher - tdeio slave for gopher protocol.</para></listitem>
+ <listitem><para>tdesshaskpass - a TDE version of ssh-askpass with TDEWallet support.</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Enhancements</para>
+ <itemizedlist>
+ <listitem><para>Added support for variable font DPI (range 64-512) in user session. This helps usability on high resolution screens.</para></listitem>
+ <listitem><para>Updated Akode's FFmpeg decoder to FFmpeg 4.x API.</para></listitem>
+ <listitem><para>Revamped Konqueror's KWeather sidebar look and functionality.</para></listitem>
+ <listitem><para>Extended KXkb's flags and label setup options.</para></listitem>
+ <listitem><para>Added "reverse wheel direction" checkbox to TCC --> Window Behavior --> Titlebar/Window actions, to allow to customize the direction of the wheel event selected.</para></listitem>
+ <listitem><para>Keyboard shortcuts for classic TDE Menu search function is now customizable.</para></listitem>
+ <listitem><para>KNemo now uses the "sys" backend by default and is usable again.</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 building of several packages without tdehw lib.</para></listitem>
+ <listitem><para>Fixed hanging of programs caused by non conforming SVG files.</para></listitem>
+ <listitem><para>Fixed video (V4L2) support in Kopete, camera can now be used.</para></listitem>
+ <listitem><para>Fixed detection of modern gdb in KDbg.</para></listitem>
+ <listitem><para>Fixed "Print to PDF" for GhostScript >= 9.51.</para></listitem>
+ <listitem><para>Fixed OpenDesktop support in TDE Get New Stuff.</para></listitem>
+ <listitem><para>Fixed building tdesdk with glibc >= 2.34.</para></listitem>
+ <listitem><para>Added support for poppler 21.08.0.</para></listitem>
+ <listitem><para>Fixed k3b SEGV caused by AAC processing of specific files.</para></listitem>
+ <listitem><para>Added new IRC network Libera.chat.</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Security</para>
+ <itemizedlist>
+ <listitem><para>KOrganizer no longer displays reminders on top of a locked screen (which could have revealed personal information).</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Renamings</para>
+ <itemizedlist>
+ <listitem><para>kbookreader: installation files have been renamed from "bookreader" to "kbookreader".</para></listitem>
+ <listitem><para>mplayerthumbs: installation files have been renamed from "mplayerthumbs" to "mplayer-thumbnailer".</para></listitem>
+ </itemizedlist>
+</listitem>
+
+<listitem>
+ <para>Distro support</para>
+ <itemizedlist>
+ <listitem><para>Added Fedora 34 and 35.</para></listitem>
+ <listitem><para>Dropped Debian Wheezy, Raspbian Jessie, Ubuntu Disco and Eoan.</para></listitem>
+ <listitem><para>Added Debian Bullseye, Ubuntu Impish.</para></listitem>
+ <listitem><para>Added Arch.</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/50">TGW issue list</ulink></para></listitem>
+ <listitem><para><ulink url="https://bugs.trinitydesktop.org/showdependencytree.cgi?id=3180&amp;hide_resolved=0">Bugzilla bug list</ulink></para></listitem>
+ <listitem><para><ulink url="https://wiki.trinitydesktop.org/Changelog_For_R14.0.11">Detailed commit change log</ulink></para></listitem>
+ <listitem><para><ulink url="https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.11">Full release notes on TDE wiki</ulink></para></listitem>
+</itemizedlist>
+
+<para>Additional info for developers/packagers</para>
+<itemizedlist>
+ <listitem><para>The CMake module was moved to a standalone package (cmake-trinity) and is no longer a submodule. The stand alone package is now used as a build dependency.</para></listitem>
+ <listitem><para>The "applications" folder has been rearranged in sub categories.</para></listitem>
+ <listitem><para>tqca-tls is now part of the tqca package.</para></listitem>
+ <listitem><para>Deb-like distros: switched build to ninja by default.</para></listitem>
+</itemizedlist>
+</sect2>
</sect1>
diff --git a/doc/khelpcenter/releasenotes/r14.0.12.docbook b/doc/khelpcenter/releasenotes/r14.0.12.docbook
new file mode 100644
index 000000000..69ec96ad5
--- /dev/null
+++ b/doc/khelpcenter/releasenotes/r14.0.12.docbook
@@ -0,0 +1,87 @@
+<sect1 id="release-notes-r14.0.12">
+<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 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>
+
+<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..5f3c2a9ed
--- /dev/null
+++ b/doc/khelpcenter/releasenotes/r14.0.13.docbook
@@ -0,0 +1,127 @@
+<sect1 id="release-notes-r14.0.13">
+<title>R14.0.13 Release Notes</title>
+
+<para>R14.0.13 is the thirteenth maintenance release of the R14.0 series,
+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>Below is a summary of some of the most important changes introduced by
+this release.</para>
+
+
+<sect2 id="release-notes-r14.0.13-new-applications">
+<title>New applications</title>
+<itemizedlist>
+ <listitem><para>tdeio-appinfo: a TDEIO slave (appinfo:/) that combines an application's configuration, data, manual and temp files and folders into a single view (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdeio-appinfo">TDE/tdeio-appinfo</ulink>)</para></listitem>
+ <listitem><para>twin-style-machbunt: a KDE window decoration theme from SuSE 9.1/9.2 (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/twin-style-machbunt">TDE/twin-style-machbunt</ulink>)</para></listitem>
+</itemizedlist>
+</sect2>
+
+
+<sect2 id="release-notes-r14.0.13-enhancements">
+<title>Enhancements</title>
+ <itemizedlist>
+ <listitem><para>Ctrl + mouse wheel can now be used to increase/decrease the font size in the following applications:</para>
+ <itemizedlist>
+ <listitem><para>Konsole (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/297">TDE/tdebase#297</ulink>)</para></listitem>
+ <listitem><para>Kate, KWrite, TDevelop and other applications using the Kate part editor (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/180">TDE/tdelibs#180</ulink>)</para></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem><para>Kate: added syntax highlighting for Markdown files (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/170">TDE/tdelibs#170</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/174">TDE/tdelibs#174</ulink>)</para></listitem>
+ <listitem><para>Improved user experience when setting a wallpaper (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/issues/280">TDE/tdebase#280</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/285">TDE/tdebase#285</ulink>)</para></listitem>
+ <listitem><para>Offer all available options to set an image as background from Konqueror's action menu (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/issues/281">TDE/tdebase#281</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/285">TDE/tdebase#285</ulink>)</para></listitem>
+ <listitem><para>Taskbar: <interface>Move Task</interface> and drag-n-drop are now available also for grouped task buttons (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/295">TDE/tdebase#295</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tde/issues/98">TDE/tde#98</ulink>)</para></listitem>
+ <listitem><para>Improvements to khotkeys <interface>Input Actions</interface>:</para>
+ <itemizedlist>
+ <listitem><para>New <interface>move up</interface>/<interface>move down</interface> buttons (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/commit/5e4ca4df9bb34e10a897e32e7e0ca8645b97f293">commit 5e4ca4df</ulink>)</para></listitem>
+ <listitem><para>Fixes to GUI for creating/editing actions (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/commit/0c22a14875913dc185e029d0078a8d15c9ffe102">commit 0c22a148</ulink>)</para></listitem>
+ <listitem><para>New `waiting` action component to introduce a delay between steps (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/267">TDE/tdebase#267</ulink>)</para></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem><para>New SFTP tdeioslave based on libssh (KDE backport) (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/279">TDE/tdebase#279</ulink>)</para></listitem>
+ <listitem><para>Added support for ffmpeg 5.0 (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/akode/pulls/9">TDE/akode#9</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/akode/pulls/10">TDE/akode#10</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/k3b/pulls/14">TDE/k3b#14</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/k3b/pulls/16">TDE/k3b#16</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/k9copy/pulls/5">TDE/k9copy#5</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/k9copy/pulls/6">TDE/k9copy#6</ulink>)</para></listitem>
+ <listitem><para>Added support for Jasper 3.x (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/162">TDE/tdelibs#162</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/digikam/pulls/5">TDE/digikam#5</ulink>)</para></listitem>
+ <listitem><para>Added support for Poppler >= 22.04 (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdegraphics/pulls/45">TDE/tdegraphics#45</ulink>)</para></listitem>
+ <listitem><para>Improvements to Python3 Support (<ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/sip4-tqt/pulls/7">TDE/sip4-tqt#7</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/sip4-tqt/pulls/8">TDE/sip4-tqt#8</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/python-tqt/pulls/7">TDE/python-tqt#7</ulink>)</para></listitem>
+ <listitem><para>Added man pages for several TDE applications (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/abakus/pulls/6">TDE/abakus#6</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/amarok/pulls/34">TDE/amarok#34</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/arts/pulls/8">TDE/arts#8</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/k3b/pulls/18">TDE/k3b#18</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/k9copy/pulls/7">TDE/k9copy#7</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/kile/pulls/3">TDE/kile#3</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/koffice/pulls/28">TDE/koffice#28</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/krecipes/pulls/1">TDE/krecipes#1</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/ktorrent/pulls/4">TDE/ktorrent#4</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/libksquirrel/pulls/3">TDE/libksquirrel#3</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/rosegarden/pulls/4">TDE/rosegarden#4</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tellico/pulls/4">TDE/tellico#4</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdeaddons/pulls/13">TDE/tdeaddons#13</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdeartwork/pulls/21">TDE/tdeartwork#21</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebase/pulls/275">TDE/tdebase#275</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebindings/pulls/11">TDE/tdebindings#11</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdegraphics/pulls/47">TDE/tdegraphics#47</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdemultimedia/pulls/36">TDE/tdemultimedia#36</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdenetwork/pulls/45">TDE/tdenetwork#45</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdesdk/pulls/13">TDE/tdesdk#13</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdeutils/pulls/41">TDE/tdeutils#41</ulink>)</para></listitem>
+ <listitem><para>Improved API visualization (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/167">TDE/tdelibs#167</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/169">TDE/tdelibs#169</ulink>)</para></listitem>
+ <listitem><para>Use gender-neutral language (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebase/pulls/286">TDE/tdebase#286</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdepim/pulls/69">TDE/tdepim#69</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdemultimedia/pulls/37">TDE/tdemultimedia#37</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdegames/pulls/16">TDE/tdegames#16</ulink>)</para></listitem>
+ </itemizedlist>
+</sect2>
+
+<sect2 id="release-notes-r14.0.13-bug-fixes">
+<title>Bug fixes</title>
+ <itemizedlist>
+ <listitem><para>Fixed opening of media:/ and system:/media/ URLs from non-TDE applications (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/157">TDE/tdelibs#157</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebase/issues/224">TDE/tdebase#224</ulink>)</para></listitem>
+ <listitem><para>Fixed compatibility with openSSL 3.0 API (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/175">TDE/tdelibs#175</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/177">TDE/tdelibs#177</ulink>)</para></listitem>
+ <listitem><para>Fixed display of TQMap/TQValueList in dcopclient (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/168">TDE/tdelibs#168</ulink>)</para></listitem>
+ <listitem><para>tdebindings: fixed FTBFS when tdehw is not present (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebindings/pulls/10">TDE/tdebindings#10</ulink>)</para></listitem>
+ <listitem><para>tqt3: fixed rendering of listviews with SGI widget style (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tqt3/pulls/64">TDE/tqt3#64</ulink>)</para></listitem>
+ <listitem><para>Fixed various FTBFS when building with clang</para></listitem>
+ <listitem><para>Fixed font styles detection in TDE font dialogs (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdelibs/pulls/164">TDE/tdelibs#164</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/koffice/pulls/24">TDE/koffice#24</ulink>)</para></listitem>
+ <listitem><para>tdeio-man: fixed visualization of man pages for TDE applications (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebase/pulls/274">TDE/tdebase#274</ulink>)</para></listitem>
+ <listitem><para>basket: fixed SEGV crash when moving new empty notes (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/basket/pulls/12">TDE/basket#12</ulink>)</para></listitem>
+ <listitem><para>kgtk-qt3: added support for gtk2 with glibc 2.34 (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/kgtk-qt3/pulls/4">TDE/kgtk-qt3#4</ulink>)</para></listitem>
+ </itemizedlist>
+</sect2>
+
+
+<sect2 id="release-notes-r14.0.13-security">
+<title>Security</title>
+ <itemizedlist>
+ <listitem><para>FISH protocol: security fix for CVE-2020-12755 (backport from KDE) (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdebase/pulls/282">TDE/tdebase#282</ulink>)</para></listitem>
+ <listitem><para>KMail: fixed vulnerability to EFAIL (backport from KDE) (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdepim/pulls/22">TDE/tdepim#22</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdepim/pulls/70">TDE/tdepim#70</ulink>)</para></listitem>
+ </itemizedlist>
+</sect2>
+
+
+<sect2 id="release-notes-r14.0.13-distro-support">
+<title>Distro support</title>
+ <itemizedlist>
+ <listitem><para>Gentoo: several improvements and addition to supported ebuilds</para></listitem>
+ <listitem><para>Ubuntu: dropped Groovy (20.10), added Kinetic (22.10)</para></listitem>
+ <listitem><para>Fedora: added support for <ulink url="http://mirror.ppa.trinitydesktop.org/trinity/rpm/f36">v36</ulink> and <ulink url="http://mirror.ppa.trinitydesktop.org/trinity/rpm/f37">37</ulink></para></listitem>
+ <listitem><para>Arch: added builds for arm64 and armhf</para></listitem>
+ <listitem><para>OpenSuSE: added support for <ulink url="http://mirror.ppa.trinitydesktop.org/trinity/rpm/opensuse15.4">15.4</ulink></para></listitem>
+ </itemizedlist>
+</sect2>
+
+
+<sect2 id="release-notes-r14.0.13-additional-info">
+<title>Additional info</title>
+ <itemizedlist>
+ <listitem><para><ulink url="https://wiki.trinitydesktop.org/Release_Notes_For_R14.0.13">Full release notes on TDE wiki</ulink></para></listitem>
+ <listitem><para><ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tde/issues/82">TGW issue list</ulink></para></listitem>
+ <listitem><para><ulink url="https://wiki.trinitydesktop.org/Changelog_For_R14.0.13">Detailed commit change log</ulink></para></listitem>
+ </itemizedlist>
+</sect2>
+
+
+<sect2 id="release-notes-r14.0.13-developers-info">
+<title>Additional info for developers/packagers</title>
+ <itemizedlist>
+ <listitem><para>Module version is now automatically added to tarball and detected by cmake at build time (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/scripts/pulls/4">TDE/scripts#4</ulink>, <ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tde-common-cmake/pulls/84">TDE/tde-common-cmake#84</ulink>)</para></listitem>
+ <listitem><para>CMake Trinity's macros can now be used with pure TQt applications which require parsing of .ui files (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tde-common-cmake/pulls/85">TDE/tde-common-cmake#85</ulink>)</para></listitem>
+ <listitem><para>Modules converted to cmake:</para>
+ <itemizedlist>
+ <listitem><para>gtk3-tqt-engine (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/gtk3-tqt-engine/pulls/2">TDE/gtk3-tqt-engine#2</ulink>)</para></listitem>
+ <listitem><para>tderadio (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tderadio/pulls/4">TDE/tderadio#4</ulink>)</para></listitem>
+ <listitem><para>koffice-i18n (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/koffice-i18n/pulls/1">TDE/koffice-i18n#1</ulink>)</para></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem><para>Dropped autotools support for the following modules:</para>
+ <itemizedlist>
+ <listitem><para>rosegarden (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/rosegarden/pulls/5">TDE/rosegarden#5</ulink>)</para></listitem>
+ <listitem><para>tdeio-locate (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdeio-locate/pulls/2">TDE/tdeio-locate#2</ulink>)</para></listitem>
+ <listitem><para>k3b (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/k3b/pulls/19">TDE/k3b#19</ulink>)</para></listitem>
+ <listitem><para>tdepowersave (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tdepowersave/pulls/10">TDE/tdepowersave#10</ulink>)</para></listitem>
+ <listitem><para>tastymenu (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/tastymenu/pulls/3">TDE/tastymenu#3</ulink>)</para></listitem>
+ <listitem><para>gtk-qt-engine (<ulink url="https://mirror.git.trinitydesktop.org/gitea/tde/gtk-qt-engine/pulls/9">TDE/gtk-qt-engine#9</ulink>)</para></listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+</sect2>
+
+</sect1>
+
diff --git a/doc/khelpcenter/userguide/switching-sessions.docbook b/doc/khelpcenter/userguide/switching-sessions.docbook
index 0c15df8e1..3d38adb9c 100644
--- a/doc/khelpcenter/userguide/switching-sessions.docbook
+++ b/doc/khelpcenter/userguide/switching-sessions.docbook
@@ -5,9 +5,9 @@
<para>From version 3.3 onwards, &tde; provides a session management
system which allows you to switch between different user account on
one computer. You can stay logged in and &eg; let your sister,
-brother, wife, neigbour or whoever read her or his emails just for a
+brother, wife, neigbour or whoever read their emails just for a
moment. Before you had to log off (therefore &eg; close programs or
-save documents) and let her or him log in.</para>
+save documents) and let them log in.</para>
<para>Now it's almost as easy as switching to another virtual desktop.</para>
@@ -36,8 +36,8 @@ submenu.</para>
<varlistentry>
<term>Switch User with the screensaver</term>
<listitem><para>If you have activated your screensaver and another user
-wants to log in she or he can simply press the <guibutton>Switch
-User...</guibutton> button and log into another session.</para>
+wants to log in, they can simply press the <guibutton>Switch User...</guibutton>
+button and log into another session.</para>
</listitem>
</varlistentry>
diff --git a/doc/khelpcenter/userguide/under-the-hood.docbook b/doc/khelpcenter/userguide/under-the-hood.docbook
index 0f7dbe111..923ecba46 100644
--- a/doc/khelpcenter/userguide/under-the-hood.docbook
+++ b/doc/khelpcenter/userguide/under-the-hood.docbook
@@ -53,7 +53,7 @@ which are in in the file <filename>kmailrc</filename>).
<para>So why would you want to touch the configuration files at all? Well, first you need it
when you want to enforce the KIOSK mode. Perhaps a developer has asked you
-to add an entry to help him to solve a problem with the application. Perhaps you want to recover from
+to add an entry to help them to solve a problem with the application. Perhaps you want to recover from
a problem without having to remove all the <filename
class="directory">.kde</filename> directory. Perhaps you want to learn more
about the depths of &tde;.</para>
diff --git a/doc/khelpcenter/whatistde.docbook b/doc/khelpcenter/whatistde.docbook
index b93bab5dd..bc094ea40 100644
--- a/doc/khelpcenter/whatistde.docbook
+++ b/doc/khelpcenter/whatistde.docbook
@@ -19,7 +19,7 @@ flow philosophy.</para>
version 3.5, originally written by the KDE Team, a world-wide network of
software engineers committed to Free Software development. This group's
major goal in free software development is to provide high quality software
-that empowers the user with easy control of his computer's resources.</para>
+that empowers the user with easy control of their computer's resources.</para>
<para>The &tde; developers continue the tradition of KDE 3.5.</para>
diff --git a/doc/kompmgr/index.docbook b/doc/kompmgr/index.docbook
index 62eb11377..85498153d 100644
--- a/doc/kompmgr/index.docbook
+++ b/doc/kompmgr/index.docbook
@@ -182,7 +182,7 @@ fix this.</para>
<sect1 id="shadows">
<title>Shadows</title>
-<para>Why should anyone want his windows to throw shadows? Well, maybe just
+<para>Why should anyone want their windows to throw shadows? Well, maybe just
because it looks cute, or because it allows a better window separation,
or... because it looks cute!</para>
<variablelist>
diff --git a/doc/kwrite/index.docbook b/doc/kwrite/index.docbook
index c8c69b644..7e5a4350d 100644
--- a/doc/kwrite/index.docbook
+++ b/doc/kwrite/index.docbook
@@ -567,8 +567,8 @@ The toolbar, which is located at the top of the dialog, has left and
right arrow buttons that let the user move back and forth through
previously selected folders as well as an up arrow button for moving
up the folder tree. The button with the little house takes the user
-to his or her home folder and the one with the two arrows curved in
-on each other updates the view of the current folder. The flag button
+to their home folder and the one with the two arrows curved in on
+each other updates the view of the current folder. The flag button
lets the user set a new bookmark at the current folder or go to one
that was previously set.
</para>
@@ -1682,7 +1682,7 @@ a key combination for the command in question by means of the check boxes and
key button. For example, with the About &tde; command selected in the display
window, the user could select &Ctrl; and <keycap>Alt</keycap>, click on the key
button, and then press the <keycap>K</keycap> key on the keyboard. This would
-mean that anytime he or she held down the &Ctrl; and <keycap>Alt</keycap>
+mean that anytime they held down the &Ctrl; and <keycap>Alt</keycap>
buttons and pressed <keycap>K</keycap> (while using
&kwrite;) the About &tde; display box would be called.</para>
</listitem>
@@ -1814,7 +1814,7 @@ along the bottom of the box the user can control the process.
</para>
<para>
-She or he may invoke the <guilabel>Help</guilabel> system, accept the
+They may invoke the <guilabel>Help</guilabel> system, accept the
current settings and close the dialog by means of the
<guibutton>OK</guibutton> button, or <guibutton>Cancel</guibutton> the
process. The categories <guilabel>Colors</guilabel>,
@@ -2615,7 +2615,7 @@ follows:</para>
<para>
The user can configure the default appearance for
particular items. This would allow a programmer to more easily identify
-different items (types of entries) in his or her code.
+different items (types of entries) in their code.
</para>
<variablelist>
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/doc/tdeioslave/gopher/CMakeLists.txt b/doc/tdeioslave/gopher/CMakeLists.txt
deleted file mode 100644
index 50339b1ae..000000000
--- a/doc/tdeioslave/gopher/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-#################################################
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-tde_create_handbook( DESTINATION tdeioslave/gopher )
diff --git a/doc/tdeioslave/gopher/Makefile.am b/doc/tdeioslave/gopher/Makefile.am
deleted file mode 100644
index 394212568..000000000
--- a/doc/tdeioslave/gopher/Makefile.am
+++ /dev/null
@@ -1,2 +0,0 @@
-KDE_LANG = en
-KDE_DOCS = tdeioslave/gopher
diff --git a/doc/tdeioslave/gopher/index.docbook b/doc/tdeioslave/gopher/index.docbook
deleted file mode 100644
index aa6c710e0..000000000
--- a/doc/tdeioslave/gopher/index.docbook
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
- <!ENTITY % addindex "IGNORE">
- <!ENTITY % English "INCLUDE" > <!-- change language only here -->
-]>
-
-<article lang="&language;" id="gopher">
-<title>gopher</title>
-
-<articleinfo>
-<authorgroup>
-<author>&Lauri.Watts;</author>
-<author>&tde-authors;</author>
-<!-- TRANS:ROLES_OF_TRANSLATORS -->
-</authorgroup>
-
-<releaseinfo>&tde-release-version;</releaseinfo>
-<date>Reviewed: &tde-release-date;</date>
-
-<copyright>
-<year>2010</year>
-<holder>&Lauri.Watts;</holder>
-</copyright>
-<copyright>
-<year>&tde-copyright-date;</year>
-<holder>&tde-team;</holder>
-</copyright>
-
-<abstract>
-<para>
-This handbook describes the gopher protocol.
-</para>
-</abstract>
-
-<keywordset>
-<keyword>TDE</keyword>
-<keyword>gopher</keyword>
-<keyword>protocol</keyword>
-</keywordset>
-
-</articleinfo>
-
-<para>
-<command>gopher</command> began as a distributed campus information service
-at the University of Minnesota. Gopher allows the user to access information
-on Gopher servers running on Internet hosts.</para>
-
-<para>
-Gopher is an Internet information browsing service that uses a menu-driven
-interface. Users select information from menus, which may return another
-menu or display a text file. An item may reside on a Gopher server you
-originally queried, or it may be on another Gopher server (or another host).
-Gopher can <quote>tunnel</quote> from one Gopher to another without the
-user knowing that the server and/or host machine have changed. Gopher keeps
-the exact location of computers hidden from the user, providing the
-<quote>illusion</quote> of a single, large set of interconnected menus.
-</para>
-
-<para>
-Gopher permits the user to record an item's location in a
-<quote>bookmark</quote> thereby allowing users to follow a
-<quote>bookmark</quote> directly to a particular item without
-searching the menu system. Gopher menus are not standardized, inasmuch as
-each Gopher server is individually determined.
-</para>
-
-<para>
-Original source:
-<ulink
-url="http://tlc.nlm.nih.gov/resources/tutorials/internetdistlrn/gophrdef.htm"> http://tlc.nlm.nih.gov/resources/tutorials/internetdistlrn/gophrdef.htm</ulink>
-</para>
-</article>
diff --git a/doc/tdeprint/cups-config.docbook b/doc/tdeprint/cups-config.docbook
index 8f7bf8677..637ce9619 100644
--- a/doc/tdeprint/cups-config.docbook
+++ b/doc/tdeprint/cups-config.docbook
@@ -475,7 +475,7 @@ url="http://localhost:631/">http://localhost:631/</ulink>).</para>
to <systemitem class="username">root</systemitem>, so never do this,
as it only involves dangers. Should anyone discover security
vulnerabilities in one of the used file filters, printer drivers or
-<acronym>CGI</acronym> programs, he could remotely execute arbitrary
+<acronym>CGI</acronym> programs, they could remotely execute arbitrary
commands on your system with root user privileges. Always use an
unprivileged account for the server directive
<guilabel>User</guilabel>.</para>
diff --git a/doc/tdeprint/cupsoptions.docbook b/doc/tdeprint/cupsoptions.docbook
index 0648510db..5468e0594 100644
--- a/doc/tdeprint/cupsoptions.docbook
+++ b/doc/tdeprint/cupsoptions.docbook
@@ -121,7 +121,7 @@ users:</para>
<para>will allow the usage of this (believe me: very nice and also very
professional) printer to only the three mentioned users and at the same
time deny it to all others. If another user wants to print on the
-DigiMaster via this &CUPS; server, he will receive an error message
+DigiMaster via this &CUPS; server, they will receive an error message
along the lines <errortype>client-error-not-possible</errortype>.</para>
<screen><userinput><command>lpadmin</command> <option>-p</option> <parameter>HeidelbergDigimaster9110</parameter> <option>-v</option> <parameter>lpd:/10.160.16.99/mqueue</parameter> <option>-u</option> <parameter>deny:tackat,boss,waba</parameter> <option>-E</option> <option>-P</option> <parameter>/home/kurt/PPDs/DVHV.ppd</parameter></userinput></screen>
@@ -129,7 +129,7 @@ along the lines <errortype>client-error-not-possible</errortype>.</para>
<para>will deny the usage of this same printer to the three mentioned
users and at the same time allow it to all others. If
<quote>denied</quote> user wants to print on the DigiMaster via this
-&CUPS; server, he will receive an error message along the lines
+&CUPS; server, they will receive an error message along the lines
<errortype>client-error-not-possible</errortype>.</para>
<note>
@@ -255,8 +255,8 @@ is defined)</para>
<sect3>
<title>Related Error Messages</title>
-<para>Once a user reaches his quota limit, he'll get a
-<errortype>client-error-not-possible</errortype> message, if he wants to
+<para>Once a user reaches their quota limit, they'll get a
+<errortype>client-error-not-possible</errortype> message, if they want to
print.</para>
</sect3>
@@ -315,7 +315,7 @@ file.</para>
</question>
<answer>
<para>User is either not allowed to print to a certain printer or has
-achieved his quota (based on file size and/or page number)</para>
+achieved their quota (based on file size and/or page number)</para>
</answer>
</qandaentry>
diff --git a/doc/tdeprint/rlpr.docbook b/doc/tdeprint/rlpr.docbook
index fab48d7bb..a8def77e6 100644
--- a/doc/tdeprint/rlpr.docbook
+++ b/doc/tdeprint/rlpr.docbook
@@ -8,7 +8,7 @@ Utility</title>
<para>Printer management: basic operations are supported
(add/remove/modify).</para>
-<para>Each user can predefine the printers he wants to use by specifying
+<para>Each user can predefine the printers they want to use by specifying
the host and related printer queues. Printers are stored on a <quote>per
user basis</quote>. This module is built around the
<application>rlpr</application> utility <ulink
diff --git a/doc/tdeprint/theory.docbook b/doc/tdeprint/theory.docbook
index 909cd19bb..4722ec366 100644
--- a/doc/tdeprint/theory.docbook
+++ b/doc/tdeprint/theory.docbook
@@ -17,7 +17,7 @@ needs extra theory to solve a practical problem.</para>
<para>Earlier on in history, every developer of a program that was
-capable of producing printable output had to write his own printer
+capable of producing printable output had to write their own printer
drivers too. That was quite complicated, because different programs
have different file formats. Even programs with the same purpose, for
example: word processors, often do not understand each other's formats.
@@ -41,8 +41,8 @@ paper (or other output devices, like monitors, photo typesetters, &etc;)
in a common way, was a move that filled a big gap. <!-- FIXME --></para>
<para>One such development was &PostScript; by Adobe. It meant that an
-application programmer could concentrate on making his program generate
-a &PostScript; language description of his printable page, while
+application programmer could concentrate on making their program generate
+a &PostScript; language description of their printable page, while
printing device developers could focus on making their devices
&PostScript; literate.</para>
diff --git a/kcontrol/CMakeLists.txt b/kcontrol/CMakeLists.txt
index d45828d10..724903b5c 100644
--- a/kcontrol/CMakeLists.txt
+++ b/kcontrol/CMakeLists.txt
@@ -76,7 +76,7 @@ if( BUILD_KCONTROL )
add_subdirectory( joystick )
endif( )
- if( ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD" )
+ if( ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|NetBSD" )
add_subdirectory( usbview )
endif( )
diff --git a/kcontrol/background/bgdefaults.h b/kcontrol/background/bgdefaults.h
index bde81071a..e6ece1cfe 100644
--- a/kcontrol/background/bgdefaults.h
+++ b/kcontrol/background/bgdefaults.h
@@ -24,12 +24,10 @@
#define _defMinOptimizationDepth 1
// Per desktop defaults
-// Before you change this get in touch with me (kb9vqf@pearsoncomputing.net)
-// Thanks!!
#define _defColorA TQColor("#003082")
#define _defColorB TQColor("#C0C0C0")
#define _defBackgroundMode KBackgroundSettings::Flat
-#define _defWallpaperMode KBackgroundSettings::Scaled
+#define _defWallpaperMode KBackgroundSettings::ScaleAndCrop
#define _defMultiMode KBackgroundSettings::NoMulti
#define _defBlendMode KBackgroundSettings::NoBlending
#define _defBlendBalance 100
diff --git a/kcontrol/background/bgdialog.cpp b/kcontrol/background/bgdialog.cpp
index 365713a06..67756d466 100644
--- a/kcontrol/background/bgdialog.cpp
+++ b/kcontrol/background/bgdialog.cpp
@@ -1,5 +1,4 @@
/*
-
This file is part of the KDE libraries
Copyright (c) 2005 David Saxton <david@bluehaze.org>
@@ -245,10 +244,36 @@ BGDialog::BGDialog(TQWidget* parent, TDEConfig* _config, bool _multidesktop)
m_slideShowRandom = KBackgroundSettings::InOrder;
// Wallpaper Position
+ m_prevWallpaperPos = KBackgroundSettings::ScaleAndCrop;
+ m_prevTilePos = KBackgroundSettings::Tiled;
+
m_wallpaperPos = eRenderer()->wallpaperMode();
if (m_wallpaperPos == KBackgroundSettings::NoWallpaper)
m_wallpaperPos = KBackgroundSettings::Centred; // Default
+ const TQString path = eRenderer()->wallpaper();
+ KFileMetaInfo metaInfo(path);
+ if (metaInfo.isValid() && metaInfo.item("Dimensions").isValid())
+ {
+ // If the image is greater than 800x600 default to using the user selected mode
+ // for a normal wallpaper, otherwise default to user selection for tiles.
+ TQSize s = metaInfo.item("Dimensions").value().toSize();
+ m_isTile = (s.width() < 800 || s.height() < 600);
+ if (m_isTile)
+ {
+ m_prevTilePos = m_wallpaperPos;
+ }
+ else
+ {
+ m_prevWallpaperPos = m_wallpaperPos;
+ }
+ }
+ else if (KMimeType::findByPath(path)->is("image/svg+xml"))
+ {
+ m_prevWallpaperPos = m_wallpaperPos;
+ }
+
+ // Restrictions
if (TDEGlobal::dirs()->isRestrictedResource("wallpaper"))
{
m_urlWallpaperButton->hide();
@@ -940,18 +965,22 @@ void BGDialog::slotWallpaperTypeChanged(int i)
KFileMetaInfo metaInfo(path);
if (metaInfo.isValid() && metaInfo.item("Dimensions").isValid())
{
- // If the image is greater than 800x600 default to using scaled mode,
- // otherwise default to tiled.
-
+ // If the image is greater than 800x600 default to using the user selected mode
+ // for a normal wallpaper, otherwise default to user selection for tiles.
TQSize s = metaInfo.item("Dimensions").value().toSize();
- if (s.width() >= 800 && s.height() >= 600)
- m_wallpaperPos = KBackgroundSettings::Scaled;
+ m_isTile = (s.width() < 800 || s.height() < 600);
+ if (m_isTile)
+ {
+ m_wallpaperPos = m_prevTilePos;
+ }
else
- m_wallpaperPos = KBackgroundSettings::Tiled;
+ {
+ m_wallpaperPos = m_prevWallpaperPos;
+ }
}
else if (KMimeType::findByPath(path)->is("image/svg+xml"))
{
- m_wallpaperPos = KBackgroundSettings::Scaled;
+ m_wallpaperPos = m_prevWallpaperPos;
}
r->setWallpaperMode(m_wallpaperPos);
@@ -998,6 +1027,15 @@ void BGDialog::slotWallpaperPos(int mode)
if (mode == r->wallpaperMode())
return;
+ if (m_isTile)
+ {
+ m_prevTilePos = mode;
+ }
+ else
+ {
+ m_prevWallpaperPos = mode;
+ }
+
r->stop();
r->setWallpaperMode(mode);
r->start(true);
diff --git a/kcontrol/background/bgdialog.h b/kcontrol/background/bgdialog.h
index 6b33d8999..607118337 100644
--- a/kcontrol/background/bgdialog.h
+++ b/kcontrol/background/bgdialog.h
@@ -99,8 +99,11 @@ protected:
TQValueVector< TQPtrVector<KBackgroundRenderer> > m_renderer; // m_renderer[desk][screen]
TQMap<TQString,int> m_wallpaper;
TQStringList m_patterns;
- int m_slideShowRandom; // Remembers last Slide Show setting
- int m_wallpaperPos; // Remembers last wallpaper pos
+ int m_slideShowRandom; // Remembers last Slide Show setting
+ int m_wallpaperPos; // Remembers last wallpaper pos
+ int m_prevWallpaperPos; // Previous normal wallpaper pos
+ int m_prevTilePos; // Previous tile wallpaper pos
+ bool m_isTile; // Whether the wallpaper is a tile (800x600 or smaller)
BGMonitorArrangement * m_pMonitorArrangement;
diff --git a/kcontrol/background/bgdialog_ui.ui b/kcontrol/background/bgdialog_ui.ui
index f35e19f78..4334cbbaf 100644
--- a/kcontrol/background/bgdialog_ui.ui
+++ b/kcontrol/background/bgdialog_ui.ui
@@ -719,15 +719,9 @@
<includes>
<include location="global" impldecl="in declaration">kcolorbutton.h</include>
<include location="global" impldecl="in declaration">kcombobox.h</include>
- <include location="global" impldecl="in implementation">kurlrequester.h</include>
<include location="global" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kcombobox.h</includehint>
- <includehint>kcolorbutton.h</includehint>
- <includehint>kcolorbutton.h</includehint>
- <includehint>kcombobox.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/componentchooser/componentchooser_ui.ui b/kcontrol/componentchooser/componentchooser_ui.ui
index c810f1e31..9abdeec12 100644
--- a/kcontrol/componentchooser/componentchooser_ui.ui
+++ b/kcontrol/componentchooser/componentchooser_ui.ui
@@ -123,11 +123,8 @@
</widget>
<includes>
<include location="global" impldecl="in declaration">tdelistbox.h</include>
- <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>tdelistbox.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/css/cssconfig.ui b/kcontrol/css/cssconfig.ui
index f0baacb79..4566ba5c0 100644
--- a/kcontrol/css/cssconfig.ui
+++ b/kcontrol/css/cssconfig.ui
@@ -229,16 +229,12 @@
<slot>setEnabled(bool)</slot>
</connection>
</connections>
-<includes>
- <include location="global" impldecl="in implementation">kdialog.h</include>
-</includes>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
<includes>
+ <include location="global" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/css/csscustom.ui b/kcontrol/css/csscustom.ui
index 5074b8bab..cc69769b7 100644
--- a/kcontrol/css/csscustom.ui
+++ b/kcontrol/css/csscustom.ui
@@ -547,8 +547,4 @@
</includes>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kcolorbutton.h</includehint>
- <includehint>kcolorbutton.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/css/preview.ui b/kcontrol/css/preview.ui
index 51bd26ad1..a4557c845 100644
--- a/kcontrol/css/preview.ui
+++ b/kcontrol/css/preview.ui
@@ -89,7 +89,4 @@ people.&lt;/p&gt;
</includes>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kseparator.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/displayconfig/displayconfig.cpp b/kcontrol/displayconfig/displayconfig.cpp
index 4408e2c74..4c96fabf1 100644
--- a/kcontrol/displayconfig/displayconfig.cpp
+++ b/kcontrol/displayconfig/displayconfig.cpp
@@ -60,11 +60,6 @@
#include "displayconfig.h"
-using namespace std;
-#ifdef __OpenBSD__
-#define abs __gnu_cxx::abs
-#endif
-
/**** DLL Interface ****/
typedef KGenericFactory<KDisplayConfig, TQWidget> KDisplayCFactory;
K_EXPORT_COMPONENT_FACTORY( kcm_displayconfig, KDisplayCFactory("kcmdisplayconfig") )
diff --git a/kcontrol/dnssd/configdialog.ui b/kcontrol/dnssd/configdialog.ui
index 4a2ac2809..b2d9eb8b0 100644
--- a/kcontrol/dnssd/configdialog.ui
+++ b/kcontrol/dnssd/configdialog.ui
@@ -84,9 +84,6 @@
<property name="text">
<string>&amp;Wide area network</string>
</property>
- <property name="accel">
- <string>Alt+W</string>
- </property>
<property name="whatsThis" stdset="0">
<string>Advertise services on Internet domain using public IP. To have this option working you need to configure wide area operation in using administrator mode</string>
</property>
@@ -106,9 +103,6 @@
<property name="text">
<string>Loc&amp;al network</string>
</property>
- <property name="accel">
- <string>Alt+A</string>
- </property>
<property name="checked">
<bool>false</bool>
</property>
@@ -124,9 +118,6 @@
<property name="text">
<string>Browse local networ&amp;k</string>
</property>
- <property name="accel">
- <string>Alt+K</string>
- </property>
<property name="whatsThis" stdset="0">
<string>Browse local network (domain .local) using multicast DNS.</string>
</property>
@@ -138,9 +129,6 @@
<property name="text">
<string>Enable &amp;Zeroconf network browsing</string>
</property>
- <property name="accel">
- <string>Alt+Z</string>
- </property>
<property name="whatsThis" stdset="0">
<string>Browse local network (domain .local) using multicast DNS.</string>
</property>
diff --git a/kcontrol/fonts/fonts.cpp b/kcontrol/fonts/fonts.cpp
index 4d1083365..7239b62ac 100644
--- a/kcontrol/fonts/fonts.cpp
+++ b/kcontrol/fonts/fonts.cpp
@@ -637,23 +637,20 @@ TDEFonts::TDEFonts(TQWidget *parent, const char *name, const TQStringList &)
lay->addWidget( label, 1, 0 );
comboForceDpi = new TQComboBox( this );
label->setBuddy( comboForceDpi );
- comboForceDpi->insertItem( i18n( "Disabled" )); // change DPISetti ng type if order changes
- comboForceDpi->insertItem( i18n( "96 DPI" ));
- comboForceDpi->insertItem( i18n( "120 DPI" ));
+ comboForceDpi->insertItem( i18n( "Disabled" ));
+ comboForceDpi->insertItem( i18n( "Enabled" ));
TQString whatsthis = i18n(
"<p>This option forces a specific DPI value for fonts. It may be useful"
" when the real DPI of the hardware is not detected properly and it"
" is also often misused when poor quality fonts are used that do not"
- " look well with DPI values other than 96 or 120 DPI.</p>"
- "<p>The use of this option is generally discouraged. For selecting proper DPI"
- " value a better option is explicitly configuring it for the whole X server if"
- " possible (e.g. DisplaySize in xorg.conf or adding <i>-dpi value</i> to"
- " ServerLocalArgs= in $TDEDIR/share/config/tdm/tdmrc). When fonts do not render"
- " properly with real DPI value better fonts should be used or configuration"
- " of font hinting should be checked.</p>" );
+ " look well with DPI values other than 96 or 120 DPI.</p>");
TQWhatsThis::add(comboForceDpi, whatsthis);
- connect( comboForceDpi, TQT_SIGNAL( activated( int )), TQT_SLOT( changed()));
+ connect(comboForceDpi, TQT_SIGNAL(activated(int)), TQT_SLOT(slotUseFontDPI()));
+ sbDpiValue = new KIntSpinBox(64, 512, 1, 96, 10, this);
+ TQWhatsThis::add(sbDpiValue, whatsthis);
+ connect(sbDpiValue, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
lay->addWidget( comboForceDpi, 1, 1 );
+ lay->addWidget( sbDpiValue, 1, 2 );
layout->addStretch(1);
@@ -695,10 +692,22 @@ void TDEFonts::load( bool useDefaults )
TDEConfig cfgfonts("kcmfonts", true);
cfgfonts.setGroup("General");
- int dpicfg = cfgfonts.readNumEntry( "forceFontDPI", 0 );
- DPISetting dpi = dpicfg == 120 ? DPI120 : dpicfg == 96 ? DPI96 : DPINone;
- comboForceDpi->setCurrentItem( dpi );
- dpi_original = dpi;
+ int dpicfg = cfgfonts.readNumEntry("forceFontDPI", 0);
+ // "forceFontDPIEnable" must be read after "forceFontDPI" to make sure it is
+ // correctly initialized on the first run when upgrading to the new format,
+ // without the user even noticying it. The first time "forceFontDPIEnable"
+ // will not exist and its correct value will be deduced by the existing value
+ // of "forceFontDPI", which contains the value prior to the update.
+ bool dpiEnable = cfgfonts.readBoolEntry("forceFontDPIEnable", dpicfg > 0);
+ dpi_original = dpiEnable ? DPIValue : DPINone;
+ dpi_value_original = dpicfg;
+ if (dpi_value_original < 64 || dpi_value_original > 512)
+ {
+ dpi_value_original = 96;
+ }
+ comboForceDpi->setCurrentItem(dpi_original);
+ sbDpiValue->setValue(dpi_value_original);
+ sbDpiValue->setEnabled(dpi_original != DPINone);
if( cfgfonts.readBoolEntry( "dontChangeAASettings", true )) {
useAA_original = useAA = AASystem;
cbAA->setCurrentItem( useAA );
@@ -717,14 +726,16 @@ void TDEFonts::save()
TDEConfig cfgfonts("kcmfonts");
cfgfonts.setGroup("General");
- DPISetting dpi = static_cast< DPISetting >( comboForceDpi->currentItem());
- const int dpi2value[] = { 0, 96, 120 };
- cfgfonts.writeEntry( "forceFontDPI", dpi2value[ dpi ] );
+ DPISetting dpi = (DPISetting)comboForceDpi->currentItem();
+ int dpival = sbDpiValue->value();
+ cfgfonts.writeEntry( "forceFontDPIEnable", dpi != DPINone );
+ cfgfonts.writeEntry( "forceFontDPI", dpival );
cfgfonts.writeEntry( "dontChangeAASettings", cbAA->currentItem() == AASystem );
cfgfonts.sync();
// if the setting is reset in the module, remove the dpi value,
// otherwise don't explicitly remove it and leave any possible system-wide value
- if( dpi == DPINone && dpi_original != DPINone ) {
+ if(dpi == DPINone)
+ {
KProcIO proc;
proc << "xrdb" << "-quiet" << "-remove" << "-nocpp";
proc.writeStdin( TQCString( "Xft.dpi" ), true );
@@ -755,11 +766,11 @@ void TDEFonts::save()
if( cbAA->currentItem() != AASystem )
aaSave = aaSettings->save( useAA == AAEnabled );
- if( aaSave || (useAA != useAA_original) || dpi != dpi_original) {
+ if( aaSave || (useAA != useAA_original) || dpival != dpi_value_original || dpi != dpi_original)
+ {
KMessageBox::information(this,
- i18n(
- "<p>Some changes such as anti-aliasing will only affect newly started applications.</p>"
- ), i18n("Font Settings Changed"), "FontSettingsChanged", false);
+ i18n( "<p>Some changes such as anti-aliasing will only affect newly started applications.</p>"),
+ i18n("Font Settings Changed"), "FontSettingsChanged", false);
useAA_original = useAA;
dpi_original = dpi;
}
@@ -791,6 +802,13 @@ void TDEFonts::slotUseAntiAliasing()
emit changed(true);
}
+void TDEFonts::slotUseFontDPI()
+{
+ DPISetting dpi = (DPISetting)(comboForceDpi->currentItem());
+ sbDpiValue->setEnabled(dpi != DPINone);
+ emit changed(true);
+}
+
void TDEFonts::slotCfgAa()
{
if(aaSettings->exec())
diff --git a/kcontrol/fonts/fonts.h b/kcontrol/fonts/fonts.h
index 65a1266cb..3d1e9643a 100644
--- a/kcontrol/fonts/fonts.h
+++ b/kcontrol/fonts/fonts.h
@@ -20,6 +20,7 @@
class TQCheckBox;
class TQComboBox;
class KDoubleNumInput;
+class KIntSpinBox;
class FontAASettings;
class FontUseItem : public TDEFontRequester
@@ -107,15 +108,18 @@ protected slots:
void slotApplyFontDiff();
void slotUseAntiAliasing();
void slotCfgAa();
+ void slotUseFontDPI();
private:
enum AASetting { AAEnabled, AASystem, AADisabled };
- enum DPISetting { DPINone, DPI96, DPI120 };
+ enum DPISetting { DPINone, DPIValue };
AASetting useAA, useAA_original;
DPISetting dpi_original;
+ int dpi_value_original;
TQComboBox *cbAA;
TQComboBox* comboForceDpi;
TQPushButton *aaSettingsButton;
+ KIntSpinBox *sbDpiValue;
TQPtrList <FontUseItem> fontUseList;
FontAASettings *aaSettings;
};
diff --git a/kcontrol/hwmanager/deviceiconview.cpp b/kcontrol/hwmanager/deviceiconview.cpp
index 7ccb93daf..44a71b3a3 100644
--- a/kcontrol/hwmanager/deviceiconview.cpp
+++ b/kcontrol/hwmanager/deviceiconview.cpp
@@ -73,7 +73,8 @@ void DeviceIconView::slotItemDoubleClicked(TQListViewItem* item)
delete propsDlg;
}
else {
- KMessageBox::sorry(this, "Detailed information is not available for this device", "Information Unavailable");
+ KMessageBox::sorry(this, i18n("Detailed information is not available for this device"),
+ i18n("Information Unavailable"));
}
}
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 409776dd5..bc21689e8 100644
--- a/kcontrol/hwmanager/devicepropsdlg.cpp
+++ b/kcontrol/hwmanager/devicepropsdlg.cpp
@@ -397,34 +397,34 @@ void DevicePropertiesDialog::populateDeviceInformation() {
// Show status
TQString status_text = "<qt>";
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Mountable)) {
- status_text += "Mountable<br>";
+ status_text += i18n("Mountable") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable)) {
- status_text += "Removable<br>";
+ status_text += i18n("Removable") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Inserted)) {
- status_text += "Inserted<br>";
+ status_text += i18n("Inserted") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
- status_text += "Blank<br>";
+ status_text += i18n("Blank") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice)) {
- status_text += "In use<br>";
+ status_text += i18n("In use") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsesDevice)) {
- status_text += "Uses other device<br>";
+ status_text += i18n("Uses other device") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem)) {
- status_text += "Contains a filesystem<br>";
+ status_text += i18n("Contains a filesystem") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hotpluggable)) {
- status_text += "Hotpluggable<br>";
+ status_text += i18n("Hotpluggable") + "<br>";
}
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden)) {
- status_text += "Hidden<br>";
+ status_text += i18n("Hidden") + "<br>";
}
if (status_text == "<qt>") {
- status_text += "<i>Unavailable</i>";
+ status_text += "<i>" + i18n("Unknown") + "</i>";
}
status_text += "</qt>";
base->labelDiskStatus->setText(status_text);
@@ -637,7 +637,7 @@ void DevicePropertiesDialog::populateDeviceInformation() {
}
// RandR warning
- base->labelRandrWarning->setText("<qt><b>NOTE: Any further integration of displays into TDE <i>REQUIRES</i> multi GPU support and other features slated for RandR 2.0.</b><p>Development on such features has been sorely lacking for well over a year as of 2012; if you want to see Linux come up to Windows and Macintosh standards in this area <i>please tell the Xorg developers</i> at http://www.x.org/wiki/XorgMailingLists<p>The TDE project badly needs these features before it can proceed with graphical monitor configuration tools:<br> * GPU object support<br> * The ability to query the active driver name for any Xorg output<p><b>To recap, this is <i>not a TDE shortcoming</i>, but rather is the result of a lack of fundamental Linux support for graphics configuration!</b></qt>");
+ base->labelRandrWarning->setText(i18n("<qt><b>NOTE: Any further integration of displays into TDE <i>REQUIRES</i> multi GPU support and other features slated for RandR 2.0.</b><p>Development on such features has been sorely lacking for well over a year as of 2012; if you want to see Linux come up to Windows and Macintosh standards in this area <i>please tell the Xorg developers</i> at http://www.x.org/wiki/XorgMailingLists<p>The TDE project badly needs these features before it can proceed with graphical monitor configuration tools:<br> * GPU object support<br> * The ability to query the active driver name for any Xorg output<p><b>To recap, this is <i>not a TDE shortcoming</i>, but rather is the result of a lack of fundamental Linux support for graphics configuration!</b></qt>"));
}
if (m_device->type() == TDEGenericDeviceType::RootSystem) {
diff --git a/kcontrol/hwmanager/hwmanager.cpp b/kcontrol/hwmanager/hwmanager.cpp
index fbdc822c3..714dad88d 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>
@@ -68,10 +69,13 @@ TDEHWManager::TDEHWManager(TQWidget *parent, const char *name, const TQStringLis
systemconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdehw/hwmanagerrc" ));
TDEAboutData *about =
- new TDEAboutData(I18N_NOOP("kcmhwmanager"), I18N_NOOP("TDE Device Manager\n\nCan be used to get all kind of informations about your devices on your system, shows which drivers are used by them and allows to change device settings."),
- 0, 0, TDEAboutData::License_GPL,
- I18N_NOOP("(c) 2012 Timothy Pearson\n(c) 2019 The Trinity Desktop Project"));
-
+ new TDEAboutData(I18N_NOOP("kcmhwmanager"), I18N_NOOP("TDE Device Manager"), 0,
+ I18N_NOOP("Device Manager\n\n"
+ "Can be used to get all kind of informations about your devices on your system,\n"
+ "shows which drivers are used by them and allows to change device settings."),
+ TDEAboutData::License_GPL,
+ I18N_NOOP("(c) 2012 Timothy Pearson\n"
+ "(c) 2019 The Trinity Desktop Project"));
about->addAuthor("Timothy Pearson", 0, "kb9vqf@pearsoncomputing.net");
setAboutData( about );
@@ -90,7 +94,7 @@ TDEHWManager::TDEHWManager(TQWidget *parent, const char *name, const TQStringLis
connect(base->showByConnection, TQT_SIGNAL(clicked()), TQT_SLOT(populateTreeView()));
connect(hwdevices, TQT_SIGNAL(hardwareAdded(TDEGenericDevice*)), this, TQT_SLOT(populateTreeView()));
- connect(hwdevices, TQT_SIGNAL(hardwareRemoved(TDEGenericDevice*)), this, TQT_SLOT(populateTreeView()));
+ connect(hwdevices, TQT_SIGNAL(hardwareRemoved(TDEGenericDevice*)), this, TQT_SLOT(delayedPopulateTreeView()));
connect(hwdevices, TQT_SIGNAL(hardwareUpdated(TDEGenericDevice*)), this, TQT_SLOT(deviceChanged(TDEGenericDevice*)));
load();
@@ -100,6 +104,7 @@ TDEHWManager::TDEHWManager(TQWidget *parent, const char *name, const TQStringLis
TDEHWManager::~TDEHWManager()
{
+ TDEGlobal::hardwareDevices()->setTriggerlessHardwareUpdatesEnabled(false);
delete config;
delete systemconfig;
}
@@ -144,7 +149,7 @@ void TDEHWManager::populateTreeView()
TDEGenericHardwareList hwlist = hwdevices->listByDeviceClass(TDEGenericDeviceType::RootSystem);
TDEGenericDevice *hwdevice;
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
- 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);
@@ -156,11 +161,11 @@ 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() ) {
- 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);
@@ -171,6 +176,13 @@ void TDEHWManager::populateTreeView()
}
}
+void TDEHWManager::delayedPopulateTreeView() {
+ // When hardwareRemoved() is triggered, the list of devices still contains the device which
+ // is about to be removed. Therefore we need to delay repopulating the device tree after the
+ // removal of the device.
+ TQTimer::singleShot(0, this, TQT_SLOT(populateTreeView()));
+}
+
void TDEHWManager::populateTreeViewLeaf(DeviceIconItem *parent, bool show_by_connection, TQString selected_syspath) {
if (show_by_connection) {
TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
@@ -178,7 +190,7 @@ void TDEHWManager::populateTreeViewLeaf(DeviceIconItem *parent, bool show_by_con
TDEGenericDevice *hwdevice;
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
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/hwmanager/hwmanager.h b/kcontrol/hwmanager/hwmanager.h
index b75a494d9..892ed8dfe 100644
--- a/kcontrol/hwmanager/hwmanager.h
+++ b/kcontrol/hwmanager/hwmanager.h
@@ -59,6 +59,7 @@ k_dcop:
private slots:
void populateTreeView();
+ void delayedPopulateTreeView();
void populateTreeViewLeaf(DeviceIconItem *parent, bool show_by_connection, TQString selected_syspath);
void deviceChanged(TDEGenericDevice*);
diff --git a/kcontrol/kicker/applettab.ui b/kcontrol/kicker/applettab.ui
index bcdfef2f8..05549de36 100644
--- a/kcontrol/kicker/applettab.ui
+++ b/kcontrol/kicker/applettab.ui
@@ -217,11 +217,9 @@
</vbox>
</widget>
<includes>
- <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">qwidget.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>qwidget.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/kicker/hidingtab.ui b/kcontrol/kicker/hidingtab.ui
index 542d66bd2..fae21c356 100644
--- a/kcontrol/kicker/hidingtab.ui
+++ b/kcontrol/kicker/hidingtab.ui
@@ -762,14 +762,11 @@
<includes>
<include location="global" impldecl="in declaration">klineedit.h</include>
<include location="global" impldecl="in implementation">knuminput.h</include>
- <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<Q_SLOTS>
<slot specifier="pure virtual">switchPanel(int)</slot>
</Q_SLOTS>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>knuminput.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/kicker/lookandfeeltab.ui b/kcontrol/kicker/lookandfeeltab.ui
index 7938f5f6c..803393e66 100644
--- a/kcontrol/kicker/lookandfeeltab.ui
+++ b/kcontrol/kicker/lookandfeeltab.ui
@@ -617,10 +617,12 @@ This option is only active if 'Enable background image' is selected.</string>
<tabstop>advancedOptionsButton</tabstop>
</tabstops>
<includes>
- <include location="global" impldecl="in implementation">kcolorbutton.h</include>
<include location="global" impldecl="in declaration">kcombobox.h</include>
<include location="global" impldecl="in declaration">kurlrequester.h</include>
+ <include location="global" impldecl="in implementation">kcolorbutton.h</include>
<include location="global" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
</includes>
<Q_SLOTS>
<slot access="protected" specifier="pure virtual">launchAdvancedDialog()</slot>
@@ -629,8 +631,4 @@ This option is only active if 'Enable background image' is selected.</string>
</Q_SLOTS>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/kicker/menutab.ui b/kcontrol/kicker/menutab.ui
index fa3868004..17b0d89da 100644
--- a/kcontrol/kicker/menutab.ui
+++ b/kcontrol/kicker/menutab.ui
@@ -325,7 +325,7 @@
</property>
<widget class="TQLabel" row="0" column="0">
<property name="name">
- <cstring>TextLabel1_3_3_2</cstring>
+ <cstring>TextLabel1_3_3_1</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@@ -705,7 +705,40 @@
<string>&lt;qt&gt;When this option is selected a text-based search field will appear in the TDE Menu.&lt;/qt&gt;</string>
</property>
</widget>
- <spacer row="0" column="1" rowspan="3" colspan="1">
+
+ <widget class="TQLayoutWidget" row="2" column="0">
+ <property name="name">
+ <cstring>m_searchShortcutLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>searchShortcutLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Search shortcut:</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>From here you can change the keyboard shortcut which triggers the search line in the TDE Menu.</string>
+ </property>
+ </widget>
+
+ <widget class="KKeyButton">
+ <property name="name">
+ <cstring>m_searchShortcut</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>From here you can change the keyboard shortcut which triggers the search line in the TDE Menu.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+
+ <spacer row="0" column="1" rowspan="3" colspan="2">
<property name="name">
<cstring>Spacer8</cstring>
</property>
@@ -749,7 +782,46 @@
<include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">tdefontrequester.h</include>
<include location="global" impldecl="in implementation">tdelistview.h</include>
+ <include location="global" impldecl="in implementation">kkeybutton.h</include>
</includes>
+ <connections>
+ <connection>
+ <sender>kcfg_ShowKMenuText</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>TextLabel1_3_3_1</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>kcfg_ShowKMenuText</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>kcfg_KMenuText</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>kcfg_ShowKMenuText</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>TextLabel1_3_3_2</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>kcfg_ShowKMenuText</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>kcfg_ButtonFont</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>kcfg_UseSearchBar</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>searchShortcutLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>kcfg_UseSearchBar</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_searchShortcut</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ </connections>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
</UI>
diff --git a/kcontrol/kicker/menutab_impl.cpp b/kcontrol/kicker/menutab_impl.cpp
index fe20f2302..fbd15cd8d 100644
--- a/kcontrol/kicker/menutab_impl.cpp
+++ b/kcontrol/kicker/menutab_impl.cpp
@@ -37,6 +37,8 @@
#include <knuminput.h>
#include <kstandarddirs.h>
#include <tdefontrequester.h>
+#include <kkeybutton.h>
+#include <tdemessagebox.h>
#include <kicondialog.h>
#include <kiconloader.h>
@@ -168,7 +170,12 @@ void MenuTab::load( bool useDefaults )
connect(m_openOnHover, TQT_SIGNAL(clicked()), TQT_SIGNAL(changed()));
m_showFrequent->setChecked(true);
-
+
+ c->setGroup("KMenu");
+ m_searchShortcut->setShortcut(TDEShortcut(c->readEntry("SearchShortcut", "/")), false);
+ connect(m_searchShortcut, TQT_SIGNAL(capturedShortcut(const TDEShortcut&)), TQT_SIGNAL(changed()));
+ connect(m_searchShortcut, TQT_SIGNAL(capturedShortcut(const TDEShortcut&)), TQT_SLOT(setSearchShortcut(const TDEShortcut&)));
+
if ( useDefaults )
emit changed();
}
@@ -288,6 +295,7 @@ void MenuTab::save()
// Save KMenu settings
c->setGroup("KMenu");
c->writeEntry("CustomIcon", m_kmenu_icon);
+ c->writeEntry("SearchShortcut", (m_searchShortcut->shortcut()).toString());
c->sync();
// Save recent documents
@@ -349,3 +357,22 @@ void MenuTab::kmenuChanged()
//m_kmenu_button_changed = true;
emit changed();
}
+
+void MenuTab::setSearchShortcut(const TDEShortcut &cut)
+{
+ if( cut.contains( KKeySequence(KKey(TQt::Key_Escape)) ) )
+ {
+ int anotherTry = KMessageBox::warningYesNo(
+ this,
+ i18n("Cannot set Escape as menu search shortcut.\nWould you like to set another shortcut?"),
+ i18n("Invalid shortcut")
+ );
+
+ if( anotherTry == KMessageBox::Yes )
+ m_searchShortcut->captureShortcut();
+
+ return;
+ }
+
+ m_searchShortcut->setShortcut(cut, false);
+}
diff --git a/kcontrol/kicker/menutab_impl.h b/kcontrol/kicker/menutab_impl.h
index b143b0072..509623d61 100644
--- a/kcontrol/kicker/menutab_impl.h
+++ b/kcontrol/kicker/menutab_impl.h
@@ -21,6 +21,7 @@
#include <tqlistview.h>
#include <stdlib.h>
+#include <tdeshortcut.h>
#include <kpushbutton.h>
#include "menutab.h"
@@ -68,12 +69,14 @@ public slots:
void menuStyleChanged();
void launchIconEditor();
void kmenuChanged();
+ void setSearchShortcut(const TDEShortcut &cut);
protected:
kSubMenuItem *m_bookmarkMenu;
kSubMenuItem *m_quickBrowserMenu;
TQString m_kmenu_icon;
bool m_kmenu_button_changed;
+
};
#endif
diff --git a/kcontrol/kicker/positiontab.ui b/kcontrol/kicker/positiontab.ui
index ac367a15f..6729d0cf2 100644
--- a/kcontrol/kicker/positiontab.ui
+++ b/kcontrol/kicker/positiontab.ui
@@ -1110,7 +1110,7 @@ how it is positioned on the screen and how much of the screen it should use.</st
<includes>
<include location="global" impldecl="in declaration">klineedit.h</include>
<include location="global" impldecl="in implementation">knuminput.h</include>
- <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<Q_SLOTS>
<slot access="protected" specifier="pure virtual">lengthenPanel( int )</slot>
@@ -1120,10 +1120,4 @@ how it is positioned on the screen and how much of the screen it should use.</st
</Q_SLOTS>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>knuminput.h</includehint>
- <includehint>knuminput.h</includehint>
- <includehint>knuminput.h</includehint>
- <includehint>knuminput.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/knotify/playersettings.ui b/kcontrol/knotify/playersettings.ui
index def27d1fa..1397e2ebb 100644
--- a/kcontrol/knotify/playersettings.ui
+++ b/kcontrol/knotify/playersettings.ui
@@ -323,10 +323,8 @@
</tabstops>
<layoutdefaults spacing="6" margin="11"/>
<includes>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/konq/desktopbehavior.ui b/kcontrol/konq/desktopbehavior.ui
index 2f346f47e..703f88e95 100644
--- a/kcontrol/konq/desktopbehavior.ui
+++ b/kcontrol/konq/desktopbehavior.ui
@@ -574,5 +574,6 @@
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">tdelistview.h</include>
+ <include location="global" impldecl="in implementation">kseparator.h</include>
</includes>
</UI>
diff --git a/kcontrol/konqhtml/nsconfigwidget.ui b/kcontrol/konqhtml/nsconfigwidget.ui
index f3525430e..e3abdbba9 100644
--- a/kcontrol/konqhtml/nsconfigwidget.ui
+++ b/kcontrol/konqhtml/nsconfigwidget.ui
@@ -256,18 +256,14 @@
</vbox>
</widget>
<includes>
- <include location="global" impldecl="in declaration">tdelocale.h</include>
<include location="global" impldecl="in declaration">kurlrequester.h</include>
<include location="global" impldecl="in declaration">tdelistbox.h</include>
- <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in declaration">tdelocale.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">tqwidget.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>tqwidget.h</includehint>
- <includehint>kurlrequester.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
- <includehint>tdelistbox.h</includehint>
-</includehints>
</UI>
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 5034b42c4..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>
@@ -386,16 +394,10 @@
<includes>
<include location="global" impldecl="in declaration">kcolorbutton.h</include>
<include location="global" impldecl="in declaration">knuminput.h</include>
- <include location="local" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">schemaeditor.h</include>
+ <include location="global" impldecl="in implementation">sessioneditor.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>knuminput.h</includehint>
- <includehint>knuminput.h</includehint>
- <includehint>knuminput.h</includehint>
- <includehint>knuminput.h</includehint>
- <includehint>schemaeditor.h</includehint>
- <includehint>sessioneditor.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/konsole/sessiondialog.ui b/kcontrol/konsole/sessiondialog.ui
index 950ebe1a9..0244ab236 100644
--- a/kcontrol/konsole/sessiondialog.ui
+++ b/kcontrol/konsole/sessiondialog.ui
@@ -435,12 +435,10 @@
<include location="global" impldecl="in declaration">kcolorbutton.h</include>
<include location="global" impldecl="in implementation">kdialog.h</include>
<include location="global" impldecl="in implementation">kicondialog.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/krdb/krdb.cpp b/kcontrol/krdb/krdb.cpp
index d01bd998e..0943a6ccc 100644
--- a/kcontrol/krdb/krdb.cpp
+++ b/kcontrol/krdb/krdb.cpp
@@ -547,8 +547,21 @@ void runRdb( uint flags )
TDEConfig cfgfonts("kcmfonts", true);
cfgfonts.setGroup("General");
- if( cfgfonts.readNumEntry( "forceFontDPI", 0 ) != 0 )
- contents += "Xft.dpi: " + cfgfonts.readEntry( "forceFontDPI" ) + '\n';
+ int dpicfg = cfgfonts.readNumEntry("forceFontDPI", 0);
+ // "forceFontDPIEnable" must be read after "forceFontDPI" to make sure it is
+ // correctly initialized on the first run when upgrading to the new format,
+ // without the user even noticying it. The first time "forceFontDPIEnable"
+ // will not exist and its correct value will be deduced by the existing value
+ // of "forceFontDPI", which contains the value prior to the update.
+ bool dpiEnable = cfgfonts.readBoolEntry("forceFontDPIEnable", dpicfg > 0);
+ if (dpicfg < 64 || dpicfg > 512)
+ {
+ dpicfg = 96;
+ }
+ if (dpiEnable)
+ {
+ contents += "Xft.dpi: " + TQString::number(dpicfg) + '\n';
+ }
}
if (contents.length() > 0)
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/kcontrol/tdeio/kproxydlg_ui.ui b/kcontrol/tdeio/kproxydlg_ui.ui
index baf2141af..aed14c5dd 100644
--- a/kcontrol/tdeio/kproxydlg_ui.ui
+++ b/kcontrol/tdeio/kproxydlg_ui.ui
@@ -433,11 +433,9 @@ Although a persistent proxy connection is faster, note that it only works correc
<includes>
<include location="global" impldecl="in implementation">kdialog.h</include>
<include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/kcontrol/usbview/usbdevices.cpp b/kcontrol/usbview/usbdevices.cpp
index 42e1b89d2..896a47a47 100644
--- a/kcontrol/usbview/usbdevices.cpp
+++ b/kcontrol/usbview/usbdevices.cpp
@@ -30,6 +30,7 @@
#if defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD)
#include <sys/ioctl.h>
#include <sys/param.h>
+#include <errno.h>
#endif
TQPtrList<USBDevice> USBDevice::_devices;
@@ -329,7 +330,7 @@ bool USBDevice::parseSys(TQString dname)
void USBDevice::collectData(struct libusb20_backend *pbe,
struct libusb20_device *pdev)
#else
-void USBDevice::collectData( int fd, int leve, usb_device_info &di, int parent)
+void USBDevice::collectData( int fd, int level, usb_device_info &di, int parent)
#endif
{
#ifdef Q_OS_FREEBSD
@@ -412,7 +413,7 @@ void USBDevice::collectData( int fd, int leve, usb_device_info &di, int parent)
continue;
// Only add the device if we don't detect it, yet
- if (!find( di2.udi_us, di2.udi_addr ) )
+ if (!find( di2.udi_bus, di2.udi_addr ) )
{
USBDevice *device = new USBDevice();
device->collectData( fd, level + 1, di2, di.udi_addr );
@@ -447,7 +448,7 @@ bool USBDevice::parse(TQString fname)
libusb20_be_free(pbe);
#else
- TQFile controller("?dev/usb0");
+ TQFile controller("/dev/usb0");
int i = 1;
while ( controller.exists() )
{
@@ -459,7 +460,7 @@ bool USBDevice::parse(TQString fname)
struct usb_device_info di;
di.udi_addr = addr;
- if ( ioctl(controller.handle(), USB_DEVICEINFO, &d1) != -1)
+ if ( ioctl(controller.handle(), USB_DEVICEINFO, &di) != -1)
{
if (!find( di.udi_bus, di.udi_addr) )
{
@@ -469,16 +470,16 @@ bool USBDevice::parse(TQString fname)
}
}
controller.close();
-#ifndef Q_OS_NETBSD
} else {
- error = true;
-#endif
+ if ( errno != ENXIO) {
+ error = true;
+ }
}
- controller.setName( TQString::formLocal8Bit("/dev/usb%1".arg(i++) );
+ controller.setName( TQString::fromLocal8Bit("/dev/usb%1").arg(i++) );
}
if ( showErrorMessage && error ) {
- showErroeMessage = false;
+ showErrorMessage = false;
KMessageBox::error( 0, i18n("Could not open one or more USB controller. Make sure you have read access to all USB controllers that should be listed here."));
}
#endif
diff --git a/kcontrol/usbview/usbdevices.h b/kcontrol/usbview/usbdevices.h
index f655ef9a3..bc8eab4f6 100644
--- a/kcontrol/usbview/usbdevices.h
+++ b/kcontrol/usbview/usbdevices.h
@@ -70,7 +70,12 @@ private:
unsigned int _vendorID, _prodID, _revMajor, _revMinor;
#if defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD)
+#if defined(Q_OS_FREEBSD)
void collectData(struct libusb20_backend *, struct libusb20_device *);
+#endif
+#if defined(Q_OS_NETBSD)
+ void collectData( int fd, int level, usb_device_info &di, int parent);
+#endif
TQStringList _devnodes;
#endif
};
diff --git a/kdcop/kdcopview.ui b/kdcop/kdcopview.ui
index 50a13ec4f..4faf2d876 100644
--- a/kdcop/kdcopview.ui
+++ b/kdcop/kdcopview.ui
@@ -137,13 +137,11 @@
</image>
</images>
<includes>
+ <include location="global" impldecl="in implementation">kdcoplistview.h</include>
<include location="global" impldecl="in implementation">kdialog.h</include>
<include location="global" impldecl="in implementation">tdelistbox.h</include>
<include location="global" impldecl="in implementation">tdelistviewsearchline.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kdcoplistview.h</includehint>
-</includehints>
</UI>
diff --git a/kdesktop/kdesktopSetAsBackground.desktop b/kdesktop/kdesktopSetAsBackground.desktop
index a7ba4f14a..3bc655803 100644
--- a/kdesktop/kdesktopSetAsBackground.desktop
+++ b/kdesktop/kdesktopSetAsBackground.desktop
@@ -1,14 +1,44 @@
[Desktop Entry]
X-TDE-ServiceTypes=image/*
-Actions=setAsBackground;tileAsBackground;
+Actions=centeredAsBackground;tiledAsBackground;centeredTiledAsBackground;centeredMaxpectAsBackground;tiledMaxpectAsBackground;scaledAsBackground;centeredAutoFitAsBackground;scaleAndCropAsBackground
X-TDE-Submenu=Set as Background
-[Desktop Action setAsBackground]
+[Desktop Action centeredAsBackground]
Name=Centered
Icon=background
-Exec=dcop kdesktop KBackgroundIface setWallpaper %u 6
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 1
-[Desktop Action tileAsBackground]
+[Desktop Action tiledAsBackground]
Name=Tiled
Icon=background
Exec=dcop kdesktop KBackgroundIface setWallpaper %u 2
+
+[Desktop Action centeredTiledAsBackground]
+Name=Center Tiled
+Icon=background
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 3
+
+[Desktop Action centeredMaxpectAsBackground]
+Name=Centered Maxpect
+Icon=background
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 4
+
+[Desktop Action tiledMaxpectAsBackground]
+Name=Tiled Maxpect
+Icon=background
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 5
+
+[Desktop Action scaledAsBackground]
+Name=Scaled
+Icon=background
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 6
+
+[Desktop Action centeredAutoFitAsBackground]
+Name=Centered Auto Fit
+Icon=background
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 7
+
+[Desktop Action scaleAndCropAsBackground]
+Name=Scale & Crop
+Icon=background
+Exec=dcop kdesktop KBackgroundIface setWallpaper %u 8
diff --git a/kdesktop/minicli_ui.ui b/kdesktop/minicli_ui.ui
index 13d3b9736..93c95c8f0 100644
--- a/kdesktop/minicli_ui.ui
+++ b/kdesktop/minicli_ui.ui
@@ -640,21 +640,14 @@
</tabstops>
<includes>
<include location="global" impldecl="in declaration">fixx11h.h</include>
+ <include location="local" impldecl="in implementation">kcombobox.h</include>
<include location="local" impldecl="in implementation">kdialog.h</include>
<include location="local" impldecl="in implementation">kiconloader.h</include>
- <include location="local" impldecl="in implementation">kpassdlg.h</include>
- <include location="local" impldecl="in implementation">kcombobox.h</include>
<include location="local" impldecl="in implementation">klineedit.h</include>
+ <include location="local" impldecl="in implementation">kpassdlg.h</include>
<include location="local" impldecl="in implementation">kpushbutton.h</include>
</includes>
<pixmapfunction>BarIcon</pixmapfunction>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kpushbutton.h</includehint>
- <includehint>kpushbutton.h</includehint>
- <includehint>kpushbutton.h</includehint>
- <includehint>kpassdlg.h</includehint>
- <includehint>kcombobox.h</includehint>
-</includehints>
</UI>
diff --git a/khotkeys/kcontrol/CMakeLists.txt b/khotkeys/kcontrol/CMakeLists.txt
index 5028763ce..902c5a0e6 100644
--- a/khotkeys/kcontrol/CMakeLists.txt
+++ b/khotkeys/kcontrol/CMakeLists.txt
@@ -37,7 +37,7 @@ tde_create_translated_desktop( khotkeys.desktop )
tde_add_kpart( kcm_khotkeys AUTOMOC
SOURCES
menuedit.cpp window_trigger_widget.cpp tab_widget.cpp main_buttons_widget.cpp
- actions_listview_widget.cpp menuentry_widget.cpp general_tab.cpp
+ actions_listview_widget.cpp menuentry_widget.cpp general_tab.cpp waiting_widget.cpp
action_group_tab.cpp kcmkhotkeys.cpp command_url_widget.cpp windowdef_list_widget.cpp
windowdef_simple_widget.cpp triggers_tab.cpp dcop_widget.cpp info_tab.cpp
action_list_widget.cpp keyboard_input_widget.cpp condition_list_widget.cpp
diff --git a/khotkeys/kcontrol/Makefile.am b/khotkeys/kcontrol/Makefile.am
index 7eb3f2f6d..03a728ae3 100644
--- a/khotkeys/kcontrol/Makefile.am
+++ b/khotkeys/kcontrol/Makefile.am
@@ -4,7 +4,7 @@ kde_module_LTLIBRARIES = kcm_khotkeys.la kcm_khotkeys_init.la
kcm_khotkeys_la_SOURCES = \
menuedit.cpp window_trigger_widget.cpp tab_widget.cpp main_buttons_widget.cpp \
- actions_listview_widget.cpp menuentry_widget.cpp general_tab.cpp \
+ actions_listview_widget.cpp menuentry_widget.cpp general_tab.cpp waiting_widget.cpp \
action_group_tab.cpp kcmkhotkeys.cpp command_url_widget.cpp windowdef_list_widget.cpp \
windowdef_simple_widget.cpp triggers_tab.cpp dcop_widget.cpp info_tab.cpp \
action_list_widget.cpp keyboard_input_widget.cpp condition_list_widget.cpp \
diff --git a/khotkeys/kcontrol/action_list_widget.cpp b/khotkeys/kcontrol/action_list_widget.cpp
index 79744a09e..d007ab5f5 100644
--- a/khotkeys/kcontrol/action_list_widget.cpp
+++ b/khotkeys/kcontrol/action_list_widget.cpp
@@ -32,6 +32,7 @@
#include "dcop_widget.h"
#include "keyboard_input_widget.h"
#include "activate_window_widget.h"
+#include "waiting_widget.h"
#include "kcmkhotkeys.h"
namespace KHotKeys
@@ -48,6 +49,7 @@ Action_list_widget::Action_list_widget( TQWidget* parent_P, const char* name_P )
popup->insertItem( i18n( "DCOP Call..." ), TYPE_DCOP_ACTION );
popup->insertItem( i18n( "Keyboard Input..." ), TYPE_KEYBOARD_INPUT_ACTION );
popup->insertItem( i18n( "Activate Window..." ), TYPE_ACTIVATE_WINDOW_ACTION );
+ popup->insertItem( i18n( "Waiting..." ), TYPE_WAITING_ACTION );
connect( popup, TQT_SIGNAL( activated( int )), TQT_SLOT( new_selected( int )));
new_button->setPopup( popup );
actions_listview->header()->hide();
@@ -62,16 +64,13 @@ Action_list_widget::Action_list_widget( TQWidget* parent_P, const char* name_P )
this, TQT_SLOT( modify_pressed() ) );
// KHotKeys::Module::changed()
- connect( new_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( copy_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( modify_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( delete_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( comment_lineedit, TQT_SIGNAL( textChanged( const TQString& )),
- module, TQT_SLOT( changed()));
+ connect(new_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(copy_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(modify_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(delete_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(move_up_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(move_down_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(comment_lineedit, TQT_SIGNAL(textChanged(const TQString&)), module, TQT_SLOT(changed()));
}
Action_list_widget::~Action_list_widget()
@@ -132,6 +131,9 @@ void Action_list_widget::new_selected( int type_P )
case TYPE_ACTIVATE_WINDOW_ACTION: // Activate_window_action_dialog
dlg = new Activate_window_action_dialog( NULL );
break;
+ case TYPE_WAITING_ACTION: // Waiting_action_dialog
+ dlg = new Waiting_action_dialog( NULL );
+ break;
default:
assert( false );
}
@@ -148,24 +150,81 @@ void Action_list_widget::new_selected( int type_P )
void Action_list_widget::copy_pressed()
{
- if ( !selected_item )
- return;
+ if ( !selected_item )
+ {
+ return;
+ }
+
actions_listview->setSelected( create_listview_item( selected_item->action(),
- selected_item->parent() ? NULL : actions_listview, selected_item->parent(),
- selected_item, true ), true );
+ selected_item->parent() ? NULL : actions_listview, selected_item->parent(),
+ selected_item, true ), true );
}
void Action_list_widget::delete_pressed()
{
- delete selected_item; // CHECKME snad vyvola signaly pro enable()
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Action_list_item *nextItem = static_cast< Action_list_item* >(selected_item->nextSibling());
+ delete selected_item;
selected_item = NULL;
+ if (!nextItem)
+ {
+ // If the last item of the list was deleted, get the new last item
+ nextItem = static_cast< Action_list_item* >(actions_listview->lastItem());
+ }
+ if (nextItem)
+ {
+ actions_listview->setSelected(nextItem, true);
+ current_changed(nextItem);
+ }
}
void Action_list_widget::modify_pressed()
{
- if ( !selected_item )
- return;
- edit_listview_item( selected_item );
+ if ( !selected_item )
+ {
+ return;
+ }
+ edit_listview_item( selected_item );
+ }
+
+void Action_list_widget::move_up_pressed()
+ {
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Action_list_item *prevItem = nullptr;
+ TQListViewItem *currItem = actions_listview->firstChild();
+ while (currItem != selected_item)
+ {
+ prevItem = static_cast< Action_list_item* >(currItem);
+ currItem = currItem->nextSibling();
+ }
+ if (prevItem)
+ {
+ prevItem->moveItem(selected_item);
+ current_changed(selected_item);
+ }
+ }
+
+void Action_list_widget::move_down_pressed()
+ {
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Action_list_item *nextItem = static_cast< Action_list_item* >(selected_item->nextSibling());
+ if (nextItem)
+ {
+ selected_item->moveItem(nextItem);
+ current_changed(selected_item);
+ }
}
void Action_list_widget::current_changed( TQListViewItem* item_P )
@@ -177,6 +236,8 @@ void Action_list_widget::current_changed( TQListViewItem* item_P )
copy_button->setEnabled( item_P != NULL );
modify_button->setEnabled( item_P != NULL );
delete_button->setEnabled( item_P != NULL );
+ move_up_button->setEnabled(selected_item != actions_listview->firstChild());
+ move_down_button->setEnabled(selected_item != actions_listview->lastChild());
}
Action_list_item* Action_list_widget::create_listview_item( Action* action_P,
@@ -215,6 +276,8 @@ void Action_list_widget::edit_listview_item( Action_list_item* item_P )
else if( Activate_window_action* action
= dynamic_cast< Activate_window_action* >( item_P->action()))
dlg = new Activate_window_action_dialog( action );
+ else if( Waiting_action* action = dynamic_cast< Waiting_action* >( item_P->action()))
+ dlg = new Waiting_action_dialog( action );
else // CHECKME TODO pridat dalsi
assert( false );
Action* new_action = dlg->edit_action();
@@ -349,6 +412,28 @@ void Activate_window_action_dialog::accept()
action = new Activate_window_action( NULL, widget->get_data()); // CHECKME NULL ?
}
+// Waiting_action_dialog
+
+Waiting_action_dialog::Waiting_action_dialog( Waiting_action* action_P )
+ : KDialogBase( NULL, NULL, true, "", Ok | Cancel ), action( NULL )
+ {
+ widget = new Waiting_widget( this );
+ widget->set_data( action_P );
+ setMainWidget( widget );
+ }
+
+Action* Waiting_action_dialog::edit_action()
+ {
+ exec();
+ return action;
+ }
+
+void Waiting_action_dialog::accept()
+ {
+ KDialogBase::accept();
+ action = widget->get_data( NULL );
+ }
+
} // namespace KHotKeys
#include "action_list_widget.moc"
diff --git a/khotkeys/kcontrol/action_list_widget.h b/khotkeys/kcontrol/action_list_widget.h
index c2f32477e..91bee9417 100644
--- a/khotkeys/kcontrol/action_list_widget.h
+++ b/khotkeys/kcontrol/action_list_widget.h
@@ -1,11 +1,11 @@
/****************************************************************************
KHotKeys
-
+
Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
Distributed under the terms of the GNU General Public License version 2.
-
+
****************************************************************************/
#ifndef _ACTION_LIST_WIDGET_H_
@@ -28,6 +28,7 @@ class Command_url_widget;
class Menuentry_widget;
class Dcop_widget;
class Keyboard_input_widget;
+class Waiting_widget;
class Action_list_item;
@@ -47,12 +48,14 @@ class Action_list_widget
TQListViewItem* parent2_P, TQListViewItem* after_P, bool copy_P );
void edit_listview_item( Action_list_item* item_P );
enum type_t { TYPE_COMMAND_URL_ACTION, TYPE_MENUENTRY_ACTION, TYPE_DCOP_ACTION,
- TYPE_KEYBOARD_INPUT_ACTION, TYPE_ACTIVATE_WINDOW_ACTION };
+ TYPE_KEYBOARD_INPUT_ACTION, TYPE_ACTIVATE_WINDOW_ACTION, TYPE_WAITING_ACTION };
protected slots:
void new_selected( int type_P );
virtual void copy_pressed();
virtual void delete_pressed();
virtual void modify_pressed();
+ virtual void move_up_pressed();
+ virtual void move_down_pressed();
virtual void current_changed( TQListViewItem* item_P );
protected:
Action_list_item* selected_item;
@@ -75,14 +78,14 @@ class Action_list_item
protected:
Action* _action; // owns it
};
-
+
class Action_dialog
{
public:
virtual Action* edit_action() = 0;
virtual ~Action_dialog();
};
-
+
class Command_url_action_dialog
: public KDialogBase, public Action_dialog
{
@@ -95,7 +98,7 @@ class Command_url_action_dialog
Command_url_widget* widget;
Command_url_action* action;
};
-
+
class Menuentry_action_dialog
: public KDialogBase, public Action_dialog
{
@@ -108,7 +111,7 @@ class Menuentry_action_dialog
Menuentry_widget* widget;
Menuentry_action* action;
};
-
+
class Dcop_action_dialog
: public KDialogBase, public Action_dialog
{
@@ -121,7 +124,7 @@ class Dcop_action_dialog
Dcop_widget* widget;
Dcop_action* action;
};
-
+
class Keyboard_input_action_dialog
: public KDialogBase, public Action_dialog
{
@@ -134,7 +137,7 @@ class Keyboard_input_action_dialog
Keyboard_input_widget* widget;
Keyboard_input_action* action;
};
-
+
class Activate_window_action_dialog
: public KDialogBase, public Action_dialog
{
@@ -147,7 +150,20 @@ class Activate_window_action_dialog
Activate_window_widget* widget;
Activate_window_action* action;
};
-
+
+class Waiting_action_dialog
+ : public KDialogBase, public Action_dialog
+ {
+ Q_OBJECT
+ public:
+ Waiting_action_dialog( Waiting_action* action_P );
+ virtual Action* edit_action();
+ protected:
+ virtual void accept();
+ Waiting_widget* widget;
+ Waiting_action* action;
+ };
+
//***************************************************************************
// Inline
//***************************************************************************
@@ -159,7 +175,7 @@ Action_list_item::Action_list_item( TQListView* parent_P, Action* action_P )
: TQListViewItem( parent_P ), _action( action_P )
{
}
-
+
inline
Action_list_item::Action_list_item( TQListViewItem* parent_P, Action* action_P )
: TQListViewItem( parent_P ), _action( action_P )
@@ -185,7 +201,7 @@ Action* Action_list_item::action() const
{
return _action;
}
-
+
inline
void Action_list_item::set_action( Action* action_P )
{
diff --git a/khotkeys/kcontrol/actions_listview_widget.cpp b/khotkeys/kcontrol/actions_listview_widget.cpp
index e528005ed..1b6c7a743 100644
--- a/khotkeys/kcontrol/actions_listview_widget.cpp
+++ b/khotkeys/kcontrol/actions_listview_widget.cpp
@@ -1,11 +1,11 @@
/****************************************************************************
KHotKeys
-
+
Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
Distributed under the terms of the GNU General Public License version 2.
-
+
****************************************************************************/
#define _ACTIONS_LISTVIEW_WIDGET_CPP_
@@ -138,7 +138,7 @@ void Actions_listview_widget::build_up()
{
build_up_recursively( module->actions_root(), NULL );
}
-
+
void Actions_listview_widget::build_up_recursively( Action_data_group* parent_P,
Action_listview_item* item_parent_P )
{
@@ -147,13 +147,13 @@ void Actions_listview_widget::build_up_recursively( Action_data_group* parent_P,
it;
++it )
{
- prev = create_item( item_parent_P, prev, ( *it ));
+ prev = create_item( item_parent_P, prev, ( *it ));
Action_data_group* grp = dynamic_cast< Action_data_group* >( *it );
if( grp != NULL )
build_up_recursively( grp, prev );
}
}
-
+
Action_listview_item* Actions_listview_widget::create_item( TQListViewItem* parent_P,
TQListViewItem* after_P, Action_data_base* data_P )
{
diff --git a/khotkeys/kcontrol/actions_listview_widget.h b/khotkeys/kcontrol/actions_listview_widget.h
index 0f3a632f4..e380791ee 100644
--- a/khotkeys/kcontrol/actions_listview_widget.h
+++ b/khotkeys/kcontrol/actions_listview_widget.h
@@ -1,11 +1,11 @@
/****************************************************************************
KHotKeys
-
+
Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
Distributed under the terms of the GNU General Public License version 2.
-
+
****************************************************************************/
#ifndef _ACTIONS_LISTVIEW_WIDGET_H_
@@ -27,13 +27,13 @@ class Action_data_base;
class Actions_listview_widget
: public Actions_listview_widget_ui
- {
+ {
Q_OBJECT
public:
Actions_listview_widget( TQWidget* parent_P = NULL, const char* name_P = NULL );
Action_listview_item* current_action() const;
void set_current_action( Action_listview_item* item );
- Action_data_base* current_action_data() const;
+ Action_data_base* current_action_data() const;
void set_action_data( Action_data_base* data_P, bool recent_action_P = false );
void action_name_changed( const TQString& name_P );
void clear();
@@ -54,7 +54,7 @@ class Actions_listview_widget
};
class Actions_listview
- : public KHListView
+ : public KHListView
{
Q_OBJECT
public:
@@ -78,7 +78,7 @@ class Action_listview_item
Action_data_base* data_P );
protected:
Action_data_base* _data; // CHECKME doesn't own !!!
- };
+ };
//***************************************************************************
// Inline
@@ -113,7 +113,7 @@ Actions_listview_widget* Actions_listview::widget()
{
return _widget;
}
-
+
// Action_listview_item
inline
@@ -139,7 +139,7 @@ Action_data_base* Action_listview_item::data() const
{
return _data;
}
-
+
inline
void Action_listview_item::set_data( Action_data_base* data_P )
{
diff --git a/khotkeys/kcontrol/condition_list_widget.cpp b/khotkeys/kcontrol/condition_list_widget.cpp
index ba3be5e71..817602a12 100644
--- a/khotkeys/kcontrol/condition_list_widget.cpp
+++ b/khotkeys/kcontrol/condition_list_widget.cpp
@@ -62,18 +62,18 @@ Condition_list_widget::Condition_list_widget( TQWidget* parent_P, const char* na
copy_button->setEnabled( false );
modify_button->setEnabled( false );
delete_button->setEnabled( false );
+ move_up_button->setEnabled( false );
+ move_down_button->setEnabled( false );
clear_data();
// KHotKeys::Module::changed()
- connect( new_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( copy_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( modify_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( delete_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( comment_lineedit, TQT_SIGNAL( textChanged( const TQString& )),
- module, TQT_SLOT( changed()));
+ connect(new_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(copy_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(modify_button, TQT_SIGNAL(clicked()), module, TQT_SLOT( changed()));
+ connect(delete_button, TQT_SIGNAL(clicked()), module, TQT_SLOT( changed()));
+ connect(move_up_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(move_down_button, TQT_SIGNAL(clicked()), module, TQT_SLOT(changed()));
+ connect(comment_lineedit, TQT_SIGNAL(textChanged(const TQString&)),
+ module, TQT_SLOT(changed()));
}
Condition_list_widget::~Condition_list_widget()
@@ -213,8 +213,11 @@ void Condition_list_widget::new_selected( int type_P )
void Condition_list_widget::copy_pressed()
{
- if ( !selected_item )
- return;
+ if ( !selected_item )
+ {
+ return;
+ }
+
conditions_listview->setSelected( create_listview_item(
selected_item->condition()->copy( selected_item->condition()->parent()),
selected_item->parent() ? NULL : conditions_listview,
@@ -223,22 +226,72 @@ void Condition_list_widget::copy_pressed()
}
void Condition_list_widget::delete_pressed()
-{
- if ( selected_item )
{
- conditions.remove( selected_item->condition()); // we own it
- delete selected_item; // CHECKME snad vyvola signaly pro enable()
- selected_item = NULL;
+ if ( !selected_item )
+ {
+ return;
+ }
+ Condition_list_item *nextItem = static_cast< Condition_list_item* >(selected_item->nextSibling());
+ conditions.remove( selected_item->condition()); // we own it
+ delete selected_item;
+ selected_item = NULL;
+ if (!nextItem)
+ {
+ // If the last item of the list was deleted, get the new last item
+ nextItem = static_cast< Condition_list_item* >(conditions_listview->lastItem());
+ }
+ if (nextItem)
+ {
+ conditions_listview->setSelected(nextItem, true);
+ current_changed(nextItem);
+ }
}
-}
void Condition_list_widget::modify_pressed()
{
- if ( !selected_item )
- return;
+ if ( !selected_item )
+ {
+ return;
+ }
edit_listview_item( selected_item );
}
+void Condition_list_widget::move_up_pressed()
+ {
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Condition_list_item *prevItem = nullptr;
+ TQListViewItem *currItem = conditions_listview->firstChild();
+ while (currItem != selected_item)
+ {
+ prevItem = static_cast< Condition_list_item* >(currItem);
+ currItem = currItem->nextSibling();
+ }
+ if (prevItem)
+ {
+ prevItem->moveItem(selected_item);
+ current_changed(selected_item);
+ }
+ }
+
+void Condition_list_widget::move_down_pressed()
+ {
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Condition_list_item *nextItem = static_cast< Condition_list_item* >(selected_item->nextSibling());
+ if (nextItem)
+ {
+ selected_item->moveItem(nextItem);
+ current_changed(selected_item);
+ }
+ }
+
void Condition_list_widget::current_changed( TQListViewItem* item_P )
{
// if( item_P == selected_item )
@@ -260,6 +313,8 @@ void Condition_list_widget::current_changed( TQListViewItem* item_P )
}
else
modify_button->setEnabled( false );
+ move_up_button->setEnabled(selected_item != conditions_listview->firstChild());
+ move_down_button->setEnabled(selected_item != conditions_listview->lastChild());
}
Condition_list_item* Condition_list_widget::create_listview_item( Condition* condition_P,
@@ -268,7 +323,7 @@ Condition_list_item* Condition_list_widget::create_listview_item( Condition* con
#ifdef KHOTKEYS_DEBUG
kdDebug( 1217 ) << "Condition_list_widget::create_listview_item():" << endl;
Condition::debug_list( conditions );
- kdDebug( 1217 ) << kdBacktrace() << endl;
+ kdDebug( 1217 ) << kdBacktrace() << endl;
#endif
Condition* new_cond = copy_P ? condition_P->copy( parent2_P
? static_cast< Condition_list_base* >( parent2_P->condition()) : NULL ) : condition_P;
diff --git a/khotkeys/kcontrol/condition_list_widget.h b/khotkeys/kcontrol/condition_list_widget.h
index 0c99fd46c..04c9d3deb 100644
--- a/khotkeys/kcontrol/condition_list_widget.h
+++ b/khotkeys/kcontrol/condition_list_widget.h
@@ -1,11 +1,11 @@
/****************************************************************************
KHotKeys
-
+
Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
Distributed under the terms of the GNU General Public License version 2.
-
+
****************************************************************************/
#ifndef _CONDITIONS_LIST_WIDGET_H_
@@ -48,6 +48,8 @@ class Condition_list_widget
virtual void copy_pressed();
virtual void delete_pressed();
virtual void modify_pressed();
+ virtual void move_up_pressed();
+ virtual void move_down_pressed();
virtual void current_changed( TQListViewItem* item_P );
private:
void insert_listview_items( const Condition_list_base* parent_P,
@@ -74,14 +76,14 @@ class Condition_list_item
protected:
Condition* _condition; // owns it
};
-
+
class Condition_dialog
{
public:
virtual Condition* edit_condition() = 0;
virtual ~Condition_dialog();
};
-
+
class Active_window_condition_dialog
: public KDialogBase, public Condition_dialog
{
@@ -94,7 +96,7 @@ class Active_window_condition_dialog
Windowdef_list_widget* widget;
Active_window_condition* condition;
};
-
+
class Existing_window_condition_dialog
: public KDialogBase, public Condition_dialog
{
@@ -107,7 +109,7 @@ class Existing_window_condition_dialog
Windowdef_list_widget* widget;
Existing_window_condition* condition;
};
-
+
//***************************************************************************
// Inline
@@ -120,7 +122,7 @@ Condition_list_item::Condition_list_item( TQListView* parent_P, Condition* condi
: TQListViewItem( parent_P ), _condition( condition_P )
{
}
-
+
inline
Condition_list_item::Condition_list_item( TQListViewItem* parent_P, Condition* condition_P )
: TQListViewItem( parent_P ), _condition( condition_P )
@@ -146,7 +148,7 @@ Condition* Condition_list_item::condition() const
{
return _condition;
}
-
+
inline
void Condition_list_item::set_condition( Condition* condition_P )
{
diff --git a/khotkeys/kcontrol/ui/CMakeLists.txt b/khotkeys/kcontrol/ui/CMakeLists.txt
index 85212affb..ab8db9e78 100644
--- a/khotkeys/kcontrol/ui/CMakeLists.txt
+++ b/khotkeys/kcontrol/ui/CMakeLists.txt
@@ -28,7 +28,7 @@ link_directories(
tde_add_library( ui STATIC_PIC AUTOMOC
SOURCES
windowdef_simple_widget_ui.ui windowdef_list_widget_ui.ui
- command_url_widget_ui.ui menuentry_widget_ui.ui
+ command_url_widget_ui.ui menuentry_widget_ui.ui waiting_widget_ui.ui
triggers_tab_ui.ui general_tab_ui.ui action_group_tab_ui.ui
dcop_widget_ui.ui main_buttons_widget_ui.ui voice_settings_tab_ui.ui
info_tab_ui.ui window_trigger_widget_ui.ui action_list_widget_ui.ui
diff --git a/khotkeys/kcontrol/ui/Makefile.am b/khotkeys/kcontrol/ui/Makefile.am
index 14ea5c44d..ee63c6871 100644
--- a/khotkeys/kcontrol/ui/Makefile.am
+++ b/khotkeys/kcontrol/ui/Makefile.am
@@ -1,6 +1,6 @@
noinst_LTLIBRARIES = libui.la
libui_la_SOURCES = dummy.cpp windowdef_simple_widget_ui.ui windowdef_list_widget_ui.ui \
- command_url_widget_ui.ui menuentry_widget_ui.ui triggers_tab_ui.ui general_tab_ui.ui \
+ command_url_widget_ui.ui menuentry_widget_ui.ui triggers_tab_ui.ui general_tab_ui.ui waiting_widget_ui.ui \
action_group_tab_ui.ui dcop_widget_ui.ui main_buttons_widget_ui.ui \
actions_listview_widget_ui.ui info_tab_ui.ui window_trigger_widget_ui.ui \
action_list_widget_ui.ui keyboard_input_widget_ui.ui condition_list_widget_ui.ui \
diff --git a/khotkeys/kcontrol/ui/action_list_widget_ui.ui b/khotkeys/kcontrol/ui/action_list_widget_ui.ui
index d78c6b5f1..2895e5752 100644
--- a/khotkeys/kcontrol/ui/action_list_widget_ui.ui
+++ b/khotkeys/kcontrol/ui/action_list_widget_ui.ui
@@ -97,6 +97,22 @@
<string>Delete</string>
</property>
</widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>move_up_button</cstring>
+ </property>
+ <property name="text">
+ <string>Move &amp;up</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>move_down_button</cstring>
+ </property>
+ <property name="text">
+ <string>Move &amp;down</string>
+ </property>
+ </widget>
</vbox>
</widget>
</hbox>
@@ -148,6 +164,18 @@
<slot>delete_pressed()</slot>
</connection>
<connection>
+ <sender>move_up_button</sender>
+ <signal>clicked()</signal>
+ <receiver>Action_list_widget_ui</receiver>
+ <slot>move_up_pressed()</slot>
+ </connection>
+ <connection>
+ <sender>move_down_button</sender>
+ <signal>clicked()</signal>
+ <receiver>Action_list_widget_ui</receiver>
+ <slot>move_down_pressed()</slot>
+ </connection>
+ <connection>
<sender>actions_listview</sender>
<signal>current_changed(TQListViewItem*)</signal>
<receiver>Action_list_widget_ui</receiver>
@@ -162,6 +190,8 @@
<slot access="protected" specifier="pure virtual">current_changed(TQListViewItem*)</slot>
<slot access="protected" specifier="pure virtual">delete_pressed()</slot>
<slot access="protected" specifier="pure virtual">modify_pressed()</slot>
+ <slot access="protected" specifier="pure virtual">move_up_pressed()</slot>
+ <slot access="protected" specifier="pure virtual">move_down_pressed()</slot>
</Q_SLOTS>
<includes>
<include location="global" impldecl="in implementation">kdialog.h</include>
diff --git a/khotkeys/kcontrol/ui/command_url_widget_ui.ui b/khotkeys/kcontrol/ui/command_url_widget_ui.ui
index 6d571e699..5a285b32e 100644
--- a/khotkeys/kcontrol/ui/command_url_widget_ui.ui
+++ b/khotkeys/kcontrol/ui/command_url_widget_ui.ui
@@ -55,12 +55,10 @@
</Q_SLOTS>
<includes>
<include location="global" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/khotkeys/kcontrol/ui/condition_list_widget_ui.ui b/khotkeys/kcontrol/ui/condition_list_widget_ui.ui
index 9b3727ffd..269b889ce 100644
--- a/khotkeys/kcontrol/ui/condition_list_widget_ui.ui
+++ b/khotkeys/kcontrol/ui/condition_list_widget_ui.ui
@@ -94,7 +94,23 @@
<cstring>delete_button</cstring>
</property>
<property name="text">
- <string>Delete</string>
+ <string>D&amp;elete</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>move_up_button</cstring>
+ </property>
+ <property name="text">
+ <string>Move &amp;up</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>move_down_button</cstring>
+ </property>
+ <property name="text">
+ <string>Move &amp;down</string>
</property>
</widget>
</vbox>
@@ -147,6 +163,18 @@
<slot>delete_pressed()</slot>
</connection>
<connection>
+ <sender>move_up_button</sender>
+ <signal>clicked()</signal>
+ <receiver>Condition_list_widget_ui</receiver>
+ <slot>move_up_pressed()</slot>
+ </connection>
+ <connection>
+ <sender>move_down_button</sender>
+ <signal>clicked()</signal>
+ <receiver>Condition_list_widget_ui</receiver>
+ <slot>move_down_pressed()</slot>
+ </connection>
+ <connection>
<sender>conditions_listview</sender>
<signal>current_changed(TQListViewItem*)</signal>
<receiver>Condition_list_widget_ui</receiver>
@@ -161,6 +189,8 @@
<slot access="protected" specifier="pure virtual">current_changed(TQListViewItem*)</slot>
<slot access="protected" specifier="pure virtual">delete_pressed()</slot>
<slot access="protected" specifier="pure virtual">modify_pressed()</slot>
+ <slot access="protected" specifier="pure virtual">move_up_pressed()</slot>
+ <slot access="protected" specifier="pure virtual">move_down_pressed()</slot>
</Q_SLOTS>
<includes>
<include location="global" impldecl="in implementation">kdialog.h</include>
diff --git a/khotkeys/kcontrol/ui/waiting_widget_ui.ui b/khotkeys/kcontrol/ui/waiting_widget_ui.ui
new file mode 100644
index 000000000..5942a34ba
--- /dev/null
+++ b/khotkeys/kcontrol/ui/waiting_widget_ui.ui
@@ -0,0 +1,72 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>KHotKeys::Waiting_widget_ui</class>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>Waiting_widget_ui</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>580</width>
+ <height>480</height>
+ </rect>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>waiting_label</cstring>
+ </property>
+ <property name="text">
+ <string>Waiting time (ms): </string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>waiting_spinbox</cstring>
+ </property>
+ </widget>
+ <widget class="KIntSpinBox">
+ <property name="name">
+ <cstring>waiting_spinbox</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>20000</number>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer16</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>0</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+</widget>
+<includes>
+ <include location="global" impldecl="in implementation">kdialog.h</include>
+ <include location="global" impldecl="in implementation">knuminput.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
+</UI>
diff --git a/khotkeys/kcontrol/waiting_widget.cpp b/khotkeys/kcontrol/waiting_widget.cpp
new file mode 100644
index 000000000..6f1c0c657
--- /dev/null
+++ b/khotkeys/kcontrol/waiting_widget.cpp
@@ -0,0 +1,56 @@
+/****************************************************************************
+
+ KHotKeys
+
+ Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
+
+ Distributed under the terms of the GNU General Public License version 2.
+
+****************************************************************************/
+
+#define _WAITING_WIDGET_CPP_
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "waiting_widget.h"
+
+#include <knuminput.h>
+
+#include <kdebug.h>
+
+#include <actions.h>
+#include <action_data.h>
+
+#include "windowdef_list_widget.h"
+#include "kcmkhotkeys.h"
+
+namespace KHotKeys
+{
+
+Waiting_widget::Waiting_widget( TQWidget* parent_P, const char* name_P )
+ : Waiting_widget_ui( parent_P, name_P )
+ {
+ // KHotKeys::Module::changed()
+ connect(waiting_spinbox, TQT_SIGNAL(valueChanged(int)),
+ module, TQT_SLOT(changed()));
+ }
+
+void Waiting_widget::set_data( const Waiting_action* data_P )
+ {
+ if( data_P == NULL )
+ {
+ return;
+ }
+ waiting_spinbox->setValue(data_P->_waiting_time);
+ }
+
+Waiting_action* Waiting_widget::get_data( Action_data* data_P ) const
+ {
+ return new Waiting_action( data_P, waiting_spinbox->value());
+ }
+
+} // namespace KHotKeys
+
+#include "waiting_widget.moc"
diff --git a/khotkeys/kcontrol/waiting_widget.h b/khotkeys/kcontrol/waiting_widget.h
new file mode 100644
index 000000000..520e7742e
--- /dev/null
+++ b/khotkeys/kcontrol/waiting_widget.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+
+ KHotKeys
+
+ Copyright (C) 1999-2001 Lubos Lunak <l.lunak@kde.org>
+
+ Distributed under the terms of the GNU General Public License version 2.
+
+****************************************************************************/
+
+#ifndef _WAITING_WIDGET_H_
+#define _WAITING_WIDGET_H_
+
+#include <waiting_widget_ui.h>
+
+namespace KHotKeys
+{
+
+class Waiting_action;
+class Action_data;
+
+class Waiting_widget
+ : public Waiting_widget_ui
+ {
+ Q_OBJECT
+ public:
+ Waiting_widget( TQWidget* parent_P = NULL, const char* name_P = NULL );
+ void set_data( const Waiting_action* data_P );
+ Waiting_action* get_data( Action_data* data_P ) const;
+ };
+
+typedef Waiting_widget Waiting_tab;
+
+} // namespace KHotKeys
+
+#endif
diff --git a/khotkeys/shared/actions.cpp b/khotkeys/shared/actions.cpp
index c8590789a..69c853fed 100644
--- a/khotkeys/shared/actions.cpp
+++ b/khotkeys/shared/actions.cpp
@@ -54,7 +54,9 @@ Action* Action::create_cfg_read( TDEConfig& cfg_P, Action_data* data_P )
return new Keyboard_input_action( cfg_P, data_P );
if( type == "ACTIVATE_WINDOW" )
return new Activate_window_action( cfg_P, data_P );
- kdWarning( 1217 ) << "Unknown Action type read from cfg file\n";
+ if( type == "WAITING" )
+ return new Waiting_action( cfg_P, data_P );
+ kdWarning( 1217 ) << "Unknown Action type read from cfg file: " << type << endl;
return NULL;
}
@@ -452,4 +454,34 @@ Action* Activate_window_action::copy( Action_data* data_P ) const
return new Activate_window_action( data_P, window()->copy());
}
+// Waiting_action
+
+Waiting_action::Waiting_action( TDEConfig& cfg_P, Action_data* data_P )
+ : Action( cfg_P, data_P )
+ {
+ _waiting_time = cfg_P.readNumEntry("Time");
+ }
+
+void Waiting_action::cfg_write( TDEConfig& cfg_P ) const
+ {
+ base::cfg_write( cfg_P );
+ cfg_P.writeEntry( "Type", "WAITING" ); // overwrites value set in base::cfg_write()
+ cfg_P.writeEntry( "Time", _waiting_time);
+ }
+
+void Waiting_action::execute()
+ {
+ usleep(_waiting_time * 1000);
+ }
+
+TQString Waiting_action::description() const
+ {
+ return i18n( "Waiting %1 ms" ).arg(_waiting_time);
+ }
+
+Action* Waiting_action::copy( Action_data* data_P ) const
+ {
+ return new Waiting_action( data_P, _waiting_time);
+ }
+
} // namespace KHotKeys
diff --git a/khotkeys/shared/actions.h b/khotkeys/shared/actions.h
index f381683e1..c7cabf0fc 100644
--- a/khotkeys/shared/actions.h
+++ b/khotkeys/shared/actions.h
@@ -50,7 +50,7 @@ class KDE_EXPORT Action_list
: public TQPtrList< Action >
{
public:
- Action_list( const TQString& comment_P ); // CHECKME nebo i data ?
+ Action_list( const TQString& comment_P );
Action_list( TDEConfig& cfg_P, Action_data* data_P );
void cfg_write( TDEConfig& cfg_P ) const;
typedef TQPtrListIterator< Action > Iterator;
@@ -111,7 +111,7 @@ class KDE_EXPORT Dcop_action
virtual TQString description() const;
virtual Action* copy( Action_data* data_P ) const;
private:
- TQString app; // CHECKME TQCString ?
+ TQString app;
TQString obj;
TQString call;
TQString args;
@@ -159,6 +159,21 @@ class KDE_EXPORT Activate_window_action
const Windowdef_list* _window;
};
+class KDE_EXPORT Waiting_action
+ : public Action
+ {
+ typedef Action base;
+ public:
+ Waiting_action( Action_data* data_P, const int waiting_time );
+ Waiting_action( TDEConfig& cfg_P, Action_data* data_P );
+ virtual void cfg_write( TDEConfig& cfg_P ) const;
+ virtual void execute();
+ virtual TQString description() const;
+ virtual Action* copy( Action_data* data_P ) const;
+
+ int _waiting_time;
+ };
+
//***************************************************************************
// Inline
//***************************************************************************
@@ -300,6 +315,14 @@ const Windowdef_list* Activate_window_action::window() const
return _window;
}
+// Waiting_action
+
+inline
+Waiting_action::Waiting_action( Action_data* data_P, const int waiting_time)
+ : Action( data_P ), _waiting_time(waiting_time)
+ {
+ }
+
} // namespace KHotKeys
-
+
#endif
diff --git a/khotkeys/shared/settings.cpp b/khotkeys/shared/settings.cpp
index 76adac6b9..becacd5d1 100644
--- a/khotkeys/shared/settings.cpp
+++ b/khotkeys/shared/settings.cpp
@@ -145,9 +145,11 @@ void Settings::write_settings()
gestures_exclude->cfg_write( cfg );
}
else
+ {
cfg.deleteGroup( "GesturesExclude" );
- cfg.setGroup( "Voice" );
- cfg.writeEntry("Shortcut" , voice_shortcut.toStringInternal() );
+ }
+ cfg.setGroup( "Voice" );
+ cfg.writeEntry("Shortcut" , voice_shortcut.toStringInternal() );
}
diff --git a/khotkeys/shared/triggers.cpp b/khotkeys/shared/triggers.cpp
index 115bc6687..5bd8dbe3e 100644
--- a/khotkeys/shared/triggers.cpp
+++ b/khotkeys/shared/triggers.cpp
@@ -277,6 +277,7 @@ void Window_trigger::window_changed( WId window_P, unsigned int dirty_P )
bool matches = windows()->match( Window_data( window_P ));
existing_windows[ window_P ] = matches;
if( active && matches && !was_match )
+ {
if( window_actions & WINDOW_APPEARS )
{
windows_handler->set_action_window( window_P );
@@ -287,6 +288,7 @@ void Window_trigger::window_changed( WId window_P, unsigned int dirty_P )
windows_handler->set_action_window( window_P );
data->execute();
}
+ }
kdDebug( 1217 ) << "Window_trigger::w_changed() : " << was_match << "|" << matches << endl;
}
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/applets/swallow/prefwidgetbase.ui b/kicker/applets/swallow/prefwidgetbase.ui
index bd2673efa..13f8aa300 100644
--- a/kicker/applets/swallow/prefwidgetbase.ui
+++ b/kicker/applets/swallow/prefwidgetbase.ui
@@ -119,16 +119,13 @@
</spacer>
</grid>
</widget>
-<includes>
- <include location="local" impldecl="in implementation">kdialog.h</include>
-</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>keditlistbox.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kurlrequester.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">keditlistbox.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">kurlrequester.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
+</includes>
</UI>
diff --git a/kicker/kicker/ui/appletview.ui b/kicker/kicker/ui/appletview.ui
index 5d92dab89..e61575a72 100644
--- a/kicker/kicker/ui/appletview.ui
+++ b/kicker/kicker/ui/appletview.ui
@@ -198,8 +198,6 @@
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">tqscrollview.h</include>
</includes>
-<includehints>
- <includehint>tqscrollview.h</includehint>
-</includehints>
</UI>
diff --git a/kicker/kicker/ui/k_mnu.cpp b/kicker/kicker/ui/k_mnu.cpp
index 4362e91f1..b99d6e3ba 100644
--- a/kicker/kicker/ui/k_mnu.cpp
+++ b/kicker/kicker/ui/k_mnu.cpp
@@ -52,6 +52,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <tdetoolbarbutton.h>
#include <twin.h>
#include <popupmenutop.h>
+#include <tdeaccel.h>
#include "client_mnu.h"
#include "container_base.h"
@@ -245,6 +246,8 @@ void PanelKMenu::initialize()
return;
}
+ TDEAccel *accel = new TDEAccel(this);
+
if (loadSidePixmap())
{
// in case we've been through here before, let's disconnect
@@ -265,7 +268,25 @@ void PanelKMenu::initialize()
if (KickerSettings::useSearchBar()) {
TQHBox* hbox = new TQHBox( this );
TDEToolBarButton *clearButton = new TDEToolBarButton( "locationbar_erase", 0, hbox );
- searchEdit = new KPIM::ClickLineEdit(hbox, " "+i18n("Press '/' to search..."));
+
+ TQStringList cuts = TQStringList::split(";", KickerSettings::searchShortcut());
+ TQString placeholder;
+ switch( cuts.count() )
+ {
+ case 0:
+ placeholder = i18n(" Click here to search...");
+ break;
+
+ case 1:
+ placeholder = i18n(" Press '%1' to search...").arg(cuts[0]);
+ break;
+
+ case 2:
+ placeholder = i18n(" Press '%1' or '%2' to search...").arg(cuts[0], cuts[1]);
+ break;
+ }
+ searchEdit = new KPIM::ClickLineEdit( hbox, placeholder );
+
hbox->setFocusPolicy(TQ_StrongFocus);
hbox->setFocusProxy(searchEdit);
hbox->setSpacing( 3 );
@@ -273,6 +294,10 @@ void PanelKMenu::initialize()
connect(this, TQT_SIGNAL(aboutToHide()), this, TQT_SLOT(slotClearSearch()));
connect(searchEdit, TQT_SIGNAL(textChanged(const TQString&)),
this, TQT_SLOT( slotUpdateSearch( const TQString&)));
+ accel->insert("search", i18n("Search"), i18n("TDE Menu search"),
+ TDEShortcut(KickerSettings::searchShortcut()),
+ this, TQT_SLOT(slotFocusSearch()));
+
insertItem(hbox, searchLineID, 0);
} else {
searchEdit = NULL;
@@ -709,6 +734,13 @@ void PanelKMenu::slotClearSearch()
}
}
+void PanelKMenu::slotFocusSearch()
+{
+ if (indexOf(searchLineID) >=0 ) {
+ setActiveItem(indexOf(searchLineID));
+ }
+}
+
void PanelKMenu::keyPressEvent(TQKeyEvent* e)
{
// We move the focus to the search field if the
@@ -719,12 +751,8 @@ void PanelKMenu::keyPressEvent(TQKeyEvent* e)
// we follow konqueror.
if (!searchEdit) return KPanelMenu::keyPressEvent(e);
- if (e->key() == TQt::Key_Slash && !searchEdit->hasFocus()) {
- if (indexOf(searchLineID) >=0 ) {
- setActiveItem(indexOf(searchLineID));
- }
- }
- else if (e->key() == TQt::Key_Escape && searchEdit->text().isEmpty() == false) {
+
+ if (e->key() == TQt::Key_Escape && searchEdit->text().isEmpty() == false) {
searchEdit->clear();
}
else if (e->key() == TQt::Key_Delete && !searchEdit->hasFocus() &&
diff --git a/kicker/kicker/ui/k_mnu.h b/kicker/kicker/ui/k_mnu.h
index 7c76f55ed..cf5a1917b 100644
--- a/kicker/kicker/ui/k_mnu.h
+++ b/kicker/kicker/ui/k_mnu.h
@@ -83,6 +83,7 @@ protected slots:
void slotEditUserContact();
void slotUpdateSearch(const TQString &searchtext);
void slotClearSearch();
+ void slotFocusSearch();
void paletteChanged();
virtual void configChanged();
void updateRecent();
diff --git a/kicker/libkicker/kickerSettings.kcfg b/kicker/libkicker/kickerSettings.kcfg
index 5ab6880aa..dfdf501e4 100644
--- a/kicker/libkicker/kickerSettings.kcfg
+++ b/kicker/libkicker/kickerSettings.kcfg
@@ -419,6 +419,11 @@
<default code="true">QString("kmenu")</default>
</entry>
+ <entry name="SearchShortcut" type="String" >
+ <label>Search shortcut</label>
+ <default>/</default>
+ </entry>
+
</group>
<group name="buttons" >
diff --git a/kicker/taskbar/taskcontainer.cpp b/kicker/taskbar/taskcontainer.cpp
index cc533f0b9..4ecb3261a 100644
--- a/kicker/taskbar/taskcontainer.cpp
+++ b/kicker/taskbar/taskcontainer.cpp
@@ -1328,11 +1328,6 @@ void TaskContainer::mouseMoveEvent( TQMouseEvent* e )
bool TaskContainer::startDrag(const TQPoint& pos)
{
- if (m_filteredTasks.count() != 1)
- {
- return false;
- }
-
int delay = TDEGlobalSettings::dndEventDelay();
if ((m_dragStartPos - pos).manhattanLength() > delay)
diff --git a/kicker/taskmanager/taskrmbmenu.cpp b/kicker/taskmanager/taskrmbmenu.cpp
index 58682196b..cdc6e4532 100644
--- a/kicker/taskmanager/taskrmbmenu.cpp
+++ b/kicker/taskmanager/taskrmbmenu.cpp
@@ -121,22 +121,22 @@ void TaskRMBMenu::fillMenu(Task::Ptr t)
void TaskRMBMenu::fillMenu()
{
- int id;
- setCheckable( true );
+ int id;
+ setCheckable( true );
Task::List::iterator itEnd = tasks.end();
for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it)
{
- Task::Ptr t = (*it);
+ Task::Ptr t = (*it);
- id = insertItem( TQIconSet( t->pixmap() ),
- t->visibleNameWithState(),
- new TaskRMBMenu(t, this) );
- setItemChecked( id, t->isActive() );
- connectItem( id, t, TQT_SLOT( activateRaiseOrIconify() ) );
- }
+ id = insertItem( TQIconSet( t->pixmap() ),
+ t->visibleNameWithState(),
+ new TaskRMBMenu(t, this) );
+ setItemChecked( id, t->isActive() );
+ connectItem( id, t, TQT_SLOT( activateRaiseOrIconify() ) );
+ }
- insertSeparator();
+ insertSeparator();
bool enable = false;
@@ -159,48 +159,55 @@ void TaskRMBMenu::fillMenu()
enable = false;
- id = insertItem( i18n( "Mi&nimize All" ), this, TQT_SLOT( slotMinimizeAll() ) );
+ id = insertItem( i18n( "Mi&nimize All" ), this, TQT_SLOT( slotMinimizeAll() ) );
itEnd = tasks.end();
for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it)
{
- if( !(*it)->isIconified() ) {
- enable = true;
- break;
- }
- }
- setItemEnabled( id, enable );
+ if( !(*it)->isIconified() ) {
+ enable = true;
+ break;
+ }
+ }
+ setItemEnabled( id, enable );
- enable = false;
+ enable = false;
- id = insertItem( i18n( "Ma&ximize All" ), this, TQT_SLOT( slotMaximizeAll() ) );
+ id = insertItem( i18n( "Ma&ximize All" ), this, TQT_SLOT( slotMaximizeAll() ) );
itEnd = tasks.end();
for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it)
{
if( !(*it)->isMaximized() ) {
- enable = true;
- break;
- }
- }
- setItemEnabled( id, enable );
+ enable = true;
+ break;
+ }
+ }
+ setItemEnabled( id, enable );
- enable = false;
+ enable = false;
- id = insertItem( i18n( "&Restore All" ), this, TQT_SLOT( slotRestoreAll() ) );
+ id = insertItem( i18n( "&Restore All" ), this, TQT_SLOT( slotRestoreAll() ) );
itEnd = tasks.end();
for (Task::List::iterator it = tasks.begin(); it != itEnd; ++it)
{
- if( (*it)->isIconified() || (*it)->isMaximized() ) {
- enable = true;
- break;
- }
- }
- setItemEnabled( id, enable );
+ if( (*it)->isIconified() || (*it)->isMaximized() ) {
+ enable = true;
+ break;
+ }
+ }
+ setItemEnabled( id, enable );
+
+ insertSeparator();
+
+ enable = false;
- insertSeparator();
+ if (taskMoveMenu) {
+ taskMoveMenu->reparent(this, taskMoveMenu->getWFlags(), taskMoveMenu->geometry().topLeft(), FALSE);
+ insertItem(i18n("Move Task Button"), taskMoveMenu);
- enable = false;
+ insertSeparator();
+ }
- insertItem( SmallIcon( "remove" ), i18n( "&Close All" ), this, TQT_SLOT( slotCloseAll() ) );
+ insertItem( SmallIcon( "window-close" ), i18n( "&Close All" ), this, TQT_SLOT( slotCloseAll() ) );
}
TQPopupMenu* TaskRMBMenu::makeAdvancedMenu(Task::Ptr t)
diff --git a/konsole/README.konsole_kiosk b/konsole/README.konsole_kiosk
index f769d5baf..c2d6525e9 100644
--- a/konsole/README.konsole_kiosk
+++ b/konsole/README.konsole_kiosk
@@ -50,7 +50,7 @@ action/scrollbar
action/keyboard
-So if you don't want the user to toggle his scrollbar settings, you would add:
+So if you don't want the user to toggle their scrollbar settings, you would add:
[KDE Action Restrictions]
action/scrollbar=false
diff --git a/konsole/konsole/TEScreen.cpp b/konsole/konsole/TEScreen.cpp
index 9bd62ff4d..8f2473e31 100644
--- a/konsole/konsole/TEScreen.cpp
+++ b/konsole/konsole/TEScreen.cpp
@@ -81,7 +81,8 @@ TEScreen::TEScreen(int l, int c)
ef_fg(cacol()), ef_bg(cacol()), ef_re(0),
sa_cuX(0), sa_cuY(0),
sa_cu_re(0), sa_cu_fg(cacol()), sa_cu_bg(cacol()),
- lastPos(-1)
+ lastPos(-1),
+ lastDrawnChar(0)
{
/*
this->lines = lines;
@@ -175,7 +176,7 @@ void TEScreen::cursorLeft(int n)
}
/*!
- Move the cursor left.
+ Move the cursor right.
The cursor will not move beyond the rightmost column.
*/
@@ -188,6 +189,50 @@ void TEScreen::cursorRight(int n)
}
/*!
+ Move the cursor at most n lines next
+*/
+
+void TEScreen::cursorNextLine(int n)
+//=CNL
+{
+ if (n == 0)
+ {
+ n = 1; // Default
+ }
+ cuX = 0;
+ while (n > 0)
+ {
+ if (cuY < lines - 1)
+ {
+ cuY += 1;
+ }
+ n--;
+ }
+}
+
+/*!
+ Move the cursor at most n lines previous
+*/
+
+void TEScreen::cursorPrevLine(int n)
+//=CPL
+{
+ if (n == 0)
+ {
+ n = 1; // Default
+ }
+ cuX = 0;
+ while (n > 0)
+ {
+ if (cuY > 0)
+ {
+ cuY -= 1;
+ }
+ n--;
+ }
+}
+
+/*!
Set top and bottom margin.
*/
@@ -300,6 +345,26 @@ void TEScreen::insertChars(int n)
clearImage(loc(cuX,cuY),loc(q-1,cuY),' ');
}
+void TEScreen::repeatChars(int n)
+{
+ if (n == 0)
+ {
+ n = 1; // Default
+ }
+
+ // From ECMA-48 version 5, section 8.3.103:
+ // "If the character preceding REP is a control function or part of a
+ // control function, the effect of REP is not defined by this Standard."
+ //
+ // So, a "normal" program should always use REP immediately after a visible
+ // character (those other than escape sequences). So, lastDrawnChar can be
+ // safely used.
+ for (int i = 0; i < n; i++)
+ {
+ ShowCharacter(lastDrawnChar);
+ }
+}
+
/*! delete `n' lines starting from (including) the cursor position.
The cursor is not moved by the operation.
@@ -762,6 +827,8 @@ void TEScreen::ShowCharacter(unsigned short c)
lastPos = i;
+ lastDrawnChar = c;
+
cuX += w--;
while(w)
@@ -802,10 +869,22 @@ void TEScreen::scrollUp(int n)
void TEScreen::scrollUp(int from, int n)
{
- if (n <= 0 || from + n > bmargin) return;
- //FIXME: make sure `tmargin', `bmargin', `from', `n' is in bounds.
- moveImage(loc(0,from),loc(0,from+n),loc(columns-1,bmargin));
- clearImage(loc(0,bmargin-n+1),loc(columns-1,bmargin),' ');
+ if (n <= 0)
+ {
+ return;
+ }
+ if (from > bmargin)
+ {
+ return;
+ }
+ if ((from + n) > bmargin)
+ {
+ n = bmargin + 1 - from;
+ }
+
+ //FIXME: make sure `tmargin', `bmargin', `from', `n' is in bounds.
+ moveImage(loc(0, from), loc(0, from+n), loc(columns, bmargin));
+ clearImage(loc(0, bmargin-n+1), loc(columns-1, bmargin), ' ');
}
void TEScreen::scrollDown(int n)
@@ -1013,12 +1092,6 @@ void TEScreen::clearToBeginOfScreen()
void TEScreen::clearEntireScreen()
{
- // Add entire screen to history
- for (int i = 0; i < (lines-1); i++)
- {
- addHistLine(); scrollUp(0,1);
- }
-
clearImage(loc(0,0),loc(columns-1,lines-1),' ');
}
diff --git a/konsole/konsole/TEScreen.h b/konsole/konsole/TEScreen.h
index 9797b53ab..a28aab949 100644
--- a/konsole/konsole/TEScreen.h
+++ b/konsole/konsole/TEScreen.h
@@ -52,14 +52,16 @@ public: // these are all `Screen' operations
//
// Cursor Movement
//
- void cursorUp (int n);
- void cursorDown (int n);
- void cursorLeft (int n);
- void cursorRight (int n);
- void setCursorY (int y);
- void setCursorX (int x);
- void setCursorYX (int y, int x);
- void setMargins (int t, int b);
+ void cursorUp (int n);
+ void cursorDown (int n);
+ void cursorLeft (int n);
+ void cursorRight (int n);
+ void cursorNextLine(int n);
+ void cursorPrevLine(int n);
+ void setCursorY (int y);
+ void setCursorX (int x);
+ void setCursorYX (int y, int x);
+ void setMargins (int t, int b);
//
// Cursor Movement with Scrolling
//
@@ -83,6 +85,7 @@ public: // these are all `Screen' operations
void eraseChars (int n);
void deleteChars (int n);
void insertChars (int n);
+ void repeatChars (int n);
void deleteLines (int n);
void insertLines (int n);
//
@@ -271,6 +274,9 @@ private: // helper
// last position where we added a character
int lastPos;
+ // used in REP (repeating char)
+ unsigned short lastDrawnChar;
+
// modes
ScreenParm saveParm;
diff --git a/konsole/konsole/TEWidget.cpp b/konsole/konsole/TEWidget.cpp
index f151044fc..4ceaeb83d 100644
--- a/konsole/konsole/TEWidget.cpp
+++ b/konsole/konsole/TEWidget.cpp
@@ -308,6 +308,19 @@ void TEWidget::fontChange(const TQFont &)
update();
}
+void TEWidget::biggerFont(void) {
+ TQFont f = getVTFont();
+ f.setPointSize( f.pointSize() + 1 );
+ setVTFont( f );
+}
+
+void TEWidget::smallerFont(void) {
+ TQFont f = getVTFont();
+ if ( f.pointSize() < 6 ) return; // A minimum size
+ f.setPointSize( f.pointSize() - 1 );
+ setVTFont( f );
+}
+
void TEWidget::setVTFont(const TQFont& f)
{
TQFont font = f;
@@ -1693,6 +1706,17 @@ void TEWidget::wheelEvent( TQWheelEvent* ev )
if (ev->orientation() != Qt::Vertical)
return;
+ if (ev->state() & ControlButton) {
+ if (ev->delta() > 0) {
+ biggerFont();
+ }
+ else {
+ smallerFont();
+ }
+ ev->accept();
+ return;
+ }
+
if ( mouse_marks )
TQApplication::sendEvent(scrollbar, ev);
else
diff --git a/konsole/konsole/TEWidget.h b/konsole/konsole/TEWidget.h
index 2baa2531c..ba2d1f6cf 100644
--- a/konsole/konsole/TEWidget.h
+++ b/konsole/konsole/TEWidget.h
@@ -125,6 +125,10 @@ public:
*/
void setVTFont(const TQFont& font);
+ /** Changes font size by 1 point */
+ void biggerFont();
+ void smallerFont();
+
void setMouseMarks(bool on);
static void setAntialias( bool enable ) { s_antialias = enable; }
static bool antialias() { return s_antialias; }
diff --git a/konsole/konsole/TEmuVt102.cpp b/konsole/konsole/TEmuVt102.cpp
index e0efab745..fb38b6e18 100644
--- a/konsole/konsole/TEmuVt102.cpp
+++ b/konsole/konsole/TEmuVt102.cpp
@@ -172,7 +172,7 @@ void TEmuVt102::reset()
// Tokens ------------------------------------------------------------------ --
/*
- Since the tokens are the central notion if this section, we've put them
+ Since the tokens are the central notion in this section, we've put them
in front. They provide the syntactical elements used to represent the
terminals operations as byte sequences.
@@ -267,7 +267,7 @@ void TEmuVt102::initTokenizer()
for(i = 0; i < 256; i++) tbl[ i] = 0;
for(i = 0; i < 32; i++) tbl[ i] |= CTL;
for(i = 32; i < 256; i++) tbl[ i] |= CHR;
- for(s = (UINT8*)"@ABCDGHILMPSTXZcdfry"; *s; s++) tbl[*s] |= CPN;
+ for(s = (UINT8*)"@ABCDEFGHILMPSTXZbcdfry"; *s; s++) tbl[*s] |= CPN;
// resize = \e[8;<row>;<col>t
for(s = (UINT8*)"t"; *s; s++) tbl[*s] |= CPS;
for(s = (UINT8*)"0123456789" ; *s; s++) tbl[*s] |= DIG;
@@ -621,6 +621,8 @@ switch( N )
case TY_CSI_PN('B' ) : scr->cursorDown (p ); break; //VT100
case TY_CSI_PN('C' ) : scr->cursorRight (p ); break; //VT100
case TY_CSI_PN('D' ) : scr->cursorLeft (p ); break; //VT100
+ case TY_CSI_PN('E' ) : scr->cursorNextLine (p ); break; //VT100
+ case TY_CSI_PN('F' ) : scr->cursorPrevLine (p ); break; //VT100
case TY_CSI_PN('G' ) : scr->setCursorX (p ); break; //LINUX
case TY_CSI_PN('H' ) : scr->setCursorYX (p, q); break; //VT100
case TY_CSI_PN('I' ) : scr->Tabulate (p ); break;
@@ -631,6 +633,7 @@ switch( N )
case TY_CSI_PN('T' ) : scr->scrollDown (p ); break;
case TY_CSI_PN('X' ) : scr->eraseChars (p ); break;
case TY_CSI_PN('Z' ) : scr->backTabulate (p ); break;
+ case TY_CSI_PN('b' ) : scr->repeatChars (p ); break;
case TY_CSI_PN('c' ) : reportTerminalType ( ); break; //VT100
case TY_CSI_PN('d' ) : scr->setCursorY (p ); break; //LINUX
case TY_CSI_PN('f' ) : scr->setCursorYX (p, q); break; //VT100
diff --git a/konsole/konsole/konsole.cpp b/konsole/konsole/konsole.cpp
index 0101ecab3..11fae96d1 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);
@@ -3434,6 +3444,7 @@ void Konsole::addSessionCommand(const TQString &path)
// try to locate the binary
TQString exec= co->readPathEntry("Exec");
exec.remove(TQRegExp("^(sudo )?su (- )?-c ?\'"));
+ exec.remove(TQRegExp("\'?$"));
exec = KRun::binaryName(exec, false);
exec = KShell::tildeExpand(exec);
@@ -4376,20 +4387,13 @@ void Konsole::slotFontChanged()
void Konsole::biggerFont(void) {
if ( !se ) return;
-
- TQFont f = te->getVTFont();
- f.setPointSize( f.pointSize() + 1 );
- te->setVTFont( f );
+ te->biggerFont();
activateSession();
}
void Konsole::smallerFont(void) {
if ( !se ) return;
-
- TQFont f = te->getVTFont();
- if ( f.pointSize() < 6 ) return; // A minimum size
- f.setPointSize( f.pointSize() - 1 );
- te->setVTFont( f );
+ te->smallerFont();
activateSession();
}
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/konsole/konsole/konsole_part.cpp b/konsole/konsole/konsole_part.cpp
index 1c0067bb9..ce3ebab57 100644
--- a/konsole/konsole/konsole_part.cpp
+++ b/konsole/konsole/konsole_part.cpp
@@ -695,19 +695,12 @@ void konsolePart::slotSelectFont() {
void konsolePart::biggerFont(void) {
if ( !se ) return;
-
- TQFont f = te->getVTFont();
- f.setPointSize( f.pointSize() + 1 );
- te->setVTFont( f );
+ te->biggerFont();
}
void konsolePart::smallerFont(void) {
if ( !se ) return;
-
- TQFont f = te->getVTFont();
- if ( f.pointSize() < 6 ) return; // A minimum size
- f.setPointSize( f.pointSize() - 1 );
- te->setVTFont( f );
+ te->smallerFont();
}
void konsolePart::updateKeytabMenu()
diff --git a/kpersonalizer/README b/kpersonalizer/README
index b93d9d15d..14cbb63ca 100644
--- a/kpersonalizer/README
+++ b/kpersonalizer/README
@@ -39,8 +39,8 @@ that don't require much background-knowledge and tries to guess a set
of configuration-settings which fit the users needs best.
Layout: KPersonalizer consists of a window which is not set fullscreen.
-This has the advantage that the user sees on the fly which settings he has
-changed and can step back as he sees that something doesn't fit.
+This has the advantage that the user sees on the fly which settings they
+have changed and can step back as they see that something doesn't fit.
On the left of each dialog there is a decorative 170x430-pixel-bitmap which
sort of describes the step in a graphical manner.
@@ -204,7 +204,7 @@ There is a preview for each theme.
Step 5: Refinement
==============
-The user is told how he can start KPersonalizer again if the user changes his
+The user is told how they can start KPersonalizer again if they change their
mind on a certain setting later and the advanced user may launch kcontrol to
refine certain settings.
diff --git a/kpersonalizer/keyecandypage.cpp b/kpersonalizer/keyecandypage.cpp
index fb0f446d7..9c1fb7765 100644
--- a/kpersonalizer/keyecandypage.cpp
+++ b/kpersonalizer/keyecandypage.cpp
@@ -689,7 +689,7 @@ void KEyeCandyPage::getUserDefaults(){
st_UserWallpaper.CommonDesktop = kdesktopconf->readBoolEntry("CommonDesktop", true);
kdesktopconf->setGroup("Desktop0"); // we only need to set one desktop
st_UserWallpaper.MultiWallpaperMode = kdesktopconf->readEntry("MultiWallpaperMode", "NoMulti");
- st_UserWallpaper.WallpaperMode = kdesktopconf->readEntry("WallpaperMode", "Scaled");
+ st_UserWallpaper.WallpaperMode = kdesktopconf->readEntry("WallpaperMode", "ScaledAndCrop");
st_UserWallpaper.Wallpaper = kdesktopconf->readPathEntry("Wallpaper", "NoWallpaper");
deskbgimage = kdesktopconf->readPathEntry("Wallpaper", DEFAULT_WALLPAPER);
// Wallpaper-User-Defaults (END)
diff --git a/ksysguard/gui/SensorDisplayLib/MultiMeterSettingsWidget.ui b/ksysguard/gui/SensorDisplayLib/MultiMeterSettingsWidget.ui
index 4558e2374..fb265df74 100644
--- a/ksysguard/gui/SensorDisplayLib/MultiMeterSettingsWidget.ui
+++ b/ksysguard/gui/SensorDisplayLib/MultiMeterSettingsWidget.ui
@@ -440,9 +440,10 @@
</connection>
</connections>
<includes>
+ <include location="global" impldecl="in implementation">kcolorbutton.h</include>
<include location="global" impldecl="in implementation">kdialog.h</include>
<include location="global" impldecl="in implementation">knumvalidator.h</include>
- <include location="local" impldecl="in implementation">MultiMeterSettingsWidget.ui.h</include>
+ <include location="local" impldecl="in implementation">MultiMeterSettingsWidget.ui.h</include>
</includes>
<Q_SLOTS>
<slot>setMeterBackgroundColor( const TQColor &amp; c )</slot>
@@ -469,7 +470,4 @@
</functions>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
-<includehints>
- <includehint>kcolorbutton.h</includehint>
-</includehints>
</UI>
diff --git a/ktip/tips b/ktip/tips
index 6bf46a166..292441f76 100644
--- a/ktip/tips
+++ b/ktip/tips
@@ -291,8 +291,8 @@ as many items of different types as you want, all at once.
print subsystem "on the fly" (and you do not need to be root to do it.)
</p>
<p>Laptop users who frequently change to different environments may find
-<A HREF="ftp://truffula.com/pub/">RLPR</A> a useful complement to CUPS
-(or any other print subsystem they use as their preferred one).
+RLPR a useful complement to CUPS (or any other print subsystem they use
+as their preferred one).
</p>
<p align="right"><em>Contributed by Kurt Pfeifle</em></p>
</html>
@@ -704,7 +704,7 @@ href="help:/konqueror/enhanced-browsing.html">the Konqueror Handbook</a>.</p>
<tip category="Win2Unix">
<html>
<p>
-Each UNIX user has a so-called Home folder in which his or her
+Each UNIX user has a so-called Home folder in which their
files as well as user-dependent configuration files are saved. If you
work in a Konsole window, you can easily change to your home folder
by entering the <b>cd</b> command without any parameters.
@@ -1006,6 +1006,8 @@ or in Konqueror file manager to change icon size.</li>
<li>Shift+Mouse-Wheel for fast scrolling in all TDE applications.</li>
+<li>Mouse-Wheel on the speaker icon on the TDE system tray for quick adjustment of sound volume.</li>
+
<li>Mouse-Wheel over the taskbar in Kicker to quickly alternate between
different windows.</li>
@@ -1117,11 +1119,13 @@ Open the Control Center, select Peripherals->Keyboard and make your
<p>Do you already know the <i>TDE IRC channel</i>?</p>
<p>
-<b>network:</b> chat.freenode.net
+<b>network:</b> irc.libera.chat
<br />
<b>channel:</b> #trinity-desktop
<p>
+<p>Important to note that we have moved from Freenode to Libera Chat as of <b>May 9th, 2021</b>, so be sure to update any outdated links.</p>
+
<p>You can join if you have some questions or want to meet some other people from the TDE community.</p>
<p>There is a small but friendly group of people always there. Sometimes you can also meet the developers there and give them your feedback or ask other users for help. It is also the place where you can ask about ways to start contributing to TDE.</p>
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/libkonq/PLUGINS b/libkonq/PLUGINS.md
index 4eb535a59..f89ca70ef 100644
--- a/libkonq/PLUGINS
+++ b/libkonq/PLUGINS.md
@@ -1,13 +1,20 @@
+Menu Plugins
+============
+
Thus file explains how to add plugins into the konqpopupmenu
used by konqueror and kdesktop.
-Why?
+Why
+---
+
Why do we need this kind of functionality? We do have SERVICEMENUS.
A plugin can be much more dynamic. If you want to add features that
are runtime specific or need some interaction with different things
-a plugin comes in handy
+a plugin comes in handy.
+
+How
+---
-How?
-Please look at ?no_location? to get the latest plugin template
+Please look at *no_location* to get the latest plugin template.
-Holger Freyther 30th October 2001 \ No newline at end of file
+Holger Freyther 30th October 2001
diff --git a/libkonq/SERVICEMENUS b/libkonq/SERVICEMENUS
deleted file mode 100644
index 12035388c..000000000
--- a/libkonq/SERVICEMENUS
+++ /dev/null
@@ -1,52 +0,0 @@
-This file explains how to add an item in the popupmenu (for both
-konqueror and kdesktop), without using the file associations.
-
-Why
-===
-One reason for doing this is being able to associate
-some action with all files without this action becoming a default handler
-(called on left click).
-Another is that for text-based programs and tools (e.g. gzip) it's faster
-than defining a desktop file for the application, making it hidden, and
-associate it with the relevant file types.
-
-How
-===
-Create a file ~/.trinity/share/apps/konqueror/servicemenus/something.desktop
-and write into it something like (without the comments) :
-
-[Desktop Entry]
-ServiceTypes=text/html,text/plain # use all/all for all entries
- # all/allfiles for files only
- # and use inode/directory for dirs only
- # you can also do things like image/* for all
- # image mimetypes
-Actions=gzip;mail # those are ';' separated, per the standard !
-X-TDE-Submenu=Menuname # this optional entry allows grouping the
- # entries in this servicemenu file into a
- # common submenu, in this case "Menuname"
-TryExec=gzip # Find if executable exist, if it doesn't exist
- # menu entry is not displaying
-ExcludeServiceTypes=application/x-zip # This entry is used to avoid to display menu
- # when it's a specific servicetype
- # for exemple when we use all/allfiles and zip
- # them, we don't want to zip a zip file
-
-
-[Desktop Action gzip] # One "Desktop Action <name>" group per Action
-Name=GZip this file
-Name[fr]=...
-Icon=tgz
-Exec=gzip %f
-
-[Desktop Action mail]
-Name=Mail this file
-Name[fr]=...
-Icon=kmail
-Exec=kmail --there-is-no-such-option-yet %f
-
-
-See also the "desktop entry standard", which defines more formally the same
-concept of actions but for desktop files (e.g. eject on a device desktop file,
-etc.)
-
diff --git a/libkonq/SERVICEMENUS.md b/libkonq/SERVICEMENUS.md
new file mode 100644
index 000000000..bcd7ae1f7
--- /dev/null
+++ b/libkonq/SERVICEMENUS.md
@@ -0,0 +1,55 @@
+Service Menus
+=============
+
+This file explains how to add an item in the popupmenu (for both
+konqueror and kdesktop), without using the file associations.
+
+Why
+---
+
+One reason for doing this is being able to associate
+some action with all files without this action becoming a default handler
+(called on left click).
+
+Another is that for text-based programs and tools (e.g. gzip) it's faster
+than defining a desktop file for the application, making it hidden, and
+associate it with the relevant file types.
+
+How
+---
+
+Create a file `~/.trinity/share/apps/konqueror/servicemenus/something.desktop`
+and write into it something like (without the comments):
+
+ [Desktop Entry]
+ ServiceTypes=text/html,text/plain # use all/all for all entries
+ # all/allfiles for files only
+ # and use inode/directory for dirs only
+ # you can also do things like image/* for all
+ # image mimetypes
+ Actions=gzip;mail # those are ';' separated, per the standard !
+ X-TDE-Submenu=Menuname # this optional entry allows grouping the
+ # entries in this servicemenu file into a
+ # common submenu, in this case "Menuname"
+ TryExec=gzip # Find if executable exist, if it doesn't exist
+ # menu entry is not displaying
+ ExcludeServiceTypes=application/x-zip # This entry is used to avoid to display menu
+ # when it's a specific servicetype
+ # for exemple when we use all/allfiles and zip
+ # them, we don't want to zip a zip file
+
+ [Desktop Action gzip] # One "Desktop Action <name>" group per Action
+ Name=GZip this file
+ Name[fr]=...
+ Icon=tgz
+ Exec=gzip %f
+
+ [Desktop Action mail]
+ Name=Mail this file
+ Name[fr]=...
+ Icon=kmail
+ Exec=kmail --there-is-no-such-option-yet %f
+
+See also the *desktop entry standard*, which defines more formally the same
+concept of actions but for desktop files (e.g. eject on a device desktop file,
+etc.).
diff --git a/starttde b/starttde
index 899bdfa9c..66360e228 100755
--- a/starttde
+++ b/starttde
@@ -364,6 +364,12 @@ if [ -d "$tdehome" ]; then
fi
fi
+# Get current font DPI configuration
+CUR_ForceFontDPI="`$TDEDIR/bin/kreadconfig --file kcmfonts --group General --key forceFontDPI --default 0`"
+CUR_ForceFontDPIEnable=false
+[ $CUR_ForceFontDPI -gt 0 ] && CUR_ForceFontDPIEnable=true
+unset CUR_ForceFontDPI
+
# Please see tdestartupconfig source for usage.
mkdir -m 700 -p "$tdehome/share"
mkdir -m 700 -p "$tdehome/share/config"
@@ -377,9 +383,11 @@ kcmrandrrc [Screen0]
kcmrandrrc [Screen1]
kcmrandrrc [Screen2]
kcmrandrrc [Screen3]
+kcmfonts General forceFontDPIEnable ${CUR_ForceFontDPIEnable}
kcmfonts General forceFontDPI 0
EOF
$TDEDIR/bin/tdestartupconfig
+unset CUR_ForceFontDPIEnable
if test $? -ne 0; then
xmessage -center -geometry 500x100 "Could not start tdestartupconfig. Check your installation."
fi
@@ -474,14 +482,12 @@ if test -z "$dl" && test "$kpersonalizerrc_general_firstlogin" != "true"; then
esac
fi
-if test "$kcmfonts_general_forcefontdpi" -eq 120; then
- xrdb -quiet -merge -nocpp <<EOF
-Xft.dpi: 120
-EOF
-elif test "$kcmfonts_general_forcefontdpi" -eq 96; then
- xrdb -quiet -merge -nocpp <<EOF
-Xft.dpi: 96
-EOF
+if test "$kcmfonts_general_forcefontdpienable" = "true"; then
+ echo "[starttde] Setting font DPI to $kcmfonts_general_forcefontdpi" 1>&2
+ tmpfile=$(mktemp /tmp/xft_dpi_settings.XXXXXX)
+ echo "Xft.dpi: $kcmfonts_general_forcefontdpi" > $tmpfile
+ xrdb -quiet -merge -nocpp $tmpfile
+ rm $tmpfile
fi
# Configuration of the gtk_qt_engine if not already set.
@@ -833,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/tdeinit/phase1.cpp b/tdeinit/phase1.cpp
index 054df8838..0a421d8af 100644
--- a/tdeinit/phase1.cpp
+++ b/tdeinit/phase1.cpp
@@ -61,8 +61,8 @@ int main(int argc, char **argv)
TQString wmToLaunch = config.readEntry("WMExecutable", "");
TQString wmArguments = config.readEntry("WMAdditionalArguments", "");
- // Check for TWIN override environment variable
- const char * twin_env = getenv("TWIN");
+ // Check for TDEWM override environment variable
+ const char * twin_env = getenv("TDEWM");
if (twin_env) {
wmToLaunch = twin_env;
}
diff --git a/tdeioslave/fish/fish.cpp b/tdeioslave/fish/fish.cpp
index 98c11a712..e7a195c44 100644
--- a/tdeioslave/fish/fish.cpp
+++ b/tdeioslave/fish/fish.cpp
@@ -570,7 +570,9 @@ int fishProtocol::establishConnection(char *buffer, TDEIO::fileoffset_t len) {
infoMessage(i18n("Initiating protocol..."));
if (!connectionAuth.password.isEmpty()) {
connectionAuth.password = connectionAuth.password.left(connectionAuth.password.length()-1);
- cacheAuthentication(connectionAuth);
+ if (connectionAuth.keepPassword) {
+ cacheAuthentication(connectionAuth);
+ }
}
isLoggedIn = true;
return 0;
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/sftp/AUTHORS b/tdeioslave/sftp/AUTHORS
deleted file mode 100644
index c763d00bc..000000000
--- a/tdeioslave/sftp/AUTHORS
+++ /dev/null
@@ -1,3 +0,0 @@
-Dawit Alemayehu <adawit@kde.org>
-Lucas Fisher <ljfisher@iastate.edu>
-
diff --git a/tdeioslave/sftp/CHANGELOG b/tdeioslave/sftp/CHANGELOG
deleted file mode 100644
index c34cd9dec..000000000
--- a/tdeioslave/sftp/CHANGELOG
+++ /dev/null
@@ -1,59 +0,0 @@
-- add dialog to ask for username
-- rename() causes SSH to die
-- How to handle overwrite?
-- After the user cancels with the stop button, we get ERR_CANNOT_LAUNCH_PROCESS
- errors, until we kill the ioslave. Same thing after trying the wrong passwd
- too many times.
- This is happening because TDEProcess thinks that the ssh process is still running
- even though it exited.
-- How to handle password and caching?
- - Write our own askpass program using kde
- - set env SSH_ASKPASS_PROGRAM before launching
- -how to do this? TDEProcess doesn't give us access to env variables.
- - Our askpass program can probably talk to the tdesu daemon to implement caching.
-- chmod() succeeds, but konqueror always puts permissions to 0 afterwards. The properties
- dialog is right though.
- Nevermind - ftp ioslave does this too! Maybe a bug with konqueror.
-- stat does not give us group and owner names, only numbers. We could cache the uid/name and
- gid/name so we can give names when doing a stat also.
-
-7-13-2001 - ReadLink stopped working. sftp server always retuns a file not found error
- - Need to implement 64 bit file lengths-->write DataStream << for u_int64
- Still need to offer 32 bit size since this is what kde wants. ljf
- - rename() isn't exactly causing ioslave to die. The stat of the file we are
- going to rename is killing the slave. The slave dies in the statEntry() call.
- I don't know what I am putting in the UDS entry that is causing this. ljf
-7-14-2001 - got put, mimetype working ljf
- - fixed readlink problem - I was sending the wrong path. doh! ljf
-7-17-2001 - If the user changes the host, the slave doesn't change host! setHost() is not
- called, nor is another ioslave spawned. I have not investigated the problem
- yet. ljf
-7-21-2001 - got slave working with kde 2.2 cvs
-7-22-2001 - probable solution to getting password prompt -- open with controlling
- but don't connect stdin/out to terminal. duh!
-8-9-2001 - Doh! I haven't kept very good logs. Look at the cvs logs for better info.
- - At this point tdeio_sftp is using KSshProcess which I wrote in order to make
- a standard interface to the various version of ssh out there. So far it is
- working fairly well. We also now report host key changes to the user and
- allow them to choose whether or not to continue. This is a big improvement.
- - Todo: support use of keys and ssh agent
- put()'s resume functionality needs some work
-1-26-2002 - Rewrote put() following the ftp::put() so it should behave the same way
- - increase the size of the data packet we ask for in ::get up to 60k.
- Through-put increases nicely.
- - Call closeConnection() from construction. Keeps from having unused ssh
- processes laying around after failed operations.
-2-19-2002 - get() now emits mimetype, fixes problem with konqi not downloading file for
- viewing in kpart.
- - get port number using getservbyname instead of hard coding it.
-2-27-2002 - testing before committing back to cvs, test with openssh 3, ssh 3
-6-?-2002 - rewrote openConnection() to using new KSshProcess connect proceedures
-7-20-2002 - Don't put up a message box when auth fails because of now or changed key,
- the call to error() will put up the dialog.
- - Connect fails and no more password are prompted for when we get
- ERR_AUTH_FAILED from KSshProcess.
-9-15-2002 - stuff
-9-29-2002 - the last i18n string updates, fixed problem with uploading files to
- openssh server.
-5-8-2003 - check whether operation types are supported by the negotiated sftp
- protocol version
diff --git a/tdeioslave/sftp/CMakeLists.txt b/tdeioslave/sftp/CMakeLists.txt
index 62fe0fce3..8074ea76e 100644
--- a/tdeioslave/sftp/CMakeLists.txt
+++ b/tdeioslave/sftp/CMakeLists.txt
@@ -1,13 +1,10 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
+###########################################
+# #
+# Improvements and feedback are welcome #
+# #
+# This file is released under GPL >= 2 #
+# #
+###########################################
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
@@ -21,7 +18,7 @@ link_directories(
)
-##### other data ################################
+##### other data #########################
tde_create_translated_desktop(
SOURCE sftp.protocol
@@ -30,12 +27,12 @@ tde_create_translated_desktop(
)
-##### tdeio_sftp (module) #########################
+##### tdeio_sftp (module) ################
set( target tdeio_sftp )
tde_add_kpart( ${target} AUTOMOC
- SOURCES process.cpp atomicio.cpp tdeio_sftp.cpp sftpfileattr.cpp ksshprocess.cpp
- LINK tdeio-shared tdesu-shared
+ SOURCES tdeio_sftp.cpp
+ LINK tdeio-shared ssh
DESTINATION ${PLUGIN_INSTALL_DIR}
)
diff --git a/tdeioslave/sftp/DEBUGGING b/tdeioslave/sftp/DEBUGGING
deleted file mode 100644
index 8e15c91d4..000000000
--- a/tdeioslave/sftp/DEBUGGING
+++ /dev/null
@@ -1,12 +0,0 @@
-DEBUGGING
-
-The best way to debug this slave is to send debug info to a
-file using 'tdedebugDialog --fullmode'. Then you can 'tail -f' the file to
-see debug messages in real-time.
-
-I also suggest getting the openssh source and recompiling sftp-server to
-send messages to the auth log. This can be done in sftp-server.c be defining
-DEBUG_SFTP_SERVER.
-
-You can do the same with the ssh client by finding the two calls to log_init()
-in ssh.c and changing the last argument from 1 to 0 and recompiling.
diff --git a/tdeioslave/sftp/Makefile.am b/tdeioslave/sftp/Makefile.am
deleted file mode 100644
index 2d2079e09..000000000
--- a/tdeioslave/sftp/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-## Makefile.am of tdebase/tdeioslave/sftp
-
-INCLUDES = $(all_includes)
-AM_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_TDEIO) -ltdetexteditor
-METASOURCES = AUTO
-
-####### Files
-
-check_PROGRAMS = ksshprocesstest
-
-ksshprocesstest_SOURCES = ksshprocesstest.cpp
-ksshprocesstest_LDADD = $(LIB_TDESYCOCA) ksshprocess.lo process.lo atomicio.lo
-
-kde_module_LTLIBRARIES = tdeio_sftp.la
-
-tdeio_sftp_la_SOURCES = process.cpp atomicio.cpp tdeio_sftp.cpp sftpfileattr.cpp ksshprocess.cpp
-tdeio_sftp_la_LIBADD = $(LIB_TDEIO)
-tdeio_sftp_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
-noinst_HEADERS = atomicio.h tdeio_sftp.h ksshprocess.h process.h sftpfileattr.h sftp.h
-
-kdelnk_DATA = sftp.protocol
-kdelnkdir = $(kde_servicesdir)
-
-messages:
- $(XGETTEXT) *.cpp -o $(podir)/tdeio_sftp.pot
diff --git a/tdeioslave/sftp/TODO b/tdeioslave/sftp/TODO
deleted file mode 100644
index 0f1411317..000000000
--- a/tdeioslave/sftp/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
-TODO:
-=====
-
-- Support for use of public keys, maybe ssh-agent, a key management app, etc.
-
diff --git a/tdeioslave/sftp/atomicio.cpp b/tdeioslave/sftp/atomicio.cpp
deleted file mode 100644
index 057f20fe9..000000000
--- a/tdeioslave/sftp/atomicio.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1995,1999 Theo de Raadt. All rights reserved.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-//#include "includes.h"
-//RCSID("$OpenBSD: atomicio.c,v 1.9 2001/03/02 18:54:30 deraadt Exp $");
-
-//#include "xmalloc.h"
-#include "atomicio.h"
-#include <unistd.h>
-#include <errno.h>
-#include <kdebug.h>
-
-/*
- * ensure all of data on socket comes through. f==read || f==write
- */
-
-ssize_t atomicio(int fd, char *_s, size_t n, bool read)
-{
- char *s = _s;
- ssize_t res;
- ssize_t pos = 0;
-
- while (n > pos) {
- if( read)
- res = ::read(fd, s + pos, n - pos);
- else
- res = ::write(fd, s + pos, n - pos);
-
- switch (res) {
- case -1:
- kdDebug() << "atomicio(): errno=" << errno << endl;
-#ifdef EWOULDBLOCK
- if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)
-#else
- if (errno == EINTR || errno == EAGAIN)
-#endif
- continue;
- case 0:
- return (res);
- default:
- pos += res;
- }
- }
- return (pos);
-}
diff --git a/tdeioslave/sftp/atomicio.h b/tdeioslave/sftp/atomicio.h
deleted file mode 100644
index 4468757d5..000000000
--- a/tdeioslave/sftp/atomicio.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef atomicio_h
-#define atomicio_h
-
-/* $OpenBSD: atomicio.h,v 1.3 2001/03/02 18:54:30 deraadt Exp $ */
-
-/*
- * Copyright (c) 1995,1999 Theo de Raadt. All rights reserved.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <unistd.h>
-
-/*
- * Ensure all of data on socket comes through. f==read || f==write
- */
-ssize_t atomicio(int fd, char *_s, size_t n, bool read = true);
-
-#endif
diff --git a/tdeioslave/sftp/ksshprocess.cpp b/tdeioslave/sftp/ksshprocess.cpp
deleted file mode 100644
index 0f19126d2..000000000
--- a/tdeioslave/sftp/ksshprocess.cpp
+++ /dev/null
@@ -1,1114 +0,0 @@
-/***************************************************************************
- ksshprocess.cpp - description
- -------------------
- begin : Tue Jul 31 2001
- copyright : (C) 2001 by Lucas Fisher
- email : ljfisher@purdue.edu
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-/*
- * See the KSshProcess header for examples on use.
- *
- * This class uses a hacked version of the PTYProcess
- * class. This was needed because the tdelibs PTYProcess does not provide
- * access to the pty file descriptor which we need, because ssh prints the
- * password prompt to the pty and reads the password from the pty. I don't
- * feel I know enough about ptys to confidently modify the orignial
- * PTYProcess class.
- *
- * To start ssh we take the arguments the user gave us
- * in the SshOptList and build the ssh command arguments based on the version
- * of ssh we are using. This command and its arguments are passed to
- * PTYProcess for execution. Once ssh is started we scan each line of input
- * from stdin, stderr, and the pty for recognizable strings. The recognizable
- * strings are taken from several string tables. Each table contains a string
- * for each specific version of ssh we support and a string for a generic
- * version of OpenSSH and commercial SSH incase we don't recognized the
- * specific ssh version strings (as when a new SSH version is released after
- * a release of KSshProcess). There are tables for ssh version strings,
- * password prompts, new host key errors, different host key errors,
- * messages than indicate a successful connect, authentication errors, etc.
- * If we find user interaction is necessary, for instance to provide a
- * password or passphrase, we return a err code to the user who can send
- * a message to KSshProcess, using one of several methods, to correct
- * the error.
- *
- * Determining when the ssh connection has successfully authenticationed has
- * proved to be the most difficult challenge. OpenSSH does not print a message
- * on successful authentication, thus the only way to know is to send data
- * and wait for a return. The problem here is sometimes it can take a bit
- * to establish the connection (for example, do to DNS lookups). This means
- * the user may be sitting there waiting for a connection that failed.
- * Instead, ssh is always started with the verbose flag. Then we look for
- * a message that indicates auth succeeded. This is hazardous because
- * debug messages are more likely to change between OpenSSH releases.
- * Thus, we could become incompatible with new OpenSSH releases.
- */
-
-#include <config.h>
-
-#include "ksshprocess.h"
-
-#include <stdio.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#include <kstandarddirs.h>
-#include <tdelocale.h>
-#include <tqregexp.h>
-
-/*
- * The following are tables of string and regexps we match
- * against the output of ssh. An entry in each array
- * corresponds the the version of ssh found in versionStrs[].
- *
- * The version strings must be ordered in the array from most
- * specific to least specific in cases where the beginning
- * of several version strings are the similar. For example,
- * consider the openssh version strings. The generic "OpenSSH"
- * must be the last of the openssh version strings in the array
- * so that is matched last. We use these generic version strings
- * so we can do a best effor to support unknown ssh versions.
- */
-TQRegExp KSshProcess::versionStrs[] = {
- TQRegExp("OpenSSH_3\\.[6-9]|OpenSSH_[1-9]*[4-9]\\.[0-9]"),
- TQRegExp("OpenSSH"),
- TQRegExp("SSH Secure Shell")
-};
-
-const char * const KSshProcess::passwordPrompt[] = {
- "password:", // OpenSSH
- "password:", // OpenSSH
- "password:" // SSH
-};
-
-const char * const KSshProcess::passphrasePrompt[] = {
- "Enter passphrase for key",
- "Enter passphrase for key",
- "Passphrase for key"
-};
-
-const char * const KSshProcess::authSuccessMsg[] = {
- "Authentication succeeded",
- "ssh-userauth2 successful",
- "Received SSH_CROSS_AUTHENTICATED packet"
-};
-
-const char* const KSshProcess::authFailedMsg[] = {
- "Permission denied (",
- "Permission denied (",
- "Authentication failed."
-};
-
-const char* const KSshProcess::tryAgainMsg[] = {
- "please try again",
- "please try again",
- "adjfhjsdhfdsjfsjdfhuefeufeuefe"
-};
-
-TQRegExp KSshProcess::hostKeyMissingMsg[] = {
- TQRegExp("The authenticity of host|No (DSA|RSA) host key is known for"),
- TQRegExp("The authenticity of host|No (DSA|RSA) host key is known for"),
- TQRegExp("Host key not found from database")
-};
-
-const char* const KSshProcess::continuePrompt[] = {
- "Are you sure you want to continue connecting (yes/no)?",
- "Are you sure you want to continue connecting (yes/no)?",
- "Are you sure you want to continue connecting (yes/no)?"
-};
-
-const char* const KSshProcess::hostKeyChangedMsg[] = {
- "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!",
- "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!",
- "WARNING: HOST IDENTIFICATION HAS CHANGED!"
-};
-
-TQRegExp KSshProcess::keyFingerprintMsg[] = {
- TQRegExp("..(:..){15}"),
- TQRegExp("..(:..){15}"),
- TQRegExp(".....(-.....){10}")
-};
-
-TQRegExp KSshProcess::knownHostsFileMsg[] = {
- TQRegExp("Add correct host key in (.*) to get rid of this message."),
- TQRegExp("Add correct host key in (.*) to get rid of this message."),
- TQRegExp("Add correct host key to \"(.*)\"")
-};
-
-
-// This prompt only applies to commerical ssh.
-const char* const KSshProcess::changeHostKeyOnDiskPrompt[] = {
- "as;jf;sajkfdslkfjas;dfjdsa;fj;dsajfdsajf",
- "as;jf;sajkfdslkfjas;dfjdsa;fj;dsajfdsajf",
- "Do you want to change the host key on disk (yes/no)?"
-};
-
-// We need this in addition the authFailedMsg because when
-// OpenSSH gets a changed host key it will fail to connect
-// depending on the StrictHostKeyChecking option. Depending
-// how this option is set, it will print "Permission denied"
-// and quit, or print "Host key verification failed." and
-// quit. The later if StrictHostKeyChecking is "no".
-// The former if StrictHostKeyChecking is
-// "yes" or explicitly set to "ask".
-TQRegExp KSshProcess::hostKeyVerifyFailedMsg[] = {
- TQRegExp("Host key verification failed\\."),
- TQRegExp("Host key verification failed\\."),
- TQRegExp("Disconnected; key exchange or algorithm? negotiation failed \\(Key exchange failed\\.\\)\\.")
-};
-
-const char * const KSshProcess::connectionClosedMsg[] = {
- "Connection closed by remote host",
- "Connection closed by remote host",
- "Connection closed by remote host"
-};
-
-
-void KSshProcess::SIGCHLD_handler(int) {
- while(waitpid(-1, NULL, WNOHANG) > 0);
-}
-
-void KSshProcess::installSignalHandlers() {
- struct sigaction act;
- memset(&act,0,sizeof(act));
- act.sa_handler = SIGCHLD_handler;
- act.sa_flags = 0
-#ifdef SA_NOCLDSTOP
- | SA_NOCLDSTOP
-#endif
-#ifdef SA_RESTART
- | SA_RESTART
-#endif
- ;
- sigaction(SIGCHLD,&act,NULL);
-}
-
-void KSshProcess::removeSignalHandlers() {
- struct sigaction act;
- memset(&act,0,sizeof(act));
- act.sa_handler = SIG_DFL;
- sigaction(SIGCHLD,&act,NULL);
-}
-
-KSshProcess::KSshProcess()
- : mVersion(UNKNOWN_VER), mConnected(false),
- mRunning(false), mConnectState(0) {
- mSshPath = TDEStandardDirs::findExe(TQString::fromLatin1("ssh"));
- kdDebug(KSSHPROC) << "KSshProcess::KSshProcess(): ssh path [" <<
- mSshPath << "]" << endl;
-
- installSignalHandlers();
-}
-
-KSshProcess::KSshProcess(TQString pathToSsh)
- : mSshPath(pathToSsh), mVersion(UNKNOWN_VER), mConnected(false),
- mRunning(false), mConnectState(0) {
- installSignalHandlers();
-}
-
-KSshProcess::~KSshProcess(){
- disconnect();
- removeSignalHandlers();
- while(waitpid(-1, NULL, WNOHANG) > 0);
-}
-
-bool KSshProcess::setSshPath(TQString pathToSsh) {
- mSshPath = pathToSsh;
- version();
- if( mVersion == UNKNOWN_VER )
- return false;
-
- return true;
-}
-
-KSshProcess::SshVersion KSshProcess::version() {
- TQString cmd;
- cmd = mSshPath+" -V 2>&1";
-
- // Get version string from ssh client.
- FILE *p;
- if( (p = popen(cmd.latin1(), "r")) == NULL ) {
- kdDebug(KSSHPROC) << "KSshProcess::version(): "
- "failed to start ssh: " << strerror(errno) << endl;
- return UNKNOWN_VER;
- }
-
- // Determine of the version from the version string.
- size_t len;
- char buf[128];
- if( (len = fread(buf, sizeof(char), sizeof(buf)-1, p)) == 0 ) {
- kdDebug(KSSHPROC) << "KSshProcess::version(): "
- "Read of ssh version string failed " <<
- strerror(ferror(p)) << endl;
- return UNKNOWN_VER;
- }
- if( pclose(p) == -1 ) {
- kdError(KSSHPROC) << "KSshProcess::version(): pclose failed." << endl;
- }
- buf[len] = '\0';
- TQString ver;
- ver = buf;
- kdDebug(KSSHPROC) << "KSshProcess::version(): "
- "got version string [" << ver << "]" << endl;
-
- mVersion = UNKNOWN_VER;
- for(int i = 0; i < SSH_VER_MAX; i++) {
- if( ver.find(versionStrs[i]) != -1 ) {
- mVersion = (SshVersion)i;
- break;
- }
- }
-
- kdDebug(KSSHPROC) << "KSshPRocess::version(): version number = "
- << mVersion << endl;
-
- if( mVersion == UNKNOWN_VER ) {
- kdDebug(KSSHPROC) << "KSshProcess::version(): "
- "Sorry, I don't know about this version of ssh" << endl;
- mError = ERR_UNKNOWN_VERSION;
- return UNKNOWN_VER;
- }
-
- return mVersion;
-}
-/*
-TQString KSshProcess::versionStr() {
- if( mVersion == UNKNOWN_VER ) {
- version();
- if( mVersion == UNKNOWN_VER )
- return TQString::null;
- }
-
- return TQString::fromLatin1(versionStrs[mVersion]);
-}
-*/
-
-bool KSshProcess::setOptions(const SshOptList& opts) {
- kdDebug(KSSHPROC) << "KSshProcess::setOptions()" << endl;
- mArgs.clear();
- SshOptListConstIterator it;
- TQString cmd, subsystem;
- mPassword = mUsername = mHost = TQString::null;
- TQCString tmp;
- for(it = opts.begin(); it != opts.end(); ++it) {
- //kdDebug(KSSHPROC) << "opt.opt = " << (*it).opt << endl;
- //kdDebug(KSSHPROC) << "opt.str = " << (*it).str << endl;
- //kdDebug(KSSHPROC) << "opt.num = " << (*it).num << endl;
- switch( (*it).opt ) {
- case SSH_VERBOSE:
- mArgs.append("-v");
- break;
-
- case SSH_SUBSYSTEM:
- subsystem = (*it).str;
- break;
-
- case SSH_PORT:
- mArgs.append("-p");
- tmp.setNum((*it).num);
- mArgs.append(tmp);
- mPort = (*it).num;
- break;
-
- case SSH_HOST:
- mHost = (*it).str;
- break;
-
- case SSH_USERNAME:
- mArgs.append("-l");
- mArgs.append((*it).str.latin1());
- mUsername = (*it).str;
- break;
-
- case SSH_PASSWD:
- mPassword = (*it).str;
- break;
-
- case SSH_PROTOCOL:
- if( mVersion <= OPENSSH ) {
- tmp = "Protocol=";
- tmp += TQString::number((*it).num).latin1();
- mArgs.append("-o");
- mArgs.append(tmp);
- }
- else if( mVersion <= SSH ) {
- if( (*it).num == 1 ) {
- mArgs.append("-1");
- }
- // else uses version 2 by default
- }
- break;
-
- case SSH_FORWARDX11:
- tmp = "ForwardX11=";
- tmp += (*it).boolean ? "yes" : "no";
- mArgs.append("-o");
- mArgs.append(tmp);
- break;
-
- case SSH_FORWARDAGENT:
- tmp = "ForwardAgent=";
- tmp += (*it).boolean ? "yes" : "no";
- mArgs.append("-o");
- mArgs.append(tmp);
- break;
-
- case SSH_ESCAPE_CHAR:
- if( (*it).num == -1 )
- tmp = "none";
- else
- tmp = (char)((*it).num);
- mArgs.append("-e");
- mArgs.append(tmp);
- break;
-
- case SSH_OPTION:
- // don't allow NumberOfPasswordPrompts or StrictHostKeyChecking
- // since KSshProcess depends on specific setting of these for
- // preforming authentication correctly.
- tmp = (*it).str.latin1();
- if( tmp.contains("NumberOfPasswordPrompts") ||
- tmp.contains("StrictHostKeyChecking") ) {
- mError = ERR_INVALID_OPT;
- return false;
- }
- else {
- mArgs.append("-o");
- mArgs.append(tmp);
- }
- break;
-
- case SSH_COMMAND:
- cmd = (*it).str;
- break;
-
- default:
- kdDebug(KSSHPROC) << "KSshProcess::setOptions(): "
- "unrecognized ssh opt " << (*it).opt << endl;
- }
- }
-
- if( !subsystem.isEmpty() && !cmd.isEmpty() ) {
- kdDebug(KSSHPROC) << "KSshProcess::setOptions(): "
- "cannot use a subsystem and command at the same time" << endl;
- mError = ERR_CMD_SUBSYS_CONFLICT;
- mErrorMsg = i18n("Cannot specify a subsystem and command at the same time.");
- return false;
- }
-
- // These options govern the behavior of ssh and
- // cannot be defined by the user
- //mArgs.append("-o");
- //mArgs.append("StrictHostKeyChecking=ask");
- mArgs.append("-v"); // So we get a message that the
- // connection was successful
- if( mVersion <= OPENSSH ) {
- // nothing
- }
- else if( mVersion <= SSH ) {
- mArgs.append("-o"); // So we can check if the connection was successful
- mArgs.append("AuthenticationSuccessMsg=yes");
- }
-
- if( mHost.isEmpty() ) {
- kdDebug(KSSHPROC) << "KSshProcess::setOptions(): "
- "a host name must be supplied" << endl;
- return false;
- }
- else {
- mArgs.append(mHost.latin1());
- }
-
- if( !subsystem.isEmpty() ) {
- mArgs.append("-s");
- mArgs.append(subsystem.latin1());
- }
-
- if( !cmd.isEmpty() ) {
- mArgs.append(cmd.latin1());
- }
-
- return true;
-}
-
-void KSshProcess::printArgs() {
- TQValueListIterator<TQCString> it;
- for( it = mArgs.begin(); it != mArgs.end(); ++it) {
- kdDebug(KSSHPROC) << "arg: " << *it << endl;
- }
-}
-
-
-int KSshProcess::error(TQString& msg) {
- kdDebug(KSSHPROC) << "KSshProcess::error()" << endl;
- kdDebug() << mErrorMsg << endl;
- msg = mErrorMsg;
- return mError;
-}
-
-void KSshProcess::kill(int signal) {
- int pid = ssh.pid();
-
- kdDebug(KSSHPROC) << "KSshProcess::kill(signal:" << signal
- << "): ssh pid is " << pid << endl;
- kdDebug(KSSHPROC) << "KSshPRocess::kill(): we are "
- << (mConnected ? "" : "not ") << "connected" << endl;
- kdDebug(KSSHPROC) << "KSshProcess::kill(): we are "
- << (mRunning ? "" : "not ") << "running a ssh process" << endl;
-
- if( mRunning && pid > 1 ) {
- // Kill the child process...
- if ( ::kill(pid, signal) == 0 ) {
- // clean up if we tried to kill the process
- if( signal == SIGTERM || signal == SIGKILL ) {
- while(waitpid(-1, NULL, WNOHANG) > 0);
- mConnected = false;
- mRunning = false;
- }
- }
- else
- kdDebug(KSSHPROC) << "KSshProcess::kill(): kill failed" << endl;
- }
- else
- kdDebug(KSSHPROC) << "KSshProcess::kill(): "
- "Refusing to kill ssh process" << endl;
-}
-
-
-
-/**
- * Try to open an ssh connection.
- * SSH prints certain messages to certain file descriptiors:
- * passwordPrompt - pty
- * passphrasePrompt - pty
- * authSuccessMsg - stderr (OpenSSH),
- * authFailedMsg - stderr
- * hostKeyMissing - stderr
- * hostKeyChanged - stderr
- * continuePrompt - stderr
- *
- * We will use a select to wait for a line on each descriptor. Then get
- * each line that available and take action based on it. The type
- * of messages we are looking for and the action we take on each
- * message are:
- * passwordPrompt - Return false, set error to ERR_NEED_PASSWD.
- * On the next call to connect() we expect a password
- * to be available.
- *
- * passpharsePrompt - Return false, set error to ERR_NEED_PASSPHRASE.
- * On the next call to connect() we expect a
- * passphrase to be available.
- *
- * authSuccessMsg - Return true, as we have successfully established a
- * ssh connection.
- *
- * authFailedMsg - Return false, set error to ERR_AUTH_FAILED. We
- * were unable to authenticate the connection given
- * the available authentication information.
- *
- * hostKeyMissing - Return false, set error to ERR_NEW_HOST_KEY. Caller
- * must call KSshProcess.acceptHostKey(bool) to accept
- * or reject the key before calling connect() again.
- *
- * hostKeyChanged - Return false, set error to ERR_DIFF_HOST_KEY. Caller
- * must call KSshProcess.acceptHostKey(bool) to accept
- * or reject the key before calling connect() again.
- *
- * continuePrompt - Send 'yes' or 'no' to accept or reject a key,
- * respectively.
- *
- */
-
-
-void KSshProcess::acceptHostKey(bool accept) {
- kdDebug(KSSHPROC) << "KSshProcess::acceptHostKey(accept:"
- << accept << ")" << endl;
- mAcceptHostKey = accept;
-}
-
-void KSshProcess::setPassword(TQString password) {
- kdDebug(KSSHPROC) << "KSshProcess::setPassword(password:xxxxxxxx)" << endl;
- mPassword = password;
-}
-
-TQString KSshProcess::getLine() {
- static TQStringList buffer;
- TQString line = TQString::null;
- TQCString ptyLine, errLine;
-
- if( buffer.empty() ) {
- // PtyProcess buffers lines. First check that there
- // isn't something on the PtyProces buffer or that there
- // is not data ready to be read from the pty or stderr.
- ptyLine = ssh.readLineFromPty(false);
- errLine = ssh.readLineFromStderr(false);
-
- // If PtyProcess did have something for us, get it and
- // place it in our line buffer.
- if( ! ptyLine.isEmpty() ) {
- buffer.prepend(TQString(ptyLine));
- }
-
- if( ! errLine.isEmpty() ) {
- buffer.prepend(TQString(errLine));
- }
-
- // If we still don't have anything in our buffer so there must
- // not be anything on the pty or stderr. Setup a select()
- // to wait for some data from SSH.
- // Hack around select() failure on newer systems
- unsigned long milliseconds = 0;
- while ((buffer.size() == 0) && (milliseconds < (60*1000))) {
- //kdDebug(KSSHPROC) << "KSshProcess::getLine(): " <<
- // "Line buffer empty, calling select() to wait for data." << endl;
- int errfd = ssh.stderrFd();
- int ptyfd = ssh.fd();
- fd_set rfds;
- fd_set efds;
- struct timeval tv;
-
- // find max file descriptor
- int maxfd = ptyfd > errfd ? ptyfd : errfd;
-
- FD_ZERO(&rfds);
- FD_SET(ptyfd, &rfds); // Add pty file descriptor
- FD_SET(errfd, &rfds); // Add std error file descriptor
-
- FD_ZERO(&efds);
- FD_SET(ptyfd, &efds);
- FD_SET(errfd, &efds);
-
- tv.tv_sec = 60; tv.tv_usec = 0; // 60 second timeout
-
- // Wait for a message from ssh on stderr or the pty.
- int ret = -1;
- do
- ret = ::select(maxfd+1, &rfds, NULL, &efds, &tv);
- while( ret == -1 && errno == EINTR );
-
- // Handle any errors from select
- if( ret == 0 ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): " <<
- "timed out waiting for a response" << endl;
- mError = ERR_TIMED_OUT;
- return TQString::null;
- }
- else if( ret == -1 ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- << "select error: " << strerror(errno) << endl;
- mError = ERR_INTERNAL;
- return TQString::null;
- }
-
- // We are not respecting any type of order in which the
- // lines were received. Who knows whether pty or stderr
- // had data on it first.
- if( FD_ISSET(ptyfd, &rfds) ) {
- ptyLine = ssh.readLineFromPty(false);
- if (ptyLine.size() > 0) {
- buffer.prepend(TQString(ptyLine));
- }
- //kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
- // "line from pty -" << ptyLine << endl;
- }
-
- if( FD_ISSET(errfd, &rfds) ) {
- errLine = ssh.readLineFromStderr(false);
- if (errLine.size() > 0) {
- buffer.prepend(TQString(errLine));
- }
- //kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
- // "line from err -" << errLine << endl;
- }
-
- if( FD_ISSET(ptyfd, &efds) ) {
- kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
- "Exception on pty file descriptor." << endl;
- }
-
- if( FD_ISSET(errfd, &efds) ) {
- kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
- "Exception on std err file descriptor." << endl;
- }
-
- if (buffer.size() == 0) {
- milliseconds++;
- usleep(1000);
- }
- }
- }
-
- // We should have something in our buffer now.
- // Return the last line.
- //it = buffer.end();
- //line = *it;
- //buffer.remove(it);
-
- line = buffer.last();
- buffer.pop_back();
-
- if( line.isNull() && buffer.count() > 0 ) {
- line = buffer.last();
- buffer.pop_back();
- }
-
-// kdDebug(KSSHPROC) << "KSshProcess::getLine(): " <<
-// buffer.count() << " lines in buffer" << endl;
- kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
- "ssh: " << line << endl;
-
-
- return line;
-}
-
-// All the different states we could go through while trying to connect.
-enum sshConnectState {
- STATE_START, STATE_TRY_PASSWD, STATE_WAIT_PROMPT, STATE_NEW_KEY_CONTINUE,
- STATE_DIFF_KEY_CONTINUE, STATE_FATAL, STATE_WAIT_CONTINUE_PROMPT,
- STATE_SEND_CONTINUE, STATE_AUTH_FAILED, STATE_NEW_KEY_WAIT_CONTINUE,
- STATE_DIFF_KEY_WAIT_CONTINUE, STATE_TRY_PASSPHRASE
-};
-
-// Print the state as a string. Good for debugging
-const char* stateStr(int state) {
- switch(state) {
- case STATE_START:
- return "STATE_START";
- case STATE_TRY_PASSWD:
- return "STATE_TRY_PASSWD";
- case STATE_WAIT_PROMPT:
- return "STATE_WAIT_PROMPT";
- case STATE_NEW_KEY_CONTINUE:
- return "STATE_NEW_KEY_CONTINUE";
- case STATE_DIFF_KEY_CONTINUE:
- return "STATE_DIFF_KEY_CONTINUE";
- case STATE_FATAL:
- return "STATE_FATAL";
- case STATE_WAIT_CONTINUE_PROMPT:
- return "STATE_WAIT_CONTINUE_PROMPT";
- case STATE_SEND_CONTINUE:
- return "STATE_SEND_CONTINE";
- case STATE_AUTH_FAILED:
- return "STATE_AUTH_FAILED";
- case STATE_NEW_KEY_WAIT_CONTINUE:
- return "STATE_NEW_KEY_WAIT_CONTINUE";
- case STATE_DIFF_KEY_WAIT_CONTINUE:
- return "STATE_DIFF_KEY_WAIT_CONTINUE";
- case STATE_TRY_PASSPHRASE:
- return "STATE_TRY_PASSPHRASE";
- }
- return "UNKNOWN";
-}
-
-bool KSshProcess::connect() {
- if( mVersion == UNKNOWN_VER ) {
- // we don't know the ssh version yet, so find out
- version();
- if( mVersion == -1 ) {
- return false;
- }
- }
-
- // We'll put a limit on the number of state transitions
- // to ensure we don't go out of control.
- int transitionLimit = 500;
-
- while(--transitionLimit) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- << "Connect state " << stateStr(mConnectState) << endl;
-
- TQString line; // a line from ssh
- TQString msgBuf; // buffer for important messages from ssh
- // which are to be returned to the user
-
- switch(mConnectState) {
- // STATE_START:
- // Executes the ssh binary with the options provided. If no options
- // have been specified, sets error and returns false. Continue to
- // state 1 if execution is successful, otherwise set error and
- // return false.
- case STATE_START:
- // reset some key values to safe values
- mAcceptHostKey = false;
- mKeyFingerprint = TQString::null;
- mKnownHostsFile = TQString::null;
-
- if( mArgs.isEmpty() ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): ssh options "
- "need to be set first using setArgs()" << endl;
- mError = ERR_NO_OPTIONS;
- mErrorMsg = i18n("No options provided for ssh execution.");
- return false;
- }
-
- if( ssh.exec(mSshPath.latin1(), mArgs) ) {
- kdDebug(KSSHPROC) <<
- "KSshProcess::connect(): ssh exec failed" << endl;
- mError = ERR_CANNOT_LAUNCH;
- mErrorMsg = i18n("Failed to execute ssh process.");
- return false;
- }
-
- kdDebug(KSSHPROC) << "KSshPRocess::connect(): ssh pid = " << ssh.pid() << endl;
-
- // set flag to indicate what have started a ssh process
- mRunning = true;
- mConnectState = STATE_WAIT_PROMPT;
- break;
-
- // STATE_WAIT_PROMPT:
- // Get a line of input from the ssh process. Check the contents
- // of the line to determine the next state. Ignore the line
- // if we don't recognize its contents. If the line contains
- // the continue prompt, we have an error since we should never
- // get that line in this state. Set ERR_INVALID_STATE error
- // and return false.
- case STATE_WAIT_PROMPT:
- line = getLine();
- if( line.isNull() ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- "Got null line in STATE_WAIT_PROMPT." << endl;
- mError = ERR_INTERACT;
- mErrorMsg =
- i18n("Error encountered while talking to ssh.");
- mConnectState = STATE_FATAL;
- }
- else if( line.find(TQString::fromLatin1(passwordPrompt[mVersion]), 0, false) != -1 ) {
- mConnectState = STATE_TRY_PASSWD;
- }
- else if( line.find(passphrasePrompt[mVersion]) != -1 ) {
- mConnectState = STATE_TRY_PASSPHRASE;
- }
- else if( line.find(authSuccessMsg[mVersion]) != -1 ) {
- return true;
- }
- else if( line.find(authFailedMsg[mVersion]) != -1
- && line.find(tryAgainMsg[mVersion]) == -1 ) {
- mConnectState = STATE_AUTH_FAILED;
- }
- else if( line.find(hostKeyMissingMsg[mVersion]) != -1 ) {
- mConnectState = STATE_NEW_KEY_WAIT_CONTINUE;
- }
- else if( line.find(hostKeyChangedMsg[mVersion]) != -1 ) {
- mConnectState = STATE_DIFF_KEY_WAIT_CONTINUE;
- }
- else if( line.find(continuePrompt[mVersion]) != -1 ) {
- //mConnectState = STATE_SEND_CONTINUE;
- kdDebug(KSSHPROC) << "KSshProcess:connect(): "
- "Got continue prompt where we shouldn't (STATE_WAIT_PROMPT)"
- << endl;
- mError = ERR_INTERACT;
- mErrorMsg =
- i18n("Error encountered while talking to ssh.");
- }
- else if( line.find(connectionClosedMsg[mVersion]) != -1 ) {
- mConnectState = STATE_FATAL;
- mError = ERR_CLOSED_BY_REMOTE_HOST;
- mErrorMsg = i18n("Connection closed by remote host.");
- }
- else if( line.find(changeHostKeyOnDiskPrompt[mVersion]) != -1 ) {
- // always say yes to this. It always comes after commerical ssh
- // prints a "continue to connect prompt". We assume that if the
- // user choose to continue, then they also want to save the
- // host key to disk.
- ssh.writeLine("yes");
- }
- else {
- // ignore line
- }
- break;
-
- // STATE_TRY_PASSWD:
- // If we have password send it to the ssh process, else
- // set error ERR_NEED_PASSWD and return false to the caller.
- // The caller then must then call KSshProcess::setPassword(TQString)
- // before calling KSshProcess::connect() again.
- //
- // Almost exactly liek STATE_TRY_PASSPHRASE. Check there if you
- // make changes here.
- case STATE_TRY_PASSWD:
- // We have a password prompt waiting for us to supply
- // a password. Send that password to ssh. If the caller
- // did not supply a password like we asked, then ask
- // again.
- if( !mPassword.isEmpty() ) {
-// ssh.WaitSlave();
- ssh.writeLine(mPassword.latin1());
-
- // Overwrite the password so it isn't in memory.
- mPassword.fill(TQChar('X'));
-
- // Set the password to null so we will request another
- // password if this one fails.
- mPassword = TQString::null;
-
- mConnectState = STATE_WAIT_PROMPT;
- }
- else {
- kdDebug(KSSHPROC) << "KSshProcess::connect() "
- "Need password from caller." << endl;
- // The caller needs to supply a password before
- // connecting can continue.
- mError = ERR_NEED_PASSWD;
- mErrorMsg = i18n("Please supply a password.");
- mConnectState = STATE_TRY_PASSWD;
- return false;
- }
- break;
-
- // STATE_TRY_KEY_PASSPHRASE:
- // If we have passphrase send it to the ssh process, else
- // set error ERR_NEED_PASSPHRASE and return false to the caller.
- // The caller then must then call KSshProcess::setPassword(TQString)
- // before calling KSshProcess::connect() again.
- //
- // Almost exactly like STATE_TRY_PASSWD. The only difference is
- // the error we set if we don't have a passphrase. We duplicate
- // this code to keep in the spirit of the state machine.
- case STATE_TRY_PASSPHRASE:
- // We have a passphrase prompt waiting for us to supply
- // a passphrase. Send that passphrase to ssh. If the caller
- // did not supply a passphrase like we asked, then ask
- // again.
- if( !mPassword.isEmpty() ) {
-// ssh.WaitSlave();
- ssh.writeLine(mPassword.latin1());
-
- // Overwrite the password so it isn't in memory.
- mPassword.fill(TQChar('X'));
-
- // Set the password to null so we will request another
- // password if this one fails.
- mPassword = TQString::null;
-
- mConnectState = STATE_WAIT_PROMPT;
- }
- else {
- kdDebug(KSSHPROC) << "KSshProcess::connect() "
- "Need passphrase from caller." << endl;
- // The caller needs to supply a passphrase before
- // connecting can continue.
- mError = ERR_NEED_PASSPHRASE;
- mErrorMsg = i18n("Please supply the passphrase for "
- "your SSH private key.");
- mConnectState = STATE_TRY_PASSPHRASE;
- return false;
- }
- break;
-
- // STATE_AUTH_FAILED:
- // Authentication has failed. Tell the caller by setting the
- // ERR_AUTH_FAILED error and returning false. If
- // auth has failed then ssh should have exited, but
- // we will kill it to make sure.
- case STATE_AUTH_FAILED:
- mError = ERR_AUTH_FAILED;
- mErrorMsg = i18n("Authentication to %1 failed").arg(mHost);
- mConnectState = STATE_FATAL;
- break;
-
- // STATE_NEW_KEY_WAIT_CONTINUE:
- // Grab lines from ssh until we get a continue prompt or a auth
- // denied. We will get the later if StrictHostKeyChecking is set
- // to yes. Go to STATE_NEW_KEY_CONTINUE if we get a continue prompt.
- case STATE_NEW_KEY_WAIT_CONTINUE:
- line = getLine();
- if( line.isNull() ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- "Got null line in STATE_NEW_KEY_WAIT_CONTINUE." << endl;
- mError = ERR_INTERACT;
- mErrorMsg =
- i18n("Error encountered while talking to ssh.");
- mConnectState = STATE_FATAL;
- }
- else if( (line.find(authFailedMsg[mVersion]) != -1
- && line.find(tryAgainMsg[mVersion]) == -1)
- || line.find(hostKeyVerifyFailedMsg[mVersion]) != -1 ) {
- mError = ERR_AUTH_FAILED_NEW_KEY;
- mErrorMsg = i18n(
- "The identity of the remote host '%1' could not be verified "
- "because the host's key is not in the \"known hosts\" file."
- ).arg(mHost);
-
- if( mKnownHostsFile.isEmpty() ) {
- mErrorMsg += i18n(
- " Manually, add the host's key to the \"known hosts\" "
- "file or contact your administrator."
- );
- }
- else {
- mErrorMsg += i18n(
- " Manually, add the host's key to %1 "
- "or contact your administrator."
- ).arg(mKnownHostsFile);
- }
-
- mConnectState = STATE_FATAL;
- }
- else if( line.find(continuePrompt[mVersion]) != -1 ) {
- mConnectState = STATE_NEW_KEY_CONTINUE;
- }
- else if( line.find(connectionClosedMsg[mVersion]) != -1 ) {
- mConnectState = STATE_FATAL;
- mError = ERR_CLOSED_BY_REMOTE_HOST;
- mErrorMsg = i18n("Connection closed by remote host.");
- }
- else if( line.find(keyFingerprintMsg[mVersion]) != -1 ) {
- mKeyFingerprint = keyFingerprintMsg[mVersion].cap();
- kdDebug(KSSHPROC) << "Found key fingerprint: " << mKeyFingerprint << endl;
- mConnectState = STATE_NEW_KEY_WAIT_CONTINUE;
- }
- else {
- // ignore line
- }
- break;
-
-
- // STATE_NEW_KEY_CONTINUE:
- // We got a continue prompt for the new key message. Set the error
- // message to reflect this, return false and hope for caller response.
- case STATE_NEW_KEY_CONTINUE:
- mError = ERR_NEW_HOST_KEY;
- mErrorMsg = i18n(
- "The identity of the remote host '%1' could not be "
- "verified. The host's key fingerprint is:\n%2\nYou should "
- "verify the fingerprint with the host's administrator before "
- "connecting.\n\n"
- "Would you like to accept the host's key and connect anyway? "
- ).arg(mHost).arg(mKeyFingerprint);
- mConnectState = STATE_SEND_CONTINUE;
- return false;
-
- // STATE_DIFF_KEY_WAIT_CONTINUE:
- // Grab lines from ssh until we get a continue prompt or a auth
- // denied. We will get the later if StrictHostKeyChecking is set
- // to yes. Go to STATE_DIFF_KEY_CONTINUE if we get a continue prompt.
- case STATE_DIFF_KEY_WAIT_CONTINUE:
- line = getLine();
- if( line.isNull() ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- "Got null line in STATE_DIFF_KEY_WAIT_CONTINUE." << endl;
- mError = ERR_INTERACT;
- mErrorMsg =
- i18n("Error encountered while talking to ssh.");
- mConnectState = STATE_FATAL;
- }
- else if( (line.find(authFailedMsg[mVersion]) != -1
- && line.find(tryAgainMsg[mVersion]) == -1)
- || line.find(hostKeyVerifyFailedMsg[mVersion]) != -1 ) {
- mError = ERR_AUTH_FAILED_DIFF_KEY;
- mErrorMsg = i18n(
- "WARNING: The identity of the remote host '%1' has changed!\n\n"
- "Someone could be eavesdropping on your connection, or the "
- "administrator may have just changed the host's key. "
- "Either way, you should verify the host's key fingerprint with the host's "
- "administrator. The key fingerprint is:\n%2\n"
- "Add the correct host key to \"%3\" to "
- "get rid of this message."
- ).arg(mHost).arg(mKeyFingerprint).arg(mKnownHostsFile);
- mConnectState = STATE_FATAL;
- }
- else if( line.find(continuePrompt[mVersion]) != -1 ) {
- mConnectState = STATE_DIFF_KEY_CONTINUE;
- }
- else if( line.find(keyFingerprintMsg[mVersion]) != -1 ) {
- mKeyFingerprint = keyFingerprintMsg[mVersion].cap();
- kdDebug(KSSHPROC) << "Found key fingerprint: " << mKeyFingerprint << endl;
- mConnectState = STATE_DIFF_KEY_WAIT_CONTINUE;
- }
- else if( line.find(knownHostsFileMsg[mVersion]) != -1 ) {
- mKnownHostsFile = (knownHostsFileMsg[mVersion]).cap(1);
- kdDebug(KSSHPROC) << "Found known hosts file name: " << mKnownHostsFile << endl;
- mConnectState = STATE_DIFF_KEY_WAIT_CONTINUE;
- }
- else {
- // ignore line
- }
- break;
-
- // STATE_DIFF_KEY_CONTINUE:
- // We got a continue prompt for the different key message.
- // Set ERR_DIFF_HOST_KEY error
- // and return false to signal need to caller action.
- case STATE_DIFF_KEY_CONTINUE:
- mError = ERR_DIFF_HOST_KEY;
- mErrorMsg = i18n(
- "WARNING: The identity of the remote host '%1' has changed!\n\n"
- "Someone could be eavesdropping on your connection, or the "
- "administrator may have just changed the host's key. "
- "Either way, you should verify the host's key fingerprint with the host's "
- "administrator before connecting. The key fingerprint is:\n%2\n\n"
- "Would you like to accept the host's new key and connect anyway?"
- ).arg(mHost).arg(mKeyFingerprint);
- mConnectState = STATE_SEND_CONTINUE;
- return false;
-
- // STATE_SEND_CONTINUE:
- // We found a continue prompt. Send our answer.
- case STATE_SEND_CONTINUE:
- if( mAcceptHostKey ) {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- "host key accepted" << endl;
- ssh.writeLine("yes");
- mConnectState = STATE_WAIT_PROMPT;
- }
- else {
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- "host key rejected" << endl;
- ssh.writeLine("no");
- mError = ERR_HOST_KEY_REJECTED;
- mErrorMsg = i18n("Host key was rejected.");
- mConnectState = STATE_FATAL;
- }
- break;
-
- // STATE_FATAL:
- // Something bad happened that we cannot recover from.
- // Kill the ssh process and set flags to show we have
- // ended the connection and killed ssh.
- //
- // mError and mErrorMsg should be set by the immediately
- // previous state.
- case STATE_FATAL:
- kill();
- mConnected = false;
- mRunning = false;
- mConnectState = STATE_START;
- // mError, mErroMsg set by last state
- return false;
-
- default:
- kdDebug(KSSHPROC) << "KSshProcess::connect(): "
- "Invalid state number - " << mConnectState << endl;
- mError = ERR_INVALID_STATE;
- mConnectState = STATE_FATAL;
- }
- }
-
- // we should never get here
- kdDebug(KSSHPROC) << "KSshProcess::connect(): " <<
- "After switch(). We shouldn't be here." << endl;
- mError = ERR_INTERNAL;
- return false;
-}
-
-void KSshProcess::disconnect() {
- kill();
- mConnected = false;
- mRunning = false;
- mConnectState = STATE_START;
-}
-
diff --git a/tdeioslave/sftp/ksshprocess.h b/tdeioslave/sftp/ksshprocess.h
deleted file mode 100644
index 5130628e4..000000000
--- a/tdeioslave/sftp/ksshprocess.h
+++ /dev/null
@@ -1,623 +0,0 @@
-/***************************************************************************
- ksshprocess.h - description
- -------------------
- begin : Tue Jul 31 2001
- copyright : (C) 2001 by Lucas Fisher
- email : ljfisher@purdue.edu
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef KSSHPROCESS_H
-#define KSSHPROCESS_H
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <unistd.h>
-
-#include <tqvaluelist.h>
-
-#include <kdebug.h>
-
-#include "process.h"
-
-#define KSSHPROC 7120
-
-/**
- * Provides version independent access to ssh. Currently supported
- * versions of SSH are:
- * OpenSSH 2.9p1
- * OpenSSH 2.9p2
- * OpenSSH 3.0
- * OpenSSH 3.1
- * Commercial SSH 3.0.0
- * Other versions of OpenSSH and commerical SSH will probably work also.
- *
- * To setup a SSH connection first create a list of options to use and tell
- * KSshProcess about your options. Then start the ssh connection. Once the
- * connection is setup use the stdin, stdout, stderr, and pty file descriptors
- * to communicate with ssh. For a detailed example of how to use, see
- * ksshprocesstest.cpp.
- *
- * @author Lucas Fisher
- *
- * Example: Connect to ssh server on localhost
- * KSshProcess::SshOpt opt;
- * KSshProcess::SshOptList options;
- *
- * opt.opt = KSshProcess::SSH_HOST;
- * opt.str = "localhost";
- * options.append(opt);
- *
- * opt.opt = KSshProcess::SSH_USERNAME;
- * opt.str = "me";
- * options.append(opt);
- *
- * KSshProcess ssh;
- * if( !ssh.setOptions(options) ) {
- * int err = ssh.error();
- * // process error
- * return false;
- * }
- *
- * int err;
- * TQString errMsg;
- * while( !ssh.connect() ) {
- * err = ssh.error(errMsg);
- *
- * switch( err ) {
- * case KSshProcess::ERR_NEW_HOST_KEY:
- * case KSshProcess::ERR_DIFF_HOST_KEY:
- * // ask user to accept key
- * if( acceptHostKey ) {
- * ssh.acceptKey(true);
- * }
- * break;
- *
- * case KSshProcess::ERR_NEED_PASSWORD:
- * // ask user for password
- * ssh.password(userPassword);
- * break;
- *
- * case KSshProcess::ERR_NEED_KEY_PASSPHRASE:
- * // ask user for their key passphrase
- * ssh.keyPassphrase(keyPassphrase);
- * break;
- *
- * default:
- * // somethings wrong, alert user
- * return;
- * }
- * }
- * // We have an open ssh connection to localhost
- *
- */
-
-class KSshProcess {
-public:
- /**
- * SSH Option
- *
- * Stores SSH options for use with KSshProcess.
- *
- * SSH options are configured much like UDS entries.
- * Each option is assigned a constant and a string, bool,
- * or number is assigned based on the option.
- *
- * @author Lucas Fisher (ljfisher@iastate.edu)
- */
- class SshOpt {
- public:
- TQ_UINT32 opt;
- TQString str;
- TQ_INT32 num;
- bool boolean;
- };
-
- /**
- * List of SshOptions and associated iterators
- */
- typedef TQValueList<SshOpt> SshOptList;
- typedef TQValueListIterator<SshOpt> SshOptListIterator;
- typedef TQValueListConstIterator<SshOpt> SshOptListConstIterator;
-
- /**
- * Ssh versions supported by KSshProcess. Subject to change
- * at any time.
- */
- enum SshVersion {
- OPENSSH_3_6,
- OPENSSH,
- SSH,
- SSH_VER_MAX,
- UNKNOWN_VER
- };
-
- /**
- * SSH options supported by KSshProcess. Set SshOpt::opt to one of these
- * values.
- */
- // we cannot do this like UDSAtomType (ORing the type with the name) because
- // we have too many options for ssh and not enough bits.
- enum SshOptType {
- /**
- * Request server to invoke subsystem. (str)
- */
- SSH_SUBSYSTEM,
- /**
- * Connect to port on the server. (num)
- */
- SSH_PORT,
- /**
- * Connect to host. (str)
- */
- SSH_HOST,
- /**
- * connect using this username. (str)
- */
- SSH_USERNAME,
- /**
- * connect using this password. (str)
- */
- SSH_PASSWD,
- /**
- * connect using this version of the SSH protocol. num == 1 or 2
- */
- SSH_PROTOCOL,
- /**
- * whether to forward X11 connections. (boolean)
- */
- SSH_FORWARDX11,
- /**
- * whether to do agent forwarding. (boolean)
- */
- SSH_FORWARDAGENT,
- /**
- * use as escape character. 0 for none (num)
- */
- SSH_ESCAPE_CHAR,
- /**
- * command for ssh to perform once it is connected (str)
- */
- SSH_COMMAND,
- /**
- * Set ssh verbosity. This may be added multiple times. It may also cause KSSHProcess
- * to fail since we don't understand all the debug messages.
- */
- SSH_VERBOSE,
- /**
- * Set a ssh option as one would find in the ssh_config file
- * The str member should be set to 'optName value'
- */
- SSH_OPTION,
- /**
- * Set some other option not supported by KSSHProcess. The option should
- * be specified in the str member of SshOpt. Careful with this since
- * not all versions of SSH support the same options.
- */
- SSH_OTHER,
- SSH_OPT_MAX // always last
- }; // that's all for now
-
- /**
- * Errors that KSshProcess can encounter. When a member function returns
- * false, call error() to retrieve one of these error codes.
- */
- enum SshError {
- /**
- * Don't recognize the ssh version
- */
- ERR_UNKNOWN_VERSION,
- /**
- * Cannot lauch ssh client
- */
- ERR_CANNOT_LAUNCH,
- /**
- * Interaction with the ssh client failed. This happens when we can't
- * find the password prompt or something similar
- */
- ERR_INTERACT,
- /**
- * Arguments for both a remotely executed subsystem and command were provide.
- * Only one or the other may be used
- */
- ERR_CMD_SUBSYS_CONFLICT,
- /**
- * No password was supplied
- */
- ERR_NEED_PASSWD,
- /**
- * No passphrase was supplied.
- */
- ERR_NEED_PASSPHRASE,
- /**
- * No usename was supplied
- */
- ERR_NEED_USERNAME,
- /**
- * Timed out waiting for a response from ssh or the server
- */
- ERR_TIMED_OUT,
- /**
- * Internal error, probably from a system call
- */
- ERR_INTERNAL,
- /**
- * ssh was disconnect from the host
- */
- ERR_DISCONNECTED,
- /**
- * No ssh options have been set. Call setArgs() before calling connect.
- */
- ERR_NO_OPTIONS,
- /**
- * A host key was received from an unknown host.
- * Call connect() with the acceptHostKey argument to accept the key.
- */
- ERR_NEW_HOST_KEY,
- /**
- * A host key different from what is stored in the user's known_hosts file
- * has be received. This is an indication of an attack
- */
- ERR_DIFF_HOST_KEY,
- /**
- * A new or different host key was rejected by the caller. The ssh
- * connection was terminated and the ssh process killed.
- */
- ERR_HOST_KEY_REJECTED,
- /**
- * An invalid option was found in the SSH option list
- */
- ERR_INVALID_OPT,
- /**
- * SSH accepted host key without prompting user.
- */
- ERR_ACCEPTED_KEY,
- /**
- * Authentication failed
- */
- ERR_AUTH_FAILED,
- /**
- * Authentication failed because a new host key was detected and
- * SSH is configured with strict host key checking enabled.
- */
- ERR_AUTH_FAILED_NEW_KEY,
- /**
- * Authentication failed because a changed host key was detected and
- * SSH is configured with strict host key checking enabled.
- */
- ERR_AUTH_FAILED_DIFF_KEY,
- /**
- * The remote host closed the connection for unknown reasons.
- */
- ERR_CLOSED_BY_REMOTE_HOST,
- /**
- * We have no idea what happened
- */
- ERR_UNKNOWN,
- /**
- * The connect state machine entered an invalid state.
- */
- ERR_INVALID_STATE,
- ERR_MAX
- };
-
- /**
- * Initialize a SSH process using the first SSH binary found in the PATH
- */
- KSshProcess();
-
- /**
- * Initialize a SSH process using the specified SSH binary.
- * @param pathToSsh The fully qualified path name of the ssh binary
- * KSshProcess should use to setup a SSH connection.
- */
- KSshProcess(TQString pathToSsh);
- ~KSshProcess();
-
- /**
- * Set the ssh binary KSshProcess should use. This will only affect the
- * next ssh connection attempt using this instance.
- *
- * @param pathToSsh Full path to the ssh binary.
- *
- * @return True if the ssh binary is found and KSshProcess
- * recognizes the version.
- *
- */
- bool setSshPath(TQString pathToSsh);
-
- /**
- * Get the ssh version.
- *
- * @return The ssh version or -1 if KSshProcess does not recognize
- * the ssh version. The returned value corresponds to the
- * member of the SshVersion enum.
- */
- SshVersion version();
-
- /**
- * Get a string describing the ssh version
- *
- * @return A string describing the ssh version recognized by KSshProcess
- */
- //TQString versionStr();
-
- /**
- * Get the last error encountered by KSshProcess.
- *
- * @param msg Set to the error message, if any, outputted by ssh when it is run.
- *
- * @return The error number. See SshError for descriptions.
- */
- int error(TQString& msg);
-
- /**
- * Get the last error encountered by KSshProcess.
- * @return The error number. See SshError for descriptions.
- */
- int error() { return mError; }
-
- TQString errorMsg() { return mErrorMsg; }
-
- /**
- * Send a signal to the ssh process. Do not use this to end the
- * ssh connection as it will not correctly reset the internal
- * state of the KSshProcess object. Use KSshProcess::disconnect()
- * instead.
- *
- * @param signal The signal to send to the ssh process. See 'kill -l'
- * for a list of possible signals.
- * The default signal is SIGKILL which kills ssh.
- *
- */
- void kill(int signal = SIGKILL);
-
- /**
- * The pid of the ssh process started by this instance of KSshProcess.
- * Only valid if KSshProcess::running() returns true;
- *
- * @return The pid of the running ssh process.
- */
- int pid() { return ssh.pid(); }
-
- /**
- * Whether a ssh connection has been established with a
- * remote host. A establish connection means ssh has successfully
- * authenticated with the remote host and user data can be transfered
- * between the local and remote host. This cannot return
- * true unless the most recent call to KSshProccess::connect() returned true.
- *
- * @return True if a ssh connection has been established with a remote
- * host. False otherwise.
- */
- bool connected() { return mConnected; }
-
- /**
- * Whether a ssh process is currently running. This only indicates
- * if a ssh process has been started and is still running. It does not
- * tell if authentication has been successful. This may return true
- * even if the most recent call to KSshProcess::connect() returned false.
- *
- * @return True if a ssh process started by this instance of KSshProcess
- * is running. False otherwise.
- */
- bool running() { return mRunning; }
-
- /**
- * Print the command line arguments ssh is run with using kdDebug.
- */
- void printArgs();
-
- /**
- * Set the SSH options.
- * This must be called before connect(). See SshOptType for a list of
- * supported ssh options. The required options are SSH_USERNAME
- * and SSH_HOST.
- *
- * To reset the saved options, just recall setOptions() again with
- * a different options list.
- *
- * @param opts A list of SshOpt objects specifying the ssh options.
- *
- * @return True if all options are valid. False if unrecognized options
- * or a required option is missing. Call error()
- * for details.
- *
- */
- bool setOptions(const SshOptList& opts);
-
- /**
- * Create a ssh connection based on the options provided by setOptions().
- * Sets one of the following error codes on failure:
- * <ul>
- * <li>ERR_NO_OPTIONS</li>
- * <li>ERR_CANNOT_LAUNCH</li>
- * <li>ERR_INVALID_STATE</li>
- * <li>ERR_NEED_PASSWD</li>
- * <li>ERR_AUTH_FAILED</li>
- * <li>ERR_NEW_HOST_KEY</li>
- * <li>ERR_KEY_ACCEPTED</li>
- * <li>ERR_DIFF_HOST_KEY</li>
- * <li>ERR_INTERNAL</li>
- * <li>ERR_INTERACT</li>
- * </ul>
- *
- * @param acceptHostKey When true KSshProcess will automatically accept
- * unrecognized or changed host keys.
- *
- * @return True if the ssh connection is successful. False if the connection
- * fails. Call error() to get the reason for the failure.
- */
- bool connect();
-
-
- /**
- * Disconnect ssh from the host. This kills the ssh process and
- * resets the internal state of this KSshProcess object. After a
- * disconnect, the same KSshProcess can be used to connect to a
- * host.
- */
- void disconnect();
-
- /**
- * Call to respond to a ERR_NEW_HOST_KEY or ERR_DIFF_HOST_KEY error.
- *
- * @param accept True to accept the host key, false to not accept the
- * host key and kill ssh.
- *
- */
- void acceptHostKey(bool accept);
-
- /**
- * Call to respond to a ERR_NEED_PASSWD or ERR_NEED_PASSPHRASE error.
- *
- * @param password The user password to give ssh.
- */
- void setPassword(TQString password);
-
- /**
- * Access to standard in and out of the ssh process.
- *
- * @return The file description for stdin and stdout of the ssh process.
- */
- int stdioFd() { return ssh.stdioFd(); }
-
- /**
- * Access to standard error of the ssh process.
- *
- * @return The file descriptior for stderr of the ssh process.
- */
- int stderrFd() { return ssh.stderrFd(); }
-
- /**
- * Access the pty to which the ssh process is attached.
- *
- * @return The file descriptor of pty to which ssh is attached.
- */
- int pty() { return ssh.fd(); }
-private:
- /**
- * Path the the ssh binary.
- */
- TQString mSshPath;
-
- /**
- * SSH version. This is an index into the supported SSH
- * versions array, and the various messages arrays.
- */
- SshVersion mVersion;
-
- /**
- * User's password. Zero this out when it is no longer needed.
- */
- TQString mPassword;
-
- /**
- * User's username.
- */
- TQString mUsername;
-
- /**
- * Name of host we are connecting to.
- */
- TQString mHost;
-
- /**
- * Accept new or changed host keys if true.
- */
- bool mAcceptHostKey;
-
- /**
- * Flag to tell use if we have an open, authenticated ssh
- * session going.
- */
- bool mConnected;
-
- /**
- * Flag to tell us if we have started a ssh process, we use this
- * to make sure we kill ssh before going away.
- */
- bool mRunning;
-
- /**
- * Save any key fingerprint msg from ssh so we can present
- * it to the caller.
- */
- TQString mKeyFingerprint;
-
- /**
- * The location of the known host key file. We grab this from
- * any error messages ssh prints out.
- */
- TQString mKnownHostsFile;
-
- /**
- * The state of our connect state machine.
- */
- int mConnectState;
-
- /**
- * Port on on which the target ssh server is listening.
- */
- int mPort;
-
- /**
- * The last error number encountered. This is only valid for the
- * last error.
- */
- SshError mError;
-
- /**
- * An error message that corresponds to the error number set in
- * mError. Optional.
- */
- TQString mErrorMsg;
-
- /**
- * Interface to the SSH process we ceate. Handles communication
- * to and from the SSH process using stdin, stdout, stderr, and
- * pty.
- */
- MyPtyProcess ssh;
-
- /**
- * List of arguments we start SSH with.
- */
- QCStringList mArgs;
- void init();
-
- /**
- * Handler to clean up when ssh process terminates.
- */
- static void SIGCHLD_handler(int signo);
- void installSignalHandlers();
- void removeSignalHandlers();
-
- TQString getLine();
-
- static TQRegExp versionStrs[];
- static const char * const passwordPrompt[];
- static const char * const passphrasePrompt[];
- static const char * const authSuccessMsg[];
- static const char * const authFailedMsg[];
- static TQRegExp hostKeyMissingMsg[];
- static const char * const hostKeyChangedMsg[];
- static const char * const continuePrompt[];
- static const char * const hostKeyAcceptedMsg[];
- static const char * const tryAgainMsg[];
- static TQRegExp hostKeyVerifyFailedMsg[];
- static const char * const connectionClosedMsg[];
- static const char * const changeHostKeyOnDiskPrompt[];
- static TQRegExp keyFingerprintMsg[];
- static TQRegExp knownHostsFileMsg[];
-};
-#endif
diff --git a/tdeioslave/sftp/ksshprocesstest.cpp b/tdeioslave/sftp/ksshprocesstest.cpp
deleted file mode 100644
index 59dbf58c7..000000000
--- a/tdeioslave/sftp/ksshprocesstest.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "ksshprocess.h"
-#include <iostream>
-
-using namespace std;
-
-int main(int argc, char *argv[]) {
-
- if( argc < 5 ) {
- cout << "Usage: " << argv[0] <<
- " <ssh path> <host> <username> <password>" << endl;
- return 1;
- }
-
- KSshProcess ssh(argv[1]);
- cout << ssh.version() << endl;
-
- KSshProcess::SshOptList opts;
- KSshProcess::SshOpt opt;
-
- opt.opt = KSshProcess::SSH_PORT;
- opt.num = 22;
- opts.append(opt);
-
- opt.opt = KSshProcess::SSH_HOST;
- opt.str = TQString(argv[2]);
- opts.append(opt);
-
- opt.opt = KSshProcess::SSH_USERNAME;
- opt.str = TQString(argv[3]);
- opts.append(opt);
-
-// opt.opt = KSshProcess::SSH_PASSWD;
-// opt.str = TQString(argv[4]);
-// opts.append(opt);
-
- if( !ssh.setOptions(opts) ) {
- cout << "ksshprocesstest: setOptions failed" << endl;
- return -1;
- }
-
- ssh.printArgs();
-
- bool stop = false;
- bool connected;
- char buf[256];
- char c;
- while( !stop && !(connected = ssh.connect()) ) {
- cout << "ksshprocesstest: Error num - " << ssh.error() << endl;
- cout << "ksshprocesstest: Error msg - " << ssh.errorMsg().latin1() << endl;
- switch( ssh.error() ) {
- case KSshProcess::ERR_NEED_PASSWD:
- case KSshProcess::ERR_NEED_PASSPHRASE:
- cout << "Password: ";
- cin >> buf;
- cout << "password is " << buf << endl;
- ssh.setPassword(TQString(buf));
- break;
- case KSshProcess::ERR_NEW_HOST_KEY:
- case KSshProcess::ERR_DIFF_HOST_KEY:
- cout << "Accept host key? (y/n): ";
- cin >> c;
- cout << "Answered " << c << endl;
- ssh.acceptHostKey(c == 'y' ? true : false);
- break;
- case KSshProcess::ERR_AUTH_FAILED:
- cout << "ksshprocesstest: auth failed." << endl;
- stop = true;
- break;
- case KSshProcess::ERR_AUTH_FAILED_NEW_KEY:
- cout << "ksshprocesstest: auth failed because of new key." << endl;
- stop = true;
- break;
- case KSshProcess::ERR_AUTH_FAILED_DIFF_KEY:
- cout << "ksshprocesstest: auth failed because of changed key." << endl;
- stop = true;
- break;
-
- case KSshProcess::ERR_INTERACT:
- case KSshProcess::ERR_INTERNAL:
- case KSshProcess::ERR_UNKNOWN:
- case KSshProcess::ERR_INVALID_STATE:
- case KSshProcess::ERR_CANNOT_LAUNCH:
- case KSshProcess::ERR_HOST_KEY_REJECTED:
- cout << "ksshprocesstest: FATAL ERROR" << endl;
- stop = true;
- break;
-
- }
- }
-
- if( connected ) {
- cout << "ksshprocesstest: Successfully connected to " << argv[2] << endl;
- }
- else {
- cout << "ksshprocesstest: Connect to " << argv[2] << " failed." << endl;
- }
-
-}
diff --git a/tdeioslave/sftp/process.cpp b/tdeioslave/sftp/process.cpp
deleted file mode 100644
index 164121497..000000000
--- a/tdeioslave/sftp/process.cpp
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- *
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- *
- * This file contains code from TEShell.C of the KDE konsole.
- * Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de>
- *
- * This is free software; you can use this library under the GNU Library
- * General Public License, version 2. See the file "COPYING.LIB" for the
- * exact licensing terms.
- *
- * process.cpp: Functionality to build a front end to password asking
- * terminal programs.
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <errno.h>
-#include <string.h>
-#include <termios.h>
-#include <signal.h>
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/socket.h>
-
-#if defined(__SVR4) && defined(sun)
-#include <stropts.h>
-#include <sys/stream.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h> // Needed on some systems.
-#endif
-
-#include <tqglobal.h>
-#include <tqcstring.h>
-#include <tqfile.h>
-
-#include <kdebug.h>
-#include <kstandarddirs.h>
-
-#include "process.h"
-#include <tdesu/tdesu_pty.h>
-#include <tdesu/kcookie.h>
-
-
-MyPtyProcess::MyPtyProcess()
-{
- m_bTerminal = false;
- m_bErase = false;
- m_pPTY = 0L;
- m_Pid = -1;
- m_Fd = -1;
-}
-
-
-int MyPtyProcess::init()
-{
- delete m_pPTY;
- m_pPTY = new PTY();
- m_Fd = m_pPTY->getpt();
- if (m_Fd < 0)
- return -1;
- if ((m_pPTY->grantpt() < 0) || (m_pPTY->unlockpt() < 0))
- {
- kdError(PTYPROC) << k_lineinfo << "Master setup failed.\n" << endl;
- m_Fd = -1;
- return -1;
- }
- m_TTY = m_pPTY->ptsname();
- m_stdoutBuf.resize(0);
- m_stderrBuf.resize(0);
- m_ptyBuf.resize(0);
- return 0;
-}
-
-
-MyPtyProcess::~MyPtyProcess()
-{
- delete m_pPTY;
-}
-
-
-/*
- * Read one line of input. The terminal is in canonical mode, so you always
- * read a line at at time, but it's possible to receive multiple lines in
- * one time.
- */
-
-
-TQCString MyPtyProcess::readLineFrom(int fd, TQCString& inbuf, bool block)
-{
- int pos;
- TQCString ret;
-
- if (!inbuf.isEmpty())
- {
-
- pos = inbuf.find('\n');
-
- if (pos == -1)
- {
- ret = inbuf;
- inbuf.resize(0);
- } else
- {
- ret = inbuf.left(pos);
- inbuf = inbuf.mid(pos+1);
- }
- return ret;
-
- }
-
- int flags = fcntl(fd, F_GETFL);
- if (flags < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "fcntl(F_GETFL): " << perror << "\n";
- return ret;
- }
- if (block)
- flags &= ~O_NONBLOCK;
- else
- flags |= O_NONBLOCK;
- if (fcntl(fd, F_SETFL, flags) < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "fcntl(F_SETFL): " << perror << "\n";
- return ret;
- }
-
- int nbytes;
- char buf[256];
- while (1)
- {
- nbytes = read(fd, buf, 255);
- if (nbytes == -1)
- {
- if (errno == EINTR)
- continue;
- else break;
- }
- if (nbytes == 0)
- break; // eof
-
- buf[nbytes] = '\000';
- inbuf += buf;
-
- pos = inbuf.find('\n');
- if (pos == -1)
- {
- ret = inbuf;
- inbuf.resize(0);
- } else
- {
- ret = inbuf.left(pos);
- inbuf = inbuf.mid(pos+1);
- }
- break;
-
- }
-
- return ret;
-}
-
-void MyPtyProcess::writeLine(TQCString line, bool addnl)
-{
- if (!line.isEmpty())
- write(m_Fd, line, line.length());
- if (addnl)
- write(m_Fd, "\n", 1);
-}
-
-void MyPtyProcess::unreadLineFrom(TQCString inbuf, TQCString line, bool addnl)
-{
- if (addnl)
- line += '\n';
- if (!line.isEmpty())
- inbuf.prepend(line);
-}
-
-
-/*
- * Fork and execute the command. This returns in the parent.
- */
-
-int MyPtyProcess::exec(TQCString command, QCStringList args)
-{
- kdDebug(PTYPROC) << "MyPtyProcess::exec(): " << command << endl;// << ", args = " << args << endl;
-
- if (init() < 0)
- return -1;
-
- // Open the pty slave before forking. See SetupTTY()
- int slave = open(m_TTY, O_RDWR);
- if (slave < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "Could not open slave pty.\n";
- return -1;
- }
-
- // Also create a socket pair to connect to standard in/out.
- // This will allow use to bypass the terminal.
- int inout[2];
- int err[2];
- int ok = 1;
- ok &= socketpair(AF_UNIX, SOCK_STREAM, 0, inout) >= 0;
- ok &= socketpair(AF_UNIX, SOCK_STREAM, 0, err ) >= 0;
- if( !ok ) {
- kdDebug(PTYPROC) << "Could not create socket" << endl;
- return -1;
- }
- m_stdinout = inout[0];
- m_err = err[0];
-
- if ((m_Pid = fork()) == -1)
- {
- kdError(PTYPROC) << k_lineinfo << "fork(): " << perror << "\n";
- return -1;
- }
-
- // Parent
- if (m_Pid)
- {
- close(slave);
- close(inout[1]);
- close(err[1]);
- return 0;
- }
-
- // Child
-
- ok = 1;
- ok &= dup2(inout[1], STDIN_FILENO) >= 0;
- ok &= dup2(inout[1], STDOUT_FILENO) >= 0;
- ok &= dup2(err[1], STDERR_FILENO) >= 0;
-
- if( !ok )
- {
- kdError(PTYPROC) << "dup of socket descriptor failed" << endl;
- _exit(1);
- }
-
- close(inout[1]);
- close(inout[0]);
- close(err[1]);
- close(err[0]);
-
- if (SetupTTY(slave) < 0)
- _exit(1);
-
- // From now on, terminal output goes through the tty.
- TQCString path;
- if (command.contains('/'))
- path = command;
- else
- {
- TQString file = TDEStandardDirs::findExe(command);
- if (file.isEmpty())
- {
- kdError(PTYPROC) << k_lineinfo << command << " not found\n";
- _exit(1);
- }
- path = TQFile::encodeName(file);
- }
-
- int i;
- const char * argp[32];
- argp[0] = path;
- QCStringList::Iterator it;
- for (i=1, it=args.begin(); it!=args.end() && i<31; it++) {
- argp[i++] = *it;
- kdDebug(PTYPROC) << *it << endl;
- }
- argp[i] = 0L;
- execv(path, (char * const *)argp);
- kdError(PTYPROC) << k_lineinfo << "execv(\"" << path << "\"): " << perror << "\n";
- _exit(1);
- return -1; // Shut up compiler. Never reached.
-}
-
-/*
- * Wait until the terminal is set into no echo mode. At least one su
- * (RH6 w/ Linux-PAM patches) sets noecho mode AFTER writing the Password:
- * prompt, using TCSAFLUSH. This flushes the terminal I/O queues, possibly
- * taking the password with it. So we wait until no echo mode is set
- * before writing the password.
- * Note that this is done on the slave fd. While Linux allows tcgetattr() on
- * the master side, Solaris doesn't.
- */
-
-int MyPtyProcess::WaitSlave()
-{
- int slave = open(m_TTY, O_RDWR);
- if (slave < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "Could not open slave tty.\n";
- return -1;
- }
-
- struct termios tio;
- struct timeval tv;
- while (1)
- {
- if (tcgetattr(slave, &tio) < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "tcgetattr(): " << perror << "\n";
- close(slave);
- return -1;
- }
- if (tio.c_lflag & ECHO)
- {
- kdDebug(PTYPROC) << k_lineinfo << "Echo mode still on." << endl;
- // sleep 1/10 sec
- tv.tv_sec = 0; tv.tv_usec = 100000;
- select(slave, 0L, 0L, 0L, &tv);
- continue;
- }
- break;
- }
- close(slave);
- return 0;
-}
-
-
-int MyPtyProcess::enableLocalEcho(bool enable)
-{
- int slave = open(m_TTY, O_RDWR);
- if (slave < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "Could not open slave tty.\n";
- return -1;
- }
- struct termios tio;
- if (tcgetattr(slave, &tio) < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "tcgetattr(): " << perror << "\n";
- close(slave); return -1;
- }
- if (enable)
- tio.c_lflag |= ECHO;
- else
- tio.c_lflag &= ~ECHO;
- if (tcsetattr(slave, TCSANOW, &tio) < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "tcsetattr(): " << perror << "\n";
- close(slave); return -1;
- }
- close(slave);
- return 0;
-}
-
-
-/*
- * Copy output to stdout until the child process exists, or a line of output
- * matches `m_Exit'.
- * We have to use waitpid() to test for exit. Merely waiting for EOF on the
- * pty does not work, because the target process may have children still
- * attached to the terminal.
- */
-
-int MyPtyProcess::waitForChild()
-{
- int ret, state, retval = 1;
- struct timeval tv;
-
- fd_set fds;
- FD_ZERO(&fds);
-
- while (1)
- {
- tv.tv_sec = 1; tv.tv_usec = 0;
- FD_SET(m_Fd, &fds);
- ret = select(m_Fd+1, &fds, 0L, 0L, &tv);
- if (ret == -1)
- {
- if (errno == EINTR) continue;
- else
- {
- kdError(PTYPROC) << k_lineinfo << "select(): " << perror << "\n";
- return -1;
- }
- }
-
- if (ret)
- {
- TQCString line = readLine(false);
- while (!line.isNull())
- {
- if (!m_Exit.isEmpty() && !tqstrnicmp(line, m_Exit, m_Exit.length()))
- kill(m_Pid, SIGTERM);
- if (m_bTerminal)
- {
- fputs(line, stdout);
- fputc('\n', stdout);
- }
- line = readLine(false);
- }
- }
-
- // Check if the process is still alive
- ret = waitpid(m_Pid, &state, WNOHANG);
- if (ret < 0)
- {
- if (errno == ECHILD)
- retval = 0;
- else
- kdError(PTYPROC) << k_lineinfo << "waitpid(): " << perror << "\n";
- break;
- }
- if (ret == m_Pid)
- {
- if (WIFEXITED(state))
- retval = WEXITSTATUS(state);
- break;
- }
- }
-
- return -retval;
-}
-
-/*
- * SetupTTY: Creates a new session. The filedescriptor "fd" should be
- * connected to the tty. It is closed after the tty is reopened to make it
- * our controlling terminal. This way the tty is always opened at least once
- * so we'll never get EIO when reading from it.
- */
-
-int MyPtyProcess::SetupTTY(int fd)
-{
- // Reset signal handlers
- for (int sig = 1; sig < NSIG; sig++)
- signal(sig, SIG_DFL);
- signal(SIGHUP, SIG_IGN);
-
- // Close all file handles
-// struct rlimit rlp;
-// getrlimit(RLIMIT_NOFILE, &rlp);
-// for (int i = 0; i < (int)rlp.rlim_cur; i++)
-// if (i != fd) close(i);
-
- // Create a new session.
- setsid();
-
- // Open slave. This will make it our controlling terminal
- int slave = open(m_TTY, O_RDWR);
- if (slave < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "Could not open slave side: " << perror << "\n";
- return -1;
- }
- close(fd);
-
-#if defined(__SVR4) && defined(sun)
-
- // Solaris STREAMS environment.
- // Push these modules to make the stream look like a terminal.
- ioctl(slave, I_PUSH, "ptem");
- ioctl(slave, I_PUSH, "ldterm");
-
-#endif
-
- // Connect stdin, stdout and stderr
-// dup2(slave, 0); dup2(slave, 1); dup2(slave, 2);
-// if (slave > 2)
-// close(slave);
-
- // Disable OPOST processing. Otherwise, '\n' are (on Linux at least)
- // translated to '\r\n'.
- struct termios tio;
- if (tcgetattr(slave, &tio) < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "tcgetattr(): " << perror << "\n";
- return -1;
- }
- tio.c_oflag &= ~OPOST;
- if (tcsetattr(slave, TCSANOW, &tio) < 0)
- {
- kdError(PTYPROC) << k_lineinfo << "tcsetattr(): " << perror << "\n";
- return -1;
- }
-
- return 0;
-}
diff --git a/tdeioslave/sftp/process.h b/tdeioslave/sftp/process.h
deleted file mode 100644
index ca154f45c..000000000
--- a/tdeioslave/sftp/process.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- *
- *
- * This file is part of the KDE project, module tdesu.
- * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
- *
- * This is free software; you can use this library under the GNU Library
- * General Public License, version 2. See the file "COPYING.LIB" for the
- * exact licensing terms.
- */
-
-#ifndef __Process_h_Included__
-#define __Process_h_Included__
-
-#include <tqcstring.h>
-#include <tqstring.h>
-#include <tqstringlist.h>
-#include <tqvaluelist.h>
-
-#define PTYPROC 7120
-
-class PTY;
-typedef TQValueList<TQCString> QCStringList;
-
-/**
- * Synchronous communication with tty programs.
- *
- * PtyProcess provides synchronous communication with tty based programs.
- * The communications channel used is a pseudo tty (as opposed to a pipe)
- * This means that programs which require a terminal will work.
- */
-
-class MyPtyProcess
-{
-public:
- MyPtyProcess();
- virtual ~MyPtyProcess();
-
- /**
- * Fork off and execute a command. The command's standard in and output
- * are connected to the pseudo tty. They are accessible with @ref #readLine
- * and @ref #writeLine.
- * @param command The command to execute.
- * @param args The arguments to the command.
- */
- int exec(TQCString command, QCStringList args);
-
- /**
- * Read a line from the program's standard out. Depending on the @em block
- * parameter, this call blocks until a single, full line is read.
- * @param block Block until a full line is read?
- * @return The output string.
- */
- TQCString readLine(bool block = true)
- { return readLineFrom(m_Fd, m_ptyBuf, block); }
-
- TQCString readLineFromPty(bool block = true)
- { return readLineFrom(m_Fd, m_ptyBuf, block); }
-
- TQCString readLineFromStdout(bool block = true)
- { return readLineFrom(m_stdinout, m_stdoutBuf, block); }
-
- TQCString readLineFromStderr(bool block = true)
- { return readLineFrom(m_err, m_stderrBuf, block); }
-
- /**
- * Write a line of text to the program's standard in.
- * @param line The text to write.
- * @param addNewline Adds a '\n' to the line.
- */
- void writeLine(TQCString line, bool addNewline=true);
-
- /**
- * Put back a line of input.
- * @param line The line to put back.
- * @param addNewline Adds a '\n' to the line.
- */
-
- void unreadLine(TQCString line, bool addNewline = true)
- { unreadLineFrom(m_ptyBuf, line, addNewline); }
-
- void unreadLineFromPty(TQCString line, bool addNewline = true)
- { unreadLineFrom(m_ptyBuf, line, addNewline); }
-
- void unreadLineFromStderr(TQCString line, bool addNewline = true)
- { unreadLineFrom(m_stderrBuf, line, addNewline); }
-
- void unreadLineFromStdout(TQCString line, bool addNewline = true)
- { unreadLineFrom(m_stdoutBuf, line, addNewline); }
-
- /**
- * Set exit string. If a line of program output matches this,
- * @ref #waitForChild() will terminate the program and return.
- */
- void setExitString(TQCString exit) { m_Exit = exit; }
-
- /**
- * Wait for the child to exit. See also @ref #setExitString.
- */
- int waitForChild();
-
- /**
- * Wait until the pty has cleared the ECHO flag. This is useful
- * when programs write a password prompt before they disable ECHO.
- * Disabling it might flush any input that was written.
- */
- int WaitSlave();
-
- /** Enables/disables local echo on the pseudo tty. */
- int enableLocalEcho(bool enable=true);
-
- /** Enable/disable terminal output. Relevant only to some subclasses. */
- void setTerminal(bool terminal) { m_bTerminal = terminal; }
-
- /** Overwritte the password as soon as it is used. Relevant only to
- * some subclasses. */
- void setErase(bool erase) { m_bErase = erase; }
-
- /** Return the filedescriptor of the process. */
- int fd() {return m_Fd;}
-
- /** Return the pid of the process. */
- int pid() {return m_Pid;}
-
- int stdioFd() {return m_stdinout;}
-
- int stderrFd() {return m_err;}
-
-protected:
- bool m_bErase, m_bTerminal;
- int m_Pid, m_Fd, m_stdinout, m_err;
- TQCString m_Command, m_Exit;
-
-private:
- int init();
- int SetupTTY(int fd);
-
- PTY *m_pPTY;
- TQCString m_TTY;
- TQCString m_ptyBuf, m_stderrBuf, m_stdoutBuf;
-
- TQCString readLineFrom(int fd, TQCString& inbuf, bool block);
- void unreadLineFrom(TQCString inbuf, TQCString line, bool addnl);
- class PtyProcessPrivate;
- PtyProcessPrivate *d;
-};
-
-#endif
diff --git a/tdeioslave/sftp/sftp.h b/tdeioslave/sftp/sftp.h
deleted file mode 100644
index 95518130d..000000000
--- a/tdeioslave/sftp/sftp.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* $OpenBSD: sftp.h,v 1.3 2001/03/07 10:11:23 djm Exp $ */
-
-/*
- * Copyright (c) 2001 Markus Friedl. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * draft-ietf-secsh-filexfer-01.txt
- */
-
-/* version */
-#define SSH2_FILEXFER_VERSION 3
-
-/* client to server */
-#define SSH2_FXP_INIT 1
-#define SSH2_FXP_OPEN 3
-#define SSH2_FXP_CLOSE 4
-#define SSH2_FXP_READ 5
-#define SSH2_FXP_WRITE 6
-#define SSH2_FXP_LSTAT 7
-#define SSH2_FXP_FSTAT 8
-#define SSH2_FXP_SETSTAT 9
-#define SSH2_FXP_FSETSTAT 10
-#define SSH2_FXP_OPENDIR 11
-#define SSH2_FXP_READDIR 12
-#define SSH2_FXP_REMOVE 13
-#define SSH2_FXP_MKDIR 14
-#define SSH2_FXP_RMDIR 15
-#define SSH2_FXP_REALPATH 16
-#define SSH2_FXP_STAT 17
-#define SSH2_FXP_RENAME 18
-#define SSH2_FXP_READLINK 19
-#define SSH2_FXP_SYMLINK 20
-
-/* server to client */
-#define SSH2_FXP_VERSION 2
-#define SSH2_FXP_STATUS 101
-#define SSH2_FXP_HANDLE 102
-#define SSH2_FXP_DATA 103
-#define SSH2_FXP_NAME 104
-#define SSH2_FXP_ATTRS 105
-
-#define SSH2_FXP_EXTENDED 200
-#define SSH2_FXP_EXTENDED_REPLY 201
-
-/* attributes */
-#define SSH2_FILEXFER_ATTR_SIZE 0x00000001
-#define SSH2_FILEXFER_ATTR_UIDGID 0x00000002
-#define SSH2_FILEXFER_ATTR_PERMISSIONS 0x00000004
-#define SSH2_FILEXFER_ATTR_ACMODTIME 0x00000008
-#define SSH2_FILEXFER_ATTR_EXTENDED 0x80000000
-
-/* portable open modes */
-#define SSH2_FXF_READ 0x00000001
-#define SSH2_FXF_WRITE 0x00000002
-#define SSH2_FXF_APPEND 0x00000004
-#define SSH2_FXF_CREAT 0x00000008
-#define SSH2_FXF_TRUNC 0x00000010
-#define SSH2_FXF_EXCL 0x00000020
-
-/* status messages */
-#define SSH2_FX_OK 0
-#define SSH2_FX_EOF 1
-#define SSH2_FX_NO_SUCH_FILE 2
-#define SSH2_FX_PERMISSION_DENIED 3
-#define SSH2_FX_FAILURE 4
-#define SSH2_FX_BAD_MESSAGE 5
-#define SSH2_FX_NO_CONNECTION 6
-#define SSH2_FX_CONNECTION_LOST 7
-#define SSH2_FX_OP_UNSUPPORTED 8
-#define SSH2_FX_MAX 8
diff --git a/tdeioslave/sftp/sftp.protocol b/tdeioslave/sftp/sftp.protocol
index 33e66867a..931ee7890 100644
--- a/tdeioslave/sftp/sftp.protocol
+++ b/tdeioslave/sftp/sftp.protocol
@@ -2,7 +2,7 @@
exec=tdeio_sftp
protocol=sftp
input=none
-listing=Name,Type,Size,Date,Access,Owner,Group,Link
+listing=Name,Type,Size,Date,Access,Owner,Group,Link,MimeType
output=filesystem
copyToFile=true
copyFromFile=true
diff --git a/tdeioslave/sftp/sftpfileattr.cpp b/tdeioslave/sftp/sftpfileattr.cpp
deleted file mode 100644
index ddd94bbe8..000000000
--- a/tdeioslave/sftp/sftpfileattr.cpp
+++ /dev/null
@@ -1,345 +0,0 @@
-/***************************************************************************
- sftpfileattr.cpp - description
- -------------------
- begin : Sat Jun 30 2001
- copyright : (C) 2001 by Lucas Fisher
- email : ljfisher@iastate.edu
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "sftpfileattr.h"
-
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <tqstring.h>
-#include <tqdatastream.h>
-
-#include <tdeio/global.h>
-#include <kremoteencoding.h>
-
-using namespace TDEIO;
-
-sftpFileAttr::sftpFileAttr(){
- clear();
- mDirAttrs = false;
-}
-
-sftpFileAttr::sftpFileAttr(KRemoteEncoding* encoding){
- clear();
- mDirAttrs = false;
- mEncoding = encoding;
-}
-
-
-/** Constructor to initialize the file attributes on declaration. */
-sftpFileAttr::sftpFileAttr(TQ_ULLONG size, uid_t uid, gid_t gid,
- mode_t permissions, time_t atime,
- time_t mtime, TQ_UINT32 extendedCount) {
- clear();
- mDirAttrs = false;
- mSize = size;
- mUid = uid;
- mGid = gid;
- mAtime = atime;
- mMtime = mtime;
- mPermissions = permissions;
- mExtendedCount = extendedCount;
-}
-
-sftpFileAttr::~sftpFileAttr(){
-}
-
-/** Returns a UDSEntry describing the file.
-The UDSEntry is generated from the sftp file attributes. */
-UDSEntry sftpFileAttr::entry() {
- UDSEntry entry;
- UDSAtom atom;
-
- atom.m_uds = UDS_NAME;
- atom.m_str = mFilename;
- entry.append(atom);
-
- if( mFlags & SSH2_FILEXFER_ATTR_SIZE ) {
- atom.m_uds = UDS_SIZE;
- atom.m_long = mSize;
- entry.append(atom);
- }
-
- if( mFlags & SSH2_FILEXFER_ATTR_ACMODTIME ) {
- atom.m_uds = UDS_ACCESS_TIME;
- atom.m_long = mAtime;
- entry.append(atom);
-
- atom.m_uds = UDS_MODIFICATION_TIME;
- atom.m_long = mMtime;
- entry.append(atom);
- }
-
- if( mFlags & SSH2_FILEXFER_ATTR_UIDGID ) {
- if( mUserName.isEmpty() || mGroupName.isEmpty() )
- getUserGroupNames();
-
- atom.m_uds = UDS_USER;
- atom.m_str = mUserName;
- entry.append(atom);
-
- atom.m_uds = UDS_GROUP;
- atom.m_str = mGroupName;
- entry.append(atom);
- }
-
- if( mFlags & SSH2_FILEXFER_ATTR_PERMISSIONS ) {
- atom.m_uds = UDS_ACCESS;
- atom.m_long = mPermissions;
- entry.append(atom);
-
- mode_t type = fileType();
-
- // Set the type if we know what it is
- if( type != 0 ) {
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_long = (mLinkType ? mLinkType:type);
- entry.append(atom);
- }
-
- if( S_ISLNK(type) ) {
- atom.m_uds = UDS_LINK_DEST;
- atom.m_str = mLinkDestination;
- entry.append(atom);
- }
- }
-
- return entry;
-}
-
-/** Use to output the file attributes to a sftp packet */
-TQDataStream& operator<< (TQDataStream& s, const sftpFileAttr& fa) {
- s << (TQ_UINT32)fa.mFlags;
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_SIZE )
- { s << (TQ_ULLONG)fa.mSize; }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_UIDGID )
- { s << (TQ_UINT32)fa.mUid << (TQ_UINT32)fa.mGid; }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_PERMISSIONS )
- { s << (TQ_UINT32)fa.mPermissions; }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_ACMODTIME )
- { s << (TQ_UINT32)fa.mAtime << (TQ_UINT32)fa.mMtime; }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_EXTENDED ) {
- s << (TQ_UINT32)fa.mExtendedCount;
- // XXX: Write extensions to data stream here
- // s.writeBytes(extendedtype).writeBytes(extendeddata);
- }
- return s;
-}
-
-
-/** Use to read a file attribute from a sftp packet */
-TQDataStream& operator>> (TQDataStream& s, sftpFileAttr& fa) {
-
- // XXX Add some error checking in here in case
- // we get a bad sftp packet.
-
- fa.clear();
-
- if( fa.mDirAttrs ) {
- TQCString fn;
- s >> fn;
- fn.truncate( fn.size() );
-
- fa.mFilename = fa.mEncoding->decode( fn );
-
- s >> fa.mLongname;
- fa.mLongname.truncate( fa.mLongname.size() );
- //kdDebug() << ">>: ftpfileattr long filename (" << fa.mLongname.size() << ")= " << fa.mLongname << endl;
- }
-
- s >> fa.mFlags; // get flags
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_SIZE ) {
- TQ_ULLONG fileSize;
- s >> fileSize;
- fa.setFileSize(fileSize);
- }
-
- TQ_UINT32 x;
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_UIDGID ) {
- s >> x; fa.setUid(x);
- s >> x; fa.setGid(x);
- }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_PERMISSIONS ) {
- s >> x; fa.setPermissions(x);
- }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_ACMODTIME ) {
- s >> x; fa.setAtime(x);
- s >> x; fa.setMtime(x);
- }
-
- if( fa.mFlags & SSH2_FILEXFER_ATTR_EXTENDED ) {
- s >> x; fa.setExtendedCount(x);
- // XXX: Read in extensions from data stream here
- // s.readBytes(extendedtype).readBytes(extendeddata);
- }
-
- fa.getUserGroupNames();
- return s;
-}
-/** Parse longname for the owner and group names. */
-void sftpFileAttr::getUserGroupNames(){
- // Get the name of the owner and group of the file from longname.
- TQString user, group;
- if( mLongname.isEmpty() ) {
- // do not have the user name so use the user id instead
- user.setNum(mUid);
- group.setNum(mGid);
- }
- else {
- int field = 0;
- int i = 0;
- int l = mLongname.length();
-
- TQString longName = mEncoding->decode( mLongname );
-
- kdDebug(7120) << "Decoded: " << longName << endl;
-
- // Find the beginning of the third field which contains the user name.
- while( field != 2 ) {
- if( longName[i].isSpace() ) {
- field++; i++;
- while( i < l && longName[i].isSpace() ) { i++; }
- }
- else { i++; }
- }
- // i is the index of the first character of the third field.
- while( i < l && !longName[i].isSpace() ) {
- user.append(longName[i]);
- i++;
- }
-
- // i is the first character of the space between fields 3 and 4
- // user contains the owner's user name
- while( i < l && longName[i].isSpace() ) {
- i++;
- }
-
- // i is the first character of the fourth field
- while( i < l && !longName[i].isSpace() ) {
- group.append(longName[i]);
- i++;
- }
- // group contains the name of the group.
- }
-
- mUserName = user;
- mGroupName = group;
-}
-
-/** No descriptions */
-kdbgstream& operator<< (kdbgstream& s, sftpFileAttr& a) {
- s << "Filename: " << a.mFilename
- << ", Uid: " << a.mUid
- << ", Gid: " << a.mGid
- << ", Username: " << a.mUserName
- << ", GroupName: " << a.mGroupName
- << ", Permissions: " << a.mPermissions
- << ", size: " << a.mSize
- << ", atime: " << a.mAtime
- << ", mtime: " << a.mMtime
- << ", extended cnt: " << a.mExtendedCount;
-
- if (S_ISLNK(a.mLinkType)) {
- s << ", Link Type: " << a.mLinkType;
- s << ", Link Destination: " << a.mLinkDestination;
- }
-
- return s;
-}
-
-/** Make sure it builds with NDEBUG */
-kndbgstream& operator<< (kndbgstream& s, sftpFileAttr& ) {
- return s;
-}
-
-/** Clear all attributes and flags. */
-void sftpFileAttr::clear(){
- clearAtime();
- clearMtime();
- clearGid();
- clearUid();
- clearFileSize();
- clearPermissions();
- clearExtensions();
- mFilename = TQString::null;
- mGroupName = TQString::null;
- mUserName = TQString::null;
- mLinkDestination = TQString::null;
- mFlags = 0;
- mLongname = "\0";
- mLinkType = 0;
-}
-
-/** Return the size of the sftp attribute. */
-TQ_UINT32 sftpFileAttr::size() const{
- TQ_UINT32 size = 4; // for the attr flag
- if( mFlags & SSH2_FILEXFER_ATTR_SIZE )
- size += 8;
-
- if( mFlags & SSH2_FILEXFER_ATTR_UIDGID )
- size += 8;
-
- if( mFlags & SSH2_FILEXFER_ATTR_PERMISSIONS )
- size += 4;
-
- if( mFlags & SSH2_FILEXFER_ATTR_ACMODTIME )
- size += 8;
-
- if( mFlags & SSH2_FILEXFER_ATTR_EXTENDED ) {
- size += 4;
- // add size of extensions
- }
- return size;
-}
-
-/** Returns the file type as determined from the file permissions */
-mode_t sftpFileAttr::fileType() const{
- mode_t type = 0;
-
- if( S_ISLNK(mPermissions) )
- type |= S_IFLNK;
-
- if( S_ISREG(mPermissions) )
- type |= S_IFREG;
- else if( S_ISDIR(mPermissions) )
- type |= S_IFDIR;
- else if( S_ISCHR(mPermissions) )
- type |= S_IFCHR;
- else if( S_ISBLK(mPermissions) )
- type |= S_IFBLK;
- else if( S_ISFIFO(mPermissions) )
- type |= S_IFIFO;
- else if( S_ISSOCK(mPermissions) )
- type |= S_IFSOCK;
-
- return type;
-}
-
-void sftpFileAttr::setEncoding( KRemoteEncoding* encoding )
-{
- mEncoding = encoding;
-}
diff --git a/tdeioslave/sftp/sftpfileattr.h b/tdeioslave/sftp/sftpfileattr.h
deleted file mode 100644
index 43b56979d..000000000
--- a/tdeioslave/sftp/sftpfileattr.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/***************************************************************************
- sftpfileattr.h - description
- -------------------
- begin : Sat Jun 30 2001
- copyright : (C) 2001 by Lucas Fisher
- email : ljfisher@iastate.edu
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef SFTPFILEATTR_H
-#define SFTPFILEATTR_H
-
-#include <sys/types.h>
-
-#include <tqglobal.h>
-#include <tqstring.h>
-#include <tqdatastream.h>
-
-#include <tdeio/global.h>
-#include <kdebug.h>
-
-#include "sftp.h"
-
-/**
- *@author Lucas Fisher
- */
-
-class KRemoteEncoding;
-
-class sftpFileAttr {
-
-private: // Private attributes
- /** Name of file. */
- TQString mFilename;
-
- /** Specifies which fields of the file attribute are available. */
- TQ_UINT32 mFlags;
-
- /** Size of the file in bytes. Should be 64 bit safe. */
- TQ_ULLONG mSize;
-
- /** User id of the owner of the file. */
- uid_t mUid;
-
- /** Group id of the group to which the file belongs. */
- gid_t mGid;
-
- /** POSIX permissions of the file. */
- mode_t mPermissions;
-
- /** Last access time of the file in seconds from Jan 1, 1970. */
- time_t mAtime;
-
- /** Last modification time of file in seconds since Jan. 1, 1970. */
- time_t mMtime;
-
- /** Number of file attribute extensions.
- Not currently implemented */
- TQ_UINT32 mExtendedCount;
-
- /** Longname of the file as found in a SSH_FXP_NAME sftp packet.
- These contents are parse to return the file's owner name and
- gr oup name. */
- TQCString mLongname;
-
- TQString mUserName;
- TQString mGroupName;
-
- /** If file is a link, contains the destination of the link */
- TQString mLinkDestination;
-
- /** If resource is a link, contains the type the link,e.g. file,dir... */
- mode_t mLinkType;
-
- /** Whether >> operator should read filename and longname from the stream. */
- bool mDirAttrs;
-
- /** Holds the encoding of the remote host */
- KRemoteEncoding* mEncoding;
-
-public:
- sftpFileAttr();
-
- sftpFileAttr(KRemoteEncoding* encoding);
-
- ~sftpFileAttr();
-
- /** Constructor to initialize the file attributes on declaration. */
- sftpFileAttr(TQ_ULLONG size_, uid_t uid_, gid_t gid_, mode_t permissions_,
- time_t atime_, time_t mtime_, TQ_UINT32 extendedCount_ = 0);
-
- /** Return the size of the sftp attribute not including filename or longname*/
- TQ_UINT32 size() const;
-
- /** Clear all attributes and flags. */
- void clear();
-
- /** Set the size of the file. */
- void setFileSize(TQ_ULLONG s)
- { mSize = s; mFlags |= SSH2_FILEXFER_ATTR_SIZE; }
-
- /** The size file attribute will not be included in the UDSEntry
- or when the file attribute is written to the sftp packet. */
- void clearFileSize()
- { mSize = 0; mFlags &= ~SSH2_FILEXFER_ATTR_SIZE; }
-
- /** Returns the size of the file. */
- TQ_ULLONG fileSize() const { return mSize; }
-
- /** Sets the POSIX permissions of the file. */
- void setPermissions(mode_t p)
- { mPermissions = p; mFlags |= SSH2_FILEXFER_ATTR_PERMISSIONS; }
-
- /** The permissions file attribute will not be included in the UDSEntry
- or when the file attribute is written to the sftp packet. */
- void clearPermissions()
- { mPermissions = 0; mFlags &= ~SSH2_FILEXFER_ATTR_PERMISSIONS; }
-
- /** Returns the POSIX permissons of the file. */
- mode_t permissions() const { return mPermissions; }
-
- /** Sets the group id of the file. */
- void setGid(gid_t id)
- { mGid = id; mFlags |= SSH2_FILEXFER_ATTR_UIDGID; }
-
- /** Neither the gid or uid file attributes will not be included in the UDSEntry
- or when the file attribute is written to the sftp packet. This is
- equivalent to clearUid() */
- void clearGid()
- { mGid = 0; mFlags &= SSH2_FILEXFER_ATTR_UIDGID; }
-
- /** Returns the group id of the file. */
- gid_t gid() const { return mGid; }
-
- /** Sets the uid of the file. */
- void setUid(uid_t id)
- { mUid = id; mFlags |= SSH2_FILEXFER_ATTR_UIDGID; }
-
- /** Neither the gid or uid file attributes will not be included in the UDSEntry
- or when the file attribute is written to the sftp packet. This is
- equivalent to clearGid() */
- void clearUid()
- { mUid = 0; mFlags &= SSH2_FILEXFER_ATTR_UIDGID; }
-
- /** Returns the user id of the file. */
- gid_t uid() const { return mUid; }
-
- /** Set the modificatoin time of the file in seconds since Jan. 1, 1970. */
- void setMtime(time_t t)
- { mMtime = t; mFlags |= SSH2_FILEXFER_ATTR_ACMODTIME; }
-
- /** Neither the mtime or atime file attributes will not be included in the UDSEntry
- or when the file attribute is written to the sftp packet. This is
- equivalent to clearAtime() */
- void clearMtime()
- { mMtime = 0; mFlags &= SSH2_FILEXFER_ATTR_ACMODTIME; }
-
- /** Returns the modification time of the file in seconds since Jan. 1, 1970. */
- time_t mtime() const { return mMtime; }
-
- /** Sets the access time of the file in seconds since Jan. 1, 1970. */
- void setAtime(time_t t)
- { mAtime = t; mFlags |= SSH2_FILEXFER_ATTR_ACMODTIME; }
-
- /** Neither the atime or mtime file attributes will not be included in the UDSEntry
- or when the file attribute is written to the sftp packet. This is
- equivalent to clearMtime() */
- void clearAtime()
- { mAtime = 0; mFlags &= SSH2_FILEXFER_ATTR_ACMODTIME; }
-
- /** Returns the last access time of the file in seconds since Jan. 1, 1970. */
- time_t atime() const { return mAtime; }
-
- /** Sets the number of file attribute extensions. */
- void setExtendedCount(unsigned int c)
- { mExtendedCount = c; mFlags |= SSH2_FILEXFER_ATTR_EXTENDED; }
-
- /** No extensions will be included when the file attribute is written
- to a sftp packet. */
- void clearExtensions()
- { mExtendedCount = 0; mFlags &= ~SSH2_FILEXFER_ATTR_EXTENDED; }
-
- /** Returns the number of file attribute extentsions. */
- unsigned int extendedCount() const { return mExtendedCount; }
-
- /** Returns the flags for the sftp file attributes. */
- unsigned int flags() const { return mFlags; }
-
- /** Sets file's longname. See sftpFileAttr::longname. */
- void setLongname(TQString l) { mLongname = l.latin1(); }
-
- /** Returns a string describing the file attributes. The format is specific
- to the implementation of the sftp server. In most cases (ie OpenSSH)
- this is similar to the long output of 'ls'. */
- TQString longname() const { return mLongname; }
-
- void setLinkDestination(const TQString& target)
- { mLinkDestination = target; }
-
- TQString linkDestination()
- { return mLinkDestination; }
-
- /** Sets the actual type a symbolic link points to. */
- void setLinkType (mode_t type) { mLinkType = type; }
-
- mode_t linkType() const { return mLinkType; }
-
- /** No descriptions */
- void setFilename(const TQString& fn)
- { mFilename = fn; }
-
- TQString filename() const
- { return mFilename; }
-
- /** Returns a UDSEntry describing the file.
- The UDSEntry is generated from the sftp file attributes. */
- TDEIO::UDSEntry entry();
-
- /** Use to output the file attributes to a sftp packet
- This will only write the sftp ATTR structure to the stream.
- It will never write the filename and longname because the client
- never sends those to the server. */
- friend TQDataStream& operator<< (TQDataStream&, const sftpFileAttr&);
-
- /** Use to read a file attribute from a sftp packet.
- Read this carefully! If the DirAttrs flag is true, this will
- read the filename, longname, and file attributes from the stream.
- This is for use with listing directories.
- If the DirAttrs flag is false, this will only read file attributes
- from the stream.
- BY DEFAULT, A NEW INSTANCE HAS DirAttrs == false */
- friend TQDataStream& operator>> (TQDataStream&, sftpFileAttr&);
-
- /** Parse longname for the owner and group names. */
- void getUserGroupNames();
-
- /** Sets the DirAttrs flag. This flag affects how the >> operator works on data streams. */
- void setDirAttrsFlag(bool flag){ mDirAttrs = flag; }
-
- /** Gets the DirAttrs flag. */
- bool getDirAttrsFlag() const { return mDirAttrs; }
-
- friend kdbgstream& operator<< (kdbgstream& s, sftpFileAttr& a);
- friend kndbgstream& operator<< (kndbgstream& s, sftpFileAttr& a);
-
- /** Returns the file type as determined from the file permissions */
- mode_t fileType() const;
-
- /** Set the encoding of the remote file system */
- void setEncoding( KRemoteEncoding* encoding );
-};
-
-#endif
diff --git a/tdeioslave/sftp/tdeio_sftp.cpp b/tdeioslave/sftp/tdeio_sftp.cpp
index eab0eae42..d62e7e062 100644
--- a/tdeioslave/sftp/tdeio_sftp.cpp
+++ b/tdeioslave/sftp/tdeio_sftp.cpp
@@ -1,62 +1,54 @@
-/***************************************************************************
- sftp.cpp - description
- -------------------
- begin : Fri Jun 29 23:45:40 CDT 2001
- copyright : (C) 2001 by Lucas Fisher
- email : ljfisher@purdue.edu
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
/*
-DEBUGGING
-We are pretty much left with kdDebug messages for debugging. We can't use a gdb
-as described in the ioslave DEBUG.howto because tdeinit has to run in a terminal.
-Ssh will detect this terminal and ask for a password there, but will just get garbage.
-So we can't connect.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+ * Copyright (c) 2001 Lucas Fisher <ljfisher@purdue.edu>
+ * Copyright (c) 2009 Andreas Schneider <mail@cynapses.org>
+ * Copyright (c) 2020 Martin Sandsmark <martin@sandsmark.ninja>
+ * KDE2 port
+ * Copyright (c) 2022 Mavridis Philippe <mavridisf@gmail.com>
+ * Trinity port
+ *
+ * Portions Copyright (c) 2020-2021 Harald Sitter <sitter@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License (LGPL) as published by the Free Software Foundation;
+ * either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * 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 "tdeio_sftp.h"
#include <fcntl.h>
-#include <tqcstring.h>
-#include <tqstring.h>
-#include <tqobject.h>
-#include <tqstrlist.h>
+#include <tqapplication.h>
#include <tqfile.h>
-#include <tqbuffer.h>
+#include <tqdir.h>
#include <stdlib.h>
#include <unistd.h>
-#include <signal.h>
#include <errno.h>
-#include <ctype.h>
#include <time.h>
-#include <netdb.h>
#include <string.h>
-#include <netinet/in.h>
#include <arpa/inet.h>
+#include <netinet/in.h>
+
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <sys/wait.h>
#include <tdeapplication.h>
-#include <kuser.h>
#include <kdebug.h>
#include <tdemessagebox.h>
-#include <kinstance.h>
#include <tdeglobal.h>
#include <kstandarddirs.h>
#include <tdelocale.h>
@@ -64,15 +56,14 @@ So we can't connect.
#include <tdeio/ioslave_defaults.h>
#include <kmimetype.h>
#include <kmimemagic.h>
-#include <klargefile.h>
-#include <kremoteencoding.h>
+#include <signal.h>
-#include "sftp.h"
-#include "tdeio_sftp.h"
-#include "atomicio.h"
-#include "sftpfileattr.h"
-#include "ksshprocess.h"
+#include <libssh/libssh.h>
+#include <libssh/sftp.h>
+#include <libssh/callbacks.h>
+#define TDEIO_SFTP_SPECIAL_TIMEOUT 30
+#define ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0)
using namespace TDEIO;
extern "C"
@@ -87,8 +78,13 @@ extern "C"
kdDebug(TDEIO_SFTP_DB) << "Usage: tdeio_sftp protocol domain-socket1 domain-socket2" << endl;
exit(-1);
}
-
sftpProtocol slave(argv[2], argv[3]);
+
+ if (getenv("DEBUG_TDEIO_SFTP")) {
+ // Give us a coredump in the journal
+ signal(6, SIG_DFL);
+ }
+
slave.dispatchLoop();
kdDebug(TDEIO_SFTP_DB) << "*** tdeio_sftp Done" << endl;
@@ -96,2187 +92,1753 @@ extern "C"
}
}
-
-/*
- * This helper handles some special issues (blocking and interrupted
- * system call) when writing to a file handle.
- *
- * @return 0 on success or an error code on failure (ERR_COULD_NOT_WRITE,
- * ERR_DISK_FULL, ERR_CONNECTION_BROKEN).
- */
-static int writeToFile (int fd, const char *buf, size_t len)
+// The callback function for libssh
+int auth_callback(const char *prompt, char *buf, size_t len,
+ int echo, int verify, void *userdata)
{
- while (len > 0)
- {
- ssize_t written = ::write(fd, buf, len);
- if (written >= 0)
- {
- buf += written;
- len -= written;
- continue;
- }
+ if (userdata == NULL) {
+ return -1;
+ }
- switch(errno)
- {
- case EINTR:
- continue;
- case EPIPE:
- return ERR_CONNECTION_BROKEN;
- case ENOSPC:
- return ERR_DISK_FULL;
- default:
- return ERR_COULD_NOT_WRITE;
- }
+ sftpProtocol *slave = (sftpProtocol *) userdata;
+
+ if (slave->auth_callback(prompt, buf, len, echo, verify, userdata) < 0) {
+ return -1;
}
+
return 0;
}
-sftpProtocol::sftpProtocol(const TQCString &pool_socket, const TQCString &app_socket)
- : SlaveBase("tdeio_sftp", pool_socket, app_socket),
- mConnected(false), mPort(-1), mMsgId(0) {
- kdDebug(TDEIO_SFTP_DB) << "sftpProtocol(): pid = " << getpid() << endl;
-}
+void log_callback(ssh_session session, int priority, const char *message,
+ void *userdata) {
+ if (userdata == NULL) {
+ return;
+ }
+ sftpProtocol *slave = (sftpProtocol *) userdata;
-sftpProtocol::~sftpProtocol() {
- kdDebug(TDEIO_SFTP_DB) << "~sftpProtocol(): pid = " << getpid() << endl;
- closeConnection();
+ slave->log_callback(session, priority, message, userdata);
}
-/**
- * Type is a sftp packet type found in .sftp.h'.
- * Example: SSH2_FXP_READLINK, SSH2_FXP_RENAME, etc.
- *
- * Returns true if the type is supported by the sftp protocol
- * version negotiated by the client and server (sftpVersion).
- */
-bool sftpProtocol::isSupportedOperation(int type) {
- switch (type) {
- case SSH2_FXP_VERSION:
- case SSH2_FXP_STATUS:
- case SSH2_FXP_HANDLE:
- case SSH2_FXP_DATA:
- case SSH2_FXP_NAME:
- case SSH2_FXP_ATTRS:
- case SSH2_FXP_INIT:
- case SSH2_FXP_OPEN:
- case SSH2_FXP_CLOSE:
- case SSH2_FXP_READ:
- case SSH2_FXP_WRITE:
- case SSH2_FXP_LSTAT:
- case SSH2_FXP_FSTAT:
- case SSH2_FXP_SETSTAT:
- case SSH2_FXP_FSETSTAT:
- case SSH2_FXP_OPENDIR:
- case SSH2_FXP_READDIR:
- case SSH2_FXP_REMOVE:
- case SSH2_FXP_MKDIR:
- case SSH2_FXP_RMDIR:
- case SSH2_FXP_REALPATH:
- case SSH2_FXP_STAT:
- return true;
- case SSH2_FXP_RENAME:
- return sftpVersion >= 2 ? true : false;
- case SSH2_FXP_EXTENDED:
- case SSH2_FXP_EXTENDED_REPLY:
- case SSH2_FXP_READLINK:
- case SSH2_FXP_SYMLINK:
- return sftpVersion >= 3 ? true : false;
- default:
- kdDebug(TDEIO_SFTP_DB) << "isSupportedOperation(type:"
- << type << "): unrecognized operation type" << endl;
- break;
+// Public key authentication
+int sftpProtocol::auth_callback(const char *prompt, char *buf, size_t len,
+ int echo, int verify, void *userdata)
+{
+ // unused variables
+ (void) echo;
+ (void) verify;
+ (void) userdata;
+
+ kdDebug(TDEIO_SFTP_DB) << "Entering public key authentication callback" << endl;
+
+ if(!pubKeyInfo)
+ {
+ pubKeyInfo = new TDEIO::AuthInfo;
+ }
+ else
+ {
+ // TODO: inform user about incorrect password
}
- return false;
-}
+ pubKeyInfo->url.setProtocol("sftp");
+ pubKeyInfo->url.setHost(mHost);
+ pubKeyInfo->url.setPort(mPort);
+ pubKeyInfo->url.setUser(mUsername);
+
+ pubKeyInfo->caption = i18n("SFTP Login");
+ pubKeyInfo->comment = "sftp://" + mUsername + "@" + mHost;
+ pubKeyInfo->username = mUsername;
+ pubKeyInfo->readOnly = false;
+ pubKeyInfo->prompt = TQString::fromUtf8(prompt);
+ pubKeyInfo->keepPassword = false; // don't save passwords for public key,
+ // that's the task of ssh-agent.
+
+ if (!openPassDlg(*pubKeyInfo)) {
+ kdDebug(TDEIO_SFTP_DB) << "User canceled entry of public key password." << endl;
+ return -1;
+ }
-void sftpProtocol::copy(const KURL &src, const KURL &dest, int permissions, bool overwrite)
-{
- kdDebug(TDEIO_SFTP_DB) << "copy(): " << src << " -> " << dest << endl;
+ strncpy(buf, pubKeyInfo->password.utf8().data(), len - 1);
- bool srcLocal = src.isLocalFile();
- bool destLocal = dest.isLocalFile();
+ pubKeyInfo->password.fill('x');
+ pubKeyInfo->password = "";
- if ( srcLocal && !destLocal ) // Copy file -> sftp
- sftpCopyPut(src, dest, permissions, overwrite);
- else if ( destLocal && !srcLocal ) // Copy sftp -> file
- sftpCopyGet(dest, src, permissions, overwrite);
- else
- error(ERR_UNSUPPORTED_ACTION, TQString::null);
+ return 0;
}
-void sftpProtocol::sftpCopyGet(const KURL& dest, const KURL& src, int mode, bool overwrite)
-{
- kdDebug(TDEIO_SFTP_DB) << "sftpCopyGet(): " << src << " -> " << dest << endl;
+void sftpProtocol::log_callback(ssh_session session, int priority,
+ const char *message, void *userdata) {
+ (void) session;
+ (void) userdata;
- // Attempt to establish a connection...
- openConnection();
- if( !mConnected )
- return;
+ kdDebug(TDEIO_SFTP_DB) << "[" << priority << "] " << message << endl;
+}
- KDE_struct_stat buff_orig;
- TQCString dest_orig ( TQFile::encodeName(dest.path()) );
- bool origExists = (KDE_lstat( dest_orig.data(), &buff_orig ) != -1);
+int sftpProtocol::authenticateKeyboardInteractive(AuthInfo &info) {
+ TQString name, instruction, prompt;
+ int err = SSH_AUTH_ERROR;
- if (origExists)
- {
- if (S_ISDIR(buff_orig.st_mode))
- {
- error(ERR_IS_DIRECTORY, dest.prettyURL());
- return;
- }
+ kdDebug(TDEIO_SFTP_DB) << "Entering keyboard interactive function" << endl;
- if (!overwrite)
- {
- error(ERR_FILE_ALREADY_EXIST, dest.prettyURL());
- return;
- }
- }
+ err = ssh_userauth_kbdint(mSession, mUsername.utf8().data(), NULL);
+ while (err == SSH_AUTH_INFO) {
+ int n = 0;
+ int i = 0;
- TDEIO::filesize_t offset = 0;
- TQCString dest_part ( dest_orig + ".part" );
+ name = TQString::fromUtf8(ssh_userauth_kbdint_getname(mSession));
+ instruction = TQString::fromUtf8(ssh_userauth_kbdint_getinstruction(mSession));
+ n = ssh_userauth_kbdint_getnprompts(mSession);
- int fd = -1;
- bool partExists = false;
- bool markPartial = config()->readBoolEntry("MarkPartial", true);
+ kdDebug(TDEIO_SFTP_DB) << "name=" << name << " instruction=" << instruction
+ << " prompts" << n << endl;
- if (markPartial)
- {
- KDE_struct_stat buff_part;
- partExists = (KDE_stat( dest_part.data(), &buff_part ) != -1);
+ for (i = 0; i < n; ++i) {
+ char echo;
+ const char *answer = "";
- if (partExists && buff_part.st_size > 0 && S_ISREG(buff_part.st_mode))
- {
- if (canResume( buff_part.st_size ))
- {
- offset = buff_part.st_size;
- kdDebug(TDEIO_SFTP_DB) << "sftpCopyGet: Resuming @ " << offset << endl;
- }
- }
+ prompt = TQString::fromUtf8(ssh_userauth_kbdint_getprompt(mSession, i, &echo));
+ kdDebug(TDEIO_SFTP_DB) << "prompt=" << prompt << " echo=" << TQString::number(echo) << endl;
+ if (echo) {
+ // See RFC4256 Section 3.3 User Interface
+ TQString newPrompt;
+ TDEIO::AuthInfo infoKbdInt;
- if (offset > 0)
- {
- fd = KDE_open(dest_part.data(), O_RDWR);
- offset = KDE_lseek(fd, 0, SEEK_END);
- if (offset == 0)
- {
- error(ERR_CANNOT_RESUME, dest.prettyURL());
- return;
- }
+ infoKbdInt.url.setProtocol("sftp");
+ infoKbdInt.url.setHost(mHost);
+ infoKbdInt.url.setPort(mPort);
+
+ infoKbdInt.caption = i18n("SFTP Login");
+ infoKbdInt.comment = "sftp://" + mUsername + "@" + mHost;
+
+ if (!name.isEmpty()) {
+ infoKbdInt.caption = TQString(i18n("SFTP Login") + " - " + name);
}
- else
- {
- // Set up permissions properly, based on what is done in file io-slave
- int openFlags = (O_CREAT | O_TRUNC | O_WRONLY);
- int initialMode = (mode == -1) ? 0666 : (mode | S_IWUSR);
- fd = KDE_open(dest_part.data(), openFlags, initialMode);
+
+ if (!instruction.isEmpty()) {
+ newPrompt = instruction + "\n\n";
}
- }
- else
- {
- // Set up permissions properly, based on what is done in file io-slave
- int openFlags = (O_CREAT | O_TRUNC | O_WRONLY);
- int initialMode = (mode == -1) ? 0666 : (mode | S_IWUSR);
- fd = KDE_open(dest_orig.data(), openFlags, initialMode);
- }
- if(fd == -1)
- {
- kdDebug(TDEIO_SFTP_DB) << "sftpCopyGet: Unable to open (" << fd << ") for writting." << endl;
- if (errno == EACCES)
- error (ERR_WRITE_ACCESS_DENIED, dest.prettyURL());
- else
- error (ERR_CANNOT_OPEN_FOR_WRITING, dest.prettyURL());
- return;
- }
+ newPrompt.append(prompt + "\n\n");
+ infoKbdInt.readOnly = false;
+ infoKbdInt.keepPassword = false;
+ infoKbdInt.prompt = i18n("Use the username input field to answer this question.");
- Status info = sftpGet(src, offset, fd);
- if ( info.code != 0 )
- {
- // Should we keep the partially downloaded file ??
- TDEIO::filesize_t size = config()->readNumEntry("MinimumKeepSize", DEFAULT_MINIMUM_KEEP_SIZE);
- if (info.size < size)
- ::remove(dest_part.data());
- error(info.code, info.text);
- return;
- }
+ if (openPassDlg(infoKbdInt)) {
+ kdDebug(TDEIO_SFTP_DB) << "Got the answer from the password dialog" << endl;
+ answer = info.username.utf8().data();
+ }
- if (::close(fd) != 0)
- {
- error(ERR_COULD_NOT_WRITE, dest.prettyURL());
- return;
- }
+ if (ssh_userauth_kbdint_setanswer(mSession, i, answer) < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "An error occurred setting the answer: "
+ << ssh_get_error(mSession) << endl;
+ return SSH_AUTH_ERROR;
+ }
+ break;
+ } else {
+ if (prompt.lower().startsWith("password")) {
+ answer = mPassword.utf8().data();
+ } else {
+ info.readOnly = true; // set username readonly
+ info.prompt = prompt;
+
+ if (openPassDlg(info)) {
+ kdDebug(TDEIO_SFTP_DB) << "Got the answer from the password dialog" << endl;
+ answer = info.password.utf8().data();
+ }
+ }
- //
- if (markPartial)
- {
- if (::rename(dest_part.data(), dest_orig.data()) != 0)
- {
- error (ERR_CANNOT_RENAME_PARTIAL, dest_part);
- return;
+ if (ssh_userauth_kbdint_setanswer(mSession, i, answer) < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "An error occurred setting the answer: "
+ << ssh_get_error(mSession) << endl;
+ return SSH_AUTH_ERROR;
+ }
}
}
+ err = ssh_userauth_kbdint(mSession, mUsername.utf8().data(), NULL);
+ }
- data(TQByteArray());
- kdDebug(TDEIO_SFTP_DB) << "sftpCopyGet(): emit finished()" << endl;
- finished();
+ return err;
}
-sftpProtocol::Status sftpProtocol::sftpGet( const KURL& src, TDEIO::filesize_t offset, int fd )
-{
- int code;
- sftpFileAttr attr(remoteEncoding());
+void sftpProtocol::reportError(const KURL &url, const int err) {
+ kdDebug(TDEIO_SFTP_DB) << "url = " << url.url() << " - err=" << err << endl;
- Status res;
- res.code = 0;
- res.size = 0;
-
- kdDebug(TDEIO_SFTP_DB) << "sftpGet(): " << src << endl;
+ switch (err) {
+ case SSH_FX_OK:
+ break;
+ case SSH_FX_NO_SUCH_FILE:
+ case SSH_FX_NO_SUCH_PATH:
+ error(TDEIO::ERR_DOES_NOT_EXIST, url.prettyURL());
+ break;
+ case SSH_FX_PERMISSION_DENIED:
+ error(TDEIO::ERR_ACCESS_DENIED, url.prettyURL());
+ break;
+ case SSH_FX_FILE_ALREADY_EXISTS:
+ error(TDEIO::ERR_FILE_ALREADY_EXIST, url.prettyURL());
+ break;
+ case SSH_FX_INVALID_HANDLE:
+ error(TDEIO::ERR_MALFORMED_URL, url.prettyURL());
+ break;
+ case SSH_FX_OP_UNSUPPORTED:
+ error(TDEIO::ERR_UNSUPPORTED_ACTION, url.prettyURL());
+ break;
+ case SSH_FX_BAD_MESSAGE:
+ error(TDEIO::ERR_UNKNOWN, url.prettyURL());
+ break;
+ default:
+ error(TDEIO::ERR_INTERNAL, url.prettyURL());
+ break;
+ }
+}
- // stat the file first to get its size
- if( (code = sftpStat(src, attr)) != SSH2_FX_OK ) {
- return doProcessStatus(code, src.prettyURL());
- }
+bool sftpProtocol::createUDSEntry(const TQString &filename, const TQByteArray &path,
+ UDSEntry &entry, short int details) {
+ mode_t type;
+ mode_t access;
+ char *link;
- // We cannot get file if it is a directory
- if( attr.fileType() == S_IFDIR ) {
- res.text = src.prettyURL();
- res.code = ERR_IS_DIRECTORY;
- return res;
- }
+ Q_ASSERT(entry.count() == 0);
- TDEIO::filesize_t fileSize = attr.fileSize();
- TQ_UINT32 pflags = SSH2_FXF_READ;
- attr.clear();
+ sftp_attributes sb = sftp_lstat(mSftp, path.data());
+ if (sb == NULL) {
+ return false;
+ }
- TQByteArray handle;
- if( (code = sftpOpen(src, pflags, attr, handle)) != SSH2_FX_OK ) {
- res.text = src.prettyURL();
- res.code = ERR_CANNOT_OPEN_FOR_READING;
- return res;
+ UDSAtom atom;
+ atom.m_uds = UDS_NAME;
+ atom.m_str = filename;
+ entry.append(atom);
+
+ if (sb->type == SSH_FILEXFER_TYPE_SYMLINK) {
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFREG;
+ entry.append(atom);
+ link = sftp_readlink(mSftp, path.data());
+ if (link == NULL) {
+ sftp_attributes_free(sb);
+ return false;
+ }
+ atom.m_uds = UDS_LINK_DEST;
+ atom.m_str = TQFile::decodeName(link);
+ entry.append(atom);
+ delete link;
+ // A symlink -> follow it only if details > 1
+ if (details > 1) {
+ sftp_attributes sb2 = sftp_stat(mSftp, path.data());
+ if (sb2 == NULL) {
+ // It is a link pointing to nowhere
+ type = S_IFMT - 1;
+ access = S_IRWXU | S_IRWXG | S_IRWXO;
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = type;
+ entry.append(atom);
+
+ atom.m_uds = UDS_ACCESS;
+ atom.m_long = access;
+ entry.append(atom);
+
+ atom.m_uds = UDS_SIZE;
+ atom.m_long = 0LL;
+ entry.append(atom);
+
+ goto notype;
+ }
+ sftp_attributes_free(sb);
+ sb = sb2;
}
+ }
- // needed for determining mimetype
- // note: have to emit mimetype before emitting totalsize.
- TQByteArray buff;
- TQByteArray mimeBuffer;
-
- unsigned int oldSize;
- bool foundMimetype = false;
-
- // How big should each data packet be? Definitely not bigger than 64kb or
- // you will overflow the 2 byte size variable in a sftp packet.
- TQ_UINT32 len = 60*1024;
- code = SSH2_FX_OK;
-
- kdDebug(TDEIO_SFTP_DB) << "sftpGet(): offset = " << offset << endl;
- while( code == SSH2_FX_OK ) {
- if( (code = sftpRead(handle, offset, len, buff)) == SSH2_FX_OK ) {
- offset += buff.size();
-
- // save data for mimetype. Pretty much follows what is in the ftp ioslave
- if( !foundMimetype ) {
- oldSize = mimeBuffer.size();
- mimeBuffer.resize(oldSize + buff.size());
- memcpy(mimeBuffer.data()+oldSize, buff.data(), buff.size());
-
- if( mimeBuffer.size() > 1024 || offset == fileSize ) {
- // determine mimetype
- KMimeMagicResult* result =
- KMimeMagic::self()->findBufferFileType(mimeBuffer, src.fileName());
- kdDebug(TDEIO_SFTP_DB) << "sftpGet(): mimetype is " <<
- result->mimeType() << endl;
- mimeType(result->mimeType());
-
- // Always send the total size after emitting mime-type...
- totalSize(fileSize);
-
- if (fd == -1)
- data(mimeBuffer);
- else
- {
- if ( (res.code=writeToFile(fd, mimeBuffer.data(), mimeBuffer.size())) != 0 )
- return res;
- }
-
- processedSize(mimeBuffer.size());
- mimeBuffer.resize(0);
- foundMimetype = true;
- }
- }
- else {
- if (fd == -1)
- data(buff);
- else
- {
- if ( (res.code= writeToFile(fd, buff.data(), buff.size())) != 0 )
- return res;
- }
- processedSize(offset);
- }
- }
+ switch (sb->type) {
+ case SSH_FILEXFER_TYPE_REGULAR:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFREG;
+ entry.append(atom);
+ break;
+ case SSH_FILEXFER_TYPE_DIRECTORY:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFDIR;
+ entry.append(atom);
+ break;
+ case SSH_FILEXFER_TYPE_SYMLINK:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFLNK;
+ entry.append(atom);
+ break;
+ case SSH_FILEXFER_TYPE_SPECIAL:
+ case SSH_FILEXFER_TYPE_UNKNOWN:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFMT - 1;
+ entry.append(atom);
+ break;
+ }
- /*
- Check if slave was killed. According to slavebase.h we need to leave
- the slave methods as soon as possible if the slave is killed. This
- allows the slave to be cleaned up properly.
- */
- if( wasKilled() ) {
- res.text = i18n("An internal error occurred. Please retry the request again.");
- res.code = ERR_UNKNOWN;
- return res;
- }
- }
+ access = sb->permissions & 07777;
+ atom.m_uds = UDS_ACCESS;
+ atom.m_long = access;
+ entry.append(atom);
+
+ atom.m_uds = UDS_SIZE;
+ atom.m_long = sb->size;
+ entry.append(atom);
+
+notype:
+ if (details > 0) {
+ if (sb->owner) {
+ atom.m_uds = UDS_USER;
+ atom.m_str = TQString::fromUtf8(sb->owner);
+ entry.append(atom);
+ } else {
+ atom.m_uds = UDS_USER;
+ atom.m_str = TQString::number(sb->uid);
+ entry.append(atom);
+ }
+
+ if (sb->group) {
+ atom.m_uds = UDS_GROUP;
+ atom.m_str = TQString::fromUtf8(sb->group);
+ entry.append(atom);
+ } else {
+ atom.m_uds = UDS_GROUP;
+ atom.m_str = TQString::number(sb->gid);
+ entry.append(atom);
+ }
+ atom.m_uds = UDS_ACCESS_TIME;
+ atom.m_long = sb->atime;
+ entry.append(atom);
+
+ atom.m_uds = UDS_MODIFICATION_TIME;
+ atom.m_long = sb->mtime;
+ entry.append(atom);
+
+ atom.m_uds = UDS_MODIFICATION_TIME;
+ atom.m_long = sb->createtime;
+ entry.append(atom);
+ }
- if( code != SSH2_FX_EOF ) {
- res.text = src.prettyURL();
- res.code = ERR_COULD_NOT_READ; // return here or still send empty array to indicate end of read?
- }
+ sftp_attributes_free(sb);
- res.size = offset;
- sftpClose(handle);
- processedSize (offset);
- return res;
+ return true;
}
-void sftpProtocol::get(const KURL& url) {
- kdDebug(TDEIO_SFTP_DB) << "get(): " << url << endl ;
+TQString sftpProtocol::canonicalizePath(const TQString &path) {
+ kdDebug(TDEIO_SFTP_DB) << "Path to canonicalize: " << path << endl;
+ TQString cPath;
+ char *sPath = NULL;
- openConnection();
- if( !mConnected )
- return;
+ if (path.isEmpty()) {
+ return cPath;
+ }
- // Get resume offset
- TQ_UINT64 offset = config()->readUnsignedLongNumEntry("resume");
- if( offset > 0 ) {
- canResume();
- kdDebug(TDEIO_SFTP_DB) << "get(): canResume(), offset = " << offset << endl;
- }
+ sPath = sftp_canonicalize_path(mSftp, path.utf8().data());
+ if (sPath == NULL) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not canonicalize path: " << path << endl;
+ return cPath;
+ }
- Status info = sftpGet(url, offset);
+ cPath = TQFile::decodeName(sPath);
+ delete sPath;
- if (info.code != 0)
- {
- error(info.code, info.text);
- return;
- }
+ kdDebug(TDEIO_SFTP_DB) << "Canonicalized path: " << cPath << endl;
- data(TQByteArray());
- kdDebug(TDEIO_SFTP_DB) << "get(): emit finished()" << endl;
- finished();
+ return cPath;
}
+sftpProtocol::sftpProtocol(const TQCString &pool_socket, const TQCString &app_socket)
+ : SlaveBase("tdeio_sftp", pool_socket, app_socket),
+ mConnected(false), mPort(-1), mSession(NULL), mSftp(NULL) {
+#ifndef Q_WS_WIN
+ kdDebug(TDEIO_SFTP_DB) << "pid = " << getpid() << endl;
-void sftpProtocol::setHost (const TQString& h, int port, const TQString& user, const TQString& pass)
-{
- kdDebug(TDEIO_SFTP_DB) << "setHost(): " << user << "@" << h << ":" << port << endl;
-
- if( mHost != h || mPort != port || user != mUsername || mPassword != pass )
- closeConnection();
-
- mHost = h;
+ kdDebug(TDEIO_SFTP_DB) << "debug = " << getenv("TDEIO_SFTP_LOG_VERBOSITY") << endl;
+#endif
- if( port > 0 )
- mPort = port;
- else {
- mPort = -1;
- }
+ mCallbacks = (ssh_callbacks) malloc(sizeof(struct ssh_callbacks_struct));
+ if (mCallbacks == NULL) {
+ error(TDEIO::ERR_OUT_OF_MEMORY, i18n("Could not allocate callbacks"));
+ return;
+ }
+ ZERO_STRUCTP(mCallbacks);
- mUsername = user;
- mPassword = pass;
+ mCallbacks->userdata = this;
+ mCallbacks->auth_function = ::auth_callback;
+ if (getenv("TDEIO_SFTP_LOG_VERBOSITY")) {
+ mCallbacks->log_function = ::log_callback;
+ }
- if (user.isEmpty())
- {
- KUser u;
- mUsername = u.loginName();
- }
+ ssh_callbacks_init(mCallbacks);
}
+sftpProtocol::~sftpProtocol() {
+#ifndef Q_WS_WIN
+ kdDebug(TDEIO_SFTP_DB) << "pid = " << getpid() << endl;
+#endif
+ closeConnection();
-void sftpProtocol::openConnection() {
+ delete mCallbacks;
- if(mConnected)
- return;
+ /* cleanup and shut down cryto stuff */
+ ssh_finalize();
+}
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): " << mUsername << "@"
- << mHost << ":" << mPort << endl;
+void sftpProtocol::setHost(const TQString& h, int port, const TQString& user, const TQString& pass) {
+ kdDebug(TDEIO_SFTP_DB) << "setHost(): " << user << "@" << h << ":" << port << endl;
- infoMessage( i18n("Opening SFTP connection to host <b>%1:%2</b>").arg(mHost).arg(mPort));
+ if (mConnected) {
+ closeConnection();
+ }
- if( mHost.isEmpty() ) {
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): Need hostname..." << endl;
- error(ERR_UNKNOWN_HOST, i18n("No hostname specified"));
- return;
- }
+ mHost = h;
- ////////////////////////////////////////////////////////////////////////////
- // Setup AuthInfo for use with password caching and the
- // password dialog box.
- AuthInfo info;
- info.url.setProtocol("sftp");
- info.url.setHost(mHost);
- info.url.setPort(mPort);
- info.url.setUser(mUsername);
- info.caption = i18n("SFTP Login");
- info.comment = "sftp://" + mHost + ":" + TQString::number(mPort);
- info.commentLabel = i18n("site:");
- info.username = mUsername;
- info.keepPassword = true;
-
- ///////////////////////////////////////////////////////////////////////////
- // Check for cached authentication info if a username AND password were
- // not specified in setHost().
- if( mUsername.isEmpty() && mPassword.isEmpty() ) {
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): checking cache "
- << "info.username = " << info.username
- << ", info.url = " << info.url.prettyURL() << endl;
-
- if( checkCachedAuthentication(info) ) {
- mUsername = info.username;
- mPassword = info.password;
- }
+ if (port > 0) {
+ mPort = port;
+ } else {
+ struct servent *pse;
+ if ((pse = getservbyname("ssh", "tcp") ) == NULL) {
+ mPort = 22;
+ } else {
+ mPort = ntohs(pse->s_port);
}
+ }
- ///////////////////////////////////////////////////////////////////////////
- // Now setup our ssh options. If we found a cached username
- // and password we set the SSH_PASSWORD and SSH_USERNAME
- // options right away. Otherwise we wait. The other options are
- // necessary for running sftp over ssh.
- KSshProcess::SshOpt opt; // a ssh option, this can be reused
- KSshProcess::SshOptList opts; // list of SshOpts
- KSshProcess::SshOptListIterator passwdIt; // points to the opt in opts that specifies the password
- KSshProcess::SshOptListIterator usernameIt;
-
-// opt.opt = KSshProcess::SSH_VERBOSE;
-// opts.append(opt);
-// opts.append(opt);
-
- if( mPort != -1 ) {
- opt.opt = KSshProcess::SSH_PORT;
- opt.num = mPort;
- opts.append(opt);
- }
+ kdDebug(TDEIO_SFTP_DB) << "setHost(): mPort=" << mPort << endl;
- opt.opt = KSshProcess::SSH_SUBSYSTEM;
- opt.str = "sftp";
- opts.append(opt);
+ mUsername = user;
+ mPassword = pass;
+}
- opt.opt = KSshProcess::SSH_FORWARDX11;
- opt.boolean = false;
- opts.append(opt);
+void sftpProtocol::openConnection() {
- opt.opt = KSshProcess::SSH_FORWARDAGENT;
- opt.boolean = false;
- opts.append(opt);
+ if (mConnected) {
+ return;
+ }
- opt.opt = KSshProcess::SSH_PROTOCOL;
- opt.num = 2;
- opts.append(opt);
+ kdDebug(TDEIO_SFTP_DB) << "username=" << mUsername << ", host=" << mHost << ", port=" << mPort << endl;
- opt.opt = KSshProcess::SSH_HOST;
- opt.str = mHost;
- opts.append(opt);
+ infoMessage(i18n("Opening SFTP connection to host %1:%2").arg(mHost).arg(mPort));
- opt.opt = KSshProcess::SSH_ESCAPE_CHAR;
- opt.num = -1; // don't use any escape character
- opts.append(opt);
+ if (mHost.isEmpty()) {
+ kdDebug(TDEIO_SFTP_DB) << "openConnection(): Need hostname..." << endl;
+ error(TDEIO::ERR_UNKNOWN_HOST, i18n("No hostname specified."));
+ return;
+ }
- // set the username and password if we have them
- if( !mUsername.isEmpty() ) {
- opt.opt = KSshProcess::SSH_USERNAME;
- opt.str = mUsername;
- usernameIt = opts.append(opt);
+ // Setup AuthInfo for use with password caching and the
+ // password dialog box.
+ AuthInfo info;
+
+ info.url.setProtocol("sftp");
+ info.url.setHost(mHost);
+ info.url.setPort(mPort);
+ info.url.setUser(mUsername);
+ info.caption = i18n("SFTP Login");
+ info.comment = "sftp://" + mHost + ':' + TQString::number(mPort);
+ info.commentLabel = i18n("site:");
+ info.username = mUsername;
+ info.keepPassword = true; // make the "keep Password" check box visible to the user.
+
+ // Check for cached authentication info if no password is specified...
+ if (mPassword.isEmpty()) {
+ kdDebug(TDEIO_SFTP_DB) << "checking cache: info.username = " << info.username
+ << ", info.url = " << info.url.prettyURL() << endl;
+
+ if (checkCachedAuthentication(info)) {
+ kdDebug() << "using cached" << endl;
+ mUsername = info.username;
+ mPassword = info.password;
}
+ }
- if( !mPassword.isEmpty() ) {
- opt.opt = KSshProcess::SSH_PASSWD;
- opt.str = mPassword;
- passwdIt = opts.append(opt);
- }
+ // Start the ssh connection.
+ TQString msg; // msg for dialog box
+ TQString caption; // dialog box caption
+ unsigned char *hash = NULL; // the server hash
+ char *hexa;
+ char *verbosity;
+ int rc, state;
+ int timeout_sec = 30, timeout_usec = 0;
+
+ mSession = ssh_new();
+ if (mSession == NULL) {
+ error(TDEIO::ERR_INTERNAL, i18n("Could not create a new SSH session."));
+ return;
+ }
- ssh.setOptions(opts);
- ssh.printArgs();
-
- ///////////////////////////////////////////////////////////////////////////
- // Start the ssh connection process.
- //
-
- int err; // error code from KSshProcess
- TQString msg; // msg for dialog box
- TQString caption; // dialog box caption
- bool firstTime = true;
- bool dlgResult;
-
- while( !(mConnected = ssh.connect()) ) {
- err = ssh.error();
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): "
- "Got " << err << " from KSshProcess::connect()" << endl;
-
- switch(err) {
- case KSshProcess::ERR_NEED_PASSWD:
- case KSshProcess::ERR_NEED_PASSPHRASE:
- // At this point we know that either we didn't set
- // an username or password in the ssh options list,
- // or what we did pass did not work. Therefore we
- // must prompt the user.
- if( err == KSshProcess::ERR_NEED_PASSPHRASE )
- info.prompt = i18n("Please enter your username and key passphrase.");
- else
- info.prompt = i18n("Please enter your username and password.");
-
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): info.username = " << info.username
- << ", info.url = " << info.url.prettyURL() << endl;
-
- if( firstTime )
- dlgResult = openPassDlg(info);
- else
- dlgResult = openPassDlg(info, i18n("Incorrect username or password"));
-
- if( dlgResult ) {
- if( info.username.isEmpty() || info.password.isEmpty() ) {
- error(ERR_COULD_NOT_AUTHENTICATE,
- i18n("Please enter a username and password"));
- continue;
- }
- }
- else {
- // user canceled or dialog failed to open
- error(ERR_USER_CANCELED, TQString::null);
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): user canceled, dlgResult = " << dlgResult << endl;
- closeConnection();
- return;
- }
-
- firstTime = false;
-
- // Check if the username has changed. SSH only accepts
- // the username at startup. If the username has changed
- // we must disconnect ssh, change the SSH_USERNAME
- // option, and reset the option list. We will also set
- // the password option so the user is not prompted for
- // it again.
- if( mUsername != info.username ) {
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): Username changed from "
- << mUsername << " to " << info.username << endl;
-
- ssh.disconnect();
-
- // if we haven't yet added the username
- // or password option to the ssh options list then
- // the iterators will be equal to the empty iterator.
- // Create the opts now and add them to the opt list.
- if( usernameIt == KSshProcess::SshOptListIterator() ) {
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): "
- "Adding username to options list" << endl;
- opt.opt = KSshProcess::SSH_USERNAME;
- usernameIt = opts.append(opt);
- }
-
- if( passwdIt == KSshProcess::SshOptListIterator() ) {
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): "
- "Adding password to options list" << endl;
- opt.opt = KSshProcess::SSH_PASSWD;
- passwdIt = opts.append(opt);
- }
-
- (*usernameIt).str = info.username;
- (*passwdIt).str = info.password;
- ssh.setOptions(opts);
- ssh.printArgs();
- }
- else { // just set the password
- ssh.setPassword(info.password);
- }
-
- mUsername = info.username;
- mPassword = info.password;
-
- break;
-
- case KSshProcess::ERR_NEW_HOST_KEY:
- caption = i18n("Warning: Cannot verify host's identity.");
- msg = ssh.errorMsg();
- if( KMessageBox::Yes != messageBox(WarningYesNo, msg, caption) ) {
- closeConnection();
- error(ERR_USER_CANCELED, TQString::null);
- return;
- }
- ssh.acceptHostKey(true);
- break;
-
- case KSshProcess::ERR_DIFF_HOST_KEY:
- caption = i18n("Warning: Host's identity changed.");
- msg = ssh.errorMsg();
- if( KMessageBox::Yes != messageBox(WarningYesNo, msg, caption) ) {
- closeConnection();
- error(ERR_USER_CANCELED, TQString::null);
- return;
- }
- ssh.acceptHostKey(true);
- break;
-
- case KSshProcess::ERR_AUTH_FAILED:
- infoMessage(i18n("Authentication failed."));
- error(ERR_COULD_NOT_LOGIN, i18n("Authentication failed."));
- return;
+ kdDebug(TDEIO_SFTP_DB) << "Creating the SSH session and setting options" << endl;
- case KSshProcess::ERR_AUTH_FAILED_NEW_KEY:
- msg = ssh.errorMsg();
- error(ERR_COULD_NOT_LOGIN, msg);
- return;
+ // Set timeout
+ rc = ssh_options_set(mSession, SSH_OPTIONS_TIMEOUT, &timeout_sec);
+ if (rc < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not set a timeout.";
+ }
+ rc = ssh_options_set(mSession, SSH_OPTIONS_TIMEOUT_USEC, &timeout_usec);
+ if (rc < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not set a timeout in usec.";
+ }
- case KSshProcess::ERR_AUTH_FAILED_DIFF_KEY:
- msg = ssh.errorMsg();
- error(ERR_COULD_NOT_LOGIN, msg);
- return;
+ // Don't use any compression
+ rc = ssh_options_set(mSession, SSH_OPTIONS_COMPRESSION_C_S, "none");
+ if (rc < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not set compression client <- server.";
+ }
- case KSshProcess::ERR_CLOSED_BY_REMOTE_HOST:
- infoMessage(i18n("Connection failed."));
- caption = i18n("Connection closed by remote host.");
- msg = ssh.errorMsg();
- messageBox(Information, msg, caption);
- closeConnection();
- error(ERR_COULD_NOT_LOGIN, msg);
- return;
+ rc = ssh_options_set(mSession, SSH_OPTIONS_COMPRESSION_S_C, "none");
+ if (rc < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not set compression server -> client.";
+ }
- case KSshProcess::ERR_INTERACT:
- case KSshProcess::ERR_INTERNAL:
- case KSshProcess::ERR_UNKNOWN:
- case KSshProcess::ERR_INVALID_STATE:
- case KSshProcess::ERR_CANNOT_LAUNCH:
- case KSshProcess::ERR_HOST_KEY_REJECTED:
- default:
- infoMessage(i18n("Connection failed."));
- caption = i18n("Unexpected SFTP error: %1").arg(err);
- msg = ssh.errorMsg();
- messageBox(Information, msg, caption);
- closeConnection();
- error(ERR_UNKNOWN, msg);
- return;
- }
- }
+ // Set host and port
+ rc = ssh_options_set(mSession, SSH_OPTIONS_HOST, mHost.utf8().data());
+ if (rc < 0) {
+ error(TDEIO::ERR_OUT_OF_MEMORY, i18n("Could not set host."));
+ return;
+ }
- // catch all in case we did something wrong above
- if( !mConnected ) {
- error(ERR_INTERNAL, TQString::null);
- return;
+ if (mPort > 0) {
+ rc = ssh_options_set(mSession, SSH_OPTIONS_PORT, &mPort);
+ if (rc < 0) {
+ error(TDEIO::ERR_OUT_OF_MEMORY, i18n("Could not set port."));
+ return;
}
+ }
- // Now send init packet.
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): Sending SSH2_FXP_INIT packet." << endl;
- TQByteArray p;
- TQDataStream packet(p, IO_WriteOnly);
- packet << (TQ_UINT32)5; // packet length
- packet << (TQ_UINT8) SSH2_FXP_INIT; // packet type
- packet << (TQ_UINT32)SSH2_FILEXFER_VERSION; // client version
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream s(p, IO_ReadOnly);
- TQ_UINT32 version;
- TQ_UINT8 type;
- s >> type;
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): Got type " << type << endl;
-
- if( type == SSH2_FXP_VERSION ) {
- s >> version;
- kdDebug(TDEIO_SFTP_DB) << "openConnection(): Got server version " << version << endl;
-
- // XXX Get extensions here
- sftpVersion = version;
-
- /* Server should return lowest common version supported by
- * client and server, but double check just in case.
- */
- if( sftpVersion > SSH2_FILEXFER_VERSION ) {
- error(ERR_UNSUPPORTED_PROTOCOL,
- i18n("SFTP version %1").arg(version));
- closeConnection();
- return;
- }
- }
- else {
- error(ERR_UNKNOWN, i18n("Protocol error."));
- closeConnection();
- return;
+ // Set the username
+ if (!mUsername.isEmpty()) {
+ rc = ssh_options_set(mSession, SSH_OPTIONS_USER, mUsername.utf8().data());
+ if (rc < 0) {
+ error(TDEIO::ERR_OUT_OF_MEMORY, i18n("Could not set username."));
+ return;
}
+ }
- // Login succeeded!
- infoMessage(i18n("Successfully connected to %1").arg(mHost));
- info.url.setProtocol("sftp");
- info.url.setHost(mHost);
- info.url.setPort(mPort);
- info.url.setUser(mUsername);
- info.username = mUsername;
- info.password = mPassword;
- kdDebug(TDEIO_SFTP_DB) << "sftpProtocol(): caching info.username = " << info.username <<
- ", info.url = " << info.url.prettyURL() << endl;
- cacheAuthentication(info);
- mConnected = true;
- connected();
-
- mPassword.fill('x');
- info.password.fill('x');
+ verbosity = getenv("TDEIO_SFTP_LOG_VERBOSITY");
+ if (verbosity) {
+ rc = ssh_options_set(mSession, SSH_OPTIONS_LOG_VERBOSITY_STR, verbosity);
+ if (rc < 0) {
+ error(TDEIO::ERR_OUT_OF_MEMORY, i18n("Could not set log verbosity."));
+ return;
+ }
+ }
+ // Read ~/.ssh/config
+ rc = ssh_options_parse_config(mSession, NULL);
+ if (rc < 0) {
+ error(TDEIO::ERR_INTERNAL, i18n("Could not parse the config file."));
return;
-}
-
-void sftpProtocol::closeConnection() {
- kdDebug(TDEIO_SFTP_DB) << "closeConnection()" << endl;
- ssh.disconnect();
- mConnected = false;
-}
-
-void sftpProtocol::sftpCopyPut(const KURL& src, const KURL& dest, int permissions, bool overwrite) {
+ }
- KDE_struct_stat buff;
- TQCString file (TQFile::encodeName(src.path()));
+ ssh_set_callbacks(mSession, mCallbacks);
- if (KDE_lstat(file.data(), &buff) == -1) {
- error (ERR_DOES_NOT_EXIST, src.prettyURL());
- return;
- }
-
- if (S_ISDIR (buff.st_mode)) {
- error (ERR_IS_DIRECTORY, src.prettyURL());
- return;
- }
+ kdDebug(TDEIO_SFTP_DB) << "Trying to connect to the SSH server" << endl;
- int fd = KDE_open (file.data(), O_RDONLY);
- if (fd == -1) {
- error (ERR_CANNOT_OPEN_FOR_READING, src.prettyURL());
- return;
- }
+ /* try to connect */
+ rc = ssh_connect(mSession);
+ if (rc < 0) {
+ error(TDEIO::ERR_COULD_NOT_CONNECT, TQString::fromUtf8(ssh_get_error(mSession)));
+ closeConnection();
+ return;
+ }
- totalSize (buff.st_size);
+ kdDebug(TDEIO_SFTP_DB) << "Getting the SSH server hash" << endl;
- sftpPut (dest, permissions, false, overwrite, fd);
+ /* get the hash */
+ ssh_key serverKey;
+#if LIBSSH_VERSION_INT < SSH_VERSION_INT(0, 7, 90)
+ if (ssh_get_publickey(mSession, &serverKey) < 0) {
+#else
+ if (ssh_get_server_publickey(mSession, &serverKey) < 0) {
+#endif
+ error(TDEIO::ERR_COULD_NOT_CONNECT, TQString::fromUtf8(ssh_get_error(mSession)));
+ closeConnection();
+ return;
+ }
- // Close the file descriptor...
- ::close( fd );
-}
+ size_t hlen;
+#if LIBSSH_VERSION_INT < SSH_VERSION_INT(0, 8, 90)
+ if (ssh_get_publickey_hash(serverKey, SSH_PUBLICKEY_HASH_MD5, &hash, &hlen) < 0) {
+#else
+ if (ssh_get_publickey_hash(serverKey, SSH_PUBLICKEY_HASH_SHA256, &hash, &hlen) < 0) {
+#endif
+ error(TDEIO::ERR_COULD_NOT_CONNECT, TQString::fromUtf8(ssh_get_error(mSession)));
+ closeConnection();
+ return;
+ }
-void sftpProtocol::sftpPut( const KURL& dest, int permissions, bool resume, bool overwrite, int fd ) {
+ kdDebug(TDEIO_SFTP_DB) << "Checking if the SSH server is known" << endl;
- openConnection();
- if( !mConnected )
+ /* check the server public key hash */
+#if LIBSSH_VERSION_INT < SSH_VERSION_INT(0, 7, 90)
+ state = ssh_is_server_known(mSession);
+#else
+ state = ssh_session_is_known_server(mSession);
+#endif
+ switch (state) {
+ case TDEIO_SSH_KNOWN_HOSTS_OK:
+ break;
+ case TDEIO_SSH_KNOWN_HOSTS_OTHER:
+ delete hash;
+ error(TDEIO::ERR_CONNECTION_BROKEN, i18n("The host key for this server was "
+ "not found, but another type of key exists.\n"
+ "An attacker might change the default server key to confuse your "
+ "client into thinking the key does not exist.\n"
+ "Please contact your system administrator.\n%1").arg(TQString::fromUtf8(ssh_get_error(mSession))));
+ closeConnection();
+ return;
+ case TDEIO_SSH_KNOWN_HOSTS_CHANGED:
+ hexa = ssh_get_hexa(hash, hlen);
+ delete hash;
+ /* TODO print known_hosts file, port? */
+ error(TDEIO::ERR_CONNECTION_BROKEN, i18n("The host key for the server %1 has changed.\n"
+ "This could either mean that DNS SPOOFING is happening or the IP "
+ "address for the host and its host key have changed at the same time.\n"
+ "The fingerprint for the key sent by the remote host is:\n %2\n"
+ "Please contact your system administrator.\n%3").arg(
+ mHost).arg(TQString::fromUtf8(hexa)).arg(TQString::fromUtf8(ssh_get_error(mSession))));
+ delete hexa;
+ closeConnection();
+ return;
+ case TDEIO_SSH_KNOWN_HOSTS_NOT_FOUND:
+ case TDEIO_SSH_KNOWN_HOSTS_UNKNOWN:
+ hexa = ssh_get_hexa(hash, hlen);
+ delete hash;
+ caption = i18n("Warning: Cannot verify host's identity.");
+ msg = i18n("The authenticity of host %1 cannot be established.\n"
+ "The key fingerprint is: %2\n"
+ "Are you sure you want to continue connecting?").arg(mHost).arg(hexa);
+ delete hexa;
+
+ if (KMessageBox::Yes != messageBox(WarningYesNo, msg, caption)) {
+ closeConnection();
+ error(TDEIO::ERR_USER_CANCELED, TQString());
return;
+ }
- kdDebug(TDEIO_SFTP_DB) << "sftpPut(): " << dest
- << ", resume=" << resume
- << ", overwrite=" << overwrite << endl;
+ /* write the known_hosts file */
+ kdDebug(TDEIO_SFTP_DB) << "Adding server to known_hosts file." << endl;
+#if LIBSSH_VERSION_INT < SSH_VERSION_INT(0, 7, 90)
+ if (ssh_write_knownhost(mSession) != SSH_OK) {
+#else
+ if (ssh_session_update_known_hosts(mSession) != SSH_OK) {
+#endif
+ error(TDEIO::ERR_USER_CANCELED, TQString::fromUtf8(ssh_get_error(mSession)));
+ closeConnection();
+ return;
+ }
+ break;
+ case TDEIO_SSH_KNOWN_HOSTS_ERROR:
+ delete hash;
+ error(TDEIO::ERR_COULD_NOT_CONNECT, TQString::fromUtf8(ssh_get_error(mSession)));
+ return;
+ }
- KURL origUrl( dest );
- sftpFileAttr origAttr(remoteEncoding());
- bool origExists = false;
+ kdDebug(TDEIO_SFTP_DB) << "Trying to authenticate with the server" << endl;
- // Stat original (without part ext) to see if it already exists
- int code = sftpStat(origUrl, origAttr);
+ // Try to authenticate
+ rc = ssh_userauth_none(mSession, NULL);
+ if (rc == SSH_AUTH_ERROR) {
+ closeConnection();
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Authentication failed (method: %1).")
+ .arg(i18n("none")));
+ return;
+ }
- if( code == SSH2_FX_OK ) {
- kdDebug(TDEIO_SFTP_DB) << "sftpPut(): <file> already exists" << endl;
+ int method = ssh_auth_list(mSession);
+ if (!method && rc != SSH_AUTH_SUCCESS)
+ {
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Authentication failed."
+ " The server did not send any authentication methods!"));
+ return;
+ }
- // Delete remote file if its size is zero
- if( origAttr.fileSize() == 0 ) {
- if( sftpRemove(origUrl, true) != SSH2_FX_OK ) {
- error(ERR_CANNOT_DELETE_ORIGINAL, origUrl.prettyURL());
- return;
- }
+ bool firstTime = true;
+ bool dlgResult;
+ while (rc != SSH_AUTH_SUCCESS) {
+ // Try to authenticate with public key first
+ if (rc != SSH_AUTH_SUCCESS && (method & SSH_AUTH_METHOD_PUBLICKEY) && !mPassword)
+ {
+ kdDebug(TDEIO_SFTP_DB) << "Trying to authenticate with public key" << endl;
+ for(;;)
+ {
+ rc = ssh_userauth_publickey_auto(mSession, nullptr, nullptr);
+ if (rc == SSH_AUTH_ERROR)
+ {
+ clearPubKeyAuthInfo();
+ closeConnection();
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Authentication failed (method: %1).")
+ .arg(i18n("public key")));
+ return;
}
- else {
- origExists = true;
+ if (rc == SSH_AUTH_DENIED || !pubKeyInfo || !pubKeyInfo->isModified())
+ {
+ clearPubKeyAuthInfo();
+ break;
}
- }
- else if( code != SSH2_FX_NO_SUCH_FILE ) {
- processStatus(code, origUrl.prettyURL());
- return;
+ }
}
- // Do not waste time/resources with more remote stat calls if the file exists
- // and we weren't instructed to overwrite it...
- if( origExists && !overwrite ) {
- error(ERR_FILE_ALREADY_EXIST, origUrl.prettyURL());
+ // Try to authenticate with keyboard interactive
+ if (rc != SSH_AUTH_SUCCESS && (method & SSH_AUTH_METHOD_INTERACTIVE))
+ {
+ kdDebug(TDEIO_SFTP_DB) << "Trying to authenticate with keyboard interactive" << endl;
+
+ TDEIO::AuthInfo tmpInfo(info);
+ rc = authenticateKeyboardInteractive(tmpInfo);
+ if (rc == SSH_AUTH_SUCCESS)
+ {
+ info = tmpInfo;
+ }
+ else if (rc == SSH_AUTH_ERROR)
+ {
+ closeConnection();
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Authentication failed (method: %1).")
+ .arg(i18n("keyboard interactive")));
return;
- }
+ }
+ }
- // Stat file with part ext to see if it already exists...
- KURL partUrl( origUrl );
- partUrl.setFileName( partUrl.fileName() + ".part" );
-
- TQ_UINT64 offset = 0;
- bool partExists = false;
- bool markPartial = config()->readBoolEntry("MarkPartial", true);
-
- if( markPartial ) {
-
- sftpFileAttr partAttr(remoteEncoding());
- code = sftpStat(partUrl, partAttr);
-
- if( code == SSH2_FX_OK ) {
- kdDebug(TDEIO_SFTP_DB) << "sftpPut(): .part file already exists" << endl;
- partExists = true;
- offset = partAttr.fileSize();
-
- // If for some reason, both the original and partial files exist,
- // skip resumption just like we would if the size of the partial
- // file is zero...
- if( origExists || offset == 0 )
- {
- if( sftpRemove(partUrl, true) != SSH2_FX_OK ) {
- error(ERR_CANNOT_DELETE_PARTIAL, partUrl.prettyURL());
- return;
- }
-
- if( sftpRename(origUrl, partUrl) != SSH2_FX_OK ) {
- error(ERR_CANNOT_RENAME_ORIGINAL, origUrl.prettyURL());
- return;
- }
-
- offset = 0;
- }
- else if( !overwrite && !resume ) {
- if (fd != -1)
- resume = (KDE_lseek(fd, offset, SEEK_SET) != -1);
- else
- resume = canResume( offset );
-
- kdDebug(TDEIO_SFTP_DB) << "sftpPut(): can resume = " << resume
- << ", offset = " << offset;
-
- if( !resume ) {
- error(ERR_FILE_ALREADY_EXIST, partUrl.prettyURL());
- return;
- }
- }
- else {
- offset = 0;
- }
- }
- else if( code == SSH2_FX_NO_SUCH_FILE ) {
- if( origExists && sftpRename(origUrl, partUrl) != SSH2_FX_OK ) {
- error(ERR_CANNOT_RENAME_ORIGINAL, origUrl.prettyURL());
- return;
- }
- }
- else {
- processStatus(code, partUrl.prettyURL());
+ // Try to authenticate with password
+ if (rc != SSH_AUTH_SUCCESS && (method & SSH_AUTH_METHOD_PASSWORD))
+ {
+ kdDebug(TDEIO_SFTP_DB) << "Trying to authenticate with password" << endl;
+
+ info.keepPassword = true;
+ for(;;)
+ {
+ if(!firstTime || mPassword.isEmpty())
+ {
+ if (firstTime) {
+ info.prompt = i18n("Please enter your username and password.");
+ } else {
+ info.prompt = i18n("Login failed.\nPlease confirm your username and password, and enter them again.");
+ }
+ dlgResult = openPassDlg(info);
+
+ // Handle user canceled or dialog failed to open...
+ if (!dlgResult) {
+ kdDebug(TDEIO_SFTP_DB) << "User canceled, dlgResult = " << dlgResult << endl;
+ closeConnection();
+ error(TDEIO::ERR_USER_CANCELED, TQString());
return;
- }
- }
+ }
- // Determine the url we will actually write to...
- KURL writeUrl (markPartial ? partUrl:origUrl);
-
- TQ_UINT32 pflags = 0;
- if( overwrite && !resume )
- pflags = SSH2_FXF_WRITE | SSH2_FXF_CREAT | SSH2_FXF_TRUNC;
- else if( !overwrite && !resume )
- pflags = SSH2_FXF_WRITE | SSH2_FXF_CREAT | SSH2_FXF_EXCL;
- else if( overwrite && resume )
- pflags = SSH2_FXF_WRITE | SSH2_FXF_CREAT;
- else if( !overwrite && resume )
- pflags = SSH2_FXF_WRITE | SSH2_FXF_CREAT | SSH2_FXF_APPEND;
-
- sftpFileAttr attr(remoteEncoding());
- TQByteArray handle;
-
- // Set the permissions of the file we write to if it didn't already exist
- // and the permission info is supplied, i.e it is not -1
- if( !partExists && !origExists && permissions != -1)
- attr.setPermissions(permissions);
-
- code = sftpOpen( writeUrl, pflags, attr, handle );
- if( code != SSH2_FX_OK ) {
-
- // Rename the file back to its original name if a
- // put fails due to permissions problems...
- if( markPartial && overwrite ) {
- (void) sftpRename(partUrl, origUrl);
- writeUrl = origUrl;
+ firstTime = false;
}
- if( code == SSH2_FX_FAILURE ) { // assume failure means file exists
- error(ERR_FILE_ALREADY_EXIST, writeUrl.prettyURL());
- return;
+ if (mUsername != info.username) {
+ kdDebug(TDEIO_SFTP_DB) << "Username changed from " << mUsername
+ << " to " << info.username << endl;
}
- else {
- processStatus(code, writeUrl.prettyURL());
- return;
+ mUsername = info.username;
+ mPassword = info.password;
+
+ rc = ssh_userauth_password(mSession, mUsername.utf8().data(),
+ mPassword.utf8().data());
+ if (rc == SSH_AUTH_ERROR) {
+ closeConnection();
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Authentication failed (method: %1).")
+ .arg(i18n("password")));
+ return;
+ } else if (rc == SSH_AUTH_SUCCESS) {
+ break;
}
+ }
}
+ }
- long nbytes;
- TQByteArray buff;
-
- do {
+ // start sftp session
+ kdDebug(TDEIO_SFTP_DB) << "Trying to request the sftp session" << endl;
+ mSftp = sftp_new(mSession);
+ if (mSftp == NULL) {
+ closeConnection();
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Unable to request the SFTP subsystem. "
+ "Make sure SFTP is enabled on the server."));
+ return;
+ }
- if( fd != -1 ) {
- buff.resize( 16*1024 );
- if ( (nbytes = ::read(fd, buff.data(), buff.size())) > -1 )
- buff.resize( nbytes );
- }
- else {
- dataReq();
- nbytes = readData( buff );
- }
+ kdDebug(TDEIO_SFTP_DB) << "Trying to initialize the sftp session" << endl;
+ if (sftp_init(mSftp) < 0) {
+ closeConnection();
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("Could not initialize the SFTP session."));
+ return;
+ }
- if( nbytes >= 0 ) {
- if( (code = sftpWrite(handle, offset, buff)) != SSH2_FX_OK ) {
- error(ERR_COULD_NOT_WRITE, dest.prettyURL());
- return;
- }
-
- offset += nbytes;
- processedSize(offset);
-
- /* Check if slave was killed. According to slavebase.h we
- * need to leave the slave methods as soon as possible if
- * the slave is killed. This allows the slave to be cleaned
- * up properly.
- */
- if( wasKilled() ) {
- sftpClose(handle);
- closeConnection();
- error(ERR_UNKNOWN, i18n("An internal error occurred. Please try again."));
- return;
- }
- }
+ // Login succeeded!
+ infoMessage(i18n("Successfully connected to %1").arg(mHost));
+ info.url.setProtocol("sftp");
+ info.url.setHost(mHost);
+ info.url.setPort(mPort);
+ info.url.setUser(mUsername);
+ info.username = mUsername;
+ info.password = mPassword;
- } while( nbytes > 0 );
+ kdDebug(TDEIO_SFTP_DB) << "Caching info.username = " << info.username
+ << ", info.url = " << info.url.prettyURL() << endl;
- if( nbytes < 0 ) {
- sftpClose(handle);
+ cacheAuthentication(info);
- if( markPartial ) {
- // Remove remote file if it smaller than our keep size
- uint minKeepSize = config()->readNumEntry("MinimumKeepSize", DEFAULT_MINIMUM_KEEP_SIZE);
+ //setTimeoutSpecialCommand(TDEIO_SFTP_SPECIAL_TIMEOUT);
- if( sftpStat(writeUrl, attr) == SSH2_FX_OK ) {
- if( attr.fileSize() < minKeepSize ) {
- sftpRemove(writeUrl, true);
- }
- }
- }
+ mConnected = true;
+ connected();
- error( ERR_UNKNOWN, i18n("Unknown error was encountered while copying the file "
- "to '%1'. Please try again.").arg(dest.host()) );
- return;
- }
+ mPassword.fill('x');
+ mPassword = "";
+ info.password.fill('x');
+ info.password = "";
- if( (code = sftpClose(handle)) != SSH2_FX_OK ) {
- error(ERR_COULD_NOT_WRITE, writeUrl.prettyURL());
- return;
- }
+ return;
+}
- // If wrote to a partial file, then remove the part ext
- if( markPartial ) {
- if( sftpRename(partUrl, origUrl) != SSH2_FX_OK ) {
- error(ERR_CANNOT_RENAME_PARTIAL, origUrl.prettyURL());
- return;
- }
- }
+void sftpProtocol::closeConnection() {
+ kdDebug(TDEIO_SFTP_DB) << "closeConnection()" << endl;
- finished();
-}
+ sftp_free(mSftp);
+ mSftp = NULL;
-void sftpProtocol::put ( const KURL& url, int permissions, bool overwrite, bool resume ){
- kdDebug(TDEIO_SFTP_DB) << "put(): " << url << ", overwrite = " << overwrite
- << ", resume = " << resume << endl;
+ ssh_disconnect(mSession);
+ mSession = NULL;
- sftpPut( url, permissions, resume, overwrite );
+ mConnected = false;
}
-void sftpProtocol::stat ( const KURL& url ){
- kdDebug(TDEIO_SFTP_DB) << "stat(): " << url << endl;
+#if 0
+void sftpProtocol::special(const TQByteArray &data) {
+ int rc;
+ kdDebug(TDEIO_SFTP_DB) << "special(): polling";
+
+ /*
+ * channel_poll() returns the number of bytes that may be read on the
+ * channel. It does so by checking the input buffer and eventually the
+ * network socket for data to read. If the input buffer is not empty, it
+ * will not probe the network (and such not read packets nor reply to
+ * keepalives).
+ *
+ * As channel_poll can act on two specific buffers (a channel has two
+ * different stream: stdio and stderr), polling for data on the stderr
+ * stream has more chance of not being in the problematic case (data left
+ * in the buffer). Checking the return value (for >0) would be a good idea
+ * to debug the problem.
+ */
+ rc = channel_poll(mSftp->channel, 0);
+ if (rc > 0) {
+ rc = channel_poll(mSftp->channel, 1);
+ }
+
+ if (rc < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "channel_poll failed: " << ssh_get_error(mSession);
+ }
+
+ setTimeoutSpecialCommand(TDEIO_SFTP_SPECIAL_TIMEOUT);
+}
+#endif
- openConnection();
- if( !mConnected )
- return;
+void sftpProtocol::statMime(const KURL &url) {
+ kdDebug(TDEIO_SFTP_DB) << "stat: " << url.url() << endl;
- // If the stat URL has no path, do not attempt to determine the real
- // path and do a redirect. KRun will simply ignore such requests.
- // Instead, simply return the mime-type as a directory...
- if( !url.hasPath() ) {
- UDSEntry entry;
- UDSAtom atom;
+ openConnection();
+ if (!mConnected) {
+ error(TDEIO::ERR_CONNECTION_BROKEN, url.prettyURL());
+ return;
+ }
- atom.m_uds = TDEIO::UDS_NAME;
- atom.m_str = TQString::null;
- entry.append( atom );
+ const TQString path = url.path();
+ const TQByteArray path_c = path.utf8();
- atom.m_uds = TDEIO::UDS_FILE_TYPE;
- atom.m_long = S_IFDIR;
- entry.append( atom );
+ sftp_attributes sb = sftp_lstat(mSftp, path_c.data());
+ if (sb == NULL) {
+ reportError(url, sftp_get_error(mSftp));
+ return;
+ }
- atom.m_uds = TDEIO::UDS_ACCESS;
- atom.m_long = S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
- entry.append( atom );
+ switch (sb->type) {
+ case SSH_FILEXFER_TYPE_DIRECTORY:
+ sftp_attributes_free(sb);
+ emit mimeType("inode/directory");
+ return;
+ case SSH_FILEXFER_TYPE_SPECIAL:
+ case SSH_FILEXFER_TYPE_UNKNOWN:
+ error(TDEIO::ERR_CANNOT_OPEN_FOR_READING, url.prettyURL());
+ sftp_attributes_free(sb);
+ return;
+ case SSH_FILEXFER_TYPE_SYMLINK:
+ case SSH_FILEXFER_TYPE_REGULAR:
+ break;
+ }
- atom.m_uds = TDEIO::UDS_USER;
- atom.m_str = mUsername;
- entry.append( atom );
- atom.m_uds = TDEIO::UDS_GROUP;
- entry.append( atom );
+ size_t fileSize = sb->size;
+ sftp_attributes_free(sb);
- // no size
- statEntry( entry );
- finished();
- return;
- }
+ int flags = 0;
- int code;
- sftpFileAttr attr(remoteEncoding());
- if( (code = sftpStat(url, attr)) != SSH2_FX_OK ) {
- processStatus(code, url.prettyURL());
- return;
- }
- else {
- //kdDebug() << "We sent and received stat packet ok" << endl;
- attr.setFilename(url.fileName());
- statEntry(attr.entry());
- }
+ flags = O_RDONLY;
- finished();
+ mOpenFile = sftp_open(mSftp, path_c.data(), flags, 0);
- kdDebug(TDEIO_SFTP_DB) << "stat: END" << endl;
+ if (mOpenFile == NULL) {
+ error(TDEIO::ERR_CANNOT_OPEN_FOR_READING, path);
return;
-}
-
-
-void sftpProtocol::mimetype ( const KURL& url ){
- kdDebug(TDEIO_SFTP_DB) << "mimetype(): " << url << endl;
-
- openConnection();
- if( !mConnected )
- return;
-
- TQ_UINT32 pflags = SSH2_FXF_READ;
- TQByteArray handle, mydata;
- sftpFileAttr attr(remoteEncoding());
- int code;
- if( (code = sftpOpen(url, pflags, attr, handle)) != SSH2_FX_OK ) {
- error(ERR_CANNOT_OPEN_FOR_READING, url.prettyURL());
- return;
- }
-
- TQ_UINT32 len = 1024; // Get first 1k for determining mimetype
- TQ_UINT64 offset = 0;
- code = SSH2_FX_OK;
- while( offset < len && code == SSH2_FX_OK ) {
- if( (code = sftpRead(handle, offset, len, mydata)) == SSH2_FX_OK ) {
- data(mydata);
- offset += mydata.size();
- processedSize(offset);
+ }
- kdDebug(TDEIO_SFTP_DB) << "mimetype(): offset = " << offset << endl;
- }
- }
+ // Determine the mimetype of the file to be retrieved, and emit it.
+ // This is mandatory in all slaves (for KRun/BrowserRun to work).
+ // If we're not opening the file ReadOnly or ReadWrite, don't attempt to
+ // read the file and send the mimetype.
+ size_t bytesRequested = 1024;
+ ssize_t bytesRead = 0;
+ TQByteArray buffer(bytesRequested);
+
+ bytesRead = sftp_read(mOpenFile, buffer.data(), bytesRequested);
+ if (bytesRead < 0) {
+ error(TDEIO::ERR_COULD_NOT_READ, mOpenUrl.prettyURL());
+ closeFile();
+ return;
+ } else {
+ TQByteArray fileData;
+ fileData.setRawData(buffer.data(), bytesRead);
+ KMimeMagicResult *p_mimeType = KMimeMagic::self()->findBufferFileType(fileData, mOpenUrl.fileName());
+ emit mimeType(p_mimeType->mimeType());
+ }
+ sftp_close(mOpenFile);
- data(TQByteArray());
- processedSize(offset);
- sftpClose(handle);
- finished();
- kdDebug(TDEIO_SFTP_DB) << "mimetype(): END" << endl;
+ mOpenFile = NULL;
}
+#if 0
+void sftpProtocol::read(TDEIO::filesize_t bytes) {
+ kdDebug(TDEIO_SFTP_DB) << "read, offset = " << openOffset << ", bytes = " << bytes;
-void sftpProtocol::listDir(const KURL& url) {
- kdDebug(TDEIO_SFTP_DB) << "listDir(): " << url << endl;
-
- openConnection();
- if( !mConnected )
- return;
-
- if( !url.hasPath() ) {
- KURL newUrl ( url );
- if( sftpRealPath(url, newUrl) == SSH2_FX_OK ) {
- kdDebug(TDEIO_SFTP_DB) << "listDir: Redirecting to " << newUrl << endl;
- redirection(newUrl);
- finished();
- return;
- }
- }
-
- int code;
- TQByteArray handle;
-
- if( (code = sftpOpenDirectory(url, handle)) != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "listDir(): open directory failed" << endl;
- processStatus(code, url.prettyURL());
- return;
- }
+ Q_ASSERT(mOpenFile != NULL);
+ TQVarLengthArray<char> buffer(bytes);
- code = SSH2_FX_OK;
- while( code == SSH2_FX_OK ) {
- code = sftpReadDir(handle, url);
- if( code != SSH2_FX_OK && code != SSH2_FX_EOF )
- processStatus(code, url.prettyURL());
- kdDebug(TDEIO_SFTP_DB) << "listDir(): return code = " << code << endl;
- }
+ ssize_t bytesRead = sftp_read(mOpenFile, buffer.data(), bytes);
+ Q_ASSERT(bytesRead <= static_cast<ssize_t>(bytes));
- if( (code = sftpClose(handle)) != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "listdir(): closing of directory failed" << endl;
- processStatus(code, url.prettyURL());
- return;
- }
+ if (bytesRead < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not read " << mOpenUrl;
+ error(TDEIO::ERR_COULD_NOT_READ, mOpenUrl.prettyURL());
+ close();
+ return;
+ }
- finished();
- kdDebug(TDEIO_SFTP_DB) << "listDir(): END" << endl;
+ TQByteArray fileData = TQByteArray::fromRawData(buffer.data(), bytesRead);
+ data(fileData);
}
-/** Make a directory.
- OpenSSH does not follow the internet draft for sftp in this case.
- The format of the mkdir request expected by OpenSSH sftp server is:
- uint32 id
- string path
- ATTR attr
- */
-void sftpProtocol::mkdir(const KURL&url, int permissions){
+void sftpProtocol::write(const TQByteArray &data) {
+ kdDebug(TDEIO_SFTP_DB) << "write, offset = " << openOffset << ", bytes = " << data.size();
- kdDebug(TDEIO_SFTP_DB) << "mkdir() creating dir: " << url.path() << endl;
+ Q_ASSERT(mOpenFile != NULL);
- openConnection();
- if( !mConnected )
- return;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- sftpFileAttr attr(remoteEncoding());
-
- if (permissions != -1)
- attr.setPermissions(permissions);
+ ssize_t bytesWritten = sftp_write(mOpenFile, data.data(), data.size());
+ if (bytesWritten < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Could not write to " << mOpenUrl;
+ error(TDEIO::ERR_COULD_NOT_WRITE, mOpenUrl.prettyURL());
+ close();
+ return;
+ }
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
+ written(bytesWritten);
+}
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << TQ_UINT32(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len + attr.size());
- s << (TQ_UINT8)SSH2_FXP_MKDIR;
- s << id;
- s.writeBytes(path.data(), len);
- s << attr;
+void sftpProtocol::seek(TDEIO::filesize_t offset) {
+ kdDebug(TDEIO_SFTP_DB) << "seek, offset = " << offset;
- kdDebug(TDEIO_SFTP_DB) << "mkdir(): packet size is " << p.size() << endl;
+ Q_ASSERT(mOpenFile != NULL);
- putPacket(p);
- getPacket(p);
+ if (sftp_seek64(mOpenFile, static_cast<uint64_t>(offset)) < 0) {
+ error(TDEIO::ERR_COULD_NOT_SEEK, mOpenUrl.path());
+ close();
+ }
- TQ_UINT8 type;
- TQDataStream r(p, IO_ReadOnly);
+ position(sftp_tell64(mOpenFile));
+}
+#endif
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "mkdir: sftp packet id mismatch" << endl;
- error(ERR_COULD_NOT_MKDIR, path);
- finished();
- return;
- }
+void sftpProtocol::closeFile() {
+ if (mOpenFile) {
+ sftp_close(mOpenFile);
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "mkdir(): unexpected packet type of " << type << endl;
- error(ERR_COULD_NOT_MKDIR, path);
- finished();
- return;
- }
+ mOpenFile = NULL;
+ finished();
+ }
+}
- int code;
- r >> code;
- if( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "mkdir(): failed with code " << code << endl;
+void sftpProtocol::get(const KURL& url) {
+ kdDebug(TDEIO_SFTP_DB) << "get(): " << url.url() << endl;
- // Check if mkdir failed because the directory already exists so that
- // we can return the appropriate message...
- sftpFileAttr dirAttr(remoteEncoding());
- if ( sftpStat(url, dirAttr) == SSH2_FX_OK )
- {
- error( ERR_DIR_ALREADY_EXIST, url.prettyURL() );
- return;
- }
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- error(ERR_COULD_NOT_MKDIR, path);
- }
+ TQByteArray path = url.path().utf8();
- finished();
-}
+ char buf[MAX_XFER_BUF_SIZE] = {0};
+ sftp_file file = NULL;
+ ssize_t bytesread = 0;
+ // time_t curtime = 0;
+ time_t lasttime = 0;
+ time_t starttime = 0;
+ ssize_t totalbytesread = 0;
-void sftpProtocol::rename(const KURL& src, const KURL& dest, bool overwrite){
- kdDebug(TDEIO_SFTP_DB) << "rename(" << src << " -> " << dest << ")" << endl;
+ sftp_attributes sb = sftp_lstat(mSftp, path.data());
+ if (sb == NULL) {
+ reportError(url, sftp_get_error(mSftp));
+ return;
+ }
- if (!isSupportedOperation(SSH2_FXP_RENAME)) {
- error(ERR_UNSUPPORTED_ACTION,
- i18n("The remote host does not support renaming files."));
+ switch (sb->type) {
+ case SSH_FILEXFER_TYPE_DIRECTORY:
+ error(TDEIO::ERR_IS_DIRECTORY, url.prettyURL());
+ sftp_attributes_free(sb);
return;
- }
-
- openConnection();
- if( !mConnected )
- return;
+ case SSH_FILEXFER_TYPE_SPECIAL:
+ case SSH_FILEXFER_TYPE_UNKNOWN:
+ error(TDEIO::ERR_CANNOT_OPEN_FOR_READING, url.prettyURL());
+ sftp_attributes_free(sb);
+ return;
+ case SSH_FILEXFER_TYPE_SYMLINK:
+ case SSH_FILEXFER_TYPE_REGULAR:
+ break;
+ }
- // Always stat the destination before attempting to rename
- // a file or a directory...
- sftpFileAttr attr(remoteEncoding());
- int code = sftpStat(dest, attr);
+ // Open file
+ file = sftp_open(mSftp, path.data(), O_RDONLY, 0);
+ if (file == NULL) {
+ error( TDEIO::ERR_CANNOT_OPEN_FOR_READING, url.prettyURL());
+ sftp_attributes_free(sb);
+ return;
+ }
- // If the destination directory, exists tell it to the job
- // so it the proper action can be presented to the user...
- if( code == SSH2_FX_OK )
+ // Determine the mimetype of the file to be retrieved, and emit it.
+ // This is mandatory in all slaves (for KRun/BrowserRun to work)
+ // In real "remote" slaves, this is usually done using findByNameAndContent
+ // after receiving some data. But we don't know how much data the mimemagic rules
+ // need, so for local files, better use findByUrl with localUrl=true.
+ KMimeType::Ptr mt = KMimeType::findByURL( url, sb->permissions, false /* remote URL */ );
+ emit mimeType( mt->name() ); // FIXME test me
+
+ kdDebug(TDEIO_SFTP_DB) << "Total size: " << TQString::number(sb->size) << endl;
+ // Set the total size
+ totalSize(sb->size);
+
+ const TQString resumeOffset = metaData(TQString("resume"));
+ if (!resumeOffset.isEmpty()) {
+ bool ok;
+ ssize_t offset = resumeOffset.toLong(&ok);
+ if (ok && (offset > 0) && ((unsigned long long) offset < sb->size))
{
- if (!overwrite)
- {
- if ( S_ISDIR(attr.permissions()) )
- error( TDEIO::ERR_DIR_ALREADY_EXIST, dest.url() );
- else
- error( TDEIO::ERR_FILE_ALREADY_EXIST, dest.url() );
- return;
- }
-
- // If overwrite is specified, then simply remove the existing file/dir first...
- if( (code = sftpRemove( dest, !S_ISDIR(attr.permissions()) )) != SSH2_FX_OK )
- {
- processStatus(code);
- return;
- }
+ if (sftp_seek64(file, offset) == 0) {
+ canResume();
+ totalbytesread = offset;
+ kdDebug(TDEIO_SFTP_DB) << "Resume offset: " << TQString::number(offset) << endl;
+ }
}
+ }
- // Do the renaming...
- if( (code = sftpRename(src, dest)) != SSH2_FX_OK ) {
- processStatus(code);
+ if (file != NULL) {
+ bool isFirstPacket = true;
+ lasttime = starttime = time(NULL);
+
+ for (;;) {
+ bytesread = sftp_read(file, buf, MAX_XFER_BUF_SIZE);
+ kdDebug(TDEIO_SFTP_DB) << "bytesread=" << TQString::number(bytesread) << endl;
+ if (bytesread == 0) {
+ // All done reading
+ break;
+ } else if (bytesread < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Failed to read";
+ error(TDEIO::ERR_COULD_NOT_READ, url.prettyURL());
+ sftp_attributes_free(sb);
return;
- }
-
- finished();
- kdDebug(TDEIO_SFTP_DB) << "rename(): END" << endl;
-}
-
-void sftpProtocol::symlink(const TQString& target, const KURL& dest, bool overwrite){
- kdDebug(TDEIO_SFTP_DB) << "symlink()" << endl;
+ }
- if (!isSupportedOperation(SSH2_FXP_SYMLINK)) {
- error(ERR_UNSUPPORTED_ACTION,
- i18n("The remote host does not support creating symbolic links."));
- return;
- }
+ TQByteArray filedata;
+ filedata.setRawData(buf, bytesread);
+ if (isFirstPacket) {
+ KMimeMagicResult *p_mimeType = KMimeMagic::self()->findBufferFileType(filedata, mOpenUrl.fileName());
+ mimeType(p_mimeType->mimeType());
+ kdDebug(TDEIO_SFTP_DB) << "mimetype=" << p_mimeType->mimeType() << endl;
+ isFirstPacket = false;
+ }
+ data(filedata);
+ filedata.resetRawData(buf, bytesread);
- openConnection();
- if( !mConnected )
- return;
+ // increment total bytes read
+ totalbytesread += bytesread;
- int code;
- bool failed = false;
- if( (code = sftpSymLink(target, dest)) != SSH2_FX_OK ) {
- if( overwrite ) { // try to delete the destination
- sftpFileAttr attr(remoteEncoding());
- if( (code = sftpStat(dest, attr)) != SSH2_FX_OK ) {
- failed = true;
- }
- else {
- if( (code = sftpRemove(dest, !S_ISDIR(attr.permissions())) ) != SSH2_FX_OK ) {
- failed = true;
- }
- else {
- // XXX what if rename fails again? We have lost the file.
- // Maybe rename dest to a temporary name first? If rename is
- // successful, then delete?
- if( (code = sftpSymLink(target, dest)) != SSH2_FX_OK )
- failed = true;
- }
- }
- }
- else if( code == SSH2_FX_FAILURE ) {
- error(ERR_FILE_ALREADY_EXIST, dest.prettyURL());
- return;
- }
- else
- failed = true;
+ processedSize(totalbytesread);
}
- // What error code do we return? Code for the original symlink command
- // or for the last command or for both? The second one is implemented here.
- if( failed )
- processStatus(code);
+ kdDebug(TDEIO_SFTP_DB) << "size processed=" << totalbytesread << endl;
+ sftp_close(file);
+ //data(TQByteArray());
+ processedSize((sb->size));
+ }
- finished();
+ sftp_attributes_free(sb);
+ finished();
}
-void sftpProtocol::chmod(const KURL& url, int permissions){
- TQString perms;
- perms.setNum(permissions, 8);
- kdDebug(TDEIO_SFTP_DB) << "chmod(" << url << ", " << perms << ")" << endl;
+void sftpProtocol::put(const KURL& url, int permissions, bool overwrite, bool resume) {
+ kdDebug(TDEIO_SFTP_DB) << "put(): " << url.url()
+ << " , permissions = " << TQString::number(permissions)
+ << ", overwrite = " << overwrite
+ << ", resume = " << resume << endl;
- openConnection();
- if( !mConnected )
- return;
-
- sftpFileAttr attr(remoteEncoding());
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- if (permissions != -1)
- attr.setPermissions(permissions);
+ const TQString dest_orig = url.path();
+ const TQByteArray dest_orig_c = dest_orig.utf8();
+ const TQString dest_part = dest_orig + ".part";
+ const TQByteArray dest_part_c = dest_part.utf8();
+ uid_t owner = 0;
+ gid_t group = 0;
+
+ sftp_attributes sb = sftp_lstat(mSftp, dest_orig_c.data());
+ const bool bOrigExists = (sb != NULL);
+ bool bPartExists = false;
+ const bool bMarkPartial = config()->readEntry("MarkPartial", "true") == "true";
+
+ // Don't change permissions of the original file
+ if (bOrigExists) {
+ permissions = sb->permissions;
+ owner = sb->uid;
+ group = sb->gid;
+ }
- int code;
- if( (code = sftpSetStat(url, attr)) != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "chmod(): sftpSetStat failed with error " << code << endl;
- if( code == SSH2_FX_FAILURE )
- error(ERR_CANNOT_CHMOD, TQString::null);
- else
- processStatus(code, url.prettyURL());
- }
- finished();
-}
+ if (bMarkPartial) {
+ sftp_attributes sbPart = sftp_lstat(mSftp, dest_part_c.data());
+ bPartExists = (sbPart != NULL);
+ if (bPartExists && !resume && !overwrite &&
+ sbPart->size > 0 && sbPart->type == SSH_FILEXFER_TYPE_REGULAR) {
+ kdDebug(TDEIO_SFTP_DB) << "put : calling canResume with "
+ << TQString::number(sbPart->size) << endl;
-void sftpProtocol::del(const KURL &url, bool isfile){
- kdDebug(TDEIO_SFTP_DB) << "del(" << url << ", " << (isfile?"file":"dir") << ")" << endl;
+ // Maybe we can use this partial file for resuming
+ // Tell about the size we have, and the app will tell us
+ // if it's ok to resume or not.
+ if (canResume(sbPart->size)) {
+ resume = true;
+ }
- openConnection();
- if( !mConnected )
- return;
+ kdDebug(TDEIO_SFTP_DB) << "put got answer " << resume << endl;
- int code;
- if( (code = sftpRemove(url, isfile)) != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "del(): sftpRemove failed with error code " << code << endl;
- processStatus(code, url.prettyURL());
+ delete sbPart;
}
- finished();
-}
-
-void sftpProtocol::slave_status() {
- kdDebug(TDEIO_SFTP_DB) << "slave_status(): connected to "
- << mHost << "? " << mConnected << endl;
-
- slaveStatus ((mConnected ? mHost : TQString::null), mConnected);
-}
-
-bool sftpProtocol::getPacket(TQByteArray& msg) {
- TQByteArray buf(4096);
-
- // Get the message length...
- ssize_t len = atomicio(ssh.stdioFd(), buf.data(), 4, true /*read*/);
+ }
- if( len == 0 || len == -1 ) {
- kdDebug(TDEIO_SFTP_DB) << "getPacket(): read of packet length failed, ret = "
- << len << ", error =" << strerror(errno) << endl;
- closeConnection();
- error( ERR_CONNECTION_BROKEN, mHost);
- msg.resize(0);
- return false;
+ if (bOrigExists && !(overwrite) && !(resume)) {
+ if (sb->type == SSH_FILEXFER_TYPE_DIRECTORY) {
+ error(TDEIO::ERR_DIR_ALREADY_EXIST, dest_orig);
+ } else {
+ error(TDEIO::ERR_FILE_ALREADY_EXIST, dest_orig);
}
+ sftp_attributes_free(sb);
+ return;
+ }
- uint msgLen;
- TQDataStream s(buf, IO_ReadOnly);
- s >> msgLen;
-
- //kdDebug(TDEIO_SFTP_DB) << "getPacket(): Message size = " << msgLen << endl;
-
- msg.resize(0);
-
- TQBuffer b( msg );
- b.open( IO_WriteOnly );
-
- while( msgLen ) {
- len = atomicio(ssh.stdioFd(), buf.data(), kMin((uint)buf.size(), msgLen), true /*read*/);
-
- if( len == 0 || len == -1) {
- TQString errmsg;
- if (len == 0)
- errmsg = i18n("Connection closed");
- else
- errmsg = i18n("Could not read SFTP packet");
- kdDebug(TDEIO_SFTP_DB) << "getPacket(): nothing to read, ret = " <<
- len << ", error =" << strerror(errno) << endl;
- closeConnection();
- error(ERR_CONNECTION_BROKEN, errmsg);
- b.close();
- return false;
+ int result;
+ TQByteArray dest;
+ sftp_file file = NULL;
+
+ // Loop until we got 0 (end of data)
+ do {
+ TQByteArray buffer;
+ dataReq(); // Request for data
+ result = readData(buffer);
+
+ if (result >= 0 && buffer.size()) {
+ kdDebug(TDEIO_SFTP_DB) << TQString("Got %1 bytes of data").arg(buffer.size()) << endl;
+ if (dest.isEmpty()) {
+ if (bMarkPartial) {
+ kdDebug(TDEIO_SFTP_DB) << "Appending .part extension to " << dest_orig << endl;
+ dest = dest_part_c;
+ if (bPartExists && !(resume)) {
+ kdDebug(TDEIO_SFTP_DB) << "Deleting partial file " << dest_part << endl;
+ sftp_unlink(mSftp, dest_part_c.data());
+ // Catch errors when we try to open the file.
+ }
+ } else {
+ dest = dest_orig_c;
+ if (bOrigExists && !(resume)) {
+ kdDebug(TDEIO_SFTP_DB) << "Deleting destination file " << dest_orig << endl;
+ sftp_unlink(mSftp, dest_orig_c.data());
+ // Catch errors when we try to open the file.
+ }
+ } // bMarkPartial
+
+ if ((resume)) {
+ sftp_attributes fstat;
+
+ kdDebug(TDEIO_SFTP_DB) << "Trying to append: " << dest.data() << endl;
+ file = sftp_open(mSftp, dest.data(), O_RDWR, 0); // append if resuming
+ if (file) {
+ fstat = sftp_fstat(file);
+ if (fstat) {
+ sftp_seek64(file, fstat->size); // Seek to end TODO
+ sftp_attributes_free(fstat);
+ }
+ }
+ } else {
+ mode_t initialMode;
+
+ if (permissions != -1) {
+ initialMode = permissions | S_IWUSR | S_IRUSR;
+ } else {
+ initialMode = 0644;
+ }
+
+ kdDebug(TDEIO_SFTP_DB) << "Trying to open: " << dest.data() << ", mode=" << TQString::number(initialMode) << endl;
+ file = sftp_open(mSftp, dest.data(), O_CREAT | O_TRUNC | O_WRONLY, initialMode);
+ } // resume
+
+ if (file == NULL) {
+ kdDebug(TDEIO_SFTP_DB) << "COULD NOT WRITE " << dest.data()
+ << " permissions=" << permissions
+ << " error=" << ssh_get_error(mSession) << endl;
+ if (sftp_get_error(mSftp) == SSH_FX_PERMISSION_DENIED) {
+ error(TDEIO::ERR_WRITE_ACCESS_DENIED, TQString::fromUtf8(dest));
+ } else {
+ error(TDEIO::ERR_CANNOT_OPEN_FOR_WRITING, TQString::fromUtf8(dest));
+ }
+ sftp_attributes_free(sb);
+ finished();
+ return;
+ } // file
+ } // dest.isEmpty
+
+ ssize_t bytesWritten = sftp_write(file, buffer.data(), buffer.size());
+ kdDebug(TDEIO_SFTP_DB) << TQString("Written %1 bytes").arg(bytesWritten) << endl;
+ if (bytesWritten < 0) {
+ error(TDEIO::ERR_COULD_NOT_WRITE, dest_orig);
+ result = -1;
+ }
+ } // result
+ } while (result > 0);
+ sftp_attributes_free(sb);
+
+ // An error occurred deal with it.
+ if (result < 0) {
+ kdDebug(TDEIO_SFTP_DB) << "Error during 'put'. Aborting." << endl;
+
+ if (file != NULL) {
+ sftp_close(file);
+
+ sftp_attributes attr = sftp_stat(mSftp, dest.data());
+ if (bMarkPartial && attr != NULL) {
+ size_t size = config()->readLongNumEntry("MinimumKeepSize", DEFAULT_MINIMUM_KEEP_SIZE);
+ if (attr->size < size) {
+ sftp_unlink(mSftp, dest.data());
}
-
- b.writeBlock(buf.data(), len);
-
- //kdDebug(TDEIO_SFTP_DB) << "getPacket(): Read Message size = " << len << endl;
- //kdDebug(TDEIO_SFTP_DB) << "getPacket(): Copy Message size = " << msg.size() << endl;
-
- msgLen -= len;
- }
-
- b.close();
-
- return true;
-}
-
-/** Send an sftp packet to stdin of the ssh process. */
-bool sftpProtocol::putPacket(TQByteArray& p){
-// kdDebug(TDEIO_SFTP_DB) << "putPacket(): size == " << p.size() << endl;
- int ret;
- ret = atomicio(ssh.stdioFd(), p.data(), p.size(), false /*write*/);
- if( ret <= 0 ) {
- kdDebug(TDEIO_SFTP_DB) << "putPacket(): write failed, ret =" << ret <<
- ", error = " << strerror(errno) << endl;
- return false;
+ }
+ delete attr;
+ sftp_attributes_free(attr);
}
- return true;
-}
-
-/** Used to have the server canonicalize any given path name to an absolute path.
-This is useful for converting path names containing ".." components or relative
-pathnames without a leading slash into absolute paths.
-Returns the canonicalized url. */
-int sftpProtocol::sftpRealPath(const KURL& url, KURL& newUrl){
-
- kdDebug(TDEIO_SFTP_DB) << "sftpRealPath(" << url << ", newUrl)" << endl;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << TQ_UINT32(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len);
- s << (TQ_UINT8)SSH2_FXP_REALPATH;
- s << id;
- s.writeBytes(path.data(), len);
-
- putPacket(p);
- getPacket(p);
+ //::exit(255);
+ finished();
+ return;
+ }
- TQ_UINT8 type;
- TQDataStream r(p, IO_ReadOnly);
+ if (file == NULL) { // we got nothing to write out, so we never opened the file
+ finished();
+ return;
+ }
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpRealPath: sftp packet id mismatch" << endl;
- return -1;
- }
+ if (sftp_close(file) < 0) {
+ kdWarning(TDEIO_SFTP_DB) << "Error when closing file descriptor" << endl;
+ error(TDEIO::ERR_COULD_NOT_WRITE, dest_orig);
+ return;
+ }
- if( type == SSH2_FXP_STATUS ) {
- TQ_UINT32 code;
- r >> code;
- return code;
+ // after full download rename the file back to original name
+ if (bMarkPartial) {
+ // If the original URL is a symlink and we were asked to overwrite it,
+ // remove the symlink first. This ensures that we do not overwrite the
+ // current source if the symlink points to it.
+ if ((overwrite)) {
+ sftp_unlink(mSftp, dest_orig_c.data());
}
- if( type != SSH2_FXP_NAME ) {
- kdError(TDEIO_SFTP_DB) << "sftpRealPath(): unexpected packet type of " << type << endl;
- return -1;
+ if (sftp_rename(mSftp, dest.data(), dest_orig_c.data()) < 0) {
+ kdWarning(TDEIO_SFTP_DB) << " Couldn't rename " << dest.data() << " to " << dest_orig << endl;
+ error(TDEIO::ERR_CANNOT_RENAME_PARTIAL, dest_orig);
+ return;
}
+ }
- TQ_UINT32 count;
- r >> count;
- if( count != 1 ) {
- kdError(TDEIO_SFTP_DB) << "sftpRealPath(): Bad number of file attributes for realpath command" << endl;
- return -1;
+ // set final permissions
+ if (permissions != -1 && !(resume)) {
+ kdDebug(TDEIO_SFTP_DB) << "Trying to set final permissions of " << dest_orig << " to " << TQString::number(permissions) << endl;
+ if (sftp_chmod(mSftp, dest_orig_c.data(), permissions) < 0) {
+ warning(i18n( "Could not change permissions for\n%1").arg(dest_orig));
}
+ }
- TQCString newPath;
- r >> newPath;
-
- newPath.truncate(newPath.size());
- if (newPath.isEmpty())
- newPath = "/";
- newUrl.setPath(newPath);
+ // set original owner and group
+ if (bOrigExists) {
+ kdDebug(TDEIO_SFTP_DB) << "Trying to restore original owner and group of " << dest_orig << endl;
+ if (sftp_chown(mSftp, dest_orig_c.data(), owner, group) < 0) {
+ // warning(i18n( "Could not change owner and group for\n%1", dest_orig));
+ }
+ }
- return SSH2_FX_OK;
+ // set modification time
+#if 0
+ const TQString mtimeStr = metaData("modified");
+ if (!mtimeStr.isEmpty()) {
+ TQDateTime dt = TQDateTime::fromString(mtimeStr, TQt::ISODate);
+ if (dt.isValid()) {
+ struct timeval times[2];
+
+ sftp_attributes attr = sftp_lstat(mSftp, dest_orig_c.data());
+ if (attr != NULL) {
+ times[0].tv_sec = attr->atime; //// access time, unchanged
+ times[1].tv_sec = dt.toTime_t(); // modification time
+ times[0].tv_usec = times[1].tv_usec = 0;
+
+ sftp_utimes(mSftp, dest_orig_c.data(), times);
+ sftp_attributes_free(attr);
+ }
+ }
+ }
+#endif
+ // We have done our job => finish
+ finished();
}
-sftpProtocol::Status sftpProtocol::doProcessStatus(TQ_UINT8 code, const TQString& message)
+void sftpProtocol::copy(const KURL &src, const KURL &dest, int permissions, bool overwrite)
{
- Status res;
- res.code = 0;
- res.size = 0;
- res.text = message;
+ kdDebug(TDEIO_SFTP_DB) << src.url() << " -> " << dest.url() << " , permissions = " << TQString::number(permissions)
+ << ", overwrite = " << overwrite << endl;
- switch(code)
- {
- case SSH2_FX_OK:
- case SSH2_FX_EOF:
- break;
- case SSH2_FX_NO_SUCH_FILE:
- res.code = ERR_DOES_NOT_EXIST;
- break;
- case SSH2_FX_PERMISSION_DENIED:
- res.code = ERR_ACCESS_DENIED;
- break;
- case SSH2_FX_FAILURE:
- res.text = i18n("SFTP command failed for an unknown reason.");
- res.code = ERR_UNKNOWN;
- break;
- case SSH2_FX_BAD_MESSAGE:
- res.text = i18n("The SFTP server received a bad message.");
- res.code = ERR_UNKNOWN;
- break;
- case SSH2_FX_OP_UNSUPPORTED:
- res.text = i18n("You attempted an operation unsupported by the SFTP server.");
- res.code = ERR_UNKNOWN;
- break;
- default:
- res.text = i18n("Error code: %1").arg(code);
- res.code = ERR_UNKNOWN;
- }
-
- return res;
+ error(TDEIO::ERR_UNSUPPORTED_ACTION, TQString());
}
-/** Process SSH_FXP_STATUS packets. */
-void sftpProtocol::processStatus(TQ_UINT8 code, const TQString& message){
- Status st = doProcessStatus( code, message );
- if( st.code != 0 )
- error( st.code, st.text );
-}
-
-/** Opens a directory handle for url.path. Returns true if succeeds. */
-int sftpProtocol::sftpOpenDirectory(const KURL& url, TQByteArray& handle){
-
- kdDebug(TDEIO_SFTP_DB) << "sftpOpenDirectory(" << url << ", handle)" << endl;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
+void sftpProtocol::stat(const KURL& url) {
+ kdDebug(TDEIO_SFTP_DB) << url.url() << endl;
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len);
- s << (TQ_UINT8)SSH2_FXP_OPENDIR;
- s << (TQ_UINT32)id;
- s.writeBytes(path.data(), len);
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
-
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpOpenDirectory: sftp packet id mismatch: " <<
- "expected " << expectedId << ", got " << id << endl;
- return -1;
- }
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- if( type == SSH2_FXP_STATUS ) {
- TQ_UINT32 errCode;
- r >> errCode;
- return errCode;
- }
+ if (! url.hasPath() || TQDir::isRelativePath(url.path()) ||
+ url.path().contains("/./") || url.path().contains("/../")) {
+ TQString cPath;
- if( type != SSH2_FXP_HANDLE ) {
- kdError(TDEIO_SFTP_DB) << "sftpOpenDirectory: unexpected message type of " << type << endl;
- return -1;
+ if (url.hasPath()) {
+ cPath = canonicalizePath(url.path());
+ } else {
+ cPath = canonicalizePath(TQString("."));
}
- r >> handle;
- if( handle.size() > 256 ) {
- kdError(TDEIO_SFTP_DB) << "sftpOpenDirectory: handle exceeds max length" << endl;
- return -1;
+ if (cPath.isEmpty()) {
+ error(TDEIO::ERR_MALFORMED_URL, url.prettyURL());
+ return;
}
+ KURL redir(url);
+ redir.setPath(cPath);
+ redirection(redir);
- kdDebug(TDEIO_SFTP_DB) << "sftpOpenDirectory: handle (" << handle.size() << "): [" << handle << "]" << endl;
- return SSH2_FX_OK;
-}
-
-/** Closes a directory or file handle. */
-int sftpProtocol::sftpClose(const TQByteArray& handle){
+ kdDebug(TDEIO_SFTP_DB) << "redirecting to " << redir.url() << endl;
- kdDebug(TDEIO_SFTP_DB) << "sftpClose()" << endl;
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + handle.size());
- s << (TQ_UINT8)SSH2_FXP_CLOSE;
- s << (TQ_UINT32)id;
- s << handle;
+ finished();
+ return;
+ }
- putPacket(p);
- getPacket(p);
+ TQByteArray path = url.path().utf8();
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
+ const TQString sDetails = metaData(TQString("details"));
+ const int details = sDetails.isEmpty() ? 2 : sDetails.toInt();
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpClose: sftp packet id mismatch" << endl;
- return -1;
- }
-
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "sftpClose: unexpected message type of " << type << endl;
- return -1;
- }
+ UDSEntry entry;
+ entry.clear();
+ if (!createUDSEntry(url.fileName(), path, entry, details)) {
+ error(TDEIO::ERR_DOES_NOT_EXIST, url.prettyURL());
+ return;
+ }
- TQ_UINT32 code;
- r >> code;
- if( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "sftpClose: close failed with err code " << code << endl;
- }
+ statEntry(entry);
- return code;
+ finished();
}
-/** Set a files attributes. */
-int sftpProtocol::sftpSetStat(const KURL& url, const sftpFileAttr& attr){
+void sftpProtocol::mimetype(const KURL& url){
+ kdDebug(TDEIO_SFTP_DB) << url.url() << endl;
- kdDebug(TDEIO_SFTP_DB) << "sftpSetStat(" << url << ", attr)" << endl;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len + attr.size());
- s << (TQ_UINT8)SSH2_FXP_SETSTAT;
- s << (TQ_UINT32)id;
- s.writeBytes(path.data(), len);
- s << attr;
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
-
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpSetStat(): sftp packet id mismatch" << endl;
- return -1;
- // XXX How do we do a fatal error?
- }
-
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "sftpSetStat(): unexpected message type of " << type << endl;
- return -1;
- }
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- TQ_UINT32 code;
- r >> code;
- if( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "sftpSetStat(): set stat failed with err code " << code << endl;
- }
+ // stat() feeds the mimetype
+ statMime(url);
+ closeFile();
- return code;
+ finished();
}
-/** Sends a sftp command to remove a file or directory. */
-int sftpProtocol::sftpRemove(const KURL& url, bool isfile){
-
- kdDebug(TDEIO_SFTP_DB) << "sftpRemove(): " << url << ", isFile ? " << isfile << endl;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len);
- s << (TQ_UINT8)(isfile ? SSH2_FXP_REMOVE : SSH2_FXP_RMDIR);
- s << (TQ_UINT32)id;
- s.writeBytes(path.data(), len);
-
- putPacket(p);
- getPacket(p);
+void sftpProtocol::listDir(const KURL& url) {
+ kdDebug(TDEIO_SFTP_DB) << "list directory: " << url.url() << endl;
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "del(): sftp packet id mismatch" << endl;
- return -1;
- }
+ if (! url.hasPath() || TQDir::isRelativePath(url.path()) ||
+ url.path().contains("/./") || url.path().contains("/../")) {
+ TQString cPath;
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "del(): unexpected message type of " << type << endl;
- return -1;
+ if (url.hasPath()) {
+ cPath = canonicalizePath(url.path());
+ } else {
+ cPath = canonicalizePath(TQString("."));
}
- TQ_UINT32 code;
- r >> code;
- if( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "del(): del failed with err code " << code << endl;
+ if (cPath.isEmpty()) {
+ error(TDEIO::ERR_MALFORMED_URL, url.prettyURL());
+ return;
}
+ KURL redir(url);
+ redir.setPath(cPath);
+ redirection(redir);
- return code;
-}
-
-/** Send a sftp command to rename a file or directoy. */
-int sftpProtocol::sftpRename(const KURL& src, const KURL& dest){
-
- kdDebug(TDEIO_SFTP_DB) << "sftpRename(" << src << " -> " << dest << ")" << endl;
-
- TQCString srcPath = remoteEncoding()->encode(src.path());
- TQCString destPath = remoteEncoding()->encode(dest.path());
+ kdDebug(TDEIO_SFTP_DB) << "redirecting to " << redir.url() << endl;
- uint slen = srcPath.length();
- uint dlen = destPath.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ +
- 4 /*str length*/ + slen +
- 4 /*str length*/ + dlen);
- s << (TQ_UINT8)SSH2_FXP_RENAME;
- s << (TQ_UINT32)id;
- s.writeBytes(srcPath.data(), slen);
- s.writeBytes(destPath.data(), dlen);
-
- putPacket(p);
- getPacket(p);
+ finished();
+ return;
+ }
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
+ TQByteArray path = url.path().utf8();
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpRename(): sftp packet id mismatch" << endl;
- return -1;
- }
+ sftp_dir dp = sftp_opendir(mSftp, path.data());
+ if (dp == NULL) {
+ reportError(url, sftp_get_error(mSftp));
+ return;
+ }
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "sftpRename(): unexpected message type of " << type << endl;
- return -1;
- }
+ sftp_attributes dirent = NULL;
+ const TQString sDetails = metaData(TQString("details"));
+ const int details = sDetails.isEmpty() ? 2 : sDetails.toInt();
+ TQValueList<TQByteArray> entryNames;
+ UDSEntry entry;
- int code;
- r >> code;
- if( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "sftpRename(): rename failed with err code " << code << endl;
- }
+ kdDebug(TDEIO_SFTP_DB) << "readdir: " << path.data() << ", details: " << TQString::number(details) << endl;
- return code;
-}
-/** Get directory listings. */
-int sftpProtocol::sftpReadDir(const TQByteArray& handle, const KURL& url){
- // url is needed so we can lookup the link destination
- kdDebug(TDEIO_SFTP_DB) << "sftpReadDir(): " << url << endl;
-
- TQ_UINT32 id, expectedId, count;
- TQ_UINT8 type;
-
- sftpFileAttr attr (remoteEncoding());
- attr.setDirAttrsFlag(true);
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- id = expectedId = mMsgId++;
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + handle.size());
- s << (TQ_UINT8)SSH2_FXP_READDIR;
- s << (TQ_UINT32)id;
- s << handle;
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream r(p, IO_ReadOnly);
- r >> type >> id;
-
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpReadDir(): sftp packet id mismatch" << endl;
- return -1;
- }
+ UDSAtom atom;
- int code;
- if( type == SSH2_FXP_STATUS ) {
- r >> code;
- return code;
- }
+ for (;;) {
+ mode_t access;
+ mode_t type;
+ char *link;
- if( type != SSH2_FXP_NAME ) {
- kdError(TDEIO_SFTP_DB) << "tdeio_sftpProtocl::sftpReadDir(): Unexpected message" << endl;
- return -1;
+ dirent = sftp_readdir(mSftp, dp);
+ if (dirent == NULL) {
+ break;
}
- r >> count;
- kdDebug(TDEIO_SFTP_DB) << "sftpReadDir(): got " << count << " entries" << endl;
-
- while(count--) {
- r >> attr;
+ entry.clear();
+ atom.m_uds = UDS_NAME;
+ atom.m_str = TQFile::decodeName(dirent->name);
+ entry.append(atom);
- if( S_ISLNK(attr.permissions()) ) {
- KURL myurl ( url );
- myurl.addPath(attr.filename());
+ if (dirent->type == SSH_FILEXFER_TYPE_SYMLINK) {
+ TQCString file = (TQString::fromUtf8(path) + "/" + TQFile::decodeName(dirent->name)).utf8().data();
- // Stat the symlink to find out its type...
- sftpFileAttr attr2 (remoteEncoding());
- (void) sftpStat(myurl, attr2);
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFREG;
+ entry.append(atom);
- attr.setLinkType(attr2.linkType());
- attr.setLinkDestination(attr2.linkDestination());
+ link = sftp_readlink(mSftp, file.data());
+ if (link == NULL) {
+ sftp_attributes_free(dirent);
+ error(TDEIO::ERR_INTERNAL, i18n("Could not read link: %1").arg(TQString::fromUtf8(file)));
+ return;
+ }
+ atom.m_uds = UDS_LINK_DEST;
+ atom.m_str = TQFile::decodeName(link);
+ entry.append(atom);
+ delete link;
+ // A symlink -> follow it only if details > 1
+ if (details > 1) {
+ sftp_attributes sb = sftp_stat(mSftp, file.data());
+ if (sb == NULL) {
+ // It is a link pointing to nowhere
+ type = S_IFMT - 1;
+ access = S_IRWXU | S_IRWXG | S_IRWXO;
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = type;
+ entry.append(atom);
+ atom.m_uds = UDS_ACCESS;
+ atom.m_long = access;
+ entry.append(atom);
+ atom.m_uds = UDS_SIZE;
+ atom.m_long = 0;
+ entry.append(atom);
+
+ goto notype;
}
-
- listEntry(attr.entry(), false);
+ sftp_attributes_free(dirent);
+ dirent = sb;
+ }
}
- listEntry(attr.entry(), true);
-
- return SSH2_FX_OK;
-}
-
-int sftpProtocol::sftpReadLink(const KURL& url, TQString& target){
-
- kdDebug(TDEIO_SFTP_DB) << "sftpReadLink(): " << url << endl;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- //kdDebug(TDEIO_SFTP_DB) << "sftpReadLink(): Encoded Path: " << path << endl;
- //kdDebug(TDEIO_SFTP_DB) << "sftpReadLink(): Encoded Size: " << len << endl;
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len);
- s << (TQ_UINT8)SSH2_FXP_READLINK;
- s << id;
- s.writeBytes(path.data(), len);
-
-
- putPacket(p);
- getPacket(p);
-
- TQ_UINT8 type;
- TQDataStream r(p, IO_ReadOnly);
+ switch (dirent->type) {
+ case SSH_FILEXFER_TYPE_REGULAR:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFREG;
+ entry.append(atom);
+ break;
+ case SSH_FILEXFER_TYPE_DIRECTORY:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFDIR;
+ entry.append(atom);
+ break;
+ case SSH_FILEXFER_TYPE_SYMLINK:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_long = S_IFLNK;
+ entry.append(atom);
+ break;
+ case SSH_FILEXFER_TYPE_SPECIAL:
+ case SSH_FILEXFER_TYPE_UNKNOWN:
+ break;
+ }
+
+ access = dirent->permissions & 07777;
+ atom.m_uds = UDS_ACCESS;
+ atom.m_long = access;
+ entry.append(atom);
+
+ atom.m_uds = UDS_SIZE;
+ atom.m_long = dirent->size;
+ entry.append(atom);
+
+notype:
+ if (details > 0) {
+ atom.m_uds = UDS_USER;
+ if (dirent->owner) {
+ atom.m_str = TQString::fromUtf8(dirent->owner);
+ } else {
+ atom.m_str = TQString::number(dirent->uid);
+ }
+ entry.append(atom);
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpReadLink(): sftp packet id mismatch" << endl;
- return -1;
- }
+ atom.m_uds = UDS_GROUP;
+ if (dirent->group) {
+ atom.m_str = TQString::fromUtf8(dirent->group);
+ } else {
+ atom.m_str = TQString::number(dirent->gid);
+ }
+ entry.append(atom);
- if( type == SSH2_FXP_STATUS ) {
- TQ_UINT32 code;
- r >> code;
- kdDebug(TDEIO_SFTP_DB) << "sftpReadLink(): read link failed with code " << code << endl;
- return code;
- }
+ atom.m_uds = UDS_ACCESS_TIME;
+ atom.m_long = dirent->atime;
+ entry.append(atom);
- if( type != SSH2_FXP_NAME ) {
- kdError(TDEIO_SFTP_DB) << "sftpReadLink(): unexpected packet type of " << type << endl;
- return -1;
- }
+ atom.m_uds = UDS_MODIFICATION_TIME;
+ atom.m_long = dirent->mtime;
+ entry.append(atom);
- TQ_UINT32 count;
- r >> count;
- if( count != 1 ) {
- kdError(TDEIO_SFTP_DB) << "sftpReadLink(): Bad number of file attributes for realpath command" << endl;
- return -1;
+ atom.m_uds = UDS_MODIFICATION_TIME;
+ atom.m_long = dirent->createtime;
+ entry.append(atom);
}
- TQCString linkAddress;
- r >> linkAddress;
-
- linkAddress.truncate(linkAddress.size());
- kdDebug(TDEIO_SFTP_DB) << "sftpReadLink(): Link address: " << linkAddress << endl;
-
- target = remoteEncoding()->decode(linkAddress);
+ sftp_attributes_free(dirent);
+ listEntry(entry, false);
+ } // for ever
+ sftp_closedir(dp);
+ listEntry(entry, true); // ready
- return SSH2_FX_OK;
+ finished();
}
-int sftpProtocol::sftpSymLink(const TQString& _target, const KURL& dest){
-
- TQCString destPath = remoteEncoding()->encode(dest.path());
- TQCString target = remoteEncoding()->encode(_target);
- uint dlen = destPath.length();
- uint tlen = target.length();
-
- kdDebug(TDEIO_SFTP_DB) << "sftpSymLink(" << target << " -> " << destPath << ")" << endl;
+void sftpProtocol::mkdir(const KURL &url, int permissions) {
+ kdDebug(TDEIO_SFTP_DB) << "create directory: " << url.url() << endl;
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ +
- 4 /*str length*/ + tlen +
- 4 /*str length*/ + dlen);
- s << (TQ_UINT8)SSH2_FXP_SYMLINK;
- s << (TQ_UINT32)id;
- s.writeBytes(target.data(), tlen);
- s.writeBytes(destPath.data(), dlen);
-
- putPacket(p);
- getPacket(p);
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
+ if (url.path().isEmpty()) {
+ error(TDEIO::ERR_MALFORMED_URL, url.prettyURL());
+ return;
+ }
+ const TQString path = url.path();
+ const TQByteArray path_c = path.utf8();
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpSymLink(): sftp packet id mismatch" << endl;
- return -1;
- }
+ // Remove existing file or symlink, if requested.
+ if (metaData(TQString("overwrite")) == TQString("true")) {
+ kdDebug(TDEIO_SFTP_DB) << "overwrite set, remove existing file or symlink: " << url.url() << endl;
+ sftp_unlink(mSftp, path_c.data());
+ }
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "sftpSymLink(): unexpected message type of " << type << endl;
- return -1;
+ kdDebug(TDEIO_SFTP_DB) << "Trying to create directory: " << path << endl;
+ sftp_attributes sb = sftp_lstat(mSftp, path_c.data());
+ if (sb == NULL) {
+ if (sftp_mkdir(mSftp, path_c.data(), 0777) < 0) {
+ reportError(url, sftp_get_error(mSftp));
+ sftp_attributes_free(sb);
+ return;
+ } else {
+ kdDebug(TDEIO_SFTP_DB) << "Successfully created directory: " << url.url() << endl;
+ if (permissions != -1) {
+ chmod(url, permissions);
+ } else {
+ finished();
+ }
+ sftp_attributes_free(sb);
+ return;
}
+ }
- TQ_UINT32 code;
- r >> code;
- if( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "sftpSymLink(): rename failed with err code " << code << endl;
- }
+ if (sb->type == SSH_FILEXFER_TYPE_DIRECTORY) {
+ error(TDEIO::ERR_DIR_ALREADY_EXIST, path);
+ } else {
+ error(TDEIO::ERR_FILE_ALREADY_EXIST, path);
+ }
- return code;
+ sftp_attributes_free(sb);
+ return;
}
-/** Stats a file. */
-int sftpProtocol::sftpStat(const KURL& url, sftpFileAttr& attr) {
-
- kdDebug(TDEIO_SFTP_DB) << "sftpStat(): " << url << endl;
+void sftpProtocol::rename(const KURL& src, const KURL& dest, bool overwrite) {
+ kdDebug(TDEIO_SFTP_DB) << "rename " << src.url() << " to " << dest.url() << endl;
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ + 4 /*str length*/ + len);
- s << (TQ_UINT8)SSH2_FXP_LSTAT;
- s << (TQ_UINT32)id;
- s.writeBytes(path.data(), len);
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
-
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpStat(): sftp packet id mismatch" << endl;
- return -1;
- }
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- if( type == SSH2_FXP_STATUS ) {
- TQ_UINT32 errCode;
- r >> errCode;
- kdError(TDEIO_SFTP_DB) << "sftpStat(): stat failed with code " << errCode << endl;
- return errCode;
- }
+ TQByteArray qsrc = src.path().utf8();
+ TQByteArray qdest = dest.path().utf8();
- if( type != SSH2_FXP_ATTRS ) {
- kdError(TDEIO_SFTP_DB) << "sftpStat(): unexpected message type of " << type << endl;
- return -1;
+ sftp_attributes sb = sftp_lstat(mSftp, qdest.data());
+ if (sb != NULL) {
+ if (!overwrite) {
+ if (sb->type == SSH_FILEXFER_TYPE_DIRECTORY) {
+ error(TDEIO::ERR_DIR_ALREADY_EXIST, dest.url());
+ } else {
+ error(TDEIO::ERR_FILE_ALREADY_EXIST, dest.url());
+ }
+ sftp_attributes_free(sb);
+ return;
}
- r >> attr;
- attr.setFilename(url.fileName());
- kdDebug(TDEIO_SFTP_DB) << "sftpStat(): " << attr << endl;
-
- // If the stat'ed resource is a symlink, perform a recursive stat
- // to determine the actual destination's type (file/dir).
- if( S_ISLNK(attr.permissions()) && isSupportedOperation(SSH2_FXP_READLINK) ) {
-
- TQString target;
- int code = sftpReadLink( url, target );
-
- if ( code != SSH2_FX_OK ) {
- kdError(TDEIO_SFTP_DB) << "sftpStat(): Unable to stat symlink destination" << endl;
- return -1;
- }
-
- kdDebug(TDEIO_SFTP_DB) << "sftpStat(): Resource is a symlink to -> " << target << endl;
-
- KURL dest( url );
- if( target[0] == '/' )
- dest.setPath(target);
- else
- dest.setFileName(target);
-
- dest.cleanPath();
-
- // Ignore symlinks that point to themselves...
- if ( dest != url ) {
-
- sftpFileAttr attr2 (remoteEncoding());
- (void) sftpStat(dest, attr2);
-
- if (attr2.linkType() == 0)
- attr.setLinkType(attr2.fileType());
- else
- attr.setLinkType(attr2.linkType());
-
- attr.setLinkDestination(target);
+ del(dest, sb->type == SSH_FILEXFER_TYPE_DIRECTORY ? true : false);
+ }
+ sftp_attributes_free(sb);
- kdDebug(TDEIO_SFTP_DB) << "sftpStat(): File type: " << attr.fileType() << endl;
- }
- }
+ if (sftp_rename(mSftp, qsrc.data(), qdest.data()) < 0) {
+ reportError(dest, sftp_get_error(mSftp));
+ return;
+ }
- return SSH2_FX_OK;
+ finished();
}
+void sftpProtocol::symlink(const TQString& target, const KURL& dest, bool overwrite) {
+ kdDebug(TDEIO_SFTP_DB) << "link " << target << "->" << dest.url()
+ << ", overwrite = " << overwrite << endl;
-int sftpProtocol::sftpOpen(const KURL& url, const TQ_UINT32 pflags,
- const sftpFileAttr& attr, TQByteArray& handle) {
- kdDebug(TDEIO_SFTP_DB) << "sftpOpen(" << url << ", handle" << endl;
-
- TQCString path = remoteEncoding()->encode(url.path());
- uint len = path.length();
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
-
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ +
- 4 /*str length*/ + len +
- 4 /*pflags*/ + attr.size());
- s << (TQ_UINT8)SSH2_FXP_OPEN;
- s << (TQ_UINT32)id;
- s.writeBytes(path.data(), len);
- s << pflags;
- s << attr;
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
-
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpOpen(): sftp packet id mismatch" << endl;
- return -1;
- }
-
- if( type == SSH2_FXP_STATUS ) {
- TQ_UINT32 errCode;
- r >> errCode;
- return errCode;
- }
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- if( type != SSH2_FXP_HANDLE ) {
- kdError(TDEIO_SFTP_DB) << "sftpOpen(): unexpected message type of " << type << endl;
- return -1;
+ TQByteArray t = target.utf8();
+ TQByteArray d = dest.path().utf8();
+
+ bool failed = false;
+ if (sftp_symlink(mSftp, t.data(), d.data()) < 0) {
+ if (overwrite) {
+ sftp_attributes sb = sftp_lstat(mSftp, d.data());
+ if (sb == NULL) {
+ failed = true;
+ } else {
+ if (sftp_unlink(mSftp, d.data()) < 0) {
+ failed = true;
+ } else {
+ if (sftp_symlink(mSftp, t.data(), d.data()) < 0) {
+ failed = true;
+ }
+ }
+ }
+ sftp_attributes_free(sb);
}
+ }
- r >> handle;
- if( handle.size() > 256 ) {
- kdError(TDEIO_SFTP_DB) << "sftpOpen(): handle exceeds max length" << endl;
- return -1;
- }
+ if (failed) {
+ reportError(dest, sftp_get_error(mSftp));
+ return;
+ }
- kdDebug(TDEIO_SFTP_DB) << "sftpOpen(): handle (" << handle.size() << "): [" << handle << "]" << endl;
- return SSH2_FX_OK;
+ finished();
}
+void sftpProtocol::chmod(const KURL& url, int permissions) {
+ kdDebug(TDEIO_SFTP_DB) << "change permission of " << url.url() << " to " << TQString::number(permissions) << endl;
-int sftpProtocol::sftpRead(const TQByteArray& handle, TDEIO::filesize_t offset, TQ_UINT32 len, TQByteArray& data)
-{
- // kdDebug(TDEIO_SFTP_DB) << "sftpRead( offset = " << offset << ", len = " << len << ")" << endl;
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ +
- 4 /*str length*/ + handle.size() +
- 8 /*offset*/ + 4 /*length*/);
- s << (TQ_UINT8)SSH2_FXP_READ;
- s << (TQ_UINT32)id;
- s << handle;
- s << offset; // we don't have a convienient 64 bit int so set upper int to zero
- s << len;
-
- putPacket(p);
- getPacket(p);
-
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
-
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpRead: sftp packet id mismatch" << endl;
- return -1;
- }
-
- if( type == SSH2_FXP_STATUS ) {
- TQ_UINT32 errCode;
- r >> errCode;
- kdError(TDEIO_SFTP_DB) << "sftpRead: read failed with code " << errCode << endl;
- return errCode;
- }
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- if( type != SSH2_FXP_DATA ) {
- kdError(TDEIO_SFTP_DB) << "sftpRead: unexpected message type of " << type << endl;
- return -1;
- }
+ TQByteArray path = url.path().utf8();
- r >> data;
+ if (sftp_chmod(mSftp, path.data(), permissions) < 0) {
+ reportError(url, sftp_get_error(mSftp));
+ return;
+ }
- return SSH2_FX_OK;
+ finished();
}
+void sftpProtocol::del(const KURL &url, bool isfile){
+ kdDebug(TDEIO_SFTP_DB) << "deleting " << (isfile ? "file: " : "directory: ") << url.url() << endl;
-int sftpProtocol::sftpWrite(const TQByteArray& handle, TDEIO::filesize_t offset, const TQByteArray& data){
-// kdDebug(TDEIO_SFTP_DB) << "sftpWrite( offset = " << offset <<
-// ", data sz = " << data.size() << ")" << endl;
- TQByteArray p;
- TQDataStream s(p, IO_WriteOnly);
-
- TQ_UINT32 id, expectedId;
- id = expectedId = mMsgId++;
- s << (TQ_UINT32)(1 /*type*/ + 4 /*id*/ +
- 4 /*str length*/ + handle.size() +
- 8 /*offset*/ +
- 4 /* data size */ + data.size());
- s << (TQ_UINT8)SSH2_FXP_WRITE;
- s << (TQ_UINT32)id;
- s << handle;
- s << offset; // we don't have a convienient 64 bit int so set upper int to zero
- s << data;
-
-// kdDebug(TDEIO_SFTP_DB) << "sftpWrite(): SSH2_FXP_WRITE, id:"
-// << id << ", handle:" << handle << ", offset:" << offset << ", some data" << endl;
-
-// kdDebug(TDEIO_SFTP_DB) << "sftpWrite(): send packet [" << p << "]" << endl;
-
- putPacket(p);
- getPacket(p);
-
-// kdDebug(TDEIO_SFTP_DB) << "sftpWrite(): received packet [" << p << "]" << endl;
+ openConnection();
+ if (!mConnected) {
+ return;
+ }
- TQDataStream r(p, IO_ReadOnly);
- TQ_UINT8 type;
+ TQByteArray path = url.path().utf8();
- r >> type >> id;
- if( id != expectedId ) {
- kdError(TDEIO_SFTP_DB) << "sftpWrite(): sftp packet id mismatch, got "
- << id << ", expected " << expectedId << endl;
- return -1;
+ if (isfile) {
+ if (sftp_unlink(mSftp, path.data()) < 0) {
+ reportError(url, sftp_get_error(mSftp));
+ return;
}
-
- if( type != SSH2_FXP_STATUS ) {
- kdError(TDEIO_SFTP_DB) << "sftpWrite(): unexpected message type of " << type << endl;
- return -1;
+ } else {
+ if (sftp_rmdir(mSftp, path.data()) < 0) {
+ reportError(url, sftp_get_error(mSftp));
+ return;
}
+ }
- TQ_UINT32 code;
- r >> code;
- return code;
+ finished();
}
+void sftpProtocol::slave_status() {
+ kdDebug(TDEIO_SFTP_DB) << "connected to " << mHost << "?: " << mConnected << endl;
+ slaveStatus((mConnected ? mHost : TQString()), mConnected);
+}
+void sftpProtocol::clearPubKeyAuthInfo()
+{
+ if (!pubKeyInfo)
+ {
+ delete pubKeyInfo;
+ pubKeyInfo = nullptr;
+ }
+}
diff --git a/tdeioslave/sftp/tdeio_sftp.h b/tdeioslave/sftp/tdeio_sftp.h
index 30c452f9b..8e46d815c 100644
--- a/tdeioslave/sftp/tdeio_sftp.h
+++ b/tdeioslave/sftp/tdeio_sftp.h
@@ -1,61 +1,104 @@
-/***************************************************************************
- sftpProtocol.h - description
- -------------------
- begin : Sat Jun 30 20:08:47 CDT 2001
- copyright : (C) 2001 by Lucas Fisher
- email : ljfisher@purdue.edu
-***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
+/*
+ * Copyright (c) 2001 Lucas Fisher <ljfisher@purdue.edu>
+ * Copyright (c) 2009 Andreas Schneider <mail@cynapses.org>
+ * Copyright (c) 2020 Martin Sandsmark <martin@sandsmark.ninja>
+ * KDE2 port
+ * Copyright (c) 2022 Mavridis Philippe <mavridisf@gmail.com>
+ * Trinity port
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License (LGPL) as published by the Free Software Foundation;
+ * either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * 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.
+ */
+
#ifndef __tdeio_sftp_h__
#define __tdeio_sftp_h__
-#include <tqstring.h>
-#include <tqcstring.h>
-#include <tqobject.h>
-
#include <kurl.h>
#include <tdeio/global.h>
#include <tdeio/slavebase.h>
#include <kdebug.h>
+#include <stdint.h>
-#include "process.h"
-#include "sftpfileattr.h"
-#include "ksshprocess.h"
+#include <libssh/libssh.h>
+#include <libssh/sftp.h>
+#include <libssh/callbacks.h>
+// How big should each data packet be? Definitely not bigger than 64kb or
+// you will overflow the 2 byte size variable in a sftp packet.
+#define MAX_XFER_BUF_SIZE 60 * 1024
#define TDEIO_SFTP_DB 7120
+#if LIBSSH_VERSION_INT < SSH_VERSION_INT(0, 7, 90)
+#define TDEIO_SSH_KNOWN_HOSTS_OK SSH_SERVER_KNOWN_OK
+#define TDEIO_SSH_KNOWN_HOSTS_OTHER SSH_SERVER_FOUND_OTHER
+#define TDEIO_SSH_KNOWN_HOSTS_CHANGED SSH_SERVER_KNOWN_CHANGED
+#define TDEIO_SSH_KNOWN_HOSTS_NOT_FOUND SSH_SERVER_FILE_NOT_FOUND
+#define TDEIO_SSH_KNOWN_HOSTS_UNKNOWN SSH_SERVER_NOT_KNOWN
+#define TDEIO_SSH_KNOWN_HOSTS_ERROR SSH_SERVER_ERROR
+
+#else
+#define TDEIO_SSH_KNOWN_HOSTS_OK SSH_KNOWN_HOSTS_OK
+#define TDEIO_SSH_KNOWN_HOSTS_OTHER SSH_KNOWN_HOSTS_OTHER
+#define TDEIO_SSH_KNOWN_HOSTS_CHANGED SSH_KNOWN_HOSTS_CHANGED
+#define TDEIO_SSH_KNOWN_HOSTS_NOT_FOUND SSH_KNOWN_HOSTS_NOT_FOUND
+#define TDEIO_SSH_KNOWN_HOSTS_UNKNOWN SSH_KNOWN_HOSTS_UNKNOWN
+#define TDEIO_SSH_KNOWN_HOSTS_ERROR SSH_KNOWN_HOSTS_ERROR
+#endif
+
+namespace TDEIO {
+ class AuthInfo;
+}
+
class sftpProtocol : public TDEIO::SlaveBase
{
public:
sftpProtocol(const TQCString &pool_socket, const TQCString &app_socket);
virtual ~sftpProtocol();
- virtual void setHost(const TQString& h, int port, const TQString& user, const TQString& pass);
- virtual void get(const KURL& url);
- virtual void listDir(const KURL& url) ;
- virtual void mimetype(const KURL& url);
- virtual void stat(const KURL& url);
- virtual void copy(const KURL &src, const KURL &dest, int permissions, bool overwrite);
- virtual void put(const KURL& url, int permissions, bool overwrite, bool resume);
- virtual void closeConnection();
- virtual void slave_status();
- virtual void del(const KURL &url, bool isfile);
- virtual void chmod(const KURL& url, int permissions);
- virtual void symlink(const TQString& target, const KURL& dest, bool overwrite);
- virtual void rename(const KURL& src, const KURL& dest, bool overwrite);
- virtual void mkdir(const KURL&url, int permissions);
- virtual void openConnection();
+ virtual void setHost(const TQString& h, int port, const TQString& user, const TQString& pass) override;
+ virtual void get(const KURL& url) override;
+ virtual void listDir(const KURL& url) override;
+ virtual void mimetype(const KURL& url) override;
+ virtual void stat(const KURL& url) override;
+ virtual void put(const KURL& url, int permissions, bool overwrite, bool resume) override;
+ virtual void copy(const KURL &src, const KURL &dest, int permissions, bool overwrite) override;
+ virtual void closeConnection() override;
+ virtual void slave_status() override;
+ virtual void del(const KURL &url, bool isfile) override;
+ virtual void chmod(const KURL& url, int permissions) override;
+ virtual void symlink(const TQString& target, const KURL& dest, bool overwrite) override;
+ virtual void rename(const KURL& src, const KURL& dest, bool overwrite) override;
+ virtual void mkdir(const KURL& url, int permissions) override;
+ virtual void openConnection() override;
+
+ // libssh authentication callback (note that this is called by the
+ // global ::auth_callback() call.
+ int auth_callback(const char *prompt, char *buf, size_t len,
+ int echo, int verify, void *userdata);
+
+ // libssh logging callback (note that this is called by the
+ // global ::log_callback() call.
+ void log_callback(ssh_session session, int priority, const char *message,
+ void *userdata);
+
private: // Private variables
+ void statMime(const KURL &url);
+ void closeFile();
/** True if ioslave is connected to sftp server. */
bool mConnected;
@@ -65,8 +108,11 @@ private: // Private variables
/** Port we are connected to. */
int mPort;
- /** Ssh process to which we send the sftp packets. */
- KSshProcess ssh;
+ /** The ssh session for the connection */
+ ssh_session mSession;
+
+ /** The sftp session for the connection */
+ sftp_session mSftp;
/** Username to use when connecting */
TQString mUsername;
@@ -74,76 +120,37 @@ private: // Private variables
/** User's password */
TQString mPassword;
- /** Message id of the last sftp packet we sent. */
- unsigned int mMsgId;
+ /** The open file */
+ sftp_file mOpenFile;
+
+ /** The open URL */
+ KURL mOpenUrl;
- /** Type of packet we are expecting to receive next. */
- unsigned char mExpected;
+ ssh_callbacks mCallbacks;
/** Version of the sftp protocol we are using. */
int sftpVersion;
-
- struct Status
- {
- int code;
- TDEIO::filesize_t size;
- TQString text;
- };
+
+ //struct Status
+ //{
+ // int code;
+ // TDEIO::filesize_t size;
+ // TQString text;
+ //};
+
+ TDEIO::AuthInfo *pubKeyInfo;
private: // private methods
- bool getPacket(TQByteArray& msg);
-
- /* Type is a sftp packet type found in .sftp.h'.
- * Example: SSH2_FXP_READLINK, SSH2_FXP_RENAME, etc.
- *
- * Returns true if the type is supported by the sftp protocol
- * version negotiated by the client and server (sftpVersion).
- */
- bool isSupportedOperation(int type);
- /** Used to have the server canonicalize any given path name to an absolute path.
- This is useful for converting path names containing ".." components or relative
- pathnames without a leading slash into absolute paths.
- Returns the canonicalized url. */
- int sftpRealPath(const KURL& url, KURL& newUrl);
-
- /** Send an sftp packet to stdin of the ssh process. */
- bool putPacket(TQByteArray& p);
- /** Process SSH_FXP_STATUS packets. */
- void processStatus(TQ_UINT8, const TQString& message = TQString::null);
- /** Process SSH_FXP_STATUS packes and return the result. */
- Status doProcessStatus(TQ_UINT8, const TQString& message = TQString::null);
- /** Opens a directory handle for url.path. Returns true if succeeds. */
- int sftpOpenDirectory(const KURL& url, TQByteArray& handle);
- /** Closes a directory or file handle. */
- int sftpClose(const TQByteArray& handle);
- /** Send a sftp command to rename a file or directoy. */
- int sftpRename(const KURL& src, const KURL& dest);
- /** Set a files attributes. */
- int sftpSetStat(const KURL& url, const sftpFileAttr& attr);
- /** Sends a sftp command to remove a file or directory. */
- int sftpRemove(const KURL& url, bool isfile);
- /** Creates a symlink named dest to target. */
- int sftpSymLink(const TQString& target, const KURL& dest);
- /** Get directory listings. */
- int sftpReadDir(const TQByteArray& handle, const KURL& url);
- /** Retrieves the destination of a link. */
- int sftpReadLink(const KURL& url, TQString& target);
- /** Stats a file. */
- int sftpStat(const KURL& url, sftpFileAttr& attr);
- /** No descriptions */
- int sftpOpen(const KURL& url, const TQ_UINT32 pflags, const sftpFileAttr& attr, TQByteArray& handle);
- /** No descriptions */
- int sftpRead(const TQByteArray& handle, TDEIO::filesize_t offset, TQ_UINT32 len, TQByteArray& data);
- /** No descriptions */
- int sftpWrite(const TQByteArray& handle, TDEIO::filesize_t offset, const TQByteArray& data);
-
- /** Performs faster upload when the source is a local file... */
- void sftpCopyPut(const KURL& src, const KURL& dest, int mode, bool overwrite);
- /** Performs faster download when the destination is a local file... */
- void sftpCopyGet(const KURL& dest, const KURL& src, int mode, bool overwrite);
-
- /** */
- Status sftpGet( const KURL& src, TDEIO::filesize_t offset = 0, int fd = -1);
- void sftpPut( const KURL& dest, int permissions, bool resume, bool overwrite, int fd = -1);
+
+ int authenticateKeyboardInteractive(TDEIO::AuthInfo &info);
+ void clearPubKeyAuthInfo();
+
+ void reportError(const KURL &url, const int err);
+
+ bool createUDSEntry(const TQString &filename, const TQByteArray &path,
+ TDEIO::UDSEntry &entry, short int details);
+
+ TQString canonicalizePath(const TQString &path);
};
+
#endif
diff --git a/tdm/config.def b/tdm/config.def
index 6164f2f83..7ffdd2376 100644
--- a/tdm/config.def
+++ b/tdm/config.def
@@ -104,7 +104,8 @@
overridden settings are: UseBackground, BackgroundCfg, UseTheme, Theme.
In addition, if a tdmdistrc file is found, this file will be ignored.
If a tdmdistrc file is installed, changes should be made to that file.
- See /usr/share/doc/tdm/README.Debian for details
+ You may find more details in distribution specific files if present, like
+ for example /usr/share/doc/tdm-trinity/README.Debian for Debian-based distros.
_
Definition: the greeter is the login dialog, i.e., the part of &tdm;
which the user sees.
diff --git a/tdm/kfrontend/kgapp.cpp b/tdm/kfrontend/kgapp.cpp
index 9e6fccfdd..c107be80f 100644
--- a/tdm/kfrontend/kgapp.cpp
+++ b/tdm/kfrontend/kgapp.cpp
@@ -299,11 +299,22 @@ kg_main( const char *argv0 )
iccConfigFile += "/kicc/kiccconfigrc";
KSimpleConfig iccconfig(iccConfigFile, true);
if (iccconfig.readBoolEntry("EnableICC", false) == true) {
- TQString iccCommand = TQString("/usr/bin/xcalib ");
- iccCommand += iccconfig.readEntry("ICCFile");
- iccCommand += TQString(" &");
- if (system(iccCommand.ascii()) < 0) {
- printf("WARNING: Unable to execute command \"%s\"\n", iccCommand.ascii());
+ TQString iccCommand = TDEGlobal::dirs()->findExe("dispwin");
+ if (iccCommand.isEmpty())
+ {
+ iccCommand = TDEGlobal::dirs()->findExe("xcalib");
+ }
+ if (iccCommand.isEmpty())
+ {
+ printf("WARNING: Unable to find command to set ICC profile - dispwin or xcalib\n");
+ }
+ else
+ {
+ iccCommand += TQString(" %1 &").arg(iccconfig.readEntry("ICCFile"));
+ if (system(iccCommand.local8Bit()) < 0)
+ {
+ printf("WARNING: Unable to execute command \"%s\"\n", iccCommand.local8Bit().data());
+ }
}
}
diff --git a/tdm/tdm.service.cmake b/tdm/tdm.service.cmake
index 0918e9316..37befc1d5 100644
--- a/tdm/tdm.service.cmake
+++ b/tdm/tdm.service.cmake
@@ -1,8 +1,8 @@
[Unit]
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
-Conflicts=getty@tty7.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service
+Conflicts=getty@tty7.service
+After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service systemd-logind.service
[Service]
ExecStart=@BIN_INSTALL_DIR@/tdm
diff --git a/tdm/tdm.service.debian.cmake b/tdm/tdm.service.debian.cmake
index 9222898c4..3ba232aa1 100644
--- a/tdm/tdm.service.debian.cmake
+++ b/tdm/tdm.service.debian.cmake
@@ -1,8 +1,8 @@
[Unit]
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
-Conflicts=getty@tty7.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service
+Conflicts=getty@tty7.service
+After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service systemd-logind.service
[Service]
# temporary safety check until all DMs are converted to correct
@@ -10,3 +10,6 @@ After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service
ExecStartPre=/bin/sh -c '[ "$(basename $(cat /etc/X11/default-display-manager 2>/dev/null))" = "tdm" ]'
ExecStart=@BIN_INSTALL_DIR@/tdm
Restart=always
+
+[Install]
+Alias=display-manager.service
diff --git a/tdm/tdm.service.fedora-18.cmake b/tdm/tdm.service.fedora-18.cmake
index 47fb4756b..cd1bdc54d 100644
--- a/tdm/tdm.service.fedora-18.cmake
+++ b/tdm/tdm.service.fedora-18.cmake
@@ -1,8 +1,8 @@
[Unit]
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
-Conflicts=getty@tty1.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service livesys-late.service
+Conflicts=getty@tty1.service
+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service livesys-late.service systemd-logind.service
[Service]
ExecStart=@BIN_INSTALL_DIR@/tdm
diff --git a/tdm/tdm.service.fedora-19.cmake b/tdm/tdm.service.fedora-19.cmake
index f6de77607..9b57961e3 100644
--- a/tdm/tdm.service.fedora-19.cmake
+++ b/tdm/tdm.service.fedora-19.cmake
@@ -1,8 +1,8 @@
[Unit]
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
-Conflicts=getty@tty1.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
+Conflicts=getty@tty1.service
+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
[Service]
ExecStart=@BIN_INSTALL_DIR@/tdm
diff --git a/tdm/tdm.service.fedora.cmake b/tdm/tdm.service.fedora.cmake
index 23dc1b32b..9b57961e3 100644
--- a/tdm/tdm.service.fedora.cmake
+++ b/tdm/tdm.service.fedora.cmake
@@ -2,7 +2,7 @@
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
Conflicts=getty@tty1.service
-After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
[Service]
ExecStart=@BIN_INSTALL_DIR@/tdm
diff --git a/tdm/tdm.service.rhel.cmake b/tdm/tdm.service.rhel.cmake
index 23dc1b32b..9b57961e3 100644
--- a/tdm/tdm.service.rhel.cmake
+++ b/tdm/tdm.service.rhel.cmake
@@ -2,7 +2,7 @@
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
Conflicts=getty@tty1.service
-After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
[Service]
ExecStart=@BIN_INSTALL_DIR@/tdm
diff --git a/tdm/tdm.service.ubuntu.cmake b/tdm/tdm.service.ubuntu.cmake
index 9222898c4..3ba232aa1 100644
--- a/tdm/tdm.service.ubuntu.cmake
+++ b/tdm/tdm.service.ubuntu.cmake
@@ -1,8 +1,8 @@
[Unit]
Description=Trinity Display Manager
Documentation=man:tdm-trinity(1)
-Conflicts=getty@tty7.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service
+Conflicts=getty@tty7.service
+After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service systemd-logind.service
[Service]
# temporary safety check until all DMs are converted to correct
@@ -10,3 +10,6 @@ After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service
ExecStartPre=/bin/sh -c '[ "$(basename $(cat /etc/X11/default-display-manager 2>/dev/null))" = "tdm" ]'
ExecStart=@BIN_INSTALL_DIR@/tdm
Restart=always
+
+[Install]
+Alias=display-manager.service
diff --git a/tdmlib/kgreet_winbind.cpp b/tdmlib/kgreet_winbind.cpp
index aa7e39b18..3ee155ce6 100644
--- a/tdmlib/kgreet_winbind.cpp
+++ b/tdmlib/kgreet_winbind.cpp
@@ -89,8 +89,10 @@ KWinbindGreeter::KWinbindGreeter( KGreeterPluginHandler *_handler,
themer = 0;
if (!themer)
+ {
grid = new TQGridLayout( 0, 0, 10 );
layoutItem = TQT_TQLAYOUTITEM(grid);
+ }
domainLabel = loginLabel = passwdLabel = passwd1Label = passwd2Label = 0;
domainCombo = 0;
diff --git a/translations/desktop_files/applnk-compat/es.po b/translations/desktop_files/applnk-compat/es.po
index 19244436a..581b22a09 100644
--- a/translations/desktop_files/applnk-compat/es.po
+++ b/translations/desktop_files/applnk-compat/es.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Real name <sbdc1wdfzk@crossmailjet.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-08 17:00+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"
+"POT-Creation-Date: 2021-07-07 18:16+0000\n"
+"PO-Revision-Date: 2022-08-29 21:55+0000\n"
+"Last-Translator: Real name <sbdc1wdfzk@crossmailjet.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/applnk-compat/es/>\n"
"Language: es\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.13.1\n"
#. Name
#: battery.desktop:2 bwarning.desktop:2 cwarning.desktop:2 power.desktop:2
@@ -81,7 +82,7 @@ msgstr ""
#. Name
#: socks.desktop:2
msgid "Socks"
-msgstr ""
+msgstr "SOCKS"
#. Name
#: userinfo.desktop:13
diff --git a/translations/desktop_files/applnk-compat/pl.po b/translations/desktop_files/applnk-compat/pl.po
index c435f8e17..30cd47eb2 100644
--- a/translations/desktop_files/applnk-compat/pl.po
+++ b/translations/desktop_files/applnk-compat/pl.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Marek W <coronzon88@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-08 17:00+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"
+"POT-Creation-Date: 2021-07-07 18:16+0000\n"
+"PO-Revision-Date: 2021-10-10 09:30+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/applnk-compat/pl/>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: battery.desktop:2 bwarning.desktop:2 cwarning.desktop:2 power.desktop:2
msgid "Laptop"
-msgstr ""
+msgstr "Laptop"
#. Name
#: email.desktop:10
@@ -79,7 +81,7 @@ msgstr ""
#. Name
#: socks.desktop:2
msgid "Socks"
-msgstr ""
+msgstr "Proxy SOCKS"
#. Name
#: userinfo.desktop:13
diff --git a/translations/desktop_files/applnk-directories/es.po b/translations/desktop_files/applnk-directories/es.po
index 377b5899b..54614ad6d 100644
--- a/translations/desktop_files/applnk-directories/es.po
+++ b/translations/desktop_files/applnk-directories/es.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Real name <sbdc1wdfzk@crossmailjet.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-08 16: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"
+"POT-Creation-Date: 2021-07-07 18:16+0000\n"
+"PO-Revision-Date: 2022-08-29 21:56+0000\n"
+"Last-Translator: Real name <sbdc1wdfzk@crossmailjet.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/applnk-directories/es/>\n"
"Language: es\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.13.1\n"
#. Name
#: .directory:2
@@ -38,7 +39,7 @@ msgstr "Desarrollo web"
#: kde-science.directory:5 kde-settingsmenu.directory:4 kde-system.directory:4
#: kde-utilities.directory:4
msgid "KDE"
-msgstr ""
+msgstr "KDE"
#. Name
#: kde-editors.directory:4 tde-editors.directory:4
@@ -48,17 +49,17 @@ msgstr "Editores"
#. Name
#: kde-edu-languages.directory:4
msgid "Languages"
-msgstr ""
+msgstr "Lenguajes"
#. Name
#: kde-edu-mathematics.directory:4
msgid "Mathematics"
-msgstr ""
+msgstr "Matematicas"
#. Name
#: kde-edu-miscellaneous.directory:4
msgid "Miscellaneous"
-msgstr ""
+msgstr "Miscelaneo"
#. Name
#: kde-edu-science.directory:4 tde-science.directory:5
@@ -68,7 +69,7 @@ msgstr "Ciencia"
#. Name
#: kde-games-arcade.directory:4 tde-games-arcade.directory:4
msgid "Arcade"
-msgstr ""
+msgstr "Arcade"
#. Name
#: kde-games-board.directory:4 tde-games-board.directory:4
@@ -115,7 +116,7 @@ msgstr "Escritorio"
#: kde-utilities-pim.directory:4 tde-utilities-pim.directory:4
#: tde-utilities-pim.directory:6
msgid "PIM"
-msgstr ""
+msgstr "PIM"
#. Name
#: tde-development-translation.directory:4
diff --git a/translations/desktop_files/applnk-directories/pl.po b/translations/desktop_files/applnk-directories/pl.po
index 6878c85d3..95c83eb16 100644
--- a/translations/desktop_files/applnk-directories/pl.po
+++ b/translations/desktop_files/applnk-directories/pl.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Marek W <coronzon88@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-08 16: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"
+"POT-Creation-Date: 2021-07-07 18:16+0000\n"
+"PO-Revision-Date: 2021-10-10 09:30+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/applnk-directories/pl/>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: .directory:2
@@ -38,7 +40,7 @@ msgstr "Programowanie WWW"
#: kde-science.directory:5 kde-settingsmenu.directory:4 kde-system.directory:4
#: kde-utilities.directory:4
msgid "KDE"
-msgstr ""
+msgstr "TDE"
#. Name
#: kde-editors.directory:4 tde-editors.directory:4
@@ -48,17 +50,17 @@ msgstr "Edytory"
#. Name
#: kde-edu-languages.directory:4
msgid "Languages"
-msgstr ""
+msgstr "Języki"
#. Name
#: kde-edu-mathematics.directory:4
msgid "Mathematics"
-msgstr ""
+msgstr "Matematyka"
#. Name
#: kde-edu-miscellaneous.directory:4
msgid "Miscellaneous"
-msgstr ""
+msgstr "Pozostałe"
#. Name
#: kde-edu-science.directory:4 tde-science.directory:5
@@ -134,9 +136,8 @@ msgstr "Nauka i rozrywka"
#. Name
#: tde-games-logic.directory:4
-#, fuzzy
msgid "Logic Games"
-msgstr "Gry z rodziny Rogue"
+msgstr "Gry logiczne"
#. Name
#: tde-games-roguelikes.directory:4
@@ -160,9 +161,8 @@ msgstr "Programy terminala"
#. Name
#: tde-internet.directory:4
-#, fuzzy
msgid "Internet"
-msgstr "Internet i sieć"
+msgstr "Internet"
#. Name
#: tde-main.directory:5
@@ -176,7 +176,6 @@ msgstr "Więcej programów"
#. Name
#: tde-multimedia.directory:4
-#, fuzzy
msgid "Multimedia"
msgstr "Dźwięk i multimedia"
@@ -209,7 +208,7 @@ msgstr "Sprzęt"
#. Name
#: tde-settings-information.directory:4
msgid "Device Informations"
-msgstr ""
+msgstr "Informacje o urządzeniach"
#. Name
#: tde-settings-looknfeel.directory:4
@@ -276,12 +275,12 @@ msgstr "Podgląd wygaszacza ekranu"
#. Name
#: tde-system-su.directory:5
msgid "SuperUser"
-msgstr ""
+msgstr "Administrator"
#. Name
#: tde-system.directory:4
msgid "System"
-msgstr ""
+msgstr "System"
#. Name
#: tde-unknown.directory:4
diff --git a/translations/desktop_files/applnk-directories/pt.po b/translations/desktop_files/applnk-directories/pt.po
index 8c9c8cf37..d66a03311 100644
--- a/translations/desktop_files/applnk-directories/pt.po
+++ b/translations/desktop_files/applnk-directories/pt.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-08 16: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"
+"POT-Creation-Date: 2021-07-07 18:16+0000\n"
+"PO-Revision-Date: 2021-12-02 19:00+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/applnk-directories/pt/>\n"
"Language: pt\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.9.1\n"
#. Name
#: .directory:2
msgid "Default"
-msgstr "Por Omissão"
+msgstr "Por omissão"
#. Name
#: hidden.directory:4
@@ -38,7 +39,7 @@ msgstr "Desenvolvimento Web"
#: kde-science.directory:5 kde-settingsmenu.directory:4 kde-system.directory:4
#: kde-utilities.directory:4
msgid "KDE"
-msgstr ""
+msgstr "KDE"
#. Name
#: kde-editors.directory:4 tde-editors.directory:4
@@ -48,17 +49,17 @@ msgstr "Editores"
#. Name
#: kde-edu-languages.directory:4
msgid "Languages"
-msgstr ""
+msgstr "Idiomas"
#. Name
#: kde-edu-mathematics.directory:4
msgid "Mathematics"
-msgstr ""
+msgstr "Matemática"
#. Name
#: kde-edu-miscellaneous.directory:4
msgid "Miscellaneous"
-msgstr ""
+msgstr "Diversos"
#. Name
#: kde-edu-science.directory:4 tde-science.directory:5
@@ -115,7 +116,7 @@ msgstr "Ambiente de Trabalho"
#: kde-utilities-pim.directory:4 tde-utilities-pim.directory:4
#: tde-utilities-pim.directory:6
msgid "PIM"
-msgstr ""
+msgstr "PIM"
#. Name
#: tde-development-translation.directory:4
@@ -134,9 +135,8 @@ msgstr "Educação/Entretenimento"
#. Name
#: tde-games-logic.directory:4
-#, fuzzy
msgid "Logic Games"
-msgstr "Jogos tipo Rogue"
+msgstr "Jogos de Lógica"
#. Name
#: tde-games-roguelikes.directory:4
@@ -160,9 +160,8 @@ msgstr "Aplicações de Terminal"
#. Name
#: tde-internet.directory:4
-#, fuzzy
msgid "Internet"
-msgstr "Internet e Rede"
+msgstr "Internet"
#. Name
#: tde-main.directory:5
@@ -183,7 +182,7 @@ msgstr "Multimédia"
#. Comment
#: tde-office-pim.directory:4 tde-office-pim.directory:6
msgid "Personal Information Management"
-msgstr ""
+msgstr "Gestão de Informação Pessoal"
#. Name
#: tde-office.directory:4
@@ -203,12 +202,12 @@ msgstr "Componentes do TDE"
#. Name
#: tde-settings-hardware.directory:4
msgid "Hardware"
-msgstr ""
+msgstr "Hardware"
#. Name
#: tde-settings-information.directory:4
msgid "Device Informations"
-msgstr ""
+msgstr "Informações do dispositivo"
#. Name
#: tde-settings-looknfeel.directory:4
@@ -275,7 +274,7 @@ msgstr "Demonstrações de protectores de ecrã"
#. Name
#: tde-system-su.directory:5
msgid "SuperUser"
-msgstr ""
+msgstr "SuperUtilizador"
#. Name
#: tde-system.directory:4
diff --git a/translations/desktop_files/drkonqi-presets/pl.po b/translations/desktop_files/drkonqi-presets/pl.po
index 13ec3fe69..fa45f2411 100644
--- a/translations/desktop_files/drkonqi-presets/pl.po
+++ b/translations/desktop_files/drkonqi-presets/pl.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Marek W <coronzon88@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-19 03:59+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: 2021-10-10 09:30+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/drkonqi-presets/pl/>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: developerrc:2
@@ -46,7 +48,7 @@ msgstr ""
#. Name
#: developerrc:20 enduserrc:20
msgid "SIGILL"
-msgstr ""
+msgstr "SIGILL"
#. Comment
#: developerrc:21
@@ -56,7 +58,7 @@ msgstr "Nielegalna instrukcja."
#. Name
#: developerrc:24 enduserrc:24
msgid "SIGABRT"
-msgstr ""
+msgstr "SIGABRT"
#. Comment
#: developerrc:25
@@ -66,7 +68,7 @@ msgstr "Przerwany."
#. Name
#: developerrc:28 enduserrc:28
msgid "SIGFPE"
-msgstr ""
+msgstr "SIGFPE"
#. Comment
#: developerrc:29
@@ -76,7 +78,7 @@ msgstr "Błąd podczas obliczeń zmiennoprzecinkowych."
#. Name
#: developerrc:32 enduserrc:32
msgid "SIGSEGV"
-msgstr ""
+msgstr "SIGSEGV"
#. Comment
#: developerrc:33
diff --git a/translations/desktop_files/drkonqi-presets/pt.po b/translations/desktop_files/drkonqi-presets/pt.po
index ca27d371e..cf1b2a0ca 100644
--- a/translations/desktop_files/drkonqi-presets/pt.po
+++ b/translations/desktop_files/drkonqi-presets/pt.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-19 03:59+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-08-02 14:46+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/drkonqi-presets/pt/>\n"
"Language: pt\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.13.1\n"
#. Name
#: developerrc:2
@@ -119,11 +120,11 @@ msgid ""
"include as much information as possible, maybe the original documents. If "
"you have a way to reproduce the error, include this also."
msgstr ""
-"Você poderá querer enviar um relatório de erro para esta aplicação. "
-"Verifique se está listada no http://bugs.trinitydesktop.org; caso contrário, "
-"mande um e-mail ao autor. Por favor inclua o máximo possível de informação, "
-"bem como os documentos em que estava a trabalhar. Se conseguir reproduzir o "
-"erro, inclua também a forma de o fazer."
+"Poderá querer enviar um relatório de erro para esta aplicação. Verifique se "
+"está listada no http://bugs.trinitydesktop.org; caso contrário, mande um e-"
+"mail ao autor. Por favor inclua o máximo possível de informação, bem como os "
+"documentos em que estava a trabalhar. Se conseguir reproduzir o erro, inclua "
+"também a forma de o fazer."
#. Comment
#: enduserrc:21
diff --git a/translations/desktop_files/kappfinder-data/it.po b/translations/desktop_files/kappfinder-data/it.po
index 2ea31213d..2f6ac90dc 100644
--- a/translations/desktop_files/kappfinder-data/it.po
+++ b/translations/desktop_files/kappfinder-data/it.po
@@ -1,13 +1,15 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# Fiflagar Lorizen <fiflagar.lorizen@posteo.net>, 2021.
+# Leandro Nini <drfiemost@email.it>, 2021.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-17 22:13+0200\n"
-"PO-Revision-Date: 2021-04-20 20:01+0000\n"
-"Last-Translator: Fiflagar Lorizen <fiflagar.lorizen@posteo.net>\n"
+"POT-Creation-Date: 2021-07-07 18:16+0000\n"
+"PO-Revision-Date: 2021-11-21 09:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/kappfinder-data/it/>\n"
"Language: it\n"
@@ -15,7 +17,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.9\n"
#. Name
#: Development/Forte.desktop:2
@@ -69,9 +71,8 @@ msgstr "Editor delle finestre di dialogo"
#. Name
#: Development/eclipse.desktop:3
-#, fuzzy
msgid "Eclipse"
-msgstr "IDE Eclipse"
+msgstr "Eclipse"
#. GenericName
#: Development/eclipse.desktop:4
@@ -80,9 +81,8 @@ msgstr "IDE Eclipse"
#. Name
#: Development/fdesign.desktop:2
-#, fuzzy
msgid "FormDesigner"
-msgstr "Designer Qt"
+msgstr "FormDesigner"
#. Name
#: Development/j2mewtk.desktop:2
@@ -107,7 +107,7 @@ msgstr "Strumento per le traduzioni"
#. Name
#: Development/pose.desktop:2
msgid "Pose"
-msgstr ""
+msgstr "Posa"
#. GenericName
#: Development/pose.desktop:3
@@ -117,7 +117,7 @@ msgstr "Emulatore Palm/Wireless"
#. Name
#: Development/sced.desktop:2
msgid "Sced"
-msgstr ""
+msgstr "Sced"
#. GenericName
#: Development/sced.desktop:3
@@ -127,7 +127,7 @@ msgstr "Modellatore di scene"
#. Name
#: Games/Arcade/ClanBomber.desktop:2
msgid "ClanBomber"
-msgstr ""
+msgstr "ClanBomber"
#. GenericName
#: Games/Arcade/ClanBomber.desktop:3 Games/Arcade/GnobotsII.desktop:3
@@ -143,7 +143,7 @@ msgstr "Gioco arcade"
#. Name
#: Games/Arcade/FrozenBubble.desktop:2
msgid "Frozen Bubble"
-msgstr ""
+msgstr "Bolla congelata"
#. GenericName
#: Games/Arcade/FrozenBubble.desktop:3
@@ -153,7 +153,7 @@ msgstr "Gioco tipo-tetris"
#. Name
#: Games/Arcade/Gnibbles.desktop:2
msgid "Gnibbles"
-msgstr ""
+msgstr "Gnibbles"
#. GenericName
#: Games/Arcade/Gnibbles.desktop:3
@@ -163,27 +163,27 @@ msgstr "Gioco nibbles di GNOME"
#. Name
#: Games/Arcade/GnobotsII.desktop:2
msgid "Gnobots II"
-msgstr ""
+msgstr "Gnobots II"
#. Name
#: Games/Arcade/Mures.desktop:2
msgid "Mures"
-msgstr ""
+msgstr "Mures"
#. Name
#: Games/Arcade/SuperMethaneBrothers.desktop:2
msgid "Super Methane Brothers"
-msgstr ""
+msgstr "Fratelli Super Metano"
#. Name
#: Games/Arcade/Trophy.desktop:2
msgid "Trophy"
-msgstr ""
+msgstr "Trophy"
#. Name
#: Games/Arcade/TuxRacer.desktop:2
msgid "TuxRacer"
-msgstr ""
+msgstr "Trophy"
#. GenericName
#: Games/Arcade/TuxRacer.desktop:3
@@ -193,17 +193,17 @@ msgstr "Gara di corsa"
#. Name
#: Games/Arcade/XKobo.desktop:2
msgid "XKobo"
-msgstr ""
+msgstr "XKobo"
#. Name
#: Games/Arcade/XSoldier.desktop:2
msgid "XSoldier"
-msgstr ""
+msgstr "XSoldier"
#. Name
#: Games/Arcade/alephone-nogl.desktop:2
msgid "Alephone"
-msgstr ""
+msgstr "Alephone"
#. Comment
#: Games/Arcade/alephone-nogl.desktop:3
@@ -226,12 +226,12 @@ msgstr ""
#. Name
#: Games/Arcade/battalion.desktop:2
msgid "Batallion"
-msgstr ""
+msgstr "Battaglione"
#. Name
#: Games/Arcade/battleball.desktop:2
msgid "Battleball"
-msgstr ""
+msgstr "Battleball"
#. GenericName
#: Games/Arcade/battleball.desktop:3
@@ -241,12 +241,12 @@ msgstr "Gioco di palla"
#. Name
#: Games/Arcade/cxhextris.desktop:2
msgid "cxhextris"
-msgstr ""
+msgstr "cxhextris"
#. Name
#: Games/Arcade/rocksndiamonds.desktop:2
msgid "Rocks n Diamonds"
-msgstr ""
+msgstr "Rocce e Diamanti"
#. GenericName
#: Games/Arcade/rocksndiamonds.desktop:3 Games/Board/Glines.desktop:3
@@ -256,29 +256,27 @@ msgstr "Gioco di tattica"
#. Name
#: Games/Arcade/scavenger.desktop:2
msgid "Scavenger"
-msgstr ""
+msgstr "Scavenger"
#. Name
#: Games/Board/Gataxx.desktop:2
msgid "Gataxx"
-msgstr ""
+msgstr "Gataxx"
#. Name
#: Games/Board/Gchess.desktop:2
-#, fuzzy
msgid "GNOME Chess"
-msgstr "Who di GNOME"
+msgstr "Scacchi di GNOME"
#. Name
#: Games/Board/Glines.desktop:2
msgid "Glines"
-msgstr ""
+msgstr "Glines"
#. Name
#: Games/Board/Gmahjongg.desktop:2
-#, fuzzy
msgid "GNOME Mahjongg"
-msgstr "Who di GNOME"
+msgstr "Mahjongg di GNOME"
#. GenericName
#: Games/Board/Gmahjongg.desktop:3
@@ -287,9 +285,8 @@ msgstr "Gioco di tessere"
#. Name
#: Games/Board/Gmines.desktop:2
-#, fuzzy
msgid "GNOME Mines"
-msgstr "Telnet di GNOME"
+msgstr "GNOME Miniere"
#. GenericName
#: Games/Board/Gmines.desktop:3
@@ -299,12 +296,12 @@ msgstr "Gioco di logica"
#. Name
#: Games/Board/Gnotravex.desktop:2
msgid "Gnotravex"
-msgstr ""
+msgstr "Gnotravex"
#. Name
#: Games/Board/Gnotski.desktop:2
msgid "Gnotski"
-msgstr ""
+msgstr "Gnotski"
#. GenericName
#: Games/Board/Gnotski.desktop:3
@@ -313,14 +310,13 @@ msgstr "Gioco Klotski di GNOME"
#. Name
#: Games/Board/Gstones.desktop:2
-#, fuzzy
msgid "GNOME Stones"
-msgstr "Telnet di GNOME"
+msgstr "GNOME Pietre"
#. Name
#: Games/Board/Iagno.desktop:2
msgid "Iagno"
-msgstr ""
+msgstr "Iagno"
#. GenericName
#: Games/Board/Iagno.desktop:3 Games/Board/SameGnome.desktop:3
@@ -331,12 +327,12 @@ msgstr "Gioco da tavola"
#. Name
#: Games/Board/SameGnome.desktop:2
msgid "Same GNOME"
-msgstr ""
+msgstr "Same GNOME"
#. Name
#: Games/Board/Xgammon.desktop:2
msgid "Xgammon"
-msgstr ""
+msgstr "Xgammon"
#. Name
#: Games/Board/xboard.desktop:2
@@ -351,7 +347,7 @@ msgstr "Gioco di scacchi"
#. Name
#: Games/Card/AisleRiot.desktop:2
msgid "AisleRiot"
-msgstr ""
+msgstr "Rivolta del corridoio"
#. GenericName
#: Games/Card/AisleRiot.desktop:3 Games/Card/FreeCell.desktop:3
@@ -362,28 +358,27 @@ msgstr "Gioco di carte"
#. Name
#: Games/Card/FreeCell.desktop:2
msgid "FreeCell"
-msgstr ""
+msgstr "FreeCell"
#. Name
#: Games/Card/PySol.desktop:2
msgid "PySol"
-msgstr ""
+msgstr "PySol"
#. Name
#: Games/Card/XPat2.desktop:2
msgid "XPat 2"
-msgstr ""
+msgstr "XPat 2"
#. Name
#: Games/Clanbomber.desktop:2
msgid "Clanbomber"
-msgstr ""
+msgstr "Clanbomber"
#. Name
#: Games/Emulators/cmail.desktop:2
-#, fuzzy
msgid "ChessMail"
-msgstr "Gioco di scacchi"
+msgstr "Scacchi"
#. GenericName
#: Games/Emulators/cmail.desktop:3
@@ -393,7 +388,7 @@ msgstr "Posta elettronica per gli scacchi"
#. Name
#: Games/Emulators/qmamecat.desktop:2
msgid "Qmamecat"
-msgstr ""
+msgstr "Qmamecat"
#. GenericName
#: Games/Emulators/qmamecat.desktop:3
@@ -403,7 +398,7 @@ msgstr "Emulatore arcade"
#. Name
#: Games/GTali.desktop:2
msgid "GTali"
-msgstr ""
+msgstr "GTali"
#. GenericName
#: Games/GTali.desktop:3
@@ -413,7 +408,7 @@ msgstr "Gioco di dadi"
#. Name
#: Games/Roguelikes/angband.desktop:2
msgid "Angband"
-msgstr ""
+msgstr "Angband"
#. Comment
#: Games/Roguelikes/angband.desktop:3
@@ -423,7 +418,7 @@ msgstr "Tuffati dentro Angband e sconfiggi Morgoth"
#. Name
#: Games/Roguelikes/moria.desktop:2
msgid "Moria"
-msgstr ""
+msgstr "Moria"
#. Comment
#: Games/Roguelikes/moria.desktop:3
@@ -433,7 +428,7 @@ msgstr "Tuffati dentro Moria e sconfiggi il Balrog"
#. Name
#: Games/Roguelikes/nethack.desktop:2
msgid "NetHack"
-msgstr ""
+msgstr "NetHack"
#. GenericName
#: Games/Roguelikes/nethack.desktop:3 Games/Roguelikes/tome.desktop:3
@@ -443,7 +438,7 @@ msgstr "Gioco di avventura"
#. Name
#: Games/Roguelikes/rogue.desktop:2
msgid "Rogue"
-msgstr ""
+msgstr "Rogue"
#. GenericName
#: Games/Roguelikes/rogue.desktop:3
@@ -453,12 +448,12 @@ msgstr "L'originale"
#. Name
#: Games/Roguelikes/tome.desktop:2
msgid "ToME"
-msgstr ""
+msgstr "ToME"
#. Name
#: Games/Roguelikes/zangband.desktop:2
msgid "ZAngband"
-msgstr ""
+msgstr "ZAngband"
#. GenericName
#: Games/Roguelikes/zangband.desktop:3
@@ -468,7 +463,7 @@ msgstr "Sconfiggi il Serpente del Caos"
#. Name
#: Games/TacticStrategy/freeciv.desktop:3
msgid "Freeciv"
-msgstr ""
+msgstr "Freeciv"
#. GenericName
#: Games/TacticStrategy/freeciv.desktop:4 Games/xshipwars.desktop:4
@@ -488,7 +483,7 @@ msgstr "Un server per Free Civ"
#. Name
#: Games/TacticStrategy/xscorch.desktop:3
msgid "XScorch"
-msgstr ""
+msgstr "XScorch"
#. Comment
#: Games/TacticStrategy/xscorch.desktop:4
@@ -498,12 +493,12 @@ msgstr "Un clone per UNIX e X di Scorched Earth"
#. Name
#: Games/Toys/xeyes.desktop:2
msgid "X Eyes"
-msgstr ""
+msgstr "Occhi X"
#. Name
#: Games/Toys/xpinguin.desktop:2
msgid "Tux"
-msgstr ""
+msgstr "Tux"
#. GenericName
#: Games/Toys/xpinguin.desktop:3
@@ -513,7 +508,7 @@ msgstr "Mascotte di Linux"
#. Name
#: Games/defendguin.desktop:3
msgid "Defendguin"
-msgstr ""
+msgstr "Defendguin"
#. GenericName
#: Games/defendguin.desktop:4
@@ -523,17 +518,17 @@ msgstr "Gioco"
#. Name
#: Games/penguin-command.desktop:3
msgid "Penguin Command"
-msgstr ""
+msgstr "Commando Pinguini"
#. Name
#: Games/xshipwars.desktop:3
msgid "XShipWars"
-msgstr ""
+msgstr "ShipWars X"
#. Name
#: Graphics/ElectricEyes.desktop:2
msgid "Electric Eyes"
-msgstr ""
+msgstr "Occhi elettrici"
#. GenericName
#: Graphics/ElectricEyes.desktop:3
@@ -543,7 +538,7 @@ msgstr "Visualizzatore di immagini"
#. Name
#: Graphics/GPhoto.desktop:2
msgid "GPhoto"
-msgstr ""
+msgstr "GPhoto"
#. GenericName
#: Graphics/GPhoto.desktop:3
@@ -563,7 +558,7 @@ msgstr "Editor di icone di GNOME"
#. Name
#: Graphics/Gqview.desktop:2
msgid "Gqview"
-msgstr ""
+msgstr "Gqview"
#. GenericName
#: Graphics/Gqview.desktop:3
@@ -573,7 +568,7 @@ msgstr "Browser di immagini"
#. Name
#: Graphics/Sketch.desktop:2
msgid "Sketch"
-msgstr ""
+msgstr "Schizza"
#. GenericName
#: Graphics/Sketch.desktop:3
@@ -583,7 +578,7 @@ msgstr "Programma di disegno vettoriale"
#. Name
#: Graphics/Xpcd.desktop:2
msgid "Xpcd"
-msgstr ""
+msgstr "Xpcd"
#. GenericName
#: Graphics/Xpcd.desktop:3
@@ -593,7 +588,7 @@ msgstr "Strumenti per PhotoCD"
#. Name
#: Graphics/Xwpick.desktop:2
msgid "Xwpick"
-msgstr ""
+msgstr "Xwpick"
#. GenericName
#: Graphics/Xwpick.desktop:3
@@ -603,7 +598,7 @@ msgstr "Programma per fare foto allo schermo"
#. Name
#: Graphics/bitmap.desktop:2
msgid "X Bitmap"
-msgstr ""
+msgstr "Bitmap X"
#. GenericName
#: Graphics/bitmap.desktop:3
@@ -613,7 +608,7 @@ msgstr "Creatore di bitmap"
#. Name
#: Graphics/blender.desktop:2
msgid "Blender"
-msgstr ""
+msgstr "Blender"
#. GenericName
#: Graphics/blender.desktop:3
@@ -623,7 +618,7 @@ msgstr "Modellatore e render 3D"
#. Name
#: Graphics/ghostview.desktop:2
msgid "GhostView"
-msgstr ""
+msgstr "GhostView"
#. GenericName
#: Graphics/ghostview.desktop:3
@@ -633,7 +628,7 @@ msgstr "Visualizzatore PostScript"
#. Name
#: Graphics/gimp.desktop:2
msgid "Gimp"
-msgstr ""
+msgstr "Gimp"
#. GenericName
#: Graphics/gimp.desktop:3
@@ -643,7 +638,7 @@ msgstr "Programma di manipolazione immagini"
#. Name
#: Graphics/gv.desktop:2
msgid "GV"
-msgstr ""
+msgstr "GV"
#. GenericName
#: Graphics/gv.desktop:3
@@ -653,7 +648,7 @@ msgstr "Visualizzatore PostScript"
#. Name
#: Graphics/inkscape.desktop:2
msgid "Inkscape"
-msgstr ""
+msgstr "Inkscape"
#. GenericName
#: Graphics/inkscape.desktop:3 Graphics/sodipodi.desktop:3
@@ -663,12 +658,12 @@ msgstr "Grafica vettoriale"
#. Name
#: Graphics/sodipodi.desktop:2
msgid "Sodipodi"
-msgstr ""
+msgstr "Sodipodi"
#. Name
#: Graphics/tgif.desktop:2
msgid "TGif"
-msgstr ""
+msgstr "TGif"
#. GenericName
#: Graphics/tgif.desktop:3 Graphics/xfig.desktop:3
@@ -678,7 +673,7 @@ msgstr "Programma di disegno"
#. Name
#: Graphics/xdvi.desktop:2
msgid "X DVI"
-msgstr ""
+msgstr "X DVI"
#. GenericName
#: Graphics/xdvi.desktop:3
@@ -688,12 +683,12 @@ msgstr "Visualizzatore DVI"
#. Name
#: Graphics/xfig.desktop:2
msgid "Xfig"
-msgstr ""
+msgstr "Xfig"
#. Name
#: Graphics/xpaint.desktop:2
msgid "X Paint"
-msgstr ""
+msgstr "Paint X"
#. GenericName
#: Graphics/xpaint.desktop:3
@@ -703,7 +698,7 @@ msgstr "Programma di disegno"
#. Name
#: Graphics/xv.desktop:2
msgid "XV"
-msgstr ""
+msgstr "XV"
#. GenericName
#: Graphics/xv.desktop:3
@@ -713,7 +708,7 @@ msgstr "Visualizzatore di immagini"
#. Name
#: Internet/BlueFish.desktop:2
msgid "BlueFish"
-msgstr ""
+msgstr "BlueFish"
#. GenericName
#: Internet/BlueFish.desktop:3
@@ -723,7 +718,7 @@ msgstr "Editor HTML"
#. Name
#: Internet/Dpsftp.desktop:2
msgid "Dpsftp"
-msgstr ""
+msgstr "Dpsftp"
#. GenericName
#: Internet/Dpsftp.desktop:3 Internet/gFTP.desktop:3 Internet/xftp.desktop:3
@@ -733,7 +728,7 @@ msgstr "Browser FTP"
#. Name
#: Internet/DrakSync.desktop:2
msgid "DrakSync"
-msgstr ""
+msgstr "DrakSync"
#. GenericName
#: Internet/DrakSync.desktop:3
@@ -743,7 +738,7 @@ msgstr "Sincronizzazione cartelle"
#. Name
#: Internet/Evolution.desktop:2
msgid "Evolution"
-msgstr ""
+msgstr "Evolution"
#. GenericName
#: Internet/Evolution.desktop:3 Internet/Netscapemessenger.desktop:3
@@ -756,7 +751,7 @@ msgstr "Programma di posta elettronica"
#. Name
#: Internet/Faces.desktop:2
msgid "Faces"
-msgstr ""
+msgstr "Faces"
#. GenericName
#: Internet/Faces.desktop:3 Internet/coolmail.desktop:3
@@ -766,7 +761,6 @@ msgstr "Programma per controllare la posta"
#. Name
#: Internet/Fetchmailconf.desktop:2
-#, fuzzy
msgid "Fetchmailconf"
msgstr "Configurazione di fetchmail"
@@ -778,7 +772,7 @@ msgstr "Configurazione di fetchmail"
#. Name
#: Internet/Gabber.desktop:2
msgid "Gabber"
-msgstr ""
+msgstr "Gabber"
#. GenericName
#: Internet/Gabber.desktop:3 Internet/gaim.desktop:3
@@ -788,7 +782,7 @@ msgstr "Messaggistica istantanea"
#. Name
#: Internet/Galeon.desktop:2
msgid "Galeon"
-msgstr ""
+msgstr "Galeon"
#. GenericName
#: Internet/Galeon.desktop:3 Internet/Terminal/Links.desktop:3
@@ -803,7 +797,7 @@ msgstr "Browser Web"
#. Name
#: Internet/GnomeICU.desktop:2
msgid "GNOMEICU"
-msgstr ""
+msgstr "GNOMEICU"
#. GenericName
#: Internet/GnomeICU.desktop:3 Internet/licq.desktop:3
@@ -812,14 +806,13 @@ msgstr "Messaggistica ICQ"
#. Name
#: Internet/Netscapemessenger.desktop:2
-#, fuzzy
msgid "Netscape Messenger"
-msgstr "Messaggistica istantanea"
+msgstr "Netscape Messenger"
#. Name
#: Internet/Nmapfe.desktop:2
msgid "Nmapfe"
-msgstr ""
+msgstr "Nmapfe"
#. GenericName
#: Internet/Nmapfe.desktop:3
@@ -829,7 +822,7 @@ msgstr "Port scanner"
#. Name
#: Internet/Pan.desktop:2
msgid "Pan"
-msgstr ""
+msgstr "Pan"
#. GenericName
#: Internet/Pan.desktop:3 Internet/knews.desktop:3
@@ -839,17 +832,17 @@ msgstr "Lettore news Usenet"
#. Name
#: Internet/Sylpheed.desktop:2
msgid "Sylpheed"
-msgstr ""
+msgstr "Sylpheed"
#. Name
#: Internet/Terminal/Links.desktop:2
msgid "Links"
-msgstr ""
+msgstr "Links"
#. Name
#: Internet/Terminal/Lynx.desktop:2
msgid "Lynx"
-msgstr ""
+msgstr "Lynx"
#. Name
#: Internet/Terminal/btdownloadcurses.desktop:2
@@ -865,7 +858,7 @@ msgstr "GUI per BitTorrent"
#. Name
#: Internet/Terminal/lftp.desktop:2
msgid "Lftp"
-msgstr ""
+msgstr "Lftp"
#. GenericName
#: Internet/Terminal/lftp.desktop:3 Internet/Terminal/ncftp.desktop:3
@@ -875,22 +868,22 @@ msgstr "Client FTP"
#. Name
#: Internet/Terminal/mutt.desktop:2
msgid "Mutt"
-msgstr ""
+msgstr "Mutt"
#. Name
#: Internet/Terminal/ncftp.desktop:2
msgid "NcFTP"
-msgstr ""
+msgstr "NcFTP"
#. Name
#: Internet/Terminal/pine.desktop:2
msgid "Pine"
-msgstr ""
+msgstr "Pine"
#. Name
#: Internet/Terminal/silc.desktop:2
msgid "Silc"
-msgstr ""
+msgstr "Silc"
#. GenericName
#: Internet/Terminal/silc.desktop:3
@@ -900,7 +893,7 @@ msgstr "Client SILC"
#. Name
#: Internet/Terminal/slrn.desktop:2
msgid "Slrn"
-msgstr ""
+msgstr "Slrn"
#. GenericName
#: Internet/Terminal/slrn.desktop:3
@@ -910,17 +903,17 @@ msgstr "Lettore newsgroup"
#. Name
#: Internet/Terminal/w3m.desktop:2
msgid "w3m"
-msgstr ""
+msgstr "w3m"
#. Name
#: Internet/arena.desktop:2
msgid "Arena"
-msgstr ""
+msgstr "Arena"
#. Name
#: Internet/balsa.desktop:2
msgid "Balsa"
-msgstr ""
+msgstr "Balsa"
#. Name
#: Internet/btdownloadgui.desktop:2
@@ -930,12 +923,12 @@ msgstr "GUI in python e wxGTK per BitTorrent"
#. Name
#: Internet/coolmail.desktop:2
msgid "Coolmail"
-msgstr ""
+msgstr "Coolmail"
#. Name
#: Internet/dc_gui.desktop:2
msgid "DCTC GUI"
-msgstr ""
+msgstr "DCTC GUI"
#. GenericName
#: Internet/dc_gui.desktop:3
@@ -955,12 +948,12 @@ msgstr "GUI di eDonkey2000"
#. Name
#: Internet/epiphany.desktop:2
msgid "Epiphany"
-msgstr ""
+msgstr "Epiphany"
#. Name
#: Internet/ethereal.desktop:2
msgid "Ethereal"
-msgstr ""
+msgstr "Ethereal"
#. GenericName
#: Internet/ethereal.desktop:3 Internet/wireshark.desktop:3
@@ -970,17 +963,17 @@ msgstr "Analizzatore di rete"
#. Name
#: Internet/gFTP.desktop:2
msgid "gFTP"
-msgstr ""
+msgstr "gFTP"
#. Name
#: Internet/gaim.desktop:2
msgid "Gaim"
-msgstr ""
+msgstr "Gaim"
#. Name
#: Internet/gnomemeeting.desktop:2
msgid "GnomeMeeting"
-msgstr ""
+msgstr "GnomeMeeting"
#. GenericName
#: Internet/gnomemeeting.desktop:3
@@ -1005,7 +998,7 @@ msgstr "Accesso remoto"
#. Name
#: Internet/ickle.desktop:2
msgid "ickle"
-msgstr ""
+msgstr "ickle"
#. GenericName
#: Internet/ickle.desktop:3
@@ -1015,17 +1008,17 @@ msgstr "Chat ICQ2000"
#. Name
#: Internet/javaws.desktop:2
msgid "Java Web Start"
-msgstr ""
+msgstr "Java Web Start"
#. Name
#: Internet/knews.desktop:2
msgid "KNews"
-msgstr ""
+msgstr "KNews"
#. Name
#: Internet/licq.desktop:2
msgid "Licq"
-msgstr ""
+msgstr "Licq"
#. Name
#: Internet/mldonkey_gui.desktop:2
@@ -1040,48 +1033,47 @@ msgstr "GUI di MLDonkey"
#. Name
#: Internet/mozilla-firefox.desktop:2
msgid "Firefox"
-msgstr ""
+msgstr "Firefox"
#. Name
#: Internet/mozilla-thunderbird.desktop:2
msgid "Thunderbird"
-msgstr ""
+msgstr "Thunderbird"
#. Name
#: Internet/mozilla.desktop:2
msgid "Mozilla"
-msgstr ""
+msgstr "Mozilla"
#. Name
#: Internet/netscape.desktop:2
msgid "Netscape"
-msgstr ""
+msgstr "Netscape"
#. Name
#: Internet/netscape6.desktop:2
msgid "Netscape6"
-msgstr ""
+msgstr "Netscape6"
#. Name
#: Internet/opera.desktop:2
msgid "Opera"
-msgstr ""
+msgstr "Opera"
#. Name
#: Internet/wireshark.desktop:2
msgid "Wireshark"
-msgstr ""
+msgstr "Wireshark"
#. Name
#: Internet/xbiff.desktop:2
msgid "X Biff"
-msgstr ""
+msgstr "X Biff"
#. Name
#: Internet/xchat.desktop:2
-#, fuzzy
msgid "XChat"
-msgstr "Chat IRC"
+msgstr "XChat"
#. GenericName
#: Internet/xchat.desktop:3
@@ -1091,17 +1083,17 @@ msgstr "Chat IRC"
#. Name
#: Internet/xfmail.desktop:2
msgid "XFMail"
-msgstr ""
+msgstr "XFMail"
#. Name
#: Internet/xftp.desktop:2
msgid "X FTP"
-msgstr ""
+msgstr "X FTP"
#. Name
#: Multimedia/Aumix.desktop:2
msgid "Aumix"
-msgstr ""
+msgstr "Aumix"
#. GenericName
#: Multimedia/Aumix.desktop:3
@@ -1111,7 +1103,7 @@ msgstr "Mixer"
#. Name
#: Multimedia/Grip.desktop:2
msgid "Grip"
-msgstr ""
+msgstr "Grip"
#. GenericName
#: Multimedia/Grip.desktop:3
@@ -1126,7 +1118,7 @@ msgstr "Informazioni MP3"
#. Name
#: Multimedia/XMovie.desktop:2
msgid "XMovie"
-msgstr ""
+msgstr "XMovie"
#. GenericName
#: Multimedia/XMovie.desktop:3 Multimedia/mplayer.desktop:3
@@ -1138,7 +1130,7 @@ msgstr "Lettore di video"
#. Name
#: Multimedia/alevt.desktop:2
msgid "AleVT"
-msgstr ""
+msgstr "AleVT"
#. GenericName
#: Multimedia/alevt.desktop:3
@@ -1158,7 +1150,7 @@ msgstr "Interfaccia mixer di Alsa"
#. Name
#: Multimedia/audacity.desktop:2
msgid "Audacity"
-msgstr ""
+msgstr "Audacity"
#. GenericName
#: Multimedia/audacity.desktop:3 Multimedia/rezound.desktop:3
@@ -1169,7 +1161,7 @@ msgstr "Editor audio"
#. Name
#: Multimedia/aviplay.desktop:2
msgid "Aviplay"
-msgstr ""
+msgstr "Aviplay"
#. GenericName
#: Multimedia/aviplay.desktop:3
@@ -1179,7 +1171,7 @@ msgstr "Lettore di video AVI"
#. Name
#: Multimedia/bcast2000.desktop:2
msgid "Broadcast 2000"
-msgstr ""
+msgstr "Broadcast 2000"
#. GenericName
#: Multimedia/bcast2000.desktop:3
@@ -1189,7 +1181,7 @@ msgstr "Ambiente di sviluppo per audio e video"
#. Name
#: Multimedia/enjoympeg.desktop:2
msgid "EnjoyMPEG"
-msgstr ""
+msgstr "EnjoyMPEG"
#. GenericName
#: Multimedia/enjoympeg.desktop:3 Multimedia/gtv.desktop:3
@@ -1199,12 +1191,12 @@ msgstr "Lettore MPEG"
#. Name
#: Multimedia/gtv.desktop:2
msgid "GTV"
-msgstr ""
+msgstr "GTV"
#. Name
#: Multimedia/jazz.desktop:2
msgid "Jazz"
-msgstr ""
+msgstr "Jazz"
#. GenericName
#: Multimedia/jazz.desktop:3
@@ -1213,19 +1205,18 @@ msgstr "Elaborazione suoni"
#. Name
#: Multimedia/mplayer.desktop:2
-#, fuzzy
msgid "MPlayer"
-msgstr "Lettore MPEG"
+msgstr "MPlayer"
#. Name
#: Multimedia/mtv.desktop:2
msgid "MpegTV"
-msgstr ""
+msgstr "MpegTV"
#. Name
#: Multimedia/ogle.desktop:2
msgid "Ogle"
-msgstr ""
+msgstr "Ogle"
#. GenericName
#: Multimedia/ogle.desktop:3
@@ -1234,9 +1225,8 @@ msgstr "Lettore DVD"
#. Name
#: Multimedia/oqtplayer.desktop:2
-#, fuzzy
msgid "OQTPlayer"
-msgstr "Lettore DVD"
+msgstr "OQTPlayer"
#. GenericName
#: Multimedia/oqtplayer.desktop:3
@@ -1245,19 +1235,18 @@ msgstr "Lettore di video MOV"
#. Name
#: Multimedia/realplayer.desktop:2
-#, fuzzy
msgid "RealPlayer"
-msgstr "Lettore di video"
+msgstr "RealPlayer"
#. Name
#: Multimedia/rezound.desktop:2
msgid "reZound"
-msgstr ""
+msgstr "reZound"
#. Name
#: Multimedia/slab.desktop:2
msgid "Slab"
-msgstr ""
+msgstr "Slab"
#. GenericName
#: Multimedia/slab.desktop:3
@@ -1267,12 +1256,12 @@ msgstr "Registratore audio"
#. Name
#: Multimedia/sweep.desktop:2
msgid "Sweep"
-msgstr ""
+msgstr "Sweep"
#. Name
#: Multimedia/xawtv.desktop:2
msgid "XawTV"
-msgstr ""
+msgstr "XawTV"
#. GenericName
#: Multimedia/xawtv.desktop:3
@@ -1282,7 +1271,7 @@ msgstr "Guarda la TV!"
#. Name
#: Multimedia/xcam.desktop:2
msgid "XCam"
-msgstr ""
+msgstr "XCam"
#. GenericName
#: Multimedia/xcam.desktop:3
@@ -1292,7 +1281,7 @@ msgstr "Programma per le macchine fotografiche"
#. Name
#: Multimedia/xine.desktop:2
msgid "Xine"
-msgstr ""
+msgstr "Xine"
#. Name
#: Multimedia/xmms-enqueue.desktop:2
@@ -1307,7 +1296,7 @@ msgstr "Strumento per le playlist"
#. Name
#: Multimedia/xmms.desktop:2
msgid "XMMS"
-msgstr ""
+msgstr "XMMS"
#. GenericName
#: Multimedia/xmms.desktop:3
@@ -1317,7 +1306,7 @@ msgstr "Lettore multimediale"
#. Name
#: Office/Applix.desktop:2
msgid "Applix"
-msgstr ""
+msgstr "Applix"
#. GenericName
#: Office/Applix.desktop:3
@@ -1327,7 +1316,7 @@ msgstr "Programmi per l'ufficio"
#. Name
#: Office/Dia.desktop:2
msgid "Dia"
-msgstr ""
+msgstr "Dia"
#. GenericName
#: Office/Dia.desktop:3 Office/Guppi.desktop:3
@@ -1336,9 +1325,8 @@ msgstr "Programma per i diagrammi"
#. Name
#: Office/Gnome-Cal.desktop:2
-#, fuzzy
msgid "GNOME-Cal"
-msgstr "Talk di GNOME"
+msgstr "GNOME Cal"
#. GenericName
#: Office/Gnome-Cal.desktop:3
@@ -1347,9 +1335,8 @@ msgstr "Calendario personale"
#. Name
#: Office/Gnome-Card.desktop:2
-#, fuzzy
msgid "GNOME-Card"
-msgstr "Talk di GNOME"
+msgstr "GNOME Carta"
#. GenericName
#: Office/Gnome-Card.desktop:3
@@ -1364,7 +1351,7 @@ msgstr "Segnatempo di GNOME"
#. Name
#: Office/Gnumeric.desktop:2
msgid "Gnumeric"
-msgstr ""
+msgstr "Gnumeric"
#. GenericName
#: Office/Gnumeric.desktop:3 Office/XsLite.desktop:3
@@ -1374,12 +1361,12 @@ msgstr "Foglio elettronico"
#. Name
#: Office/Guppi.desktop:2
msgid "Guppi"
-msgstr ""
+msgstr "Guppi"
#. Name
#: Office/Ical.desktop:2
msgid "Ical"
-msgstr ""
+msgstr "Ical"
#. GenericName
#: Office/Ical.desktop:3
@@ -1389,7 +1376,7 @@ msgstr "Programma calendario"
#. Name
#: Office/WordPerfect.desktop:2
msgid "WordPerfect"
-msgstr ""
+msgstr "WordPerfect"
#. GenericName
#: Office/WordPerfect.desktop:3 Office/WordPerfect2000.desktop:3
@@ -1400,12 +1387,12 @@ msgstr "Videoscrittura"
#. Name
#: Office/WordPerfect2000.desktop:2
msgid "WordPerfect 2000"
-msgstr ""
+msgstr "WordPerfect 2000"
#. Name
#: Office/XAcc.desktop:2
msgid "xacc"
-msgstr ""
+msgstr "xacc"
#. GenericName
#: Office/XAcc.desktop:3
@@ -1415,17 +1402,17 @@ msgstr "Programma per la contabilità personale"
#. Name
#: Office/XsLite.desktop:2
msgid "XsLite"
-msgstr ""
+msgstr "XsLite"
#. Name
#: Office/abiword.desktop:2
msgid "AbiWord"
-msgstr ""
+msgstr "AbiWord"
#. Name
#: Office/acroread.desktop:2
msgid "Acrobat Reader"
-msgstr ""
+msgstr "Acrobat Reader"
#. GenericName
#: Office/acroread.desktop:3 Office/xpdf.desktop:3
@@ -1435,7 +1422,7 @@ msgstr "Visualizzatore PDF"
#. Name
#: Office/gnucash.desktop:2
msgid "GnuCash"
-msgstr ""
+msgstr "GnuCash"
#. GenericName
#: Office/gnucash.desktop:3
@@ -1445,12 +1432,12 @@ msgstr "Gestione finanze"
#. Name
#: Office/lyx.desktop:2
msgid "LyX"
-msgstr ""
+msgstr "LyX"
#. Name
#: Office/mrproject.desktop:2
msgid "MrProject"
-msgstr ""
+msgstr "MrProject"
#. GenericName
#: Office/mrproject.desktop:3
@@ -1465,7 +1452,7 @@ msgstr "Rubrica degli indirizzi di Netscape"
#. Name
#: Office/plan.desktop:2
msgid "Plan"
-msgstr ""
+msgstr "Plan"
#. GenericName
#: Office/plan.desktop:3
@@ -1475,7 +1462,7 @@ msgstr "Gestione del calendario"
#. Name
#: Office/pybliographic.desktop:2
msgid "Pybliographic"
-msgstr ""
+msgstr "Pybliographic"
#. GenericName
#: Office/pybliographic.desktop:3
@@ -1485,7 +1472,7 @@ msgstr "Database bibliografico"
#. Name
#: Office/scribus.desktop:2
msgid "Scribus"
-msgstr ""
+msgstr "Scribus"
#. GenericName
#: Office/scribus.desktop:3
@@ -1495,7 +1482,7 @@ msgstr "Pubblicazioni"
#. Name
#: Office/xpdf.desktop:2
msgid "X PDF"
-msgstr ""
+msgstr "X PDF"
#. Name
#: System/Terminal/aterm.desktop:2
@@ -1510,7 +1497,7 @@ msgstr "Programma terminale"
#. Name
#: System/Terminal/procinfo.desktop:2
msgid "Procinfo"
-msgstr ""
+msgstr "Procinfo"
#. GenericName
#: System/Terminal/procinfo.desktop:3
@@ -1520,7 +1507,7 @@ msgstr "Informazioni sui processi di sistema"
#. Name
#: System/Terminal/rxvt.desktop:2
msgid "RXVT"
-msgstr ""
+msgstr "RXVT"
#. GenericName
#: System/Terminal/rxvt.desktop:3
@@ -1530,7 +1517,7 @@ msgstr "Terminale esteso"
#. Name
#: System/Terminal/vmstat.desktop:2
msgid "Vmstat"
-msgstr ""
+msgstr "Vmstat"
#. GenericName
#: System/Terminal/vmstat.desktop:3
@@ -1550,7 +1537,7 @@ msgstr "Client WTS"
#. Name
#: System/editres.desktop:2
msgid "EditXRes"
-msgstr ""
+msgstr "EditXRes"
#. GenericName
#: System/editres.desktop:3
@@ -1565,7 +1552,7 @@ msgstr "Amministrazione di sistema SAM"
#. Name
#: System/wine.desktop:2
msgid "Wine"
-msgstr ""
+msgstr "Wine"
#. GenericName
#: System/wine.desktop:3
@@ -1575,7 +1562,7 @@ msgstr "Esecuzione programmi Windows"
#. Name
#: System/xosview.desktop:2
msgid "X osview"
-msgstr ""
+msgstr "X osview"
#. GenericName
#: System/xosview.desktop:3
@@ -1585,7 +1572,7 @@ msgstr "Monitor di sistema"
#. Name
#: Utilities/Editors/emacs.desktop:2
msgid "Emacs"
-msgstr ""
+msgstr "Emacs"
#. GenericName
#: Utilities/Editors/emacs.desktop:3 Utilities/Editors/gedit.desktop:3
@@ -1598,9 +1585,8 @@ msgstr "Editor di testi"
#. Name
#: Utilities/Editors/gedit.desktop:2
-#, fuzzy
msgid "gEdit"
-msgstr "Editor X"
+msgstr "gEdit"
#. Name
#: Utilities/Editors/gvim.desktop:2
@@ -1610,22 +1596,22 @@ msgstr "Vi iMproved"
#. Name
#: Utilities/Editors/lemacs.desktop:2
msgid "Lucid Emacs"
-msgstr ""
+msgstr "Lucid Emacs"
#. Name
#: Utilities/Editors/nano.desktop:2
msgid "Nano"
-msgstr ""
+msgstr "Nano"
#. Name
#: Utilities/Editors/nedit.desktop:2
msgid "Nedit"
-msgstr ""
+msgstr "Nedit"
#. Name
#: Utilities/Editors/pico.desktop:2
msgid "Pico"
-msgstr ""
+msgstr "Pico"
#. Name
#: Utilities/Editors/xedit.desktop:2
@@ -1635,12 +1621,12 @@ msgstr "Editor X"
#. Name
#: Utilities/Editors/xemacs.desktop:2
msgid "X Emacs"
-msgstr ""
+msgstr "X Emacs"
#. Name
#: Utilities/GKrellM.desktop:2
msgid "GKrellM"
-msgstr ""
+msgstr "GKrellM"
#. GenericName
#: Utilities/GKrellM.desktop:3
@@ -1670,7 +1656,7 @@ msgstr "Visualizzatore dei log di sistema"
#. Name
#: Utilities/XUtilities/Xkill.desktop:2
msgid "X Kill"
-msgstr ""
+msgstr "Kill X"
#. GenericName
#: Utilities/XUtilities/Xkill.desktop:3
@@ -1679,9 +1665,8 @@ msgstr "Strumento per uccidere le finestre"
#. Name
#: Utilities/XUtilities/Xrefresh.desktop:2
-#, fuzzy
msgid "X Refresh"
-msgstr "Aggiorna lo schermo"
+msgstr "X Refresh"
#. GenericName
#: Utilities/XUtilities/Xrefresh.desktop:3
@@ -1691,7 +1676,7 @@ msgstr "Aggiorna lo schermo"
#. Name
#: Utilities/XUtilities/Xtraceroute.desktop:2
msgid "X Traceroute"
-msgstr ""
+msgstr "Traceroute X"
#. GenericName
#: Utilities/XUtilities/Xtraceroute.desktop:3
@@ -1720,9 +1705,8 @@ msgstr "Visualizzatore degli appunti"
#. Name
#: Utilities/XUtilities/xclock.desktop:2
-#, fuzzy
msgid "X Clock"
-msgstr "Orologio"
+msgstr "Orologio X"
#. GenericName
#: Utilities/XUtilities/xclock.desktop:3 Utilities/oclock.desktop:3
@@ -1732,7 +1716,7 @@ msgstr "Orologio"
#. Name
#: Utilities/XUtilities/xconsole.desktop:2
msgid "X Console"
-msgstr ""
+msgstr "Console X"
#. GenericName
#: Utilities/XUtilities/xconsole.desktop:3
@@ -1742,7 +1726,7 @@ msgstr "Visualizzatore messaggi della console"
#. Name
#: Utilities/XUtilities/xload.desktop:2
msgid "X Load"
-msgstr ""
+msgstr "X Load"
#. GenericName
#: Utilities/XUtilities/xload.desktop:3
@@ -1761,20 +1745,18 @@ msgstr "Lente di ingrandimento del desktop"
#. Name
#: Utilities/XUtilities/xterm.desktop:2
-#, fuzzy
msgid "X Terminal"
-msgstr "Terminale"
+msgstr "Terminale X"
#. Name
#: Utilities/calctool.desktop:2
-#, fuzzy
msgid "Calctool"
msgstr "Calcolatrice"
#. Name
#: Utilities/e-notes.desktop:2
msgid "E-Notes"
-msgstr ""
+msgstr "E-Notes"
#. GenericName
#: Utilities/e-notes.desktop:3
@@ -1783,14 +1765,13 @@ msgstr "Note personali"
#. Name
#: Utilities/oclock.desktop:2
-#, fuzzy
msgid "OClock"
-msgstr "Orologio"
+msgstr "Orologio O"
#. Name
#: Utilities/xgnokii.desktop:2
msgid "X-Gnokii"
-msgstr ""
+msgstr "X-Gnokii"
#. GenericName
#: Utilities/xgnokii.desktop:3
diff --git a/translations/desktop_files/kappfinder-data/ru.po b/translations/desktop_files/kappfinder-data/ru.po
index 857dca08b..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: 2020-06-17 22:13+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"
+"POT-Creation-Date: 2021-07-07 18:16+0000\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/it.po b/translations/desktop_files/kate-desktops/it.po
index 85ea42592..a98daa05f 100644
--- a/translations/desktop_files/kate-desktops/it.po
+++ b/translations/desktop_files/kate-desktops/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>, 2021.
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: 2021-04-20 20:01+0000\n"
-"Last-Translator: Fiflagar Lorizen <fiflagar.lorizen@posteo.net>\n"
+"PO-Revision-Date: 2021-10-24 06:30+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/kate-desktop-files/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.8.1\n"
#. GenericName
#: data/kate.desktop:2
@@ -25,7 +26,7 @@ msgstr "Editor di testi avanzato"
#. Name
#: data/kate.desktop:3
msgid "Kate"
-msgstr ""
+msgstr "Kate"
#. Comment
#: data/kateplugin.desktop:5
@@ -40,4 +41,4 @@ msgstr "Editor di testi"
#. Name
#: data/kwrite.desktop:3
msgid "KWrite"
-msgstr ""
+msgstr "KWrite"
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-color-schemes/el.po b/translations/desktop_files/kcontrol-color-schemes/el.po
index ce21e78fe..17e340138 100644
--- a/translations/desktop_files/kcontrol-color-schemes/el.po
+++ b/translations/desktop_files/kcontrol-color-schemes/el.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# blu.256 <mavridisf@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-18 21:04+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-16 15:00+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Greek <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/color-schemes/el/>\n"
"Language: el\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
#: AtlasGreen.kcsrc:3
@@ -24,7 +25,7 @@ msgstr "Atlas πράσινο"
#. Name
#: BeOS.kcsrc:3
msgid "BeOS"
-msgstr ""
+msgstr "BeOS"
#. Name
#: BlackOnWhite.kcsrc:2
@@ -39,7 +40,7 @@ msgstr "Μπλε Slate"
#. Name
#: CDE.kcsrc:3
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Name
#: DarkBlue.kcsrc:2
@@ -64,18 +65,17 @@ msgstr ""
#. Name
#: KDEOne.kcsrc:2
msgid "KDE 1"
-msgstr ""
+msgstr "KDE 1"
#. Name
#: KDETwo.kcsrc:2
msgid "KDE 2"
-msgstr ""
+msgstr "KDE 2"
#. Name
#: Keramik.kcsrc:2
-#, fuzzy
msgid "Keramik"
-msgstr "Keramik άσπρο"
+msgstr "Κεραμικό"
#. Name
#: KeramikEmerald.kcsrc:2
@@ -90,12 +90,12 @@ msgstr "Keramik άσπρο"
#. Name
#: MediaPeach.kcsrc:2
msgid "Media Peach"
-msgstr ""
+msgstr "Βερίκοκο παστέλ"
#. Name
#: Next.kcsrc:2
msgid "Next"
-msgstr ""
+msgstr "NeXT"
#. Name
#: PaleGray.kcsrc:3
@@ -105,12 +105,12 @@ msgstr "Χλωμό γκρι"
#. Name
#: Plastik.kcsrc:2
msgid "Plastik"
-msgstr ""
+msgstr "Πλαστικό"
#. Name
#: PointReyesGreen.kcsrc:2
msgid "Point Reyes Green"
-msgstr ""
+msgstr "Πράσινο Point Reyes"
#. Name
#: Pumpkin.kcsrc:3
@@ -120,7 +120,7 @@ msgstr "Κολοκύθα"
#. Name
#: SolarisCDE.kcsrc:2
msgid "Solaris"
-msgstr ""
+msgstr "Solaris"
#. Name
#: Storm.kcsrc:3
@@ -140,17 +140,17 @@ msgstr "Άσπρο κείμενο υψηλής αντίθεσης"
#. Name
#: Windows2000.kcsrc:2
msgid "Redmond 2000"
-msgstr ""
+msgstr "Redmond 2000"
#. Name
#: Windows95.kcsrc:3
msgid "Redmond 95"
-msgstr ""
+msgstr "Redmond 95"
#. Name
#: WindowsXP.kcsrc:2
msgid "Redmond XP"
-msgstr ""
+msgstr "Redmond XP"
#. Name
#: YellowOnBlue.kcsrc:2
diff --git a/translations/desktop_files/kcontrol-color-schemes/pl.po b/translations/desktop_files/kcontrol-color-schemes/pl.po
index 86ab87b3a..c142af9ec 100644
--- a/translations/desktop_files/kcontrol-color-schemes/pl.po
+++ b/translations/desktop_files/kcontrol-color-schemes/pl.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Marek W <coronzon88@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-18 21:04+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: 2021-10-10 09:30+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/color-schemes/pl/>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: AtlasGreen.kcsrc:3
@@ -24,7 +26,7 @@ msgstr "Atłasowa zieleń"
#. Name
#: BeOS.kcsrc:3
msgid "BeOS"
-msgstr ""
+msgstr "BeOS"
#. Name
#: BlackOnWhite.kcsrc:2
@@ -39,7 +41,7 @@ msgstr "Niebieska dachówka"
#. Name
#: CDE.kcsrc:3
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Name
#: DarkBlue.kcsrc:2
@@ -64,24 +66,22 @@ msgstr "WigiliaX"
#. Name
#: KDEOne.kcsrc:2
msgid "KDE 1"
-msgstr ""
+msgstr "KDE 1"
#. Name
#: KDETwo.kcsrc:2
msgid "KDE 2"
-msgstr ""
+msgstr "KDE 2"
#. Name
#: Keramik.kcsrc:2
-#, fuzzy
msgid "Keramik"
-msgstr "Keramik Biały"
+msgstr "Keramik"
#. Name
#: KeramikEmerald.kcsrc:2
-#, fuzzy
msgid "Keramik Emerald"
-msgstr "Keramik Biały"
+msgstr "Keramik Niebieski"
#. Name
#: KeramikWhite.kcsrc:2
@@ -91,12 +91,12 @@ msgstr "Keramik Biały"
#. Name
#: MediaPeach.kcsrc:2
msgid "Media Peach"
-msgstr ""
+msgstr "Media - brzoskwiniowy"
#. Name
#: Next.kcsrc:2
msgid "Next"
-msgstr ""
+msgstr "Next"
#. Name
#: PaleGray.kcsrc:3
@@ -106,7 +106,7 @@ msgstr "Bladoszary"
#. Name
#: Plastik.kcsrc:2
msgid "Plastik"
-msgstr ""
+msgstr "Plastik"
#. Name
#: PointReyesGreen.kcsrc:2
@@ -121,7 +121,7 @@ msgstr "Dynia"
#. Name
#: SolarisCDE.kcsrc:2
msgid "Solaris"
-msgstr ""
+msgstr "Solaris"
#. Name
#: Storm.kcsrc:3
@@ -131,7 +131,7 @@ msgstr "Burza"
#. Name
#: System.kcsrc:2
msgid "System"
-msgstr ""
+msgstr "System"
#. Name
#: WhiteOnBlack.kcsrc:2
@@ -141,17 +141,17 @@ msgstr "Kontrastowy biały tekst"
#. Name
#: Windows2000.kcsrc:2
msgid "Redmond 2000"
-msgstr ""
+msgstr "Redmond 2000"
#. Name
#: Windows95.kcsrc:3
msgid "Redmond 95"
-msgstr ""
+msgstr "Redmond 95"
#. Name
#: WindowsXP.kcsrc:2
msgid "Redmond XP"
-msgstr ""
+msgstr "Redmond XP"
#. Name
#: YellowOnBlue.kcsrc:2
diff --git a/translations/desktop_files/kcontrol-color-schemes/pt.po b/translations/desktop_files/kcontrol-color-schemes/pt.po
index 49de5dcff..3e01adfb1 100644
--- a/translations/desktop_files/kcontrol-color-schemes/pt.po
+++ b/translations/desktop_files/kcontrol-color-schemes/pt.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-18 21:04+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: 2021-12-02 19:00+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/color-schemes/pt/>\n"
"Language: pt\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.9.1\n"
#. Name
#: AtlasGreen.kcsrc:3
@@ -24,7 +25,7 @@ msgstr "Verde Atlas"
#. Name
#: BeOS.kcsrc:3
msgid "BeOS"
-msgstr ""
+msgstr "BeOS"
#. Name
#: BlackOnWhite.kcsrc:2
@@ -39,7 +40,7 @@ msgstr "Azul Forte"
#. Name
#: CDE.kcsrc:3
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Name
#: DarkBlue.kcsrc:2
@@ -59,23 +60,22 @@ msgstr "CDE da Digital"
#. Name
#: EveX.kcsrc:2
msgid "EveX"
-msgstr ""
+msgstr "EveX"
#. Name
#: KDEOne.kcsrc:2
msgid "KDE 1"
-msgstr ""
+msgstr "KDE 1"
#. Name
#: KDETwo.kcsrc:2
msgid "KDE 2"
-msgstr ""
+msgstr "KDE 2"
#. Name
#: Keramik.kcsrc:2
-#, fuzzy
msgid "Keramik"
-msgstr "Keramik Branco"
+msgstr "Keramik"
#. Name
#: KeramikEmerald.kcsrc:2
@@ -90,12 +90,12 @@ msgstr "Keramik Branco"
#. Name
#: MediaPeach.kcsrc:2
msgid "Media Peach"
-msgstr ""
+msgstr "Media Peach"
#. Name
#: Next.kcsrc:2
msgid "Next"
-msgstr ""
+msgstr "Next"
#. Name
#: PaleGray.kcsrc:3
@@ -105,7 +105,7 @@ msgstr "Cinzento Pálido"
#. Name
#: Plastik.kcsrc:2
msgid "Plastik"
-msgstr ""
+msgstr "Plastik"
#. Name
#: PointReyesGreen.kcsrc:2
@@ -120,7 +120,7 @@ msgstr "Abóbora"
#. Name
#: SolarisCDE.kcsrc:2
msgid "Solaris"
-msgstr ""
+msgstr "Solaris"
#. Name
#: Storm.kcsrc:3
@@ -140,17 +140,17 @@ msgstr "Alto Contraste Texto Branco"
#. Name
#: Windows2000.kcsrc:2
msgid "Redmond 2000"
-msgstr ""
+msgstr "Redmond 2000"
#. Name
#: Windows95.kcsrc:3
msgid "Redmond 95"
-msgstr ""
+msgstr "Redmond 95"
#. Name
#: WindowsXP.kcsrc:2
msgid "Redmond XP"
-msgstr ""
+msgstr "Redmond XP"
#. Name
#: YellowOnBlue.kcsrc:2
diff --git a/translations/desktop_files/kcontrol-color-schemes/ru.po b/translations/desktop_files/kcontrol-color-schemes/ru.po
index dfba02acd..df80aba83 100644
--- a/translations/desktop_files/kcontrol-color-schemes/ru.po
+++ b/translations/desktop_files/kcontrol-color-schemes/ru.po
@@ -1,30 +1,32 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# blu.256 <mavridisf@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-18 21:04+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-16 15:00+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/color-schemes/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
#: AtlasGreen.kcsrc:3
msgid "Atlas Green"
-msgstr ""
+msgstr "Зелёный атлас"
#. Name
#: BeOS.kcsrc:3
msgid "BeOS"
-msgstr ""
+msgstr "BeOS"
#. Name
#: BlackOnWhite.kcsrc:2
@@ -34,72 +36,72 @@ msgstr "Высококонтрастный чёрный текст"
#. Name
#: BlueSlate.kcsrc:3
msgid "Blue Slate"
-msgstr ""
+msgstr "Синий шифер"
#. Name
#: CDE.kcsrc:3
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Name
#: DarkBlue.kcsrc:2
msgid "Dark Blue"
-msgstr ""
+msgstr "Синева"
#. Name
#: DesertRed.kcsrc:3
msgid "Desert Red"
-msgstr ""
+msgstr "Красная пустыня"
#. Name
#: DigitalCDE.kcsrc:3
msgid "Digital CDE"
-msgstr ""
+msgstr "Цифровой CDE"
#. Name
#: EveX.kcsrc:2
msgid "EveX"
-msgstr ""
+msgstr "EveX"
#. Name
#: KDEOne.kcsrc:2
msgid "KDE 1"
-msgstr ""
+msgstr "KDE 1"
#. Name
#: KDETwo.kcsrc:2
msgid "KDE 2"
-msgstr ""
+msgstr "KDE 2"
#. Name
#: Keramik.kcsrc:2
msgid "Keramik"
-msgstr ""
+msgstr "Керамика"
#. Name
#: KeramikEmerald.kcsrc:2
msgid "Keramik Emerald"
-msgstr ""
+msgstr "Керамика изумрудная"
#. Name
#: KeramikWhite.kcsrc:2
msgid "Keramik White"
-msgstr ""
+msgstr "Керамика белая"
#. Name
#: MediaPeach.kcsrc:2
msgid "Media Peach"
-msgstr ""
+msgstr "Медиаперсик"
#. Name
#: Next.kcsrc:2
msgid "Next"
-msgstr ""
+msgstr "NeXT"
#. Name
#: PaleGray.kcsrc:3
msgid "Pale Gray"
-msgstr ""
+msgstr "Тусклый серый"
#. Name
#: Plastik.kcsrc:2
@@ -109,7 +111,7 @@ msgstr "Пластик"
#. Name
#: PointReyesGreen.kcsrc:2
msgid "Point Reyes Green"
-msgstr ""
+msgstr "Зелёный из Point Reyes"
#. Name
#: Pumpkin.kcsrc:3
@@ -139,17 +141,17 @@ msgstr "Высококонтрастный белый текст"
#. Name
#: Windows2000.kcsrc:2
msgid "Redmond 2000"
-msgstr ""
+msgstr "Redmond 2000"
#. Name
#: Windows95.kcsrc:3
msgid "Redmond 95"
-msgstr ""
+msgstr "Redmond 95"
#. Name
#: WindowsXP.kcsrc:2
msgid "Redmond XP"
-msgstr ""
+msgstr "Redmond XP"
#. Name
#: YellowOnBlue.kcsrc:2
diff --git a/translations/desktop_files/kcontrol-desktops/cs.po b/translations/desktop_files/kcontrol-desktops/cs.po
index 71f217f2c..5261716a9 100644
--- a/translations/desktop_files/kcontrol-desktops/cs.po
+++ b/translations/desktop_files/kcontrol-desktops/cs.po
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Slávek Banko <slavek.banko@axis.cz>, 2020.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-29 00:09+0200\n"
-"PO-Revision-Date: 2020-11-29 18:17+0000\n"
+"POT-Creation-Date: 2021-07-07 22:18+0000\n"
+"PO-Revision-Date: 2021-09-07 01:16+0000\n"
"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
"tdebase/kcontrol-desktop-files/cs/>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.3.2\n"
+"X-Generator: Weblate 4.8\n"
#. Name
#: access/kaccess.desktop:3
@@ -30,7 +30,7 @@ msgstr "Zpřístupnění"
#. Comment
#: access/kcmaccess.desktop:14
msgid "Improve accessibility for disabled persons"
-msgstr "Zlepšení přístupnosti pro osoby s postižením"
+msgstr "Zlepšení přístupnosti pro osoby s postižením"
#. Keywords
#: access/kcmaccess.desktop:16
@@ -132,7 +132,7 @@ msgstr "Hezký název pro vaše rozhraní"
#. Comment
#: componentchooser/EXAMPLE.desktop:2
msgid "A helpful description of the interface for the top right info box"
-msgstr "Smysluplný popis vašeho rozhraní pro informační box"
+msgstr "Smysluplný popis vašeho rozhraní pro pravý horní informační box"
#. Name
#: componentchooser/componentchooser.desktop:10
@@ -166,9 +166,9 @@ msgid ""
"Here you can configure your default web browser. All TDE applications in "
"which you can select hyperlinks should honor this setting."
msgstr ""
-"Tato služba umožňuje nastavit si výchozí prohlížeč. Všechny TDE aplikace, "
-"které vyžadují přístup k hypertextovým odkazům, by měly používat toto "
-"nastavení."
+"Tato služba umožňuje nastavit si výchozí prohlížeč webu. Všechny TDE "
+"aplikace, které vyžadují přístup k hypertextovým odkazům, by měly používat "
+"toto nastavení."
#. Name
#: componentchooser/componentservices/kcm_filemanager.desktop:1
@@ -199,7 +199,7 @@ msgid ""
"this setting."
msgstr ""
"Tato služba umožňuje nastavit si výchozího poštovního klienta. Všechny TDE "
-"aplikace, které vyžadují přístup k poštovnímu klientovi, by měly používat "
+"aplikace, které vyžadují přístup k poštovnímu klientovi, by měly používat "
"toto nastavení."
#. Name
@@ -279,7 +279,7 @@ msgstr "monitor;rozlišení;zobrazení;"
#. Name
#: dnssd/kcm_tdednssd.desktop:18
msgid "Zeroconf Service Discovery"
-msgstr "Hledání služeb"
+msgstr "Hledání služeb (zeroconf)"
#. Comment
#: dnssd/kcm_tdednssd.desktop:20
@@ -404,7 +404,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/backports.desktop:3
msgid "Debian Backports Search"
-msgstr "Vyhledávání v Debian Backports"
+msgstr "Vyhledávání v Debian Backports"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/backports.desktop:4
@@ -414,7 +414,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/bugft.desktop:3
msgid "KDE Bug Database Fulltext Search"
-msgstr "Plnotextové vyhledávání v databázi chyb TDE"
+msgstr "Plnotextové vyhledávání v databázi chyb TDE"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/bugft.desktop:4
@@ -426,7 +426,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/bugno.desktop:3
msgid "TDE Bug Database Bug Number Search"
-msgstr "Vyhledávání v databázi chyb TDE podle čísla chyby"
+msgstr "Vyhledávání v databázi chyb TDE podle čísla chyby"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/bugno.desktop:4
@@ -513,7 +513,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/de2en.desktop:5
msgid "dict.cc Translation: German to English"
-msgstr "Překlad dic.cc: z němčiny do angličtiny"
+msgstr "Překlad dic.cc: z němčiny do angličtiny"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/de2en.desktop:6
@@ -575,12 +575,12 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2de.desktop:5
msgid "dict.cc Translation: English to German"
-msgstr "Překlad dict.cc: z angličtiny do němčiny"
+msgstr "Překlad dict.cc: z angličtiny do němčiny"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2es.desktop:5
msgid "WordReference.com Translation: English to Spanish"
-msgstr "Překlad WordReference.com: z angličtiny do španělštiny"
+msgstr "Překlad WordReference.com: z angličtiny do španělštiny"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/en2es.desktop:6
@@ -590,7 +590,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2fr.desktop:5
msgid "WordReference.com Translation: English to French"
-msgstr "Překlad WordReference.com: z angličtiny do francouzštiny"
+msgstr "Překlad WordReference.com: z angličtiny do francouzštiny"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/en2fr.desktop:6
@@ -600,7 +600,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2it.desktop:5
msgid "WordReference.com Translation: English to Italian"
-msgstr "Překlad WordReference.com: z angličtiny do italštiny"
+msgstr "Překlad WordReference.com: z angličtiny do italštiny"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/en2it.desktop:6
@@ -655,7 +655,7 @@ msgstr "LEO – překlad mezi francouzštinou a němčinou"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/fr2en.desktop:5
msgid "WordReference.com Translation: French to English"
-msgstr "Překlad WordReference.com: z francouzštiny do angličtiny"
+msgstr "Překlad WordReference.com: z francouzštiny do angličtiny"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/fr2en.desktop:6
@@ -793,7 +793,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/grec.desktop:5
msgid "Great Dictionary of the Catalan Language (GRan Enciclopèdia Catalana)"
-msgstr "Velký katalánský slovník (GRan Enciclopèdia Catalana)"
+msgstr "Velký katalánský slovník (GRan Enciclopèdia Catalana)"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/grec.desktop:6
@@ -843,7 +843,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/it2en.desktop:5
msgid "WordReference.com Translation: Italian to English"
-msgstr "Překlad WordReference.com: z italštiny do angličtiny"
+msgstr "Překlad WordReference.com: z italštiny do angličtiny"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/it2en.desktop:6
@@ -915,7 +915,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/mamma.desktop:3
msgid "Mamma - Mother of all Search Engines"
-msgstr "Mamma"
+msgstr "Mamma – matka všech vyhledávacích strojů"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/mamma.desktop:6
@@ -938,7 +938,7 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/searchproviders/msdn.desktop:3
msgid "Microsoft Developer Network Search"
-msgstr "Vyhledávání v Microsoft Developer Network"
+msgstr "Vyhledávání v Microsoft Developer Network"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/msdn.desktop:6
@@ -1795,7 +1795,7 @@ msgstr "Náhledy a metadata"
#. Comment
#: konq/filepreviews.desktop:13
msgid "Configure how Konqueror Previews & Meta-data work"
-msgstr "Zde je možné nastavit chování náhledů a metadat v Konqueroru"
+msgstr "Zde je možné nastavit chování náhledů a metadat v Konqueroru"
#. Keywords
#: konq/filepreviews.desktop:15
@@ -1913,7 +1913,7 @@ msgstr "Správce motivů"
#. Comment
#: kthememanager/x-ktheme.desktop:3
msgid "TDE Theme"
-msgstr "TDE motiv"
+msgstr "Motiv TDE"
#. Name
#: launch/kcmlaunch.desktop:12
@@ -2004,7 +2004,7 @@ msgstr "Soukromí"
#. Comment
#: privacy/privacy.desktop:13
msgid "Clean unwanted traces the user leaves on the system"
-msgstr "Čištění nežádoucí stop, které uživatel zanechá v systému"
+msgstr "Čištění nežádoucí stop, které uživatel zanechá v systému"
#. Keywords
#: privacy/privacy.desktop:15
@@ -2191,7 +2191,7 @@ msgstr "Složka se systémovými písmy"
#. Name
#: tdefontinst/thumbnail/fontthumbnail.desktop:3
msgid "Font Files"
-msgstr "Soubory s písmy"
+msgstr "Soubory s písmy"
#. Name
#: tdefontinst/viewpart/tdefontview.desktop:2
@@ -2288,7 +2288,7 @@ msgstr "Sdílené disky systému Microsoft Windows"
#. Comment
#: tdeio/smb.desktop:14
msgid "Use to configure which windows (SMB) filesystems you can browse"
-msgstr "Slouží k nastavení systémů Windows (SMB), které chcete procházet"
+msgstr "Slouží k nastavení systémů Windows (SMB), které chcete procházet"
#. Keywords
#: tdeio/smb.desktop:16
@@ -2382,7 +2382,7 @@ msgstr "Identifikace prohlížeče"
#. Comment
#: tdeio/useragent.desktop:14
msgid "Configure the way Konqueror reports itself"
-msgstr "Zde můžete jak se bude Konqueror hlásit webovým serverům"
+msgstr "Nastavení, jak se bude Konqueror představovat serverům"
#. Keywords
#: tdeio/useragent.desktop:16
@@ -2418,7 +2418,7 @@ msgstr "USB zařízení"
#. Comment
#: usbview/kcmusb.desktop:12
msgid "View the USB devices attached to this computer"
-msgstr "Zobrazení USB zařízení připojených k tomuto počítači"
+msgstr "Zobrazení USB zařízení připojených k tomuto počítači"
#. Keywords
#: usbview/kcmusb.desktop:14
@@ -2433,7 +2433,7 @@ msgstr "IEEE 1394 zařízení"
#. Comment
#: view1394/kcmview1394.desktop:12
msgid "View the IEEE 1394 devices attached to this computer"
-msgstr "Zobrazení IEEE 1394 zařízení připojených k tomuto počítači"
+msgstr "Zobrazení IEEE 1394 zařízení připojených k tomuto počítači"
#. Keywords
#: view1394/kcmview1394.desktop:14
diff --git a/translations/desktop_files/kcontrol-desktops/es.po b/translations/desktop_files/kcontrol-desktops/es.po
index 441ae93bd..aa42b85ec 100644
--- a/translations/desktop_files/kcontrol-desktops/es.po
+++ b/translations/desktop_files/kcontrol-desktops/es.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Victor Galvez <cassdee_058@protonmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-29 00:09+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"
+"POT-Creation-Date: 2021-07-07 22:18+0000\n"
+"PO-Revision-Date: 2022-01-20 14:00+0000\n"
+"Last-Translator: Victor Galvez <cassdee_058@protonmail.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kcontrol-desktop-files/es/>\n"
"Language: es\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
#: access/kaccess.desktop:3
@@ -236,7 +237,7 @@ msgstr "Criptografía"
msgid "Configure SSL, manage certificates, and other cryptography settings"
msgstr ""
"Configura SSL, administra los certificados y otras preferencias de "
-"criptografía."
+"criptografía"
#. Keywords
#: crypto/crypto.desktop:14
@@ -274,18 +275,17 @@ msgstr "Preferencias de la pantalla"
#. Name
#: displayconfig/displayconfig.desktop:12
msgid "Monitor & Display"
-msgstr ""
+msgstr "Monitores y pantallas"
#. Comment
#: displayconfig/displayconfig.desktop:14
-#, fuzzy
msgid "Configure display"
-msgstr "Configura el buscador de servicios"
+msgstr "Configurar pantalla"
#. Keywords
#: displayconfig/displayconfig.desktop:16
msgid "monitor;resolution;display;"
-msgstr ""
+msgstr "monitor;resolución;pantalla;"
#. Name
#: dnssd/kcm_tdednssd.desktop:18
diff --git a/translations/desktop_files/kcontrol-desktops/it.po b/translations/desktop_files/kcontrol-desktops/it.po
index 6924fba15..6ba90a389 100644
--- a/translations/desktop_files/kcontrol-desktops/it.po
+++ b/translations/desktop_files/kcontrol-desktops/it.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# 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: 2020-06-29 00:09+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"
+"POT-Creation-Date: 2021-07-07 22:18+0000\n"
+"PO-Revision-Date: 2022-01-19 02:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kcontrol-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
#: access/kaccess.desktop:3
@@ -23,9 +25,8 @@ msgstr "Strumento per l'accessibilità di"
#. Name
#: access/kcmaccess.desktop:12
-#, fuzzy
msgid "Accessibility"
-msgstr "Strumento per l'accessibilità di"
+msgstr "Accessibilità"
#. Comment
#: access/kcmaccess.desktop:14
@@ -80,8 +81,8 @@ msgid ""
"background;desktops;colors;colours;images;wallpapers;blending;balance;cache;"
"multiple wallpapers;pixmap;"
msgstr ""
-"sfondo;desktop;colori;immagini;immagini di sfondo;sfumature;bilanciamento;"
-"cache;sfondi multipli;"
+"sfondo;desktop;colori;colori;immagini;immagini di sfondo;sfumature;"
+"bilanciamento;cache;sfondi multipli;pixmap;"
#. Name
#: bell/bell.desktop:13
@@ -264,9 +265,8 @@ msgstr "CSS;HTML;stile;fogli di stile;stylesheet;accessibilità;"
#. Name
#: display/display.desktop:11
-#, fuzzy
msgid "Display"
-msgstr "Impostazioni del display"
+msgstr "Display"
#. Comment
#: display/display.desktop:13
@@ -286,7 +286,7 @@ msgstr "Configurazione del display"
#. Keywords
#: displayconfig/displayconfig.desktop:16
msgid "monitor;resolution;display;"
-msgstr "monitor;risoluzione;display;schermo;configurazione"
+msgstr "monitor;risoluzione;display;"
#. Name
#: dnssd/kcm_tdednssd.desktop:18
@@ -320,12 +320,12 @@ msgstr ""
#. Name
#: ebrowsing/plugins/ikws/kuriikwsfilter.desktop:3
msgid "InternetKeywordsFilter"
-msgstr ""
+msgstr "InternetKeywordsFilter"
#. Name
#: ebrowsing/plugins/ikws/kurisearchfilter.desktop:3
msgid "SearchKeywordsFilter"
-msgstr ""
+msgstr "SearchKeywordsFilter"
#. Comment
#: ebrowsing/plugins/ikws/searchprovider.desktop:4
@@ -340,19 +340,17 @@ msgstr "Database acronimi"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/acronym.desktop:6
msgid "http://www.chemie.de/tools/acronym.php3?language=e&acronym=\\{@}"
-msgstr ""
+msgstr "http://www.chemie.de/tools/acronym.php3?language=e&acronym=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/alexa.desktop:3
-#, fuzzy
msgid "Alexa"
-msgstr "URL Alexa"
+msgstr "Alexa"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/alexa.desktop:6
-#, fuzzy
msgid "http://info.alexa.com/search?q=\\{@}"
-msgstr "http://www.google.it/search?q=\\{@}&ie=UTF-8&oe=UTF-8"
+msgstr "http://info.alexa.com/search?q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop:3
@@ -362,7 +360,7 @@ msgstr "URL Alexa"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop:6
msgid "http://info.alexa.com/data/details?url=\\{@}"
-msgstr ""
+msgstr "http://info.alexa.com/data/details?url=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/alltheweb.desktop:3
@@ -374,16 +372,17 @@ msgstr "AllTheWeb veloce"
msgid ""
"http://www.alltheweb.com/search?exec=FAST+Search&type=all&query=\\{@}&cat=web"
msgstr ""
+"http://www.alltheweb.com/search?exec=FAST+Search&type=all&query=\\{@}&cat=web"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/altavista.desktop:3
msgid "AltaVista"
-msgstr ""
+msgstr "AltaVista"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/altavista.desktop:6
msgid "http://www.altavista.com/cgi-bin/query?pg=q&kl=XX&stype=stext&q=\\{@}"
-msgstr ""
+msgstr "http://www.altavista.com/cgi-bin/query?pg=q&kl=XX&stype=stext&q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/amg.desktop:4
@@ -393,7 +392,7 @@ msgstr "Guida All Music"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/amg.desktop:5
msgid "http://www.allmusic.com/cg/amg.dll?p=amg&opt1=1&sql=\\{@}"
-msgstr ""
+msgstr "http://www.allmusic.com/cg/amg.dll?p=amg&opt1=1&sql=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/appsy.desktop:3
@@ -403,17 +402,17 @@ msgstr "Ricerca applicazioni di KDE"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/appsy.desktop:6
msgid "http://www.kde-apps.org/content/search.php?search=Search&name=\\{@}"
-msgstr ""
+msgstr "http://www.kde-apps.org/content/search.php?search=Search&name=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/austronaut.desktop:3
msgid "AustroNaut"
-msgstr ""
+msgstr "AustroNaut"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/austronaut.desktop:6
msgid "http://austronaut.at/page.php?begriff=\\{@}&wo=at"
-msgstr ""
+msgstr "http://austronaut.at/page.php?begriff=\\{@}&wo=at"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/backports.desktop:3
@@ -423,7 +422,7 @@ msgstr "Ricerca Debian backports"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/backports.desktop:4
msgid "http://www.backports.org/package.php?search=\\{@}"
-msgstr ""
+msgstr "http://www.backports.org/package.php?search=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/bugft.desktop:3
@@ -436,6 +435,8 @@ msgid ""
"http://bugs.trinitydesktop.org/simple_search.cgi?id=\\{1}+\\{2}+\\{3}+\\{4}+"
"\\{5}+\\{6}+\\{7}+\\{8}+\\{9}"
msgstr ""
+"http://bugs.trinitydesktop.org/simple_search.cgi?id=\\{1}+\\{2}+\\{3}+\\{4}+"
+"\\{5}+\\{6}+\\{7}+\\{8}+\\{9}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/bugno.desktop:3
@@ -445,7 +446,7 @@ msgstr "Ricerca per numero nel Database dei bug di TDE"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/bugno.desktop:4
msgid "http://bugs.trinitydesktop.org/show_bug.cgi?id=\\{@}"
-msgstr ""
+msgstr "http://bugs.trinitydesktop.org/show_bug.cgi?id=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/call.desktop:5
@@ -455,7 +456,7 @@ msgstr "Database dei segnali di chiamata QRZ.com"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/call.desktop:6
msgid "http://www.qrz.com/database?callsign=\\{@}"
-msgstr ""
+msgstr "http://www.qrz.com/database?callsign=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/cia.desktop:4
@@ -464,13 +465,13 @@ msgstr "World Fact Book della CIA"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/cia.desktop:5
-#, fuzzy, c-format
+#, c-format
msgid ""
"http://www.google.com/search?q=allintitle%3A\\{@}+world+factbook+site%3Awww."
"cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky"
msgstr ""
-"http://www.google.it/search?q=\\{@}&btnI=I%27m+Feeling"
-"+Lucky&ie=UTF-8&oe=UTF-8"
+"http://www.google.com/search?q=allintitle%3A\\{@}+world+factbook+site%3Awww."
+"cia.gov&ie=UTF-8&btnI=I%27m+Feeling+Lucky"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/citeseer.desktop:5
@@ -480,23 +481,24 @@ msgstr "CiteSeer: Biblioteca digitale di letteratura scientifica"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/citeseer.desktop:6
msgid "http://citeseer.ist.psu.edu/cs?q=\\{@}&submit=Search+Documents&cs=1"
-msgstr ""
+msgstr "http://citeseer.ist.psu.edu/cs?q=\\{@}&submit=Search+Documents&cs=1"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/cpan.desktop:3
msgid "CPAN - Comprehensive Perl Archive Network"
-msgstr ""
+msgstr "CPAN - Rete di archivio Perl completa"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/cpan.desktop:4
msgid ""
"http://search.cpan.org/search?mode=\\{mode,2,\"dist\"}&query=\\{query,q,1}"
msgstr ""
+"http://search.cpan.org/search?mode=\\{mode,2,\"dist\"}&query=\\{query,q,1}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/ctan.desktop:3
msgid "CTAN - Comprehensive TeX Archive Network"
-msgstr ""
+msgstr "CTAN - Rete di archivi TeX completa"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/ctan.desktop:4
@@ -504,6 +506,8 @@ msgid ""
"http://tug.ctan.org/cgi-bin/filenameSearch.py?action=/search/&filename="
"\\{ at }"
msgstr ""
+"http://tug.ctan.org/cgi-bin/filenameSearch.py?action=/search/&filename="
+"\\{ at }"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/ctan_cat.desktop:3
@@ -515,6 +519,7 @@ msgstr "Catalogo CTAN"
msgid ""
"http://www.ctan.org/tools/cataloguesearch?action=/search/&catstring=\\{@}"
msgstr ""
+"http://www.ctan.org/tools/cataloguesearch?action=/search/&catstring=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/dbug.desktop:3
@@ -523,9 +528,8 @@ msgstr "Ricerca bug Debian BTS"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/dbug.desktop:4
-#, fuzzy
msgid "http://bugs.debian.org/\\{@}"
-msgstr "http://italian.imdb.com/Find?\\{@}"
+msgstr "http://bugs.debian.org/\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/de2en.desktop:5
@@ -535,9 +539,8 @@ msgstr "Traduzioni dict.cc: dal tedesco all'inglese"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/de2en.desktop:6
#: ebrowsing/plugins/ikws/searchproviders/en2de.desktop:6
-#, fuzzy
msgid "http://www.dict.cc/?s=\\{@}"
-msgstr "http://italian.imdb.com/Find?\\{@}"
+msgstr "http://www.dict.cc/?s=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/de2fr.desktop:3
@@ -548,7 +551,7 @@ msgstr "LEO - Traduzioni dal tedesco al francese"
#: ebrowsing/plugins/ikws/searchproviders/de2fr.desktop:6
#: ebrowsing/plugins/ikws/searchproviders/fr2de.desktop:6
msgid "http://dict.leo.org/?lp=frde&search=\\{@}"
-msgstr ""
+msgstr "http://dict.leo.org/?lp=frde&search=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/deb.desktop:3
@@ -558,18 +561,17 @@ msgstr "Ricerca pacchetti debian"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/deb.desktop:4
msgid "http://packages.debian.org/\\{@}"
-msgstr ""
+msgstr "http://packages.debian.org/\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/dmoz.desktop:3
msgid "Open Directory"
-msgstr ""
+msgstr "Apri Directory"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/dmoz.desktop:6
-#, fuzzy
msgid "http://search.dmoz.org/cgi-bin/search?search=\\{@}"
-msgstr "http://it.wikipedia.org/wiki/Special:Search?search=\\{@}&go=Go"
+msgstr "http://search.dmoz.org/cgi-bin/search?search=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/docbook.desktop:5
@@ -579,7 +581,7 @@ msgstr "DocBook - La guida definitiva"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/docbook.desktop:6
msgid "http://www.docbook.org/tdg/en/html/\\{1}.html"
-msgstr ""
+msgstr "http://www.docbook.org/tdg/en/html/\\{1}.html"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/doi.desktop:5
@@ -588,9 +590,8 @@ msgstr "Identificatore oggetti digitali"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/doi.desktop:6
-#, fuzzy
msgid "http://dx.doi.org/\\{@}"
-msgstr "http://italian.imdb.com/Find?\\{@}"
+msgstr "http://dx.doi.org/\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2de.desktop:5
@@ -605,7 +606,7 @@ msgstr "Traduzione WordReference.com: dall'inglese allo spagnolo"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/en2es.desktop:6
msgid "http://www.wordreference.com/es/translation.asp?tranword=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/es/translation.asp?tranword=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2fr.desktop:5
@@ -615,7 +616,7 @@ msgstr "Traduzione WordReference.com: dall'inglese al francese"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/en2fr.desktop:6
msgid "http://www.wordreference.com/fr/Translation.asp?enfr=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/fr/Translation.asp?enfr=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/en2it.desktop:5
@@ -625,7 +626,7 @@ msgstr "Traduzione WordReference.com: dall'inglese all'italiano"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/en2it.desktop:6
msgid "http://www.wordreference.com/it/translation.asp?enit=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/it/translation.asp?enit=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/es2en.desktop:5
@@ -635,28 +636,27 @@ msgstr "Traduzione WordReference.com: dallo spagnolo all'inglese"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/es2en.desktop:6
msgid "http://www.wordreference.com/es/en/translation.asp?spen=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/es/en/translation.asp?spen=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/excite.desktop:3
msgid "Excite"
-msgstr ""
+msgstr "Excite"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/excite.desktop:6
msgid "http://search.excite.com/search.gw?search=\\{@}"
-msgstr ""
+msgstr "http://search.excite.com/search.gw?search=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/feedster.desktop:3
msgid "Feedster"
-msgstr ""
+msgstr "Feedster"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/feedster.desktop:6
-#, fuzzy
msgid "http://www.feedster.com/search.php?q=\\{@}&ie=UTF-8&oe=UTF-8"
-msgstr "http://www.google.it/search?q=\\{@}&ie=UTF-8&oe=UTF-8"
+msgstr "http://www.feedster.com/search.php?q=\\{@}&ie=UTF-8&oe=UTF-8"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/foldoc.desktop:3
@@ -666,7 +666,7 @@ msgstr "Dizionario libero on-line di informatica"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/foldoc.desktop:6
msgid "http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=\\{@}"
-msgstr ""
+msgstr "http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/fr2de.desktop:3
@@ -681,38 +681,37 @@ msgstr "Traduzione WordReference.com: dal francese all'inglese"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/fr2en.desktop:6
msgid "http://www.wordreference.com/fr/en/translation.asp?fren=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/fr/en/translation.asp?fren=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/freedb.desktop:3
msgid "FreeDB"
-msgstr ""
+msgstr "FreeDB"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/freedb.desktop:6
msgid "http://www.freedb.org/freedb_search.php?words=\\{@}"
-msgstr ""
+msgstr "FreeDB"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop:3
msgid "Freshmeat"
-msgstr ""
+msgstr "Freshmeat"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop:6
msgid "http://freshmeat.net/search/?q=\\{@}"
-msgstr ""
+msgstr "http://freshmeat.net/search/?q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/froogle.desktop:3
msgid "Froogle"
-msgstr ""
+msgstr "Froogle"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/froogle.desktop:6
-#, fuzzy
msgid "http://froogle.google.com/froogle?q=\\{@}"
-msgstr "http://news.google.it/news?q=\\{@}&ie=UTF-8&oe=UTF-8"
+msgstr "http://froogle.google.com/froogle?q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/fsd.desktop:3
@@ -722,13 +721,12 @@ msgstr "Elenco software libero FSF/UNESCO"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/fsd.desktop:6
msgid "http://directory.fsf.org/search/?query=\\{@}"
-msgstr ""
+msgstr "http://directory.fsf.org/search/?query=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/google.desktop:3
-#, fuzzy
msgid "Google"
-msgstr "Google notizie"
+msgstr "Google"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/google.desktop:6
@@ -749,6 +747,11 @@ msgid ""
"\\{date,\"all\"}&as_occt=\\{occ,\"any\"}&as_dt=\\{siteop,\"i\"}"
"&as_sitesearch=\\{site}&safe=\\{safe,\"active\"}&ie=UTF-8&oe=UTF-8"
msgstr ""
+"http://www.google.com/search?as_q=\\{all,@}&num=\\{num,\"10\"}&btnG=Google"
+"+Search&as_epq=\\{exact,\"\"}&as_oq=\\{any,\"\"}&as_eq=\\{without,\"\"}&lr="
+"\\{lang,\"\"}&as_ft=\\{ft,\"i\"}&as_filetype=\\{filetype,\"\"}&as_qdr="
+"\\{date,\"all\"}&as_occt=\\{occ,\"any\"}&as_dt=\\{siteop,\"i\"}"
+"&as_sitesearch=\\{site}&safe=\\{safe,\"active\"}&ie=UTF-8&oe=UTF-8"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/google_groups.desktop:3
@@ -758,7 +761,7 @@ msgstr "Google gruppi"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/google_groups.desktop:6
msgid "http://groups.google.com/groups?oi=djq&as_q=\\{@}"
-msgstr ""
+msgstr "http://groups.google.com/groups?oi=djq&as_q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/google_images.desktop:3
@@ -767,9 +770,8 @@ msgstr "Ricerca immagini di Google"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/google_images.desktop:6
-#, fuzzy
msgid "http://images.google.com/images?q=\\{@}"
-msgstr "http://news.google.it/news?q=\\{@}&ie=UTF-8&oe=UTF-8"
+msgstr "http://images.google.com/images?q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/google_lucky.desktop:3
@@ -793,9 +795,8 @@ msgstr "Google filmati"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/google_movie.desktop:6
-#, fuzzy
msgid "http://www.google.com/search?q=movie:\\{@}&ie=UTF-8&oe=UTF-8"
-msgstr "http://www.google.it/search?q=\\{@}&ie=UTF-8&oe=UTF-8"
+msgstr "http://www.google.com/search?q=movie:\\{@}&ie=UTF-8&oe=UTF-8"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/google_news.desktop:3
@@ -810,13 +811,12 @@ msgstr "http://news.google.it/news?q=\\{@}&ie=UTF-8&oe=UTF-8"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/gracenote.desktop:3
msgid "Gracenote"
-msgstr ""
+msgstr "Gracenote"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/gracenote.desktop:6
-#, fuzzy
msgid "http://www.gracenote.com/music/search-adv.html?q=\\{@}"
-msgstr "http://www.google.it/search?q=\\{@}&ie=UTF-8&oe=UTF-8"
+msgstr "http://www.gracenote.com/music/search-adv.html?q=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/grec.desktop:5
@@ -826,28 +826,27 @@ msgstr "Grande dizionario della lingua catalana (GRan Enciclopèdia Catalana)"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/grec.desktop:6
msgid "http://www.grec.net/cgibin/lexicx.pgm?GECART=\\{@}"
-msgstr ""
+msgstr "http://www.grec.net/cgibin/lexicx.pgm?GECART=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/hotbot.desktop:3
msgid "Hotbot"
-msgstr ""
+msgstr "Hotbot"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/hotbot.desktop:6
msgid "http://hotbot.lycos.com/?MT=\\{@}&SM=MC&DV=0&LG=any&DC=10&DE=2"
-msgstr ""
+msgstr "http://hotbot.lycos.com/?MT=\\{@}&SM=MC&DV=0&LG=any&DC=10&DE=2"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop:3
-#, fuzzy
msgid "HyperDictionary.com"
-msgstr "Sinonimi HyperDictionary.com"
+msgstr "HyperDictionary.com"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop:6
msgid "http://www.hyperdictionary.com/search.aspx?define=\\{@}"
-msgstr ""
+msgstr "http://www.hyperdictionary.com/search.aspx?define=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop:3
@@ -857,7 +856,7 @@ msgstr "Sinonimi HyperDictionary.com"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop:6
msgid "http://www.hyperdictionary.com/search.aspx?Dict=T&define=\\{@}"
-msgstr ""
+msgstr "http://www.hyperdictionary.com/search.aspx?Dict=T&define=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/imdb.desktop:3
@@ -877,12 +876,12 @@ msgstr "Traduzione WordReference.com: dall'italiano all'inglese"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/it2en.desktop:6
msgid "http://www.wordreference.com/it/en/translation.asp?iten=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/it/en/translation.asp?iten=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/jeeves.desktop:3
msgid "Ask Jeeves"
-msgstr ""
+msgstr "Ask Jeeves"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/jeeves.desktop:6
@@ -890,16 +889,18 @@ msgid ""
"http://www.ask.com/main/askJeeves.asp?"
"origin=0&qSource=4&site_name=Jeeves&metasearch=yes&ask=\\{@}"
msgstr ""
+"http://www.ask.com/main/askJeeves.asp?"
+"origin=0&qSource=4&site_name=Jeeves&metasearch=yes&ask=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/katatudo.desktop:3
msgid "KataTudo"
-msgstr ""
+msgstr "KataTudo"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/katatudo.desktop:6
msgid "http://www.katatudo.com.br/busca/resultado.php?q=\\{@}&onde=&b=Buscar"
-msgstr ""
+msgstr "http://www.katatudo.com.br/busca/resultado.php?q=\\{@}&onde=&b=Buscar"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/kde.desktop:5
@@ -909,7 +910,7 @@ msgstr "Documentazione della API di KDE"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/kde.desktop:6
msgid "http://api.kde.org/classmapper.php?class=\\{@}"
-msgstr ""
+msgstr "http://api.kde.org/classmapper.php?class=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop:3
@@ -919,27 +920,27 @@ msgstr "SVN web di KDE"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop:6
msgid "http://websvn.kde.org/\\{@}"
-msgstr ""
+msgstr "http://websvn.kde.org/\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/leo.desktop:3
msgid "LEO-Translate"
-msgstr ""
+msgstr "LEO-Translate"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/leo.desktop:6
msgid "http://dict.leo.org/?search=\\{@}"
-msgstr ""
+msgstr "http://dict.leo.org/?search=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/lycos.desktop:3
msgid "Lycos"
-msgstr ""
+msgstr "Lycos"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/lycos.desktop:6
msgid "http://www.lycos.com/cgi-bin/pursuit?cat=dir&query=\\{@}"
-msgstr ""
+msgstr "http://www.lycos.com/cgi-bin/pursuit?cat=dir&query=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/mamma.desktop:3
@@ -949,12 +950,12 @@ msgstr "Mamma - Madre di tutti i motori di ricerca"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/mamma.desktop:6
msgid "http://www.mamma.com/Mamma?lang=1&timeout=4&qtype=0&query=\\{@}"
-msgstr ""
+msgstr "http://www.mamma.com/Mamma?lang=1&timeout=4&qtype=0&query=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop:3
msgid "MetaCrawler"
-msgstr ""
+msgstr "MetaCrawler"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop:6
@@ -963,6 +964,9 @@ msgid ""
"&method=0&cat=Web&target=metaworld&redirect=web&rpp=20&hpe=10&region=0&timeout=0&sort=0&format=beta99&theme=classic&refer=mc-"
"search&refer=mc-search"
msgstr ""
+"http://search.metacrawler.com/crawler?general=\\{@}"
+"&method=0&cat=Web&target=metaworld&redirect=web&rpp=20&hpe=10&region=0&timeout=0&sort=0&format=beta99&theme=classic&refer=mc-"
+"search&refer=mc-search"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/msdn.desktop:3
@@ -976,16 +980,19 @@ msgid ""
"handoffurl=%2Fisapi%2Fgosearch.asp%3FTARGET%3D%2Fus%2Fdev%2Fdefault."
"asp&stcfg=d%3A%2Fhttp%2Fcnfg.xml&qu=\\{@}&btnSearch=GO"
msgstr ""
+"http://msdn.microsoft.com/library/shared/searchtab/searchHandoff.asp?"
+"handoffurl=%2Fisapi%2Fgosearch.asp%3FTARGET%3D%2Fus%2Fdev%2Fdefault."
+"asp&stcfg=d%3A%2Fhttp%2Fcnfg.xml&qu=\\{@}&btnSearch=GO"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/netcraft.desktop:3
msgid "Netcraft"
-msgstr ""
+msgstr "Netcraft"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/netcraft.desktop:6
msgid "http://uptime.netcraft.com/up/graph?site=\\{@}"
-msgstr ""
+msgstr "http://uptime.netcraft.com/up/graph?site=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/nl-telephone.desktop:2
@@ -1001,6 +1008,11 @@ msgid ""
"&citycode=&zipcode4=&street=&area=conditional&areacode=&region=&subscription=&country=&catcode=&dcity="
"\\{2}&dname=\\{1}&dwhere=\\{2}&partnerid="
msgstr ""
+"http://www.detelefoongids.nl/tginl.dll?"
+"action=white&type=search&resultsperpage=25&pagestart=1&source=searchcategory&name2="
+"\\{1}&name=&initials=&city=\\{2}"
+"&citycode=&zipcode4=&street=&area=conditional&areacode=&region=&subscription=&country=&catcode=&dcity="
+"\\{2}&dname=\\{1}&dwhere=\\{2}&partnerid="
#. Name
#: ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop:2
@@ -1010,7 +1022,7 @@ msgstr "Motore di ricerca Teletekst"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop:6
msgid "http://teletekst.nos.nl/gif/\\{@}-01.html"
-msgstr ""
+msgstr "http://teletekst.nos.nl/gif/\\{@}-01.html"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop:3
@@ -1020,7 +1032,7 @@ msgstr "Ricerca chiavi OpenPGP"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop:4
msgid "http://pgp.dtype.org:11371/pks/lookup?search=\\{@}&op=vindex"
-msgstr ""
+msgstr "http://pgp.dtype.org:11371/pks/lookup?search=\\{@}&op=vindex"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/php.desktop:3
@@ -1030,7 +1042,7 @@ msgstr "Ricerca PHP"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/php.desktop:4
msgid "http://www.php.net/search.php?show=\\{mode,\"manual\"}&pattern=\\{@}"
-msgstr ""
+msgstr "http://www.php.net/search.php?show=\\{mode,\"manual\"}&pattern=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/python.desktop:5
@@ -1044,6 +1056,8 @@ msgid ""
"http://www.google.com/search?sourceid=python-search&q=\\{@}"
"&submit=Search&q=site%3Apython.org"
msgstr ""
+"http://www.google.com/search?sourceid=python-search&q=\\{@}"
+"&submit=Search&q=site%3Apython.org"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/qt.desktop:5
@@ -1053,7 +1067,7 @@ msgstr "Ultima documentazione online delle Qt"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/qt.desktop:6
msgid "http://doc.trolltech.com/latest/\\{@}.html"
-msgstr ""
+msgstr "http://doc.trolltech.com/latest/\\{@}.html"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/qt3.desktop:5
@@ -1063,7 +1077,7 @@ msgstr "Documentazione online delle Qt3"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/qt3.desktop:6
msgid "http://doc.trolltech.com/3.3/\\{@}.html"
-msgstr ""
+msgstr "http://doc.trolltech.com/3.3/\\{@}.html"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/rae.desktop:5
@@ -1076,6 +1090,8 @@ msgid ""
"http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&LEMA=\\{@}"
"&FORMATO=ampliado"
msgstr ""
+"http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&LEMA=\\{@}"
+"&FORMATO=ampliado"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/rfc.desktop:3
@@ -1085,17 +1101,17 @@ msgstr "RFC di IETF"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/rfc.desktop:4
msgid "http://www.ietf.org/rfc/rfc\\{@}.txt"
-msgstr ""
+msgstr "http://www.ietf.org/rfc/rfc\\{@}.txt"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop:3
msgid "RPM-Find"
-msgstr ""
+msgstr "RPM-Find"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop:6
msgid "http://www.rpmfind.net/linux/rpm2html/search.php?query=\\{@}"
-msgstr ""
+msgstr "http://www.rpmfind.net/linux/rpm2html/search.php?query=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop:3
@@ -1105,12 +1121,12 @@ msgstr "Archivio di applicazioni Ruby"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop:6
msgid "http://raa.ruby-lang.org/search.rhtml?search=\\{@}"
-msgstr ""
+msgstr "http://raa.ruby-lang.org/search.rhtml?search=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/seek.desktop:3
msgid "GO.com"
-msgstr ""
+msgstr "GO.com"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/seek.desktop:6
@@ -1118,11 +1134,13 @@ msgid ""
"http://www.go.com/Titles?col=WW&qt=\\{@}"
"&svx=home_searchbox&sv=IS&lk=noframeso"
msgstr ""
+"http://www.go.com/Titles?col=WW&qt=\\{@}"
+"&svx=home_searchbox&sv=IS&lk=noframeso"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop:3
msgid "SourceForge"
-msgstr ""
+msgstr "SourceForge"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop:4
@@ -1130,17 +1148,18 @@ msgid ""
"http://sourceforge.net/search/?type_of_search=\\{type,\"soft\"}&exact="
"\\{exact,\"0\"}&words=\\{@}"
msgstr ""
+"http://sourceforge.net/search/?type_of_search=\\{type,\"soft\"}&exact="
+"\\{exact,\"0\"}&words=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/technorati.desktop:3
-#, fuzzy
msgid "Technorati"
msgstr "Tag di technorati"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/technorati.desktop:6
msgid "http://technorati.com/cosmos/search.html?sourceid=kde-search&url=\\{@}"
-msgstr ""
+msgstr "http://technorati.com/cosmos/search.html?sourceid=kde-search&url=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop:3
@@ -1150,7 +1169,7 @@ msgstr "Tag di technorati"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop:6
msgid "http://technorati.com/tag/\\{@}?sourceid=kde-search"
-msgstr ""
+msgstr "http://technorati.com/tag/\\{@}?sourceid=kde-search"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop:3
@@ -1160,17 +1179,17 @@ msgstr "Dizionario dei sinonimi Merriam-Webster"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop:6
msgid "http://www.m-w.com/cgi-bin/thesaurus?book=Thesaurus&va=\\{@}"
-msgstr ""
+msgstr "http://www.m-w.com/cgi-bin/thesaurus?book=Thesaurus&va=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/tvtome.desktop:4
msgid "TV Tome"
-msgstr ""
+msgstr "TV Tome"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/tvtome.desktop:6
msgid "http://www.tv.com/search.php?type=11&stype=all&qs=\\{@}&x=0&y=0"
-msgstr ""
+msgstr "http://www.tv.com/search.php?type=11&stype=all&qs=\\{@}&x=0&y=0"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/uspto.desktop:5
@@ -1183,11 +1202,13 @@ msgid ""
"http://patft.uspto.gov/netacgi/nph-Parser?TERM1=\\{@}"
"&Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=0&f=S&l=50"
msgstr ""
+"http://patft.uspto.gov/netacgi/nph-Parser?TERM1=\\{@}"
+"&Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=0&f=S&l=50"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop:3
msgid "Vivisimo"
-msgstr ""
+msgstr "Vivisimo"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop:6
@@ -1196,11 +1217,13 @@ msgid ""
"http://vivisimo.com/search?query=\\{@}&se=Yahoo%2CAltaVista%2CMSN%2CFast%2COD"
"%2CExcite%2CDirectHit%2CLooksmart%2CEuroseek&x=49&y=16"
msgstr ""
+"http://vivisimo.com/search?query=\\{@}&se=Yahoo%2CAltaVista%2CMSN%2CFast%2COD"
+"%2CExcite%2CDirectHit%2CLooksmart%2CEuroseek&x=49&y=16"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/voila.desktop:3
msgid "Voila"
-msgstr ""
+msgstr "Voila"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/voila.desktop:6
@@ -1208,6 +1231,8 @@ msgid ""
"http://search.ke.voila.fr/S/voila?"
"lg=fr&profil=geeks&rtype=kw&bhv=web_mondial&rdata=\\{@}"
msgstr ""
+"http://search.ke.voila.fr/S/voila?"
+"lg=fr&profil=geeks&rtype=kw&bhv=web_mondial&rdata=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/webster.desktop:3
@@ -1217,7 +1242,7 @@ msgstr "Dizionario Merriam-Webster"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/webster.desktop:6
msgid "http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=\\{@}"
-msgstr ""
+msgstr "http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/whatis.desktop:3
@@ -1229,6 +1254,7 @@ msgstr "Richiesta whatis"
msgid ""
"http://whatis.techtarget.com/wsearchResults/1,290214,,00.html?query=\\{@}"
msgstr ""
+"http://whatis.techtarget.com/wsearchResults/1,290214,,00.html?query=\\{@}"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/wikipedia.desktop:3
@@ -1242,13 +1268,11 @@ msgstr "http://it.wikipedia.org/wiki/Special:Search?search=\\{@}&go=Go"
#. Name
#: ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop:3
-#, fuzzy
msgid "Wiktionary - The Free Dictionary"
msgstr "Wikipedia - L'enciclopedia libera"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop:6
-#, fuzzy
msgid "http://en.wiktionary.org/wiki/Special:Search?search=\\{@}&go=Go"
msgstr "http://it.wikipedia.org/wiki/Special:Search?search=\\{@}&go=Go"
@@ -1260,7 +1284,7 @@ msgstr "WordReference.com dizionario inglese"
#. Query
#: ebrowsing/plugins/ikws/searchproviders/wordref.desktop:6
msgid "http://www.wordreference.com/english/definition.asp?en=\\{@}"
-msgstr ""
+msgstr "http://www.wordreference.com/english/definition.asp?en=\\{@}"
#. Name
#: ebrowsing/plugins/localdomain/localdomainurifilter.desktop:3
@@ -1280,7 +1304,7 @@ msgstr "Controllo energia"
#. Comment
#: energy/energy.desktop:13
msgid "Settings for display power management"
-msgstr "Impostazioni per la gestione dell'energia dello schermo."
+msgstr "Impostazioni per la gestione dell'energia dello schermo"
#. Keywords
#: energy/energy.desktop:15
@@ -1303,8 +1327,7 @@ msgstr "Configura associazioni dei file"
#: filetypes/filetypes.desktop:16
msgid "Filetypes;File Associations;Mime Types;File Patterns;Files;Pattern;"
msgstr ""
-"tipi di file;associazioni file;tipi MIME;MIME;pattern dei file;file;motivi "
-"dei file;schemi;"
+"tipi di file;associazioni file;tipi MIME;pattern dei file;file;pattern;"
#. Name
#: fonts/fonts.desktop:12 konqhtml/tdehtml_fonts.desktop:11
@@ -1340,7 +1363,7 @@ msgstr "Configurazione dei dispositivi hardware"
#. Keywords
#: hwmanager/hwmanager.desktop:15
msgid "hardware;devices;manager;"
-msgstr "hardware;dispositivi;gestore;gestione;configurazione"
+msgstr "hardware;dispositivi;gestore;"
#. Comment
#: iccconfig/iccconfig.desktop:14
@@ -1472,7 +1495,7 @@ msgstr ""
#. Name
#: info/opengl.desktop:13
msgid "OpenGL"
-msgstr ""
+msgstr "OpenGL"
#. Comment
#: info/opengl.desktop:15
@@ -1506,7 +1529,7 @@ msgstr "partizioni;disco rigido;hard disk;HD;informazioni sul sistema;"
#. Name
#: info/pci.desktop:12
msgid "PCI"
-msgstr ""
+msgstr "PCI"
#. Comment
#: info/pci.desktop:14
@@ -1536,7 +1559,7 @@ msgstr "processore;CPU;FPU;MHz;informazioni sul sistema;"
#. Name
#: info/scsi.desktop:12
msgid "SCSI"
-msgstr ""
+msgstr "SCSI"
#. Comment
#: info/scsi.desktop:14
@@ -1583,7 +1606,7 @@ msgstr ""
#. Name
#: input/mouse.desktop:13
msgid "Mouse"
-msgstr ""
+msgstr "Mouse"
#. Comment
#: input/mouse.desktop:15
@@ -1604,7 +1627,7 @@ msgstr ""
#. Name
#: joystick/joystick.desktop:12
msgid "Joystick"
-msgstr ""
+msgstr "Joystick"
#. Comment
#: joystick/joystick.desktop:14
@@ -1614,7 +1637,7 @@ msgstr "Joystick - un modulo di kcontrol per provare i Joystick"
#. Keywords
#: joystick/joystick.desktop:16
msgid "joystick;gamepad;"
-msgstr ""
+msgstr "joystick;gamepad;"
#. Name
#: kcontrol/KControl.desktop:8 kcontrol/KControl_NoDisplay.desktop:8
@@ -1900,7 +1923,6 @@ msgstr "Configura il comportamento di Java e JavaScript"
#. Keywords
#: konqhtml/tdehtml_java_js.desktop:15
-#, fuzzy
msgid "konqueror;kfm;browser;html;web;www;java;javascript;"
msgstr ""
"konqueror;kfm;browser;html;web;www;caratteri;colori;set di caratteri;charset;"
@@ -1924,7 +1946,7 @@ msgstr "konqueror;kfm;utente;interfaccia;linguette;navigazione;"
#. Name
#: konsole/kcmkonsole.desktop:10
msgid "Konsole"
-msgstr ""
+msgstr "Konsole"
#. Comment
#: konsole/kcmkonsole.desktop:12
@@ -2047,9 +2069,8 @@ msgstr "prestazioni;velocità;memoria;migliora;"
#. Name
#: privacy/privacy.desktop:11
-#, fuzzy
msgid "Privacy"
-msgstr "privacy;riservatezza;"
+msgstr "Privacy"
#. Comment
#: privacy/privacy.desktop:13
@@ -2081,7 +2102,7 @@ msgstr ""
#. Name
#: randr/tderandrtray-autostart.desktop:2 randr/tderandrtray.desktop:2
msgid "TDERandRTray"
-msgstr ""
+msgstr "TDERandRTray"
#. GenericName
#: randr/tderandrtray-autostart.desktop:4 randr/tderandrtray.desktop:4
@@ -2186,8 +2207,8 @@ msgstr ""
msgid ""
"style;styles;look;widget;icons;toolbars;text;highlight;apps;TDE applications;"
msgstr ""
-"stile;stili;aspetto;widget;elemento grafico;icone;barre degli strumenti;"
-"testo;evidenziazione;applicazioni;applicazioni TDE;"
+"stile;stili;aspetto;widget;icone;barre degli strumenti;testo;evidenziazione;"
+"applicazioni;applicazioni TDE;"
#. Name
#: taskbar/kcmtaskbar.desktop:11
@@ -2253,9 +2274,8 @@ msgstr "File dei tipi di carattere"
#. Name
#: tdefontinst/viewpart/tdefontview.desktop:2
-#, fuzzy
msgid "TDEFontView"
-msgstr "Visualizzatore di caratteri"
+msgstr "Visualizzatore di caratteri TDEFontView"
#. GenericName
#. Name
@@ -2267,7 +2287,7 @@ msgstr "Visualizzatore di caratteri"
#. Name
#: tdeio/cache.desktop:12
msgid "Cache"
-msgstr ""
+msgstr "Cache"
#. Comment
#: tdeio/cache.desktop:14
@@ -2329,7 +2349,7 @@ msgstr "Preferenze sulle connessioni"
#. Name
#: tdeio/proxy.desktop:12
msgid "Proxy"
-msgstr ""
+msgstr "Proxy"
#. Comment
#: tdeio/proxy.desktop:14
@@ -2515,7 +2535,10 @@ msgstr "Configura TDE per utilizzare più monitor"
#. Keywords
#: xinerama/xinerama.desktop:14
msgid "Xinerama;dual head;multihead;monitor;"
-msgstr "Xinerama;dual head;multihead;monitor;monitor multipli;"
+msgstr "Xinerama;dual head;multihead;monitor;"
+
+#~ msgid "tdehwdevicetray"
+#~ msgstr "tdehwdevicetray"
#~ msgid "Device Monitor"
#~ msgstr "Monitor dei dispositivi hardware"
diff --git a/translations/desktop_files/kcontrol-desktops/ru.po b/translations/desktop_files/kcontrol-desktops/ru.po
index ff500be9a..2013e4300 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: 2020-06-29 00:09+0200\n"
-"PO-Revision-Date: 2021-01-21 09:11+0000\n"
+"POT-Creation-Date: 2021-07-07 22:18+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
@@ -1790,7 +1796,7 @@ msgstr "Настройка режима менеджера файлов "
#. Name
#: konq/filepreviews.desktop:11
msgid "Previews & Metadata"
-msgstr "Миниатюры и мета-данные"
+msgstr "Миниатюры"
#. Comment
#: konq/filepreviews.desktop:13
@@ -1859,7 +1865,7 @@ msgstr ""
#. Name
#: konqhtml/tdehtml_userinterface.desktop:11
msgid "User Interface"
-msgstr "Пользовательский интерфейс"
+msgstr "Интерфейс"
#. Comment
#: konqhtml/tdehtml_userinterface.desktop:13
@@ -1870,7 +1876,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
@@ -1977,10 +1984,10 @@ msgstr "Настройка параметров, которые влияют н
#. Keywords
#: performance/kcmkonqyperformance.desktop:15
-#, fuzzy
msgid "konqueror;reuse;preloading;"
msgstr ""
-"конкэрор;кфм;пользователь;пользовательский интерфейс;вкладки;навигация;"
+"konqueror;reuse;preloading;конкэрор;повторное использование;предварительная "
+"загрузка;предзагрузка;"
#. Comment
#: performance/kcmperformance.desktop:13
@@ -2377,7 +2384,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/kdcop.desktop/el.po b/translations/desktop_files/kdcop.desktop/el.po
new file mode 100644
index 000000000..b8a88d703
--- /dev/null
+++ b/translations/desktop_files/kdcop.desktop/el.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# blu.256 <mavridisf@gmail.com>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-19 01:46+0200\n"
+"PO-Revision-Date: 2022-01-16 15:00+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Greek <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/kdcop-kdcopdesktop/el/>\n"
+"Language: el\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
+#: kdcop.desktop:11
+msgid "KDCOP"
+msgstr "KDCOP"
+
+#. GenericName
+#: kdcop.desktop:13
+msgid "DCOP browser"
+msgstr "Περιηγητής συστήματος DCOP"
diff --git a/translations/desktop_files/kdcop.desktop/fr.po b/translations/desktop_files/kdcop.desktop/fr.po
new file mode 100644
index 000000000..413c94722
--- /dev/null
+++ b/translations/desktop_files/kdcop.desktop/fr.po
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# blu.256 <mavridisf@gmail.com>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-19 01:46+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kdcop.desktop:11
+msgid "KDCOP"
+msgstr ""
+
+#. GenericName
+#: kdcop.desktop:13
+msgid "DCOP browser"
+msgstr ""
diff --git a/translations/desktop_files/kdcop.desktop/it.po b/translations/desktop_files/kdcop.desktop/it.po
new file mode 100644
index 000000000..ddc5dcfcc
--- /dev/null
+++ b/translations/desktop_files/kdcop.desktop/it.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Leandro Nini <drfiemost@email.it>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-06-19 01:46+0200\n"
+"PO-Revision-Date: 2021-11-02 08:31+0000\n"
+"Last-Translator: Leandro Nini <drfiemost@email.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kdcop-kdcopdesktop/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.8.1\n"
+
+#. Name
+#: kdcop.desktop:11
+msgid "KDCOP"
+msgstr "KDCOP"
+
+#. GenericName
+#: kdcop.desktop:13
+msgid "DCOP browser"
+msgstr "Navigatore DCOP"
diff --git a/translations/desktop_files/kdcop.desktop/pt.po b/translations/desktop_files/kdcop.desktop/pt.po
index 4b44a11d6..64e68a2be 100644
--- a/translations/desktop_files/kdcop.desktop/pt.po
+++ b/translations/desktop_files/kdcop.desktop/pt.po
@@ -1,25 +1,28 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020.
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-19 01:46+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2021-12-02 19:00+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kdcop-kdcopdesktop/pt/>\n"
"Language: pt\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.9.1\n"
#. Name
#: kdcop.desktop:11
msgid "KDCOP"
-msgstr ""
+msgstr "KDCOP"
#. GenericName
#: kdcop.desktop:13
msgid "DCOP browser"
-msgstr ""
+msgstr "Navegador DCOP"
diff --git a/translations/desktop_files/kdesktop-desktops/af.po b/translations/desktop_files/kdesktop-desktops/af.po
index 89e675fdb..e823997b3 100644
--- a/translations/desktop_files/kdesktop-desktops/af.po
+++ b/translations/desktop_files/kdesktop-desktops/af.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Gesentreer"
msgid "Tiled"
msgstr "Geteël"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Gesentreer"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Gesentreer"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Gesentreer"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ar.po b/translations/desktop_files/kdesktop-desktops/ar.po
index 68dd5c46c..ca2fe07f7 100644
--- a/translations/desktop_files/kdesktop-desktops/ar.po
+++ b/translations/desktop_files/kdesktop-desktops/ar.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "مركز"
msgid "Tiled"
msgstr "مبلّط"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "مركز"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "مركز"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "مركز"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/az.po b/translations/desktop_files/kdesktop-desktops/az.po
index 6262ba0ef..c066f5cdd 100644
--- a/translations/desktop_files/kdesktop-desktops/az.po
+++ b/translations/desktop_files/kdesktop-desktops/az.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/be.po b/translations/desktop_files/kdesktop-desktops/be.po
index 48c98599c..ae01bc45d 100644
--- a/translations/desktop_files/kdesktop-desktops/be.po
+++ b/translations/desktop_files/kdesktop-desktops/be.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Пасярэдзіне"
msgid "Tiled"
msgstr "Расцягнутае"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Пасярэдзіне"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Пасярэдзіне"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Пасярэдзіне"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/bg.po b/translations/desktop_files/kdesktop-desktops/bg.po
index 0dc599966..35e05789e 100644
--- a/translations/desktop_files/kdesktop-desktops/bg.po
+++ b/translations/desktop_files/kdesktop-desktops/bg.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+0000\n"
"PO-Revision-Date: 2020-07-21 05:23+0000\n"
"Last-Translator: Emanoil Kotsev <deloptes@gmail.com>\n"
"Language-Team: Bulgarian <https://mirror.git.trinitydesktop.org/weblate/"
@@ -37,6 +37,39 @@ msgstr "Центрирано"
msgid "Tiled"
msgstr "Каскадно"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Центрирано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Центрирано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Центрирано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/bn.po b/translations/desktop_files/kdesktop-desktops/bn.po
index a76547a12..74d962af5 100644
--- a/translations/desktop_files/kdesktop-desktops/bn.po
+++ b/translations/desktop_files/kdesktop-desktops/bn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "মাঝামাঝি"
msgid "Tiled"
msgstr "টাইল করা"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "মাঝামাঝি"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "মাঝামাঝি"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "মাঝামাঝি"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/br.po b/translations/desktop_files/kdesktop-desktops/br.po
index e9dd7eeba..dc7d01c42 100644
--- a/translations/desktop_files/kdesktop-desktops/br.po
+++ b/translations/desktop_files/kdesktop-desktops/br.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Kreizennet"
msgid "Tiled"
msgstr "Teolet"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Kreizennet"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Kreizennet"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Kreizennet"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/bs.po b/translations/desktop_files/kdesktop-desktops/bs.po
index 137091328..854e786cf 100644
--- a/translations/desktop_files/kdesktop-desktops/bs.po
+++ b/translations/desktop_files/kdesktop-desktops/bs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrirano"
msgid "Tiled"
msgstr "Popločano"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrirano"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrirano"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrirano"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ca.po b/translations/desktop_files/kdesktop-desktops/ca.po
index 5b98ee049..e506493ac 100644
--- a/translations/desktop_files/kdesktop-desktops/ca.po
+++ b/translations/desktop_files/kdesktop-desktops/ca.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrat"
msgid "Tiled"
msgstr "Repetit"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/cs.po b/translations/desktop_files/kdesktop-desktops/cs.po
index a7d3e9880..96194e583 100644
--- a/translations/desktop_files/kdesktop-desktops/cs.po
+++ b/translations/desktop_files/kdesktop-desktops/cs.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Slávek Banko <slavek.banko@axis.cz>, 2021, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+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"
+"POT-Creation-Date: 2022-07-17 18:15+0000\n"
+"PO-Revision-Date: 2022-07-19 22:46+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/kdesktop-desktop-files/cs/>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.13.1\n"
#. Name
#: kdesktop.desktop.cmake:10
@@ -36,6 +37,36 @@ msgstr "Na střed"
msgid "Tiled"
msgstr "Dlaždice"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr "Vydlážděné centrovaně"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr "Centrované s maximálním poměrem stran"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr "Vydlážděné s maximálním poměrem stran"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr "Zvětšené"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr "Centrované, automatická změna velikosti"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr "Zvětšené a oříznuté"
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
@@ -89,4 +120,4 @@ msgstr "XGlobe vytvořil Thorsten Scheuermann"
#. Comment
#: programs/xplanet.desktop:2
msgid "XPlanet by Hari Nair"
-msgstr "XPlanet od Hariho Naira"
+msgstr "XPlanet vytvořil Hari Nair"
diff --git a/translations/desktop_files/kdesktop-desktops/csb.po b/translations/desktop_files/kdesktop-desktops/csb.po
index 41f67a17e..1a48f5e44 100644
--- a/translations/desktop_files/kdesktop-desktops/csb.po
+++ b/translations/desktop_files/kdesktop-desktops/csb.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Na westrzódkù"
msgid "Tiled"
msgstr "Kachelkòwóné"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Na westrzódkù"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Na westrzódkù"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Na westrzódkù"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/cy.po b/translations/desktop_files/kdesktop-desktops/cy.po
index ed6f7e6a5..b48289252 100644
--- a/translations/desktop_files/kdesktop-desktops/cy.po
+++ b/translations/desktop_files/kdesktop-desktops/cy.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Canoledig"
msgid "Tiled"
msgstr "Teiledig"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Canoledig"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Canoledig"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Canoledig"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/da.po b/translations/desktop_files/kdesktop-desktops/da.po
index da5b5fa36..96dd7bf77 100644
--- a/translations/desktop_files/kdesktop-desktops/da.po
+++ b/translations/desktop_files/kdesktop-desktops/da.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centreret"
msgid "Tiled"
msgstr "Fliselagt"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centreret"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centreret"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centreret"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/de.po b/translations/desktop_files/kdesktop-desktops/de.po
index 039098ec3..8efc75d23 100644
--- a/translations/desktop_files/kdesktop-desktops/de.po
+++ b/translations/desktop_files/kdesktop-desktops/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Zentriert"
msgid "Tiled"
msgstr "Gekachelt"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Zentriert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Zentriert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Zentriert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/el.po b/translations/desktop_files/kdesktop-desktops/el.po
index b7bd3ba9f..e8a86b7e3 100644
--- a/translations/desktop_files/kdesktop-desktops/el.po
+++ b/translations/desktop_files/kdesktop-desktops/el.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Κεντράρισμα"
msgid "Tiled"
msgstr "Σε παράθεση"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Κεντράρισμα"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Κεντράρισμα"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Κεντράρισμα"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/en_GB.po b/translations/desktop_files/kdesktop-desktops/en_GB.po
index 075fc122c..95e6cde49 100644
--- a/translations/desktop_files/kdesktop-desktops/en_GB.po
+++ b/translations/desktop_files/kdesktop-desktops/en_GB.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centred"
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centred"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centred"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centred"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/eo.po b/translations/desktop_files/kdesktop-desktops/eo.po
index daf4f8b3e..25b18c0e1 100644
--- a/translations/desktop_files/kdesktop-desktops/eo.po
+++ b/translations/desktop_files/kdesktop-desktops/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Meza"
msgid "Tiled"
msgstr "kahela"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Meza"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Meza"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Meza"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/es.po b/translations/desktop_files/kdesktop-desktops/es.po
index e40d00ee1..cc77c1ddb 100644
--- a/translations/desktop_files/kdesktop-desktops/es.po
+++ b/translations/desktop_files/kdesktop-desktops/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrado"
msgid "Tiled"
msgstr "Mosaico"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/et.po b/translations/desktop_files/kdesktop-desktops/et.po
index 863aa1f2c..9188bd261 100644
--- a/translations/desktop_files/kdesktop-desktops/et.po
+++ b/translations/desktop_files/kdesktop-desktops/et.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Tsentreeritud"
msgid "Tiled"
msgstr "Paanidena"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Tsentreeritud"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Tsentreeritud"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Tsentreeritud"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/eu.po b/translations/desktop_files/kdesktop-desktops/eu.po
index 03a058b77..b8e186166 100644
--- a/translations/desktop_files/kdesktop-desktops/eu.po
+++ b/translations/desktop_files/kdesktop-desktops/eu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Erdiratua"
msgid "Tiled"
msgstr "Mosaikoa"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Erdiratua"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Erdiratua"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Erdiratua"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/fa.po b/translations/desktop_files/kdesktop-desktops/fa.po
index c495a80b7..7d2f8e424 100644
--- a/translations/desktop_files/kdesktop-desktops/fa.po
+++ b/translations/desktop_files/kdesktop-desktops/fa.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "مرکزی"
msgid "Tiled"
msgstr "کاشی‌شده"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "مرکزی"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "مرکزی"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "مرکزی"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/fi.po b/translations/desktop_files/kdesktop-desktops/fi.po
index c4d34829e..1a6f59085 100644
--- a/translations/desktop_files/kdesktop-desktops/fi.po
+++ b/translations/desktop_files/kdesktop-desktops/fi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Keskitetty"
msgid "Tiled"
msgstr "Vierekkäin"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Keskitetty"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Keskitetty"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Keskitetty"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/fr.po b/translations/desktop_files/kdesktop-desktops/fr.po
index 504d5b0e0..f3679e22a 100644
--- a/translations/desktop_files/kdesktop-desktops/fr.po
+++ b/translations/desktop_files/kdesktop-desktops/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centré"
msgid "Tiled"
msgstr "Mosaïque"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centré"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centré"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centré"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/fy.po b/translations/desktop_files/kdesktop-desktops/fy.po
index d0f5409ae..277953319 100644
--- a/translations/desktop_files/kdesktop-desktops/fy.po
+++ b/translations/desktop_files/kdesktop-desktops/fy.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "sintraal setten"
msgid "Tiled"
msgstr "Tegele"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "sintraal setten"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "sintraal setten"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "sintraal setten"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ga.po b/translations/desktop_files/kdesktop-desktops/ga.po
index f0b82aef6..a9adb43d1 100644
--- a/translations/desktop_files/kdesktop-desktops/ga.po
+++ b/translations/desktop_files/kdesktop-desktops/ga.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Láraithe"
msgid "Tiled"
msgstr "Tilithe"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Láraithe"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Láraithe"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Láraithe"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
#, fuzzy
diff --git a/translations/desktop_files/kdesktop-desktops/gl.po b/translations/desktop_files/kdesktop-desktops/gl.po
index b3ee5fd7f..6cc9c5dbb 100644
--- a/translations/desktop_files/kdesktop-desktops/gl.po
+++ b/translations/desktop_files/kdesktop-desktops/gl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrado"
msgid "Tiled"
msgstr "Mosaico"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/he.po b/translations/desktop_files/kdesktop-desktops/he.po
index 5c840d729..be9ab0481 100644
--- a/translations/desktop_files/kdesktop-desktops/he.po
+++ b/translations/desktop_files/kdesktop-desktops/he.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "ממורכז"
msgid "Tiled"
msgstr "פרוש"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "ממורכז"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "ממורכז"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "ממורכז"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/hi.po b/translations/desktop_files/kdesktop-desktops/hi.po
index cdb6ab06d..56cdecd48 100644
--- a/translations/desktop_files/kdesktop-desktops/hi.po
+++ b/translations/desktop_files/kdesktop-desktops/hi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "बीचों-बीच"
msgid "Tiled"
msgstr "चटाई-दार"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "बीचों-बीच"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "बीचों-बीच"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "बीचों-बीच"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/hr.po b/translations/desktop_files/kdesktop-desktops/hr.po
index a91411d6d..a7e26e8b5 100644
--- a/translations/desktop_files/kdesktop-desktops/hr.po
+++ b/translations/desktop_files/kdesktop-desktops/hr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Sredinom"
msgid "Tiled"
msgstr "Popločeno"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Sredinom"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Sredinom"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Sredinom"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/hu.po b/translations/desktop_files/kdesktop-desktops/hu.po
index 4003e604a..a0a3ce419 100644
--- a/translations/desktop_files/kdesktop-desktops/hu.po
+++ b/translations/desktop_files/kdesktop-desktops/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Középre igazítva"
msgid "Tiled"
msgstr "Mozaikszerűen"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Középre igazítva"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Középre igazítva"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Középre igazítva"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/id.po b/translations/desktop_files/kdesktop-desktops/id.po
index 5817c8daf..a21b4511b 100644
--- a/translations/desktop_files/kdesktop-desktops/id.po
+++ b/translations/desktop_files/kdesktop-desktops/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/is.po b/translations/desktop_files/kdesktop-desktops/is.po
index 82d861443..3144aa55d 100644
--- a/translations/desktop_files/kdesktop-desktops/is.po
+++ b/translations/desktop_files/kdesktop-desktops/is.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Miðjað"
msgid "Tiled"
msgstr "Flísað"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Miðjað"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Miðjað"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Miðjað"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/it.po b/translations/desktop_files/kdesktop-desktops/it.po
index 34c0f589d..ed6231a6e 100644
--- a/translations/desktop_files/kdesktop-desktops/it.po
+++ b/translations/desktop_files/kdesktop-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-19 02:46+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"
+"POT-Creation-Date: 2022-07-17 18:15+0000\n"
+"PO-Revision-Date: 2022-07-19 22:46+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kdesktop-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.13.1\n"
#. Name
#: kdesktop.desktop.cmake:10
@@ -36,6 +37,36 @@ msgstr "Centrato"
msgid "Tiled"
msgstr "Ripetuto"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr "Centrato e ripetuto"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr "Centrato e massimizzato"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr "Ripetuto e massimizzato"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr "Scalato"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr "Centrato con adattamento automatico"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr "Ridimensiona e ritaglia"
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
@@ -64,7 +95,7 @@ msgstr "Marciapiede"
#. Comment
#: patterns/rattan.desktop:2
msgid "Rattan"
-msgstr ""
+msgstr "Rattan"
#. Comment
#: patterns/stonewall2.desktop:2
diff --git a/translations/desktop_files/kdesktop-desktops/ja.po b/translations/desktop_files/kdesktop-desktops/ja.po
index e23f9d01c..a95453621 100644
--- a/translations/desktop_files/kdesktop-desktops/ja.po
+++ b/translations/desktop_files/kdesktop-desktops/ja.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "中央"
msgid "Tiled"
msgstr "タイル状"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "中央"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "中央"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "中央"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ka.po b/translations/desktop_files/kdesktop-desktops/ka.po
index 3737a95d6..df95b9bfc 100644
--- a/translations/desktop_files/kdesktop-desktops/ka.po
+++ b/translations/desktop_files/kdesktop-desktops/ka.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "ცენტრზე"
msgid "Tiled"
msgstr "მოზაიკა"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "ცენტრზე"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "ცენტრზე"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "ცენტრზე"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/kdesktop-desktops.pot b/translations/desktop_files/kdesktop-desktops/kdesktop-desktops.pot
index cb4ff5160..3631116e6 100644
--- a/translations/desktop_files/kdesktop-desktops/kdesktop-desktops.pot
+++ b/translations/desktop_files/kdesktop-desktops/kdesktop-desktops.pot
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/kk.po b/translations/desktop_files/kdesktop-desktops/kk.po
index da269a7e7..7f27bcde3 100644
--- a/translations/desktop_files/kdesktop-desktops/kk.po
+++ b/translations/desktop_files/kdesktop-desktops/kk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Ортаға"
msgid "Tiled"
msgstr "Қатарлап"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Ортаға"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Ортаға"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Ортаға"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
#, fuzzy
diff --git a/translations/desktop_files/kdesktop-desktops/km.po b/translations/desktop_files/kdesktop-desktops/km.po
index 9220e9036..c21779a0f 100644
--- a/translations/desktop_files/kdesktop-desktops/km.po
+++ b/translations/desktop_files/kdesktop-desktops/km.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "កណ្ដាល"
msgid "Tiled"
msgstr "ក្បឿង"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "កណ្ដាល"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "កណ្ដាល"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "កណ្ដាល"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ko.po b/translations/desktop_files/kdesktop-desktops/ko.po
index 6bfc7ecb4..d4101c063 100644
--- a/translations/desktop_files/kdesktop-desktops/ko.po
+++ b/translations/desktop_files/kdesktop-desktops/ko.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
#, fuzzy
diff --git a/translations/desktop_files/kdesktop-desktops/lo.po b/translations/desktop_files/kdesktop-desktops/lo.po
index 62451dbbb..ba98d93e4 100644
--- a/translations/desktop_files/kdesktop-desktops/lo.po
+++ b/translations/desktop_files/kdesktop-desktops/lo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/lt.po b/translations/desktop_files/kdesktop-desktops/lt.po
index 9798693be..58c082b29 100644
--- a/translations/desktop_files/kdesktop-desktops/lt.po
+++ b/translations/desktop_files/kdesktop-desktops/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centruota"
msgid "Tiled"
msgstr "Iškloti"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centruota"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centruota"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centruota"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/lv.po b/translations/desktop_files/kdesktop-desktops/lv.po
index 1c69c3b24..60229d933 100644
--- a/translations/desktop_files/kdesktop-desktops/lv.po
+++ b/translations/desktop_files/kdesktop-desktops/lv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrēts"
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrēts"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrēts"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrēts"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/mk.po b/translations/desktop_files/kdesktop-desktops/mk.po
index 793bb5e4f..96c12212a 100644
--- a/translations/desktop_files/kdesktop-desktops/mk.po
+++ b/translations/desktop_files/kdesktop-desktops/mk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Центриран"
msgid "Tiled"
msgstr "Поплочен"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Центриран"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Центриран"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Центриран"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/mn.po b/translations/desktop_files/kdesktop-desktops/mn.po
index f2483a874..45fa0fa6f 100644
--- a/translations/desktop_files/kdesktop-desktops/mn.po
+++ b/translations/desktop_files/kdesktop-desktops/mn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ms.po b/translations/desktop_files/kdesktop-desktops/ms.po
index 28fc5865f..39bbcc71a 100644
--- a/translations/desktop_files/kdesktop-desktops/ms.po
+++ b/translations/desktop_files/kdesktop-desktops/ms.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Tengah"
msgid "Tiled"
msgstr "Berjubin"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Tengah"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Tengah"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Tengah"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/mt.po b/translations/desktop_files/kdesktop-desktops/mt.po
index 8cd3e5cce..edd3f21a6 100644
--- a/translations/desktop_files/kdesktop-desktops/mt.po
+++ b/translations/desktop_files/kdesktop-desktops/mt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Iċċentrat"
msgid "Tiled"
msgstr "Madum"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Iċċentrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Iċċentrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Iċċentrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/nb.po b/translations/desktop_files/kdesktop-desktops/nb.po
index 2dba26920..5a474ef1b 100644
--- a/translations/desktop_files/kdesktop-desktops/nb.po
+++ b/translations/desktop_files/kdesktop-desktops/nb.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Sentrert"
msgid "Tiled"
msgstr "Flislagt"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Sentrert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Sentrert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Sentrert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/nds.po b/translations/desktop_files/kdesktop-desktops/nds.po
index 4e0cf3e42..4f4943a7b 100644
--- a/translations/desktop_files/kdesktop-desktops/nds.po
+++ b/translations/desktop_files/kdesktop-desktops/nds.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "In de Merrn"
msgid "Tiled"
msgstr "Kachelt"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "In de Merrn"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "In de Merrn"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "In de Merrn"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ne.po b/translations/desktop_files/kdesktop-desktops/ne.po
index b258b3ac4..d61551d9b 100644
--- a/translations/desktop_files/kdesktop-desktops/ne.po
+++ b/translations/desktop_files/kdesktop-desktops/ne.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "केन्द्रित"
msgid "Tiled"
msgstr "टायल गरिएको"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "केन्द्रित"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "केन्द्रित"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "केन्द्रित"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/nl.po b/translations/desktop_files/kdesktop-desktops/nl.po
index a09a4933b..68d12eff3 100644
--- a/translations/desktop_files/kdesktop-desktops/nl.po
+++ b/translations/desktop_files/kdesktop-desktops/nl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Gecentreerd"
msgid "Tiled"
msgstr "Tegels"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Gecentreerd"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Gecentreerd"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Gecentreerd"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/nn.po b/translations/desktop_files/kdesktop-desktops/nn.po
index 36cf6fe41..c189fc22f 100644
--- a/translations/desktop_files/kdesktop-desktops/nn.po
+++ b/translations/desktop_files/kdesktop-desktops/nn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Sentrert"
msgid "Tiled"
msgstr "Jamsides"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Sentrert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Sentrert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Sentrert"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/nso.po b/translations/desktop_files/kdesktop-desktops/nso.po
index 80ef8813a..d00d58f20 100644
--- a/translations/desktop_files/kdesktop-desktops/nso.po
+++ b/translations/desktop_files/kdesktop-desktops/nso.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/oc.po b/translations/desktop_files/kdesktop-desktops/oc.po
index 96e436a9e..91c11d08c 100644
--- a/translations/desktop_files/kdesktop-desktops/oc.po
+++ b/translations/desktop_files/kdesktop-desktops/oc.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -37,6 +37,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/pa.po b/translations/desktop_files/kdesktop-desktops/pa.po
index 2a4a8001e..030a590a1 100644
--- a/translations/desktop_files/kdesktop-desktops/pa.po
+++ b/translations/desktop_files/kdesktop-desktops/pa.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "ਕੇਂਦਰੀ"
msgid "Tiled"
msgstr "ਤਣਿਆ"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "ਕੇਂਦਰੀ"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "ਕੇਂਦਰੀ"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "ਕੇਂਦਰੀ"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/pl.po b/translations/desktop_files/kdesktop-desktops/pl.po
index 51aacb7c8..65d219ff7 100644
--- a/translations/desktop_files/kdesktop-desktops/pl.po
+++ b/translations/desktop_files/kdesktop-desktops/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Wyśrodkowane"
msgid "Tiled"
msgstr "Kafelkowane"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Wyśrodkowane"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Wyśrodkowane"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Wyśrodkowane"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/pt.po b/translations/desktop_files/kdesktop-desktops/pt.po
index b0e75f71d..1d72f3c0f 100644
--- a/translations/desktop_files/kdesktop-desktops/pt.po
+++ b/translations/desktop_files/kdesktop-desktops/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrado"
msgid "Tiled"
msgstr "Mosaico"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/pt_BR.po b/translations/desktop_files/kdesktop-desktops/pt_BR.po
index 174ed770a..d935f14c8 100644
--- a/translations/desktop_files/kdesktop-desktops/pt_BR.po
+++ b/translations/desktop_files/kdesktop-desktops/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centralizado"
msgid "Tiled"
msgstr "Ladrilhado"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centralizado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centralizado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centralizado"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ro.po b/translations/desktop_files/kdesktop-desktops/ro.po
index 8cec4fd5b..5e44f90ec 100644
--- a/translations/desktop_files/kdesktop-desktops/ro.po
+++ b/translations/desktop_files/kdesktop-desktops/ro.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrat"
msgid "Tiled"
msgstr "Mozaic"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ru.po b/translations/desktop_files/kdesktop-desktops/ru.po
index ca866c47f..0b250d204 100644
--- a/translations/desktop_files/kdesktop-desktops/ru.po
+++ b/translations/desktop_files/kdesktop-desktops/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "По центру"
msgid "Tiled"
msgstr "Черепицей"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "По центру"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "По центру"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "По центру"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
#, fuzzy
diff --git a/translations/desktop_files/kdesktop-desktops/rw.po b/translations/desktop_files/kdesktop-desktops/rw.po
index d302d336e..d48ee690c 100644
--- a/translations/desktop_files/kdesktop-desktops/rw.po
+++ b/translations/desktop_files/kdesktop-desktops/rw.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Biri hagati"
msgid "Tiled"
msgstr "Byudukaro"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Biri hagati"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Biri hagati"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Biri hagati"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/se.po b/translations/desktop_files/kdesktop-desktops/se.po
index 2795989b0..ad72ebcdd 100644
--- a/translations/desktop_files/kdesktop-desktops/se.po
+++ b/translations/desktop_files/kdesktop-desktops/se.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Guovdut"
msgid "Tiled"
msgstr "Bálddalaga"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Guovdut"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Guovdut"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Guovdut"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/sk.po b/translations/desktop_files/kdesktop-desktops/sk.po
index 2d89670ca..804a9ecb0 100644
--- a/translations/desktop_files/kdesktop-desktops/sk.po
+++ b/translations/desktop_files/kdesktop-desktops/sk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "V strede"
msgid "Tiled"
msgstr "Dlaždice"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "V strede"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "V strede"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "V strede"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/sl.po b/translations/desktop_files/kdesktop-desktops/sl.po
index 9909a48f6..3ba18155f 100644
--- a/translations/desktop_files/kdesktop-desktops/sl.po
+++ b/translations/desktop_files/kdesktop-desktops/sl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Usrediščeno"
msgid "Tiled"
msgstr "Razdeljeno"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Usrediščeno"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Usrediščeno"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Usrediščeno"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/sr.po b/translations/desktop_files/kdesktop-desktops/sr.po
index e4d65bd53..90707d884 100644
--- a/translations/desktop_files/kdesktop-desktops/sr.po
+++ b/translations/desktop_files/kdesktop-desktops/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Центрирано"
msgid "Tiled"
msgstr "Поређано"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Центрирано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Центрирано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Центрирано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/sr@Latn.po b/translations/desktop_files/kdesktop-desktops/sr@Latn.po
index 5937a3aa5..c926de981 100644
--- a/translations/desktop_files/kdesktop-desktops/sr@Latn.po
+++ b/translations/desktop_files/kdesktop-desktops/sr@Latn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrirano"
msgid "Tiled"
msgstr "Poređano"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrirano"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrirano"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrirano"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ss.po b/translations/desktop_files/kdesktop-desktops/ss.po
index 9535bce9c..01bb77f00 100644
--- a/translations/desktop_files/kdesktop-desktops/ss.po
+++ b/translations/desktop_files/kdesktop-desktops/ss.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/sv.po b/translations/desktop_files/kdesktop-desktops/sv.po
index ca5569613..d4deaef66 100644
--- a/translations/desktop_files/kdesktop-desktops/sv.po
+++ b/translations/desktop_files/kdesktop-desktops/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Centrerad"
msgid "Tiled"
msgstr "Sida vid sida"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Centrerad"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Centrerad"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Centrerad"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ta.po b/translations/desktop_files/kdesktop-desktops/ta.po
index a5e34e1e8..b04bf29d8 100644
--- a/translations/desktop_files/kdesktop-desktops/ta.po
+++ b/translations/desktop_files/kdesktop-desktops/ta.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "மைய"
msgid "Tiled"
msgstr "பிண்ணனி"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "மைய"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "மைய"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "மைய"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/te.po b/translations/desktop_files/kdesktop-desktops/te.po
index 42f1d00fc..9e3ef7c7a 100644
--- a/translations/desktop_files/kdesktop-desktops/te.po
+++ b/translations/desktop_files/kdesktop-desktops/te.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "మద్యన"
msgid "Tiled"
msgstr "పలకలుగా"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "మద్యన"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "మద్యన"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "మద్యన"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/tg.po b/translations/desktop_files/kdesktop-desktops/tg.po
index be0a5f249..01ab9144a 100644
--- a/translations/desktop_files/kdesktop-desktops/tg.po
+++ b/translations/desktop_files/kdesktop-desktops/tg.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Марказӣ"
msgid "Tiled"
msgstr "Тахтасангӣ"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Марказӣ"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Марказӣ"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Марказӣ"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/th.po b/translations/desktop_files/kdesktop-desktops/th.po
index 76f3d1f34..2899b5049 100644
--- a/translations/desktop_files/kdesktop-desktops/th.po
+++ b/translations/desktop_files/kdesktop-desktops/th.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "จัดกลาง"
msgid "Tiled"
msgstr "ปูทั้งหน้าจอ"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "จัดกลาง"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "จัดกลาง"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "จัดกลาง"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/tr.po b/translations/desktop_files/kdesktop-desktops/tr.po
index 69c8fb166..79b0f62cd 100644
--- a/translations/desktop_files/kdesktop-desktops/tr.po
+++ b/translations/desktop_files/kdesktop-desktops/tr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Uzat"
msgid "Tiled"
msgstr "Sırala"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Uzat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Uzat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Uzat"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/tt.po b/translations/desktop_files/kdesktop-desktops/tt.po
index d7e0d319e..d4c5b1133 100644
--- a/translations/desktop_files/kdesktop-desktops/tt.po
+++ b/translations/desktop_files/kdesktop-desktops/tt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Üzäkläşep"
msgid "Tiled"
msgstr "Bülengän"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Üzäkläşep"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Üzäkläşep"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Üzäkläşep"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/uk.po b/translations/desktop_files/kdesktop-desktops/uk.po
index 57f20a554..b289cf396 100644
--- a/translations/desktop_files/kdesktop-desktops/uk.po
+++ b/translations/desktop_files/kdesktop-desktops/uk.po
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Roman Savochenko <roman@oscada.org>, 2020.
+# Roman Savochenko <roman@oscada.org>, 2020, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
-"PO-Revision-Date: 2020-07-21 05:23+0000\n"
+"POT-Creation-Date: 2022-07-17 18:15+0000\n"
+"PO-Revision-Date: 2022-10-18 19:56+0000\n"
"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/kdesktop-desktop-files/uk/>\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.1.1\n"
+"X-Generator: Weblate 4.13.1\n"
#. Name
#: kdesktop.desktop.cmake:10
@@ -38,6 +38,36 @@ msgstr "По центру"
msgid "Tiled"
msgstr "Плиткою"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr "По центру Плиткою"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr "По центру Maxpect"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr "Плиткою Maxpect"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr "Масштабовано"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr "По центру Авто Підлашт."
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr "Масштаб & Кадрування"
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/uz.po b/translations/desktop_files/kdesktop-desktops/uz.po
index 2f694c68d..46234030b 100644
--- a/translations/desktop_files/kdesktop-desktops/uz.po
+++ b/translations/desktop_files/kdesktop-desktops/uz.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Markazda"
msgid "Tiled"
msgstr "Kafel"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Markazda"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Markazda"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Markazda"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/uz@cyrillic.po b/translations/desktop_files/kdesktop-desktops/uz@cyrillic.po
index 0f77465e7..abde6cdd6 100644
--- a/translations/desktop_files/kdesktop-desktops/uz@cyrillic.po
+++ b/translations/desktop_files/kdesktop-desktops/uz@cyrillic.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Марказда"
msgid "Tiled"
msgstr "Кафель"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Марказда"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Марказда"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Марказда"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/ven.po b/translations/desktop_files/kdesktop-desktops/ven.po
index 6035bff68..d52eebe8e 100644
--- a/translations/desktop_files/kdesktop-desktops/ven.po
+++ b/translations/desktop_files/kdesktop-desktops/ven.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/vi.po b/translations/desktop_files/kdesktop-desktops/vi.po
index 51d612785..da232da4a 100644
--- a/translations/desktop_files/kdesktop-desktops/vi.po
+++ b/translations/desktop_files/kdesktop-desktops/vi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Giữa"
msgid "Tiled"
msgstr "Xếp ngói"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Giữa"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Giữa"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Giữa"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/wa.po b/translations/desktop_files/kdesktop-desktops/wa.po
index 9d43400cd..750c2daf8 100644
--- a/translations/desktop_files/kdesktop-desktops/wa.po
+++ b/translations/desktop_files/kdesktop-desktops/wa.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "Å mitan"
msgid "Tiled"
msgstr "A schaeyes"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "Å mitan"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "Å mitan"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "Å mitan"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/xh.po b/translations/desktop_files/kdesktop-desktops/xh.po
index ab5e291df..1762e3284 100644
--- a/translations/desktop_files/kdesktop-desktops/xh.po
+++ b/translations/desktop_files/kdesktop-desktops/xh.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/zh_CN.po b/translations/desktop_files/kdesktop-desktops/zh_CN.po
index fe3a7b929..ce5a11ab9 100644
--- a/translations/desktop_files/kdesktop-desktops/zh_CN.po
+++ b/translations/desktop_files/kdesktop-desktops/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "居中"
msgid "Tiled"
msgstr "平铺"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "居中"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "居中"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "居中"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/zh_TW.po b/translations/desktop_files/kdesktop-desktops/zh_TW.po
index 02317fcbb..fdcc0fc5b 100644
--- a/translations/desktop_files/kdesktop-desktops/zh_TW.po
+++ b/translations/desktop_files/kdesktop-desktops/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 20:15+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"
@@ -36,6 +36,39 @@ msgstr "置中"
msgid "Tiled"
msgstr "拼貼"
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+#, fuzzy
+msgid "Center Tiled"
+msgstr "置中"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+#, fuzzy
+msgid "Centered Maxpect"
+msgstr "置中"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+#, fuzzy
+msgid "Centered Auto Fit"
+msgstr "置中"
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-desktops/zu.po b/translations/desktop_files/kdesktop-desktops/zu.po
index d9cd65d34..dea6a315b 100644
--- a/translations/desktop_files/kdesktop-desktops/zu.po
+++ b/translations/desktop_files/kdesktop-desktops/zu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:46+0200\n"
+"POT-Creation-Date: 2022-07-17 18:15+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"
@@ -36,6 +36,36 @@ msgstr ""
msgid "Tiled"
msgstr ""
+#. Name
+#: kdesktopSetAsBackground.desktop:17
+msgid "Center Tiled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:22
+msgid "Centered Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:27
+msgid "Tiled Maxpect"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:32
+msgid "Scaled"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:37
+msgid "Centered Auto Fit"
+msgstr ""
+
+#. Name
+#: kdesktopSetAsBackground.desktop:42
+msgid "Scale & Crop"
+msgstr ""
+
#. Comment
#: kwebdesktop/kwebdesktop.desktop:2
msgid "TDE Web Desktop"
diff --git a/translations/desktop_files/kdesktop-icons/it.po b/translations/desktop_files/kdesktop-icons/it.po
index c1fc0f8b0..6fceadc87 100644
--- a/translations/desktop_files/kdesktop-icons/it.po
+++ b/translations/desktop_files/kdesktop-icons/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-19 02:29+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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2022-01-09 06:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kdesktop-icons/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
#: Home.desktop:2
msgid "Home"
-msgstr ""
+msgstr "Home"
#. GenericName
#: Home.desktop:4
@@ -200,7 +201,7 @@ msgstr "Nuovo dispositivo MO"
#. Name
#: Templates/linkNFS.desktop:2
msgid "NFS..."
-msgstr ""
+msgstr "NFS..."
#. Comment
#: Templates/linkNFS.desktop:3
@@ -266,7 +267,7 @@ msgstr "Avvio automatico"
#. Name
#: directory.desktop:5
msgid "Desktop"
-msgstr ""
+msgstr "Desktop"
#. Name
#: directory.templates:3
diff --git a/translations/desktop_files/kdesktop-icons/pl.po b/translations/desktop_files/kdesktop-icons/pl.po
index 2e2432b9d..91857037d 100644
--- a/translations/desktop_files/kdesktop-icons/pl.po
+++ b/translations/desktop_files/kdesktop-icons/pl.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Marek W <coronzon88@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 02:29+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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2021-10-18 20:30+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kdesktop-icons/pl/>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: Home.desktop:2
@@ -34,7 +36,7 @@ msgstr "Zawiera pliki osobiste"
#. Name
#: My_Computer:5
msgid "My Computer"
-msgstr ""
+msgstr "Mój Komputer"
#. Comment
#: My_Computer:7
@@ -74,7 +76,7 @@ msgstr "Zarządzaj zadaniami drukowania"
#. Name
#: System.desktop:2
msgid "System"
-msgstr ""
+msgstr "System"
#. GenericName
#: System.desktop:4
@@ -105,7 +107,7 @@ msgstr "Podaj nazwę katalogu:"
#. Name
#: Templates/Floppy.desktop:3
msgid "Format"
-msgstr ""
+msgstr "Format"
#. Name
#: Templates/HTMLFile.desktop:2
@@ -165,7 +167,7 @@ msgstr "Urządzenie DVD-ROM..."
#. Comment
#: Templates/linkDVDROM.desktop:3
msgid "New DVD-ROM Device"
-msgstr "Nowe urządzenie DVD-ROM..."
+msgstr "Nowe urządzenie DVD-ROM"
#. Name
#: Templates/linkFloppy.desktop:2
@@ -200,12 +202,12 @@ msgstr "Nowy napęd magnetooptyczny"
#. Name
#: Templates/linkNFS.desktop:2
msgid "NFS..."
-msgstr ""
+msgstr "NFS..."
#. Comment
#: Templates/linkNFS.desktop:3
msgid "New NFS Link"
-msgstr "Nowy skrót do NFS..."
+msgstr "Nowy skrót do NFS"
#. Name
#: Templates/linkProgram.desktop:2
@@ -261,7 +263,7 @@ msgstr "Przeglądaj Internet"
#. Name
#: directory.autostart:3
msgid "Autostart"
-msgstr ""
+msgstr "Autostart"
#. Name
#: directory.desktop:5
diff --git a/translations/desktop_files/khelpcenter-desktops/it.po b/translations/desktop_files/khelpcenter-desktops/it.po
index 0bf636037..5720f7509 100644
--- a/translations/desktop_files/khelpcenter-desktops/it.po
+++ b/translations/desktop_files/khelpcenter-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-19 09:37+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-15 09:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/khelpcenter-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
#: Help.desktop:10
@@ -44,7 +45,7 @@ msgstr "Indice della guida"
#. Comment
#: kcmhelpcenter.desktop:15
msgid "Help center search index configuration and generation"
-msgstr "Configurazione e generazione dell'indice di ricerca della guida."
+msgstr "Configurazione e generazione dell'indice di ricerca della guida"
#. Keywords
#: kcmhelpcenter.desktop:17
@@ -54,7 +55,7 @@ msgstr "khelpcenter;guida;indice;ricerca;"
#. Name
#: khelpcenter.desktop:11
msgid "KHelpCenter"
-msgstr ""
+msgstr "KHelpCenter"
#. Comment
#: khelpcenter.desktop:13
@@ -104,7 +105,7 @@ msgstr "(8) Amministrazione di sistema"
#. Name
#: plugins/Manpages/man9.desktop:4
msgid "(9) Kernel"
-msgstr ""
+msgstr "(9) Kernel"
#. Name
#: plugins/Manpages/mann.desktop:4
@@ -113,9 +114,8 @@ msgstr "(n) Nuovi"
#. Name
#: plugins/adminguide.desktop:6
-#, fuzzy
msgid "TDE Admininstrator Guide"
-msgstr "Manuale degli utenti di TDE"
+msgstr "Guida per l'amministratore di TDE"
#. Name
#: plugins/applets.desktop:6
@@ -135,7 +135,7 @@ msgstr "Domande su TDE (FAQ)"
#. Name
#: plugins/hardwaremodules.desktop:6
msgid "Hardware"
-msgstr ""
+msgstr "Hardware"
#. Name
#: plugins/info.desktop:7
@@ -210,4 +210,4 @@ msgstr "Pagine manuale UNIX"
#. Name
#: plugins/Scrollkeeper/.directory:5
msgid "Scrollkeeper"
-msgstr ""
+msgstr "Scrollkeeper"
diff --git a/translations/desktop_files/khotkeys-data/cs.po b/translations/desktop_files/khotkeys-data/cs.po
index 84862647f..2260f2b03 100644
--- a/translations/desktop_files/khotkeys-data/cs.po
+++ b/translations/desktop_files/khotkeys-data/cs.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 14:20+0200\n"
-"PO-Revision-Date: 2021-01-05 21:00+0000\n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2021-12-19 18:06+0000\n"
"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
"tdebase/khotkeys-data/cs/>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.4\n"
+"X-Generator: Weblate 4.10\n"
#. Comment
#: konqueror_gestures_trinity21.khotkeys:5
@@ -56,7 +56,7 @@ msgid ""
"NOTE: Conflicts with 'New Tab', and as such is disabled by default."
msgstr ""
"Styl Opera: Stisk, posun nahoru, uvolnění.\n"
-"Poznámka: Je v konfliktu s ‚Nová karta‘ a jako takové je ve výchozím "
+"Poznámka: Je v konfliktu s „Nová karta“ a jako takové je ve výchozím "
"nastavení zakázáno."
#. Name
@@ -107,7 +107,7 @@ msgid ""
msgstr ""
"Nahoru ve struktuře URL/adresářů.\n"
"Styl Opera: Stisk, posun nahoru, posun doleva, posun nahoru, uvolnění.\n"
-"Poznámka: Je v konfliktu s ‚Aktivovat předchozí kartu‘ a jako takové je ve "
+"Poznámka: Je v konfliktu s „Aktivovat předchozí kartu“ a jako takové je ve "
"výchozím nastavení zakázáno."
#. Name
@@ -173,7 +173,7 @@ msgid ""
msgstr ""
"Stisk, posun dolů, posun do půli nahoru, posun doprava, posun dolů, "
"uvolnění.\n"
-"(Kreslení malého ‚h‘.)"
+"(Kreslení malého „h“.)"
#. Name
#: konqueror_gestures_trinity21.khotkeys:262
@@ -201,7 +201,7 @@ msgid ""
"Conflicts with Opera-style 'Up #2', which is disabled by default."
msgstr ""
"Stisk, posun nahoru, uvolnění.\n"
-"Je v konfliktu se stylem Opera ‚Nahoru č.2‘, který je ve výchozím nastavení "
+"Je v konfliktu se stylem Opera „Nahoru č.2“, který je ve výchozím nastavení "
"zakázaný."
#. Name
@@ -325,19 +325,19 @@ msgstr ""
"Obzvláště užitečné, pokud jste líní psát věci jako „nepodepsané“. Každý "
"stisk klávesy na vstupu je oddělen dvojtečkou „:“. Upozorňujeme, že stisk "
"kláves znamená skutečně stisk kláves, takže musíte na klávesnici napsat, co "
-"byste skutečně stiskli. V tabulce níže ukazuje levý sloupec vstup a pravý "
+"byste skutečně stiskli. V tabulce níže ukazuje levý sloupec vstup a pravý "
"sloupec ukazuje, co se má psát.\n"
"\n"
"„enter“ (tj. nový řádek) Enter nebo Return\n"
"a (tj. malé a) A\n"
"A (tj. velké a) Shift+A\n"
": (dvojtečka) Shift+;\n"
-"‚ ‘ (mezera) Mezerník"
+"„ “ (mezera) Mezerník"
#. Name
#: trinity2b1.khotkeys:56
msgid "Type 'Hello'"
-msgstr "Napsat ‚Hello‘"
+msgstr "Napsat „Hello“"
#. Comment
#: trinity2b1.khotkeys:79
@@ -372,21 +372,21 @@ msgid ""
msgstr ""
"Nejprve si přečtěte komentář k akci „Napsat ‚Hello‘“.\n"
"\n"
-"Qt Designer používá Ctrl+F4 k zavírání oken (možná proto, že na MS Windows "
-"se to dělá takto *pokrčit rameny*). Ale Ctrl+F4 v TDE slouží pro přepnutí na "
-"virtuální plochu 4, takže to nefunguje v Qt Designeru. Zároveň, Qt Designer "
-"nepoužívá standardní zkratku TDE Ctrl+W pro zavření okna.\n"
+"TQt Designer používá Ctrl+F4 k zavírání oken (možná proto, že na MS Windows "
+"se to dělá takto *pokrčit rameny*). Ale Ctrl+F4 v TDE slouží pro přepnutí na "
+"virtuální plochu 4, takže to nefunguje v TQt Designeru. Zároveň, TQt "
+"Designer nepoužívá standardní zkratku TDE Ctrl+W pro zavření okna.\n"
"\n"
"Problém ale lze vyřešit přemapováním Ctrl+W na Ctrl+F4, když je aktivním "
-"oknem Qt Designer. Když je Qt Designer aktivní, pokaždé, když stisknete Ctrl"
-"+W, místo toho se do Qt Designeru odešle Ctrl+F4. V jiných aplikacích bude "
-"Ctrl+W samozřejmě nadále fungovat obvyklým způsobem.\n"
+"oknem TQt Designer. Když je TQt Designer aktivní, pokaždé, když stisknete "
+"Ctrl+W, místo toho se do TQt Designeru odešle Ctrl+F4. V jiných aplikacích "
+"bude Ctrl+W samozřejmě nadále fungovat obvyklým způsobem.\n"
"\n"
-"Nyní musíme specifikovat tři věci: Nová klávesová zkratka pro ‚Ctrl+W‘, nová "
+"Nyní musíme specifikovat tři věci: Nová klávesová zkratka pro „Ctrl+W“, nová "
"akce vstupu klávesnice odesílající Ctrl+F4 a nová podmínka, že aktivním "
-"oknem je Qt Designer.\n"
-"Zdá se, že Qt Designer má vždy název ‚Qt Designer od Trolltech‘, takže "
-"podmínka bude kontrolovat aktivní okno s takovým titulem."
+"oknem je TQt Designer.\n"
+"Zdá se, že TQt Designer má vždy název „TQt Designer od Trolltech“, takže "
+"podmínka bude kontrolovat aktivní okno s takovým titulem."
#. Name
#: trinity2b1.khotkeys:105
@@ -412,7 +412,7 @@ msgstr ""
#. Name
#: trinity2b1.khotkeys:146
msgid "Perform DCOP call 'kdesktop KDesktopIface popupExecuteCommand()'"
-msgstr "Provést DCOP volání ‚kdesktop KDesktopIface popupExecuteCommand()‘"
+msgstr "Provést DCOP volání „kdesktop KDesktopIface popupExecuteCommand()“"
#. Comment
#: trinity2b1.khotkeys:171
@@ -431,15 +431,15 @@ msgid ""
msgstr ""
"Nejprve si přečtěte komentář k akci „Napsat ‚Hello‘“.\n"
"\n"
-"Stejně jako akce „Napsat ‚Hello‘“, simuluje i tato akce vstup z klávesnice. "
-"Konkrétně po stisku Ctrl+Alt+B odešle B do XMMS (B v XMMS skočí na další "
+"Stejně jako akce „Napsat ‚Hello‘“, simuluje i tato akce vstup z klávesnice. "
+"Konkrétně po stisku Ctrl+Alt+B odešle B do XMMS (B v XMMS skočí na další "
"skladbu). Je zaškrtnuta volba „Poslat vstup do / Specifické okno“ a je "
-"specifikováno okno s třídou obsahující „XMMS_Player“. To způsobí, že vstup "
+"specifikováno okno s třídou obsahující „XMMS_Player“. To způsobí, že vstup "
"bude vždy odeslán do tohoto okna. Tímto způsobem můžete ovládat XMMS, i když "
"je to například na jiné virtuální ploše.\n"
"\n"
-"(Spusťte ‚xprop‘ a klikněte na okno XMMS a vyhledejte WM_CLASS, abyste "
-"viděli ‚XMMS_Player‘)."
+"(Spusťte „xprop“ a klikněte na okno XMMS a vyhledejte WM_CLASS, abyste "
+"viděli „XMMS_Player“)."
#. Name
#: trinity2b1.khotkeys:173
diff --git a/translations/desktop_files/khotkeys-data/it.po b/translations/desktop_files/khotkeys-data/it.po
index 25ae0f22f..5c6aadcbe 100644
--- a/translations/desktop_files/khotkeys-data/it.po
+++ b/translations/desktop_files/khotkeys-data/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-19 14: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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2022-01-15 09:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/khotkeys-data/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"
#. Comment
#: konqueror_gestures_trinity21.khotkeys:5
@@ -35,9 +36,8 @@ msgstr "Finestra di Konqueror"
#: konqueror_gestures_trinity21.khotkeys:20
#: konqueror_gestures_trinity21.khotkeys:26 trinity2b1.khotkeys:226
#: trinity2b1.khotkeys:232
-#, fuzzy
msgid "Konqueror"
-msgstr "Finestra di Konqueror"
+msgstr "Konqueror"
#. Comment
#: konqueror_gestures_trinity21.khotkeys:35
@@ -180,7 +180,7 @@ msgstr ""
#. Name
#: konqueror_gestures_trinity21.khotkeys:262
msgid "Home"
-msgstr ""
+msgstr "Home"
#. Comment
#: konqueror_gestures_trinity21.khotkeys:289
@@ -260,15 +260,16 @@ msgstr "Azione_semplice"
#. Comment
#: printscreen.khotkeys:41
-#, fuzzy
msgid ""
"Launches KSnapShot in window capture mode when ALT+PrintScrn is pressed.\n"
-msgstr "Avvia KSnapShot quando viene premuto il tasto Stamp."
+msgstr ""
+"Avvia KSnapShot in modalità di acquisizione della finestra quando si preme "
+"ALT+PrintScrn.\n"
#. Name
#: printscreen.khotkeys:43
msgid "PrintWindow"
-msgstr ""
+msgstr "Cattura Finestra"
#. Comment
#: trinity2b1.khotkeys:5
@@ -292,7 +293,7 @@ msgid ""
"Simple."
msgstr ""
"Con la pressione di Ctrl+Alt+I, la finestra di KSIRC sarà attivata, se "
-"esiste. Semplice, no?"
+"esiste. Semplice."
#. Name
#: trinity2b1.khotkeys:18
@@ -307,7 +308,7 @@ msgstr "Finestra KSIRC"
#. Comment
#: trinity2b1.khotkeys:34
msgid "KSIRC"
-msgstr ""
+msgstr "KSIRC"
#. Comment
#: trinity2b1.khotkeys:54
@@ -401,7 +402,7 @@ msgstr "Rimappa Ctrl+W su Ctrl+F4 in Qt Designer"
#. Comment
#: trinity2b1.khotkeys:123
msgid "Qt Designer"
-msgstr ""
+msgstr "Qt Designer"
#. Comment
#: trinity2b1.khotkeys:144
diff --git a/translations/desktop_files/khotkeys-data/pl.po b/translations/desktop_files/khotkeys-data/pl.po
index 7400183d6..294937875 100644
--- a/translations/desktop_files/khotkeys-data/pl.po
+++ b/translations/desktop_files/khotkeys-data/pl.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Marek W <coronzon88@gmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-19 14: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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2021-10-18 20:31+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/khotkeys-data/pl/>\n"
"Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Comment
#: konqueror_gestures_trinity21.khotkeys:5
@@ -255,15 +257,16 @@ msgstr "Prosta akcja"
#. Comment
#: printscreen.khotkeys:41
-#, fuzzy
msgid ""
"Launches KSnapShot in window capture mode when ALT+PrintScrn is pressed.\n"
-msgstr "Uruchamia KSnapShot, kiedy naciśnięty jest klawisz PrintScrn."
+msgstr ""
+"Uruchamia KSnapShot w trybie przechwytywania okna po naciśnięciu klawisza ALT"
+"+PrintScrn.\n"
#. Name
#: printscreen.khotkeys:43
msgid "PrintWindow"
-msgstr ""
+msgstr "Zrzut okna"
#. Comment
#: trinity2b1.khotkeys:5
@@ -302,7 +305,7 @@ msgstr "Okno KSIRC"
#. Comment
#: trinity2b1.khotkeys:34
msgid "KSIRC"
-msgstr ""
+msgstr "KSIRC"
#. Comment
#: trinity2b1.khotkeys:54
@@ -398,7 +401,7 @@ msgstr "Podmiana Ctrl+W na Ctrl+F4 w Qt Designerze"
#. Comment
#: trinity2b1.khotkeys:123
msgid "Qt Designer"
-msgstr ""
+msgstr "Qt Designer"
#. Comment
#: trinity2b1.khotkeys:144
diff --git a/translations/desktop_files/kicker-desktops/el.po b/translations/desktop_files/kicker-desktops/el.po
index 0e7454a98..142182300 100644
--- a/translations/desktop_files/kicker-desktops/el.po
+++ b/translations/desktop_files/kicker-desktops/el.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# blu.256 <mavridisf@gmail.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-19 16:24+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-09-18 17:59+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Greek <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/kicker-desktop-files/el/>\n"
"Language: el\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.13.1\n"
#. Name
#: applets/clock/clockapplet.desktop:4
@@ -155,7 +156,7 @@ msgstr "Επέκταση γραμμής προσαρτημένων εφαρμο
#. Name
#: extensions/kasbar/kasbarextension.desktop:2
msgid "KasBar"
-msgstr ""
+msgstr "KasBar"
#. Comment
#: extensions/kasbar/kasbarextension.desktop:4
@@ -256,7 +257,7 @@ msgstr "Επέκταση θυγατρικού πίνακα."
#. Comment
#: kicker/interfaces/kickoffsearchplugin.desktop:5
msgid "A search plugin for Kickoff"
-msgstr ""
+msgstr "Ένα πρόσθετο αναζήτησης για το Kickoff"
#. Name
#: kicker/kcmkicker.desktop:10
@@ -375,7 +376,7 @@ msgstr "Μενού για το σύστημα εκτύπωσης"
#. Name
#: menuext/tom/tom.desktop:2
msgid "TOM"
-msgstr ""
+msgstr "TOM"
#. Comment
#: menuext/tom/tom.desktop:4
diff --git a/translations/desktop_files/kicker-desktops/it.po b/translations/desktop_files/kicker-desktops/it.po
index c4650f49c..654cf46a1 100644
--- a/translations/desktop_files/kicker-desktops/it.po
+++ b/translations/desktop_files/kicker-desktops/it.po
@@ -1,20 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# 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: 2020-06-19 16:24+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-16 15:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kicker-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
#: applets/clock/clockapplet.desktop:4
@@ -58,9 +60,8 @@ msgstr "Accesso diretto ai dispositivi di archiviazione"
#. Name
#: applets/menu/menuapplet.desktop:4
-#, fuzzy
msgid "Menu"
-msgstr "Menu TDE"
+msgstr "Menù"
#. Comment
#: applets/menu/menuapplet.desktop:6
@@ -155,7 +156,7 @@ msgstr "Kasbar"
#. Comment
#: extensions/kasbar/kasbarextension.desktop:4
msgid "An alternative taskbar panel applet."
-msgstr "Applet alternativa per la barra delle applicazioni"
+msgstr "Applet alternativa per la barra delle applicazioni."
#. Name
#: extensions/sidebar/sidebarextension.desktop:2
@@ -245,12 +246,12 @@ msgstr "Pannello"
#. Comment
#: kicker/core/childpanelextension.desktop:4
msgid "Child panel extension."
-msgstr "Estensione del pannello"
+msgstr "Estensione del pannello."
#. Comment
#: kicker/interfaces/kickoffsearchplugin.desktop:5
msgid "A search plugin for Kickoff"
-msgstr ""
+msgstr "Un plugin di ricerca per Kickoff"
#. Name
#: kicker/kcmkicker.desktop:10
@@ -367,7 +368,7 @@ msgstr "Menu del sistema di stampa"
#. Name
#: menuext/tom/tom.desktop:2
msgid "TOM"
-msgstr ""
+msgstr "TOM"
#. Comment
#: menuext/tom/tom.desktop:4
diff --git a/translations/desktop_files/klipper-desktops/it.po b/translations/desktop_files/klipper-desktops/it.po
index acbb35df3..260f6c027 100644
--- a/translations/desktop_files/klipper-desktops/it.po
+++ b/translations/desktop_files/klipper-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-21 14:45+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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2022-01-19 02:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/klipper-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
#: klipper.desktop:2
msgid "Klipper"
-msgstr ""
+msgstr "Klipper"
#. GenericName
#: klipper.desktop:4
diff --git a/translations/desktop_files/kmenuedit.desktop/it.po b/translations/desktop_files/kmenuedit.desktop/it.po
index ecb931c01..7f12177c4 100644
--- a/translations/desktop_files/kmenuedit.desktop/it.po
+++ b/translations/desktop_files/kmenuedit.desktop/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 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-01-20 14:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kmenuedit-kmenueditdesktop/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
#: kmenuedit.desktop:2
-#, fuzzy
msgid "KMenuEdit"
-msgstr "Editor dei menu"
+msgstr "KMenuEdit"
#. GenericName
#: kmenuedit.desktop:4
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/es.po b/translations/desktop_files/knetattach.desktop/es.po
index a8082f6db..50cf4453b 100644
--- a/translations/desktop_files/knetattach.desktop/es.po
+++ b/translations/desktop_files/knetattach.desktop/es.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Real name <sbdc1wdfzk@crossmailjet.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-08-29 21:56+0000\n"
+"Last-Translator: Real name <sbdc1wdfzk@crossmailjet.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/knetattach-knetattachdesktop/es/>\n"
"Language: es\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.13.1\n"
#. Name
#: knetattach.desktop:2
msgid "KNetAttach"
-msgstr ""
+msgstr "KNetAttach"
#. GenericName
#: knetattach.desktop:4
diff --git a/translations/desktop_files/knetattach.desktop/it.po b/translations/desktop_files/knetattach.desktop/it.po
index 62fe80c2e..e26540432 100644
--- a/translations/desktop_files/knetattach.desktop/it.po
+++ b/translations/desktop_files/knetattach.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 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-01-20 14:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/knetattach-knetattachdesktop/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
#: knetattach.desktop:2
msgid "KNetAttach"
-msgstr ""
+msgstr "KNetAttach"
#. GenericName
#: knetattach.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/konqueror-desktops/it.po b/translations/desktop_files/konqueror-desktops/it.po
index 11860e1b2..9383d351e 100644
--- a/translations/desktop_files/konqueror-desktops/it.po
+++ b/translations/desktop_files/konqueror-desktops/it.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# 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: 2020-06-29 00:09+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"
+"POT-Creation-Date: 2021-07-07 22:18+0000\n"
+"PO-Revision-Date: 2022-01-21 15:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/konqueror-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
#: Home.desktop:7
msgid "Home"
-msgstr ""
+msgstr "Home"
#. GenericName
#: Home.desktop:9
@@ -46,7 +48,7 @@ msgstr "Vista a colonne multiple"
#: kfmclient_war.desktop:9 konqbrowser.desktop:7 konqueror.desktop:6
#: konquerorsu.desktop:8
msgid "Konqueror"
-msgstr ""
+msgstr "Konqueror"
#. GenericName
#: konqbrowser.desktop:9
@@ -75,9 +77,9 @@ msgstr "Plugin lettura del testo (text-to-speech)"
#. Comment
#: kttsplugin/tdehtmlkttsd.desktop:14
-#, fuzzy
msgid "A plugin which enables texts to be read aloud on the web with KTTS"
-msgstr "Plugin per i comandi shell di Konqueror"
+msgstr ""
+"Un plugin che abilita la lettura del testo (text-to-speech) in rete con KTTS"
#. Name
#: listview/konq_detailedlistview.desktop:3
@@ -131,9 +133,8 @@ msgstr "Sviluppo TDE"
#. Name
#: profile_midnightcommander.desktop:9
-#, fuzzy
msgid "Midnight Commander"
-msgstr "Plugin per i comandi shell"
+msgstr "Midnight Commander"
#. Name
#: profile_simplebrowser.desktop:2
diff --git a/translations/desktop_files/konsole-desktops/it.po b/translations/desktop_files/konsole-desktops/it.po
index 99ec3696b..1df0bfb24 100644
--- a/translations/desktop_files/konsole-desktops/it.po
+++ b/translations/desktop_files/konsole-desktops/it.po
@@ -1,26 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# 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: 2020-06-26 02:40+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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2022-01-21 15:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/konsole-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
#: kcmkonsole.desktop:9
-#, fuzzy
msgid "Console"
-msgstr "Console Linux"
+msgstr "Console"
#. GenericName
#: kcmkonsole.desktop:11
@@ -34,9 +35,8 @@ msgstr "konsole;console;terminale;"
#. Name
#: konsole-script.desktop:9 konsole.desktop:9 konsolesu.desktop:10
-#, fuzzy
msgid "Konsole"
-msgstr "Console Linux"
+msgstr "Konsole"
#. GenericName
#: konsole-script.desktop:11 konsole.desktop:11
@@ -82,9 +82,8 @@ msgstr "Nuova console Linux"
#. Name
#: other/mc.desktop:3
-#, fuzzy
msgid "Midnight Commander"
-msgstr "Nuovo Midnight Commander"
+msgstr "Midnight Commander"
#. Comment
#: other/mc.desktop:4
@@ -105,9 +104,8 @@ msgstr "Nuova sessione di Screen"
#. Title0
#: other/shell.desktop:3 other/2shells:6 other/3shells:6 other/4shells:6
#: other/5shells:6
-#, fuzzy
msgid "Shell"
-msgstr "Nuova shell"
+msgstr "Shell"
#. Comment
#: other/shell.desktop:4
@@ -136,9 +134,8 @@ msgstr "Nuovo Midnight Commander di root"
#. Name
#: terminalhere.desktop:6
-#, fuzzy
msgid "Terminal"
-msgstr "Programma terminale"
+msgstr "Terminale"
#. Name
#: terminalhere.desktop:11
@@ -147,47 +144,40 @@ msgstr "Apri terminale qui"
#. Name
#: other/2shells:2
-#, fuzzy
msgid "Two consoles"
-msgstr "Console Linux"
+msgstr "Due Console"
#. Title1
#: other/2shells:7 other/3shells:7 other/4shells:7 other/5shells:7
-#, fuzzy
msgid "Shell No. 2"
-msgstr "Nuova shell"
+msgstr "Shell n. 2"
#. Name
#: other/3shells:2
msgid "Three consoles"
-msgstr ""
+msgstr "Tre Console"
#. Title2
#: other/3shells:8 other/4shells:8 other/5shells:8
-#, fuzzy
msgid "Shell No. 3"
-msgstr "Nuova shell"
+msgstr "Shell n. 3"
#. Name
#: other/4shells:2
-#, fuzzy
msgid "Four consoles"
-msgstr "Console Linux"
+msgstr "Quattro Console"
#. Title3
#: other/4shells:9 other/5shells:9
-#, fuzzy
msgid "Shell No. 4"
-msgstr "Nuova shell"
+msgstr "Shell n. 4"
#. Name
#: other/5shells:2
-#, fuzzy
msgid "Five consoles"
-msgstr "Console Linux"
+msgstr "Cinque Console"
#. Title4
#: other/5shells:10
-#, fuzzy
msgid "Shell No. 5"
-msgstr "Nuova shell"
+msgstr "Shell n. 5"
diff --git a/translations/desktop_files/konsole-eventsrc/it.po b/translations/desktop_files/konsole-eventsrc/it.po
index d4ed75a10..cc983f740 100644
--- a/translations/desktop_files/konsole-eventsrc/it.po
+++ b/translations/desktop_files/konsole-eventsrc/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 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-01-21 15:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/konsole-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.10.1\n"
#. Comment
#: eventsrc:3
msgid "Konsole"
-msgstr ""
+msgstr "Konsole"
#. Name
#: eventsrc:6
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/kpersonalizer.desktop/it.po b/translations/desktop_files/kpersonalizer.desktop/it.po
index 03a032544..b13bd3eee 100644
--- a/translations/desktop_files/kpersonalizer.desktop/it.po
+++ b/translations/desktop_files/kpersonalizer.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:17+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-21 15:00+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/kpersonalizer-kpersonalizerdesktop/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
#: kpersonalizer.desktop:7
msgid "KPersonalizer"
-msgstr ""
+msgstr "KPersonalizer"
#. GenericName
#: kpersonalizer.desktop:9
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-desktops/pl.po b/translations/desktop_files/ksplash-desktops/pl.po
index 1e637ad02..3cf341933 100644
--- a/translations/desktop_files/ksplash-desktops/pl.po
+++ b/translations/desktop_files/ksplash-desktops/pl.po
@@ -1,13 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# Jan Stolarek <jwstolarek@gmail.com>, 2020.
+# Marek W <coronzon88@gmail.com>, 2021.
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: 2020-08-12 23:04+0000\n"
-"Last-Translator: Jan Stolarek <jwstolarek@gmail.com>\n"
+"PO-Revision-Date: 2021-10-18 20:31+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/ksplash-desktop-files/pl/>\n"
"Language: pl\n"
@@ -16,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: kcmksplash/ksplashthememgr.desktop:12
@@ -41,7 +42,7 @@ msgstr "KSplash"
#. Name
#: themeengine/default/ksplashdefault.desktop:3
msgid "KSplashLegacy"
-msgstr ""
+msgstr "Klasyczny KSplash"
#. Comment
#: themeengine/default/ksplashdefault.desktop:4
@@ -54,14 +55,14 @@ msgstr "Wtyczka KSplash"
#. Name
#: themeengine/redmond/ksplashredmond.desktop:3
msgid "KSplashRedmond"
-msgstr ""
+msgstr "KSplash Redmond"
#. Name
#: themeengine/standard/ksplashstandard.desktop:3
msgid "KSplashStandard"
-msgstr ""
+msgstr "Standardowy KSplash"
#. Name
#: themeengine/unified/ksplashunified.desktop:3
msgid "KSplashUnified"
-msgstr ""
+msgstr "Ujednolicony KSplash"
diff --git a/translations/desktop_files/ksplash-themes/el.po b/translations/desktop_files/ksplash-themes/el.po
new file mode 100644
index 000000000..b986ce7d3
--- /dev/null
+++ b/translations/desktop_files/ksplash-themes/el.po
@@ -0,0 +1,101 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# blu.256 <mavridisf@gmail.com>, 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: 2022-09-18 17:59+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Greek <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/ksplash-themes/el/>\n"
+"Language: el\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.13.1\n"
+
+#. Name
+#: pics/themes/TDE-Classic/Theme.rc:4
+#: pics/themes/TDE-Classic/locolor/Theme.rc:4
+msgid "TDE 3.5 Splash Screen"
+msgstr "Θέμα KSplash TDE"
+
+#. Description
+#: pics/themes/TDE-Classic/Theme.rc:5
+#: pics/themes/TDE-Classic/locolor/Theme.rc:5
+msgid "Waves of change"
+msgstr "Τα κύματα της αλλαγής"
+
+#. Name
+#: pics/themes/blue-bend/Theme.rc:6
+msgid "Blue-Bend KDE Splash Theme"
+msgstr "Blue Bend KDE"
+
+#. Description
+#: pics/themes/blue-bend/Theme.rc:7
+msgid "Load Blue-Bend KDE KSplash theme."
+msgstr "Χρήση θέματος Blue Bend KDE."
+
+#. Name
+#: pics/themes/default/Theme.rc:6
+#, fuzzy
+msgid "Refresh TDE Splash Theme"
+msgstr "KSplash Ανανέωαη"
+
+#. Description
+#: pics/themes/default/Theme.rc:7
+msgid "Load Refresh TDE KSplash theme."
+msgstr "Χρήση θέματος"
+
+#. Name
+#: pics/themes/none/Theme.rc:4
+msgid "No Splash Screen"
+msgstr ""
+
+#. Description
+#: pics/themes/none/Theme.rc:5
+msgid "Splash Screen Turned Off"
+msgstr ""
+
+#. Name
+#: pics/themes/simple/Theme.rc:4
+msgid "Simple Splash Screen"
+msgstr ""
+
+#. Description
+#: pics/themes/simple/Theme.rc:5
+msgid "Very Simple Optimized Splash Screen"
+msgstr ""
+
+#. Name
+#: pics/themes/unified/Theme.rc:4
+msgid "Trinity Unified Splash Screen"
+msgstr ""
+
+#. Description
+#: pics/themes/unified/Theme.rc:5
+msgid "Unified system startup screen"
+msgstr ""
+
+#. Name
+#: themeengine/redmond/Theme.rc:2
+msgid "Redmond Splash Screen"
+msgstr ""
+
+#. Description
+#: themeengine/redmond/Theme.rc:3
+msgid "KSplash theme inspired by the Microsoft Windows startup screen."
+msgstr ""
+
+#. Name
+#: themeengine/standard/Theme.rc:2
+msgid "Standard Splash Screen"
+msgstr ""
+
+#. Description
+#: themeengine/standard/Theme.rc:3
+msgid "Standard TDE KSplash theme."
+msgstr ""
diff --git a/translations/desktop_files/ksplash-themes/es.po b/translations/desktop_files/ksplash-themes/es.po
index 72aa6e916..d1713d986 100644
--- a/translations/desktop_files/ksplash-themes/es.po
+++ b/translations/desktop_files/ksplash-themes/es.po
@@ -1,99 +1,100 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Real name <sbdc1wdfzk@crossmailjet.com>, 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: 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-08-29 21:56+0000\n"
+"Last-Translator: Real name <sbdc1wdfzk@crossmailjet.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ksplash-themes/es/>\n"
"Language: es\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.13.1\n"
#. Name
#: pics/themes/TDE-Classic/Theme.rc:4
#: pics/themes/TDE-Classic/locolor/Theme.rc:4
msgid "TDE 3.5 Splash Screen"
-msgstr ""
+msgstr "Pantalla Anunciadora de TDE 3.5"
#. Description
#: pics/themes/TDE-Classic/Theme.rc:5
#: pics/themes/TDE-Classic/locolor/Theme.rc:5
msgid "Waves of change"
-msgstr ""
+msgstr "Olas del cambio"
#. Name
#: pics/themes/blue-bend/Theme.rc:6
msgid "Blue-Bend KDE Splash Theme"
-msgstr ""
+msgstr "Tema de Anunciador KDE Azul-curvado"
#. Description
#: pics/themes/blue-bend/Theme.rc:7
msgid "Load Blue-Bend KDE KSplash theme."
-msgstr ""
+msgstr "Carga el Tema KDE Azul-curvado."
#. Name
#: pics/themes/default/Theme.rc:6
msgid "Refresh TDE Splash Theme"
-msgstr ""
+msgstr "Tema de Anunciador TDE Refrescado"
#. Description
#: pics/themes/default/Theme.rc:7
msgid "Load Refresh TDE KSplash theme."
-msgstr ""
+msgstr "Carga el tema KSplash TDE Refrescado."
#. Name
#: pics/themes/none/Theme.rc:4
msgid "No Splash Screen"
-msgstr ""
+msgstr "Sin Pantalla Anunciadora"
#. Description
#: pics/themes/none/Theme.rc:5
msgid "Splash Screen Turned Off"
-msgstr ""
+msgstr "Pantalla Anunciadora Apagada"
#. Name
#: pics/themes/simple/Theme.rc:4
msgid "Simple Splash Screen"
-msgstr ""
+msgstr "Pantalla Anunciadora Simple"
#. Description
#: pics/themes/simple/Theme.rc:5
msgid "Very Simple Optimized Splash Screen"
-msgstr ""
+msgstr "Pantalla Anunciadora Optimizada y Simple"
#. Name
#: pics/themes/unified/Theme.rc:4
msgid "Trinity Unified Splash Screen"
-msgstr ""
+msgstr "Pantalla Anunciadora Unificada de Trinity"
#. Description
#: pics/themes/unified/Theme.rc:5
msgid "Unified system startup screen"
-msgstr ""
+msgstr "Pantalla unificada de inicio del sistema"
#. Name
#: themeengine/redmond/Theme.rc:2
msgid "Redmond Splash Screen"
-msgstr ""
+msgstr "Pantalla Anunciadora de Redmond"
#. Description
#: themeengine/redmond/Theme.rc:3
msgid "KSplash theme inspired by the Microsoft Windows startup screen."
-msgstr ""
+msgstr "Tema KSplash inspirado por la pantalla de inicio de Microsoft Windows."
#. Name
#: themeengine/standard/Theme.rc:2
msgid "Standard Splash Screen"
-msgstr ""
+msgstr "Pantalla Anunciadora Estandar"
#. Description
#: themeengine/standard/Theme.rc:3
msgid "Standard TDE KSplash theme."
-msgstr ""
+msgstr "Tema KSplash Estandar de TDE."
diff --git a/translations/desktop_files/ksplash-themes/it.po b/translations/desktop_files/ksplash-themes/it.po
new file mode 100644
index 000000000..864a49a5b
--- /dev/null
+++ b/translations/desktop_files/ksplash-themes/it.po
@@ -0,0 +1,101 @@
+# 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: 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"
+"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
+#: pics/themes/TDE-Classic/Theme.rc:4
+#: pics/themes/TDE-Classic/locolor/Theme.rc:4
+msgid "TDE 3.5 Splash Screen"
+msgstr "Splash Screen TDE 3.5"
+
+#. Description
+#: pics/themes/TDE-Classic/Theme.rc:5
+#: pics/themes/TDE-Classic/locolor/Theme.rc:5
+msgid "Waves of change"
+msgstr "Onde del cambiamento"
+
+#. Name
+#: pics/themes/blue-bend/Theme.rc:6
+msgid "Blue-Bend KDE Splash Theme"
+msgstr "Tema splash KDE Curva-Blu"
+
+#. Description
+#: pics/themes/blue-bend/Theme.rc:7
+msgid "Load Blue-Bend KDE KSplash theme."
+msgstr "Carica il tema KDE KSplash Curva-Blu."
+
+#. Name
+#: pics/themes/default/Theme.rc:6
+msgid "Refresh TDE Splash Theme"
+msgstr "Ricarica il tema Splash TDE"
+
+#. Description
+#: pics/themes/default/Theme.rc:7
+msgid "Load Refresh TDE KSplash theme."
+msgstr "Carica il tema Aggiorna TDE KSplash."
+
+#. Name
+#: pics/themes/none/Theme.rc:4
+msgid "No Splash Screen"
+msgstr "Nessuna Schermata Splash"
+
+#. Description
+#: pics/themes/none/Theme.rc:5
+msgid "Splash Screen Turned Off"
+msgstr "Schermata Splash Disattivata"
+
+#. Name
+#: pics/themes/simple/Theme.rc:4
+msgid "Simple Splash Screen"
+msgstr "Schermata Splash Semplice"
+
+#. Description
+#: pics/themes/simple/Theme.rc:5
+msgid "Very Simple Optimized Splash Screen"
+msgstr "Schermata Splash Molto Semplice e Ottimizzata"
+
+#. Name
+#: pics/themes/unified/Theme.rc:4
+msgid "Trinity Unified Splash Screen"
+msgstr "Schermata Splash Trinity Unificata"
+
+#. Description
+#: pics/themes/unified/Theme.rc:5
+msgid "Unified system startup screen"
+msgstr "Schermata di avvio sistema unificata"
+
+#. Name
+#: themeengine/redmond/Theme.rc:2
+msgid "Redmond Splash Screen"
+msgstr "Schermata Splash Redmond"
+
+#. Description
+#: themeengine/redmond/Theme.rc:3
+msgid "KSplash theme inspired by the Microsoft Windows startup screen."
+msgstr "Tema KSplash ispirato alla schermata di avvio di Microsoft Windows."
+
+#. Name
+#: themeengine/standard/Theme.rc:2
+msgid "Standard Splash Screen"
+msgstr "Schermata Splash Standard"
+
+#. Description
+#: themeengine/standard/Theme.rc:3
+msgid "Standard TDE KSplash theme."
+msgstr "Tema KSplash TDE standard."
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/el.po b/translations/desktop_files/ktip.desktop/el.po
index f4af786ac..bf0aa7e11 100644
--- a/translations/desktop_files/ktip.desktop/el.po
+++ b/translations/desktop_files/ktip.desktop/el.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# blu.256 <mavridisf@gmail.com>, 2021.
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: 2021-10-10 09:30+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Greek <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/ktip-ktipdesktop/el/>\n"
"Language: el\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.8.1\n"
#. Name
#: ktip.desktop:2
msgid "KTip"
-msgstr ""
+msgstr "KTip"
#. GenericName
#: ktip.desktop:4
diff --git a/translations/desktop_files/ktip.desktop/es.po b/translations/desktop_files/ktip.desktop/es.po
index 59b640cc8..fcd687cb6 100644
--- a/translations/desktop_files/ktip.desktop/es.po
+++ b/translations/desktop_files/ktip.desktop/es.po
@@ -1,25 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Real name <sbdc1wdfzk@crossmailjet.com>, 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-08-29 21:56+0000\n"
+"Last-Translator: Real name <sbdc1wdfzk@crossmailjet.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ktip-ktipdesktop/es/>\n"
"Language: es\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.13.1\n"
#. Name
#: ktip.desktop:2
msgid "KTip"
-msgstr ""
+msgstr "KTip"
#. GenericName
#: ktip.desktop:4
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/ktip.desktop/ru.po b/translations/desktop_files/ktip.desktop/ru.po
index f3f28b50c..60549075e 100644
--- a/translations/desktop_files/ktip.desktop/ru.po
+++ b/translations/desktop_files/ktip.desktop/ru.po
@@ -1,25 +1,27 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# blu.256 <mavridisf@gmail.com>, 2021.
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: 2021-10-10 09:30+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/ktip-ktipdesktop/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.8.1\n"
#. Name
#: ktip.desktop:2
msgid "KTip"
-msgstr ""
+msgstr "KTip"
#. GenericName
#: ktip.desktop:4
diff --git a/translations/desktop_files/l10n-desktops/cs.po b/translations/desktop_files/l10n-desktops/cs.po
index 87749819d..b5365b289 100644
--- a/translations/desktop_files/l10n-desktops/cs.po
+++ b/translations/desktop_files/l10n-desktops/cs.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-16 20:22+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"
+"POT-Creation-Date: 2021-05-16 18:21+0000\n"
+"PO-Revision-Date: 2021-09-10 12:45+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/l10n-desktop-files/cs/>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: caribbean.desktop:2
@@ -119,7 +120,7 @@ msgstr "Výchozí"
#. Name
#: ad/entry.desktop:2
msgid "Andorra"
-msgstr ""
+msgstr "Andorra"
#. Name
#: ae/entry.desktop:2
@@ -129,7 +130,7 @@ msgstr "Spojené arabské emiráty"
#. Name
#: af/entry.desktop:2
msgid "Afghanistan"
-msgstr "Afghanistán"
+msgstr "Afghánistán"
#. Name
#: ag/entry.desktop:2
@@ -139,7 +140,7 @@ msgstr "Antigua a Barbuda"
#. Name
#: ai/entry.desktop:2
msgid "Anguilla"
-msgstr ""
+msgstr "Anguilla"
#. Name
#: al/entry.desktop:2
@@ -158,14 +159,13 @@ msgstr "Nizozemské Antily"
#. Name
#: ao/entry.desktop:2
-#, fuzzy
msgid "Angola"
-msgstr "Mongolsko"
+msgstr "Angola"
#. Name
#: ar/entry.desktop:2
msgid "Argentina"
-msgstr ""
+msgstr "Argentina"
#. Name
#: as/entry.desktop:2
@@ -185,7 +185,7 @@ msgstr "Austrálie"
#. Name
#: aw/entry.desktop:2
msgid "Aruba"
-msgstr ""
+msgstr "Aruba"
#. Name
#: ax/entry.desktop:2
@@ -195,17 +195,17 @@ msgstr "Ålandské ostrovy"
#. Name
#: az/entry.desktop:2
msgid "Azerbaijan"
-msgstr "Ázerbajdžánský"
+msgstr "Ázerbájdžán"
#. Name
#: ba/entry.desktop:2
msgid "Bosnia and Herzegovina"
-msgstr "Bosna a Herzegovina"
+msgstr "Bosna a Hercegovina"
#. Name
#: bb/entry.desktop:2
msgid "Barbados"
-msgstr ""
+msgstr "Barbados"
#. Name
#: bd/entry.desktop:2
@@ -220,7 +220,7 @@ msgstr "Belgie"
#. Name
#: bf/entry.desktop:2
msgid "Burkina Faso"
-msgstr ""
+msgstr "Burkina Faso"
#. Name
#: bg/entry.desktop:2
@@ -235,12 +235,12 @@ msgstr "Bahrajn"
#. 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
@@ -265,7 +265,7 @@ msgstr "Brazílie"
#. Name
#: braille/entry.desktop:2
msgid "Braille"
-msgstr ""
+msgstr "Braillovo"
#. Name
#: bs/entry.desktop:2
@@ -280,7 +280,7 @@ msgstr "Bhútán"
#. Name
#: bw/entry.desktop:2
msgid "Botswana"
-msgstr ""
+msgstr "Botswana"
#. Name
#: by/entry.desktop:3
@@ -290,7 +290,7 @@ msgstr "Bělorusko"
#. Name
#: bz/entry.desktop:2
msgid "Belize"
-msgstr ""
+msgstr "Belize"
#. Name
#: ca/entry.desktop:5
@@ -305,7 +305,7 @@ msgstr "Kokosové ostrovy (Keeling)"
#. Name
#: cd/entry.desktop:2
msgid "Congo, The Democratic Republic of the"
-msgstr "Kongo"
+msgstr "Konžská demokratická republika"
#. Name
#: cf/entry.desktop:2
@@ -335,7 +335,7 @@ msgstr "Cookovy ostrovy"
#. Name
#: cl/entry.desktop:2
msgid "Chile"
-msgstr ""
+msgstr "Chile"
#. Name
#: cm/entry.desktop:2
@@ -380,7 +380,7 @@ msgstr "Kypr"
#. Name
#: cz/entry.desktop:2
msgid "Czechia"
-msgstr "Česká republika"
+msgstr "Česko"
#. Name
#: de/entry.desktop:2
@@ -390,7 +390,7 @@ msgstr "Německo"
#. Name
#: dj/entry.desktop:2
msgid "Djibouti"
-msgstr "Džibuti"
+msgstr "Džibutsko"
#. Name
#: dk/entry.desktop:3
@@ -425,7 +425,7 @@ msgstr "Estonsko"
#. Name
#: eg/entry.desktop:2
msgid "Egypt"
-msgstr ""
+msgstr "Egypt"
#. Name
#: eh/entry.desktop:2
@@ -435,12 +435,12 @@ msgstr "Západní Sahara"
#. 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
@@ -470,7 +470,7 @@ msgstr "Falklandy (Malvíny)"
#. Name
#: fm/entry.desktop:2
msgid "Micronesia, Federated States of"
-msgstr "Mikronésie"
+msgstr "Federativní státy Mikronésie"
#. Name
#: fo/entry.desktop:2
@@ -485,7 +485,7 @@ msgstr "Francie"
#. Name
#: ga/entry.desktop:2
msgid "Gabon"
-msgstr ""
+msgstr "Gabon"
#. Name
#: gb/entry.desktop:2
@@ -494,9 +494,8 @@ msgstr "Spojené království"
#. Name
#: gd/entry.desktop:2
-#, fuzzy
msgid "Grenada"
-msgstr "Kanada"
+msgstr "Grenada"
#. Name
#: ge/entry.desktop:2
@@ -506,12 +505,12 @@ msgstr "Gruzie"
#. Name
#: gh/entry.desktop:2
msgid "Ghana"
-msgstr ""
+msgstr "Ghana"
#. Name
#: gi/entry.desktop:2
msgid "Gibraltar"
-msgstr ""
+msgstr "Gibraltar"
#. Name
#: gl/entry.desktop:2
@@ -526,12 +525,12 @@ msgstr "Gambie"
#. Name
#: gn/entry.desktop:2
msgid "Guinea"
-msgstr ""
+msgstr "Guinea"
#. Name
#: gp/entry.desktop:2
msgid "Guadeloupe"
-msgstr ""
+msgstr "Guadeloupe"
#. Name
#: gq/entry.desktop:2
@@ -546,22 +545,22 @@ msgstr "Řecko"
#. 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 (Čína)"
#. Name
#: hn/entry.desktop:2
msgid "Honduras"
-msgstr ""
+msgstr "Honduras"
#. Name
#: hr/entry.desktop:2
@@ -581,7 +580,7 @@ msgstr "Chorvatsko"
#. Name
#: ht/entry.desktop:2
msgid "Haiti"
-msgstr ""
+msgstr "Haiti"
#. Name
#: hu/entry.desktop:2
@@ -636,7 +635,7 @@ msgstr "Jamajka"
#. Name
#: jo/entry.desktop:2
msgid "Jordan"
-msgstr "Jordán"
+msgstr "Jordánsko"
#. Name
#: jp/entry.desktop:2
@@ -645,9 +644,8 @@ msgstr "Japonsko"
#. Name
#: jv/entry.desktop:2
-#, fuzzy
msgid "Indonesia (Java)"
-msgstr "Indonésie"
+msgstr "Indonésie (Jáva)"
#. Name
#: ke/entry.desktop:2
@@ -667,7 +665,7 @@ msgstr "Kambodža"
#. Name
#: ki/entry.desktop:2
msgid "Kiribati"
-msgstr ""
+msgstr "Kiribati"
#. Name
#: km/entry.desktop:2
@@ -677,7 +675,7 @@ msgstr "Komory"
#. Name
#: kn/entry.desktop:2
msgid "St. Kitts and Nevis"
-msgstr "Sv. Kitts a Nevis"
+msgstr "Svatý Kryštof a Nevis"
#. Name
#: kp/entry.desktop:2
@@ -707,7 +705,7 @@ msgstr "Kazachstán"
#. Name
#: la/entry.desktop:2
msgid "Laos"
-msgstr ""
+msgstr "Laos"
#. Name
#: lb/entry.desktop:2
@@ -737,7 +735,7 @@ msgstr "Libérie"
#. Name
#: ls/entry.desktop:2
msgid "Lesotho"
-msgstr ""
+msgstr "Lesotho"
#. Name
#: lt/entry.desktop:2
@@ -757,7 +755,7 @@ msgstr "Lotyšsko"
#. Name
#: ly/entry.desktop:2
msgid "Libya"
-msgstr "Lýbie"
+msgstr "Libye"
#. Name
#: ma/entry.desktop:2
@@ -802,12 +800,12 @@ msgstr "Makedonie"
#. Name
#: ml/entry.desktop:2
msgid "Mali"
-msgstr ""
+msgstr "Mali"
#. Name
#: mm/entry.desktop:2
msgid "Myanmar"
-msgstr ""
+msgstr "Myanmar"
#. Name
#: mn/entry.desktop:2
@@ -827,18 +825,17 @@ msgstr "Martinik"
#. Name
#: mr/entry.desktop:2
msgid "Mauritania"
-msgstr "Mauretánie"
+msgstr "Mauritánie"
#. Name
#: ms/entry.desktop:2
-#, fuzzy
msgid "Montserrat"
-msgstr "Černá hora"
+msgstr "Montserrat"
#. Name
#: mt/entry.desktop:3
msgid "Malta"
-msgstr ""
+msgstr "Malta"
#. Name
#: mu/entry.desktop:2
@@ -852,9 +849,8 @@ msgstr "Maledivy"
#. Name
#: mw/entry.desktop:2
-#, fuzzy
msgid "Malawi"
-msgstr "Malajsie"
+msgstr "Malawi"
#. Name
#: mx/entry.desktop:2
@@ -869,12 +865,12 @@ msgstr "Malajsie"
#. Name
#: mz/entry.desktop:2
msgid "Mozambique"
-msgstr "Mozambik"
+msgstr "Mosambik"
#. Name
#: na/entry.desktop:2
msgid "Namibia"
-msgstr "Namíbie"
+msgstr "Namibie"
#. Name
#: nc/entry.desktop:2
@@ -883,15 +879,13 @@ msgstr "Nová Kaledonie"
#. Name
#: ne/entry.desktop:2
-#, fuzzy
msgid "Niger"
-msgstr "Nigérie"
+msgstr "Niger"
#. Name
#: nf/entry.desktop:2
-#, fuzzy
msgid "Norfolk Island"
-msgstr "Cookovy ostrovy"
+msgstr "Norfolk"
#. Name
#: ng/entry.desktop:2
@@ -921,12 +915,12 @@ msgstr "Nepál"
#. 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
@@ -936,12 +930,12 @@ msgstr "Omán"
#. Name
#: pa/entry.desktop:2
msgid "Panama"
-msgstr ""
+msgstr "Panama"
#. Name
#: pe/entry.desktop:2
msgid "Peru"
-msgstr ""
+msgstr "Peru"
#. Name
#: pf/entry.desktop:2
@@ -951,7 +945,7 @@ msgstr "Francouzská Polynésie"
#. Name
#: pg/entry.desktop:2
msgid "Papua New Guinea"
-msgstr "Papua - Nová Guinea"
+msgstr "Papua Nová Guinea"
#. Name
#: ph/entry.desktop:2
@@ -976,7 +970,7 @@ msgstr "Saint Pierre a Miquelon"
#. Name
#: pn/entry.desktop:2
msgid "Pitcairn"
-msgstr ""
+msgstr "Pitcairn"
#. Name
#: pr/entry.desktop:2
@@ -996,13 +990,12 @@ msgstr "Portugalsko"
#. Name
#: pw/entry.desktop:2
msgid "Palau"
-msgstr ""
+msgstr "Palau"
#. Name
#: py/entry.desktop:2
-#, fuzzy
msgid "Paraguay"
-msgstr "Nikaragua"
+msgstr "Paraguay"
#. Name
#: qa/entry.desktop:2
@@ -1027,7 +1020,7 @@ msgstr "Rusko"
#. Name
#: rw/entry.desktop:2
msgid "Rwanda"
-msgstr ""
+msgstr "Rwanda"
#. Name
#: sa/entry.desktop:2
@@ -1042,12 +1035,12 @@ msgstr "Šalamounovy ostrovy"
#. Name
#: sc/entry.desktop:2
msgid "Seychelles"
-msgstr ""
+msgstr "Seychely"
#. Name
#: sd/entry.desktop:2
msgid "Sudan"
-msgstr "Sudán"
+msgstr "Súdán"
#. Name
#: se/entry.desktop:2
@@ -1077,12 +1070,12 @@ msgstr "Slovensko"
#. 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
@@ -1097,7 +1090,7 @@ msgstr "Surinam"
#. Name
#: st/entry.desktop:2
msgid "Sao Tome and Principe"
-msgstr "Sao Tome a Principe"
+msgstr "Svatý Tomáš a Princův ostrov"
#. Name
#: sv/entry.desktop:2
@@ -1111,9 +1104,8 @@ msgstr "Sýrie"
#. Name
#: sz/entry.desktop:2
-#, fuzzy
msgid "Swaziland"
-msgstr "Thajsko"
+msgstr "Svazijsko"
#. Name
#: tc/entry.desktop:2
@@ -1128,7 +1120,7 @@ msgstr "Čad"
#. Name
#: tg/entry.desktop:2
msgid "Togo"
-msgstr ""
+msgstr "Togo"
#. Name
#: th/entry.desktop:2
@@ -1143,7 +1135,7 @@ msgstr "Tádžikistán"
#. Name
#: tk/entry.desktop:2
msgid "Tokelau"
-msgstr ""
+msgstr "Tokelau"
#. Name
#: tm/entry.desktop:2
@@ -1158,7 +1150,7 @@ msgstr "Tunisko"
#. Name
#: to/entry.desktop:2
msgid "Tonga"
-msgstr ""
+msgstr "Tonga"
#. Name
#: tp/entry.desktop:2
@@ -1178,17 +1170,17 @@ msgstr "Trinidad a Tobago"
#. Name
#: tv/entry.desktop:2
msgid "Tuvalu"
-msgstr ""
+msgstr "Tuvalu"
#. Name
#: tw/entry.desktop:3
msgid "Taiwan"
-msgstr ""
+msgstr "Tchaj-wan"
#. Name
#: tz/entry.desktop:2
msgid "Tanzania, United Republic of"
-msgstr "Tanzánie"
+msgstr "Tanzanie"
#. Name
#: ua/entry.desktop:3
@@ -1198,7 +1190,7 @@ msgstr "Ukrajina"
#. Name
#: ug/entry.desktop:2
msgid "Uganda"
-msgstr ""
+msgstr "Uganda"
#. Name
#: us/entry.desktop:2
@@ -1208,7 +1200,7 @@ msgstr "Spojené státy americké"
#. Name
#: uy/entry.desktop:2
msgid "Uruguay"
-msgstr ""
+msgstr "Uruguay"
#. Name
#: uz/entry.desktop:2
@@ -1223,33 +1215,32 @@ msgstr "Vatikán"
#. Name
#: vc/entry.desktop:2
msgid "St. Vincent and the Grenadines"
-msgstr "St. Vincent a Grenadiny"
+msgstr "Svatý Vincenc a Grenadiny"
#. Name
#: ve/entry.desktop:2
msgid "Venezuela"
-msgstr ""
+msgstr "Venezuela"
#. Name
#: vg/entry.desktop:2
-#, fuzzy
msgid "Virgin Islands, British"
-msgstr "Panenské ostrovy, U.S."
+msgstr "Britské Panenské ostrovy"
#. Name
#: vi/entry.desktop:2
msgid "Virgin Islands, U.S."
-msgstr "Panenské ostrovy, U.S."
+msgstr "Americké Panenské ostrovy"
#. Name
#: vn/entry.desktop:2
msgid "Vietnam"
-msgstr "Panenské ostrovy, U.K."
+msgstr "Vietnam"
#. Name
#: vu/entry.desktop:2
msgid "Vanuatu"
-msgstr ""
+msgstr "Vanuatu"
#. Name
#: wf/entry.desktop:2
@@ -1259,7 +1250,7 @@ msgstr "Wallis a Futuna"
#. Name
#: ws/entry.desktop:3
msgid "Samoa"
-msgstr ""
+msgstr "Samoa"
#. Name
#: ye/entry.desktop:2
@@ -1279,4 +1270,4 @@ msgstr "Zambie"
#. Name
#: zw/entry.desktop:2
msgid "Zimbabwe"
-msgstr ""
+msgstr "Zimbabwe"
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/l10n-desktops/pt.po b/translations/desktop_files/l10n-desktops/pt.po
index 6245fc545..4cf00ad03 100644
--- a/translations/desktop_files/l10n-desktops/pt.po
+++ b/translations/desktop_files/l10n-desktops/pt.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-16 20:22+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: 2021-11-23 16:00+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/l10n-desktop-files/pt/>\n"
"Language: pt\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.9.1\n"
#. Name
#: caribbean.desktop:2
@@ -158,9 +159,8 @@ msgstr "Antilhas Holandesas"
#. Name
#: ao/entry.desktop:2
-#, fuzzy
msgid "Angola"
-msgstr "Mongólia"
+msgstr "Angola"
#. Name
#: ar/entry.desktop:2
@@ -314,9 +314,8 @@ msgstr "República Central Africana"
#. Name
#: cg/entry.desktop:2
-#, fuzzy
msgid "Congo"
-msgstr "Mongólia"
+msgstr ""
#. Name
#: ch/entry.desktop:2
diff --git a/translations/desktop_files/l10n-desktops/uk.po b/translations/desktop_files/l10n-desktops/uk.po
index 87caa6fb4..4c8749dd6 100644
--- a/translations/desktop_files/l10n-desktops/uk.po
+++ b/translations/desktop_files/l10n-desktops/uk.po
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Roman Savochenko <roman@oscada.org>, 2020.
+# Roman Savochenko <roman@oscada.org>, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-16 20:22+0000\n"
-"PO-Revision-Date: 2020-07-21 05:23+0000\n"
+"POT-Creation-Date: 2021-05-16 18:21+0000\n"
+"PO-Revision-Date: 2021-10-06 16:31+0000\n"
"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/l10n-desktop-files/uk/>\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.1.1\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: caribbean.desktop:2
@@ -266,7 +266,7 @@ msgstr "Бразилія"
#. Name
#: braille/entry.desktop:2
msgid "Braille"
-msgstr ""
+msgstr "Брайль"
#. Name
#: bs/entry.desktop:2
@@ -436,7 +436,7 @@ msgstr "Західна Сахара"
#. Name
#: eo/entry.desktop:2
msgid "Esperanto"
-msgstr ""
+msgstr "Есперанто"
#. Name
#: er/entry.desktop:2
@@ -645,9 +645,8 @@ msgstr "Японія"
#. Name
#: jv/entry.desktop:2
-#, fuzzy
msgid "Indonesia (Java)"
-msgstr "Індонезія"
+msgstr "Індонезія (Java)"
#. Name
#: ke/entry.desktop:2
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/tde_release_notes.desktop/pt.po b/translations/desktop_files/tde_release_notes.desktop/pt.po
index 8bfc691ad..353c6a711 100644
--- a/translations/desktop_files/tde_release_notes.desktop/pt.po
+++ b/translations/desktop_files/tde_release_notes.desktop/pt.po
@@ -1,20 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020.
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020, 2021.
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: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2021-11-27 12:59+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tde_release_notesdesktop/pt/>\n"
"Language: pt\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.9.1\n"
#. Name
#: tde_release_notes.desktop:3
msgid "tde_release_notes"
-msgstr ""
+msgstr "notas de lançamento tde"
diff --git a/translations/desktop_files/tdeintegration.desktop/cs.po b/translations/desktop_files/tdeintegration.desktop/cs.po
index 339cb82eb..304d4b999 100644
--- a/translations/desktop_files/tdeintegration.desktop/cs.po
+++ b/translations/desktop_files/tdeintegration.desktop/cs.po
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Slávek Banko <slavek.banko@axis.cz>, 2020.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-29 00:09+0200\n"
-"PO-Revision-Date: 2020-09-13 17:05+0000\n"
+"PO-Revision-Date: 2021-09-02 21:14+0000\n"
"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
"tdebase/tdeintegrationdesktop/cs/>\n"
@@ -15,12 +15,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2.2\n"
+"X-Generator: Weblate 4.8\n"
#. Name
#: kdeintegration.desktop:12
msgid "TDE Integration Module"
-msgstr "Modul pro integraci s TDE"
+msgstr "Modul pro integraci s TDE"
#. Comment
#: kdeintegration.desktop:14
diff --git a/translations/desktop_files/tdeioslave-desktops/cs.po b/translations/desktop_files/tdeioslave-desktops/cs.po
index 41d66168d..f6233a2cd 100644
--- a/translations/desktop_files/tdeioslave-desktops/cs.po
+++ b/translations/desktop_files/tdeioslave-desktops/cs.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-29 00:09+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"
+"POT-Creation-Date: 2021-07-07 22:18+0000\n"
+"PO-Revision-Date: 2021-09-05 17:59+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/tdeioslave-desktop-files/cs/>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8\n"
#. Name
#: cgi/kcmcgi/kcmcgi.desktop:9
@@ -38,14 +39,13 @@ msgstr "Démon upozorňování na domovské URL"
#. Comment
#: home/kdedmodule/homedirnotify.desktop:6
-#, fuzzy
msgid "Provides change notification for user's home folder ($HOME)"
-msgstr "Poskytuje oznamování o změnách síťových složek"
+msgstr "Poskytuje oznamování o změnách uživatelovo domovské složky ($HOME)"
#. Name
#: man/kmanpart.desktop:4
msgid "KManPart"
-msgstr ""
+msgstr "KManPart"
#. Comment
#: man/kmanpart.desktop:6
@@ -60,7 +60,8 @@ msgstr "KDED správce médií"
#. Comment
#: media/mediamanager/mediamanager.desktop:6
msgid "Keep track of media activities and allow to (un)mount (media:/)"
-msgstr "Udržuje přehled o připojených zařízeních"
+msgstr ""
+"Udržuje přehled o zařízeních a umožňuje připojování a odpojování (media:/)"
#. Name
#: media/medianotifier/medianotifier.desktop:4
@@ -80,22 +81,22 @@ msgstr "Zvukové CD"
#. Comment
#: media/mimetypes/blankbluray.desktop:6
msgid "Blank BLURAY"
-msgstr "Prázdné BLURAY"
+msgstr "Prázdný disk BLURAY"
#. Comment
#: media/mimetypes/blankcd.desktop:6
msgid "Blank CD"
-msgstr "Prázdné CD"
+msgstr "Prázdný disk CD"
#. Comment
#: media/mimetypes/blankdvd.desktop:6
msgid "Blank DVD"
-msgstr "Prázdné DVD"
+msgstr "Prázdný disk DVD"
#. Comment
#: media/mimetypes/bluray_mounted.desktop:6
msgid "Mounted BLURAY"
-msgstr "Připojené BLURAY"
+msgstr "Připojený disk BLURAY"
#. Comment
#: media/mimetypes/bluray_mounted_decrypted.desktop:7
@@ -106,7 +107,7 @@ msgstr "Připojené BLURAY"
#. Comment
#: media/mimetypes/bluray_unmounted.desktop:6
msgid "Unmounted BLURAY"
-msgstr "Odpojené BLURAY"
+msgstr "Odpojený disk BLURAY"
#. Comment
#: media/mimetypes/bluray_unmounted_decrypted.desktop:7
@@ -123,22 +124,22 @@ msgstr "Odpojené BLURAY"
#. Comment
#: media/mimetypes/blurayvideo.desktop:6
msgid "BLURAY Video Disk"
-msgstr "BLURAY video"
+msgstr "Disk BLURAY video"
#. Comment
#: media/mimetypes/camera_mounted.desktop:6
msgid "Mounted Camera"
-msgstr "Připojená kamera"
+msgstr "Připojený fotoaparát"
#. Comment
#: media/mimetypes/camera_unmounted.desktop:6
msgid "Unmounted Camera"
-msgstr "Odpojená kamera"
+msgstr "Odpojený fotoaparát"
#. Comment
#: media/mimetypes/cd-r_mounted.desktop:6
msgid "Mounted CD-R"
-msgstr "Připojená vypalovačka CD"
+msgstr "Připojený disk CD-R"
#. Comment
#: media/mimetypes/cd-r_mounted_decrypted.desktop:7
@@ -149,7 +150,7 @@ msgstr "Připojená vypalovačka CD"
#. Comment
#: media/mimetypes/cd-r_unmounted.desktop:6
msgid "Unmounted CD-R"
-msgstr "Odpojená vypalovačka CD"
+msgstr "Odpojený disk CD-R"
#. Comment
#: media/mimetypes/cd-r_unmounted_decrypted.desktop:7
@@ -166,7 +167,7 @@ msgstr "Odpojená vypalovačka CD"
#. Comment
#: media/mimetypes/cd-rw_mounted.desktop:6
msgid "Mounted CD-RW"
-msgstr "Připojená vypalovačka CD"
+msgstr "Připojený disk CD-RW"
#. Comment
#: media/mimetypes/cd-rw_mounted_decrypted.desktop:7
@@ -177,7 +178,7 @@ msgstr "Připojená vypalovačka CD"
#. Comment
#: media/mimetypes/cd-rw_unmounted.desktop:6
msgid "Unmounted CD-RW"
-msgstr "Odpojená vypalovačka CD"
+msgstr "Odpojený disk CD-RW"
#. Comment
#: media/mimetypes/cd-rw_unmounted_decrypted.desktop:7
@@ -194,7 +195,7 @@ msgstr "Odpojená vypalovačka CD"
#. Comment
#: media/mimetypes/cdrom_mounted.desktop:6
msgid "Mounted CD-ROM"
-msgstr "Připojená CDROM"
+msgstr "Připojený disk CD-ROM"
#. Comment
#: media/mimetypes/cdrom_mounted_decrypted.desktop:7
@@ -205,7 +206,7 @@ msgstr "Připojená CDROM"
#. Comment
#: media/mimetypes/cdrom_unmounted.desktop:6
msgid "Unmounted CD-ROM"
-msgstr "Odpojená CDROM"
+msgstr "Odpojený disk CD-ROM"
#. Comment
#: media/mimetypes/cdrom_unmounted_decrypted.desktop:7
@@ -222,7 +223,7 @@ msgstr "Odpojená CDROM"
#. Comment
#: media/mimetypes/dvd_mounted.desktop:6
msgid "Mounted DVD"
-msgstr "Připojené DVD"
+msgstr "Připojený disk DVD"
#. Comment
#: media/mimetypes/dvd_mounted_decrypted.desktop:7
@@ -233,7 +234,7 @@ msgstr "Připojené DVD"
#. Comment
#: media/mimetypes/dvd_unmounted.desktop:6
msgid "Unmounted DVD"
-msgstr "Odpojené DVD"
+msgstr "Odpojený disk DVD"
#. Comment
#: media/mimetypes/dvd_unmounted_decrypted.desktop:7
@@ -250,7 +251,7 @@ msgstr "Odpojené DVD"
#. Comment
#: media/mimetypes/dvdvideo.desktop:6
msgid "DVD Video Disk"
-msgstr "DVD video"
+msgstr "Disk DVD video"
#. Comment
#: media/mimetypes/floppy5_mounted.desktop:6
@@ -275,7 +276,7 @@ msgstr "Odpojená disketa"
#. Comment
#: media/mimetypes/gphoto2camera.desktop:6
msgid "Camera"
-msgstr "Kamera"
+msgstr "Fotoaparát"
#. Comment
#: media/mimetypes/hdd_mounted.desktop:6
@@ -308,17 +309,15 @@ msgstr "Odpojený oddíl pevného disku"
#. Comment
#: media/mimetypes/mycomputer.desktop:6
msgid "My Computer"
-msgstr ""
+msgstr "Počítač"
#. Comment
#: media/mimetypes/mydocuments.desktop:6
-#, fuzzy
msgid "My Documents"
-msgstr "Složka s dokumenty"
+msgstr "Dokumenty"
#. Comment
#: media/mimetypes/mynetworkplaces.desktop:6
-#, fuzzy
msgid "My Network Places"
msgstr "Vzdálená umístění"
@@ -335,7 +334,7 @@ msgstr "Odpojený zdroj NFS"
#. Comment
#: media/mimetypes/printers.desktop:6
msgid "Printers"
-msgstr ""
+msgstr "Tiskárny"
#. Comment
#: media/mimetypes/removable_mounted.desktop:6
@@ -368,17 +367,17 @@ msgstr "Odpojené výměnné médium"
#. Comment
#: media/mimetypes/smb_mounted.desktop:6
msgid "Mounted Samba (Microsoft Network) Share"
-msgstr "Připojený Samba (Microsoft Network) prostředek"
+msgstr "Připojený zdroj Samba (síť Microsoft)"
#. Comment
#: media/mimetypes/smb_unmounted.desktop:6
msgid "Unmounted Samba (Microsoft Network) Share"
-msgstr "Odpojený Samba (Microsoft Network) prostředek"
+msgstr "Odpojený zdroj Samba (síť Microsoft)"
#. Comment
#: media/mimetypes/svcd.desktop:6
msgid "Super Video CD"
-msgstr ""
+msgstr "Disk Super Video CD"
#. Comment
#. Name
@@ -388,14 +387,13 @@ msgstr "Koš"
#. Comment
#: media/mimetypes/vcd.desktop:6
-#, fuzzy
msgid "Video CD"
-msgstr "DVD video"
+msgstr "Disk Video CD"
#. Comment
#: media/mimetypes/webbrowser.desktop:6
msgid "Web Browser"
-msgstr ""
+msgstr "Prohlížeč Webu"
#. Comment
#: media/mimetypes/zip_mounted.desktop:6
@@ -415,7 +413,8 @@ msgstr "Stránka vlastností média"
#. Comment
#: media/propsdlgplugin/media_propsdlgplugin.desktop:8
msgid "Konqueror properties dialog plugin to configure mount behaviour"
-msgstr "Dialog nastavení chování připojení modulu pro Konqueror"
+msgstr ""
+"Modul dialogu vlastností v Konqueroru pro konfiguraci připojování disků"
#. Name
#: media/services/media_decrypt.desktop:6
@@ -450,7 +449,7 @@ msgstr "Úložná zařízení"
#. Comment
#: media/tdecmodule/media.desktop:12
msgid "Configure Storage Media"
-msgstr "Nastavení úložných médií"
+msgstr "Nastavení úložných zařízení"
#. Keywords
#: media/tdecmodule/media.desktop:14
@@ -475,7 +474,7 @@ msgstr "Poskytuje oznamování o změnách síťových složek"
#. Name
#: smb/smb-network.desktop:4
msgid "Samba Shares"
-msgstr "Sdílené disky Samby"
+msgstr "Sdílené zdroje Samby"
#. Comment
#: smb/x-smb-server.desktop:2
@@ -490,7 +489,7 @@ msgstr "Pracovní skupina Windows"
#. Name
#: system/entries/documents.desktop:6
msgid "Documents Folder"
-msgstr "Složka s dokumenty"
+msgstr "Složka s dokumenty"
#. Name
#: system/entries/home.desktop:6
@@ -505,7 +504,7 @@ msgstr "Vzdálená umístění"
#. Name
#: system/entries/users.desktop:6
msgid "Users Folders"
-msgstr "Složka uživatelů"
+msgstr "Složky uživatelů"
#. Name
#: system/kdedmodule/systemdirnotify.desktop:4
@@ -514,11 +513,11 @@ msgstr "Démon upozorňování na systémová URL"
#. Comment
#: system/kdedmodule/systemdirnotify.desktop:6
-#, fuzzy
msgid ""
"Provides change notification for folders monitored by the system:/ tdeio "
"plugin"
-msgstr "Poskytuje oznamování o změnách síťových složek"
+msgstr ""
+"Poskytuje oznamování o změnách složek sledovaných tdeio modulem system:/"
#. Comment
#: system/mimetypes/system_directory.desktop:6
@@ -528,7 +527,7 @@ msgstr "Systémová složka"
#. Name
#: thumbnail/cursorthumbnail.desktop:4
msgid "Cursor Files"
-msgstr "Soubory s kurzory"
+msgstr "Soubory s kurzory"
#. Name
#: thumbnail/djvuthumbnail.desktop:4
@@ -564,7 +563,7 @@ msgstr "Ovladač miniatur"
#: trash/tdefile-plugin/tdefile_trash.desktop:4
#: trash/tdefile-plugin/tdefile_trash_system.desktop:4
msgid "Trash File Info"
-msgstr "Info o koši"
+msgstr "Informace o koši"
#. Description
#: fish/fish.protocol:14
@@ -579,37 +578,69 @@ msgstr "Pomocný protokol pro NXFISH"
#. Description
#: mac/mac.protocol:9
msgid "A tdeioslave for MacOS HFS+ partitions"
-msgstr "Pomocný protokol pro diskové oddíly MacOS HFS+"
+msgstr "Pomocný modul pro diskové oddíly MacOS HFS+"
#. Description
#: sftp/sftp.protocol:15
msgid "A tdeioslave for sftp"
-msgstr "Protokol TDE pro sftp"
+msgstr "Pomocný modul pro sftp"
#. ExtraNames
#: trash/trash.protocol:25
msgid "Original Path,Deletion Date"
msgstr "Původní cesta,Datum smazání"
-#, fuzzy
+#~ msgid "Encrypted Locked BLURAY"
+#~ msgstr "Zamčený šifrovaný disk BLURAY"
+
+#~ msgid "Encrypted Unlocked BLURAY"
+#~ msgstr "Odemčený šifrovaný disk BLURAY"
+
+#~ msgid "Encrypted Locked CD-R"
+#~ msgstr "Zamčený šifrovaný disk CD-R"
+
+#~ msgid "Encrypted Unlocked CD-R"
+#~ msgstr "Odemčený šifrovaný disk CD-R"
+
+#~ msgid "Encrypted Locked CD-RW"
+#~ msgstr "Zamčený šifrovaný disk CD-RW"
+
+#~ msgid "Encrypted Unlocked CD-RW"
+#~ msgstr "Odemčený šifrovaný disk CD-RW"
+
+#~ msgid "Encrypted Locked CD-ROM"
+#~ msgstr "Zamčený šifrovaný disk CD-ROM"
+
+#~ msgid "Encrypted Unlocked CD-ROM"
+#~ msgstr "Odemčený šifrovaný disk CD-ROM"
+
+#~ msgid "Encrypted Locked DVD"
+#~ msgstr "Zamčený šifrovaný disk DVD"
+
+#~ msgid "Encrypted Unlocked DVD"
+#~ msgstr "Odemčený šifrovaný disk DVD"
+
#~ msgid "Encrypted Locked Hard Disk Volume"
-#~ msgstr "Připojený oddíl pevného disku"
+#~ msgstr "Zamčený šifrovaný oddíl pevného disku"
-#, fuzzy
#~ msgid "Encrypted Unlocked Hard Disk Volume"
-#~ msgstr "Odpojený oddíl pevného disku"
+#~ msgstr "Odemčený šifrovaný oddíl pevného disku"
-#, fuzzy
#~ msgid "Encrypted Locked Removable Medium"
-#~ msgstr "Připojené výměnné médium"
+#~ msgstr "Zamčené šifrované výměnné médium"
-#, fuzzy
#~ msgid "Encrypted Unlocked Removable Medium"
-#~ msgstr "Odpojené výměnné médium"
+#~ msgstr "Odemčené šifrované výměnné médium"
+
+#~ msgid "Lock"
+#~ msgstr "Uzamknout"
#~ msgid "Open Medium System Folder"
#~ msgstr "Otevřít systémovou složku média"
+#~ msgid "Unlock"
+#~ msgstr "Odemknout"
+
#~ msgid "Trash Properties"
#~ msgstr "Vlastnosti koše"
diff --git a/translations/desktop_files/tdeioslave-desktops/it.po b/translations/desktop_files/tdeioslave-desktops/it.po
index 6237fc465..9a076dac9 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: 2020-06-29 00:09+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"
+"POT-Creation-Date: 2021-07-07 22:18+0000\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,14 @@ 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
@@ -310,19 +311,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
@@ -337,7 +336,7 @@ msgstr "Risorsa NFS non montata"
#. Comment
#: media/mimetypes/printers.desktop:6
msgid "Printers"
-msgstr ""
+msgstr "Stampanti"
#. Comment
#: media/mimetypes/removable_mounted.desktop:6
@@ -390,14 +389,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
@@ -516,11 +514,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
@@ -635,9 +634,15 @@ msgstr "Percorso originale,ora di eliminazione"
#~ msgid "Encrypted Unlocked Removable Medium"
#~ msgstr "Disco rimovibile criptato sprotetto"
+#~ msgid "Lock"
+#~ msgstr "Blocca"
+
#~ msgid "Open Medium System Folder"
#~ msgstr "Apri cartella del disco"
+#~ msgid "Unlock"
+#~ msgstr "Sblocca"
+
#~ msgid "Trash Properties"
#~ msgstr "Proprietà del cestino"
diff --git a/translations/desktop_files/tdeprint-desktops/it.po b/translations/desktop_files/tdeprint-desktops/it.po
index 3fe63ba07..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: 2020-06-25 19:39+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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\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 ab9363078..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: 2020-06-25 19:39+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"
+"POT-Creation-Date: 2021-07-07 18:17+0000\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/tdescreensaver-desktops/cs.po b/translations/desktop_files/tdescreensaver-desktops/cs.po
index 61961b208..6c95af523 100644
--- a/translations/desktop_files/tdescreensaver-desktops/cs.po
+++ b/translations/desktop_files/tdescreensaver-desktops/cs.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-25 20:36+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: 2021-09-07 01:16+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/tdescreensaver-desktop-files/cs/>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8\n"
#. Name
#: KBlankscreen.desktop:8
@@ -24,12 +25,12 @@ msgstr "Prázdná obrazovka"
#. Name
#: KBlankscreen.desktop:12 KRandom.desktop:12
msgid "Setup..."
-msgstr "Nastavení..."
+msgstr "Nastavení…"
#. Name
#: KBlankscreen.desktop:17 KRandom.desktop:17
msgid "Display in Specified Window"
-msgstr "Zobrazit v určeném okně"
+msgstr "Zobrazit v určeném okně"
#. Name
#: KBlankscreen.desktop:22 KRandom.desktop:22
diff --git a/translations/desktop_files/tdm-sessions/cs.po b/translations/desktop_files/tdm-sessions/cs.po
index 8c2c58d82..bb808ef22 100644
--- a/translations/desktop_files/tdm-sessions/cs.po
+++ b/translations/desktop_files/tdm-sessions/cs.po
@@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# Slávek Banko <slavek.banko@axis.cz>, 2020.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
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: 2020-10-09 08:13+0000\n"
+"PO-Revision-Date: 2021-09-07 01:16+0000\n"
"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
"tdebase/tdm-sessions/cs/>\n"
@@ -15,27 +15,26 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2.2\n"
+"X-Generator: Weblate 4.8\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 ""
-"GNOME, GNU Network Object Model Environment. Kompletní, svobodné a "
-"uživatelsky přívětivé garfické prostředí."
+"Trinity Desktop Environment. Výkonné open source grafické prostředí pro "
+"pracovní plochu"
#. Name
#: 9wm.desktop:6
msgid "9WM"
-msgstr ""
+msgstr "9WM"
#. Comment
#: 9wm.desktop:8
@@ -45,17 +44,17 @@ msgstr "Emulace Plane 9 správce oken 8-1/2"
#. Name
#: admin.desktop:7
msgid "admin"
-msgstr ""
+msgstr "admin"
#. Comment
#: admin.desktop:9
msgid "Yast Admin Session"
-msgstr ""
+msgstr "Sezení správy Yast"
#. Name
#: aewm++.desktop:6
msgid "AEWM++"
-msgstr ""
+msgstr "AEWM++"
#. Comment
#: aewm++.desktop:8
@@ -69,7 +68,7 @@ msgstr ""
#. Name
#: aewm.desktop:6
msgid "AEWM"
-msgstr ""
+msgstr "AEWM"
#. Comment
#: aewm.desktop:8
@@ -79,7 +78,7 @@ msgstr "Minimalistický správce oken"
#. Name
#: afterstep.desktop:6
msgid "AfterStep"
-msgstr ""
+msgstr "AfterStep"
#. Comment
#: afterstep.desktop:8
@@ -89,17 +88,17 @@ msgstr "Správce oken podobný NeXTStepu založený na FVWM"
#. Name
#: amaterus.desktop:6
msgid "AMATERUS"
-msgstr ""
+msgstr "AMATERUS"
#. Comment
#: amaterus.desktop:8
msgid "A GTK+ based window manager with a window grouping feature"
-msgstr "Správce oken založený na GTK+ s funkcí seskupování okne"
+msgstr "Správce oken založený na GTK+ s funkcí seskupování oken"
#. Name
#: amiwm.desktop:6
msgid "AmiWM"
-msgstr ""
+msgstr "AmiWM"
#. Comment
#: amiwm.desktop:8
@@ -109,7 +108,7 @@ msgstr "Správce oken podobný Amize"
#. Name
#: asclassic.desktop:6
msgid "ASClassic"
-msgstr ""
+msgstr "ASClassic"
#. Comment
#: asclassic.desktop:8
@@ -119,7 +118,7 @@ msgstr "AfterStep Classic, správce oken založený na AfterStepu v1.1"
#. Name
#: blackbox.desktop:6
msgid "Blackbox"
-msgstr ""
+msgstr "Blackbox"
#. Comment
#: blackbox.desktop:8
@@ -129,34 +128,31 @@ msgstr "Rychlý a malý správce oken"
#. Name
#: cde.desktop:6
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Comment
#: cde.desktop:8
-#, fuzzy
msgid ""
"The Common Desktop Environment, a proprietary industry standard desktop "
"environment"
msgstr ""
-"Svobodné grafické prostředí neobsahující cholesterol verze 4. Prostředí "
-"připomínající CDE"
+"Common Desktop Environment, proprietární průmyslový standard prostředí pro "
+"pracovní plochu"
#. Name
#: ctwm.desktop:6
msgid "CTWM"
-msgstr ""
+msgstr "CTWM"
#. Comment
#: ctwm.desktop:8
-#, fuzzy
msgid "Claude's Tab Window Manager, TWM enhanced by virtual screens, etc."
-msgstr ""
-"The Virtual Tab Window Manager. TWM vylepšené o virtuální obrazovky aj."
+msgstr "Správce oken Claude's Tab, TWM vylepšené o virtuální obrazovky aj."
#. Name
#: cwwm.desktop:6
msgid "CWWM"
-msgstr ""
+msgstr "CWWM"
#. Comment
#: cwwm.desktop:8
@@ -166,17 +162,17 @@ msgstr "ChezWam, minimalistický správce oken založený na EvilWM"
#. Name
#: enlightenment.desktop:6
msgid "Enlightenment"
-msgstr ""
+msgstr "Enlightenment"
#. Comment
#: enlightenment.desktop:8
msgid "An extremely themable very feature-rich window manager"
-msgstr "Na funkce bohatý správce oken s širokou škálou témat"
+msgstr "Na funkce bohatý správce oken s širokou škálou motivů"
#. Name
#: evilwm.desktop:6
msgid "EvilWM"
-msgstr ""
+msgstr "EvilWM"
#. Comment
#: evilwm.desktop:8
@@ -186,43 +182,45 @@ msgstr "Minimalistický správce oken založený na AEWM"
#. Name
#: fluxbox.desktop:6
msgid "Fluxbox"
-msgstr ""
+msgstr "Fluxbox"
#. Comment
#: fluxbox.desktop:8
msgid "A highly configurable and low resource window manager based on Blackbox"
msgstr ""
-"Vysoce přizpůsobitelný a nízkoúrovňový správce oken založený na Blackboxu"
+"Vysoce přizpůsobitelný a málo náročný na zdroje správce oken založený na "
+"Blackboxu"
#. Name
#: flwm.desktop:6
msgid "FLWM"
-msgstr ""
+msgstr "FLWM"
#. Comment
#: flwm.desktop:8
msgid "The Fast Light Window Manager, based primarily on WM2"
-msgstr "Fast Light Window Manager založený původně na WM2"
+msgstr "Správce oken Fast Light založený především na WM2"
#. Name
#: fvwm.desktop:6
msgid "FVWM"
-msgstr ""
+msgstr "FVWM"
#. Comment
#: fvwm.desktop:8 fvwm2.desktop:8
msgid "A powerful ICCCM-compliant multiple virtual desktop window manager"
msgstr ""
+"Výkonný správce oken kompatibilní s ICCCM s podporou více virtuálních ploch"
#. Name
#: fvwm2.desktop:6
msgid "FVWM2"
-msgstr ""
+msgstr "FVWM2"
#. Name
#: fvwm95.desktop:6
msgid "FVWM95"
-msgstr ""
+msgstr "FVWM95"
#. Comment
#: fvwm95.desktop:8
@@ -232,7 +230,7 @@ msgstr "Správce oken se vzhledem Windows 95 odvozený od FVWM"
#. Name
#: gnome.desktop:6
msgid "GNOME"
-msgstr ""
+msgstr "GNOME"
#. Comment
#: gnome.desktop:8
@@ -241,12 +239,12 @@ msgid ""
"desktop environment"
msgstr ""
"GNOME, GNU Network Object Model Environment. Kompletní, svobodné a "
-"uživatelsky přívětivé garfické prostředí."
+"uživatelsky přívětivé grafické prostředí"
#. Name
#: golem.desktop:6
msgid "Golem"
-msgstr ""
+msgstr "Golem"
#. Comment
#: golem.desktop:8
@@ -256,7 +254,7 @@ msgstr "Malý správce oken"
#. Name
#: icewm.desktop:6
msgid "IceWM"
-msgstr ""
+msgstr "IceWM"
#. Comment
#: icewm.desktop:8
@@ -266,49 +264,48 @@ msgstr "Správce oken podobný Windows 95-OS/2-Motif"
#. Name
#: ion.desktop:6
msgid "Ion"
-msgstr ""
+msgstr "Ion"
#. Comment
#: ion.desktop:8
-#, fuzzy
msgid "A keyboard-friendly window manager with tiled windows, based on PWM"
-msgstr "Správce oken podobný NeXTStepu založený na FVWM"
+msgstr ""
+"Dlaždicový správce oken přívětivý pro ovládání z klávesnice, založený na PWM"
#. Name
#: kde-plasma-safe.desktop:7
msgid "KDE Plasma Workspace (failsafe session)"
-msgstr "Pracovní plocha plasma (bezpečné sezení)"
+msgstr "Pracovní prostředí KDE plasma (nouzové sezení)"
#. Comment
#: kde-plasma-safe.desktop:9
msgid "The desktop made by KDE (failsafe session)"
-msgstr "Prostředí od KDE (bezpečné sezení)"
+msgstr "Prostředí pracovní plochy od KDE (nouzové sezení)"
#. Name
#: kde-plasma.desktop:7
msgid "KDE Plasma Workspace"
-msgstr "Pracovní plocha Plasma"
+msgstr "Pracovní prostředí KDE Plasma"
#. Comment
#: kde-plasma.desktop:9
msgid "The desktop made by KDE"
-msgstr "Prostředí od KDE"
+msgstr "Prostředí pracovní plochy od KDE"
#. Name
#: larswm.desktop:6
msgid "LarsWM"
-msgstr ""
+msgstr "LarsWM"
#. Comment
#: larswm.desktop:8
-#, fuzzy
msgid "The Lars Window Manager, based on 9WM, supports tiled windows"
-msgstr "Fast Light Window Manager založený původně na WM2"
+msgstr "Správce oken Lars, založený na 9WM, podporující dlaždice"
#. Name
#: lwm.desktop:6
msgid "LWM"
-msgstr ""
+msgstr "LWM"
#. Comment
#: lwm.desktop:8
@@ -319,7 +316,7 @@ msgstr ""
#. Name
#: matchbox.desktop:6
msgid "Matchbox"
-msgstr ""
+msgstr "Matchbox"
#. Comment
#: matchbox.desktop:8
@@ -329,7 +326,7 @@ msgstr "Správce oken pro PDA"
#. Name
#: metacity.desktop:6
msgid "Metacity"
-msgstr ""
+msgstr "Metacity"
#. Comment
#: metacity.desktop:8
@@ -339,41 +336,40 @@ msgstr "Malý správce oken založený na GTK2"
#. Name
#: mwm.desktop:6
msgid "MWM"
-msgstr ""
+msgstr "MWM"
#. Comment
#: mwm.desktop:8
msgid "The Motif Window Manager"
-msgstr "Motif Window Manager"
+msgstr "Správce oken Motif"
#. Name
#: olvwm.desktop:6
msgid "OLVWM"
-msgstr ""
+msgstr "OLVWM"
#. Comment
#: olvwm.desktop:8
-#, fuzzy
msgid ""
"The OpenLook Virtual Window Manager. OLWM enhanced for handling of virtual "
"desktops"
msgstr ""
-"The Virtual Tab Window Manager. TWM vylepšené o virtuální obrazovky aj."
+"Správce oken OpenLook Virtual. OLWM rozšířený o podporu virtuálních ploch"
#. Name
#: olwm.desktop:6
msgid "OLWM"
-msgstr ""
+msgstr "OLWM"
#. Comment
#: olwm.desktop:8
msgid "The traditional Open Look Window Manager"
-msgstr "Tradiční Open Look Window Manager"
+msgstr "Tradiční správce oken Open Look"
#. Name
#: openbox.desktop:6
msgid "Openbox"
-msgstr ""
+msgstr "Openbox"
#. Comment
#: openbox.desktop:8
@@ -383,17 +379,17 @@ msgstr "Malý správce oken založený na Blackboxu"
#. Name
#: oroborus.desktop:6
msgid "Oroborus"
-msgstr ""
+msgstr "Oroborus"
#. Comment
#: oroborus.desktop:8
msgid "A lightweight themeable window manager"
-msgstr "Malý správce oken s tématy"
+msgstr "Malý správce oken s motivy"
#. Name
#: phluid.desktop:6
msgid "Phluid"
-msgstr ""
+msgstr "Phluid"
#. Comment
#: phluid.desktop:8
@@ -403,19 +399,18 @@ msgstr "Správce oken založený na Imlib2"
#. Name
#: pwm.desktop:6
msgid "PWM"
-msgstr ""
+msgstr "PWM"
#. Comment
#: pwm.desktop:8
-#, fuzzy
msgid ""
"A lightweight window manager able to attach multiple windows to one frame"
-msgstr "Malý správce oken založený na Blackboxu"
+msgstr "Malý správce oken schopný připojit více oken do jednoho rámu"
#. Name
#: qvwm.desktop:6
msgid "QVWM"
-msgstr ""
+msgstr "QVWM"
#. Comment
#: qvwm.desktop:8
@@ -425,17 +420,19 @@ msgstr "Správce oken se vzhledem Windows 95"
#. Name
#: ratpoison.desktop:6
msgid "Ratpoison"
-msgstr ""
+msgstr "Ratpoison"
#. Comment
#: ratpoison.desktop:8
msgid "A simple keyboard-only window manager modeled after Screen"
msgstr ""
+"Jednoduchý správce oken s ovládáním výhradně klávesnicí navrženým podle "
+"Screen"
#. Name
#: sapphire.desktop:6
msgid "Sapphire"
-msgstr ""
+msgstr "Sapphire"
#. Comment
#: sapphire.desktop:8
@@ -445,51 +442,49 @@ msgstr "Minimalistický, ale přizpůsobitelný správce oken"
#. Name
#: sawfish.desktop:6
msgid "Sawfish"
-msgstr ""
+msgstr "Sawfish"
#. Comment
#: sawfish.desktop:8
msgid ""
"An extensible window manager scriptable with an Emacs Lisp-like language"
msgstr ""
-"Rožšiřitelný správce oken skriptovatelný jazykem podobným jazyku Emacs Lisp"
+"Rozšiřitelný správce oken skriptovatelný jazykem podobným jazyku Emacs Lisp"
#. Name
#: twm.desktop:6
msgid "TWM"
-msgstr ""
+msgstr "TWM"
#. Comment
#: twm.desktop:8
-#, fuzzy
msgid "The Tab Window Manager"
-msgstr "Motif Window Manager"
+msgstr "Tab Window Manager"
#. Name
#: ude.desktop:6
msgid "UDE"
-msgstr ""
+msgstr "UDE"
#. Comment
#: ude.desktop:8
msgid "The UNIX Desktop Environment"
-msgstr ""
+msgstr "UNIX Desktop Environment"
#. Name
#: vtwm.desktop:6
msgid "VTWM"
-msgstr ""
+msgstr "VTWM"
#. Comment
#: vtwm.desktop:8
msgid "The Virtual Tab Window Manager. TWM enhanced by virtual screens, etc."
-msgstr ""
-"The Virtual Tab Window Manager. TWM vylepšené o virtuální obrazovky aj."
+msgstr "Virtual Tab Window Manager. TWM vylepšené o virtuální obrazovky aj."
#. Name
#: w9wm.desktop:6
msgid "W9WM"
-msgstr ""
+msgstr "W9WM"
#. Comment
#: w9wm.desktop:8
@@ -502,7 +497,7 @@ msgstr ""
#. Name
#: waimea.desktop:6
msgid "Waimea"
-msgstr ""
+msgstr "Waimea"
#. Comment
#: waimea.desktop:8
@@ -512,7 +507,7 @@ msgstr "Vysoce přizpůsobitelný správce oken založený na Blackboxu"
#. Name
#: wm2.desktop:6
msgid "WM2"
-msgstr ""
+msgstr "WM2"
#. Comment
#: wm2.desktop:8
@@ -522,17 +517,17 @@ msgstr "Malý nepřizpůsobitelný správce oken"
#. Name
#: wmaker.desktop:6
msgid "WindowMaker"
-msgstr ""
+msgstr "WindowMaker"
#. Comment
#: wmaker.desktop:8
msgid "A simple window manager that resembles the NeXTStep look very closely"
-msgstr "Jendoduchý správce oken, který se velmi podobá NeXTStep"
+msgstr "Jednoduchý správce oken, který se velmi podobá NeXTStep"
#. Name
#: xfce.desktop:6
msgid "XFce"
-msgstr ""
+msgstr "XFce"
#. Comment
#: xfce.desktop:8
@@ -546,7 +541,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/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/pl.po b/translations/desktop_files/tdm-sessions/pl.po
index 8c1a8c821..3dd34dd52 100644
--- a/translations/desktop_files/tdm-sessions/pl.po
+++ b/translations/desktop_files/tdm-sessions/pl.po
@@ -1,13 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# Jan Stolarek <jwstolarek@gmail.com>, 2020.
+# Marek W <coronzon88@gmail.com>, 2021.
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: 2020-08-12 23:04+0000\n"
-"Last-Translator: Jan Stolarek <jwstolarek@gmail.com>\n"
+"PO-Revision-Date: 2021-10-18 20:31+0000\n"
+"Last-Translator: Marek W <coronzon88@gmail.com>\n"
"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
"projects/tdebase/tdm-sessions/pl/>\n"
"Language: pl\n"
@@ -16,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1.1\n"
+"X-Generator: Weblate 4.8.1\n"
#. Name
#: tde.desktop.cmake:7
@@ -28,12 +29,12 @@ msgstr "TDE"
msgid ""
"The Trinity Desktop Environment. A powerful Open Source graphical desktop "
"environment"
-msgstr "Środowisko TDE. Potężne środowisko graficzne Wolnego Oprogramowania."
+msgstr "Środowisko TDE. Potężne środowisko graficzne Wolnego Oprogramowania"
#. Name
#: 9wm.desktop:6
msgid "9WM"
-msgstr ""
+msgstr "9WM"
#. Comment
#: 9wm.desktop:8
@@ -43,17 +44,17 @@ msgstr "Emulacja menedżera okien Plan 9 - 8-1/2"
#. Name
#: admin.desktop:7
msgid "admin"
-msgstr ""
+msgstr "admin"
#. Comment
#: admin.desktop:9
msgid "Yast Admin Session"
-msgstr ""
+msgstr "Sesja administracyjna Yast"
#. 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 "Prosty menedżer okien"
#. Name
#: afterstep.desktop:6
msgid "AfterStep"
-msgstr ""
+msgstr "AfterStep"
#. Comment
#: afterstep.desktop:8
@@ -87,7 +88,7 @@ msgstr "Menedżer okien naśladujący NeXTStep, stworzony na podstawie FVWM"
#. Name
#: amaterus.desktop:6
msgid "AMATERUS"
-msgstr ""
+msgstr "AMATERUS"
#. Comment
#: amaterus.desktop:8
@@ -97,7 +98,7 @@ msgstr "Menedżer okien korzystający z GTK+, z opcją grupowania okien"
#. Name
#: amiwm.desktop:6
msgid "AmiWM"
-msgstr ""
+msgstr "AmiWM"
#. Comment
#: amiwm.desktop:8
@@ -107,7 +108,7 @@ msgstr "Menedżer okien naśladujący Amigę"
#. Name
#: asclassic.desktop:6
msgid "ASClassic"
-msgstr ""
+msgstr "ASClassic"
#. Comment
#: asclassic.desktop:8
@@ -118,7 +119,7 @@ msgstr ""
#. Name
#: blackbox.desktop:6
msgid "Blackbox"
-msgstr ""
+msgstr "Blackbox"
#. Comment
#: blackbox.desktop:8
@@ -128,7 +129,7 @@ msgstr "Szybki menedżer okien o małych wymaganiach"
#. Name
#: cde.desktop:6
msgid "CDE"
-msgstr ""
+msgstr "CDE"
#. Comment
#: cde.desktop:8
@@ -140,7 +141,7 @@ msgstr "Common Desktop Environment, standardowe przemysłowe środowisko pulpitu
#. Name
#: ctwm.desktop:6
msgid "CTWM"
-msgstr ""
+msgstr "CTWM"
#. Comment
#: ctwm.desktop:8
@@ -150,7 +151,7 @@ msgstr "Menedżer okien Claude, TWM wzbogacony o wirtualne pulpity, itp."
#. Name
#: cwwm.desktop:6
msgid "CWWM"
-msgstr ""
+msgstr "CWWM"
#. Comment
#: cwwm.desktop:8
@@ -161,7 +162,7 @@ msgstr ""
#. Name
#: enlightenment.desktop:6
msgid "Enlightenment"
-msgstr ""
+msgstr "Enlightenment"
#. Comment
#: enlightenment.desktop:8
@@ -171,7 +172,7 @@ msgstr "Bogaty w funkcje menedżer okien o dużych możliwościach zmiany wyglą
#. Name
#: evilwm.desktop:6
msgid "EvilWM"
-msgstr ""
+msgstr "EvilWM"
#. Comment
#: evilwm.desktop:8
@@ -181,7 +182,7 @@ msgstr "Prosty menedżer okien stworzony na podstawie AEWM"
#. Name
#: fluxbox.desktop:6
msgid "Fluxbox"
-msgstr ""
+msgstr "Fluxbox"
#. Comment
#: fluxbox.desktop:8
@@ -193,7 +194,7 @@ msgstr ""
#. Name
#: flwm.desktop:6
msgid "FLWM"
-msgstr ""
+msgstr "FLWM"
#. Comment
#: flwm.desktop:8
@@ -204,7 +205,7 @@ msgstr ""
#. Name
#: fvwm.desktop:6
msgid "FVWM"
-msgstr ""
+msgstr "FVWM"
#. Comment
#: fvwm.desktop:8 fvwm2.desktop:8
@@ -214,12 +215,12 @@ msgstr "Potężny menedżer okien zgodny z ICCCM obsługujący wirtualne pulpity
#. Name
#: fvwm2.desktop:6
msgid "FVWM2"
-msgstr ""
+msgstr "FVWM2"
#. Name
#: fvwm95.desktop:6
msgid "FVWM95"
-msgstr ""
+msgstr "FVWM95"
#. Comment
#: fvwm95.desktop:8
@@ -229,7 +230,7 @@ msgstr "Wywodzący się z FVWM menedżer okien o wyglądzie podobnym do Windows
#. Name
#: gnome.desktop:6
msgid "GNOME"
-msgstr ""
+msgstr "GNOME"
#. Comment
#: gnome.desktop:8
@@ -243,7 +244,7 @@ msgstr ""
#. Name
#: golem.desktop:6
msgid "Golem"
-msgstr ""
+msgstr "Golem"
#. Comment
#: golem.desktop:8
@@ -253,7 +254,7 @@ msgstr "Menedżer okien o małych wymaganiach"
#. Name
#: icewm.desktop:6
msgid "IceWM"
-msgstr ""
+msgstr "IceWM"
#. Comment
#: icewm.desktop:8
@@ -263,7 +264,7 @@ msgstr "Menedżer okien podobny do Windows 95-OS/2-Motif"
#. Name
#: ion.desktop:6
msgid "Ion"
-msgstr ""
+msgstr "Ion"
#. Comment
#: ion.desktop:8
@@ -295,7 +296,7 @@ msgstr "Pulpit stworzony przez KDE"
#. Name
#: larswm.desktop:6
msgid "LarsWM"
-msgstr ""
+msgstr "LarsWM"
#. Comment
#: larswm.desktop:8
@@ -307,7 +308,7 @@ msgstr ""
#. Name
#: lwm.desktop:6
msgid "LWM"
-msgstr ""
+msgstr "LWM"
#. Comment
#: lwm.desktop:8
@@ -319,7 +320,7 @@ msgstr ""
#. Name
#: matchbox.desktop:6
msgid "Matchbox"
-msgstr ""
+msgstr "Matchbox"
#. Comment
#: matchbox.desktop:8
@@ -329,7 +330,7 @@ msgstr "Menedżer okien dla palmtopów"
#. Name
#: metacity.desktop:6
msgid "Metacity"
-msgstr ""
+msgstr "Metacity"
#. Comment
#: metacity.desktop:8
@@ -339,7 +340,7 @@ msgstr "Menedżer okien o małych wymaganiach, oparty na GTK2"
#. Name
#: mwm.desktop:6
msgid "MWM"
-msgstr ""
+msgstr "MWM"
#. Comment
#: mwm.desktop:8
@@ -349,7 +350,7 @@ msgstr "Menedżer okien Motif"
#. Name
#: olvwm.desktop:6
msgid "OLVWM"
-msgstr ""
+msgstr "OLVWM"
#. Comment
#: olvwm.desktop:8
@@ -363,7 +364,7 @@ msgstr ""
#. Name
#: olwm.desktop:6
msgid "OLWM"
-msgstr ""
+msgstr "OLWM"
#. Comment
#: olwm.desktop:8
@@ -373,7 +374,7 @@ msgstr "Tradycyjny menedżer okien Open Look"
#. Name
#: openbox.desktop:6
msgid "Openbox"
-msgstr ""
+msgstr "Openbox"
#. Comment
#: openbox.desktop:8
@@ -383,7 +384,7 @@ msgstr "Menedżer okien o małych wymaganiach, oparty na Blackbox"
#. Name
#: oroborus.desktop:6
msgid "Oroborus"
-msgstr ""
+msgstr "Oroborus"
#. Comment
#: oroborus.desktop:8
@@ -393,7 +394,7 @@ msgstr "Menedżer okien o małych wymaganiach, z możliwością zmiany wyglądu"
#. Name
#: phluid.desktop:6
msgid "Phluid"
-msgstr ""
+msgstr "Phluid"
#. Comment
#: phluid.desktop:8
@@ -403,7 +404,7 @@ msgstr "Menedżer okien oparty na Imlib2"
#. Name
#: pwm.desktop:6
msgid "PWM"
-msgstr ""
+msgstr "PWM"
#. Comment
#: pwm.desktop:8
@@ -416,7 +417,7 @@ msgstr ""
#. Name
#: qvwm.desktop:6
msgid "QVWM"
-msgstr ""
+msgstr "PVWM"
#. Comment
#: qvwm.desktop:8
@@ -426,7 +427,7 @@ msgstr "Menedżer okien o wyglądzie podobnym do Windows 95"
#. Name
#: ratpoison.desktop:6
msgid "Ratpoison"
-msgstr ""
+msgstr "Ratpoison"
#. Comment
#: ratpoison.desktop:8
@@ -438,7 +439,7 @@ msgstr ""
#. Name
#: sapphire.desktop:6
msgid "Sapphire"
-msgstr ""
+msgstr "Sapphire"
#. Comment
#: sapphire.desktop:8
@@ -448,7 +449,7 @@ msgstr "Prosty menedżer okien, ale z możliwością konfiguracji"
#. Name
#: sawfish.desktop:6
msgid "Sawfish"
-msgstr ""
+msgstr "Sawfish"
#. Comment
#: sawfish.desktop:8
@@ -461,7 +462,7 @@ msgstr ""
#. Name
#: twm.desktop:6
msgid "TWM"
-msgstr ""
+msgstr "TWM"
#. Comment
#: twm.desktop:8
@@ -471,7 +472,7 @@ msgstr "Tab Window Manager"
#. Name
#: ude.desktop:6
msgid "UDE"
-msgstr ""
+msgstr "UDE"
#. Comment
#: ude.desktop:8
@@ -481,7 +482,7 @@ msgstr "Środowisko pulpitu Uniksa"
#. Name
#: vtwm.desktop:6
msgid "VTWM"
-msgstr ""
+msgstr "VTWM"
#. Comment
#: vtwm.desktop:8
@@ -491,7 +492,7 @@ msgstr "Virtual Tab Window Manager. TWM wzbogacony o wirtualne pulpity itp."
#. Name
#: w9wm.desktop:6
msgid "W9WM"
-msgstr ""
+msgstr "W9WM"
#. Comment
#: w9wm.desktop:8
@@ -505,7 +506,7 @@ msgstr ""
#. Name
#: waimea.desktop:6
msgid "Waimea"
-msgstr ""
+msgstr "Waimea"
#. Comment
#: waimea.desktop:8
@@ -515,7 +516,7 @@ msgstr "Menedżer okien oparty na Blackbox z dużymi możliwościami dostosowani
#. Name
#: wm2.desktop:6
msgid "WM2"
-msgstr ""
+msgstr "WM2"
#. Comment
#: wm2.desktop:8
@@ -524,9 +525,8 @@ msgstr "Mały menedżer okien nie podlegający konfiguracji"
#. Name
#: wmaker.desktop:6
-#, fuzzy
msgid "WindowMaker"
-msgstr "Tab Window Manager"
+msgstr "WindowMaker"
#. Comment
#: wmaker.desktop:8
@@ -536,7 +536,7 @@ msgstr "Prosty menedżer okien przypominający bardzo wyglądem NeXTStep"
#. Name
#: xfce.desktop:6
msgid "XFce"
-msgstr ""
+msgstr "Xfce"
#. Comment
#: xfce.desktop:8
@@ -548,7 +548,7 @@ msgstr "Środowisko pulpitu przypominające CDE"
#. Name
#: xfce4.desktop:6
msgid "XFce 4"
-msgstr ""
+msgstr "Xfce 4"
#. Comment
#: xfce4.desktop:8
@@ -557,4 +557,4 @@ msgid ""
"reminiscent of CDE"
msgstr ""
"Cholesterol Free Desktop Environment, wersja 4 - środowisko graficzne "
-"podobne do CDE."
+"podobne do CDE"
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/es.po b/translations/desktop_files/tdm-themes/es.po
index 32dc52186..6a46754c3 100644
--- a/translations/desktop_files/tdm-themes/es.po
+++ b/translations/desktop_files/tdm-themes/es.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Victor Galvez <cassdee_058@protonmail.com>, 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: 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-20 14:00+0000\n"
+"Last-Translator: Victor Galvez <cassdee_058@protonmail.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdm-themes/es/>\n"
"Language: es\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
#: circles/GdmGreeterTheme.desktop:7
@@ -29,12 +30,12 @@ msgstr "Tema con círculos azules"
#. Name
#: minimalist/GdmGreeterTheme.desktop:8
msgid "Minimalist"
-msgstr ""
+msgstr "Minimalista"
#. Description
#: minimalist/GdmGreeterTheme.desktop:10
msgid "A minimalist TDM theme for TDE, inspired by LightDM"
-msgstr ""
+msgstr "Un tema minimalista para TDM, inspirado por LightDM"
#. Name
#: o2_enterprise/GdmGreeterTheme.desktop:8
@@ -44,4 +45,4 @@ msgstr ""
#. Description
#: o2_enterprise/GdmGreeterTheme.desktop:10
msgid "A sleek and professional looking TDM theme for Trinity"
-msgstr ""
+msgstr "Un tema de apariencia impecable y profesional para TDM"
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/tdm-themes/pt.po b/translations/desktop_files/tdm-themes/pt.po
index 09b192f25..64ec88732 100644
--- a/translations/desktop_files/tdm-themes/pt.po
+++ b/translations/desktop_files/tdm-themes/pt.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
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: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2021-12-02 19:00+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdebase/tdm-themes/pt/>\n"
"Language: pt\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.9.1\n"
#. Name
#: circles/GdmGreeterTheme.desktop:7
@@ -29,19 +30,19 @@ msgstr "Tema com círculos azuis"
#. Name
#: minimalist/GdmGreeterTheme.desktop:8
msgid "Minimalist"
-msgstr ""
+msgstr "Minimalista"
#. Description
#: minimalist/GdmGreeterTheme.desktop:10
msgid "A minimalist TDM theme for TDE, inspired by LightDM"
-msgstr ""
+msgstr "Um tema minimalista do TDM para TDE, inspirado no LightDM"
#. Name
#: o2_enterprise/GdmGreeterTheme.desktop:8
msgid "O2 Enterprise"
-msgstr ""
+msgstr "O2 Empresarial"
#. Description
#: o2_enterprise/GdmGreeterTheme.desktop:10
msgid "A sleek and professional looking TDM theme for Trinity"
-msgstr ""
+msgstr "Um tema elegante e de aspecto profissional do TDM para o Trinity"
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..91f111df2 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,31 @@ 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
diff --git a/translations/desktop_files/wallpapers-desktops/cs.po b/translations/desktop_files/wallpapers-desktops/cs.po
index 35f481636..386a3682a 100644
--- a/translations/desktop_files/wallpapers-desktops/cs.po
+++ b/translations/desktop_files/wallpapers-desktops/cs.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-22 19:13+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: 2021-09-07 01:16+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdebase/wallpapers-desktop-files/cs/>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8\n"
#. Name
#: All-Good-People-1.jpg.desktop:3
@@ -49,7 +50,7 @@ msgstr "Výchozí pro Trinity"
#. Name
#: Trinity4.png.desktop:3
msgid "Trinity Default (old)"
-msgstr "Výchozí pro Trinity (old)"
+msgstr "Výchozí pro Trinity (staré)"
#. Name
#: Won-Ton-Soup-3.jpg.desktop:3
@@ -59,17 +60,17 @@ msgstr "Písmenková polívka"
#. Name
#: aghi.jpg.desktop:3
msgid "Aghi"
-msgstr "Aghi"
+msgstr "Jehličí"
#. Name
#: airplane.jpg.desktop:3
msgid "Airplane"
-msgstr "Airplane"
+msgstr "Letadlo"
#. Name
#: alta-badia.jpg.desktop:3
msgid "Alta Badia"
-msgstr ""
+msgstr "Alta Badia"
#. Name
#: andes-venezolanos.svgz.desktop:3
@@ -79,7 +80,7 @@ msgstr "Venezuelské Andy"
#. Name
#: another-view.jpg.desktop:3
msgid "Another View"
-msgstr "Another View"
+msgstr "Další pohled"
#. Name
#: aurora.svgz.desktop:3
@@ -119,28 +120,27 @@ msgstr "Ozubený glóbus"
#. Name
#: green_curtain.jpg.desktop:3
msgid "Green Curtain"
-msgstr ""
+msgstr "Zelený závěs"
#. Name
#: here-gear.svgz.desktop:3
-#, fuzzy
msgid "We Are Gear"
-msgstr "Tři soukolí"
+msgstr "Jsme vybavení"
#. Name
#: horse-head-nebula.png.desktop:3
msgid "Horse Head Nebula"
-msgstr ""
+msgstr "Mlhovina Koňská hlava"
#. Name
#: isadora.png.desktop:3
msgid "Isadora"
-msgstr ""
+msgstr "Isadora"
#. Name
#: konqui.svgz.desktop:3
msgid "Konqui"
-msgstr ""
+msgstr "Dráček Konqui"
#. Name
#: lineart.svgz.desktop:3
@@ -170,12 +170,12 @@ msgstr "Měkce zelená"
#. Name
#: stelvio.jpg.desktop:3
msgid "Stelvio"
-msgstr ""
+msgstr "Průsmyk Stelvio"
#. Name
#: stripes.jpg.desktop:3
msgid "Stripes"
-msgstr ""
+msgstr "Pruhy"
#. Name
#: sunshine-after-the-rain.jpg.desktop:3
@@ -190,4 +190,4 @@ msgstr "Tři soukolí"
#. Name
#: world-desktop.jpg.desktop:3
msgid "World Desktop"
-msgstr ""
+msgstr "Plocha světa"
diff --git a/twin/clients/plastik/config/configdialog.ui b/twin/clients/plastik/config/configdialog.ui
index f751d8024..505d91b06 100644
--- a/twin/clients/plastik/config/configdialog.ui
+++ b/twin/clients/plastik/config/configdialog.ui
@@ -66,9 +66,6 @@
<property name="text">
<string>Colored window border</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="whatsThis" stdset="0">
<string>Check this option if the window border should be painted in the titlebar color. Otherwise it will be painted in the background color.</string>
</property>
diff --git a/twin/compton-tde/compton.c b/twin/compton-tde/compton.c
index 0c1b056ee..603402fc6 100644
--- a/twin/compton-tde/compton.c
+++ b/twin/compton-tde/compton.c
@@ -3250,7 +3250,7 @@ win_determine_greyscale_background(session_t *ps, win *w) {
if (IsViewable != w->a.map_state)
return;
- bool greyscale_background_new = (determine_window_transparency_filter_greyscale(ps, &w->id) ||
+ bool greyscale_background_new = (determine_window_transparency_filter_greyscale(ps, w->id) ||
(ps->o.greyscale_background && !win_match(ps, w, ps->o.greyscale_background_blacklist, &w->cache_bbblst)));
win_set_greyscale_background(ps, w, greyscale_background_new);
diff --git a/twin/kcmtwin/twinoptions/mouse.cpp b/twin/kcmtwin/twinoptions/mouse.cpp
index 8778d915e..51a3b8a9f 100644
--- a/twin/kcmtwin/twinoptions/mouse.cpp
+++ b/twin/kcmtwin/twinoptions/mouse.cpp
@@ -18,7 +18,7 @@
*/
#include <tqlabel.h>
-#include <tqcombobox.h>
+#include <tqcheckbox.h>
#include <tqwhatsthis.h>
#include <tqlayout.h>
#include <tqvgroupbox.h>
@@ -178,23 +178,28 @@ KTitleBarActionsConfig::KTitleBarActionsConfig (bool _standAlone, TDEConfig *_co
hlayoutW->addWidget(label);
txtButton4 = i18n("Handle mouse wheel events");
TQWhatsThis::add( label, txtButton4);
-
- // Titlebar and frame mouse Wheel
+
+ // Titlebar and frame mouse Wheel
TQComboBox* comboW = new TQComboBox(this);
comboW->insertItem(i18n("Raise/Lower"));
comboW->insertItem(i18n("Shade/Unshade"));
comboW->insertItem(i18n("Maximize/Restore"));
- comboW->insertItem(i18n("Keep Above/Below"));
- comboW->insertItem(i18n("Move to Previous/Next Desktop"));
- comboW->insertItem(i18n("Change Opacity"));
- comboW->insertItem(i18n("Nothing"));
+ comboW->insertItem(i18n("Keep Above/Below"));
+ comboW->insertItem(i18n("Move to Previous/Next Desktop"));
+ comboW->insertItem(i18n("Change Opacity"));
+ comboW->insertItem(i18n("Nothing"));
comboW->setSizePolicy(TQSizePolicy(TQSizePolicy::MinimumExpanding, TQSizePolicy::Fixed));
connect(comboW, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
hlayoutW->addWidget(comboW);
- coTiAct4 = comboW;
+ coTiW = comboW;
TQWhatsThis::add(comboW, txtButton4);
label->setBuddy(comboW);
-
+
+ cbTiRevW = new TQCheckBox(i18n("Reverse wheel direction"), this);
+ connect(cbTiRevW, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ TQWhatsThis::add( cbTiRevW, i18n("Use this to reverse the action of the mouse wheel.") );
+ hlayoutW->addWidget(cbTiRevW);
+
/** Titlebar and frame **************/
box = new TQVGroupBox( i18n("Titlebar && Frame"), this, "Titlebar and Frame");
@@ -491,8 +496,8 @@ void KTitleBarActionsConfig::setComboText( TQComboBox* combo, const char*txt )
combo->setCurrentItem( tbl_txt_lookup( tbl_TiAc, txt ));
else if( combo == coTiInAct1 || combo == coTiInAct2 || combo == coTiInAct3 )
combo->setCurrentItem( tbl_txt_lookup( tbl_TiInAc, txt ));
- else if( combo == coTiAct4 )
- combo->setCurrentItem( tbl_txt_lookup( tbl_TiWAc, txt ));
+ else if( combo == coTiW )
+ combo->setCurrentItem( tbl_txt_lookup( tbl_TiWAc, txt ));
else if( combo == coMax[0] || combo == coMax[1] || combo == coMax[2] )
{
combo->setCurrentItem( tbl_txt_lookup( tbl_Max, txt ));
@@ -538,10 +543,11 @@ void KTitleBarActionsConfig::load()
setComboText(coTiAct1,config->readEntry("CommandActiveTitlebar1","Raise").ascii());
setComboText(coTiAct2,config->readEntry("CommandActiveTitlebar2","Lower").ascii());
setComboText(coTiAct3,config->readEntry("CommandActiveTitlebar3","Operations menu").ascii());
- setComboText(coTiAct4,config->readEntry("CommandTitlebarWheel","Nothing").ascii());
setComboText(coTiInAct1,config->readEntry("CommandInactiveTitlebar1","Activate and raise").ascii());
setComboText(coTiInAct2,config->readEntry("CommandInactiveTitlebar2","Activate and lower").ascii());
setComboText(coTiInAct3,config->readEntry("CommandInactiveTitlebar3","Operations menu").ascii());
+ setComboText(coTiW,config->readEntry("CommandTitlebarWheel","Nothing").ascii());
+ cbTiRevW->setChecked(config->readBoolEntry("CommandTitlebarReverseWheel", false));
}
void KTitleBarActionsConfig::save()
@@ -556,10 +562,11 @@ void KTitleBarActionsConfig::save()
config->writeEntry("CommandActiveTitlebar2", functionTiAc(coTiAct2->currentItem()));
config->writeEntry("CommandActiveTitlebar3", functionTiAc(coTiAct3->currentItem()));
config->writeEntry("CommandInactiveTitlebar1", functionTiInAc(coTiInAct1->currentItem()));
- config->writeEntry("CommandTitlebarWheel", functionTiWAc(coTiAct4->currentItem()));
config->writeEntry("CommandInactiveTitlebar2", functionTiInAc(coTiInAct2->currentItem()));
config->writeEntry("CommandInactiveTitlebar3", functionTiInAc(coTiInAct3->currentItem()));
-
+ config->writeEntry("CommandTitlebarWheel", functionTiWAc(coTiW->currentItem()));
+ config->writeEntry("CommandTitlebarReverseWheel", cbTiRevW->isChecked());
+
if (standAlone)
{
config->sync();
@@ -575,10 +582,11 @@ void KTitleBarActionsConfig::defaults()
setComboText(coTiAct1,"Raise");
setComboText(coTiAct2,"Lower");
setComboText(coTiAct3,"Operations menu");
- setComboText(coTiAct4,"Nothing");
setComboText(coTiInAct1,"Activate and raise");
setComboText(coTiInAct2,"Activate and lower");
setComboText(coTiInAct3,"Operations menu");
+ setComboText(coTiW,"Nothing");
+ cbTiRevW->setChecked(false);
for (int t = 0; t < 3; ++t)
setComboText(coMax[t], tbl_Max[t]);
}
@@ -676,7 +684,7 @@ KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config
TQWhatsThis::add( box, i18n("Here you can customize TDE's behavior when clicking somewhere into"
" a window while pressing a modifier key."));
- grid = new TQGrid(5, Qt::Vertical, box);
+ grid = new TQGrid(6, Qt::Vertical, box);
// Labels
label = new TQLabel(i18n("Modifier key:"), grid);
@@ -716,6 +724,8 @@ KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config
" in a window while pressing the modifier key.");
TQWhatsThis::add( label, strAllW);
+ label = new TQLabel("", grid); // Dummy label to keep grid in order
+
// Combo's
combo = new TQComboBox(grid);
combo->insertItem(i18n("Meta"));
@@ -756,14 +766,18 @@ KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config
combo->insertItem(i18n("Raise/Lower"));
combo->insertItem(i18n("Shade/Unshade"));
combo->insertItem(i18n("Maximize/Restore"));
- combo->insertItem(i18n("Keep Above/Below"));
- combo->insertItem(i18n("Move to Previous/Next Desktop"));
- combo->insertItem(i18n("Change Opacity"));
- combo->insertItem(i18n("Nothing"));
+ combo->insertItem(i18n("Keep Above/Below"));
+ combo->insertItem(i18n("Move to Previous/Next Desktop"));
+ combo->insertItem(i18n("Change Opacity"));
+ combo->insertItem(i18n("Nothing"));
connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
coAllW = combo;
TQWhatsThis::add( combo, strAllW );
+ cbAllRevW = new TQCheckBox(i18n("Reverse wheel direction"), grid);
+ connect(cbAllRevW, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ TQWhatsThis::add( cbAllRevW, i18n("Use this to reverse the action of the mouse wheel.") );
+
layout->addStretch();
load();
@@ -784,7 +798,7 @@ void KWindowActionsConfig::setComboText( TQComboBox* combo, const char*txt )
else if( combo == coAll1 || combo == coAll2 || combo == coAll3 )
combo->setCurrentItem( tbl_txt_lookup( tbl_All, txt ));
else if( combo == coAllW )
- combo->setCurrentItem( tbl_txt_lookup( tbl_AllW, txt ));
+ combo->setCurrentItem( tbl_txt_lookup( tbl_AllW, txt ));
else
abort();
}
@@ -820,6 +834,7 @@ void KWindowActionsConfig::load()
setComboText(coAll2,config->readEntry("CommandAll2","Toggle raise and lower").ascii());
setComboText(coAll3,config->readEntry("CommandAll3","Resize").ascii());
setComboText(coAllW,config->readEntry("CommandAllWheel","Nothing").ascii());
+ cbAllRevW->setChecked(config->readBoolEntry("CommandAllReverseWheel", false));
}
void KWindowActionsConfig::save()
@@ -833,7 +848,8 @@ void KWindowActionsConfig::save()
config->writeEntry("CommandAll2", functionAll(coAll2->currentItem()));
config->writeEntry("CommandAll3", functionAll(coAll3->currentItem()));
config->writeEntry("CommandAllWheel", functionAllW(coAllW->currentItem()));
-
+ config->writeEntry("CommandAllReverseWheel", cbAllRevW->isChecked());
+
if (standAlone)
{
config->sync();
@@ -853,4 +869,5 @@ void KWindowActionsConfig::defaults()
setComboText(coAll2,"Toggle raise and lower");
setComboText(coAll3,"Resize");
setComboText(coAllW,"Nothing");
+ cbAllRevW->setChecked(false);
}
diff --git a/twin/kcmtwin/twinoptions/mouse.h b/twin/kcmtwin/twinoptions/mouse.h
index 772bc5ac9..5dd3b8402 100644
--- a/twin/kcmtwin/twinoptions/mouse.h
+++ b/twin/kcmtwin/twinoptions/mouse.h
@@ -22,6 +22,7 @@
#ifndef __KKWMMOUSECONFIG_H__
#define __KKWMMOUSECONFIG_H__
+class TQCheckBox;
class TDEConfig;
#include <tqwidget.h>
@@ -33,7 +34,7 @@ class TDEConfig;
class ToolTipComboBox: public TQComboBox
{
Q_OBJECT
-
+
public:
ToolTipComboBox(TQWidget * owner, char const * const * toolTips_)
: TQComboBox(owner)
@@ -62,18 +63,18 @@ public:
void defaults();
public slots:
- void changed() { emit TDECModule::changed(true); }
+ void changed() { emit TDECModule::changed(true); }
private:
TQComboBox* coTiDbl;
-
TQComboBox* coTiAct1;
TQComboBox* coTiAct2;
TQComboBox* coTiAct3;
- TQComboBox* coTiAct4;
TQComboBox* coTiInAct1;
TQComboBox* coTiInAct2;
TQComboBox* coTiInAct3;
+ TQComboBox* coTiW;
+ TQCheckBox* cbTiRevW;
ToolTipComboBox * coMax[3];
@@ -82,7 +83,7 @@ private:
const char* functionTiDbl(int);
const char* functionTiAc(int);
- const char* functionTiWAc(int);
+ const char* functionTiWAc(int);
const char* functionTiInAc(int);
const char* functionMax(int);
@@ -108,7 +109,7 @@ public:
void defaults();
public slots:
- void changed() { emit TDECModule::changed(true); }
+ void changed() { emit TDECModule::changed(true); }
private:
TQComboBox* coWin1;
@@ -120,6 +121,7 @@ private:
TQComboBox* coAll2;
TQComboBox* coAll3;
TQComboBox* coAllW;
+ TQCheckBox* cbAllRevW;
TDEConfig *config;
bool standAlone;
diff --git a/twin/kcmtwin/twinrules/ruleslistbase.ui b/twin/kcmtwin/twinrules/ruleslistbase.ui
index f079dcda3..c3baa9a3d 100644
--- a/twin/kcmtwin/twinrules/ruleslistbase.ui
+++ b/twin/kcmtwin/twinrules/ruleslistbase.ui
@@ -47,9 +47,6 @@
<property name="text">
<string>Delete</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<widget class="KPushButton" row="3" column="1">
<property name="name">
diff --git a/twin/kcmtwin/twinrules/ruleswidgetbase.ui b/twin/kcmtwin/twinrules/ruleswidgetbase.ui
index 21486c4be..dd175e533 100644
--- a/twin/kcmtwin/twinrules/ruleswidgetbase.ui
+++ b/twin/kcmtwin/twinrules/ruleswidgetbase.ui
@@ -216,9 +216,6 @@
<property name="text">
<string>Edit</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<spacer row="4" column="3" rowspan="1" colspan="2">
<property name="name">
@@ -487,9 +484,6 @@
<property name="text">
<string>Edit</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<spacer row="4" column="3">
<property name="name">
@@ -560,9 +554,6 @@
<property name="text">
<string>Edit</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<spacer row="7" column="3">
<property name="name">
@@ -633,9 +624,6 @@
<property name="text">
<string>Edit</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<spacer row="10" column="3">
<property name="name">
@@ -1869,9 +1857,6 @@
<property name="text">
<string>Shortcut</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<widget class="KComboBox" row="9" column="1">
<item>
@@ -2292,9 +2277,6 @@
<property name="text">
<string>Strictly obey geometry</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<widget class="KComboBox" row="6" column="1">
<item>
@@ -2348,9 +2330,6 @@
<property name="text">
<string>Block global shortcuts</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<widget class="KComboBox" row="7" column="1">
<item>
@@ -2546,8 +2525,6 @@
<include location="global" impldecl="in implementation">klineedit.h</include>
<include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">krestrictedline.h</include>
+ <include location="global" impldecl="in implementation">tdelistbox.h</include>
</includes>
-<includehints>
- <includehint>tdelistbox.h</includehint>
-</includehints>
</UI>
diff --git a/twin/options.cpp b/twin/options.cpp
index 0bb127e11..ce35f6d06 100644
--- a/twin/options.cpp
+++ b/twin/options.cpp
@@ -71,12 +71,12 @@ unsigned long Options::updateSettings()
altTabStyle = KDE; // what a default :-)
if ( val == "CDE" )
altTabStyle = CDE;
-
+
separateScreenFocus = config->readBoolEntry( "SeparateScreenFocus", false );
activeMouseScreen = config->readBoolEntry( "ActiveMouseScreen", focusPolicy != ClickToFocus );
rollOverDesktops = config->readBoolEntry("RollOverDesktops", TRUE);
-
+
// focusStealingPreventionLevel = config->readNumEntry( "FocusStealingPreventionLevel", 2 );
// TODO use low level for now
focusStealingPreventionLevel = config->readNumEntry( "FocusStealingPreventionLevel", 1 );
@@ -101,14 +101,14 @@ unsigned long Options::updateSettings()
animateMinimize = config->readBoolEntry("AnimateMinimize", TRUE );
animateMinimizeSpeed = config->readNumEntry("AnimateMinimizeSpeed", 5 );
- if( focusPolicy == ClickToFocus )
+ if( focusPolicy == ClickToFocus )
{
autoRaise = false;
autoRaiseInterval = 0;
delayFocus = false;
delayFocusInterval = 0;
}
- else
+ else
{
autoRaise = config->readBoolEntry("AutoRaise", FALSE );
autoRaiseInterval = config->readNumEntry("AutoRaiseInterval", 0 );
@@ -159,6 +159,7 @@ unsigned long Options::updateSettings()
CmdInactiveTitlebar2 = mouseCommand(config->readEntry("CommandInactiveTitlebar2","Activate and lower"), true );
CmdInactiveTitlebar3 = mouseCommand(config->readEntry("CommandInactiveTitlebar3","Operations menu"), true );
CmdTitlebarWheel = mouseWheelCommand(config->readEntry("CommandTitlebarWheel","Nothing"));
+ CmdTitlebarRevWheel = config->readBoolEntry("CommandTitlebarReverseWheel", false);
CmdWindow1 = mouseCommand(config->readEntry("CommandWindow1","Activate, raise and pass click"), false );
CmdWindow2 = mouseCommand(config->readEntry("CommandWindow2","Activate and pass click"), false );
CmdWindow3 = mouseCommand(config->readEntry("CommandWindow3","Activate and pass click"), false );
@@ -167,6 +168,7 @@ unsigned long Options::updateSettings()
CmdAll2 = mouseCommand(config->readEntry("CommandAll2","Toggle raise and lower"), false );
CmdAll3 = mouseCommand(config->readEntry("CommandAll3","Resize"), false );
CmdAllWheel = mouseWheelCommand(config->readEntry("CommandAllWheel","Nothing"));
+ CmdAllRevWheel = config->readBoolEntry("CommandAllReverseWheel", false);
//translucency settings
config->setGroup( "Notification Messages" );
@@ -193,7 +195,7 @@ unsigned long Options::updateSettings()
resetKompmgr = config->readBoolEntry("ResetKompmgr", false);
if (resetKompmgr)
config->writeEntry("ResetKompmgr",FALSE);
-
+
// window drop shadows
config->setGroup("Style");
shadow_colour = config->readColorEntry("ShadowColour", &TQt::black);
@@ -213,7 +215,7 @@ unsigned long Options::updateSettings()
shadow_x_offset = config->readNumEntry("ShadowXOffset", 0);
shadow_y_offset = config->readNumEntry("ShadowYOffset", 10);
-
+
// Read button tooltip animation effect from kdeglobals
// Since we want to allow users to enable window decoration tooltips
// and not tdestyle tooltips and vise-versa, we don't read the
@@ -227,7 +229,7 @@ unsigned long Options::updateSettings()
desktop_topmenu = kdesktopcfg.readBoolEntry( "ShowMenubar", false );
if( desktop_topmenu )
topmenus = true;
-
+
TQToolTip::setGloballyEnabled( d->show_tooltips );
return changed;
@@ -386,8 +388,12 @@ bool Options::checkIgnoreFocusStealing( const Client* c )
return ignoreFocusStealingClasses.contains(TQString::fromLatin1(c->resourceClass()));
}
-Options::MouseCommand Options::wheelToMouseCommand( MouseWheelCommand com, int delta )
+Options::MouseCommand Options::wheelToMouseCommand( MouseWheelCommand com, int delta, bool revDir )
+ {
+ if (revDir)
{
+ delta = -delta;
+ }
switch( com )
{
case MouseWheelRaiseLower:
diff --git a/twin/options.h b/twin/options.h
index 2c5341f81..113e6b9e6 100644
--- a/twin/options.h
+++ b/twin/options.h
@@ -25,7 +25,7 @@ namespace KWinInternal
class Client;
-class Options : public KDecorationOptions
+class Options : public KDecorationOptions
{
public:
@@ -124,7 +124,7 @@ class Options : public KDecorationOptions
*/
enum AltTabStyle { KDE, CDE };
AltTabStyle altTabStyle;
-
+
// whether to see Xinerama screens separately for focus (in Alt+Tab, when activating next client)
bool separateScreenFocus;
// whether active Xinerama screen is the one with mouse (or with the active window)
@@ -138,7 +138,7 @@ class Options : public KDecorationOptions
bool xineramaMovementEnabled;
bool xineramaMaximizeEnabled;
bool xineramaFullscreenEnabled;
-
+
// number, or -1 = active screen (Workspace::activeScreen())
int xineramaPlacementScreen;
@@ -149,13 +149,13 @@ class Options : public KDecorationOptions
MoveResizeMode resizeMode;
MoveResizeMode moveMode;
-
+
static MoveResizeMode stringToMoveResizeMode( const TQString& s );
static const char* moveResizeModeToString( MoveResizeMode mode );
Placement::Policy placement;
- bool focusPolicyIsReasonable()
+ bool focusPolicyIsReasonable()
{
return focusPolicy == ClickToFocus || focusPolicy == FocusFollowsMouse;
}
@@ -190,7 +190,7 @@ class Options : public KDecorationOptions
* Animation speed (0 .. 10 )
*/
int animateMinimizeSpeed;
-
+
bool showDesktopIsMinimizeAll;
/**
@@ -205,12 +205,12 @@ class Options : public KDecorationOptions
* List of window classes to ignore PPosition size hint
*/
TQStringList ignorePositionClasses;
-
+
bool checkIgnoreFocusStealing( const Client* c );
WindowOperation operationTitlebarDblClick() { return OpTitlebarDblClick; }
- enum MouseCommand
+ enum MouseCommand
{
MouseRaise, MouseLower, MouseOperationsMenu, MouseToggleRaiseAndLower,
MouseActivateAndRaise, MouseActivateAndLower, MouseActivate,
@@ -225,7 +225,7 @@ class Options : public KDecorationOptions
MouseOpacityMore, MouseOpacityLess,
MouseNothing
};
-
+
enum MouseWheelCommand
{
MouseWheelRaiseLower, MouseWheelShadeUnshade, MouseWheelMaximizeRestore,
@@ -236,11 +236,11 @@ class Options : public KDecorationOptions
MouseCommand operationTitlebarMouseWheel( int delta )
{
- return wheelToMouseCommand( CmdTitlebarWheel, delta );
+ return wheelToMouseCommand( CmdTitlebarWheel, delta, CmdTitlebarRevWheel );
}
MouseCommand operationWindowMouseWheel( int delta )
{
- return wheelToMouseCommand( CmdAllWheel, delta );
+ return wheelToMouseCommand( CmdAllWheel, delta, CmdAllRevWheel );
}
MouseCommand commandActiveTitlebar1() { return CmdActiveTitlebar1; }
@@ -319,13 +319,13 @@ class Options : public KDecorationOptions
* @returns the activation delay for electric borders in milliseconds.
*/
int electricBorderDelay();
-
+
bool topMenuEnabled() const { return topmenus; }
bool desktopTopMenu() const { return desktop_topmenu; }
-
+
// timeout before non-responding application will be killed after attempt to close
int killPingTimeout;
-
+
// Whether to hide utility windows for inactive applications.
bool hideUtilityWindowsForInactive;
@@ -362,6 +362,7 @@ class Options : public KDecorationOptions
MouseCommand CmdInactiveTitlebar2;
MouseCommand CmdInactiveTitlebar3;
MouseWheelCommand CmdTitlebarWheel;
+ bool CmdTitlebarRevWheel;
MouseCommand CmdWindow1;
MouseCommand CmdWindow2;
MouseCommand CmdWindow3;
@@ -369,6 +370,7 @@ class Options : public KDecorationOptions
MouseCommand CmdAll2;
MouseCommand CmdAll3;
MouseWheelCommand CmdAllWheel;
+ bool CmdAllRevWheel;
uint CmdAllModKey;
int electric_borders;
@@ -395,7 +397,7 @@ class Options : public KDecorationOptions
// List of window classes for which not to use focus stealing prevention
TQStringList ignoreFocusStealingClasses;
- MouseCommand wheelToMouseCommand( MouseWheelCommand com, int delta );
+ MouseCommand wheelToMouseCommand( MouseWheelCommand com, int delta, bool revDir );
};
extern Options* options;