Merge pull request #702 from andreasb242/master

Mark emergency restored document as changed
presentation
andreasb242 7 years ago committed by GitHub
commit 022930d9f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/control/XournalMain.cpp
  2. 36
      src/undo/EmergencySaveRestore.cpp
  3. 32
      src/undo/EmergencySaveRestore.h
  4. 2
      src/util/XournalTypeList.h

@ -8,6 +8,7 @@
#include "gui/XournalView.h"
#include "pdf/base/XojPdfExport.h"
#include "pdf/base/XojPdfExportFactory.h"
#include "undo/EmergencySaveRestore.h"
#include "xojfile/LoadHandler.h"
#include <config.h>
@ -187,6 +188,9 @@ void XournalMain::checkForEmergencySave(Control* control) {
if (control->openFile(filename, -1, true))
{
control->getDocument()->setFilename("");
// Make sure the document is changed, there is a question to ask for save
control->getUndoRedoHandler()->addUndoAction(new EmergencySaveRestore());
control->updateWindowTitle();
g_unlink(filename.c_str());
}

@ -0,0 +1,36 @@
#include "EmergencySaveRestore.h"
#include <i18n.h>
EmergencySaveRestore::EmergencySaveRestore() : UndoAction("EmergencySaveRestore")
{
XOJ_INIT_TYPE(EmergencySaveRestore);
}
EmergencySaveRestore::~EmergencySaveRestore()
{
XOJ_CHECK_TYPE(EmergencySaveRestore);
XOJ_RELEASE_TYPE(EmergencySaveRestore);
}
bool EmergencySaveRestore::redo(Control* control)
{
XOJ_CHECK_TYPE(EmergencySaveRestore);
// Does nothing, only used to mark the document as changed
return true;
}
bool EmergencySaveRestore::undo(Control* control)
{
XOJ_CHECK_TYPE(EmergencySaveRestore);
// Does nothing, only used to mark the document as changed
return true;
}
string EmergencySaveRestore::getText()
{
XOJ_CHECK_TYPE(EmergencySaveRestore);
return _("Emergency saved document");
}

@ -0,0 +1,32 @@
/*
* Xournal++
*
* Element used to mark the document as changed, so it is changed after restore.
* Without this, it's unchanged and does not ask for save
*
* @author Xournal++ Team
* https://github.com/xournalpp/xournalpp
*
* @license GNU GPLv2 or later
*/
#pragma once
#include "UndoAction.h"
#include <XournalType.h>
class EmergencySaveRestore : public UndoAction
{
public:
EmergencySaveRestore();
virtual ~EmergencySaveRestore();
public:
virtual bool undo(Control* control);
virtual bool redo(Control* control);
virtual string getText();
private:
XOJ_TYPE_ATTRIB;
};

@ -262,7 +262,7 @@ XOJ_DECLARE_TYPE(Path, 251);
XOJ_DECLARE_TYPE(FillUndoAction, 252);
XOJ_DECLARE_TYPE(FillUndoActionEntry, 253);
XOJ_DECLARE_TYPE(MoveLayerUndoAction, 254);
XOJ_DECLARE_TYPE(EmergencySaveRestore, 255);

Loading…
Cancel
Save