summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-sheet/mainwindow.cpp69
1 files changed, 51 insertions, 18 deletions
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp
index 3095142..4938ea8 100644
--- a/noncore/apps/opie-sheet/mainwindow.cpp
+++ b/noncore/apps/opie-sheet/mainwindow.cpp
@@ -1,1031 +1,1064 @@
1/* 1/*
2 =. This file is part of the Opie Project 2 =. This file is part of the Opie Project
3 .=l. Copyright (C) 2004 Opie Developer Team <opie-devel@handhelds.org> 3 .=l. Copyright (C) 2004 Opie Developer Team <opie-devel@handhelds.org>
4 .>+-= 4 .>+-=
5 _;:, .> :=|. This program is free software; you can 5 _;:, .> :=|. This program is free software; you can
6.> <`_, > . <= redistribute it and/or modify it under 6.> <`_, > . <= redistribute it and/or modify it under
7:`=1 )Y*s>-.-- : the terms of the GNU General Public 7:`=1 )Y*s>-.-- : the terms of the GNU General Public
8.="- .-=="i, .._ License as published by the Free Software 8.="- .-=="i, .._ License as published by the Free Software
9 - . .-<_> .<> Foundation; either version 2 of the License, 9 - . .-<_> .<> Foundation; either version 2 of the License,
10 ._= =} : or (at your option) any later version. 10 ._= =} : or (at your option) any later version.
11 .%`+i> _;_. 11 .%`+i> _;_.
12 .i_,=:_. -<s. This program is distributed in the hope that 12 .i_,=:_. -<s. This program is distributed in the hope that
13 + . -:. = it will be useful, but WITHOUT ANY WARRANTY; 13 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
14 : .. .:, . . . without even the implied warranty of 14 : .. .:, . . . without even the implied warranty of
15 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 15 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
16 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 16 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.= = ; Library General Public License for more 17..}^=.= = ; Library General Public License for more
18++= -. .` .: details. 18++= -. .` .: details.
19 : = ...= . :.=- 19 : = ...= . :.=-
20 -. .:....=;==+<; You should have received a copy of the GNU 20 -. .:....=;==+<; You should have received a copy of the GNU
21 -_. . . )=. = Library General Public License along with 21 -_. . . )=. = Library General Public License along with
22 -- :-=` this library; see the file COPYING.LIB. 22 -- :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29/* 29/*
30 * Opie Sheet (formerly Sheet/Qt) 30 * Opie Sheet (formerly Sheet/Qt)
31 * by Serdar Ozler <sozler@sitebest.com> 31 * by Serdar Ozler <sozler@sitebest.com>
32 */ 32 */
33 33
34#include "mainwindow.h" 34#include "mainwindow.h"
35 35
36/* OPIE */ 36/* OPIE */
37#include <qpe/resource.h> 37#include <opie2/oresource.h>
38#include <qpe/qpeapplication.h> 38#include <qpe/qpeapplication.h>
39 39
40/* QT */ 40/* QT */
41#include <qmessagebox.h> 41#include <qmessagebox.h>
42#include <qradiobutton.h> 42#include <qradiobutton.h>
43 43
44/* STD */ 44/* STD */
45#include "cellformat.h" 45#include "cellformat.h"
46#include "numberdlg.h" 46#include "numberdlg.h"
47#include "textdlg.h" 47#include "textdlg.h"
48#include "sortdlg.h" 48#include "sortdlg.h"
49#include "finddlg.h" 49#include "finddlg.h"
50 50
51#define DEFAULT_NUM_ROWS 300 51#define DEFAULT_NUM_ROWS 300
52#define DEFAULT_NUM_COLS (26*3) 52#define DEFAULT_NUM_COLS (26*3)
53#define DEFAULT_NUM_SHEETS 3 53#define DEFAULT_NUM_SHEETS 3
54 54
55MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl) 55MainWindow::MainWindow(QWidget *parent, const char* n, WFlags fl)
56 :QMainWindow(parent, n, fl) 56 :QMainWindow(parent, n, fl)
57{ 57{
58 // initialize variables 58 // initialize variables
59 documentModified=FALSE; 59 documentModified=FALSE;
60 60
61 // construct objects 61 // construct objects
62 currentDoc=0; 62 currentDoc=0;
63 fileSelector=new FileSelector("application/opie-sheet", this, QString::null); 63 fileSelector=new FileSelector("application/opie-sheet", this, QString::null);
64 ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE); 64 ExcelSelector=new FileSelector("application/excel",this,QString::null,FALSE);
65 connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); 65 connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide()));
66 connect(fileSelector, SIGNAL(newSelected(const DocLnk&)), this, SLOT(selectorFileNew(const DocLnk&))); 66 connect(fileSelector, SIGNAL(newSelected(const DocLnk&)), this, SLOT(selectorFileNew(const DocLnk&)));
67 connect(fileSelector, SIGNAL(fileSelected(const DocLnk&)), this, SLOT(selectorFileOpen(const DocLnk&))); 67 connect(fileSelector, SIGNAL(fileSelected(const DocLnk&)), this, SLOT(selectorFileOpen(const DocLnk&)));
68 connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk&)),this,SLOT(slotImportExcel(const DocLnk&))); 68 connect(ExcelSelector,SIGNAL(fileSelected(const DocLnk&)),this,SLOT(slotImportExcel(const DocLnk&)));
69 connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide())); 69 connect(ExcelSelector,SIGNAL(closeMe()), this, SLOT(ExcelSelectorHide()));
70 70
71 listSheets.setAutoDelete(TRUE); 71 listSheets.setAutoDelete(TRUE);
72 72
73 initActions(); 73 initActions();
74 initMenu(); 74 initMenu();
75 initEditToolbar(); 75 initEditToolbar();
76 initFunctionsToolbar(); 76 initFunctionsToolbar();
77 initStandardToolbar(); 77 initStandardToolbar();
78 initSheet(); 78 initSheet();
79 79
80 // set window title 80 // set window title
81 setCaption(tr("Opie Sheet")); 81 setCaption(tr("Opie Sheet"));
82 82
83 // create sheets 83 // create sheets
84 selectorFileNew(DocLnk()); 84 selectorFileNew(DocLnk());
85} 85}
86 86
87MainWindow::~MainWindow() 87MainWindow::~MainWindow()
88{ 88{
89 if (currentDoc) delete currentDoc; 89 if (currentDoc) delete currentDoc;
90} 90}
91 91
92void MainWindow::documentSave(DocLnk *lnkDoc) 92void MainWindow::documentSave(DocLnk *lnkDoc)
93{ 93{
94 FileManager fm; 94 FileManager fm;
95 QByteArray streamBuffer; 95 QByteArray streamBuffer;
96 QDataStream stream(streamBuffer, IO_WriteOnly); 96 QDataStream stream(streamBuffer, IO_WriteOnly);
97 97
98 typeSheet *currentSheet=findSheet(sheet->getName()); 98 typeSheet *currentSheet=findSheet(sheet->getName());
99 if (!currentSheet) 99 if (!currentSheet)
100 { 100 {
101 QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); 101 QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!"));
102 return; 102 return;
103 } 103 }
104 sheet->copySheetData(&currentSheet->data); 104 sheet->copySheetData(&currentSheet->data);
105 stream.writeRawBytes("SQT100", 6); 105 stream.writeRawBytes("SQT100", 6);
106 stream << (Q_UINT32)listSheets.count(); 106 stream << (Q_UINT32)listSheets.count();
107 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 107 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
108 { 108 {
109 stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); 109 stream << tempSheet->name << (Q_UINT32)tempSheet->data.count();
110 for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) 110 for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next())
111 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; 111 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;
112 } 112 }
113 113
114 lnkDoc->setType("application/opie-sheet"); 114 lnkDoc->setType("application/opie-sheet");
115 if (!fm.saveFile(*lnkDoc, streamBuffer)) 115 if (!fm.saveFile(*lnkDoc, streamBuffer))
116 { 116 {
117 QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); 117 QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!"));
118 return; 118 return;
119 } 119 }
120 documentModified=FALSE; 120 documentModified=FALSE;
121} 121}
122 122
123void MainWindow::documentOpen(const DocLnk &lnkDoc) 123void MainWindow::documentOpen(const DocLnk &lnkDoc)
124{ 124{
125 FileManager fm; 125 FileManager fm;
126 QByteArray streamBuffer; 126 QByteArray streamBuffer;
127 if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) 127 if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer))
128 { 128 {
129 QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); 129 QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!"));
130 documentModified=FALSE; 130 documentModified=FALSE;
131 selectorFileNew(DocLnk()); 131 selectorFileNew(DocLnk());
132 return; 132 return;
133 } 133 }
134 QDataStream stream(streamBuffer, IO_ReadOnly); 134 QDataStream stream(streamBuffer, IO_ReadOnly);
135 135
136 Q_UINT32 countSheet, countCell, i, j, row, col, alignment; 136 Q_UINT32 countSheet, countCell, i, j, row, col, alignment;
137 typeSheet *newSheet; 137 typeSheet *newSheet;
138 typeCellData *newCell; 138 typeCellData *newCell;
139 139
140 char fileFormat[7]; 140 char fileFormat[7];
141 stream.readRawBytes(fileFormat, 6); 141 stream.readRawBytes(fileFormat, 6);
142 fileFormat[6]=0; 142 fileFormat[6]=0;
143 if ((QString)fileFormat!="SQT100") 143 if ((QString)fileFormat!="SQT100")
144 { 144 {
145 QMessageBox::critical(this, tr("Error"), tr("Invalid file format!")); 145 QMessageBox::critical(this, tr("Error"), tr("Invalid file format!"));
146 documentModified=FALSE; 146 documentModified=FALSE;
147 selectorFileNew(DocLnk()); 147 selectorFileNew(DocLnk());
148 return; 148 return;
149 } 149 }
150 150
151 stream >> countSheet; 151 stream >> countSheet;
152 for (i=0; i<countSheet; ++i) 152 for (i=0; i<countSheet; ++i)
153 { 153 {
154 newSheet=new typeSheet; 154 newSheet=new typeSheet;
155 newSheet->data.setAutoDelete(TRUE); 155 newSheet->data.setAutoDelete(TRUE);
156 stream >> newSheet->name >> countCell; 156 stream >> newSheet->name >> countCell;
157 comboSheets->insertItem(newSheet->name); 157 comboSheets->insertItem(newSheet->name);
158 158
159 for (j=0; j<countCell; ++j) 159 for (j=0; j<countCell; ++j)
160 { 160 {
161 newCell=new typeCellData; 161 newCell=new typeCellData;
162 stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data; 162 stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data;
163 newCell->col=col; 163 newCell->col=col;
164 newCell->row=row; 164 newCell->row=row;
165 newCell->alignment=(Qt::AlignmentFlags)alignment; 165 newCell->alignment=(Qt::AlignmentFlags)alignment;
166 newSheet->data.append(newCell); 166 newSheet->data.append(newCell);
167 } 167 }
168 listSheets.append(newSheet); 168 listSheets.append(newSheet);
169 169
170 if (i==0) 170 if (i==0)
171 { 171 {
172 sheet->setName(newSheet->name); 172 sheet->setName(newSheet->name);
173 sheet->setSheetData(&newSheet->data); 173 sheet->setSheetData(&newSheet->data);
174 } 174 }
175 } 175 }
176} 176}
177 177
178int MainWindow::saveCurrentFile(bool ask) 178int MainWindow::saveCurrentFile(bool ask)
179{ 179{
180 if (ask) 180 if (ask)
181 { 181 {
182 int result=QMessageBox::information(this, tr("Save File"), tr("Do you want to save the current file?"), QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); 182 int result=QMessageBox::information(this, tr("Save File"), tr("Do you want to save the current file?"), QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel);
183 if (result!=QMessageBox::Yes) return result; 183 if (result!=QMessageBox::Yes) return result;
184 } 184 }
185 185
186 if (!currentDoc->isValid()) 186 if (!currentDoc->isValid())
187 { 187 {
188 TextDialog dialogText(this); 188 TextDialog dialogText(this);
189 if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel; 189 if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel;
190 190
191 currentDoc->setName(dialogText.getValue()); 191 currentDoc->setName(dialogText.getValue());
192 currentDoc->setFile(QString::null); 192 currentDoc->setFile(QString::null);
193 currentDoc->setLinkFile(QString::null); 193 currentDoc->setLinkFile(QString::null);
194 } 194 }
195 195
196 documentSave(currentDoc); 196 documentSave(currentDoc);
197 return QMessageBox::Yes; 197 return QMessageBox::Yes;
198} 198}
199 199
200void MainWindow::selectorFileNew(const DocLnk &lnkDoc) 200void MainWindow::selectorFileNew(const DocLnk &lnkDoc)
201{ 201{
202 selectorHide(); 202 selectorHide();
203 203
204 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; 204 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
205 if (currentDoc) delete currentDoc; 205 if (currentDoc) delete currentDoc;
206 currentDoc = new DocLnk(lnkDoc); 206 currentDoc = new DocLnk(lnkDoc);
207 editData->clear(); 207 editData->clear();
208 listSheets.clear(); 208 listSheets.clear();
209 comboSheets->clear(); 209 comboSheets->clear();
210 210
211 typeSheet *newSheet=createNewSheet(); 211 typeSheet *newSheet=createNewSheet();
212 newSheet->data.setAutoDelete(TRUE); 212 newSheet->data.setAutoDelete(TRUE);
213 sheet->setName(newSheet->name); 213 sheet->setName(newSheet->name);
214 sheet->setSheetData(&newSheet->data); 214 sheet->setSheetData(&newSheet->data);
215 for (int i=1; i<DEFAULT_NUM_SHEETS; ++i) 215 for (int i=1; i<DEFAULT_NUM_SHEETS; ++i)
216 createNewSheet(); 216 createNewSheet();
217 documentModified=FALSE; 217 documentModified=FALSE;
218} 218}
219 219
220void MainWindow::closeEvent(QCloseEvent *e) 220void MainWindow::closeEvent(QCloseEvent *e)
221{ 221{
222 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) e->ignore(); 222 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) e->ignore();
223 else e->accept(); 223 else e->accept();
224} 224}
225 225
226void MainWindow::selectorFileOpen(const DocLnk &lnkDoc) 226void MainWindow::selectorFileOpen(const DocLnk &lnkDoc)
227{ 227{
228 selectorHide(); 228 selectorHide();
229 229
230 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; 230 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
231 if (currentDoc) delete currentDoc; 231 if (currentDoc) delete currentDoc;
232 currentDoc = new DocLnk( lnkDoc ); 232 currentDoc = new DocLnk( lnkDoc );
233 listSheets.clear(); 233 listSheets.clear();
234 comboSheets->clear(); 234 comboSheets->clear();
235 235
236 documentOpen(lnkDoc); 236 documentOpen(lnkDoc);
237 documentModified=FALSE; 237 documentModified=FALSE;
238} 238}
239 239
240void MainWindow::selectorShow() 240void MainWindow::selectorShow()
241{ 241{
242 sheet->hide(); 242 sheet->hide();
243 setCentralWidget(fileSelector); 243 setCentralWidget(fileSelector);
244 fileSelector->show(); 244 fileSelector->show();
245 fileSelector->reread(); 245 fileSelector->reread();
246} 246}
247 247
248void MainWindow::selectorHide() 248void MainWindow::selectorHide()
249{ 249{
250 fileSelector->hide(); 250 fileSelector->hide();
251 setCentralWidget(sheet); 251 setCentralWidget(sheet);
252 sheet->show(); 252 sheet->show();
253} 253}
254 254
255void MainWindow::slotFileNew() 255void MainWindow::slotFileNew()
256{ 256{
257 selectorFileNew(DocLnk()); 257 selectorFileNew(DocLnk());
258} 258}
259 259
260void MainWindow::slotFileOpen() 260void MainWindow::slotFileOpen()
261{ 261{
262 selectorShow(); 262 selectorShow();
263} 263}
264 264
265void MainWindow::slotImportExcelOpen() 265void MainWindow::slotImportExcelOpen()
266{ 266{
267 sheet->hide(); 267 sheet->hide();
268 setCentralWidget(ExcelSelector); 268 setCentralWidget(ExcelSelector);
269 ExcelSelector->show(); 269 ExcelSelector->show();
270 ExcelSelector->reread(); 270 ExcelSelector->reread();
271} 271}
272 272
273void MainWindow::ExcelSelectorHide() 273void MainWindow::ExcelSelectorHide()
274{ 274{
275 ExcelSelector->hide(); 275 ExcelSelector->hide();
276 setCentralWidget(sheet); 276 setCentralWidget(sheet);
277 sheet->show(); 277 sheet->show();
278} 278}
279 279
280void MainWindow::slotFileSave() 280void MainWindow::slotFileSave()
281{ 281{
282 saveCurrentFile(FALSE); 282 saveCurrentFile(FALSE);
283} 283}
284 284
285void MainWindow::setDocument(const QString &applnk_filename) 285void MainWindow::setDocument(const QString &applnk_filename)
286{ 286{
287 selectorFileOpen(DocLnk(applnk_filename)); 287 selectorFileOpen(DocLnk(applnk_filename));
288} 288}
289 289
290void MainWindow::initActions() 290void MainWindow::initActions()
291{ 291{
292 fileNew=new QAction(tr("New File"), Resource::loadPixmap( "new" ), tr("&New"), 0, this); 292 fileNew=new QAction(tr("New File"),
293 Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon ),
294 tr("&New"), 0, this);
293 connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew())); 295 connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew()));
294 fileOpen=new QAction(tr("Open File"), Resource::loadPixmap( "fileopen" ), tr("&Open"), 0, this); 296 fileOpen=new QAction(tr("Open File"),
297 Opie::Core::OResource::loadPixmap( "fileopen", Opie::Core::OResource::SmallIcon ),
298 tr("&Open"), 0, this);
295 connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen())); 299 connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen()));
296 fileSave=new QAction(tr("Save File"),Resource::loadPixmap( "save" ), tr("&Save"), 0, this); 300 fileSave=new QAction(tr("Save File"),
301 Opie::Core::OResource::loadPixmap( "save", Opie::Core::OResource::SmallIcon ),
302 tr("&Save"), 0, this);
297 connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave())); 303 connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave()));
298 fileSaveAs=new QAction(tr("Save File As"), Resource::loadPixmap( "save" ), tr("Save &As"), 0, this); 304 fileSaveAs=new QAction(tr("Save File As"),
305 Opie::Core::OResource::loadPixmap( "save", Opie::Core::OResource::SmallIcon ),
306 tr("Save &As"), 0, this);
299 connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs())); 307 connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs()));
300 308
301 //fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this); 309 //fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this);
302 //connect(fileQuit, SIGNAL(activated()), this, SLOT(close())); 310 //connect(fileQuit, SIGNAL(activated()), this, SLOT(close()));
303 fileExcelImport=new QAction(tr("Import Excel file"),Resource::loadPixmap( "opie-sheet/excel16" ),tr("Import E&xcel file"),0,this); 311 fileExcelImport=new QAction(tr("Import Excel file"),
312 Opie::Core::OResource::loadPixmap( "opie-sheet/excel16", Opie::Core::OResource::SmallIcon ),
313 tr("Import E&xcel file"),0,this);
304 connect(fileExcelImport, SIGNAL(activated()), this, SLOT(slotImportExcelOpen())); 314 connect(fileExcelImport, SIGNAL(activated()), this, SLOT(slotImportExcelOpen()));
305 315
306 // helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this); 316 // helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this);
307 //connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral())); 317 //connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral()));
308 //helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this); 318 //helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this);
309 //connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout())); 319 //connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout()));
310 320
311 editAccept=new QAction(tr("Accept"),Resource::loadPixmap( "enter" ) , tr("&Accept"), 0, this); 321 editAccept=new QAction(tr("Accept"),
322 Opie::Core::OResource::loadPixmap( "enter", Opie::Core::OResource::SmallIcon ),
323 tr("&Accept"), 0, this);
312 connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept())); 324 connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept()));
313 editCancel=new QAction(tr("Cancel"), Resource::loadPixmap( "close" ), tr("&Cancel"), 0, this); 325 editCancel=new QAction(tr("Cancel"),
326 Opie::Core::OResource::loadPixmap( "close", Opie::Core::OResource::SmallIcon ),
327 tr("&Cancel"), 0, this);
314 connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel())); 328 connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel()));
315 editCellSelect=new QAction(tr("Cell Selector"), Resource::loadPixmap( "opie-sheet/cell-select" ), tr("Cell &Selector"), 0, this); 329 editCellSelect=new QAction(tr("Cell Selector"),
330 Opie::Core::OResource::loadPixmap( "opie-sheet/cell-select", Opie::Core::OResource::SmallIcon ),
331 tr("Cell &Selector"), 0, this);
316 editCellSelect->setToggleAction(TRUE); 332 editCellSelect->setToggleAction(TRUE);
317 connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool))); 333 connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool)));
318 editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this); 334 editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this);
319 editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this); 335 editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this);
320 editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this); 336 editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this);
321 connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste())); 337 connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste()));
322 editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this); 338 editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this);
323 connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents())); 339 connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents()));
324 editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this); 340 editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this);
325 341
326 insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this); 342 insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this);
327 connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells())); 343 connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells()));
328 insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this); 344 insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this);
329 connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows())); 345 connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows()));
330 insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this); 346 insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this);
331 connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols())); 347 connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols()));
332 insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this); 348 insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this);
333 connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets())); 349 connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets()));
334 350
335 formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this); 351 formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this);
336 connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells())); 352 connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells()));
337 353
338 rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this); 354 rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this);
339 connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight())); 355 connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight()));
340 rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this); 356 rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this);
341 connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust())); 357 connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust()));
342 rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this); 358 rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this);
343 connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow())); 359 connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow()));
344 rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this); 360 rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this);
345 connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide())); 361 connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide()));
346 362
347 colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this); 363 colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this);
348 connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth())); 364 connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth()));
349 colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this); 365 colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this);
350 connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust())); 366 connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust()));
351 colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this); 367 colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this);
352 connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow())); 368 connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow()));
353 colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this); 369 colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this);
354 connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide())); 370 connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide()));
355 371
356 sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this); 372 sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this);
357 connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename())); 373 connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename()));
358 sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this); 374 sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this);
359 connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove())); 375 connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove()));
360 376
361 dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this); 377 dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this);
362 connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort())); 378 connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort()));
363 dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this); 379 dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this);
364 connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace())); 380 connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace()));
365 381
366 funcEqual=new QAction(tr("Equal To"), Resource::loadPixmap( "opie-sheet/func-equal" ), tr("&Equal To"), 0, this); 382 funcEqual=new QAction(tr("Equal To"),
383 Opie::Core::OResource::loadPixmap( "opie-sheet/func-equal", Opie::Core::OResource::SmallIcon ),
384 tr("&Equal To"), 0, this);
367 funcEqual->setToolTip("="); 385 funcEqual->setToolTip("=");
368 connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 386 connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
369 funcPlus=new QAction(tr("Addition"), Resource::loadPixmap( "opie-sheet/func-plus" ), tr("&Addition"), 0, this); 387 funcPlus=new QAction(tr("Addition"),
388 Opie::Core::OResource::loadPixmap( "opie-sheet/func-plus", Opie::Core::OResource::SmallIcon ),
389 tr("&Addition"), 0, this);
370 funcPlus->setToolTip("+"); 390 funcPlus->setToolTip("+");
371 connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 391 connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
372 funcMinus=new QAction(tr("Subtraction"), Resource::loadPixmap( "opie-sheet/func-minus" ), tr("&Subtraction"), 0, this); 392 funcMinus=new QAction(tr("Subtraction"),
393 Opie::Core::OResource::loadPixmap( "opie-sheet/func-minus", Opie::Core::OResource::SmallIcon ),
394 tr("&Subtraction"), 0, this);
373 funcMinus->setToolTip("-"); 395 funcMinus->setToolTip("-");
374 connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 396 connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
375 funcCross=new QAction(tr("Multiplication"), Resource::loadPixmap ("opie-sheet/func-cross" ), tr("&Multiplication"), 0, this); 397 funcCross=new QAction(tr("Multiplication"),
398 Opie::Core::OResource::loadPixmap ("opie-sheet/func-cross", Opie::Core::OResource::SmallIcon ),
399 tr("&Multiplication"), 0, this);
376 funcCross->setToolTip("*"); 400 funcCross->setToolTip("*");
377 connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 401 connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
378 funcDivide=new QAction(tr("Division"), Resource::loadPixmap( "opie-sheet/func-divide" ), tr("&Division"), 0, this); 402 funcDivide=new QAction(tr("Division"),
403 Opie::Core::OResource::loadPixmap( "opie-sheet/func-divide", Opie::Core::OResource::SmallIcon ),
404 tr("&Division"), 0, this);
379 funcDivide->setToolTip("/"); 405 funcDivide->setToolTip("/");
380 connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 406 connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
381 funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"), Resource::loadPixmap( "opie-sheet/func-paran-open" ), tr("&Open Paranthesis"), 0, this); 407 funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"),
408 Opie::Core::OResource::loadPixmap( "opie-sheet/func-paran-open", Opie::Core::OResource::SmallIcon ),
409 tr("&Open Paranthesis"), 0, this);
382 funcParanOpen->setToolTip("("); 410 funcParanOpen->setToolTip("(");
383 connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 411 connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
384 funcParanClose=new QAction(tr("Close Paranthesis"), Resource::loadPixmap( "opie-sheet/func-paran-close" ), tr("&Close Paranthesis"), 0, this); 412 funcParanClose=new QAction(tr("Close Paranthesis"),
413 Opie::Core::OResource::loadPixmap( "opie-sheet/func-paran-close", Opie::Core::OResource::SmallIcon ),
414 tr("&Close Paranthesis"), 0, this);
385 funcParanClose->setToolTip(")"); 415 funcParanClose->setToolTip(")");
386 connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 416 connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
387 funcComma=new QAction(tr("Comma"), Resource::loadPixmap( "opie-sheet/func-comma" ), tr("&Comma"), 0, this); 417 funcComma=new QAction(tr("Comma"),
418 Opie::Core::OResource::loadPixmap( "opie-sheet/func-comma", Opie::Core::OResource::SmallIcon ),
419 tr("&Comma"), 0, this);
388 funcComma->setToolTip(","); 420 funcComma->setToolTip(",");
389 connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 421 connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
390} 422}
391 423
392void MainWindow::initMenu() 424void MainWindow::initMenu()
393{ 425{
394 menu=new QMenuBar(this); 426 menu=new QMenuBar(this);
395 427
396 menuFile=new QPopupMenu; 428 menuFile=new QPopupMenu;
397 fileNew->addTo(menuFile); 429 fileNew->addTo(menuFile);
398 fileOpen->addTo(menuFile); 430 fileOpen->addTo(menuFile);
399 fileSave->addTo(menuFile); 431 fileSave->addTo(menuFile);
400 fileSaveAs->addTo(menuFile); 432 fileSaveAs->addTo(menuFile);
401 // menuFile->insertSeparator(); 433 // menuFile->insertSeparator();
402 // fileQuit->addTo(menuFile); 434 // fileQuit->addTo(menuFile);
403 menuFile->insertSeparator(); 435 menuFile->insertSeparator();
404 fileExcelImport->addTo(menuFile); 436 fileExcelImport->addTo(menuFile);
405 menu->insertItem(tr("&File"), menuFile); 437 menu->insertItem(tr("&File"), menuFile);
406 438
407 menuEdit=new QPopupMenu; 439 menuEdit=new QPopupMenu;
408 editAccept->addTo(menuEdit); 440 editAccept->addTo(menuEdit);
409 editCancel->addTo(menuEdit); 441 editCancel->addTo(menuEdit);
410 editCellSelect->addTo(menuEdit); 442 editCellSelect->addTo(menuEdit);
411 menuEdit->insertSeparator(); 443 menuEdit->insertSeparator();
412 editCut->addTo(menuEdit); 444 editCut->addTo(menuEdit);
413 editCopy->addTo(menuEdit); 445 editCopy->addTo(menuEdit);
414 editPaste->addTo(menuEdit); 446 editPaste->addTo(menuEdit);
415 editPasteContents->addTo(menuEdit); 447 editPasteContents->addTo(menuEdit);
416 editClear->addTo(menuEdit); 448 editClear->addTo(menuEdit);
417 menu->insertItem(tr("&Edit"), menuEdit); 449 menu->insertItem(tr("&Edit"), menuEdit);
418 450
419 menuInsert=new QPopupMenu; 451 menuInsert=new QPopupMenu;
420 menu->insertItem(tr("&Insert"), menuInsert); 452 menu->insertItem(tr("&Insert"), menuInsert);
421 453
422 menuFormat=new QPopupMenu; 454 menuFormat=new QPopupMenu;
423 formatCells->addTo(menuFormat); 455 formatCells->addTo(menuFormat);
424 menu->insertItem(tr("&Format"), menuFormat); 456 menu->insertItem(tr("&Format"), menuFormat);
425 457
426 menuData=new QPopupMenu; 458 menuData=new QPopupMenu;
427 dataSort->addTo(menuData); 459 dataSort->addTo(menuData);
428 dataFindReplace->addTo(menuData); 460 dataFindReplace->addTo(menuData);
429 menu->insertItem(tr("&Data"), menuData); 461 menu->insertItem(tr("&Data"), menuData);
430 462
431 // menuHelp=new QPopupMenu; 463 // menuHelp=new QPopupMenu;
432 // helpGeneral->addTo(menuHelp); 464 // helpGeneral->addTo(menuHelp);
433 // helpAbout->addTo(menuHelp); 465 // helpAbout->addTo(menuHelp);
434 // menu->insertItem(tr("&Help"), menuHelp); 466 // menu->insertItem(tr("&Help"), menuHelp);
435 467
436 submenuRow=new QPopupMenu; 468 submenuRow=new QPopupMenu;
437 rowHeight->addTo(submenuRow); 469 rowHeight->addTo(submenuRow);
438 rowAdjust->addTo(submenuRow); 470 rowAdjust->addTo(submenuRow);
439 rowShow->addTo(submenuRow); 471 rowShow->addTo(submenuRow);
440 rowHide->addTo(submenuRow); 472 rowHide->addTo(submenuRow);
441 menuFormat->insertItem(tr("&Row"), submenuRow); 473 menuFormat->insertItem(tr("&Row"), submenuRow);
442 474
443 submenuCol=new QPopupMenu; 475 submenuCol=new QPopupMenu;
444 colWidth->addTo(submenuCol); 476 colWidth->addTo(submenuCol);
445 colAdjust->addTo(submenuCol); 477 colAdjust->addTo(submenuCol);
446 colShow->addTo(submenuCol); 478 colShow->addTo(submenuCol);
447 colHide->addTo(submenuCol); 479 colHide->addTo(submenuCol);
448 menuFormat->insertItem(tr("Colum&n"), submenuCol); 480 menuFormat->insertItem(tr("Colum&n"), submenuCol);
449 481
450 submenuSheet=new QPopupMenu; 482 submenuSheet=new QPopupMenu;
451 sheetRename->addTo(submenuSheet); 483 sheetRename->addTo(submenuSheet);
452 sheetRemove->addTo(submenuSheet); 484 sheetRemove->addTo(submenuSheet);
453 menuFormat->insertItem(tr("&Sheet"), submenuSheet); 485 menuFormat->insertItem(tr("&Sheet"), submenuSheet);
454 486
455 submenuFunc=new QPopupMenu; 487 submenuFunc=new QPopupMenu;
456 menuInsert->insertItem(tr("&Function"), submenuFunc); 488 menuInsert->insertItem(tr("&Function"), submenuFunc);
457 489
458 submenuFuncStd=new QPopupMenu; 490 submenuFuncStd=new QPopupMenu;
459 funcPlus->addTo(submenuFuncStd); 491 funcPlus->addTo(submenuFuncStd);
460 funcMinus->addTo(submenuFuncStd); 492 funcMinus->addTo(submenuFuncStd);
461 funcCross->addTo(submenuFuncStd); 493 funcCross->addTo(submenuFuncStd);
462 funcDivide->addTo(submenuFuncStd); 494 funcDivide->addTo(submenuFuncStd);
463 submenuFunc->insertItem(tr("&Simple"), submenuFuncStd); 495 submenuFunc->insertItem(tr("&Simple"), submenuFuncStd);
464 496
465 497
466 498
467 submenuFuncStandard=new QPopupMenu; 499 submenuFuncStandard=new QPopupMenu;
468 addFlyAction(tr("ABS(x)"), tr("ABS(x)"), "ABS(", submenuFuncStandard); 500 addFlyAction(tr("ABS(x)"), tr("ABS(x)"), "ABS(", submenuFuncStandard);
469 addFlyAction(tr("CEILING(x,acc)"), tr("CEILING(x,acc)"), "CEILING(", submenuFuncStandard); 501 addFlyAction(tr("CEILING(x,acc)"), tr("CEILING(x,acc)"), "CEILING(", submenuFuncStandard);
470 addFlyAction(tr("FACT(x)"), tr("FACT(x)"), "FACT(", submenuFuncStandard); 502 addFlyAction(tr("FACT(x)"), tr("FACT(x)"), "FACT(", submenuFuncStandard);
471 addFlyAction(tr("FLOOR(x,acc)"), tr("FLOOR(x,acc)"), "FLOOR(", submenuFuncStandard); 503 addFlyAction(tr("FLOOR(x,acc)"), tr("FLOOR(x,acc)"), "FLOOR(", submenuFuncStandard);
472 addFlyAction(tr("INT(x)"), tr("INT(x)"), "INT(", submenuFuncStandard); 504 addFlyAction(tr("INT(x)"), tr("INT(x)"), "INT(", submenuFuncStandard);
473 addFlyAction(tr("MOD(x,y)"), tr("MOD(x,y)"), "MOD(", submenuFuncStandard); 505 addFlyAction(tr("MOD(x,y)"), tr("MOD(x,y)"), "MOD(", submenuFuncStandard);
474 addFlyAction(tr("ROUND(x,digits)"), tr("ROUND(x,digits)"), "ROUND(", submenuFuncStandard); 506 addFlyAction(tr("ROUND(x,digits)"), tr("ROUND(x,digits)"), "ROUND(", submenuFuncStandard);
475 addFlyAction(tr("SIGN(x)"), tr("SIGN(x)"), "SIGN(", submenuFuncStandard); 507 addFlyAction(tr("SIGN(x)"), tr("SIGN(x)"), "SIGN(", submenuFuncStandard);
476 submenuFuncStandard->insertSeparator(); 508 submenuFuncStandard->insertSeparator();
477 addFlyAction(tr("EXP(x)"), tr("EXP(x)"), "EXP(", submenuFuncStandard); 509 addFlyAction(tr("EXP(x)"), tr("EXP(x)"), "EXP(", submenuFuncStandard);
478 addFlyAction(tr("LN(x)"), tr("LN(x)"), "LN(", submenuFuncStandard); 510 addFlyAction(tr("LN(x)"), tr("LN(x)"), "LN(", submenuFuncStandard);
479 addFlyAction(tr("LOG(x,b)"), tr("LOG(x,b)"), "LOG(", submenuFuncStandard); 511 addFlyAction(tr("LOG(x,b)"), tr("LOG(x,b)"), "LOG(", submenuFuncStandard);
480 addFlyAction(tr("LOG10(x)"), tr("LOG10(x)"), "LOG10(", submenuFuncStandard); 512 addFlyAction(tr("LOG10(x)"), tr("LOG10(x)"), "LOG10(", submenuFuncStandard);
481 addFlyAction(tr("POWER(x,y)"), tr("POWER(x,y)"), "POWER(", submenuFuncStandard); 513 addFlyAction(tr("POWER(x,y)"), tr("POWER(x,y)"), "POWER(", submenuFuncStandard);
482 addFlyAction(tr("SQRT(x)"), tr("SQRT(x)"), "SQRT(", submenuFuncStandard); 514 addFlyAction(tr("SQRT(x)"), tr("SQRT(x)"), "SQRT(", submenuFuncStandard);
483 submenuFuncStandard->insertSeparator(); 515 submenuFuncStandard->insertSeparator();
484 addFlyAction(tr("DEGREES(x)"), tr("DEGREES(x)"), "DEGREES(", submenuFuncStandard); 516 addFlyAction(tr("DEGREES(x)"), tr("DEGREES(x)"), "DEGREES(", submenuFuncStandard);
485 addFlyAction(tr("RADIANS(x)"), tr("RADIANS(x)"), "RADIANS(", submenuFuncStandard); 517 addFlyAction(tr("RADIANS(x)"), tr("RADIANS(x)"), "RADIANS(", submenuFuncStandard);
486 addFlyAction(tr("PI()"), tr("PI()"), "PI()", submenuFuncStandard); 518 addFlyAction(tr("PI()"), tr("PI()"), "PI()", submenuFuncStandard);
487 addFlyAction(tr("RAND()"), tr("RAND()"), "RAND(", submenuFuncStandard); 519 addFlyAction(tr("RAND()"), tr("RAND()"), "RAND(", submenuFuncStandard);
488 addFlyAction(tr("RANDBETWEEN(a,b)"), tr("RANDBETWEEN(a,b)"), "RANDBETWEEN(", submenuFuncStandard); 520 addFlyAction(tr("RANDBETWEEN(a,b)"), tr("RANDBETWEEN(a,b)"), "RANDBETWEEN(", submenuFuncStandard);
489 submenuFunc->insertItem(tr("S&tandard"), submenuFuncStandard); 521 submenuFunc->insertItem(tr("S&tandard"), submenuFuncStandard);
490 522
491 submenuFuncLogic=new QPopupMenu; 523 submenuFuncLogic=new QPopupMenu;
492 addFlyAction(tr("AND(x1,x2)"), tr("AND(x1,x2)"), "AND(", submenuFuncLogic); 524 addFlyAction(tr("AND(x1,x2)"), tr("AND(x1,x2)"), "AND(", submenuFuncLogic);
493 addFlyAction(tr("NOT(x)"), tr("NOT(x)"), "NOT(", submenuFuncLogic); 525 addFlyAction(tr("NOT(x)"), tr("NOT(x)"), "NOT(", submenuFuncLogic);
494 addFlyAction(tr("OR(x1,x2)"), tr("OR(x1,x2)"), "OR(", submenuFuncLogic); 526 addFlyAction(tr("OR(x1,x2)"), tr("OR(x1,x2)"), "OR(", submenuFuncLogic);
495 submenuFuncLogic->insertSeparator(); 527 submenuFuncLogic->insertSeparator();
496 addFlyAction(tr("IF(compare,val1,val2)"), tr("IF(compare,val1,val2)"), "IF(", submenuFuncLogic); 528 addFlyAction(tr("IF(compare,val1,val2)"), tr("IF(compare,val1,val2)"), "IF(", submenuFuncLogic);
497 addFlyAction(tr("INDEX(range,index)"),tr("INDEX(range,index)"), "INDEX(", submenuFuncLogic); 529 addFlyAction(tr("INDEX(range,index)"),tr("INDEX(range,index)"), "INDEX(", submenuFuncLogic);
498 addFlyAction(tr("ISBLANK(x)"), tr("ISBLANK(x)"), "ISBLANK(", submenuFuncLogic); 530 addFlyAction(tr("ISBLANK(x)"), tr("ISBLANK(x)"), "ISBLANK(", submenuFuncLogic);
499 addFlyAction(tr("ISNUMBER(x)"), tr("ISNUMBER(x)"), "ISNUMBER(", submenuFuncLogic); 531 addFlyAction(tr("ISNUMBER(x)"), tr("ISNUMBER(x)"), "ISNUMBER(", submenuFuncLogic);
500 addFlyAction(tr("EVEN(x)"), tr("EVEN(x)"), "EVEN(", submenuFuncLogic); 532 addFlyAction(tr("EVEN(x)"), tr("EVEN(x)"), "EVEN(", submenuFuncLogic);
501 addFlyAction(tr("ISEVEN(x)"), tr("ISEVEN(x)"), "ISEVEN(", submenuFuncLogic); 533 addFlyAction(tr("ISEVEN(x)"), tr("ISEVEN(x)"), "ISEVEN(", submenuFuncLogic);
502 addFlyAction(tr("ODD(x)"), tr("ODD(x)"), "ODD(", submenuFuncLogic); 534 addFlyAction(tr("ODD(x)"), tr("ODD(x)"), "ODD(", submenuFuncLogic);
503 addFlyAction(tr("ISODD(x)"), tr("ISODD(x)"), "ISODD(", submenuFuncLogic); 535 addFlyAction(tr("ISODD(x)"), tr("ISODD(x)"), "ISODD(", submenuFuncLogic);
504 submenuFunc->insertItem(tr("Logical-&Information"), submenuFuncLogic); 536 submenuFunc->insertItem(tr("Logical-&Information"), submenuFuncLogic);
505 537
506 submenuFuncTrig=new QPopupMenu; 538 submenuFuncTrig=new QPopupMenu;
507 addFlyAction(tr("SIN(x)"), tr("SIN(x)"), "SIN(", submenuFuncTrig); 539 addFlyAction(tr("SIN(x)"), tr("SIN(x)"), "SIN(", submenuFuncTrig);
508 addFlyAction(tr("COS(x)"), tr("COS(x)"), "COS(", submenuFuncTrig); 540 addFlyAction(tr("COS(x)"), tr("COS(x)"), "COS(", submenuFuncTrig);
509 addFlyAction(tr("TAN(x)"), tr("TAN(x)"), "TAN(", submenuFuncTrig); 541 addFlyAction(tr("TAN(x)"), tr("TAN(x)"), "TAN(", submenuFuncTrig);
510 addFlyAction(tr("ASIN(x)"), tr("ASIN(x)"), "ASIN(", submenuFuncTrig); 542 addFlyAction(tr("ASIN(x)"), tr("ASIN(x)"), "ASIN(", submenuFuncTrig);
511 addFlyAction(tr("ACOS(x)"), tr("ACOS(x)"), "ACOS(", submenuFuncTrig); 543 addFlyAction(tr("ACOS(x)"), tr("ACOS(x)"), "ACOS(", submenuFuncTrig);
512 addFlyAction(tr("ATAN(x)"), tr("ATAN(x)"), "ATAN(", submenuFuncTrig); 544 addFlyAction(tr("ATAN(x)"), tr("ATAN(x)"), "ATAN(", submenuFuncTrig);
513 addFlyAction(tr("ATAN2(x,y)"), tr("ATAN2(x,y)"), "ATAN2(", submenuFuncTrig); 545 addFlyAction(tr("ATAN2(x,y)"), tr("ATAN2(x,y)"), "ATAN2(", submenuFuncTrig);
514 submenuFuncTrig->insertSeparator(); 546 submenuFuncTrig->insertSeparator();
515 addFlyAction(tr("SINH(x)"), tr("SINH(x)"), "SINH(", submenuFuncTrig); 547 addFlyAction(tr("SINH(x)"), tr("SINH(x)"), "SINH(", submenuFuncTrig);
516 addFlyAction(tr("COSH(x)"), tr("COSH(x)"), "COSH(", submenuFuncTrig); 548 addFlyAction(tr("COSH(x)"), tr("COSH(x)"), "COSH(", submenuFuncTrig);
517 addFlyAction(tr("TANH(x)"), tr("TANH(x)"), "TANH(", submenuFuncTrig); 549 addFlyAction(tr("TANH(x)"), tr("TANH(x)"), "TANH(", submenuFuncTrig);
518 addFlyAction(tr("ACOSH(x)"), tr("ACOSH(x)"), "ACOSH(", submenuFuncTrig); 550 addFlyAction(tr("ACOSH(x)"), tr("ACOSH(x)"), "ACOSH(", submenuFuncTrig);
519 addFlyAction(tr("ASINH(x)"), tr("ASINH(x)"), "ASINH(", submenuFuncTrig); 551 addFlyAction(tr("ASINH(x)"), tr("ASINH(x)"), "ASINH(", submenuFuncTrig);
520 addFlyAction(tr("ATANH(x)"), tr("ATANH(x)"), "ATANH(", submenuFuncTrig); 552 addFlyAction(tr("ATANH(x)"), tr("ATANH(x)"), "ATANH(", submenuFuncTrig);
521 submenuFunc->insertItem(tr("&Trigonometric"), submenuFuncTrig); 553 submenuFunc->insertItem(tr("&Trigonometric"), submenuFuncTrig);
522 554
523 submenuFuncString=new QPopupMenu; 555 submenuFuncString=new QPopupMenu;
524 addFlyAction(tr("LEN(s)"), tr("LEN(s)"), "LEN(",submenuFuncString); 556 addFlyAction(tr("LEN(s)"), tr("LEN(s)"), "LEN(",submenuFuncString);
525 addFlyAction(tr("LEFT(s,num)"), tr("LEFT(s,num)"), "LEFT(",submenuFuncString); 557 addFlyAction(tr("LEFT(s,num)"), tr("LEFT(s,num)"), "LEFT(",submenuFuncString);
526 addFlyAction(tr("RIGHT(s,num)"), tr("RIGHT(s,num)"), "RIGHT(",submenuFuncString); 558 addFlyAction(tr("RIGHT(s,num)"), tr("RIGHT(s,num)"), "RIGHT(",submenuFuncString);
527 addFlyAction(tr("MID(s,pos,len)"), tr("MID(s,pos,len)"), "MID(",submenuFuncString); 559 addFlyAction(tr("MID(s,pos,len)"), tr("MID(s,pos,len)"), "MID(",submenuFuncString);
528 submenuFuncString->insertSeparator(); 560 submenuFuncString->insertSeparator();
529 addFlyAction(tr("CONCATENATE(s1,s2..)"), tr("CONCATENATE(s1,s2..)"), "CONCATENATE(",submenuFuncString); 561 addFlyAction(tr("CONCATENATE(s1,s2..)"), tr("CONCATENATE(s1,s2..)"), "CONCATENATE(",submenuFuncString);
530 addFlyAction(tr("EXACT(s1,s2)"), tr("EXACT(s1,s2)"), "EXACT(",submenuFuncString); 562 addFlyAction(tr("EXACT(s1,s2)"), tr("EXACT(s1,s2)"), "EXACT(",submenuFuncString);
531 addFlyAction(tr("FIND(what,where,pos)"), 563 addFlyAction(tr("FIND(what,where,pos)"),
532 tr("FIND(what,where,pos)"), "FIND(",submenuFuncString); 564 tr("FIND(what,where,pos)"), "FIND(",submenuFuncString);
533 addFlyAction(tr("REPLACE(s,pos,len,ns)"), tr("REPLACE(s,pos,len,ns)"), "REPLACE(",submenuFuncString); 565 addFlyAction(tr("REPLACE(s,pos,len,ns)"), tr("REPLACE(s,pos,len,ns)"), "REPLACE(",submenuFuncString);
534 addFlyAction(tr("REPT(s,n)"), tr("REPT(s,n)"), "REPT(",submenuFuncString); 566 addFlyAction(tr("REPT(s,n)"), tr("REPT(s,n)"), "REPT(",submenuFuncString);
535 submenuFuncString->insertSeparator(); 567 submenuFuncString->insertSeparator();
536 addFlyAction(tr("UPPER(s)"), tr("UPPER(s)"), "UPPER(",submenuFuncString); 568 addFlyAction(tr("UPPER(s)"), tr("UPPER(s)"), "UPPER(",submenuFuncString);
537 addFlyAction(tr("LOWER(s)"), tr("LOWER(s)"), "LOWER(",submenuFuncString); 569 addFlyAction(tr("LOWER(s)"), tr("LOWER(s)"), "LOWER(",submenuFuncString);
538 submenuFunc->insertItem(tr("&Strings"), submenuFuncString); 570 submenuFunc->insertItem(tr("&Strings"), submenuFuncString);
539 571
540 submenuFuncStat=new QPopupMenu; 572 submenuFuncStat=new QPopupMenu;
541 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); 573 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat);
542 addFlyAction(tr("COUNT(range)"), tr("COUNT(range)"), "COUNT(",submenuFuncStat); 574 addFlyAction(tr("COUNT(range)"), tr("COUNT(range)"), "COUNT(",submenuFuncStat);
543 addFlyAction(tr("COUNTIF(range,eqls)"), tr("COUNTIF(range,eqls)"), "COUNTIF(",submenuFuncStat); 575 addFlyAction(tr("COUNTIF(range,eqls)"), tr("COUNTIF(range,eqls)"), "COUNTIF(",submenuFuncStat);
544 addFlyAction(tr("MAX(range)"), tr("MAX(range)"), "MAX(",submenuFuncStat); 576 addFlyAction(tr("MAX(range)"), tr("MAX(range)"), "MAX(",submenuFuncStat);
545 addFlyAction(tr("MIN(range)"), tr("MIN(range)"), "MIN(",submenuFuncStat); 577 addFlyAction(tr("MIN(range)"), tr("MIN(range)"), "MIN(",submenuFuncStat);
546 addFlyAction(tr("SUM(range)"), tr("SUM(range)"), "SUM(",submenuFuncStat); 578 addFlyAction(tr("SUM(range)"), tr("SUM(range)"), "SUM(",submenuFuncStat);
547 addFlyAction(tr("SUMSQ(range)"), tr("SUMSQ(range)"), "SUMSQ(",submenuFuncStat); 579 addFlyAction(tr("SUMSQ(range)"), tr("SUMSQ(range)"), "SUMSQ(",submenuFuncStat);
548 submenuFuncStat->insertSeparator(); 580 submenuFuncStat->insertSeparator();
549 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat); 581 addFlyAction(tr("AVERAGE(range)"), tr("AVERAGE(range)"), "AVERAGE(",submenuFuncStat);
550 addFlyAction(tr("VAR(range)"), tr("VAR(range)"), "VAR(",submenuFuncStat); 582 addFlyAction(tr("VAR(range)"), tr("VAR(range)"), "VAR(",submenuFuncStat);
551 addFlyAction(tr("VARP(range)"), tr("VARP(range)"), "VARP(",submenuFuncStat); 583 addFlyAction(tr("VARP(range)"), tr("VARP(range)"), "VARP(",submenuFuncStat);
552 addFlyAction(tr("STDEV(range)"), tr("STDEV(range)"), "STDEV(",submenuFuncStat); 584 addFlyAction(tr("STDEV(range)"), tr("STDEV(range)"), "STDEV(",submenuFuncStat);
553 addFlyAction(tr("STDEVP(range)"), tr("STDEVP(range)"), "STDEVP(",submenuFuncStat); 585 addFlyAction(tr("STDEVP(range)"), tr("STDEVP(range)"), "STDEVP(",submenuFuncStat);
554 addFlyAction(tr("SKEW(range)"), tr("SKEW(range)"), "SKEW(",submenuFuncStat); 586 addFlyAction(tr("SKEW(range)"), tr("SKEW(range)"), "SKEW(",submenuFuncStat);
555 addFlyAction(tr("KURT(range)"), tr("KURT(range)"), "KURT(",submenuFuncStat); 587 addFlyAction(tr("KURT(range)"), tr("KURT(range)"), "KURT(",submenuFuncStat);
556 submenuFunc->insertItem(tr("Sta&tistical"), submenuFuncStat); 588 submenuFunc->insertItem(tr("Sta&tistical"), submenuFuncStat);
557 589
558 submenuFuncScientific=new QPopupMenu; 590 submenuFuncScientific=new QPopupMenu;
559 addFlyAction(tr("BESSELI(x,n)"), tr("BESSELI(x,n)"), "BESSELI(",submenuFuncScientific); 591 addFlyAction(tr("BESSELI(x,n)"), tr("BESSELI(x,n)"), "BESSELI(",submenuFuncScientific);
560 addFlyAction(tr("BESSELJ(x,n)"), tr("BESSELJ(x,n)"), "BESSELJ(",submenuFuncScientific); 592 addFlyAction(tr("BESSELJ(x,n)"), tr("BESSELJ(x,n)"), "BESSELJ(",submenuFuncScientific);
561 addFlyAction(tr("BESSELK(x,n)"), tr("BESSELK(x,n)"), "BESSELK(",submenuFuncScientific); 593 addFlyAction(tr("BESSELK(x,n)"), tr("BESSELK(x,n)"), "BESSELK(",submenuFuncScientific);
562 addFlyAction(tr("BESSELY(x,n)"), tr("BESSELY(x,n)"), "BESSELY(",submenuFuncScientific); 594 addFlyAction(tr("BESSELY(x,n)"), tr("BESSELY(x,n)"), "BESSELY(",submenuFuncScientific);
563 submenuFuncScientific->insertSeparator(); 595 submenuFuncScientific->insertSeparator();
564 addFlyAction(tr("BETAI(x,a,b)"), tr("BETAI(x,a,b)"), "BETAI(",submenuFuncScientific); 596 addFlyAction(tr("BETAI(x,a,b)"), tr("BETAI(x,a,b)"), "BETAI(",submenuFuncScientific);
565 addFlyAction(tr("ERF(a,b)"), tr("ERF(a,b)"), "ERF(",submenuFuncScientific); 597 addFlyAction(tr("ERF(a,b)"), tr("ERF(a,b)"), "ERF(",submenuFuncScientific);
566 addFlyAction(tr("ERFC(a,b)"), tr("ERFC(a,b)"), "ERFC(",submenuFuncScientific); 598 addFlyAction(tr("ERFC(a,b)"), tr("ERFC(a,b)"), "ERFC(",submenuFuncScientific);
567 addFlyAction(tr("GAMMALN(x)"), tr("GAMMALN(x)"), "GAMMALN(",submenuFuncScientific); 599 addFlyAction(tr("GAMMALN(x)"), tr("GAMMALN(x)"), "GAMMALN(",submenuFuncScientific);
568 addFlyAction(tr("GAMMAP(x,a)"), tr("GAMMAP(x,a)"), "GAMMAP(",submenuFuncScientific); 600 addFlyAction(tr("GAMMAP(x,a)"), tr("GAMMAP(x,a)"), "GAMMAP(",submenuFuncScientific);
569 addFlyAction(tr("GAMMAQ(x,a)"), tr("GAMMAQ(x,a)"), "GAMMAQ(",submenuFuncScientific); 601 addFlyAction(tr("GAMMAQ(x,a)"), tr("GAMMAQ(x,a)"), "GAMMAQ(",submenuFuncScientific);
570 submenuFunc->insertItem(tr("Scienti&fic"), submenuFuncScientific); 602 submenuFunc->insertItem(tr("Scienti&fic"), submenuFuncScientific);
571 603
572 submenuFuncDistr=new QPopupMenu; 604 submenuFuncDistr=new QPopupMenu;
573 addFlyAction(tr("BETADIST(z,a,b,Q?)"), tr("BETADIST(z,a,b,Q?)"), "BETADIST(",submenuFuncDistr); 605 addFlyAction(tr("BETADIST(z,a,b,Q?)"), tr("BETADIST(z,a,b,Q?)"), "BETADIST(",submenuFuncDistr);
574 addFlyAction(tr("CHI2DIST(x,n,Q?)"), tr("CHI2DIST(x,n,Q?)"), "CHI2DIST(",submenuFuncDistr); 606 addFlyAction(tr("CHI2DIST(x,n,Q?)"), tr("CHI2DIST(x,n,Q?)"), "CHI2DIST(",submenuFuncDistr);
575 addFlyAction(tr("CHIDIST(x,n,Q?)"), tr("CHIDIST(x,n,Q?)"), "CHIDIST(",submenuFuncDistr); 607 addFlyAction(tr("CHIDIST(x,n,Q?)"), tr("CHIDIST(x,n,Q?)"), "CHIDIST(",submenuFuncDistr);
576 addFlyAction(tr("FDIST(z,deg1,deg2,Q?)"), tr("FDIST(z,deg1,deg2,Q?)"), "FDIST(",submenuFuncDistr); 608 addFlyAction(tr("FDIST(z,deg1,deg2,Q?)"), tr("FDIST(z,deg1,deg2,Q?)"), "FDIST(",submenuFuncDistr);
577 addFlyAction(tr("GAMMADIST(x,a,b,Q?)"), tr("GAMMADIST(x,a,b,Q?)"), "GAMMADIST(",submenuFuncDistr); 609 addFlyAction(tr("GAMMADIST(x,a,b,Q?)"), tr("GAMMADIST(x,a,b,Q?)"), "GAMMADIST(",submenuFuncDistr);
578 addFlyAction(tr("NORMALDIST(x,m,s,Q?)"), tr("NORMALDIST(x,m,s,Q?)"), "NORMALDIST(",submenuFuncDistr); 610 addFlyAction(tr("NORMALDIST(x,m,s,Q?)"), tr("NORMALDIST(x,m,s,Q?)"), "NORMALDIST(",submenuFuncDistr);
579 addFlyAction(tr("PHI(x,Q?)"), tr("PHI(x,Q?)"), "PHI(",submenuFuncDistr); 611 addFlyAction(tr("PHI(x,Q?)"), tr("PHI(x,Q?)"), "PHI(",submenuFuncDistr);
580 addFlyAction(tr("POISSON(x,n,Q?)"), tr("POISSON(x,n,Q?)"), "POISSON(",submenuFuncDistr); 612 addFlyAction(tr("POISSON(x,n,Q?)"), tr("POISSON(x,n,Q?)"), "POISSON(",submenuFuncDistr);
581 submenuFunc->insertItem(tr("&Distributions"), submenuFuncDistr); 613 submenuFunc->insertItem(tr("&Distributions"), submenuFuncDistr);
582 614
583 615
584 616
585 menuInsert->insertSeparator(); 617 menuInsert->insertSeparator();
586 insertCells->addTo(menuInsert); 618 insertCells->addTo(menuInsert);
587 insertRows->addTo(menuInsert); 619 insertRows->addTo(menuInsert);
588 insertCols->addTo(menuInsert); 620 insertCols->addTo(menuInsert);
589 insertSheets->addTo(menuInsert); 621 insertSheets->addTo(menuInsert);
590} 622}
591 623
592void MainWindow::initStandardToolbar() 624void MainWindow::initStandardToolbar()
593{ 625{
594 toolbarStandard=new QToolBar(this); 626 toolbarStandard=new QToolBar(this);
595 toolbarStandard->setHorizontalStretchable(TRUE); 627 toolbarStandard->setHorizontalStretchable(TRUE);
596 moveToolBar(toolbarStandard, Top); 628 moveToolBar(toolbarStandard, Top);
597 629
598 fileNew->addTo(toolbarStandard); 630 fileNew->addTo(toolbarStandard);
599 fileOpen->addTo(toolbarStandard); 631 fileOpen->addTo(toolbarStandard);
600 fileSave->addTo(toolbarStandard); 632 fileSave->addTo(toolbarStandard);
601 633
602 comboSheets=new QComboBox(toolbarStandard); 634 comboSheets=new QComboBox(toolbarStandard);
603 toolbarStandard->setStretchableWidget(comboSheets); 635 toolbarStandard->setStretchableWidget(comboSheets);
604 connect(comboSheets, SIGNAL(activated(const QString&)), this, SLOT(slotSheetChanged(const QString&))); 636 connect(comboSheets, SIGNAL(activated(const QString&)), this, SLOT(slotSheetChanged(const QString&)));
605} 637}
606 638
607void MainWindow::initFunctionsToolbar() 639void MainWindow::initFunctionsToolbar()
608{ 640{
609 toolbarFunctions=new QToolBar(this); 641 toolbarFunctions=new QToolBar(this);
610 toolbarFunctions->setHorizontalStretchable(TRUE); 642 toolbarFunctions->setHorizontalStretchable(TRUE);
611 moveToolBar(toolbarFunctions, Bottom); 643 moveToolBar(toolbarFunctions, Bottom);
612 644
613 funcEqual->addTo(toolbarFunctions); 645 funcEqual->addTo(toolbarFunctions);
614 funcPlus->addTo(toolbarFunctions); 646 funcPlus->addTo(toolbarFunctions);
615 funcMinus->addTo(toolbarFunctions); 647 funcMinus->addTo(toolbarFunctions);
616 funcCross->addTo(toolbarFunctions); 648 funcCross->addTo(toolbarFunctions);
617 funcDivide->addTo(toolbarFunctions); 649 funcDivide->addTo(toolbarFunctions);
618 funcParanOpen->addTo(toolbarFunctions); 650 funcParanOpen->addTo(toolbarFunctions);
619 funcParanClose->addTo(toolbarFunctions); 651 funcParanClose->addTo(toolbarFunctions);
620 funcComma->addTo(toolbarFunctions); 652 funcComma->addTo(toolbarFunctions);
621 653
622 toolFunction=new QToolButton(toolbarFunctions); 654 toolFunction=new QToolButton(toolbarFunctions);
623 toolFunction->setPixmap(Resource::loadPixmap( "opie-sheet/func-func" )); 655 toolFunction->setUsesBigPixmap( qApp->desktop()->size().width() > 330 );
656 toolFunction->setPixmap(Opie::Core::OResource::loadPixmap( "opie-sheet/func-func", Opie::Core::OResource::SmallIcon ));
624 toolFunction->setTextLabel(tr("Functions")); 657 toolFunction->setTextLabel(tr("Functions"));
625 toolFunction->setPopup(submenuFunc); 658 toolFunction->setPopup(submenuFunc);
626 toolFunction->setPopupDelay(0); 659 toolFunction->setPopupDelay(0);
627} 660}
628 661
629void MainWindow::initEditToolbar() 662void MainWindow::initEditToolbar()
630{ 663{
631 toolbarEdit=new QToolBar(this); 664 toolbarEdit=new QToolBar(this);
632 toolbarEdit->setHorizontalStretchable(TRUE); 665 toolbarEdit->setHorizontalStretchable(TRUE);
633 moveToolBar(toolbarEdit, Bottom); 666 moveToolBar(toolbarEdit, Bottom);
634 667
635 editAccept->addTo(toolbarEdit); 668 editAccept->addTo(toolbarEdit);
636 editCancel->addTo(toolbarEdit); 669 editCancel->addTo(toolbarEdit);
637 670
638 editData=new QLineEdit(toolbarEdit); 671 editData=new QLineEdit(toolbarEdit);
639 toolbarEdit->setStretchableWidget(editData); 672 toolbarEdit->setStretchableWidget(editData);
640 connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept())); 673 connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept()));
641 674
642 editCellSelect->addTo(toolbarEdit); 675 editCellSelect->addTo(toolbarEdit);
643} 676}
644 677
645void MainWindow::slotHelpAbout() 678void MainWindow::slotHelpAbout()
646{ 679{
647 QDialog dialogAbout(this, 0, TRUE); 680 QDialog dialogAbout(this, 0, TRUE);
648 dialogAbout.resize(width()-40, height()-80); 681 dialogAbout.resize(width()-40, height()-80);
649 dialogAbout.setCaption(tr("About Opie Sheet")); 682 dialogAbout.setCaption(tr("About Opie Sheet"));
650 683
651 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); 684 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);
652 label.setGeometry(dialogAbout.rect()); 685 label.setGeometry(dialogAbout.rect());
653 label.setAlignment(Qt::AlignCenter | Qt::WordBreak); 686 label.setAlignment(Qt::AlignCenter | Qt::WordBreak);
654 687
655 dialogAbout.exec(); 688 dialogAbout.exec();
656} 689}
657 690
658void MainWindow::initSheet() 691void MainWindow::initSheet()
659{ 692{
660 sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this); 693 sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this);
661 setCentralWidget(sheet); 694 setCentralWidget(sheet);
662 695
663 connect(sheet, SIGNAL(currentDataChanged(const QString&)), editData, SLOT(setText(const QString&))); 696 connect(sheet, SIGNAL(currentDataChanged(const QString&)), editData, SLOT(setText(const QString&)));
664 connect(sheet, SIGNAL(cellClicked(const QString&)), this, SLOT(slotCellClicked(const QString&))); 697 connect(sheet, SIGNAL(cellClicked(const QString&)), this, SLOT(slotCellClicked(const QString&)));
665 connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified())); 698 connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified()));
666 699
667 connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut())); 700 connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut()));
668 connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy())); 701 connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy()));
669 connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear())); 702 connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear()));
670} 703}
671 704
672void MainWindow::slotEditAccept() 705void MainWindow::slotEditAccept()
673{ 706{
674 sheet->setData(editData->text()); 707 sheet->setData(editData->text());
675} 708}
676 709
677void MainWindow::slotEditCancel() 710void MainWindow::slotEditCancel()
678{ 711{
679 editData->setText(sheet->getData()); 712 editData->setText(sheet->getData());
680} 713}
681 714
682void MainWindow::slotCellSelect(bool lock) 715void MainWindow::slotCellSelect(bool lock)
683{ 716{
684 sheet->lockClicks(lock); 717 sheet->lockClicks(lock);
685} 718}
686 719
687void MainWindow::addToData(const QString &data) 720void MainWindow::addToData(const QString &data)
688{ 721{
689 editData->setText(editData->text().insert(editData->cursorPosition(), data)); 722 editData->setText(editData->text().insert(editData->cursorPosition(), data));
690} 723}
691 724
692void MainWindow::slotFuncOutput() 725void MainWindow::slotFuncOutput()
693{ 726{
694 if (sender()->isA("QAction")) 727 if (sender()->isA("QAction"))
695 addToData(((QAction *)sender())->toolTip()); 728 addToData(((QAction *)sender())->toolTip());
696} 729}
697 730
698void MainWindow::slotInsertRows() 731void MainWindow::slotInsertRows()
699{ 732{
700 NumberDialog dialogNumber(this); 733 NumberDialog dialogNumber(this);
701 if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted) 734 if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted)
702 sheet->insertRows(dialogNumber.getValue()); 735 sheet->insertRows(dialogNumber.getValue());
703} 736}
704 737
705void MainWindow::slotInsertCols() 738void MainWindow::slotInsertCols()
706{ 739{
707 NumberDialog dialogNumber(this); 740 NumberDialog dialogNumber(this);
708 if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted) 741 if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted)
709 sheet->insertColumns(dialogNumber.getValue()); 742 sheet->insertColumns(dialogNumber.getValue());
710} 743}
711 744
712void MainWindow::slotInsertSheets() 745void MainWindow::slotInsertSheets()
713{ 746{
714 NumberDialog dialogNumber(this); 747 NumberDialog dialogNumber(this);
715 if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted) 748 if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted)
716 for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet(); 749 for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet();
717} 750}
718 751
719void MainWindow::slotCellClicked(const QString &cell) 752void MainWindow::slotCellClicked(const QString &cell)
720{ 753{
721 editCellSelect->setOn(FALSE); 754 editCellSelect->setOn(FALSE);
722 addToData(cell); 755 addToData(cell);
723} 756}
724 757
725typeSheet *MainWindow::createNewSheet() 758typeSheet *MainWindow::createNewSheet()
726{ 759{
727 typeSheet *newSheet=new typeSheet; 760 typeSheet *newSheet=new typeSheet;
728 int currentNo=1, tempNo=0; 761 int currentNo=1, tempNo=0;
729 bool ok; 762 bool ok;
730 763
731 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 764 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
732 if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok) 765 if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok)
733 currentNo=tempNo+1; 766 currentNo=tempNo+1;
734 767
735 newSheet->name=tr("Sheet")+QString::number(currentNo); 768 newSheet->name=tr("Sheet")+QString::number(currentNo);
736 newSheet->data.setAutoDelete(TRUE); 769 newSheet->data.setAutoDelete(TRUE);
737 770
738 comboSheets->insertItem(newSheet->name); 771 comboSheets->insertItem(newSheet->name);
739 listSheets.append(newSheet); 772 listSheets.append(newSheet);
740 return newSheet; 773 return newSheet;
741} 774}
742 775
743typeSheet *MainWindow::findSheet(const QString &name) 776typeSheet *MainWindow::findSheet(const QString &name)
744{ 777{
745 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) 778 for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next())
746 if (tempSheet->name==name) 779 if (tempSheet->name==name)
747 return tempSheet; 780 return tempSheet;
748 return NULL; 781 return NULL;
749} 782}
750 783
751void MainWindow::slotSheetChanged(const QString &name) 784void MainWindow::slotSheetChanged(const QString &name)
752{ 785{
753 sheet->copySheetData(&findSheet(sheet->getName())->data); 786 sheet->copySheetData(&findSheet(sheet->getName())->data);
754 sheet->setName(name); 787 sheet->setName(name);
755 sheet->setSheetData(&findSheet(name)->data); 788 sheet->setSheetData(&findSheet(name)->data);
756 sheet->ReCalc(); 789 sheet->ReCalc();
757} 790}
758 791
759void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w) 792void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w)
760{ 793{
761 QAction *action=new QAction(text, menuText, 0, this); 794 QAction *action=new QAction(text, menuText, 0, this);
762 action->setToolTip(tip); 795 action->setToolTip(tip);
763 connect(action, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 796 connect(action, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
764 action->addTo(w); 797 action->addTo(w);
765} 798}
766 799
767void MainWindow::slotFormatCells() 800void MainWindow::slotFormatCells()
768{ 801{
769 CellFormat dialogCellFormat(this); 802 CellFormat dialogCellFormat(this);
770 QPEApplication::showDialog( &dialogCellFormat ); 803 QPEApplication::showDialog( &dialogCellFormat );
771 dialogCellFormat.exec(sheet); 804 dialogCellFormat.exec(sheet);
772} 805}
773 806
774void MainWindow::slotEditPaste() 807void MainWindow::slotEditPaste()
775{ 808{
776 sheet->editPaste(); 809 sheet->editPaste();
777} 810}
778 811
779void MainWindow::slotEditPasteContents() 812void MainWindow::slotEditPasteContents()
780{ 813{
781 sheet->editPaste(TRUE); 814 sheet->editPaste(TRUE);
782} 815}
783 816
784void MainWindow::slotRowHeight() 817void MainWindow::slotRowHeight()
785{ 818{
786 int row1, row2, col1, col2; 819 int row1, row2, col1, col2;
787 sheet->getSelection(&row1, &col1, &row2, &col2); 820 sheet->getSelection(&row1, &col1, &row2, &col2);
788 821
789 NumberDialog dialogNumber(this); 822 NumberDialog dialogNumber(this);
790 if (dialogNumber.exec(tr("Row Height"), tr("&Height of each row:"), sheet->rowHeight(row1))==QDialog::Accepted) 823 if (dialogNumber.exec(tr("Row Height"), tr("&Height of each row:"), sheet->rowHeight(row1))==QDialog::Accepted)
791 { 824 {
792 int newHeight=dialogNumber.getValue(), row; 825 int newHeight=dialogNumber.getValue(), row;
793 for (row=row1; row<=row2; ++row) 826 for (row=row1; row<=row2; ++row)
794 sheet->setRowHeight(row, newHeight); 827 sheet->setRowHeight(row, newHeight);
795 } 828 }
796} 829}
797 830
798void MainWindow::slotRowAdjust() 831void MainWindow::slotRowAdjust()
799{ 832{
800 int row1, row2, col1, col2; 833 int row1, row2, col1, col2;
801 sheet->getSelection(&row1, &col1, &row2, &col2); 834 sheet->getSelection(&row1, &col1, &row2, &col2);
802 835
803 for (int row=row1; row<=row2; ++row) 836 for (int row=row1; row<=row2; ++row)
804 sheet->adjustRow(row); 837 sheet->adjustRow(row);
805} 838}
806 839
807void MainWindow::slotRowShow() 840void MainWindow::slotRowShow()
808{ 841{
809 int row1, row2, col1, col2; 842 int row1, row2, col1, col2;
810 sheet->getSelection(&row1, &col1, &row2, &col2); 843 sheet->getSelection(&row1, &col1, &row2, &col2);
811 844
812 for (int row=row1; row<=row2; ++row) 845 for (int row=row1; row<=row2; ++row)
813 sheet->showRow(row); 846 sheet->showRow(row);
814} 847}
815 848
816void MainWindow::slotRowHide() 849void MainWindow::slotRowHide()
817{ 850{
818 int row1, row2, col1, col2; 851 int row1, row2, col1, col2;
819 sheet->getSelection(&row1, &col1, &row2, &col2); 852 sheet->getSelection(&row1, &col1, &row2, &col2);
820 853
821 for (int row=row1; row<=row2; ++row) 854 for (int row=row1; row<=row2; ++row)
822 sheet->hideRow(row); 855 sheet->hideRow(row);
823} 856}
824 857
825void MainWindow::slotColumnWidth() 858void MainWindow::slotColumnWidth()
826{ 859{
827 int row1, row2, col1, col2; 860 int row1, row2, col1, col2;
828 sheet->getSelection(&row1, &col1, &row2, &col2); 861 sheet->getSelection(&row1, &col1, &row2, &col2);
829 862
830 NumberDialog dialogNumber(this); 863 NumberDialog dialogNumber(this);
831 if (dialogNumber.exec(tr("Column Width"), tr("&Width of each column:"), sheet->columnWidth(col1))==QDialog::Accepted) 864 if (dialogNumber.exec(tr("Column Width"), tr("&Width of each column:"), sheet->columnWidth(col1))==QDialog::Accepted)
832 { 865 {
833 int newWidth=dialogNumber.getValue(), col; 866 int newWidth=dialogNumber.getValue(), col;
834 for (col=col1; col<=col2; ++col) 867 for (col=col1; col<=col2; ++col)
835 sheet->setColumnWidth(col, newWidth); 868 sheet->setColumnWidth(col, newWidth);
836 } 869 }
837} 870}
838 871
839void MainWindow::slotColumnAdjust() 872void MainWindow::slotColumnAdjust()
840{ 873{
841 int row1, row2, col1, col2; 874 int row1, row2, col1, col2;
842 sheet->getSelection(&row1, &col1, &row2, &col2); 875 sheet->getSelection(&row1, &col1, &row2, &col2);
843 876
844 for (int col=col1; col<=col2; ++col) 877 for (int col=col1; col<=col2; ++col)
845 sheet->adjustColumn(col); 878 sheet->adjustColumn(col);
846} 879}
847 880
848void MainWindow::slotColumnShow() 881void MainWindow::slotColumnShow()
849{ 882{
850 int row1, row2, col1, col2; 883 int row1, row2, col1, col2;
851 sheet->getSelection(&row1, &col1, &row2, &col2); 884 sheet->getSelection(&row1, &col1, &row2, &col2);
852 885
853 for (int col=col1; col<=col2; ++col) 886 for (int col=col1; col<=col2; ++col)
854 sheet->showColumn(col); 887 sheet->showColumn(col);
855} 888}
856 889
857void MainWindow::slotColumnHide() 890void MainWindow::slotColumnHide()
858{ 891{
859 int row1, row2, col1, col2; 892 int row1, row2, col1, col2;
860 sheet->getSelection(&row1, &col1, &row2, &col2); 893 sheet->getSelection(&row1, &col1, &row2, &col2);
861 894
862 for (int col=col1; col<=col2; ++col) 895 for (int col=col1; col<=col2; ++col)
863 sheet->hideColumn(col); 896 sheet->hideColumn(col);
864} 897}
865 898
866void MainWindow::slotFileSaveAs() 899void MainWindow::slotFileSaveAs()
867{ 900{
868 TextDialog dialogText(this); 901 TextDialog dialogText(this);
869 if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc->name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; 902 if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc->name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return;
870 903
871 currentDoc->setName(dialogText.getValue()); 904 currentDoc->setName(dialogText.getValue());
872 currentDoc->setFile(QString::null); 905 currentDoc->setFile(QString::null);
873 currentDoc->setLinkFile(QString::null); 906 currentDoc->setLinkFile(QString::null);
874 documentSave(currentDoc); 907 documentSave(currentDoc);
875} 908}
876 909
877void MainWindow::slotImportExcel(const DocLnk &lnkDoc) 910void MainWindow::slotImportExcel(const DocLnk &lnkDoc)
878{ 911{
879 ExcelBook file1; 912 ExcelBook file1;
880 if ( !file1.ParseBook((char *)lnkDoc.file().ascii()) ){ 913 if ( !file1.ParseBook((char *)lnkDoc.file().ascii()) ){
881 QMessageBox::critical(this, tr("Error"), tr("<td>Unable to open or parse file!</td>")); 914 QMessageBox::critical(this, tr("Error"), tr("<td>Unable to open or parse file!</td>"));
882 return; 915 return;
883 } 916 }
884 int NumOfSheets=file1.Sheets.count(); 917 int NumOfSheets=file1.Sheets.count();
885 printf("OpieSheet::NumberOfSheets:%d\r\n",NumOfSheets); 918 printf("OpieSheet::NumberOfSheets:%d\r\n",NumOfSheets);
886 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; 919 if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
887 if (currentDoc) delete currentDoc; 920 if (currentDoc) delete currentDoc;
888 currentDoc = new DocLnk(); 921 currentDoc = new DocLnk();
889 listSheets.clear(); 922 listSheets.clear();
890 comboSheets->clear(); 923 comboSheets->clear();
891 int w1,r,c; 924 int w1,r,c;
892 ExcelSheet* sh1; 925 ExcelSheet* sh1;
893 typeSheet* newSheet; 926 typeSheet* newSheet;
894 QString* str; 927 QString* str;
895 typeCellData* newCell; 928 typeCellData* newCell;
896 for(w1=1;w1<=NumOfSheets;w1++) 929 for(w1=1;w1<=NumOfSheets;w1++)
897 { 930 {
898 sh1=file1.Sheets[w1-1]; 931 sh1=file1.Sheets[w1-1];
899 // printf("OpieSheet:newSheet:%x,r=%d,c=%d\r\n",sh1, sh1->rows,sh1->cols); 932 // printf("OpieSheet:newSheet:%x,r=%d,c=%d\r\n",sh1, sh1->rows,sh1->cols);
900 newSheet=new typeSheet; 933 newSheet=new typeSheet;
901 newSheet->data.setAutoDelete(TRUE); 934 newSheet->data.setAutoDelete(TRUE);
902 newSheet->name=sh1->name; 935 newSheet->name=sh1->name;
903 printf("OpieSheet:Sheetname:%s\r\n",sh1->name.ascii()); 936 printf("OpieSheet:Sheetname:%s\r\n",sh1->name.ascii());
904 comboSheets->insertItem(newSheet->name); 937 comboSheets->insertItem(newSheet->name);
905 for(r=1; r <= sh1->rows; r++) 938 for(r=1; r <= sh1->rows; r++)
906 { 939 {
907 for(c=1;c <= sh1->cols; c++) 940 for(c=1;c <= sh1->cols; c++)
908 { 941 {
909 str=file1.CellDataString(sh1,r-1,c-1); 942 str=file1.CellDataString(sh1,r-1,c-1);
910 if(str!=NULL && r<DEFAULT_NUM_ROWS && c<DEFAULT_NUM_COLS) 943 if(str!=NULL && r<DEFAULT_NUM_ROWS && c<DEFAULT_NUM_COLS)
911 { 944 {
912 newCell=new typeCellData; 945 newCell=new typeCellData;
913 newCell->row=r-1; 946 newCell->row=r-1;
914 newCell->col=c-1; 947 newCell->col=c-1;
915 if(str!=NULL) newCell->data=QString(*str); else newCell->data=QString(""); 948 if(str!=NULL) newCell->data=QString(*str); else newCell->data=QString("");
916 newCell->background=QBrush(Qt::white, Qt::SolidPattern); 949 newCell->background=QBrush(Qt::white, Qt::SolidPattern);
917 newCell->alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop); 950 newCell->alignment=(Qt::AlignmentFlags)(Qt::AlignLeft | Qt::AlignTop);
918 newCell->fontColor=Qt::black; 951 newCell->fontColor=Qt::black;
919 newCell->font=font(); 952 newCell->font=font();
920 newCell->borders.right=QPen(Qt::gray, 1, Qt::SolidLine); 953 newCell->borders.right=QPen(Qt::gray, 1, Qt::SolidLine);
921 newCell->borders.bottom=QPen(Qt::gray, 1, Qt::SolidLine); 954 newCell->borders.bottom=QPen(Qt::gray, 1, Qt::SolidLine);
922 newSheet->data.append(newCell); 955 newSheet->data.append(newCell);
923 //there is no format parsing at the moment or style parsing 956 //there is no format parsing at the moment or style parsing
924 //printf("OpieSheetNumber:row=%d,col=%d,val=%s\r\n",r,c,str->latin1()); 957 //printf("OpieSheetNumber:row=%d,col=%d,val=%s\r\n",r,c,str->latin1());
925 }; 958 };
926 }; 959 };
927 }; 960 };
928 listSheets.append(newSheet); 961 listSheets.append(newSheet);
929 if (w1==1)//if i==0 link sheet1 with sheetview 962 if (w1==1)//if i==0 link sheet1 with sheetview
930 { 963 {
931 sheet->setName(newSheet->name); 964 sheet->setName(newSheet->name);
932 sheet->setSheetData(&newSheet->data); 965 sheet->setSheetData(&newSheet->data);
933 sheet->ReCalc(); 966 sheet->ReCalc();
934 }; 967 };
935 968
936 }; 969 };
937 file1.CloseFile(); 970 file1.CloseFile();
938 printf("Excel FILE read OK\r\n"); 971 printf("Excel FILE read OK\r\n");
939 documentModified=TRUE; 972 documentModified=TRUE;
940 973
941 974
942} 975}
943 976
944void MainWindow::slotSheetRename() 977void MainWindow::slotSheetRename()
945{ 978{
946 TextDialog dialogText(this); 979 TextDialog dialogText(this);
947 if (dialogText.exec(tr("Rename Sheet"), tr("&Sheet Name:"), sheet->getName())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; 980 if (dialogText.exec(tr("Rename Sheet"), tr("&Sheet Name:"), sheet->getName())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return;
948 QString newName=dialogText.getValue(); 981 QString newName=dialogText.getValue();
949 982
950 typeSheet *tempSheet=findSheet(newName); 983 typeSheet *tempSheet=findSheet(newName);
951 if (tempSheet) 984 if (tempSheet)
952 { 985 {
953 QMessageBox::critical(this, tr("Error"), tr("There is already a sheet named '"+newName+'\'')); 986 QMessageBox::critical(this, tr("Error"), tr("There is already a sheet named '"+newName+'\''));
954 return; 987 return;
955 } 988 }
956 989
957 tempSheet=findSheet(sheet->getName()); 990 tempSheet=findSheet(sheet->getName());
958 for (int i=0; i<comboSheets->count(); ++i) 991 for (int i=0; i<comboSheets->count(); ++i)
959 if (comboSheets->text(i)==tempSheet->name) 992 if (comboSheets->text(i)==tempSheet->name)
960 { 993 {
961 comboSheets->changeItem(newName, i); 994 comboSheets->changeItem(newName, i);
962 break; 995 break;
963 } 996 }
964 tempSheet->name=newName; 997 tempSheet->name=newName;
965 sheet->setName(newName); 998 sheet->setName(newName);
966} 999}
967 1000
968void MainWindow::slotSheetRemove() 1001void MainWindow::slotSheetRemove()
969{ 1002{
970 if (comboSheets->count()<2) 1003 if (comboSheets->count()<2)
971 { 1004 {
972 QMessageBox::warning(this, tr("Error"), tr("There is only one sheet!")); 1005 QMessageBox::warning(this, tr("Error"), tr("There is only one sheet!"));
973 return; 1006 return;
974 } 1007 }
975 if (QMessageBox::information(this, tr("Remove Sheet"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes) 1008 if (QMessageBox::information(this, tr("Remove Sheet"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes)
976 { 1009 {
977 typeSheet *tempSheet=findSheet(sheet->getName()); 1010 typeSheet *tempSheet=findSheet(sheet->getName());
978 for (int i=0; i<comboSheets->count(); ++i) 1011 for (int i=0; i<comboSheets->count(); ++i)
979 if (comboSheets->text(i)==tempSheet->name) 1012 if (comboSheets->text(i)==tempSheet->name)
980 { 1013 {
981 comboSheets->removeItem(i); 1014 comboSheets->removeItem(i);
982 break; 1015 break;
983 } 1016 }
984 comboSheets->setCurrentItem(0); 1017 comboSheets->setCurrentItem(0);
985 slotSheetChanged(comboSheets->currentText()); 1018 slotSheetChanged(comboSheets->currentText());
986 listSheets.remove(tempSheet); 1019 listSheets.remove(tempSheet);
987 } 1020 }
988} 1021}
989 1022
990void MainWindow::slotDataSort() 1023void MainWindow::slotDataSort()
991{ 1024{
992 SortDialog dialogSort(this); 1025 SortDialog dialogSort(this);
993 QPEApplication::showDialog( &dialogSort ); 1026 QPEApplication::showDialog( &dialogSort );
994 dialogSort.exec(sheet); 1027 dialogSort.exec(sheet);
995} 1028}
996 1029
997void MainWindow::slotDocModified() 1030void MainWindow::slotDocModified()
998{ 1031{
999 documentModified=TRUE; 1032 documentModified=TRUE;
1000} 1033}
1001 1034
1002void MainWindow::slotInsertCells() 1035void MainWindow::slotInsertCells()
1003{ 1036{
1004 QDialog dialogInsert(this, 0, TRUE); 1037 QDialog dialogInsert(this, 0, TRUE);
1005 dialogInsert.resize(180, 130); 1038 dialogInsert.resize(180, 130);
1006 dialogInsert.setCaption(tr("Insert Cells")); 1039 dialogInsert.setCaption(tr("Insert Cells"));
1007 1040
1008 QVButtonGroup *group=new QVButtonGroup(tr("&Type"), &dialogInsert); 1041 QVButtonGroup *group=new QVButtonGroup(tr("&Type"), &dialogInsert);
1009 group->setGeometry(10, 10, 160, 110); 1042 group->setGeometry(10, 10, 160, 110);
1010 QRadioButton *radio=new QRadioButton(tr("Shift cells &down"), group); 1043 QRadioButton *radio=new QRadioButton(tr("Shift cells &down"), group);
1011 radio=new QRadioButton(tr("Shift cells &right"), group); 1044 radio=new QRadioButton(tr("Shift cells &right"), group);
1012 radio=new QRadioButton(tr("Entire ro&w"), group); 1045 radio=new QRadioButton(tr("Entire ro&w"), group);
1013 radio=new QRadioButton(tr("Entire &column"), group); 1046 radio=new QRadioButton(tr("Entire &column"), group);
1014 group->setButton(0); 1047 group->setButton(0);
1015 1048
1016 if (dialogInsert.exec()==QDialog::Accepted) 1049 if (dialogInsert.exec()==QDialog::Accepted)
1017 switch (group->id(group->selected())) 1050 switch (group->id(group->selected()))
1018 { 1051 {
1019 case 0: sheet->insertRows(1, FALSE); break; 1052 case 0: sheet->insertRows(1, FALSE); break;
1020 case 1: sheet->insertColumns(1, FALSE); break; 1053 case 1: sheet->insertColumns(1, FALSE); break;
1021 case 2: sheet->insertRows(1, TRUE); break; 1054 case 2: sheet->insertRows(1, TRUE); break;
1022 case 3: sheet->insertColumns(1, TRUE); break; 1055 case 3: sheet->insertColumns(1, TRUE); break;
1023 } 1056 }
1024} 1057}
1025 1058
1026void MainWindow::slotDataFindReplace() 1059void MainWindow::slotDataFindReplace()
1027{ 1060{
1028 FindDialog dialogFind(this); 1061 FindDialog dialogFind(this);
1029 QPEApplication::showDialog( &dialogFind ); 1062 QPEApplication::showDialog( &dialogFind );
1030 dialogFind.exec(sheet); 1063 dialogFind.exec(sheet);
1031} 1064}