diff options
Diffstat (limited to 'kommander/editor/pixmapchooser.cpp')
-rw-r--r-- | kommander/editor/pixmapchooser.cpp | 1105 |
1 files changed, 1105 insertions, 0 deletions
diff --git a/kommander/editor/pixmapchooser.cpp b/kommander/editor/pixmapchooser.cpp new file mode 100644 index 00000000..1a5a8535 --- /dev/null +++ b/kommander/editor/pixmapchooser.cpp @@ -0,0 +1,1105 @@ +/********************************************************************** +** 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" |