Logo Search packages:      
Sourcecode: kdewebdev version File versions

pixmapchooser.cpp

/**********************************************************************
** Copyright (C) 2000-2001 Trolltech AS.  All rights reserved.
**
** This file is part of Qt Designer.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/

#include <qvariant.h> // HP-UX compiler needs this here

#include "pixmapchooser.h"
#include "formwindow.h"
#if defined(DESIGNER) && !defined(RESOURCE)
#include "pixmapfunction.h"
#endif
#include "metadatabase.h"
#include "mainwindow.h"
#ifndef KOMMANDER
#include "pixmapcollectioneditor.h"
#endif
#ifndef KOMMANDER
#include "pixmapcollection.h"
#endif
#ifndef KOMMANDER
#include "project.h"
#endif

#include <qapplication.h>
#include <qimage.h>
#include <qpainter.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qiconview.h>

#include <klocale.h>

#if defined(DESIGNER)
#include "pics/images.h"

#ifdef Q_WS_MACX
//logo is 40x40 on the mac, if it changes - please notify the Qt/Mac team
static const char * const logo_xpm[] = {
"40 40 543 2",
"     c None",
".    c #C9D98D",
"+    c #A0BC30",
"@    c #A4C132",
"#    c #ABC92F",
"$    c #AAC733",
"%    c #8FA733",
"&    c #657821",
"*    c #3F4E17",
"=    c #2A360C",
"-    c #182306",
";    c #121B06",
">    c #141C06",
",    c #1D2608",
"'    c #2A350E",
")    c #405017",
"!    c #667C1C",
"~    c #8FAA24",
"{    c #A8C12D",
"]    c #728326",
"^    c #313A14",
"/    c #090B08",
"(    c #000003",
"_    c #000001",
":    c #000002",
"<    c #000004",
"[    c #000000",
"}    c #080D01",
"|    c #333E11",
"1    c #6E8529",
"2    c #A2C230",
"3    c #ACC735",
"4    c #7D8F2C",
"5    c #2A300E",
"6    c #000300",
"7    c #000007",
"8    c #010009",
"9    c #020104",
"0    c #020301",
"a    c #020300",
"b    c #010200",
"c    c #010101",
"d    c #020010",
"e    c #010010",
"f    c #000005",
"g    c #000503",
"h    c #28360C",
"i    c #789128",
"j    c #AAC835",
"k    c #A4BE36",
"l    c #515F1E",
"m    c #040800",
"n    c #00000C",
"o    c #02000D",
"p    c #040303",
"q    c #020200",
"r    c #020203",
"s    c #020202",
"t    c #000008",
"u    c #000105",
"v    c #000202",
"w    c #000201",
"x    c #020207",
"y    c #02020C",
"z    c #00000B",
"A    c #02010E",
"B    c #000013",
"C    c #030900",
"D    c #4C5E1B",
"E    c #A1BD33",
"F    c #9BB52F",
"G    c #333E10",
"H    c #010002",
"I    c #03020B",
"J    c #020109",
"K    c #030204",
"L    c #010104",
"M    c #020009",
"N    c #02000A",
"O    c #000009",
"P    c #000006",
"Q    c #04050B",
"R    c #020106",
"S    c #020307",
"T    c #040507",
"U    c #000104",
"V    c #34410D",
"W    c #99B236",
"X    c #9BB332",
"Y    c #2B360A",
"Z    c #020006",
"`    c #040301",
" .   c #030304",
"..   c #01010A",
"+.   c #020113",
"@.   c #010011",
"#.   c #010500",
"$.   c #0A0F05",
"%.   c #131C07",
"&.   c #0B1205",
"*.   c #020706",
"=.   c #010309",
"-.   c #030503",
";.   c #030402",
">.   c #2C350C",
",.   c #9DB52F",
"'.   c #A3BD2F",
").   c #03000A",
"!.   c #030102",
"~.   c #020101",
"{.   c #030209",
"].   c #02010B",
"^.   c #010301",
"/.   c #242C08",
"(.   c #5A6720",
"_.   c #81922B",
":.   c #93A732",
"<.   c #9AB530",
"[.   c #9CB734",
"}.   c #90AA32",
"|.   c #7E942C",
"1.   c #566820",
"2.   c #273310",
"3.   c #000403",
"4.   c #00000E",
"5.   c #020211",
"6.   c #03030B",
"7.   c #020205",
"8.   c #01000C",
"9.   c #33410B",
"0.   c #A7BF37",
"a.   c #ADC935",
"b.   c #4F5F18",
"c.   c #020103",
"d.   c #080401",
"e.   c #050205",
"f.   c #232C06",
"g.   c #768722",
"h.   c #A4BB2E",
"i.   c #D5E38D",
"j.   c #A2BE3A",
"k.   c #738833",
"l.   c #202C0A",
"m.   c #05030A",
"n.   c #020206",
"o.   c #030303",
"p.   c #505B20",
"q.   c #ACC934",
"r.   c #7C8E2B",
"s.   c #050900",
"t.   c #010201",
"u.   c #030200",
"v.   c #020001",
"w.   c #050207",
"x.   c #030004",
"y.   c #000203",
"z.   c #49531D",
"A.   c #A2B836",
"B.   c #9FBD30",
"C.   c #4E5A1C",
"D.   c #000200",
"E.   c #04040A",
"F.   c #040403",
"G.   c #010005",
"H.   c #040600",
"I.   c #7A9222",
"J.   c #ACCB2D",
"K.   c #A9C22F",
"L.   c #282F0B",
"M.   c #020304",
"N.   c #030109",
"O.   c #55671A",
"P.   c #AEC93D",
"Q.   c #A9C931",
"R.   c #546523",
"S.   c #00000A",
"T.   c #020204",
"U.   c #010300",
"V.   c #272F0B",
"W.   c #A7BE34",
"X.   c #728327",
"Y.   c #020108",
"Z.   c #030305",
"`.   c #030208",
" +   c #46511B",
".+   c #ACC739",
"++   c #93AC39",
"@+   c #263605",
"#+   c #566A1D",
"$+   c #ADC93C",
"%+   c #ACC840",
"&+   c #44541E",
"*+   c #010205",
"=+   c #010206",
"-+   c #020107",
";+   c #010007",
">+   c #030400",
",+   c #728226",
"'+   c #AAC732",
")+   c #323A14",
"!+   c #030401",
"~+   c #01000D",
"{+   c #242D06",
"]+   c #A2B835",
"^+   c #95AD3E",
"/+   c #212C0F",
"(+   c #010604",
"_+   c #5F7327",
":+   c #ABC934",
"<+   c #A2BD3A",
"[+   c #202C09",
"}+   c #01010B",
"|+   c #020105",
"1+   c #333B14",
"2+   c #ABC23C",
"3+   c #8EA631",
"4+   c #0A0C08",
"5+   c #010008",
"6+   c #010102",
"7+   c #020011",
"8+   c #030500",
"9+   c #778823",
"0+   c #96AD3A",
"a+   c #232D0D",
"b+   c #020212",
"c+   c #000109",
"d+   c #030800",
"e+   c #5F7126",
"f+   c #ABCB35",
"g+   c #71862A",
"h+   c #020401",
"i+   c #090C03",
"j+   c #8FA238",
"k+   c #647822",
"l+   c #02000B",
"m+   c #232B08",
"n+   c #A5BB30",
"o+   c #96AC35",
"p+   c #242C0A",
"q+   c #020402",
"r+   c #030403",
"s+   c #000100",
"t+   c #576D1D",
"u+   c #A2BC37",
"v+   c #232D0A",
"w+   c #010004",
"x+   c #677822",
"y+   c #596620",
"z+   c #CBDC71",
"A+   c #96B034",
"B+   c #232B0E",
"C+   c #01020B",
"D+   c #010109",
"E+   c #030502",
"F+   c #040603",
"G+   c #010107",
"H+   c #253704",
"I+   c #B2CE3A",
"J+   c #586721",
"K+   c #425014",
"L+   c #C3D771",
"M+   c #29360C",
"N+   c #020302",
"O+   c #81912F",
"P+   c #94AE38",
"Q+   c #23300B",
"R+   c #040408",
"S+   c #010105",
"T+   c #010207",
"U+   c #242C0C",
"V+   c #91AB33",
"W+   c #D0E18D",
"X+   c #7F922B",
"Y+   c #010400",
"Z+   c #010106",
"`+   c #2A3408",
" @   c #182406",
".@   c #00000D",
"+@   c #0B0F06",
"@@   c #93A736",
"#@   c #96AE38",
"$@   c #000101",
"%@   c #030308",
"&@   c #232A0B",
"*@   c #98AC37",
"=@   c #94AB32",
"-@   c #0C1204",
";@   c #1B2307",
">@   c #9EB62F",
",@   c #010100",
"'@   c #9AB431",
")@   c #97AD37",
"!@   c #242B0E",
"~@   c #01000B",
"{@   c #01010C",
"]@   c #272C13",
"^@   c #9CAF3B",
"/@   c #131B07",
"(@   c #151B07",
"_@   c #9CB230",
":@   c #ADC555",
"<@   c #131C06",
"[@   c #94AB38",
"}@   c #252E0A",
"|@   c #262914",
"1@   c #9DAF46",
"2@   c #9DBA30",
"3@   c #141C07",
"4@   c #010302",
"5@   c #141906",
"6@   c #9CB332",
"7@   c #9EBB31",
"8@   c #1D2609",
"9@   c #010003",
"0@   c #0B1105",
"a@   c #91AA31",
"b@   c #222C0D",
"c@   c #05040A",
"d@   c #232B0A",
"e@   c #98AC3A",
"f@   c #91AB2D",
"g@   c #0B1204",
"h@   c #1D2307",
"i@   c #A0B834",
"j@   c #A5C233",
"k@   c #29340F",
"l@   c #020705",
"m@   c #7E942D",
"n@   c #95AE3B",
"o@   c #232E10",
"p@   c #03040C",
"q@   c #02020B",
"r@   c #020400",
"s@   c #222A0B",
"t@   c #92AE2E",
"u@   c #7D9327",
"v@   c #030704",
"w@   c #2A340D",
"x@   c #A7BF35",
"y@   c #BAD355",
"z@   c #3E4E18",
"A@   c #020110",
"B@   c #566821",
"C@   c #243503",
"D@   c #020213",
"E@   c #030501",
"F@   c #030306",
"G@   c #030207",
"H@   c #010203",
"I@   c #030206",
"J@   c #202E0B",
"K@   c #95AF37",
"L@   c #59691D",
"M@   c #43501A",
"N@   c #ADC732",
"O@   c #657A1D",
"P@   c #000102",
"Q@   c #01000E",
"R@   c #010108",
"S@   c #27330F",
"T@   c #A3BE3D",
"U@   c #586C1E",
"V@   c #000404",
"W@   c #00010A",
"X@   c #050704",
"Y@   c #262B13",
"Z@   c #262B15",
"`@   c #02010C",
" #   c #212E08",
".#   c #97AE3B",
"+#   c #ADC440",
"@#   c #232D06",
"##   c #030101",
"$#   c #6B7D21",
"%#   c #D5E48D",
"&#   c #8DA828",
"*#   c #02020A",
"=#   c #000106",
"-#   c #000401",
";#   c #748736",
">#   c #AECB3D",
",#   c #5E7227",
"'#   c #010204",
")#   c #252B0C",
"!#   c #9BAD3F",
"~#   c #A0B148",
"{#   c #232B0B",
"]#   c #020007",
"^#   c #020209",
"/#   c #2C3418",
"(#   c #646E34",
"_#   c #030600",
":#   c #030202",
"<#   c #050102",
"[#   c #0A1002",
"}#   c #90A727",
"|#   c #CFDE8D",
"1#   c #343D13",
"2#   c #02010D",
"3#   c #040509",
"4#   c #020308",
"5#   c #202B09",
"6#   c #9FBE2E",
"7#   c #ACCA34",
"8#   c #5E7026",
"9#   c #252C0D",
"0#   c #9AAE39",
"a#   c #9AAE3D",
"b#   c #22290D",
"c#   c #010306",
"d#   c #010209",
"e#   c #020004",
"f#   c #030201",
"g#   c #030100",
"h#   c #030009",
"i#   c #333C12",
"j#   c #AAC42F",
"k#   c #738429",
"l#   c #03020F",
"m#   c #4B591A",
"n#   c #A9C831",
"o#   c #A9C932",
"p#   c #576B1F",
"q#   c #263706",
"r#   c #91AB34",
"s#   c #92AC37",
"t#   c #202C0C",
"u#   c #6F8422",
"v#   c #A8BF33",
"w#   c #2B340C",
"x#   c #03010D",
"y#   c #516221",
"z#   c #AFC655",
"A#   c #95AE39",
"B#   c #202E09",
"C#   c #000204",
"D#   c #020102",
"E#   c #28360A",
"F#   c #7D8E2C",
"G#   c #040700",
"H#   c #03020C",
"I#   c #475520",
"J#   c #A3BD3C",
"K#   c #98AF3A",
"L#   c #2D3516",
"M#   c #010103",
"N#   c #0B0D05",
"O#   c #7E9627",
"P#   c #B0C833",
"Q#   c #4E5A17",
"R#   c #222B0B",
"S#   c #72852B",
"T#   c #A4BE35",
"U#   c #AFC544",
"V#   c #666F37",
"W#   c #171A0A",
"X#   c #93AB3A",
"Y#   c #A4BA2F",
"Z#   c #36400C",
"`#   c #040404",
" $   c #28310B",
".$   c #5C6C20",
"+$   c #7F922A",
"@$   c #93A833",
"#$   c #9CB92D",
"$$   c #90AA2C",
"%$   c #59691F",
"&$   c #222A07",
"*$   c #040501",
"=$   c #222D0D",
"-$   c #93AA3F",
";$   c #9DB03A",
">$   c #2C340D",
",$   c #000500",
"'$   c #0D1205",
")$   c #131A07",
"!$   c #0B1203",
"~$   c #010502",
"{$   c #020008",
"]$   c #010202",
"^$   c #212D0D",
"/$   c #94AE34",
"($   c #9FB435",
"_$   c #343F0C",
":$   c #040207",
"<$   c #020502",
"[$   c #2D4102",
"}$   c #A6BD33",
"|$   c #4F5B1D",
"1$   c #030701",
"2$   c #020201",
"3$   c #040502",
"4$   c #030505",
"5$   c #020100",
"6$   c #040102",
"7$   c #030007",
"8$   c #090C04",
"9$   c #16190A",
"0$   c #0A1301",
"a$   c #708727",
"b$   c #ACC836",
"c$   c #7B9223",
"d$   c #29300D",
"e$   c #7F9626",
"f$   c #94AB39",
"g$   c #212E0C",
"h$   c #020603",
"i$   c #101A01",
"j$   c #7A912E",
"k$   c #ADCB2F",
"l$   c #B0CD3A",
"m$   c #A6BD34",
"n$   c #728225",
"o$   c #0A0D03",
"p$   c #0C1101",
"q$   c #343D12",
"r$   c #6F8421",
"s$   c #94AB41",
"t$   c #202C0D",
"u$   c #0A1302",
"v$   c #7A902F",
"w$   c #B0CE37",
"x$   c #ABC33C",
"y$   c #8EA236",
"z$   c #677821",
"A$   c #425115",
"B$   c #2A3409",
"C$   c #151A07",
"D$   c #141A06",
"E$   c #1C2307",
"F$   c #2B330D",
"G$   c #43511B",
"H$   c #6C7E22",
"I$   c #ABC530",
"J$   c #92AC32",
"K$   c #314305",
"L$   c #6F8625",
"M$   c #ACCB30",
"N$   c #9CB330",
"O$   c #9CB432",
"P$   c #A1B935",
"Q$   c #A8BF36",
"R$   c #ADC632",
"                                                                                ",
"                                        . + @ #                                 ",
"                          $ % & * = - ; > , ' ) ! ~                             ",
"                      { ] ^ / ( _ _ : < : [ ( ( : } | 1 2                       ",
"                  3 4 5 6 [ 7 8 9 0 a b b c 8 d e 8 f g h i j                   ",
"                k l m n o p q q r s s t u v w x y z A B t C D E                 ",
"              F G [ H I J K L M N t 7 n O P P Q R S T U t < [ V W               ",
"            X Y _ Z `  ...+.@.7 [ #.$.; %.&.*.: : t =.-.;.S z : >.,.            ",
"          '.G < ).!.~.{.].P ^./.(._.:.<.[.}.|.1.2.3.4.5.6.7...8.[ 9.0.          ",
"        a.b.[ M c.d.e.J [ f.g.h.i.              j.k.l.( m.n.L x o.[ p.q.        ",
"        r.s.t.u.v.w.x.y.z.A.                        B.C.D.f E.F.c G.H.I.J.      ",
"      K.L.O M.b 7.N.y.O.P.                            Q.R.v S.T.U.R f V.W.      ",
"      X.a Y.c Z.`.[  +.+                    ++@+#+$+    %+&+[ *+=+-+;+>+,+      ",
"    '+)+_ !+0 ~+f {+]+                    ^+/+O (+_+:+    <+[+: }+n.|+: 1+2+    ",
"    3+4+5+b 6+7+8+9+                    0+a+: b+c+d+e+f+    g+h+7 n.r f i+j+    ",
"    k+( 8 r l+7 m+n+                  o+p+< 6.q+r+< s+t+    u+v+[ w+6+: [ x+    ",
"    * [ 9 R d _ y+z+                A+B+[ C+D+E+F+G+[ H+    I+J+[ < 6+c : K+    ",
"  L+M+[ q |+e N+O+                P+Q+[ L R+S+7.T+[ U+V+W+    X+Y+< [ Z+z `+    ",
"     @_ a T..@+@@@              #@Q+$@D.T.%@( L : &@*@        =@-@f c 5+n ;@>@  ",
"    ; : ,@t O ; '@            )@!@[ h+G+~@;+~@{@]@^@          <+/@f U.w _ (@_@  ",
"  :@> _ c u P <@[.          [@}@[ L  .;+Z+c |+S.|@1@          2@3@P 4@a [ 5@6@  ",
"  7@8@[ 9@w < 0@a@        ^+b@P y c@`.P 6+Y+b ;+_ d@e@        f@g@t *+T.( h@i@  ",
"  j@k@: 8 w f l@m@      n@o@( p@q@x 9 8.5+b r@T.].[ s@t@      u@v@8.( `.< w@x@  ",
"  y@z@: A@x Q _ B@      C@7 D@E+E@F@S+8 7 G@H@I@l+M [ J@K@    L@< 8.~.G@[ M@N@  ",
"    O@P@Q@y R@: S@T@    U@V@W@-.X@x ( Y@Z@: `@N |+r t._  #.#+#@#f N.##I@[ $#%#  ",
"    &#} 5+n *#=#-#;#    >#,#C '#Y._ )#!#~#{#_ ]#q a s ^#[ /#(#_#:#<#x.f [#}#    ",
"    |#1#: 2#3#4#n 5#6#    7#8#D.( 9#0#    a#b#[ t.|+L c#d#n [ e#f#g#h#< i#j#    ",
"      k#U.@.( r+l#: m#n#    o#p#q#r#        s#t#_ =+4@,@9@G._ r 6+c ( 6 u#      ",
"      v#w#S.z 7.x#l+6 y#%+      z#            A#B#[ C#6+c ,@c c s D#[ E#        ",
"        F#G#O H#Z+8 ..y.I#J#                    K#L#8 G.c c c c o.M#N#O#        ",
"        P#Q#[ Y.n.q  .=#[ R#S#T#                U#V#c : c c s c o.T.W#X#        ",
"          Y#Z#[ J `#>+U.*+f -# $.$+$@$  #$$$u@%$&$*$~@T.,@c c o.s s [ =$-$      ",
"            ;$>$_ G@L U.=+Q@O [ [ ,$'$)$3@!$~$( 7 {$9 6+s o.o.s s s ]$[ ^$/$    ",
"              ($_$[ M M n.T.|+G@R ;+P n z 7 7 R@:$<#g#c c H L 6+s s ]$<$[ [$    ",
"                }$|$1$P P q 2$L R c 3$4$'#H@0 a 5$6$7$( [ 8$9$[ ]$]$t.s+0$a$    ",
"                  b$c$d$D.[ f : H S+;+D.b r %@G@9 ( : w M+e$f$g$[ h$s+i$j$k$    ",
"                    l$m$n$1+o$[ : z n [ [ ( f _ s+p$q$r$      s$t$[ u$v$w$      ",
"                          x$y$z$A$B$;@C$D$E$F$G$H$}#I$          J$K$L$M$        ",
"                                    >@N$O$P$Q$R$                                ",
"                                                                                "};
#else
static const char * const logo_xpm[] = {
/* width height num_colors chars_per_pixel */
"21 16 213 2",
"     c white",
".    c #A3C511",
"+    c #A2C511",
"@    c #A2C611",
"#    c #A2C510",
"$    c #A2C513",
"%    c #A2C412",
"&    c #A2C413",
"*    c #A2C414",
"=    c #A2C515",
"-    c #A2C50F",
";    c #A3C510",
">    c #A2C410",
",    c #A2C411",
"'    c #A2C314",
")    c #A2C316",
"!    c #A2C416",
"~    c #A0C315",
"{    c #A1C313",
"]    c #A1C412",
"^    c #A2C40F",
"/    c #A1C410",
"(    c #A0C510",
"_    c #A0C511",
":    c #A1C414",
"<    c #9FC30E",
"[    c #98B51B",
"}    c #5F7609",
"|    c #5C6E0E",
"1    c #5B6E10",
"2    c #5C6C14",
"3    c #5A6E0A",
"4    c #839E16",
"5    c #A0C515",
"6    c #A0C513",
"7    c #A2C512",
"8    c #A1C512",
"9    c #A1C511",
"0    c #A1C50F",
"a    c #91AE12",
"b    c #505E11",
"c    c #1F2213",
"d    c #070606",
"e    c #040204",
"f    c #040306",
"g    c #15160F",
"h    c #2F3A0D",
"i    c #859F1B",
"j    c #A1C215",
"k    c #A0C50F",
"l    c #A1C510",
"m    c #A0C110",
"n    c #839C1B",
"o    c #1E240A",
"p    c #050205",
"q    c #030304",
"r    c #323917",
"s    c #556313",
"t    c #56680B",
"u    c #536609",
"v    c #4A561B",
"w    c #0B0D04",
"x    c #030208",
"y    c #090A05",
"z    c #5F6F18",
"A    c #A0C117",
"B    c #91AF10",
"C    c #1E2209",
"D    c #030205",
"E    c #17190D",
"F    c #7D981C",
"G    c #9ABA12",
"H    c #A3C411",
"I    c #A3C713",
"J    c #95B717",
"K    c #7F9A18",
"L    c #8FAE1B",
"M    c #394413",
"N    c #040305",
"O    c #090807",
"P    c #6C7E19",
"Q    c #A6C614",
"R    c #A1C411",
"S    c #64761F",
"T    c #030105",
"U    c #070707",
"V    c #728513",
"W    c #A2C40C",
"X    c #A2C70B",
"Y    c #89A519",
"Z    c #313B11",
"`    c #101409",
" .   c #586A19",
"..   c #97B620",
"+.   c #1B2207",
"@.   c #282D11",
"#.   c #A6C41B",
"$.   c #A1C413",
"%.   c #A3C512",
"&.   c #2E370B",
"*.   c #030108",
"=.   c #21260F",
"-.   c #A5C21A",
";.   c #A0C60D",
">.   c #6D841A",
",.   c #0F1007",
"'.   c #040207",
").   c #0E1009",
"!.   c #515F14",
"~.   c #A2C41B",
"{.   c #5E701B",
"].   c #030203",
"^.   c #0B0B04",
"/.   c #87A111",
"(.   c #A0C411",
"_.   c #A0C316",
":.   c #212907",
"<.   c #222C0B",
"[.   c #A3C516",
"}.   c #9CBE1A",
"|.   c #5E6F1B",
"1.   c #0E0F0B",
"2.   c #040205",
"3.   c #181B0D",
"4.   c #93AE25",
"5.   c #A0C610",
"6.   c #617715",
"7.   c #030306",
"8.   c #070704",
"9.   c #809818",
"0.   c #A1C415",
"a.   c #475416",
"b.   c #030309",
"c.   c #12170B",
"d.   c #91B01E",
"e.   c #5C721F",
"f.   c #05050B",
"g.   c #33371D",
"h.   c #0E0F08",
"i.   c #040405",
"j.   c #758921",
"k.   c #46511B",
"l.   c #030207",
"m.   c #131409",
"n.   c #9FB921",
"o.   c #859D21",
"p.   c #080809",
"q.   c #030305",
"r.   c #46521C",
"s.   c #8EB017",
"t.   c #627713",
"u.   c #4D5F17",
"v.   c #97B71D",
"w.   c #77901D",
"x.   c #151708",
"y.   c #0D0D0B",
"z.   c #0C0B08",
"A.   c #455216",
"B.   c #A5C616",
"C.   c #A0C114",
"D.   c #556118",
"E.   c #050307",
"F.   c #050407",
"G.   c #363E17",
"H.   c #5D7309",
"I.   c #A2BF28",
"J.   c #A2C417",
"K.   c #A4C620",
"L.   c #60701D",
"M.   c #030103",
"N.   c #030303",
"O.   c #809A1B",
"P.   c #A0C310",
"Q.   c #A0C410",
"R.   c #A3C415",
"S.   c #9CB913",
"T.   c #6F801F",
"U.   c #1A210A",
"V.   c #1D1E0D",
"W.   c #1D220F",
"X.   c #1E210F",
"Y.   c #0F0F07",
"Z.   c #0E1007",
"`.   c #090906",
" +   c #2B360E",
".+   c #97B813",
"++   c #A2C50E",
"@+   c #A5C517",
"#+   c #90AD20",
"$+   c #5D6C1A",
"%+   c #394115",
"&+   c #050704",
"*+   c #040304",
"=+   c #202807",
"-+   c #5E6B21",
";+   c #728D0C",
">+   c #65791D",
",+   c #29330F",
"'+   c #7A911D",
")+   c #A2C614",
"!+   c #A1C513",
"~+   c #A3C50E",
"{+   c #A3C414",
"]+   c #9CBD11",
"^+   c #95B40C",
"/+   c #94B50F",
"(+   c #95B510",
"_+   c #99B913",
":+   c #A0C414",
"<+   c #9ABC11",
"[+   c #A0C314",
"}+   c #A1C40F",
"|+   c #A3C513",
". + + @ + # # $ % & * = & - + + + + + # # ",
"; > , > # > > $ ' ) ! ~ { ] ^ , - > , > # ",
"+ + / ( _ : < [ } | 1 2 3 4 5 6 : 7 8 # # ",
"+ 9 # ( 0 a b c d e e e f g h i j 9 k l + ",
"+ + > m n o p q r s t u v w x y z A & # # ",
"# % k B C D E F G H I J K L M N O P Q ] , ",
"$ R > S T U V W , X Y Z `  ...+.T @.#.$.] ",
"% %.* &.*.=.-.;.> >.,.'.).!.~.{.].^./.R 7 ",
"7 (._.:.D <.[.}.|.1.2.2.3.4.5.6.7.8.9._ 8 ",
". % 0.a.b.c.d.e.f.N g.h.2.i.j.k.l.m.n.$ # ",
"; + ; o.p.q.r.s.t.u.v.w.x.2.y.z.].A.B.l : ",
"# # R C.D.E.F.G.H.I.J.K.L.2.M.M.N.O.P.; l ",
"# / Q.R.S.T.U.].8.V.W.X.Y.e Z.`.]. +.+++7 ",
"+ + 9 / ; @+#+$+%+&+e *+=+-+;+>+,+'+)+, # ",
"# + > % & !+~+{+]+^+/+(+_+) Q.:+<+[+$ R # ",
"7 + > }+# % k |+8 + > + * $ _ / , 7 8 ] - "};
#endif

