diff --git a/src/plugins/bineditor/bineditor.h b/src/plugins/bineditor/bineditor.h index c9dfb1b6320..f8e74331250 100644 --- a/src/plugins/bineditor/bineditor.h +++ b/src/plugins/bineditor/bineditor.h @@ -63,6 +63,8 @@ public: Q_INVOKABLE void setSizes(quint64 startAddr, int range, int blockSize = 4096); int dataBlockSize() const { return m_blockSize; } + QByteArray contents() const { return dataMid(0, m_size); } + Q_INVOKABLE void addData(quint64 block, const QByteArray &data); bool newWindowRequestAllowed() const { return m_canRequestNewWindow; } diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index 9f12867b7a0..1d686b5912d 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -232,13 +232,19 @@ public: this, SLOT(provideData(quint64))); connect(m_widget, SIGNAL(newRangeRequested(quint64)), this, SLOT(provideNewRange(quint64))); + connect(m_widget, &BinEditorWidget::dataChanged, this, &IDocument::contentsChanged); + } + + QByteArray contents() const override + { + return m_widget->contents(); } bool setContents(const QByteArray &contents) override { - if (!contents.isEmpty()) - return false; m_widget->clear(); + m_widget->setSizes(0, contents.length(), contents.length()); + m_widget->addData(0, contents); return true; }