summaryrefslogtreecommitdiff
authorleseb <leseb>2002-07-06 20:45:39 (UTC)
committer leseb <leseb>2002-07-06 20:45:39 (UTC)
commit7c069ad1b76c681282499b157ef9b23ec000947d (patch) (side-by-side diff)
tree677ae3903f6448a4f761e3a1245c7e4a746b8a1a
parent2517236d77e1f2a3d255c4c540a39f1661caaff9 (diff)
downloadopie-7c069ad1b76c681282499b157ef9b23ec000947d.zip
opie-7c069ad1b76c681282499b157ef9b23ec000947d.tar.gz
opie-7c069ad1b76c681282499b157ef9b23ec000947d.tar.bz2
Fix DocLnk management to save documents correctly
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-sheet/mainwindow.cpp38
-rw-r--r--noncore/apps/opie-sheet/mainwindow.h5
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
@@ -53,6 +53,7 @@ MainWindow::MainWindow()
documentModified=FALSE;
// construct objects
+ currentDoc=0;
fileSelector=new FileSelector("application/sheet-qt", this, QString::null);
connect(fileSelector, SIGNAL(closeMe()), this, SLOT(selectorHide()));
connect(fileSelector, SIGNAL(newSelected(const DocLnk &)), this, SLOT(selectorFileNew(const DocLnk &)));
@@ -71,14 +72,15 @@ MainWindow::MainWindow()
setCaption(tr("Opie Sheet"));
// create sheets
- selectorFileNew(currentDoc);
+ selectorFileNew(DocLnk());
}
MainWindow::~MainWindow()
{
+ if (currentDoc) delete currentDoc;
}
-void MainWindow::documentSave(DocLnk &lnkDoc)
+void MainWindow::documentSave(DocLnk *lnkDoc)
{
FileManager fm;
QByteArray streamBuffer;
@@ -100,8 +102,8 @@ void MainWindow::documentSave(DocLnk &lnkDoc)
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;
}
- 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!"));
return;
@@ -172,34 +174,27 @@ int MainWindow::saveCurrentFile(bool ask=TRUE)
if (result!=QMessageBox::Yes) return result;
}
- 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);
}
documentSave(currentDoc);
return QMessageBox::Yes;
}
-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)
{
selectorHide();
if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
- copyDocLnk(lnkDoc, currentDoc);
+ if (currentDoc) delete currentDoc;
+ currentDoc = new DocLnk(lnkDoc);
listSheets.clear();
comboSheets->clear();
@@ -223,7 +218,8 @@ void MainWindow::selectorFileOpen(const DocLnk &lnkDoc)
selectorHide();
if (documentModified && saveCurrentFile()==QMessageBox::Cancel) return;
- copyDocLnk(lnkDoc, currentDoc);
+ if (currentDoc) delete currentDoc;
+ currentDoc = new DocLnk(lnkDoc);
listSheets.clear();
comboSheets->clear();
@@ -754,9 +750,11 @@ void MainWindow::slotColumnHide()
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
@@ -39,7 +39,7 @@ class MainWindow: public QMainWindow
Q_OBJECT
// QPE objects
- DocLnk currentDoc;
+ DocLnk* currentDoc;
QPEMenuBar *menu;
QPEToolBar *toolbarFunctions, *toolbarEdit, *toolbarStandard;
FileSelector *fileSelector;
@@ -76,8 +76,7 @@ class MainWindow: public QMainWindow
void addToData(const QString &data);
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);
typeSheet *createNewSheet();