static ImageIconProvider *imageIconProvider = 0;
static PixmapChooser *pixmapChooser = 0;
#endif

PixmapView::PixmapView( QWidget *parent )
    : QScrollView( parent )
{
    viewport()->setBackgroundMode( PaletteBase );
}

void PixmapView::setPixmap( const QPixmap &pix )
{
    pixmap = pix;
    resizeContents( pixmap.size().width(), pixmap.size().height() );
    viewport()->repaint( FALSE );
}

void PixmapView::drawContents( QPainter *p, int cx, int cy, int cw, int ch )
{
    p->fillRect( cx, cy, cw, ch, colorGroup().brush( QColorGroup::Base ) );
    p->drawPixmap( 0, 0, pixmap );
}

void PixmapView::previewUrl( const QUrl &u )
{
    if ( u.isLocalFile() ) {
      QString path = u.path();
      QPixmap pix( path );
      if ( !pix.isNull() )
          setPixmap( pix );
    } else {
      qWarning( "Previewing remot files not supported" );
    }
}

QStringList qChoosePixmaps( QWidget *parent )
{
    if ( !imageIconProvider && !QFileDialog::iconProvider() )
      QFileDialog::setIconProvider( ( imageIconProvider = new ImageIconProvider ) );

    QString filter;
    QString all = qApp->translate( "qChoosePixmap", "All Pixmaps (" );
    for ( uint i = 0; i < QImageIO::outputFormats().count(); i++ ) {
      filter += qApp->translate( "qChoosePixmap", "%1-Pixmaps (%2)\n" ).
              arg( QImageIO::outputFormats().at( i ) ).
              arg( "*." + QString( QImageIO::outputFormats().at( i ) ).lower() );
      all += "*." + QString( QImageIO::outputFormats().at( i ) ).lower() + ";";
    }
    filter.prepend( all + qApp->translate( "qChoosePixmap", ")\n" ) );
    filter += qApp->translate( "qChoosePixmap", "All Files (*)" );

    QFileDialog fd( QString::null, filter, parent, 0, TRUE );
    fd.setMode( QFileDialog::ExistingFiles );
    fd.setContentsPreviewEnabled( TRUE );
    PixmapView *pw = new PixmapView( &fd );
    fd.setContentsPreview( pw, pw );
    fd.setViewMode( QFileDialog::List );
    fd.setPreviewMode( QFileDialog::Contents );
    fd.setCaption( qApp->translate( "qChoosePixmap", "Choose Images" ) );
    if ( fd.exec() == QDialog::Accepted )
      return fd.selectedFiles();
    return QStringList();
}

