From c19ec8c65aebdaf224a1f62c7eca57525b5339ce Mon Sep 17 00:00:00 2001 From: blacksun Date: Fri, 1 Jun 2018 18:33:08 +0000 Subject: [PATCH] Bugfix : 1- When open a .qet by double click on it, QET ask user for open the backup file, of this .qet. 2- On windows, if user open a project from the recent files menu, when close QET the file is deleted :( user lose her work git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5383 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/qetapp.cpp | 14 ++++++++++---- sources/qetproject.cpp | 21 ++++++++++++--------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp index 07cd90469..2d68fde7e 100644 --- a/sources/qetapp.cpp +++ b/sources/qetapp.cpp @@ -150,10 +150,7 @@ QETApp::~QETApp() QStringList extension_filter("*.qet"); QStringList list = dir.entryList(extension_filter); for(QString str : list) - { - QFile file(dir.path() + "/" + str); - file.remove(); - } + dir.remove(str); } } @@ -1644,6 +1641,15 @@ void QETApp::checkBackupFiles() { QStringList extension_filter("*.qet"); QStringList list = dir.entryList(extension_filter); + + //Remove from the list, the backup file of registred project + for(QETProject *project : registeredProjects().values()) + if(!project->filePath().isEmpty()) + { + QFileInfo info(project->filePath()); + list.removeOne(info.fileName()); + } + if(list.isEmpty()) return; diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp index 17c21cebb..aa451a515 100644 --- a/sources/qetproject.cpp +++ b/sources/qetproject.cpp @@ -166,12 +166,13 @@ QETProject::~QETProject() //Project is closed without crash, we can safely remove the backup file. if (!m_file_path.isEmpty()) { - QDir dir(QETApp::configDir() + "/backup"); + QDir dir(QETApp::configDir() + "backup"); if(!dir.exists()) return; - QString project_name = m_file_path.split("/").last(); - dir.remove(project_name); + QFileInfo info(m_file_path); + if(info.exists()) + dir.remove(info.fileName()); } } @@ -1656,7 +1657,7 @@ void QETProject::writeBackup() if(m_file_path.isEmpty()) return; - QDir dir(QETApp::configDir() + "/backup"); + QDir dir(QETApp::configDir() + "backup"); if(!dir.exists()) { dir.cdUp(); @@ -1664,11 +1665,13 @@ void QETProject::writeBackup() dir.cd("backup"); } - QDomDocument xml_project; - xml_project.appendChild(xml_project.importNode(toXml().documentElement(), true)); - - QString project_name = m_file_path.split("/").last(); - QET::writeXmlFile(xml_project, dir.absoluteFilePath(project_name)); + QFileInfo info(m_file_path); + if(info.exists()) + { + QDomDocument xml_project; + xml_project.appendChild(xml_project.importNode(toXml().documentElement(), true)); + QET::writeXmlFile(xml_project, dir.absoluteFilePath(info.fileName())); + } } /**