From 567dd92d4c10e4c1d9c8ba6a3b3568e2d18951d2 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sun, 19 Sep 2010 21:22:24 +0200 Subject: [PATCH] Add built-in icons. --- COPYING | 23 ++++ share/icons/database/C00_Password.png | Bin 0 -> 949 bytes share/icons/database/C01_Package_Network.png | Bin 0 -> 1154 bytes .../icons/database/C02_MessageBox_Warning.png | Bin 0 -> 937 bytes share/icons/database/C03_Server.png | Bin 0 -> 914 bytes share/icons/database/C04_Klipper.png | Bin 0 -> 823 bytes share/icons/database/C05_Edu_Languages.png | Bin 0 -> 1068 bytes share/icons/database/C06_KCMDF.png | Bin 0 -> 964 bytes share/icons/database/C07_Kate.png | Bin 0 -> 1097 bytes share/icons/database/C08_Socket.png | Bin 0 -> 1180 bytes share/icons/database/C09_Identity.png | Bin 0 -> 874 bytes share/icons/database/C10_Kontact.png | Bin 0 -> 1043 bytes share/icons/database/C11_Camera.png | Bin 0 -> 902 bytes share/icons/database/C12_IRKickFlash.png | Bin 0 -> 1108 bytes share/icons/database/C13_KGPG_Key3.png | Bin 0 -> 946 bytes share/icons/database/C14_Laptop_Power.png | Bin 0 -> 921 bytes share/icons/database/C15_Scanner.png | Bin 0 -> 1086 bytes share/icons/database/C16_Mozilla_Firebird.png | Bin 0 -> 1002 bytes share/icons/database/C17_CDROM_Unmount.png | Bin 0 -> 1078 bytes share/icons/database/C18_Display.png | Bin 0 -> 888 bytes share/icons/database/C19_Mail_Generic.png | Bin 0 -> 1148 bytes share/icons/database/C20_Misc.png | Bin 0 -> 1041 bytes share/icons/database/C21_KOrganizer.png | Bin 0 -> 1073 bytes share/icons/database/C22_ASCII.png | Bin 0 -> 560 bytes share/icons/database/C23_Icons.png | Bin 0 -> 781 bytes .../database/C24_Connect_Established.png | Bin 0 -> 1155 bytes share/icons/database/C25_Folder_Mail.png | Bin 0 -> 843 bytes share/icons/database/C26_FileSave.png | Bin 0 -> 898 bytes share/icons/database/C27_NFS_Unmount.png | Bin 0 -> 1022 bytes share/icons/database/C28_QuickTime.png | Bin 0 -> 931 bytes share/icons/database/C29_KGPG_Term.png | Bin 0 -> 897 bytes share/icons/database/C30_Konsole.png | Bin 0 -> 960 bytes share/icons/database/C31_FilePrint.png | Bin 0 -> 1020 bytes share/icons/database/C32_FSView.png | Bin 0 -> 916 bytes share/icons/database/C33_Run.png | Bin 0 -> 987 bytes share/icons/database/C34_Configure.png | Bin 0 -> 980 bytes share/icons/database/C35_KRFB.png | Bin 0 -> 1197 bytes share/icons/database/C36_Ark.png | Bin 0 -> 1078 bytes share/icons/database/C37_KPercentage.png | Bin 0 -> 1107 bytes share/icons/database/C38_Samba_Unmount.png | Bin 0 -> 1144 bytes share/icons/database/C39_History.png | Bin 0 -> 1166 bytes share/icons/database/C40_Mail_Find.png | Bin 0 -> 1141 bytes share/icons/database/C41_VectorGfx.png | Bin 0 -> 875 bytes share/icons/database/C42_KCMMemory.png | Bin 0 -> 913 bytes share/icons/database/C43_EditTrash.png | Bin 0 -> 1115 bytes share/icons/database/C44_KNotes.png | Bin 0 -> 954 bytes share/icons/database/C45_Cancel.png | Bin 0 -> 1133 bytes share/icons/database/C46_Help.png | Bin 0 -> 1187 bytes share/icons/database/C47_KPackage.png | Bin 0 -> 983 bytes share/icons/database/C48_Folder.png | Bin 0 -> 558 bytes share/icons/database/C49_Folder_Blue_Open.png | Bin 0 -> 599 bytes share/icons/database/C50_Folder_Tar.png | Bin 0 -> 865 bytes share/icons/database/C51_Decrypted.png | Bin 0 -> 972 bytes share/icons/database/C52_Encrypted.png | Bin 0 -> 894 bytes share/icons/database/C53_Apply.png | Bin 0 -> 883 bytes share/icons/database/C54_Signature.png | Bin 0 -> 790 bytes share/icons/database/C55_Thumbnail.png | Bin 0 -> 922 bytes share/icons/database/C56_KAddressBook.png | Bin 0 -> 954 bytes share/icons/database/C57_View_Text.png | Bin 0 -> 895 bytes share/icons/database/C58_KGPG.png | Bin 0 -> 1157 bytes .../database/C59_Package_Development.png | Bin 0 -> 985 bytes share/icons/database/C60_KFM_Home.png | Bin 0 -> 1063 bytes share/icons/database/C61_Services.png | Bin 0 -> 1030 bytes share/icons/database/C62_Tux.png | Bin 0 -> 411 bytes share/icons/database/C63_Feather.png | Bin 0 -> 542 bytes share/icons/database/C64_Apple.png | Bin 0 -> 359 bytes share/icons/database/C65_Apple.png | Bin 0 -> 516 bytes share/icons/database/C66_Money.png | Bin 0 -> 427 bytes share/icons/database/C67_Certificate.png | Bin 0 -> 516 bytes share/icons/database/C68_BlackBerry.png | Bin 0 -> 509 bytes src/CMakeLists.txt | 1 + src/config-keepassx.h.cmake | 2 + src/core/Database.cpp | 10 +- src/core/Database.h | 6 +- src/core/DatabaseIcons.cpp | 128 ++++++++++++++++++ src/core/DatabaseIcons.h | 37 +++++ src/core/Entry.cpp | 12 +- src/core/Entry.h | 4 +- src/core/Group.cpp | 10 +- src/core/Group.h | 4 +- src/core/Metadata.cpp | 11 +- src/core/Metadata.h | 9 +- src/format/KeePass2XmlReader.cpp | 11 +- src/format/KeePass2XmlWriter.cpp | 8 +- src/format/KeePass2XmlWriter.h | 4 +- src/gui/EntryModel.cpp | 4 +- src/gui/GroupModel.cpp | 5 +- tests/TestKeePass2XmlReader.cpp | 5 +- 88 files changed, 243 insertions(+), 51 deletions(-) create mode 100644 share/icons/database/C00_Password.png create mode 100644 share/icons/database/C01_Package_Network.png create mode 100644 share/icons/database/C02_MessageBox_Warning.png create mode 100644 share/icons/database/C03_Server.png create mode 100644 share/icons/database/C04_Klipper.png create mode 100644 share/icons/database/C05_Edu_Languages.png create mode 100644 share/icons/database/C06_KCMDF.png create mode 100644 share/icons/database/C07_Kate.png create mode 100644 share/icons/database/C08_Socket.png create mode 100644 share/icons/database/C09_Identity.png create mode 100644 share/icons/database/C10_Kontact.png create mode 100644 share/icons/database/C11_Camera.png create mode 100644 share/icons/database/C12_IRKickFlash.png create mode 100644 share/icons/database/C13_KGPG_Key3.png create mode 100644 share/icons/database/C14_Laptop_Power.png create mode 100644 share/icons/database/C15_Scanner.png create mode 100644 share/icons/database/C16_Mozilla_Firebird.png create mode 100644 share/icons/database/C17_CDROM_Unmount.png create mode 100644 share/icons/database/C18_Display.png create mode 100644 share/icons/database/C19_Mail_Generic.png create mode 100644 share/icons/database/C20_Misc.png create mode 100644 share/icons/database/C21_KOrganizer.png create mode 100644 share/icons/database/C22_ASCII.png create mode 100644 share/icons/database/C23_Icons.png create mode 100644 share/icons/database/C24_Connect_Established.png create mode 100644 share/icons/database/C25_Folder_Mail.png create mode 100644 share/icons/database/C26_FileSave.png create mode 100644 share/icons/database/C27_NFS_Unmount.png create mode 100644 share/icons/database/C28_QuickTime.png create mode 100644 share/icons/database/C29_KGPG_Term.png create mode 100644 share/icons/database/C30_Konsole.png create mode 100644 share/icons/database/C31_FilePrint.png create mode 100644 share/icons/database/C32_FSView.png create mode 100644 share/icons/database/C33_Run.png create mode 100644 share/icons/database/C34_Configure.png create mode 100644 share/icons/database/C35_KRFB.png create mode 100644 share/icons/database/C36_Ark.png create mode 100644 share/icons/database/C37_KPercentage.png create mode 100644 share/icons/database/C38_Samba_Unmount.png create mode 100644 share/icons/database/C39_History.png create mode 100644 share/icons/database/C40_Mail_Find.png create mode 100644 share/icons/database/C41_VectorGfx.png create mode 100644 share/icons/database/C42_KCMMemory.png create mode 100644 share/icons/database/C43_EditTrash.png create mode 100644 share/icons/database/C44_KNotes.png create mode 100644 share/icons/database/C45_Cancel.png create mode 100644 share/icons/database/C46_Help.png create mode 100644 share/icons/database/C47_KPackage.png create mode 100644 share/icons/database/C48_Folder.png create mode 100644 share/icons/database/C49_Folder_Blue_Open.png create mode 100644 share/icons/database/C50_Folder_Tar.png create mode 100644 share/icons/database/C51_Decrypted.png create mode 100644 share/icons/database/C52_Encrypted.png create mode 100644 share/icons/database/C53_Apply.png create mode 100644 share/icons/database/C54_Signature.png create mode 100644 share/icons/database/C55_Thumbnail.png create mode 100644 share/icons/database/C56_KAddressBook.png create mode 100644 share/icons/database/C57_View_Text.png create mode 100644 share/icons/database/C58_KGPG.png create mode 100644 share/icons/database/C59_Package_Development.png create mode 100644 share/icons/database/C60_KFM_Home.png create mode 100644 share/icons/database/C61_Services.png create mode 100644 share/icons/database/C62_Tux.png create mode 100644 share/icons/database/C63_Feather.png create mode 100644 share/icons/database/C64_Apple.png create mode 100644 share/icons/database/C65_Apple.png create mode 100644 share/icons/database/C66_Money.png create mode 100644 share/icons/database/C67_Certificate.png create mode 100644 share/icons/database/C68_BlackBerry.png create mode 100644 src/core/DatabaseIcons.cpp create mode 100644 src/core/DatabaseIcons.h diff --git a/COPYING b/COPYING index e4551e7d0..b610dcc60 100644 --- a/COPYING +++ b/COPYING @@ -10,3 +10,26 @@ 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. + +-------------------------------------------------------------------- + +Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 +Name: KeePassX +Maintainer: Felix Geyer +Source: http://www.keepassx.org/ + +Copyright: 2010, Felix Geyer +License: GPL-2 or GPL-3 + +Files: cmake/FindLibgcrypt.cmake +Copyright: 2006, Pino Toscano + 2008, Modestas Vainius +License: BSD + +Files: share/icons/entries/*.png +Copyright: 2003-2004, David Vignoni +License: LGPL-2.1 + +Files: tests/modeltest.* +Copyright: 2007, Trolltech ASA +License: GPL-2 diff --git a/share/icons/database/C00_Password.png b/share/icons/database/C00_Password.png new file mode 100644 index 0000000000000000000000000000000000000000..56568249866353fa1c4ee8f2c39492dce90c4322 GIT binary patch literal 949 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf!W>D#WAGfR#Hyr^z;L4 zH)j4b+)(rX^nq{R*H75-=pxbN?kI>KIuBgq4k% znYq%EQW8>91TKI6b!+kaZ>>|G%3om96Kiwd{^Z~Eu!7i{AAjDT|5TPI&9A!bt;6mX z2Bwai{*E&mdwV(iW=hVK5aFp`Q|?u<{PZ!VOFSWJpZXiU8)gSSwU?ehZLY-b75n)Y ze_Q^$Yc^l~b4Ct@Y0T&Cn`#eol>R$EzlW!9)&A5QGa48D;So4QWPaoL6BsIoi?Kc$MFy+sJ0t=7|dnZ=d&m|Ie_5fkmKOz+C$9e0v`rpZfpC z2KDJ_51#yb{Y>JMcJ!$)=7*nK_weLQ`gFixBSV%+asq?f>-AeNOa2nG`CInS-dQx@ z1Fr+a#y_lVLLC49eVyO<_nk%~{{LTW8{_-ymMVKifBbChY>bYX(b)M> z|L}9(aLIK!{||h4{93;4-P-!Noc{+R*uGpzikQO8B5-I!g^f)unazelp+Vx=laq1(in@RP|2~`N zfBoFVpZ}}a@BdFypEuv3*U;h2frAHn!tEUx4ByPx`t$TZH`{`a?86_a2@1hVCr~!+nVi}dwQf~U0rhGj9pz1-`@Ow|L#ml$@fN$P0#F^9T@~1 zdUgfPsXg=m-^_pi4*&RnZukA@x_`fKA3egr6~2N=;m`So+bRtV%nb2cbi23rmm4rJ PFfe$!`njxgN@xNA`}okY literal 0 HcmV?d00001 diff --git a/share/icons/database/C01_Package_Network.png b/share/icons/database/C01_Package_Network.png new file mode 100644 index 0000000000000000000000000000000000000000..03ef9a57007a727b45b9e6035796ae56819587bf GIT binary patch literal 1154 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfknjA#WAGfR#HkrMnXbL zLgJ6}2aX&#aOB8g^;7YSa#bWVbJX;dH4mQt_VoAs`sw*LzbignxG20n|IOQkMxYQ26(58@=y`a&zno{&qWcm(YoA8iacj)FYgOy{_51YKuN~MJSOhLGuq&2kPra-8^^Z{0 zqyG)FS|xT^9+9lDtdxwat2+4M(c|Ja|NHxm_x%0R+xYUkH(TM)^E~S#O-kkG?)&um z{(N(H2Br?r01u`3E1%jAoi5jxu!t;`w79ucLSp8PMk#wko2q|884B!&@9*EkbAO+) z(Vn{R-4DOD7W2%H^fOp>!&Thaz`%=%MWA~Ln?K8H3;Dxa*PHRoez(CeqnqLIr_;`D z+2IY1M>u%m#1=3*yx;Tl!@P%gzP{%9-S<8%;n9Nx1JgBPbrmt1dBE&`)@|wWJ0$A%{XV;){}PoY?Fqwwjz0`M!h8(+rqK+F8b%Cq5{e8DPM&O4X+r+9AH*ZgINIE3l% zd&ZA~VnPheLjM``jbj+plw24X|1mK9{>8xX?>7SjpNK5OZ_c+2>e{{x_C~=B&)@7| zIB|al!;?q17`}db`= ze|UfL_3w2ZFS0Eoe^{J0`oJv8wb9Ukqu9WpqsY*pgL$KdI&-s$J#%v_lltM))Bj5p z8D-bm?%cJBV}^h~6N`XAH`7K&X7l_HldgFl|8HCS|NsA=^5y^M|E~J~f9v}5|L*_) z`su%ZLf;S0Bi84Xxx^3gFmNdBVB|UQquM;Hnb}&}I{Ib!f;;9WJOU0HdI=2@33{1H5;~a) zM-Ch~d-i~W(jf(1rDF>gEPTgUGV^u42{$7X$5B=XRvjIkGnuRG_SN*r+~JY`@l*2N z$&*F~8;T8HtXfg9Y4gTqOmokEWM3rK!^qUpDd=I~l*`T~adMVatLH0e1A~rkLz6Gx zji;2C8veO@DQUv9M`-~Qr+)l<=s*G|4}aVI03HDcpA9b1hmfm~e1L|NQ3m=Di=RFZgb7VBt`xkZAa$w|2Fp+A@Xn2NZNz zKJhfKTBOuGX^jrEvbs8R^HkC1GuPMiWHm9}JMf~osghBlVa7j)$CIbFFAr$^Eq}Xz zZ?@#WQ>PnaRrU1FDd_6*dPeA-r0;a{M7Vt^?QRh{Y|HM?En2s{&D)qkqdUETF%M&`iJus zq(u_yRhLRwJZ@a~<7>O)#HmMlUsQ!RFeE(`6w(P3NJ#rx`k(pm`tb9T|K8tX`SQWO zEq_i7&&*|RJoSxjw)gf;efYayp2vR149R_Vb!R@vy~yEQu(~BOlAD34qj2@EN9NwD zap&^&;|%`%{5kvK_4>57`}O|}|NQzZKBI1j++3=E#GelF{r5}E+Jxt+rR literal 0 HcmV?d00001 diff --git a/share/icons/database/C03_Server.png b/share/icons/database/C03_Server.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a316d29e4c8a597cd7179854ebebb27ee749b GIT binary patch literal 914 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfmy}V#WAGfR??sU|LvK1 zZrr@dc=A8b{<^-p2Ci95^Q{#yO~e7xPx^7sE{E_UbtTJ!tc zS49tg2L{6io`%Hi>})n=WoJ2m|MUO)`p$j7zV7ay|8H-f|9^k~f2K$B|L5D){@%Yj z`&WHl-o2RywhW9%4mGgs*s)_%ZjQ{Wzkirqr%nw$kd%LaU;2-4Z`luTPJiE^mz;L~t-BI&X?(p~b_a$_6N)Bu*EG}l)d+g+aBS$#QI9}8! zNH1hpXb9j*NJ&Y0@ccR3t_S89?%OxkxGhjrus3cr-Lz>_gJFPb48H@zLWu)MjxhDG znzn_nzt@=i`^QJ^5M$*VVSavPY<6~W6Al)bGq4DBG2Y+boWr)1(QLt@|2+Ty{bk?H z)KXbdaiGn%qJUq*%)b7>7qGJb{|pWGRexvAI1$dqx8VPO24^`DzCVAO4rJ6Ex^VmU z$Nay)MBVq-|G&f!^1TMzp32X^p1+U3f5X*d>L1N-$BXRNl`*+O9*wr|3;l#$?c@t*MQGC60^K{9y^Y8Y5 z`SvzDTu^XgcvBM-kAD0Hkk%zRWx${*9!Cg~bDKP;(zRv!$VZdjIr^z2BRU{5BTKdsRN;zk#9g zo^KPjr(W%kI(G6`|KEduf7j2LF++`csyrhk9h7Y0eH?n#RMPHWQu>6Q|0X%Qd}Cy8 zwvc!JW?nmyds5#-r$1|Wy12?E!`4QfWcK>0V9UVRBE)88Rkixx|KIERc=pB5+JC?J z=gYdO51ynY+^(Pa^Yz1cA$^O;|Nnpge$Iconf-fs?f-v!S(mUY9AMx)sF`YeZ+{yD P0|SGntDnm{r-UW|=S8h| literal 0 HcmV?d00001 diff --git a/share/icons/database/C04_Klipper.png b/share/icons/database/C04_Klipper.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c0cfb1058d4560ad113cf301ea6bdccaf73ff5 GIT binary patch literal 823 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zz?S6g?!xdN1Q+aGKAC}mfwRCPvY3H^!2^ulPG;LNFfc9hba4!+xV3b$Z-#Is!_j)< znLp2~^m>MG-?daVOgEx%X;=)axD7`WJFDQAC%yuAj!v!;{y{C^YyNg_la`4F->vPHqD&GjwPubdA9|eB%C5R z51W{-oB#j!r-|Z4`3nPn+<36QH0D-W&3!8~8J5@!S=!5E-S^d7i|^mxC;ho!ZxD3X ze%+NHJ3luDA3iwyrbh_tS%tn?JYUNfURZIJiEDD@sp;o7rlw4|xmx_=ZLj}}^*_rS zXZcd=|1(05qWy+kf(<<^ZYj?UhOYkz6{((JkX{DY8M*{x%ntDDZTEMI2XBH9r< zLGkpiqjHqm;7sA_4D^~hKB6#ho$eHR{zdY zxb$C1(!ZBCTvFeB%+6m^Vk{T6|MP|XtCvC!)=ob^eR=%zbg%qRJL5|Ef1Eg^K0{|i zQip1d>om3+&$a(7eeN&j4~us?Eb!OkECU0BWQl7;NpOBzNqJ&XDuZK6ep0G}XKrG8 aYEWuoN@d~6R2v2c1_n=8KbLh*2~7ZAf^X9R literal 0 HcmV?d00001 diff --git a/share/icons/database/C05_Edu_Languages.png b/share/icons/database/C05_Edu_Languages.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa2004795cf5f3778659460dfacbe5418de4630 GIT binary patch literal 1068 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfq9>&i(^Q|t)w-dpQJM| zmiaNZ<;T|<*Zlb~^WpLL^*s9f>QXH}TTOfT^t=F@;K%*E_ZWj#vauanBya!c=kD6u zKXfwJ$35$Dkc5dc7g=AG zdO9lg+;I^7FCiIWy4Pe&^sArKlxF#ea2a8TRnQeAZC?(%pB0SBEoGBP~- z>;G;jH&2{xTYR;D`^BrT{b~~bJvpYJdF0rEb1WrH7X-o< zFkU~uH~Gis$5-te7?Og_FQi^DG3vNva3Lx6M`3&8LuP^c%995^eB*8I+{m@~!SB8M z`PS_IJDGn)=TH3$llMzX@V(n}dc&s0pU$4=Pyfxp#Nf!V?>`Ga4?Dx(|IEBhzuz$Y zetDhY |9^dEVEFrkf$7g@1}+{Z){Q%NKfilnHP@F{Pe1(m`|tmwyQgpb`gFO6 zfq~%&Q%CCOo!vb3_Wy1zU$jEx=-Nl8k0|FJK5**Lu@8T~v9^6r-)?YcN8!tdyRF3+ z-TV9h+q6bUmX3O+ueJYJxoa92l4gGTD#?7=7&q4KpOC%yjv~+*}^{>zL=?go^VY>H@_N z-=6C&sWCQd^}rX8Xp@UvoM<(yEL0;nP8i|y}eOQa_!*{uYPAAynOpy{O|wo|BJGjfTEk} zQBKqPdb^|_f8J{|fA4qaS@Xt*$LEX>&wl%w^dJA;OCQeP=Fbx|iN{CBW=+_ByFW2~ zc?=E=8~6PEHtpll{kM6}+>bLZFeopTFl09QZQz;n(xx2bTQn zpU%k5z@ad$*jmmm&?t49xafn_gujQ+9{4q%cSckLo5A12ABVrqeRz3#KF{*9JOBQF zKRv(u1`h*=f?I+Y=Y-D!bJssq(@@Yjc<#WtgG^%o{{H4aygYorM4s%g5AV;-Qdj?1 z|MwyPl!|7M!wii!Ff)IDt}n}`cP)i4E-h3oOf6tp@}KX||KFb<|F7=P|EI?T6Q-PH h@7jC#8B+rTGsD8mbxF6+d4Wm+22WQ%mvv4FO#q&i3^@P* literal 0 HcmV?d00001 diff --git a/share/icons/database/C06_KCMDF.png b/share/icons/database/C06_KCMDF.png new file mode 100644 index 0000000000000000000000000000000000000000..604c3d593979fa532a420de3e7b2a9c01b22979b GIT binary patch literal 964 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 T=xi1P0|SGntDnm{r-UW|ZtMa) literal 0 HcmV?d00001 diff --git a/share/icons/database/C13_KGPG_Key3.png b/share/icons/database/C13_KGPG_Key3.png new file mode 100644 index 0000000000000000000000000000000000000000..e68afac8ba0c0410121f3f494e8a1bf4545c3288 GIT binary patch literal 946 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf!W2=#WAGfR??sU|LvJo z859~K99$|Yte7AF`uQrU>yY6rv7&dc)IP21&)>hJHt+jd+wXaM)(AOVKEiVJbK^8- z76ERb3m)^=N0{4deifgt#60^&IotDw@5{u}-uI}5*HoYVH~-`3|NH;{`}_a=kNFcD zCqBIW{Qmp>HUIZ9F5y>bc)(`!|KNF@58jg>{;qawb3eaBa^BvMB!P#v$L?%;>@Cl2 zY|N~DVcY+D3CS6e5|a1s{yn;3!?U|l3$_U~Ffd6o@UZ{fALi)x{r$d#3zsh@Jb3yv zAt5Cxt>XLUX%DaUMzAHfR`bZq85wNYU~I65=~7G#56}Mn276gwvT`VFVBEE97W$^|d-%c(`}l;r8WvBt3^whkzTw)Y))GIlxODE1;M*RL+M^Y0+!&ZRat>TyZ*LaAvncm%JAc09zS`es zKYV!^-L|`2-Y8~I#n%%rFQ@C<)qQDjj0)<}J#yam{IN3+Oq7)u^PFL5U`T4Zv|rx7 zZf4c9Gdq>H=iOysdljGH@X1g^!{fhI@v~Vs7dkJmDtmvg{>|UteI&ufj}Q}NK8pI^VZu`!K1 zz^kLR_2>E7=JMR}dn)e!{Qmxav^#$u^J_*>Y`OQpV_{Q}X1#({Hm=X#e*Jv^`RkXr zuU@}?a`D--XQ%)E{d4NwySF!f{`~gu!-w|_SFW67VB*MOP*zsv_-wR!gVmpZzdwDq zXDbtP%yTrXtaRlROsoxMw2OOfU%#KpG^TQE>Fd6&)AeFsFs!O)xx_8t(6hkc1LLlS z#)tOC?CkAV{{P=Uv!cS{|NmcKr$7F?o4;ny9-C8KT&MW5UVY;G_ix{;`hS1YbMoHV z>??j=cE9@jx_zu13I!51|39`q{QdoWedSLJ`TGCg{(oF=Z_`u%zxcC(VR3QI|C4`S z9Nm4tJMCMk=~*~OyJaDeSj^{)rrGya@E9&cYi{qhs7^osBA#1GqU zvuo?G-yt#2hGEx-^Yv_H&-U}k*VQIgeEY)OtgzgOnSJ*h8*l(He|$Xsd7IFFv5#8! zixVn#rg9x_tUbiDeqVv%hYj|r1tI4WC#1ee{qbk=%!gN#-P-EoDKjPo~g_-RiK7McFpQ`6p!6rFj(nlq$v}gb4%+dW{TH<84ag)K3&MuCouS_fgEeQ_H0!`=u4n`UpwM#%%>1%%T|v1_rJhHxz_3-`uuFr-vsgNhx731LF~o%sdtjg|1>{ bhXzIl^L7*QFE)z8plspk>gTe~DWM4f^E0)~ literal 0 HcmV?d00001 diff --git a/share/icons/database/C15_Scanner.png b/share/icons/database/C15_Scanner.png new file mode 100644 index 0000000000000000000000000000000000000000..fa0f83dd7b18eb389b7c12d3a9981c622faaa7a4 GIT binary patch literal 1086 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf%$@`i(^Q|tt20>RVfUO z`|JN3efa!Y?AOnoC4c_@{{4J&`ucq~m7jhbUhaQC?*Grv@890tyDo23-ni!=v5qJooq4r&WA?_44BF?eAZ`csVnpk%v9=-?z8chyVZQahR@A6uYzN z=!dVb#k(EAE|?rFVDN!OQbaUF!l(DFq{`9|$$NWi4}SRecJ)>Hd-Y!eLc=B{{`k(G z@qxe1-(h+|;YULbt}cz3okbsi_sie!V`355ymYDcg`aPDnEo*FI5jcx#P9o;cHy#d zn!zRW08#O0+&|8**Zuv7Tm10<`27+R|Npbi`YM~zVDR|4zWtha_x5fRS7?ZEIQQfG zd-=oj?dv7#{wAgT`1+ZB_Kpn>>o;vHe3Ttm{7&}!49R`@Au+t)8@~Y zKnR4{M;f9UHrx;iSxHV?g{r{J`e(hQl$McsW=DT`L z{CLTlt?m7JNr?)}e})DH8w~!Wr6&IPIe+58>$9dWG>dC)oc>zg**W;Aulga^M)9XN3Q;DHa*=5{`mHP$|y&!*N^QLWeZNP)BM z`}_OGPo9PUjoMlC@yP%G|F1Hz2poQTn*V?Ef%p6W|EvG^_y7OR`TzgPSA6>Yzs0!z z-|_sP|LqGde*eF^e;?DTAHV+}ySn=S+&MOOOto`ZK3h337@nE4^U>?4r@#NN|Mi1A z=R$wJ{lEI(zyAJj7N7rrz1823|1aK_KlrGfPxk-%rKuk{RvhQG)MRE6U}k5ZKDV*) z>8>?vE`^^C&-qjR_t)M3_WS;`Wc_4!5pWJ)6Y)RZ$?2O-z+NL}DFzM&gP?#52??pG zj~_l4?=>>r8asE^tj}3@f92N8+tvK4Kh*N_|BjtM&6uWgCSK+iaBw(sV!^6arw<%H zd|W|$HIG-SLZYF9ePD2KKDV`Xy1d5qM;Fd82qZAXm9H>f`1e2r0|Nttr>mdKI;Vst E0N*VsD*ylh literal 0 HcmV?d00001 diff --git a/share/icons/database/C16_Mozilla_Firebird.png b/share/icons/database/C16_Mozilla_Firebird.png new file mode 100644 index 0000000000000000000000000000000000000000..7c2e6612ba07c657d85f7b92c1c7c969ccf306e2 GIT binary patch literal 1002 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfw{)h#WAGfR??sU|LvJo z859~K99WcbcEu;*3tO_k#~Zw{s+iX}(Y+}!=(;weLPG%0gXgKn`-^|tF#rGmohRo1 zIpczR{|*;CeHhiYR-ad5Uwzfl4^K~EU`a+Q&Z<0!+i{q;NM z->E#7@ULE)xnJ=@`5rf(le_FC?`>RSkP~e)x3ROg+i`;bl!FJZ&UNhg%zt<~`*uqP zrVc@oj{o7W=l%Qr)A;+-?Uz2)|EqsG>3QXGg&K6@Opw9$wqLI**A(z(Q=<+X`#lOfl~l zQP0G~|JOyH|1dv#Qln#lfQ0TDhvpv=b$|aK{BXy8M&jP*Hf@iCxFwSw=SpljQvbiA zu=u`Q0|Qev;|!shjn6)8*l6H+e~$Vtw|6Z&)R-4*9{#_6zJ$cQyQx23es4)^{%6I; z#+l8gD#+GW{QSO=2)o3(A0J`|NJ(luQm)E3NyG5Ec;j`z;-Ei!6$czKLQF30h2zh z=Z@08@0a}d{v3^h#@5!2QW_#+Pqi(czZIJI-aM?RhV>RRPa>POLKs6*T);eL4h0eB zKE3ceGJ*$o3!Ug;ND5a7W7oVE_SEaHP52)(e)VF*3G11TQ4}X7m{{8=d z{qYa)@0%~sb7N~@NMcN4Yy1CSvaas`>lOJ5`wYzDysw?|>T+~wX>Od^+4%6dKU-V8 zy~L6C_cncs-t=V0?WWfC%j$nstmtTbC?B9~%Gx$~!N`hEDX`~3gS z2fok$|9}7gPyhel_W%EXf6edz|Cj40Jp6B8_vgQT>8+*pPELK@2hOocF$g%EVXE1u zBz5bN^{d&rN1r~ekhr%eHQ~p%xs4Cc$1jj|@UHvMWF>IoALo+D2nh)tog_f5ZU zTlh!i!mR7=j7%M!-LuzPD7i)ZMYXj*Jj%Uba=n4UAJ$BUOY0l|+fI26=OOD8&Tb7!{cJ4Dwr=BBXx`u*9Rt?hKWgv7ji z$q73OIaj>2J91(BdBnB{C@o6j7!Ib}u ze^~__eEQ}0{rDg)k+8qv(&!k-C}HR`K_i8MZQ2wg z=H?9|N3JT|cGR3aTYSaO6R~ZN+ov%;es(>pfg$PN_wSdRtIOrPJUk_4&z{+7xM`EI zLCvo-2R{7ayXJ6*~av^2H zX$Gc_iJhJNa~K?Uc2B*!G^PtzX0IC!|8|6SzA z2Zxsj_d4))FZ_6rLBOGa*`e_8!F5b$*r%s9+VwtpK7CVS@?(J?zn{PVuOA<`|JT>w mCm9nw*05;R9ByD?VB%r;-;&qxTI~P>2za{sxvXMe>R3Qi*-Ff6ssTEzW%S{e6dD=FErZ+dD{g{QuLq;lGiAvCZz%DF+>% z@-Yh^{=c7r@yMtD_wCut%J|q^6(!kHD+}As&zF>_W90quaWZ4hf%WkQQdt}qeDBA5 z8yOfGH^#CEIOr&t8!^uP`S*8zn|{1R!w>z#`U~FLH##z1`orz<{~vc^bIgb5^40-w z_-}YC>}6m)!op7h3oOu56aow5UafC_0K}VtZUt@&N8lD3ZNk7gX zIrf47h3$e$o_fcBtZGg39nPJ%7Z9)cfAYwO$L7W=3mF(47&aO(1&eAwwr`sq?q|5C zPVLx--|Wm5vVVSk=J#=C5`Q#lzk~C>|3A(j`14kcS-M-*VkRStz-fE7v}F$b(QLd& zcOP*0$?m!4z=faRzG@#n?k_KC(XcYuVZ!{z)>hUx*Zw<*e=M*xSg~>?-Q8DQ{rJ4Ry*$Iyb<9`iGjk}g6&4nL+Zd|M7vbr%~!Zvo1q&ef|I6JQ)lM4G%N}ot&B+892(`-YWfmsFgcszhfbXsf38y vnl)?A@XOgSsFks0F1QgK!NkI0z;H5VtKqXp&*m{OFfe$!`njxgN@xNA5iWKH literal 0 HcmV?d00001 diff --git a/share/icons/database/C19_Mail_Generic.png b/share/icons/database/C19_Mail_Generic.png new file mode 100644 index 0000000000000000000000000000000000000000..2de442b800278ff212eaf4b3e06f9cee38bc3004 GIT binary patch literal 1148 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfrZc0#WAGfR#Hj%{G$xa z|Ns3>4hj^!eeBq`xbm~JzMfqlcX!6&bLYN4zi%JM78j@3R{!7LsOJBvGao)**IjUH zzJqKJ4+G;79o47DKK%Y3-l}Q(Yn9>|Iyz+H}{|4_rIcQ_QZ*T z84SYA4h)8;PgNOx_^@H=GL`7(r%rVk@2g_H!tv$a`*Uz_Ap9)d-heHEzi%- zO;fV=<@foP&hPKs`~U3!|M2t%ElCC@21kZ{|5=!s{wsQWYq#raD>1!z&cN{P+dqcS zpMNmCdi8GQV?&tJS{c>nGr!?R}}8EhT&8N#Ez*iN2Yl=AWYlNta2|7Kw7aCHtY zS~jU^&4+n+`z7S;tGTzlwLN_MyS&7{y1$G()Bp42yjgR=AuZ*?rRxbEUYAmTe3{zm z=oA(I_3`h&QU?rnFbX*62wj@A?fm^ei54|4v<}}kmzRu)oGJO^#|{Y>msUv&%bSvQ zf09xj2tG*m@Vb&BAezS1WoYo?mBi;edk(!la^S;PHU|d7)vGMhmn@C?Y`I&*c*P2D z0}hT41_s8PjW=v8H2jnPEbYO==ZPLYp-BP3PuSXd)!CU3e@^e|u`YYV;&%A9C zGeCT9`Qs;{o%R4kExkQV#9(L z|G#!OC*I#D95df8Hl9hq!GSr&<*MnIJyWKrNbavmOZf4-e`4eG{$5AFzII3d+4CJ; zW=wu~I^3---r;ur9|kL_j1%^5d~J{2-xb@{)jZH}U@$B$lB^RGo!oKN_~N4|oAdc-T~-?)ZTNOn$!|4B1l592yuI)|$<#nw+Y& Rl7WGN!PC{xWt~$(696fPE~Eee literal 0 HcmV?d00001 diff --git a/share/icons/database/C20_Misc.png b/share/icons/database/C20_Misc.png new file mode 100644 index 0000000000000000000000000000000000000000..98d4b9969e4e6b5bbf3b31cc4fc2f7931f485fe2 GIT binary patch literal 1041 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfqAi~i(^Q|t)xHy|JyUG zGAJ}eczIh({P@`_apT4fNrf~+Rs(}S`#(QE{$2aepFeYpih?G-zh7_h|IyLYsivlx z+NV!jOYYcFA+fLS@0ky8Z@aTKFeE*CF3vFf%lrHFo{WtDj;>ob?X{`t)a{I|pPoEj z`iP17ZAx*F65HCec#4WH z{dx7OYu>M4S~hFeoZ&fh#)oIV-QOq4$&ZsST)U?E>-YEdFTcOPU;g+1|LKeh4G|I& z5|VZQ{~bMh-VcMvIv~MzrWr@MMWjNtBb3a<-o9!!EtF{-?DkrrU_lC=W&pJXRH&w?a{B@ zJp89HXqR&SREvch}kYXXoe7S-Cv@2fsqY3}&W9Y8@RNoPU^CG5nl9 zb!zX!8yhF@*U~bYqZeysn|OcU+S84Oi&rgNxLi+B@yvlEM^1eB{=RR_U28S+Fn0D zAOFwG)3f;FXYOMWQBgNEH9QQP_k4PLTfePee!r1U)RqSt4h$PBDt_391q3{P`22Zd zLSiD@u@mxa0cUR9jO5P9T2)^E>r1C&Ow1HVFE1I5@BA+=h4ZYBuV-w#Y}&Ru{QO%6 z4h6BoLQcj6iI!$2ev#h#e}7n2wHIi!9MqdQZ5o67hYBJ^K23ena5*X^w$`oHI69G%}uIy7FW8!_Vmf zH~u6{m^zikZ6Qa%+1csg>*KPRD#aBVA{>sajlLefZF_h@{qJvY`T6<3Ki{+G*3zP) zPjl|?|DUv@__`hY#l2&VGIPkWf{_r8lpy>#t^QJMA`uk%94ufS6eSB-_J> z7fZ6Rvhs?GPUY6o&3#^2TzuPk>5qm88Cz>+772#WYRUU=rJvMhU|?YIboFyt=akR{ E0A7RQfdBvi literal 0 HcmV?d00001 diff --git a/share/icons/database/C21_KOrganizer.png b/share/icons/database/C21_KOrganizer.png new file mode 100644 index 0000000000000000000000000000000000000000..6c86544de80a3719993fd435ba76c063648d920e GIT binary patch literal 1073 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf%&kfi(^Q|t)xHy|JyUG zGAJ}iOtkDeXjXMiFeNNldHPA^Hfe{{`UZ(S zZ3hO!c>xa!L`|-r{(D|uYh%D9_m`W#>nDaKs$lwbxhS~D-e`S4rHls(vS_~ftn36lL7O=7orS0 z`~nQ${{CWMU}I+B{UgEfgz*T&nHR?x-gBN~kd^t&uzwvh!_k(rYySNEeTjjA;XYHx z%J1@rS3X`IH-Gxy($B3YY|r?gOU4-)GVT4`|L}FbTig12Ny$BTm?W1>O_7Y) zAt5otVu$3m`8!Ttm~~>|qGRU-_yiozTwwX?|4o>A@n+@p3;JbdZQAxcl2cS#8a?|a zK4dpmK799iy@cMK%98~zKdH8v_kTBx_$ZfHVDdDMGsc!X{&B}ueR==%?{^;m`~MOv_(Fcj zXz=#LwDmjuk?p8=c-hauc%);Rb!20NOvlp(35gUQ`-NPI5=YpV8MWQN5c88;;Q&KZ XSk{*VP32k)3=9mOu6{1-oD!M<`+eaS literal 0 HcmV?d00001 diff --git a/share/icons/database/C22_ASCII.png b/share/icons/database/C22_ASCII.png new file mode 100644 index 0000000000000000000000000000000000000000..8e771b7fda5c6ad1035b5b7abad20da5a840e2ba GIT binary patch literal 560 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 CA9;oV literal 0 HcmV?d00001 diff --git a/share/icons/database/C26_FileSave.png b/share/icons/database/C26_FileSave.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0048ded9baa040b1c04b84cca92550acad6f64 GIT binary patch literal 898 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfmy`U#WAGfR??sU|LvLk zul%_h)i;ZAQcQiFp`n4nALg#Vzt11|AkQJ$Xu{$kQUCv6V%3-C*-!snUR8 zP+*(DDE3nPpML$1|No!I-~ZoyKwse>*OB@E{`~*{R=(x`cYBsSzkhwKzxeF=|EWUy z%{zD)7&T;?MH(C>IQT+WtN;CP9<6oc$b|~ovS}xuZ@qK#>DBD=){7fhw>k12Q9QcJ zC2I9S`&2t2ou7sEj4Wmk{_o%a|Np<_l!SyN7V9te%116LyfP1XV1D7ieIJ3w`won8 zc8+X%d>iW68W@ri8<^eL+!iqQIJoAVagg(vC%Nh+KeL68!#bumE{h(AbL@-_3{27t zSJ zM~{4X;`bXG{rSVn$t}j`)^?k}&iIMXqXYrtXQ>I#($gB)#F@cPd~tuiL;9voe^Mt1 z{XA|^{x+VCJy?ycxYn%gy~FgvA|oS)%M#6NL=4y>Bo1yo#MYbDz>w5<^m}}O3FG4* zM_<3^xg1t#RIu@X(uIIu>?LN*%;wh0hmZU3mpI~5DG|r0`sQt6nmqk@4FvQSQUf-}ms`kNj_3^Y_zq$B>SR53lOGZCK4RQ$dY^ zMc@c)PtTd08XlheH)lx9nEB6OOKS7u?uVz#C%kUB$X+66Y;a*p=uU}uc8MuJxOt?- z!aRJKSOjh~aNpLKHGBGa!=L{jKmV^?KhO9>!DgmdmL9hZr6eY|o8b%2zHbmKs7Xwl y@ca0Qiv0IWSM%_m;$dJs!r?vX2~z_DGlR2QE-u9Q=~*hZsh&>^|kl~ z1vNHKPEIyQ$H3YJj64jCM~<92m877fbB1x#%m4rXJG}ib`R{M@gZ=gY89&A={5${Q z`FZ;VjP(ucl9MJ(nUW$PK0Sy*ON@a-LCnuDPghS*?%4hP{~1L8vRTWwIR0zj$&@5u zJcCX0!13d!6_gh%Fqk-SDKtbJIqGWa<70B5?(f&v>NnCRc>nwRoBPQB134W3*pL1H zSDXIeX=-{vXy}8a#Kh}N913Etu92a-x~v=SH!kEV`!wIa{@}WwpP%#3;VpW2f4{;n zeFKA=5?8KHjjX8r>BGR(;TjYa^5yw?c^>=ve@>e^8GV`=goQO2ZZ_zpu--byS0<{i z&feVCX4Sl5!wfYChK(OS6cjQnZhd%rd%nZ}O%0}vhZsDXm_<@FTKE|c2qZBa;||y? zz-(_nU%-K3k3n{%3FL<2&4CVcYC|&iMG`ta-CWCTETgzr6jA!beXQ#x*b`r6fOQo2hf| z=+Sd&DN9x#Id)F(&)eVq;n%ogR3$Yx{wvM>8~-h?W>S7a#-AsL+sk#-{pamFcjU~! z=kMpo-~a#j_g6Lr1_noleg7G`xC9uaq@)>qd^{QS^>y#->6^%Y{rdZ##@hwVq9&Y7 zpDw*(xb!dR55Iyo!-aFl|K{aoR($&Oc>+5-7sL1OUl^D=Sf^Zi@^q=BU0u!jq9-Rd z{{Jp-m;CGBTl>e`>#xsPWBK3U&h9U>6Tf#mpXoVd{@=d3WcthR@9)1_;KFu^r%R@R zA&F&KX2PZ^ENT<(^Th9~xwyOh{X9d11NA317_L~!X?(-x*O?EG&xyC~b=Vm0aE9xM jdgBi^oiqj}9)@`zvkll^2q-f!Ffe$!`njxgN@xNA3f|5% literal 0 HcmV?d00001 diff --git a/share/icons/database/C28_QuickTime.png b/share/icons/database/C28_QuickTime.png new file mode 100644 index 0000000000000000000000000000000000000000..f0bc57a03ecbe0dc0b2c6e8eb5dd34b3ec7dd7ec GIT binary patch literal 931 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf!Wm4#WAGfR??bPtE}EW ze3*FVz=03)91<58m6esb=67~>Hum=Remu~~d_OuWii?4%Bk_2jto^^ojQ{`r{r&&@ z`}_av|NZ&-|Mm6t|LyDlv2@4ptNFQq&z?Vu4Gc+)T0hv0Bv&*r9{O|sz$qq`|Nl~d z{Qa%ZEUbJ(lIMQ?zr-J(zspDP^7HdY*q%7bz<7k|D*rTwU3@tQu2#oOhDYbl z8lLy_ZITjx{+aUd+g))UA*FiBxPMO)ZWMkKW;T8tzo7r$VO|Cfg=PB{%oz{P-hN+l z-5xfn^9Rp;`1~@tEyX&IE!dWk%~4UTP5u0S!xh?`MmE2XocQqOYdKrmvj03AB$zoA z)Dje&d47DD{P4DYTHE^h`;8)2Z7?(_{%rJS&$rnJW2d(}I?rf)`11FBo;P=7c;xs0 zVRN-$KJ%J^@d%4?=lt0-8>hcCXVzvHKfLw%0fxUnn-xz^nd{i`(E9M-?>s#HcAJfC z>c7r(Z0Mf&Q2s>2e}QlY76ER9We0f_>&)1A8_)BY|NE2jLsjGGhEH#z**xdv^Z45_ zGlzRLId;wMeE4|x{R0h8nb?#rFs!)F$i(r6X+m*>;jx7E$B!%gey+-Ve}6ttQ&AF6 zeXFZP%M%w#7KwU;4;%g^|KPe(^ZjQyTY^fHE^A@~LsDbq!|Ut!ANY`*_F=O~(vFJf z%7?qt-%H$RtZ9?Cmt<)${37{+)pOZ=oUqszzmdZxZHfQCzRqTxF|*;`uRq)h4H7$d?i60SWXYw5Piq#OX`eUs;${mE qo{q@4{dIr8{{8)ZG6NG2L)6plLH{RwDP>?_VDNPHb6Mw<&;$UIpQY{q literal 0 HcmV?d00001 diff --git a/share/icons/database/C29_KGPG_Term.png b/share/icons/database/C29_KGPG_Term.png new file mode 100644 index 0000000000000000000000000000000000000000..e77ff5b0d26234171957415d226ef469d0643c16 GIT binary patch literal 897 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfmzto#WAGfR??sU|LvJo z859~K99+!Ale02p4y&XE9{VqEXRxt=v%6+z>AdGZ*ZG#`nr$xJ^ZfC%l!U~@g9o1viIgATuj{wP@2@ld^RKt- z|G&T7WsD9Cjj;<>o=iB-VB!@qvDb7*$eCH*ev=xTgBu-BIcyF3$=xieFV4g|9=TdiJ3Pf z{?-3K_F-!0%!h`Dz1iC4*Ed{pIC0{{2mTc=F73U|b4NxdL7#y|;6}sja!J4a`%WxS z)necBLynnQ`g?6#`|o&zn4gDFANc#yg86a(eV+f4k`fUSkrLsfLHgW)9E)nGFvaed`$*k1+WM`tT&p`Qvb$p*JNdCG7|AmN$nU zNArB&XP^G#{Gk&H%8O2X_p@x6Upy~3aW`W9OM|NcIGfVro!`}z6?UIq>Yu^IMtf72_teYol+ zEoMsA{r&N)x-j$T7kw|I`w=r{Jm~D0DS0G~QB6gy?Y({7AD(_cP}18WKBJNI<9+=F z-1f#scPxK>yLSF`|EKl;e;zwFPVRT-}wUv51#uVpCQC^AfhLM&%>CR`Gk<3pC4OsaBW;=1+xI?0 zbr+Uw&Y&)<&;1qa7?KiG6H|Zu_^5pNa=O1{R(7_;lc!H5KNS^Ao||WT`h(<(pV9%s z7qZw=4jetnw`Gdt8_NcUq@={u)E^%n+BUCWuYcp3taZ83A2zGMPj7GMv3GpPc!_6I zZ*y}a;|ejB1je%me#~c7XqYi0GNR$&|M`vq0UZy&zrWA(_U&7q<9xD70#m1^zIgR6 zje~Nyx4CPg;NjWd z-%FOgzjt=R+^I(m3Lm+!>FMcBxXQ!x=1qe00X7Ck2L?k!X3HFhlh@bB8L1pQZoH@N z@2rKJR&dC)?qOnjkn#7&SM9^~Gqi8ql#rMi*~n(l%*()`AeNwE^yk;d?t@pZ_8vTY zOe*Ko>goEDKaL!cDCzB$+?9Sl?MC$zj>Gm7&Ms(RmO63b*r@|dX~qT&ECSrd!raWl z*4l^rx64Z`TC_+)&bI2v1zw)^^$!2d&dxgefn9{#VS2;C`SueWSa-FtN|Y@SVH0rB zaj-WqV4Pd_^N44gLc$kA=GKpuE@u|>{-<$B`-(z-d2L{7a zr##Lx+*-jK@@F>VtVRblhcADar9a8fGIi7mSd`piG4bu&-QTSln0Odop3oAlx^{O3 Q0|Nttr>mdKI;Vst0LVg`4*&oF literal 0 HcmV?d00001 diff --git a/share/icons/database/C31_FilePrint.png b/share/icons/database/C31_FilePrint.png new file mode 100644 index 0000000000000000000000000000000000000000..3a87543224b7dfb52519826d135bf7057d96584c GIT binary patch literal 1020 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfw|Aq#WAGfR??Rb9cc}X z_xINu&zLEBhLiInAA8aNKmY&Bdl(uS7#THXOw)}n%eO3hlVTz*ecOJ9TmwVW&#$k| zr~I7%@OZyGPfg99LvC(WHarmrK0Z!&X~>$<$o7v}l81?b@yMtD|E<~5((>5U)Z*B} z!ra&vEUo|d_c!|!<3<_ABlQbsi0T|acI@l?*4E~S*Vlh{_-D@6z>w6W@$1lmV{D7+ znKS$14a5~qnxFh*)P3;d@B91j?boc?-#BYO(?@xbN+!#v@9)<;{F(Of?d{oz{{R0! z>EM>X`W8C>{{Pqg`su0Z%=z~5%vYU{FfetnzKHR&v)fl;Y1!(atn3|{sag2*y?q_y z-mmO0+U`53Iy6f({*YI0p0Q#=U_!!)jqBt0-KqQV;Ndd<`S;GUawv##a<1I<=FJ~2 z*;w1Q_xJZ1$XM4;et7HhdLEga9v&Zu*^-j~nR%0vetcz@xDnITV;JbUDP~X2rt)`p zN@m&Tx2ZWWY@9KBwrf)X!nmyoRc z%X;iWecA%X{SqnrYZ5BHeAR94*kaPWa$zNd1H(oQO--&1n+y#8{P;8Z;pz4DJnH+n zjAM2mIa2W4mih2=`~Q;v{=|50V1{!k(~jC`|kQe!rnz z?XSMZ>3`)9AGep`dEH-Zbf=oVx5CX$gLk3bzsE@xs}CMlIB@#ZhewC`+s?<={blD+ zm{$JY?(goZuZkDWA1FwFm~9{;v}k7ZQc&)uubtk17+ zu=FpJ`qKXgLVohkV3{c~v!U{-_~D0#+a-@QCMqZ^AN%n3_VRL2DtvJ8?oRXkxK~1A zVvoD}{gW?T3QA#k#i;d<+b^O1U&DuZg@4RGOV{vtd09PhDSLiy>ih5S?nZG4IGpL~ z;(FfLvpIbIz0?icw_kev_%UM^o0`&swF_(-dmK;Bo;r1A;)%Hi z7+H9j1A-pkICtt)=HHKx+x6r3)%@c=&As5xpa1q6od20OJ2p(6+B&nd^Xtvm*X_-U g3kr-FSR@#-UbHV*wE0C90|Nttr>mdKI;Vst0Dwm63jhEB literal 0 HcmV?d00001 diff --git a/share/icons/database/C32_FSView.png b/share/icons/database/C32_FSView.png new file mode 100644 index 0000000000000000000000000000000000000000..e167acf2054e36435521437a03f91acafba4d133 GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfmzMd#WAGfR??sU|LvJo z859~K99(jKE$W|Sb?VOh`~Uy_|Eu3Fn+xl*a%k+8f+t;KeBr$O@)gD`?a^S#; zQ|Au+cxE`^e}Ch|iH(h&Q)f1MhRj)5@h`nC-u~ZTRt|*?jQ=AeBwd!=ko@=6H{pkA zrPN`4F|oGo_Vq>@J~K`zJbrlUzy`(s#>S`I%!hBkcc}kpWN<|J7GIZXS;Yj+{RS3#El#4E;ssi2k!z1jmWR7Z*GL>;o6|1y zXI7JX!vVHG|BkaftNZ!6{h?+D+aqxYoxk7pEtdSZuQ`0+$9Gxg!;{zZ{FiK%{Ku61 zPTzz5f9;q`B{Ex z+f=WYJZBuZ_cLELU|Ov7=X*KZHG7A0BO^lw76BC=i5ZO(8XsPJewpX^|8)sJemoUF zJT?8hM97mTl2crCB{Yw;mbc(^{4d?(f^xUBpqJOoEa%$7W3n9LFKCFiVX}* zyB{3hF8@C~_TSMTUr)y`U~=1V+41Dh+wcGL*f;vIaWV2XJQ3V*xpA5CKV~+i%l>H~ zEe*Z_n6^b6SAJZ+ju>8D$M31}y*or>6cWs@HX3FbtYCmywBwp(-^Y VR&x`Z5d#AQgQu&X%Q~loCIAW{rn~?E literal 0 HcmV?d00001 diff --git a/share/icons/database/C33_Run.png b/share/icons/database/C33_Run.png new file mode 100644 index 0000000000000000000000000000000000000000..751424557e9fa1b012656fc45df2f60ad211a198 GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfjQUH#WAGfR??sU|LvJo z859~K9FEAu#kI|kiQ$ot+nbc|{CRr9vxkX0{(sSA*5~dvSwCmakJ;bf&poQDTFY8d z$$M_TW$@3J@9(elaj5NXn8wT^zD>etrMA*wUQ6eN)%AZLL$LOc55) z_G07}Wj)EvyZ7+1XP+MaF5keYz#!m|!2IvuAIZb2YR?iA(pRfxX0FuC%RH)l?CjYC zd((Ii|4%4t2*!a-YL*Id+k$1w!4>O+aNnq61 zzVOl~Cx>T$V^Y0cUE+^_e^?K{ul_Dk_wV1?58N-9#1>3WoiWqYLQ+zlw{qT8yd5I(U_9v(P z{U86)Hh_nPfr%sM!0YVm=KE~Q`x-e<{Qmx5{_y|%^$jK$M5A``)Zg2m{)73;vHjut zl69Lm7;r@0FzD#$v}Rgr=~%_c#PO)fU!K2-hr#tleOg*u{hT>G{~PB0Ud(Oc;Me$Y z{&acf)=T_ct_r%%|MTpZoGEd{WQ#-v z3yW-H)OQ9Jfg9WhG=6@4cku7x{O$Sa2^E|?m1=Hn_H$x*>LYGS{FAXf^x^$?{{#l+ zw@k;F3{FWNG1)3{C>HzyIH$`1AXD`GOVAPXGT;_2%i( zk25s*{L%PNa&r2QA78Z(H@EXkNK{r{1&7(2*7*l4*rWD5=QU?f>=R;j`EN z^Lh5y|33CX>BYhK|Nr}M=H#?bWZT6Cj%WsJ zW#t*4KVM%zw>tmcm*2l$UtipBU!V8$-~az{Y;MP9$KT&mcT!dNckkTz2@n6bm-F;2 pU|}vX=P|*@FN8 literal 0 HcmV?d00001 diff --git a/share/icons/database/C34_Configure.png b/share/icons/database/C34_Configure.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a3834abc93ce96f5847af4f43d36e06da5187a GIT binary patch literal 980 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 literal 0 HcmV?d00001 diff --git a/share/icons/database/C37_KPercentage.png b/share/icons/database/C37_KPercentage.png new file mode 100644 index 0000000000000000000000000000000000000000..2a15a078c6595c91db864e54f7d4762d7ad4a720 GIT binary patch literal 1107 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf%&PYi(^Q|t)xHy|JyUG zGAJ}i99(kC$2e1Wr(LaVV(@~>|L5Z?3cnp)syvmaf43iFYQ2%P?wNpq>3;wIzvn-E zc=h#V|Mv!MkC1FHsir=j?}1w-hHZE^_!I)UltDMWB05 z(~P-R6Mnz^UEg-=Y5u?BVk1KxFY%-+Lg`5l!cD$jzdY&5hR}cK3;wDaAO2!`J?_tL z^HTkQ$K?wDc#9Yv7z{UV+Wf)j-~YoOzN#x9J}v%!-@dA!FK?GG5P7^mo@Z0mtR_xB zr8zP^`z6HWet!Ia@ndhhq{R}4x_VYF=?RPsj7PqFI=ei7{{Fvd3BUe#H%^>8xqJ5f ze&Hi^|ED${j0&G~FzTQB;iJ!Ucz&-lHjMb8UTyItcc!LfQG#%@pT9wXy}APfgCoPf z|157`eLQph6{D9N-%p0BAR#6;Rz?PB@&83BS znHU)uo_-TEs9Phu_m#QlarMNWum>s1y-s4)z$_q}-ik?+pNE9@GF z9LB+1})I=UwfOE<;UY?dmP`( zgc}Gday?{V`2UmP9kVvWjBW3J3%!_sf{A0w%m{~%CyyUL{WbiQX^g{J^Zw4(xsNaR zUi~gP@6EjeOCn`8Q zJUqyGB*;OB^N54L;U4Bk&o88Kd;NdpaEA9Pv)8%x3`{%>Kh{*9U;H}GfPsO5!PC{x JWt~$(69BKs0PFw& literal 0 HcmV?d00001 diff --git a/share/icons/database/C38_Samba_Unmount.png b/share/icons/database/C38_Samba_Unmount.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3b8ff0f97da99ff1352671c7c2e3b1e79b83df GIT binary patch literal 1144 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfrZP{#WAGfR??6E|LvU} zO8A@??=?SMo|e`&pNA)D|C=}O{@&g3@%{fLOX5Gzn6Ylt&J9ac#Qi$&?S-Xz!`M};+uV89-`E%XENOyZP*DBvzpOVH8W@GEQt#y7 zPd^{0fQ>kDLTj~#rpm`jfzuwwc^EfOwi7=5rE;h(V!2K`-IY`t!&2PgH)GZPC0>O_=#RKU>>*|9Zn0#&Z%4 z1Zz(vlP?fD9iv7g^( zyl3CPhQ#*^&3X9q?Gg$mS{^*0p?UDYk#lDc{OFqbkg;3vaJicsn8;sIKXz|(%r+kzw}7~UvTyGN#Gdv4|NUKFn49~wdBP#4UEi+9hxaq6mhr_+ z+nO!5?{QLc-Qgo=4t;w6KEBM4Pww0A{&#iObtU!6Aa75Yd^zFAhljS(($dWh{r%x9 zTDB*W)y=>FwGBWWn^qfeo`fNTqi-CcG!PC{xWt~$(697&4 B77zdc literal 0 HcmV?d00001 diff --git a/share/icons/database/C39_History.png b/share/icons/database/C39_History.png new file mode 100644 index 0000000000000000000000000000000000000000..8d658e0de0ebb7e670b92bf3064f85fbaa7ce740 GIT binary patch literal 1166 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfkna7#WAGf7K0nn{~4G%1k)IpwYw)w=}K5Wf4Nszr;vWL!Rh?A`1$sRfBt{(Z=4(7 z@bIpDSQ~f$KBG1Fi>gmfj?O>b*k;2l$spixhUbwYk3(O>rnVEOmRKwfnE5|nVu@tD zVZ;j$<3B%tO=+C`Q@eTNGM&TEk8hWhsQZ&}Vf&R!)&JfszB&8&{A~ssjB1%V6w=uE z^8Exo?|ClVD0c8xO}&JUXq~Z#*9K#c(_V%h9b85pp54YA93Kn}jO&vph$W=`_}e?P z(LK)X-@muhx#H*5-{KQ+IHRNUu5VhSTC9`K{Fyda_Zh#C%r@lc?l5X#u(pGSQP)&WnSH}we#1ST)AsF&HkLZf@@9r-r#_45p6 z>}sYxyu4hW$H%9K$Kb$`BP>UF9KsEZHWV5e&G7o0kRUFSBrr+Pi-`jq7c6Xo0ybRMl@!bao1$j9JFMcV8 zt&cx3aEJ&QGeL}D;Ns)|{q+;Wy}J(>wDolvOigtel$2x{E?v9FuzC9d28LTV7`WvW z8U70jGKdNBGW_`YgW<`;y9^A!_!$0h@Uk;?JhfN0W)?nd-?o4Me}g}NKeN9{Nlav9 zb5|~Hn|%A5!JTPSlMOZ+B~1_#XKZ8FKKwoZzGU6MKb%)SPk(67EY0k|u<_5|U#~YW zP}sj<)-n-hb8+(kff+gt7r#D#5y)1oEX!7$npzR@hy9o}ySjRF*D5{c@2%%~c<$T( zVc}3%mY-iY=f}UM1DW0qpW#D^abSM#|0$0z^z zHof=Z?bG?pvM7j~qF0uJ*x|chj}wH)a^^ss7pj@Y~vIp6`_v2c-7Z z{yzBO>uvJ|izOuA-QRz_;P)@tw(Ik6NZw<*DtG%^(dYWGb!!a__ve2{ zZ{PcGA*m}V$H?`I;m_w!32J=w zyZ0fUfs^GmQ^(9keby;X`)aDsZ}@veR4p=0Fj6*CQn5{czMbKpU#wp)*_*XpmzR{h z_h)j_jY{8HiLcJ|&%S@}_mndSK0Q~w5X{5Cc;tjaHPZ|4w1izx*)Gk=;rVazM`g;+ zN1{_Be3rP(v}{SLSi4&V<8Fd|NjjbSR@!+tZSyG UUF%U}U|?YIboFyt=akR{0B@%LLI3~& literal 0 HcmV?d00001 diff --git a/share/icons/database/C40_Mail_Find.png b/share/icons/database/C40_Mail_Find.png new file mode 100644 index 0000000000000000000000000000000000000000..1e230e2e40184e0a9291a950bbf7448168c83f7d GIT binary patch literal 1141 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfrZ`E#WAGfRuT_a)PWCQ zU&puo|1T-=@84hkqdYu5K5KaX|1&hK`TZ-pb#nLJ=x}$<*B2LC&o6(I@$vWX_ot2B z+``xd7&sKf*i1hBw?8r=et%tdQ9)7r>zCfHJ9n;Lv1-*xqd8XVPZWInb83V5`F_8I zga-_(**O%%QhN8-|4;q#`S*TKbN&21^X5%zpW3^pYv)W3W^rrn!#}g@C3R#~BxGWp zil^(_?RoY8|NHX|?@~Z^O}JeD@6X|%|Lqqu+S|vk+Scc^pm%Op!y+4IX6481ZRh3h z8_e1Nv$=6@{4__mkS0Zq8{V1Mzol~K-=CA4obUi_hM1U}xv1zyky2mQ`e0*Lvr<#W zw(|As4e#vw-u3Xdecgi9GbG~n*Bn0Z>w{6V!gSW==CxwY-Ps{WPCb48+|b}pC8Gd? zBg4M`%;x6d2Q6)6EKH0gnUxi}7(Twc&2a6(2L=XFLk4*zc?NL_2?jw0MTVyz85pje z*~g%-Eyo}rtR}i`>yc-_e%(L81Tn_IAi_i2P+9rox8DrcuRdXT`}PIHFEKL)CLUe} zW`@5E|CpH=7&(|2{tHPl+<)|r;n%Ax4DRmMjJIzy%U-#1WCv46q|>3lQ#VcW=~z2i zid$Y>_;9>fTAP2(CZ71Z|LH%zwNHF#EU^C{6HiJS8=F~}SX)28o{@#6gz=vr%F5fy zzd!uVz(A$v4Gc+%iK)N7eR#O~=W{>%PX&b{4|o0lBHOHS zT%Rq`&#W!q-ti;%7DZZ>0;O2dX7tdZYaB;FTF#P+&@Z#}f zhTR+2F!1njF(eyH%QIiQ@Qv&JoAai>-ZDUAMpf01fr*Kc;otwici+GJX~n}WqP%_k zm8ZM5tlInG<+ab(E}Z+dclWjnM^~?!==|rcm~*+5HjCyj_ooNnynXlW_Zg;+)@J5O z%PcJ<>-X0DT(xP#ikC+&r(eIGk^M2g^4AaX+wJ}LE$sgO{M`EX{C)c#?d$ece@ai= z+{{X5Y__}1d0gw_KinxT76qcP&-pseRKhG2_!K`g?Dk9=$oq^&1UkACS{62l| z(1)+$kAFG8t}}l9&(c16{mlr6^&zW;6&ehRl#PvzFDR(7r8GY*>N)V{@BjC+m~Yn= n{Y}_;Jk4wJw5&Z>C>nDj4T4D?G+ei@`M~< zNMp)ny;+ocT8u5s&W=sBy1MPYeO<%Tgc}%wnBsDN3HNIl^Zjd>B~c#bAXvAX2x|!rjDob7sT8auq|Amz$T`r*YHvC^J3Yk2-QemVdCzNAFs zzjP)k7G@oTvjBb&$exUQ4!Dl&``;Jk`e|6 zuU{B&bafg1VQxDeKOwvE7XwpA>&%%mC$hef*Gph%+RJR>664zX@b#Wbp8JjeSSwq( zUz9s0L?tj~{o=lIhB2kMsHn+ETG)YM;~eYqce`6#S&!!@NHqAgs%8gFVrw-yabW)Y z`^Ghmw>S>jH@;+>F;l{>{@)*Ng$9Y8J9i2%U9#j-!>@?ON&h7{7~DL}(kuV|`g;BQ g`}_V(90m+4b(c!lT(+Ccz`(%Z>FVdQ&MBb@09kE+i2wiq literal 0 HcmV?d00001 diff --git a/share/icons/database/C42_KCMMemory.png b/share/icons/database/C42_KCMMemory.png new file mode 100644 index 0000000000000000000000000000000000000000..c74903467bc9423270fc2d6b6ac0756df82230a5 GIT binary patch literal 913 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfmzwp#WAGfR#HkqKvKew zv!@PxXrI~m@P0j;LBhY&2M&Ci+}OzJVf;5SA?2Uyk+o-wUR`h2=hc>xz2@iv zo{-;j8yOWEW=MQsoKX4yU+0EXhBD7COb(p(Eg(2;YqIT`58wCO9JcQeYG6o83lLz@ zV!C;be zON~vyVMXGH`GOt)KO1(`TOVDfvL^Fv!XbrkTrXzr-!FM2Xp=?dRIxg+CAqL{!VXq3~FmnoPNNZjkz(I z=UtA!gxB&v_1`}{+HbHRdpiS*0JqJS|NkE+3;ZbY2#bt8+$X zJ33Eg-`XH;^r!Yy)5E{_<9QZMy2I1{uRhshYUTNa1K&Cnm%so2d;RtQEeCVj7(o$u z;qlG`r?r;-`);g%`2G3!5-yF5ntJL73LgBIXA_>6%+q)1yX30p|NejY^=iFF%Iri2 zP|Ap_OaArky)Lu3x%T1cJhisyIq{Nw|9>7&P%D~u(D@&$^TjRp@8#nD$?}ElW{yr` zd1|K$S z8QtQxDao1eQ$LyG(wPTm99S4Q6gn809GF>dNJzLwnn<`rhB4>zB`F9out+d)Z5Mre Uu5BhW0|Nttr>mdKI;Vst0FW`M?*IS* literal 0 HcmV?d00001 diff --git a/share/icons/database/C43_EditTrash.png b/share/icons/database/C43_EditTrash.png new file mode 100644 index 0000000000000000000000000000000000000000..aa9d7321f94a42ed44418c86e8a26a585de0ed7c GIT binary patch literal 1115 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 literal 0 HcmV?d00001 diff --git a/share/icons/database/C46_Help.png b/share/icons/database/C46_Help.png new file mode 100644 index 0000000000000000000000000000000000000000..28a0f9e5e6a24fe2cc3d842d0708e70512dbf84b GIT binary patch literal 1187 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfyLC*#WAGfR#M7^xn~&I z{!2(o?EC*HB_XZkiLl_Ai4(=Qi-VGp@I>yM6Y<&)4gD?$;X_{P}nM z$gf9N!(Vf!zl(^st0;PZeYt*7!>qi9Elex|#?33lPo!B2Mt}LKL5gCtisJ8$j`>GaNkFU zuJ!L3q{Vp|qMd~q-hBAR@b1+s1|}9J22n#B8wM8EAc!$6>^$6A+J>qO|Nk&BeERx_ zfsLJm;o#MG45x2>Vc_K9XL$AD7sJ&DUm1+m_!&6aUNgM@_?zMP-&YK5A|edzf&$r0 z9j+l!SKj^cj%%A=UvHGr^^dttUHS0o_jh>K&;OTF@&Bngv-;(7wopmKw(|IY1~osv zh)b-{;gPpzo_p%&)JA6)4_<|ah>D*(e#X`PIA8GO4SO30w;7wIq8pn)O8U>U57N&Z zdXTAeR6+5`IfMM4%5Br-B_#g+`+4rev%l7C>*{TIbmqk5Fff8ch2{U>{|qcle;Iy! z|HZKA(02wy872k+P6h@YX-0-*4^f6s-~KYREPu=}ebZZp&)5FWK0o0I<7B~ro9nNyf6u@oaCv(9{AIOO1^tduQ+Q`Q zY3QnB%uW1x{6W6vi3jV>9~F3}!{_6(U$N~!>#6@gPaZgT_VkDEXVu&8%ilZCz@f10 zfBk>Cz4ed&SpBPympF1{M`KsL(T0Ejk0-1>e0ag~11A%f9Xx)3!Rx!jY{@$2rxrUU zZbqDV|$jrd&`uq2%FK52KeB&moA}h+w!_DyZ<0po5w>~pmy#Iq? z!REURU%q{2U}9xt;NTNvU}xoL_;K#yvp;WML@_Y1+-2&R*?5=ph5NGa_V;UVeSCS* zShX&X&(w}nu}xh5zww+MpBf*YuXkhfV`N<5mdAE%`+=0Ye~(Vy&!6YUWICU{jfL5P z!O*B8mv+&{n@9lR=Hr{(KAaWvIT=ZHR%Q0h(S@pHQe*M0_+Wh;!x(egZ|M%}d nEg|u5e=@@=_QVDTW(Mywi=s+q_ti5nFfe$!`njxgN@xNA7A_el literal 0 HcmV?d00001 diff --git a/share/icons/database/C47_KPackage.png b/share/icons/database/C47_KPackage.png new file mode 100644 index 0000000000000000000000000000000000000000..fdb3644c6c1bd314480d915e8d02c90448c5ddfa GIT binary patch literal 983 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfjQID#WAGfR??sU|LqUQ zr@#DUueM51M=D9`U+8Uhmcl>#U%y`&Q1j-}?zjIXCB)WRfBn<6WuHp3n0SD$w(#ND z1@rov*Gty@`+1f@z(I${;ll-=wJs}deOexVk8Ycny}fJaks1Fvk4tafedp)Gk59gI zm*jgke$J1pjr{%h_4QPrm^J#65fYLK3Qdvd}1}X z!3RxEBMyy|#s*v*#s+^?9J$+7=ZD1CyJfsw_`A<`l8 z>ZK#Un^=w;>*-DF=6Q9eU*g7$|ArhVJ&jJhTw&z#TEnQ|WVfL~L6Lz$&75?oh z>x?ucG7Jh@zJO0;U`Pgw%O@tCHB=NCkO;hNli%lbM!;v=bgtL z&T>miC@^vgI0!IHG|D8@{Qb?(87Y^WC#&&Ya^3 zWDVpIaPUd^>*K@Y<8bCgLx-Hig9l8f4F4tm`1@NvLRk2)y@)FVkl7z$bE%dz#+lO$!UJ$?C3d-y}j&j!u|Xl+4A%P10+6d-1yP$l!sJ~ r$b;#T>{o=jjxc@TV0y*MVZhLBB~w-v^w^Psfq}u()z4*}Q$iB}G$Xy^ literal 0 HcmV?d00001 diff --git a/share/icons/database/C48_Folder.png b/share/icons/database/C48_Folder.png new file mode 100644 index 0000000000000000000000000000000000000000..9232553fcd4febac41d45f124c686f4c94e3c8eb GIT binary patch literal 558 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8 z1_lO}bVpxD28NA&HNOKVGcYhHBzpw;GB8xBGB7kWGcf%8&%n^|l7XSrfPvvv0t189 z3GBC0TrC59vxP0fo^S zM8$%i{~LOAuPd}IU|z5=ys^!KX{Ng)8v~2LjfU`e35j+4Qxaax+SJ>q@nBo2{TYD< z2Bvn$<9QwPJsB?;7_oCGY~YToYm?aXU$5mK@0Yvs3jbJne#h5KNYpXCly~^0ACPl- zO*+rI&LD&BJD6Amj&KJs->YqBG4%NSe!l?ozW`+gWh)YoFa*5&!^)-Az>vhEs^!Jt(7?#RE6y_Wvfjry1_lNOPgg&ebxsLQ E056uv3jhEB literal 0 HcmV?d00001 diff --git a/share/icons/database/C49_Folder_Blue_Open.png b/share/icons/database/C49_Folder_Blue_Open.png new file mode 100644 index 0000000000000000000000000000000000000000..2c55c5636ed5895f092ebfce0e69f0adf81dba4e GIT binary patch literal 599 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^oMi(^Q|t)!HMgoLDm z+rOqW%D(w@jcwBQ#vkU)ats0vJPv37Z)BWc5pa*QV`sw*){dEtGX!I;9T*x_B+l6$ zH~IeGPoK^0``T*Gom>hH2iR)1oU=W5U_li- z%_oP$d{%I&dTdKImte8nZPE%w(}AHl`?_9 zf6cqzwm1IZcVKAbWylmW|Cq#K#=7f~^dW``ZZqC0)VzJoI^*qvk^{V#xCI;*ELq9g zb9*(Lq~tp9DX4N4uyzk3>V)7 w9R9!f3DyA?rFfcPLS^F>~BdNiefq{X+)78&qol`;+0JDqsUjP6A literal 0 HcmV?d00001 diff --git a/share/icons/database/C50_Folder_Tar.png b/share/icons/database/C50_Folder_Tar.png new file mode 100644 index 0000000000000000000000000000000000000000..2effa3950f5be412a036df397bdd0031e0b3f286 GIT binary patch literal 865 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 DQHz!= literal 0 HcmV?d00001 diff --git a/share/icons/database/C53_Apply.png b/share/icons/database/C53_Apply.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0f6a6174f67879d89b8c970d88734cd6f9f844 GIT binary patch literal 883 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 WWQaYQlgGfoz~JfX=d#Wzp$Py5d4CH4 literal 0 HcmV?d00001 diff --git a/share/icons/database/C56_KAddressBook.png b/share/icons/database/C56_KAddressBook.png new file mode 100644 index 0000000000000000000000000000000000000000..7f879f8cb57394345d0574aba61eb00238b4fb26 GIT binary patch literal 954 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf!W8?#WAGfR??sU|LvJo z859~MTDi_h?5q26a)HL#(;uFkG;W)3FCkH9&n$K77)#(s{uBQ`Pj@^Rmc{zto$Yh? z<#SesfBu)sr!hD%Y*d*2jekXiL&Nlkx8KJ*IPW(y_>-QJknr#P0d*yTd4lg`etCbf zyuA9f{xm!LlKWiC*cBRPOyK?T`?q}aj2#Tk6KupUm`n(+V~+jgt73X8-)UW%<>WW@ zv22%(D!t1x8_Q8_x;(kN@qX(_?yngSZ2r; zKQDyM)i}_M)Bj&)&zYW042&&_49d#Nhp)@um-tuz|B1|7vAfGPpB}7v`q8}2{=bC8 zy}JL0792}IB(QqI=><>J6%T8jy~!%z@WFw__4)ey`$g^R{!Yox&v>`=?d;V{)E^$I z`g~G$q!su!wT2GQ9c9$#C=DV}=(mA2aZZ$T0l*_J=`+kB8w0+ZTqe^%EE_E;xVn z|F^%jOb}xv*}t4GRMM7;PoBfTAk5G3^4%YXcOQN*eE9yEfk#l3;nUBj46on3We^Y) zV_@cBWLR=(8N-@M>%abc@vDe|f#D5P$II7K`T705iw)P*|8IDB^Lahb{Dyz&DL+mh zIQnaTqu`4YxjMtP`Sjd|NHIj&GWx?m~tF%wWrQ3Jz^>mF@;s)$c`HlH+K9pyz{SW{=*x$ zb$QbB&L>#dmVa;0FW;}i^!08ttDOVGLBZwAT>LMvEdGDmeA$2d|3ClzpUS`epMS*M z&-Yhcc`$zq^L_U+#$|sUQsZ9yVqoeJoT)6kpeRT^?DCuIU+sCm_r?AF_UF>&+56}H zi{+of^icaok+K7WqJTEH!Pk#o#oZtEQj*f=@Q4_?p3k|#;LyOxz`a$sFI)cdV+IBW N22WQ%mvv4FO#sP%wp{=K literal 0 HcmV?d00001 diff --git a/share/icons/database/C57_View_Text.png b/share/icons/database/C57_View_Text.png new file mode 100644 index 0000000000000000000000000000000000000000..c688d5f6f9ae0dc083c5fac2316c819921a6c56a GIT binary patch literal 895 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfmzVg#WAGfR#Hgl`aSE? zS1tMU`TPI>_5X|v{`}=X@?XKE<3IbU|DXA__@@3oed5TESI6!iXJ9;%^f*!Dae&CF zPah;*4(m(&Yd&DV@W*%gjywJLd3bW}@bL6#n|Cp=2%O&S|Nr0H`=6&hyxcC&bH;~< z=YNCQANE@eE&_k#oBlf&=B#@z{v2!#{#20wPmv(zUbV{Gb?Hq zPg+_U&-(cNX%+R+?Mg$wca^#&5JR~i-+N;AAoNMqnom}bx8BDmNdiJ*$qybqV!eI%%$Y+98X7!bgig3RF#r3{{y6@CLt^Ulv>%_}>N9)jJ1{iz z{`mWxzj@IlAqiuLzq%?aCmuX{bfSSf#_Hq5hxW$G%nl42|1euMPwbre@aE#*Jk!_R zOPUZKkZ|EjNP5NhceaO*c2Af1#}s>{oj-wm0yfC>?9bN zIApke946n}S9Px7`@dv1!@@$g%1X-x;&uji_Seh5VGX$T0Igrk(8i$QY~2 zY|=0j9O_KIiD_wR6$Sql5BJIbmOOLDS5ideiKJc44~Cv&$~^TA>lj@h+b{V1pPBc^ zzsKy&tqawdH*e6|f4{r=U$lDO-{%E){|hQKL|9Z>%=~sgJ!!|^XSx=1o1LUr@VsDkL}y6mdKI;Vst E0E8H&4FCWD literal 0 HcmV?d00001 diff --git a/share/icons/database/C58_KGPG.png b/share/icons/database/C58_KGPG.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ed9b4b7369b07ba826982ad0dea09e001dabcd GIT binary patch literal 1157 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfkoWY#WAGfR+7(yl#G(k zNo$@=OilRlb?QTVX6fty6w{>F)JLErBGE3PsyGW@gS`=`UpexJWT zum0oQ#)qN;%?u6g?3mEEqTx#8e~MMAiHjyuE)z(&ebi|H4n7jg1UA z46PzHHn^&>-YrS>~qLq3v07?aQhBjbtRKlw7A%d>5m{C`i~Aq6EKlQ*}M+y2MT zH~RDMXXC@?>+^Z?=f$M&sQLahe8HlA2WtriCI&}_egB!ierGUKXJ^onw_;%U^_hj? z-)9bnGb=AKtXu!(zqA}bqm(!U!;e3|8NPpe%kb&(S%zJ^?=ei=@MZJQ|D5v~7=FWy zdHIXssK952L>CtZP8LCCh7Yg!7*exXe!bIdXOvb`V*2>-IK!KJml>Yixyf+;l`z9S z;cAA@%nm|NZlBn~!0_oU#5D}c3=9kwj0_7dPiFZ4|26yn2YcoIS7r46KXw2A|9c<* z|KD@=;s4#HhW|GNhWuZDLPW-jVq=3sLxT^D8yBupXr42Lsd?2Nrsl;~+RYsL%*@jzn47&5*6=BBE@5(D z*tmlE@uTPUY;}BkY;J5~9x8kO{+j(z)gYmMKl`!cv-NqD>gx>u{QTDa@YU`8Jlo@J zk`j`qqzi;jN`3NV>UU-ig=yvsF8n`y;MZ?{1Ec?j28K*$fAaY-_S-S@GD#i!{zka@ z%;k2T_8 zn)2h&iIX1$R{T^nh_v~A=*$N`jk>?`?1%UApW&(hx7qj)bJgQtU(I>$+uQ!-5pdAS zatQyQl2BlBDOn(K%Fpu${=Bh2-1^sCvhGt&T0qFd)QXeK4;8HcDsb4pY{9YncX;gW zj0|k{{+jggM$^3b|Nrj9F$sVZ2g@}E28Le@4A&NHWw@?m$*R3={||1Iqo>H-t)Ga@|Y3v$>R7?>H3*vym@yJU2dfq{X+ M)78&qol`;+0Q5N=H2?qr literal 0 HcmV?d00001 diff --git a/share/icons/database/C59_Package_Development.png b/share/icons/database/C59_Package_Development.png new file mode 100644 index 0000000000000000000000000000000000000000..df1fb742e367040e5a32b1b69a8b13d5780cca83 GIT binary patch literal 985 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfjQgL#WAGfR#HfKcsc{4 zo10r(ef@u^X~1qc>d5K zrZ9dc2F4>gN=i&=fByfU|M30(`n+pqX4YP(v}M+;&8^s9`}fqDQ>V_bgdEOFNKja_ zaN)ae-_A;(R`;Km!yxs6JB7o6VdDXl|35#wpT2ptwA3w4Y<@?F#^ImE>5_c%wr2|d z-ntsUK7Mb_*;A*!#rpX4h_CRRK6B>HXZQElTRT)SGIg*n`T6_%dme}AS!;81e>TJ= z>?nV4*Sukc2s1ag`QeSq?%}onKiW=XWO5MWV))3fF`rSPVTP-#>sk>}(d$2d{YlJ z>9Vn@vAL=IWnesV;OJ3Kla^4a6W^ttVswUy-~al3-~N9Ub^ZTV zq=nD8VGbiJ17pio2D>mhHp4POw!pGPHbynalSb7$&F_B?{rms_&maG#t(X7X9yI9| zZ!ouj!i8aih-PVb%FDC%Ks$T-=Y`SJAh{C&l*xoS2}pDvg#u(crF z;M(>OtGXXs&Yk}LK8%?~ppDTcCx)ly&4C38zxd4>X3p$<_&R=>_ka8S{iXpakDm%o zNSYw>BqiWqjd$_)o9sLcj4g=={{Qdc+5hif@{fPd%@6Y{{Np?lU-$ptzb}8^-}joc z{|;;2-Nc&xE9XD_ym@&~w4Bi&b`Av|W{Jj!hgp0!{%`P<={PWB;zRqx+w0FPzgPbw z@$9dMJ3sZ7=kQEE|MzFf)2qkT8W@sTSRc)|ua~U*^Mmn=y}_p&mIvDwFsmh;OHNA? vd6<^`?)RtH+s~}lk5^|3{^r)ez|3&#otH5ChPZkL1_lOCS3j3^P6P&mm?oVbZ=;nrGC1ettf^zW(3e^n_pE|NpmNaAyAg`hUj%(-Z#ueg6JG z=X$$yd;dK5S3ASdz>vf!_`hLBe{b?E6XC^ES}o)c@4ugOrvBfb)CUP{p8ryR{A_P* zr4c<%K0uDZBdU|-~tXY%yYE8_-O|$AHc3k;qQ1k1{ z^oO6{*Yo7p|4IJw*q+x@>G_se1Qv z(}Z%A!d7PS?D4YUv0qo8{Nwv)b7pSg3(^ky2F$tXiGTRZw8goVo0+(~4?O%H?_&Sw z|9)15h8eaycBt(#+OX^OFHd8Rs8fap1x3aiHf}Qbv+q~qLwjlFBMb||B^qZnK0NT@ z`+a*hO|vkzzW---rSGq`=M!-7@u~mcYX9?ZZ=+-2oW{nP>?PE{3m9o-**NvNLc<{9@pg`^zAv{FOmm{x!qBU!NI@ z&b<9_{rmS*OkiVJJ}@wB&}L>5=VIrwf5XJa`1?O2gV=vg26l4;1_dj1hAU?;G6*pI zWRMqTWH@-0iQ(Zd9tM@KTNy5Ve!lcG14ABD$H`gKn-6xjH-F||&2aci{&dMT>vYm) zlzn7lX6`pRY|okB)+WA^XZ6lY5)wU8rjSo!?D*yaB%*o@e z$7beN*mfsDn$1kku3*vAYmZZYeEy?!_;z@`M1m!ULPJE^{=a7!&iJp^6Y(tx-;!1s zXpoQ~ZuEe4mjj=~cN>SZF+B6%-$~g~{Z8ZX#MtWp^KB}h-99;+|2+e9f%OScb}&g} zQWaurD|RqvWIpCKYv#f`XWh=4u3pga`M0@R8}se5Kewx2{W;#fT|Tbz*nthrjEg=h znQ$92un62~nCi1B0ilpUXO@geCwx3emFw literal 0 HcmV?d00001 diff --git a/share/icons/database/C61_Services.png b/share/icons/database/C61_Services.png new file mode 100644 index 0000000000000000000000000000000000000000..2a24b7e7f66caf39e3d97dcf4497be1de27acc3d GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfq90fi(^Q|tt1<5&4VBO zohCgz`L~)!-o7R!Au%Q8$N2*XKK%b*&sfRb-F-TKZq$JxEC?NK9#9 z$hM1XbCHy6+yDQ6^G^oGBP@dd_^%v3ap3HE_DwS%p5I^3Q`2?Hu||xI$Bj>|XVV#< zgZCG1lV;3KPfluyU}0fkWHDuU(zTyQX3rfSrb&+!JnaIxeT~xsIoULIL)n5&Gpp^` z*tS_LDCe!Hl-T#@FZbnR3<3^5|Ns9>{_*`U|Ka`e`z8O?{5^W$)VZSv4jo9)&s(l~ z=)i~BjgfQO4+h0EzDQ=PRnLoS(~qw=`op&B|KG>_H?}e`9yz3bto+aReOvzY``@qs z|M&m&#=qa^*VnjBIwa(G%Awqjt?g(z+jR}&uxsJ*WuFR)YLe0ulKz}Nb?C&|gQw2y z{r@zsfgvd-dF?N?ipFk(<}M}X!{&8u{~gvF7%|TMF`f5?{({4eZAJ$53{osTbL)M0 zdK?njzM1oUH;Yg9ID6wKlS0D`d7HZJzrU@^?qf@u-?H;+jcu#>Rk(NAukN_01q9M5dzX&(-Zp4Gc*p>{1nc9nBFE)1N%^cAs^O z%V6V12IaT<8a0U%*?Ww()$_cM|Cc)B?%z-K$FFU#zHe-x!k{{jiAA8J$*nS@x+JEcFKqE>mO(kF-}ep2}=I3W%>ibq=cR%2PRM& zD!R;{q4hXKwCtfNa~s!wlf%tl(1*ox30dkAl?PT&2a@t{x}};-8$%nk1|s#*&n$a4k8ZBRn}!MmC1zJMvkren(d`FfcH9y85}Sb4q9e0IB-P*#H0l literal 0 HcmV?d00001 diff --git a/share/icons/database/C62_Tux.png b/share/icons/database/C62_Tux.png new file mode 100644 index 0000000000000000000000000000000000000000..14f3272f2753f508e5a69d96caa3f72bf8f4b6d6 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFL*h+%@f*JlZFfjb@JfJ^; zfq^l=)5S5Q;#O^-tv{2aK&`TRzqIQVrl^y zsq2nh%hKL^%Ij$nZ+iu&#v_eMn=OiN{_fC^K67T@-S25_Oe`JE4uNy_#r|ra>t`&- z@S^isbSL`fYxh?`uDrr+g3S`u~a&J!y+7`8TM#n9^bVi50as4x*cCnxTyy|M!6rw)HVfK3c8CA(1%-OEy&lu{CWX)5*BB6TB>aCQDgu{WPv<&b3+A8^{Vz2b(>7RBw z_^;2ciCJu3cij8%e4eehUb>&yXQ4U6N^V|6>}AGj`8sPj?QH&YY1bRrZ(La?wSEEv P0|SGntDnm{r-UW|J9noQ literal 0 HcmV?d00001 diff --git a/share/icons/database/C63_Feather.png b/share/icons/database/C63_Feather.png new file mode 100644 index 0000000000000000000000000000000000000000..de27e959d21f6d3263f01097bda15f83382dee22 GIT binary patch literal 542 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFL*h+%@f*JlZFfjb@JfJ^; zfr0U|r;B4q#jWH$rFCq^ueJU7bORm5#S-h-oEkdke*FCTvv}N{*pCWJ{(fz`YJY#P z>Hay^_1W_GgDT^W*xq|MTC+{+?m;_Lku}*7|)> z2CuR=?!P{9*EutL-xJ5Ax_Nncc=mWj+1yP0Bb39YBllV&-skVx`v3c$y>FQ5Z@nyW zJL92UcE!)nPMiJbeBHT(wEE)(>hl8+cRc+QAFMdB_2!&UMH*%f4Qab}hiY}JJQu$I zzov`l+tvSkZ~i3zd3&M1f9u)#`SFL7m|6DB*!Cy<<~?iskZs1AIsdlXOw?6-@!e2v zGJnl%@13q&BqSteNJ~gfF#V8o_3z$EbCd5U-djJ%J~HO|pV%{J=Ba%9q5ZpEcu#sv z;2aiqrN(!6Hnz>``L6q~_Cm_p_m3=ybK|Mz>(^vn-2|02~Z>gs=g6t z>UeB%*g$MOH`AK?*DL2W|BKR_{&{-k@3zC=8|Pg!c{?l5aaw9aRNrHP{UvtuH8a~1 zj~$x9(0s6g$>7-X`@)PYjtk;7IhdF_7J0A-isbHnYabBO`n+=2%2izwytlW#d?1!_ z@J*%K>7w{5tGTQEv&u~v7-skT28swcxdzT!=6QLGj<@Heu>950&-jh!)~xsaQtUC7g#>g`fXRO?1Z*MGaOB5;Z zzC3&7CG)vz4HtI{GR*rhb-8wxuX@Xx_3M}~WLNPWaQy6`)AD+k%|nJYZK`5QT#HYp z6#ag?t@g&bYnk%f6ctsMyuA_qb8UCOxX`4dJ+neCZ~1ro--nbH9P{3<{P%r%^jfh7 z1r7!Qr!{S*f4}~Eb$aTp3F?17U4DA&*sZqh}+TWN6+^9 zUN2=lv+ulAnDfPXGLJ1TcU)KcBco<>(*E@O=-=J)-Iu>FKmGTqiSPHgw||viIxRHV zJ$t19hvL;N(E|wvE3Uu(uJSaBEh{K1NOW_{8<|oQ-`|rz1U&dT&&#>-sLx!Vwx$2; c*6wHMJoo8T2LGWs3=9kmp00i_>zopr0N-`|#{d8T literal 0 HcmV?d00001 diff --git a/share/icons/database/C66_Money.png b/share/icons/database/C66_Money.png new file mode 100644 index 0000000000000000000000000000000000000000..5db755dfab7bcfe6b78f2fa902357b282a969173 GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFL*h+%@f*JlZFfjb@JfJ^; zfq^l>)5S5Q;#TsH^B?4ex4z5XIy0|1w5yYm+2;R`KYzb}=i%Ym9(VW9l+-`xKggfE zSyCGOec`+5@o`G4F9=>gx%pgiKv~15hh=Z~@1DP~$#HA+*E5ri3)For%~}^WEi8@K z7E|}Nvg&MXbe!XUC*qid-i+L-xyt#?If~qKzW#ch&BoTI%-`>0Yxec;@9za4cOERh zdgRK3m=@kwi(U!1om)1i_qy4>Kc6<`#@}8WzI{UI;)-9_R!7@$*XHft+bgEi7}fat z(X~YWrO)N(Uw^mGw&cISEVC3_4XFnUO0r)b%a%S`d8FUQ=Fouy3$)f$t^OjmOMaQ$ z?5YRv7&)RR1P9D<|5Nbnp~G4SHnz6g`T2*H1s5hBJt{h3f-9Svk(z+?gE)6jsn_e* z=HI^l?a$+4j_(KVGIO8POGrpKvHjffM=zPn`E&Me{CZ@u@Ps9Wzu)GDCWaQueGJ+i lWS?u_vNFVD?GHuBR%vz

