summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-sheet/cell-select.xpm25
-rw-r--r--noncore/apps/opie-sheet/excel16.xpm187
-rw-r--r--noncore/apps/opie-sheet/func-comma.xpm24
-rw-r--r--noncore/apps/opie-sheet/func-cross.xpm23
-rw-r--r--noncore/apps/opie-sheet/func-divide.xpm23
-rw-r--r--noncore/apps/opie-sheet/func-equal.xpm23
-rw-r--r--noncore/apps/opie-sheet/func-func.xpm23
-rw-r--r--noncore/apps/opie-sheet/func-minus.xpm23
-rw-r--r--noncore/apps/opie-sheet/func-paran-close.xpm24
-rw-r--r--noncore/apps/opie-sheet/func-paran-open.xpm24
-rw-r--r--noncore/apps/opie-sheet/func-plus.xpm23
-rw-r--r--noncore/apps/opie-sheet/mainwindow.cpp35
12 files changed, 11 insertions, 446 deletions
diff --git a/noncore/apps/opie-sheet/cell-select.xpm b/noncore/apps/opie-sheet/cell-select.xpm
deleted file mode 100644
index 4836c02..0000000
--- a/noncore/apps/opie-sheet/cell-select.xpm
+++ b/dev/null
@@ -1,25 +0,0 @@
1/* XPM */
2static const char *cell_select_xpm[]={
3"16 16 6 1",
4"# c None",
5"c c #0058c0",
6". c #585858",
7"b c #58a8ff",
8"a c #a8dcff",
9"d c #c0ffff",
10".###############",
11".#####...#######",
12"#...#.aab.######",
13"###..acaaa.#####",
14"###.aaacabc.####",
15"##.acaaaccab.###",
16"#.caacabbaaa.###",
17"#.ccaacbaaaaa.##",
18"#.bacbcaaaadaa.#",
19"##.bacbaaaddda.#",
20"###.bacaaaadaa.#",
21"####.bacaaaaac.#",
22"#####.bacaaacb.#",
23"######.bacccb.##",
24"#######.babb.###",
25"########....####"};
diff --git a/noncore/apps/opie-sheet/excel16.xpm b/noncore/apps/opie-sheet/excel16.xpm
deleted file mode 100644
index 45dd96d..0000000
--- a/noncore/apps/opie-sheet/excel16.xpm
+++ b/dev/null
@@ -1,187 +0,0 @@
1/* XPM */
2static const char *excel16_xpm[]={
3"16 16 168 2",
4"aL c None",
5"Qt c None",
6"aK c #24440a",
7"#y c #247d21",
8"#B c #276d1e",
9"aw c #284a0d",
10"au c #2b4e10",
11"#P c #2c6e1a",
12"ag c #2d5114",
13"ad c #2e541a",
14"af c #304326",
15"#2 c #317a1c",
16"ae c #334f25",
17"#5 c #335919",
18"#F c #375d1f",
19"#O c #3a872f",
20"#t c #3d6324",
21"ac c #3d7939",
22"#Y c #3e7132",
23"#p c #407f39",
24"#Z c #42903e",
25"#i c #436d28",
26".9 c #446e2a",
27"aJ c #466628",
28"av c #476430",
29"aI c #476829",
30".W c #47732d",
31"#K c #479643",
32"#1 c #48872e",
33"aH c #496b2d",
34".6 c #4a8a49",
35"aG c #4b6e31",
36".z c #4b7832",
37"#L c #4d9647",
38"aF c #4e7336",
39"aE c #52783b",
40".m c #527a3e",
41"#x c #529c4f",
42"#N c #549c4b",
43"aD c #567a3f",
44"#V c #579342",
45"#X c #588649",
46"aC c #598041",
47".T c #598955",
48"#A c #59a354",
49"#W c #5a8f48",
50"aB c #5d8745",
51"ax c #5d914d",
52"#o c #5ea657",
53"#C c #5f8755",
54"aA c #5f8947",
55".5 c #5f9f5a",
56"#e c #60965b",
57"#f c #609c5b",
58"az c #618b4a",
59".l c #629450",
60"ay c #679350",
61".k c #689854",
62"#U c #69a15f",
63"ah c #6c9c59",
64"#d c #6cae66",
65".R c #6da767",
66".S c #6ea564",
67"#n c #6eaf67",
68".3 c #6fad69",
69"#0 c #6fb067",
70".j c #719f5f",
71"ab c #729a6b",
72"#6 c #72a161",
73".2 c #74a270",
74"#J c #75b56d",
75".i c #76a366",
76"#l c #77ae74",
77"#M c #78b570",
78"#I c #79b176",
79".4 c #79b870",
80"#S c #7ba66b",
81".N c #7bb374",
82".h c #7da970",
83".1 c #7fbd76",
84"#G c #81ab74",
85"#c c #81bb78",
86".M c #83bb7b",
87"aa c #869782",
88".g c #86b079",
89"a# c #879783",
90"a. c #889885",
91"#u c #88b279",
92"#9 c #899886",
93".U c #89b188",
94".L c #89c081",
95".O c #8ab485",
96".0 c #8ac381",
97".f c #8eb580",
98"#j c #8eb680",
99".y c #91a483",
100"#m c #91c28a",
101"#. c #92b885",
102"#8 c #93ae91",
103".e c #93ba87",
104"#3 c #93be91",
105"at c #94a089",
106"#4 c #96a18b",
107"#z c #96c78d",
108".# c #97bc8a",
109"#D c #99b598",
110"#Q c #9abb99",
111"#R c #9ba890",
112".d c #9bbf90",
113"#E c #9ca991",
114"#s c #9ca992",
115"#b c #9dc895",
116"#h c #9fac95",
117".c c #9fc294",
118"#a c #a0c99b",
119".8 c #a2b198",
120".V c #a3b199",
121".b c #a4c699",
122".K c #a5b29b",
123".Z c #a6cf9f",
124".Y c #a7cda1",
125".a c #a9c99e",
126".n c #acc4a3",
127".x c #b2c3aa",
128"ai c #b4c4ab",
129".w c #b6c7ad",
130"#7 c #b7c7ae",
131".v c #b9cab1",
132"#T c #bbcab3",
133".u c #bbcbb3",
134".Q c #bbd0ba",
135"#H c #bccbb4",
136".t c #beceb7",
137".s c #c0d1ba",
138"#k c #c1d1bb",
139".r c #c2d1bc",
140"## c #c2d2bc",
141".X c #c4d5be",
142".q c #c6d9c1",
143".p c #c8d9c2",
144".o c #c9dac3",
145"#q c #cdddcd",
146"as c #d3e3d3",
147"ar c #d4e4d4",
148"aq c #d7e6d7",
149"ap c #d8e7d9",
150"ao c #dae9db",
151".7 c #dce8db",
152"#r c #dce9dc",
153"an c #ddebdd",
154"#g c #dfecdf",
155"am c #e1ede0",
156"al c #e3ede3",
157"#w c #e5efe5",
158"ak c #e6efe6",
159".J c #e7f0e7",
160"aj c #e8f0e8",
161".I c #eaf2ea",
162".P c #ebf3eb",
163".H c #ecf4ec",
164".G c #f0f5f0",
165".F c #f2f7f2",
166"#v c #f3f7f3",
167".E c #f4f8f4",
168".D c #f7f9f6",
169".C c #f9fbf8",
170".B c #fafcfa",
171".A c #fcfdfc",
172"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
173"Qt.#.a.b.c.d.e.f.g.h.i.j.k.l.mQt",
174"Qt.a.n.o.p.q.r.s.t.u.v.w.x.y.zQt",
175"Qt.b.o.A.B.C.D.E.F.G.H.I.J.K.zQt",
176"Qt.c.p.L.M.N.O.P.Q.R.S.T.U.V.WQt",
177"Qt.d.X.Y.Z.0.1.2.3.4.5.6.7.8.9Qt",
178"Qt#.##.D#a#b#c#d#e#f.6.7#g#h#iQt",
179"Qt#j#k.E.F#l#m#n#o#p#q#g#r#s#tQt",
180"Qt#u.s#v#w#x#y#z#A#A#B#C#D#E#FQt",
181"Qt#G#H.P#I#J#K#L#M#N#O#P#Q#R#FQt",
182"Qt#S#T#U#V#W#X#Y#Z#0#1#2#3#4#5Qt",
183"Qt#6#7#8#9a.a#aaabacadaeaf#4agQt",
184"QtahaiajakalamanaoapaqarasatauQt",
185"Qt.kavavavavavavavavavavavavawQt",
186"QtaxayazaAaBaCaDaEaFaGaHaIaJaKQt",
187"aLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaL"};
diff --git a/noncore/apps/opie-sheet/func-comma.xpm b/noncore/apps/opie-sheet/func-comma.xpm
deleted file mode 100644
index 2e680d2..0000000
--- a/noncore/apps/opie-sheet/func-comma.xpm
+++ b/dev/null
@@ -1,24 +0,0 @@
1/* XPM */
2static const char *func_comma_xpm[]={
3"16 16 5 1",
4". c None",
5"# c #000000",
6"a c #0000ff",
7"b c #0058c0",
8"c c #0080ff",
9"................",
10"................",
11"................",
12"......###.......",
13".....#aaa#......",
14".....#bcca#.....",
15".....#bbaa#.....",
16"......##ba#.....",
17"........#b#.....",
18"........#b#.....",
19".......#b#......",
20"......#b#.......",
21"......##........",
22"................",
23"................",
24"................"};
diff --git a/noncore/apps/opie-sheet/func-cross.xpm b/noncore/apps/opie-sheet/func-cross.xpm
deleted file mode 100644
index 3b3f3d5..0000000
--- a/noncore/apps/opie-sheet/func-cross.xpm
+++ b/dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static const char *func_cross_xpm[]={
3"16 16 4 1",
4". c None",
5"b c #0000ff",
6"a c #0058c0",
7"# c #585858",
8"................",
9"................",
10"....#......##...",
11"...#a#....#ab#..",
12"..#bba#..#abb#..",
13"...#bba##abb#...",
14"....#bbaabb#....",
15".....#bbbb#.....",
16".....#bbbb#.....",
17"....#bbaabb#....",
18"...#bba##abb#...",
19"..#bba#..#abb#..",
20"..#ba#....#a#...",
21"...##......#....",
22"................",
23"................"};
diff --git a/noncore/apps/opie-sheet/func-divide.xpm b/noncore/apps/opie-sheet/func-divide.xpm
deleted file mode 100644
index beb3473..0000000
--- a/noncore/apps/opie-sheet/func-divide.xpm
+++ b/dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static const char *func_divide_xpm[]={
3"16 16 4 1",
4". c None",
5"# c #000000",
6"b c #0000ff",
7"a c #0058c0",
8"................",
9"................",
10"...........##...",
11"..........#ab#..",
12".........#aba#..",
13"........#bba#...",
14".......#bba#....",
15"......#bba#.....",
16".....#abb#......",
17"....#abb#.......",
18"...#abb#........",
19"..#aba#.........",
20"..#ba#..........",
21"...##...........",
22"................",
23"................"};
diff --git a/noncore/apps/opie-sheet/func-equal.xpm b/noncore/apps/opie-sheet/func-equal.xpm
deleted file mode 100644
index 8f34895..0000000
--- a/noncore/apps/opie-sheet/func-equal.xpm
+++ b/dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static const char *func_equal_xpm[]={
3"16 16 4 1",
4". c None",
5"b c #0000ff",
6"a c #0058c0",
7"# c #585858",
8"................",
9"................",
10"................",
11"...##########...",
12"..#aaabbbbaaa#..",
13"..#bbbbbbbbbb#..",
14"..############..",
15"................",
16"................",
17"..############..",
18"..#bbbbbbbbbb#..",
19"..#aaabbbbaaa#..",
20"...##########...",
21"................",
22"................",
23"................"};
diff --git a/noncore/apps/opie-sheet/func-func.xpm b/noncore/apps/opie-sheet/func-func.xpm
deleted file mode 100644
index b9ec747..0000000
--- a/noncore/apps/opie-sheet/func-func.xpm
+++ b/dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static const char *func_func_xpm[]={
3"16 16 4 1",
4". c None",
5"a c #0000ff",
6"b c #0058c0",
7"# c #585858",
8"................",
9".........#ab....",
10".......#aa##....",
11".......ab#......",
12".......ab#......",
13"......#a#.......",
14"....#aaaa#......",
15"....bbabbb......",
16"....##ab#a#.ba..",
17".....aa##baba#..",
18".....ab#.#ba#...",
19".....ab#.baba...",
20"....#a#.ba##ba..",
21"....ab#..#..#b..",
22"...#a#..........",
23"................"};
diff --git a/noncore/apps/opie-sheet/func-minus.xpm b/noncore/apps/opie-sheet/func-minus.xpm
deleted file mode 100644
index b747bd7..0000000
--- a/noncore/apps/opie-sheet/func-minus.xpm
+++ b/dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static const char *func_minus_xpm[]={
3"16 16 4 1",
4". c None",
5"a c #0000ff",
6"b c #0058c0",
7"# c #585858",
8"................",
9"................",
10"................",
11"................",
12"................",
13"................",
14"...##########...",
15"...#aaaaaabb#...",
16"...#bbaaaaaa#...",
17"...##########...",
18"................",
19"................",
20"................",
21"................",
22"................",
23"................"};
diff --git a/noncore/apps/opie-sheet/func-paran-close.xpm b/noncore/apps/opie-sheet/func-paran-close.xpm
deleted file mode 100644
index 1e9994c..0000000
--- a/noncore/apps/opie-sheet/func-paran-close.xpm
+++ b/dev/null
@@ -1,24 +0,0 @@
1/* XPM */
2static const char *func_paran_close_xpm[]={
3"16 16 5 1",
4"c c None",
5". c None",
6"b c #0000ff",
7"# c #0058c0",
8"a c #585858",
9"......#a........",
10"......#baa......",
11".......#bba.....",
12"........#b#.....",
13"........c##a....",
14"........c#ba....",
15"........c#ba....",
16"........c#ba....",
17"........c#ba....",
18"........c#ba....",
19"........#b#a....",
20".......abb#.....",
21".......#bba.....",
22"......#baa......",
23"......#a........",
24"................"};
diff --git a/noncore/apps/opie-sheet/func-paran-open.xpm b/noncore/apps/opie-sheet/func-paran-open.xpm
deleted file mode 100644
index ace24b0..0000000
--- a/noncore/apps/opie-sheet/func-paran-open.xpm
+++ b/dev/null
@@ -1,24 +0,0 @@
1/* XPM */
2static const char *func_paran_open_xpm[]={
3"16 16 5 1",
4"c c None",
5". c None",
6"b c #0000ff",
7"a c #0058c0",
8"# c #585858",
9"........#a......",
10"......##ba......",
11".....#bba.......",
12".....aba........",
13"....#aacc.......",
14"....#bacc.......",
15"....#bacc.......",
16"....#bacc.......",
17"....#bac........",
18"....#bac........",
19"....#aac........",
20".....abbc.......",
21".....#bba.......",
22"......##bac.....",
23"........#ac.....",
24"..........c....."};
diff --git a/noncore/apps/opie-sheet/func-plus.xpm b/noncore/apps/opie-sheet/func-plus.xpm
deleted file mode 100644
index c779f23..0000000
--- a/noncore/apps/opie-sheet/func-plus.xpm
+++ b/dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static const char *func_plus_xpm[]={
3"16 16 4 1",
4". c None",
5"a c #0000ff",
6"b c #0058c0",
7"# c #585858",
8"................",
9"................",
10"......####......",
11"......#ab#......",
12"......#ab#......",
13"......#ab#......",
14"..####babb####..",
15"..#aaaaaabbbb#..",
16"..#bbbbaaaaaa#..",
17"..####bbab####..",
18"......#ba#......",
19"......#ba#......",
20"......#ba#......",
21"......####......",
22"................",
23"................"};
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp
index a725e31..d47a570 100644
--- a/noncore/apps/opie-sheet/mainwindow.cpp
+++ b/noncore/apps/opie-sheet/mainwindow.cpp
@@ -1,1021 +1,1008 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10/* 10/*
11 * Opie Sheet (formerly Sheet/Qt) 11 * Opie Sheet (formerly Sheet/Qt)
12 * by Serdar Ozler <sozler@sitebest.com> 12 * by Serdar Ozler <sozler@sitebest.com>
13 */ 13 */
14 14
15#include "mainwindow.h" 15#include "mainwindow.h"
16 16
17#include <qpe/filemanager.h> 17#include <qpe/filemanager.h>
18#include <qpe/qcopenvelope_qws.h> 18#include <qpe/qcopenvelope_qws.h>
19#include <qpe/resource.h> 19#include <qpe/resource.h>
20#include <qmessagebox.h> 20#include <qmessagebox.h>
21#include <qfile.h> 21#include <qfile.h>
22#include <qtranslator.h> 22#include <qtranslator.h>
23#include <qradiobutton.h> 23#include <qradiobutton.h>
24#include "cellformat.h" 24#include "cellformat.h"
25#include "numberdlg.h" 25#include "numberdlg.h"
26#include "textdlg.h" 26#include "textdlg.h"
27#include "sortdlg.h" 27#include "sortdlg.h"
28#include "finddlg.h" 28#include "finddlg.h"
29 29
30
31#include "func-plus.xpm"
32#include "func-minus.xpm"
33#include "func-cross.xpm"
34#include "func-divide.xpm"
35#include "func-paran-open.xpm"
36#include "func-paran-close.xpm"
37#include "func-comma.xpm"
38#include "func-func.xpm"
39#include "func-equal.xpm"
40#include "cell-select.xpm"
41#include "excel16.xpm"
42
43#define DEFAULT_NUM_ROWS 300 30#define DEFAULT_NUM_ROWS 300
44#define DEFAULT_NUM_COLS (26*3) 31#define DEFAULT_NUM_COLS (26*3)
45#define DEFAULT_NUM_SHEETS 3 32#define DEFAULT_NUM_SHEETS 3
46 33
47MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl) 34MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl)
48 :QMainWindow(parent, n, fl) 35 :QMainWindow(parent, n, fl)
49{ 36{
50 // initialize variables 37 // initialize variables
51 documentModified=FALSE; 38 documentModified=FALSE;
52 39
53 // construct objects 40 // construct objects
54 currentDoc=0; 41 currentDoc=0;
55 fileSelector=new FileSelector("application/sheet-qt", this, QString::null); 42 fileSelector=new FileSelector("application/sheet-qt", this, QString::null);
56 ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE); 43 ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE);
57 connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); 44 connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide()));
58 connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &))); 45 connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &)));
59 connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &))); 46 connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &)));
60 connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk &)),this,SLOT(slotImportExcel(const DocLnk &))); 47 connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk &)),this,SLOT(slotImportExcel(const DocLnk &)));
61 connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide())); 48 connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide()));
62 49
63 50
64 listSheets.setAutoDelete(TRUE); 51 listSheets.setAutoDelete(TRUE);
65 52
66 initActions(); 53 initActions();
67 initMenu(); 54 initMenu();
68 initEditToolbar(); 55 initEditToolbar();
69 initFunctionsToolbar(); 56 initFunctionsToolbar();
70 initStandardToolbar(); 57 initStandardToolbar();
71 initSheet(); 58 initSheet();
72 59
73 // set window title 60 // set window title
74 setCaption(tr("Opie Sheet")); 61 setCaption(tr("Opie Sheet"));
75 62
76 // create sheets 63 // create sheets
77 selectorFileNew(DocLnk()); 64 selectorFileNew(DocLnk());
78} 65}
79 66
80MainWindow::~MainWindow() 67MainWindow::~MainWindow()
81{ 68{
82 if (currentDoc) delete currentDoc; 69 if (currentDoc) delete currentDoc;
83} 70}
84 71
85void MainWindow::documentSave(DocLnk *lnkDoc) 72void MainWindow::documentSave(DocLnk *lnkDoc)
86{ 73{
87 FileManager fm; 74 FileManager fm;
88 QByteArray streamBuffer; 75 QByteArray streamBuffer;
89 QDataStream stream(streamBuffer, IO_WriteOnly); 76 QDataStream stream(streamBuffer, IO_WriteOnly);
90 77
91 typeSheet *currentSheet=findSheet(sheet->getName()); 78 typeSheet *currentSheet=findSheet(sheet->getName());
92 if (!currentSheet) 79 if (!currentSheet)
93 { 80 {
94 QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); 81 QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!"));
95 return; 82 return;
96 } 83 }
97 sheet->copySheetData(&currentSheet->data); 84 sheet->copySheetData(&currentSheet->data);
98 stream.writeRawBytes("SQT100", 6); 85 stream.writeRawBytes("SQT100", 6);
99 stream << (Q_UINT32)listSheets.count(); 86 stream << (Q_UINT32)listSheets.count();
100 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 87 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
101 { 88 {
102 stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); 89 stream << tempSheet->name << (Q_UINT32)tempSheet->data.count();
103 for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) 90 for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next())
104 stream << (Q_UINT32)tempCell->col << (Q_UINT32)tempCell->row << tempCell->borders.right << tempCell->borders.bottom << tempCell->background << (Q_UINT32)tempCell->alignment << tempCell->fontColor << tempCell->font << tempCell->data; 91 stream << (Q_UINT32)tempCell->col << (Q_UINT32)tempCell->row << tempCell->borders.right << tempCell->borders.bottom << tempCell->background << (Q_UINT32)tempCell->alignment << tempCell->fontColor << tempCell->font << tempCell->data;
105 } 92 }
106 93
107 lnkDoc->setType("application/sheet-qt"); 94 lnkDoc->setType("application/sheet-qt");
108 if (!fm.saveFile(*lnkDoc, streamBuffer)) 95 if (!fm.saveFile(*lnkDoc, streamBuffer))
109 { 96 {
110 QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); 97 QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!"));
111 return; 98 return;
112 } 99 }
113 documentModified=FALSE; 100 documentModified=FALSE;
114} 101}
115 102
116void MainWindow::documentOpen(const DocLnk &lnkDoc) 103void MainWindow::documentOpen(const DocLnk &lnkDoc)
117{ 104{
118 FileManager fm; 105 FileManager fm;
119 QByteArray streamBuffer; 106 QByteArray streamBuffer;
120 if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) 107 if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer))
121 { 108 {
122 QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); 109 QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!"));
123 documentModified=FALSE; 110 documentModified=FALSE;
124 selectorFileNew(DocLnk()); 111 selectorFileNew(DocLnk());
125 return; 112 return;
126 } 113 }
127 QDataStream stream(streamBuffer, IO_ReadOnly); 114 QDataStream stream(streamBuffer, IO_ReadOnly);
128 115
129 Q_UINT32 countSheet, countCell, i, j, row, col, alignment; 116 Q_UINT32 countSheet, countCell, i, j, row, col, alignment;
130 typeSheet *newSheet; 117 typeSheet *newSheet;
131 typeCellData *newCell; 118 typeCellData *newCell;
132 119
133 char fileFormat[7]; 120 char fileFormat[7];
134 stream.readRawBytes(fileFormat, 6); 121 stream.readRawBytes(fileFormat, 6);
135 fileFormat[6]=0; 122 fileFormat[6]=0;
136 if ((QString)fileFormat!="SQT100") 123 if ((QString)fileFormat!="SQT100")
137 { 124 {
138 QMessageBox::critical(this, tr("Error"), tr("Invalid file format!")); 125 QMessageBox::critical(this, tr("Error"), tr("Invalid file format!"));
139 documentModified=FALSE; 126 documentModified=FALSE;
140 selectorFileNew(DocLnk()); 127 selectorFileNew(DocLnk());
141 return; 128 return;
142 } 129 }
143 130
144 stream >> countSheet; 131 stream >> countSheet;
145 for (i=0; i<countSheet; ++i) 132 for (i=0; i<countSheet; ++i)
146 { 133 {
147 newSheet=new typeSheet; 134 newSheet=new typeSheet;
148 newSheet->data.setAutoDelete(TRUE); 135 newSheet->data.setAutoDelete(TRUE);
149 stream >> newSheet->name >> countCell; 136 stream >> newSheet->name >> countCell;
150 comboSheets->insertItem(newSheet->name); 137 comboSheets->insertItem(newSheet->name);
151 138
152 for (j=0; j<countCell; ++j) 139 for (j=0; j<countCell; ++j)
153 { 140 {
154 newCell=new typeCellData; 141 newCell=new typeCellData;
155 stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data; 142 stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data;
156 newCell->col=col; 143 newCell->col=col;
157 newCell->row=row; 144 newCell->row=row;
158 newCell->alignment=(Qt::AlignmentFlags)alignment; 145 newCell->alignment=(Qt::AlignmentFlags)alignment;
159 newSheet->data.append(newCell); 146 newSheet->data.append(newCell);
160 } 147 }
161 listSheets.append(newSheet); 148 listSheets.append(newSheet);
162 149
163 if (i==0) 150 if (i==0)
164 { 151 {
165 sheet->setName(newSheet->name); 152 sheet->setName(newSheet->name);
166 sheet->setSheetData(&newSheet->data); 153 sheet->setSheetData(&newSheet->data);
167 } 154 }
168 } 155 }
169} 156}
170 157
171int MainWindow::saveCurrentFile(bool ask) 158int MainWindow::saveCurrentFile(bool ask)
172{ 159{
173 if (ask) 160 if (ask)
174 { 161 {
175 int result=QMessageBox::information(this, tr("Save File"), tr("Do you want to save the current file?"), QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); 162 int result=QMessageBox::information(this, tr("Save File"), tr("Do you want to save the current file?"), QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel);
176 if (result!=QMessageBox::Yes) return result; 163 if (result!=QMessageBox::Yes) return result;
177 } 164 }
178 165
179 if (!currentDoc->isValid()) 166 if (!currentDoc->isValid())
180 { 167 {
181 TextDialog dialogText(this); 168 TextDialog dialogText(this);
182 if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel; 169 if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel;
183 170
184 currentDoc->setName(dialogText.getValue()); 171 currentDoc->setName(dialogText.getValue());
185 currentDoc->setFile(QString::null); 172 currentDoc->setFile(QString::null);
186 currentDoc->setLinkFile(QString::null); 173 currentDoc->setLinkFile(QString::null);
187 } 174 }
188 175
189 documentSave(currentDoc); 176 documentSave(currentDoc);
190 return QMessageBox::Yes; 177 return QMessageBox::Yes;
191} 178}
192 179
193void MainWindow::selectorFileNew(const DocLnk &lnkDoc) 180void MainWindow::selectorFileNew(const DocLnk &lnkDoc)
194{ 181{
195 selectorHide(); 182 selectorHide();
196 183
197 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; 184 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
198 if (currentDoc) delete currentDoc; 185 if (currentDoc) delete currentDoc;
199 currentDoc = new DocLnk(lnkDoc); 186 currentDoc = new DocLnk(lnkDoc);
200 editData->clear(); 187 editData->clear();
201 listSheets.clear(); 188 listSheets.clear();
202 comboSheets->clear(); 189 comboSheets->clear();
203 190
204 typeSheet *newSheet=createNewSheet(); 191 typeSheet *newSheet=createNewSheet();
205 newSheet->data.setAutoDelete(TRUE); 192 newSheet->data.setAutoDelete(TRUE);
206 sheet->setName(newSheet->name); 193 sheet->setName(newSheet->name);
207 sheet->setSheetData(&newSheet->data); 194 sheet->setSheetData(&newSheet->data);
208 for (int i=1; i<DEFAULT_NUM_SHEETS; ++i) 195 for (int i=1; i<DEFAULT_NUM_SHEETS; ++i)
209 createNewSheet(); 196 createNewSheet();
210 documentModified=FALSE; 197 documentModified=FALSE;
211} 198}
212 199
213void MainWindow::closeEvent(QCloseEvent *e) 200void MainWindow::closeEvent(QCloseEvent *e)
214{ 201{
215 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) e->ignore(); 202 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) e->ignore();
216 else e->accept(); 203 else e->accept();
217} 204}
218 205
219void MainWindow::selectorFileOpen(const DocLnk &lnkDoc) 206void MainWindow::selectorFileOpen(const DocLnk &lnkDoc)
220{ 207{
221 selectorHide(); 208 selectorHide();
222 209
223 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; 210 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
224 if (currentDoc) delete currentDoc; 211 if (currentDoc) delete currentDoc;
225 currentDoc = new DocLnk(); 212 currentDoc = new DocLnk();
226 listSheets.clear(); 213 listSheets.clear();
227 comboSheets->clear(); 214 comboSheets->clear();
228 215
229 documentOpen(lnkDoc); 216 documentOpen(lnkDoc);
230 documentModified=FALSE; 217 documentModified=FALSE;
231} 218}
232 219
233void MainWindow::selectorShow() 220void MainWindow::selectorShow()
234{ 221{
235 sheet->hide(); 222 sheet->hide();
236 setCentralWidget(fileSelector); 223 setCentralWidget(fileSelector);
237 fileSelector->show(); 224 fileSelector->show();
238 fileSelector->reread(); 225 fileSelector->reread();
239} 226}
240 227
241void MainWindow::selectorHide() 228void MainWindow::selectorHide()
242{ 229{
243 fileSelector->hide(); 230 fileSelector->hide();
244 setCentralWidget(sheet); 231 setCentralWidget(sheet);
245 sheet->show(); 232 sheet->show();
246} 233}
247 234
248void MainWindow::slotFileNew() 235void MainWindow::slotFileNew()
249{ 236{
250 selectorFileNew(DocLnk()); 237 selectorFileNew(DocLnk());
251} 238}
252 239
253void MainWindow::slotFileOpen() 240void MainWindow::slotFileOpen()
254{ 241{
255 selectorShow(); 242 selectorShow();
256} 243}
257 244
258void MainWindow::slotImportExcelOpen() 245void MainWindow::slotImportExcelOpen()
259{ 246{
260 sheet->hide(); 247 sheet->hide();
261 setCentralWidget(ExcelSelector); 248 setCentralWidget(ExcelSelector);
262 ExcelSelector->show(); 249 ExcelSelector->show();
263 ExcelSelector->reread(); 250 ExcelSelector->reread();
264} 251}
265 252
266void MainWindow::ExcelSelectorHide() 253void MainWindow::ExcelSelectorHide()
267{ 254{
268 ExcelSelector->hide(); 255 ExcelSelector->hide();
269 setCentralWidget(sheet); 256 setCentralWidget(sheet);
270 sheet->show(); 257 sheet->show();
271} 258}
272 259
273void MainWindow::slotFileSave() 260void MainWindow::slotFileSave()
274{ 261{
275 saveCurrentFile(FALSE); 262 saveCurrentFile(FALSE);
276} 263}
277 264
278void MainWindow::setDocument(const QString &applnk_filename) 265void MainWindow::setDocument(const QString &applnk_filename)
279{ 266{
280 selectorFileOpen(DocLnk(applnk_filename)); 267 selectorFileOpen(DocLnk(applnk_filename));
281} 268}
282 269
283void MainWindow::initActions() 270void MainWindow::initActions()
284{ 271{
285 fileNew=new QAction(tr("New File"), Resource::loadPixmap( "new" ), tr("&New"), 0, this); 272 fileNew=new QAction(tr("New File"), Resource::loadPixmap( "new" ), tr("&New"), 0, this);
286 connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew())); 273 connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew()));
287 fileOpen=new QAction(tr("Open File"), Resource::loadPixmap( "fileopen" ), tr("&Open"), 0, this); 274 fileOpen=new QAction(tr("Open File"), Resource::loadPixmap( "fileopen" ), tr("&Open"), 0, this);
288 connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen())); 275 connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen()));
289 fileSave=new QAction(tr("Save File"),Resource::loadPixmap( "save" ), tr("&Save"), 0, this); 276 fileSave=new QAction(tr("Save File"),Resource::loadPixmap( "save" ), tr("&Save"), 0, this);
290 connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave())); 277 connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave()));
291 fileSaveAs=new QAction(tr("Save File As"), Resource::loadPixmap( "save" ), tr("Save &As"), 0, this); 278 fileSaveAs=new QAction(tr("Save File As"), Resource::loadPixmap( "save" ), tr("Save &As"), 0, this);
292 connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs())); 279 connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs()));
293 280
294 //fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this); 281 //fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this);
295 //connect(fileQuit, SIGNAL(activated()), this, SLOT(close())); 282 //connect(fileQuit, SIGNAL(activated()), this, SLOT(close()));
296 fileExcelImport=new QAction(tr("Import Excel file"),QPixmap(excel16_xpm),tr("Import E&xcel file"),0,this); 283 fileExcelImport=new QAction(tr("Import Excel file"),Resource::loadPixmap( "/opie-sheet/excel16" ),tr("Import E&xcel file"),0,this);
297 connect(fileExcelImport, SIGNAL(activated()), this, SLOT(slotImportExcelOpen())); 284 connect(fileExcelImport, SIGNAL(activated()), this, SLOT(slotImportExcelOpen()));
298 285
299 // helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this); 286 // helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this);
300 //connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral())); 287 //connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral()));
301 //helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this); 288 //helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this);
302 //connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout())); 289 //connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout()));
303 290
304 editAccept=new QAction(tr("Accept"),Resource::loadPixmap( "enter" ) , tr("&Accept"), 0, this); 291 editAccept=new QAction(tr("Accept"),Resource::loadPixmap( "enter" ) , tr("&Accept"), 0, this);
305 connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept())); 292 connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept()));
306 editCancel=new QAction(tr("Cancel"), Resource::loadPixmap( "close" ), tr("&Cancel"), 0, this); 293 editCancel=new QAction(tr("Cancel"), Resource::loadPixmap( "close" ), tr("&Cancel"), 0, this);
307 connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel())); 294 connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel()));
308 editCellSelect=new QAction(tr("Cell Selector"), QPixmap(cell_select_xpm), tr("Cell &Selector"), 0, this); 295 editCellSelect=new QAction(tr("Cell Selector"), Resource::loadPixmap( "opie-sheet/cell_select" ), tr("Cell &Selector"), 0, this);
309 editCellSelect->setToggleAction(TRUE); 296 editCellSelect->setToggleAction(TRUE);
310 connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool))); 297 connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool)));
311 editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this); 298 editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this);
312 editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this); 299 editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this);
313 editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this); 300 editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this);
314 connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste())); 301 connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste()));
315 editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this); 302 editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this);
316 connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents())); 303 connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents()));
317 editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this); 304 editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this);
318 305
319 insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this); 306 insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this);
320 connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells())); 307 connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells()));
321 insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this); 308 insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this);
322 connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows())); 309 connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows()));
323 insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this); 310 insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this);
324 connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols())); 311 connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols()));
325 insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this); 312 insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this);
326 connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets())); 313 connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets()));
327 314
328 formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this); 315 formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this);
329 connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells())); 316 connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells()));
330 317
331 rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this); 318 rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this);
332 connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight())); 319 connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight()));
333 rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this); 320 rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this);
334 connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust())); 321 connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust()));
335 rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this); 322 rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this);
336 connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow())); 323 connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow()));
337 rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this); 324 rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this);
338 connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide())); 325 connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide()));
339 326
340 colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this); 327 colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this);
341 connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth())); 328 connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth()));
342 colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this); 329 colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this);
343 connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust())); 330 connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust()));
344 colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this); 331 colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this);
345 connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow())); 332 connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow()));
346 colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this); 333 colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this);
347 connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide())); 334 connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide()));
348 335
349 sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this); 336 sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this);
350 connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename())); 337 connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename()));
351 sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this); 338 sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this);
352 connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove())); 339 connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove()));
353 340
354 dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this); 341 dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this);
355 connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort())); 342 connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort()));
356 dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this); 343 dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this);
357 connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace())); 344 connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace()));
358 345
359 funcEqual=new QAction(tr("Equal To"), QPixmap(func_equal_xpm), tr("&Equal To"), 0, this); 346 funcEqual=new QAction(tr("Equal To"), Resource::loadPixmap( "opie-sheet/func_equal" ), tr("&Equal To"), 0, this);
360 funcEqual->setToolTip("="); 347 funcEqual->setToolTip("=");
361 connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 348 connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
362 funcPlus=new QAction(tr("Addition"), QPixmap(func_plus_xpm), tr("&Addition"), 0, this); 349 funcPlus=new QAction(tr("Addition"), Resource::loadPixmap( "opie-sheet/func_plus" ), tr("&Addition"), 0, this);
363 funcPlus->setToolTip("+"); 350 funcPlus->setToolTip("+");
364 connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 351 connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
365 funcMinus=new QAction(tr("Subtraction"), QPixmap(func_minus_xpm), tr("&Subtraction"), 0, this); 352 funcMinus=new QAction(tr("Subtraction"), Resource::loadPixmap( "opie-sheet/func_minus" ), tr("&Subtraction"), 0, this);
366 funcMinus->setToolTip("-"); 353 funcMinus->setToolTip("-");
367 connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 354 connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
368 funcCross=new QAction(tr("Multiplication"), QPixmap(func_cross_xpm), tr("&Multiplication"), 0, this); 355 funcCross=new QAction(tr("Multiplication"), Resource::loadPixmap ("opie-sheet/func_cross" ), tr("&Multiplication"), 0, this);
369 funcCross->setToolTip("*"); 356 funcCross->setToolTip("*");
370 connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 357 connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
371 funcDivide=new QAction(tr("Division"), QPixmap(func_divide_xpm), tr("&Division"), 0, this); 358 funcDivide=new QAction(tr("Division"), Resource::loadPixmap( "opie-sheet/func_divide" ), tr("&Division"), 0, this);
372 funcDivide->setToolTip("/"); 359 funcDivide->setToolTip("/");
373 connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 360 connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
374 funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"), QPixmap(func_paran_open_xpm), tr("&Open Paranthesis"), 0, this); 361 funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"), Resource::loadPixmap( "opie-sheet/func_paran_open" ), tr("&Open Paranthesis"), 0, this);
375 funcParanOpen->setToolTip("("); 362 funcParanOpen->setToolTip("(");
376 connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 363 connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
377 funcParanClose=new QAction(tr("Close Paranthesis"), QPixmap(func_paran_close_xpm), tr("&Close Paranthesis"), 0, this); 364 funcParanClose=new QAction(tr("Close Paranthesis"), Resource::loadPixmap( "opie-sheet/func_paran_close" ), tr("&Close Paranthesis"), 0, this);
378 funcParanClose->setToolTip(")"); 365 funcParanClose->setToolTip(")");
379 connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 366 connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
380 funcComma=new QAction(tr("Comma"), QPixmap(func_comma_xpm), tr("&Comma"), 0, this); 367 funcComma=new QAction(tr("Comma"), Resource::loadPixmap( "opie-sheet/func_comma" ), tr("&Comma"), 0, this);
381 funcComma->setToolTip(","); 368 funcComma->setToolTip(",");
382 connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 369 connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
383} 370}
384 371
385void MainWindow::initMenu() 372void MainWindow::initMenu()
386{ 373{
387 menu=new QMenuBar(this); 374 menu=new QMenuBar(this);
388 375
389 menuFile=new QPopupMenu; 376 menuFile=new QPopupMenu;
390 fileNew->addTo(menuFile); 377 fileNew->addTo(menuFile);
391 fileOpen->addTo(menuFile); 378 fileOpen->addTo(menuFile);
392 fileSave->addTo(menuFile); 379 fileSave->addTo(menuFile);
393 fileSaveAs->addTo(menuFile); 380 fileSaveAs->addTo(menuFile);
394// menuFile->insertSeparator(); 381// menuFile->insertSeparator();
395// fileQuit->addTo(menuFile); 382// fileQuit->addTo(menuFile);
396 menuFile->insertSeparator(); 383 menuFile->insertSeparator();
397 fileExcelImport->addTo(menuFile); 384 fileExcelImport->addTo(menuFile);
398 menu->insertItem(tr("&File"), menuFile); 385 menu->insertItem(tr("&File"), menuFile);
399 386
400 menuEdit=new QPopupMenu; 387 menuEdit=new QPopupMenu;
401 editAccept->addTo(menuEdit); 388 editAccept->addTo(menuEdit);
402 editCancel->addTo(menuEdit); 389 editCancel->addTo(menuEdit);
403 editCellSelect->addTo(menuEdit); 390 editCellSelect->addTo(menuEdit);
404 menuEdit->insertSeparator(); 391 menuEdit->insertSeparator();
405 editCut->addTo(menuEdit); 392 editCut->addTo(menuEdit);
406 editCopy->addTo(menuEdit); 393 editCopy->addTo(menuEdit);
407 editPaste->addTo(menuEdit); 394 editPaste->addTo(menuEdit);
408 editPasteContents->addTo(menuEdit); 395 editPasteContents->addTo(menuEdit);
409 editClear->addTo(menuEdit); 396 editClear->addTo(menuEdit);
410 menu->insertItem(tr("&Edit"), menuEdit); 397 menu->insertItem(tr("&Edit"), menuEdit);
411 398
412 menuInsert=new QPopupMenu; 399 menuInsert=new QPopupMenu;
413 menu->insertItem(tr("&Insert"), menuInsert); 400 menu->insertItem(tr("&Insert"), menuInsert);
414 401
415 menuFormat=new QPopupMenu; 402 menuFormat=new QPopupMenu;
416 formatCells->addTo(menuFormat); 403 formatCells->addTo(menuFormat);
417 menu->insertItem(tr("&Format"), menuFormat); 404 menu->insertItem(tr("&Format"), menuFormat);
418 405
419 menuData=new QPopupMenu; 406 menuData=new QPopupMenu;
420 dataSort->addTo(menuData); 407 dataSort->addTo(menuData);
421 dataFindReplace->addTo(menuData); 408 dataFindReplace->addTo(menuData);
422 menu->insertItem(tr("&Data"), menuData); 409 menu->insertItem(tr("&Data"), menuData);
423 410
424// menuHelp=new QPopupMenu; 411// menuHelp=new QPopupMenu;
425// helpGeneral->addTo(menuHelp); 412// helpGeneral->addTo(menuHelp);
426// helpAbout->addTo(menuHelp); 413// helpAbout->addTo(menuHelp);
427// menu->insertItem(tr("&Help"), menuHelp); 414// menu->insertItem(tr("&Help"), menuHelp);
428 415
429 submenuRow=new QPopupMenu; 416 submenuRow=new QPopupMenu;
430 rowHeight->addTo(submenuRow); 417 rowHeight->addTo(submenuRow);
431 rowAdjust->addTo(submenuRow); 418 rowAdjust->addTo(submenuRow);
432 rowShow->addTo(submenuRow); 419 rowShow->addTo(submenuRow);
433 rowHide->addTo(submenuRow); 420 rowHide->addTo(submenuRow);
434 menuFormat->insertItem(tr("&Row"), submenuRow); 421 menuFormat->insertItem(tr("&Row"), submenuRow);
435 422
436 submenuCol=new QPopupMenu; 423 submenuCol=new QPopupMenu;
437 colWidth->addTo(submenuCol); 424 colWidth->addTo(submenuCol);
438 colAdjust->addTo(submenuCol); 425 colAdjust->addTo(submenuCol);
439 colShow->addTo(submenuCol); 426 colShow->addTo(submenuCol);
440 colHide->addTo(submenuCol); 427 colHide->addTo(submenuCol);
441 menuFormat->insertItem(tr("Colum&n"), submenuCol); 428 menuFormat->insertItem(tr("Colum&n"), submenuCol);
442 429
443 submenuSheet=new QPopupMenu; 430 submenuSheet=new QPopupMenu;
444 sheetRename->addTo(submenuSheet); 431 sheetRename->addTo(submenuSheet);
445 sheetRemove->addTo(submenuSheet); 432 sheetRemove->addTo(submenuSheet);
446 menuFormat->insertItem(tr("&Sheet"), submenuSheet); 433 menuFormat->insertItem(tr("&Sheet"), submenuSheet);
447 434
448 submenuFunc=new QPopupMenu; 435 submenuFunc=new QPopupMenu;
449 menuInsert->insertItem(tr("&Function"), submenuFunc); 436 menuInsert->insertItem(tr("&Function"), submenuFunc);
450 437
451 submenuFuncStd=new QPopupMenu; 438 submenuFuncStd=new QPopupMenu;
452 funcPlus->addTo(submenuFuncStd); 439 funcPlus->addTo(submenuFuncStd);
453 funcMinus->addTo(submenuFuncStd); 440 funcMinus->addTo(submenuFuncStd);
454 funcCross->addTo(submenuFuncStd); 441 funcCross->addTo(submenuFuncStd);
455 funcDivide->addTo(submenuFuncStd); 442 funcDivide->addTo(submenuFuncStd);
456 submenuFunc->insertItem(tr("&Simple"), submenuFuncStd); 443 submenuFunc->insertItem(tr("&Simple"), submenuFuncStd);
457 444
458 445
459 446
460 submenuFuncStandard=new QPopupMenu; 447 submenuFuncStandard=new QPopupMenu;
461 addFlyAction(tr("ABS(x)"), tr("ABS(x)"), "ABS(", submenuFuncStandard); 448 addFlyAction(tr("ABS(x)"), tr("ABS(x)"), "ABS(", submenuFuncStandard);
462 addFlyAction(tr("CEILING(x,acc)"), tr("CEILING(x,acc)"), "CEILING(", submenuFuncStandard); 449 addFlyAction(tr("CEILING(x,acc)"), tr("CEILING(x,acc)"), "CEILING(", submenuFuncStandard);
463 addFlyAction(tr("FACT(x)"), tr("FACT(x)"), "FACT(", submenuFuncStandard); 450 addFlyAction(tr("FACT(x)"), tr("FACT(x)"), "FACT(", submenuFuncStandard);
464 addFlyAction(tr("FLOOR(x,acc)"), tr("FLOOR(x,acc)"), "FLOOR(", submenuFuncStandard); 451 addFlyAction(tr("FLOOR(x,acc)"), tr("FLOOR(x,acc)"), "FLOOR(", submenuFuncStandard);
465 addFlyAction(tr("INT(x)"), tr("INT(x)"), "INT(", submenuFuncStandard); 452 addFlyAction(tr("INT(x)"), tr("INT(x)"), "INT(", submenuFuncStandard);
466 addFlyAction(tr("MOD(x,y)"), tr("MOD(x,y)"), "MOD(", submenuFuncStandard); 453 addFlyAction(tr("MOD(x,y)"), tr("MOD(x,y)"), "MOD(", submenuFuncStandard);
467 addFlyAction(tr("ROUND(x,digits)"), tr("ROUND(x,digits)"), "ROUND(", submenuFuncStandard); 454 addFlyAction(tr("ROUND(x,digits)"), tr("ROUND(x,digits)"), "ROUND(", submenuFuncStandard);
468 addFlyAction(tr("SIGN(x)"), tr("SIGN(x)"), "SIGN(", submenuFuncStandard); 455 addFlyAction(tr("SIGN(x)"), tr("SIGN(x)"), "SIGN(", submenuFuncStandard);
469 submenuFuncStandard->insertSeparator(); 456 submenuFuncStandard->insertSeparator();
470 addFlyAction(tr("EXP(x)"), tr("EXP(x)"), "EXP(", submenuFuncStandard); 457 addFlyAction(tr("EXP(x)"), tr("EXP(x)"), "EXP(", submenuFuncStandard);
471 addFlyAction(tr("LN(x)"), tr("LN(x)"), "LN(", submenuFuncStandard); 458 addFlyAction(tr("LN(x)"), tr("LN(x)"), "LN(", submenuFuncStandard);
472 addFlyAction(tr("LOG(x,b)"), tr("LOG(x,b)"), "LOG(", submenuFuncStandard); 459 addFlyAction(tr("LOG(x,b)"), tr("LOG(x,b)"), "LOG(", submenuFuncStandard);
473 addFlyAction(tr("LOG10(x)"), tr("LOG10(x)"), "LOG10(", submenuFuncStandard); 460 addFlyAction(tr("LOG10(x)"), tr("LOG10(x)"), "LOG10(", submenuFuncStandard);
474 addFlyAction(tr("POWER(x,y)"), tr("POWER(x,y)"), "POWER(", submenuFuncStandard); 461 addFlyAction(tr("POWER(x,y)"), tr("POWER(x,y)"), "POWER(", submenuFuncStandard);
475 addFlyAction(tr("SQRT(x)"), tr("SQRT(x)"), "SQRT(", submenuFuncStandard); 462 addFlyAction(tr("SQRT(x)"), tr("SQRT(x)"), "SQRT(", submenuFuncStandard);
476 submenuFuncStandard->insertSeparator(); 463 submenuFuncStandard->insertSeparator();
477 addFlyAction(tr("DEGREES(x)"), tr("DEGREES(x)"), "DEGREES(", submenuFuncStandard); 464 addFlyAction(tr("DEGREES(x)"), tr("DEGREES(x)"), "DEGREES(", submenuFuncStandard);
478 addFlyAction(tr("RADIANS(x)"), tr("RADIANS(x)"), "RADIANS(", submenuFuncStandard); 465 addFlyAction(tr("RADIANS(x)"), tr("RADIANS(x)"), "RADIANS(", submenuFuncStandard);
479 addFlyAction(tr("PI()"), tr("PI()"), "PI()", submenuFuncStandard); 466 addFlyAction(tr("PI()"), tr("PI()"), "PI()", submenuFuncStandard);
480 addFlyAction(tr("RAND()"), tr("RAND()"), "RAND(", submenuFuncStandard); 467 addFlyAction(tr("RAND()"), tr("RAND()"), "RAND(", submenuFuncStandard);
481 addFlyAction(tr("RANDBETWEEN(a,b)"), tr("RANDBETWEEN(a,b)"), "RANDBETWEEN(", submenuFuncStandard); 468 addFlyAction(tr("RANDBETWEEN(a,b)"), tr("RANDBETWEEN(a,b)"), "RANDBETWEEN(", submenuFuncStandard);
482 submenuFunc->insertItem(tr("S&tandard"), submenuFuncStandard); 469 submenuFunc->insertItem(tr("S&tandard"), submenuFuncStandard);
483 470
484 submenuFuncLogic=new QPopupMenu; 471 submenuFuncLogic=new QPopupMenu;
485 addFlyAction(tr("AND(x1,x2)"), tr("AND(x1,x2)"), "AND(", submenuFuncLogic); 472 addFlyAction(tr("AND(x1,x2)"), tr("AND(x1,x2)"), "AND(", submenuFuncLogic);
486 addFlyAction(tr("NOT(x)"), tr("NOT(x)"), "NOT(", submenuFuncLogic); 473 addFlyAction(tr("NOT(x)"), tr("NOT(x)"), "NOT(", submenuFuncLogic);
487 addFlyAction(tr("OR(x1,x2)"), tr("OR(x1,x2)"), "OR(", submenuFuncLogic); 474 addFlyAction(tr("OR(x1,x2)"), tr("OR(x1,x2)"), "OR(", submenuFuncLogic);
488 submenuFuncLogic->insertSeparator(); 475 submenuFuncLogic->insertSeparator();
489 addFlyAction(tr("IF(compare,val1,val2)"), tr("IF(compare,val1,val2)"), "IF(", submenuFuncLogic); 476 addFlyAction(tr("IF(compare,val1,val2)"), tr("IF(compare,val1,val2)"), "IF(", submenuFuncLogic);
490 addFlyAction(tr("INDEX(range,index)"),tr("INDEX(range,index)"), "INDEX(", submenuFuncLogic); 477 addFlyAction(tr("INDEX(range,index)"),tr("INDEX(range,index)"), "INDEX(", submenuFuncLogic);
491 addFlyAction(tr("ISBLANK(x)"), tr("ISBLANK(x)"), "ISBLANK(", submenuFuncLogic); 478 addFlyAction(tr("ISBLANK(x)"), tr("ISBLANK(x)"), "ISBLANK(", submenuFuncLogic);
492 addFlyAction(tr("ISNUMBER(x)"), tr("ISNUMBER(x)"), "ISNUMBER(", submenuFuncLogic); 479 addFlyAction(tr("ISNUMBER(x)"), tr("ISNUMBER(x)"), "ISNUMBER(", submenuFuncLogic);
493 addFlyAction(tr("EVEN(x)"), tr("EVEN(x)"), "EVEN(", submenuFuncLogic); 480 addFlyAction(tr("EVEN(x)"), tr("EVEN(x)"), "EVEN(", submenuFuncLogic);
494 addFlyAction(tr("ISEVEN(x)"), tr("ISEVEN(x)"), "ISEVEN(", submenuFuncLogic); 481 addFlyAction(tr("ISEVEN(x)"), tr("ISEVEN(x)"), "ISEVEN(", submenuFuncLogic);
495 addFlyAction(tr("ODD(x)"), tr("ODD(x)"), "ODD(", submenuFuncLogic); 482 addFlyAction(tr("ODD(x)"), tr("ODD(x)"), "ODD(", submenuFuncLogic);
496 addFlyAction(tr("ISODD(x)"), tr("ISODD(x)"), "ISODD(", submenuFuncLogic); 483 addFlyAction(tr("ISODD(x)"), tr("ISODD(x)"), "ISODD(", submenuFuncLogic);
497 submenuFunc->insertItem(tr("Logical-&Information"), submenuFuncLogic); 484 submenuFunc->insertItem(tr("Logical-&Information"), submenuFuncLogic);
498 485
499 submenuFuncTrig=new QPopupMenu; 486 submenuFuncTrig=new QPopupMenu;
500 addFlyAction(tr("SIN(x)"), tr("SIN(x)"), "SIN(", submenuFuncTrig); 487 addFlyAction(tr("SIN(x)"), tr("SIN(x)"), "SIN(", submenuFuncTrig);
501 addFlyAction(tr("COS(x)"), tr("COS(x)"), "COS(", submenuFuncTrig); 488 addFlyAction(tr("COS(x)"), tr("COS(x)"), "COS(", submenuFuncTrig);
502 addFlyAction(tr("TAN(x)"), tr("TAN(x)"), "TAN(", submenuFuncTrig); 489 addFlyAction(tr("TAN(x)"), tr("TAN(x)"), "TAN(", submenuFuncTrig);
503 addFlyAction(tr("ASIN(x)"), tr("ASIN(x)"), "ASIN(", submenuFuncTrig); 490 addFlyAction(tr("ASIN(x)"), tr("ASIN(x)"), "ASIN(", submenuFuncTrig);
504 addFlyAction(tr("ACOS(x)"), tr("ACOS(x)"), "ACOS(", submenuFuncTrig); 491 addFlyAction(tr("ACOS(x)"), tr("ACOS(x)"), "ACOS(", submenuFuncTrig);
505 addFlyAction(tr("ATAN(x)"), tr("ATAN(x)"), "ATAN(", submenuFuncTrig); 492 addFlyAction(tr("ATAN(x)"), tr("ATAN(x)"), "ATAN(", submenuFuncTrig);
506 addFlyAction(tr("ATAN2(x,y)"), tr("ATAN2(x,y)"), "ATAN2(", submenuFuncTrig); 493 addFlyAction(tr("ATAN2(x,y)"), tr("ATAN2(x,y)"), "ATAN2(", submenuFuncTrig);
507 submenuFuncTrig->insertSeparator(); 494 submenuFuncTrig->insertSeparator();
508 addFlyAction(tr("SINH(x)"), tr("SINH(x)"), "SINH(", submenuFuncTrig); 495 addFlyAction(tr("SINH(x)"), tr("SINH(x)"), "SINH(", submenuFuncTrig);
509 addFlyAction(tr("COSH(x)"), tr("COSH(x)"), "COSH(", submenuFuncTrig); 496 addFlyAction(tr("COSH(x)"), tr("COSH(x)"), "COSH(", submenuFuncTrig);
510 addFlyAction(tr("TANH(x)"), tr("TANH(x)"), "TANH(", submenuFuncTrig); 497 addFlyAction(tr("TANH(x)"), tr("TANH(x)"), "TANH(", submenuFuncTrig);
511 addFlyAction(tr("ACOSH(x)"), tr("ACOSH(x)"), "ACOSH(", submenuFuncTrig); 498 addFlyAction(tr("ACOSH(x)"), tr("ACOSH(x)"), "ACOSH(", submenuFuncTrig);
512 addFlyAction(tr("ASINH(x)"), tr("ASINH(x)"), "ASINH(", submenuFuncTrig); 499 addFlyAction(tr("ASINH(x)"), tr("ASINH(x)"), "ASINH(", submenuFuncTrig);
513 addFlyAction(tr("ATANH(x)"), tr("ATANH(x)"), "ATANH(", submenuFuncTrig); 500 addFlyAction(tr("ATANH(x)"), tr("ATANH(x)"), "ATANH(", submenuFuncTrig);
514 submenuFunc->insertItem(tr("&Trigonometric"), submenuFuncTrig); 501 submenuFunc->insertItem(tr("&Trigonometric"), submenuFuncTrig);
515 502
516 submenuFuncString=new QPopupMenu; 503 submenuFuncString=new QPopupMenu;
517 addFlyAction(tr("LEN(s)"), tr("LEN(s)"), "LEN(",submenuFuncString); 504 addFlyAction(tr("LEN(s)"), tr("LEN(s)"), "LEN(",submenuFuncString);
518 addFlyAction(tr("LEFT(s,num)"), tr("LEFT(s,num)"), "LEFT(",submenuFuncString); 505 addFlyAction(tr("LEFT(s,num)"), tr("LEFT(s,num)"), "LEFT(",submenuFuncString);
519 addFlyAction(tr("RIGHT(s,num)"), tr("RIGHT(s,num)"), "RIGHT(",submenuFuncString); 506 addFlyAction(tr("RIGHT(s,num)"), tr("RIGHT(s,num)"), "RIGHT(",submenuFuncString);
520 addFlyAction(tr("MID(s,pos,len)"), tr("MID(s,pos,len)"), "MID(",submenuFuncString); 507 addFlyAction(tr("MID(s,pos,len)"), tr("MID(s,pos,len)"), "MID(",submenuFuncString);
521 submenuFuncString->insertSeparator(); 508 submenuFuncString->insertSeparator();
522 addFlyAction(tr("CONCATENATE(s1,s2..)"), tr("CONCATENATE(s1,s2..)"), "CONCATENATE(",submenuFuncString); 509 addFlyAction(tr("CONCATENATE(s1,s2..)"), tr("CONCATENATE(s1,s2..)"), "CONCATENATE(",submenuFuncString);
523 addFlyAction(tr("EXACT(s1,s2)"), tr("EXACT(s1,s2)"), "EXACT(",submenuFuncString); 510 addFlyAction(tr("EXACT(s1,s2)"), tr("EXACT(s1,s2)"), "EXACT(",submenuFuncString);
524 addFlyAction(tr("FIND(what,where,pos)"), 511 addFlyAction(tr("FIND(what,where,pos)"),
525 tr("FIND(what,where,pos)"), "FIND(",submenuFuncString); 512 tr("FIND(what,where,pos)"), "FIND(",submenuFuncString);
526 addFlyAction(tr("REPLACE(s,pos,len,ns)"), tr("REPLACE(s,pos,len,ns)"), "REPLACE(",submenuFuncString); 513 addFlyAction(tr("REPLACE(s,pos,len,ns)"), tr("REPLACE(s,pos,len,ns)"), "REPLACE(",submenuFuncString);
527 addFlyAction(tr("REPT(s,n)"), tr("REPT(s,n)"), "REPT(",submenuFuncString); 514 addFlyAction(tr("REPT(s,n)"), tr("REPT(s,n)"), "REPT(",submenuFuncString);
528 submenuFuncString->insertSeparator(); 515 submenuFuncString->insertSeparator();
529 addFlyAction(tr("UPPER(s)"), tr("UPPER(s)"), "UPPER(",submenuFuncString); 516 addFlyAction(tr("UPPER(s)"), tr("UPPER(s)"), "UPPER(",submenuFuncString);
530 addFlyAction(tr("LOWER(s)"), tr("LOWER(s)"), "LOWER(",submenuFuncString); 517 addFlyAction(tr("LOWER(s)"), tr("LOWER(s)"), "LOWER(",submenuFuncString);
531 submenuFunc->insertItem(tr("&Strings"), submenuFuncString); 518 submenuFunc->insertItem(tr("&Strings"), submenuFuncString);
532 519
533 submenuFuncStat=new QPopupMenu; 520 submenuFuncStat=new QPopupMenu;
534 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); 521 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat);
535 addFlyAction(tr("COUNT(range)"), tr("COUNT(range)"), "COUNT(",submenuFuncStat); 522 addFlyAction(tr("COUNT(range)"), tr("COUNT(range)"), "COUNT(",submenuFuncStat);
536 addFlyAction(tr("COUNTIF(range,eqls)"), tr("COUNTIF(range,eqls)"), "COUNTIF(",submenuFuncStat); 523 addFlyAction(tr("COUNTIF(range,eqls)"), tr("COUNTIF(range,eqls)"), "COUNTIF(",submenuFuncStat);
537 addFlyAction(tr("MAX(range)"), tr("MAX(range)"), "MAX(",submenuFuncStat); 524 addFlyAction(tr("MAX(range)"), tr("MAX(range)"), "MAX(",submenuFuncStat);
538 addFlyAction(tr("MIN(range)"), tr("MIN(range)"), "MIN(",submenuFuncStat); 525 addFlyAction(tr("MIN(range)"), tr("MIN(range)"), "MIN(",submenuFuncStat);
539 addFlyAction(tr("SUM(range)"), tr("SUM(range)"), "SUM(",submenuFuncStat); 526 addFlyAction(tr("SUM(range)"), tr("SUM(range)"), "SUM(",submenuFuncStat);
540 addFlyAction(tr("SUMSQ(range)"), tr("SUMSQ(range)"), "SUMSQ(",submenuFuncStat); 527 addFlyAction(tr("SUMSQ(range)"), tr("SUMSQ(range)"), "SUMSQ(",submenuFuncStat);
541 submenuFuncStat->insertSeparator(); 528 submenuFuncStat->insertSeparator();
542 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); 529 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat);
543 addFlyAction(tr("VAR(range)"), tr("VAR(range)"), "VAR(",submenuFuncStat); 530 addFlyAction(tr("VAR(range)"), tr("VAR(range)"), "VAR(",submenuFuncStat);
544 addFlyAction(tr("VARP(range)"), tr("VARP(range)"), "VARP(",submenuFuncStat); 531 addFlyAction(tr("VARP(range)"), tr("VARP(range)"), "VARP(",submenuFuncStat);
545 addFlyAction(tr("STDEV(range)"), tr("STDEV(range)"), "STDEV(",submenuFuncStat); 532 addFlyAction(tr("STDEV(range)"), tr("STDEV(range)"), "STDEV(",submenuFuncStat);
546 addFlyAction(tr("STDEVP(range)"), tr("STDEVP(range)"), "STDEVP(",submenuFuncStat); 533 addFlyAction(tr("STDEVP(range)"), tr("STDEVP(range)"), "STDEVP(",submenuFuncStat);
547 addFlyAction(tr("SKEW(range)"), tr("SKEW(range)"), "SKEW(",submenuFuncStat); 534 addFlyAction(tr("SKEW(range)"), tr("SKEW(range)"), "SKEW(",submenuFuncStat);
548 addFlyAction(tr("KURT(range)"), tr("KURT(range)"), "KURT(",submenuFuncStat); 535 addFlyAction(tr("KURT(range)"), tr("KURT(range)"), "KURT(",submenuFuncStat);
549 submenuFunc->insertItem(tr("Sta&tistical"), submenuFuncStat); 536 submenuFunc->insertItem(tr("Sta&tistical"), submenuFuncStat);
550 537
551 submenuFuncScientific=new QPopupMenu; 538 submenuFuncScientific=new QPopupMenu;
552 addFlyAction(tr("BESSELI(x,n)"), tr("BESSELI(x,n)"), "BESSELI(",submenuFuncScientific); 539 addFlyAction(tr("BESSELI(x,n)"), tr("BESSELI(x,n)"), "BESSELI(",submenuFuncScientific);
553 addFlyAction(tr("BESSELJ(x,n)"), tr("BESSELJ(x,n)"), "BESSELJ(",submenuFuncScientific); 540 addFlyAction(tr("BESSELJ(x,n)"), tr("BESSELJ(x,n)"), "BESSELJ(",submenuFuncScientific);
554 addFlyAction(tr("BESSELK(x,n)"), tr("BESSELK(x,n)"), "BESSELK(",submenuFuncScientific); 541 addFlyAction(tr("BESSELK(x,n)"), tr("BESSELK(x,n)"), "BESSELK(",submenuFuncScientific);
555 addFlyAction(tr("BESSELY(x,n)"), tr("BESSELY(x,n)"), "BESSELY(",submenuFuncScientific); 542 addFlyAction(tr("BESSELY(x,n)"), tr("BESSELY(x,n)"), "BESSELY(",submenuFuncScientific);
556 submenuFuncScientific->insertSeparator(); 543 submenuFuncScientific->insertSeparator();
557 addFlyAction(tr("BETAI(x,a,b)"), tr("BETAI(x,a,b)"), "BETAI(",submenuFuncScientific); 544 addFlyAction(tr("BETAI(x,a,b)"), tr("BETAI(x,a,b)"), "BETAI(",submenuFuncScientific);
558 addFlyAction(tr("ERF(a,b)"), tr("ERF(a,b)"), "ERF(",submenuFuncScientific); 545 addFlyAction(tr("ERF(a,b)"), tr("ERF(a,b)"), "ERF(",submenuFuncScientific);
559 addFlyAction(tr("ERFC(a,b)"), tr("ERFC(a,b)"), "ERFC(",submenuFuncScientific); 546 addFlyAction(tr("ERFC(a,b)"), tr("ERFC(a,b)"), "ERFC(",submenuFuncScientific);
560 addFlyAction(tr("GAMMALN(x)"), tr("GAMMALN(x)"), "GAMMALN(",submenuFuncScientific); 547 addFlyAction(tr("GAMMALN(x)"), tr("GAMMALN(x)"), "GAMMALN(",submenuFuncScientific);
561 addFlyAction(tr("GAMMAP(x,a)"), tr("GAMMAP(x,a)"), "GAMMAP(",submenuFuncScientific); 548 addFlyAction(tr("GAMMAP(x,a)"), tr("GAMMAP(x,a)"), "GAMMAP(",submenuFuncScientific);
562 addFlyAction(tr("GAMMAQ(x,a)"), tr("GAMMAQ(x,a)"), "GAMMAQ(",submenuFuncScientific); 549 addFlyAction(tr("GAMMAQ(x,a)"), tr("GAMMAQ(x,a)"), "GAMMAQ(",submenuFuncScientific);
563 submenuFunc->insertItem(tr("Scienti&fic"), submenuFuncScientific); 550 submenuFunc->insertItem(tr("Scienti&fic"), submenuFuncScientific);
564 551
565 submenuFuncDistr=new QPopupMenu; 552 submenuFuncDistr=new QPopupMenu;
566 addFlyAction(tr("BETADIST(z,a,b,Q?)"), tr("BETADIST(z,a,b,Q?)"), "BETADIST(",submenuFuncDistr); 553 addFlyAction(tr("BETADIST(z,a,b,Q?)"), tr("BETADIST(z,a,b,Q?)"), "BETADIST(",submenuFuncDistr);
567 addFlyAction(tr("CHI2DIST(x,n,Q?)"), tr("CHI2DIST(x,n,Q?)"), "CHI2DIST(",submenuFuncDistr); 554 addFlyAction(tr("CHI2DIST(x,n,Q?)"), tr("CHI2DIST(x,n,Q?)"), "CHI2DIST(",submenuFuncDistr);
568 addFlyAction(tr("CHIDIST(x,n,Q?)"), tr("CHIDIST(x,n,Q?)"), "CHIDIST(",submenuFuncDistr); 555 addFlyAction(tr("CHIDIST(x,n,Q?)"), tr("CHIDIST(x,n,Q?)"), "CHIDIST(",submenuFuncDistr);
569 addFlyAction(tr("FDIST(z,deg1,deg2,Q?)"), tr("FDIST(z,deg1,deg2,Q?)"), "FDIST(",submenuFuncDistr); 556 addFlyAction(tr("FDIST(z,deg1,deg2,Q?)"), tr("FDIST(z,deg1,deg2,Q?)"), "FDIST(",submenuFuncDistr);
570 addFlyAction(tr("GAMMADIST(x,a,b,Q?)"), tr("GAMMADIST(x,a,b,Q?)"), "GAMMADIST(",submenuFuncDistr); 557 addFlyAction(tr("GAMMADIST(x,a,b,Q?)"), tr("GAMMADIST(x,a,b,Q?)"), "GAMMADIST(",submenuFuncDistr);
571 addFlyAction(tr("NORMALDIST(x,m,s,Q?)"), tr("NORMALDIST(x,m,s,Q?)"), "NORMALDIST(",submenuFuncDistr); 558 addFlyAction(tr("NORMALDIST(x,m,s,Q?)"), tr("NORMALDIST(x,m,s,Q?)"), "NORMALDIST(",submenuFuncDistr);
572 addFlyAction(tr("PHI(x,Q?)"), tr("PHI(x,Q?)"), "PHI(",submenuFuncDistr); 559 addFlyAction(tr("PHI(x,Q?)"), tr("PHI(x,Q?)"), "PHI(",submenuFuncDistr);
573 addFlyAction(tr("POISSON(x,n,Q?)"), tr("POISSON(x,n,Q?)"), "POISSON(",submenuFuncDistr); 560 addFlyAction(tr("POISSON(x,n,Q?)"), tr("POISSON(x,n,Q?)"), "POISSON(",submenuFuncDistr);
574 submenuFunc->insertItem(tr("&Distributions"), submenuFuncDistr); 561 submenuFunc->insertItem(tr("&Distributions"), submenuFuncDistr);
575 562
576 563
577 564
578 menuInsert->insertSeparator(); 565 menuInsert->insertSeparator();
579 insertCells->addTo(menuInsert); 566 insertCells->addTo(menuInsert);
580 insertRows->addTo(menuInsert); 567 insertRows->addTo(menuInsert);
581 insertCols->addTo(menuInsert); 568 insertCols->addTo(menuInsert);
582 insertSheets->addTo(menuInsert); 569 insertSheets->addTo(menuInsert);
583} 570}
584 571
585void MainWindow::initStandardToolbar() 572void MainWindow::initStandardToolbar()
586{ 573{
587 toolbarStandard=new QToolBar(this); 574 toolbarStandard=new QToolBar(this);
588 toolbarStandard->setHorizontalStretchable(TRUE); 575 toolbarStandard->setHorizontalStretchable(TRUE);
589 moveToolBar(toolbarStandard, Top); 576 moveToolBar(toolbarStandard, Top);
590 577
591 fileNew->addTo(toolbarStandard); 578 fileNew->addTo(toolbarStandard);
592 fileOpen->addTo(toolbarStandard); 579 fileOpen->addTo(toolbarStandard);
593 fileSave->addTo(toolbarStandard); 580 fileSave->addTo(toolbarStandard);
594 581
595 comboSheets=new QComboBox(toolbarStandard); 582 comboSheets=new QComboBox(toolbarStandard);
596 toolbarStandard->setStretchableWidget(comboSheets); 583 toolbarStandard->setStretchableWidget(comboSheets);
597 connect(comboSheets, SIGNAL(activated(const QString &)), this, SLOT(slotSheetChanged(const QString &))); 584 connect(comboSheets, SIGNAL(activated(const QString &)), this, SLOT(slotSheetChanged(const QString &)));
598} 585}
599 586
600void MainWindow::initFunctionsToolbar() 587void MainWindow::initFunctionsToolbar()
601{ 588{
602 toolbarFunctions=new QToolBar(this); 589 toolbarFunctions=new QToolBar(this);
603 toolbarFunctions->setHorizontalStretchable(TRUE); 590 toolbarFunctions->setHorizontalStretchable(TRUE);
604 moveToolBar(toolbarFunctions, Bottom); 591 moveToolBar(toolbarFunctions, Bottom);
605 592
606 funcEqual->addTo(toolbarFunctions); 593 funcEqual->addTo(toolbarFunctions);
607 funcPlus->addTo(toolbarFunctions); 594 funcPlus->addTo(toolbarFunctions);
608 funcMinus->addTo(toolbarFunctions); 595 funcMinus->addTo(toolbarFunctions);
609 funcCross->addTo(toolbarFunctions); 596 funcCross->addTo(toolbarFunctions);
610 funcDivide->addTo(toolbarFunctions); 597 funcDivide->addTo(toolbarFunctions);
611 funcParanOpen->addTo(toolbarFunctions); 598 funcParanOpen->addTo(toolbarFunctions);
612 funcParanClose->addTo(toolbarFunctions); 599 funcParanClose->addTo(toolbarFunctions);
613 funcComma->addTo(toolbarFunctions); 600 funcComma->addTo(toolbarFunctions);
614 601
615 toolFunction=new QToolButton(toolbarFunctions); 602 toolFunction=new QToolButton(toolbarFunctions);
616 toolFunction->setPixmap(func_func_xpm); 603 toolFunction->setPixmap(Resource::loadPixmap( "opie-sheet/func_func" ));
617 toolFunction->setTextLabel(tr("Functions")); 604 toolFunction->setTextLabel(tr("Functions"));
618 toolFunction->setPopup(submenuFunc); 605 toolFunction->setPopup(submenuFunc);
619 toolFunction->setPopupDelay(0); 606 toolFunction->setPopupDelay(0);
620} 607}
621 608
622void MainWindow::initEditToolbar() 609void MainWindow::initEditToolbar()
623{ 610{
624 toolbarEdit=new QToolBar(this); 611 toolbarEdit=new QToolBar(this);
625 toolbarEdit->setHorizontalStretchable(TRUE); 612 toolbarEdit->setHorizontalStretchable(TRUE);
626 moveToolBar(toolbarEdit, Bottom); 613 moveToolBar(toolbarEdit, Bottom);
627 614
628 editAccept->addTo(toolbarEdit); 615 editAccept->addTo(toolbarEdit);
629 editCancel->addTo(toolbarEdit); 616 editCancel->addTo(toolbarEdit);
630 617
631 editData=new QLineEdit(toolbarEdit); 618 editData=new QLineEdit(toolbarEdit);
632 toolbarEdit->setStretchableWidget(editData); 619 toolbarEdit->setStretchableWidget(editData);
633 connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept())); 620 connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept()));
634 621
635 editCellSelect->addTo(toolbarEdit); 622 editCellSelect->addTo(toolbarEdit);
636} 623}
637 624
638void MainWindow::slotHelpAbout() 625void MainWindow::slotHelpAbout()
639{ 626{
640 QDialog dialogAbout(this, 0, TRUE); 627 QDialog dialogAbout(this, 0, TRUE);
641 dialogAbout.resize(width()-40, height()-80); 628 dialogAbout.resize(width()-40, height()-80);
642 dialogAbout.setCaption(tr("About Opie Sheet")); 629 dialogAbout.setCaption(tr("About Opie Sheet"));
643 630
644 QLabel label(tr("Opie Sheet\nSpreadsheet Software for Opie\nQWDC Beta Winner (as Sheet/Qt)\n\nDeveloped by: Serdar Ozler\nRelease 1.0.2\nRelease Date: October 08, 2002\n\nThis product is licensed under GPL. It is freely distributable. If you want to get the latest version and also the source code, please visit the web site.\n\nhttp://qtopia.sitebest.com"), &dialogAbout); 631 QLabel label(tr("Opie Sheet\nSpreadsheet Software for Opie\nQWDC Beta Winner (as Sheet/Qt)\n\nDeveloped by: Serdar Ozler\nRelease 1.0.2\nRelease Date: October 08, 2002\n\nThis product is licensed under GPL. It is freely distributable. If you want to get the latest version and also the source code, please visit the web site.\n\nhttp://qtopia.sitebest.com"), &dialogAbout);
645 label.setGeometry(dialogAbout.rect()); 632 label.setGeometry(dialogAbout.rect());
646 label.setAlignment(Qt::AlignCenter | Qt::WordBreak); 633 label.setAlignment(Qt::AlignCenter | Qt::WordBreak);
647 634
648 dialogAbout.exec(); 635 dialogAbout.exec();
649} 636}
650 637
651void MainWindow::initSheet() 638void MainWindow::initSheet()
652{ 639{
653 sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this); 640 sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this);
654 setCentralWidget(sheet); 641 setCentralWidget(sheet);
655 642
656 connect(sheet, SIGNAL(currentDataChanged(const QString &)), editData, SLOT(setText(const QString &))); 643 connect(sheet, SIGNAL(currentDataChanged(const QString &)), editData, SLOT(setText(const QString &)));
657 connect(sheet, SIGNAL(cellClicked(const QString &)), this, SLOT(slotCellClicked(const QString &))); 644 connect(sheet, SIGNAL(cellClicked(const QString &)), this, SLOT(slotCellClicked(const QString &)));
658 connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified())); 645 connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified()));
659 646
660 connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut())); 647 connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut()));
661 connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy())); 648 connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy()));
662 connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear())); 649 connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear()));
663} 650}
664 651
665void MainWindow::slotEditAccept() 652void MainWindow::slotEditAccept()
666{ 653{
667 sheet->setData(editData->text()); 654 sheet->setData(editData->text());
668} 655}
669 656
670void MainWindow::slotEditCancel() 657void MainWindow::slotEditCancel()
671{ 658{
672 editData->setText(sheet->getData()); 659 editData->setText(sheet->getData());
673} 660}
674 661
675void MainWindow::slotCellSelect(bool lock) 662void MainWindow::slotCellSelect(bool lock)
676{ 663{
677 sheet->lockClicks(lock); 664 sheet->lockClicks(lock);
678} 665}
679 666
680void MainWindow::addToData(const QString &data) 667void MainWindow::addToData(const QString &data)
681{ 668{
682 editData->setText(editData->text().insert(editData->cursorPosition(), data)); 669 editData->setText(editData->text().insert(editData->cursorPosition(), data));
683} 670}
684 671
685void MainWindow::slotFuncOutput() 672void MainWindow::slotFuncOutput()
686{ 673{
687 if (sender()->isA("QAction")) 674 if (sender()->isA("QAction"))
688 addToData(((QAction *)sender())->toolTip()); 675 addToData(((QAction *)sender())->toolTip());
689} 676}
690 677
691void MainWindow::slotInsertRows() 678void MainWindow::slotInsertRows()
692{ 679{
693 NumberDialog dialogNumber(this); 680 NumberDialog dialogNumber(this);
694 if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted) 681 if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted)
695 sheet->insertRows(dialogNumber.getValue()); 682 sheet->insertRows(dialogNumber.getValue());
696} 683}
697 684
698void MainWindow::slotInsertCols() 685void MainWindow::slotInsertCols()
699{ 686{
700 NumberDialog dialogNumber(this); 687 NumberDialog dialogNumber(this);
701 if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted) 688 if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted)
702 sheet->insertColumns(dialogNumber.getValue()); 689 sheet->insertColumns(dialogNumber.getValue());
703} 690}
704 691
705void MainWindow::slotInsertSheets() 692void MainWindow::slotInsertSheets()
706{ 693{
707 NumberDialog dialogNumber(this); 694 NumberDialog dialogNumber(this);
708 if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted) 695 if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted)
709 for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet(); 696 for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet();
710} 697}
711 698
712void MainWindow::slotCellClicked(const QString &cell) 699void MainWindow::slotCellClicked(const QString &cell)
713{ 700{
714 editCellSelect->setOn(FALSE); 701 editCellSelect->setOn(FALSE);
715 addToData(cell); 702 addToData(cell);
716} 703}
717 704
718typeSheet *MainWindow::createNewSheet() 705typeSheet *MainWindow::createNewSheet()
719{ 706{
720 typeSheet *newSheet=new typeSheet; 707 typeSheet *newSheet=new typeSheet;
721 int currentNo=1, tempNo=0; 708 int currentNo=1, tempNo=0;
722 bool ok; 709 bool ok;
723 710
724 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 711 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
725 if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok) 712 if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok)
726 currentNo=tempNo+1; 713 currentNo=tempNo+1;
727 714
728 newSheet->name=tr("Sheet")+QString::number(currentNo); 715 newSheet->name=tr("Sheet")+QString::number(currentNo);
729 newSheet->data.setAutoDelete(TRUE); 716 newSheet->data.setAutoDelete(TRUE);
730 717
731 comboSheets->insertItem(newSheet->name); 718 comboSheets->insertItem(newSheet->name);
732 listSheets.append(newSheet); 719 listSheets.append(newSheet);
733 return newSheet; 720 return newSheet;
734} 721}
735 722
736typeSheet *MainWindow::findSheet(const QString &name) 723typeSheet *MainWindow::findSheet(const QString &name)
737{ 724{
738 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 725 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
739 if (tempSheet->name==name) 726 if (tempSheet->name==name)
740 return tempSheet; 727 return tempSheet;
741 return NULL; 728 return NULL;
742} 729}
743 730
744void MainWindow::slotSheetChanged(const QString &name) 731void MainWindow::slotSheetChanged(const QString &name)
745{ 732{
746 sheet->copySheetData(&findSheet(sheet->getName())->data); 733 sheet->copySheetData(&findSheet(sheet->getName())->data);
747 sheet->setName(name); 734 sheet->setName(name);
748 sheet->setSheetData(&findSheet(name)->data); 735 sheet->setSheetData(&findSheet(name)->data);
749 sheet->ReCalc(); 736 sheet->ReCalc();
750} 737}
751 738
752void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w) 739void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w)
753{ 740{
754 QAction *action=new QAction(text, menuText, 0, this); 741 QAction *action=new QAction(text, menuText, 0, this);
755 action->setToolTip(tip); 742 action->setToolTip(tip);
756 connect(action, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 743 connect(action, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
757 action->addTo(w); 744 action->addTo(w);
758} 745}
759 746
760void MainWindow::slotFormatCells() 747void MainWindow::slotFormatCells()
761{ 748{
762 CellFormat dialogCellFormat(this); 749 CellFormat dialogCellFormat(this);
763 dialogCellFormat.showMaximized(); 750 dialogCellFormat.showMaximized();
764 dialogCellFormat.exec(sheet); 751 dialogCellFormat.exec(sheet);
765} 752}
766 753
767void MainWindow::slotEditPaste() 754void MainWindow::slotEditPaste()
768{ 755{
769 sheet->editPaste(); 756 sheet->editPaste();
770} 757}
771 758
772void MainWindow::slotEditPasteContents() 759void MainWindow::slotEditPasteContents()
773{ 760{
774 sheet->editPaste(TRUE); 761 sheet->editPaste(TRUE);
775} 762}
776 763
777void MainWindow::slotRowHeight() 764void MainWindow::slotRowHeight()
778{ 765{
779 int row1, row2, col1, col2; 766 int row1, row2, col1, col2;
780 sheet->getSelection(&row1, &col1, &row2, &col2); 767 sheet->getSelection(&row1, &col1, &row2, &col2);
781 768
782 NumberDialog dialogNumber(this); 769 NumberDialog dialogNumber(this);
783 if (dialogNumber.exec(tr("Row Height"), tr("&Height of each row:"), sheet->rowHeight(row1))==QDialog::Accepted) 770 if (dialogNumber.exec(tr("Row Height"), tr("&Height of each row:"), sheet->rowHeight(row1))==QDialog::Accepted)
784 { 771 {
785 int newHeight=dialogNumber.getValue(), row; 772 int newHeight=dialogNumber.getValue(), row;
786 for (row=row1; row<=row2; ++row) 773 for (row=row1; row<=row2; ++row)
787 sheet->setRowHeight(row, newHeight); 774 sheet->setRowHeight(row, newHeight);
788 } 775 }
789} 776}
790 777
791void MainWindow::slotRowAdjust() 778void MainWindow::slotRowAdjust()
792{ 779{
793 int row1, row2, col1, col2; 780 int row1, row2, col1, col2;
794 sheet->getSelection(&row1, &col1, &row2, &col2); 781 sheet->getSelection(&row1, &col1, &row2, &col2);
795 782
796 for (int row=row1; row<=row2; ++row) 783 for (int row=row1; row<=row2; ++row)
797 sheet->adjustRow(row); 784 sheet->adjustRow(row);
798} 785}
799 786
800void MainWindow::slotRowShow() 787void MainWindow::slotRowShow()
801{ 788{
802 int row1, row2, col1, col2; 789 int row1, row2, col1, col2;
803 sheet->getSelection(&row1, &col1, &row2, &col2); 790 sheet->getSelection(&row1, &col1, &row2, &col2);
804 791
805 for (int row=row1; row<=row2; ++row) 792 for (int row=row1; row<=row2; ++row)
806 sheet->showRow(row); 793 sheet->showRow(row);
807} 794}
808 795
809void MainWindow::slotRowHide() 796void MainWindow::slotRowHide()
810{ 797{
811 int row1, row2, col1, col2; 798 int row1, row2, col1, col2;
812 sheet->getSelection(&row1, &col1, &row2, &col2); 799 sheet->getSelection(&row1, &col1, &row2, &col2);
813 800
814 for (int row=row1; row<=row2; ++row) 801 for (int row=row1; row<=row2; ++row)
815 sheet->hideRow(row); 802 sheet->hideRow(row);
816} 803}
817 804
818void MainWindow::slotColumnWidth() 805void MainWindow::slotColumnWidth()
819{ 806{
820 int row1, row2, col1, col2; 807 int row1, row2, col1, col2;
821 sheet->getSelection(&row1, &col1, &row2, &col2); 808 sheet->getSelection(&row1, &col1, &row2, &col2);
822 809
823 NumberDialog dialogNumber(this); 810 NumberDialog dialogNumber(this);
824 if (dialogNumber.exec(tr("Column Width"), tr("&Width of each column:"), sheet->columnWidth(col1))==QDialog::Accepted) 811 if (dialogNumber.exec(tr("Column Width"), tr("&Width of each column:"), sheet->columnWidth(col1))==QDialog::Accepted)
825 { 812 {
826 int newWidth=dialogNumber.getValue(), col; 813 int newWidth=dialogNumber.getValue(), col;
827 for (col=col1; col<=col2; ++col) 814 for (col=col1; col<=col2; ++col)
828 sheet->setColumnWidth(col, newWidth); 815 sheet->setColumnWidth(col, newWidth);
829 } 816 }
830} 817}
831 818
832void MainWindow::slotColumnAdjust() 819void MainWindow::slotColumnAdjust()
833{ 820{
834 int row1, row2, col1, col2; 821 int row1, row2, col1, col2;
835 sheet->getSelection(&row1, &col1, &row2, &col2); 822 sheet->getSelection(&row1, &col1, &row2, &col2);
836 823
837 for (int col=col1; col<=col2; ++col) 824 for (int col=col1; col<=col2; ++col)
838 sheet->adjustColumn(col); 825 sheet->adjustColumn(col);
839} 826}
840 827
841void MainWindow::slotColumnShow() 828void MainWindow::slotColumnShow()
842{ 829{
843 int row1, row2, col1, col2; 830 int row1, row2, col1, col2;
844 sheet->getSelection(&row1, &col1, &row2, &col2); 831 sheet->getSelection(&row1, &col1, &row2, &col2);
845 832
846 for (int col=col1; col<=col2; ++col) 833 for (int col=col1; col<=col2; ++col)
847 sheet->showColumn(col); 834 sheet->showColumn(col);
848} 835}
849 836
850void MainWindow::slotColumnHide() 837void MainWindow::slotColumnHide()
851{ 838{
852 int row1, row2, col1, col2; 839 int row1, row2, col1, col2;
853 sheet->getSelection(&row1, &col1, &row2, &col2); 840 sheet->getSelection(&row1, &col1, &row2, &col2);
854 841
855 for (int col=col1; col<=col2; ++col) 842 for (int col=col1; col<=col2; ++col)
856 sheet->hideColumn(col); 843 sheet->hideColumn(col);
857} 844}
858 845
859void MainWindow::slotFileSaveAs() 846void MainWindow::slotFileSaveAs()
860{ 847{
861 TextDialog dialogText(this); 848 TextDialog dialogText(this);
862 if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc->name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; 849 if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc->name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return;
863 850
864 currentDoc->setName(dialogText.getValue()); 851 currentDoc->setName(dialogText.getValue());
865 currentDoc->setFile(QString::null); 852 currentDoc->setFile(QString::null);
866 currentDoc->setLinkFile(QString::null); 853 currentDoc->setLinkFile(QString::null);
867 documentSave(currentDoc); 854 documentSave(currentDoc);
868} 855}
869 856
870void MainWindow::slotImportExcel(const DocLnk &lnkDoc) 857void MainWindow::slotImportExcel(const DocLnk &lnkDoc)
871{ 858{
872 ExcelBook file1; 859 ExcelBook file1;
873 file1.ParseBook((char *)lnkDoc.file().ascii()); 860 file1.ParseBook((char *)lnkDoc.file().ascii());
874 int NumOfSheets=file1.Sheets.count(); 861 int NumOfSheets=file1.Sheets.count();
875 printf("OpieSheet::NumberOfSheets:%d\r\n",NumOfSheets); 862 printf("OpieSheet::NumberOfSheets:%d\r\n",NumOfSheets);
876 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; 863 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
877 if (currentDoc) delete currentDoc; 864 if (currentDoc) delete currentDoc;
878 currentDoc = new DocLnk(); 865 currentDoc = new DocLnk();
879 listSheets.clear(); 866 listSheets.clear();
880 comboSheets->clear(); 867 comboSheets->clear();
881 int w1,r,c; 868 int w1,r,c;
882 ExcelSheet* sh1; 869 ExcelSheet* sh1;
883 typeSheet* newSheet; 870 typeSheet* newSheet;
884 QString* str; 871 QString* str;
885 typeCellData* newCell; 872 typeCellData* newCell;
886 for(w1=1;w1<=NumOfSheets;w1++) 873 for(w1=1;w1<=NumOfSheets;w1++)
887 { 874 {
888 sh1=file1.Sheets[w1-1]; 875 sh1=file1.Sheets[w1-1];
889 printf("OpieSheet:newSheet:%x,r=%d,c=%d\r\n",sh1,sh1->rows,sh1->cols); 876 printf("OpieSheet:newSheet:%x,r=%d,c=%d\r\n",sh1,sh1->rows,sh1->cols);
890 newSheet=new typeSheet; 877 newSheet=new typeSheet;
891 newSheet->data.setAutoDelete(TRUE); 878 newSheet->data.setAutoDelete(TRUE);
892 newSheet->name=sh1->name; 879 newSheet->name=sh1->name;
893 printf("OpieSheet:Sheetname:%s\r\n",sh1->name.ascii()); 880 printf("OpieSheet:Sheetname:%s\r\n",sh1->name.ascii());
894 comboSheets->insertItem(newSheet->name); 881 comboSheets->insertItem(newSheet->name);
895 for(r=1; r <= sh1->rows; r++) 882 for(r=1; r <= sh1->rows; r++)
896 { 883 {
897 for(c=1;c <= sh1->cols; c++) 884 for(c=1;c <= sh1->cols; c++)
898 { 885 {
899 str=file1.CellDataString(sh1,r-1,c-1); 886 str=file1.CellDataString(sh1,r-1,c-1);
900 if(str!=NULL && r<DEFAULT_NUM_ROWS && c<DEFAULT_NUM_COLS) 887 if(str!=NULL && r<DEFAULT_NUM_ROWS && c<DEFAULT_NUM_COLS)
901 { 888 {
902 newCell=new typeCellData; 889 newCell=new typeCellData;
903 newCell->row=r-1; 890 newCell->row=r-1;
904 newCell->col=c-1; 891 newCell->col=c-1;
905 if(str!=NULL) newCell->data=QString(*str); else newCell->data=QString(""); 892 if(str!=NULL) newCell->data=QString(*str); else newCell->data=QString("");
906 newCell->background=QBrush(Qt::white, Qt::SolidPattern); 893 newCell->background=QBrush(Qt::white, Qt::SolidPattern);
907 newCell->alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop); 894 newCell->alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop);
908 newCell->fontColor=Qt::black; 895 newCell->fontColor=Qt::black;
909 newCell->font=font(); 896 newCell->font=font();
910 newCell->borders.right=QPen(Qt::gray, 1, Qt::SolidLine); 897 newCell->borders.right=QPen(Qt::gray, 1, Qt::SolidLine);
911 newCell->borders.bottom=QPen(Qt::gray, 1, Qt::SolidLine); 898 newCell->borders.bottom=QPen(Qt::gray, 1, Qt::SolidLine);
912 newSheet->data.append(newCell); 899 newSheet->data.append(newCell);
913 //there is no format parsing at the moment or style parsing 900 //there is no format parsing at the moment or style parsing
914 //printf("OpieSheetNumber:row=%d,col=%d,val=%s\r\n",r,c,str->latin1()); 901 //printf("OpieSheetNumber:row=%d,col=%d,val=%s\r\n",r,c,str->latin1());
915 }; 902 };
916 }; 903 };
917 }; 904 };
918 listSheets.append(newSheet); 905 listSheets.append(newSheet);
919 if (w1==1)//if i==0 link sheet1 with sheetview 906 if (w1==1)//if i==0 link sheet1 with sheetview
920 { 907 {
921 sheet->setName(newSheet->name); 908 sheet->setName(newSheet->name);
922 sheet->setSheetData(&newSheet->data); 909 sheet->setSheetData(&newSheet->data);
923 sheet->ReCalc(); 910 sheet->ReCalc();
924 }; 911 };
925 912
926 }; 913 };
927 file1.CloseFile(); 914 file1.CloseFile();
928 printf("Excel FILE read OK\r\n"); 915 printf("Excel FILE read OK\r\n");
929 documentModified=TRUE; 916 documentModified=TRUE;
930 917
931 918
932} 919}
933 920
934void MainWindow::slotSheetRename() 921void MainWindow::slotSheetRename()
935{ 922{
936 TextDialog dialogText(this); 923 TextDialog dialogText(this);
937 if (dialogText.exec(tr("Rename Sheet"), tr("&Sheet Name:"), sheet->getName())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; 924 if (dialogText.exec(tr("Rename Sheet"), tr("&Sheet Name:"), sheet->getName())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return;
938 QString newName=dialogText.getValue(); 925 QString newName=dialogText.getValue();
939 926
940 typeSheet *tempSheet=findSheet(newName); 927 typeSheet *tempSheet=findSheet(newName);
941 if (tempSheet) 928 if (tempSheet)
942 { 929 {
943 QMessageBox::critical(this, tr("Error"), tr("There is already a sheet named '"+newName+'\'')); 930 QMessageBox::critical(this, tr("Error"), tr("There is already a sheet named '"+newName+'\''));
944 return; 931 return;
945 } 932 }
946 933
947 tempSheet=findSheet(sheet->getName()); 934 tempSheet=findSheet(sheet->getName());
948 for (int i=0; i<comboSheets->count(); ++i) 935 for (int i=0; i<comboSheets->count(); ++i)
949 if (comboSheets->text(i)==tempSheet->name) 936 if (comboSheets->text(i)==tempSheet->name)
950 { 937 {
951 comboSheets->changeItem(newName, i); 938 comboSheets->changeItem(newName, i);
952 break; 939 break;
953 } 940 }
954 tempSheet->name=newName; 941 tempSheet->name=newName;
955 sheet->setName(newName); 942 sheet->setName(newName);
956} 943}
957 944
958void MainWindow::slotSheetRemove() 945void MainWindow::slotSheetRemove()
959{ 946{
960 if (comboSheets->count()<2) 947 if (comboSheets->count()<2)
961 { 948 {
962 QMessageBox::warning(this, tr("Error"), tr("There is only one sheet!")); 949 QMessageBox::warning(this, tr("Error"), tr("There is only one sheet!"));
963 return; 950 return;
964 } 951 }
965 if (QMessageBox::information(this, tr("Remove Sheet"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes) 952 if (QMessageBox::information(this, tr("Remove Sheet"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes)
966 { 953 {
967 typeSheet *tempSheet=findSheet(sheet->getName()); 954 typeSheet *tempSheet=findSheet(sheet->getName());
968 for (int i=0; i<comboSheets->count(); ++i) 955 for (int i=0; i<comboSheets->count(); ++i)
969 if (comboSheets->text(i)==tempSheet->name) 956 if (comboSheets->text(i)==tempSheet->name)
970 { 957 {
971 comboSheets->removeItem(i); 958 comboSheets->removeItem(i);
972 break; 959 break;
973 } 960 }
974 comboSheets->setCurrentItem(0); 961 comboSheets->setCurrentItem(0);
975 slotSheetChanged(comboSheets->currentText()); 962 slotSheetChanged(comboSheets->currentText());
976 listSheets.remove(tempSheet); 963 listSheets.remove(tempSheet);
977 } 964 }
978} 965}
979 966
980void MainWindow::slotDataSort() 967void MainWindow::slotDataSort()
981{ 968{
982 SortDialog dialogSort(this); 969 SortDialog dialogSort(this);
983 dialogSort.showMaximized(); 970 dialogSort.showMaximized();
984 dialogSort.exec(sheet); 971 dialogSort.exec(sheet);
985} 972}
986 973
987void MainWindow::slotDocModified() 974void MainWindow::slotDocModified()
988{ 975{
989 documentModified=TRUE; 976 documentModified=TRUE;
990} 977}
991 978
992void MainWindow::slotInsertCells() 979void MainWindow::slotInsertCells()
993{ 980{
994 QDialog dialogInsert(this, 0, TRUE); 981 QDialog dialogInsert(this, 0, TRUE);
995 dialogInsert.resize(180, 130); 982 dialogInsert.resize(180, 130);
996 dialogInsert.setCaption(tr("Insert Cells")); 983 dialogInsert.setCaption(tr("Insert Cells"));
997 984
998 QVButtonGroup *group=new QVButtonGroup(tr("&Type"), &dialogInsert); 985 QVButtonGroup *group=new QVButtonGroup(tr("&Type"), &dialogInsert);
999 group->setGeometry(10, 10, 160, 110); 986 group->setGeometry(10, 10, 160, 110);
1000 QRadioButton *radio=new QRadioButton(tr("Shift cells &down"), group); 987 QRadioButton *radio=new QRadioButton(tr("Shift cells &down"), group);
1001 radio=new QRadioButton(tr("Shift cells &right"), group); 988 radio=new QRadioButton(tr("Shift cells &right"), group);
1002 radio=new QRadioButton(tr("Entire ro&w"), group); 989 radio=new QRadioButton(tr("Entire ro&w"), group);
1003 radio=new QRadioButton(tr("Entire &column"), group); 990 radio=new QRadioButton(tr("Entire &column"), group);
1004 group->setButton(0); 991 group->setButton(0);
1005 992
1006 if (dialogInsert.exec()==QDialog::Accepted) 993 if (dialogInsert.exec()==QDialog::Accepted)
1007 switch (group->id(group->selected())) 994 switch (group->id(group->selected()))
1008 { 995 {
1009 case 0: sheet->insertRows(1, FALSE); break; 996 case 0: sheet->insertRows(1, FALSE); break;
1010 case 1: sheet->insertColumns(1, FALSE); break; 997 case 1: sheet->insertColumns(1, FALSE); break;
1011 case 2: sheet->insertRows(1, TRUE); break; 998 case 2: sheet->insertRows(1, TRUE); break;
1012 case 3: sheet->insertColumns(1, TRUE); break; 999 case 3: sheet->insertColumns(1, TRUE); break;
1013 } 1000 }
1014} 1001}
1015 1002
1016void MainWindow::slotDataFindReplace() 1003void MainWindow::slotDataFindReplace()
1017{ 1004{
1018 FindDialog dialogFind(this); 1005 FindDialog dialogFind(this);
1019 dialogFind.showMaximized(); 1006 dialogFind.showMaximized();
1020 dialogFind.exec(sheet); 1007 dialogFind.exec(sheet);
1021} 1008}