summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-sheet/mainwindow.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp
index bb85a24..7394623 100644
--- a/noncore/apps/opie-sheet/mainwindow.cpp
+++ b/noncore/apps/opie-sheet/mainwindow.cpp
@@ -1,488 +1,488 @@
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 <qpe/resource.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(); 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"), Resource::loadPixmap( "new" ), tr("&New"), 0, this);
293 connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew())); 293 connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew()));
294 fileOpen=new QAction(tr("Open File"), Resource::loadPixmap( "fileopen" ), tr("&Open"), 0, this); 294 fileOpen=new QAction(tr("Open File"), Resource::loadPixmap( "fileopen" ), tr("&Open"), 0, this);
295 connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen())); 295 connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen()));
296 fileSave=new QAction(tr("Save File"),Resource::loadPixmap( "save" ), tr("&Save"), 0, this); 296 fileSave=new QAction(tr("Save File"),Resource::loadPixmap( "save" ), tr("&Save"), 0, this);
297 connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave())); 297 connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave()));
298 fileSaveAs=new QAction(tr("Save File As"), Resource::loadPixmap( "save" ), tr("Save &As"), 0, this); 298 fileSaveAs=new QAction(tr("Save File As"), Resource::loadPixmap( "save" ), tr("Save &As"), 0, this);
299 connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs())); 299 connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs()));
300 300
301 //fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this); 301 //fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this);
302 //connect(fileQuit, SIGNAL(activated()), this, SLOT(close())); 302 //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); 303 fileExcelImport=new QAction(tr("Import Excel file"),Resource::loadPixmap( "opie-sheet/excel16" ),tr("Import E&xcel file"),0,this);
304 connect(fileExcelImport, SIGNAL(activated()), this, SLOT(slotImportExcelOpen())); 304 connect(fileExcelImport, SIGNAL(activated()), this, SLOT(slotImportExcelOpen()));
305 305
306 // helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this); 306 // helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this);
307 //connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral())); 307 //connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral()));
308 //helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this); 308 //helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this);
309 //connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout())); 309 //connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout()));
310 310
311 editAccept=new QAction(tr("Accept"),Resource::loadPixmap( "enter" ) , tr("&Accept"), 0, this); 311 editAccept=new QAction(tr("Accept"),Resource::loadPixmap( "enter" ) , tr("&Accept"), 0, this);
312 connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept())); 312 connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept()));
313 editCancel=new QAction(tr("Cancel"), Resource::loadPixmap( "close" ), tr("&Cancel"), 0, this); 313 editCancel=new QAction(tr("Cancel"), Resource::loadPixmap( "close" ), tr("&Cancel"), 0, this);
314 connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel())); 314 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); 315 editCellSelect=new QAction(tr("Cell Selector"), Resource::loadPixmap( "opie-sheet/cell-select" ), tr("Cell &Selector"), 0, this);
316 editCellSelect->setToggleAction(TRUE); 316 editCellSelect->setToggleAction(TRUE);
317 connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool))); 317 connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool)));
318 editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this); 318 editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this);
319 editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this); 319 editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this);
320 editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this); 320 editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this);
321 connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste())); 321 connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste()));
322 editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this); 322 editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this);
323 connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents())); 323 connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents()));
324 editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this); 324 editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this);
325 325
326 insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this); 326 insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this);
327 connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells())); 327 connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells()));
328 insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this); 328 insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this);
329 connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows())); 329 connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows()));
330 insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this); 330 insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this);
331 connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols())); 331 connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols()));
332 insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this); 332 insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this);
333 connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets())); 333 connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets()));
334 334
335 formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this); 335 formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this);
336 connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells())); 336 connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells()));
337 337
338 rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this); 338 rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this);
339 connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight())); 339 connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight()));
340 rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this); 340 rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this);
341 connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust())); 341 connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust()));
342 rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this); 342 rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this);
343 connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow())); 343 connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow()));
344 rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this); 344 rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this);
345 connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide())); 345 connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide()));
346 346
347 colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this); 347 colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this);
348 connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth())); 348 connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth()));
349 colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this); 349 colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this);
350 connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust())); 350 connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust()));
351 colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this); 351 colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this);
352 connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow())); 352 connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow()));
353 colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this); 353 colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this);
354 connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide())); 354 connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide()));
355 355
356 sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this); 356 sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this);
357 connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename())); 357 connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename()));
358 sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this); 358 sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this);
359 connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove())); 359 connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove()));
360 360
361 dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this); 361 dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this);
362 connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort())); 362 connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort()));
363 dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this); 363 dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this);
364 connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace())); 364 connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace()));
365 365
366 funcEqual=new QAction(tr("Equal To"), Resource::loadPixmap( "opie-sheet/func-equal" ), tr("&Equal To"), 0, this); 366 funcEqual=new QAction(tr("Equal To"), Resource::loadPixmap( "opie-sheet/func-equal" ), tr("&Equal To"), 0, this);
367 funcEqual->setToolTip("="); 367 funcEqual->setToolTip("=");
368 connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 368 connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
369 funcPlus=new QAction(tr("Addition"), Resource::loadPixmap( "opie-sheet/func-plus" ), tr("&Addition"), 0, this); 369 funcPlus=new QAction(tr("Addition"), Resource::loadPixmap( "opie-sheet/func-plus" ), tr("&Addition"), 0, this);
370 funcPlus->setToolTip("+"); 370 funcPlus->setToolTip("+");
371 connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 371 connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
372 funcMinus=new QAction(tr("Subtraction"), Resource::loadPixmap( "opie-sheet/func-minus" ), tr("&Subtraction"), 0, this); 372 funcMinus=new QAction(tr("Subtraction"), Resource::loadPixmap( "opie-sheet/func-minus" ), tr("&Subtraction"), 0, this);
373 funcMinus->setToolTip("-"); 373 funcMinus->setToolTip("-");
374 connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 374 connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
375 funcCross=new QAction(tr("Multiplication"), Resource::loadPixmap ("opie-sheet/func-cross" ), tr("&Multiplication"), 0, this); 375 funcCross=new QAction(tr("Multiplication"), Resource::loadPixmap ("opie-sheet/func-cross" ), tr("&Multiplication"), 0, this);
376 funcCross->setToolTip("*"); 376 funcCross->setToolTip("*");
377 connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 377 connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
378 funcDivide=new QAction(tr("Division"), Resource::loadPixmap( "opie-sheet/func-divide" ), tr("&Division"), 0, this); 378 funcDivide=new QAction(tr("Division"), Resource::loadPixmap( "opie-sheet/func-divide" ), tr("&Division"), 0, this);
379 funcDivide->setToolTip("/"); 379 funcDivide->setToolTip("/");
380 connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 380 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); 381 funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"), Resource::loadPixmap( "opie-sheet/func-paran-open" ), tr("&Open Paranthesis"), 0, this);
382 funcParanOpen->setToolTip("("); 382 funcParanOpen->setToolTip("(");
383 connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 383 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); 384 funcParanClose=new QAction(tr("Close Paranthesis"), Resource::loadPixmap( "opie-sheet/func-paran-close" ), tr("&Close Paranthesis"), 0, this);
385 funcParanClose->setToolTip(")"); 385 funcParanClose->setToolTip(")");
386 connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 386 connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
387 funcComma=new QAction(tr("Comma"), Resource::loadPixmap( "opie-sheet/func-comma" ), tr("&Comma"), 0, this); 387 funcComma=new QAction(tr("Comma"), Resource::loadPixmap( "opie-sheet/func-comma" ), tr("&Comma"), 0, this);
388 funcComma->setToolTip(","); 388 funcComma->setToolTip(",");
389 connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput())); 389 connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput()));
390} 390}
391 391
392void MainWindow::initMenu() 392void MainWindow::initMenu()
393{ 393{
394 menu=new QMenuBar(this); 394 menu=new QMenuBar(this);
395 395
396 menuFile=new QPopupMenu; 396 menuFile=new QPopupMenu;
397 fileNew->addTo(menuFile); 397 fileNew->addTo(menuFile);
398 fileOpen->addTo(menuFile); 398 fileOpen->addTo(menuFile);
399 fileSave->addTo(menuFile); 399 fileSave->addTo(menuFile);
400 fileSaveAs->addTo(menuFile); 400 fileSaveAs->addTo(menuFile);
401 // menuFile->insertSeparator(); 401 // menuFile->insertSeparator();
402 // fileQuit->addTo(menuFile); 402 // fileQuit->addTo(menuFile);
403 menuFile->insertSeparator(); 403 menuFile->insertSeparator();
404 fileExcelImport->addTo(menuFile); 404 fileExcelImport->addTo(menuFile);
405 menu->insertItem(tr("&File"), menuFile); 405 menu->insertItem(tr("&File"), menuFile);
406 406
407 menuEdit=new QPopupMenu; 407 menuEdit=new QPopupMenu;
408 editAccept->addTo(menuEdit); 408 editAccept->addTo(menuEdit);
409 editCancel->addTo(menuEdit); 409 editCancel->addTo(menuEdit);
410 editCellSelect->addTo(menuEdit); 410 editCellSelect->addTo(menuEdit);
411 menuEdit->insertSeparator(); 411 menuEdit->insertSeparator();
412 editCut->addTo(menuEdit); 412 editCut->addTo(menuEdit);
413 editCopy->addTo(menuEdit); 413 editCopy->addTo(menuEdit);
414 editPaste->addTo(menuEdit); 414 editPaste->addTo(menuEdit);
415 editPasteContents->addTo(menuEdit); 415 editPasteContents->addTo(menuEdit);
416 editClear->addTo(menuEdit); 416 editClear->addTo(menuEdit);
417 menu->insertItem(tr("&Edit"), menuEdit); 417 menu->insertItem(tr("&Edit"), menuEdit);
418 418
419 menuInsert=new QPopupMenu; 419 menuInsert=new QPopupMenu;
420 menu->insertItem(tr("&Insert"), menuInsert); 420 menu->insertItem(tr("&Insert"), menuInsert);
421 421
422 menuFormat=new QPopupMenu; 422 menuFormat=new QPopupMenu;
423 formatCells->addTo(menuFormat); 423 formatCells->addTo(menuFormat);
424 menu->insertItem(tr("&Format"), menuFormat); 424 menu->insertItem(tr("&Format"), menuFormat);
425 425
426 menuData=new QPopupMenu; 426 menuData=new QPopupMenu;
427 dataSort->addTo(menuData); 427 dataSort->addTo(menuData);
428 dataFindReplace->addTo(menuData); 428 dataFindReplace->addTo(menuData);
429 menu->insertItem(tr("&Data"), menuData); 429 menu->insertItem(tr("&Data"), menuData);
430 430
431 // menuHelp=new QPopupMenu; 431 // menuHelp=new QPopupMenu;
432 // helpGeneral->addTo(menuHelp); 432 // helpGeneral->addTo(menuHelp);
433 // helpAbout->addTo(menuHelp); 433 // helpAbout->addTo(menuHelp);
434 // menu->insertItem(tr("&Help"), menuHelp); 434 // menu->insertItem(tr("&Help"), menuHelp);
435 435
436 submenuRow=new QPopupMenu; 436 submenuRow=new QPopupMenu;
437 rowHeight->addTo(submenuRow); 437 rowHeight->addTo(submenuRow);
438 rowAdjust->addTo(submenuRow); 438 rowAdjust->addTo(submenuRow);
439 rowShow->addTo(submenuRow); 439 rowShow->addTo(submenuRow);
440 rowHide->addTo(submenuRow); 440 rowHide->addTo(submenuRow);
441 menuFormat->insertItem(tr("&Row"), submenuRow); 441 menuFormat->insertItem(tr("&Row"), submenuRow);
442 442
443 submenuCol=new QPopupMenu; 443 submenuCol=new QPopupMenu;
444 colWidth->addTo(submenuCol); 444 colWidth->addTo(submenuCol);
445 colAdjust->addTo(submenuCol); 445 colAdjust->addTo(submenuCol);
446 colShow->addTo(submenuCol); 446 colShow->addTo(submenuCol);
447 colHide->addTo(submenuCol); 447 colHide->addTo(submenuCol);
448 menuFormat->insertItem(tr("Colum&n"), submenuCol); 448 menuFormat->insertItem(tr("Colum&n"), submenuCol);
449 449
450 submenuSheet=new QPopupMenu; 450 submenuSheet=new QPopupMenu;
451 sheetRename->addTo(submenuSheet); 451 sheetRename->addTo(submenuSheet);
452 sheetRemove->addTo(submenuSheet); 452 sheetRemove->addTo(submenuSheet);
453 menuFormat->insertItem(tr("&Sheet"), submenuSheet); 453 menuFormat->insertItem(tr("&Sheet"), submenuSheet);
454 454
455 submenuFunc=new QPopupMenu; 455 submenuFunc=new QPopupMenu;
456 menuInsert->insertItem(tr("&Function"), submenuFunc); 456 menuInsert->insertItem(tr("&Function"), submenuFunc);
457 457
458 submenuFuncStd=new QPopupMenu; 458 submenuFuncStd=new QPopupMenu;
459 funcPlus->addTo(submenuFuncStd); 459 funcPlus->addTo(submenuFuncStd);
460 funcMinus->addTo(submenuFuncStd); 460 funcMinus->addTo(submenuFuncStd);
461 funcCross->addTo(submenuFuncStd); 461 funcCross->addTo(submenuFuncStd);
462 funcDivide->addTo(submenuFuncStd); 462 funcDivide->addTo(submenuFuncStd);
463 submenuFunc->insertItem(tr("&Simple"), submenuFuncStd); 463 submenuFunc->insertItem(tr("&Simple"), submenuFuncStd);
464 464
465 465
466 466
467 submenuFuncStandard=new QPopupMenu; 467 submenuFuncStandard=new QPopupMenu;
468 addFlyAction(tr("ABS(x)"), tr("ABS(x)"), "ABS(", submenuFuncStandard); 468 addFlyAction(tr("ABS(x)"), tr("ABS(x)"), "ABS(", submenuFuncStandard);
469 addFlyAction(tr("CEILING(x,acc)"), tr("CEILING(x,acc)"), "CEILING(", submenuFuncStandard); 469 addFlyAction(tr("CEILING(x,acc)"), tr("CEILING(x,acc)"), "CEILING(", submenuFuncStandard);
470 addFlyAction(tr("FACT(x)"), tr("FACT(x)"), "FACT(", submenuFuncStandard); 470 addFlyAction(tr("FACT(x)"), tr("FACT(x)"), "FACT(", submenuFuncStandard);
471 addFlyAction(tr("FLOOR(x,acc)"), tr("FLOOR(x,acc)"), "FLOOR(", submenuFuncStandard); 471 addFlyAction(tr("FLOOR(x,acc)"), tr("FLOOR(x,acc)"), "FLOOR(", submenuFuncStandard);
472 addFlyAction(tr("INT(x)"), tr("INT(x)"), "INT(", submenuFuncStandard); 472 addFlyAction(tr("INT(x)"), tr("INT(x)"), "INT(", submenuFuncStandard);
473 addFlyAction(tr("MOD(x,y)"), tr("MOD(x,y)"), "MOD(", submenuFuncStandard); 473 addFlyAction(tr("MOD(x,y)"), tr("MOD(x,y)"), "MOD(", submenuFuncStandard);
474 addFlyAction(tr("ROUND(x,digits)"), tr("ROUND(x,digits)"), "ROUND(", submenuFuncStandard); 474 addFlyAction(tr("ROUND(x,digits)"), tr("ROUND(x,digits)"), "ROUND(", submenuFuncStandard);
475 addFlyAction(tr("SIGN(x)"), tr("SIGN(x)"), "SIGN(", submenuFuncStandard); 475 addFlyAction(tr("SIGN(x)"), tr("SIGN(x)"), "SIGN(", submenuFuncStandard);
476 submenuFuncStandard->insertSeparator(); 476 submenuFuncStandard->insertSeparator();
477 addFlyAction(tr("EXP(x)"), tr("EXP(x)"), "EXP(", submenuFuncStandard); 477 addFlyAction(tr("EXP(x)"), tr("EXP(x)"), "EXP(", submenuFuncStandard);
478 addFlyAction(tr("LN(x)"), tr("LN(x)"), "LN(", submenuFuncStandard); 478 addFlyAction(tr("LN(x)"), tr("LN(x)"), "LN(", submenuFuncStandard);
479 addFlyAction(tr("LOG(x,b)"), tr("LOG(x,b)"), "LOG(", submenuFuncStandard); 479 addFlyAction(tr("LOG(x,b)"), tr("LOG(x,b)"), "LOG(", submenuFuncStandard);
480 addFlyAction(tr("LOG10(x)"), tr("LOG10(x)"), "LOG10(", submenuFuncStandard); 480 addFlyAction(tr("LOG10(x)"), tr("LOG10(x)"), "LOG10(", submenuFuncStandard);
481 addFlyAction(tr("POWER(x,y)"), tr("POWER(x,y)"), "POWER(", submenuFuncStandard); 481 addFlyAction(tr("POWER(x,y)"), tr("POWER(x,y)"), "POWER(", submenuFuncStandard);
482 addFlyAction(tr("SQRT(x)"), tr("SQRT(x)"), "SQRT(", submenuFuncStandard); 482 addFlyAction(tr("SQRT(x)"), tr("SQRT(x)"), "SQRT(", submenuFuncStandard);
483 submenuFuncStandard->insertSeparator(); 483 submenuFuncStandard->insertSeparator();
484 addFlyAction(tr("DEGREES(x)"), tr("DEGREES(x)"), "DEGREES(", submenuFuncStandard); 484 addFlyAction(tr("DEGREES(x)"), tr("DEGREES(x)"), "DEGREES(", submenuFuncStandard);
485 addFlyAction(tr("RADIANS(x)"), tr("RADIANS(x)"), "RADIANS(", submenuFuncStandard); 485 addFlyAction(tr("RADIANS(x)"), tr("RADIANS(x)"), "RADIANS(", submenuFuncStandard);
486 addFlyAction(tr("PI()"), tr("PI()"), "PI()", submenuFuncStandard); 486 addFlyAction(tr("PI()"), tr("PI()"), "PI()", submenuFuncStandard);
487 addFlyAction(tr("RAND()"), tr("RAND()"), "RAND(", submenuFuncStandard); 487 addFlyAction(tr("RAND()"), tr("RAND()"), "RAND(", submenuFuncStandard);
488 addFlyAction(tr("RANDBETWEEN(a,b)"), tr("RANDBETWEEN(a,b)"), "RANDBETWEEN(", submenuFuncStandard); 488 addFlyAction(tr("RANDBETWEEN(a,b)"), tr("RANDBETWEEN(a,b)"), "RANDBETWEEN(", submenuFuncStandard);