summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-01-17 22:08:29 +0200
committerOrgad Shaneh <orgads@gmail.com>2013-01-18 12:43:22 +0100
commit725ecc5f9179df92d4c26dbedea12028fa7d3ea1 (patch)
tree35b82acd67954a59927323f304d64318023fe7ae /src
parent6dd8726a16adacd9e65f95d77982ea9b081f327f (diff)
downloadqt-creator-725ecc5f9179df92d4c26dbedea12028fa7d3ea1.tar.gz
VCS: Refactor createDiffHighlighter
All plugins do the same... Change-Id: I21e5a1d7507292add91199a3db75df74165b63b1 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/bazaar/bazaareditor.cpp4
-rw-r--r--src/plugins/bazaar/bazaareditor.h2
-rw-r--r--src/plugins/clearcase/clearcaseeditor.cpp6
-rw-r--r--src/plugins/clearcase/clearcaseeditor.h2
-rw-r--r--src/plugins/cvs/cvseditor.cpp7
-rw-r--r--src/plugins/cvs/cvseditor.h2
-rw-r--r--src/plugins/git/giteditor.cpp5
-rw-r--r--src/plugins/git/giteditor.h2
-rw-r--r--src/plugins/mercurial/mercurialeditor.cpp4
-rw-r--r--src/plugins/mercurial/mercurialeditor.h2
-rw-r--r--src/plugins/perforce/perforceeditor.cpp5
-rw-r--r--src/plugins/perforce/perforceeditor.h2
-rw-r--r--src/plugins/subversion/subversioneditor.cpp7
-rw-r--r--src/plugins/subversion/subversioneditor.h2
-rw-r--r--src/plugins/vcsbase/diffhighlighter.cpp5
-rw-r--r--src/plugins/vcsbase/diffhighlighter.h3
-rw-r--r--src/plugins/vcsbase/vcsbaseeditor.cpp4
-rw-r--r--src/plugins/vcsbase/vcsbaseeditor.h2
18 files changed, 27 insertions, 39 deletions
diff --git a/src/plugins/bazaar/bazaareditor.cpp b/src/plugins/bazaar/bazaareditor.cpp
index aaa76f5861..48a1687b8d 100644
--- a/src/plugins/bazaar/bazaareditor.cpp
+++ b/src/plugins/bazaar/bazaareditor.cpp
@@ -111,9 +111,9 @@ QString BazaarEditor::changeUnderCursor(const QTextCursor &cursorIn) const
return QString();
}
-VcsBase::DiffHighlighter *BazaarEditor::createDiffHighlighter() const
+QRegExp BazaarEditor::diffFilePattern() const
{
- return new VcsBase::DiffHighlighter(m_diffFileId);
+ return m_diffFileId;
}
VcsBase::BaseAnnotationHighlighter *BazaarEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/bazaar/bazaareditor.h b/src/plugins/bazaar/bazaareditor.h
index b82208aeb5..b895fb6593 100644
--- a/src/plugins/bazaar/bazaareditor.h
+++ b/src/plugins/bazaar/bazaareditor.h
@@ -46,7 +46,7 @@ public:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &cursor) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const;
diff --git a/src/plugins/clearcase/clearcaseeditor.cpp b/src/plugins/clearcase/clearcaseeditor.cpp
index 853512f4fd..c00a973b42 100644
--- a/src/plugins/clearcase/clearcaseeditor.cpp
+++ b/src/plugins/clearcase/clearcaseeditor.cpp
@@ -93,11 +93,9 @@ QString ClearCaseEditor::changeUnderCursor(const QTextCursor &c) const
+++ main.cpp@@\main\1
@@ -6,6 +6,5 @@
*/
-VcsBase::DiffHighlighter *ClearCaseEditor::createDiffHighlighter() const
+QRegExp ClearCaseEditor::diffFilePattern() const
{
- const QRegExp filePattern(QLatin1String("^[-+][-+][-+] "));
- QTC_CHECK(filePattern.isValid());
- return new VcsBase::DiffHighlighter(filePattern);
+ return QRegExp(QLatin1String("^[-+][-+][-+] "));
}
VcsBase::BaseAnnotationHighlighter *ClearCaseEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/clearcase/clearcaseeditor.h b/src/plugins/clearcase/clearcaseeditor.h
index 2418a01157..afb7955366 100644
--- a/src/plugins/clearcase/clearcaseeditor.h
+++ b/src/plugins/clearcase/clearcaseeditor.h
@@ -49,7 +49,7 @@ public:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
diff --git a/src/plugins/cvs/cvseditor.cpp b/src/plugins/cvs/cvseditor.cpp
index fbc69bec1d..f2624fb15f 100644
--- a/src/plugins/cvs/cvseditor.cpp
+++ b/src/plugins/cvs/cvseditor.cpp
@@ -120,12 +120,9 @@ cvs diff -d -u -r1.1 -r1.2:
@@ -6,6 +6,5 @@
\endcode
*/
-
-VcsBase::DiffHighlighter *CvsEditor::createDiffHighlighter() const
+QRegExp CvsEditor::diffFilePattern() const
{
- const QRegExp filePattern(QLatin1String("^[-+][-+][-+] .*1\\.[\\d\\.]+$"));
- QTC_CHECK(filePattern.isValid());
- return new VcsBase::DiffHighlighter(filePattern);
+ return QRegExp(QLatin1String("^[-+][-+][-+] .*1\\.[\\d\\.]+$"));
}
VcsBase::BaseAnnotationHighlighter *CvsEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/cvs/cvseditor.h b/src/plugins/cvs/cvseditor.h
index dd18e2f476..5e4a2fda98 100644
--- a/src/plugins/cvs/cvseditor.h
+++ b/src/plugins/cvs/cvseditor.h
@@ -48,7 +48,7 @@ public:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
QStringList annotationPreviousVersions(const QString &revision) const;
diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp
index 27bed9a6bd..40997ffcd6 100644
--- a/src/plugins/git/giteditor.cpp
+++ b/src/plugins/git/giteditor.cpp
@@ -107,10 +107,9 @@ QString GitEditor::changeUnderCursor(const QTextCursor &c) const
return QString();
}
-VcsBase::DiffHighlighter *GitEditor::createDiffHighlighter() const
+QRegExp GitEditor::diffFilePattern() const
{
- const QRegExp filePattern(QLatin1String("^(diff --git a/|index |[+-][+-][+-] [ab/]).*$"));
- return new VcsBase::DiffHighlighter(filePattern);
+ return QRegExp(QLatin1String("^(diff --git a/|index |[+-][+-][+-] [ab/]).*$"));
}
VcsBase::BaseAnnotationHighlighter *GitEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/git/giteditor.h b/src/plugins/git/giteditor.h
index cbb5acf1fd..5fc066c4cc 100644
--- a/src/plugins/git/giteditor.h
+++ b/src/plugins/git/giteditor.h
@@ -57,7 +57,7 @@ public slots:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
QString decorateVersion(const QString &revision) const;
diff --git a/src/plugins/mercurial/mercurialeditor.cpp b/src/plugins/mercurial/mercurialeditor.cpp
index 60a86d4fd7..4e775e6a93 100644
--- a/src/plugins/mercurial/mercurialeditor.cpp
+++ b/src/plugins/mercurial/mercurialeditor.cpp
@@ -88,9 +88,9 @@ QString MercurialEditor::changeUnderCursor(const QTextCursor &cursorIn) const
return QString();
}
-VcsBase::DiffHighlighter *MercurialEditor::createDiffHighlighter() const
+QRegExp MercurialEditor::diffFilePattern() const
{
- return new VcsBase::DiffHighlighter(diffIdentifier);
+ return diffIdentifier;
}
VcsBase::BaseAnnotationHighlighter *MercurialEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/mercurial/mercurialeditor.h b/src/plugins/mercurial/mercurialeditor.h
index cde52c086c..da0d48789b 100644
--- a/src/plugins/mercurial/mercurialeditor.h
+++ b/src/plugins/mercurial/mercurialeditor.h
@@ -46,7 +46,7 @@ public:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &cursor) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const;
QString decorateVersion(const QString &revision) const;
diff --git a/src/plugins/perforce/perforceeditor.cpp b/src/plugins/perforce/perforceeditor.cpp
index 271a612ff9..aa925a86ec 100644
--- a/src/plugins/perforce/perforceeditor.cpp
+++ b/src/plugins/perforce/perforceeditor.cpp
@@ -103,10 +103,9 @@ QString PerforceEditor::changeUnderCursor(const QTextCursor &c) const
return m_changeNumberPattern.exactMatch(change) ? change : QString();
}
-VcsBase::DiffHighlighter *PerforceEditor::createDiffHighlighter() const
+QRegExp PerforceEditor::diffFilePattern() const
{
- const QRegExp filePattern(QLatin1String("^====.*"));
- return new VcsBase::DiffHighlighter(filePattern);
+ return QRegExp(QLatin1String("^====.*"));
}
VcsBase::BaseAnnotationHighlighter *PerforceEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/perforce/perforceeditor.h b/src/plugins/perforce/perforceeditor.h
index a9435eb629..3a8791eb52 100644
--- a/src/plugins/perforce/perforceeditor.h
+++ b/src/plugins/perforce/perforceeditor.h
@@ -50,7 +50,7 @@ public:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
QStringList annotationPreviousVersions(const QString &v) const;
diff --git a/src/plugins/subversion/subversioneditor.cpp b/src/plugins/subversion/subversioneditor.cpp
index 433d110a24..7a7b44424b 100644
--- a/src/plugins/subversion/subversioneditor.cpp
+++ b/src/plugins/subversion/subversioneditor.cpp
@@ -106,12 +106,9 @@ QString SubversionEditor::changeUnderCursor(const QTextCursor &c) const
@@ -6,6 +6,5 @@
\endcode
*/
-
-VcsBase::DiffHighlighter *SubversionEditor::createDiffHighlighter() const
+QRegExp SubversionEditor::diffFilePattern() const
{
- const QRegExp filePattern(QLatin1String("^[-+][-+][-+] .*|^Index: .*|^==*$"));
- QTC_CHECK(filePattern.isValid());
- return new VcsBase::DiffHighlighter(filePattern);
+ return QRegExp(QLatin1String("^[-+][-+][-+] .*|^Index: .*|^==*$"));
}
VcsBase::BaseAnnotationHighlighter *SubversionEditor::createAnnotationHighlighter(const QSet<QString> &changes,
diff --git a/src/plugins/subversion/subversioneditor.h b/src/plugins/subversion/subversioneditor.h
index 96c139685d..f2ec784367 100644
--- a/src/plugins/subversion/subversioneditor.h
+++ b/src/plugins/subversion/subversioneditor.h
@@ -48,7 +48,7 @@ public:
private:
QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &) const;
- VcsBase::DiffHighlighter *createDiffHighlighter() const;
+ QRegExp diffFilePattern() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
QStringList annotationPreviousVersions(const QString &) const;
diff --git a/src/plugins/vcsbase/diffhighlighter.cpp b/src/plugins/vcsbase/diffhighlighter.cpp
index 538a5a82f3..278b32a138 100644
--- a/src/plugins/vcsbase/diffhighlighter.cpp
+++ b/src/plugins/vcsbase/diffhighlighter.cpp
@@ -130,9 +130,8 @@ DiffFormats DiffHighlighterPrivate::analyzeLine(const QString &text) const
} // namespace Internal
// --- DiffHighlighter
-DiffHighlighter::DiffHighlighter(const QRegExp &filePattern,
- QTextDocument *document) :
- TextEditor::SyntaxHighlighter(document),
+DiffHighlighter::DiffHighlighter(const QRegExp &filePattern) :
+ TextEditor::SyntaxHighlighter(static_cast<QTextDocument *>(0)),
d(new Internal::DiffHighlighterPrivate(filePattern))
{
}
diff --git a/src/plugins/vcsbase/diffhighlighter.h b/src/plugins/vcsbase/diffhighlighter.h
index 1ca4adb9fd..05ccce2b1f 100644
--- a/src/plugins/vcsbase/diffhighlighter.h
+++ b/src/plugins/vcsbase/diffhighlighter.h
@@ -51,8 +51,7 @@ class VCSBASE_EXPORT DiffHighlighter : public TextEditor::SyntaxHighlighter
Q_OBJECT
public:
- explicit DiffHighlighter(const QRegExp &filePattern,
- QTextDocument *document = 0);
+ explicit DiffHighlighter(const QRegExp &filePattern);
~DiffHighlighter();
void highlightBlock(const QString &text);
diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp
index 480295c59d..1a25ad7a43 100644
--- a/src/plugins/vcsbase/vcsbaseeditor.cpp
+++ b/src/plugins/vcsbase/vcsbaseeditor.cpp
@@ -678,10 +678,10 @@ void VcsBaseEditorWidget::init()
connect(this, SIGNAL(textChanged()), this, SLOT(slotActivateAnnotation()));
break;
case DiffOutput: {
- DiffHighlighter *dh = createDiffHighlighter();
+ d->m_diffFilePattern = diffFilePattern();
+ DiffHighlighter *dh = new DiffHighlighter(d->m_diffFilePattern);
setCodeFoldingSupported(true);
baseTextDocument()->setSyntaxHighlighter(dh);
- d->m_diffFilePattern = dh->filePattern();
connect(this, SIGNAL(textChanged()), this, SLOT(slotPopulateDiffBrowser()));
connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(slotDiffCursorPositionChanged()));
}
diff --git a/src/plugins/vcsbase/vcsbaseeditor.h b/src/plugins/vcsbase/vcsbaseeditor.h
index 6e15c9d9b8..88b61834ff 100644
--- a/src/plugins/vcsbase/vcsbaseeditor.h
+++ b/src/plugins/vcsbase/vcsbaseeditor.h
@@ -240,7 +240,7 @@ private:
// Implement to identify a change number at the cursor position
virtual QString changeUnderCursor(const QTextCursor &) const = 0;
// Factory functions for highlighters
- virtual DiffHighlighter *createDiffHighlighter() const = 0;
+ virtual QRegExp diffFilePattern() const = 0;
virtual BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const = 0;
// Implement to return a local file name from the diff file specification