-rw-r--r-- | noncore/apps/opie-sheet/mainwindow.cpp | 38 | ||||
-rw-r--r-- | noncore/apps/opie-sheet/mainwindow.h | 5 |
2 files changed, 20 insertions, 23 deletions
diff --git a/noncore/apps/opie-sheet/mainwindow.cpp b/noncore/apps/opie-sheet/mainwindow.cpp index efbcc20..09ee68b 100644 --- a/noncore/apps/opie-sheet/mainwindow.cpp +++ b/noncore/apps/opie-sheet/mainwindow.cpp @@ -54,4 +54,5 @@ MainWindow::MainWindow() // construct objects + currentDoc=0; fileSelector=new FileSelector("application/sheet-qt", this, QString::null); connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide())); @@ -72,12 +73,13 @@ MainWindow::MainWindow() // create sheets - selectorFileNew(currentDoc); + selectorFileNew(DocLnk()); } MainWindow::~MainWindow() { + if (currentDoc) delete currentDoc; } -void MainWindow::documentSave(DocLnk &lnkDoc) +void MainWindow::documentSave(DocLnk *lnkDoc) { FileManager fm; @@ -101,6 +103,6 @@ void MainWindow::documentSave(DocLnk &lnkDoc) } - lnkDoc.setType("application/sheet-qt"); - if (!fm.saveFile(lnkDoc, streamBuffer)) + lnkDoc->setType("application/sheet-qt"); + if (!fm.saveFile(*lnkDoc, streamBuffer)) { QMessageBox::critical(this, tr("Error"), tr("File cannot be saved!")); @@ -173,10 +175,12 @@ int MainWindow::saveCurrentFile(bool ask=TRUE) } - if (currentDoc.name().isEmpty() || !currentDoc.isValid()) + if (!currentDoc->isValid()) { TextDialog dialogText(this); if (dialogText.exec(tr("Save File"), tr("&File Name:"), tr("UnnamedFile"))!=QDialog::Accepted || dialogText.getValue().isEmpty()) return QMessageBox::Cancel; - currentDoc.setName(dialogText.getValue()); + currentDoc->setName(dialogText.getValue()); + currentDoc->setFile(QString::null); + currentDoc->setLinkFile(QString::null); } @@ -185,14 +189,4 @@ int MainWindow::saveCurrentFile(bool ask=TRUE) } -void MainWindow::copyDocLnk(const DocLnk &source, DocLnk &target) -{ - target.setName(source.name()); - target.setFile(source.file()); - target.setLinkFile(source.linkFile()); - target.setComment(source.comment()); - target.setType(source.type()); - target.setCategories(source.categories()); -} - void MainWindow::selectorFileNew(const DocLnk &lnkDoc) { @@ -200,5 +194,6 @@ void MainWindow::selectorFileNew(const DocLnk &lnkDoc) if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; - copyDocLnk(lnkDoc, currentDoc); + if (currentDoc) delete currentDoc; + currentDoc = new DocLnk(lnkDoc); listSheets.clear(); comboSheets->clear(); @@ -224,5 +219,6 @@ void MainWindow::selectorFileOpen(const DocLnk &lnkDoc) if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return; - copyDocLnk(lnkDoc, currentDoc); + if (currentDoc) delete currentDoc; + currentDoc = new DocLnk(lnkDoc); listSheets.clear(); comboSheets->clear(); @@ -755,7 +751,9 @@ void MainWindow::slotFileSaveAs() { TextDialog dialogText(this); - if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc.name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; + if (dialogText.exec(tr("Save File As"), tr("&File Name:"), currentDoc->name())!=QDialog::Accepted || dialogText.getValue().isEmpty()) return; - currentDoc.setName(dialogText.getValue()); + currentDoc->setName(dialogText.getValue()); + currentDoc->setFile(QString::null); + currentDoc->setLinkFile(QString::null); documentSave(currentDoc); } diff --git a/noncore/apps/opie-sheet/mainwindow.h b/noncore/apps/opie-sheet/mainwindow.h index 554e6f6..d68e25c 100644 --- a/noncore/apps/opie-sheet/mainwindow.h +++ b/noncore/apps/opie-sheet/mainwindow.h @@ -40,5 +40,5 @@ class MainWindow: public QMainWindow // QPE objects - DocLnk currentDoc; + DocLnk* currentDoc; QPEMenuBar *menu; QPEToolBar *toolbarFunctions, *toolbarEdit, *toolbarStandard; @@ -77,6 +77,5 @@ class MainWindow: public QMainWindow int saveCurrentFile(bool ask=TRUE); void documentOpen(const DocLnk &lnkDoc); - void copyDocLnk(const DocLnk &source, DocLnk &target); - void documentSave(DocLnk &lnkDoc); + void documentSave(DocLnk *lnkDoc); void closeEvent(QCloseEvent *e); void addFlyAction(const QString &text, const QString &menuText, const QString &tip, QWidget *w); |