GUI: Don't backup empty database...

git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1936 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
matlabbe
2014-10-28 14:13:53 +00:00
parent 9ffd103e69
commit eace13b7a8
2 changed files with 7 additions and 1 deletions

View File

@@ -255,6 +255,7 @@ private:
bool _processingStatistics; bool _processingStatistics;
bool _odometryReceived; bool _odometryReceived;
QString _openedDatabasePath; QString _openedDatabasePath;
bool _emptyNewDatabase;
QMap<int, Signature> _cachedSignatures; QMap<int, Signature> _cachedSignatures;
QMap<int, int> _mapIds; QMap<int, int> _mapIds;

View File

@@ -116,6 +116,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent) :
_processingStatistics(false), _processingStatistics(false),
_odometryReceived(false), _odometryReceived(false),
_openedDatabasePath(""), _openedDatabasePath(""),
_emptyNewDatabase(true),
_odometryCorrection(Transform::getIdentity()), _odometryCorrection(Transform::getIdentity()),
_lastOdometryProcessed(true), _lastOdometryProcessed(true),
_oneSecondTimer(0), _oneSecondTimer(0),
@@ -1441,7 +1442,8 @@ void MainWindow::processRtabmapEventInit(int status, const QString & info)
else if((RtabmapEventInit::Status)status == RtabmapEventInit::kClosed) else if((RtabmapEventInit::Status)status == RtabmapEventInit::kClosed)
{ {
_initProgressDialog->setValue(_initProgressDialog->maximumSteps()); _initProgressDialog->setValue(_initProgressDialog->maximumSteps());
if(_openedDatabasePath.compare(_preferencesDialog->getWorkingDirectory()+QDir::separator()+Parameters::getDefaultDatabaseName().c_str()) == 0) if(_openedDatabasePath.compare(_preferencesDialog->getWorkingDirectory()+QDir::separator()+Parameters::getDefaultDatabaseName().c_str()) == 0 &&
!_emptyNewDatabase)
{ {
// Temp database used, automatically backup with unique name (timestamp) // Temp database used, automatically backup with unique name (timestamp)
QString newName = _preferencesDialog->getWorkingDirectory()+QDir::separator()+(QString("rtabmap_%1.db").arg(QDateTime::currentDateTime().toString("yyMMdd-hhmmsszzz"))); QString newName = _preferencesDialog->getWorkingDirectory()+QDir::separator()+(QString("rtabmap_%1.db").arg(QDateTime::currentDateTime().toString("yyMMdd-hhmmsszzz")));
@@ -1947,6 +1949,7 @@ void MainWindow::newDatabase()
} }
} }
_openedDatabasePath = databasePath.c_str(); _openedDatabasePath = databasePath.c_str();
_emptyNewDatabase = true;
this->post(new RtabmapEventCmd(RtabmapEventCmd::kCmdInit, databasePath, 0, _preferencesDialog->getAllParameters())); this->post(new RtabmapEventCmd(RtabmapEventCmd::kCmdInit, databasePath, 0, _preferencesDialog->getAllParameters()));
} }
@@ -2304,6 +2307,8 @@ void MainWindow::startDetection()
"progress will not be shown in the GUI.")); "progress will not be shown in the GUI."));
} }
_emptyNewDatabase = false; // if a new database is used, it won't be empty anymore...
emit stateChanged(kDetecting); emit stateChanged(kDetecting);
} }