QPixmap qChoosePixmap( QWidget *parent, FormWindow *fw, const QPixmap &old, QString *fn )
{
#if defined(DESIGNER)
    if ( !fw || fw->savePixmapInline() ) {
      if ( !imageIconProvider && !QFileDialog::iconProvider() )
          QFileDialog::setIconProvider( ( imageIconProvider = new ImageIconProvider ) );

      QString filter;
      QString all = i18n( "All Pixmaps" );
      all += " (";
      for ( uint i = 0; i < QImageIO::outputFormats().count(); i++ ) {
          filter += i18n( "%1-Pixmaps (%2)\n" ).
                 arg( QImageIO::outputFormats().at( i ) ).
                 arg( "*." + QString( QImageIO::outputFormats().at( i ) ).lower() );
          all += "*." + QString( QImageIO::outputFormats().at( i ) ).lower() + ";";
      }
      filter.prepend( all + ")\n" );
      filter += i18n( "All Files (*)" );

      QFileDialog fd( QString::null, filter, parent, 0, TRUE );
      fd.setContentsPreviewEnabled( TRUE );
      PixmapView *pw = new PixmapView( &fd );
      fd.setContentsPreview( pw, pw );
      fd.setViewMode( QFileDialog::List );
      fd.setPreviewMode( QFileDialog::Contents );
      fd.setCaption( i18n( "Choose Pixmap" ) );
      if ( fd.exec() == QDialog::Accepted ) {
          QPixmap pix( fd.selectedFile() );
          if ( fn )
            *fn = fd.selectedFile();
          MetaDataBase::setPixmapArgument( fw, pix.serialNumber(), fd.selectedFile() );
          return pix;
      }
    }
#ifndef KOMMANDER
    else if ( fw && fw->savePixmapInProject() ) {
      PixmapCollectionEditor dia( parent, 0, TRUE );
      dia.setProject( fw->project() );
      dia.setChooserMode( TRUE );
      dia.setCurrentItem( MetaDataBase::pixmapKey( fw, old.serialNumber() ) );
      if ( dia.exec() == QDialog::Accepted ) {
          QPixmap pix( fw->project()->pixmapCollection()->pixmap( dia.viewPixmaps->currentItem()->text() ) );
          MetaDataBase::setPixmapKey( fw, pix.serialNumber(), dia.viewPixmaps->currentItem()->text() );
          return pix;
      }
    }
#endif
    else {
      PixmapFunction dia( parent, 0, TRUE );
      QObject::connect( dia.helpButton, SIGNAL( clicked() ), MainWindow::self, SLOT( showDialogHelp() ) );
      dia.labelFunction->setText( fw->pixmapLoaderFunction() + "(" );
      dia.editArguments->setText( MetaDataBase::pixmapArgument( fw, old.serialNumber() ) );
      dia.editArguments->setFocus();
      if ( dia.exec() == QDialog::Accepted ) {
          QPixmap pix( PixmapChooser::loadPixmap( "image.xpm" ) );
          MetaDataBase::setPixmapArgument( fw, pix.serialNumber(), dia.editArguments->text() );
          return pix;
      }
    }
#else
    Q_UNUSED( parent );
    Q_UNUSED( fw );
    Q_UNUSED( old );
#endif
    return QPixmap();
}

