summaryrefslogtreecommitdiff
path: root/cad/qcad/files/patch-zzz-autosave
diff options
context:
space:
mode:
Diffstat (limited to 'cad/qcad/files/patch-zzz-autosave')
-rw-r--r--cad/qcad/files/patch-zzz-autosave345
1 files changed, 0 insertions, 345 deletions
diff --git a/cad/qcad/files/patch-zzz-autosave b/cad/qcad/files/patch-zzz-autosave
deleted file mode 100644
index 8f499b71b354..000000000000
--- a/cad/qcad/files/patch-zzz-autosave
+++ /dev/null
@@ -1,345 +0,0 @@
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_applicationwindow.cpp ./qcad/src/qc_applicationwindow.cpp
---- ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_applicationwindow.cpp Tue Nov 22 12:49:33 2005
-+++ ./qcad/src/qc_applicationwindow.cpp Sat Aug 11 22:47:35 2007
-@@ -162,6 +162,11 @@
- RS_DEBUG->print("QC_ApplicationWindow::QC_ApplicationWindow: init MDI");
- initMDI();
-
-+ // Activate autosave timer
-+ autosaveTimer = new QTimer(this, "autosave");
-+ connect(autosaveTimer, SIGNAL(timeout()), this, SLOT(slotFileAutoSave()));
-+ autosaveTimer->start(autosaveTime);
-+
- // Disable menu and toolbar items
- emit windowsChanged(FALSE);
-
-@@ -2133,6 +2138,9 @@
- name = w->getDocument()->getFilename();
- recentFiles->add(name);
- w->setCaption(name);
-+ if (!autosaveTimer->isActive()) {
-+ autosaveTimer->start(autosaveTime);
-+ }
- }
- } else {
- // error
-@@ -2148,6 +2156,37 @@
- QString message = tr("Saved drawing: %1").arg(name);
- statusBar()->message(message, 2000);
- commandWidget->appendHistory(message);
-+}
-+
-+
-+
-+/**
-+ * Autosave.
-+ */
-+void QC_ApplicationWindow::slotFileAutoSave() {
-+ RS_DEBUG->print("QC_ApplicationWindow::slotFileAutoSave()");
-+
-+ statusBar()->message(tr("Auto-saving drawing..."));
-+
-+ QC_MDIWindow* w = getMDIWindow();
-+ QString name;
-+ if (w!=NULL) {
-+ bool cancelled;
-+ if (w->slotFileSave(cancelled, true)) {
-+ // auto-save cannot be cancelled by user, so the
-+ // "cancelled" parameter is a dummy
-+ statusBar()->message(tr("Auto-saved drawing"), 2000);
-+ } else {
-+ // error
-+ autosaveTimer->stop();
-+ QMessageBox::information(this, QMessageBox::tr("Warning"),
-+ tr("Cannot auto-save the file\n%1\nPlease "
-+ "check the permissions.\n"
-+ "Auto-save disabled.")
-+ .arg(w->getDocument()->getAutoSaveFilename()),
-+ QMessageBox::Ok);
-+ }
-+ }
- }
-
-
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_applicationwindow.h ./qcad/src/qc_applicationwindow.h
---- ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_applicationwindow.h Tue Nov 22 12:49:34 2005
-+++ ./qcad/src/qc_applicationwindow.h Sat Aug 11 22:47:35 2007
-@@ -37,6 +37,7 @@
- #include <qsplitter.h>
- #include <qstatusbar.h>
- #include <qtable.h>
-+#include <qtimer.h>
- #include <qtoolbar.h>
- #include <qtoolbutton.h>
- #include <qwhatsthis.h>
-@@ -148,6 +149,8 @@
- void slotFileSave();
- /** saves a document under a different filename*/
- void slotFileSaveAs();
-+ /** auto-save document */
-+ void slotFileAutoSave();
- /** exports the document as bitmap */
- void slotFileExport();
- bool slotFileExport(const QString& name, const QString& format,
-@@ -456,6 +459,9 @@
- QAction *testResize800;
- QAction *testResize1024;
-
-+ QTimer *autosaveTimer;
-+
-+ const static int autosaveTime = 60 * 1000; // 1 minute
- };
-
-
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_mdiwindow.cpp ./qcad/src/qc_mdiwindow.cpp
---- ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_mdiwindow.cpp Tue Nov 22 12:49:37 2005
-+++ ./qcad/src/qc_mdiwindow.cpp Sat Aug 11 22:47:35 2007
-@@ -324,23 +324,32 @@
- /**
- * Saves the current file.
- *
-+ * @param isAutoSave true if this is an "autosave" operation.
-+ * false if this is "Save" operation requested
-+ * by the user.
- * @return true if the file was saved successfully.
- * false if the file could not be saved or the document
- * is invalid.
- */
--bool QC_MDIWindow::slotFileSave(bool &cancelled) {
-+bool QC_MDIWindow::slotFileSave(bool &cancelled, bool isAutoSave) {
- RS_DEBUG->print("QC_MDIWindow::slotFileSave()");
- bool ret = false;
- cancelled = false;
-
- if (document!=NULL) {
-- if (document->getFilename().isEmpty()) {
-- ret = slotFileSaveAs(cancelled);
-+ if (isAutoSave) {
-+ // Autosave filename is always supposed to be present.
-+ // Autosave does not change the cursor.
-+ ret = document->save(true);
- } else {
-- QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) );
-- ret = document->save();
-- QApplication::restoreOverrideCursor();
-- }
-+ if (document->getFilename().isEmpty()) {
-+ ret = slotFileSaveAs(cancelled);
-+ } else {
-+ QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) );
-+ ret = document->save();
-+ QApplication::restoreOverrideCursor();
-+ }
-+ }
- }
-
- return ret;
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_mdiwindow.h ./qcad/src/qc_mdiwindow.h
---- ../qcad-2.0.5.0-1-community.src.orig/qcad/src/qc_mdiwindow.h Tue Nov 22 12:49:37 2005
-+++ ./qcad/src/qc_mdiwindow.h Sat Aug 11 22:47:35 2007
-@@ -69,7 +69,7 @@
-
- void slotFileNew();
- bool slotFileOpen(const QString& fileName, RS2::FormatType type);
-- bool slotFileSave(bool &cancelled);
-+ bool slotFileSave(bool &cancelled, bool isAutoSave=false);
- bool slotFileSaveAs(bool &cancelled);
- bool slotFileClose(bool force);
- void slotFilePrint();
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_block.cpp ./qcadlib/src/engine/rs_block.cpp
---- ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_block.cpp Tue Nov 22 12:52:35 2005
-+++ ./qcadlib/src/engine/rs_block.cpp Sat Aug 11 22:47:35 2007
-@@ -78,10 +78,10 @@
- }
-
-
--bool RS_Block::save() {
-+bool RS_Block::save(bool isAutoSave) {
- RS_Graphic* g = getGraphic();
- if (g!=NULL) {
-- return g->save();
-+ return g->save(isAutoSave);
- } else {
- return false;
- }
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_block.h ./qcadlib/src/engine/rs_block.h
---- ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_block.h Tue Nov 22 12:52:38 2005
-+++ ./qcadlib/src/engine/rs_block.h Sat Aug 11 22:47:35 2007
-@@ -128,7 +128,7 @@
- /**
- * Reimplementation from RS_Document. Saves the parent graphic document.
- */
-- virtual bool save();
-+ virtual bool save(bool isAutoSave = false);
-
- /**
- * Reimplementation from RS_Document. Does nothing.
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_document.cpp ./qcadlib/src/engine/rs_document.cpp
---- ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_document.cpp Tue Nov 22 12:52:38 2005
-+++ ./qcadlib/src/engine/rs_document.cpp Sat Aug 11 22:47:35 2007
-@@ -40,6 +40,7 @@
- RS_DEBUG->print("RS_Document::RS_Document() ");
-
- filename = "";
-+ autosaveFilename = "Unnamed";
- formatType = RS2::FormatUnknown;
- setModified(false);
- RS_Color col(RS2::FlagByLayer);
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_document.h ./qcadlib/src/engine/rs_document.h
---- ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_document.h Tue Nov 22 12:52:32 2005
-+++ ./qcadlib/src/engine/rs_document.h Sat Aug 11 22:47:35 2007
-@@ -53,7 +53,7 @@
- virtual RS_BlockList* getBlockList() = 0;
-
- virtual void newDoc() = 0;
-- virtual bool save() = 0;
-+ virtual bool save(bool isAutoSave = false) = 0;
- virtual bool saveAs(const RS_String &filename, RS2::FormatType type) = 0;
- virtual bool open(const RS_String &filename, RS2::FormatType type) = 0;
-
-@@ -98,6 +98,13 @@
- }
-
- /**
-+ * @return Auto-save file name of the document currently loaded.
-+ */
-+ RS_String getAutoSaveFilename() const {
-+ return autosaveFilename;
-+ }
-+
-+ /**
- * Sets file name for the document currently loaded.
- */
- void setFilename(const RS_String& fn) {
-@@ -136,6 +143,8 @@
- RS_Pen activePen;
- /** File name of the document or empty for a new document. */
- RS_String filename;
-+ /** Auto-save file name of document. */
-+ RS_String autosaveFilename;
- /** Format type */
- RS2::FormatType formatType;
- };
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_graphic.cpp ./qcadlib/src/engine/rs_graphic.cpp
---- ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_graphic.cpp Tue Nov 22 12:52:32 2005
-+++ ./qcadlib/src/engine/rs_graphic.cpp Sat Aug 11 22:47:57 2007
-@@ -24,6 +24,8 @@
- **
- **********************************************************************/
-
-+#include <qfile.h>
-+#include <qfileinfo.h>
-
- #include "rs_graphic.h"
-
-@@ -178,21 +180,46 @@
- /**
- * Saves this graphic with the current filename and settings.
- */
--bool RS_Graphic::save() {
-+bool RS_Graphic::save(bool isAutoSave) {
-
- bool ret = false;
-+
-
- RS_DEBUG->print("RS_Graphic::save");
-- RS_DEBUG->print(" file: %s", filename.latin1());
-- RS_DEBUG->print(" format: %d", (int)formatType);
--
-- RS_DEBUG->print(" export...");
-- ret = RS_FILEIO->fileExport(*this, filename, formatType);
--
-- if (ret) {
-- setModified(false);
-- layerList.setModified(false);
-- blockList.setModified(false);
-+ if (isAutoSave && !isModified()) {
-+ RS_DEBUG->print(" autsave and not modified => not saved");
-+ ret = true;
-+ } else {
-+ const RS_String *actualName;
-+ RS2::FormatType actualType;
-+
-+ actualType = formatType;
-+ if (isAutoSave) {
-+ actualName = new QString(autosaveFilename);
-+ if (formatType == RS2::FormatUnknown) {
-+ actualType = RS2::FormatDXF;
-+ }
-+ } else {
-+ actualName = new QString(filename);
-+ }
-+ RS_DEBUG->print(" file: %s", actualName->latin1());
-+ RS_DEBUG->print(" format: %d", (int)actualType);
-+ RS_DEBUG->print(" export...");
-+ ret = RS_FILEIO->fileExport(*this, *actualName, actualType);
-+ delete actualName;
-+
-+ if (ret && !isAutoSave) {
-+ setModified(false);
-+ layerList.setModified(false);
-+ blockList.setModified(false);
-+ // Remove old autosave file
-+ QFile f(autosaveFilename);
-+ if (f.exists()) {
-+ RS_DEBUG->print(" removing old autosave file %s",
-+ autosaveFilename.latin1());
-+ f.remove();
-+ }
-+ }
- }
-
- RS_DEBUG->print("RS_Graphic::save ok");
-@@ -210,9 +237,28 @@
- RS_DEBUG->print("RS_Graphic::saveAs");
-
- this->filename = filename;
-+ RS_String *oldAutosaveName = new RS_String(autosaveFilename);
-+ QFileInfo finfo(filename);
-+ // Construct new autosave filename by prepending # to the filename
-+ // part, using the same directory as the destination file.
-+ this->autosaveFilename = finfo.dirPath() + "/#" + finfo.fileName();
- this->formatType = type;
-
-- return save();
-+ bool ret = save();
-+
-+ if (ret) {
-+ // save was successful, remove old autosave file
-+ QFile f(*oldAutosaveName);
-+ if (f.exists()) {
-+ RS_DEBUG->print("removing old autosave file %s",
-+ oldAutosaveName->latin1());
-+ f.remove();
-+ }
-+ }
-+
-+ delete oldAutosaveName;
-+
-+ return ret;
- }
-
-
-@@ -226,6 +272,10 @@
- bool ret = false;
-
- this->filename = filename;
-+ QFileInfo finfo(filename);
-+ // Construct new autosave filename by prepending # to the filename
-+ // part, using the same directory as the destination file.
-+ this->autosaveFilename = finfo.dirPath() + "/#" + finfo.fileName();
-
- // clean all:
- newDoc();
-diff -ru ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_graphic.h ./qcadlib/src/engine/rs_graphic.h
---- ../qcad-2.0.5.0-1-community.src.orig/qcadlib/src/engine/rs_graphic.h Tue Nov 22 12:52:38 2005
-+++ ./qcadlib/src/engine/rs_graphic.h Sat Aug 11 22:47:35 2007
-@@ -69,7 +69,7 @@
- }
-
- virtual void newDoc();
-- virtual bool save();
-+ virtual bool save(bool isAutoSave = false);
- virtual bool saveAs(const RS_String& filename, RS2::FormatType type);
- virtual bool open(const RS_String& filename, RS2::FormatType type);
-