traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src/core Project.cpp


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src/core Project.cpp
Date: Wed, 25 Apr 2007 19:49:30 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/04/25 19:49:30

Modified files:
        src/core       : Project.cpp 

Log message:
        * automatically try to load the backup project file if the project file 
could not  
        be opened, or the xml parser failed to parse the file 

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.cpp?cvsroot=traverso&r1=1.30&r2=1.31

Patches:
Index: Project.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- Project.cpp 23 Apr 2007 11:52:24 -0000      1.30
+++ Project.cpp 25 Apr 2007 19:49:30 -0000      1.31
@@ -128,28 +128,58 @@
        QDomDocument doc("Project");
        
        QFile file;
+       QString filename;
        if (projectfile.isEmpty()) {
-               file.setFileName(rootDir + "/project.tpf");
+               filename = rootDir + "/project.tpf";
+               file.setFileName(filename);
        } else {
-               file.setFileName(projectfile);
+               filename = projectfile;
+               file.setFileName(filename);
        }
 
        if (!file.open(QIODevice::ReadOnly))
        {
                file.close();
-               info().critical(tr("Project %1: Cannot open project properties 
file! (%2)")
+               info().critical(tr("Project %1: Cannot open project.tpf file! 
(%2)")
                               .arg(title).arg(file.errorString()));
+               
+               QFile backup(filename + "~");
+               backup.copy(filename);
+               if (QFile::exists(filename.append("~"))) {
+                       return load(filename);
+               } else {
+                       info().information(tr("No backup project file 
available, unable to restore project"));
                return -1;
        }
+       }
 
        QString errorMsg;
        if (!doc.setContent(&file, &errorMsg))
        {
-               file.close();
                info().critical(tr("Project %1: Failed to parse project.tpf 
file! (%2)")
                                .arg(title).arg(errorMsg));
+               
+               file.remove();
+               file.close();
+               if (! filename.contains("~")) {
+                       // Trying to load backup!
+                       QFile backup(filename + "~");
+                       backup.copy(filename);
+                       if (QFile::exists(filename.append("~"))) {
+                               return load(filename);
+                       } else {
+                               info().information(tr("No backup project file 
available, unable to restore project"));
                return -1;
        }
+               } else {
+                       return -1;
+               }
+       }
+       
+       if (filename.contains("~")) {
+               info().information(tr("Project file restored from older version 
(%1)")
+                               
.arg(QFileInfo(filename).lastModified().toString()));
+       }
 
        file.close();
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]