vHIcR(IIyHJhHZy#4m={JhyqT#dV#`uO_lmdP!-@?;m^=jr-VtG@iY_^mtr>XS=v zK9?)9I8F?lu+u2>n1fXB#TTpPLt6;| zZ#|5neCBl|Nc{fp!*JpLojbc~>x;@>{$5)h@#fq{*$J{sdi>4j_q1m%Gj*P^f@AU% z2FK~l3{w=t|6TfDll~{~%{A@zmmhX`3b=UjSv2T)GU--MemH5Ji1y{HCjYBzmdpKN Zypw)U+U%y$X9fla22WQ%mvv4FO#t*j?8pEB literal 0 HcmV?d00001 diff --git a/share/icons/database/C68_BlackBerry.png b/share/icons/database/C68_BlackBerry.png new file mode 100644 index 0000000000000000000000000000000000000000..6db395484c18e919c19a7ec1d35b4a9b0ee50416 GIT binary patch literal 509 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFL*h+%@f*JlZFfjb@JfJ^; zfq`+8r;B4q#jWH&=ReGE1c8SaE}s5p=*#1w(DnB9uK6`bXB+Wx@4*v9tG9w97J^@!sE8`}oJ_FJ~57>%W`(=-IPhUtfR! z`@7##!oq$}xZ}2ItTT=4%a(WFx_&9$6p_a@Kc79{$u0g|?`H3sHqM!cKfE_T zyw}#g-Z*yW*Ke=+pGkkW`}^;2H>2o+j33{-Kfb&3-bUtr?Ub;Zq`JMIuQRdnG%R|^ zul@Vzi8=cA7TfQ1Klpw4{jq5d4$Q{J&5hewtfe>i?XoZzpS^4ogSNKzEH)AUJC(ethlkzsa4G|H_~Ldir+%eXIZM z+j+&`+y7HPzT@kc$zP2>Cp}tzbI-2Y*LTg?a(U-SJ*n%gv;Hx?^{0E;(MR*o#Fuq; z8g(pWwOPgHvFg|7@8>^1?+gV_Q|0N_Oe*E0|ut{jrryHgk+9zxN|8t$t zK5=fZr+e(1gO|_O|1+|w`sN$#%o)l2xLzgtu+Z%?d5eCXx33a*WYvjo;$Z0dzH-8) U^Xfks7#J8lUHx3vIVCg!0L85XkN^Mx literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c2964c406..771b8b5ce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,6 +19,7 @@ configure_file( config-keepassx.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-keepa set(keepassx_SOURCES core/Database.cpp + core/DatabaseIcons.cpp core/Endian.cpp core/Entry.cpp core/Group.cpp diff --git a/src/config-keepassx.h.cmake b/src/config-keepassx.h.cmake index f79dde174..21be30be5 100644 --- a/src/config-keepassx.h.cmake +++ b/src/config-keepassx.h.cmake @@ -1,3 +1,5 @@ /* config-keepassx.h. Generated by cmake from config-keepassx.h.cmake */ #define KEEPASSX_VERSION "${KEEPASSX_VERSION}" + +#define KEEPASSX_SOURCE_DIR "${CMAKE_SOURCE_DIR}" diff --git a/src/core/Database.cpp b/src/core/Database.cpp index be8f5c5fe..fcb5eab83 100644 --- a/src/core/Database.cpp +++ b/src/core/Database.cpp @@ -48,15 +48,9 @@ Metadata* Database::metadata() return m_metadata; } -QImage Database::icon(int number) +const Metadata* Database::metadata() const { - // TODO implement - return QImage(); -} - -QImage Database::customIcon(const Uuid& uuid) const -{ - return m_customIcons[uuid]; + return m_metadata; } Entry* Database::resolveEntry(const Uuid& uuid) diff --git a/src/core/Database.h b/src/core/Database.h index cb3e299b4..486b8178c 100644 --- a/src/core/Database.h +++ b/src/core/Database.h @@ -21,7 +21,7 @@ #include "Group.h" #include -#include +#include class Metadata; @@ -41,8 +41,7 @@ public: const Group* rootGroup() const; void setRootGroup(Group* group); Metadata* metadata(); - static QImage icon(int number); - QImage customIcon(const Uuid& uuid) const; + const Metadata* metadata() const; Entry* resolveEntry(const Uuid& uuid); Group* resolveGroup(const Uuid& uuid); QList deletedObjects(); @@ -61,7 +60,6 @@ private: Metadata* m_metadata; Group* m_rootGroup; - QHash m_customIcons; QList m_deletedObjects; }; diff --git a/src/core/DatabaseIcons.cpp b/src/core/DatabaseIcons.cpp new file mode 100644 index 000000000..b3fc70308 --- /dev/null +++ b/src/core/DatabaseIcons.cpp @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2010 Felix Geyer + * + * 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 or (at your option) + * version 3 of the License. + * + * 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. If not, see . + */ + +#include "config-keepassx.h" +#include "DatabaseIcons.h" + +DatabaseIcons* DatabaseIcons::m_instance(0); + +QIcon DatabaseIcons::icon(int index) +{ + if (index >= iconCount()) { + return QIcon(); + } + + if (!m_instance) { + m_instance = new DatabaseIcons(); + } + + return m_instance->getIconInternal(index); +} + +int DatabaseIcons::iconCount() +{ + return 69; +} + +DatabaseIcons::DatabaseIcons() +{ + m_indexToName.append("C00_Password.png"); + m_indexToName.append("C01_Package_Network.png"); + m_indexToName.append("C02_MessageBox_Warning.png"); + m_indexToName.append("C03_Server.png"); + m_indexToName.append("C04_Klipper.png"); + m_indexToName.append("C05_Edu_Languages.png"); + m_indexToName.append("C06_KCMDF.png"); + m_indexToName.append("C07_Kate.png"); + m_indexToName.append("C08_Socket.png"); + m_indexToName.append("C09_Identity.png"); + m_indexToName.append("C10_Kontact.png"); + m_indexToName.append("C11_Camera.png"); + m_indexToName.append("C12_IRKickFlash.png"); + m_indexToName.append("C13_KGPG_Key3.png"); + m_indexToName.append("C14_Laptop_Power.png"); + m_indexToName.append("C15_Scanner.png"); + m_indexToName.append("C16_Mozilla_Firebird.png"); + m_indexToName.append("C17_CDROM_Unmount.png"); + m_indexToName.append("C18_Display.png"); + m_indexToName.append("C19_Mail_Generic.png"); + m_indexToName.append("C20_Misc.png"); + m_indexToName.append("C21_KOrganizer.png"); + m_indexToName.append("C22_ASCII.png"); + m_indexToName.append("C23_Icons.png"); + m_indexToName.append("C24_Connect_Established.png"); + m_indexToName.append("C25_Folder_Mail.png"); + m_indexToName.append("C26_FileSave.png"); + m_indexToName.append("C27_NFS_Unmount.png"); + m_indexToName.append("C28_QuickTime.png"); + m_indexToName.append("C29_KGPG_Term.png"); + m_indexToName.append("C30_Konsole.png"); + m_indexToName.append("C31_FilePrint.png"); + m_indexToName.append("C32_FSView.png"); + m_indexToName.append("C33_Run.png"); + m_indexToName.append("C34_Configure.png"); + m_indexToName.append("C35_KRFB.png"); + m_indexToName.append("C36_Ark.png"); + m_indexToName.append("C37_KPercentage.png"); + m_indexToName.append("C38_Samba_Unmount.png"); + m_indexToName.append("C39_History.png"); + m_indexToName.append("C40_Mail_Find.png"); + m_indexToName.append("C41_VectorGfx.png"); + m_indexToName.append("C42_KCMMemory.png"); + m_indexToName.append("C43_EditTrash.png"); + m_indexToName.append("C44_KNotes.png"); + m_indexToName.append("C45_Cancel.png"); + m_indexToName.append("C46_Help.png"); + m_indexToName.append("C47_KPackage.png"); + m_indexToName.append("C48_Folder.png"); + m_indexToName.append("C49_Folder_Blue_Open.png"); + m_indexToName.append("C50_Folder_Tar.png"); + m_indexToName.append("C51_Decrypted.png"); + m_indexToName.append("C52_Encrypted.png"); + m_indexToName.append("C53_Apply.png"); + m_indexToName.append("C54_Signature.png"); + m_indexToName.append("C55_Thumbnail.png"); + m_indexToName.append("C56_KAddressBook.png"); + m_indexToName.append("C57_View_Text.png"); + m_indexToName.append("C58_KGPG.png"); + m_indexToName.append("C59_Package_Development.png"); + m_indexToName.append("C60_KFM_Home.png"); + m_indexToName.append("C61_Services.png"); + m_indexToName.append("C62_Tux.png"); + m_indexToName.append("C63_Feather.png"); + m_indexToName.append("C64_Apple.png"); + m_indexToName.append("C65_Apple.png"); + m_indexToName.append("C66_Money.png"); + m_indexToName.append("C67_Certificate.png"); + m_indexToName.append("C68_BlackBerry.png"); + + Q_ASSERT(m_indexToName.size() == iconCount()); +} +#include +QIcon DatabaseIcons::getIconInternal(int index) +{ + if (m_iconCache.contains(index)) { + return m_iconCache.value(index); + } + else { + // TODO search multiple paths + QIcon icon(QString(KEEPASSX_SOURCE_DIR).append("/share/icons/database/").append(m_indexToName.at(index))); + + m_iconCache.insert(index, icon); + return icon; + } +} diff --git a/src/core/DatabaseIcons.h b/src/core/DatabaseIcons.h new file mode 100644 index 000000000..2894351fa --- /dev/null +++ b/src/core/DatabaseIcons.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2010 Felix Geyer + * + * 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 or (at your option) + * version 3 of the License. + * + * 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. If not, see . + */ + +#include +#include + +class DatabaseIcons +{ +public: + static QIcon icon(int index); + static int iconCount(); + +private: + static DatabaseIcons* m_instance; + +private: + DatabaseIcons(); + QIcon getIconInternal(int index); + + bool m_initalized; + QList m_indexToName; + QHash m_iconCache; +}; diff --git a/src/core/Entry.cpp b/src/core/Entry.cpp index ee1ddf549..783b824fb 100644 --- a/src/core/Entry.cpp +++ b/src/core/Entry.cpp @@ -18,7 +18,9 @@ #include "Entry.h" #include "Database.h" +#include "DatabaseIcons.h" #include "Group.h" +#include "Metadata.h" Entry::Entry() { @@ -37,15 +39,13 @@ Uuid Entry::uuid() const return m_uuid; } -QImage Entry::icon() const +QIcon Entry::icon() const { - Q_ASSERT(m_iconNumber != 0 || !m_customIcon.isNull()); - - if (m_iconNumber == 0) { - return m_db->customIcon(m_customIcon); + if (m_customIcon.isNull()) { + return DatabaseIcons::icon(m_iconNumber); } else { - return Database::icon(m_iconNumber); + return m_db->metadata()->customIcon(m_customIcon); } } diff --git a/src/core/Entry.h b/src/core/Entry.h index ad3f22d3b..5147fbcf9 100644 --- a/src/core/Entry.h +++ b/src/core/Entry.h @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "TimeInfo.h" #include "Uuid.h" @@ -43,7 +43,7 @@ public: Entry(); ~Entry(); Uuid uuid() const; - QImage icon() const; + QIcon icon() const; int iconNumber() const; Uuid iconUuid() const; QColor foregroundColor() const; diff --git a/src/core/Group.cpp b/src/core/Group.cpp index 0aaceb129..730171244 100644 --- a/src/core/Group.cpp +++ b/src/core/Group.cpp @@ -21,6 +21,8 @@ #include "Group.h" #include "Database.h" +#include "DatabaseIcons.h" +#include "Metadata.h" Group::Group() { @@ -48,13 +50,13 @@ QString Group::notes() const return m_notes; } -QImage Group::icon() const +QIcon Group::icon() const { - if (m_iconNumber == 0) { - return m_db->customIcon(m_customIcon); + if (m_customIcon.isNull()) { + return DatabaseIcons::icon(m_iconNumber); } else { - return Database::icon(m_iconNumber); + return m_db->metadata()->customIcon(m_customIcon); } } diff --git a/src/core/Group.h b/src/core/Group.h index 14cf33f2c..15d5119c0 100644 --- a/src/core/Group.h +++ b/src/core/Group.h @@ -18,7 +18,7 @@ #ifndef KEEPASSX_GROUP_H #define KEEPASSX_GROUP_H -#include +#include #include "Entry.h" #include "TimeInfo.h" @@ -36,7 +36,7 @@ public: Uuid uuid() const; QString name() const; QString notes() const; - QImage icon() const; + QIcon icon() const; int iconNumber() const; Uuid iconUuid() const; TimeInfo timeInfo() const; diff --git a/src/core/Metadata.cpp b/src/core/Metadata.cpp index 11ffbd585..284ff6bc7 100644 --- a/src/core/Metadata.cpp +++ b/src/core/Metadata.cpp @@ -100,7 +100,12 @@ bool Metadata::autoEnableVisualHiding() const return m_autoEnableVisualHiding; } -QHash Metadata::customIcons() const +QIcon Metadata::customIcon(const Uuid& uuid) const +{ + return m_customIcons.value(uuid); +} + +QHash Metadata::customIcons() const { return m_customIcons; } @@ -215,12 +220,12 @@ void Metadata::setAutoEnableVisualHiding(bool value) m_autoEnableVisualHiding = value; } -void Metadata::addCustomIcon(const Uuid& uuid, const QImage& image) +void Metadata::addCustomIcon(const Uuid& uuid, const QIcon& icon) { Q_ASSERT(!uuid.isNull()); Q_ASSERT(!m_customIcons.contains(uuid)); - m_customIcons.insert(uuid, image); + m_customIcons.insert(uuid, icon); } void Metadata::removeCustomIcon(const Uuid& uuid) diff --git a/src/core/Metadata.h b/src/core/Metadata.h index b25d33fb6..f49a4f9ff 100644 --- a/src/core/Metadata.h +++ b/src/core/Metadata.h @@ -22,7 +22,7 @@ #include #include -#include +#include class Database; class Group; @@ -48,7 +48,8 @@ public: bool protectUrl() const; bool protectNotes() const; bool autoEnableVisualHiding() const; - QHash customIcons() const; + QIcon customIcon(const Uuid& uuid) const; + QHash customIcons() const; bool recycleBinEnabled() const; const Group* recycleBin() const; QDateTime recycleBinChanged() const; @@ -72,7 +73,7 @@ public: void setProtectUrl(bool value); void setProtectNotes(bool value); void setAutoEnableVisualHiding(bool value); - void addCustomIcon(const Uuid& uuid, const QImage& image); + void addCustomIcon(const Uuid& uuid, const QIcon& icon); void removeCustomIcon(const Uuid& uuid); void setRecycleBinEnabled(bool value); void setRecycleBin(Group* group); @@ -101,7 +102,7 @@ private: bool m_protectNotes; bool m_autoEnableVisualHiding; - QHash m_customIcons; + QHash m_customIcons; bool m_recycleBinEnabled; Group* m_recycleBin; diff --git a/src/format/KeePass2XmlReader.cpp b/src/format/KeePass2XmlReader.cpp index 2522d8970..23bb4b7fc 100644 --- a/src/format/KeePass2XmlReader.cpp +++ b/src/format/KeePass2XmlReader.cpp @@ -209,9 +209,9 @@ void KeePass2XmlReader::parseIcon() uuid = readUuid(); } else if (m_xml.name() == "Data") { - QImage image; - image.loadFromData(readBinary()); - m_meta->addCustomIcon(uuid, image); + QPixmap pixmap; + pixmap.loadFromData(readBinary()); + m_meta->addCustomIcon(uuid, QIcon(pixmap)); } else { skipCurrentElement(); @@ -445,8 +445,9 @@ Entry* KeePass2XmlReader::parseEntry(bool history) } else if (m_xml.name() == "CustomIconUUID") { Uuid uuid = readUuid(); - if (!uuid.isNull()) + if (!uuid.isNull()) { entry->setIcon(uuid); + } } else if (m_xml.name() == "ForegroundColor") { entry->setForegroundColor(readColor()); @@ -755,6 +756,6 @@ void KeePass2XmlReader::raiseError() void KeePass2XmlReader::skipCurrentElement() { - qDebug() << "KeePass2XmlReader::skipCurrentElement(): skip: " << m_xml.name(); + qWarning() << "KeePass2XmlReader::skipCurrentElement(): skip: " << m_xml.name(); m_xml.skipCurrentElement(); } diff --git a/src/format/KeePass2XmlWriter.cpp b/src/format/KeePass2XmlWriter.cpp index 3b378c0bd..d3b2a612a 100644 --- a/src/format/KeePass2XmlWriter.cpp +++ b/src/format/KeePass2XmlWriter.cpp @@ -101,7 +101,7 @@ void KeePass2XmlWriter::writeCustomIcons() { m_xml.writeStartElement("CustomIcons"); - QHash customIcons = m_meta->customIcons(); + QHash customIcons = m_meta->customIcons(); Q_FOREACH (const Uuid& uuid, customIcons.keys()) { writeIcon(uuid, customIcons.value(uuid)); } @@ -109,16 +109,18 @@ void KeePass2XmlWriter::writeCustomIcons() m_xml.writeEndElement(); } -void KeePass2XmlWriter::writeIcon(const Uuid& uuid, const QImage& image) +void KeePass2XmlWriter::writeIcon(const Uuid& uuid, const QIcon& icon) { m_xml.writeStartElement("Icon"); writeUuid("UUID", uuid); + QPixmap pixmap = icon.pixmap(16, 16); + QByteArray ba; QBuffer buffer(&ba); buffer.open(QIODevice::WriteOnly); - image.save(&buffer, "PNG"); + pixmap.save(&buffer, "PNG"); buffer.close(); writeBinary("Data", ba); diff --git a/src/format/KeePass2XmlWriter.h b/src/format/KeePass2XmlWriter.h index 8050697c6..ba123b80d 100644 --- a/src/format/KeePass2XmlWriter.h +++ b/src/format/KeePass2XmlWriter.h @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "core/Database.h" #include "core/Entry.h" @@ -44,7 +44,7 @@ private: void writeMetadata(); void writeMemoryProtection(); void writeCustomIcons(); - void writeIcon(const Uuid& uuid, const QImage& image); + void writeIcon(const Uuid& uuid, const QIcon& icon); void writeCustomData(); void writeCustomDataItem(const QString& key, const QString& value); void writeRoot(); diff --git a/src/gui/EntryModel.cpp b/src/gui/EntryModel.cpp index ae0f67bfc..04f33f405 100644 --- a/src/gui/EntryModel.cpp +++ b/src/gui/EntryModel.cpp @@ -78,9 +78,9 @@ QVariant EntryModel::data(const QModelIndex& index, int role) const if (role == Qt::DisplayRole) { return entry->title(); } - /*else if (role == Qt::DecorationRole) { + else if (role == Qt::DecorationRole) { return entry->icon(); - }*/ + } else { return QVariant(); } diff --git a/src/gui/GroupModel.cpp b/src/gui/GroupModel.cpp index 8398a7f32..7b135c29f 100644 --- a/src/gui/GroupModel.cpp +++ b/src/gui/GroupModel.cpp @@ -108,10 +108,9 @@ QVariant GroupModel::data(const QModelIndex& index, int role) const if (role == Qt::DisplayRole) { return group->name(); } - // TODO enable - /*else if (role == Qt::DecorationRole) { + else if (role == Qt::DecorationRole) { return group->icon(); - }*/ + } else { return QVariant(); } diff --git a/tests/TestKeePass2XmlReader.cpp b/tests/TestKeePass2XmlReader.cpp index 64d726a57..6110c7a40 100644 --- a/tests/TestKeePass2XmlReader.cpp +++ b/tests/TestKeePass2XmlReader.cpp @@ -103,9 +103,8 @@ void TestParser::testCustomIcons() QCOMPARE(m_db->metadata()->customIcons().size(), 1); Uuid uuid = Uuid::fromBase64("++vyI+daLk6omox4a6kQGA=="); QVERIFY(m_db->metadata()->customIcons().contains(uuid)); - const QImage& img = m_db->metadata()->customIcons()[uuid]; - QCOMPARE(img.width(), 16); - QCOMPARE(img.height(), 16); + QIcon icon = m_db->metadata()->customIcon(uuid); + QImage img = icon.pixmap(16, 16).toImage(); for (int x=0; x<16; x++) { for (int y=0; y<16; y++) { QRgb rgb = img.pixel(x, y);