forked from qt-creator/qt-creator
DiffEditor: Fix editor actions
The text editor widgets all need a TextEditorActionHandler that takes care of the editor actions for them. Each text editor needs its own context, so the editor with focus receives the actions. This does not happen automatically for these text editors, since the diff editor manages these itself. Task-number: QTCREATORBUG-9445 Change-Id: Ib42f095ec23550e401e8ee9b36f3f49517a22877 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -74,6 +74,8 @@ class DescriptionEditorWidget : public TextEditorWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DescriptionEditorWidget(QWidget *parent = 0);
|
DescriptionEditorWidget(QWidget *parent = 0);
|
||||||
|
~DescriptionEditorWidget();
|
||||||
|
|
||||||
virtual QSize sizeHint() const override;
|
virtual QSize sizeHint() const override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@@ -92,6 +94,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QTextCursor m_currentCursor;
|
QTextCursor m_currentCursor;
|
||||||
|
Core::IContext *m_context;
|
||||||
};
|
};
|
||||||
|
|
||||||
DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent)
|
DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent)
|
||||||
@@ -112,6 +115,16 @@ DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent)
|
|||||||
setFrameStyle(QFrame::NoFrame);
|
setFrameStyle(QFrame::NoFrame);
|
||||||
|
|
||||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||||
|
|
||||||
|
m_context = new Core::IContext(this);
|
||||||
|
m_context->setWidget(this);
|
||||||
|
m_context->setContext(Core::Context(Constants::C_DIFF_EDITOR_DESCRIPTION));
|
||||||
|
Core::ICore::addContextObject(m_context);
|
||||||
|
}
|
||||||
|
|
||||||
|
DescriptionEditorWidget::~DescriptionEditorWidget()
|
||||||
|
{
|
||||||
|
Core::ICore::removeContextObject(m_context);
|
||||||
}
|
}
|
||||||
|
|
||||||
QSize DescriptionEditorWidget::sizeHint() const
|
QSize DescriptionEditorWidget::sizeHint() const
|
||||||
@@ -226,8 +239,11 @@ DiffEditor::DiffEditor()
|
|||||||
m_stackedWidget = new QStackedWidget(splitter);
|
m_stackedWidget = new QStackedWidget(splitter);
|
||||||
splitter->addWidget(m_stackedWidget);
|
splitter->addWidget(m_stackedWidget);
|
||||||
|
|
||||||
addView(new SideBySideView);
|
m_unifiedView = new UnifiedView;
|
||||||
addView(new UnifiedView);
|
m_sideBySideView = new SideBySideView;
|
||||||
|
|
||||||
|
addView(m_sideBySideView);
|
||||||
|
addView(m_unifiedView);
|
||||||
|
|
||||||
setWidget(splitter);
|
setWidget(splitter);
|
||||||
|
|
||||||
@@ -351,6 +367,26 @@ QWidget *DiffEditor::toolBar()
|
|||||||
return m_toolBar;
|
return m_toolBar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextEditorWidget *DiffEditor::descriptionWidget() const
|
||||||
|
{
|
||||||
|
return m_descriptionWidget;
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditorWidget *DiffEditor::unifiedEditorWidget() const
|
||||||
|
{
|
||||||
|
return m_unifiedView->textEditorWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditorWidget *DiffEditor::leftEditorWidget() const
|
||||||
|
{
|
||||||
|
return m_sideBySideView->leftEditorWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditorWidget *DiffEditor::rightEditorWidget() const
|
||||||
|
{
|
||||||
|
return m_sideBySideView->rightEditorWidget();
|
||||||
|
}
|
||||||
|
|
||||||
void DiffEditor::documentHasChanged()
|
void DiffEditor::documentHasChanged()
|
||||||
{
|
{
|
||||||
Utils::GuardLocker guard(m_ignoreChanges);
|
Utils::GuardLocker guard(m_ignoreChanges);
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ namespace Internal {
|
|||||||
class DescriptionEditorWidget;
|
class DescriptionEditorWidget;
|
||||||
class DiffEditorDocument;
|
class DiffEditorDocument;
|
||||||
class IDiffView;
|
class IDiffView;
|
||||||
|
class UnifiedView;
|
||||||
|
class SideBySideView;
|
||||||
|
|
||||||
class DiffEditor : public Core::IEditor
|
class DiffEditor : public Core::IEditor
|
||||||
{
|
{
|
||||||
@@ -59,6 +61,10 @@ public:
|
|||||||
Core::IEditor *duplicate() override;
|
Core::IEditor *duplicate() override;
|
||||||
Core::IDocument *document() override;
|
Core::IDocument *document() override;
|
||||||
QWidget *toolBar() override;
|
QWidget *toolBar() override;
|
||||||
|
TextEditor::TextEditorWidget *descriptionWidget() const;
|
||||||
|
TextEditor::TextEditorWidget *unifiedEditorWidget() const;
|
||||||
|
TextEditor::TextEditorWidget *leftEditorWidget() const;
|
||||||
|
TextEditor::TextEditorWidget *rightEditorWidget() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DiffEditor();
|
DiffEditor();
|
||||||
@@ -89,6 +95,8 @@ private:
|
|||||||
|
|
||||||
QSharedPointer<DiffEditorDocument> m_document;
|
QSharedPointer<DiffEditorDocument> m_document;
|
||||||
DescriptionEditorWidget *m_descriptionWidget;
|
DescriptionEditorWidget *m_descriptionWidget;
|
||||||
|
UnifiedView *m_unifiedView;
|
||||||
|
SideBySideView *m_sideBySideView;
|
||||||
QStackedWidget *m_stackedWidget;
|
QStackedWidget *m_stackedWidget;
|
||||||
QVector<IDiffView *> m_views;
|
QVector<IDiffView *> m_views;
|
||||||
QToolBar *m_toolBar;
|
QToolBar *m_toolBar;
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ const char DIFF_EDITOR_PLUGIN[] = "DiffEditorPlugin";
|
|||||||
const char DIFF_EDITOR_ID[] = "Diff Editor";
|
const char DIFF_EDITOR_ID[] = "Diff Editor";
|
||||||
const char DIFF_EDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("DiffEditor", "Diff Editor");
|
const char DIFF_EDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("DiffEditor", "Diff Editor");
|
||||||
const char DIFF_EDITOR_MIMETYPE[] = "text/x-patch";
|
const char DIFF_EDITOR_MIMETYPE[] = "text/x-patch";
|
||||||
|
const char C_DIFF_EDITOR_DESCRIPTION[] = "DiffEditor.Description";
|
||||||
|
const char SIDE_BY_SIDE_VIEW_ID[] = "DiffEditor.SideBySide";
|
||||||
|
const char UNIFIED_VIEW_ID[] = "DiffEditor.Unified";
|
||||||
|
|
||||||
const char G_TOOLS_DIFF[] = "QtCreator.Group.Tools.Options";
|
const char G_TOOLS_DIFF[] = "QtCreator.Group.Tools.Options";
|
||||||
|
|
||||||
const char EXPAND_BRANCHES[] = "Branches: <Expand>";
|
const char EXPAND_BRANCHES[] = "Branches: <Expand>";
|
||||||
|
|||||||
@@ -29,6 +29,8 @@
|
|||||||
#include "diffeditorfactory.h"
|
#include "diffeditorfactory.h"
|
||||||
#include "sidebysidediffeditorwidget.h"
|
#include "sidebysidediffeditorwidget.h"
|
||||||
|
|
||||||
|
#include "texteditor/texteditoractionhandler.h"
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
|
|
||||||
namespace DiffEditor {
|
namespace DiffEditor {
|
||||||
@@ -40,6 +42,26 @@ DiffEditorFactory::DiffEditorFactory(QObject *parent)
|
|||||||
setId(Constants::DIFF_EDITOR_ID);
|
setId(Constants::DIFF_EDITOR_ID);
|
||||||
setDisplayName(QCoreApplication::translate("DiffEditorFactory", Constants::DIFF_EDITOR_DISPLAY_NAME));
|
setDisplayName(QCoreApplication::translate("DiffEditorFactory", Constants::DIFF_EDITOR_DISPLAY_NAME));
|
||||||
addMimeType(Constants::DIFF_EDITOR_MIMETYPE);
|
addMimeType(Constants::DIFF_EDITOR_MIMETYPE);
|
||||||
|
auto descriptionHandler = new TextEditor::TextEditorActionHandler(
|
||||||
|
this, id(), Constants::C_DIFF_EDITOR_DESCRIPTION);
|
||||||
|
descriptionHandler->setTextEditorWidgetResolver([](Core::IEditor *e) {
|
||||||
|
return static_cast<DiffEditor *>(e)->descriptionWidget();
|
||||||
|
});
|
||||||
|
auto unifiedHandler = new TextEditor::TextEditorActionHandler(
|
||||||
|
this, id(), Constants::UNIFIED_VIEW_ID);
|
||||||
|
unifiedHandler->setTextEditorWidgetResolver([](Core::IEditor *e) {
|
||||||
|
return static_cast<DiffEditor *>(e)->unifiedEditorWidget();
|
||||||
|
});
|
||||||
|
auto leftHandler = new TextEditor::TextEditorActionHandler(
|
||||||
|
this, id(), Core::Id(Constants::SIDE_BY_SIDE_VIEW_ID).withSuffix(1));
|
||||||
|
leftHandler->setTextEditorWidgetResolver([](Core::IEditor *e) {
|
||||||
|
return static_cast<DiffEditor *>(e)->leftEditorWidget();
|
||||||
|
});
|
||||||
|
auto rightHandler = new TextEditor::TextEditorActionHandler(
|
||||||
|
this, id(), Core::Id(Constants::SIDE_BY_SIDE_VIEW_ID).withSuffix(2));
|
||||||
|
rightHandler->setTextEditorWidgetResolver([](Core::IEditor *e) {
|
||||||
|
return static_cast<DiffEditor *>(e)->rightEditorWidget();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::IEditor *DiffEditorFactory::createEditor()
|
Core::IEditor *DiffEditorFactory::createEditor()
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include "diffview.h"
|
#include "diffview.h"
|
||||||
|
|
||||||
|
#include "diffeditorconstants.h"
|
||||||
#include "diffeditordocument.h"
|
#include "diffeditordocument.h"
|
||||||
#include "diffeditoricons.h"
|
#include "diffeditoricons.h"
|
||||||
#include "unifieddiffeditorwidget.h"
|
#include "unifieddiffeditorwidget.h"
|
||||||
@@ -90,14 +91,19 @@ void IDiffView::setSyncToolTip(const QString &text)
|
|||||||
m_syncToolTip = text;
|
m_syncToolTip = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
UnifiedView::UnifiedView() : m_widget(0)
|
UnifiedView::UnifiedView()
|
||||||
{
|
{
|
||||||
setId(UNIFIED_VIEW_ID);
|
setId(Constants::UNIFIED_VIEW_ID);
|
||||||
setIcon(Icons::UNIFIED_DIFF.icon());
|
setIcon(Icons::UNIFIED_DIFF.icon());
|
||||||
setToolTip(QCoreApplication::translate("DiffEditor::UnifiedView", "Switch to Unified Diff Editor"));
|
setToolTip(QCoreApplication::translate("DiffEditor::UnifiedView", "Switch to Unified Diff Editor"));
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *UnifiedView::widget()
|
QWidget *UnifiedView::widget()
|
||||||
|
{
|
||||||
|
return textEditorWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditor::TextEditorWidget *UnifiedView::textEditorWidget()
|
||||||
{
|
{
|
||||||
if (!m_widget) {
|
if (!m_widget) {
|
||||||
m_widget = new UnifiedDiffEditorWidget;
|
m_widget = new UnifiedDiffEditorWidget;
|
||||||
@@ -152,7 +158,7 @@ void UnifiedView::setSync(bool sync)
|
|||||||
|
|
||||||
SideBySideView::SideBySideView() : m_widget(0)
|
SideBySideView::SideBySideView() : m_widget(0)
|
||||||
{
|
{
|
||||||
setId(SIDE_BY_SIDE_VIEW_ID);
|
setId(Constants::SIDE_BY_SIDE_VIEW_ID);
|
||||||
setIcon(Icons::SIDEBYSIDE_DIFF.icon());
|
setIcon(Icons::SIDEBYSIDE_DIFF.icon());
|
||||||
setToolTip(QCoreApplication::translate("DiffEditor::SideBySideView",
|
setToolTip(QCoreApplication::translate("DiffEditor::SideBySideView",
|
||||||
"Switch to Side By Side Diff Editor"));
|
"Switch to Side By Side Diff Editor"));
|
||||||
@@ -170,6 +176,18 @@ QWidget *SideBySideView::widget()
|
|||||||
return m_widget;
|
return m_widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextEditor::TextEditorWidget *SideBySideView::leftEditorWidget()
|
||||||
|
{
|
||||||
|
widget(); // ensure widget creation
|
||||||
|
return m_widget->leftEditorWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditor::TextEditorWidget *SideBySideView::rightEditorWidget()
|
||||||
|
{
|
||||||
|
widget(); // ensure widget creation
|
||||||
|
return m_widget->rightEditorWidget();
|
||||||
|
}
|
||||||
|
|
||||||
void SideBySideView::setDocument(DiffEditorDocument *document)
|
void SideBySideView::setDocument(DiffEditorDocument *document)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_widget, return);
|
QTC_ASSERT(m_widget, return);
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
|
|
||||||
QT_FORWARD_DECLARE_CLASS(QWidget)
|
QT_FORWARD_DECLARE_CLASS(QWidget)
|
||||||
|
|
||||||
|
namespace TextEditor { class TextEditorWidget; }
|
||||||
|
|
||||||
namespace DiffEditor {
|
namespace DiffEditor {
|
||||||
|
|
||||||
class DiffEditorController;
|
class DiffEditorController;
|
||||||
@@ -44,9 +46,6 @@ class DiffEditorDocument;
|
|||||||
class SideBySideDiffEditorWidget;
|
class SideBySideDiffEditorWidget;
|
||||||
class UnifiedDiffEditorWidget;
|
class UnifiedDiffEditorWidget;
|
||||||
|
|
||||||
const char SIDE_BY_SIDE_VIEW_ID[] = "SideBySide";
|
|
||||||
const char UNIFIED_VIEW_ID[] = "Unified";
|
|
||||||
|
|
||||||
class IDiffView : public QObject
|
class IDiffView : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -96,6 +95,8 @@ public:
|
|||||||
UnifiedView();
|
UnifiedView();
|
||||||
|
|
||||||
QWidget *widget();
|
QWidget *widget();
|
||||||
|
TextEditor::TextEditorWidget *textEditorWidget();
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document);
|
void setDocument(DiffEditorDocument *document);
|
||||||
|
|
||||||
void beginOperation();
|
void beginOperation();
|
||||||
@@ -106,7 +107,7 @@ public:
|
|||||||
void setSync(bool sync);
|
void setSync(bool sync);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UnifiedDiffEditorWidget *m_widget;
|
UnifiedDiffEditorWidget *m_widget = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SideBySideView : public IDiffView
|
class SideBySideView : public IDiffView
|
||||||
@@ -117,6 +118,9 @@ public:
|
|||||||
SideBySideView();
|
SideBySideView();
|
||||||
|
|
||||||
QWidget *widget();
|
QWidget *widget();
|
||||||
|
TextEditor::TextEditorWidget *leftEditorWidget();
|
||||||
|
TextEditor::TextEditorWidget *rightEditorWidget();
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document);
|
void setDocument(DiffEditorDocument *document);
|
||||||
|
|
||||||
void beginOperation();
|
void beginOperation();
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include "sidebysidediffeditorwidget.h"
|
#include "sidebysidediffeditorwidget.h"
|
||||||
#include "selectabletexteditorwidget.h"
|
#include "selectabletexteditorwidget.h"
|
||||||
|
#include "diffeditorconstants.h"
|
||||||
#include "diffeditordocument.h"
|
#include "diffeditordocument.h"
|
||||||
#include "diffutils.h"
|
#include "diffutils.h"
|
||||||
|
|
||||||
@@ -40,6 +41,7 @@
|
|||||||
#include <texteditor/fontsettings.h>
|
#include <texteditor/fontsettings.h>
|
||||||
#include <texteditor/displaysettings.h>
|
#include <texteditor/displaysettings.h>
|
||||||
|
|
||||||
|
#include <coreplugin/icore.h>
|
||||||
#include <coreplugin/minisplitter.h>
|
#include <coreplugin/minisplitter.h>
|
||||||
|
|
||||||
#include <utils/tooltip/tooltip.h>
|
#include <utils/tooltip/tooltip.h>
|
||||||
@@ -556,6 +558,31 @@ SideBySideDiffEditorWidget::SideBySideDiffEditorWidget(QWidget *parent)
|
|||||||
l->setMargin(0);
|
l->setMargin(0);
|
||||||
l->addWidget(m_splitter);
|
l->addWidget(m_splitter);
|
||||||
setFocusProxy(m_rightEditor);
|
setFocusProxy(m_rightEditor);
|
||||||
|
|
||||||
|
m_leftContext = new IContext(this);
|
||||||
|
m_leftContext->setWidget(m_leftEditor);
|
||||||
|
m_leftContext->setContext(Core::Context(Core::Id(Constants::SIDE_BY_SIDE_VIEW_ID).withSuffix(1)));
|
||||||
|
Core::ICore::addContextObject(m_leftContext);
|
||||||
|
m_rightContext = new IContext(this);
|
||||||
|
m_rightContext->setWidget(m_rightEditor);
|
||||||
|
m_rightContext->setContext(Core::Context(Core::Id(Constants::SIDE_BY_SIDE_VIEW_ID).withSuffix(2)));
|
||||||
|
Core::ICore::addContextObject(m_rightContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
SideBySideDiffEditorWidget::~SideBySideDiffEditorWidget()
|
||||||
|
{
|
||||||
|
Core::ICore::removeContextObject(m_leftContext);
|
||||||
|
Core::ICore::removeContextObject(m_rightContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditorWidget *SideBySideDiffEditorWidget::leftEditorWidget() const
|
||||||
|
{
|
||||||
|
return m_leftEditor;
|
||||||
|
}
|
||||||
|
|
||||||
|
TextEditorWidget *SideBySideDiffEditorWidget::rightEditorWidget() const
|
||||||
|
{
|
||||||
|
return m_rightEditor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SideBySideDiffEditorWidget::setDocument(DiffEditorDocument *document)
|
void SideBySideDiffEditorWidget::setDocument(DiffEditorDocument *document)
|
||||||
|
|||||||
@@ -30,7 +30,12 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QTextCharFormat>
|
#include <QTextCharFormat>
|
||||||
|
|
||||||
namespace TextEditor { class FontSettings; }
|
namespace Core { class IContext; }
|
||||||
|
|
||||||
|
namespace TextEditor {
|
||||||
|
class FontSettings;
|
||||||
|
class TextEditorWidget;
|
||||||
|
}
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QMenu;
|
class QMenu;
|
||||||
@@ -52,6 +57,10 @@ class SideBySideDiffEditorWidget : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit SideBySideDiffEditorWidget(QWidget *parent = 0);
|
explicit SideBySideDiffEditorWidget(QWidget *parent = 0);
|
||||||
|
~SideBySideDiffEditorWidget();
|
||||||
|
|
||||||
|
TextEditor::TextEditorWidget *leftEditorWidget() const;
|
||||||
|
TextEditor::TextEditorWidget *rightEditorWidget() const;
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document);
|
void setDocument(DiffEditorDocument *document);
|
||||||
DiffEditorDocument *diffDocument() const;
|
DiffEditorDocument *diffDocument() const;
|
||||||
@@ -98,6 +107,8 @@ private:
|
|||||||
bool m_horizontalSync = false;
|
bool m_horizontalSync = false;
|
||||||
|
|
||||||
QTextCharFormat m_spanLineFormat;
|
QTextCharFormat m_spanLineFormat;
|
||||||
|
Core::IContext *m_leftContext;
|
||||||
|
Core::IContext *m_rightContext;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "unifieddiffeditorwidget.h"
|
#include "unifieddiffeditorwidget.h"
|
||||||
|
|
||||||
|
#include "diffeditorconstants.h"
|
||||||
#include "diffeditordocument.h"
|
#include "diffeditordocument.h"
|
||||||
#include "diffutils.h"
|
#include "diffutils.h"
|
||||||
|
|
||||||
@@ -32,6 +34,8 @@
|
|||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QTextBlock>
|
#include <QTextBlock>
|
||||||
|
|
||||||
|
#include <coreplugin/icore.h>
|
||||||
|
|
||||||
#include <texteditor/textdocument.h>
|
#include <texteditor/textdocument.h>
|
||||||
#include <texteditor/textdocumentlayout.h>
|
#include <texteditor/textdocumentlayout.h>
|
||||||
#include <texteditor/texteditorsettings.h>
|
#include <texteditor/texteditorsettings.h>
|
||||||
@@ -73,6 +77,16 @@ UnifiedDiffEditorWidget::UnifiedDiffEditorWidget(QWidget *parent)
|
|||||||
|
|
||||||
connect(this, &QPlainTextEdit::cursorPositionChanged,
|
connect(this, &QPlainTextEdit::cursorPositionChanged,
|
||||||
this, &UnifiedDiffEditorWidget::slotCursorPositionChangedInEditor);
|
this, &UnifiedDiffEditorWidget::slotCursorPositionChangedInEditor);
|
||||||
|
|
||||||
|
m_context = new Core::IContext(this);
|
||||||
|
m_context->setWidget(this);
|
||||||
|
m_context->setContext(Core::Context(Constants::UNIFIED_VIEW_ID));
|
||||||
|
Core::ICore::addContextObject(m_context);
|
||||||
|
}
|
||||||
|
|
||||||
|
UnifiedDiffEditorWidget::~UnifiedDiffEditorWidget()
|
||||||
|
{
|
||||||
|
Core::ICore::removeContextObject(m_context);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UnifiedDiffEditorWidget::setDocument(DiffEditorDocument *document)
|
void UnifiedDiffEditorWidget::setDocument(DiffEditorDocument *document)
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include "selectabletexteditorwidget.h"
|
#include "selectabletexteditorwidget.h"
|
||||||
#include "diffeditorwidgetcontroller.h"
|
#include "diffeditorwidgetcontroller.h"
|
||||||
|
|
||||||
|
namespace Core { class IContext; }
|
||||||
|
|
||||||
namespace TextEditor {
|
namespace TextEditor {
|
||||||
class DisplaySettings;
|
class DisplaySettings;
|
||||||
class FontSettings;
|
class FontSettings;
|
||||||
@@ -52,6 +54,7 @@ class UnifiedDiffEditorWidget : public SelectableTextEditorWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
UnifiedDiffEditorWidget(QWidget *parent = 0);
|
UnifiedDiffEditorWidget(QWidget *parent = 0);
|
||||||
|
~UnifiedDiffEditorWidget();
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document);
|
void setDocument(DiffEditorDocument *document);
|
||||||
DiffEditorDocument *diffDocument() const;
|
DiffEditorDocument *diffDocument() const;
|
||||||
@@ -114,6 +117,7 @@ private:
|
|||||||
QMap<int, QPair<int, int> > m_chunkInfo;
|
QMap<int, QPair<int, int> > m_chunkInfo;
|
||||||
|
|
||||||
QByteArray m_state;
|
QByteArray m_state;
|
||||||
|
Core::IContext *m_context;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
Reference in New Issue
Block a user