Undo: clear undo history on load / import

Keeping undo-history across load makes little sense. The user was
expressly reminded that they have unsaved work.

For import (from other logs or the dive-computer) an undo-functionality
would be desirable. Nevertheless, this is rather complex since
new and old dives are merged. Implementation would require a finer
backend<->undocommand interface. Thus, leave this for now until more
experience with the undo system is acquired.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-07-21 21:29:49 +02:00 committed by Dirk Hohndel
parent 014c04f8bd
commit c30efc95d4
3 changed files with 7 additions and 0 deletions

View file

@ -7,6 +7,7 @@
#include <QDrag>
#include <QMimeData>
#include <QRegExp>
#include <QUndoStack>
#include "core/qthelper.h"
#include "core/import-csv.h"
@ -1008,6 +1009,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
}
process_imported_dives(&table, false, false);
MainWindow::instance()->undoStack->clear();
MainWindow::instance()->refreshDisplay();
}

View file

@ -14,6 +14,7 @@
#include <QMessageBox>
#include <QShortcut>
#include <QTimer>
#include <QUndoStack>
DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f),
downloading(false),
@ -507,6 +508,7 @@ void DownloadFromDCWidget::on_ok_clicked()
// first new dive) and select it again after processing all the dives
int uniqId = downloadTable.dives[downloadTable.nr - 1]->id;
process_imported_dives(&downloadTable, preferDownloaded(), true);
MainWindow::instance()->undoStack->clear();
// after process_imported_dives does any merging or resorting needed, we need
// to recreate the model for the dive list so we can select the newest dive
MainWindow::instance()->recreateDiveList();

View file

@ -618,6 +618,7 @@ void MainWindow::on_actionCloudstorageopen_triggered()
if (!parse_file(fileNamePtr.data(), &dive_table))
setCurrentFile(fileNamePtr.data());
process_loaded_dives();
undoStack->clear();
hideProgressBar();
refreshDisplay();
}
@ -1740,6 +1741,7 @@ void MainWindow::importFiles(const QStringList fileNames)
parse_file(fileNamePtr.data(), &table);
}
process_imported_dives(&table, false, false);
undoStack->clear();
refreshDisplay();
}
@ -1762,6 +1764,7 @@ void MainWindow::loadFiles(const QStringList fileNames)
hideProgressBar();
updateRecentFiles();
process_loaded_dives();
undoStack->clear();
refreshDisplay();