From e844bee1dabdbd0274b4c18d4b61de19f0cd92b9 Mon Sep 17 00:00:00 2001 From: jkobus Date: Thu, 25 Apr 2013 17:37:20 +0200 Subject: Add file descriptions, enable file folding Change-Id: Ie90ac9fb74e9c4b8cfba16d065d1b8751125e83c Reviewed-by: David Schulz --- src/plugins/diffeditor/diffeditorwidget.h | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'src/plugins/diffeditor/diffeditorwidget.h') diff --git a/src/plugins/diffeditor/diffeditorwidget.h b/src/plugins/diffeditor/diffeditorwidget.h index 8bd8d11f72..17b5107485 100644 --- a/src/plugins/diffeditor/diffeditorwidget.h +++ b/src/plugins/diffeditor/diffeditorwidget.h @@ -81,7 +81,6 @@ struct ChunkData { ChunkData() : contextChunk(false) {} QList rows; bool contextChunk; - // QMap changedLeftPositions; // counting from the beginning of the chunk QMap changedRightPositions; // counting from the beginning of the chunk }; @@ -90,6 +89,8 @@ struct FileData { FileData() {} FileData(const ChunkData &chunkData) { chunks.append(chunkData); } QList chunks; + QString leftFileName; + QString rightFileName; }; struct DiffData { @@ -100,10 +101,18 @@ class DIFFEDITOR_EXPORT DiffEditorWidget : public QWidget { Q_OBJECT public: + struct DiffFilesContents { + QString leftFileName; + QString leftText; + QString rightFileName; + QString rightText; + }; + DiffEditorWidget(QWidget *parent = 0); ~DiffEditorWidget(); - void setDiff(const QString &leftText, const QString &rightText); + void clear(); + void setDiff(const QList &diffFileList); QTextCodec *codec() const; public slots: @@ -121,14 +130,20 @@ private slots: void rightDocumentSizeChanged(); private: - void setDiff(const QList &diffList); + struct DiffList { + QString leftFileName; + QString rightFileName; + QList diffList; + }; + + void setDiff(const QList &diffList); bool isWhitespace(const QChar &c) const; bool isWhitespace(const Diff &diff) const; bool isEqual(const QList &diffList, int diffNumber) const; QList colorPositions(const QTextCharFormat &format, QTextCursor &cursor, const QMap &positions) const; - void colorDiff(const FileData &fileData); + void colorDiff(const QList &fileDataList); QList assemblyRows(const QStringList &lines, const QMap &lineSpans, const QMap &changedPositions, @@ -142,13 +157,12 @@ private: DiffViewEditorWidget *m_rightEditor; QSplitter *m_splitter; - QList m_diffList; + QList m_diffList; // list of original outputs from differ + QList m_originalChunkData; // one big chunk for every file, ignoreWhitespaces taken into account + QList m_contextFileData; // ultimate data to be shown, contextLinesNumber taken into account int m_contextLinesNumber; bool m_ignoreWhitespaces; - ChunkData m_originalChunkData; - FileData m_contextFileData; - bool m_foldingBlocker; }; -- cgit v1.2.1