summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/zsafe/main.cpp12
-rw-r--r--noncore/apps/zsafe/opie-zsafe.control2
-rw-r--r--noncore/apps/zsafe/pics/zsafe/copy.xpm124
-rw-r--r--noncore/apps/zsafe/pics/zsafe/cut.xpm89
-rw-r--r--noncore/apps/zsafe/pics/zsafe/edit.xpm108
-rw-r--r--noncore/apps/zsafe/pics/zsafe/editdelete.xpm95
-rw-r--r--noncore/apps/zsafe/pics/zsafe/find.xpm130
-rw-r--r--noncore/apps/zsafe/pics/zsafe/folder_open.xpm103
-rw-r--r--noncore/apps/zsafe/pics/zsafe/help_icon.xpm119
-rw-r--r--noncore/apps/zsafe/pics/zsafe/new.xpm115
-rw-r--r--noncore/apps/zsafe/pics/zsafe/pass.xpm20
-rw-r--r--noncore/apps/zsafe/pics/zsafe/paste.xpm159
-rw-r--r--noncore/apps/zsafe/pics/zsafe/quit_icon.xpm120
-rw-r--r--noncore/apps/zsafe/pics/zsafe/save.xpm117
-rw-r--r--noncore/apps/zsafe/pics/zsafe/trash.xpm127
-rw-r--r--noncore/apps/zsafe/pics/zsafe/zsafe.pngbin1427 -> 0 bytes
-rw-r--r--noncore/apps/zsafe/pics/zsafe/zsafe.xpm306
-rw-r--r--noncore/apps/zsafe/zsafe.cpp247
-rw-r--r--noncore/apps/zsafe/zsafe.h15
19 files changed, 80 insertions, 1928 deletions
diff --git a/noncore/apps/zsafe/main.cpp b/noncore/apps/zsafe/main.cpp
index 6dfd455..3d818f9 100644
--- a/noncore/apps/zsafe/main.cpp
+++ b/noncore/apps/zsafe/main.cpp
@@ -1,31 +1,19 @@
1/* 1/*
2** Author: Carsten Schneider <CarstenSchneider@t-online.de> 2** Author: Carsten Schneider <CarstenSchneider@t-online.de>
3** 3**
4** $Id$ 4** $Id$
5** 5**
6** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html 6** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html
7*/ 7*/
8 8
9 9
10#include "zsafe.h" 10#include "zsafe.h"
11 11
12/* OPIE */ 12/* OPIE */
13#include <opie2/odebug.h> 13#include <opie2/odebug.h>
14 14
15/* QT */ 15/* QT */
16#include <opie2/oapplicationfactory.h> 16#include <opie2/oapplicationfactory.h>
17 17
18void suspend (int signum)
19{
20 printf ("Suspend signal %d received\n", signum);
21}
22
23void resume (int signum)
24{
25 printf ("Resume signal %d received\n", signum);
26 zs->resume(signum);
27}
28
29
30OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<ZSafe> ) 18OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<ZSafe> )
31 19
diff --git a/noncore/apps/zsafe/opie-zsafe.control b/noncore/apps/zsafe/opie-zsafe.control
index 6288fac..a00818f 100644
--- a/noncore/apps/zsafe/opie-zsafe.control
+++ b/noncore/apps/zsafe/opie-zsafe.control
@@ -1,9 +1,9 @@
1Package: opie-zsafe 1Package: opie-zsafe
2Files: bin/zsafe apps/Applications/zsafe.desktop pics/zsafe/*.png 2Files: bin/zsafe apps/Applications/zsafe.desktop pics/zsafe/*.png
3Priority: optional 3Priority: optional
4Section: opie/applications 4Section: opie/applications
5Version: $QPE_VERSION$EXTRAVERSION 5Version: $QPE_VERSION$EXTRAVERSION
6Architecture: arm 6Architecture: arm
7Depends: task-opie-minimal, libopieui2 7Depends: task-opie-minimal, libopiecore2, libopieui2
8Maintainer: Carsten Schneider <zcarsten@gmx.net> 8Maintainer: Carsten Schneider <zcarsten@gmx.net>
9Description: This is a password manager program for Opie. 9Description: This is a password manager program for Opie.
diff --git a/noncore/apps/zsafe/pics/zsafe/copy.xpm b/noncore/apps/zsafe/pics/zsafe/copy.xpm
deleted file mode 100644
index 03a143f..0000000
--- a/noncore/apps/zsafe/pics/zsafe/copy.xpm
+++ b/dev/null
@@ -1,124 +0,0 @@
1/* XPM */
2static char * copy_xpm[] = {
3"14 14 107 2",
4 " c None",
5 ". c #C9D1DA",
6 "+ c #CED5DD",
7 "@ c #D0D8DF",
8 "# c #CED6DE",
9 "$ c #A6B3C3",
10 "% c #8B9BB1",
11 "& c #C4CDD7",
12 "* c #E0E5EA",
13 "= c #E3E7EC",
14 "- c #D7DEE4",
15 "; c #D7DDE4",
16 "> c #ADBAC8",
17 ", c #9EADBD",
18 "' c #8394AB",
19 ") c #E2E6EB",
20 "! c #E6EAED",
21 "~ c #DDE3E8",
22 "{ c #C9D2DA",
23 "] c #B9C4CF",
24 "^ c #94A3B5",
25 "/ c #A0A2B0",
26 "( c #C0BBC6",
27 "_ c #D8DEE4",
28 ": c #EAEEF0",
29 "< c #DBE1E6",
30 "[ c #D5DCE2",
31 "} c #C0C9D4",
32 "| c #AFBAC7",
33 "1 c #9EA1AF",
34 "2 c #BEBAC2",
35 "3 c #D2CDD9",
36 "4 c #B2AABA",
37 "5 c #D0D7DF",
38 "6 c #E8ECEF",
39 "7 c #CED6DD",
40 "8 c #C3CCD6",
41 "9 c #C1C9D4",
42 "0 c #C0CAD3",
43 "a c #99A1AF",
44 "b c #B9B6BD",
45 "c c #C5BECB",
46 "d c #B2A7BB",
47 "e c #9C92A5",
48 "f c #CDD4DD",
49 "g c #E7ECEF",
50 "h c #DCE2E7",
51 "i c #CBD3DB",
52 "j c #C6CFD9",
53 "k c #C7D0D8",
54 "l c #9FA8B7",
55 "m c #B2B0B9",
56 "n c #CBC5CF",
57 "o c #CFC7D6",
58 "p c #B5ABBE",
59 "q c #DEE3E8",
60 "r c #CDD5DD",
61 "s c #CAD2DB",
62 "t c #C7CFD9",
63 "u c #D2D8E0",
64 "v c #AFB8C5",
65 "w c #A6A7B1",
66 "x c #BEB9C4",
67 "y c #D7D1DE",
68 "z c #BBB2C4",
69 "A c #DBE1E7",
70 "B c #DAE0E6",
71 "C c #D2D9E0",
72 "D c #C5CCD7",
73 "E c #A1ABBB",
74 "F c #9C9FAD",
75 "G c #B4AFBA",
76 "H c #D5D0DC",
77 "I c #BDB4C5",
78 "J c #CBD3DC",
79 "K c #D5DBE2",
80 "L c #C6CED8",
81 "M c #B3BBC8",
82 "N c #A5ADBA",
83 "O c #9EA5B4",
84 "P c #A9ABB9",
85 "Q c #B5B2BE",
86 "R c #D9D4DF",
87 "S c #BEB6C6",
88 "T c #9CA9BC",
89 "U c #B0B2C0",
90 "V c #C9C9D0",
91 "W c #C9C5CE",
92 "X c #D1CCD6",
93 "Y c #D5D0DB",
94 "Z c #D8D2DE",
95 "` c #E0DBE6",
96 " .c #BFB6C7",
97 "..c #DBD6E0",
98 "+.c #F2F1F4",
99 "@.c #E9E6ED",
100 "#.c #E9E5ED",
101 "$.c #E8E3EC",
102 "%.c #E5E1EA",
103 "&.c #E8E4ED",
104 "*.c #C0B8C8",
105 "=.c #BDB5C6",
106 "-.c #C6BFCC",
107 ";.c #C3BBCA",
108 ">.c #C2BAC9",
109 ",.c #C1B8C8",
110 "'.c #B0A6B9",
111" ",
112" . + @ # $ % ",
113"& * = - ; > , ' ",
114" ) ! - ~ { ] ^ / ( ",
115" _ : < [ . } | 1 2 3 4 ",
116" 5 6 < 7 8 9 0 a b c d e ",
117" f g h i . j k l m n o p ",
118" q q r s t u v w x y z ",
119" _ ! A B C D E F G H I ",
120" J K L M N O P Q ( R S ",
121" T U V W X Y Z ` . ",
122" ..+.@.#.$.%.&.*. ",
123" =.-.;.>.>.,.*.'. ",
124" "};
diff --git a/noncore/apps/zsafe/pics/zsafe/cut.xpm b/noncore/apps/zsafe/pics/zsafe/cut.xpm
deleted file mode 100644
index cecd174..0000000
--- a/noncore/apps/zsafe/pics/zsafe/cut.xpm
+++ b/dev/null
@@ -1,89 +0,0 @@
1/* XPM */
2static char * cut_xpm[] = {
3"14 14 72 1",
4 " c None",
5 ".c #FDD900",
6 "+c #FBE601",
7 "@c #DD8000",
8 "#c #FDDC00",
9 "$c #EDDB02",
10 "%c #CFC305",
11 "&c #EE9600",
12 "*c #FEE600",
13 "=c #C9A607",
14 "-c #897905",
15 ";c #EC9300",
16 ">c #FCDA00",
17 ",c #DAB905",
18 "'c #AC9A06",
19 ")c #917000",
20 "!c #DFC503",
21 "~c #D5B606",
22 "{c #CF8B04",
23 "]c #F1C201",
24 "^c #EADA03",
25 "/c #F39900",
26 "(c #DCB502",
27 "_c #BBA105",
28 ":c #AD9705",
29 "<c #E49301",
30 "[c #D9961E",
31 "}c #FBB509",
32 "|c #ED8B0A",
33 "1c #DDBB05",
34 "2c #C3B204",
35 "3c #E3D400",
36 "4c #F09E00",
37 "5c #7EA5CE",
38 "6c #C5CFDB",
39 "7c #7393B6",
40 "8c #D07C09",
41 "9c #F7AF00",
42 "0c #F2A300",
43 "ac #B16200",
44 "bc #C7E5F5",
45 "cc #89C0E7",
46 "dc #BCD8FA",
47 "ec #4798E4",
48 "fc #35201A",
49 "gc #862F00",
50 "hc #702A00",
51 "ic #C1E0F3",
52 "jc #A0D3F6",
53 "kc #5CA0DD",
54 "lc #BED8FA",
55 "mc #4899E6",
56 "nc #AFD3ED",
57 "oc #A1D3F6",
58 "pc #3E80BF",
59 "qc #3578B9",
60 "rc #BFD8F8",
61 "sc #4E99E1",
62 "tc #81B6E7",
63 "uc #4385C4",
64 "vc #4479A8",
65 "wc #C1D9F8",
66 "xc #4F99E1",
67 "yc #367DC6",
68 "zc #4B86BB",
69 "Ac #BED9F9",
70 "Bc #5E9CD6",
71 "Cc #5592C8",
72 "Dc #60A6EE",
73 "Ec #2F5475",
74 "Fc #1D7DD3",
75 "Gc #11579E",
76" .+@ ",
77" #$%& ",
78" *=-; ",
79" >,';)!~{ ",
80" ]^/(_:< ",
81" [}|1234 ",
82" 567890a ",
83" bcdefgh ",
84" ijklm ",
85" nopqrs ",
86" tu vwx ",
87" y zAB ",
88" CDE ",
89" FG "};
diff --git a/noncore/apps/zsafe/pics/zsafe/edit.xpm b/noncore/apps/zsafe/pics/zsafe/edit.xpm
deleted file mode 100644
index 50fba51..0000000
--- a/noncore/apps/zsafe/pics/zsafe/edit.xpm
+++ b/dev/null
@@ -1,108 +0,0 @@
1/* XPM */
2static char * edit_xpm[] = {
3"14 14 91 1",
4 " c None",
5 ".c #D6DFED",
6 "+c #E5EAF4",
7 "@c #E3EAF4",
8 "#c #DAE3F2",
9 "$c #C5CEDC",
10 "%c #E4EAF4",
11 "&c #FFFFFF",
12 "*c #FBFEFF",
13 "=c #EDF3FD",
14 "-c #E5CE80",
15 ";c #F8CF69",
16 ">c #EBB785",
17 ",c #FEFFFF",
18 "'c #F3F1ED",
19 ")c #F8D625",
20 "!c #FEB006",
21 "~c #E99141",
22 "{c #F8E59F",
23 "]c #FDCD09",
24 "^c #FC9E10",
25 "/c #C49277",
26 "(c #9DADC9",
27 "_c #FEFAF3",
28 ":c #FCDB44",
29 "<c #FEC219",
30 "[c #EF9234",
31 "}c #C1BFCC",
32 "|c #A7B6D0",
33 "1c #FDEDBB",
34 "2c #FDD82E",
35 "3c #FEB832",
36 "4c #DAA27B",
37 "5c #CCD8EB",
38 "6c #AFBED6",
39 "7c #FEFDFB",
40 "8c #FBE072",
41 "9c #FED342",
42 "0c #F6A845",
43 "ac #D7D0D7",
44 "bc #D6E0F1",
45 "cc #B6C3D9",
46 "dc #F7EED3",
47 "ec #FDE35E",
48 "fc #FECD5C",
49 "gc #E4B184",
50 "hc #E1E9F7",
51 "ic #DCE4F3",
52 "jc #B5C1D7",
53 "kc #FCFEFF",
54 "lc #F7DEAD",
55 "mc #FEE483",
56 "nc #F6C471",
57 "oc #DECDC9",
58 "pc #D7DEEC",
59 "qc #CDD4E5",
60 "rc #AAB5CB",
61 "sc #FBFFFF",
62 "tc #ECD3B7",
63 "uc #F7DFC0",
64 "vc #D6BAA9",
65 "wc #D3D7E4",
66 "xc #CFD6E5",
67 "yc #CCD3E3",
68 "zc #ABB6CC",
69 "Ac #FAFEFF",
70 "Bc #C8B7AF",
71 "Cc #C2AEA9",
72 "Dc #D7DCE6",
73 "Ec #D4DAE7",
74 "Fc #D0D7E6",
75 "Gc #D1D8E7",
76 "Hc #B5C0D6",
77 "Ic #F9FEFF",
78 "Jc #ECE9EB",
79 "Kc #EAF0F7",
80 "Lc #E6ECF6",
81 "Mc #E0E6F3",
82 "Nc #E2E9F6",
83 "Oc #E2EAF8",
84 "Pc #BECADF",
85 "Qc #CDD7E6",
86 "Rc #D8DEE7",
87 "Sc #D4DDE7",
88 "Tc #D2DBE7",
89 "Uc #D0D9E7",
90 "Vc #CED7E6",
91 "Wc #CAD4E5",
92 "Xc #C6D1E3",
93 "Yc #C4CFE2",
94 "Zc #ACB9D1",
95".+++@#$ ",
96"%&&&*=-;> ",
97"%&&&,')!~ ",
98"%&&&&{]^/( ",
99"%&&&_:<[}| ",
100"%&&&123456 ",
101"%&&7890abc ",
102"%&&defghij ",
103"%&klmnopqr ",
104"%&stuvwxyz ",
105"%&ABCDEFGH ",
106"%,IJKLMNOP ",
107"QRSTUVWXYZ ",
108" "};
diff --git a/noncore/apps/zsafe/pics/zsafe/editdelete.xpm b/noncore/apps/zsafe/pics/zsafe/editdelete.xpm
deleted file mode 100644
index 675b4eb..0000000
--- a/noncore/apps/zsafe/pics/zsafe/editdelete.xpm
+++ b/dev/null
@@ -1,95 +0,0 @@
1/* XPM */
2static char * editdelete_xpm[] = {
3"14 14 78 1",
4 " c None",
5 ".c #000000",
6 "+c #201313",
7 "@c #764747",
8 "#c #795353",
9 "$c #150D0D",
10 "%c #261818",
11 "&c #8B5F5F",
12 "*c #E08383",
13 "=c #7E3F3F",
14 "-c #946C6C",
15 ";c #E79696",
16 ">c #824141",
17 ",c #764848",
18 "'c #D37171",
19 ")c #CF6767",
20 "!c #783C3C",
21 "~c #020101",
22 "{c #040303",
23 "]c #E89B9B",
24 "^c #CA6969",
25 "/c #944A4A",
26 "(c #412121",
27 "_c #7F3F3F",
28 ":c #CF6868",
29 "<c #CD6666",
30 "[c #D46C6C",
31 "}c #683838",
32 "|c #795757",
33 "1c #E99A9A",
34 "2c #8A4444",
35 "3c #3D1E1E",
36 "4c #763B3B",
37 "5c #D46D6D",
38 "6c #CD6969",
39 "7c #D77878",
40 "8c #DB8383",
41 "9c #C76868",
42 "0c #8F4646",
43 "ac #3B1D1D",
44 "bc #683737",
45 "cc #D77777",
46 "dc #D06C6C",
47 "ec #CE6666",
48 "fc #AB5555",
49 "gc #361B1B",
50 "hc #785858",
51 "ic #DB8282",
52 "jc #CE6767",
53 "kc #C86363",
54 "lc #B95C5C",
55 "mc #572C2C",
56 "nc #926B6B",
57 "oc #EA9B9B",
58 "pc #C86868",
59 "qc #AB5454",
60 "rc #C86464",
61 "sc #C66363",
62 "tc #723939",
63 "uc #956C6C",
64 "vc #C76363",
65 "wc #D06868",
66 "xc #CA6565",
67 "yc #713939",
68 "zc #785050",
69 "Ac #E79595",
70 "Bc #3C1E1E",
71 "Cc #743A3A",
72 "Dc #BD5E5E",
73 "Ec #A15151",
74 "Fc #4E2727",
75 "Gc #884444",
76 "Hc #964A4A",
77 "Ic #3D1F1F",
78 "Jc #713838",
79 "Kc #A25050",
80 "Lc #542929",
81 "Mc #4B2525",
82" . . ",
83" +@. .#$ ",
84" %&*=. .-;>. ",
85".,*')!~{-]^/(~",
86" ._:<[}|1^23. ",
87" .4567890a. ",
88" .bcdefg. ",
89" .hijklm. ",
90" .nopqlrst. ",
91" .u]^0gmvwxy. ",
92".zA^2B.~CxDEF.",
93" .GHI. .JKL. ",
94" .(. .M. ",
95" . . "};
diff --git a/noncore/apps/zsafe/pics/zsafe/find.xpm b/noncore/apps/zsafe/pics/zsafe/find.xpm
deleted file mode 100644
index 9d67a41..0000000
--- a/noncore/apps/zsafe/pics/zsafe/find.xpm
+++ b/dev/null
@@ -1,130 +0,0 @@
1/* XPM */
2static char * find_xpm[] = {
3"14 14 113 2",
4 " c None",
5 ". c #A5B4CE",
6 "+ c #A0BFDF",
7 "@ c #A8CAE7",
8 "# c #A6C7E3",
9 "$ c #AABED6",
10 "% c #6A849D",
11 "& c #95AFD1",
12 "* c #96CCF2",
13 "= c #A8E0FA",
14 "- c #ACE4FB",
15 "; c #A9E1FB",
16 "> c #ABE2FA",
17 ", c #AACADF",
18 "' c #9DB3C5",
19 ") c #87A0B5",
20 "! c #748CA3",
21 "~ c #8E9EBD",
22 "{ c #93CAF1",
23 "] c #B5ECFC",
24 "^ c #CCFAFE",
25 "/ c #BFF1FD",
26 "( c #B8EEFC",
27 "_ c #B4EBFC",
28 ": c #BDF1FC",
29 "< c #A8C1D2",
30 "[ c #728FA8",
31 "} c #53728F",
32 "| c #6B849C",
33 "1 c #88A7CC",
34 "2 c #A4DDFA",
35 "3 c #C8F8FE",
36 "4 c #E8FFFF",
37 "5 c #CDF5FE",
38 "6 c #CCF9FE",
39 "7 c #CAFCFE",
40 "8 c #CCFDFF",
41 "9 c #BCE2E9",
42 "0 c #4F6E8B",
43 "a c #3C5A79",
44 "b c #76899F",
45 "c c #8EB0D2",
46 "d c #A8E1FB",
47 "e c #B6EBFC",
48 "f c #C8F3FD",
49 "g c #CAF9FE",
50 "h c #DBFFFF",
51 "i c #DAFFFF",
52 "j c #DCFFFF",
53 "k c #CEEEF1",
54 "l c #809FC4",
55 "m c #A7E0FA",
56 "n c #B1E8FB",
57 "o c #C4F5FE",
58 "p c #D7FEFF",
59 "q c #DEFFFF",
60 "r c #E7FFFF",
61 "s c #EBFFFF",
62 "t c #CCE0E7",
63 "u c #6A7DA1",
64 "v c #A4DBF6",
65 "w c #ACE5FB",
66 "x c #C0F5FD",
67 "y c #D4FFFF",
68 "z c #E2FFFF",
69 "A c #F0FFFF",
70 "B c #F7FEFF",
71 "C c #AEB7C6",
72 "D c #7C99BA",
73 "E c #B1E6F7",
74 "F c #C1F5FE",
75 "G c #D2FFFF",
76 "H c #E0FFFF",
77 "I c #ECFEFE",
78 "J c #C6CED8",
79 "K c #898AA2",
80 "L c #768CAA",
81 "M c #A0C4D5",
82 "N c #B7DCE4",
83 "O c #B9D4DD",
84 "P c #9EABBC",
85 "Q c #8789A1",
86 "R c #A7A5B2",
87 "S c #C89F68",
88 "T c #CF8A23",
89 "U c #B48549",
90 "V c #EFD28D",
91 "W c #ECB34D",
92 "X c #C37F21",
93 "Y c #8197AC",
94 "Z c #617C97",
95 "` c #CCA153",
96 " .c #F8E19E",
97 "..c #EAB24E",
98 "+.c #B77622",
99 "@.c #A4B9CA",
100 "#.c #7592AB",
101 "$.c #7A93AA",
102 "%.c #C29851",
103 "&.c #F8DF9B",
104 "*.c #E9B351",
105 "=.c #A26825",
106 "-.c #7592AA",
107 ";.c #51708D",
108 ">.c #405E7D",
109 ",.c #879DB1",
110 "'.c #BB9353",
111 ").c #E2C586",
112 "!.c #977964",
113 "~.c #7D94AA",
114 "{.c #3D5C7A",
115 "].c #5D758E",
116 "^.c #87644D",
117" . + @ # $ % ",
118" & * = - ; > , ' ) ! ",
119"~ { ] ^ / ( _ : < [ } | ",
120"1 2 3 4 5 6 7 8 9 0 a b ",
121"c d e f g h i j k ",
122"l m n o p q r s t ",
123"u v w x y z A B C ",
124" D E F G H I J K ",
125" L M N O P Q R S T ",
126" U V W X ",
127" Y Z ` ...+. ",
128"@.#.$. %.&.*.=.",
129"-.;.>.,. '.).!.",
130"~.{.]. ^. "};
diff --git a/noncore/apps/zsafe/pics/zsafe/folder_open.xpm b/noncore/apps/zsafe/pics/zsafe/folder_open.xpm
deleted file mode 100644
index 10b4d6c..0000000
--- a/noncore/apps/zsafe/pics/zsafe/folder_open.xpm
+++ b/dev/null
@@ -1,103 +0,0 @@
1/* XPM */
2static char * folder_open_xpm[] = {
3"14 14 86 1",
4 " c None",
5 ".c #E9EAF3",
6 "+c #DCDFEE",
7 "@c #EDEEF5",
8 "#c #ECECF4",
9 "$c #EAEAF3",
10 "%c #879ED4",
11 "&c #A2CAF6",
12 "*c #F1F2F7",
13 "=c #F2F2F8",
14 "-c #E6E6F0",
15 ";c #CFD4EA",
16 ">c #5880D6",
17 ",c #D1E6FC",
18 "'c #CFE4FF",
19 ")c #C3DAF8",
20 "!c #EFF2F7",
21 "~c #F8F8FB",
22 "{c #F3F2F7",
23 "]c #C2D1EB",
24 "^c #9FBCE8",
25 "/c #6FA2EA",
26 "(c #5197F1",
27 "_c #0045C7",
28 ":c #C3DFFB",
29 "<c #CAE1FF",
30 "[c #E0E6EE",
31 "}c #FEFEFE",
32 "|c #C1D5EE",
33 "1c #9BC6F7",
34 "2c #65A7F8",
35 "3c #5A9FF7",
36 "4c #3E7DE3",
37 "5c #002DB1",
38 "6c #ABD1F7",
39 "7c #C4DEFF",
40 "8c #BACDEA",
41 "9c #CEE3F6",
42 "0c #B2D4F3",
43 "ac #9FCBF7",
44 "bc #75B3FA",
45 "cc #589CF6",
46 "dc #3E78E2",
47 "ec #0C39BE",
48 "fc #002CAE",
49 "gc #C1DCFF",
50 "hc #9EC8F8",
51 "ic #C5E4F8",
52 "jc #AED9FD",
53 "kc #87BEFA",
54 "lc #5996F1",
55 "mc #336FE3",
56 "nc #2054CF",
57 "oc #6279C5",
58 "pc #5E71B0",
59 "qc #AFD0FA",
60 "rc #91C2F8",
61 "sc #ABD4F8",
62 "tc #98C9FA",
63 "uc #6FA8F4",
64 "vc #518BEB",
65 "wc #7596DB",
66 "xc #B2B6CF",
67 "yc #B4B4C6",
68 "zc #4C63A8",
69 "Ac #97BFF1",
70 "Bc #8BBEF7",
71 "Cc #94C9FE",
72 "Dc #7EB6F6",
73 "Ec #9DBDEE",
74 "Fc #CBD0E0",
75 "Gc #CBCBD8",
76 "Hc #9BA4C4",
77 "Ic #4A63A7",
78 "Jc #91C1F6",
79 "Kc #BBDCFC",
80 "Lc #E0E7F1",
81 "Mc #E3E2E9",
82 "Nc #B9C1D7",
83 "Oc #6178B6",
84 "Pc #9FC5F0",
85 "Qc #FAFAFB",
86 "Rc #DAE0EC",
87 "Sc #7C99CC",
88 "Tc #82AFE6",
89 "Uc #9CBCE4",
90" ",
91" .+ ",
92" @#$% ",
93" & *=#-; > ",
94" ,')!~{]^/(_ ",
95" :<[}~|12345 ",
96" 67890abcdef ",
97" ghijklmnop ",
98" qrstuvwxyz ",
99" ABCDEFGHI ",
100" JKLMNO ",
101" PQRS ",
102" TU ",
103" "};
diff --git a/noncore/apps/zsafe/pics/zsafe/help_icon.xpm b/noncore/apps/zsafe/pics/zsafe/help_icon.xpm
deleted file mode 100644
index 58e6312..0000000
--- a/noncore/apps/zsafe/pics/zsafe/help_icon.xpm
+++ b/dev/null
@@ -1,119 +0,0 @@
1/* XPM */
2static char * help_icon_xpm[] = {
3"14 14 102 2",
4 " c None",
5 ". c #FBC4AC",
6 "+ c #FBBA9E",
7 "@ c #FEA391",
8 "# c #FDEAE2",
9 "$ c #FDFAF9",
10 "% c #FDFDFD",
11 "& c #FFBEBC",
12 "* c #FE8473",
13 "= c #F64A1B",
14 "- c #FF9687",
15 "; c #FFB7B6",
16 "> c #FDEFEF",
17 ", c #FCFCFC",
18 "' c #FBFBFB",
19 ") c #FBF5F5",
20 "! c #FDCDCD",
21 "~ c #FECCCC",
22 "{ c #FFB2AF",
23 "] c #EE502D",
24 "^ c #FE8F7C",
25 "/ c #FFABAA",
26 "( c #FEBFBF",
27 "_ c #F9B6B5",
28 ": c #EEC9BA",
29 "< c #DAA28A",
30 "[ c #DD7D62",
31 "} c #EF604C",
32 "| c #F7A9A8",
33 "1 c #FDBFBF",
34 "2 c #FEA9A7",
35 "3 c #D25735",
36 "4 c #FF877F",
37 "5 c #FEAAAA",
38 "6 c #F79696",
39 "7 c #E0533A",
40 "8 c #E13A19",
41 "9 c #F4BBBA",
42 "0 c #FBF2F2",
43 "a c #ECC4B8",
44 "b c #FDDCDB",
45 "c c #FAC5C5",
46 "d c #ED7061",
47 "e c #E5B9AA",
48 "f c #F8F8F8",
49 "g c #F9F4F2",
50 "h c #FBC3AB",
51 "i c #F6F6F6",
52 "j c #D9A189",
53 "k c #D7947E",
54 "l c #F5F5F5",
55 "m c #FAFAFA",
56 "n c #AE6A5A",
57 "o c #F4F4F4",
58 "p c #DC9C82",
59 "q c #D28470",
60 "r c #F3F0F0",
61 "s c #F9F9F9",
62 "t c #A66558",
63 "u c #FAF5F3",
64 "v c #F4F3F3",
65 "w c #E9917E",
66 "x c #D02C21",
67 "y c #EE6868",
68 "z c #F68988",
69 "A c #FBAF9E",
70 "B c #F76D6D",
71 "C c #E83838",
72 "D c #DB2908",
73 "E c #C11C08",
74 "F c #E03837",
75 "G c #F14040",
76 "H c #DB2622",
77 "I c #F6390B",
78 "J c #FC2926",
79 "K c #F12B2B",
80 "L c #E22525",
81 "M c #DA5748",
82 "N c #D6937D",
83 "O c #D2917D",
84 "P c #D69C91",
85 "Q c #DC2B2B",
86 "R c #EA2B2B",
87 "S c #F32726",
88 "T c #900D05",
89 "U c #ED2A06",
90 "V c #F91614",
91 "W c #F01616",
92 "X c #EDAAAA",
93 "Y c #ECECEC",
94 "Z c #EFEEEE",
95 "` c #EF7979",
96 " .c #F11514",
97 "..c #A80D06",
98 "+.c #D22301",
99 "@.c #EB1407",
100 "#.c #F5E0DF",
101 "$.c #F3EFEE",
102 "%.c #D8A6A1",
103 "&.c #900C04",
104 "*.c #AE6959",
105 "=.c #A66658",
106" . + ",
107" @ # $ % % & * = ",
108" - ; > , ' ) ! ~ { ] ",
109" ^ / ( _ : < [ } | 1 2 3 ",
110" 4 5 6 7 8 9 0 a ",
111" b c d e f g ",
112"h ' i j k l m n ",
113"+ m o p q r s t ",
114" u v w x y z ",
115" A B C D E F G H ",
116" I J K L M N O P Q R S T ",
117" U V W X Y Y Z ` ... ",
118" +.@.#.i i $.%.&. ",
119" *.=. "};
diff --git a/noncore/apps/zsafe/pics/zsafe/new.xpm b/noncore/apps/zsafe/pics/zsafe/new.xpm
deleted file mode 100644
index d5f7e25..0000000
--- a/noncore/apps/zsafe/pics/zsafe/new.xpm
+++ b/dev/null
@@ -1,115 +0,0 @@
1/* XPM */
2static char * new_xpm[] = {
3"14 14 98 2",
4 " c None",
5 ". c #CBD5E6",
6 "+ c #E1E6EF",
7 "@ c #E0E6EF",
8 "# c #DBE2EE",
9 "$ c #D1DAE9",
10 "% c #BCC7DC",
11 "& c #D9E1EE",
12 "* c #FFFFFF",
13 "= c #FDFFFF",
14 "- c #F2F7FE",
15 "; c #E4EAF5",
16 "> c #C8D2E4",
17 ", c #D3DCEB",
18 "' c #FEFFFF",
19 ") c #F7FAFF",
20 "! c #EAEEF8",
21 "~ c #CDD6E7",
22 "{ c #EAEEF5",
23 "] c #CCD5E5",
24 "^ c #F9FCFF",
25 "/ c #EDF2FB",
26 "( c #D9E1EF",
27 "_ c #B6C2D6",
28 ": c #A3B2CB",
29 "< c #94A5C0",
30 "[ c #FAFDFF",
31 "} c #F0F4FB",
32 "| c #EAC99F",
33 "1 c #C7C9D0",
34 "2 c #B7C4DA",
35 "3 c #A1B0CA",
36 "4 c #F8FBFF",
37 "5 c #ECE6E2",
38 "6 c #F7C05D",
39 "7 c #D2AE82",
40 "8 c #C2CDE0",
41 "9 c #AAB8CF",
42 "0 c #E9EFF8",
43 "a c #E8C9A0",
44 "b c #FDEA5A",
45 "c c #EABA5D",
46 "d c #CACED8",
47 "e c #B1BDD3",
48 "f c #FFFAF3",
49 "g c #FEE0AF",
50 "h c #F5D39F",
51 "i c #F1CA86",
52 "j c #F7CB5D",
53 "k c #FFFE4C",
54 "l c #FAE75A",
55 "m c #E1AE69",
56 "n c #CBA57C",
57 "o c #FFFAF2",
58 "p c #F9C671",
59 "q c #FEDF57",
60 "r c #FFF24A",
61 "s c #FFF643",
62 "t c #FFF838",
63 "u c #FFF83D",
64 "v c #FEF247",
65 "w c #FBE248",
66 "x c #E19226",
67 "y c #FEFEFF",
68 "z c #F2F1F0",
69 "A c #F0C47A",
70 "B c #FBCF23",
71 "C c #FFE324",
72 "D c #FDD426",
73 "E c #D6932B",
74 "F c #FDFEFF",
75 "G c #F1F5FD",
76 "H c #ECF0F6",
77 "I c #F3AB31",
78 "J c #FFCC10",
79 "K c #FFCB10",
80 "L c #F6AD11",
81 "M c #AC8C77",
82 "N c #FAFCFE",
83 "O c #EFF4FC",
84 "P c #ECE9E9",
85 "Q c #F6A113",
86 "R c #FDA902",
87 "S c #F2960B",
88 "T c #F8A403",
89 "U c #FAA402",
90 "V c #B2805C",
91 "W c #C3CEE0",
92 "X c #D1D8E3",
93 "Y c #CAD3E1",
94 "Z c #D1BEB1",
95 "` c #EE8208",
96 " .c #C77D33",
97 "..c #AF9A8F",
98 "+.c #B98B69",
99 "@.c #DA7614",
100 "#.c #B96730",
101 "$.c #983C0A",
102" . + + @ # $ % ",
103" & * * = - ; > , ",
104" & * * ' ) ! ~ { ] ",
105" & * * * ^ / ( _ : < ",
106" & * * * [ } | 1 2 3 ",
107" & * * ' 4 5 6 7 8 9 ",
108" & * ' [ 0 a b c d e ",
109" & f g h i j k l m n ",
110" & o p q r s t u v w x ",
111" & y z A B C C C D E ",
112" & F G H I J K J L M ",
113" & N O P Q R S T U V ",
114" W X Y Z ` ...+.@.#. ",
115" $. "};
diff --git a/noncore/apps/zsafe/pics/zsafe/pass.xpm b/noncore/apps/zsafe/pics/zsafe/pass.xpm
deleted file mode 100644
index 512c262..0000000
--- a/noncore/apps/zsafe/pics/zsafe/pass.xpm
+++ b/dev/null
@@ -1,20 +0,0 @@
1/* XPM */
2static char * pass_xpm[] = {
3"16 14 3 1",
4 " c None",
5 ".c #000000",
6 "+c #FFFF00",
7" ",
8" ",
9" ..... . ",
10" .+++. .+. ",
11" .+++. .+++. ",
12" .+++. .+++++. ",
13" .+++..+++++++.",
14"...+++....+++...",
15".+++++++..+++. ",
16" .+++++. .+++. ",
17" .+++. .+++. ",
18" .+. .+++. ",
19" . .+++. ",
20" ..... "};
diff --git a/noncore/apps/zsafe/pics/zsafe/paste.xpm b/noncore/apps/zsafe/pics/zsafe/paste.xpm
deleted file mode 100644
index 546366f..0000000
--- a/noncore/apps/zsafe/pics/zsafe/paste.xpm
+++ b/dev/null
@@ -1,159 +0,0 @@
1/* XPM */
2static char * paste_xpm[] = {
3"14 14 142 2",
4 " c None",
5 ". c #96A0AC",
6 "+ c #9BB0D4",
7 "@ c #5E7095",
8 "# c #EFBE61",
9 "$ c #F2D797",
10 "% c #EDCF86",
11 "& c #BAAF8F",
12 "* c #A7B4C7",
13 "= c #C9D6EB",
14 "- c #C0D1EB",
15 "; c #7E8289",
16 "> c #C39033",
17 ", c #D58C1D",
18 "' c #7E440B",
19 ") c #F0C470",
20 "! c #F5F0D4",
21 "~ c #DDD6B5",
22 "{ c #8695A8",
23 "] c #7285A7",
24 "^ c #7786A1",
25 "/ c #7A879C",
26 "( c #69748E",
27 "_ c #946339",
28 ": c #F67202",
29 "< c #A44102",
30 "[ c #F0C36E",
31 "} c #F4EBCC",
32 "| c #ECDCAF",
33 "1 c #CDC29B",
34 "2 c #C1B486",
35 "3 c #C3A86B",
36 "4 c #B8924A",
37 "5 c #B17B31",
38 "6 c #C66C1C",
39 "7 c #DE6610",
40 "8 c #944311",
41 "9 c #F3E7C5",
42 "0 c #F4E1AA",
43 "a c #F7DF9B",
44 "b c #F8D781",
45 "c c #F7C353",
46 "d c #CFA555",
47 "e c #B8B7AC",
48 "f c #C2B1AA",
49 "g c #B7AAAC",
50 "h c #9BA0B2",
51 "i c #55739A",
52 "j c #F3E3B5",
53 "k c #F3D893",
54 "l c #F3D485",
55 "m c #F4C663",
56 "n c #F3AA27",
57 "o c #BC9656",
58 "p c #C5E2FF",
59 "q c #BFDAFB",
60 "r c #ADCFFC",
61 "s c #A9CCFD",
62 "t c #6EABF2",
63 "u c #2061A8",
64 "v c #F0C36D",
65 "w c #F3E2AD",
66 "x c #F3D890",
67 "y c #F3CC73",
68 "z c #F4B63E",
69 "A c #F3A216",
70 "B c #BC9859",
71 "C c #CDE6FE",
72 "D c #C8DFFB",
73 "E c #BAD6FB",
74 "F c #A8CCFB",
75 "G c #5DA3F8",
76 "H c #218AF6",
77 "I c #F3E0AF",
78 "J c #F3D181",
79 "K c #F3C056",
80 "L c #F4B539",
81 "M c #F2AB22",
82 "N c #BC9C60",
83 "O c #CCE5FE",
84 "P c #C7DEFB",
85 "Q c #B8D5FB",
86 "R c #BBD5FD",
87 "S c #ABCAFE",
88 "T c #6CB0FF",
89 "U c #F3DDA7",
90 "V c #F3C564",
91 "W c #F3BC4C",
92 "X c #F4B63C",
93 "Y c #F3AC26",
94 "Z c #BC9E63",
95 "` c #CAE4FF",
96 " .c #BCD7FB",
97 "..c #A4C8FB",
98 "+.c #92BBFB",
99 "@.c #8EB7FB",
100 "#.c #72B3FE",
101 "$.c #F3D99A",
102 "%.c #F3BD50",
103 "&.c #F3BA45",
104 "*.c #F4B53B",
105 "=.c #F3AC25",
106 "-.c #BC9D63",
107 ";.c #CAE5FF",
108 ">.c #BBD6FB",
109 ",.c #A1C5FB",
110 "'.c #99C1FB",
111 ").c #9CC1FC",
112 "!.c #7CB9FE",
113 "~.c #F5C870",
114 "{.c #F8DC9B",
115 "].c #F8C65C",
116 "^.c #F8C252",
117 "/.c #F8BE49",
118 "(.c #F7B534",
119 "_.c #BFA46C",
120 ":.c #CBE4FF",
121 "<.c #B7D3FB",
122 "[.c #A4C6FB",
123 "}.c #A0C4FB",
124 "|.c #A2C4FC",
125 "1.c #80BDFF",
126 "2.c #B08749",
127 "3.c #B78958",
128 "4.c #B48041",
129 "5.c #B47D3A",
130 "6.c #B47C36",
131 "7.c #B3742B",
132 "8.c #927D68",
133 "9.c #C4E7FF",
134 "0.c #C1DEFE",
135 "a.c #B4D6FE",
136 "b.c #AED3FE",
137 "c.c #AED2FE",
138 "d.c #7DC1FF",
139 "e.c #303341",
140 "f.c #3A7CBA",
141 "g.c #3C78B3",
142 "h.c #3975B3",
143 "i.c #3774B3",
144 "j.c #3674B3",
145 "k.c #2570B9",
146" . + @ ",
147"# $ % & * = - ; > , ' ",
148") ! ~ { ] ^ / ( _ : < ",
149"[ } | 1 2 3 4 5 6 7 8 ",
150"[ 9 0 a b c d e f g h i ",
151"[ j k l m n o p q r s t u ",
152"v w x y z A B C D E F G H ",
153"v I J K L M N O P Q R S T ",
154"[ U V W X Y Z ` ...+.@.#. ",
155"v $.%.&.*.=.-.;.>.,.'.).!. ",
156"~.{.].^./.(._.:.<.[.}.|.1. ",
157"2.3.4.5.6.7.8.9.0.a.b.c.d. ",
158" e.f.g.h.i.j.k. ",
159" "};
diff --git a/noncore/apps/zsafe/pics/zsafe/quit_icon.xpm b/noncore/apps/zsafe/pics/zsafe/quit_icon.xpm
deleted file mode 100644
index 5e1b983..0000000
--- a/noncore/apps/zsafe/pics/zsafe/quit_icon.xpm
+++ b/dev/null
@@ -1,120 +0,0 @@
1/* XPM */
2static char * quit_icon_xpm[] = {
3"14 14 103 2",
4 " c None",
5 ". c #C50000",
6 "+ c #C20000",
7 "@ c #CB0000",
8 "# c #D51313",
9 "$ c #E44A4A",
10 "% c #ED6F6F",
11 "& c #EC7070",
12 "* c #E05050",
13 "= c #C91A1A",
14 "- c #B30000",
15 "; c #CD0000",
16 "> c #E53B3B",
17 ", c #FBB1B1",
18 "' c #FFD6D6",
19 ") c #FFD9D9",
20 "! c #FFD7D7",
21 "~ c #FBBCBC",
22 "{ c #DB4C4C",
23 "] c #B00000",
24 "^ c #CA0000",
25 "/ c #E52F2F",
26 "( c #FEADAD",
27 "_ c #FFBDBD",
28 ": c #FFB3B3",
29 "< c #FEB1B1",
30 "[ c #D84343",
31 "} c #A60000",
32 "| c #D50808",
33 "1 c #FB7272",
34 "2 c #FFBCBC",
35 "3 c #FFFFFF",
36 "4 c #FFE7E7",
37 "5 c #FF9B9B",
38 "6 c #FFBBBB",
39 "7 c #FA7171",
40 "8 c #B90C0C",
41 "9 c #E41B1B",
42 "0 c #FF6464",
43 "a c #FF7474",
44 "b c #FFE0E0",
45 "c c #FCC6C6",
46 "d c #F63535",
47 "e c #F30E0E",
48 "f c #D00202",
49 "g c #EC1C1C",
50 "h c #FF3F3F",
51 "i c #FF5252",
52 "j c #FFD2D2",
53 "k c #F31C1C",
54 "l c #F20000",
55 "m c #DC0000",
56 "n c #9B0000",
57 "o c #C10000",
58 "p c #EC0A0A",
59 "q c #FF1616",
60 "r c #FF3131",
61 "s c #FFCECE",
62 "t c #F41C1C",
63 "u c #F40000",
64 "v c #970000",
65 "w c #E10000",
66 "x c #FE0101",
67 "y c #FE1B1B",
68 "z c #FFC5C5",
69 "A c #FFC6C6",
70 "B c #FDC4C4",
71 "C c #FA1A1A",
72 "D c #FA0000",
73 "E c #CF0000",
74 "F c #CB0202",
75 "G c #FC0909",
76 "H c #FF6D6D",
77 "I c #FFC8C8",
78 "J c #FF2525",
79 "K c #FB0909",
80 "L c #AE0202",
81 "M c #B30101",
82 "N c #DE1313",
83 "O c #FF2828",
84 "P c #FF7E7E",
85 "Q c #FF3A3A",
86 "R c #FF2323",
87 "S c #FE2828",
88 "T c #D01313",
89 "U c #8E0101",
90 "V c #B00404",
91 "W c #DB2121",
92 "X c #FC3B3B",
93 "Y c #FF3D3D",
94 "Z c #FB3B3B",
95 "` c #D02121",
96 " .c #930404",
97 "..c #A50202",
98 "+.c #BB1616",
99 "@.c #D73131",
100 "#.c #E63F3F",
101 "$.c #E53F3F",
102 "%.c #D33131",
103 "&.c #AF1616",
104 "*.c #8E0202",
105 "=.c #9B0505",
106 "-.c #970505",
107" . + ",
108" @ # $ % & * = - ",
109" ; > , ' ) ) ! ~ { ] ",
110" ^ / ( ' _ : : _ ' < [ } ",
111" | 1 2 3 4 5 5 4 3 6 7 8 ",
112" 9 0 a ) 3 b b 3 c d e f ",
113". g h h i j 3 3 c k l l m n ",
114"o p q q r s 3 3 c t u u m v ",
115" w x y z 3 A A 3 B C D E ",
116" F G H 3 I J J I 3 H K L ",
117" M N O P Q R R Q P S T U ",
118" V W X Y Y Y Y Z ` . ",
119" ..+.@.#.$.%.&.*. ",
120" =.-. "};
diff --git a/noncore/apps/zsafe/pics/zsafe/save.xpm b/noncore/apps/zsafe/pics/zsafe/save.xpm
deleted file mode 100644
index f7e5cf3..0000000
--- a/noncore/apps/zsafe/pics/zsafe/save.xpm
+++ b/dev/null
@@ -1,117 +0,0 @@
1/* XPM */
2static char * save_xpm[] = {
3"14 14 100 2",
4 " c None",
5 ". c #788F79",
6 "+ c #36B43E",
7 "@ c #52A357",
8 "# c #5E5E5E",
9 "$ c #949494",
10 "% c #9D9E9D",
11 "& c #E9F8E9",
12 "* c #E6F4E6",
13 "= c #E6F5E6",
14 "- c #E5F4E5",
15 "; c #E4F3E4",
16 "> c #C3CBC3",
17 ", c #595959",
18 "' c #8F8F8F",
19 ") c #999999",
20 "! c #FAFAFA",
21 "~ c #F6F6F6",
22 "{ c #F5F5F5",
23 "] c #F4F4F4",
24 "^ c #F2F2F2",
25 "/ c #EEEEEE",
26 "( c #EAEAEA",
27 "_ c #BEBEBE",
28 ": c #575757",
29 "< c #8E8E8E",
30 "[ c #9B9B9B",
31 "} c #F8F8F8",
32 "| c #F3F3F3",
33 "1 c #F1F1F1",
34 "2 c #EBEBEB",
35 "3 c #E5E5E5",
36 "4 c #DFDFDF",
37 "5 c #DBDBDB",
38 "6 c #AEAEAE",
39 "7 c #4D4D4D",
40 "8 c #9D9D9D",
41 "9 c #E7E7E7",
42 "0 c #E1E1E1",
43 "a c #DADADA",
44 "b c #D4D4D4",
45 "c c #CECECE",
46 "d c #C9C9C9",
47 "e c #484848",
48 "f c #909090",
49 "g c #8C8C8C",
50 "h c #C4C4C4",
51 "i c #BDBDBD",
52 "j c #B5B5B5",
53 "k c #AFAFAF",
54 "l c #AAAAAA",
55 "m c #A4A4A4",
56 "n c #9C9C9C",
57 "o c #797979",
58 "p c #444444",
59 "q c #7D7D7D",
60 "r c #767676",
61 "s c #6E6E6E",
62 "t c #656565",
63 "u c #5D5D5D",
64 "v c #5C5C5C",
65 "w c #585858",
66 "x c #515151",
67 "y c #3B3B3B",
68 "z c #888888",
69 "A c #737373",
70 "B c #C2C2C2",
71 "C c #C7C7C7",
72 "D c #ABABAB",
73 "E c #606060",
74 "F c #353535",
75 "G c #828282",
76 "H c #6D6D6D",
77 "I c #D9D9D9",
78 "J c #A9A9A9",
79 "K c #BFBFBF",
80 "L c #B3B3B3",
81 "M c #424242",
82 "N c #313131",
83 "O c #7E7E7E",
84 "P c #6B6B6B",
85 "Q c #747474",
86 "R c #979797",
87 "S c #A0A0A0",
88 "T c #9E9E9E",
89 "U c #A2A2A2",
90 "V c #404040",
91 "W c #2F2F2F",
92 "X c #636363",
93 "Y c #B0B0B0",
94 "Z c #929292",
95 "` c #B8B8B8",
96 " .c #3C3C3C",
97 "..c #252525",
98 "+.c #191919",
99 "@.c #1F1F1F",
100 "#.c #292929",
101 "$.c #282828",
102 "%.c #1A1A1A",
103 "&.c #101010",
104" ",
105" . + + + + + + + @ # ",
106" $ % & * = = = - ; > , ",
107" ' ) ! ~ { ] ^ / ( _ : ",
108" < [ } | 1 2 3 4 5 6 7 ",
109" ' 8 ^ 9 0 a b c d [ e ",
110" f g h i j k l m n o p ",
111" ' q r s t u v v w x y ",
112" z A h B C C B D E e F ",
113" G H I o J K L 8 : M N ",
114" O P C Q R S T U : V W ",
115" X Y Z < [ J ` , ... ",
116" +.@.#.#.#.#.$.%.&. ",
117" "};
diff --git a/noncore/apps/zsafe/pics/zsafe/trash.xpm b/noncore/apps/zsafe/pics/zsafe/trash.xpm
deleted file mode 100644
index df85d02..0000000
--- a/noncore/apps/zsafe/pics/zsafe/trash.xpm
+++ b/dev/null
@@ -1,127 +0,0 @@
1/* XPM */
2static char * trash_xpm[] = {
3"14 14 110 2",
4 " c None",
5 ". c #BEBEBD",
6 "+ c #B2B2B2",
7 "@ c #A5A5A6",
8 "# c #979797",
9 "$ c #8B8B8C",
10 "% c #DCDDDD",
11 "& c #D4D4D4",
12 "* c #C2C3C3",
13 "= c #B4B5B4",
14 "- c #A5A5A5",
15 "; c #969698",
16 "> c #8C8C8D",
17 ", c #7D7E7E",
18 "' c #717071",
19 ") c #C8C8C8",
20 "! c #EAEAEA",
21 "~ c #C3C4C3",
22 "{ c #B9BABA",
23 "] c #AFAFB0",
24 "^ c #A2A2A2",
25 "/ c #959495",
26 "( c #8C8C8C",
27 "_ c #7B7C7C",
28 ": c #676767",
29 "< c #535353",
30 "[ c #ABACAC",
31 "} c #DBDBDA",
32 "| c #D1D1D1",
33 "1 c #C5C5C5",
34 "2 c #B5B5B5",
35 "3 c #A3A3A4",
36 "4 c #9A999A",
37 "5 c #848484",
38 "6 c #626262",
39 "7 c #474747",
40 "8 c #A4A5A5",
41 "9 c #C2C2C2",
42 "0 c #C6C6C5",
43 "a c #BBBBBB",
44 "b c #AEAEAE",
45 "c c #9D9D9D",
46 "d c #939393",
47 "e c #7B7B7C",
48 "f c #595959",
49 "g c #494949",
50 "h c #A1A1A1",
51 "i c #B6B6B6",
52 "j c #A9AAA9",
53 "k c #9B9B9B",
54 "l c #7F7F7F",
55 "m c #686868",
56 "n c #4E4E4E",
57 "o c #4B4A4B",
58 "p c #BEBEBE",
59 "q c #EDEDED",
60 "r c #CFCFCF",
61 "s c #ABABAB",
62 "t c #A0A0A0",
63 "u c #939394",
64 "v c #888889",
65 "w c #696969",
66 "x c #4D4D4D",
67 "y c #484848",
68 "z c #C0C0C0",
69 "A c #ECECEC",
70 "B c #CDCDCD",
71 "C c #AAAAAA",
72 "D c #9F9F9F",
73 "E c #929393",
74 "F c #8A8A8A",
75 "G c #7A7A7A",
76 "H c #5E5E5E",
77 "I c #BCBCBC",
78 "J c #E0E0E0",
79 "K c #C6C6C6",
80 "L c #A9A9A9",
81 "M c #9E9E9D",
82 "N c #909190",
83 "O c #868687",
84 "P c #757575",
85 "Q c #5C5C5C",
86 "R c #B9B9B9",
87 "S c #A8A8A8",
88 "T c #8F8F8E",
89 "U c #707070",
90 "V c #575757",
91 "W c #C9C9C9",
92 "X c #BABABA",
93 "Y c #A7A8A8",
94 "Z c #9C9C9C",
95 "` c #8E8D8C",
96 " .c #828281",
97 "..c #6C6C6C",
98 "+.c #525252",
99 "@.c #3C3C3C",
100 "#.c #BBBABB",
101 "$.c #A7A7A7",
102 "%.c #9A9A9A",
103 "&.c #8B8B8B",
104 "*.c #7E7E7E",
105 "=.c #4C4C4C",
106 "-.c #302F2F",
107 ";.c #ACACAC",
108 ">.c #A3A3A3",
109 ",.c #979798",
110 "'.c #868686",
111 ").c #777777",
112 "!.c #3E3E3E",
113 "~.c #212121",
114" . + @ # $ ",
115" % & * = - ; > , ' ",
116") ! ~ { ] ^ / ( _ : < ",
117"[ } | | 1 2 3 4 5 6 7 ",
118"8 9 1 0 a b c d e f g ",
119" h i 2 j k $ l m n o ",
120" p q r s t u v w x y ",
121" z A B C D E F G H g ",
122" I J K L M N O P Q n ",
123" R & z S c T 5 U V g ",
124" i W X Y Z ` ...+.@. ",
125" + #.+ $.%.&.*.: =.-. ",
126" ;.$.L >.,.'.).f !.~. ",
127" "};
diff --git a/noncore/apps/zsafe/pics/zsafe/zsafe.png b/noncore/apps/zsafe/pics/zsafe/zsafe.png
deleted file mode 100644
index 34f5170..0000000
--- a/noncore/apps/zsafe/pics/zsafe/zsafe.png
+++ b/dev/null
Binary files differ
diff --git a/noncore/apps/zsafe/pics/zsafe/zsafe.xpm b/noncore/apps/zsafe/pics/zsafe/zsafe.xpm
deleted file mode 100644
index 75a2551..0000000
--- a/noncore/apps/zsafe/pics/zsafe/zsafe.xpm
+++ b/dev/null
@@ -1,306 +0,0 @@
1/* XPM */
2static char * zsafe_xpm[] = {
3"32 32 271 2",
4 " c None",
5 ". c #8E8EA9",
6 "+ c #8F8FA9",
7 "@ c #8C8CA7",
8 "# c #8B8BA6",
9 "$ c #AEAEC1",
10 "% c #CACAD6",
11 "& c #DEDEE5",
12 "* c #DBDBE2",
13 "= c #CDCDD7",
14 "- c #A9A9BC",
15 "; c #8D8DA8",
16 "> c #83839C",
17 ", c #8686A2",
18 "' c #A4A4B9",
19 ") c #EEEEF1",
20 "! c #FEFEFE",
21 "~ c #FFFFFF",
22 "{ c #FDFDFD",
23 "] c #E4E4E8",
24 "^ c #9F9FB4",
25 "/ c #82829D",
26 "( c #80809D",
27 "_ c #B0B0C2",
28 ": c #FBFBFB",
29 "< c #F3F3F3",
30 "[ c #EDEDED",
31 "} c #EBEBEB",
32 "| c #ECECEC",
33 "1 c #F6F6F6",
34 "2 c #FAFAFA",
35 "3 c #A9A9BB",
36 "4 c #7B7B97",
37 "5 c #7A7A98",
38 "6 c #9B9BB1",
39 "7 c #F2F2F2",
40 "8 c #D3D3D9",
41 "9 c #B6B6C4",
42 "0 c #AEAEBD",
43 "a c #CACAD0",
44 "b c #D9D9D9",
45 "c c #E5E5E5",
46 "d c #FCFCFC",
47 "e c #9898AC",
48 "f c #6B6B85",
49 "g c #777795",
50 "h c #ECECEF",
51 "i c #F0F0F0",
52 "j c #E3E3E5",
53 "k c #9292A9",
54 "l c #757592",
55 "m c #666680",
56 "n c #676780",
57 "o c #72728F",
58 "p c #8888A1",
59 "q c #C0C0C5",
60 "r c #DADADA",
61 "s c #E5E5E6",
62 "t c #7B7B98",
63 "u c #6F6F8E",
64 "v c #A3A3B6",
65 "w c #F4F4F4",
66 "x c #E9E9E9",
67 "y c #8787A0",
68 "z c #60607B",
69 "A c #5E5E78",
70 "B c #767693",
71 "C c #C3C3C5",
72 "D c #E2E2E2",
73 "E c #9696AA",
74 "F c #6A6A89",
75 "G c #E8E8E8",
76 "H c #B7B7C3",
77 "I c #656583",
78 "J c #636380",
79 "K c #8C8CA0",
80 "L c #C4C4C4",
81 "M c #BFBFC9",
82 "N c #626280",
83 "O c #666686",
84 "P c #EFEFF1",
85 "Q c #F5F5F5",
86 "R c #E3E3E3",
87 "S c #85859D",
88 "T c #46465C",
89 "U c #6B6B8A",
90 "V c #BCBCBC",
91 "W c #EEEEEE",
92 "X c #DFDFE1",
93 "Y c #606082",
94 "Z c #F8F8F8",
95 "` c #DEDEDE",
96 " .c #7F7F98",
97 "..c #B7B7B7",
98 "+.c #5B5B7D",
99 "@.c #EAEAEA",
100 "#.c #7A7A93",
101 "$.c #B6B6B6",
102 "%.c #D7D7D7",
103 "&.c #E7E7E7",
104 "*.c #555578",
105 "=.c #D5D5D5",
106 "-.c #75758F",
107 ";.c #D3D3D3",
108 ">.c #E1E1E1",
109 ",.c #545477",
110 "'.c #E4E4E4",
111 ").c #DDDDDD",
112 "!.c #D0D0D0",
113 "~.c #73738D",
114 "{.c #CFCFCF",
115 "].c #DBDBDB",
116 "^.c #D7922A",
117 "/.c #977451",
118 "(.c #DCB985",
119 "_.c #D9B682",
120 ":.c #D3B07C",
121 "<.c #A6835B",
122 "[.c #A67632",
123 "}.c #C08326",
124 "|.c #CF8C29",
125 "1.c #D18E29",
126 "2.c #C8A571",
127 "3.c #D3B07B",
128 "4.c #D8B581",
129 "5.c #B17823",
130 "6.c #CB892A",
131 "7.c #D08C2A",
132 "8.c #DDAA48",
133 "9.c #EAC766",
134 "0.c #BD7F27",
135 "a.c #C1802A",
136 "b.c #E5C76C",
137 "c.c #FFFD99",
138 "d.c #FFFC75",
139 "e.c #FFFC6F",
140 "f.c #E5C760",
141 "g.c #B27529",
142 "h.c #ECD880",
143 "i.c #FFF242",
144 "j.c #FFF23C",
145 "k.c #FFE635",
146 "l.c #ECA41E",
147 "m.c #A46928",
148 "n.c #E8CF65",
149 "o.c #FFEA37",
150 "p.c #FFB81C",
151 "q.c #E89A1A",
152 "r.c #955E28",
153 "s.c #E5C863",
154 "t.c #FFE233",
155 "u.c #FFDF31",
156 "v.c #FFB51B",
157 "w.c #FFA814",
158 "x.c #E59418",
159 "y.c #875327",
160 "z.c #E1C161",
161 "A.c #FFDA2E",
162 "B.c #FFD42B",
163 "C.c #FFB319",
164 "D.c #FFA713",
165 "E.c #FFA412",
166 "F.c #E18E16",
167 "G.c #784726",
168 "H.c #DDBA5E",
169 "I.c #FFD12A",
170 "J.c #FFC523",
171 "K.c #FFAB15",
172 "L.c #FFA613",
173 "M.c #FFA311",
174 "N.c #FFA110",
175 "O.c #DD8814",
176 "P.c #744426",
177 "Q.c #DCB65C",
178 "R.c #FFC926",
179 "S.c #FFC624",
180 "T.c #FFB41A",
181 "U.c #FFA512",
182 "V.c #FFA211",
183 "W.c #FF9F0F",
184 "X.c #FF9D0E",
185 "Y.c #DC8513",
186 "Z.c #DCB15A",
187 "`.c #FFC121",
188 " +c #FFBF20",
189 ".+c #FFBE1F",
190 "++c #FFBD1F",
191 "@+c #FFB91D",
192 "#+c #FFA914",
193 "$+c #FF9E0E",
194 "%+c #FF9C0D",
195 "&+c #FF990C",
196 "*+c #DC8211",
197 "=+c #DCAD58",
198 "-+c #FFB81D",
199 ";+c #FFBC1F",
200 ">+c #FFBC1E",
201 ",+c #FFBA1D",
202 "'+c #FFB71C",
203 ")+c #FFB51A",
204 "!+c #FFB219",
205 "~+c #FFAF18",
206 "{+c #FFAD16",
207 "]+c #FFAA15",
208 "^+c #FFA813",
209 "/+c #FFA00F",
210 "(+c #FF9A0C",
211 "_+c #FF980B",
212 ":+c #FF950A",
213 "<+c #DC7F10",
214 "[+c #DCA955",
215 "}+c #FFB118",
216 "|+c #FFBB1E",
217 "1+c #FFB61B",
218 "2+c #FFB31A",
219 "3+c #FFAE17",
220 "4+c #FFAC16",
221 "5+c #FFA411",
222 "6+c #FF970A",
223 "7+c #FF9409",
224 "8+c #FF9108",
225 "9+c #DC7C0E",
226 "0+c #DCA553",
227 "a+c #FFB018",
228 "b+c #FF9B0D",
229 "c+c #FF9308",
230 "d+c #FF9007",
231 "e+c #FF8D06",
232 "f+c #DC790D",
233 "g+c #DCAC57",
234 "h+c #FFB119",
235 "i+c #FF970B",
236 "j+c #FF9208",
237 "k+c #FF8F06",
238 "l+c #FF8C05",
239 "m+c #FF8A04",
240 "n+c #DC760B",
241 "o+c #C29759",
242 "p+c #FFBE31",
243 "q+c #FF960A",
244 "r+c #FF9309",
245 "s+c #FF8E06",
246 "t+c #FF8B04",
247 "u+c #FF8803",
248 "v+c #FF8602",
249 "w+c #C26912",
250 "x+c #714225",
251 "y+c #9F713F",
252 "z+c #BA7E27",
253 "A+c #BA7A1F",
254 "B+c #BA781E",
255 "C+c #BA771D",
256 "D+c #BA761D",
257 "E+c #BA741C",
258 "F+c #BA731B",
259 "G+c #BA721B",
260 "H+c #BA711A",
261 "I+c #BA6F19",
262 "J+c #BA6E19",
263 "K+c #BA6D18",
264 "L+c #BA6B17",
265 "M+c #BA6A16",
266 "N+c #BA6916",
267 "O+c #BA6715",
268 "P+c #BA6614",
269 "Q+c #BA6514",
270 "R+c #9F581A",
271 "S+c #6A3E23",
272 "T+c #653B21",
273 "U+c #6B3F23",
274 "V+c #5B351E",
275" ",
276" . + . @ ",
277" # @ $ % & * = - ; > ",
278" , ' ) ! ~ ~ ~ ~ { ] ^ / ",
279" ( _ ! ~ : < [ } | 1 ~ 2 3 4 ",
280" 5 6 ! ! 7 } 8 9 0 a b c d d e f ",
281" g h ! i j k l m n o p q r ~ s t ",
282" u v ~ w x y z A B C D ~ E z ",
283" F = ! G H I J K L ~ M N ",
284" O P Q R S T U V W X O ",
285" Y Z i ` . Y ..r | Y ",
286" +.7 @.r #. +.$.%.&.+. ",
287" *.} R =.-. *.$.;.>.*. ",
288" ,.'.).!.~. ,.$.{.].,. ",
289" ^./.(._.:.<.[.}.|.1.1.1.1.1./.2.3.4./.5. ",
290" 6.7.8.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.8.7.0. ",
291" a.b.c.d.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.f.a. ",
292" g.h.i.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.l.g. ",
293" m.n.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.k.p.q.m. ",
294" r.s.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.u.v.w.x.r. ",
295" y.z.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.A.B.C.D.E.F.y. ",
296" G.H.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.J.K.L.M.N.O.G. ",
297" P.Q.R.R.R.R.R.R.R.R.R.R.R.R.R.S.T.D.U.V.W.X.Y.P. ",
298" P.Z.`.`.`.`.`.`. + +.+++++@+T.#+L.M.N.$+%+&+*+P. ",
299" P.=+-+-+;+++>+,+'+)+!+~+{+]+^+U.V./+X.(+_+:+<+P. ",
300" P.[+}+++.+|+@+1+2+}+3+4+#+L.5+N.W.%+&+6+7+8+9+P. ",
301" P.0+|+++,+p.v.!+a+{+]+w.U.M./+X.b+_+:+c+d+e+f+P. ",
302" P.g+>+@+1+T.h+3+4+#+D.E.N.W.%+&+i+7+j+k+l+m+n+P. ",
303" P.o+p+v.!+a+{+K.w.U.M./+$+b+_+q+r+d+s+t+u+v+w+P. ",
304" x+P.y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+P.S+ ",
305" T+U+S+S+S+S+S+S+S+S+S+S+S+S+S+S+S+S+S+S+S+V+ ",
306" "};
diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp
index 2b182f9..f70f863 100644
--- a/noncore/apps/zsafe/zsafe.cpp
+++ b/noncore/apps/zsafe/zsafe.cpp
@@ -1,158 +1,142 @@
1/**************************************************************************** 1/****************************************************************************
2** 2**
3** Created: Sat Apr 6 17:57:45 2002 3** Created: Sat Apr 6 17:57:45 2002
4** 4**
5** Author: Carsten Schneider <CarstenSchneider@t-online.de> 5** Author: Carsten Schneider <CarstenSchneider@t-online.de>
6** 6**
7** $Id$ 7** $Id$
8** 8**
9** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html 9** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html
10** 10**
11** 11**
12****************************************************************************/ 12****************************************************************************/
13#include "zsafe.h" 13#include "zsafe.h"
14#include "newdialog.h" 14#include "newdialog.h"
15#include "searchdialog.h" 15#include "searchdialog.h"
16#include "categorydialog.h" 16#include "categorydialog.h"
17#include "passworddialog.h" 17#include "passworddialog.h"
18#include "infoform.h" 18#include "infoform.h"
19#include "zlistview.h" 19#include "zlistview.h"
20#include "shadedlistitem.h" 20#include "shadedlistitem.h"
21 21
22#include <opie2/oresource.h>
22#include <opie2/ofiledialog.h> 23#include <opie2/ofiledialog.h>
23#include <opie2/odebug.h> 24#include <opie2/odebug.h>
24using namespace Opie::Core; 25using namespace Opie::Core;
25using namespace Opie::Ui; 26using namespace Opie::Ui;
26 27
27#include <qclipboard.h> 28#include <qclipboard.h>
28 29
29#include <sys/types.h> 30#include <sys/types.h>
30#include <sys/stat.h> 31#include <sys/stat.h>
31#include <fcntl.h> 32#include <fcntl.h>
32#include <stdlib.h> 33#include <stdlib.h>
33#include <unistd.h> 34#include <unistd.h>
34#include <string.h> 35#include <string.h>
35#include <errno.h> 36#include <errno.h>
36 37
37#include <qmenubar.h> 38#include <qmenubar.h>
38#include <qpopupmenu.h> 39#include <qpopupmenu.h>
39 40
40#include <qfile.h> 41#include <qfile.h>
41#include <qpe/fileselector.h> 42#include <qpe/applnk.h>
42#include <qpe/global.h> 43#include <qpe/global.h>
43#include <qpe/qpeapplication.h> 44#include <qpe/qpeapplication.h>
44#include <qpe/resource.h>
45#include <qpe/config.h> 45#include <qpe/config.h>
46 46
47#include <qaction.h>
47#include <qtimer.h> 48#include <qtimer.h>
48#include <qlayout.h> 49#include <qlayout.h>
49#include <qmessagebox.h> 50#include <qmessagebox.h>
50#include <qfile.h> 51#include <qfile.h>
51#include <qtextstream.h> 52#include <qtextstream.h>
52#include <qheader.h> 53#include <qheader.h>
53#include <qlistview.h> 54#include <qlistview.h>
54#include <qtoolbutton.h>
55#include <qvariant.h> 55#include <qvariant.h>
56#include <qtooltip.h> 56#include <qtooltip.h>
57#include <qwhatsthis.h> 57#include <qwhatsthis.h>
58#include <qimage.h> 58#include <qimage.h>
59#include <qpixmap.h> 59#include <qpixmap.h>
60#include <qlineedit.h> 60#include <qlineedit.h>
61#include <qmultilineedit.h> 61#include <qmultilineedit.h>
62#include <qregexp.h> 62#include <qregexp.h>
63#include <qdir.h> 63#include <qdir.h>
64#include <qtextbrowser.h> 64#include <qtextbrowser.h>
65#include <qlabel.h> 65#include <qlabel.h>
66#include <qcombobox.h> 66#include <qcombobox.h>
67#include <qtoolbar.h>
67 68
68#include "krc2.h" 69#include "krc2.h"
69 70
70#include "wait.h" 71#include "wait.h"
71 72
72int DeskW, DeskH;
73QApplication *appl;
74ZSafe *zs;
75
76const QString APP_KEY = ""; 73const QString APP_KEY = "";
77 74
78// include xmp images 75// include xmp images
79#include "pics/zsafe/copy.xpm"
80#include "pics/zsafe/cut.xpm"
81#include "pics/zsafe/edit.xpm"
82#include "pics/zsafe/editdelete.xpm"
83#include "pics/zsafe/find.xpm"
84#include "pics/zsafe/folder_open.xpm"
85#include "pics/zsafe/help_icon.xpm"
86#include "pics/zsafe/new.xpm"
87#include "pics/zsafe/paste.xpm"
88#include "pics/zsafe/quit_icon.xpm"
89#include "pics/zsafe/save.xpm"
90#include "pics/zsafe/trash.xpm"
91#include "pics/zsafe/expand.xpm" 76#include "pics/zsafe/expand.xpm"
92#include "pics/zsafe/export.xpm" 77#include "pics/zsafe/export.xpm"
93#include "pics/zsafe/import.xpm" 78#include "pics/zsafe/import.xpm"
94#include "pics/zsafe/zsafe.xpm"
95 79
96static const char* const bank_cards_data[] = { 80static const char* const bank_cards_data[] = {
97"14 14 16 1", 81"14 14 16 1",
98". c None", 82". c None",
99"# c #000000", 83"# c #000000",
100"b c #0000de", 84"b c #0000de",
101"a c #0000e6", 85"a c #0000e6",
102"j c #41de83", 86"j c #41de83",
103"k c #4acecd", 87"k c #4acecd",
104"h c #4aced5", 88"h c #4aced5",
105"g c #5a40cd", 89"g c #5a40cd",
106"d c #5a44d5", 90"d c #5a44d5",
107"l c #9440d5", 91"l c #9440d5",
108"m c #b4ce4a", 92"m c #b4ce4a",
109"n c #cd4883", 93"n c #cd4883",
110"e c #d5ae10", 94"e c #d5ae10",
111"f c #de3ce6", 95"f c #de3ce6",
112"i c #e640e6", 96"i c #e640e6",
113"c c #ffffff", 97"c c #ffffff",
114"..............", 98"..............",
115".###########..", 99".###########..",
116".#ababababa#..", 100".#ababababa#..",
117".#babbbabbb#..", 101".#babbbabbb#..",
118".#ccccccccc#..", 102".#ccccccccc#..",
119".#cdcefcghc#..", 103".#cdcefcghc#..",
120".#ccccccccc#..", 104".#ccccccccc#..",
121".#cicjkclic#..", 105".#cicjkclic#..",
122".#ccccccccc#..", 106".#ccccccccc#..",
123".#cmchlcnec#..", 107".#cmchlcnec#..",
124".#ccccccccc#..", 108".#ccccccccc#..",
125".###########..", 109".###########..",
126"..............", 110"..............",
127".............."}; 111".............."};
128 112
129 113
130static const char* const passwords_data[] = { 114static const char* const passwords_data[] = {
131"16 16 20 1", 115"16 16 20 1",
132". c None", 116". c None",
133"# c #000000", 117"# c #000000",
134"r c #000083", 118"r c #000083",
135"p c #0000c5", 119"p c #0000c5",
136"q c #0000ff", 120"q c #0000ff",
137"n c #008100", 121"n c #008100",
138"l c #00c200", 122"l c #00c200",
139"m c #00ff00", 123"m c #00ff00",
140"j c #838100", 124"j c #838100",
141"a c #c55900", 125"a c #c55900",
142"h c #c5c200", 126"h c #c5c200",
143"o c #c5c2ff", 127"o c #c5c2ff",
144"k c #c5ffc5", 128"k c #c5ffc5",
145"f c #ff0000", 129"f c #ff0000",
146"d c #ff8100", 130"d c #ff8100",
147"b c #ffaa5a", 131"b c #ffaa5a",
148"e c #ffc2c5", 132"e c #ffc2c5",
149"c c #ffdeac", 133"c c #ffdeac",
150"i c #ffff00", 134"i c #ffff00",
151"g c #ffffc5", 135"g c #ffffc5",
152"............###.", 136"............###.",
153"...........#abb#", 137"...........#abb#",
154"..........#cbab#", 138"..........#cbab#",
155".........#cbdd#.", 139".........#cbdd#.",
156"######..#cbdd#..", 140"######..#cbdd#..",
157"#eeff#..#add#...", 141"#eeff#..#add#...",
158"#eeff#######....", 142"#eeff#######....",
@@ -275,354 +259,324 @@ static const char* const general_data[] = {
275"#k c #b4c2ac", 259"#k c #b4c2ac",
276".5 c #b4cab4", 260".5 c #b4cab4",
277".D c #bdb6bd", 261".D c #bdb6bd",
278".G c #bdc6b4", 262".G c #bdc6b4",
279"#c c #bdceb4", 263"#c c #bdceb4",
280".X c #bdd2bd", 264".X c #bdd2bd",
281".4 c #bdd6bd", 265".4 c #bdd6bd",
282".1 c #c5bec5", 266".1 c #c5bec5",
283".e c #c5c2c5", 267".e c #c5c2c5",
284".u c #c5cac5", 268".u c #c5cac5",
285"#b c #c5d6c5", 269"#b c #c5d6c5",
286".J c #c5dec5", 270".J c #c5dec5",
287".p c #cdcacd", 271".p c #cdcacd",
288".W c #cddecd", 272".W c #cddecd",
289".L c #cde2cd", 273".L c #cde2cd",
290".K c #d5eacd", 274".K c #d5eacd",
291".V c #d5ead5", 275".V c #d5ead5",
292".y c #d5eed5", 276".y c #d5eed5",
293"QtQtQtQtQtQtQtQtQtQtQtQtQtQt", 277"QtQtQtQtQtQtQtQtQtQtQtQtQtQt",
294"QtQtQt.#.a.b.cQtQtQtQtQtQtQt", 278"QtQtQt.#.a.b.cQtQtQtQtQtQtQt",
295"QtQt.d.e.f.g.h.i.c.j.dQt.kQt", 279"QtQt.d.e.f.g.h.i.c.j.dQt.kQt",
296".a.l.m.n.o.p.q.r.s.t.u.v.wQt", 280".a.l.m.n.o.p.q.r.s.t.u.v.wQt",
297".x.y.z.A.B.C.D.p.q.E.F.G.H.I", 281".x.y.z.A.B.C.D.p.q.E.F.G.H.I",
298".I.J.K.L.M.N.O.P.o.p.Q.R.S.T", 282".I.J.K.L.M.N.O.P.o.p.Q.R.S.T",
299"Qt.U.V.L.W.X.Y.Z.0.P.1.s.2.3", 283"Qt.U.V.L.W.X.Y.Z.0.P.1.s.2.3",
300"Qt.3.X.W.4.X.5.6.7.8.9.s#.##", 284"Qt.3.X.W.4.X.5.6.7.8.9.s#.##",
301"QtQt#a.X#b#c.5.6#d#e#f#g#h#i", 285"QtQt#a.X#b#c.5.6#d#e#f#g#h#i",
302"QtQtQt#j.7#k.6#d#l#m#n#o#p#q", 286"QtQtQt#j.7#k.6#d#l#m#n#o#p#q",
303"QtQtQtQt.k#r#s#m#t.H#u#v#w#x", 287"QtQtQtQt.k#r#s#m#t.H#u#v#w#x",
304"QtQtQtQtQtQt.k#y#z.v#A#B#C#x", 288"QtQtQtQtQtQt.k#y#z.v#A#B#C#x",
305"QtQtQtQtQtQtQtQt.k#D.w#s#E.k", 289"QtQtQtQtQtQtQtQt.k#D.w#s#E.k",
306"QtQtQtQtQtQtQtQtQtQtQt#x#FQt"}; 290"QtQtQtQtQtQtQtQtQtQtQt#x#FQt"};
307 291
308// exit ZSafe and clear the clipboard for security reasons 292// exit ZSafe and clear the clipboard for security reasons
309 void ZSafe::exitZs (int ec) 293 void ZSafe::exitZs (int ec)
310 { 294 {
311 QClipboard *cb = QApplication::clipboard(); 295 QClipboard *cb = QApplication::clipboard();
312 cb->clear(); 296 cb->clear();
313 297
314 exit (ec); 298 exit (ec);
315 } 299 }
316 300
317 301
318// save the configuration into the file 302// save the configuration into the file
319 void ZSafe::saveConf () 303 void ZSafe::saveConf ()
320 { 304 {
321 if (conf) 305 if (conf)
322 { 306 {
323 delete conf; 307 delete conf;
324 308
325 conf = new Config ("zsafe"); 309 conf = new Config ("zsafe");
326 conf->setGroup ("zsafe"); 310 conf->setGroup ("zsafe");
327 } 311 }
328 } 312 }
329 313
330 314
331/* 315/*
332 * Constructs a ZSafe which is a child of 'parent', with the 316 * Constructs a ZSafe which is a child of 'parent', with the
333 * name 'name' and widget flags set to 'f' 317 * name 'name' and widget flags set to 'f'
334 * 318 *
335 * The dialog will by default be modeless, unless you set 'modal' to 319 * The dialog will by default be modeless, unless you set 'modal' to
336 * TRUE to construct a modal dialog. 320 * TRUE to construct a modal dialog.
337 */ 321 */
338ZSafe::ZSafe( QWidget* parent, const char* name, WFlags fl ) 322ZSafe::ZSafe( QWidget* parent, const char* name, WFlags fl )
339 : QWidget( parent, name, fl), 323 : QMainWindow( parent, name, fl),
340 Edit(0l), Delete(0l), Find(0l), New(0l), ListView(0l) 324 ListView(0l)
341{ 325{
342 zs = this;
343 appl = qApp;
344 DeskW = qApp->desktop()->width();
345 DeskH = qApp->desktop()->height();
346
347 IsCut = false; 326 IsCut = false;
348 IsCopy = false; 327 IsCopy = false;
349 modified = false; 328 modified = false;
350 showpwd = false; 329 showpwd = false;
351 330
352 // set the config file 331 // set the config file
353 cfgFile=QDir::homeDirPath(); 332 cfgFile=QDir::homeDirPath();
354 cfgFile += "/.zsafe.cfg"; 333 cfgFile += "/.zsafe.cfg";
355 // set the icon path 334 // set the icon path
356 335
357 QString qpeDir = QPEApplication::qpeDir(); 336 QString qpeDir = QPEApplication::qpeDir();
358 337
359 conf = new Config ("zsafe"); 338 conf = new Config ("zsafe");
360 conf->setGroup ("zsafePrefs"); 339 conf->setGroup ("zsafePrefs");
361 340
362 expandTree = conf->readNumEntry(APP_KEY+"expandTree", 0); 341 expandTree = conf->readNumEntry(APP_KEY+"expandTree", 0);
363 conf->setGroup ("zsafe"); 342 conf->setGroup ("zsafe");
364 343
365 QPixmap copy_img((const char**) copy_xpm); 344 QPixmap new_img = Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon );
366 QPixmap cut_img((const char**) cut_xpm); 345 QPixmap edit_img = Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon );
367 QPixmap edit_img((const char**) edit_xpm); 346 QPixmap trash_img = Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon );
368 QPixmap editdelete_img((const char**) editdelete_xpm); 347 QPixmap copy_img = Opie::Core::OResource::loadPixmap( "copy", Opie::Core::OResource::SmallIcon );
369 QPixmap find_img((const char**) find_xpm); 348 QPixmap cut_img = Opie::Core::OResource::loadPixmap( "cut", Opie::Core::OResource::SmallIcon );
370 QPixmap folder_open_img((const char**) folder_open_xpm); 349 QPixmap editdelete_img = Opie::Core::OResource::loadPixmap( "editdelete", Opie::Core::OResource::SmallIcon );
371 QPixmap help_icon_img((const char**) help_icon_xpm); 350 QPixmap folder_open_img = Opie::Core::OResource::loadPixmap( "folder_open", Opie::Core::OResource::SmallIcon );
372 QPixmap new_img((const char**) new_xpm); 351 QPixmap help_icon_img = Opie::Core::OResource::loadPixmap( "help_icon", Opie::Core::OResource::SmallIcon );
373 QPixmap paste_img((const char**) paste_xpm); 352 QPixmap paste_img = Opie::Core::OResource::loadPixmap( "paste", Opie::Core::OResource::SmallIcon );
374 QPixmap quit_icon_img((const char**) quit_icon_xpm); 353 QPixmap save_img = Opie::Core::OResource::loadPixmap( "save", Opie::Core::OResource::SmallIcon );
375 QPixmap save_img((const char**) save_xpm);
376 QPixmap trash_img((const char**) trash_xpm);
377 QPixmap expand_img((const char**) expand_xpm); 354 QPixmap expand_img((const char**) expand_xpm);
378 QPixmap export_img((const char**) export_xpm); 355 QPixmap export_img((const char**) export_xpm);
379 QPixmap import_img((const char**) import_xpm); 356 QPixmap import_img((const char**) import_xpm);
380 357
381 QPixmap bank_cards( ( const char** ) bank_cards_data ); 358 QPixmap bank_cards( ( const char** ) bank_cards_data );
382 QPixmap passwords( ( const char** ) passwords_data ); 359 QPixmap passwords( ( const char** ) passwords_data );
383 QPixmap software( ( const char** ) software_data ); 360 QPixmap software( ( const char** ) software_data );
384 QPixmap general( ( const char** ) general_data ); 361 QPixmap general( ( const char** ) general_data );
385 QPixmap image0( ( const char** ) zsafe_xpm ); 362 QPixmap image0 = Opie::Core::OResource::loadPixmap( "zsafe/zsafe", Opie::Core::OResource::SmallIcon );
386 363
387 if ( !name ) 364 if ( !name )
388 setName( "ZSafe" ); 365 setName( "ZSafe" );
389 366
390 setCaption( tr( "ZSafe" ) ); 367 setCaption( tr( "ZSafe" ) );
391 QString zsafeAppDirPath = QDir::homeDirPath() + "/Documents/application/zsafe"; 368 QString zsafeAppDirPath = QDir::homeDirPath() + "/Documents/application/zsafe";
392 369
393 filename = conf->readEntry(APP_KEY+"document"); 370 filename = conf->readEntry(APP_KEY+"document");
394 if ( !QFileInfo(filename).exists() || !QDir(zsafeAppDirPath).exists() ) 371 if ( !QFileInfo(filename).exists() || !QDir(zsafeAppDirPath).exists() )
395 { 372 {
396 // check if the directory application exists, if not 373 // check if the directory application exists, if not
397 // create it 374 // create it
398 QString d1(QDir::homeDirPath() + "/Documents/application"); 375 QString d1(QDir::homeDirPath() + "/Documents/application");
399 QDir pd1(d1); 376 QDir pd1(d1);
400 if (!pd1.exists()) 377 if (!pd1.exists())
401 { 378 {
402 QDir pd2(QDir::homeDirPath() + "/Documents"); 379 QDir pd2(QDir::homeDirPath() + "/Documents");
403 if (!pd2.exists()) { 380 if (!pd2.exists()) {
404 QDir pd3(QDir::homeDirPath()); 381 QDir pd3(QDir::homeDirPath());
405 if (!pd3.mkdir("Documents", FALSE)) { 382 if (!pd3.mkdir("Documents", FALSE)) {
406 } 383 }
407 } 384 }
408 385
409 if (!pd2.mkdir("application", FALSE)) 386 if (!pd2.mkdir("application", FALSE))
410 { 387 {
411 QMessageBox::critical( 0, tr("ZSafe"), 388 QMessageBox::critical( 0, tr("ZSafe"),
412 tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d1)); 389 tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d1));
413 exitZs (1); 390 exitZs (1);
414 } 391 }
415 } 392 }
416 QString d2(QDir::homeDirPath() + "/Documents/application/zsafe"); 393 QString d2(QDir::homeDirPath() + "/Documents/application/zsafe");
417 QDir pd2(d2); 394 QDir pd2(d2);
418 if (!pd2.exists()) 395 if (!pd2.exists())
419 { 396 {
420 if (!pd1.mkdir("zsafe", FALSE)) 397 if (!pd1.mkdir("zsafe", FALSE))
421 { 398 {
422 QMessageBox::critical( 0, tr("ZSafe"), 399 QMessageBox::critical( 0, tr("ZSafe"),
423 tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d2)); 400 tr("<P>Can't create directory %1</P><P>ZSafe will now exit.</P>").arg(d2));
424 exitZs (1); 401 exitZs (1);
425 } 402 }
426 } 403 }
427 404
428 filename = zsafeAppDirPath + "/passwords.zsf"; 405 filename = zsafeAppDirPath + "/passwords.zsf";
429 406
430 // save the current filename to the config file 407 // save the current filename to the config file
431 conf->writeEntry(APP_KEY+"document", filename); 408 conf->writeEntry(APP_KEY+"document", filename);
432 saveConf(); 409 saveConf();
433 } 410 }
434 //if (filename == "INVALIDPWD") 411 //if (filename == "INVALIDPWD")
435 //filename = ""; 412 //filename = "";
436 413
437 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); 414 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1);
438 this->setCaption(tr("ZSafe: ") + ti); 415 this->setCaption(tr("ZSafe: ") + ti);
439 416
440 selectedItem = NULL; 417 selectedItem = NULL;
441 lastSearchedCategory = NULL; 418 lastSearchedCategory = NULL;
442 lastSearchedItem = NULL; 419 lastSearchedItem = NULL;
443 lastSearchedName = ""; 420 lastSearchedName = "";
444 lastSearchedUsername = ""; 421 lastSearchedUsername = "";
445 lastSearchedComment = ""; 422 lastSearchedComment = "";
446 423
447 infoForm = new InfoForm(this, "show_info", TRUE); 424 infoForm = new InfoForm(this, "show_info", TRUE);
448 categoryDialog = NULL; 425 categoryDialog = NULL;
449 infoForm->setIcon( image0); 426 infoForm->setIcon( image0);
450 427
428 // Create menu and tool bar dock
429 setToolBarsMovable( false );
430 QToolBar *dock = new QToolBar( this );
431 dock->setHorizontalStretchable( true );
432
451 // add a menu bar 433 // add a menu bar
452 QMenuBar *menu = new QMenuBar( this ); 434 QMenuBar *menu = new QMenuBar( dock );
435 menu->setMargin( 0 );
436
437 // Add a toolbar
438 QToolBar *toolbar = new QToolBar( this );
453 439
454 // add file menu 440 // add file menu
455 // QPopupMenu *file = new QPopupMenu( this ); 441 // QPopupMenu *file = new QPopupMenu( this );
456 file = new QPopupMenu( this ); 442 file = new QPopupMenu( this );
457 443
458 file->insertItem( new_img, tr("&New document"), this, SLOT(newDocument()) ); 444 // File menu
459 file->insertItem( folder_open_img, tr("&Open document"), this, SLOT(loadDocument()) ); 445 file->insertItem( new_img, tr("New document"), this, SLOT(newDocument()) );
460 file->insertItem( save_img, tr("&Save document as .."), this, SLOT(saveDocumentAs()) ); 446 file->insertItem( folder_open_img, tr("Open document"), this, SLOT(loadDocument()) );
447 file->insertItem( save_img, tr("Save document as"), this, SLOT(saveDocumentAs()) );
461 file->insertSeparator(); 448 file->insertSeparator();
462 449
463 file->insertItem( save_img, tr("&Save document"), this, SLOT(saveDocumentWithoutPwd()) ); 450 file->insertItem( save_img, tr("Save document"), this, SLOT(saveDocumentWithoutPwd()) );
464 file->insertItem( save_img, tr("S&ave document with new Password"), this, 451 file->insertItem( save_img, tr("Save document with new Password"), this,
465 SLOT(saveDocumentWithPwd()) ); 452 SLOT(saveDocumentWithPwd()) );
466 file->insertSeparator(); 453 file->insertSeparator();
467 file->insertItem( export_img, tr("&Export text file"), this, SLOT(writeAllEntries()) ); 454 file->insertItem( export_img, tr("Export text file"), this, SLOT(writeAllEntries()) );
468 file->insertItem( import_img, tr("&Import text file"), this, SLOT(readAllEntries()) ); 455 file->insertItem( import_img, tr("Import text file"), this, SLOT(readAllEntries()) );
469 file->insertItem( trash_img, tr("&Remove text file"), this, SLOT(removeAsciiFile()) ); 456 file->insertItem( trash_img, tr("Remove text file"), this, SLOT(removeAsciiFile()) );
470 file->insertSeparator(); 457 file->insertSeparator();
471 file->insertItem( expand_img, tr("&Open entries expanded"), this, 458 file->insertItem( expand_img, tr("Open entries expanded"), this,
472 SLOT(setExpandFlag()), 0, 'o'); 459 SLOT(setExpandFlag()), 0, 'o');
473 file->setItemChecked('o', expandTree); 460 file->setItemChecked('o', expandTree);
474 file->insertSeparator(); 461 menu->insertItem( tr("File"), file );
475 file->insertItem( quit_icon_img, tr("E&xit"), this, SLOT(quitMe()) );
476 menu->insertItem( tr("&File"), file );
477 462
463 // Category menu
478 QPopupMenu *cat = new QPopupMenu( this ); 464 QPopupMenu *cat = new QPopupMenu( this );
479 cat->insertItem( new_img, tr("&New"), this, SLOT(addCategory()) ); 465 cat->insertItem( new_img, tr("New"), this, SLOT(addCategory()) );
480 cat->insertItem( edit_img, tr("&Edit"), this, SLOT(editCategory()) ); 466 cat->insertItem( edit_img, tr("Edit"), this, SLOT(editCategory()) );
481 cat->insertItem( trash_img, tr("&Delete"), this, SLOT(delCategory()) ); 467 cat->insertItem( trash_img, tr("Delete"), this, SLOT(delCategory()) );
482 menu->insertItem( tr("&Category"), cat ); 468 menu->insertItem( tr("Category"), cat );
483 469
470 // Entry menu
484 QPopupMenu *it = new QPopupMenu( this ); 471 QPopupMenu *it = new QPopupMenu( this );
485 it->insertItem( cut_img, tr("&Cut"), this, SLOT(cutItem()) ); 472 it->insertItem( cut_img, tr("Cut"), this, SLOT(cutItem()) );
486 it->insertItem( copy_img, tr("C&opy"), this, SLOT(copyItem()) ); 473 it->insertItem( copy_img, tr("Copy"), this, SLOT(copyItem()) );
487 it->insertItem( paste_img, tr("&Paste"), this, SLOT(pasteItem()) ); 474 it->insertItem( paste_img, tr("Paste"), this, SLOT(pasteItem()) );
488 it->insertSeparator(); 475 it->insertSeparator();
489 it->insertItem( new_img, tr("&New"), this, SLOT(newPwd()) );
490 it->insertItem( edit_img, tr("&Edit"), this, SLOT(editPwd()) );
491 it->insertItem( trash_img, tr("&Delete"), this, SLOT(deletePwd()) );
492 it->insertItem( find_img, tr("&Search"), this, SLOT(findPwd()) );
493 menu->insertItem( tr("&Entry"), it );
494
495 QPopupMenu *help = new QPopupMenu( this );
496 help->insertItem( help_icon_img, tr("&About"), this, SLOT(about()) );
497 menu->insertItem( tr("&Help"), help );
498
499 // toolbar icons
500
501 New = new QToolButton( menu, "New" );
502 New->setGeometry( QRect( DeskW-84, 2, 20, 20 ) );
503 New->setMouseTracking( TRUE );
504 New->setText( "" );
505 New->setPixmap( new_img );
506 QToolTip::add( New, tr( "New entry" ) );
507
508 Edit = new QToolButton( menu, "Edit" );
509 Edit->setGeometry( QRect( DeskW-64, 2, 20, 20 ) );
510 Edit->setText( "" );
511 Edit->setPixmap( edit_img );
512 QToolTip::add( Edit, tr( "Edit category or entry" ) );
513
514 Delete = new QToolButton( menu, "Delete" );
515 Delete->setGeometry( QRect( DeskW-44, 2, 20, 20 ) );
516 Delete->setText( "" );
517 Delete->setPixmap( trash_img );
518 QToolTip::add( Delete, tr( "Delete category or entry" ) );
519
520 Find = new QToolButton( menu, "Find" );
521 Find->setGeometry( QRect( DeskW-24, 2, 20, 20 ) );
522 Find->setText( "" );
523 Find->setPixmap( find_img );
524 QToolTip::add( Find, tr( "Find entry" ) );
525
526/*
527 QBoxLayout * h = new QHBoxLayout( this );
528 h->addWidget (menu);
529 h->addWidget (New);
530 h->addWidget (Edit);
531 h->addWidget (Delete);
532 h->addWidget (Find);
533*/
534 476
477 QAction *a = new QAction( tr( "New" ), new_img, QString::null, 0, this, 0 );
478 connect( a, SIGNAL(activated()), this, SLOT(newPwd()) );
479 a->addTo( it );
480 a->addTo( toolbar );
481 a = new QAction( tr( "Edit" ), edit_img, QString::null, 0, this, 0 );
482 connect( a, SIGNAL(activated()), this, SLOT(editPwd()) );
483 a->addTo( it );
484 a->addTo( toolbar );
485 a = new QAction( tr( "Delete" ), trash_img, QString::null, 0, this, 0 );
486 connect( a, SIGNAL(activated()), this, SLOT(deletePwd()) );
487 a->addTo( it );
488 a->addTo( toolbar );
489 a = new QAction( tr( "Search" ), Opie::Core::OResource::loadPixmap( "find", Opie::Core::OResource::SmallIcon ),
490 QString::null, 0, this, 0 );
491 connect( a, SIGNAL(activated()), this, SLOT(findPwd()) );
492 a->addTo( it );
493 a->addTo( toolbar );
494 menu->insertItem( tr("Entry"), it );
495
496 // Add main view
535 ListView = new ZListView( this, "ListView" ); 497 ListView = new ZListView( this, "ListView" );
536 ListView->addColumn( tr( "Name" ) ); 498 ListView->addColumn( tr( "Name" ) );
537 ListView->addColumn( tr( "Field 2" ) ); 499 ListView->addColumn( tr( "Field 2" ) );
538 ListView->addColumn( tr( "Field 3" ) ); 500 ListView->addColumn( tr( "Field 3" ) );
539 ListView->addColumn( tr( "Comment" ) ); 501 ListView->addColumn( tr( "Comment" ) );
540 ListView->addColumn( tr( "Field 4" ) ); 502 ListView->addColumn( tr( "Field 4" ) );
541 ListView->addColumn( tr( "Field 5" ) ); 503 ListView->addColumn( tr( "Field 5" ) );
542 ListView->setAllColumnsShowFocus(TRUE); 504 ListView->setAllColumnsShowFocus(TRUE);
543 505
544 ListView->setResizePolicy(QScrollView::AutoOneFit); 506 ListView->setResizePolicy(QScrollView::AutoOneFit);
545 // ListView->setGeometry( QRect( 0, 22, 507 setCentralWidget( ListView );
546 // this->width(), this->height() - 30 ) );
547 // ListView->setMaximumSize( QSize( 440, 290 ) );
548 // ListView->setVScrollBarMode( QListView::Auto );
549 508
550 QBoxLayout * l = new QVBoxLayout( this ); 509 QBoxLayout * l = new QVBoxLayout( this );
551 l->addWidget (menu); 510 l->addWidget (menu);
552 l->addWidget (ListView); 511 l->addWidget (ListView);
553 512
554 // start a timer (100 ms) to load the default document 513 // start a timer (100 ms) to load the default document
555 docuTimer.start( 100, true ); 514 docuTimer.start( 100, true );
556 connect( &docuTimer, SIGNAL(timeout()), SLOT( slotLoadDocu() ) ); 515 connect( &docuTimer, SIGNAL(timeout()), SLOT( slotLoadDocu() ) );
557 raiseFlag = true; 516 raiseFlag = true;
558 connect( &raiseTimer, SIGNAL(timeout()), SLOT( slotRaiseTimer() ) ); 517 connect( &raiseTimer, SIGNAL(timeout()), SLOT( slotRaiseTimer() ) );
559 518
560 // signals and slots connections for QTollButton
561 connect( New, SIGNAL( clicked() ), this, SLOT( newPwd() ) );
562 connect( Edit, SIGNAL( clicked() ), this, SLOT( editPwd() ) );
563 connect( Delete, SIGNAL( clicked() ), this, SLOT( deletePwd() ) );
564 connect( Find, SIGNAL( clicked() ), this, SLOT( findPwd() ) );
565 // signals and slots connections for QListView 519 // signals and slots connections for QListView
566 connect( ListView, SIGNAL( selectionChanged(QListViewItem*) ), 520 connect( ListView, SIGNAL( selectionChanged(QListViewItem*) ),
567 this, SLOT( listViewSelected(QListViewItem*) ) ); 521 this, SLOT( listViewSelected(QListViewItem*) ) );
568 connect( ListView, SIGNAL( doubleClicked(QListViewItem*) ), 522 connect( ListView, SIGNAL( doubleClicked(QListViewItem*) ),
569 this, SLOT( showInfo(QListViewItem*) ) ); 523 this, SLOT( showInfo(QListViewItem*) ) );
570 connect( ListView, SIGNAL( returnPressed(QListViewItem*) ), 524 connect( ListView, SIGNAL( returnPressed(QListViewItem*) ),
571 this, SLOT( showInfo(QListViewItem*) ) ); 525 this, SLOT( showInfo(QListViewItem*) ) );
572 526
573 QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold); 527 QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold);
574 connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 528 connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
575 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); 529 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) );
576 530
577 this->setIcon( image0); 531 this->setIcon( image0);
578} 532}
579 533
580const QColor *ZSafe::evenRowColor = &Qt::white; 534const QColor *ZSafe::evenRowColor = &Qt::white;
581// const QColor *ZSafe::oddRowColor = &Qt::lightGray; 535// const QColor *ZSafe::oddRowColor = &Qt::lightGray;
582const QColor *ZSafe::oddRowColor = new QColor(216,240,255); 536const QColor *ZSafe::oddRowColor = new QColor(216,240,255);
583 537
584/* 538/*
585 * Destroys the object and frees any allocated resources 539 * Destroys the object and frees any allocated resources
586 */ 540 */
587ZSafe::~ZSafe() 541ZSafe::~ZSafe()
588{ 542{
589 // no need to delete child widgets, Qt does it all for us 543 // no need to delete child widgets, Qt does it all for us
590 quitMe(); 544 quitMe();
591} 545}
592 546
593// load the default document 547// load the default document
594void ZSafe::slotLoadDocu() 548void ZSafe::slotLoadDocu()
595{ 549{
596 openDocument (filename); 550 openDocument (filename);
597} 551}
598 552
599void ZSafe::deletePwd() 553void ZSafe::deletePwd()
600{ 554{
601 555
602 if (!selectedItem) 556 if (!selectedItem)
603 return; 557 return;
604 if (!isCategory(selectedItem)) 558 if (!isCategory(selectedItem))
605 { 559 {
606 switch( QMessageBox::information( this, tr("ZSafe"), 560 switch( QMessageBox::information( this, tr("ZSafe"),
607 tr("Do you want to delete?"), 561 tr("Do you want to delete?"),
608 tr("&Delete"), tr("D&on't Delete"), 562 tr("&Delete"), tr("D&on't Delete"),
609 0 // Enter == button 0 563 0 // Enter == button 0
610 ) ) { // Escape == button 2 564 ) ) { // Escape == button 2
611 case 0: // Delete clicked, Alt-S or Enter pressed. 565 case 0: // Delete clicked, Alt-S or Enter pressed.
612 // Delete 566 // Delete
613 modified = true; 567 modified = true;
614 selectedItem->parent()->takeItem(selectedItem); 568 selectedItem->parent()->takeItem(selectedItem);
615 selectedItem = NULL; 569 selectedItem = NULL;
616 break; 570 break;
617 case 1: // Don't delete 571 case 1: // Don't delete
618 break; 572 break;
619 } 573 }
620 } 574 }
621 else 575 else
622 { 576 {
623 delCategory(); 577 delCategory();
624 } 578 }
625} 579}
626 580
627void ZSafe::editPwd() 581void ZSafe::editPwd()
628{ 582{
@@ -2049,130 +2003,130 @@ bool ZSafe::saveDocument(const char* _filename,
2049 entry[j] = (char*)malloc(strlen(i->text(0).utf8())+1); 2003 entry[j] = (char*)malloc(strlen(i->text(0).utf8())+1);
2050 strcpy(entry[j++], i->text(0).utf8()); 2004 strcpy(entry[j++], i->text(0).utf8());
2051 entry[j] = (char*)malloc(strlen(si->text(0).utf8())+1); 2005 entry[j] = (char*)malloc(strlen(si->text(0).utf8())+1);
2052 strcpy(entry[j++], si->text(0).utf8()); 2006 strcpy(entry[j++], si->text(0).utf8());
2053 entry[j] = (char*)malloc(strlen(si->text(1).utf8())+1); 2007 entry[j] = (char*)malloc(strlen(si->text(1).utf8())+1);
2054 strcpy(entry[j++], si->text(1).utf8()); 2008 strcpy(entry[j++], si->text(1).utf8());
2055 entry[j] = (char*)malloc(strlen(si->text(2).utf8())+1); 2009 entry[j] = (char*)malloc(strlen(si->text(2).utf8())+1);
2056 strcpy(entry[j++], si->text(2).utf8()); 2010 strcpy(entry[j++], si->text(2).utf8());
2057 entry[j] = (char*)malloc(strlen(si->text(3).utf8())+1); 2011 entry[j] = (char*)malloc(strlen(si->text(3).utf8())+1);
2058 strcpy(entry[j++], si->text(3).utf8()); 2012 strcpy(entry[j++], si->text(3).utf8());
2059 entry[j] = (char*)malloc(strlen(si->text(4).utf8())+1); 2013 entry[j] = (char*)malloc(strlen(si->text(4).utf8())+1);
2060 strcpy(entry[j++], si->text(4).utf8()); 2014 strcpy(entry[j++], si->text(4).utf8());
2061 entry[j] = (char*)malloc(strlen(si->text(5).utf8())+1); 2015 entry[j] = (char*)malloc(strlen(si->text(5).utf8())+1);
2062 strcpy(entry[j++], si->text(5).utf8()); 2016 strcpy(entry[j++], si->text(5).utf8());
2063 2017
2064 retval = saveEntry(entry); 2018 retval = saveEntry(entry);
2065 for (int z=0; z<j; z++) 2019 for (int z=0; z<j; z++)
2066 { 2020 {
2067 free(entry[z]); 2021 free(entry[z]);
2068 } 2022 }
2069 if (retval == PWERR_DATA) { 2023 if (retval == PWERR_DATA) {
2070#ifndef NO_OPIE 2024#ifndef NO_OPIE
2071 owarn << "1: Error writing file, contents not saved" << oendl; 2025 owarn << "1: Error writing file, contents not saved" << oendl;
2072#else 2026#else
2073 qWarning("1: Error writing file, contents not saved"); 2027 qWarning("1: Error writing file, contents not saved");
2074#endif 2028#endif
2075 saveFinalize(); 2029 saveFinalize();
2076 return false; 2030 return false;
2077 } 2031 }
2078 2032
2079 } 2033 }
2080 } 2034 }
2081 2035
2082 if (saveFinalize() == PWERR_DATA) { 2036 if (saveFinalize() == PWERR_DATA) {
2083#ifndef NO_OPIE 2037#ifndef NO_OPIE
2084 owarn << "2: Error writing file, contents not saved" << oendl; 2038 owarn << "2: Error writing file, contents not saved" << oendl;
2085#else 2039#else
2086 qWarning("2: Error writing file, contents not saved"); 2040 qWarning("2: Error writing file, contents not saved");
2087#endif 2041#endif
2088 return false; 2042 return false;
2089 } else { 2043 } else {
2090#ifndef DESKTOP 2044#ifndef DESKTOP
2091 Global::statusMessage (tr("Password file saved.")); 2045 Global::statusMessage (tr("Password file saved."));
2092#endif 2046#endif
2093 modified = false; 2047 modified = false;
2094 return true; 2048 return true;
2095 } 2049 }
2096} 2050}
2097 2051
2098PasswordForm *newPwdDialog; 2052PasswordForm *newPwdDialog;
2099bool newPwdDialogResult = false; 2053bool newPwdDialogResult = false;
2100void ZSafe::setPasswordDialogDone() 2054void ZSafe::setPasswordDialogDone()
2101{ 2055{
2102 newPwdDialogResult = true; 2056 newPwdDialogResult = true;
2103 newPwdDialog->close(); 2057 newPwdDialog->close();
2104} 2058}
2105 2059
2106void ZSafe::getDocPassword(QString title) 2060void ZSafe::getDocPassword(QString title)
2107{ 2061{
2108 // open the 'Password' dialog 2062 // open the 'Password' dialog
2109 PasswordForm *dialog = new PasswordForm(this, title, TRUE); 2063 PasswordForm *dialog = new PasswordForm(this, title, TRUE);
2110 newPwdDialog = dialog; 2064 newPwdDialog = dialog;
2111 newPwdDialogResult = false; 2065 newPwdDialogResult = false;
2112 2066
2113 QPixmap image0( ( const char** ) zsafe_xpm ); 2067// QPixmap image0 = Opie::Core::OResource::loadPixmap( "zsafe/zsafe", Opie::Core::OResource::SmallIcon );
2114 dialog->setIcon( image0); 2068 // dialog->setIcon( image0);
2115 2069
2116 connect( dialog->PasswordField, SIGNAL( returnPressed() ), 2070 connect( dialog->PasswordField, SIGNAL( returnPressed() ),
2117 this, SLOT( setPasswordDialogDone() ) ); 2071 this, SLOT( setPasswordDialogDone() ) );
2118 2072
2119 // CS: !!! 2073 // CS: !!!
2120 // int pos = filename.findRev ('/'); 2074 // int pos = filename.findRev ('/');
2121 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); 2075 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1);
2122 dialog->setCaption(ti); 2076 dialog->setCaption(ti);
2123 // dialog->setCaption(title); 2077 // dialog->setCaption(title);
2124 2078
2125 dialog->PasswordField->setFocus(); 2079 dialog->PasswordField->setFocus();
2126 QDialog::DialogCode result = (QDialog::DialogCode) dialog->exec(); 2080 QDialog::DialogCode result = (QDialog::DialogCode) dialog->exec();
2127 2081
2128 QString password; 2082 QString password;
2129 if (result == QDialog::Accepted || newPwdDialogResult) 2083 if (result == QDialog::Accepted || newPwdDialogResult)
2130 { 2084 {
2131 m_password = dialog->PasswordField->text(); 2085 m_password = dialog->PasswordField->text();
2132 } 2086 }
2133 else 2087 else
2134 { 2088 {
2135 exitZs (1); 2089 exitZs (1);
2136 } 2090 }
2137} 2091}
2138 2092
2139int ZSafe::saveInit(const char *_filename, const char *password) 2093int ZSafe::saveInit(const char *_filename, const char *password)
2140{ 2094{
2141 char key[128]; 2095 char key[128];
2142 unsigned int j = 0; 2096 unsigned int j = 0;
2143 unsigned int keylength; 2097 unsigned int keylength;
2144 // int val; 2098 // int val;
2145 int count2; 2099 int count2;
2146 Krc2* krc2 = new Krc2(); 2100 Krc2* krc2 = new Krc2();
2147 2101
2148 /* first we should check the permissions of the filename */ 2102 /* first we should check the permissions of the filename */
2149/* 2103/*
2150 if (QFile::exists(_filename)) { 2104 if (QFile::exists(_filename)) {
2151 val = checkFile(_filename); 2105 val = checkFile(_filename);
2152 if (val != PWERR_GOOD) 2106 if (val != PWERR_GOOD)
2153 return val; 2107 return val;
2154 } else 2108 } else
2155 { 2109 {
2156 val = creat (_filename, (S_IRUSR | S_IWUSR)); 2110 val = creat (_filename, (S_IRUSR | S_IWUSR));
2157 if (val == -1) 2111 if (val == -1)
2158 return PWERR_OPEN; 2112 return PWERR_OPEN;
2159 else 2113 else
2160 close(val); 2114 close(val);
2161 } 2115 }
2162*/ 2116*/
2163 QFileInfo f (_filename); 2117 QFileInfo f (_filename);
2164 save_buffer_length = f.size(); 2118 save_buffer_length = f.size();
2165 save_buffer_length = ((save_buffer_length / 1024)+1) * 1024; 2119 save_buffer_length = ((save_buffer_length / 1024)+1) * 1024;
2166 2120
2167 fd = fopen (_filename, "wb"); 2121 fd = fopen (_filename, "wb");
2168 if (fd == NULL) 2122 if (fd == NULL)
2169 return PWERR_OPEN; 2123 return PWERR_OPEN;
2170 2124
2171 buffer = (char*)malloc(save_buffer_length); 2125 buffer = (char*)malloc(save_buffer_length);
2172 2126
2173 /* make the key ready */ 2127 /* make the key ready */
2174 for (j = 0; password[j] != '\0'; j++) { 2128 for (j = 0; password[j] != '\0'; j++) {
2175 key[j] = password[j]; 2129 key[j] = password[j];
2176 } 2130 }
2177 keylength = j; 2131 keylength = j;
2178 krc2->rc2_expandkey (key, keylength, 128); 2132 krc2->rc2_expandkey (key, keylength, 128);
@@ -2346,132 +2300,129 @@ void ZSafe::addCategory()
2346 } 2300 }
2347 2301
2348 // read all categories from the config file and store 2302 // read all categories from the config file and store
2349 // into a list 2303 // into a list
2350 QFile f (cfgFile); 2304 QFile f (cfgFile);
2351 QStringList list; 2305 QStringList list;
2352 if ( f.open(IO_ReadOnly) ) { // file opened successfully 2306 if ( f.open(IO_ReadOnly) ) { // file opened successfully
2353 QTextStream t( &f ); // use a text stream 2307 QTextStream t( &f ); // use a text stream
2354 QString s; 2308 QString s;
2355 while ( !t.eof() ) { // until end of file... 2309 while ( !t.eof() ) { // until end of file...
2356 s = t.readLine(); // line of text excluding '\n' 2310 s = t.readLine(); // line of text excluding '\n'
2357 list.append(s); 2311 list.append(s);
2358 } 2312 }
2359 f.close(); 2313 f.close();
2360 } 2314 }
2361 QStringList::Iterator it = list.begin(); 2315 QStringList::Iterator it = list.begin();
2362 QString categ; 2316 QString categ;
2363 QString firstCategory; 2317 QString firstCategory;
2364 dialog->CategoryField->clear(); // remove all items 2318 dialog->CategoryField->clear(); // remove all items
2365 while( it != list.end() ) 2319 while( it != list.end() )
2366 { 2320 {
2367 QString *cat = new QString (*it); 2321 QString *cat = new QString (*it);
2368 if (cat->contains("-field1", FALSE)) 2322 if (cat->contains("-field1", FALSE))
2369 { 2323 {
2370 int pos = cat->find ("-field1"); 2324 int pos = cat->find ("-field1");
2371 cat->truncate(pos); 2325 cat->truncate(pos);
2372 categ = *cat; 2326 categ = *cat;
2373 if (!categ.isEmpty()) 2327 if (!categ.isEmpty())
2374 { 2328 {
2375 dialog->CategoryField->insertItem (categ, -1); 2329 dialog->CategoryField->insertItem (categ, -1);
2376 if (firstCategory.isEmpty()) 2330 if (firstCategory.isEmpty())
2377 firstCategory = categ; 2331 firstCategory = categ;
2378 } 2332 }
2379 } 2333 }
2380 ++it; 2334 ++it;
2381 } 2335 }
2382 2336
2383 2337
2384 if (firstCategory.isEmpty()) 2338 if (firstCategory.isEmpty())
2385 setCategoryDialogFields(dialog); 2339 setCategoryDialogFields(dialog);
2386 else 2340 else
2387 setCategoryDialogFields(dialog, firstCategory); 2341 setCategoryDialogFields(dialog, firstCategory);
2388 2342
2389 // CategoryDialog *dialog = new CategoryDialog(this, "Category", TRUE); 2343 // CategoryDialog *dialog = new CategoryDialog(this, "Category", TRUE);
2390 2344
2391 if (initIcons) 2345 if (initIcons)
2392 { 2346 {
2393 Wait waitDialog(this, tr("Wait dialog")); 2347 Wait waitDialog(this, tr("Wait dialog"));
2394 waitDialog.waitLabel->setText(tr("Gathering icons...")); 2348 waitDialog.waitLabel->setText(tr("Gathering icons..."));
2395 waitDialog.show(); 2349 waitDialog.show();
2396 qApp->processEvents(); 2350 qApp->processEvents();
2397 2351
2398 QDir d(QPEApplication::qpeDir() + "pics/"); 2352 QDir d(QPEApplication::qpeDir() + "pics/");
2399 d.setFilter( QDir::Files); 2353 d.setFilter( QDir::Files);
2400 2354
2401 const QFileInfoList *list = d.entryInfoList(); 2355 const QFileInfoList *list = d.entryInfoList();
2402 QFileInfoListIterator it( *list ); // create list iterator 2356 QFileInfoListIterator it( *list ); // create list iterator
2403 QFileInfo *fi; // pointer for traversing 2357 QFileInfo *fi; // pointer for traversing
2404 2358
2405 dialog->IconField->insertItem("predefined"); 2359 dialog->IconField->insertItem("predefined");
2406 while ( (fi=it.current()) ) { // for each file... 2360 while ( (fi=it.current()) ) { // for each file...
2407 QString fileName = fi->fileName(); 2361 QString fileName = fi->fileName();
2408 if(fileName.right(4) == ".png"){ 2362 if(fileName.right(4) == ".png"){
2409 fileName = fileName.mid(0,fileName.length()-4); 2363 fileName = fileName.mid(0,fileName.length()-4);
2410 QPixmap imageOfFile(Resource::loadPixmap(fileName)); 2364 QPixmap imageOfFile(Opie::Core::OResource::loadPixmap(fileName,Opie::Core::OResource::SmallIcon));
2411 QImage foo = imageOfFile.convertToImage();
2412 foo = foo.smoothScale(16,16);
2413 imageOfFile.convertFromImage(foo);
2414 dialog->IconField->insertItem(imageOfFile,fileName); 2365 dialog->IconField->insertItem(imageOfFile,fileName);
2415 } 2366 }
2416 ++it; 2367 ++it;
2417 } 2368 }
2418 waitDialog.hide(); 2369 waitDialog.hide();
2419 } 2370 }
2420 2371
2421 QDialog::DialogCode result = (QDialog::DialogCode) dialog->exec(); 2372 QDialog::DialogCode result = (QDialog::DialogCode) dialog->exec();
2422 QString category; 2373 QString category;
2423 QString icon; 2374 QString icon;
2424 QString fullIconPath; 2375 QString fullIconPath;
2425 QPixmap *pix; 2376 QPixmap *pix;
2426 if (result == QDialog::Accepted) 2377 if (result == QDialog::Accepted)
2427 { 2378 {
2428 modified = true; 2379 modified = true;
2429 category = dialog->CategoryField->currentText(); 2380 category = dialog->CategoryField->currentText();
2430 icon = dialog->IconField->currentText()+".png"; 2381 icon = dialog->IconField->currentText()+".png";
2431 2382
2432 QListViewItem *li = new ShadedListItem( 1, ListView ); 2383 QListViewItem *li = new ShadedListItem( 1, ListView );
2433 Category *c1 = new Category(); 2384 Category *c1 = new Category();
2434 c1->setCategoryName(category); 2385 c1->setCategoryName(category);
2435 2386
2436 // if (!icon.isEmpty() && !icon.isNull()) 2387 // if (!icon.isEmpty() && !icon.isNull())
2437 if (icon != "predefined.png") 2388 if (icon != "predefined.png")
2438 { 2389 {
2439 // build the full path 2390 // build the full path
2440 fullIconPath = iconPath + icon; 2391 fullIconPath = iconPath + icon;
2441 pix = new QPixmap (fullIconPath); 2392 pix = new QPixmap (fullIconPath);
2442 // pix->resize(14, 14); 2393 // pix->resize(14, 14);
2443 if (!pix->isNull()) 2394 if (!pix->isNull())
2444 { 2395 {
2445 // save the full pixmap name into the config file 2396 // save the full pixmap name into the config file
2446// #ifndef Q_WS_WIN 2397// #ifndef Q_WS_WIN
2447 conf->writeEntry(APP_KEY+category, icon); 2398 conf->writeEntry(APP_KEY+category, icon);
2448// #endif 2399// #endif
2449 saveConf(); 2400 saveConf();
2450 QImage img = pix->convertToImage(); 2401 QImage img = pix->convertToImage();
2451 pix->convertFromImage(img.smoothScale(14,14)); 2402 pix->convertFromImage(img.smoothScale(14,14));
2452 c1->setIcon (*pix); 2403 c1->setIcon (*pix);
2453 c1->setIconName(icon); 2404 c1->setIconName(icon);
2454 } 2405 }
2455 else 2406 else
2456 { 2407 {
2457 QPixmap folder( ( const char** ) general_data ); 2408 QPixmap folder( ( const char** ) general_data );
2458 c1->setIcon (folder); 2409 c1->setIcon (folder);
2459 } 2410 }
2460 } 2411 }
2461 else 2412 else
2462 { 2413 {
2463 c1->setIcon (*getPredefinedIcon(category)); 2414 c1->setIcon (*getPredefinedIcon(category));
2464 } 2415 }
2465 2416
2466 c1->setListItem (li); 2417 c1->setListItem (li);
2467 c1->initListItem(); 2418 c1->initListItem();
2468 categories.insert (c1->getCategoryName(), c1); 2419 categories.insert (c1->getCategoryName(), c1);
2469 2420
2470 saveCategoryDialogFields(dialog); 2421 saveCategoryDialogFields(dialog);
2471 } 2422 }
2472 else 2423 else
2473 { 2424 {
2474 // delete dialog; 2425 // delete dialog;
2475 dialog->hide(); 2426 dialog->hide();
2476 return; 2427 return;
2477 } 2428 }
@@ -2700,132 +2651,129 @@ void ZSafe::editCategory()
2700 QString categ; 2651 QString categ;
2701 dialog->CategoryField->clear(); // remove all items 2652 dialog->CategoryField->clear(); // remove all items
2702 int i=0; 2653 int i=0;
2703 bool foundCategory = false; 2654 bool foundCategory = false;
2704 while( it != list.end() ) 2655 while( it != list.end() )
2705 { 2656 {
2706 QString *cat = new QString (*it); 2657 QString *cat = new QString (*it);
2707 if (cat->contains("-field1", FALSE)) 2658 if (cat->contains("-field1", FALSE))
2708 { 2659 {
2709 int pos = cat->find ("-field1"); 2660 int pos = cat->find ("-field1");
2710 cat->truncate(pos); 2661 cat->truncate(pos);
2711 categ = *cat; 2662 categ = *cat;
2712 if (!categ.isEmpty()) 2663 if (!categ.isEmpty())
2713 { 2664 {
2714 dialog->CategoryField->insertItem (categ, i); 2665 dialog->CategoryField->insertItem (categ, i);
2715 if (category.compare(categ) == 0) 2666 if (category.compare(categ) == 0)
2716 { 2667 {
2717 dialog->CategoryField->setCurrentItem(i); 2668 dialog->CategoryField->setCurrentItem(i);
2718 foundCategory = true; 2669 foundCategory = true;
2719 } 2670 }
2720 i++; 2671 i++;
2721 } 2672 }
2722 } 2673 }
2723 ++it; 2674 ++it;
2724 } 2675 }
2725 if (!foundCategory) 2676 if (!foundCategory)
2726 { 2677 {
2727 dialog->CategoryField->insertItem (category, i); 2678 dialog->CategoryField->insertItem (category, i);
2728 dialog->CategoryField->setCurrentItem(i); 2679 dialog->CategoryField->setCurrentItem(i);
2729 } 2680 }
2730 2681
2731 QString icon; 2682 QString icon;
2732 Category *cat= categories.find (selectedItem->text(0)); 2683 Category *cat= categories.find (selectedItem->text(0));
2733 if (cat) 2684 if (cat)
2734 { 2685 {
2735 icon = cat->getIconName(); 2686 icon = cat->getIconName();
2736 } 2687 }
2737 2688
2738 if (initIcons) 2689 if (initIcons)
2739 { 2690 {
2740 2691
2741 Wait waitDialog(this, tr("Wait dialog")); 2692 Wait waitDialog(this, tr("Wait dialog"));
2742 waitDialog.waitLabel->setText(tr("Gathering icons...")); 2693 waitDialog.waitLabel->setText(tr("Gathering icons..."));
2743 waitDialog.show(); 2694 waitDialog.show();
2744 qApp->processEvents(); 2695 qApp->processEvents();
2745 2696
2746 QDir d(QPEApplication::qpeDir() + "pics/"); 2697 QDir d(QPEApplication::qpeDir() + "pics/");
2747 d.setFilter( QDir::Files); 2698 d.setFilter( QDir::Files);
2748 2699
2749 const QFileInfoList *list = d.entryInfoList(); 2700 const QFileInfoList *list = d.entryInfoList();
2750 int i=0; 2701 int i=0;
2751 QFileInfoListIterator it( *list ); // create list iterator 2702 QFileInfoListIterator it( *list ); // create list iterator
2752 QFileInfo *fi; // pointer for traversing 2703 QFileInfo *fi; // pointer for traversing
2753 if (icon.isEmpty() || icon.isNull()) 2704 if (icon.isEmpty() || icon.isNull())
2754 { 2705 {
2755 dialog->IconField->setCurrentItem(0); 2706 dialog->IconField->setCurrentItem(0);
2756 } 2707 }
2757 2708
2758 dialog->IconField->insertItem("predefined"); 2709 dialog->IconField->insertItem("predefined");
2759 while ( (fi=it.current()) ) { // for each file... 2710 while ( (fi=it.current()) ) { // for each file...
2760 QString fileName = fi->fileName(); 2711 QString fileName = fi->fileName();
2761 if(fileName.right(4) == ".png") 2712 if(fileName.right(4) == ".png")
2762 { 2713 {
2763 fileName = fileName.mid(0,fileName.length()-4); 2714 fileName = fileName.mid(0,fileName.length()-4);
2764 QPixmap imageOfFile(Resource::loadPixmap(fileName)); 2715 QPixmap imageOfFile(Opie::Core::OResource::loadPixmap(fileName,Opie::Core::OResource::SmallIcon));
2765 QImage foo = imageOfFile.convertToImage();
2766 foo = foo.smoothScale(16,16);
2767 imageOfFile.convertFromImage(foo);
2768 dialog->IconField->insertItem(imageOfFile,fileName); 2716 dialog->IconField->insertItem(imageOfFile,fileName);
2769 if(fileName+".png"==icon) 2717 if(fileName+".png"==icon)
2770 dialog->IconField->setCurrentItem(i+1); 2718 dialog->IconField->setCurrentItem(i+1);
2771 ++i; 2719 ++i;
2772 } 2720 }
2773 ++it; 2721 ++it;
2774 } 2722 }
2775 waitDialog.hide(); 2723 waitDialog.hide();
2776 } 2724 }
2777 else 2725 else
2778 { 2726 {
2779 QDir d(QPEApplication::qpeDir() + "pics/"); 2727 QDir d(QPEApplication::qpeDir() + "pics/");
2780 d.setFilter( QDir::Files); 2728 d.setFilter( QDir::Files);
2781 2729
2782 const QFileInfoList *list = d.entryInfoList(); 2730 const QFileInfoList *list = d.entryInfoList();
2783 int i=0; 2731 int i=0;
2784 QFileInfoListIterator it( *list ); // create list iterator 2732 QFileInfoListIterator it( *list ); // create list iterator
2785 QFileInfo *fi; // pointer for traversing 2733 QFileInfo *fi; // pointer for traversing
2786 if (icon.isEmpty() || icon.isNull()) 2734 if (icon.isEmpty() || icon.isNull())
2787 { 2735 {
2788 dialog->IconField->setCurrentItem(0); 2736 dialog->IconField->setCurrentItem(0);
2789 } 2737 }
2790 else 2738 else
2791 { 2739 {
2792 2740
2793 while ( (fi=it.current()) ) 2741 while ( (fi=it.current()) )
2794 { // for each file... 2742 { // for each file...
2795 QString fileName = fi->fileName(); 2743 QString fileName = fi->fileName();
2796 if(fileName.right(4) == ".png") 2744 if(fileName.right(4) == ".png")
2797 { 2745 {
2798 fileName = fileName.mid(0,fileName.length()-4); 2746 fileName = fileName.mid(0,fileName.length()-4);
2799 2747
2800 2748
2801 if(fileName+".png"==icon) 2749 if(fileName+".png"==icon)
2802 { 2750 {
2803 dialog->IconField->setCurrentItem(i+1); 2751 dialog->IconField->setCurrentItem(i+1);
2804 break; 2752 break;
2805 } 2753 }
2806 ++i; 2754 ++i;
2807 } 2755 }
2808 ++it; 2756 ++it;
2809 } 2757 }
2810 } 2758 }
2811 } 2759 }
2812 2760
2813 // dialog->show(); 2761 // dialog->show();
2814 QDialog::DialogCode result = (QDialog::DialogCode) dialog->exec(); 2762 QDialog::DialogCode result = (QDialog::DialogCode) dialog->exec();
2815 2763
2816 QString fullIconPath; 2764 QString fullIconPath;
2817 QPixmap *pix; 2765 QPixmap *pix;
2818 if (result == QDialog::Accepted) 2766 if (result == QDialog::Accepted)
2819 { 2767 {
2820 modified = true; 2768 modified = true;
2821 if (category != dialog->CategoryField->currentText()) 2769 if (category != dialog->CategoryField->currentText())
2822 { 2770 {
2823 categories.remove (category); 2771 categories.remove (category);
2824// #ifndef Q_WS_WIN 2772// #ifndef Q_WS_WIN
2825 conf->removeEntry(category); 2773 conf->removeEntry(category);
2826// #endif 2774// #endif
2827 saveConf(); 2775 saveConf();
2828 } 2776 }
2829 2777
2830 category = dialog->CategoryField->currentText(); 2778 category = dialog->CategoryField->currentText();
2831 icon = dialog->IconField->currentText()+".png"; 2779 icon = dialog->IconField->currentText()+".png";
@@ -3052,265 +3000,222 @@ void ZSafe::loadDocument()
3052 for (si = i->firstChild(); 3000 for (si = i->firstChild();
3053 si != NULL; ) 3001 si != NULL; )
3054 { 3002 {
3055 QListViewItem *_si = si; 3003 QListViewItem *_si = si;
3056 si = si->nextSibling(); 3004 si = si->nextSibling();
3057 i->takeItem(_si); // remove from view list 3005 i->takeItem(_si); // remove from view list
3058 if (_si) delete _si; 3006 if (_si) delete _si;
3059 } 3007 }
3060 } 3008 }
3061 if (c) delete c; // delete the previous category 3009 if (c) delete c; // delete the previous category
3062 categories.clear(); 3010 categories.clear();
3063 m_password = ""; 3011 m_password = "";
3064 selectedItem = NULL; 3012 selectedItem = NULL;
3065 filename = newFile; 3013 filename = newFile;
3066 3014
3067 // save the current filename to the config file 3015 // save the current filename to the config file
3068 conf->setGroup("zsafe"); 3016 conf->setGroup("zsafe");
3069 conf->writeEntry(APP_KEY+"document", filename); 3017 conf->writeEntry(APP_KEY+"document", filename);
3070 saveConf(); 3018 saveConf();
3071 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); 3019 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1);
3072 this->setCaption(tr("ZSafe: ") + ti); 3020 this->setCaption(tr("ZSafe: ") + ti);
3073 3021
3074 openDocument(filename); 3022 openDocument(filename);
3075 } 3023 }
3076} 3024}
3077 3025
3078void ZSafe::saveDocumentAs() 3026void ZSafe::saveDocumentAs()
3079{ 3027{
3080 3028
3081QString newFile = zsaveDialog(); 3029QString newFile = zsaveDialog();
3082 // open the new document 3030 // open the new document
3083 if (newFile && newFile.length() > 0 ) 3031 if (newFile && newFile.length() > 0 )
3084 { 3032 {
3085 // save the previous opened document 3033 // save the previous opened document
3086 if (!filename.isEmpty()) 3034 if (!filename.isEmpty())
3087 saveDocument(filename, FALSE); 3035 saveDocument(filename, FALSE);
3088 3036
3089 selectedItem = NULL; 3037 selectedItem = NULL;
3090 filename = newFile; 3038 filename = newFile;
3091 3039
3092 // save the current filename to the config file 3040 // save the current filename to the config file
3093 conf->setGroup("zsafe"); 3041 conf->setGroup("zsafe");
3094 conf->writeEntry(APP_KEY+"document", filename); 3042 conf->writeEntry(APP_KEY+"document", filename);
3095 saveConf(); 3043 saveConf();
3096 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); 3044 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1);
3097 this->setCaption(tr("ZSafe: ") + ti); 3045 this->setCaption(tr("ZSafe: ") + ti);
3098 3046
3099 QMessageBox::information( this, tr("ZSafe"), 3047 QMessageBox::information( this, tr("ZSafe"),
3100 tr("Now you have to enter\na password twice for your\nnewly created document."), tr("&OK"), 0); 3048 tr("Now you have to enter\na password twice for your\nnewly created document."), tr("&OK"), 0);
3101 3049
3102 saveDocumentWithPwd(); 3050 saveDocumentWithPwd();
3103 } 3051 }
3104} 3052}
3105 3053
3106void ZSafe::saveDocumentWithoutPwd() 3054void ZSafe::saveDocumentWithoutPwd()
3107{ 3055{
3108 saveDocument(filename, FALSE); 3056 saveDocument(filename, FALSE);
3109} 3057}
3110 3058
3111void ZSafe::saveDocumentWithPwd() 3059void ZSafe::saveDocumentWithPwd()
3112{ 3060{
3113 saveDocument(filename, TRUE); 3061 saveDocument(filename, TRUE);
3114} 3062}
3115 3063
3116void ZSafe::about()
3117{
3118 QString info;
3119 info = tr("<html><body><div align=""center"">"
3120 "<b>"
3121 "Zaurus Password Manager<br>"
3122 "ZSafe version 2.1.2<br>"
3123 "</b>"
3124 "by Carsten Schneider<br>"
3125 "zcarsten@gmx.net<br>"
3126 "http://z-soft.z-portal.info/zsafe"
3127 "<br>"
3128 "Translations by Robert Ernst<br>"
3129 "robert.ernst@linux-solutions.at<br>"
3130 "<br></div>"
3131 "</body></html>");
3132
3133 // QMessageBox::information( this, tr("ZSafe"), info, tr("&OK"), 0);
3134
3135 QMessageBox mb( this, tr("ZSafe"));
3136 mb.setText (info);
3137 mb.setButtonText (QMessageBox::Ok, tr ("&OK"));
3138 QPixmap zsafe_img((const char**) zsafe_xpm);
3139 mb.setIconPixmap (zsafe_img);
3140 mb.exec();
3141}
3142
3143void ZSafe::setExpandFlag() 3064void ZSafe::setExpandFlag()
3144{ 3065{
3145 expandTree = !expandTree; 3066 expandTree = !expandTree;
3146 file->setItemChecked('o', expandTree); 3067 file->setItemChecked('o', expandTree);
3147 conf->setGroup ("zsafePrefs"); 3068 conf->setGroup ("zsafePrefs");
3148// #ifndef Q_WS_WIN 3069// #ifndef Q_WS_WIN
3149 conf->writeEntry (APP_KEY+"expandTree", expandTree); 3070 conf->writeEntry (APP_KEY+"expandTree", expandTree);
3150// #endif 3071// #endif
3151 saveConf(); 3072 saveConf();
3152 3073
3153} 3074}
3154 3075
3155void ZSafe::paintEvent( QPaintEvent * ) 3076void ZSafe::paintEvent( QPaintEvent * )
3156{ 3077{
3157 if (raiseFlag) 3078 if (raiseFlag)
3158 { 3079 {
3159 raiseFlag = false; 3080 raiseFlag = false;
3160 raiseTimer.start (1, true); 3081 raiseTimer.start (1, true);
3161 if (infoForm->isVisible()) 3082 if (infoForm->isVisible())
3162 infoForm->raise(); 3083 infoForm->raise();
3163 } 3084 }
3164} 3085}
3165 3086
3166void ZSafe::resizeEvent ( QResizeEvent * )
3167{
3168 // owarn << "resizeEvent" << oendl;
3169 DeskW = appl->desktop()->width();
3170 DeskH = appl->desktop()->height();
3171
3172 if (New)
3173 New->setGeometry ( QRect( DeskW-84, 2, 20, 20 ) );
3174 if (Edit)
3175 Edit->setGeometry ( QRect( DeskW-64, 2, 20, 20 ) );
3176 if (Delete)
3177 Delete->setGeometry( QRect( DeskW-44, 2, 20, 20 ) );
3178 if (Find)
3179 Find->setGeometry ( QRect( DeskW-24, 2, 20, 20 ) );
3180}
3181
3182void ZSafe::slotRaiseTimer() 3087void ZSafe::slotRaiseTimer()
3183{ 3088{
3184 if (infoForm->isVisible()) 3089 if (infoForm->isVisible())
3185 infoForm->raise(); 3090 infoForm->raise();
3186 raiseFlag = true; 3091 raiseFlag = true;
3187} 3092}
3188 3093
3189QPixmap * ZSafe::getPredefinedIcon(QString category) 3094QPixmap * ZSafe::getPredefinedIcon(QString category)
3190{ 3095{
3191 QPixmap *pm; 3096 QPixmap *pm;
3192 if (category == "Bank cards") 3097 if (category == "Bank cards")
3193 pm = new QPixmap((const char**)bank_cards_data); 3098 pm = new QPixmap((const char**)bank_cards_data);
3194 else if (category == "Passwords") 3099 else if (category == "Passwords")
3195 pm = new QPixmap((const char**)passwords_data); 3100 pm = new QPixmap((const char**)passwords_data);
3196 else if (category == "Software") 3101 else if (category == "Software")
3197 pm = new QPixmap((const char**)software_data); 3102 pm = new QPixmap((const char**)software_data);
3198 else if (category == "General") 3103 else if (category == "General")
3199 pm = new QPixmap((const char**)general_data); 3104 pm = new QPixmap((const char**)general_data);
3200 else 3105 else
3201 pm = new QPixmap((const char**)general_data); 3106 pm = new QPixmap((const char**)general_data);
3202 return pm; 3107 return pm;
3203} 3108}
3204 3109
3205void ZSafe::setDocument(const QString& fileref) 3110void ZSafe::setDocument(const QString& fileref)
3206{ 3111{
3207 // stop the timer to prevent loading of the default document 3112 // stop the timer to prevent loading of the default document
3208 docuTimer.stop(); 3113 docuTimer.stop();
3209 3114
3210 DocLnk link(fileref); 3115 DocLnk link(fileref);
3211 if ( link.isValid() ) 3116 if ( link.isValid() )
3212 { 3117 {
3213 // if (filename != link.file()) 3118 // if (filename != link.file())
3214 // saveDocument(filename, FALSE); 3119 // saveDocument(filename, FALSE);
3215 filename = link.file(); 3120 filename = link.file();
3216 } 3121 }
3217 else 3122 else
3218 { 3123 {
3219 // if (filename != fileref) 3124 // if (filename != fileref)
3220 // saveDocument(filename, FALSE); 3125 // saveDocument(filename, FALSE);
3221 filename = fileref; 3126 filename = fileref;
3222 } 3127 }
3223 // save the current filename to the config file 3128 // save the current filename to the config file
3224 conf->setGroup("zsafe"); 3129 conf->setGroup("zsafe");
3225 conf->writeEntry(APP_KEY+"document", filename); 3130 conf->writeEntry(APP_KEY+"document", filename);
3226 saveConf(); 3131 saveConf();
3227 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1); 3132 QString ti = filename.right (filename.length() - filename.findRev ('/') - 1);
3228 this->setCaption(tr("ZSafe: ") + ti); 3133 this->setCaption(tr("ZSafe: ") + ti);
3229 3134
3230 // clear the password list 3135 // clear the password list
3231 QListViewItem *i; 3136 QListViewItem *i;
3232 QListViewItem *c = NULL; 3137 QListViewItem *c = NULL;
3233 // step through all categories 3138 // step through all categories
3234 for (i = ListView->firstChild(); 3139 for (i = ListView->firstChild();
3235 i != NULL; 3140 i != NULL;
3236 i = i->nextSibling()) 3141 i = i->nextSibling())
3237 { 3142 {
3238 if (c) delete c; // delete the previous category 3143 if (c) delete c; // delete the previous category
3239 3144
3240 c = i; 3145 c = i;
3241 // step through all subitems 3146 // step through all subitems
3242 QListViewItem *si; 3147 QListViewItem *si;
3243 for (si = i->firstChild(); 3148 for (si = i->firstChild();
3244 si != NULL; ) 3149 si != NULL; )
3245 { 3150 {
3246 QListViewItem *_si = si; 3151 QListViewItem *_si = si;
3247 si = si->nextSibling(); 3152 si = si->nextSibling();
3248 i->takeItem(_si); // remove from view list 3153 i->takeItem(_si); // remove from view list
3249 if (_si) delete _si; 3154 if (_si) delete _si;
3250 } 3155 }
3251 } 3156 }
3252 if (c) delete c; // delete the previous category 3157 if (c) delete c; // delete the previous category
3253 categories.clear(); 3158 categories.clear();
3254 3159
3255 m_password = ""; 3160 m_password = "";
3256 selectedItem = NULL; 3161 selectedItem = NULL;
3257 3162
3258 openDocument(filename); 3163 openDocument(filename);
3259} 3164}
3260 3165
3261 3166
3262void ZSafe::ListPressed(int mouse, QListViewItem *item, const QPoint&, int column) { 3167void ZSafe::ListPressed(int mouse, QListViewItem *item, const QPoint&, int column) {
3263 if(item ==0) return; 3168 if(item ==0) return;
3264 switch (mouse) { 3169 switch (mouse) {
3265 case 1: 3170 case 1:
3266 break; 3171 break;
3267 case 2: 3172 case 2:
3268 { 3173 {
3269 QClipboard *cb = QApplication::clipboard(); 3174 QClipboard *cb = QApplication::clipboard();
3270 3175
3271 QIconSet copy_img((const char**) copy_xpm); 3176 QIconSet copy_img = Opie::Core::OResource::loadPixmap( "copy", Opie::Core::OResource::SmallIcon );
3272 QIconSet edit_img((const char**) edit_xpm); 3177 QIconSet edit_img = Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon );
3273 QPixmap folder_open_img((const char**) folder_open_xpm); 3178 QPixmap folder_open_img = Opie::Core::OResource::loadPixmap( "folder_open", Opie::Core::OResource::SmallIcon );
3274 QPixmap editdelete_img((const char**) editdelete_xpm); 3179 QPixmap editdelete_img = Opie::Core::OResource::loadPixmap( "editdelete", Opie::Core::OResource::SmallIcon );
3275 3180
3276 QPopupMenu *m = new QPopupMenu(this); 3181 QPopupMenu *m = new QPopupMenu(this);
3277 int copyItem = m->insertItem( copy_img, tr( "Copy to Clipboard" )); 3182 int copyItem = m->insertItem( copy_img, tr( "Copy to Clipboard" ));
3278 int editItem = m->insertItem(edit_img, tr( "Edit" )); 3183 int editItem = m->insertItem(edit_img, tr( "Edit" ));
3279 int showItem = m->insertItem(folder_open_img, tr( "Show Info" )); 3184 int showItem = m->insertItem(folder_open_img, tr( "Show Info" ));
3280 int cancelItem = m->insertItem( editdelete_img, tr( "Cancel" )); 3185 int cancelItem = m->insertItem( editdelete_img, tr( "Cancel" ));
3281 m->setFocus(); 3186 m->setFocus();
3282 int me=m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y() ) ) ; 3187 int me=m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y() ) ) ;
3283 if(me == copyItem) { 3188 if(me == copyItem) {
3284 copyClip( item->text(column) ) ; 3189 copyClip( item->text(column) ) ;
3285 } else if (me == cancelItem) { 3190 } else if (me == cancelItem) {
3286 cb->clear(); 3191 cb->clear();
3287 } else if (me == editItem) { 3192 } else if (me == editItem) {
3288 editPwd(); 3193 editPwd();
3289 } else if (me == showItem) { 3194 } else if (me == showItem) {
3290 showInfo(item); 3195 showInfo(item);
3291 } 3196 }
3292 } 3197 }
3293 break; 3198 break;
3294 }; 3199 };
3295} 3200}
3296 3201
3297void ZSafe::copyClip( const QString &text) { 3202void ZSafe::copyClip( const QString &text) {
3298 QClipboard *cb = QApplication::clipboard(); 3203 QClipboard *cb = QApplication::clipboard();
3299 cb->setText( text); 3204 cb->setText( text);
3300} 3205}
3301 3206
3302 3207
3303QString ZSafe::zsaveDialog() { 3208QString ZSafe::zsaveDialog() {
3304 3209
3305 QString fn; 3210 QString fn;
3306 QMap<QString, QStringList> mimeTypes; 3211 QMap<QString, QStringList> mimeTypes;
3307 mimeTypes.insert(tr("All"), QStringList() ); 3212 mimeTypes.insert(tr("All"), QStringList() );
3308 mimeTypes.insert(tr("Text"), "text/*" ); 3213 mimeTypes.insert(tr("Text"), "text/*" );
3309 fn = OFileDialog::getSaveFileName( OFileSelector::EXTENDED_ALL, 3214 fn = OFileDialog::getSaveFileName( OFileSelector::EXTENDED_ALL,
3310 QDir::homeDirPath() + "/Documents/application/zsafe", 3215 QDir::homeDirPath() + "/Documents/application/zsafe",
3311 QString::null, 3216 QString::null,
3312 mimeTypes, 3217 mimeTypes,
3313 this, 3218 this,
3314 tr ("Export text file")); 3219 tr ("Export text file"));
3315 return fn; 3220 return fn;
3316} 3221}
diff --git a/noncore/apps/zsafe/zsafe.h b/noncore/apps/zsafe/zsafe.h
index 3d812f8..0be579c 100644
--- a/noncore/apps/zsafe/zsafe.h
+++ b/noncore/apps/zsafe/zsafe.h
@@ -1,204 +1,195 @@
1/**************************************************************************** 1/****************************************************************************
2** Form interface generated from reading ui file 'zsafe.ui' 2** Form interface generated from reading ui file 'zsafe.ui'
3** 3**
4** Created: Sat Apr 6 17:57:42 2002 4** Created: Sat Apr 6 17:57:42 2002
5** 5**
6** Author: Carsten Schneider <CarstenSchneider@t-online.de> 6** Author: Carsten Schneider <CarstenSchneider@t-online.de>
7** 7**
8** $Id$ 8** $Id$
9** 9**
10** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html 10** Homepage: http://home.t-online.de/home/CarstenSchneider/zsafe/index.html
11** 11**
12** WARNING! All changes made in this file will be lost! 12** WARNING! All changes made in this file will be lost!
13****************************************************************************/ 13****************************************************************************/
14#ifndef ZSAFE_H 14#ifndef ZSAFE_H
15#define ZSAFE_H 15#define ZSAFE_H
16 16
17#include <stdio.h> 17#include <stdio.h>
18 18
19#include "infoform.h" 19#include "infoform.h"
20#include "categorylist.h" 20#include "categorylist.h"
21#include "shadedlistitem.h" 21#include "shadedlistitem.h"
22 22
23#include <qmainwindow.h>
24
23#include <qvariant.h> 25#include <qvariant.h>
24#include <qdialog.h> 26#include <qdialog.h>
25#include <qwidgetstack.h> 27#include <qwidgetstack.h>
26#include <qtimer.h> 28#include <qtimer.h>
27 29
28class QVBoxLayout; 30class QVBoxLayout;
29class QHBoxLayout; 31class QHBoxLayout;
30class QGridLayout; 32class QGridLayout;
31class ZListView; 33class ZListView;
32class QListViewItem; 34class QListViewItem;
33class QToolButton; 35class QToolButton;
34class QTextBrowser; 36class QTextBrowser;
35class QPopupMenu; 37class QPopupMenu;
36#ifdef DESKTOP 38#ifdef DESKTOP
37// #ifndef WIN32 39// #ifndef WIN32
38class QSettings; 40class QSettings;
39// #endif 41// #endif
40#else 42#else
41class Config; 43class Config;
42#endif 44#endif
43class CategoryDialog; 45class CategoryDialog;
44class QPixmap; 46class QPixmap;
45 47
46// number of fields for one entry 48// number of fields for one entry
47#define FIELD_SIZE 7 49#define FIELD_SIZE 7
48 50
49class ZSafe : public QWidget 51class ZSafe : public QMainWindow
50{ 52{
51 Q_OBJECT 53 Q_OBJECT
52 54
53protected: 55protected:
54 void paintEvent( QPaintEvent * e ); 56 void paintEvent( QPaintEvent * e );
55 void resizeEvent ( QResizeEvent * );
56 57
57 bool raiseFlag; 58 bool raiseFlag;
58 QTimer raiseTimer; 59 QTimer raiseTimer;
59 60
60public: 61public:
61 ZSafe( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 62 ZSafe( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
62 ~ZSafe(); 63 ~ZSafe();
63 static QString appName() { return QString::fromLatin1( QUICKAPP_NAME ); } 64 static QString appName() { return QString::fromLatin1( QUICKAPP_NAME ); }
64 65
65 static const QColor *evenRowColor; 66 static const QColor *evenRowColor;
66 static const QColor *oddRowColor; 67 static const QColor *oddRowColor;
67 68
68 QToolButton* Edit;
69 QToolButton* Delete;
70 QToolButton* Find;
71 QToolButton* New;
72 ZListView* ListView; 69 ZListView* ListView;
73 70
74 QString cfgFile; 71 QString cfgFile;
75 QString iconPath; 72 QString iconPath;
76 73
77 InfoForm *infoForm; 74 InfoForm *infoForm;
78 CategoryDialog *categoryDialog; 75 CategoryDialog *categoryDialog;
79 76
80 QListViewItem *selectedItem; // current selected item 77 QListViewItem *selectedItem; // current selected item
81 QListViewItem *copiedItem; // copied item 78 QListViewItem *copiedItem; // copied item
82 bool IsCopy; 79 bool IsCopy;
83 bool IsCut; 80 bool IsCut;
84 bool modified; // true if database is modified 81 bool modified; // true if database is modified
85 bool showpwd; // show PWD Dialog 82 bool showpwd; // show PWD Dialog
86 83
87 QListViewItem *lastSearchedCategory; 84 QListViewItem *lastSearchedCategory;
88 QListViewItem *lastSearchedItem; 85 QListViewItem *lastSearchedItem;
89 QString lastSearchedName; 86 QString lastSearchedName;
90 QString lastSearchedUsername; 87 QString lastSearchedUsername;
91 QString lastSearchedComment; 88 QString lastSearchedComment;
92 89
93 90
94 CategoryList categories; // list of categories 91 CategoryList categories; // list of categories
95 92
96 bool isCategory(QListViewItem *_item); 93 bool isCategory(QListViewItem *_item);
97 void getDocPassword(QString title); 94 void getDocPassword(QString title);
98 QString filename; 95 QString filename;
99 96
100 enum { 97 enum {
101 PWERR_GOOD, // success 98 PWERR_GOOD, // success
102 PWERR_OPEN, // can't open filedescriptor / can't create file 99 PWERR_OPEN, // can't open filedescriptor / can't create file
103 PWERR_PERM, // permissions are bad 100 PWERR_PERM, // permissions are bad
104 PWERR_SYML, // is a symlink 101 PWERR_SYML, // is a symlink
105 PWERR_STAT, // can't get file status 102 PWERR_STAT, // can't get file status
106 PWERR_DATA // can't read correct data 103 PWERR_DATA // can't read correct data
107 }; 104 };
108 105
109 long load_buffer_length; 106 long load_buffer_length;
110 long save_buffer_length; 107 long save_buffer_length;
111 108
112 /** password for the file */ 109 /** password for the file */
113 QString m_password; 110 QString m_password;
114 /** globals needed for file loading */ 111 /** globals needed for file loading */
115 int lastcount, size; 112 int lastcount, size;
116 /** these three are needed in all save functions and initialized in save _init() */ 113 /** these three are needed in all save functions and initialized in save _init() */
117 FILE *fd; 114 FILE *fd;
118 unsigned short iv[4]; 115 unsigned short iv[4];
119 char *buffer; 116 char *buffer;
120 /** these two are global because save_entry() and save_finalize() both n eed them */ 117 /** these two are global because save_entry() and save_finalize() both n eed them */
121 int bufferIndex; 118 int bufferIndex;
122 unsigned short plaintext[4]; 119 unsigned short plaintext[4];
123 120
124#ifdef DESKTOP 121#ifdef DESKTOP
125// #ifndef WIN32 122// #ifndef WIN32
126 QSettings *conf; 123 QSettings *conf;
127// #endif 124// #endif
128#else 125#else
129 Config *conf; 126 Config *conf;
130#endif 127#endif
131 bool expandTree; 128 bool expandTree;
132 QPopupMenu *file; 129 QPopupMenu *file;
133 130
134 QTimer docuTimer; 131 QTimer docuTimer;
135 132
136 133
137 bool openDocument(const char* filename, const char* format=0); 134 bool openDocument(const char* filename, const char* format=0);
138 int loadInit(const char* filename, const char *password); 135 int loadInit(const char* filename, const char *password);
139 int loadEntry(char *entry[4]); 136 int loadEntry(char *entry[4]);
140 int loadFinalize(void); 137 int loadFinalize(void);
141 bool saveDocument(const char* filename, bool withPwd, const char* format=0); 138 bool saveDocument(const char* filename, bool withPwd, const char* format=0);
142 int saveInit(const char *filename, const char *password); 139 int saveInit(const char *filename, const char *password);
143 int saveEntry(char *entry[4]); 140 int saveEntry(char *entry[4]);
144 int saveFinalize(void); 141 int saveFinalize(void);
145 void saveConf(); 142 void saveConf();
146 QPixmap * getPredefinedIcon(QString category); 143 QPixmap * getPredefinedIcon(QString category);
147 QString getFieldLabel (QListViewItem *_item, QString field, QString def); 144 QString getFieldLabel (QListViewItem *_item, QString field, QString def);
148 QString getFieldLabel (QString category, QString field, QString def); 145 QString getFieldLabel (QString category, QString field, QString def);
149 void setCategoryDialogFields(CategoryDialog *dialog); 146 void setCategoryDialogFields(CategoryDialog *dialog);
150 void setCategoryDialogFields(CategoryDialog *dialog, QString category); 147 void setCategoryDialogFields(CategoryDialog *dialog, QString category);
151 void saveCategoryDialogFields(CategoryDialog *dialog); 148 void saveCategoryDialogFields(CategoryDialog *dialog);
152 149
153 150
154 void resume(int signum); 151 void resume(int signum);
155 void exitZs (int ec); 152 void exitZs (int ec);
156 153
157 QString zsaveDialog(); 154 QString zsaveDialog();
158 155
159public slots: 156public slots:
160 virtual void deletePwd(); 157 virtual void deletePwd();
161 virtual void editPwd(); 158 virtual void editPwd();
162 virtual void newPwd(); 159 virtual void newPwd();
163 virtual void findPwd(); 160 virtual void findPwd();
164 virtual void quitMe(); 161 virtual void quitMe();
165 virtual void listViewSelected( QListViewItem *_item); 162 virtual void listViewSelected( QListViewItem *_item);
166 virtual void showInfo( QListViewItem *_item); 163 virtual void showInfo( QListViewItem *_item);
167 virtual void writeAllEntries(); 164 virtual void writeAllEntries();
168 virtual void readAllEntries(); 165 virtual void readAllEntries();
169 virtual void removeAsciiFile(); 166 virtual void removeAsciiFile();
170 virtual void setPasswordDialogDone(); 167 virtual void setPasswordDialogDone();
171 168
172 virtual void addCategory(); 169 virtual void addCategory();
173 virtual void delCategory(); 170 virtual void delCategory();
174 virtual void editCategory(); 171 virtual void editCategory();
175 virtual void cutItem(); 172 virtual void cutItem();
176 virtual void copyItem(); 173 virtual void copyItem();
177 virtual void pasteItem(); 174 virtual void pasteItem();
178 175
179 virtual void newDocument(); 176 virtual void newDocument();
180 virtual void loadDocument(); 177 virtual void loadDocument();
181 virtual void saveDocumentAs(); 178 virtual void saveDocumentAs();
182 virtual void saveDocumentWithoutPwd(); 179 virtual void saveDocumentWithoutPwd();
183 virtual void saveDocumentWithPwd(); 180 virtual void saveDocumentWithPwd();
184 virtual void about();
185 virtual void setExpandFlag(); 181 virtual void setExpandFlag();
186 182
187 virtual void categoryFieldActivated( const QString& str); 183 virtual void categoryFieldActivated( const QString& str);
188 184
189 virtual void ListPressed(int, QListViewItem *, const QPoint&, int); 185 virtual void ListPressed(int, QListViewItem *, const QPoint&, int);
190 virtual void copyClip( const QString &text); 186 virtual void copyClip( const QString &text);
191 187
192private slots: 188private slots:
193 void setDocument(const QString& fileref); 189 void setDocument(const QString& fileref);
194 void slotLoadDocu(); 190 void slotLoadDocu();
195 void slotRaiseTimer(); 191 void slotRaiseTimer();
196 192
197}; 193};
198 194
199
200extern ZSafe *zs;
201extern QApplication *appl;
202extern int DeskW;
203extern int DeskH;
204#endif // ZSAFE_H 195#endif // ZSAFE_H