-rw-r--r-- | noncore/apps/opie-sheet/mainwindow.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp index 9d69b8a..efbcc20 100644 --- a/noncore/apps/opie-sheet/mainwindow.cpp +++ b/noncore/apps/opie-sheet/mainwindow.cpp | |||
@@ -1,850 +1,850 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * This program is free software; you can redistribute it and/or modify * | 3 | * This program is free software; you can redistribute it and/or modify * |
4 | * it under the terms of the GNU General Public License as published by * | 4 | * it under the terms of the GNU General Public License as published by * |
5 | * the Free Software Foundation; either version 2 of the License, or * | 5 | * the Free Software Foundation; either version 2 of the License, or * |
6 | * (at your option) any later version. * | 6 | * (at your option) any later version. * |
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | /* | 10 | /* |
11 | * Opie Sheet (formerly Sheet/Qt) | 11 | * Opie Sheet (formerly Sheet/Qt) |
12 | * by Serdar Ozler <sozler@sitebest.com> | 12 | * by Serdar Ozler <sozler@sitebest.com> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include "mainwindow.h" | 15 | #include "mainwindow.h" |
16 | 16 | ||
17 | #include <qpe/filemanager.h> | 17 | #include <qpe/filemanager.h> |
18 | #include <qpe/qcopenvelope_qws.h> | 18 | #include <qpe/qcopenvelope_qws.h> |
19 | #include <qmessagebox.h> | 19 | #include <qmessagebox.h> |
20 | #include <qfile.h> | 20 | #include <qfile.h> |
21 | #include <qradiobutton.h> | 21 | #include <qradiobutton.h> |
22 | #include "cellformat.h" | 22 | #include "cellformat.h" |
23 | #include "numberdlg.h" | 23 | #include "numberdlg.h" |
24 | #include "textdlg.h" | 24 | #include "textdlg.h" |
25 | #include "sortdlg.h" | 25 | #include "sortdlg.h" |
26 | #include "finddlg.h" | 26 | #include "finddlg.h" |
27 | 27 | ||
28 | #include "file-new.xpm" | 28 | #include "file-new.xpm" |
29 | #include "file-open.xpm" | 29 | #include "file-open.xpm" |
30 | #include "file-save.xpm" | 30 | #include "file-save.xpm" |
31 | #include "edit-cancel.xpm" | 31 | #include "edit-cancel.xpm" |
32 | #include "edit-accept.xpm" | 32 | #include "edit-accept.xpm" |
33 | #include "help-general.xpm" | 33 | #include "help-general.xpm" |
34 | #include "func-plus.xpm" | 34 | #include "func-plus.xpm" |
35 | #include "func-minus.xpm" | 35 | #include "func-minus.xpm" |
36 | #include "func-cross.xpm" | 36 | #include "func-cross.xpm" |
37 | #include "func-divide.xpm" | 37 | #include "func-divide.xpm" |
38 | #include "func-paran-open.xpm" | 38 | #include "func-paran-open.xpm" |
39 | #include "func-paran-close.xpm" | 39 | #include "func-paran-close.xpm" |
40 | #include "func-comma.xpm" | 40 | #include "func-comma.xpm" |
41 | #include "func-func.xpm" | 41 | #include "func-func.xpm" |
42 | #include "func-equal.xpm" | 42 | #include "func-equal.xpm" |
43 | #include "cell-select.xpm" | 43 | #include "cell-select.xpm" |
44 | 44 | ||
45 | #define DEFAULT_NUM_ROWS 199 | 45 | #define DEFAULT_NUM_ROWS 199 |
46 | #define DEFAULT_NUM_COLS (26*3) | 46 | #define DEFAULT_NUM_COLS (26*3) |
47 | #define DEFAULT_NUM_SHEETS 3 | 47 | #define DEFAULT_NUM_SHEETS 3 |
48 | 48 | ||
49 | MainWindow::MainWindow() | 49 | MainWindow::MainWindow() |
50 | :QMainWindow() | 50 | :QMainWindow() |
51 | { | 51 | { |
52 | // initialize variables | 52 | // initialize variables |
53 | documentModified=FALSE; | 53 | documentModified=FALSE; |
54 | 54 | ||
55 | // construct objects | 55 | // construct objects |
56 | fileSelector=new FileSelector("application/sheet-qt", this, QString::null); | 56 | fileSelector=new FileSelector("application/sheet-qt", this, QString::null); |
57 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); | 57 | connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); |
58 | connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &))); | 58 | connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &))); |
59 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &))); | 59 | connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), this, SLOT(selectorFileOpen(const DocLnk &))); |
60 | 60 | ||
61 | listSheets.setAutoDelete(TRUE); | 61 | listSheets.setAutoDelete(TRUE); |
62 | 62 | ||
63 | initActions(); | 63 | initActions(); |
64 | initMenu(); | 64 | initMenu(); |
65 | initEditToolbar(); | 65 | initEditToolbar(); |
66 | initFunctionsToolbar(); | 66 | initFunctionsToolbar(); |
67 | initStandardToolbar(); | 67 | initStandardToolbar(); |
68 | initSheet(); | 68 | initSheet(); |
69 | 69 | ||
70 | // set window title | 70 | // set window title |
71 | setCaption(tr("Opie Sheet")); | 71 | setCaption(tr("Opie Sheet")); |
72 | 72 | ||
73 | // create sheets | 73 | // create sheets |
74 | selectorFileNew(currentDoc); | 74 | selectorFileNew(currentDoc); |
75 | } | 75 | } |
76 | 76 | ||
77 | MainWindow::~MainWindow() | 77 | MainWindow::~MainWindow() |
78 | { | 78 | { |
79 | } | 79 | } |
80 | 80 | ||
81 | void MainWindow::documentSave(DocLnk &lnkDoc) | 81 | void MainWindow::documentSave(DocLnk &lnkDoc) |
82 | { | 82 | { |
83 | FileManager fm; | 83 | FileManager fm; |
84 | QByteArray streamBuffer; | 84 | QByteArray streamBuffer; |
85 | QDataStream stream(streamBuffer, IO_WriteOnly); | 85 | QDataStream stream(streamBuffer, IO_WriteOnly); |
86 | 86 | ||
87 | typeSheet *currentSheet=findSheet(sheet->getName()); | 87 | typeSheet *currentSheet=findSheet(sheet->getName()); |
88 | if (!currentSheet) | 88 | if (!currentSheet) |
89 | { | 89 | { |
90 | QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); | 90 | QMessageBox::critical(this, tr("Error"), tr("Inconsistency error!")); |
91 | return; | 91 | return; |
92 | } | 92 | } |
93 | sheet->copySheetData(¤tSheet->data); | 93 | sheet->copySheetData(¤tSheet->data); |
94 | stream.writeRawBytes("SQT100", 6); | 94 | stream.writeRawBytes("SQT100", 6); |
95 | stream << (Q_UINT32)listSheets.count(); | 95 | stream << (Q_UINT32)listSheets.count(); |
96 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) | 96 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) |
97 | { | 97 | { |
98 | stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); | 98 | stream << tempSheet->name << (Q_UINT32)tempSheet->data.count(); |
99 | for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) | 99 | for (typeCellData *tempCell=tempSheet->data.first(); tempCell; tempCell=tempSheet->data.next()) |
100 | 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; | 100 | 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; |
101 | } | 101 | } |
102 | 102 | ||
103 | lnkDoc.setType("application/sheet-qt"); | 103 | lnkDoc.setType("application/sheet-qt"); |
104 | if (!fm.saveFile(lnkDoc, streamBuffer)) | 104 | if (!fm.saveFile(lnkDoc, streamBuffer)) |
105 | { | 105 | { |
106 | QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); | 106 | QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); |
107 | return; | 107 | return; |
108 | } | 108 | } |
109 | documentModified=FALSE; | 109 | documentModified=FALSE; |
110 | } | 110 | } |
111 | 111 | ||
112 | void MainWindow::documentOpen(const DocLnk &lnkDoc) | 112 | void MainWindow::documentOpen(const DocLnk &lnkDoc) |
113 | { | 113 | { |
114 | FileManager fm; | 114 | FileManager fm; |
115 | QByteArray streamBuffer; | 115 | QByteArray streamBuffer; |
116 | if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) | 116 | if (!lnkDoc.isValid() || !fm.loadFile(lnkDoc, streamBuffer)) |
117 | { | 117 | { |
118 | QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); | 118 | QMessageBox::critical(this, tr("Error"), tr("File cannot be opened!")); |
119 | documentModified=FALSE; | 119 | documentModified=FALSE; |
120 | selectorFileNew(DocLnk()); | 120 | selectorFileNew(DocLnk()); |
121 | return; | 121 | return; |
122 | } | 122 | } |
123 | QDataStream stream(streamBuffer, IO_ReadOnly); | 123 | QDataStream stream(streamBuffer, IO_ReadOnly); |
124 | 124 | ||
125 | Q_UINT32 countSheet, countCell, i, j, row, col, alignment; | 125 | Q_UINT32 countSheet, countCell, i, j, row, col, alignment; |
126 | typeSheet *newSheet; | 126 | typeSheet *newSheet; |
127 | typeCellData *newCell; | 127 | typeCellData *newCell; |
128 | 128 | ||
129 | char fileFormat[7]; | 129 | char fileFormat[7]; |
130 | stream.readRawBytes(fileFormat, 6); | 130 | stream.readRawBytes(fileFormat, 6); |
131 | fileFormat[6]=0; | 131 | fileFormat[6]=0; |
132 | if ((QString)fileFormat!="SQT100") | 132 | if ((QString)fileFormat!="SQT100") |
133 | { | 133 | { |
134 | QMessageBox::critical(this, tr("Error"), tr("Invalid file format!")); | 134 | QMessageBox::critical(this, tr("Error"), tr("Invalid file format!")); |
135 | documentModified=FALSE; | 135 | documentModified=FALSE; |
136 | selectorFileNew(DocLnk()); | 136 | selectorFileNew(DocLnk()); |
137 | return; | 137 | return; |
138 | } | 138 | } |
139 | 139 | ||
140 | stream >> countSheet; | 140 | stream >> countSheet; |
141 | for (i=0; i<countSheet; ++i) | 141 | for (i=0; i<countSheet; ++i) |
142 | { | 142 | { |
143 | newSheet=new typeSheet; | 143 | newSheet=new typeSheet; |
144 | newSheet->data.setAutoDelete(TRUE); | 144 | newSheet->data.setAutoDelete(TRUE); |
145 | stream >> newSheet->name >> countCell; | 145 | stream >> newSheet->name >> countCell; |
146 | comboSheets->insertItem(newSheet->name); | 146 | comboSheets->insertItem(newSheet->name); |
147 | 147 | ||
148 | for (j=0; j<countCell; ++j) | 148 | for (j=0; j<countCell; ++j) |
149 | { | 149 | { |
150 | newCell=new typeCellData; | 150 | newCell=new typeCellData; |
151 | stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data; | 151 | stream >> col >> row >> newCell->borders.right >> newCell->borders.bottom >> newCell->background >> alignment >> newCell->fontColor >> newCell->font >> newCell->data; |
152 | newCell->col=col; | 152 | newCell->col=col; |
153 | newCell->row=row; | 153 | newCell->row=row; |
154 | newCell->alignment=(Qt::AlignmentFlags)alignment; | 154 | newCell->alignment=(Qt::AlignmentFlags)alignment; |
155 | newSheet->data.append(newCell); | 155 | newSheet->data.append(newCell); |
156 | } | 156 | } |
157 | listSheets.append(newSheet); | 157 | listSheets.append(newSheet); |
158 | 158 | ||
159 | if (i==0) | 159 | if (i==0) |
160 | { | 160 | { |
161 | sheet->setName(newSheet->name); | 161 | sheet->setName(newSheet->name); |
162 | sheet->setSheetData(&newSheet->data); | 162 | sheet->setSheetData(&newSheet->data); |
163 | } | 163 | } |
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
167 | int MainWindow::saveCurrentFile(bool ask=TRUE) | 167 | int MainWindow::saveCurrentFile(bool ask=TRUE) |
168 | { | 168 | { |
169 | if (ask) | 169 | if (ask) |
170 | { | 170 | { |
171 | int result=QMessageBox::information(this, tr("Save File"), tr("Do you want to save the current file?"), QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); | 171 | int result=QMessageBox::information(this, tr("Save File"), tr("Do you want to save the current file?"), QMessageBox::Yes, QMessageBox::No, QMessageBox::Cancel); |
172 | if (result!=QMessageBox::Yes) return result; | 172 | if (result!=QMessageBox::Yes) return result; |
173 | } | 173 | } |
174 | 174 | ||
175 | if (currentDoc.name().isEmpty() || !currentDoc.isValid()) | 175 | if (currentDoc.name().isEmpty() || !currentDoc.isValid()) |
176 | { | 176 | { |
177 | TextDialog dialogText(this); | 177 | TextDialog dialogText(this); |
178 | if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel; | 178 | if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel; |
179 | 179 | ||
180 | currentDoc.setName(dialogText.getValue()); | 180 | currentDoc.setName(dialogText.getValue()); |
181 | } | 181 | } |
182 | 182 | ||
183 | documentSave(currentDoc); | 183 | documentSave(currentDoc); |
184 | return QMessageBox::Yes; | 184 | return QMessageBox::Yes; |
185 | } | 185 | } |
186 | 186 | ||
187 | void MainWindow::copyDocLnk(const DocLnk &source, DocLnk &target) | 187 | void MainWindow::copyDocLnk(const DocLnk &source, DocLnk &target) |
188 | { | 188 | { |
189 | target.setName(source.name()); | 189 | target.setName(source.name()); |
190 | target.setFile(source.file()); | 190 | target.setFile(source.file()); |
191 | target.setLinkFile(source.linkFile()); | 191 | target.setLinkFile(source.linkFile()); |
192 | target.setComment(source.comment()); | 192 | target.setComment(source.comment()); |
193 | target.setType(source.type()); | 193 | target.setType(source.type()); |
194 | target.setCategories(source.categories()); | 194 | target.setCategories(source.categories()); |
195 | } | 195 | } |
196 | 196 | ||
197 | void MainWindow::selectorFileNew(const DocLnk &lnkDoc) | 197 | void MainWindow::selectorFileNew(const DocLnk &lnkDoc) |
198 | { | 198 | { |
199 | selectorHide(); | 199 | selectorHide(); |
200 | 200 | ||
201 | if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; | 201 | if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; |
202 | copyDocLnk(lnkDoc, currentDoc); | 202 | copyDocLnk(lnkDoc, currentDoc); |
203 | listSheets.clear(); | 203 | listSheets.clear(); |
204 | comboSheets->clear(); | 204 | comboSheets->clear(); |
205 | 205 | ||
206 | typeSheet *newSheet=createNewSheet(); | 206 | typeSheet *newSheet=createNewSheet(); |
207 | newSheet->data.setAutoDelete(TRUE); | 207 | newSheet->data.setAutoDelete(TRUE); |
208 | sheet->setName(newSheet->name); | 208 | sheet->setName(newSheet->name); |
209 | sheet->setSheetData(&newSheet->data); | 209 | sheet->setSheetData(&newSheet->data); |
210 | for (int i=1; i<DEFAULT_NUM_SHEETS; ++i) | 210 | for (int i=1; i<DEFAULT_NUM_SHEETS; ++i) |
211 | createNewSheet(); | 211 | createNewSheet(); |
212 | documentModified=FALSE; | 212 | documentModified=FALSE; |
213 | } | 213 | } |
214 | 214 | ||
215 | void MainWindow::closeEvent(QCloseEvent *e) | 215 | void MainWindow::closeEvent(QCloseEvent *e) |
216 | { | 216 | { |
217 | if (documentModified && saveCurrentFile()==QMessageBox::Cancel) e->ignore(); | 217 | if (documentModified && saveCurrentFile()==QMessageBox::Cancel) e->ignore(); |
218 | else e->accept(); | 218 | else e->accept(); |
219 | } | 219 | } |
220 | 220 | ||
221 | void MainWindow::selectorFileOpen(const DocLnk &lnkDoc) | 221 | void MainWindow::selectorFileOpen(const DocLnk &lnkDoc) |
222 | { | 222 | { |
223 | selectorHide(); | 223 | selectorHide(); |
224 | 224 | ||
225 | if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; | 225 | if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; |
226 | copyDocLnk(lnkDoc, currentDoc); | 226 | copyDocLnk(lnkDoc, currentDoc); |
227 | listSheets.clear(); | 227 | listSheets.clear(); |
228 | comboSheets->clear(); | 228 | comboSheets->clear(); |
229 | 229 | ||
230 | documentOpen(lnkDoc); | 230 | documentOpen(lnkDoc); |
231 | documentModified=FALSE; | 231 | documentModified=FALSE; |
232 | } | 232 | } |
233 | 233 | ||
234 | void MainWindow::selectorShow() | 234 | void MainWindow::selectorShow() |
235 | { | 235 | { |
236 | sheet->hide(); | 236 | sheet->hide(); |
237 | setCentralWidget(fileSelector); | 237 | setCentralWidget(fileSelector); |
238 | fileSelector->show(); | 238 | fileSelector->show(); |
239 | fileSelector->reread(); | 239 | fileSelector->reread(); |
240 | } | 240 | } |
241 | 241 | ||
242 | void MainWindow::selectorHide() | 242 | void MainWindow::selectorHide() |
243 | { | 243 | { |
244 | fileSelector->hide(); | 244 | fileSelector->hide(); |
245 | setCentralWidget(sheet); | 245 | setCentralWidget(sheet); |
246 | sheet->show(); | 246 | sheet->show(); |
247 | } | 247 | } |
248 | 248 | ||
249 | void MainWindow::slotFileNew() | 249 | void MainWindow::slotFileNew() |
250 | { | 250 | { |
251 | selectorFileNew(DocLnk()); | 251 | selectorFileNew(DocLnk()); |
252 | } | 252 | } |
253 | 253 | ||
254 | void MainWindow::slotFileOpen() | 254 | void MainWindow::slotFileOpen() |
255 | { | 255 | { |
256 | selectorShow(); | 256 | selectorShow(); |
257 | } | 257 | } |
258 | 258 | ||
259 | void MainWindow::slotFileSave() | 259 | void MainWindow::slotFileSave() |
260 | { | 260 | { |
261 | saveCurrentFile(FALSE); | 261 | saveCurrentFile(FALSE); |
262 | } | 262 | } |
263 | 263 | ||
264 | void MainWindow::setDocument(const QString &applnk_filename) | 264 | void MainWindow::setDocument(const QString &applnk_filename) |
265 | { | 265 | { |
266 | selectorFileOpen(DocLnk(applnk_filename)); | 266 | selectorFileOpen(DocLnk(applnk_filename)); |
267 | } | 267 | } |
268 | 268 | ||
269 | void MainWindow::initActions() | 269 | void MainWindow::initActions() |
270 | { | 270 | { |
271 | fileNew=new QAction(tr("New File"), QPixmap(file_new_xpm), tr("&New"), 0, this); | 271 | fileNew=new QAction(tr("New File"), QPixmap(file_new_xpm), tr("&New"), 0, this); |
272 | connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew())); | 272 | connect(fileNew, SIGNAL(activated()), this, SLOT(slotFileNew())); |
273 | fileOpen=new QAction(tr("Open File"), QPixmap(file_open_xpm), tr("&Open"), 0, this); | 273 | fileOpen=new QAction(tr("Open File"), QPixmap(file_open_xpm), tr("&Open"), 0, this); |
274 | connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen())); | 274 | connect(fileOpen, SIGNAL(activated()), this, SLOT(slotFileOpen())); |
275 | fileSave=new QAction(tr("Save File"), QPixmap(file_save_xpm), tr("&Save"), 0, this); | 275 | fileSave=new QAction(tr("Save File"), QPixmap(file_save_xpm), tr("&Save"), 0, this); |
276 | connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave())); | 276 | connect(fileSave, SIGNAL(activated()), this, SLOT(slotFileSave())); |
277 | fileSaveAs=new QAction(tr("Save File As"), QPixmap(file_save_xpm), tr("Save &As"), 0, this); | 277 | fileSaveAs=new QAction(tr("Save File As"), QPixmap(file_save_xpm), tr("Save &As"), 0, this); |
278 | connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs())); | 278 | connect(fileSaveAs, SIGNAL(activated()), this, SLOT(slotFileSaveAs())); |
279 | fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this); | 279 | fileQuit=new QAction(tr("Quit"), tr("&Quit"), 0, this); |
280 | connect(fileQuit, SIGNAL(activated()), this, SLOT(close())); | 280 | connect(fileQuit, SIGNAL(activated()), this, SLOT(close())); |
281 | 281 | ||
282 | helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this); | 282 | helpGeneral=new QAction(tr("General Help"), QPixmap(help_general_xpm), tr("&General"), 0, this); |
283 | connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral())); | 283 | connect(helpGeneral, SIGNAL(activated()), this, SLOT(slotHelpGeneral())); |
284 | helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this); | 284 | helpAbout=new QAction(tr("About Opie Sheet"), tr("&About"), 0, this); |
285 | connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout())); | 285 | connect(helpAbout, SIGNAL(activated()), this, SLOT(slotHelpAbout())); |
286 | 286 | ||
287 | editAccept=new QAction(tr("Accept"), QPixmap(edit_accept_xpm), tr("&Accept"), 0, this); | 287 | editAccept=new QAction(tr("Accept"), QPixmap(edit_accept_xpm), tr("&Accept"), 0, this); |
288 | connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept())); | 288 | connect(editAccept, SIGNAL(activated()), this, SLOT(slotEditAccept())); |
289 | editCancel=new QAction(tr("Cancel"), QPixmap(edit_cancel_xpm), tr("&Cancel"), 0, this); | 289 | editCancel=new QAction(tr("Cancel"), QPixmap(edit_cancel_xpm), tr("&Cancel"), 0, this); |
290 | connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel())); | 290 | connect(editCancel, SIGNAL(activated()), this, SLOT(slotEditCancel())); |
291 | editCellSelect=new QAction(tr("Cell Selector"), QPixmap(cell_select_xpm), tr("Cell &Selector"), 0, this); | 291 | editCellSelect=new QAction(tr("Cell Selector"), QPixmap(cell_select_xpm), tr("Cell &Selector"), 0, this); |
292 | editCellSelect->setToggleAction(TRUE); | 292 | editCellSelect->setToggleAction(TRUE); |
293 | connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool))); | 293 | connect(editCellSelect, SIGNAL(toggled(bool)), this, SLOT(slotCellSelect(bool))); |
294 | editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this); | 294 | editCut=new QAction(tr("Cut Cells"), tr("Cu&t"), 0, this); |
295 | editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this); | 295 | editCopy=new QAction(tr("Copy Cells"), tr("&Copy"), 0, this); |
296 | editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this); | 296 | editPaste=new QAction(tr("Paste Cells"), tr("&Paste"), 0, this); |
297 | connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste())); | 297 | connect(editPaste, SIGNAL(activated()), this, SLOT(slotEditPaste())); |
298 | editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this); | 298 | editPasteContents=new QAction(tr("Paste Contents"), tr("Paste Cont&ents"), 0, this); |
299 | connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents())); | 299 | connect(editPasteContents, SIGNAL(activated()), this, SLOT(slotEditPasteContents())); |
300 | editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this); | 300 | editClear=new QAction(tr("Clear Cells"), tr("C&lear"), 0, this); |
301 | 301 | ||
302 | insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this); | 302 | insertCells=new QAction(tr("Insert Cells"), tr("C&ells"), 0, this); |
303 | connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells())); | 303 | connect(insertCells, SIGNAL(activated()), this, SLOT(slotInsertCells())); |
304 | insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this); | 304 | insertRows=new QAction(tr("Insert Rows"), tr("&Rows"), 0, this); |
305 | connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows())); | 305 | connect(insertRows, SIGNAL(activated()), this, SLOT(slotInsertRows())); |
306 | insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this); | 306 | insertCols=new QAction(tr("Insert Columns"), tr("&Columns"), 0, this); |
307 | connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols())); | 307 | connect(insertCols, SIGNAL(activated()), this, SLOT(slotInsertCols())); |
308 | insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this); | 308 | insertSheets=new QAction(tr("Add Sheets"), tr("&Sheets"), 0, this); |
309 | connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets())); | 309 | connect(insertSheets, SIGNAL(activated()), this, SLOT(slotInsertSheets())); |
310 | 310 | ||
311 | formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this); | 311 | formatCells=new QAction(tr("Cells"), tr("&Cells"), 0, this); |
312 | connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells())); | 312 | connect(formatCells, SIGNAL(activated()), this, SLOT(slotFormatCells())); |
313 | 313 | ||
314 | rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this); | 314 | rowHeight=new QAction(tr("Row Height"), tr("H&eight"), 0, this); |
315 | connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight())); | 315 | connect(rowHeight, SIGNAL(activated()), this, SLOT(slotRowHeight())); |
316 | rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this); | 316 | rowAdjust=new QAction(tr("Adjust Row"), tr("&Adjust"), 0, this); |
317 | connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust())); | 317 | connect(rowAdjust, SIGNAL(activated()), this, SLOT(slotRowAdjust())); |
318 | rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this); | 318 | rowShow=new QAction(tr("Show Row"), tr("&Show"), 0, this); |
319 | connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow())); | 319 | connect(rowShow, SIGNAL(activated()), this, SLOT(slotRowShow())); |
320 | rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this); | 320 | rowHide=new QAction(tr("Hide Row"), tr("&Hide"), 0, this); |
321 | connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide())); | 321 | connect(rowHide, SIGNAL(activated()), this, SLOT(slotRowHide())); |
322 | 322 | ||
323 | colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this); | 323 | colWidth=new QAction(tr("Column Width"), tr("&Width"), 0, this); |
324 | connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth())); | 324 | connect(colWidth, SIGNAL(activated()), this, SLOT(slotColumnWidth())); |
325 | colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this); | 325 | colAdjust=new QAction(tr("Adjust Column"), tr("&Adjust"), 0, this); |
326 | connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust())); | 326 | connect(colAdjust, SIGNAL(activated()), this, SLOT(slotColumnAdjust())); |
327 | colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this); | 327 | colShow=new QAction(tr("Show Column"), tr("&Show"), 0, this); |
328 | connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow())); | 328 | connect(colShow, SIGNAL(activated()), this, SLOT(slotColumnShow())); |
329 | colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this); | 329 | colHide=new QAction(tr("Hide Column"), tr("&Hide"), 0, this); |
330 | connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide())); | 330 | connect(colHide, SIGNAL(activated()), this, SLOT(slotColumnHide())); |
331 | 331 | ||
332 | sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this); | 332 | sheetRename=new QAction(tr("Rename Sheet"), tr("&Rename"), 0, this); |
333 | connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename())); | 333 | connect(sheetRename, SIGNAL(activated()), this, SLOT(slotSheetRename())); |
334 | sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this); | 334 | sheetRemove=new QAction(tr("Remove Sheet"), tr("R&emove"), 0, this); |
335 | connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove())); | 335 | connect(sheetRemove, SIGNAL(activated()), this, SLOT(slotSheetRemove())); |
336 | 336 | ||
337 | dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this); | 337 | dataSort=new QAction(tr("Sort Data"), tr("&Sort"), 0, this); |
338 | connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort())); | 338 | connect(dataSort, SIGNAL(activated()), this, SLOT(slotDataSort())); |
339 | dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this); | 339 | dataFindReplace=new QAction(tr("Find && Replace"), tr("&Find && Replace"), 0, this); |
340 | connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace())); | 340 | connect(dataFindReplace, SIGNAL(activated()), this, SLOT(slotDataFindReplace())); |
341 | 341 | ||
342 | funcEqual=new QAction(tr("Equal To"), QPixmap(func_equal_xpm), tr("&Equal To"), 0, this); | 342 | funcEqual=new QAction(tr("Equal To"), QPixmap(func_equal_xpm), tr("&Equal To"), 0, this); |
343 | funcEqual->setToolTip("="); | 343 | funcEqual->setToolTip("="); |
344 | connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 344 | connect(funcEqual, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
345 | funcPlus=new QAction(tr("Addition"), QPixmap(func_plus_xpm), tr("&Addition"), 0, this); | 345 | funcPlus=new QAction(tr("Addition"), QPixmap(func_plus_xpm), tr("&Addition"), 0, this); |
346 | funcPlus->setToolTip("+"); | 346 | funcPlus->setToolTip("+"); |
347 | connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 347 | connect(funcPlus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
348 | funcMinus=new QAction(tr("Subtraction"), QPixmap(func_minus_xpm), tr("&Subtraction"), 0, this); | 348 | funcMinus=new QAction(tr("Subtraction"), QPixmap(func_minus_xpm), tr("&Subtraction"), 0, this); |
349 | funcMinus->setToolTip("-"); | 349 | funcMinus->setToolTip("-"); |
350 | connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 350 | connect(funcMinus, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
351 | funcCross=new QAction(tr("Multiplication"), QPixmap(func_cross_xpm), tr("&Multiplication"), 0, this); | 351 | funcCross=new QAction(tr("Multiplication"), QPixmap(func_cross_xpm), tr("&Multiplication"), 0, this); |
352 | funcCross->setToolTip("*"); | 352 | funcCross->setToolTip("*"); |
353 | connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 353 | connect(funcCross, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
354 | funcDivide=new QAction(tr("Division"), QPixmap(func_divide_xpm), tr("&Division"), 0, this); | 354 | funcDivide=new QAction(tr("Division"), QPixmap(func_divide_xpm), tr("&Division"), 0, this); |
355 | funcDivide->setToolTip("/"); | 355 | funcDivide->setToolTip("/"); |
356 | connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 356 | connect(funcDivide, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
357 | funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"), QPixmap(func_paran_open_xpm), tr("&Open Paranthesis"), 0, this); | 357 | funcParanOpen=new QAction(tr("Open ParanthesistempCellData->row+row1, tempCellData->col+col1"), QPixmap(func_paran_open_xpm), tr("&Open Paranthesis"), 0, this); |
358 | funcParanOpen->setToolTip("("); | 358 | funcParanOpen->setToolTip("("); |
359 | connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 359 | connect(funcParanOpen, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
360 | funcParanClose=new QAction(tr("Close Paranthesis"), QPixmap(func_paran_close_xpm), tr("&Close Paranthesis"), 0, this); | 360 | funcParanClose=new QAction(tr("Close Paranthesis"), QPixmap(func_paran_close_xpm), tr("&Close Paranthesis"), 0, this); |
361 | funcParanClose->setToolTip(")"); | 361 | funcParanClose->setToolTip(")"); |
362 | connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 362 | connect(funcParanClose, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
363 | funcComma=new QAction(tr("Comma"), QPixmap(func_comma_xpm), tr("&Comma"), 0, this); | 363 | funcComma=new QAction(tr("Comma"), QPixmap(func_comma_xpm), tr("&Comma"), 0, this); |
364 | funcComma->setToolTip(","); | 364 | funcComma->setToolTip(","); |
365 | connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 365 | connect(funcComma, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
366 | } | 366 | } |
367 | 367 | ||
368 | void MainWindow::initMenu() | 368 | void MainWindow::initMenu() |
369 | { | 369 | { |
370 | menu=new QPEMenuBar(this); | 370 | menu=new QPEMenuBar(this); |
371 | 371 | ||
372 | menuFile=new QPopupMenu; | 372 | menuFile=new QPopupMenu; |
373 | fileNew->addTo(menuFile); | 373 | fileNew->addTo(menuFile); |
374 | fileOpen->addTo(menuFile); | 374 | fileOpen->addTo(menuFile); |
375 | fileSave->addTo(menuFile); | 375 | fileSave->addTo(menuFile); |
376 | fileSaveAs->addTo(menuFile); | 376 | fileSaveAs->addTo(menuFile); |
377 | menuFile->insertSeparator(); | 377 | menuFile->insertSeparator(); |
378 | fileQuit->addTo(menuFile); | 378 | fileQuit->addTo(menuFile); |
379 | menu->insertItem(tr("&File"), menuFile); | 379 | menu->insertItem(tr("&File"), menuFile); |
380 | 380 | ||
381 | menuEdit=new QPopupMenu; | 381 | menuEdit=new QPopupMenu; |
382 | editAccept->addTo(menuEdit); | 382 | editAccept->addTo(menuEdit); |
383 | editCancel->addTo(menuEdit); | 383 | editCancel->addTo(menuEdit); |
384 | editCellSelect->addTo(menuEdit); | 384 | editCellSelect->addTo(menuEdit); |
385 | menuEdit->insertSeparator(); | 385 | menuEdit->insertSeparator(); |
386 | editCut->addTo(menuEdit); | 386 | editCut->addTo(menuEdit); |
387 | editCopy->addTo(menuEdit); | 387 | editCopy->addTo(menuEdit); |
388 | editPaste->addTo(menuEdit); | 388 | editPaste->addTo(menuEdit); |
389 | editPasteContents->addTo(menuEdit); | 389 | editPasteContents->addTo(menuEdit); |
390 | editClear->addTo(menuEdit); | 390 | editClear->addTo(menuEdit); |
391 | menu->insertItem(tr("&Edit"), menuEdit); | 391 | menu->insertItem(tr("&Edit"), menuEdit); |
392 | 392 | ||
393 | menuInsert=new QPopupMenu; | 393 | menuInsert=new QPopupMenu; |
394 | menu->insertItem(tr("&Insert"), menuInsert); | 394 | menu->insertItem(tr("&Insert"), menuInsert); |
395 | 395 | ||
396 | menuFormat=new QPopupMenu; | 396 | menuFormat=new QPopupMenu; |
397 | formatCells->addTo(menuFormat); | 397 | formatCells->addTo(menuFormat); |
398 | menu->insertItem(tr("&Format"), menuFormat); | 398 | menu->insertItem(tr("&Format"), menuFormat); |
399 | 399 | ||
400 | menuData=new QPopupMenu; | 400 | menuData=new QPopupMenu; |
401 | dataSort->addTo(menuData); | 401 | dataSort->addTo(menuData); |
402 | dataFindReplace->addTo(menuData); | 402 | dataFindReplace->addTo(menuData); |
403 | menu->insertItem(tr("&Data"), menuData); | 403 | menu->insertItem(tr("&Data"), menuData); |
404 | 404 | ||
405 | menuHelp=new QPopupMenu; | 405 | menuHelp=new QPopupMenu; |
406 | helpGeneral->addTo(menuHelp); | 406 | helpGeneral->addTo(menuHelp); |
407 | helpAbout->addTo(menuHelp); | 407 | helpAbout->addTo(menuHelp); |
408 | menu->insertItem(tr("&Help"), menuHelp); | 408 | menu->insertItem(tr("&Help"), menuHelp); |
409 | 409 | ||
410 | submenuRow=new QPopupMenu; | 410 | submenuRow=new QPopupMenu; |
411 | rowHeight->addTo(submenuRow); | 411 | rowHeight->addTo(submenuRow); |
412 | rowAdjust->addTo(submenuRow); | 412 | rowAdjust->addTo(submenuRow); |
413 | rowShow->addTo(submenuRow); | 413 | rowShow->addTo(submenuRow); |
414 | rowHide->addTo(submenuRow); | 414 | rowHide->addTo(submenuRow); |
415 | menuFormat->insertItem(tr("&Row"), submenuRow); | 415 | menuFormat->insertItem(tr("&Row"), submenuRow); |
416 | 416 | ||
417 | submenuCol=new QPopupMenu; | 417 | submenuCol=new QPopupMenu; |
418 | colWidth->addTo(submenuCol); | 418 | colWidth->addTo(submenuCol); |
419 | colAdjust->addTo(submenuCol); | 419 | colAdjust->addTo(submenuCol); |
420 | colShow->addTo(submenuCol); | 420 | colShow->addTo(submenuCol); |
421 | colHide->addTo(submenuCol); | 421 | colHide->addTo(submenuCol); |
422 | menuFormat->insertItem(tr("Colum&n"), submenuCol); | 422 | menuFormat->insertItem(tr("Colum&n"), submenuCol); |
423 | 423 | ||
424 | submenuSheet=new QPopupMenu; | 424 | submenuSheet=new QPopupMenu; |
425 | sheetRename->addTo(submenuSheet); | 425 | sheetRename->addTo(submenuSheet); |
426 | sheetRemove->addTo(submenuSheet); | 426 | sheetRemove->addTo(submenuSheet); |
427 | menuFormat->insertItem(tr("&Sheet"), submenuSheet); | 427 | menuFormat->insertItem(tr("&Sheet"), submenuSheet); |
428 | 428 | ||
429 | submenuFunc=new QPopupMenu; | 429 | submenuFunc=new QPopupMenu; |
430 | menuInsert->insertItem(tr("&Function"), submenuFunc); | 430 | menuInsert->insertItem(tr("&Function"), submenuFunc); |
431 | 431 | ||
432 | submenuFuncStd=new QPopupMenu; | 432 | submenuFuncStd=new QPopupMenu; |
433 | funcPlus->addTo(submenuFuncStd); | 433 | funcPlus->addTo(submenuFuncStd); |
434 | funcMinus->addTo(submenuFuncStd); | 434 | funcMinus->addTo(submenuFuncStd); |
435 | funcCross->addTo(submenuFuncStd); | 435 | funcCross->addTo(submenuFuncStd); |
436 | funcDivide->addTo(submenuFuncStd); | 436 | funcDivide->addTo(submenuFuncStd); |
437 | submenuFunc->insertItem(tr("&Standard"), submenuFuncStd); | 437 | submenuFunc->insertItem(tr("&Standard"), submenuFuncStd); |
438 | 438 | ||
439 | submenuFuncMath=new QPopupMenu; | 439 | submenuFuncMath=new QPopupMenu; |
440 | addFlyAction(tr("Summation"), tr("&Summation"), "SUM(", submenuFuncMath); | 440 | addFlyAction(tr("Summation"), tr("&Summation"), "SUM(", submenuFuncMath); |
441 | addFlyAction(tr("Absolute Value"), tr("&Absolute"), "ABS(", submenuFuncMath); | 441 | addFlyAction(tr("Absolute Value"), tr("&Absolute"), "ABS(", submenuFuncMath); |
442 | submenuFuncMath->insertSeparator(); | 442 | submenuFuncMath->insertSeparator(); |
443 | addFlyAction(tr("Sine"), tr("Si&ne"), "SIN(", submenuFuncMath); | 443 | addFlyAction(tr("Sine"), tr("Si&ne"), "SIN(", submenuFuncMath); |
444 | addFlyAction(tr("Arc Sine"), tr("A&rc Sine"), "ASIN(", submenuFuncMath); | 444 | addFlyAction(tr("Arc Sine"), tr("A&rc Sine"), "ASIN(", submenuFuncMath); |
445 | addFlyAction(tr("Cosine"), tr("&Cosine"), "COS(", submenuFuncMath); | 445 | addFlyAction(tr("Cosine"), tr("&Cosine"), "COS(", submenuFuncMath); |
446 | addFlyAction(tr("ArcCosine"), tr("Arc Cos&ine"), "COS(", submenuFuncMath); | 446 | addFlyAction(tr("ArcCosine"), tr("Arc Cos&ine"), "COS(", submenuFuncMath); |
447 | addFlyAction(tr("Tangent"), tr("&Tangent"), "TAN(", submenuFuncMath); | 447 | addFlyAction(tr("Tangent"), tr("&Tangent"), "TAN(", submenuFuncMath); |
448 | addFlyAction(tr("Arc Tangent"), tr("Arc Tan&gent"), "ATAN(", submenuFuncMath); | 448 | addFlyAction(tr("Arc Tangent"), tr("Arc Tan&gent"), "ATAN(", submenuFuncMath); |
449 | addFlyAction(tr("Arc Tangent of Coordinates"), tr("C&oor. Arc Tangent"), "ATAN2(", submenuFuncMath); | 449 | addFlyAction(tr("Arc Tangent of Coordinates"), tr("C&oor. Arc Tangent"), "ATAN2(", submenuFuncMath); |
450 | submenuFuncMath->insertSeparator(); | 450 | submenuFuncMath->insertSeparator(); |
451 | addFlyAction(tr("Exponential"), tr("&Exponential"), "EXP(", submenuFuncMath); | 451 | addFlyAction(tr("Exponential"), tr("&Exponential"), "EXP(", submenuFuncMath); |
452 | addFlyAction(tr("Logarithm"), tr("&Logarithm"), "LOG(", submenuFuncMath); | 452 | addFlyAction(tr("Logarithm"), tr("&Logarithm"), "LOG(", submenuFuncMath); |
453 | addFlyAction(tr("Power"), tr("&Power"), "POW(", submenuFuncMath); | 453 | addFlyAction(tr("Power"), tr("&Power"), "POW(", submenuFuncMath); |
454 | submenuFunc->insertItem(tr("&Mathematical"), submenuFuncMath); | 454 | submenuFunc->insertItem(tr("&Mathematical"), submenuFuncMath); |
455 | 455 | ||
456 | submenuFuncStat=new QPopupMenu; | 456 | submenuFuncStat=new QPopupMenu; |
457 | addFlyAction(tr("Average"), tr("&Average"), "AVG(", submenuFuncStat); | 457 | addFlyAction(tr("Average"), tr("&Average"), "AVG(", submenuFuncStat); |
458 | addFlyAction(tr("Maximum"), tr("Ma&ximum"), "MAX(", submenuFuncStat); | 458 | addFlyAction(tr("Maximum"), tr("Ma&ximum"), "MAX(", submenuFuncStat); |
459 | addFlyAction(tr("Minimum"), tr("&Minimum"), "MIN(", submenuFuncStat); | 459 | addFlyAction(tr("Minimum"), tr("&Minimum"), "MIN(", submenuFuncStat); |
460 | addFlyAction(tr("Count"), tr("&Count"), "COUNT(", submenuFuncStat); | 460 | addFlyAction(tr("Count"), tr("&Count"), "COUNT(", submenuFuncStat); |
461 | submenuFunc->insertItem(tr("&Statistical"), submenuFuncStat); | 461 | submenuFunc->insertItem(tr("&Statistical"), submenuFuncStat); |
462 | 462 | ||
463 | menuInsert->insertSeparator(); | 463 | menuInsert->insertSeparator(); |
464 | insertCells->addTo(menuInsert); | 464 | insertCells->addTo(menuInsert); |
465 | insertRows->addTo(menuInsert); | 465 | insertRows->addTo(menuInsert); |
466 | insertCols->addTo(menuInsert); | 466 | insertCols->addTo(menuInsert); |
467 | insertSheets->addTo(menuInsert); | 467 | insertSheets->addTo(menuInsert); |
468 | } | 468 | } |
469 | 469 | ||
470 | void MainWindow::initStandardToolbar() | 470 | void MainWindow::initStandardToolbar() |
471 | { | 471 | { |
472 | toolbarStandard=new QPEToolBar(this); | 472 | toolbarStandard=new QPEToolBar(this); |
473 | toolbarStandard->setHorizontalStretchable(TRUE); | 473 | toolbarStandard->setHorizontalStretchable(TRUE); |
474 | moveToolBar(toolbarStandard, Top); | 474 | moveToolBar(toolbarStandard, Top); |
475 | 475 | ||
476 | fileNew->addTo(toolbarStandard); | 476 | fileNew->addTo(toolbarStandard); |
477 | fileOpen->addTo(toolbarStandard); | 477 | fileOpen->addTo(toolbarStandard); |
478 | fileSave->addTo(toolbarStandard); | 478 | fileSave->addTo(toolbarStandard); |
479 | 479 | ||
480 | comboSheets=new QComboBox(toolbarStandard); | 480 | comboSheets=new QComboBox(toolbarStandard); |
481 | toolbarStandard->setStretchableWidget(comboSheets); | 481 | toolbarStandard->setStretchableWidget(comboSheets); |
482 | connect(comboSheets, SIGNAL(activated(const QString &)), this, SLOT(slotSheetChanged(const QString &))); | 482 | connect(comboSheets, SIGNAL(activated(const QString &)), this, SLOT(slotSheetChanged(const QString &))); |
483 | } | 483 | } |
484 | 484 | ||
485 | void MainWindow::initFunctionsToolbar() | 485 | void MainWindow::initFunctionsToolbar() |
486 | { | 486 | { |
487 | toolbarFunctions=new QPEToolBar(this); | 487 | toolbarFunctions=new QPEToolBar(this); |
488 | toolbarFunctions->setHorizontalStretchable(TRUE); | 488 | toolbarFunctions->setHorizontalStretchable(TRUE); |
489 | moveToolBar(toolbarFunctions, Bottom); | 489 | moveToolBar(toolbarFunctions, Bottom); |
490 | 490 | ||
491 | funcEqual->addTo(toolbarFunctions); | 491 | funcEqual->addTo(toolbarFunctions); |
492 | funcPlus->addTo(toolbarFunctions); | 492 | funcPlus->addTo(toolbarFunctions); |
493 | funcMinus->addTo(toolbarFunctions); | 493 | funcMinus->addTo(toolbarFunctions); |
494 | funcCross->addTo(toolbarFunctions); | 494 | funcCross->addTo(toolbarFunctions); |
495 | funcDivide->addTo(toolbarFunctions); | 495 | funcDivide->addTo(toolbarFunctions); |
496 | funcParanOpen->addTo(toolbarFunctions); | 496 | funcParanOpen->addTo(toolbarFunctions); |
497 | funcParanClose->addTo(toolbarFunctions); | 497 | funcParanClose->addTo(toolbarFunctions); |
498 | funcComma->addTo(toolbarFunctions); | 498 | funcComma->addTo(toolbarFunctions); |
499 | 499 | ||
500 | toolFunction=new QToolButton(toolbarFunctions); | 500 | toolFunction=new QToolButton(toolbarFunctions); |
501 | toolFunction->setPixmap(func_func_xpm); | 501 | toolFunction->setPixmap(func_func_xpm); |
502 | toolFunction->setTextLabel(tr("Functions")); | 502 | toolFunction->setTextLabel(tr("Functions")); |
503 | toolFunction->setPopup(submenuFunc); | 503 | toolFunction->setPopup(submenuFunc); |
504 | toolFunction->setPopupDelay(0); | 504 | toolFunction->setPopupDelay(0); |
505 | } | 505 | } |
506 | 506 | ||
507 | void MainWindow::initEditToolbar() | 507 | void MainWindow::initEditToolbar() |
508 | { | 508 | { |
509 | toolbarEdit=new QPEToolBar(this); | 509 | toolbarEdit=new QPEToolBar(this); |
510 | toolbarEdit->setHorizontalStretchable(TRUE); | 510 | toolbarEdit->setHorizontalStretchable(TRUE); |
511 | moveToolBar(toolbarEdit, Bottom); | 511 | moveToolBar(toolbarEdit, Bottom); |
512 | 512 | ||
513 | editAccept->addTo(toolbarEdit); | 513 | editAccept->addTo(toolbarEdit); |
514 | editCancel->addTo(toolbarEdit); | 514 | editCancel->addTo(toolbarEdit); |
515 | 515 | ||
516 | editData=new QLineEdit(toolbarEdit); | 516 | editData=new QLineEdit(toolbarEdit); |
517 | toolbarEdit->setStretchableWidget(editData); | 517 | toolbarEdit->setStretchableWidget(editData); |
518 | connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept())); | 518 | connect(editData, SIGNAL(returnPressed()), this, SLOT(slotEditAccept())); |
519 | 519 | ||
520 | editCellSelect->addTo(toolbarEdit); | 520 | editCellSelect->addTo(toolbarEdit); |
521 | } | 521 | } |
522 | 522 | ||
523 | void MainWindow::slotHelpGeneral() | 523 | void MainWindow::slotHelpGeneral() |
524 | { | 524 | { |
525 | if (QFile::exists(helpFile)) | 525 | if (QFile::exists(helpFile)) |
526 | { | 526 | { |
527 | QCopEnvelope e("QPE/Application/helpbrowser", "showFile(QString)"); | 527 | QCopEnvelope e("QPE/Application/helpbrowser", "showFile(QString)"); |
528 | e << helpFile; | 528 | e << helpFile; |
529 | } | 529 | } |
530 | else | 530 | else |
531 | QMessageBox::critical(this, tr("Error"), tr("Help file not found!")); | 531 | QMessageBox::critical(this, tr("Error"), tr("Help file not found!")); |
532 | } | 532 | } |
533 | 533 | ||
534 | void MainWindow::slotHelpAbout() | 534 | void MainWindow::slotHelpAbout() |
535 | { | 535 | { |
536 | QDialog dialogAbout(this, 0, TRUE); | 536 | QDialog dialogAbout(this, 0, TRUE); |
537 | dialogAbout.resize(width()-40, height()-80); | 537 | dialogAbout.resize(width()-40, height()-80); |
538 | dialogAbout.setCaption(tr("About Opie Sheet")); | 538 | dialogAbout.setCaption(tr("About Opie Sheet")); |
539 | 539 | ||
540 | QLabel label(tr("Opie Sheet\nSpreadsheet Software for Opie\nQWDC Beta Winner (as Sheet/Qt)\n\nDeveloped by: Serdar Ozler\nVersion: 1.0.1 (Final)\nRelease Date: July 4, 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); | 540 | QLabel label(tr("Opie Sheet\nSpreadsheet Software for Opie\nQWDC Beta Winner (as Sheet/Qt)\n\nDeveloped by: Serdar Ozler\nRelease 1.0.1\nRelease Date: July 04, 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); |
541 | label.setGeometry(dialogAbout.rect()); | 541 | label.setGeometry(dialogAbout.rect()); |
542 | label.setAlignment(Qt::AlignCenter | Qt::WordBreak); | 542 | label.setAlignment(Qt::AlignCenter | Qt::WordBreak); |
543 | 543 | ||
544 | dialogAbout.exec(); | 544 | dialogAbout.exec(); |
545 | } | 545 | } |
546 | 546 | ||
547 | void MainWindow::initSheet() | 547 | void MainWindow::initSheet() |
548 | { | 548 | { |
549 | sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this); | 549 | sheet=new Sheet(DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS, this); |
550 | setCentralWidget(sheet); | 550 | setCentralWidget(sheet); |
551 | 551 | ||
552 | connect(sheet, SIGNAL(currentDataChanged(const QString &)), editData, SLOT(setText(const QString &))); | 552 | connect(sheet, SIGNAL(currentDataChanged(const QString &)), editData, SLOT(setText(const QString &))); |
553 | connect(sheet, SIGNAL(cellClicked(const QString &)), this, SLOT(slotCellClicked(const QString &))); | 553 | connect(sheet, SIGNAL(cellClicked(const QString &)), this, SLOT(slotCellClicked(const QString &))); |
554 | connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified())); | 554 | connect(sheet, SIGNAL(sheetModified()), this, SLOT(slotDocModified())); |
555 | 555 | ||
556 | connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut())); | 556 | connect(editCut, SIGNAL(activated()), sheet, SLOT(editCut())); |
557 | connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy())); | 557 | connect(editCopy, SIGNAL(activated()), sheet, SLOT(editCopy())); |
558 | connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear())); | 558 | connect(editClear, SIGNAL(activated()), sheet, SLOT(editClear())); |
559 | } | 559 | } |
560 | 560 | ||
561 | void MainWindow::slotEditAccept() | 561 | void MainWindow::slotEditAccept() |
562 | { | 562 | { |
563 | sheet->setData(editData->text()); | 563 | sheet->setData(editData->text()); |
564 | } | 564 | } |
565 | 565 | ||
566 | void MainWindow::slotEditCancel() | 566 | void MainWindow::slotEditCancel() |
567 | { | 567 | { |
568 | editData->setText(sheet->getData()); | 568 | editData->setText(sheet->getData()); |
569 | } | 569 | } |
570 | 570 | ||
571 | void MainWindow::slotCellSelect(bool lock) | 571 | void MainWindow::slotCellSelect(bool lock) |
572 | { | 572 | { |
573 | sheet->lockClicks(lock); | 573 | sheet->lockClicks(lock); |
574 | } | 574 | } |
575 | 575 | ||
576 | void MainWindow::addToData(const QString &data) | 576 | void MainWindow::addToData(const QString &data) |
577 | { | 577 | { |
578 | editData->setText(editData->text().insert(editData->cursorPosition(), data)); | 578 | editData->setText(editData->text().insert(editData->cursorPosition(), data)); |
579 | } | 579 | } |
580 | 580 | ||
581 | void MainWindow::slotFuncOutput() | 581 | void MainWindow::slotFuncOutput() |
582 | { | 582 | { |
583 | if (sender()->isA("QAction")) | 583 | if (sender()->isA("QAction")) |
584 | addToData(((QAction *)sender())->toolTip()); | 584 | addToData(((QAction *)sender())->toolTip()); |
585 | } | 585 | } |
586 | 586 | ||
587 | void MainWindow::slotInsertRows() | 587 | void MainWindow::slotInsertRows() |
588 | { | 588 | { |
589 | NumberDialog dialogNumber(this); | 589 | NumberDialog dialogNumber(this); |
590 | if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted) | 590 | if (dialogNumber.exec(tr("Insert Rows"), tr("&Number of rows:"))==QDialog::Accepted) |
591 | sheet->insertRows(dialogNumber.getValue()); | 591 | sheet->insertRows(dialogNumber.getValue()); |
592 | } | 592 | } |
593 | 593 | ||
594 | void MainWindow::slotInsertCols() | 594 | void MainWindow::slotInsertCols() |
595 | { | 595 | { |
596 | NumberDialog dialogNumber(this); | 596 | NumberDialog dialogNumber(this); |
597 | if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted) | 597 | if (dialogNumber.exec(tr("Insert Columns"), tr("&Number of columns:"))==QDialog::Accepted) |
598 | sheet->insertColumns(dialogNumber.getValue()); | 598 | sheet->insertColumns(dialogNumber.getValue()); |
599 | } | 599 | } |
600 | 600 | ||
601 | void MainWindow::slotInsertSheets() | 601 | void MainWindow::slotInsertSheets() |
602 | { | 602 | { |
603 | NumberDialog dialogNumber(this); | 603 | NumberDialog dialogNumber(this); |
604 | if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted) | 604 | if (dialogNumber.exec(tr("Add Sheets"), tr("&Number of sheets:"))==QDialog::Accepted) |
605 | for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet(); | 605 | for (int i=dialogNumber.getValue(); i>0; --i) createNewSheet(); |
606 | } | 606 | } |
607 | 607 | ||
608 | void MainWindow::slotCellClicked(const QString &cell) | 608 | void MainWindow::slotCellClicked(const QString &cell) |
609 | { | 609 | { |
610 | editCellSelect->setOn(FALSE); | 610 | editCellSelect->setOn(FALSE); |
611 | addToData(cell); | 611 | addToData(cell); |
612 | } | 612 | } |
613 | 613 | ||
614 | typeSheet *MainWindow::createNewSheet() | 614 | typeSheet *MainWindow::createNewSheet() |
615 | { | 615 | { |
616 | typeSheet *newSheet=new typeSheet; | 616 | typeSheet *newSheet=new typeSheet; |
617 | int currentNo=1, tempNo; | 617 | int currentNo=1, tempNo; |
618 | bool ok; | 618 | bool ok; |
619 | 619 | ||
620 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) | 620 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) |
621 | if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok) | 621 | if (tempSheet->name.startsWith(tr("Sheet")) && (tempNo=tempSheet->name.mid(tr("Sheet").length()).toInt(&ok))>=currentNo && ok) |
622 | currentNo=tempNo+1; | 622 | currentNo=tempNo+1; |
623 | 623 | ||
624 | newSheet->name=tr("Sheet")+QString::number(currentNo); | 624 | newSheet->name=tr("Sheet")+QString::number(currentNo); |
625 | newSheet->data.setAutoDelete(TRUE); | 625 | newSheet->data.setAutoDelete(TRUE); |
626 | 626 | ||
627 | comboSheets->insertItem(newSheet->name); | 627 | comboSheets->insertItem(newSheet->name); |
628 | listSheets.append(newSheet); | 628 | listSheets.append(newSheet); |
629 | return newSheet; | 629 | return newSheet; |
630 | } | 630 | } |
631 | 631 | ||
632 | typeSheet *MainWindow::findSheet(const QString &name) | 632 | typeSheet *MainWindow::findSheet(const QString &name) |
633 | { | 633 | { |
634 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) | 634 | for (typeSheet *tempSheet=listSheets.first(); tempSheet; tempSheet=listSheets.next()) |
635 | if (tempSheet->name==name) | 635 | if (tempSheet->name==name) |
636 | return tempSheet; | 636 | return tempSheet; |
637 | return NULL; | 637 | return NULL; |
638 | } | 638 | } |
639 | 639 | ||
640 | void MainWindow::slotSheetChanged(const QString &name) | 640 | void MainWindow::slotSheetChanged(const QString &name) |
641 | { | 641 | { |
642 | sheet->copySheetData(&findSheet(sheet->getName())->data); | 642 | sheet->copySheetData(&findSheet(sheet->getName())->data); |
643 | sheet->setName(name); | 643 | sheet->setName(name); |
644 | sheet->setSheetData(&findSheet(name)->data); | 644 | sheet->setSheetData(&findSheet(name)->data); |
645 | } | 645 | } |
646 | 646 | ||
647 | void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w) | 647 | void MainWindow::addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w) |
648 | { | 648 | { |
649 | QAction *action=new QAction(text, menuText, 0, this); | 649 | QAction *action=new QAction(text, menuText, 0, this); |
650 | action->setToolTip(tip); | 650 | action->setToolTip(tip); |
651 | connect(action, SIGNAL(activated()), this, SLOT(slotFuncOutput())); | 651 | connect(action, SIGNAL(activated()), this, SLOT(slotFuncOutput())); |
652 | action->addTo(w); | 652 | action->addTo(w); |
653 | } | 653 | } |
654 | 654 | ||
655 | void MainWindow::slotFormatCells() | 655 | void MainWindow::slotFormatCells() |
656 | { | 656 | { |
657 | CellFormat dialogCellFormat(this); | 657 | CellFormat dialogCellFormat(this); |
658 | dialogCellFormat.showMaximized(); | 658 | dialogCellFormat.showMaximized(); |
659 | dialogCellFormat.exec(sheet); | 659 | dialogCellFormat.exec(sheet); |
660 | } | 660 | } |
661 | 661 | ||
662 | void MainWindow::slotEditPaste() | 662 | void MainWindow::slotEditPaste() |
663 | { | 663 | { |
664 | sheet->editPaste(); | 664 | sheet->editPaste(); |
665 | } | 665 | } |
666 | 666 | ||
667 | void MainWindow::slotEditPasteContents() | 667 | void MainWindow::slotEditPasteContents() |
668 | { | 668 | { |
669 | sheet->editPaste(TRUE); | 669 | sheet->editPaste(TRUE); |
670 | } | 670 | } |
671 | 671 | ||
672 | void MainWindow::slotRowHeight() | 672 | void MainWindow::slotRowHeight() |
673 | { | 673 | { |
674 | int row1, row2, col1, col2; | 674 | int row1, row2, col1, col2; |
675 | sheet->getSelection(&row1, &col1, &row2, &col2); | 675 | sheet->getSelection(&row1, &col1, &row2, &col2); |
676 | 676 | ||
677 | NumberDialog dialogNumber(this); | 677 | NumberDialog dialogNumber(this); |
678 | if (dialogNumber.exec(tr("Row Height"), tr("&Height of each row:"), sheet->rowHeight(row1))==QDialog::Accepted) | 678 | if (dialogNumber.exec(tr("Row Height"), tr("&Height of each row:"), sheet->rowHeight(row1))==QDialog::Accepted) |
679 | { | 679 | { |
680 | int newHeight=dialogNumber.getValue(), row; | 680 | int newHeight=dialogNumber.getValue(), row; |
681 | for (row=row1; row<=row2; ++row) | 681 | for (row=row1; row<=row2; ++row) |
682 | sheet->setRowHeight(row, newHeight); | 682 | sheet->setRowHeight(row, newHeight); |
683 | } | 683 | } |
684 | } | 684 | } |
685 | 685 | ||
686 | void MainWindow::slotRowAdjust() | 686 | void MainWindow::slotRowAdjust() |
687 | { | 687 | { |
688 | int row1, row2, col1, col2; | 688 | int row1, row2, col1, col2; |
689 | sheet->getSelection(&row1, &col1, &row2, &col2); | 689 | sheet->getSelection(&row1, &col1, &row2, &col2); |
690 | 690 | ||
691 | for (int row=row1; row<=row2; ++row) | 691 | for (int row=row1; row<=row2; ++row) |
692 | sheet->adjustRow(row); | 692 | sheet->adjustRow(row); |
693 | } | 693 | } |
694 | 694 | ||
695 | void MainWindow::slotRowShow() | 695 | void MainWindow::slotRowShow() |
696 | { | 696 | { |
697 | int row1, row2, col1, col2; | 697 | int row1, row2, col1, col2; |
698 | sheet->getSelection(&row1, &col1, &row2, &col2); | 698 | sheet->getSelection(&row1, &col1, &row2, &col2); |
699 | 699 | ||
700 | for (int row=row1; row<=row2; ++row) | 700 | for (int row=row1; row<=row2; ++row) |
701 | sheet->showRow(row); | 701 | sheet->showRow(row); |
702 | } | 702 | } |
703 | 703 | ||
704 | void MainWindow::slotRowHide() | 704 | void MainWindow::slotRowHide() |
705 | { | 705 | { |
706 | int row1, row2, col1, col2; | 706 | int row1, row2, col1, col2; |
707 | sheet->getSelection(&row1, &col1, &row2, &col2); | 707 | sheet->getSelection(&row1, &col1, &row2, &col2); |
708 | 708 | ||
709 | for (int row=row1; row<=row2; ++row) | 709 | for (int row=row1; row<=row2; ++row) |
710 | sheet->hideRow(row); | 710 | sheet->hideRow(row); |
711 | } | 711 | } |
712 | 712 | ||
713 | void MainWindow::slotColumnWidth() | 713 | void MainWindow::slotColumnWidth() |
714 | { | 714 | { |
715 | int row1, row2, col1, col2; | 715 | int row1, row2, col1, col2; |
716 | sheet->getSelection(&row1, &col1, &row2, &col2); | 716 | sheet->getSelection(&row1, &col1, &row2, &col2); |
717 | 717 | ||
718 | NumberDialog dialogNumber(this); | 718 | NumberDialog dialogNumber(this); |
719 | if (dialogNumber.exec(tr("Column Width"), tr("&Width of each column:"), sheet->columnWidth(col1))==QDialog::Accepted) | 719 | if (dialogNumber.exec(tr("Column Width"), tr("&Width of each column:"), sheet->columnWidth(col1))==QDialog::Accepted) |
720 | { | 720 | { |
721 | int newWidth=dialogNumber.getValue(), col; | 721 | int newWidth=dialogNumber.getValue(), col; |
722 | for (col=col1; col<=col2; ++col) | 722 | for (col=col1; col<=col2; ++col) |
723 | sheet->setColumnWidth(col, newWidth); | 723 | sheet->setColumnWidth(col, newWidth); |
724 | } | 724 | } |
725 | } | 725 | } |
726 | 726 | ||
727 | void MainWindow::slotColumnAdjust() | 727 | void MainWindow::slotColumnAdjust() |
728 | { | 728 | { |
729 | int row1, row2, col1, col2; | 729 | int row1, row2, col1, col2; |
730 | sheet->getSelection(&row1, &col1, &row2, &col2); | 730 | sheet->getSelection(&row1, &col1, &row2, &col2); |
731 | 731 | ||
732 | for (int col=col1; col<=col2; ++col) | 732 | for (int col=col1; col<=col2; ++col) |
733 | sheet->adjustColumn(col); | 733 | sheet->adjustColumn(col); |
734 | } | 734 | } |
735 | 735 | ||
736 | void MainWindow::slotColumnShow() | 736 | void MainWindow::slotColumnShow() |
737 | { | 737 | { |
738 | int row1, row2, col1, col2; | 738 | int row1, row2, col1, col2; |
739 | sheet->getSelection(&row1, &col1, &row2, &col2); | 739 | sheet->getSelection(&row1, &col1, &row2, &col2); |
740 | 740 | ||
741 | for (int col=col1; col<=col2; ++col) | 741 | for (int col=col1; col<=col2; ++col) |
742 | sheet->showColumn(col); | 742 | sheet->showColumn(col); |
743 | } | 743 | } |
744 | 744 | ||
745 | void MainWindow::slotColumnHide() | 745 | void MainWindow::slotColumnHide() |
746 | { | 746 | { |
747 | int row1, row2, col1, col2; | 747 | int row1, row2, col1, col2; |
748 | sheet->getSelection(&row1, &col1, &row2, &col2); | 748 | sheet->getSelection(&row1, &col1, &row2, &col2); |
749 | 749 | ||
750 | for (int col=col1; col<=col2; ++col) | 750 | for (int col=col1; col<=col2; ++col) |
751 | sheet->hideColumn(col); | 751 | sheet->hideColumn(col); |
752 | } | 752 | } |
753 | 753 | ||
754 | void MainWindow::slotFileSaveAs() | 754 | void MainWindow::slotFileSaveAs() |
755 | { | 755 | { |
756 | TextDialog dialogText(this); | 756 | TextDialog dialogText(this); |
757 | if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc.name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; | 757 | if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc.name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; |
758 | 758 | ||
759 | currentDoc.setName(dialogText.getValue()); | 759 | currentDoc.setName(dialogText.getValue()); |
760 | documentSave(currentDoc); | 760 | documentSave(currentDoc); |
761 | } | 761 | } |
762 | 762 | ||
763 | void MainWindow::slotSheetRename() | 763 | void MainWindow::slotSheetRename() |
764 | { | 764 | { |
765 | TextDialog dialogText(this); | 765 | TextDialog dialogText(this); |
766 | if (dialogText.exec(tr("Rename Sheet"), tr("&Sheet Name:"), sheet->getName())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; | 766 | if (dialogText.exec(tr("Rename Sheet"), tr("&Sheet Name:"), sheet->getName())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; |
767 | QString newName=dialogText.getValue(); | 767 | QString newName=dialogText.getValue(); |
768 | 768 | ||
769 | typeSheet *tempSheet=findSheet(newName); | 769 | typeSheet *tempSheet=findSheet(newName); |
770 | if (tempSheet) | 770 | if (tempSheet) |
771 | { | 771 | { |
772 | QMessageBox::critical(this, tr("Error"), tr("There is already a sheet named '"+newName+'\'')); | 772 | QMessageBox::critical(this, tr("Error"), tr("There is already a sheet named '"+newName+'\'')); |
773 | return; | 773 | return; |
774 | } | 774 | } |
775 | 775 | ||
776 | tempSheet=findSheet(sheet->getName()); | 776 | tempSheet=findSheet(sheet->getName()); |
777 | for (int i=0; i<comboSheets->count(); ++i) | 777 | for (int i=0; i<comboSheets->count(); ++i) |
778 | if (comboSheets->text(i)==tempSheet->name) | 778 | if (comboSheets->text(i)==tempSheet->name) |
779 | { | 779 | { |
780 | comboSheets->changeItem(newName, i); | 780 | comboSheets->changeItem(newName, i); |
781 | break; | 781 | break; |
782 | } | 782 | } |
783 | tempSheet->name=newName; | 783 | tempSheet->name=newName; |
784 | sheet->setName(newName); | 784 | sheet->setName(newName); |
785 | } | 785 | } |
786 | 786 | ||
787 | void MainWindow::slotSheetRemove() | 787 | void MainWindow::slotSheetRemove() |
788 | { | 788 | { |
789 | if (comboSheets->count()<2) | 789 | if (comboSheets->count()<2) |
790 | { | 790 | { |
791 | QMessageBox::warning(this, tr("Error"), tr("There is only one sheet!")); | 791 | QMessageBox::warning(this, tr("Error"), tr("There is only one sheet!")); |
792 | return; | 792 | return; |
793 | } | 793 | } |
794 | if (QMessageBox::information(this, tr("Remove Sheet"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes) | 794 | if (QMessageBox::information(this, tr("Remove Sheet"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes) |
795 | { | 795 | { |
796 | typeSheet *tempSheet=findSheet(sheet->getName()); | 796 | typeSheet *tempSheet=findSheet(sheet->getName()); |
797 | for (int i=0; i<comboSheets->count(); ++i) | 797 | for (int i=0; i<comboSheets->count(); ++i) |
798 | if (comboSheets->text(i)==tempSheet->name) | 798 | if (comboSheets->text(i)==tempSheet->name) |
799 | { | 799 | { |
800 | comboSheets->removeItem(i); | 800 | comboSheets->removeItem(i); |
801 | break; | 801 | break; |
802 | } | 802 | } |
803 | comboSheets->setCurrentItem(0); | 803 | comboSheets->setCurrentItem(0); |
804 | slotSheetChanged(comboSheets->currentText()); | 804 | slotSheetChanged(comboSheets->currentText()); |
805 | listSheets.remove(tempSheet); | 805 | listSheets.remove(tempSheet); |
806 | } | 806 | } |
807 | } | 807 | } |
808 | 808 | ||
809 | void MainWindow::slotDataSort() | 809 | void MainWindow::slotDataSort() |
810 | { | 810 | { |
811 | SortDialog dialogSort(this); | 811 | SortDialog dialogSort(this); |
812 | dialogSort.showMaximized(); | 812 | dialogSort.showMaximized(); |
813 | dialogSort.exec(sheet); | 813 | dialogSort.exec(sheet); |
814 | } | 814 | } |
815 | 815 | ||
816 | void MainWindow::slotDocModified() | 816 | void MainWindow::slotDocModified() |
817 | { | 817 | { |
818 | documentModified=TRUE; | 818 | documentModified=TRUE; |
819 | } | 819 | } |
820 | 820 | ||
821 | void MainWindow::slotInsertCells() | 821 | void MainWindow::slotInsertCells() |
822 | { | 822 | { |
823 | QDialog dialogInsert(this, 0, TRUE); | 823 | QDialog dialogInsert(this, 0, TRUE); |
824 | dialogInsert.resize(180, 130); | 824 | dialogInsert.resize(180, 130); |
825 | dialogInsert.setCaption(tr("Insert Cells")); | 825 | dialogInsert.setCaption(tr("Insert Cells")); |
826 | 826 | ||
827 | QVButtonGroup *group=new QVButtonGroup(tr("&Type"), &dialogInsert); | 827 | QVButtonGroup *group=new QVButtonGroup(tr("&Type"), &dialogInsert); |
828 | group->setGeometry(10, 10, 160, 110); | 828 | group->setGeometry(10, 10, 160, 110); |
829 | QRadioButton *radio=new QRadioButton(tr("Shift cells &down"), group); | 829 | QRadioButton *radio=new QRadioButton(tr("Shift cells &down"), group); |
830 | radio=new QRadioButton(tr("Shift cells &right"), group); | 830 | radio=new QRadioButton(tr("Shift cells &right"), group); |
831 | radio=new QRadioButton(tr("Entire ro&w"), group); | 831 | radio=new QRadioButton(tr("Entire ro&w"), group); |
832 | radio=new QRadioButton(tr("Entire &column"), group); | 832 | radio=new QRadioButton(tr("Entire &column"), group); |
833 | group->setButton(0); | 833 | group->setButton(0); |
834 | 834 | ||
835 | if (dialogInsert.exec()==QDialog::Accepted) | 835 | if (dialogInsert.exec()==QDialog::Accepted) |
836 | switch (group->id(group->selected())) | 836 | switch (group->id(group->selected())) |
837 | { | 837 | { |
838 | case 0: sheet->insertRows(1, FALSE); break; | 838 | case 0: sheet->insertRows(1, FALSE); break; |
839 | case 1: sheet->insertColumns(1, FALSE); break; | 839 | case 1: sheet->insertColumns(1, FALSE); break; |
840 | case 2: sheet->insertRows(1, TRUE); break; | 840 | case 2: sheet->insertRows(1, TRUE); break; |
841 | case 3: sheet->insertColumns(1, TRUE); break; | 841 | case 3: sheet->insertColumns(1, TRUE); break; |
842 | } | 842 | } |
843 | } | 843 | } |
844 | 844 | ||
845 | void MainWindow::slotDataFindReplace() | 845 | void MainWindow::slotDataFindReplace() |
846 | { | 846 | { |
847 | FindDialog dialogFind(this); | 847 | FindDialog dialogFind(this); |
848 | dialogFind.showMaximized(); | 848 | dialogFind.showMaximized(); |
849 | dialogFind.exec(sheet); | 849 | dialogFind.exec(sheet); |
850 | } | 850 | } |