diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index 0d1099183936106165ee0f4cb1bd06aa9860e3b4..fdffcbffb74f468deb9e2ebdce369802f6a9bf97 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -363,8 +363,7 @@ public: BinEditor(BinEditorWidget *widget) { setWidget(widget); - m_widget = widget; - m_file = new BinEditorDocument(m_widget); + m_file = new BinEditorDocument(widget); m_context.add(Core::Constants::K_DEFAULT_BINARY_EDITOR_ID); m_context.add(Constants::C_BINEDITOR); m_addressEdit = new QLineEdit; @@ -387,13 +386,14 @@ public: widget->setEditor(this); - connect(m_widget, SIGNAL(cursorPositionChanged(int)), SLOT(updateCursorPosition(int))); + connect(widget, SIGNAL(cursorPositionChanged(int)), SLOT(updateCursorPosition(int))); connect(m_addressEdit, SIGNAL(editingFinished()), SLOT(jumpToAddress())); - connect(m_widget, SIGNAL(modificationChanged(bool)), m_file, SIGNAL(changed())); - updateCursorPosition(m_widget->cursorPosition()); + connect(widget, SIGNAL(modificationChanged(bool)), m_file, SIGNAL(changed())); + updateCursorPosition(widget->cursorPosition()); } - ~BinEditor() { + ~BinEditor() + { delete m_widget; } @@ -407,16 +407,22 @@ public: private slots: void updateCursorPosition(int position) { - m_addressEdit->setText(QString::number(m_widget->baseAddress() + position, 16)); + m_addressEdit->setText(QString::number(editorWidget()->baseAddress() + position, 16)); } void jumpToAddress() { - m_widget->jumpToAddress(m_addressEdit->text().toULongLong(0, 16)); - updateCursorPosition(m_widget->cursorPosition()); + editorWidget()->jumpToAddress(m_addressEdit->text().toULongLong(0, 16)); + updateCursorPosition(editorWidget()->cursorPosition()); + } + +private: + inline BinEditorWidget *editorWidget() const + { + QTC_ASSERT(qobject_cast<BinEditorWidget *>(m_widget.data()), return 0); + return static_cast<BinEditorWidget *>(m_widget.data()); } private: - BinEditorWidget *m_widget; BinEditorDocument *m_file; QToolBar *m_toolBar; QLineEdit *m_addressEdit;