ImageIconProvider::ImageIconProvider( QWidget *parent, const char *name )
    : QFileIconProvider( parent, name ), imagepm( PixmapChooser::loadPixmap( "image.xpm", PixmapChooser::Mini ) )
{
    fmts = QImage::inputFormats();
}

ImageIconProvider::~ImageIconProvider()
{
}

const QPixmap * ImageIconProvider::pixmap( const QFileInfo &fi )
{
    QString ext = fi.extension().upper();
    if ( fmts.contains( ext ) ) {
      return &imagepm;
    } else {
      return QFileIconProvider::pixmap( fi );
    }
}

PixmapChooser::PixmapChooser()
{
    // #### hardcoded at the moment
    miniPixDir = "pics/mini/";
    noSizePixDir = "pics/";
    smallPixDir = "pics/small/";
    largePixDir = "pics/large/";
}

QString PixmapChooser::pixmapPath( Size size ) const
{
    if ( size == Small )
      return smallPixDir;
    if ( size == Mini )
      return miniPixDir;
    if ( size == NoSize )
      return noSizePixDir;
    return largePixDir;
}

QPixmap PixmapChooser::loadPixmap( const QString &name, Size size )
{
#if defined(DESIGNER)
    if ( !pixmapChooser )
      pixmapChooser = new PixmapChooser;

    if ( name == "logo" )
      return QPixmap( logo_xpm );

    if ( name[ 0 ] == '/' || name[ 0 ] == '\\' || name[ 1 ] == ':' )
      return QPixmap( name );

    QString lookup;
    switch ( size ) {
    case Small:
      lookup = "small/";
      break;
    case Disabled:
      lookup = "small/disabled/";
      break;
    case Large:
      lookup = "large/";
      break;
    case Mini:
      lookup = "mini/";
      break;
    default:
      break;
    }

    QString lookup_png = lookup + QFileInfo( name ).baseName() + ".png";
    lookup += name;

    Embed *e = &embed_vec[ 0 ];
    while ( e->name ) {
      if ( QString( e->name ) == lookup ) {
          QImage img;
          img.loadFromData( (const uchar*)e->data, e->size );
          QPixmap pix;
          pix.convertFromImage( img );
          return pix;
      } else if ( QString( e->name ) == lookup_png ) {
          QImage img;
          img.loadFromData( (const uchar*)e->data, e->size );
          QPixmap pix;
          pix.convertFromImage( img );
          return pix;
      }
      e++;
    }

    // fallback
    return QPixmap( pixmapChooser->pixmapPath( size ) + name );
#else
    Q_UNUSED( name );
    Q_UNUSED( size );
    return QPixmap();
#endif
}
#include "pixmapchooser.moc"

Generated by  Doxygen 1.6.0   Back to index