Undo/redo fix

This commit is contained in:
Jakub Melka
2020-05-03 18:52:22 +02:00
parent f604dd77b2
commit f70ff229ac
11 changed files with 189 additions and 36 deletions

View File

@@ -517,7 +517,16 @@ public:
m_optionalContentActivity(optionalContentActivity),
m_flags(Reset)
{
Q_ASSERT(document);
Q_ASSERT(m_document);
}
explicit inline PDFModifiedDocument(PDFDocumentPointer document, PDFOptionalContentActivity* optionalContentActivity) :
m_documentPointer(qMove(document)),
m_document(m_documentPointer.data()),
m_optionalContentActivity(optionalContentActivity),
m_flags(Reset)
{
Q_ASSERT(m_document);
}
explicit inline PDFModifiedDocument(PDFDocument* document, PDFOptionalContentActivity* optionalContentActivity, ModificationFlags flags) :
@@ -525,19 +534,31 @@ public:
m_optionalContentActivity(optionalContentActivity),
m_flags(flags)
{
Q_ASSERT(document);
Q_ASSERT(m_document);
}
explicit inline PDFModifiedDocument(PDFDocumentPointer document, PDFOptionalContentActivity* optionalContentActivity, ModificationFlags flags) :
m_documentPointer(qMove(document)),
m_document(m_documentPointer.data()),
m_optionalContentActivity(optionalContentActivity),
m_flags(flags)
{
Q_ASSERT(m_document);
}
PDFDocument* getDocument() const { return m_document; }
PDFOptionalContentActivity* getOptionalContentActivity() const { return m_optionalContentActivity; }
void setOptionalContentActivity(PDFOptionalContentActivity* optionalContentActivity) { m_optionalContentActivity = optionalContentActivity; }
ModificationFlags getFlags() const { return m_flags; }
bool hasReset() const { return m_flags.testFlag(Reset); }
bool hasFlag(ModificationFlag flag) const { return m_flags.testFlag(flag); }
operator PDFDocument*() const { return m_document; }
operator PDFDocumentPointer() const { return m_documentPointer; }
private:
PDFDocumentPointer m_documentPointer;
PDFDocument* m_document = nullptr;
PDFOptionalContentActivity* m_optionalContentActivity = nullptr;
ModificationFlags m_flags = Reset;

View File

@@ -770,7 +770,7 @@ void PDFFormManager::setFormFieldValue(PDFFormField::SetValueParameters paramete
if (modifier.finalize())
{
emit documentModified(modifier.getDocument(), modifier.getFlags());
emit documentModified(PDFModifiedDocument(modifier.getDocument(), nullptr, modifier.getFlags()));
}
}
}

View File

@@ -705,7 +705,7 @@ public:
signals:
void actionTriggered(const PDFAction* action);
void documentModified(PDFDocumentPointer document, PDFModifiedDocument::ModificationFlags flags);
void documentModified(PDFModifiedDocument document);
private:
void updateFormWidgetEditors();