mobile UI: make the text of the undo/redo action available to QML

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2020-01-11 15:26:13 -08:00
parent 41072cf48f
commit 8e6cc9b8d0
2 changed files with 32 additions and 1 deletions

View file

@ -16,6 +16,7 @@
#include <QFile>
#include <QtConcurrent>
#include <QFuture>
#include <QUndoStack>
#include <QBluetoothLocalDevice>
@ -269,6 +270,10 @@ QMLManager::QMLManager() : m_locationServiceEnabled(false),
// careful - changing verbose at runtime isn't enough (of course that could be added if we want it)
if (verbose)
connect(&diveListNotifier, &DiveListNotifier::divesChanged, this, &QMLManager::divesChanged);
// get updates to the undo/redo texts
connect(Command::getUndoStack(), &QUndoStack::undoTextChanged, this, &QMLManager::undoTextChanged);
connect(Command::getUndoStack(), &QUndoStack::redoTextChanged, this, &QMLManager::redoTextChanged);
}
void QMLManager::applicationStateChanged(Qt::ApplicationState state)
@ -1392,7 +1397,13 @@ void QMLManager::saveChangesCloud(bool forceRemoteSync)
void QMLManager::undoDelete(int)
{
undoAction->activate(QAction::Trigger);
Command::getUndoStack()->undo();
changesNeedSaving();
}
void QMLManager::redo()
{
Command::getUndoStack()->redo();
changesNeedSaving();
}
@ -2199,3 +2210,15 @@ void QMLManager::divesChanged(const QVector<dive *> &dives, DiveField field)
// invalidate_dive_cache(d);
}
}
QString QMLManager::getUndoText() const
{
QString undoText = Command::getUndoStack()->undoText();
return undoText;
}
QString QMLManager::getRedoText() const
{
QString redoText = Command::getUndoStack()->redoText();
return redoText;
}