forked from qt-creator/qt-creator
DiffEditor: Move IDiffView hierarchy to diffeditor.cpp
And remove two unused Q_OBJECTs. Change-Id: I9628ce60e3951794d267acd61ca0f9b76ee979db Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -13,7 +13,6 @@ add_qtc_plugin(DiffEditor
|
|||||||
diffeditorwidgetcontroller.cpp diffeditorwidgetcontroller.h
|
diffeditorwidgetcontroller.cpp diffeditorwidgetcontroller.h
|
||||||
diffenums.h
|
diffenums.h
|
||||||
diffutils.cpp diffutils.h
|
diffutils.cpp diffutils.h
|
||||||
diffview.cpp diffview.h
|
|
||||||
selectabletexteditorwidget.cpp selectabletexteditorwidget.h
|
selectabletexteditorwidget.cpp selectabletexteditorwidget.h
|
||||||
sidebysidediffeditorwidget.cpp sidebysidediffeditorwidget.h
|
sidebysidediffeditorwidget.cpp sidebysidediffeditorwidget.h
|
||||||
unifieddiffeditorwidget.cpp unifieddiffeditorwidget.h
|
unifieddiffeditorwidget.cpp unifieddiffeditorwidget.h
|
||||||
|
@@ -3,12 +3,13 @@
|
|||||||
|
|
||||||
#include "diffeditor.h"
|
#include "diffeditor.h"
|
||||||
|
|
||||||
#include "diffenums.h"
|
|
||||||
#include "diffeditorconstants.h"
|
#include "diffeditorconstants.h"
|
||||||
#include "diffeditordocument.h"
|
#include "diffeditordocument.h"
|
||||||
#include "diffeditoricons.h"
|
#include "diffeditoricons.h"
|
||||||
#include "diffeditortr.h"
|
#include "diffeditortr.h"
|
||||||
#include "diffview.h"
|
#include "diffenums.h"
|
||||||
|
#include "sidebysidediffeditorwidget.h"
|
||||||
|
#include "unifieddiffeditorwidget.h"
|
||||||
|
|
||||||
#include <coreplugin/coreconstants.h>
|
#include <coreplugin/coreconstants.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
@@ -60,21 +61,249 @@ using namespace Utils;
|
|||||||
|
|
||||||
namespace DiffEditor::Internal {
|
namespace DiffEditor::Internal {
|
||||||
|
|
||||||
class DescriptionEditorWidget : public TextEditorWidget
|
class IDiffView : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
IDiffView() = default;
|
||||||
|
|
||||||
|
QIcon icon() const { return m_icon; }
|
||||||
|
QString toolTip() const { return m_toolTip; }
|
||||||
|
bool supportsSync() const { return m_supportsSync; }
|
||||||
|
QString syncToolTip() const { return m_syncToolTip; }
|
||||||
|
Utils::Id id() const { return m_id; }
|
||||||
|
|
||||||
|
virtual QWidget *widget() = 0;
|
||||||
|
virtual void setDocument(DiffEditorDocument *document) = 0;
|
||||||
|
|
||||||
|
virtual void beginOperation() = 0;
|
||||||
|
virtual void setCurrentDiffFileIndex(int index) = 0;
|
||||||
|
virtual void setDiff(const QList<FileData> &diffFileList) = 0;
|
||||||
|
virtual void setMessage(const QString &message) = 0;
|
||||||
|
virtual void endOperation() = 0;
|
||||||
|
|
||||||
|
virtual void setSync(bool) = 0;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void currentDiffFileIndexChanged(int index);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void setIcon(const QIcon &icon) { m_icon = icon; }
|
||||||
|
void setToolTip(const QString &toolTip) { m_toolTip = toolTip; }
|
||||||
|
void setId(const Utils::Id &id) { m_id = id; }
|
||||||
|
void setSupportsSync(bool sync) { m_supportsSync = sync; }
|
||||||
|
void setSyncToolTip(const QString &text) { m_syncToolTip = text; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
QIcon m_icon;
|
||||||
|
QString m_toolTip;
|
||||||
|
Utils::Id m_id;
|
||||||
|
bool m_supportsSync = false;
|
||||||
|
QString m_syncToolTip;
|
||||||
|
};
|
||||||
|
|
||||||
|
class UnifiedView final : public IDiffView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
UnifiedView()
|
||||||
|
{
|
||||||
|
setId(Constants::UNIFIED_VIEW_ID);
|
||||||
|
setIcon(Icons::UNIFIED_DIFF.icon());
|
||||||
|
setToolTip(Tr::tr("Switch to Unified Diff Editor"));
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget *widget() final;
|
||||||
|
|
||||||
|
void setDocument(DiffEditorDocument *document) final;
|
||||||
|
|
||||||
|
void beginOperation() final;
|
||||||
|
void setCurrentDiffFileIndex(int index) final;
|
||||||
|
void setDiff(const QList<FileData> &diffFileList) final;
|
||||||
|
void setMessage(const QString &message) final;
|
||||||
|
void endOperation() final;
|
||||||
|
|
||||||
|
void setSync(bool sync) final;
|
||||||
|
|
||||||
|
private:
|
||||||
|
UnifiedDiffEditorWidget *m_widget = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
QWidget *UnifiedView::widget()
|
||||||
|
{
|
||||||
|
if (!m_widget) {
|
||||||
|
m_widget = new UnifiedDiffEditorWidget;
|
||||||
|
connect(m_widget, &UnifiedDiffEditorWidget::currentDiffFileIndexChanged,
|
||||||
|
this, &UnifiedView::currentDiffFileIndexChanged);
|
||||||
|
}
|
||||||
|
return m_widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::setDocument(DiffEditorDocument *document)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setDocument(document);
|
||||||
|
if (!document)
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (document->state()) {
|
||||||
|
case DiffEditorDocument::Reloading:
|
||||||
|
m_widget->clear(Tr::tr("Waiting for data..."));
|
||||||
|
break;
|
||||||
|
case DiffEditorDocument::LoadFailed:
|
||||||
|
m_widget->clear(Tr::tr("Retrieving data failed."));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::beginOperation()
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
DiffEditorDocument *document = m_widget->diffDocument();
|
||||||
|
if (document && document->state() == DiffEditorDocument::LoadOK)
|
||||||
|
m_widget->saveState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::setDiff(const QList<FileData> &diffFileList)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setDiff(diffFileList);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::setMessage(const QString &message)
|
||||||
|
{
|
||||||
|
m_widget->clear(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::endOperation()
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->restoreState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::setCurrentDiffFileIndex(int index)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setCurrentDiffFileIndex(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnifiedView::setSync(bool sync)
|
||||||
|
{
|
||||||
|
Q_UNUSED(sync)
|
||||||
|
}
|
||||||
|
|
||||||
|
class SideBySideView final : public IDiffView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SideBySideView()
|
||||||
|
{
|
||||||
|
setId(Constants::SIDE_BY_SIDE_VIEW_ID);
|
||||||
|
setIcon(Icons::SIDEBYSIDE_DIFF.icon());
|
||||||
|
setToolTip(Tr::tr("Switch to Side By Side Diff Editor"));
|
||||||
|
setSupportsSync(true);
|
||||||
|
setSyncToolTip(Tr::tr("Synchronize Horizontal Scroll Bars"));
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget *widget() final;
|
||||||
|
|
||||||
|
void setDocument(DiffEditorDocument *document) final;
|
||||||
|
|
||||||
|
void beginOperation() final;
|
||||||
|
void setCurrentDiffFileIndex(int index) final;
|
||||||
|
void setDiff(const QList<FileData> &diffFileList) final;
|
||||||
|
void setMessage(const QString &message) final;
|
||||||
|
void endOperation() final;
|
||||||
|
|
||||||
|
void setSync(bool sync) final;
|
||||||
|
|
||||||
|
private:
|
||||||
|
SideBySideDiffEditorWidget *m_widget = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
QWidget *SideBySideView::widget()
|
||||||
|
{
|
||||||
|
if (!m_widget) {
|
||||||
|
m_widget = new SideBySideDiffEditorWidget;
|
||||||
|
connect(m_widget, &SideBySideDiffEditorWidget::currentDiffFileIndexChanged,
|
||||||
|
this, &SideBySideView::currentDiffFileIndexChanged);
|
||||||
|
}
|
||||||
|
return m_widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::setDocument(DiffEditorDocument *document)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setDocument(document);
|
||||||
|
if (!document)
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (document->state()) {
|
||||||
|
case DiffEditorDocument::Reloading:
|
||||||
|
m_widget->clear(Tr::tr("Waiting for data..."));
|
||||||
|
break;
|
||||||
|
case DiffEditorDocument::LoadFailed:
|
||||||
|
m_widget->clear(Tr::tr("Retrieving data failed."));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::beginOperation()
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
DiffEditorDocument *document = m_widget->diffDocument();
|
||||||
|
if (document && document->state() == DiffEditorDocument::LoadOK)
|
||||||
|
m_widget->saveState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::setCurrentDiffFileIndex(int index)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setCurrentDiffFileIndex(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::setDiff(const QList<FileData> &diffFileList)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setDiff(diffFileList);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::setMessage(const QString &message)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->clear(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::endOperation()
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->restoreState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SideBySideView::setSync(bool sync)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(m_widget, return);
|
||||||
|
m_widget->setHorizontalSync(sync);
|
||||||
|
}
|
||||||
|
|
||||||
|
class DescriptionEditorWidget final : public TextEditorWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DescriptionEditorWidget(QWidget *parent = nullptr);
|
DescriptionEditorWidget(QWidget *parent = nullptr);
|
||||||
|
|
||||||
QSize sizeHint() const override;
|
QSize sizeHint() const final;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void requestResize();
|
void requestResize();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void setDisplaySettings(const DisplaySettings &ds) override;
|
void setDisplaySettings(const DisplaySettings &ds) final;
|
||||||
void setMarginSettings(const MarginSettings &ms) override;
|
void setMarginSettings(const MarginSettings &ms) final;
|
||||||
void applyFontSettings() override;
|
void applyFontSettings() final;
|
||||||
};
|
};
|
||||||
|
|
||||||
DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent)
|
DescriptionEditorWidget::DescriptionEditorWidget(QWidget *parent)
|
||||||
@@ -130,15 +359,15 @@ void DescriptionEditorWidget::applyFontSettings()
|
|||||||
|
|
||||||
///////////////////////////////// DiffEditor //////////////////////////////////
|
///////////////////////////////// DiffEditor //////////////////////////////////
|
||||||
|
|
||||||
class DiffEditor : public Core::IEditor
|
class DiffEditor final : public IEditor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DiffEditor(DiffEditorDocument *doc);
|
explicit DiffEditor(DiffEditorDocument *doc);
|
||||||
~DiffEditor() override;
|
~DiffEditor() final;
|
||||||
|
|
||||||
Core::IEditor *duplicate() override;
|
IEditor *duplicate() final;
|
||||||
Core::IDocument *document() const override;
|
IDocument *document() const final;
|
||||||
QWidget *toolBar() override;
|
QWidget *toolBar() final;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DiffEditor();
|
DiffEditor();
|
||||||
|
@@ -31,8 +31,6 @@ QtcPlugin {
|
|||||||
"diffenums.h",
|
"diffenums.h",
|
||||||
"diffutils.cpp",
|
"diffutils.cpp",
|
||||||
"diffutils.h",
|
"diffutils.h",
|
||||||
"diffview.cpp",
|
|
||||||
"diffview.h",
|
|
||||||
"selectabletexteditorwidget.cpp",
|
"selectabletexteditorwidget.cpp",
|
||||||
"selectabletexteditorwidget.h",
|
"selectabletexteditorwidget.h",
|
||||||
"sidebysidediffeditorwidget.cpp",
|
"sidebysidediffeditorwidget.cpp",
|
||||||
|
@@ -1,221 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
||||||
|
|
||||||
#include "diffview.h"
|
|
||||||
|
|
||||||
#include "diffeditorconstants.h"
|
|
||||||
#include "diffeditordocument.h"
|
|
||||||
#include "diffeditoricons.h"
|
|
||||||
#include "diffeditortr.h"
|
|
||||||
#include "unifieddiffeditorwidget.h"
|
|
||||||
#include "sidebysidediffeditorwidget.h"
|
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
|
||||||
|
|
||||||
#include <QCoreApplication>
|
|
||||||
|
|
||||||
namespace DiffEditor::Internal {
|
|
||||||
|
|
||||||
IDiffView::IDiffView(QObject *parent) : QObject(parent)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
QIcon IDiffView::icon() const
|
|
||||||
{
|
|
||||||
return m_icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString IDiffView::toolTip() const
|
|
||||||
{
|
|
||||||
return m_toolTip;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IDiffView::supportsSync() const
|
|
||||||
{
|
|
||||||
return m_supportsSync;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString IDiffView::syncToolTip() const
|
|
||||||
{
|
|
||||||
return m_syncToolTip;
|
|
||||||
}
|
|
||||||
|
|
||||||
Utils::Id IDiffView::id() const
|
|
||||||
{
|
|
||||||
return m_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IDiffView::setIcon(const QIcon &icon)
|
|
||||||
{
|
|
||||||
m_icon = icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IDiffView::setToolTip(const QString &toolTip)
|
|
||||||
{
|
|
||||||
m_toolTip = toolTip;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IDiffView::setId(const Utils::Id &id)
|
|
||||||
{
|
|
||||||
m_id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IDiffView::setSupportsSync(bool sync)
|
|
||||||
{
|
|
||||||
m_supportsSync = sync;
|
|
||||||
}
|
|
||||||
|
|
||||||
void IDiffView::setSyncToolTip(const QString &text)
|
|
||||||
{
|
|
||||||
m_syncToolTip = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnifiedView::UnifiedView()
|
|
||||||
{
|
|
||||||
setId(Constants::UNIFIED_VIEW_ID);
|
|
||||||
setIcon(Icons::UNIFIED_DIFF.icon());
|
|
||||||
setToolTip(Tr::tr("Switch to Unified Diff Editor"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget *UnifiedView::widget()
|
|
||||||
{
|
|
||||||
if (!m_widget) {
|
|
||||||
m_widget = new UnifiedDiffEditorWidget;
|
|
||||||
connect(m_widget, &UnifiedDiffEditorWidget::currentDiffFileIndexChanged,
|
|
||||||
this, &UnifiedView::currentDiffFileIndexChanged);
|
|
||||||
}
|
|
||||||
return m_widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::setDocument(DiffEditorDocument *document)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setDocument(document);
|
|
||||||
if (!document)
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (document->state()) {
|
|
||||||
case DiffEditorDocument::Reloading:
|
|
||||||
m_widget->clear(Tr::tr("Waiting for data..."));
|
|
||||||
break;
|
|
||||||
case DiffEditorDocument::LoadFailed:
|
|
||||||
m_widget->clear(Tr::tr("Retrieving data failed."));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::beginOperation()
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
DiffEditorDocument *document = m_widget->diffDocument();
|
|
||||||
if (document && document->state() == DiffEditorDocument::LoadOK)
|
|
||||||
m_widget->saveState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::setDiff(const QList<FileData> &diffFileList)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setDiff(diffFileList);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::setMessage(const QString &message)
|
|
||||||
{
|
|
||||||
m_widget->clear(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::endOperation()
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->restoreState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::setCurrentDiffFileIndex(int index)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setCurrentDiffFileIndex(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnifiedView::setSync(bool sync)
|
|
||||||
{
|
|
||||||
Q_UNUSED(sync)
|
|
||||||
}
|
|
||||||
|
|
||||||
SideBySideView::SideBySideView()
|
|
||||||
: m_widget(nullptr)
|
|
||||||
{
|
|
||||||
setId(Constants::SIDE_BY_SIDE_VIEW_ID);
|
|
||||||
setIcon(Icons::SIDEBYSIDE_DIFF.icon());
|
|
||||||
setToolTip(Tr::tr("Switch to Side By Side Diff Editor"));
|
|
||||||
setSupportsSync(true);
|
|
||||||
setSyncToolTip(Tr::tr("Synchronize Horizontal Scroll Bars"));
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget *SideBySideView::widget()
|
|
||||||
{
|
|
||||||
if (!m_widget) {
|
|
||||||
m_widget = new SideBySideDiffEditorWidget;
|
|
||||||
connect(m_widget, &SideBySideDiffEditorWidget::currentDiffFileIndexChanged,
|
|
||||||
this, &SideBySideView::currentDiffFileIndexChanged);
|
|
||||||
}
|
|
||||||
return m_widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::setDocument(DiffEditorDocument *document)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setDocument(document);
|
|
||||||
if (!document)
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (document->state()) {
|
|
||||||
case DiffEditorDocument::Reloading:
|
|
||||||
m_widget->clear(Tr::tr("Waiting for data..."));
|
|
||||||
break;
|
|
||||||
case DiffEditorDocument::LoadFailed:
|
|
||||||
m_widget->clear(Tr::tr("Retrieving data failed."));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::beginOperation()
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
DiffEditorDocument *document = m_widget->diffDocument();
|
|
||||||
if (document && document->state() == DiffEditorDocument::LoadOK)
|
|
||||||
m_widget->saveState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::setCurrentDiffFileIndex(int index)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setCurrentDiffFileIndex(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::setDiff(const QList<FileData> &diffFileList)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setDiff(diffFileList);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::setMessage(const QString &message)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->clear(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::endOperation()
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->restoreState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SideBySideView::setSync(bool sync)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(m_widget, return);
|
|
||||||
m_widget->setHorizontalSync(sync);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace DiffEditor::Internal
|
|
@@ -1,117 +0,0 @@
|
|||||||
// Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "diffenums.h"
|
|
||||||
|
|
||||||
#include <utils/id.h>
|
|
||||||
|
|
||||||
#include <QIcon>
|
|
||||||
#include <QString>
|
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
class QWidget;
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
namespace DiffEditor {
|
|
||||||
|
|
||||||
class FileData;
|
|
||||||
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class DiffEditorDocument;
|
|
||||||
class SideBySideDiffEditorWidget;
|
|
||||||
class UnifiedDiffEditorWidget;
|
|
||||||
|
|
||||||
class IDiffView : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit IDiffView(QObject *parent = nullptr);
|
|
||||||
|
|
||||||
QIcon icon() const;
|
|
||||||
QString toolTip() const;
|
|
||||||
bool supportsSync() const;
|
|
||||||
QString syncToolTip() const;
|
|
||||||
|
|
||||||
Utils::Id id() const;
|
|
||||||
virtual QWidget *widget() = 0;
|
|
||||||
virtual void setDocument(DiffEditorDocument *document) = 0;
|
|
||||||
|
|
||||||
virtual void beginOperation() = 0;
|
|
||||||
virtual void setCurrentDiffFileIndex(int index) = 0;
|
|
||||||
virtual void setDiff(const QList<FileData> &diffFileList) = 0;
|
|
||||||
virtual void setMessage(const QString &message) = 0;
|
|
||||||
virtual void endOperation() = 0;
|
|
||||||
|
|
||||||
virtual void setSync(bool) = 0;
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void currentDiffFileIndexChanged(int index);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void setIcon(const QIcon &icon);
|
|
||||||
void setToolTip(const QString &toolTip);
|
|
||||||
void setId(const Utils::Id &id);
|
|
||||||
void setSupportsSync(bool sync);
|
|
||||||
void setSyncToolTip(const QString &text);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QIcon m_icon;
|
|
||||||
QString m_toolTip;
|
|
||||||
Utils::Id m_id;
|
|
||||||
bool m_supportsSync = false;
|
|
||||||
QString m_syncToolTip;
|
|
||||||
};
|
|
||||||
|
|
||||||
class UnifiedView : public IDiffView
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
UnifiedView();
|
|
||||||
|
|
||||||
QWidget *widget() override;
|
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document) override;
|
|
||||||
|
|
||||||
void beginOperation() override;
|
|
||||||
void setCurrentDiffFileIndex(int index) override;
|
|
||||||
void setDiff(const QList<FileData> &diffFileList) override;
|
|
||||||
void setMessage(const QString &message) override;
|
|
||||||
void endOperation() override;
|
|
||||||
|
|
||||||
void setSync(bool sync) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
UnifiedDiffEditorWidget *m_widget = nullptr;
|
|
||||||
};
|
|
||||||
|
|
||||||
class SideBySideView : public IDiffView
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
SideBySideView();
|
|
||||||
|
|
||||||
QWidget *widget() override;
|
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document) override;
|
|
||||||
|
|
||||||
void beginOperation() override;
|
|
||||||
void setCurrentDiffFileIndex(int index) override;
|
|
||||||
void setDiff(const QList<FileData> &diffFileList) override;
|
|
||||||
void setMessage(const QString &message) override;
|
|
||||||
void endOperation() override;
|
|
||||||
|
|
||||||
void setSync(bool sync) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
SideBySideDiffEditorWidget *m_widget;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace DiffEditor
|
|
@@ -95,8 +95,9 @@ using SideBySideShowResults = std::array<SideBySideShowResult, SideCount>;
|
|||||||
class SideBySideDiffEditorWidget : public QWidget
|
class SideBySideDiffEditorWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SideBySideDiffEditorWidget(QWidget *parent = nullptr);
|
SideBySideDiffEditorWidget(QWidget *parent = nullptr);
|
||||||
~SideBySideDiffEditorWidget();
|
~SideBySideDiffEditorWidget();
|
||||||
|
|
||||||
void setDocument(DiffEditorDocument *document);
|
void setDocument(DiffEditorDocument *document);
|
||||||
|
Reference in New Issue
Block a user