summaryrefslogtreecommitdiffstats
path: root/kcontrol
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol')
-rw-r--r--kcontrol/background/pics/monitor.pngbin7542 -> 7361 bytes
-rw-r--r--kcontrol/crypto/CMakeLists.txt12
-rw-r--r--kcontrol/crypto/crypto.cpp119
-rw-r--r--kcontrol/displayconfig/displayconfig.h3
-rw-r--r--kcontrol/displayconfig/pics/gamma1.4.pngbin490 -> 470 bytes
-rw-r--r--kcontrol/displayconfig/pics/gamma1.6.pngbin486 -> 473 bytes
-rw-r--r--kcontrol/displayconfig/pics/gamma1.8.pngbin481 -> 469 bytes
-rw-r--r--kcontrol/displayconfig/pics/gamma2.0.pngbin488 -> 473 bytes
-rw-r--r--kcontrol/displayconfig/pics/gamma2.2.pngbin493 -> 474 bytes
-rw-r--r--kcontrol/displayconfig/pics/gamma2.4.pngbin489 -> 470 bytes
-rw-r--r--kcontrol/energy/pics/energybig.pngbin24161 -> 20285 bytes
-rw-r--r--kcontrol/energy/pics/lo-energy.pngbin1977 -> 1534 bytes
-rw-r--r--kcontrol/hwmanager/CMakeLists.txt21
-rw-r--r--kcontrol/hwmanager/cryptpassworddlg.cpp140
-rw-r--r--kcontrol/hwmanager/cryptpassworddlg.h64
-rw-r--r--kcontrol/hwmanager/cryptpassworddlgbase.ui148
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.cpp432
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.h10
-rw-r--r--kcontrol/hwmanager/devicepropsdlgbase.ui218
-rw-r--r--kcontrol/hwmanager/hwdevicetray-autostart.desktop11
-rw-r--r--kcontrol/hwmanager/hwdevicetray.cpp431
-rw-r--r--kcontrol/hwmanager/hwdevicetray.desktop10
-rw-r--r--kcontrol/hwmanager/hwdevicetray.h95
-rw-r--r--kcontrol/hwmanager/hwdevicetray_app.cpp32
-rw-r--r--kcontrol/hwmanager/hwdevicetray_app.h39
-rw-r--r--kcontrol/hwmanager/hwdevicetray_bindings.cpp34
-rw-r--r--kcontrol/hwmanager/hwdevicetray_configdialog.cpp78
-rw-r--r--kcontrol/hwmanager/hwdevicetray_configdialog.h59
-rw-r--r--kcontrol/hwmanager/hwdevicetray_main.cpp51
-rw-r--r--kcontrol/hwmanager/hwmanager.cpp32
-rw-r--r--kcontrol/hwmanager/hwmanager.desktop2
-rw-r--r--kcontrol/hwmanager/hwmanager.h1
-rw-r--r--kcontrol/input/pics/doubleclick_1.pngbin2162 -> 2152 bytes
-rw-r--r--kcontrol/input/pics/doubleclick_2.pngbin2260 -> 2247 bytes
-rw-r--r--kcontrol/input/pics/mouse_lh.pngbin12981 -> 11936 bytes
-rw-r--r--kcontrol/input/pics/mouse_rh.pngbin13053 -> 12030 bytes
-rw-r--r--kcontrol/kcontrol/about/top-right-kcontrol.pngbin17282 -> 17259 bytes
-rw-r--r--kcontrol/kcontrol/cr128-app-kcontrol.pngbin12149 -> 11397 bytes
-rw-r--r--kcontrol/kcontrol/cr16-app-kcontrol.pngbin887 -> 887 bytes
-rw-r--r--kcontrol/kcontrol/cr32-app-kcontrol.pngbin2375 -> 2370 bytes
-rw-r--r--kcontrol/kcontrol/cr48-app-kcontrol.pngbin4134 -> 4102 bytes
-rw-r--r--kcontrol/kcontrol/cr64-app-kcontrol.pngbin5941 -> 5874 bytes
-rw-r--r--kcontrol/knotify/play.pngbin277 -> 138 bytes
-rw-r--r--kcontrol/konq/onlyone.pngbin9530 -> 9665 bytes
-rw-r--r--kcontrol/konq/overlapping.pngbin11446 -> 11215 bytes
-rw-r--r--kcontrol/konq/previews.cpp2
-rw-r--r--kcontrol/krdb/ad/WPerfect.ad3
-rw-r--r--kcontrol/krdb/krdb.cpp4
-rw-r--r--kcontrol/krdb/pics/lo-energy.pngbin2253 -> 1782 bytes
-rw-r--r--kcontrol/krdb/pics/logo.pngbin950 -> 761 bytes
-rw-r--r--kcontrol/krdb/pics/mini-world.pngbin1036 -> 865 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.preview.pngbin44816 -> 34920 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastDark/HighContrastDark.preview.pngbin36781 -> 26872 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.preview.pngbin46253 -> 35811 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastLight/HighContrastLight.preview.pngbin37190 -> 27424 bytes
-rw-r--r--kcontrol/krdb/themes/KDE_Classic/KDE_Classic.preview.pngbin43523 -> 34427 bytes
-rw-r--r--kcontrol/krdb/themes/Keramik/Keramik.preview.pngbin44218 -> 36813 bytes
-rw-r--r--kcontrol/krdb/themes/Plastik/Plastik.preview.pngbin39809 -> 32067 bytes
-rw-r--r--kcontrol/krdb/themes/Platinum/Platinum.preview.pngbin36512 -> 29861 bytes
-rw-r--r--kcontrol/krdb/themes/Redmond/Redmond.preview.pngbin36199 -> 29529 bytes
-rw-r--r--kcontrol/krdb/themes/Sunshine/Sunshine.preview.pngbin34502 -> 27552 bytes
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.preview.pngbin46390 -> 36135 bytes
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.preview.pngbin36759 -> 28000 bytes
-rw-r--r--kcontrol/locale/pics/background.pngbin28823 -> 28229 bytes
-rw-r--r--kcontrol/pics/cr128-app-access.pngbin7576 -> 7324 bytes
-rw-r--r--kcontrol/pics/cr128-app-arts.pngbin10542 -> 8100 bytes
-rw-r--r--kcontrol/pics/cr128-app-background.pngbin10688 -> 10268 bytes
-rw-r--r--kcontrol/pics/cr128-app-bell.pngbin7039 -> 6793 bytes
-rw-r--r--kcontrol/pics/cr128-app-cache.pngbin9342 -> 8261 bytes
-rw-r--r--kcontrol/pics/cr128-app-clock.pngbin17753 -> 15940 bytes
-rw-r--r--kcontrol/pics/cr128-app-colors.pngbin14715 -> 13937 bytes
-rw-r--r--kcontrol/pics/cr128-app-date.pngbin14176 -> 13094 bytes
-rw-r--r--kcontrol/pics/cr128-app-energy.pngbin13774 -> 13346 bytes
-rw-r--r--kcontrol/pics/cr128-app-energy_star.pngbin11541 -> 9270 bytes
-rw-r--r--kcontrol/pics/cr128-app-filetypes.pngbin10583 -> 9367 bytes
-rw-r--r--kcontrol/pics/cr128-app-fonts.pngbin4531 -> 4288 bytes
-rw-r--r--kcontrol/pics/cr128-app-help_index.pngbin12683 -> 11087 bytes
-rw-r--r--kcontrol/pics/cr128-app-hwinfo.pngbin8659 -> 7485 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmdevices.pngbin10903 -> 8585 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmdf.pngbin11838 -> 11493 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmkwm.pngbin6130 -> 6014 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmmemory.pngbin14318 -> 12875 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmpartitions.pngbin16732 -> 16155 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmpci.pngbin5796 -> 4927 bytes
-rw-r--r--kcontrol/pics/cr128-app-key_bindings.pngbin6037 -> 5339 bytes
-rw-r--r--kcontrol/pics/cr128-app-kthememgr.pngbin10328 -> 8748 bytes
-rw-r--r--kcontrol/pics/cr128-app-locale.pngbin12910 -> 12484 bytes
-rw-r--r--kcontrol/pics/cr128-app-multimedia.pngbin12886 -> 11351 bytes
-rw-r--r--kcontrol/pics/cr128-app-proxy.pngbin12824 -> 9480 bytes
-rw-r--r--kcontrol/pics/cr128-app-samba.pngbin7617 -> 6901 bytes
-rw-r--r--kcontrol/pics/cr128-app-stylesheet.pngbin6513 -> 5339 bytes
-rw-r--r--kcontrol/pics/cr128-app-tdescreensaver.pngbin7140 -> 6869 bytes
-rw-r--r--kcontrol/pics/cr128-app-tdmconfig.pngbin15977 -> 15578 bytes
-rw-r--r--kcontrol/pics/cr128-category-preferences-desktop-personal.pngbin13247 -> 12846 bytes
-rw-r--r--kcontrol/pics/cr128-category-preferences-desktop.pngbin12473 -> 11787 bytes
-rw-r--r--kcontrol/pics/cr128-device-laptop.pngbin13375 -> 12032 bytes
-rw-r--r--kcontrol/pics/cr16-app-access.pngbin1022 -> 797 bytes
-rw-r--r--kcontrol/pics/cr16-app-agent.pngbin828 -> 743 bytes
-rw-r--r--kcontrol/pics/cr16-app-arts.pngbin898 -> 791 bytes
-rw-r--r--kcontrol/pics/cr16-app-background.pngbin746 -> 746 bytes
-rw-r--r--kcontrol/pics/cr16-app-bell.pngbin639 -> 633 bytes
-rw-r--r--kcontrol/pics/cr16-app-cache.pngbin823 -> 788 bytes
-rw-r--r--kcontrol/pics/cr16-app-clock.pngbin875 -> 837 bytes
-rw-r--r--kcontrol/pics/cr16-app-colors.pngbin857 -> 855 bytes
-rw-r--r--kcontrol/pics/cr16-app-cookie.pngbin840 -> 755 bytes
-rw-r--r--kcontrol/pics/cr16-app-date.pngbin871 -> 868 bytes
-rw-r--r--kcontrol/pics/cr16-app-energy.pngbin869 -> 869 bytes
-rw-r--r--kcontrol/pics/cr16-app-energy_star.pngbin708 -> 697 bytes
-rw-r--r--kcontrol/pics/cr16-app-enhanced_browsing.pngbin726 -> 688 bytes
-rw-r--r--kcontrol/pics/cr16-app-filetypes.pngbin954 -> 820 bytes
-rw-r--r--kcontrol/pics/cr16-app-fonts.pngbin718 -> 695 bytes
-rw-r--r--kcontrol/pics/cr16-app-help_index.pngbin975 -> 817 bytes
-rw-r--r--kcontrol/pics/cr16-app-hwinfo.pngbin1092 -> 915 bytes
-rw-r--r--kcontrol/pics/cr16-app-icons.pngbin927 -> 714 bytes
-rw-r--r--kcontrol/pics/cr16-app-iconthemes.pngbin828 -> 626 bytes
-rw-r--r--kcontrol/pics/cr16-app-ieee1394.pngbin668 -> 604 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmdevices.pngbin879 -> 800 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmkicker.pngbin658 -> 656 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmkwm.pngbin630 -> 629 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmmemory.pngbin931 -> 814 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmmidi.pngbin582 -> 539 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmpartitions.pngbin882 -> 881 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmpci.pngbin836 -> 704 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmprocessor.pngbin400 -> 186 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmscsi.pngbin976 -> 863 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmsound.pngbin988 -> 836 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmx.pngbin790 -> 726 bytes
-rw-r--r--kcontrol/pics/cr16-app-key_bindings.pngbin710 -> 709 bytes
-rw-r--r--kcontrol/pics/cr16-app-keyboard.pngbin661 -> 651 bytes
-rw-r--r--kcontrol/pics/cr16-app-keyboard_layout.pngbin871 -> 867 bytes
-rw-r--r--kcontrol/pics/cr16-app-knotify.pngbin657 -> 574 bytes
-rw-r--r--kcontrol/pics/cr16-app-kthememgr.pngbin939 -> 780 bytes
-rw-r--r--kcontrol/pics/cr16-app-locale.pngbin811 -> 811 bytes
-rw-r--r--kcontrol/pics/cr16-app-multimedia.pngbin830 -> 789 bytes
-rw-r--r--kcontrol/pics/cr16-app-panel_settings.pngbin933 -> 735 bytes
-rw-r--r--kcontrol/pics/cr16-app-proxy.pngbin866 -> 794 bytes
-rw-r--r--kcontrol/pics/cr16-app-samba.pngbin652 -> 657 bytes
-rw-r--r--kcontrol/pics/cr16-app-style.pngbin907 -> 764 bytes
-rw-r--r--kcontrol/pics/cr16-app-stylesheet.pngbin810 -> 681 bytes
-rw-r--r--kcontrol/pics/cr16-app-tdescreensaver.pngbin707 -> 620 bytes
-rw-r--r--kcontrol/pics/cr16-app-tdmconfig.pngbin868 -> 868 bytes
-rw-r--r--kcontrol/pics/cr16-app-usb.pngbin695 -> 695 bytes
-rw-r--r--kcontrol/pics/cr16-category-preferences-desktop-peripherals.pngbin1035 -> 919 bytes
-rw-r--r--kcontrol/pics/cr16-category-preferences-desktop-personal.pngbin753 -> 723 bytes
-rw-r--r--kcontrol/pics/cr16-category-preferences-desktop.pngbin842 -> 842 bytes
-rw-r--r--kcontrol/pics/cr16-category-preferences-system.pngbin903 -> 780 bytes
-rw-r--r--kcontrol/pics/cr16-device-laptop.pngbin883 -> 872 bytes
-rw-r--r--kcontrol/pics/cr22-app-access.pngbin1030 -> 1023 bytes
-rw-r--r--kcontrol/pics/cr22-app-arts.pngbin1244 -> 1040 bytes
-rw-r--r--kcontrol/pics/cr22-app-background.pngbin1085 -> 1071 bytes
-rw-r--r--kcontrol/pics/cr22-app-bell.pngbin824 -> 802 bytes
-rw-r--r--kcontrol/pics/cr22-app-cache.pngbin1192 -> 1092 bytes
-rw-r--r--kcontrol/pics/cr22-app-colors.pngbin1304 -> 1301 bytes
-rw-r--r--kcontrol/pics/cr22-app-cookie.pngbin1157 -> 1156 bytes
-rw-r--r--kcontrol/pics/cr22-app-date.pngbin1385 -> 1381 bytes
-rw-r--r--kcontrol/pics/cr22-app-energy.pngbin1316 -> 1316 bytes
-rw-r--r--kcontrol/pics/cr22-app-enhanced_browsing.pngbin948 -> 890 bytes
-rw-r--r--kcontrol/pics/cr22-app-filetypes.pngbin1163 -> 1151 bytes
-rw-r--r--kcontrol/pics/cr22-app-fonts.pngbin952 -> 918 bytes
-rw-r--r--kcontrol/pics/cr22-app-hwinfo.pngbin1288 -> 1287 bytes
-rw-r--r--kcontrol/pics/cr22-app-ieee1394.pngbin953 -> 860 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmdevices.pngbin1110 -> 1103 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmkicker.pngbin1048 -> 1036 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmkwm.pngbin953 -> 930 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmx.pngbin1096 -> 1019 bytes
-rw-r--r--kcontrol/pics/cr22-app-key_bindings.pngbin978 -> 924 bytes
-rw-r--r--kcontrol/pics/cr22-app-keyboard.pngbin914 -> 811 bytes
-rw-r--r--kcontrol/pics/cr22-app-locale.pngbin1319 -> 1312 bytes
-rw-r--r--kcontrol/pics/cr22-app-proxy.pngbin1500 -> 1387 bytes
-rw-r--r--kcontrol/pics/cr22-app-samba.pngbin928 -> 908 bytes
-rw-r--r--kcontrol/pics/cr22-app-stylesheet.pngbin1059 -> 1024 bytes
-rw-r--r--kcontrol/pics/cr22-app-tdescreensaver.pngbin1058 -> 910 bytes
-rw-r--r--kcontrol/pics/cr22-app-tdmconfig.pngbin1363 -> 1337 bytes
-rw-r--r--kcontrol/pics/cr22-category-preferences-desktop-personal.pngbin1238 -> 1195 bytes
-rw-r--r--kcontrol/pics/cr22-device-laptop.pngbin1383 -> 1349 bytes
-rw-r--r--kcontrol/pics/cr32-app-access.pngbin1619 -> 1607 bytes
-rw-r--r--kcontrol/pics/cr32-app-agent.pngbin2606 -> 2114 bytes
-rw-r--r--kcontrol/pics/cr32-app-arts.pngbin2164 -> 1830 bytes
-rw-r--r--kcontrol/pics/cr32-app-background.pngbin1714 -> 1683 bytes
-rw-r--r--kcontrol/pics/cr32-app-bell.pngbin1496 -> 1251 bytes
-rw-r--r--kcontrol/pics/cr32-app-cache.pngbin2063 -> 1974 bytes
-rw-r--r--kcontrol/pics/cr32-app-clock.pngbin2458 -> 2376 bytes
-rw-r--r--kcontrol/pics/cr32-app-colors.pngbin2295 -> 2293 bytes
-rw-r--r--kcontrol/pics/cr32-app-cookie.pngbin2524 -> 2073 bytes
-rw-r--r--kcontrol/pics/cr32-app-date.pngbin2478 -> 2463 bytes
-rw-r--r--kcontrol/pics/cr32-app-energy.pngbin2218 -> 2208 bytes
-rw-r--r--kcontrol/pics/cr32-app-energy_star.pngbin1935 -> 1938 bytes
-rw-r--r--kcontrol/pics/cr32-app-filetypes.pngbin2130 -> 1812 bytes
-rw-r--r--kcontrol/pics/cr32-app-fonts.pngbin1336 -> 1316 bytes
-rw-r--r--kcontrol/pics/cr32-app-help_index.pngbin2130 -> 1684 bytes
-rw-r--r--kcontrol/pics/cr32-app-hwinfo.pngbin1838 -> 1623 bytes
-rw-r--r--kcontrol/pics/cr32-app-icons.pngbin2853 -> 2404 bytes
-rw-r--r--kcontrol/pics/cr32-app-iconthemes.pngbin2386 -> 2028 bytes
-rw-r--r--kcontrol/pics/cr32-app-ieee1394.pngbin1414 -> 1251 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmdevices.pngbin1825 -> 1555 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmdrkonqi.pngbin1834 -> 1635 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmkicker.pngbin1706 -> 1651 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmkwm.pngbin1297 -> 1269 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmmemory.pngbin2205 -> 1927 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmmidi.pngbin1160 -> 963 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmpartitions.pngbin2481 -> 2475 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmpci.pngbin1319 -> 1140 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmprocessor.pngbin636 -> 583 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmscsi.pngbin2538 -> 2243 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmsound.pngbin2465 -> 2096 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmx.pngbin2169 -> 1730 bytes
-rw-r--r--kcontrol/pics/cr32-app-key_bindings.pngbin1605 -> 1554 bytes
-rw-r--r--kcontrol/pics/cr32-app-keyboard.pngbin1372 -> 1190 bytes
-rw-r--r--kcontrol/pics/cr32-app-keyboard_layout.pngbin2413 -> 2410 bytes
-rw-r--r--kcontrol/pics/cr32-app-knotify.pngbin1488 -> 1255 bytes
-rw-r--r--kcontrol/pics/cr32-app-kthememgr.pngbin1966 -> 1652 bytes
-rw-r--r--kcontrol/pics/cr32-app-locale.pngbin2252 -> 2247 bytes
-rw-r--r--kcontrol/pics/cr32-app-multimedia.pngbin1988 -> 1946 bytes
-rw-r--r--kcontrol/pics/cr32-app-proxy.pngbin2225 -> 1978 bytes
-rw-r--r--kcontrol/pics/cr32-app-samba.pngbin1521 -> 1448 bytes
-rw-r--r--kcontrol/pics/cr32-app-style.pngbin1883 -> 1602 bytes
-rw-r--r--kcontrol/pics/cr32-app-stylesheet.pngbin1837 -> 1830 bytes
-rw-r--r--kcontrol/pics/cr32-app-tdescreensaver.pngbin1663 -> 1612 bytes
-rw-r--r--kcontrol/pics/cr32-app-tdmconfig.pngbin2280 -> 2273 bytes
-rw-r--r--kcontrol/pics/cr32-app-usb.pngbin1889 -> 1876 bytes
-rw-r--r--kcontrol/pics/cr32-category-preferences-desktop-peripherals.pngbin2815 -> 2435 bytes
-rw-r--r--kcontrol/pics/cr32-category-preferences-desktop-personal.pngbin1914 -> 1893 bytes
-rw-r--r--kcontrol/pics/cr32-category-preferences-desktop.pngbin2135 -> 2129 bytes
-rw-r--r--kcontrol/pics/cr32-category-preferences-system.pngbin2381 -> 1909 bytes
-rw-r--r--kcontrol/pics/cr32-device-laptop.pngbin2473 -> 2448 bytes
-rw-r--r--kcontrol/pics/cr48-app-access.pngbin2605 -> 2566 bytes
-rw-r--r--kcontrol/pics/cr48-app-agent.pngbin4149 -> 3530 bytes
-rw-r--r--kcontrol/pics/cr48-app-arts.pngbin3746 -> 3002 bytes
-rw-r--r--kcontrol/pics/cr48-app-background.pngbin2906 -> 2856 bytes
-rw-r--r--kcontrol/pics/cr48-app-bell.pngbin2287 -> 2211 bytes
-rw-r--r--kcontrol/pics/cr48-app-cache.pngbin3350 -> 3249 bytes
-rw-r--r--kcontrol/pics/cr48-app-clock.pngbin4736 -> 4563 bytes
-rw-r--r--kcontrol/pics/cr48-app-colors.pngbin4226 -> 4211 bytes
-rw-r--r--kcontrol/pics/cr48-app-cookie.pngbin4296 -> 3493 bytes
-rw-r--r--kcontrol/pics/cr48-app-date.pngbin4593 -> 4568 bytes
-rw-r--r--kcontrol/pics/cr48-app-energy.pngbin3913 -> 3820 bytes
-rw-r--r--kcontrol/pics/cr48-app-energy_star.pngbin3573 -> 3566 bytes
-rw-r--r--kcontrol/pics/cr48-app-filetypes.pngbin3368 -> 2874 bytes
-rw-r--r--kcontrol/pics/cr48-app-fonts.pngbin1833 -> 1769 bytes
-rw-r--r--kcontrol/pics/cr48-app-help_index.pngbin3812 -> 3076 bytes
-rw-r--r--kcontrol/pics/cr48-app-hwinfo.pngbin2955 -> 2552 bytes
-rw-r--r--kcontrol/pics/cr48-app-icons.pngbin4794 -> 4111 bytes
-rw-r--r--kcontrol/pics/cr48-app-iconthemes.pngbin3371 -> 3291 bytes
-rw-r--r--kcontrol/pics/cr48-app-ieee1394.pngbin2158 -> 1909 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmdevices.pngbin3452 -> 2851 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmdf.pngbin3510 -> 3475 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmdrkonqi.pngbin2647 -> 2222 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmkicker.pngbin2971 -> 2828 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmkwm.pngbin2269 -> 2185 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmmemory.pngbin4100 -> 3527 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmmidi.pngbin1639 -> 1339 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmopengl.pngbin1129 -> 911 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmpartitions.pngbin4689 -> 4678 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmpci.pngbin2140 -> 1846 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmprocessor.pngbin966 -> 807 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmscsi.pngbin3977 -> 3414 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmx.pngbin3747 -> 2943 bytes
-rw-r--r--kcontrol/pics/cr48-app-key_bindings.pngbin2569 -> 2437 bytes
-rw-r--r--kcontrol/pics/cr48-app-keyboard.pngbin2195 -> 1920 bytes
-rw-r--r--kcontrol/pics/cr48-app-keyboard_layout.pngbin4266 -> 4241 bytes
-rw-r--r--kcontrol/pics/cr48-app-kicker.pngbin2971 -> 2828 bytes
-rw-r--r--kcontrol/pics/cr48-app-knotify.pngbin2357 -> 1952 bytes
-rw-r--r--kcontrol/pics/cr48-app-kthememgr.pngbin3115 -> 2582 bytes
-rw-r--r--kcontrol/pics/cr48-app-locale.pngbin4018 -> 4005 bytes
-rw-r--r--kcontrol/pics/cr48-app-multimedia.pngbin3703 -> 3230 bytes
-rw-r--r--kcontrol/pics/cr48-app-proxy.pngbin3921 -> 3546 bytes
-rw-r--r--kcontrol/pics/cr48-app-samba.pngbin2401 -> 2273 bytes
-rw-r--r--kcontrol/pics/cr48-app-style.pngbin3110 -> 2666 bytes
-rw-r--r--kcontrol/pics/cr48-app-stylesheet.pngbin3179 -> 3149 bytes
-rw-r--r--kcontrol/pics/cr48-app-tdescreensaver.pngbin2777 -> 2655 bytes
-rw-r--r--kcontrol/pics/cr48-app-tdmconfig.pngbin4151 -> 4125 bytes
-rw-r--r--kcontrol/pics/cr48-app-usb.pngbin3134 -> 3112 bytes
-rw-r--r--kcontrol/pics/cr48-category-preferences-desktop-peripherals.pngbin3451 -> 2784 bytes
-rw-r--r--kcontrol/pics/cr48-category-preferences-desktop-personal.pngbin3404 -> 3359 bytes
-rw-r--r--kcontrol/pics/cr48-category-preferences-desktop.pngbin3829 -> 3809 bytes
-rw-r--r--kcontrol/pics/cr48-category-preferences-system.pngbin4135 -> 3202 bytes
-rw-r--r--kcontrol/pics/cr48-device-laptop.pngbin4220 -> 3953 bytes
-rw-r--r--kcontrol/pics/cr64-app-access.pngbin3637 -> 3568 bytes
-rw-r--r--kcontrol/pics/cr64-app-arts.pngbin5198 -> 4199 bytes
-rw-r--r--kcontrol/pics/cr64-app-background.pngbin4192 -> 4133 bytes
-rw-r--r--kcontrol/pics/cr64-app-bell.pngbin3238 -> 3128 bytes
-rw-r--r--kcontrol/pics/cr64-app-cache.pngbin4681 -> 4538 bytes
-rw-r--r--kcontrol/pics/cr64-app-clock.pngbin7240 -> 7115 bytes
-rw-r--r--kcontrol/pics/cr64-app-colors.pngbin5874 -> 5758 bytes
-rw-r--r--kcontrol/pics/cr64-app-cookie.pngbin5950 -> 4885 bytes
-rw-r--r--kcontrol/pics/cr64-app-date.pngbin6801 -> 6738 bytes
-rw-r--r--kcontrol/pics/cr64-app-energy.pngbin5681 -> 5536 bytes
-rw-r--r--kcontrol/pics/cr64-app-energy_star.pngbin5336 -> 5304 bytes
-rw-r--r--kcontrol/pics/cr64-app-filetypes.pngbin4782 -> 4145 bytes
-rw-r--r--kcontrol/pics/cr64-app-fonts.pngbin2896 -> 2801 bytes
-rw-r--r--kcontrol/pics/cr64-app-help_index.pngbin5648 -> 4633 bytes
-rw-r--r--kcontrol/pics/cr64-app-hwinfo.pngbin4142 -> 3530 bytes
-rw-r--r--kcontrol/pics/cr64-app-icons.pngbin7051 -> 6355 bytes
-rw-r--r--kcontrol/pics/cr64-app-ieee1394.pngbin2891 -> 2553 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmdevices.pngbin4255 -> 3835 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmdf.pngbin5185 -> 5126 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmkwm.pngbin3005 -> 2840 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmmemory.pngbin6001 -> 5246 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmpartitions.pngbin6844 -> 6784 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmpci.pngbin2743 -> 2356 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmx.pngbin5495 -> 4233 bytes
-rw-r--r--kcontrol/pics/cr64-app-key_bindings.pngbin3430 -> 3224 bytes
-rw-r--r--kcontrol/pics/cr64-app-knotify.pngbin3285 -> 2694 bytes
-rw-r--r--kcontrol/pics/cr64-app-kthememgr.pngbin4511 -> 3740 bytes
-rw-r--r--kcontrol/pics/cr64-app-locale.pngbin5906 -> 5872 bytes
-rw-r--r--kcontrol/pics/cr64-app-multimedia.pngbin5049 -> 4861 bytes
-rw-r--r--kcontrol/pics/cr64-app-proxy.pngbin5870 -> 4599 bytes
-rw-r--r--kcontrol/pics/cr64-app-samba.pngbin3319 -> 3078 bytes
-rw-r--r--kcontrol/pics/cr64-app-style.pngbin5292 -> 4460 bytes
-rw-r--r--kcontrol/pics/cr64-app-stylesheet.pngbin4585 -> 4506 bytes
-rw-r--r--kcontrol/pics/cr64-app-tdescreensaver.pngbin3703 -> 3560 bytes
-rw-r--r--kcontrol/pics/cr64-app-tdmconfig.pngbin6154 -> 6055 bytes
-rw-r--r--kcontrol/pics/cr64-category-preferences-desktop-personal.pngbin5046 -> 4946 bytes
-rw-r--r--kcontrol/pics/cr64-category-preferences-desktop.pngbin5513 -> 5467 bytes
-rw-r--r--kcontrol/pics/cr64-device-laptop.pngbin5504 -> 5026 bytes
-rw-r--r--kcontrol/randr/tderandrtray.h3
-rw-r--r--kcontrol/tdefontinst/kcmfontinst/cr16-action-newfont.pngbin613 -> 545 bytes
-rw-r--r--kcontrol/tdefontinst/kcmfontinst/cr22-action-newfont.pngbin951 -> 820 bytes
-rw-r--r--kcontrol/tdefontinst/kcmfontinst/cr32-action-newfont.pngbin1821 -> 1706 bytes
-rw-r--r--kcontrol/tdm/tdm-appear.cpp9
320 files changed, 1955 insertions, 108 deletions
diff --git a/kcontrol/background/pics/monitor.png b/kcontrol/background/pics/monitor.png
index ecd86b9e4..6ef8f32b9 100644
--- a/kcontrol/background/pics/monitor.png
+++ b/kcontrol/background/pics/monitor.png
Binary files differ
diff --git a/kcontrol/crypto/CMakeLists.txt b/kcontrol/crypto/CMakeLists.txt
index 414e6d605..9a7f9161d 100644
--- a/kcontrol/crypto/CMakeLists.txt
+++ b/kcontrol/crypto/CMakeLists.txt
@@ -16,7 +16,15 @@ option( WITH_SSL "Enable support for SSL" ON )
if( WITH_SSL )
pkg_search_module( SSL openssl )
if( NOT SSL_FOUND )
- tde_message_fatal( "SSL support are requested, but openssl is not found on your system" )
+ check_include_file( openssl/ssl.h HAVE_OPENSSL_H )
+ check_library_exists( ssl SSL_library_init "" HAVE_LIBSSL )
+ check_library_exists( crypto EVP_EncryptInit_ex "" HAVE_LIBCRYPTO )
+ if( HAVE_OPENSSL_H AND HAVE_LIBSSL AND HAVE_LIBCRYPTO )
+ set( SSL_FOUND 1 CACHE INTERNAL "" FORCE )
+ endif( HAVE_OPENSSL_H AND HAVE_LIBSSL AND HAVE_LIBCRYPTO )
+ endif( NOT SSL_FOUND )
+ if( NOT SSL_FOUND )
+ tde_message_fatal( "SSL support is requested, but openssl not found on your system" )
endif( NOT SSL_FOUND )
set( HAVE_SSL 1 CACHE INTERNAL "" FORCE )
endif( WITH_SSL )
@@ -44,6 +52,6 @@ install( FILES crypto.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
tde_add_kpart( kcm_crypto AUTOMOC
SOURCES crypto.cpp certexport.cpp kdatetimedlg.cpp
- LINK tdeio-shared ${SSL_LIBRARIES}
+ LINK tdeio-shared
DESTINATION ${PLUGIN_INSTALL_DIR}
)
diff --git a/kcontrol/crypto/crypto.cpp b/kcontrol/crypto/crypto.cpp
index 329c04a31..55536b21e 100644
--- a/kcontrol/crypto/crypto.cpp
+++ b/kcontrol/crypto/crypto.cpp
@@ -878,13 +878,17 @@ void KCryptoConfig::load( bool useDefaults )
config->setGroup("SSLv2");
mUseSSLv2->setChecked(config->readBoolEntry("Enabled", true));
-#ifdef OPENSSL_NO_SSL2
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L || defined(OPENSSL_NO_SSL2)
mUseSSLv2->setChecked(false);
mUseSSLv2->setEnabled(false);
#endif
config->setGroup("SSLv3");
mUseSSLv3->setChecked(config->readBoolEntry("Enabled", true));
+#if defined(OPENSSL_NO_SSL3)
+ mUseSSLv3->setChecked(false);
+ mUseSSLv3->setEnabled(false);
+#endif
config->setGroup("Warnings");
mWarnOnEnter->setChecked(config->readBoolEntry("OnEnter", false));
@@ -933,12 +937,16 @@ void KCryptoConfig::load( bool useDefaults )
item = static_cast<CipherItem *>(item->nextSibling());
}
-#ifdef OPENSSL_NO_SSL2
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L || defined(OPENSSL_NO_SSL2)
SSLv2Box->setEnabled( false );
#else
SSLv2Box->setEnabled( mUseSSLv2->isChecked() );
#endif
+#if defined(OPENSSL_NO_SSL3)
+ SSLv3Box->setEnabled( false );
+#else
SSLv3Box->setEnabled( mUseSSLv3->isChecked() );
+#endif
TQStringList groups = policies->groupList();
@@ -1038,7 +1046,8 @@ void KCryptoConfig::load( bool useDefaults )
void KCryptoConfig::save()
{
#ifdef HAVE_SSL
- if (!mUseSSLv2->isChecked() &&
+ if (!mUseTLS->isChecked() &&
+ !mUseSSLv2->isChecked() &&
!mUseSSLv3->isChecked())
KMessageBox::information(this, i18n("If you do not select at least one"
" SSL algorithm, either SSL will not"
@@ -1050,14 +1059,18 @@ void KCryptoConfig::save()
config->writeEntry("Enabled", mUseTLS->isChecked());
config->setGroup("SSLv2");
-#ifdef OPENSSL_NO_SSL2
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L || defined(OPENSSL_NO_SSL2)
config->writeEntry("Enabled", false);
#else
config->writeEntry("Enabled", mUseSSLv2->isChecked());
#endif
config->setGroup("SSLv3");
+#if defined(OPENSSL_NO_SSL3)
+ config->writeEntry("Enabled", false);
+#else
config->writeEntry("Enabled", mUseSSLv3->isChecked());
+#endif
config->setGroup("Warnings");
config->writeEntry("OnEnter", mWarnOnEnter->isChecked());
@@ -1293,12 +1306,16 @@ void KCryptoConfig::cwCompatible() {
}
mUseTLS->setChecked(true);
-#ifdef OPENSSL_NO_SSL2
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L || defined(OPENSSL_NO_SSL2)
mUseSSLv2->setChecked(false);
#else
mUseSSLv2->setChecked(true);
#endif
+#if defined(OPENSSL_NO_SSL3)
+ mUseSSLv3->setChecked(false);
+#else
mUseSSLv3->setChecked(true);
+#endif
configChanged();
#endif
}
@@ -1354,12 +1371,16 @@ void KCryptoConfig::cwAll() {
}
mUseTLS->setChecked(true);
-#ifdef OPENSSL_NO_SSL2
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L || defined(OPENSSL_NO_SSL2)
mUseSSLv2->setChecked(false);
#else
mUseSSLv2->setChecked(true);
#endif
+#if defined(OPENSSL_NO_SSL3)
+ mUseSSLv3->setChecked(false);
+#else
mUseSSLv3->setChecked(true);
+#endif
configChanged();
#endif
}
@@ -1875,9 +1896,6 @@ void KCryptoConfig::slotCAImport() {
return;
#ifdef HAVE_SSL
-#define sk_free KOSSL::self()->sk_free
-#define sk_num KOSSL::self()->sk_num
-#define sk_value KOSSL::self()->sk_value
// First try to load using the OpenSSL method
X509_STORE *certStore = KOSSL::self()->X509_STORE_new();
@@ -1887,13 +1905,14 @@ void KCryptoConfig::slotCAImport() {
KOSSL::self()->X509_LOOKUP_load_file(certLookup,
certFile.local8Bit(),
X509_FILETYPE_PEM)) {
- for (int i = 0; i < sk_X509_OBJECT_num(certStore->objs); i++) {
- X509_OBJECT* x5o = sk_X509_OBJECT_value(certStore->objs, i);
+ STACK_OF(X509_OBJECT) *certStore_objs = KOSSL::self()->X509_STORE_get0_objects(certStore);
+ for (int i = 0; i < KOSSL::self()->OPENSSL_sk_num(certStore_objs); i++) {
+ X509_OBJECT* x5o = reinterpret_cast<X509_OBJECT*>(KOSSL::self()->OPENSSL_sk_value(certStore_objs, i));
if (!x5o) continue;
- if (x5o->type != X509_LU_X509) continue;
+ if (KOSSL::self()->X509_OBJECT_get_type(x5o) != X509_LU_X509) continue;
- X509 *x5 = x5o->data.x509;
+ X509 *x5 = KOSSL::self()->X509_OBJECT_get0_X509(x5o);
if (!x5) continue;
// Easier to use in this form
@@ -1957,7 +1976,7 @@ void KCryptoConfig::slotCAImport() {
qf.open(IO_ReadOnly);
qf.readLine(certtext, qf.size());
- if (certStore) { KOSSL::self()->X509_STORE_free(certStore);
+ if (certStore) { KOSSL::self()->OPENSSL_sk_free(certStore);
certStore = NULL; }
if (certtext.contains("-----BEGIN CERTIFICATE-----")) {
@@ -2029,12 +2048,9 @@ void KCryptoConfig::slotCAImport() {
}
- if (certStore) KOSSL::self()->X509_STORE_free(certStore);
+ if (certStore) KOSSL::self()->OPENSSL_sk_free(certStore);
configChanged();
-#undef sk_free
-#undef sk_num
-#undef sk_value
#endif
offerImportToKMail( certFile );
@@ -2356,81 +2372,76 @@ void KCryptoConfig::slotGeneratePersonal() {
#ifdef HAVE_SSL
-#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-#define SSL_CONST const
-#else
-#define SSL_CONST
-#endif
-
// This gets all the available ciphers from OpenSSL
bool KCryptoConfig::loadCiphers() {
-unsigned int i;
+unsigned int i, cnt;
SSL_CTX *ctx;
SSL *ssl;
-SSL_CONST SSL_METHOD *meth;
+SSL_METHOD *meth;
+STACK_OF(SSL_CIPHER)* sk;
SSLv2Box->clear();
SSLv3Box->clear();
+ CipherItem *item;
-#ifndef OPENSSL_NO_SSL2
- meth = SSLv2_client_method();
- SSLeay_add_ssl_algorithms();
- ctx = SSL_CTX_new(meth);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L && !defined(OPENSSL_NO_SSL2)
+ meth = KOSSL::self()->SSLv2_client_method();
+ ctx = KOSSL::self()->SSL_CTX_new(meth);
if (ctx == NULL) return false;
- ssl = SSL_new(ctx);
+ ssl = KOSSL::self()->SSL_new(ctx);
if (!ssl) return false;
+ sk = KOSSL::self()->SSL_get_ciphers(ssl);
+ cnt = KOSSL::self()->OPENSSL_sk_num(sk);
- CipherItem *item;
- for (i=0; ; i++) {
+ for (i = 0; i < cnt; i++) {
int j, k;
- SSL_CONST SSL_CIPHER *sc;
- sc = (meth->get_cipher)(i);
+ SSL_CIPHER *sc = reinterpret_cast<SSL_CIPHER*>(KOSSL::self()->OPENSSL_sk_value(sk, i));
if (!sc)
break;
// Leak of sc*?
- TQString scn(sc->name);
+ TQString scn(KOSSL::self()->SSL_CIPHER_get_name(sc));
if (scn.contains("ADH-") || scn.contains("NULL-") || scn.contains("DES-CBC3-SHA") || scn.contains("FZA-")) {
continue;
}
- k = SSL_CIPHER_get_bits(sc, &j);
+ k = KOSSL::self()->SSL_CIPHER_get_bits(sc, &j);
- item = new CipherItem( SSLv2Box, sc->name, k, j, this );
+ item = new CipherItem( SSLv2Box, scn, k, j, this );
}
- if (ctx) SSL_CTX_free(ctx);
- if (ssl) SSL_free(ssl);
-#else
- CipherItem *item;
+ if (ctx) KOSSL::self()->SSL_CTX_free(ctx);
+ if (ssl) KOSSL::self()->SSL_free(ssl);
#endif
+# ifndef OPENSSL_NO_SSL3_METHOD
// We repeat for SSLv3
- meth = SSLv3_client_method();
- SSLeay_add_ssl_algorithms();
- ctx = SSL_CTX_new(meth);
+ meth = KOSSL::self()->SSLv3_client_method();
+ ctx = KOSSL::self()->SSL_CTX_new(meth);
if (ctx == NULL) return false;
- ssl = SSL_new(ctx);
+ ssl = KOSSL::self()->SSL_new(ctx);
if (!ssl) return false;
+ sk = KOSSL::self()->SSL_get_ciphers(ssl);
+ cnt = KOSSL::self()->OPENSSL_sk_num(sk);
- for (i=0; ; i++) {
+ for (i = 0; i < cnt; i++) {
int j, k;
- SSL_CONST SSL_CIPHER *sc;
- sc = (meth->get_cipher)(i);
+ SSL_CIPHER *sc = reinterpret_cast<SSL_CIPHER*>(KOSSL::self()->OPENSSL_sk_value(sk, i));
if (!sc)
break;
// Leak of sc*?
- TQString scn(sc->name);
+ TQString scn(KOSSL::self()->SSL_CIPHER_get_name(sc));
if (scn.contains("ADH-") || scn.contains("NULL-") || scn.contains("DES-CBC3-SHA") || scn.contains("FZA-")) {
continue;
}
- k = SSL_CIPHER_get_bits(sc, &j);
+ k = KOSSL::self()->SSL_CIPHER_get_bits(sc, &j);
- item = new CipherItem( SSLv3Box, sc->name, k, j, this );
+ item = new CipherItem( SSLv3Box, scn, k, j, this );
}
- if (ctx) SSL_CTX_free(ctx);
- if (ssl) SSL_free(ssl);
+ if (ctx) KOSSL::self()->SSL_CTX_free(ctx);
+ if (ssl) KOSSL::self()->SSL_free(ssl);
+#endif
return true;
}
diff --git a/kcontrol/displayconfig/displayconfig.h b/kcontrol/displayconfig/displayconfig.h
index dce061003..78b033f14 100644
--- a/kcontrol/displayconfig/displayconfig.h
+++ b/kcontrol/displayconfig/displayconfig.h
@@ -34,13 +34,14 @@
#include <dcopobject.h>
-#include <libtderandr/libtderandr.h>
#ifdef __TDE_HAVE_TDEHWLIB
#include <tdehardwaredevices.h>
#else
#define TDEGenericDevice void
#endif
+#include <libtderandr/libtderandr.h>
+
#include "monitorworkspace.h"
#include "displayconfigbase.h"
diff --git a/kcontrol/displayconfig/pics/gamma1.4.png b/kcontrol/displayconfig/pics/gamma1.4.png
index f193a4c09..510aeb282 100644
--- a/kcontrol/displayconfig/pics/gamma1.4.png
+++ b/kcontrol/displayconfig/pics/gamma1.4.png
Binary files differ
diff --git a/kcontrol/displayconfig/pics/gamma1.6.png b/kcontrol/displayconfig/pics/gamma1.6.png
index 0110dad26..fefb9ac35 100644
--- a/kcontrol/displayconfig/pics/gamma1.6.png
+++ b/kcontrol/displayconfig/pics/gamma1.6.png
Binary files differ
diff --git a/kcontrol/displayconfig/pics/gamma1.8.png b/kcontrol/displayconfig/pics/gamma1.8.png
index 71fc121aa..9195c4cbc 100644
--- a/kcontrol/displayconfig/pics/gamma1.8.png
+++ b/kcontrol/displayconfig/pics/gamma1.8.png
Binary files differ
diff --git a/kcontrol/displayconfig/pics/gamma2.0.png b/kcontrol/displayconfig/pics/gamma2.0.png
index 6a3f72a8f..7d8fa28db 100644
--- a/kcontrol/displayconfig/pics/gamma2.0.png
+++ b/kcontrol/displayconfig/pics/gamma2.0.png
Binary files differ
diff --git a/kcontrol/displayconfig/pics/gamma2.2.png b/kcontrol/displayconfig/pics/gamma2.2.png
index 573a57e70..053704d4f 100644
--- a/kcontrol/displayconfig/pics/gamma2.2.png
+++ b/kcontrol/displayconfig/pics/gamma2.2.png
Binary files differ
diff --git a/kcontrol/displayconfig/pics/gamma2.4.png b/kcontrol/displayconfig/pics/gamma2.4.png
index 88bc32395..dc1f8010a 100644
--- a/kcontrol/displayconfig/pics/gamma2.4.png
+++ b/kcontrol/displayconfig/pics/gamma2.4.png
Binary files differ
diff --git a/kcontrol/energy/pics/energybig.png b/kcontrol/energy/pics/energybig.png
index 1a79fe748..0bf01274d 100644
--- a/kcontrol/energy/pics/energybig.png
+++ b/kcontrol/energy/pics/energybig.png
Binary files differ
diff --git a/kcontrol/energy/pics/lo-energy.png b/kcontrol/energy/pics/lo-energy.png
index 9706644b1..850b4ab00 100644
--- a/kcontrol/energy/pics/lo-energy.png
+++ b/kcontrol/energy/pics/lo-energy.png
Binary files differ
diff --git a/kcontrol/hwmanager/CMakeLists.txt b/kcontrol/hwmanager/CMakeLists.txt
index 584eba7bc..dfe327740 100644
--- a/kcontrol/hwmanager/CMakeLists.txt
+++ b/kcontrol/hwmanager/CMakeLists.txt
@@ -1,6 +1,6 @@
#################################################
#
-# (C) 2012 Timothy Pearson
+# (C) 2012 - 2015 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
@@ -25,6 +25,12 @@ link_directories(
##### other data ################################
install( FILES hwmanager.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+install( FILES hwdevicetray.desktop
+ DESTINATION ${XDG_APPS_INSTALL_DIR}
+ RENAME tdehwdevicetray.desktop )
+install( FILES hwdevicetray-autostart.desktop
+ DESTINATION ${AUTOSTART_INSTALL_DIR}
+ RENAME tdehwdevicetray-autostart.desktop )
##### kcm_iccconfig (module) ####################
@@ -33,7 +39,18 @@ set_source_files_properties( hwmanager.cpp PROPERTIES COMPILE_FLAGS -DKDE_CONFDI
tde_add_kpart( kcm_hwmanager AUTOMOC
SOURCES
- hwmanager.cpp deviceiconview.cpp devicepropsdlg.cpp devicepropsdlgbase.ui hwmanagerbase.ui hwmanager.skel
+ hwmanager.cpp deviceiconview.cpp devicepropsdlg.cpp devicepropsdlgbase.ui hwmanagerbase.ui
+ cryptpassworddlg.cpp cryptpassworddlgbase.ui hwmanager.skel
LINK tdeio-shared
DESTINATION ${PLUGIN_INSTALL_DIR}
)
+
+##### tdehwdevicetray (executable) ##############
+
+tde_add_executable( tdehwdevicetray AUTOMOC
+ SOURCES
+ hwdevicetray_main.cpp hwdevicetray.cpp hwdevicetray_app.cpp
+ hwdevicetray_configdialog.cpp
+ LINK tdeio-shared tdeutils-shared tdeui-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+) \ No newline at end of file
diff --git a/kcontrol/hwmanager/cryptpassworddlg.cpp b/kcontrol/hwmanager/cryptpassworddlg.cpp
new file mode 100644
index 000000000..1d66d89c1
--- /dev/null
+++ b/kcontrol/hwmanager/cryptpassworddlg.cpp
@@ -0,0 +1,140 @@
+/* This file is part of TDE
+ Copyright (C) 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License 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 <config.h>
+
+#include <tqradiobutton.h>
+#include <tqpushbutton.h>
+#include <tqvalidator.h>
+#include <tqlineedit.h>
+#include <tqiconset.h>
+#include <tqlabel.h>
+#include <tqtabwidget.h>
+#include <tqgroupbox.h>
+#include <tqlayout.h>
+#include <tqslider.h>
+#include <tqpainter.h>
+#include <tqstyle.h>
+#include <tqfile.h>
+#include <tqinternal_p.h>
+#undef Unsorted // Required for --enable-final (tqdir.h)
+#include <tqfiledialog.h>
+
+#include <kpassdlg.h>
+#include <kbuttonbox.h>
+#include <kcombobox.h>
+#include <tdelocale.h>
+#include <kiconloader.h>
+#include <kurlrequester.h>
+#include <tdeapplication.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <kstdguiitem.h>
+#include <tdemessagebox.h>
+#include <ksslcertificate.h>
+
+#include "cryptpassworddlg.h"
+
+CryptPasswordDialog::CryptPasswordDialog(TQWidget *parent, TQString passwordPrompt, TQString caption, bool allow_card, KSSLCertificate* card_cert, bool* use_card)
+ : KDialogBase(Plain, ((caption == "")?i18n("Enter Password"):caption), Ok|Cancel, Ok, parent, 0L, true, true),
+ m_useCard(use_card)
+{
+ m_base = new CryptPasswordDialogBase(plainPage());
+
+ TQGridLayout *mainGrid = new TQGridLayout(plainPage(), 1, 1, 0, spacingHint());
+ mainGrid->setRowStretch(1, 1);
+ mainGrid->addWidget(m_base, 0, 0);
+
+ m_base->passwordPrompt->setText(passwordPrompt);
+ m_base->passwordIcon->setPixmap(SmallIcon("password.png"));
+
+ if (!allow_card) {
+ m_base->cardKeyButton->hide();
+ m_base->cardKeyInfo->hide();
+ }
+ else {
+ if (card_cert) {
+ m_base->cardKeyInfo->setText(card_cert->getSubject());
+ }
+ }
+
+ connect(m_base->textPasswordButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(processLockouts()));
+ connect(m_base->filePasswordButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(processLockouts()));
+ connect(m_base->cardKeyButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(processLockouts()));
+ connect(m_base->textPasswordEntry, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(processLockouts()));
+ connect(m_base->filePasswordURL, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(processLockouts()));
+
+ m_base->textPasswordEntry->setFocus();
+
+ processLockouts();
+}
+
+CryptPasswordDialog::~CryptPasswordDialog()
+{
+}
+
+TQByteArray CryptPasswordDialog::password() {
+ if (m_base->textPasswordButton->isOn() == true) {
+ m_password.duplicate(m_base->textPasswordEntry->password(), strlen(m_base->textPasswordEntry->password()));
+ if (m_useCard) *m_useCard = false;
+ }
+ else if (m_base->filePasswordButton->isOn() == true) {
+ m_password = TQFile(m_base->filePasswordURL->url()).readAll();
+ if (m_useCard) *m_useCard = false;
+ }
+ else {
+ if (m_useCard) *m_useCard = true;
+ }
+
+ return m_password;
+}
+
+void CryptPasswordDialog::processLockouts() {
+ if (m_base->textPasswordButton->isOn() == true) {
+ m_base->textPasswordEntry->setEnabled(true);
+ m_base->filePasswordURL->setEnabled(false);
+ m_base->textPasswordEntry->setFocus();
+ if (strlen(m_base->textPasswordEntry->password()) > 0) {
+ enableButtonOK(true);
+ }
+ else {
+ enableButtonOK(false);
+ }
+ }
+ else if (m_base->filePasswordButton->isOn() == true) {
+ m_base->textPasswordEntry->setEnabled(false);
+ m_base->filePasswordURL->setEnabled(true);
+ m_base->filePasswordURL->setFocus();
+ if (TQFile(m_base->filePasswordURL->url()).exists()) {
+ enableButtonOK(true);
+ }
+ else {
+ enableButtonOK(false);
+ }
+ }
+ else {
+ m_base->textPasswordEntry->setEnabled(false);
+ m_base->filePasswordURL->setEnabled(false);
+ enableButtonOK(true);
+ }
+}
+
+void CryptPasswordDialog::virtual_hook( int id, void* data )
+{ KDialogBase::virtual_hook( id, data ); }
+
+#include "cryptpassworddlg.moc"
diff --git a/kcontrol/hwmanager/cryptpassworddlg.h b/kcontrol/hwmanager/cryptpassworddlg.h
new file mode 100644
index 000000000..d595c4a73
--- /dev/null
+++ b/kcontrol/hwmanager/cryptpassworddlg.h
@@ -0,0 +1,64 @@
+/* This file is part of TDE
+ Copyright (C) 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License 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 __cryptpassworddlg_h__
+#define __cryptpassworddlg_h__
+
+#include <kdialogbase.h>
+
+#include "cryptpassworddlgbase.h"
+
+class KSSLCertificate;
+
+/**
+ *
+ * Dialog to enter LUKS passwords or password files
+ *
+ * @version 0.1
+ * @author Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ */
+
+class TDEUI_EXPORT CryptPasswordDialog : public KDialogBase
+{
+ Q_OBJECT
+public:
+ /**
+ * Create a dialog that allows a user to enter LUKS passwords or password files
+ * @param parent Parent widget
+ */
+ CryptPasswordDialog(TQWidget *parent, TQString passwordPrompt, TQString caption=TQString::null, bool allow_card=false, KSSLCertificate* card_cert=NULL, bool* use_card=NULL);
+ virtual ~CryptPasswordDialog();
+
+ TQByteArray password();
+
+protected:
+ virtual void virtual_hook( int id, void* data );
+
+private slots:
+ void processLockouts();
+
+private:
+ CryptPasswordDialogBase* m_base;
+ TQByteArray m_password;
+ bool* m_useCard;
+
+ class CryptPasswordDialogPrivate;
+ CryptPasswordDialogPrivate* d;
+};
+
+#endif
diff --git a/kcontrol/hwmanager/cryptpassworddlgbase.ui b/kcontrol/hwmanager/cryptpassworddlgbase.ui
new file mode 100644
index 000000000..549a591b0
--- /dev/null
+++ b/kcontrol/hwmanager/cryptpassworddlgbase.ui
@@ -0,0 +1,148 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+ <class>CryptPasswordDialogBase</class>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>CryptPasswordDialogBase</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>passwordIcon</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="1" colspan="1">
+ <property name="name">
+ <cstring>passwordPrompt</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="TQGroupBox" row="1" column="0" colspan="2">
+ <property name="name">
+ <cstring>passwordProps</cstring>
+ </property>
+ <property name="title">
+ <string>Password Source</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQButtonGroup" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>enabledBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <property name="radioButtonExclusive">
+ <bool>true</bool>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="TQRadioButton" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>textPasswordButton</cstring>
+ </property>
+ <property name="text">
+ <string>Text:</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="KPasswordEdit" row="0" column="1" colspan="1">
+ <property name="name">
+ <cstring>textPasswordEntry</cstring>
+ </property>
+ </widget>
+ <widget class="TQRadioButton" row="1" column="0" colspan="1">
+ <property name="name">
+ <cstring>filePasswordButton</cstring>
+ </property>
+ <property name="text">
+ <string>File:</string>
+ </property>
+ </widget>
+ <widget class="KURLRequester" row="1" column="1" colspan="1">
+ <property name="name">
+ <cstring>filePasswordURL</cstring>
+ </property>
+ <property name="filter">
+ <cstring>*</cstring>
+ </property>
+ <property name="mode">
+ <number>17</number>
+ </property>
+ </widget>
+ <widget class="TQRadioButton" row="2" column="0" colspan="1">
+ <property name="name">
+ <cstring>cardKeyButton</cstring>
+ </property>
+ <property name="text">
+ <string>Cryptographic Card</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="2" column="1" colspan="1">
+ <property name="name">
+ <cstring>cardKeyInfo</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <includes>
+ <include location="local" impldecl="in implementation">CryptPasswordDialogBase.ui.h</include>
+ </includes>
+ <Q_SLOTS>
+ <slot>enableSupport_toggled(bool)</slot>
+ </Q_SLOTS>
+ <includes>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
+ </includes>
+ <layoutdefaults spacing="3" margin="6"/>
+ <layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
+</UI>
diff --git a/kcontrol/hwmanager/devicepropsdlg.cpp b/kcontrol/hwmanager/devicepropsdlg.cpp
index 12de8cea9..885dc7a7a 100644
--- a/kcontrol/hwmanager/devicepropsdlg.cpp
+++ b/kcontrol/hwmanager/devicepropsdlg.cpp
@@ -32,13 +32,19 @@
#undef Unsorted // Required for --enable-final (tqdir.h)
#include <tqfiledialog.h>
+#include <kpassdlg.h>
+#include <kactivelabel.h>
#include <kbuttonbox.h>
#include <kcombobox.h>
#include <tdelocale.h>
#include <tdeapplication.h>
#include <klineedit.h>
+#include <kpushbutton.h>
#include <kstdguiitem.h>
#include <tdemessagebox.h>
+#include <ksslcertificate.h>
+
+#include "cryptpassworddlg.h"
#include "devicepropsdlg.h"
@@ -255,6 +261,7 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
// Remove all non-applicable tabs
if (m_device->type() != TDEGenericDeviceType::Disk) {
base->tabBarWidget->removePage(base->tabDisk);
+ base->tabBarWidget->removePage(base->tabDiskCrypt);
}
if (m_device->type() != TDEGenericDeviceType::CPU) {
base->tabBarWidget->removePage(base->tabCPU);
@@ -283,13 +290,29 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
if (m_device->type() != TDEGenericDeviceType::Event) {
base->tabBarWidget->removePage(base->tabEvent);
}
+ if (m_device->type() != TDEGenericDeviceType::CryptographicCard) {
+ base->tabBarWidget->removePage(base->tabCryptographicCard);
+ }
if (m_device->type() == TDEGenericDeviceType::CPU) {
connect(base->comboCPUGovernor, TQT_SIGNAL(activated(const TQString &)), this, TQT_SLOT(setCPUGovernor(const TQString &)));
}
if (m_device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
connect(base->buttonDiskMount, TQT_SIGNAL(clicked()), this, TQT_SLOT(mountDisk()));
connect(base->buttonDiskUnmount, TQT_SIGNAL(clicked()), this, TQT_SLOT(unmountDisk()));
+ if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) {
+ connect(base->cryptLUKSAddKey, TQT_SIGNAL(clicked()), this, TQT_SLOT(cryptLUKSAddKey()));
+ connect(base->cryptLUKSDelKey, TQT_SIGNAL(clicked()), this, TQT_SLOT(cryptLUKSDelKey()));
+ connect(base->cryptLUKSKeySlotList, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(processLockouts()));
+ base->cryptLUKSKeySlotList->setAllColumnsShowFocus(true);
+ base->cryptLUKSKeySlotList->setFullWidth(true);
+ cryptLUKSPopulateList();
+ processLockouts();
+ }
+ else {
+ base->tabBarWidget->removePage(base->tabDiskCrypt);
+ }
}
if ((m_device->type() == TDEGenericDeviceType::OtherSensor) || (m_device->type() == TDEGenericDeviceType::ThermalSensor)) {
@@ -340,17 +363,21 @@ TQString assembleSwitchList(TDESwitchType::TDESwitchType switches) {
return (TDEEventDevice::friendlySwitchList(switches).join("<br>"));
}
+static TQString formatDisplayString(TQString input) {
+ return TQStyleSheet::escape(input);
+}
+
void DevicePropertiesDialog::populateDeviceInformation() {
if (m_device) {
base->labelDeviceType->setText(m_device->friendlyDeviceType());
base->iconDeviceType->setPixmap(m_device->icon(TDEIcon::SizeSmall));
- base->labelDeviceName->setText(m_device->friendlyName());
- base->labelDeviceNode->setText((m_device->deviceNode().isNull())?i18n("<none>"):m_device->deviceNode());
- base->labelSystemPath->setText(m_device->systemPath());
- base->labelSubsytemType->setText(m_device->subsystem());
- base->labelDeviceDriver->setText((m_device->deviceDriver().isNull())?i18n("<none>"):m_device->deviceDriver());
- base->labelDeviceClass->setText((m_device->PCIClass().isNull())?i18n("<n/a>"):m_device->PCIClass());
- base->labelModalias->setText((m_device->moduleAlias().isNull())?i18n("<none>"):m_device->moduleAlias());
+ base->labelDeviceName->setText(formatDisplayString(m_device->friendlyName()));
+ base->labelDeviceNode->setText(formatDisplayString((m_device->deviceNode().isNull())?i18n("<none>"):m_device->deviceNode()));
+ base->labelSystemPath->setText(formatDisplayString(m_device->systemPath()));
+ base->labelSubsytemType->setText(formatDisplayString(m_device->subsystem()));
+ base->labelDeviceDriver->setText(formatDisplayString((m_device->deviceDriver().isNull())?i18n("<none>"):m_device->deviceDriver()));
+ base->labelDeviceClass->setText(formatDisplayString((m_device->PCIClass().isNull())?i18n("<n/a>"):m_device->PCIClass()));
+ base->labelModalias->setText(formatDisplayString((m_device->moduleAlias().isNull())?i18n("<none>"):m_device->moduleAlias()));
// These might be redundant
#if 0
@@ -362,10 +389,10 @@ void DevicePropertiesDialog::populateDeviceInformation() {
base->labelVendorModel->hide();
base->stocklabelVendorModel->hide();
#endif
- base->labelSerialNumber->setText((m_device->serialNumber().isNull())?i18n("<unknown>"):m_device->serialNumber());
+ base->labelSerialNumber->setText(formatDisplayString((m_device->serialNumber().isNull())?i18n("<unknown>"):m_device->serialNumber()));
if (m_device->subsystem() == "pci") {
- base->labelBusID->setText(m_device->busID());
+ base->labelBusID->setText(formatDisplayString(m_device->busID()));
base->labelBusID->show();
base->stocklabelBusID->show();
}
@@ -379,15 +406,15 @@ void DevicePropertiesDialog::populateDeviceInformation() {
TQString mountPoint = sdevice->mountPath();
if (mountPoint == "") mountPoint = i18n("<none>");
- base->labelDiskMountpoint->setText(mountPoint);
+ base->labelDiskMountpoint->setText(formatDisplayString(mountPoint));
TQString fsName = sdevice->fileSystemName();
if (fsName == "") fsName = i18n("<unknown>");
- base->labelDiskFileSystemType->setText(fsName);
+ base->labelDiskFileSystemType->setText(formatDisplayString(fsName));
TQString volUUID = sdevice->diskUUID();
if (volUUID == "") volUUID = i18n("<none>");
- base->labelDiskUUID->setText(volUUID);
+ base->labelDiskUUID->setText(formatDisplayString(volUUID));
// Show status
TQString status_text = "<qt>";
@@ -663,19 +690,22 @@ void DevicePropertiesDialog::populateDeviceInformation() {
if ((*it) == TDESystemPowerState::Active) {
powerStatesString += i18n("Active<br>");
}
- if ((*it) == TDESystemPowerState::Standby) {
+ else if ((*it) == TDESystemPowerState::Standby) {
powerStatesString += i18n("Standby<br>");
}
- if ((*it) == TDESystemPowerState::Freeze) {
+ else if ((*it) == TDESystemPowerState::Freeze) {
powerStatesString += i18n("Freeze<br>");
}
- if ((*it) == TDESystemPowerState::Suspend) {
+ else if ((*it) == TDESystemPowerState::Suspend) {
powerStatesString += i18n("Suspend<br>");
}
- if ((*it) == TDESystemPowerState::Hibernate) {
+ else if ((*it) == TDESystemPowerState::Hibernate) {
powerStatesString += i18n("Hibernate<br>");
}
- if ((*it) == TDESystemPowerState::PowerOff) {
+ else if ((*it) == TDESystemPowerState::HybridSuspend) {
+ powerStatesString += i18n("Hybrid Suspend<br>");
+ }
+ else if ((*it) == TDESystemPowerState::PowerOff) {
powerStatesString += i18n("Power Off<br>");
}
}
@@ -697,19 +727,22 @@ void DevicePropertiesDialog::populateDeviceInformation() {
if ((*it) == TDESystemHibernationMethod::Unsupported) {
label = i18n("<none>");
}
- if ((*it) == TDESystemHibernationMethod::Platform) {
+ else if ((*it) == TDESystemHibernationMethod::Platform) {
label = i18n("Platform");
}
- if ((*it) == TDESystemHibernationMethod::Shutdown) {
+ else if ((*it) == TDESystemHibernationMethod::Suspend) {
+ label = i18n("Suspend");
+ }
+ else if ((*it) == TDESystemHibernationMethod::Shutdown) {
label = i18n("Shutdown");
}
- if ((*it) == TDESystemHibernationMethod::Reboot) {
+ else if ((*it) == TDESystemHibernationMethod::Reboot) {
label = i18n("Reboot");
}
- if ((*it) == TDESystemHibernationMethod::TestProc) {
+ else if ((*it) == TDESystemHibernationMethod::TestProc) {
label = i18n("Test Procedure");
}
- if ((*it) == TDESystemHibernationMethod::Test) {
+ else if ((*it) == TDESystemHibernationMethod::Test) {
label = i18n("Test");
}
base->comboSystemHibernationMethod->insertItem(label, i);
@@ -723,6 +756,7 @@ void DevicePropertiesDialog::populateDeviceInformation() {
base->labelSystemUserCanFreeze->setText((rdevice->canFreeze())?i18n("Yes"):i18n("No"));
base->labelSystemUserCanSuspend->setText((rdevice->canSuspend())?i18n("Yes"):i18n("No"));
base->labelSystemUserCanHibernate->setText((rdevice->canHibernate())?i18n("Yes"):i18n("No"));
+ base->labelSystemUserCanHybridSuspend->setText((rdevice->canHybridSuspend())?i18n("Yes"):i18n("No"));
base->labelSystemUserCanPowerOff->setText((rdevice->canPowerOff())?i18n("Yes"):i18n("No"));
base->labelSystemHibernationSpace->setText((rdevice->diskSpaceNeededForHibernation()<0)?i18n("<unknown>"):TDEHardwareDevices::bytesToFriendlySizeString(rdevice->diskSpaceNeededForHibernation()));
@@ -753,6 +787,73 @@ void DevicePropertiesDialog::populateDeviceInformation() {
}
base->labelEventSwitchActive->setText(activeSwitches);
}
+
+ if (m_device->type() == TDEGenericDeviceType::CryptographicCard) {
+ TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(m_device);
+
+ connect(cdevice, TQT_SIGNAL(cardInserted(TDECryptographicCardDevice*)), this, TQT_SLOT(cryptographicCardInserted()));
+ connect(cdevice, TQT_SIGNAL(cardRemoved(TDECryptographicCardDevice*)), this, TQT_SLOT(cryptographicCardRemoved()));
+
+ updateCryptographicCardStatusDisplay();
+ }
+ }
+}
+
+void DevicePropertiesDialog::cryptographicCardInserted() {
+ updateCryptographicCardStatusDisplay();
+}
+
+void DevicePropertiesDialog::cryptographicCardRemoved() {
+ updateCryptographicCardStatusDisplay();
+}
+
+void DevicePropertiesDialog::updateCryptographicCardStatusDisplay() {
+ TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(m_device);
+
+ int status = cdevice->cardPresent();
+ if ((status < 0) ||(status > 1)) {
+ base->labelCardStatus->setText(i18n("Unknown"));
+ base->labelCardCertificates->setText("");
+ base->groupCardCerts->hide();
+ }
+ else if (status == 0) {
+ base->labelCardStatus->setText(i18n("Empty"));
+ base->labelCardCertificates->setText("");
+ base->groupCardCerts->hide();
+ }
+ else if (status == 1) {
+ base->labelCardStatus->setText(i18n("Inserted") + TQString("<br>") + i18n("ATR: %1").arg(cdevice->cardATR()));
+
+ X509CertificatePtrList certList = cdevice->cardX509Certificates();
+
+ if (certList.count() > 0) {
+ // Assemble list of certificates on card
+ unsigned int certificate_number = 1;
+ TQString certInfo = "<qt>";
+ X509CertificatePtrList::iterator it;
+ for (it = certList.begin(); it != certList.end(); ++it) {
+ KSSLCertificate* tdeCert = KSSLCertificate::fromX509(*it);
+ KSSLCertificate::KSSLValidation validationStatus = tdeCert->validate();
+ certInfo += i18n("Certificate #%1").arg(certificate_number) + ":<br>";
+ certInfo += i18n("Subject") + ": " + tdeCert->getSubject() + "<br>";
+ certInfo += i18n("Issuer") + ": " + tdeCert->getIssuer() + "<br>";
+ certInfo += i18n("Status") + ": " + KSSLCertificate::verifyText(validationStatus) + "<br>";
+ certInfo += i18n("Valid From") + ": " + tdeCert->getNotBefore() + "<br>";
+ certInfo += i18n("Valid Until") + ": " + tdeCert->getNotAfter() + "<br>";
+ certInfo += i18n("Serial Number") + ": " + tdeCert->getSerialNumber() + "<br>";
+ certInfo += i18n("MD5 Digest") + ": " + tdeCert->getMD5DigestText() + "<br>";
+ certInfo += "<p>";
+ delete tdeCert;
+ certificate_number++;
+ }
+ certInfo += "</qt>";
+ base->labelCardCertificates->setText(certInfo);
+ base->groupCardCerts->show();
+ }
+ else {
+ base->labelCardCertificates->setText("");
+ base->groupCardCerts->hide();
+ }
}
}
@@ -825,6 +926,293 @@ void DevicePropertiesDialog::unmountDisk() {
populateDeviceInformation();
}
+void DevicePropertiesDialog::cryptLUKSAddKey() {
+ int retcode;
+
+ if (m_device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
+
+ TQListViewItem* lvi = base->cryptLUKSKeySlotList->selectedItem();
+ if (lvi) {
+ TDECryptographicCardDevice* cdevice = NULL;
+ unsigned int key_slot = lvi->text(0).toUInt();
+ bool allow_card = false;
+ bool use_card = false;
+ bool luks_card_key_modified = false;
+ KSSLCertificate* card_cert = NULL;
+ X509* card_cert_x509;
+ TQString disk_uuid = sdevice->diskUUID();
+ TDEGenericDevice *hwdevice;
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEGenericHardwareList cardReaderList = hwdevices->listByDeviceClass(TDEGenericDeviceType::CryptographicCard);
+ for (hwdevice = cardReaderList.first(); hwdevice; hwdevice = cardReaderList.next()) {
+ cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice);
+ X509CertificatePtrList certList = cdevice->cardX509Certificates();
+ if (certList.count() > 0) {
+ allow_card = true;
+ card_cert_x509 = certList[0];
+ card_cert = KSSLCertificate::fromX509(certList[0]);
+ }
+ }
+ TQByteArray new_password;
+ CryptPasswordDialog* passDlg = new CryptPasswordDialog(this, i18n("Enter the new LUKS password for key slot %1").arg(key_slot), TQString::null, allow_card, card_cert, &use_card);
+ if (passDlg->exec() == TQDialog::Accepted) {
+ new_password = passDlg->password();
+ if (allow_card && use_card) {
+ // Create new private key for disk device
+ if (!TQDir("/etc/trinity/luks").exists()) {
+ TQDir directory;
+ if (!directory.mkdir("/etc/trinity/luks", true)) {
+ KMessageBox::error(this, i18n("<qt><b>Key creation failed</b><br>Please check that you have write access to /etc/trinity and try again</qt>"), i18n("Key creation failure"));
+ delete card_cert;
+ return;
+ }
+ }
+ if (!TQDir("/etc/trinity/luks/card").exists()) {
+ TQDir directory;
+ if (!directory.mkdir("/etc/trinity/luks/card", true)) {
+ KMessageBox::error(this, i18n("<qt><b>Key creation failed</b><br>Please check that you have write access to /etc/trinity/luks and try again</qt>"), i18n("Key creation failure"));
+ delete card_cert;
+ return;
+ }
+ }
+ TQString cryptoFileName = TQString("/etc/trinity/luks/card/%1_slot%2").arg(disk_uuid).arg(key_slot);
+ TQFile file(cryptoFileName);
+ if (file.exists()) {
+ if (KMessageBox::warningYesNo(this, i18n("<qt><b>You are about to overwrite an existing card key for LUKS key slot %1</b><br>This action cannot be undone<p>Are you sure you want to proceed?</qt>").arg(key_slot), i18n("Confirmation Required")) != KMessageBox::Yes) {
+ delete card_cert;
+ return;
+ }
+ }
+ if (file.open(IO_WriteOnly)) {
+ TQByteArray randomKey;
+ TQByteArray encryptedRandomKey;
+
+ // Create a new secret key using the public key from the card certificate
+ if (TDECryptographicCardDevice::createNewSecretRSAKeyFromCertificate(randomKey, encryptedRandomKey, card_cert_x509) < 0) {
+ KMessageBox::error(this, i18n("<qt><b>Key creation failed</b><br>Unable to create new secret key using the provided X509 certificate</qt>"), i18n("Key creation failure"));
+ delete card_cert;
+ return;
+ }
+
+ // Write the encrypted key file to disk
+ file.writeBlock(encryptedRandomKey, encryptedRandomKey.size());
+ file.close();
+
+ // Use the secret key as the LUKS passcode
+ new_password = randomKey;
+ luks_card_key_modified = true;
+ }
+ else {
+ KMessageBox::error(this, i18n("<qt><b>Key creation failed</b><br>Please check that you have write access to /etc/trinity/luks/card and try again</qt>"), i18n("Key creation failure"));
+ delete card_cert;
+ return;
+ }
+ }
+ delete passDlg;
+ if (!sdevice->cryptOperationsUnlockPasswordSet()) {
+ TQCString password;
+ passDlg = new CryptPasswordDialog(this, i18n("Enter the LUKS device unlock password"), TQString::null, allow_card, card_cert, &use_card);
+ if (passDlg->exec() == TQDialog::Accepted) {
+ TQByteArray unlockPassword = passDlg->password();
+ if (use_card) {
+ // List all matching keys in directory and try each in turn...
+ TQDir luksKeyDir("/etc/trinity/luks/card/");
+ luksKeyDir.setFilter(TQDir::Files);
+ luksKeyDir.setSorting(TQDir::Unsorted);
+
+ TQValueList<TQByteArray> luksCryptedList;
+ TQValueList<TQByteArray> luksDecryptedList;
+ TQValueList<int> luksSlotNumberList;
+
+ const TQFileInfoList *luksKeyDirList = luksKeyDir.entryInfoList();
+ TQFileInfoListIterator it(*luksKeyDirList);
+ TQFileInfo *luksKeyFileInfo;
+ TQString errstr;
+ while ((luksKeyFileInfo = it.current()) != 0) {
+ if (luksKeyFileInfo->fileName().startsWith(disk_uuid) && luksKeyFileInfo->fileName().contains("_slot")) {
+ // Found candidate, try decryption
+ TQFile luksKeyFile(luksKeyFileInfo->absFilePath());
+ if (luksKeyFile.open(IO_ReadOnly)) {
+ TQByteArray keycrypted = luksKeyFile.readAll();
+ luksCryptedList.append(keycrypted);
+
+ // Parse the file name and find the matching key slot
+ int current_card_keyslot = -1;
+ TQString fileName = luksKeyFile.name();
+ int pos = fileName.find("_slot");
+ if (pos >= 0) {
+ fileName.remove(0, pos + strlen("_slot"));
+ current_card_keyslot = fileName.toInt();
+ luksSlotNumberList.append(current_card_keyslot);
+ }
+ }
+ }
+ ++it;
+ }
+
+ // Decrypt LUKS keys
+ TQValueList<int> retCodeList;
+ retcode = cdevice->decryptDataEncryptedWithCertPublicKey(luksCryptedList, luksDecryptedList, retCodeList, &errstr);
+ TQValueList<TQByteArray>::iterator it2;
+ TQValueList<int>::iterator it3;
+ TQValueList<int>::iterator it4;
+ for (it2 = luksDecryptedList.begin(), it3 = retCodeList.begin(), it4 = luksSlotNumberList.begin(); it2 != luksDecryptedList.end(); ++it2, ++it3, ++it4) {
+ TQByteArray luksKeyData = *it2;
+ retcode = *it3;
+ int current_card_keyslot = *it4;
+ if (retcode == -3) {
+ // User cancelled
+ break;
+ }
+ if (retcode < 0) {
+ // ERROR
+ }
+ else {
+ // Key decryption successful, try to open LUKS device...
+ sdevice->cryptSetOperationsUnlockPassword(luksKeyData);
+ if (sdevice->cryptCheckKey(current_card_keyslot) == TDELUKSResult::Success) {
+ break;
+ }
+ else {
+ sdevice->cryptClearOperationsUnlockPassword();
+ }
+ }
+ }
+ if (!sdevice->cryptOperationsUnlockPasswordSet()) {
+ KMessageBox::error(this, i18n("<qt><b>Key write failed</b><br>Please check the LUKS password and try again</qt>"), i18n("Key write failure"));
+ }
+ }
+ else {
+ sdevice->cryptSetOperationsUnlockPassword(unlockPassword);
+ }
+ }
+ delete passDlg;
+ }
+ if (sdevice->cryptOperationsUnlockPasswordSet()) {
+ if ((lvi->text(1) == sdevice->cryptKeySlotFriendlyName(TDELUKSKeySlotStatus::Inactive)) || (KMessageBox::warningYesNo(this, i18n("<qt><b>You are about to overwrite the key in key slot %1</b><br>This action cannot be undone<p>Are you sure you want to proceed?</qt>").arg(key_slot), i18n("Confirmation Required")) == KMessageBox::Yes)) {
+ if (sdevice->cryptAddKey(key_slot, new_password) != TDELUKSResult::Success) {
+ sdevice->cryptClearOperationsUnlockPassword();
+ KMessageBox::error(this, i18n("<qt><b>Key write failed</b><br>Please check the LUKS password and try again</qt>"), i18n("Key write failure"));
+ }
+ else {
+ if (luks_card_key_modified) {
+ if (KMessageBox::warningYesNo(this, i18n("<qt><b>You have created a new card-dependent key</b><br>Card-dependent keys work in conjunction with an encrypted key file stored on the host system.<br>When a card is used to boot, card-dependent keys must be updated in the initramfs image to become usable.<p>Would you like to update the initramfs image now?</qt>"), i18n("Update Required")) == KMessageBox::Yes) {
+ // Update the initramfs
+ if (system("update-initramfs -u -k all") != 0) {
+ KMessageBox::error(this, i18n("<qt><b>Initramfs update failed</b><br>Card-dependent keys may not be available for use until the root storage device is available / unlocked</qt>"), i18n("Initramfs update failure"));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ else {
+ delete passDlg;
+ }
+ delete card_cert;
+ }
+ }
+
+ cryptLUKSPopulateList();
+}
+
+void DevicePropertiesDialog::cryptLUKSDelKey() {
+ if (m_device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
+
+ TQListViewItem* lvi = base->cryptLUKSKeySlotList->selectedItem();
+ if (lvi) {
+ unsigned int key_slot = lvi->text(0).toUInt();
+ if (KMessageBox::warningYesNo(this, i18n("<qt><b>You are about to purge the key in key slot %1</b><br>This action cannot be undone<p>Are you sure you want to proceed?</qt>").arg(lvi->text(0)), i18n("Confirmation Required")) == KMessageBox::Yes) {
+ if (sdevice->cryptKeySlotStatus()[key_slot] & TDELUKSKeySlotStatus::Last) {
+ if (KMessageBox::warningYesNo(this, i18n("<qt><b>You are about to purge the last active key from the device!</b><p>This action will render the contents of the encrypted device permanently inaccessable and cannot be undone<p>Are you sure you want to proceed?</qt>"), i18n("Confirmation Required")) != KMessageBox::Yes) {
+ cryptLUKSPopulateList();
+ return;
+ }
+ }
+ if (sdevice->cryptDelKey(key_slot) != TDELUKSResult::Success) {
+ sdevice->cryptClearOperationsUnlockPassword();
+ KMessageBox::error(this, i18n("<qt><b>Key purge failed</b><br>The key in key slot %1 is still active</qt>").arg(lvi->text(0)), i18n("Key purge failure"));
+ }
+ else {
+ // See if there was a cryptographic card key associated with this device and slot
+ TQString disk_uuid = sdevice->diskUUID();
+ TQDir luksKeyDir("/etc/trinity/luks/card/");
+ luksKeyDir.setFilter(TQDir::Files);
+ luksKeyDir.setSorting(TQDir::Unsorted);
+
+ const TQFileInfoList *luksKeyDirList = luksKeyDir.entryInfoList();
+ TQFileInfoListIterator it(*luksKeyDirList);
+ TQFileInfo *luksKeyFileInfo;
+ TQString errstr;
+ while ((luksKeyFileInfo = it.current()) != 0) {
+ if (luksKeyFileInfo->fileName().startsWith(disk_uuid) && luksKeyFileInfo->fileName().contains("_slot")) {
+ // Parse the file name and find the matching key slot
+ int current_card_keyslot = -1;
+ TQString fileName = luksKeyFileInfo->absFilePath();
+ TQString fileNameSlot = fileName;
+ int pos = fileNameSlot.find("_slot");
+ if (pos >= 0) {
+ fileNameSlot.remove(0, pos + strlen("_slot"));
+ current_card_keyslot = fileNameSlot.toInt();
+ if (current_card_keyslot >= 0) {
+ if ((unsigned int)current_card_keyslot == key_slot) {
+ if (!TQFile(fileName).remove()) {
+ KMessageBox::error(this, i18n("<qt><b>Card key purge failed</b><br>The card key for slot %1 has been fully deactivated but is still present on your system<br>This does not present a significant security risk</qt>").arg(lvi->text(0)), i18n("Key purge failure"));
+ }
+ break;
+ }
+ }
+ }
+ }
+ ++it;
+ }
+ }
+ }
+ }
+ }
+
+ cryptLUKSPopulateList();
+}
+
+void DevicePropertiesDialog::cryptLUKSPopulateList() {
+ unsigned int i;
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
+
+ base->cryptLUKSKeySlotList->clear();
+ unsigned int count = sdevice->cryptKeySlotCount();
+ TDELUKSKeySlotStatusList status = sdevice->cryptKeySlotStatus();
+ for (i = 0; i < count; i++) {
+ new TQListViewItem(base->cryptLUKSKeySlotList, TQString("%1").arg(i), sdevice->cryptKeySlotFriendlyName(status[i]));
+ }
+
+ processLockouts();
+}
+
+void DevicePropertiesDialog::processLockouts() {
+ if (m_device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(m_device);
+
+ TQListViewItem* lvi = base->cryptLUKSKeySlotList->selectedItem();
+ if (lvi) {
+ if (lvi->text(1) == sdevice->cryptKeySlotFriendlyName(TDELUKSKeySlotStatus::Active)) {
+ base->cryptLUKSAddKey->setEnabled(true);
+ base->cryptLUKSDelKey->setEnabled(true);
+ }
+ else {
+ base->cryptLUKSAddKey->setEnabled(true);
+ base->cryptLUKSDelKey->setEnabled(false);
+ }
+ }
+ else {
+ base->cryptLUKSAddKey->setEnabled(false);
+ base->cryptLUKSDelKey->setEnabled(false);
+ }
+ }
+}
+
void DevicePropertiesDialog::virtual_hook( int id, void* data )
{ KDialogBase::virtual_hook( id, data ); }
diff --git a/kcontrol/hwmanager/devicepropsdlg.h b/kcontrol/hwmanager/devicepropsdlg.h
index bbff43977..e958d39ba 100644
--- a/kcontrol/hwmanager/devicepropsdlg.h
+++ b/kcontrol/hwmanager/devicepropsdlg.h
@@ -191,6 +191,16 @@ private slots:
void mountDisk();
void unmountDisk();
+ void cryptLUKSAddKey();
+ void cryptLUKSDelKey();
+ void cryptLUKSPopulateList();
+
+ void cryptographicCardInserted();
+ void cryptographicCardRemoved();
+ void updateCryptographicCardStatusDisplay();
+
+ void processLockouts();
+
private:
TDEGenericDevice* m_device;
DevicePropertiesDialogBase* base;
diff --git a/kcontrol/hwmanager/devicepropsdlgbase.ui b/kcontrol/hwmanager/devicepropsdlgbase.ui
index 74afdf5f3..0ea911c71 100644
--- a/kcontrol/hwmanager/devicepropsdlgbase.ui
+++ b/kcontrol/hwmanager/devicepropsdlgbase.ui
@@ -80,7 +80,7 @@
<string>Device Name:</string>
</property>
</widget>
- <widget class="TQLabel" row="1" column="1" colspan="3">
+ <widget class="KActiveLabel" row="1" column="1" colspan="3">
<property name="name">
<cstring>labelDeviceName</cstring>
</property>
@@ -93,7 +93,7 @@
<string>Device Node:</string>
</property>
</widget>
- <widget class="TQLabel" row="2" column="1" colspan="3">
+ <widget class="KActiveLabel" row="2" column="1" colspan="3">
<property name="name">
<cstring>labelDeviceNode</cstring>
</property>
@@ -106,7 +106,7 @@
<string>System Path:</string>
</property>
</widget>
- <widget class="TQLabel" row="3" column="1" colspan="3">
+ <widget class="KActiveLabel" row="3" column="1" colspan="3">
<property name="name">
<cstring>labelSystemPath</cstring>
</property>
@@ -119,7 +119,7 @@
<string>Subsystem Type:</string>
</property>
</widget>
- <widget class="TQLabel" row="4" column="1" colspan="3">
+ <widget class="KActiveLabel" row="4" column="1" colspan="3">
<property name="name">
<cstring>labelSubsytemType</cstring>
</property>
@@ -132,7 +132,7 @@
<string>Device Driver:</string>
</property>
</widget>
- <widget class="TQLabel" row="5" column="1" colspan="3">
+ <widget class="KActiveLabel" row="5" column="1" colspan="3">
<property name="name">
<cstring>labelDeviceDriver</cstring>
</property>
@@ -145,7 +145,7 @@
<string>Device Class:</string>
</property>
</widget>
- <widget class="TQLabel" row="6" column="1" colspan="3">
+ <widget class="KActiveLabel" row="6" column="1" colspan="3">
<property name="name">
<cstring>labelDeviceClass</cstring>
</property>
@@ -158,7 +158,7 @@
<string>Manufacturer:</string>
</property>
</widget>
- <widget class="TQLabel" row="7" column="1" colspan="3">
+ <widget class="KActiveLabel" row="7" column="1" colspan="3">
<property name="name">
<cstring>labelVendorName</cstring>
</property>
@@ -171,7 +171,7 @@
<string>Model:</string>
</property>
</widget>
- <widget class="TQLabel" row="8" column="1" colspan="3">
+ <widget class="KActiveLabel" row="8" column="1" colspan="3">
<property name="name">
<cstring>labelVendorModel</cstring>
</property>
@@ -184,7 +184,7 @@
<string>Serial Number:</string>
</property>
</widget>
- <widget class="TQLabel" row="9" column="1" colspan="3">
+ <widget class="KActiveLabel" row="9" column="1" colspan="3">
<property name="name">
<cstring>labelSerialNumber</cstring>
</property>
@@ -197,7 +197,7 @@
<string>Bus ID:</string>
</property>
</widget>
- <widget class="TQLabel" row="10" column="1" colspan="3">
+ <widget class="KActiveLabel" row="10" column="1" colspan="3">
<property name="name">
<cstring>labelBusID</cstring>
</property>
@@ -210,7 +210,7 @@
<string>Technical Details:</string>
</property>
</widget>
- <widget class="TQLabel" row="11" column="1" colspan="3">
+ <widget class="KActiveLabel" row="11" column="1" colspan="3">
<property name="name">
<cstring>labelModalias</cstring>
</property>
@@ -266,7 +266,7 @@
<string>Mountpoint:</string>
</property>
</widget>
- <widget class="TQLabel" row="0" column="1" colspan="1">
+ <widget class="KActiveLabel" row="0" column="1" colspan="1">
<property name="name">
<cstring>labelDiskMountpoint</cstring>
</property>
@@ -279,7 +279,7 @@
<string>Filesystem Type:</string>
</property>
</widget>
- <widget class="TQLabel" row="1" column="1" colspan="1">
+ <widget class="KActiveLabel" row="1" column="1" colspan="1">
<property name="name">
<cstring>labelDiskFileSystemType</cstring>
</property>
@@ -292,7 +292,7 @@
<string>Volume UUID:</string>
</property>
</widget>
- <widget class="TQLabel" row="2" column="1" colspan="1">
+ <widget class="KActiveLabel" row="2" column="1" colspan="1">
<property name="name">
<cstring>labelDiskUUID</cstring>
</property>
@@ -308,7 +308,7 @@
<set>AlignTop|AlignLeft</set>
</property>
</widget>
- <widget class="TQLabel" row="3" column="1" colspan="1">
+ <widget class="KActiveLabel" row="3" column="1" colspan="1">
<property name="name">
<cstring>labelDiskStatus</cstring>
</property>
@@ -326,7 +326,7 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="TQPushButton" row="0" column="0" colspan="1">
+ <widget class="KPushButton" row="0" column="0" colspan="1">
<property name="name">
<cstring>buttonDiskMount</cstring>
</property>
@@ -334,7 +334,7 @@
<string>Mount</string>
</property>
</widget>
- <widget class="TQPushButton" row="0" column="1" colspan="1">
+ <widget class="KPushButton" row="0" column="1" colspan="1">
<property name="name">
<cstring>buttonDiskUnmount</cstring>
</property>
@@ -365,6 +365,95 @@
</widget>
<widget class="TQWidget">
<property name="name">
+ <cstring>tabDiskCrypt</cstring>
+ </property>
+ <attribute name="title">
+ <string>LUKS</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>groupLUKSProps</cstring>
+ </property>
+ <property name="title">
+ <string>LUKS Information</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TDEListView" row="0" column="0" colspan="2">
+ <column>
+ <property name="text">
+ <string>Slot Number</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>cryptLUKSKeySlotList</cstring>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="KPushButton" row="1" column="0" colspan="1">
+ <property name="name">
+ <cstring>cryptLUKSAddKey</cstring>
+ </property>
+ <property name="text">
+ <string>Install new password into keyslot</string>
+ </property>
+ </widget>
+ <widget class="KPushButton" row="1" column="1" colspan="1">
+ <property name="name">
+ <cstring>cryptLUKSDelKey</cstring>
+ </property>
+ <property name="text">
+ <string>Delete existing password from keyslot</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="8" column="0">
+ <property name="name" stdset="0">
+ <cstring>Spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ <widget class="TQWidget">
+ <property name="name">
<cstring>tabCPU</cstring>
</property>
<attribute name="title">
@@ -1419,7 +1508,20 @@
<cstring>labelSystemUserCanHibernate</cstring>
</property>
</widget>
- <widget class="TQLabel" row="7" column="0" colspan="1">
+ <widget class="TQLabel" row="7" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>User Can Request Hybrid Suspend</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="7" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemUserCanHybridSuspend</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="8" column="0" colspan="1">
<property name="name">
<cstring>unnamed</cstring>
</property>
@@ -1427,7 +1529,7 @@
<string>User Can Request Shutdown</string>
</property>
</widget>
- <widget class="TQLabel" row="7" column="1" colspan="1">
+ <widget class="TQLabel" row="8" column="1" colspan="1">
<property name="name">
<cstring>labelSystemUserCanPowerOff</cstring>
</property>
@@ -1528,6 +1630,84 @@
</spacer>
</grid>
</widget>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>tabCryptographicCard</cstring>
+ </property>
+ <attribute name="title">
+ <string>Cryptographic Card</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>groupInput</cstring>
+ </property>
+ <property name="title">
+ <string>Card Status</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>labelCardStatus</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="alignment">
+ <set>AlignTop|AlignLeft</set>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>groupCardCerts</cstring>
+ </property>
+ <property name="title">
+ <string>Card Certificates</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>labelCardCertificates</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="alignment">
+ <set>AlignTop|AlignLeft</set>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="8" column="0">
+ <property name="name" stdset="0">
+ <cstring>Spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
</widget>
</grid>
</widget>
diff --git a/kcontrol/hwmanager/hwdevicetray-autostart.desktop b/kcontrol/hwmanager/hwdevicetray-autostart.desktop
new file mode 100644
index 000000000..57bd9b893
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray-autostart.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=tdehwdevicetray
+GenericName=Hardware Device Monitor
+Comment=Monitor hardware devices from the system tray
+Exec=tdehwdevicetray
+Icon=kcmdevices
+X-TDE-autostart-after=panel
+X-TDE-StartupNotify=false
+X-TDE-UniqueApplet=true
+X-TDE-autostart-condition=tdehwdevicetrayrc:General:Autostart:true
+Categories=System;Applet;
diff --git a/kcontrol/hwmanager/hwdevicetray.cpp b/kcontrol/hwmanager/hwdevicetray.cpp
new file mode 100644
index 000000000..b6ef8a6ad
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray.cpp
@@ -0,0 +1,431 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#include <tqtimer.h>
+#include <tqimage.h>
+#include <tqtooltip.h>
+#include <tqfileinfo.h>
+
+#include <krun.h>
+#include <tdeaction.h>
+#include <tdeapplication.h>
+#include <kcmultidialog.h>
+#include <kdebug.h>
+#include <khelpmenu.h>
+#include <kiconloader.h>
+#include <tdelocale.h>
+#include <tdepopupmenu.h>
+#include <kstdaction.h>
+#include <kstdguiitem.h>
+#include <tdeglobal.h>
+#include <tdemessagebox.h>
+#include <kpassivepopup.h>
+#include <kstandarddirs.h>
+
+#include <dcopclient.h>
+
+#include <cstdlib>
+#include <unistd.h>
+
+#include "hwdevicetray_configdialog.h"
+
+#include "hwdevicetray.h"
+
+HwDeviceSystemTray::HwDeviceSystemTray(TQWidget* parent, const char *name)
+ : KSystemTray(parent, name) {
+
+ // Create notifier
+ m_hardwareNotifierContainer = new TDEPassivePopupStackContainer();
+ connect(m_hardwareNotifierContainer, TQT_SIGNAL(popupClicked(KPassivePopup*, TQPoint, TQString)), this, TQT_SLOT(devicePopupClicked(KPassivePopup*, TQPoint, TQString)));
+
+ // Create help submenu
+ m_help = new KHelpMenu(this, TDEGlobal::instance()->aboutData(), false, actionCollection());
+ TDEPopupMenu *help = m_help->menu();
+ help->connectItem(KHelpMenu::menuHelpContents, this, TQT_SLOT(slotHelpContents()));
+
+ setPixmap(KSystemTray::loadIcon("kcmdevices"));
+ setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
+ connect(this, TQT_SIGNAL(quitSelected()), this, TQT_SLOT(_quit()));
+ TQToolTip::add(this, i18n("Hardware device monitor"));
+ m_parent = parent;
+
+ globalKeys = new TDEGlobalAccel(TQT_TQOBJECT(this));
+ TDEGlobalAccel* keys = globalKeys;
+ #include "hwdevicetray_bindings.cpp"
+ // the keys need to be read from tdeglobals, not kickerrc
+ globalKeys->readSettings();
+ globalKeys->setEnabled(true);
+ globalKeys->updateConnections();
+
+ connect(kapp, TQT_SIGNAL(settingsChanged(int)), TQT_SLOT(slotSettingsChanged(int)));
+
+ new TDEActionMenu(i18n("Open Device"), SmallIcon("connect_creating", TQIconSet::Automatic), actionCollection(), "mount_menu");
+ new TDEActionMenu(i18n("Eject Device"), SmallIcon("connect_no", TQIconSet::Automatic), actionCollection(), "unmount_menu");
+
+#ifdef __TDE_HAVE_TDEHWLIB
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ connect(hwdevices, TQT_SIGNAL(hardwareAdded(TDEGenericDevice*)), this, TQT_SLOT(deviceAdded(TDEGenericDevice*)));
+ connect(hwdevices, TQT_SIGNAL(hardwareRemoved(TDEGenericDevice*)), this, TQT_SLOT(deviceRemoved(TDEGenericDevice*)));
+ connect(hwdevices, TQT_SIGNAL(hardwareUpdated(TDEGenericDevice*)), this, TQT_SLOT(deviceChanged(TDEGenericDevice*)));
+#endif
+}
+
+HwDeviceSystemTray::~HwDeviceSystemTray() {
+ delete m_hardwareNotifierContainer;
+}
+
+/*!
+ * \b TQT_SLOT which called if hwdevicetray is exited by the user. In this case the user
+ * is asked through a yes/no box if "HwDeviceTray should start automatically on log in" and the
+ * result is written to the KDE configfile.
+ */
+void HwDeviceSystemTray::_quit () {
+ r_config = new KSimpleConfig("hwdevicetrayrc");
+
+ TQString tmp1 = i18n ("Start hardware device tray automatically when you log in?");
+ int tmp2 = KMessageBox::questionYesNo (0, tmp1, i18n("Question"), i18n("Start Automatically"), i18n("Do Not Start"));
+ r_config->setGroup("General");
+ r_config->writeEntry ("Autostart", tmp2 == KMessageBox::Yes);
+ r_config->sync ();
+
+ exit(0);
+}
+
+void HwDeviceSystemTray::resizeTrayIcon () {
+ // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes
+ TQPixmap origpixmap;
+ TQPixmap scaledpixmap;
+ TQImage newIcon;
+ origpixmap = KSystemTray::loadSizedIcon("kcmdevices", width());
+ newIcon = origpixmap;
+ newIcon = newIcon.smoothScale(width(), height());
+ scaledpixmap = newIcon;
+ setPixmap(scaledpixmap);
+}
+
+void HwDeviceSystemTray::resizeEvent (TQResizeEvent *) {
+ // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes
+ resizeTrayIcon();
+}
+
+void HwDeviceSystemTray::showEvent (TQShowEvent *) {
+ // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes
+ resizeTrayIcon();
+}
+
+void HwDeviceSystemTray::mousePressEvent(TQMouseEvent* e) {
+ // Popup the context menu with left-click
+ if (e->button() == Qt::LeftButton) {
+ contextMenuAboutToShow(contextMenu());
+ contextMenu()->popup(e->globalPos());
+ e->accept();
+ return;
+ }
+
+ KSystemTray::mousePressEvent(e);
+}
+
+bool HwDeviceSystemTray::isMonitoredDevice(TDEStorageDevice* sdevice) {
+ // Type selection logic largely duplicated from the media manager tdeioslave
+ if (((sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)
+ || sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem)
+ || sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio)
+ || sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank))
+ && !sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice)
+ && !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden)
+ && (sdevice->isDiskOfType(TDEDiskDeviceType::HDD)
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDROM))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDR))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDRW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDMO))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDMRRWW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDROM))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDRAM))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDR))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDRW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDRDL))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDRWDL))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSR))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRDL))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDPLUSRWDL))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::BDROM))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::BDR))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::BDRW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDROM))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDR))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDRW))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::CDVideo))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::DVDVideo))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::BDVideo))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::Floppy))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::Zip))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::Jaz))))
+ || (sdevice->isDiskOfType(TDEDiskDeviceType::Camera))) {
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
+void HwDeviceSystemTray::contextMenuAboutToShow(TDEPopupMenu* menu) {
+ menu->clear();
+ menu->setCheckable(true);
+
+ populateMenu(menu);
+
+ menu->insertTitle(SmallIcon("configure"), i18n("Global Configuration"));
+
+ TDEAction *actHardwareConfig = new TDEAction(i18n("Configure Hardware..."), SmallIconSet("kcmpci"), TDEShortcut(), TQT_TQOBJECT(this), TQT_SLOT(slotHardwareConfig()), actionCollection());
+ actHardwareConfig->plug(menu);
+
+ TDEAction *actShortcutKeys = new TDEAction(i18n("Configure Shortcut Keys..."), SmallIconSet("configure"), TDEShortcut(), TQT_TQOBJECT(this), TQT_SLOT(slotEditShortcutKeys()), actionCollection());
+ actShortcutKeys->plug(menu);
+
+ menu->insertItem(SmallIcon("help"), KStdGuiItem::help().text(), m_help->menu());
+ TDEAction *quitAction = actionCollection()->action(KStdAction::name(KStdAction::Quit));
+ quitAction->plug(menu);
+
+ m_menu = menu;
+}
+
+void HwDeviceSystemTray::configChanged() {
+ //
+}
+
+void HwDeviceSystemTray::populateMenu(TDEPopupMenu* menu) {
+ int lastMountIndex;
+ int lastUnmountIndex;
+ TDEGenericDevice *hwdevice;
+
+ TDEActionMenu* mountDiskActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("mount_menu"));
+ mountDiskActionMenu->popupMenu()->clear();
+ m_mountMenuIndexMap.clear();
+ TDEActionMenu* unmountDiskActionMenu = static_cast<TDEActionMenu*>(actionCollection()->action("unmount_menu"));
+ unmountDiskActionMenu->popupMenu()->clear();
+ m_mountMenuIndexMap.clear();
+
+ menu->insertTitle(SmallIcon("drive-harddisk"), i18n("Storage Devices"));
+
+ // Find all storage devices and add them to the popup menu
+ lastMountIndex = 1;
+ lastUnmountIndex = 1;
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEGenericHardwareList diskDeviceList = hwdevices->listByDeviceClass(TDEGenericDeviceType::Disk);
+ for (hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next()) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(hwdevice);
+ if (isMonitoredDevice(sdevice)) {
+ lastMountIndex = mountDiskActionMenu->popupMenu()->insertItem(hwdevice->icon(TDEIcon::SizeSmall), i18n("%1 (%2)").arg(sdevice->friendlyName(), sdevice->deviceNode()));
+ mountDiskActionMenu->popupMenu()->connectItem(lastMountIndex, this, TQT_SLOT(slotMountDevice(int)));
+ m_mountMenuIndexMap[lastMountIndex] = sdevice->diskUUID();
+ if (m_mountMenuIndexMap[lastMountIndex] == "") {
+ m_mountMenuIndexMap[lastMountIndex] = sdevice->systemPath();
+ }
+ if (sdevice->mountPath() != TQString::null) {
+ lastUnmountIndex = unmountDiskActionMenu->popupMenu()->insertItem(hwdevice->icon(TDEIcon::SizeSmall), i18n("%1 (%2)").arg(sdevice->friendlyName(), sdevice->deviceNode()));
+ unmountDiskActionMenu->popupMenu()->connectItem(lastUnmountIndex, this, TQT_SLOT(slotUnmountDevice(int)));
+ m_unmountMenuIndexMap[lastUnmountIndex] = sdevice->diskUUID();
+ if (m_unmountMenuIndexMap[lastMountIndex] == "") {
+ m_unmountMenuIndexMap[lastMountIndex] = sdevice->systemPath();
+ }
+ }
+ }
+ }
+
+ if (lastMountIndex == 0) {
+ mountDiskActionMenu->setEnabled(false);
+ }
+ else {
+ mountDiskActionMenu->setEnabled(true);
+ }
+ if (lastUnmountIndex == 0) {
+ unmountDiskActionMenu->setEnabled(false);
+ }
+ else {
+ unmountDiskActionMenu->setEnabled(true);
+ }
+
+ mountDiskActionMenu->plug(menu);
+ unmountDiskActionMenu->plug(menu);
+}
+
+void HwDeviceSystemTray::slotMountDevice(int parameter)
+{
+ TDEGenericDevice *hwdevice;
+ TQString uuid = m_mountMenuIndexMap[parameter];
+ if (uuid != "") {
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEGenericHardwareList diskDeviceList = hwdevices->listByDeviceClass(TDEGenericDeviceType::Disk);
+ for (hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next()) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(hwdevice);
+ if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid)) {
+ if (sdevice->isDiskOfType(TDEDiskDeviceType::Camera)) {
+ new KRun(TQString("media:/%1").arg(sdevice->friendlyName()));
+ }
+ else {
+ new KRun(TQString("system:/media/%1").arg(TQFileInfo(sdevice->deviceNode()).baseName(true)));
+ }
+ return;
+ }
+ }
+ }
+}
+
+void HwDeviceSystemTray::slotUnmountDevice(int parameter)
+{
+ TDEGenericDevice *hwdevice;
+ TQString uuid = m_unmountMenuIndexMap[parameter];
+ if (uuid != "") {
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEGenericHardwareList diskDeviceList = hwdevices->listByDeviceClass(TDEGenericDeviceType::Disk);
+ for (hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next()) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(hwdevice);
+ if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid)) {
+ if (sdevice->mountPath() != TQString::null) {
+ int retcode;
+ TQString errstr;
+ if (!sdevice->unmountDevice(&errstr, &retcode)) {
+ KMessageBox::error(0, i18n("<qt><b>Unable to eject device</b><p>Detailed error information:<br>%1 (code %2)</qt>").arg(errstr).arg(retcode), i18n("Eject Failed"));
+ }
+ return;
+ }
+ }
+ }
+ }
+}
+
+void HwDeviceSystemTray::slotHardwareConfig() {
+ KCMultiDialog *kcm = new KCMultiDialog(KDialogBase::Plain, i18n("Configure"), this);
+
+ kcm->addModule("hwmanager");
+ kcm->setPlainCaption(i18n("Configure Hardware"));
+ kcm->exec();
+}
+
+void HwDeviceSystemTray::slotSettingsChanged(int category) {
+ if (category == (int) TDEApplication::SETTINGS_SHORTCUTS) {
+ globalKeys->readSettings();
+ globalKeys->updateConnections();
+ }
+}
+
+void HwDeviceSystemTray::slotEditShortcutKeys() {
+ ConfigDialog *dlg = new ConfigDialog(globalKeys, true);
+
+ if (dlg->exec() == TQDialog::Accepted) {
+ dlg->commitShortcuts();
+ globalKeys->writeSettings(0, true);
+ globalKeys->updateConnections();
+ }
+
+ delete dlg;
+}
+
+void HwDeviceSystemTray::deviceAdded(TDEGenericDevice* device) {
+#ifdef __TDE_HAVE_TDEHWLIB
+ if (device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(device);
+ if (isMonitoredDevice(sdevice)) {
+ TQString uuid = sdevice->diskUUID();
+ if (uuid == "") {
+ uuid = sdevice->systemPath();
+ }
+ m_hardwareNotifierContainer->displayMessage(
+ i18n("A disk device has been added!"),
+ i18n("%1 (%2)").arg(sdevice->friendlyName(), sdevice->deviceNode()), SmallIcon("drive-harddisk"),
+ 0, 0, "ADD: " + uuid);
+ }
+ }
+#endif
+}
+
+void HwDeviceSystemTray::deviceRemoved(TDEGenericDevice* device) {
+#ifdef __TDE_HAVE_TDEHWLIB
+ if (device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(device);
+ if (isMonitoredDevice(sdevice)) {
+ TQString uuid = sdevice->diskUUID();
+ if (uuid == "") {
+ uuid = sdevice->systemPath();
+ }
+ m_hardwareNotifierContainer->displayMessage(
+ i18n("A disk device has been removed!"),
+ i18n("%1 (%2)").arg(sdevice->friendlyName(), sdevice->deviceNode()), SmallIcon("drive-harddisk"),
+ 0, 0, "REMOVE: " + uuid);
+ }
+ }
+#endif
+}
+
+void HwDeviceSystemTray::deviceChanged(TDEGenericDevice* device) {
+#ifdef __TDE_HAVE_TDEHWLIB
+ if (device->type() == TDEGenericDeviceType::Disk) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(device);
+ if (isMonitoredDevice(sdevice)) {
+ TQString uuid = sdevice->diskUUID();
+ if (uuid == "") {
+ uuid = sdevice->systemPath();
+ }
+ m_hardwareNotifierContainer->displayMessage(
+ i18n("A disk device has been changed!"),
+ i18n("%1 (%2)").arg(sdevice->friendlyName(), sdevice->deviceNode()), SmallIcon("drive-harddisk"),
+ 0, 0, "CHANGE: " + uuid);
+ }
+ }
+#endif
+}
+
+void HwDeviceSystemTray::devicePopupClicked(KPassivePopup* popup, TQPoint point, TQString uuid) {
+ TDEGenericDevice *hwdevice;
+ if (uuid.startsWith("ADD: ")) {
+ uuid = uuid.right(uuid.length() - strlen("ADD: "));
+ if (uuid != "") {
+ TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices();
+ TDEGenericHardwareList diskDeviceList = hwdevices->listByDeviceClass(TDEGenericDeviceType::Disk);
+ for (hwdevice = diskDeviceList.first(); hwdevice; hwdevice = diskDeviceList.next()) {
+ TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(hwdevice);
+ if ((sdevice->diskUUID() == uuid) || (sdevice->systemPath() == uuid)) {
+ // Pop up full media notification dialog
+ DCOPClient* dcopClient = TDEApplication::dcopClient();
+ TQByteArray data;
+ TQDataStream arg(data, IO_WriteOnly);
+ bool allowNotification = true;
+ if (sdevice->isDiskOfType(TDEDiskDeviceType::Camera)) {
+ arg << sdevice->friendlyName();
+ }
+ else {
+ arg << TQFileInfo(sdevice->deviceNode()).baseName(true);
+ }
+ arg << allowNotification;
+ dcopClient->send("kded", "medianotifier", "onMediumChange(TQString, bool)", data);
+ return;
+ }
+ }
+ }
+ }
+}
+
+void HwDeviceSystemTray::slotHelpContents() {
+ kapp->invokeHelp(TQString::null, "hwdevicetray");
+}
+
+#include "hwdevicetray.moc" \ No newline at end of file
diff --git a/kcontrol/hwmanager/hwdevicetray.desktop b/kcontrol/hwmanager/hwdevicetray.desktop
new file mode 100644
index 000000000..20a0297ce
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=tdehwdevicetray
+GenericName=Hardware Device Monitor
+Comment=Monitor hardware devices from the system tray
+Exec=tdehwdevicetray
+Icon=kcmdevices
+Type=Application
+OnlyShowIn=TDE;
+Categories=Qt;TDE;System;
+X-DocPath=tdehwdevicetray/index.html
diff --git a/kcontrol/hwmanager/hwdevicetray.h b/kcontrol/hwmanager/hwdevicetray.h
new file mode 100644
index 000000000..d49f5b4b3
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray.h
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#ifndef TDEHWDEVICETRAY_H
+#define TDEHWDEVICETRAY_H
+
+#include <tqptrlist.h>
+
+#include <ksystemtray.h>
+#include <kglobalaccel.h>
+#include <ksimpleconfig.h>
+#include <tdepassivepopupstack.h>
+
+#ifdef __TDE_HAVE_TDEHWLIB
+#include <tdehardwaredevices.h>
+#else
+#define TDEGenericDevice void
+#endif
+
+class KHelpMenu;
+class TDEPopupMenu;
+
+typedef TQMap<int, TQString> TQStringMap;
+
+class HwDeviceSystemTray : public KSystemTray
+{
+ Q_OBJECT
+
+public:
+ HwDeviceSystemTray(TQWidget* parent = 0, const char *name = 0);
+ ~HwDeviceSystemTray();
+ TDEGlobalAccel *globalKeys;
+
+ virtual void contextMenuAboutToShow(TDEPopupMenu* menu);
+
+ void configChanged();
+
+protected slots:
+ void slotHardwareConfig();
+ void slotEditShortcutKeys();
+ void slotSettingsChanged(int category);
+ void slotHelpContents();
+
+ void slotMountDevice(int parameter);
+ void slotUnmountDevice(int parameter);
+
+protected:
+ void mousePressEvent(TQMouseEvent *e);
+ void resizeEvent(TQResizeEvent *);
+ void showEvent(TQShowEvent *);
+
+private slots:
+ void _quit();
+ void deviceAdded(TDEGenericDevice*);
+ void deviceRemoved(TDEGenericDevice*);
+ void deviceChanged(TDEGenericDevice*);
+
+ void devicePopupClicked(KPassivePopup*, TQPoint, TQString);
+
+private:
+ bool isMonitoredDevice(TDEStorageDevice* sdevice);
+
+private:
+ void populateMenu(TDEPopupMenu* menu);
+ void resizeTrayIcon();
+
+ bool m_popupUp;
+ KHelpMenu* m_help;
+
+ TQWidget* m_parent;
+ TDEPassivePopupStackContainer* m_hardwareNotifierContainer;
+
+ TQStringMap m_mountMenuIndexMap;
+ TQStringMap m_unmountMenuIndexMap;
+ TDEPopupMenu* m_menu;
+ KSimpleConfig *r_config;
+};
+
+#endif
diff --git a/kcontrol/hwmanager/hwdevicetray_app.cpp b/kcontrol/hwmanager/hwdevicetray_app.cpp
new file mode 100644
index 000000000..3f96f76a4
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray_app.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#include <kdebug.h>
+
+#include "hwdevicetray_app.h"
+
+#include "hwdevicetray.h"
+
+HwDeviceApp::HwDeviceApp()
+ : m_tray(new HwDeviceSystemTray(0L, "HwDeviceTray"))
+{
+ m_tray->show();
+}
+
+#include "hwdevicetray_app.moc" \ No newline at end of file
diff --git a/kcontrol/hwmanager/hwdevicetray_app.h b/kcontrol/hwmanager/hwdevicetray_app.h
new file mode 100644
index 000000000..fae4d6cd9
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray_app.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#ifndef TDEHWDEVICEAPP_H
+#define TDEHWDEVICEAPP_H
+
+#include <tqtimer.h>
+#include <kuniqueapplication.h>
+
+class HwDeviceSystemTray;
+
+class HwDeviceApp : public KUniqueApplication
+{
+ Q_OBJECT
+
+ public:
+ HwDeviceApp();
+
+ private:
+ HwDeviceSystemTray* m_tray;
+};
+
+#endif
diff --git a/kcontrol/hwmanager/hwdevicetray_bindings.cpp b/kcontrol/hwmanager/hwdevicetray_bindings.cpp
new file mode 100644
index 000000000..216b1a709
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray_bindings.cpp
@@ -0,0 +1,34 @@
+// -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 8; -*-
+/* This file is part of the KDE project
+ Copyright (C) by Andrew Stanley-Jones
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+#ifndef NOSLOTS
+# define DEF( name, key3, key4, fnSlot ) \
+ keys->insert( name, i18n(name), TQString(), key3, key4, TQT_TQOBJECT(this), TQT_SLOT(fnSlot) )
+#else
+# define DEF( name, key3, key4, fnSlot ) \
+ keys->insert( name, i18n(name), TQString(), key3, key4 )
+#endif
+#define WIN KKey::QtWIN
+
+ keys->insert( "Program:hwdevicetray", i18n("Hardware Device Control") );
+
+ // DEF( I18N_NOOP("Switch Displays"), TDEShortcut(TQString("XF86Display")), TDEShortcut(TQString("XF86Display")), slotCycleDisplays() );
+
+#undef DEF
+#undef WIN
diff --git a/kcontrol/hwmanager/hwdevicetray_configdialog.cpp b/kcontrol/hwmanager/hwdevicetray_configdialog.cpp
new file mode 100644
index 000000000..648cdd72f
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray_configdialog.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqlistview.h>
+#include <tqpushbutton.h>
+#include <tqtooltip.h>
+#include <tqwhatsthis.h>
+#include <tqvbuttongroup.h>
+#include <assert.h>
+
+#include <kiconloader.h>
+#include <tdelocale.h>
+#include <tdepopupmenu.h>
+#include <twinmodule.h>
+#include <kregexpeditorinterface.h>
+#include <tdeparts/componentfactory.h>
+
+#include "hwdevicetray_configdialog.h"
+
+ConfigDialog::ConfigDialog(TDEGlobalAccel *accel, bool isApplet)
+ : KDialogBase(Tabbed, i18n("Configure"), Ok | Cancel | Help, Ok, 0L, "config dialog") {
+ if (isApplet) {
+ setHelp(TQString::null, "tderandrtray");
+ }
+
+ TQFrame *w = 0L; // the parent for the widgets
+
+ w = addVBoxPage(i18n("Global &Shortcuts"));
+ keysWidget = new KKeyChooser(accel, w);
+}
+
+
+ConfigDialog::~ConfigDialog() {
+}
+
+// prevent huge size due to long regexps in the action-widget
+void ConfigDialog::show() {
+ if (!isVisible()) {
+ KWinModule module(0, KWinModule::INFO_DESKTOP);
+ TQSize s1 = sizeHint();
+ TQSize s2 = module.workArea().size();
+ int w = s1.width();
+ int h = s1.height();
+
+ if (s1.width() >= s2.width())
+ w = s2.width();
+ if (s1.height() >= s2.height())
+ h = s2.height();
+
+ resize(w, h);
+ }
+
+ KDialogBase::show();
+}
+
+void ConfigDialog::commitShortcuts() {
+ keysWidget->commitChanges();
+}
+
+#include "hwdevicetray_configdialog.moc"
diff --git a/kcontrol/hwmanager/hwdevicetray_configdialog.h b/kcontrol/hwmanager/hwdevicetray_configdialog.h
new file mode 100644
index 000000000..657b3ee43
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray_configdialog.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#ifndef HWDEVICETRAY_CONFIGDIALOG_H
+#define HWDEVICETRAY_CONFIGDIALOG_H
+
+#include <tqcheckbox.h>
+#include <tqevent.h>
+#include <tqgroupbox.h>
+#include <tqheader.h>
+#include <tqradiobutton.h>
+#include <tqvbox.h>
+
+#include <kdialogbase.h>
+#include <keditlistbox.h>
+#include <kkeydialog.h>
+#include <tdelistview.h>
+#include <knuminput.h>
+
+class TDEGlobalAccel;
+class KKeyChooser;
+class TDEListView;
+class TQPushButton;
+class TQDialog;
+class ConfigDialog;
+
+class ConfigDialog : public KDialogBase
+{
+ Q_OBJECT
+
+ public:
+ ConfigDialog(TDEGlobalAccel *accel, bool isApplet );
+ ~ConfigDialog();
+
+ virtual void show();
+ void commitShortcuts();
+
+ private:
+ KKeyChooser *keysWidget;
+
+};
+
+#endif // CONFIGDIALOG_H
diff --git a/kcontrol/hwmanager/hwdevicetray_main.cpp b/kcontrol/hwmanager/hwdevicetray_main.cpp
new file mode 100644
index 000000000..b16f13509
--- /dev/null
+++ b/kcontrol/hwmanager/hwdevicetray_main.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
+ *
+ * This file is part of hwdevicetray, the TDE Hardware Device Monitor System Tray Application
+ *
+ * hwdevicetray 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 3
+ * of the License, or (at your option) any later version.
+ *
+ * hwdevicetray is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with cryptocardwatcher. If not, see http://www.gnu.org/licenses/.
+ */
+
+#include <stdlib.h>
+#include <kdebug.h>
+
+#include <tdelocale.h>
+#include <tdecmdlineargs.h>
+#include <tdeaboutdata.h>
+#include <tdeglobal.h>
+
+#include "hwdevicetray_app.h"
+
+static const char hwdevicetrayVersion[] = "0.1";
+static const TDECmdLineOptions options[] =
+{
+ { "login", I18N_NOOP("Application is being auto-started at TDE session start"), 0L },
+ TDECmdLineLastOption
+};
+
+int main(int argc, char **argv)
+{
+ TDEAboutData aboutData("hwdevicetray", I18N_NOOP("Hardware Device Monitor"), hwdevicetrayVersion, I18N_NOOP("Hardware Device Monitor Tray Application"), TDEAboutData::License_GPL_V3, "(c) 2015 Timothy Pearson", 0L, "");
+ aboutData.addAuthor("Timothy Pearson",I18N_NOOP("Initial developer and maintainer"), "kb9vqf@pearsoncomputing.net");
+ aboutData.setProductName("hwdevices/hwdevicetray");
+ TDEGlobal::locale()->setMainCatalogue("hwdevicetray");
+
+ TDECmdLineArgs::init(argc,argv,&aboutData);
+ TDECmdLineArgs::addCmdLineOptions(options);
+ TDEApplication::addCmdLineOptions();
+
+ HwDeviceApp app;
+
+ return app.exec();
+}
diff --git a/kcontrol/hwmanager/hwmanager.cpp b/kcontrol/hwmanager/hwmanager.cpp
index a82daf1be..1cd8b04e0 100644
--- a/kcontrol/hwmanager/hwmanager.cpp
+++ b/kcontrol/hwmanager/hwmanager.cpp
@@ -42,11 +42,14 @@
#include <kgenericfactory.h>
#include <unistd.h>
+#include <kpassdlg.h>
#include <ksimpleconfig.h>
#include <string>
#include <stdio.h>
#include <tqstring.h>
+#include <tdecryptographiccarddevice.h>
+
#include "hwmanager.h"
using namespace std;
@@ -144,6 +147,12 @@ void TDEHWManager::populateTreeView()
TDEGenericHardwareList hwlist = hwdevices->listByDeviceClass(TDEGenericDeviceType::RootSystem);
TDEGenericDevice *hwdevice;
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
+ if (hwdevice->type() == TDEGenericDeviceType::CryptographicCard) {
+ TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice);
+ connect(cdevice, SIGNAL(pinRequested(TQString,TDECryptographicCardDevice*)), this, SLOT(cryptographicCardPinRequested(TQString,TDECryptographicCardDevice*)));
+ cdevice->enableCardMonitoring(true);
+ cdevice->enablePINEntryCallbacks(true);
+ }
DeviceIconItem* item = new DeviceIconItem(base->deviceTree, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
base->deviceTree->ensureItemVisible(item);
@@ -160,6 +169,12 @@ void TDEHWManager::populateTreeView()
TDEGenericDevice *hwdevice;
TDEGenericHardwareList hwlist = hwdevices->listByDeviceClass((TDEGenericDeviceType::TDEGenericDeviceType)i);
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
+ if (hwdevice->type() == TDEGenericDeviceType::CryptographicCard) {
+ TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice);
+ connect(cdevice, SIGNAL(pinRequested(TQString,TDECryptographicCardDevice*)), this, SLOT(cryptographicCardPinRequested(TQString,TDECryptographicCardDevice*)));
+ cdevice->enableCardMonitoring(true);
+ cdevice->enablePINEntryCallbacks(true);
+ }
DeviceIconItem* item = new DeviceIconItem(rootitem, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
base->deviceTree->ensureItemVisible(item);
@@ -177,6 +192,12 @@ void TDEHWManager::populateTreeViewLeaf(DeviceIconItem *parent, bool show_by_con
TDEGenericHardwareList hwlist = hwdevices->listAllPhysicalDevices();
TDEGenericDevice *hwdevice;
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
+ if (hwdevice->type() == TDEGenericDeviceType::CryptographicCard) {
+ TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice);
+ connect(cdevice, SIGNAL(pinRequested(TQString,TDECryptographicCardDevice*)), this, SLOT(cryptographicCardPinRequested(TQString,TDECryptographicCardDevice*)));
+ cdevice->enableCardMonitoring(true);
+ cdevice->enablePINEntryCallbacks(true);
+ }
if (hwdevice->parentDevice() == parent->device()) {
DeviceIconItem* item = new DeviceIconItem(parent, hwdevice->detailedFriendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
@@ -207,6 +228,17 @@ void TDEHWManager::deviceChanged(TDEGenericDevice* device) {
}
}
+void TDEHWManager::cryptographicCardPinRequested(TQString prompt, TDECryptographicCardDevice* cdevice) {
+ TQCString password;
+ int result = KPasswordDialog::getPassword(password, prompt);
+ if (result == KPasswordDialog::Accepted) {
+ cdevice->setProvidedPin(password);
+ }
+ else {
+ cdevice->setProvidedPin(TQString::null);
+ }
+}
+
TQString TDEHWManager::quickHelp() const
{
return i18n("<h1>TDE Hardware Device Manager</h1> This module allows you to configure hardware devices on your system");
diff --git a/kcontrol/hwmanager/hwmanager.desktop b/kcontrol/hwmanager/hwmanager.desktop
index 161c331bd..d0ef60728 100644
--- a/kcontrol/hwmanager/hwmanager.desktop
+++ b/kcontrol/hwmanager/hwmanager.desktop
@@ -1,6 +1,6 @@
[Desktop Entry]
Exec=tdecmshell hwmanager
-Icon=background
+Icon=hwinfo
Type=Application
X-DocPath=kcontrol/hwmanager/index.html
diff --git a/kcontrol/hwmanager/hwmanager.h b/kcontrol/hwmanager/hwmanager.h
index b75a494d9..abc05fa54 100644
--- a/kcontrol/hwmanager/hwmanager.h
+++ b/kcontrol/hwmanager/hwmanager.h
@@ -61,6 +61,7 @@ private slots:
void populateTreeView();
void populateTreeViewLeaf(DeviceIconItem *parent, bool show_by_connection, TQString selected_syspath);
void deviceChanged(TDEGenericDevice*);
+ void cryptographicCardPinRequested(TQString prompt, TDECryptographicCardDevice* cdevice);
private:
TDEHWManagerBase *base;
diff --git a/kcontrol/input/pics/doubleclick_1.png b/kcontrol/input/pics/doubleclick_1.png
index 33bfb6618..58e930a5d 100644
--- a/kcontrol/input/pics/doubleclick_1.png
+++ b/kcontrol/input/pics/doubleclick_1.png
Binary files differ
diff --git a/kcontrol/input/pics/doubleclick_2.png b/kcontrol/input/pics/doubleclick_2.png
index 4f7a9cd5b..2ff96ec6d 100644
--- a/kcontrol/input/pics/doubleclick_2.png
+++ b/kcontrol/input/pics/doubleclick_2.png
Binary files differ
diff --git a/kcontrol/input/pics/mouse_lh.png b/kcontrol/input/pics/mouse_lh.png
index acec7fe85..ce65c7b94 100644
--- a/kcontrol/input/pics/mouse_lh.png
+++ b/kcontrol/input/pics/mouse_lh.png
Binary files differ
diff --git a/kcontrol/input/pics/mouse_rh.png b/kcontrol/input/pics/mouse_rh.png
index de5cd8a86..68324c045 100644
--- a/kcontrol/input/pics/mouse_rh.png
+++ b/kcontrol/input/pics/mouse_rh.png
Binary files differ
diff --git a/kcontrol/kcontrol/about/top-right-kcontrol.png b/kcontrol/kcontrol/about/top-right-kcontrol.png
index a615af44d..8461f07c8 100644
--- a/kcontrol/kcontrol/about/top-right-kcontrol.png
+++ b/kcontrol/kcontrol/about/top-right-kcontrol.png
Binary files differ
diff --git a/kcontrol/kcontrol/cr128-app-kcontrol.png b/kcontrol/kcontrol/cr128-app-kcontrol.png
index 99a89e323..db7c6a6da 100644
--- a/kcontrol/kcontrol/cr128-app-kcontrol.png
+++ b/kcontrol/kcontrol/cr128-app-kcontrol.png
Binary files differ
diff --git a/kcontrol/kcontrol/cr16-app-kcontrol.png b/kcontrol/kcontrol/cr16-app-kcontrol.png
index 64bf8b71d..ea9f091ce 100644
--- a/kcontrol/kcontrol/cr16-app-kcontrol.png
+++ b/kcontrol/kcontrol/cr16-app-kcontrol.png
Binary files differ
diff --git a/kcontrol/kcontrol/cr32-app-kcontrol.png b/kcontrol/kcontrol/cr32-app-kcontrol.png
index 6537ba75e..0d95d9fa8 100644
--- a/kcontrol/kcontrol/cr32-app-kcontrol.png
+++ b/kcontrol/kcontrol/cr32-app-kcontrol.png
Binary files differ
diff --git a/kcontrol/kcontrol/cr48-app-kcontrol.png b/kcontrol/kcontrol/cr48-app-kcontrol.png
index bde85be5f..97d3d3c2d 100644
--- a/kcontrol/kcontrol/cr48-app-kcontrol.png
+++ b/kcontrol/kcontrol/cr48-app-kcontrol.png
Binary files differ
diff --git a/kcontrol/kcontrol/cr64-app-kcontrol.png b/kcontrol/kcontrol/cr64-app-kcontrol.png
index 4d4db5d65..9d5d0bd17 100644
--- a/kcontrol/kcontrol/cr64-app-kcontrol.png
+++ b/kcontrol/kcontrol/cr64-app-kcontrol.png
Binary files differ
diff --git a/kcontrol/knotify/play.png b/kcontrol/knotify/play.png
index e0daeb8c9..abc81b29c 100644
--- a/kcontrol/knotify/play.png
+++ b/kcontrol/knotify/play.png
Binary files differ
diff --git a/kcontrol/konq/onlyone.png b/kcontrol/konq/onlyone.png
index 7033763f3..4b4ad273d 100644
--- a/kcontrol/konq/onlyone.png
+++ b/kcontrol/konq/onlyone.png
Binary files differ
diff --git a/kcontrol/konq/overlapping.png b/kcontrol/konq/overlapping.png
index 145234576..833c893c7 100644
--- a/kcontrol/konq/overlapping.png
+++ b/kcontrol/konq/overlapping.png
Binary files differ
diff --git a/kcontrol/konq/previews.cpp b/kcontrol/konq/previews.cpp
index 1f7bf85c4..3b2349fc7 100644
--- a/kcontrol/konq/previews.cpp
+++ b/kcontrol/konq/previews.cpp
@@ -126,8 +126,8 @@ KPreviewOptions::KPreviewOptions( TQWidget *parent, const char */*name*/ )
m_maxSize = new KDoubleNumInput( this );
m_maxSize->setSuffix( i18n(" MB") );
- m_maxSize->setRange( 0.02, 10, 0.02, true );
m_maxSize->setPrecision( 1 );
+ m_maxSize->setRange( 0.2, 100, 0.2, true );
label->setBuddy( m_maxSize );
lay->addWidget( m_maxSize );
connect( m_maxSize, TQT_SIGNAL( valueChanged(double) ), TQT_SLOT( changed() ) );
diff --git a/kcontrol/krdb/ad/WPerfect.ad b/kcontrol/krdb/ad/WPerfect.ad
index f005d8452..ed9da05b2 100644
--- a/kcontrol/krdb/ad/WPerfect.ad
+++ b/kcontrol/krdb/ad/WPerfect.ad
@@ -41,8 +41,7 @@ WPFMShell*XmDialogShell*XmTextField*foreground: WINDOW_FOREGROUND
XWp*XmDialogShell*background: BACKGROUND
XWp*XmDialogShell*XmScrolledWindow*XmDrawingArea.background: WINDOW_BACKGROUND
WPFMShell*XmDialogShell*background: WINDOW_BACKGROUND
-WPFMShell*XmDialogShell*XmScrolledWindow*XmDrawingArea.background:
-WINDOW_BACKGROUND
+WPFMShell*XmDialogShell*XmScrolledWindow*XmDrawingArea.background: WINDOW_BACKGROUND
XWp*XmDialogShell*XmDrawingArea.background: WINDOW_BACKGROUND
XWp*XmDialogShell*XmList*background: WINDOW_BACKGROUND
XWp*XmDialogShell*XmText*background: WINDOW_BACKGROUND
diff --git a/kcontrol/krdb/krdb.cpp b/kcontrol/krdb/krdb.cpp
index a1543a320..d01bd998e 100644
--- a/kcontrol/krdb/krdb.cpp
+++ b/kcontrol/krdb/krdb.cpp
@@ -558,9 +558,9 @@ void runRdb( uint flags )
TDEProcess proc;
#ifndef NDEBUG
- proc << "xrdb" << "-merge" << "-nocpp" << tmpFile.name();
+ proc << "xrdb" << "-merge" << tmpFile.name();
#else
- proc << "xrdb" << "-quiet" << "-merge" << "-nocpp" << tmpFile.name();
+ proc << "xrdb" << "-quiet" << "-merge" << tmpFile.name();
#endif
proc.start( TDEProcess::Block, TDEProcess::Stdin );
diff --git a/kcontrol/krdb/pics/lo-energy.png b/kcontrol/krdb/pics/lo-energy.png
index c30be6021..a97c605ef 100644
--- a/kcontrol/krdb/pics/lo-energy.png
+++ b/kcontrol/krdb/pics/lo-energy.png
Binary files differ
diff --git a/kcontrol/krdb/pics/logo.png b/kcontrol/krdb/pics/logo.png
index 126a0032a..65ea9c7d7 100644
--- a/kcontrol/krdb/pics/logo.png
+++ b/kcontrol/krdb/pics/logo.png
Binary files differ
diff --git a/kcontrol/krdb/pics/mini-world.png b/kcontrol/krdb/pics/mini-world.png
index eae412a41..94abeba38 100644
--- a/kcontrol/krdb/pics/mini-world.png
+++ b/kcontrol/krdb/pics/mini-world.png
Binary files differ
diff --git a/kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.preview.png b/kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.preview.png
index f91c2521c..01f917cfa 100644
--- a/kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.preview.png
+++ b/kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/HighContrastDark/HighContrastDark.preview.png b/kcontrol/krdb/themes/HighContrastDark/HighContrastDark.preview.png
index d8a33765e..10f62c473 100644
--- a/kcontrol/krdb/themes/HighContrastDark/HighContrastDark.preview.png
+++ b/kcontrol/krdb/themes/HighContrastDark/HighContrastDark.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.preview.png b/kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.preview.png
index f013c23e0..3e325ff16 100644
--- a/kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.preview.png
+++ b/kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/HighContrastLight/HighContrastLight.preview.png b/kcontrol/krdb/themes/HighContrastLight/HighContrastLight.preview.png
index 1cf565b2e..0a1ccf1cf 100644
--- a/kcontrol/krdb/themes/HighContrastLight/HighContrastLight.preview.png
+++ b/kcontrol/krdb/themes/HighContrastLight/HighContrastLight.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/KDE_Classic/KDE_Classic.preview.png b/kcontrol/krdb/themes/KDE_Classic/KDE_Classic.preview.png
index 68599985a..eac818419 100644
--- a/kcontrol/krdb/themes/KDE_Classic/KDE_Classic.preview.png
+++ b/kcontrol/krdb/themes/KDE_Classic/KDE_Classic.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/Keramik/Keramik.preview.png b/kcontrol/krdb/themes/Keramik/Keramik.preview.png
index 8614bb20b..649431e5e 100644
--- a/kcontrol/krdb/themes/Keramik/Keramik.preview.png
+++ b/kcontrol/krdb/themes/Keramik/Keramik.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/Plastik/Plastik.preview.png b/kcontrol/krdb/themes/Plastik/Plastik.preview.png
index a8801c28f..f9ed5329d 100644
--- a/kcontrol/krdb/themes/Plastik/Plastik.preview.png
+++ b/kcontrol/krdb/themes/Plastik/Plastik.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/Platinum/Platinum.preview.png b/kcontrol/krdb/themes/Platinum/Platinum.preview.png
index da45cccb9..0b6215e73 100644
--- a/kcontrol/krdb/themes/Platinum/Platinum.preview.png
+++ b/kcontrol/krdb/themes/Platinum/Platinum.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/Redmond/Redmond.preview.png b/kcontrol/krdb/themes/Redmond/Redmond.preview.png
index 2e180b33d..cea6d9250 100644
--- a/kcontrol/krdb/themes/Redmond/Redmond.preview.png
+++ b/kcontrol/krdb/themes/Redmond/Redmond.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/Sunshine/Sunshine.preview.png b/kcontrol/krdb/themes/Sunshine/Sunshine.preview.png
index eee57c71e..bbeb94462 100644
--- a/kcontrol/krdb/themes/Sunshine/Sunshine.preview.png
+++ b/kcontrol/krdb/themes/Sunshine/Sunshine.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.preview.png b/kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.preview.png
index d68507d42..f0d673233 100644
--- a/kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.preview.png
+++ b/kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.preview.png
Binary files differ
diff --git a/kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.preview.png b/kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.preview.png
index 874d10738..9a4953c30 100644
--- a/kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.preview.png
+++ b/kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.preview.png
Binary files differ
diff --git a/kcontrol/locale/pics/background.png b/kcontrol/locale/pics/background.png
index d9d64462b..c1511734d 100644
--- a/kcontrol/locale/pics/background.png
+++ b/kcontrol/locale/pics/background.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-access.png b/kcontrol/pics/cr128-app-access.png
index 5405523ea..4aa25a496 100644
--- a/kcontrol/pics/cr128-app-access.png
+++ b/kcontrol/pics/cr128-app-access.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-arts.png b/kcontrol/pics/cr128-app-arts.png
index d22e0e65d..a50216403 100644
--- a/kcontrol/pics/cr128-app-arts.png
+++ b/kcontrol/pics/cr128-app-arts.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-background.png b/kcontrol/pics/cr128-app-background.png
index d18790b09..3aff44a08 100644
--- a/kcontrol/pics/cr128-app-background.png
+++ b/kcontrol/pics/cr128-app-background.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-bell.png b/kcontrol/pics/cr128-app-bell.png
index 530fbf64a..4f5e7d966 100644
--- a/kcontrol/pics/cr128-app-bell.png
+++ b/kcontrol/pics/cr128-app-bell.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-cache.png b/kcontrol/pics/cr128-app-cache.png
index f9261381d..b7e2849f2 100644
--- a/kcontrol/pics/cr128-app-cache.png
+++ b/kcontrol/pics/cr128-app-cache.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-clock.png b/kcontrol/pics/cr128-app-clock.png
index 692b0502e..f68e5ab99 100644
--- a/kcontrol/pics/cr128-app-clock.png
+++ b/kcontrol/pics/cr128-app-clock.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-colors.png b/kcontrol/pics/cr128-app-colors.png
index 2f6bf1640..79661b26a 100644
--- a/kcontrol/pics/cr128-app-colors.png
+++ b/kcontrol/pics/cr128-app-colors.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-date.png b/kcontrol/pics/cr128-app-date.png
index 1e34bb233..6455baabd 100644
--- a/kcontrol/pics/cr128-app-date.png
+++ b/kcontrol/pics/cr128-app-date.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-energy.png b/kcontrol/pics/cr128-app-energy.png
index 4186ee48d..83d31aeae 100644
--- a/kcontrol/pics/cr128-app-energy.png
+++ b/kcontrol/pics/cr128-app-energy.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-energy_star.png b/kcontrol/pics/cr128-app-energy_star.png
index d9460449c..35bd263c7 100644
--- a/kcontrol/pics/cr128-app-energy_star.png
+++ b/kcontrol/pics/cr128-app-energy_star.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-filetypes.png b/kcontrol/pics/cr128-app-filetypes.png
index 144482335..b0576bb2f 100644
--- a/kcontrol/pics/cr128-app-filetypes.png
+++ b/kcontrol/pics/cr128-app-filetypes.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-fonts.png b/kcontrol/pics/cr128-app-fonts.png
index f859e33e7..14f8be7e8 100644
--- a/kcontrol/pics/cr128-app-fonts.png
+++ b/kcontrol/pics/cr128-app-fonts.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-help_index.png b/kcontrol/pics/cr128-app-help_index.png
index 9a1ee3fe5..4552ad675 100644
--- a/kcontrol/pics/cr128-app-help_index.png
+++ b/kcontrol/pics/cr128-app-help_index.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-hwinfo.png b/kcontrol/pics/cr128-app-hwinfo.png
index d7a3052c5..a3959759a 100644
--- a/kcontrol/pics/cr128-app-hwinfo.png
+++ b/kcontrol/pics/cr128-app-hwinfo.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kcmdevices.png b/kcontrol/pics/cr128-app-kcmdevices.png
index 0dd12a56a..2aab3160b 100644
--- a/kcontrol/pics/cr128-app-kcmdevices.png
+++ b/kcontrol/pics/cr128-app-kcmdevices.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kcmdf.png b/kcontrol/pics/cr128-app-kcmdf.png
index cbec02996..ab1d996eb 100644
--- a/kcontrol/pics/cr128-app-kcmdf.png
+++ b/kcontrol/pics/cr128-app-kcmdf.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kcmkwm.png b/kcontrol/pics/cr128-app-kcmkwm.png
index 710167623..e7278ae4d 100644
--- a/kcontrol/pics/cr128-app-kcmkwm.png
+++ b/kcontrol/pics/cr128-app-kcmkwm.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kcmmemory.png b/kcontrol/pics/cr128-app-kcmmemory.png
index 8088fef9b..fcab66fdf 100644
--- a/kcontrol/pics/cr128-app-kcmmemory.png
+++ b/kcontrol/pics/cr128-app-kcmmemory.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kcmpartitions.png b/kcontrol/pics/cr128-app-kcmpartitions.png
index 627c52fe7..e9a76dec8 100644
--- a/kcontrol/pics/cr128-app-kcmpartitions.png
+++ b/kcontrol/pics/cr128-app-kcmpartitions.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kcmpci.png b/kcontrol/pics/cr128-app-kcmpci.png
index efed93129..3d8340ba5 100644
--- a/kcontrol/pics/cr128-app-kcmpci.png
+++ b/kcontrol/pics/cr128-app-kcmpci.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-key_bindings.png b/kcontrol/pics/cr128-app-key_bindings.png
index 4c24fa0e4..cef5d73d9 100644
--- a/kcontrol/pics/cr128-app-key_bindings.png
+++ b/kcontrol/pics/cr128-app-key_bindings.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-kthememgr.png b/kcontrol/pics/cr128-app-kthememgr.png
index 8c496e5d3..040cc1850 100644
--- a/kcontrol/pics/cr128-app-kthememgr.png
+++ b/kcontrol/pics/cr128-app-kthememgr.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-locale.png b/kcontrol/pics/cr128-app-locale.png
index 25403acc9..223d00838 100644
--- a/kcontrol/pics/cr128-app-locale.png
+++ b/kcontrol/pics/cr128-app-locale.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-multimedia.png b/kcontrol/pics/cr128-app-multimedia.png
index 5543818ba..e9a8edf92 100644
--- a/kcontrol/pics/cr128-app-multimedia.png
+++ b/kcontrol/pics/cr128-app-multimedia.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-proxy.png b/kcontrol/pics/cr128-app-proxy.png
index ec18d5a92..30837c888 100644
--- a/kcontrol/pics/cr128-app-proxy.png
+++ b/kcontrol/pics/cr128-app-proxy.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-samba.png b/kcontrol/pics/cr128-app-samba.png
index e4867d188..e8fed2a0f 100644
--- a/kcontrol/pics/cr128-app-samba.png
+++ b/kcontrol/pics/cr128-app-samba.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-stylesheet.png b/kcontrol/pics/cr128-app-stylesheet.png
index bc911a9c9..9c2f2408c 100644
--- a/kcontrol/pics/cr128-app-stylesheet.png
+++ b/kcontrol/pics/cr128-app-stylesheet.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-tdescreensaver.png b/kcontrol/pics/cr128-app-tdescreensaver.png
index e8f036fe3..0384dfb82 100644
--- a/kcontrol/pics/cr128-app-tdescreensaver.png
+++ b/kcontrol/pics/cr128-app-tdescreensaver.png
Binary files differ
diff --git a/kcontrol/pics/cr128-app-tdmconfig.png b/kcontrol/pics/cr128-app-tdmconfig.png
index f28f704f7..3dd4cb1a9 100644
--- a/kcontrol/pics/cr128-app-tdmconfig.png
+++ b/kcontrol/pics/cr128-app-tdmconfig.png
Binary files differ
diff --git a/kcontrol/pics/cr128-category-preferences-desktop-personal.png b/kcontrol/pics/cr128-category-preferences-desktop-personal.png
index 9e033dfcc..c4359f07b 100644
--- a/kcontrol/pics/cr128-category-preferences-desktop-personal.png
+++ b/kcontrol/pics/cr128-category-preferences-desktop-personal.png
Binary files differ
diff --git a/kcontrol/pics/cr128-category-preferences-desktop.png b/kcontrol/pics/cr128-category-preferences-desktop.png
index cd1a36b9a..9eebb8a0b 100644
--- a/kcontrol/pics/cr128-category-preferences-desktop.png
+++ b/kcontrol/pics/cr128-category-preferences-desktop.png
Binary files differ
diff --git a/kcontrol/pics/cr128-device-laptop.png b/kcontrol/pics/cr128-device-laptop.png
index 0fef41bc3..a3378c7a7 100644
--- a/kcontrol/pics/cr128-device-laptop.png
+++ b/kcontrol/pics/cr128-device-laptop.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-access.png b/kcontrol/pics/cr16-app-access.png
index a952d7786..c62db119a 100644
--- a/kcontrol/pics/cr16-app-access.png
+++ b/kcontrol/pics/cr16-app-access.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-agent.png b/kcontrol/pics/cr16-app-agent.png
index 9826d3457..013e21c49 100644
--- a/kcontrol/pics/cr16-app-agent.png
+++ b/kcontrol/pics/cr16-app-agent.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-arts.png b/kcontrol/pics/cr16-app-arts.png
index cc030d391..7716d5347 100644
--- a/kcontrol/pics/cr16-app-arts.png
+++ b/kcontrol/pics/cr16-app-arts.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-background.png b/kcontrol/pics/cr16-app-background.png
index 8645b601b..63a893333 100644
--- a/kcontrol/pics/cr16-app-background.png
+++ b/kcontrol/pics/cr16-app-background.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-bell.png b/kcontrol/pics/cr16-app-bell.png
index 188410853..9dd4cac12 100644
--- a/kcontrol/pics/cr16-app-bell.png
+++ b/kcontrol/pics/cr16-app-bell.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-cache.png b/kcontrol/pics/cr16-app-cache.png
index 9d3f243ab..4b3566714 100644
--- a/kcontrol/pics/cr16-app-cache.png
+++ b/kcontrol/pics/cr16-app-cache.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-clock.png b/kcontrol/pics/cr16-app-clock.png
index dca2c7ef8..799514b91 100644
--- a/kcontrol/pics/cr16-app-clock.png
+++ b/kcontrol/pics/cr16-app-clock.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-colors.png b/kcontrol/pics/cr16-app-colors.png
index c0a67bb90..f7b63e2ec 100644
--- a/kcontrol/pics/cr16-app-colors.png
+++ b/kcontrol/pics/cr16-app-colors.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-cookie.png b/kcontrol/pics/cr16-app-cookie.png
index 16617b9f4..0054f4711 100644
--- a/kcontrol/pics/cr16-app-cookie.png
+++ b/kcontrol/pics/cr16-app-cookie.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-date.png b/kcontrol/pics/cr16-app-date.png
index fbf29f521..6025df129 100644
--- a/kcontrol/pics/cr16-app-date.png
+++ b/kcontrol/pics/cr16-app-date.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-energy.png b/kcontrol/pics/cr16-app-energy.png
index ebad43996..489e7149c 100644
--- a/kcontrol/pics/cr16-app-energy.png
+++ b/kcontrol/pics/cr16-app-energy.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-energy_star.png b/kcontrol/pics/cr16-app-energy_star.png
index 52507f80a..f13297d75 100644
--- a/kcontrol/pics/cr16-app-energy_star.png
+++ b/kcontrol/pics/cr16-app-energy_star.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-enhanced_browsing.png b/kcontrol/pics/cr16-app-enhanced_browsing.png
index d9023041c..822449072 100644
--- a/kcontrol/pics/cr16-app-enhanced_browsing.png
+++ b/kcontrol/pics/cr16-app-enhanced_browsing.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-filetypes.png b/kcontrol/pics/cr16-app-filetypes.png
index e6d7266cf..18d419e99 100644
--- a/kcontrol/pics/cr16-app-filetypes.png
+++ b/kcontrol/pics/cr16-app-filetypes.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-fonts.png b/kcontrol/pics/cr16-app-fonts.png
index 78d71d03a..c9aa86201 100644
--- a/kcontrol/pics/cr16-app-fonts.png
+++ b/kcontrol/pics/cr16-app-fonts.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-help_index.png b/kcontrol/pics/cr16-app-help_index.png
index 1cb23431b..5b9b8c0fc 100644
--- a/kcontrol/pics/cr16-app-help_index.png
+++ b/kcontrol/pics/cr16-app-help_index.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-hwinfo.png b/kcontrol/pics/cr16-app-hwinfo.png
index 99889980d..730057b36 100644
--- a/kcontrol/pics/cr16-app-hwinfo.png
+++ b/kcontrol/pics/cr16-app-hwinfo.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-icons.png b/kcontrol/pics/cr16-app-icons.png
index 10d2a2d63..b3a9c31b7 100644
--- a/kcontrol/pics/cr16-app-icons.png
+++ b/kcontrol/pics/cr16-app-icons.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-iconthemes.png b/kcontrol/pics/cr16-app-iconthemes.png
index 4a9081564..aeedbb31a 100644
--- a/kcontrol/pics/cr16-app-iconthemes.png
+++ b/kcontrol/pics/cr16-app-iconthemes.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-ieee1394.png b/kcontrol/pics/cr16-app-ieee1394.png
index b7cec0007..320a63331 100644
--- a/kcontrol/pics/cr16-app-ieee1394.png
+++ b/kcontrol/pics/cr16-app-ieee1394.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmdevices.png b/kcontrol/pics/cr16-app-kcmdevices.png
index c7c34a1a7..60625e1c8 100644
--- a/kcontrol/pics/cr16-app-kcmdevices.png
+++ b/kcontrol/pics/cr16-app-kcmdevices.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmkicker.png b/kcontrol/pics/cr16-app-kcmkicker.png
index 0d04030fc..2331a29e0 100644
--- a/kcontrol/pics/cr16-app-kcmkicker.png
+++ b/kcontrol/pics/cr16-app-kcmkicker.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmkwm.png b/kcontrol/pics/cr16-app-kcmkwm.png
index 775b96556..6bc50e3b8 100644
--- a/kcontrol/pics/cr16-app-kcmkwm.png
+++ b/kcontrol/pics/cr16-app-kcmkwm.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmmemory.png b/kcontrol/pics/cr16-app-kcmmemory.png
index 6ddeddb68..55f23b7bc 100644
--- a/kcontrol/pics/cr16-app-kcmmemory.png
+++ b/kcontrol/pics/cr16-app-kcmmemory.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmmidi.png b/kcontrol/pics/cr16-app-kcmmidi.png
index 4283b35f3..433e6ebab 100644
--- a/kcontrol/pics/cr16-app-kcmmidi.png
+++ b/kcontrol/pics/cr16-app-kcmmidi.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmpartitions.png b/kcontrol/pics/cr16-app-kcmpartitions.png
index 5b6eb8764..ac33cc6a9 100644
--- a/kcontrol/pics/cr16-app-kcmpartitions.png
+++ b/kcontrol/pics/cr16-app-kcmpartitions.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmpci.png b/kcontrol/pics/cr16-app-kcmpci.png
index 0ac401c6f..f7a607e12 100644
--- a/kcontrol/pics/cr16-app-kcmpci.png
+++ b/kcontrol/pics/cr16-app-kcmpci.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmprocessor.png b/kcontrol/pics/cr16-app-kcmprocessor.png
index b7dc9b4d1..d87670dbc 100644
--- a/kcontrol/pics/cr16-app-kcmprocessor.png
+++ b/kcontrol/pics/cr16-app-kcmprocessor.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmscsi.png b/kcontrol/pics/cr16-app-kcmscsi.png
index 2ac53532a..bfb82fd73 100644
--- a/kcontrol/pics/cr16-app-kcmscsi.png
+++ b/kcontrol/pics/cr16-app-kcmscsi.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmsound.png b/kcontrol/pics/cr16-app-kcmsound.png
index dbf51d203..df9e473ca 100644
--- a/kcontrol/pics/cr16-app-kcmsound.png
+++ b/kcontrol/pics/cr16-app-kcmsound.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kcmx.png b/kcontrol/pics/cr16-app-kcmx.png
index 29ea2da85..d31bb3f68 100644
--- a/kcontrol/pics/cr16-app-kcmx.png
+++ b/kcontrol/pics/cr16-app-kcmx.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-key_bindings.png b/kcontrol/pics/cr16-app-key_bindings.png
index 26266f1b1..151c13213 100644
--- a/kcontrol/pics/cr16-app-key_bindings.png
+++ b/kcontrol/pics/cr16-app-key_bindings.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-keyboard.png b/kcontrol/pics/cr16-app-keyboard.png
index 198d20221..e102dd721 100644
--- a/kcontrol/pics/cr16-app-keyboard.png
+++ b/kcontrol/pics/cr16-app-keyboard.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-keyboard_layout.png b/kcontrol/pics/cr16-app-keyboard_layout.png
index efbbcda82..4d86966ba 100644
--- a/kcontrol/pics/cr16-app-keyboard_layout.png
+++ b/kcontrol/pics/cr16-app-keyboard_layout.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-knotify.png b/kcontrol/pics/cr16-app-knotify.png
index a893d6229..338f9b957 100644
--- a/kcontrol/pics/cr16-app-knotify.png
+++ b/kcontrol/pics/cr16-app-knotify.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-kthememgr.png b/kcontrol/pics/cr16-app-kthememgr.png
index 2b3588a05..91a4faae9 100644
--- a/kcontrol/pics/cr16-app-kthememgr.png
+++ b/kcontrol/pics/cr16-app-kthememgr.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-locale.png b/kcontrol/pics/cr16-app-locale.png
index 0dfece4d3..448a18e65 100644
--- a/kcontrol/pics/cr16-app-locale.png
+++ b/kcontrol/pics/cr16-app-locale.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-multimedia.png b/kcontrol/pics/cr16-app-multimedia.png
index d2bf93a19..91a2281ac 100644
--- a/kcontrol/pics/cr16-app-multimedia.png
+++ b/kcontrol/pics/cr16-app-multimedia.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-panel_settings.png b/kcontrol/pics/cr16-app-panel_settings.png
index e66dd216a..7df91bed1 100644
--- a/kcontrol/pics/cr16-app-panel_settings.png
+++ b/kcontrol/pics/cr16-app-panel_settings.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-proxy.png b/kcontrol/pics/cr16-app-proxy.png
index 69f8bb745..1ca125153 100644
--- a/kcontrol/pics/cr16-app-proxy.png
+++ b/kcontrol/pics/cr16-app-proxy.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-samba.png b/kcontrol/pics/cr16-app-samba.png
index 3d2e6885a..988591c5e 100644
--- a/kcontrol/pics/cr16-app-samba.png
+++ b/kcontrol/pics/cr16-app-samba.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-style.png b/kcontrol/pics/cr16-app-style.png
index b727f8f60..e56f46c3f 100644
--- a/kcontrol/pics/cr16-app-style.png
+++ b/kcontrol/pics/cr16-app-style.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-stylesheet.png b/kcontrol/pics/cr16-app-stylesheet.png
index 6fdea61e2..ce78d34a3 100644
--- a/kcontrol/pics/cr16-app-stylesheet.png
+++ b/kcontrol/pics/cr16-app-stylesheet.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-tdescreensaver.png b/kcontrol/pics/cr16-app-tdescreensaver.png
index 200fe3dcc..39c57ea46 100644
--- a/kcontrol/pics/cr16-app-tdescreensaver.png
+++ b/kcontrol/pics/cr16-app-tdescreensaver.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-tdmconfig.png b/kcontrol/pics/cr16-app-tdmconfig.png
index 8f69e2b99..8f94a3ffc 100644
--- a/kcontrol/pics/cr16-app-tdmconfig.png
+++ b/kcontrol/pics/cr16-app-tdmconfig.png
Binary files differ
diff --git a/kcontrol/pics/cr16-app-usb.png b/kcontrol/pics/cr16-app-usb.png
index b772ba541..b3b25f1fa 100644
--- a/kcontrol/pics/cr16-app-usb.png
+++ b/kcontrol/pics/cr16-app-usb.png
Binary files differ
diff --git a/kcontrol/pics/cr16-category-preferences-desktop-peripherals.png b/kcontrol/pics/cr16-category-preferences-desktop-peripherals.png
index 18b3f92eb..2646c7a18 100644
--- a/kcontrol/pics/cr16-category-preferences-desktop-peripherals.png
+++ b/kcontrol/pics/cr16-category-preferences-desktop-peripherals.png
Binary files differ
diff --git a/kcontrol/pics/cr16-category-preferences-desktop-personal.png b/kcontrol/pics/cr16-category-preferences-desktop-personal.png
index 83e5b318b..6a1402e08 100644
--- a/kcontrol/pics/cr16-category-preferences-desktop-personal.png
+++ b/kcontrol/pics/cr16-category-preferences-desktop-personal.png
Binary files differ
diff --git a/kcontrol/pics/cr16-category-preferences-desktop.png b/kcontrol/pics/cr16-category-preferences-desktop.png
index fb4181004..fd965f4b3 100644
--- a/kcontrol/pics/cr16-category-preferences-desktop.png
+++ b/kcontrol/pics/cr16-category-preferences-desktop.png
Binary files differ
diff --git a/kcontrol/pics/cr16-category-preferences-system.png b/kcontrol/pics/cr16-category-preferences-system.png
index b97bfb434..b41c29633 100644
--- a/kcontrol/pics/cr16-category-preferences-system.png
+++ b/kcontrol/pics/cr16-category-preferences-system.png
Binary files differ
diff --git a/kcontrol/pics/cr16-device-laptop.png b/kcontrol/pics/cr16-device-laptop.png
index 9e221e632..5d5c97795 100644
--- a/kcontrol/pics/cr16-device-laptop.png
+++ b/kcontrol/pics/cr16-device-laptop.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-access.png b/kcontrol/pics/cr22-app-access.png
index ba7027a14..e6c53f3e3 100644
--- a/kcontrol/pics/cr22-app-access.png
+++ b/kcontrol/pics/cr22-app-access.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-arts.png b/kcontrol/pics/cr22-app-arts.png
index 2a1a4ceb0..fc5d462a4 100644
--- a/kcontrol/pics/cr22-app-arts.png
+++ b/kcontrol/pics/cr22-app-arts.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-background.png b/kcontrol/pics/cr22-app-background.png
index 3f742a847..d4eaaaa89 100644
--- a/kcontrol/pics/cr22-app-background.png
+++ b/kcontrol/pics/cr22-app-background.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-bell.png b/kcontrol/pics/cr22-app-bell.png
index f4dd1afd5..2746eefd2 100644
--- a/kcontrol/pics/cr22-app-bell.png
+++ b/kcontrol/pics/cr22-app-bell.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-cache.png b/kcontrol/pics/cr22-app-cache.png
index 509009956..aaa56df55 100644
--- a/kcontrol/pics/cr22-app-cache.png
+++ b/kcontrol/pics/cr22-app-cache.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-colors.png b/kcontrol/pics/cr22-app-colors.png
index 84fb0b922..4d94f4ccf 100644
--- a/kcontrol/pics/cr22-app-colors.png
+++ b/kcontrol/pics/cr22-app-colors.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-cookie.png b/kcontrol/pics/cr22-app-cookie.png
index eb11b7605..c1ec40149 100644
--- a/kcontrol/pics/cr22-app-cookie.png
+++ b/kcontrol/pics/cr22-app-cookie.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-date.png b/kcontrol/pics/cr22-app-date.png
index cb1f8455a..b1638e7f6 100644
--- a/kcontrol/pics/cr22-app-date.png
+++ b/kcontrol/pics/cr22-app-date.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-energy.png b/kcontrol/pics/cr22-app-energy.png
index 2893c77bf..92b5d27cd 100644
--- a/kcontrol/pics/cr22-app-energy.png
+++ b/kcontrol/pics/cr22-app-energy.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-enhanced_browsing.png b/kcontrol/pics/cr22-app-enhanced_browsing.png
index c7281f352..3563acea7 100644
--- a/kcontrol/pics/cr22-app-enhanced_browsing.png
+++ b/kcontrol/pics/cr22-app-enhanced_browsing.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-filetypes.png b/kcontrol/pics/cr22-app-filetypes.png
index 71e4ae8a2..72b185590 100644
--- a/kcontrol/pics/cr22-app-filetypes.png
+++ b/kcontrol/pics/cr22-app-filetypes.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-fonts.png b/kcontrol/pics/cr22-app-fonts.png
index 19fccc6c5..247a04d15 100644
--- a/kcontrol/pics/cr22-app-fonts.png
+++ b/kcontrol/pics/cr22-app-fonts.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-hwinfo.png b/kcontrol/pics/cr22-app-hwinfo.png
index 9eb787ef2..95779f68e 100644
--- a/kcontrol/pics/cr22-app-hwinfo.png
+++ b/kcontrol/pics/cr22-app-hwinfo.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-ieee1394.png b/kcontrol/pics/cr22-app-ieee1394.png
index 184c283bf..e582ea87d 100644
--- a/kcontrol/pics/cr22-app-ieee1394.png
+++ b/kcontrol/pics/cr22-app-ieee1394.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-kcmdevices.png b/kcontrol/pics/cr22-app-kcmdevices.png
index 49d63884d..7fe37589a 100644
--- a/kcontrol/pics/cr22-app-kcmdevices.png
+++ b/kcontrol/pics/cr22-app-kcmdevices.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-kcmkicker.png b/kcontrol/pics/cr22-app-kcmkicker.png
index 0901b7460..dbfa1e548 100644
--- a/kcontrol/pics/cr22-app-kcmkicker.png
+++ b/kcontrol/pics/cr22-app-kcmkicker.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-kcmkwm.png b/kcontrol/pics/cr22-app-kcmkwm.png
index b6c17916a..cd0271118 100644
--- a/kcontrol/pics/cr22-app-kcmkwm.png
+++ b/kcontrol/pics/cr22-app-kcmkwm.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-kcmx.png b/kcontrol/pics/cr22-app-kcmx.png
index fdab29916..9e04133c4 100644
--- a/kcontrol/pics/cr22-app-kcmx.png
+++ b/kcontrol/pics/cr22-app-kcmx.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-key_bindings.png b/kcontrol/pics/cr22-app-key_bindings.png
index 732f4d9c1..a1caf143d 100644
--- a/kcontrol/pics/cr22-app-key_bindings.png
+++ b/kcontrol/pics/cr22-app-key_bindings.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-keyboard.png b/kcontrol/pics/cr22-app-keyboard.png
index 4360481af..e54f4b367 100644
--- a/kcontrol/pics/cr22-app-keyboard.png
+++ b/kcontrol/pics/cr22-app-keyboard.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-locale.png b/kcontrol/pics/cr22-app-locale.png
index 827360a8b..452769ee6 100644
--- a/kcontrol/pics/cr22-app-locale.png
+++ b/kcontrol/pics/cr22-app-locale.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-proxy.png b/kcontrol/pics/cr22-app-proxy.png
index e8fef4233..58ec7917b 100644
--- a/kcontrol/pics/cr22-app-proxy.png
+++ b/kcontrol/pics/cr22-app-proxy.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-samba.png b/kcontrol/pics/cr22-app-samba.png
index 32b5972e9..905e399c5 100644
--- a/kcontrol/pics/cr22-app-samba.png
+++ b/kcontrol/pics/cr22-app-samba.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-stylesheet.png b/kcontrol/pics/cr22-app-stylesheet.png
index 625688457..a0ed2772f 100644
--- a/kcontrol/pics/cr22-app-stylesheet.png
+++ b/kcontrol/pics/cr22-app-stylesheet.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-tdescreensaver.png b/kcontrol/pics/cr22-app-tdescreensaver.png
index 7448fe237..63a349a78 100644
--- a/kcontrol/pics/cr22-app-tdescreensaver.png
+++ b/kcontrol/pics/cr22-app-tdescreensaver.png
Binary files differ
diff --git a/kcontrol/pics/cr22-app-tdmconfig.png b/kcontrol/pics/cr22-app-tdmconfig.png
index 399978a99..00e42ac3e 100644
--- a/kcontrol/pics/cr22-app-tdmconfig.png
+++ b/kcontrol/pics/cr22-app-tdmconfig.png
Binary files differ
diff --git a/kcontrol/pics/cr22-category-preferences-desktop-personal.png b/kcontrol/pics/cr22-category-preferences-desktop-personal.png
index 6b7153767..d805d03e4 100644
--- a/kcontrol/pics/cr22-category-preferences-desktop-personal.png
+++ b/kcontrol/pics/cr22-category-preferences-desktop-personal.png
Binary files differ
diff --git a/kcontrol/pics/cr22-device-laptop.png b/kcontrol/pics/cr22-device-laptop.png
index db7f61e89..e6520ce99 100644
--- a/kcontrol/pics/cr22-device-laptop.png
+++ b/kcontrol/pics/cr22-device-laptop.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-access.png b/kcontrol/pics/cr32-app-access.png
index c83070ca3..3e60c4be5 100644
--- a/kcontrol/pics/cr32-app-access.png
+++ b/kcontrol/pics/cr32-app-access.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-agent.png b/kcontrol/pics/cr32-app-agent.png
index d10a80c61..1a832620a 100644
--- a/kcontrol/pics/cr32-app-agent.png
+++ b/kcontrol/pics/cr32-app-agent.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-arts.png b/kcontrol/pics/cr32-app-arts.png
index 378cce9a6..eba7e5477 100644
--- a/kcontrol/pics/cr32-app-arts.png
+++ b/kcontrol/pics/cr32-app-arts.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-background.png b/kcontrol/pics/cr32-app-background.png
index 564ef39e8..ffc5ffaff 100644
--- a/kcontrol/pics/cr32-app-background.png
+++ b/kcontrol/pics/cr32-app-background.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-bell.png b/kcontrol/pics/cr32-app-bell.png
index 8d4079b99..9bc561ee1 100644
--- a/kcontrol/pics/cr32-app-bell.png
+++ b/kcontrol/pics/cr32-app-bell.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-cache.png b/kcontrol/pics/cr32-app-cache.png
index 7700fd9ad..b051f00f3 100644
--- a/kcontrol/pics/cr32-app-cache.png
+++ b/kcontrol/pics/cr32-app-cache.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-clock.png b/kcontrol/pics/cr32-app-clock.png
index 0f93b36cc..d986ffde9 100644
--- a/kcontrol/pics/cr32-app-clock.png
+++ b/kcontrol/pics/cr32-app-clock.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-colors.png b/kcontrol/pics/cr32-app-colors.png
index e5aa87cbd..b7e33832f 100644
--- a/kcontrol/pics/cr32-app-colors.png
+++ b/kcontrol/pics/cr32-app-colors.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-cookie.png b/kcontrol/pics/cr32-app-cookie.png
index 0879588c8..d287673a3 100644
--- a/kcontrol/pics/cr32-app-cookie.png
+++ b/kcontrol/pics/cr32-app-cookie.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-date.png b/kcontrol/pics/cr32-app-date.png
index 54b320347..923d08476 100644
--- a/kcontrol/pics/cr32-app-date.png
+++ b/kcontrol/pics/cr32-app-date.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-energy.png b/kcontrol/pics/cr32-app-energy.png
index e796c0528..573b026c4 100644
--- a/kcontrol/pics/cr32-app-energy.png
+++ b/kcontrol/pics/cr32-app-energy.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-energy_star.png b/kcontrol/pics/cr32-app-energy_star.png
index c26cf4cee..d4209e127 100644
--- a/kcontrol/pics/cr32-app-energy_star.png
+++ b/kcontrol/pics/cr32-app-energy_star.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-filetypes.png b/kcontrol/pics/cr32-app-filetypes.png
index 53d0099be..4d80e91df 100644
--- a/kcontrol/pics/cr32-app-filetypes.png
+++ b/kcontrol/pics/cr32-app-filetypes.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-fonts.png b/kcontrol/pics/cr32-app-fonts.png
index 9ace98c25..e7f40711a 100644
--- a/kcontrol/pics/cr32-app-fonts.png
+++ b/kcontrol/pics/cr32-app-fonts.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-help_index.png b/kcontrol/pics/cr32-app-help_index.png
index d5af86353..8c30c52f8 100644
--- a/kcontrol/pics/cr32-app-help_index.png
+++ b/kcontrol/pics/cr32-app-help_index.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-hwinfo.png b/kcontrol/pics/cr32-app-hwinfo.png
index dfb9a1c14..f59fafd92 100644
--- a/kcontrol/pics/cr32-app-hwinfo.png
+++ b/kcontrol/pics/cr32-app-hwinfo.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-icons.png b/kcontrol/pics/cr32-app-icons.png
index a12f847d9..6b3d9d13d 100644
--- a/kcontrol/pics/cr32-app-icons.png
+++ b/kcontrol/pics/cr32-app-icons.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-iconthemes.png b/kcontrol/pics/cr32-app-iconthemes.png
index c5326752a..425265cd3 100644
--- a/kcontrol/pics/cr32-app-iconthemes.png
+++ b/kcontrol/pics/cr32-app-iconthemes.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-ieee1394.png b/kcontrol/pics/cr32-app-ieee1394.png
index 0253e7976..0767a6a65 100644
--- a/kcontrol/pics/cr32-app-ieee1394.png
+++ b/kcontrol/pics/cr32-app-ieee1394.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmdevices.png b/kcontrol/pics/cr32-app-kcmdevices.png
index d6354ad28..cbca902a0 100644
--- a/kcontrol/pics/cr32-app-kcmdevices.png
+++ b/kcontrol/pics/cr32-app-kcmdevices.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmdrkonqi.png b/kcontrol/pics/cr32-app-kcmdrkonqi.png
index 26bb684cb..41181190e 100644
--- a/kcontrol/pics/cr32-app-kcmdrkonqi.png
+++ b/kcontrol/pics/cr32-app-kcmdrkonqi.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmkicker.png b/kcontrol/pics/cr32-app-kcmkicker.png
index e60d5a26e..12b478e37 100644
--- a/kcontrol/pics/cr32-app-kcmkicker.png
+++ b/kcontrol/pics/cr32-app-kcmkicker.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmkwm.png b/kcontrol/pics/cr32-app-kcmkwm.png
index a44e89764..4d9fd6b87 100644
--- a/kcontrol/pics/cr32-app-kcmkwm.png
+++ b/kcontrol/pics/cr32-app-kcmkwm.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmmemory.png b/kcontrol/pics/cr32-app-kcmmemory.png
index 8b50f37c9..cb09465bd 100644
--- a/kcontrol/pics/cr32-app-kcmmemory.png
+++ b/kcontrol/pics/cr32-app-kcmmemory.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmmidi.png b/kcontrol/pics/cr32-app-kcmmidi.png
index 8430f26fb..c6c2c1a31 100644
--- a/kcontrol/pics/cr32-app-kcmmidi.png
+++ b/kcontrol/pics/cr32-app-kcmmidi.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmpartitions.png b/kcontrol/pics/cr32-app-kcmpartitions.png
index e5a746f31..4a0dec4c8 100644
--- a/kcontrol/pics/cr32-app-kcmpartitions.png
+++ b/kcontrol/pics/cr32-app-kcmpartitions.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmpci.png b/kcontrol/pics/cr32-app-kcmpci.png
index fbde5bd3f..0be06cdf9 100644
--- a/kcontrol/pics/cr32-app-kcmpci.png
+++ b/kcontrol/pics/cr32-app-kcmpci.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmprocessor.png b/kcontrol/pics/cr32-app-kcmprocessor.png
index 72b2b4691..75633e212 100644
--- a/kcontrol/pics/cr32-app-kcmprocessor.png
+++ b/kcontrol/pics/cr32-app-kcmprocessor.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmscsi.png b/kcontrol/pics/cr32-app-kcmscsi.png
index d09ff08a2..9fb204eb6 100644
--- a/kcontrol/pics/cr32-app-kcmscsi.png
+++ b/kcontrol/pics/cr32-app-kcmscsi.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmsound.png b/kcontrol/pics/cr32-app-kcmsound.png
index c122c880b..187025d0f 100644
--- a/kcontrol/pics/cr32-app-kcmsound.png
+++ b/kcontrol/pics/cr32-app-kcmsound.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kcmx.png b/kcontrol/pics/cr32-app-kcmx.png
index 4157c391d..da9f7e1ad 100644
--- a/kcontrol/pics/cr32-app-kcmx.png
+++ b/kcontrol/pics/cr32-app-kcmx.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-key_bindings.png b/kcontrol/pics/cr32-app-key_bindings.png
index 6a3438d92..069c86cf8 100644
--- a/kcontrol/pics/cr32-app-key_bindings.png
+++ b/kcontrol/pics/cr32-app-key_bindings.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-keyboard.png b/kcontrol/pics/cr32-app-keyboard.png
index 3bbc80536..5a457e478 100644
--- a/kcontrol/pics/cr32-app-keyboard.png
+++ b/kcontrol/pics/cr32-app-keyboard.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-keyboard_layout.png b/kcontrol/pics/cr32-app-keyboard_layout.png
index 672c59310..d555a4b96 100644
--- a/kcontrol/pics/cr32-app-keyboard_layout.png
+++ b/kcontrol/pics/cr32-app-keyboard_layout.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-knotify.png b/kcontrol/pics/cr32-app-knotify.png
index ede0d8ed1..b9b1b46e5 100644
--- a/kcontrol/pics/cr32-app-knotify.png
+++ b/kcontrol/pics/cr32-app-knotify.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-kthememgr.png b/kcontrol/pics/cr32-app-kthememgr.png
index 2bf6a7782..114c0550f 100644
--- a/kcontrol/pics/cr32-app-kthememgr.png
+++ b/kcontrol/pics/cr32-app-kthememgr.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-locale.png b/kcontrol/pics/cr32-app-locale.png
index 96b4201ac..ae4433053 100644
--- a/kcontrol/pics/cr32-app-locale.png
+++ b/kcontrol/pics/cr32-app-locale.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-multimedia.png b/kcontrol/pics/cr32-app-multimedia.png
index 1e397c524..bfbd4ea52 100644
--- a/kcontrol/pics/cr32-app-multimedia.png
+++ b/kcontrol/pics/cr32-app-multimedia.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-proxy.png b/kcontrol/pics/cr32-app-proxy.png
index 46f68b243..e3d90ab76 100644
--- a/kcontrol/pics/cr32-app-proxy.png
+++ b/kcontrol/pics/cr32-app-proxy.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-samba.png b/kcontrol/pics/cr32-app-samba.png
index 0d79e5c83..03dd90797 100644
--- a/kcontrol/pics/cr32-app-samba.png
+++ b/kcontrol/pics/cr32-app-samba.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-style.png b/kcontrol/pics/cr32-app-style.png
index 2e29a93a0..a4eed07e0 100644
--- a/kcontrol/pics/cr32-app-style.png
+++ b/kcontrol/pics/cr32-app-style.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-stylesheet.png b/kcontrol/pics/cr32-app-stylesheet.png
index ab8918c30..3af0d2bef 100644
--- a/kcontrol/pics/cr32-app-stylesheet.png
+++ b/kcontrol/pics/cr32-app-stylesheet.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-tdescreensaver.png b/kcontrol/pics/cr32-app-tdescreensaver.png
index f527126bc..4c84e5da1 100644
--- a/kcontrol/pics/cr32-app-tdescreensaver.png
+++ b/kcontrol/pics/cr32-app-tdescreensaver.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-tdmconfig.png b/kcontrol/pics/cr32-app-tdmconfig.png
index a5cbf22d3..49b30dce6 100644
--- a/kcontrol/pics/cr32-app-tdmconfig.png
+++ b/kcontrol/pics/cr32-app-tdmconfig.png
Binary files differ
diff --git a/kcontrol/pics/cr32-app-usb.png b/kcontrol/pics/cr32-app-usb.png
index c7601cb87..e986b5c4b 100644
--- a/kcontrol/pics/cr32-app-usb.png
+++ b/kcontrol/pics/cr32-app-usb.png
Binary files differ
diff --git a/kcontrol/pics/cr32-category-preferences-desktop-peripherals.png b/kcontrol/pics/cr32-category-preferences-desktop-peripherals.png
index 785b8a0fc..3dda90fc9 100644
--- a/kcontrol/pics/cr32-category-preferences-desktop-peripherals.png
+++ b/kcontrol/pics/cr32-category-preferences-desktop-peripherals.png
Binary files differ
diff --git a/kcontrol/pics/cr32-category-preferences-desktop-personal.png b/kcontrol/pics/cr32-category-preferences-desktop-personal.png
index 4f1959142..cc5e97aa5 100644
--- a/kcontrol/pics/cr32-category-preferences-desktop-personal.png
+++ b/kcontrol/pics/cr32-category-preferences-desktop-personal.png
Binary files differ
diff --git a/kcontrol/pics/cr32-category-preferences-desktop.png b/kcontrol/pics/cr32-category-preferences-desktop.png
index 75e29219b..c125c441b 100644
--- a/kcontrol/pics/cr32-category-preferences-desktop.png
+++ b/kcontrol/pics/cr32-category-preferences-desktop.png
Binary files differ
diff --git a/kcontrol/pics/cr32-category-preferences-system.png b/kcontrol/pics/cr32-category-preferences-system.png
index 726784a4d..80c7fced5 100644
--- a/kcontrol/pics/cr32-category-preferences-system.png
+++ b/kcontrol/pics/cr32-category-preferences-system.png
Binary files differ
diff --git a/kcontrol/pics/cr32-device-laptop.png b/kcontrol/pics/cr32-device-laptop.png
index 866f3aae1..adf30f5e0 100644
--- a/kcontrol/pics/cr32-device-laptop.png
+++ b/kcontrol/pics/cr32-device-laptop.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-access.png b/kcontrol/pics/cr48-app-access.png
index c74f3d99f..95d221e44 100644
--- a/kcontrol/pics/cr48-app-access.png
+++ b/kcontrol/pics/cr48-app-access.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-agent.png b/kcontrol/pics/cr48-app-agent.png
index 50864ebc1..09b9daeb2 100644
--- a/kcontrol/pics/cr48-app-agent.png
+++ b/kcontrol/pics/cr48-app-agent.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-arts.png b/kcontrol/pics/cr48-app-arts.png
index 462eff9a2..5066c0297 100644
--- a/kcontrol/pics/cr48-app-arts.png
+++ b/kcontrol/pics/cr48-app-arts.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-background.png b/kcontrol/pics/cr48-app-background.png
index c2328e70b..631905b93 100644
--- a/kcontrol/pics/cr48-app-background.png
+++ b/kcontrol/pics/cr48-app-background.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-bell.png b/kcontrol/pics/cr48-app-bell.png
index 0c4b6c5e3..c7ab7feb7 100644
--- a/kcontrol/pics/cr48-app-bell.png
+++ b/kcontrol/pics/cr48-app-bell.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-cache.png b/kcontrol/pics/cr48-app-cache.png
index df779f4b3..613ca1c92 100644
--- a/kcontrol/pics/cr48-app-cache.png
+++ b/kcontrol/pics/cr48-app-cache.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-clock.png b/kcontrol/pics/cr48-app-clock.png
index b97479759..b879f928b 100644
--- a/kcontrol/pics/cr48-app-clock.png
+++ b/kcontrol/pics/cr48-app-clock.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-colors.png b/kcontrol/pics/cr48-app-colors.png
index 4be4e3501..e076381e0 100644
--- a/kcontrol/pics/cr48-app-colors.png
+++ b/kcontrol/pics/cr48-app-colors.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-cookie.png b/kcontrol/pics/cr48-app-cookie.png
index b3dc63ebc..a43cffd64 100644
--- a/kcontrol/pics/cr48-app-cookie.png
+++ b/kcontrol/pics/cr48-app-cookie.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-date.png b/kcontrol/pics/cr48-app-date.png
index a510951db..e0ce62cd9 100644
--- a/kcontrol/pics/cr48-app-date.png
+++ b/kcontrol/pics/cr48-app-date.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-energy.png b/kcontrol/pics/cr48-app-energy.png
index 269eb4435..b66182b74 100644
--- a/kcontrol/pics/cr48-app-energy.png
+++ b/kcontrol/pics/cr48-app-energy.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-energy_star.png b/kcontrol/pics/cr48-app-energy_star.png
index 5ed89d5ae..53da9fdc5 100644
--- a/kcontrol/pics/cr48-app-energy_star.png
+++ b/kcontrol/pics/cr48-app-energy_star.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-filetypes.png b/kcontrol/pics/cr48-app-filetypes.png
index 37f365e21..ca2cfda20 100644
--- a/kcontrol/pics/cr48-app-filetypes.png
+++ b/kcontrol/pics/cr48-app-filetypes.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-fonts.png b/kcontrol/pics/cr48-app-fonts.png
index a17a1f282..a51c707db 100644
--- a/kcontrol/pics/cr48-app-fonts.png
+++ b/kcontrol/pics/cr48-app-fonts.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-help_index.png b/kcontrol/pics/cr48-app-help_index.png
index 418e1daf8..07c01d003 100644
--- a/kcontrol/pics/cr48-app-help_index.png
+++ b/kcontrol/pics/cr48-app-help_index.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-hwinfo.png b/kcontrol/pics/cr48-app-hwinfo.png
index a7f8b281e..6db94cebe 100644
--- a/kcontrol/pics/cr48-app-hwinfo.png
+++ b/kcontrol/pics/cr48-app-hwinfo.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-icons.png b/kcontrol/pics/cr48-app-icons.png
index a9100e732..aeda713c8 100644
--- a/kcontrol/pics/cr48-app-icons.png
+++ b/kcontrol/pics/cr48-app-icons.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-iconthemes.png b/kcontrol/pics/cr48-app-iconthemes.png
index 3ae2864a2..4b0f8d57d 100644
--- a/kcontrol/pics/cr48-app-iconthemes.png
+++ b/kcontrol/pics/cr48-app-iconthemes.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-ieee1394.png b/kcontrol/pics/cr48-app-ieee1394.png
index e5dd54b89..6ace14e07 100644
--- a/kcontrol/pics/cr48-app-ieee1394.png
+++ b/kcontrol/pics/cr48-app-ieee1394.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmdevices.png b/kcontrol/pics/cr48-app-kcmdevices.png
index 59f5d185a..ac9f8bdc8 100644
--- a/kcontrol/pics/cr48-app-kcmdevices.png
+++ b/kcontrol/pics/cr48-app-kcmdevices.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmdf.png b/kcontrol/pics/cr48-app-kcmdf.png
index 29d351f8b..93323214a 100644
--- a/kcontrol/pics/cr48-app-kcmdf.png
+++ b/kcontrol/pics/cr48-app-kcmdf.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmdrkonqi.png b/kcontrol/pics/cr48-app-kcmdrkonqi.png
index 54d7ce45f..86830c95a 100644
--- a/kcontrol/pics/cr48-app-kcmdrkonqi.png
+++ b/kcontrol/pics/cr48-app-kcmdrkonqi.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmkicker.png b/kcontrol/pics/cr48-app-kcmkicker.png
index dc7aee7dd..90fae4e96 100644
--- a/kcontrol/pics/cr48-app-kcmkicker.png
+++ b/kcontrol/pics/cr48-app-kcmkicker.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmkwm.png b/kcontrol/pics/cr48-app-kcmkwm.png
index aba583bed..b4b30269e 100644
--- a/kcontrol/pics/cr48-app-kcmkwm.png
+++ b/kcontrol/pics/cr48-app-kcmkwm.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmmemory.png b/kcontrol/pics/cr48-app-kcmmemory.png
index 3424cfa33..b64d11d6a 100644
--- a/kcontrol/pics/cr48-app-kcmmemory.png
+++ b/kcontrol/pics/cr48-app-kcmmemory.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmmidi.png b/kcontrol/pics/cr48-app-kcmmidi.png
index 8d716aca4..b27a1bcf1 100644
--- a/kcontrol/pics/cr48-app-kcmmidi.png
+++ b/kcontrol/pics/cr48-app-kcmmidi.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmopengl.png b/kcontrol/pics/cr48-app-kcmopengl.png
index ae934924c..d21a43011 100644
--- a/kcontrol/pics/cr48-app-kcmopengl.png
+++ b/kcontrol/pics/cr48-app-kcmopengl.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmpartitions.png b/kcontrol/pics/cr48-app-kcmpartitions.png
index bddfa43e8..a820a3046 100644
--- a/kcontrol/pics/cr48-app-kcmpartitions.png
+++ b/kcontrol/pics/cr48-app-kcmpartitions.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmpci.png b/kcontrol/pics/cr48-app-kcmpci.png
index 51215dddf..1a79dcbaf 100644
--- a/kcontrol/pics/cr48-app-kcmpci.png
+++ b/kcontrol/pics/cr48-app-kcmpci.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmprocessor.png b/kcontrol/pics/cr48-app-kcmprocessor.png
index 34e98e2f9..61253cf06 100644
--- a/kcontrol/pics/cr48-app-kcmprocessor.png
+++ b/kcontrol/pics/cr48-app-kcmprocessor.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmscsi.png b/kcontrol/pics/cr48-app-kcmscsi.png
index d2abcebcf..ce003921c 100644
--- a/kcontrol/pics/cr48-app-kcmscsi.png
+++ b/kcontrol/pics/cr48-app-kcmscsi.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kcmx.png b/kcontrol/pics/cr48-app-kcmx.png
index 99a635905..9facd5af7 100644
--- a/kcontrol/pics/cr48-app-kcmx.png
+++ b/kcontrol/pics/cr48-app-kcmx.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-key_bindings.png b/kcontrol/pics/cr48-app-key_bindings.png
index e4134ce3e..57692bada 100644
--- a/kcontrol/pics/cr48-app-key_bindings.png
+++ b/kcontrol/pics/cr48-app-key_bindings.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-keyboard.png b/kcontrol/pics/cr48-app-keyboard.png
index 04c821147..596c583c4 100644
--- a/kcontrol/pics/cr48-app-keyboard.png
+++ b/kcontrol/pics/cr48-app-keyboard.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-keyboard_layout.png b/kcontrol/pics/cr48-app-keyboard_layout.png
index ba0359447..ea20a16bc 100644
--- a/kcontrol/pics/cr48-app-keyboard_layout.png
+++ b/kcontrol/pics/cr48-app-keyboard_layout.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kicker.png b/kcontrol/pics/cr48-app-kicker.png
index dc7aee7dd..90fae4e96 100644
--- a/kcontrol/pics/cr48-app-kicker.png
+++ b/kcontrol/pics/cr48-app-kicker.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-knotify.png b/kcontrol/pics/cr48-app-knotify.png
index b0aa6e8fa..6d3b598c7 100644
--- a/kcontrol/pics/cr48-app-knotify.png
+++ b/kcontrol/pics/cr48-app-knotify.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-kthememgr.png b/kcontrol/pics/cr48-app-kthememgr.png
index 50430c726..883dd353b 100644
--- a/kcontrol/pics/cr48-app-kthememgr.png
+++ b/kcontrol/pics/cr48-app-kthememgr.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-locale.png b/kcontrol/pics/cr48-app-locale.png
index e7defacbc..b05844c53 100644
--- a/kcontrol/pics/cr48-app-locale.png
+++ b/kcontrol/pics/cr48-app-locale.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-multimedia.png b/kcontrol/pics/cr48-app-multimedia.png
index dc766a89c..0ef1022f2 100644
--- a/kcontrol/pics/cr48-app-multimedia.png
+++ b/kcontrol/pics/cr48-app-multimedia.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-proxy.png b/kcontrol/pics/cr48-app-proxy.png
index 3683e298c..1317ff9ac 100644
--- a/kcontrol/pics/cr48-app-proxy.png
+++ b/kcontrol/pics/cr48-app-proxy.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-samba.png b/kcontrol/pics/cr48-app-samba.png
index d980263d8..534580c38 100644
--- a/kcontrol/pics/cr48-app-samba.png
+++ b/kcontrol/pics/cr48-app-samba.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-style.png b/kcontrol/pics/cr48-app-style.png
index 5d8af7e87..239281324 100644
--- a/kcontrol/pics/cr48-app-style.png
+++ b/kcontrol/pics/cr48-app-style.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-stylesheet.png b/kcontrol/pics/cr48-app-stylesheet.png
index f74586b3c..cbe7bc267 100644
--- a/kcontrol/pics/cr48-app-stylesheet.png
+++ b/kcontrol/pics/cr48-app-stylesheet.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-tdescreensaver.png b/kcontrol/pics/cr48-app-tdescreensaver.png
index 749f42253..290b72ae9 100644
--- a/kcontrol/pics/cr48-app-tdescreensaver.png
+++ b/kcontrol/pics/cr48-app-tdescreensaver.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-tdmconfig.png b/kcontrol/pics/cr48-app-tdmconfig.png
index d8b241ca9..dd419933e 100644
--- a/kcontrol/pics/cr48-app-tdmconfig.png
+++ b/kcontrol/pics/cr48-app-tdmconfig.png
Binary files differ
diff --git a/kcontrol/pics/cr48-app-usb.png b/kcontrol/pics/cr48-app-usb.png
index 4260b8259..a756a911a 100644
--- a/kcontrol/pics/cr48-app-usb.png
+++ b/kcontrol/pics/cr48-app-usb.png
Binary files differ
diff --git a/kcontrol/pics/cr48-category-preferences-desktop-peripherals.png b/kcontrol/pics/cr48-category-preferences-desktop-peripherals.png
index 5c1e16a5b..c6bbe3173 100644
--- a/kcontrol/pics/cr48-category-preferences-desktop-peripherals.png
+++ b/kcontrol/pics/cr48-category-preferences-desktop-peripherals.png
Binary files differ
diff --git a/kcontrol/pics/cr48-category-preferences-desktop-personal.png b/kcontrol/pics/cr48-category-preferences-desktop-personal.png
index 90aedf0f8..433db418a 100644
--- a/kcontrol/pics/cr48-category-preferences-desktop-personal.png
+++ b/kcontrol/pics/cr48-category-preferences-desktop-personal.png
Binary files differ
diff --git a/kcontrol/pics/cr48-category-preferences-desktop.png b/kcontrol/pics/cr48-category-preferences-desktop.png
index 342ebd7af..b8b4a3a48 100644
--- a/kcontrol/pics/cr48-category-preferences-desktop.png
+++ b/kcontrol/pics/cr48-category-preferences-desktop.png
Binary files differ
diff --git a/kcontrol/pics/cr48-category-preferences-system.png b/kcontrol/pics/cr48-category-preferences-system.png
index 3ed096d9d..dac0b12da 100644
--- a/kcontrol/pics/cr48-category-preferences-system.png
+++ b/kcontrol/pics/cr48-category-preferences-system.png
Binary files differ
diff --git a/kcontrol/pics/cr48-device-laptop.png b/kcontrol/pics/cr48-device-laptop.png
index 380f8ba0b..8f3546ad2 100644
--- a/kcontrol/pics/cr48-device-laptop.png
+++ b/kcontrol/pics/cr48-device-laptop.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-access.png b/kcontrol/pics/cr64-app-access.png
index 1d932d01d..9a762241a 100644
--- a/kcontrol/pics/cr64-app-access.png
+++ b/kcontrol/pics/cr64-app-access.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-arts.png b/kcontrol/pics/cr64-app-arts.png
index cab3cd94a..b1fb880b8 100644
--- a/kcontrol/pics/cr64-app-arts.png
+++ b/kcontrol/pics/cr64-app-arts.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-background.png b/kcontrol/pics/cr64-app-background.png
index 0f9de6c17..50706c290 100644
--- a/kcontrol/pics/cr64-app-background.png
+++ b/kcontrol/pics/cr64-app-background.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-bell.png b/kcontrol/pics/cr64-app-bell.png
index f83c4092e..c8993cef5 100644
--- a/kcontrol/pics/cr64-app-bell.png
+++ b/kcontrol/pics/cr64-app-bell.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-cache.png b/kcontrol/pics/cr64-app-cache.png
index a49b55d1d..6ddf0e0fd 100644
--- a/kcontrol/pics/cr64-app-cache.png
+++ b/kcontrol/pics/cr64-app-cache.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-clock.png b/kcontrol/pics/cr64-app-clock.png
index 5698b5e05..e32c65cbf 100644
--- a/kcontrol/pics/cr64-app-clock.png
+++ b/kcontrol/pics/cr64-app-clock.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-colors.png b/kcontrol/pics/cr64-app-colors.png
index bf01037f5..40fcfaff5 100644
--- a/kcontrol/pics/cr64-app-colors.png
+++ b/kcontrol/pics/cr64-app-colors.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-cookie.png b/kcontrol/pics/cr64-app-cookie.png
index 3988e0f23..8460269e7 100644
--- a/kcontrol/pics/cr64-app-cookie.png
+++ b/kcontrol/pics/cr64-app-cookie.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-date.png b/kcontrol/pics/cr64-app-date.png
index 06761d77e..3b46e6a7c 100644
--- a/kcontrol/pics/cr64-app-date.png
+++ b/kcontrol/pics/cr64-app-date.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-energy.png b/kcontrol/pics/cr64-app-energy.png
index 5223681ff..c233a51a9 100644
--- a/kcontrol/pics/cr64-app-energy.png
+++ b/kcontrol/pics/cr64-app-energy.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-energy_star.png b/kcontrol/pics/cr64-app-energy_star.png
index 13a4640ab..23756779d 100644
--- a/kcontrol/pics/cr64-app-energy_star.png
+++ b/kcontrol/pics/cr64-app-energy_star.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-filetypes.png b/kcontrol/pics/cr64-app-filetypes.png
index 6f723a9cc..5dc7ef613 100644
--- a/kcontrol/pics/cr64-app-filetypes.png
+++ b/kcontrol/pics/cr64-app-filetypes.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-fonts.png b/kcontrol/pics/cr64-app-fonts.png
index 6fdab333d..6808d43f0 100644
--- a/kcontrol/pics/cr64-app-fonts.png
+++ b/kcontrol/pics/cr64-app-fonts.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-help_index.png b/kcontrol/pics/cr64-app-help_index.png
index 56be1b7b0..2a48aa8fd 100644
--- a/kcontrol/pics/cr64-app-help_index.png
+++ b/kcontrol/pics/cr64-app-help_index.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-hwinfo.png b/kcontrol/pics/cr64-app-hwinfo.png
index bb3ac3019..100fa367f 100644
--- a/kcontrol/pics/cr64-app-hwinfo.png
+++ b/kcontrol/pics/cr64-app-hwinfo.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-icons.png b/kcontrol/pics/cr64-app-icons.png
index 3891bc74d..0635b6b87 100644
--- a/kcontrol/pics/cr64-app-icons.png
+++ b/kcontrol/pics/cr64-app-icons.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-ieee1394.png b/kcontrol/pics/cr64-app-ieee1394.png
index eb8d540b2..a9fc990c8 100644
--- a/kcontrol/pics/cr64-app-ieee1394.png
+++ b/kcontrol/pics/cr64-app-ieee1394.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmdevices.png b/kcontrol/pics/cr64-app-kcmdevices.png
index 396b3d3ba..461628285 100644
--- a/kcontrol/pics/cr64-app-kcmdevices.png
+++ b/kcontrol/pics/cr64-app-kcmdevices.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmdf.png b/kcontrol/pics/cr64-app-kcmdf.png
index 58378b148..78aea3b32 100644
--- a/kcontrol/pics/cr64-app-kcmdf.png
+++ b/kcontrol/pics/cr64-app-kcmdf.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmkwm.png b/kcontrol/pics/cr64-app-kcmkwm.png
index d453cd2cb..982afdb16 100644
--- a/kcontrol/pics/cr64-app-kcmkwm.png
+++ b/kcontrol/pics/cr64-app-kcmkwm.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmmemory.png b/kcontrol/pics/cr64-app-kcmmemory.png
index 61f7cc517..c56f138b0 100644
--- a/kcontrol/pics/cr64-app-kcmmemory.png
+++ b/kcontrol/pics/cr64-app-kcmmemory.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmpartitions.png b/kcontrol/pics/cr64-app-kcmpartitions.png
index 1bcce6d00..42ca2f9f1 100644
--- a/kcontrol/pics/cr64-app-kcmpartitions.png
+++ b/kcontrol/pics/cr64-app-kcmpartitions.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmpci.png b/kcontrol/pics/cr64-app-kcmpci.png
index 6fae64367..262326d25 100644
--- a/kcontrol/pics/cr64-app-kcmpci.png
+++ b/kcontrol/pics/cr64-app-kcmpci.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kcmx.png b/kcontrol/pics/cr64-app-kcmx.png
index 64e33b953..e7b91bdd8 100644
--- a/kcontrol/pics/cr64-app-kcmx.png
+++ b/kcontrol/pics/cr64-app-kcmx.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-key_bindings.png b/kcontrol/pics/cr64-app-key_bindings.png
index ca5090329..e549f0e53 100644
--- a/kcontrol/pics/cr64-app-key_bindings.png
+++ b/kcontrol/pics/cr64-app-key_bindings.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-knotify.png b/kcontrol/pics/cr64-app-knotify.png
index 3a4d918ae..7036262ee 100644
--- a/kcontrol/pics/cr64-app-knotify.png
+++ b/kcontrol/pics/cr64-app-knotify.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-kthememgr.png b/kcontrol/pics/cr64-app-kthememgr.png
index 784b5aef3..201af4fc4 100644
--- a/kcontrol/pics/cr64-app-kthememgr.png
+++ b/kcontrol/pics/cr64-app-kthememgr.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-locale.png b/kcontrol/pics/cr64-app-locale.png
index 042c0d345..b88c1aa9c 100644
--- a/kcontrol/pics/cr64-app-locale.png
+++ b/kcontrol/pics/cr64-app-locale.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-multimedia.png b/kcontrol/pics/cr64-app-multimedia.png
index 406aad0f1..e4de0d7f7 100644
--- a/kcontrol/pics/cr64-app-multimedia.png
+++ b/kcontrol/pics/cr64-app-multimedia.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-proxy.png b/kcontrol/pics/cr64-app-proxy.png
index 9b5f5b6a8..b77a185c2 100644
--- a/kcontrol/pics/cr64-app-proxy.png
+++ b/kcontrol/pics/cr64-app-proxy.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-samba.png b/kcontrol/pics/cr64-app-samba.png
index 2bade600c..25807367d 100644
--- a/kcontrol/pics/cr64-app-samba.png
+++ b/kcontrol/pics/cr64-app-samba.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-style.png b/kcontrol/pics/cr64-app-style.png
index d3f70b0cb..6cf7cde02 100644
--- a/kcontrol/pics/cr64-app-style.png
+++ b/kcontrol/pics/cr64-app-style.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-stylesheet.png b/kcontrol/pics/cr64-app-stylesheet.png
index ac393bc3e..877009d54 100644
--- a/kcontrol/pics/cr64-app-stylesheet.png
+++ b/kcontrol/pics/cr64-app-stylesheet.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-tdescreensaver.png b/kcontrol/pics/cr64-app-tdescreensaver.png
index 69c8214fb..54a8fc847 100644
--- a/kcontrol/pics/cr64-app-tdescreensaver.png
+++ b/kcontrol/pics/cr64-app-tdescreensaver.png
Binary files differ
diff --git a/kcontrol/pics/cr64-app-tdmconfig.png b/kcontrol/pics/cr64-app-tdmconfig.png
index 57c5726d0..b48d949f6 100644
--- a/kcontrol/pics/cr64-app-tdmconfig.png
+++ b/kcontrol/pics/cr64-app-tdmconfig.png
Binary files differ
diff --git a/kcontrol/pics/cr64-category-preferences-desktop-personal.png b/kcontrol/pics/cr64-category-preferences-desktop-personal.png
index 136dcfe11..1f0a10af6 100644
--- a/kcontrol/pics/cr64-category-preferences-desktop-personal.png
+++ b/kcontrol/pics/cr64-category-preferences-desktop-personal.png
Binary files differ
diff --git a/kcontrol/pics/cr64-category-preferences-desktop.png b/kcontrol/pics/cr64-category-preferences-desktop.png
index b73346e44..51c28feaf 100644
--- a/kcontrol/pics/cr64-category-preferences-desktop.png
+++ b/kcontrol/pics/cr64-category-preferences-desktop.png
Binary files differ
diff --git a/kcontrol/pics/cr64-device-laptop.png b/kcontrol/pics/cr64-device-laptop.png
index 6084660cc..41879e6bc 100644
--- a/kcontrol/pics/cr64-device-laptop.png
+++ b/kcontrol/pics/cr64-device-laptop.png
Binary files differ
diff --git a/kcontrol/randr/tderandrtray.h b/kcontrol/randr/tderandrtray.h
index 8f382922f..334e1ef31 100644
--- a/kcontrol/randr/tderandrtray.h
+++ b/kcontrol/randr/tderandrtray.h
@@ -24,13 +24,14 @@
#include <ksystemtray.h>
#include <kglobalaccel.h>
-#include <libtderandr/libtderandr.h>
#ifdef __TDE_HAVE_TDEHWLIB
#include <tdehardwaredevices.h>
#else
#define TDEGenericDevice void
#endif
+#include <libtderandr/libtderandr.h>
+
class KHelpMenu;
class TDEPopupMenu;
diff --git a/kcontrol/tdefontinst/kcmfontinst/cr16-action-newfont.png b/kcontrol/tdefontinst/kcmfontinst/cr16-action-newfont.png
index 61eef357e..96211d80e 100644
--- a/kcontrol/tdefontinst/kcmfontinst/cr16-action-newfont.png
+++ b/kcontrol/tdefontinst/kcmfontinst/cr16-action-newfont.png
Binary files differ
diff --git a/kcontrol/tdefontinst/kcmfontinst/cr22-action-newfont.png b/kcontrol/tdefontinst/kcmfontinst/cr22-action-newfont.png
index 049197a35..5804667fd 100644
--- a/kcontrol/tdefontinst/kcmfontinst/cr22-action-newfont.png
+++ b/kcontrol/tdefontinst/kcmfontinst/cr22-action-newfont.png
Binary files differ
diff --git a/kcontrol/tdefontinst/kcmfontinst/cr32-action-newfont.png b/kcontrol/tdefontinst/kcmfontinst/cr32-action-newfont.png
index 9cd3d57bc..746bbc703 100644
--- a/kcontrol/tdefontinst/kcmfontinst/cr32-action-newfont.png
+++ b/kcontrol/tdefontinst/kcmfontinst/cr32-action-newfont.png
Binary files differ
diff --git a/kcontrol/tdm/tdm-appear.cpp b/kcontrol/tdm/tdm-appear.cpp
index 8d3f848b5..cfd008481 100644
--- a/kcontrol/tdm/tdm-appear.cpp
+++ b/kcontrol/tdm/tdm-appear.cpp
@@ -479,6 +479,8 @@ void TDMAppearanceWidget::save()
if (!sakwarning) {
config->setGroup("X-:*-Greeter");
config->writeEntry("UseSAK", sakbox->isChecked());
+ config->setGroup("X-*-Greeter");
+ config->deleteEntry("UseSAK");
}
// Enable/disable tsak as needed
@@ -547,7 +549,12 @@ void TDMAppearanceWidget::load()
// See if the SAK is enabled
if (!sakwarning) {
- config->setGroup("X-:*-Greeter");
+ if (config->hasGroup("X-:*-Greeter")) {
+ config->setGroup("X-:*-Greeter");
+ }
+ else {
+ config->setGroup("X-*-Greeter");
+ }
sakbox->setChecked(config->readBoolEntry("UseSAK", false));
}
else {