summaryrefslogtreecommitdiff
path: root/src/plugins/diffeditor/diffeditor.cpp
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@digia.com>2013-12-16 16:19:40 +0100
committerJarek Kobus <jaroslaw.kobus@digia.com>2014-01-16 14:36:53 +0100
commita74b59ffd6f66ee3ad7faea31839236e73fe127f (patch)
tree1ae5fb3a0ae77de5358b43b5b8a48c783bb838f0 /src/plugins/diffeditor/diffeditor.cpp
parentbe2b75611dd183042855ca057fea6d70d6c14cab (diff)
downloadqt-creator-a74b59ffd6f66ee3ad7faea31839236e73fe127f.tar.gz
Add DiffEditorController
Change-Id: Ic2f4a38d2ed08426ca7e5229d959b10fa545c129 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/diffeditor/diffeditor.cpp')
-rw-r--r--src/plugins/diffeditor/diffeditor.cpp49
1 files changed, 30 insertions, 19 deletions
diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp
index d8a9113935..cbffc01116 100644
--- a/src/plugins/diffeditor/diffeditor.cpp
+++ b/src/plugins/diffeditor/diffeditor.cpp
@@ -49,15 +49,19 @@ namespace DiffEditor {
///////////////////////////////// DiffEditor //////////////////////////////////
DiffEditor::DiffEditor(DiffEditorWidget *editorWidget)
- : IEditor(0),
- m_toolWidget(0),
- m_file(new Internal::DiffEditorFile(QLatin1String(Constants::DIFF_EDITOR_MIMETYPE), this)),
- m_editorWidget(editorWidget),
- m_entriesComboBox(0)
+ : IEditor(0)
+ , m_toolWidget(0)
+ , m_file(new Internal::DiffEditorFile(QLatin1String(Constants::DIFF_EDITOR_MIMETYPE), this))
+ , m_editorWidget(editorWidget)
+ , m_diffEditorController(0)
+ , m_entriesComboBox(0)
{
setWidget(editorWidget);
- connect(m_editorWidget, SIGNAL(navigatedToDiffFile(int)),
- this, SLOT(activateEntry(int)));
+ m_diffEditorController = editorWidget ? editorWidget->diffEditorController() : 0;
+ if (m_diffEditorController) {
+ connect(m_diffEditorController, SIGNAL(currentDiffFileIndexChanged(int)),
+ this, SLOT(activateEntry(int)));
+ }
}
DiffEditor::~DiffEditor()
@@ -123,8 +127,6 @@ QWidget *DiffEditor::toolBar()
whitespaceButton->setText(tr("Ignore Whitespace"));
whitespaceButton->setCheckable(true);
whitespaceButton->setChecked(true);
- connect(whitespaceButton, SIGNAL(clicked(bool)),
- m_editorWidget, SLOT(setIgnoreWhitespaces(bool)));
m_toolWidget->addWidget(whitespaceButton);
QLabel *contextLabel = new QLabel(m_toolWidget);
@@ -137,8 +139,6 @@ QWidget *DiffEditor::toolBar()
contextSpinBox->setValue(3);
contextSpinBox->setFrame(false);
contextSpinBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding); // Mac Qt5
- connect(contextSpinBox, SIGNAL(valueChanged(int)),
- m_editorWidget, SLOT(setContextLinesNumber(int)));
m_toolWidget->addWidget(contextSpinBox);
QToolButton *toggleSync = new QToolButton(m_toolWidget);
@@ -146,21 +146,29 @@ QWidget *DiffEditor::toolBar()
toggleSync->setCheckable(true);
toggleSync->setChecked(true);
toggleSync->setToolTip(tr("Synchronize Horizontal Scroll Bars"));
- connect(toggleSync, SIGNAL(clicked(bool)),
- m_editorWidget, SLOT(setHorizontalScrollBarSynchronization(bool)));
m_toolWidget->addWidget(toggleSync);
+ if (m_diffEditorController) {
+ connect(whitespaceButton, SIGNAL(clicked(bool)),
+ m_diffEditorController, SLOT(setIgnoreWhitespaces(bool)));
+ connect(contextSpinBox, SIGNAL(valueChanged(int)),
+ m_diffEditorController, SLOT(setContextLinesNumber(int)));
+ connect(toggleSync, SIGNAL(clicked(bool)),
+ m_diffEditorController, SLOT(setHorizontalScrollBarSynchronization(bool)));
+ // TODO: synchronize in opposite direction too
+ }
+
return m_toolWidget;
}
-void DiffEditor::setDiff(const QList<DiffEditorWidget::DiffFilesContents> &diffFileList,
+void DiffEditor::setDiff(const QList<DiffEditorController::DiffFilesContents> &diffFileList,
const QString &workingDirectory)
{
m_entriesComboBox->clear();
const int count = diffFileList.count();
for (int i = 0; i < count; i++) {
- const DiffEditorWidget::DiffFileInfo leftEntry = diffFileList.at(i).leftFileInfo;
- const DiffEditorWidget::DiffFileInfo rightEntry = diffFileList.at(i).rightFileInfo;
+ const DiffEditorController::DiffFileInfo leftEntry = diffFileList.at(i).leftFileInfo;
+ const DiffEditorController::DiffFileInfo rightEntry = diffFileList.at(i).rightFileInfo;
const QString leftShortFileName = QFileInfo(leftEntry.fileName).fileName();
const QString rightShortFileName = QFileInfo(rightEntry.fileName).fileName();
QString itemText;
@@ -194,14 +202,16 @@ void DiffEditor::setDiff(const QList<DiffEditorWidget::DiffFilesContents> &diffF
m_entriesComboBox->setItemData(m_entriesComboBox->count() - 1, itemToolTip, Qt::ToolTipRole);
}
updateEntryToolTip();
- m_editorWidget->setDiff(diffFileList, workingDirectory);
+ if (m_diffEditorController)
+ m_diffEditorController->setDiffContents(diffFileList, workingDirectory);
}
void DiffEditor::clear(const QString &message)
{
m_entriesComboBox->clear();
updateEntryToolTip();
- m_editorWidget->clear(message);
+ if (m_diffEditorController)
+ m_diffEditorController->clear(message);
}
void DiffEditor::updateEntryToolTip()
@@ -214,7 +224,8 @@ void DiffEditor::updateEntryToolTip()
void DiffEditor::entryActivated(int index)
{
updateEntryToolTip();
- m_editorWidget->navigateToDiffFile(index);
+ if (m_diffEditorController)
+ m_diffEditorController->setCurrentDiffFileIndex(index);
}
void DiffEditor::activateEntry(int index)