#
#
# patch "guitone/guitone.pro"
# from [cc1f5ee6f8271627eb8f0a81c1451a454dc71c2b]
# to [887d92b03fc61fa83d4611baf7f8af26cf0cce14]
#
# patch "guitone/res/dialogs/file_diff.ui"
# from [43494905e8f1d6782ff30cf0bab80d3db1004fab]
# to [cec958f624f1b2884161a18632baf0ce38ed04e5]
#
# patch "guitone/src/model/GetFile.cpp"
# from [0ffd7d839d5e776eb81bed68eff1c68defa0f255]
# to [b4db3123047433d5437936ddc9a60ac9c15fad2a]
#
# patch "guitone/src/model/GetFile.h"
# from [bf0ecab6e9fe33f315fc9c1ae615761c6a6e931b]
# to [fd041026b83b707590139a231e8caf1843fd38ff]
#
# patch "guitone/src/monotone/Monotone.cpp"
# from [65fe8b35f52f9f0bc163b1ee611f774d1f62c091]
# to [62f2c36eb1d9c833b6cb10932b2894c15fb9fec9]
#
# patch "guitone/src/view/dialogs/FileDiff.cpp"
# from [2eb4fb38faeacbf4ea7150d3ddbcc0cafe364187]
# to [87b557e1445814d58ace8a28e3ca8cf3b5dd605f]
#
# patch "guitone/src/view/dialogs/FileDiff.h"
# from [99ff9d52eae341041edad007cd2f529658d1a122]
# to [0a6a2befd7b13fa6c49ee439f1cd364bd3d3e7c8]
#
============================================================
--- guitone/guitone.pro cc1f5ee6f8271627eb8f0a81c1451a454dc71c2b
+++ guitone/guitone.pro 887d92b03fc61fa83d4611baf7f8af26cf0cce14
@@ -27,6 +27,7 @@ HEADERS += src/view/Guitone.h \
src/model/Graph.h \
src/model/ContentDiff.h \
src/model/GetFile.h \
+ src/model/GetFileProxyModel.h \
src/util/IconProvider.h \
src/util/StanzaParser.h \
src/util/Settings.h \
@@ -54,6 +55,7 @@ SOURCES += src/view/Guitone.cpp \
src/model/Graph.cpp \
src/model/ContentDiff.cpp \
src/model/GetFile.cpp \
+ src/model/GetFileProxyModel.cpp \
src/util/IconProvider.cpp \
src/util/StanzaParser.cpp \
src/util/Settings.cpp \
============================================================
--- guitone/res/dialogs/file_diff.ui 43494905e8f1d6782ff30cf0bab80d3db1004fab
+++ guitone/res/dialogs/file_diff.ui cec958f624f1b2884161a18632baf0ce38ed04e5
@@ -6,11 +6,11 @@
0
0
553
- 420
+ 436
- File differences
+ File differences of "%1"
@@ -31,17 +31,75 @@
-
-
-
- Qt::LeftToRight
+
+
+ 0
-
- Qt::Horizontal
+
+ 6
-
- QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok
-
-
+
-
+
+
+ Show Version
+
+
+
+ -
+
+
+ 0
+
+
+ 6
+
+
-
+
+
+ Left
+
+
+
+ -
+
+
+ Right
+
+
+
+ -
+
+
+ Both
+
+
+ true
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Close
+
+
+
+
@@ -57,36 +115,20 @@
- buttonBox
- accepted()
+ closeButton
+ released()
FileDiffDialog
accept()
- 248
- 254
+ 490
+ 408
- 157
- 274
+ 276
+ 217
-
- buttonBox
- rejected()
- FileDiffDialog
- reject()
-
-
- 316
- 260
-
-
- 286
- 274
-
-
-
============================================================
--- guitone/src/model/GetFile.cpp 0ffd7d839d5e776eb81bed68eff1c68defa0f255
+++ guitone/src/model/GetFile.cpp b4db3123047433d5437936ddc9a60ac9c15fad2a
@@ -104,11 +104,8 @@ void GetFile::parseOutput(AutomateComman
emit fileRead();
}
-void GetFile::applyDiff(Diff * diff, FileVersion version)
+void GetFile::applyDiff(Diff * diff)
{
- // FIXME: we currently only support merged unified diffs
- Q_ASSERT(version == Both);
-
int lineOffset = 0;
for (int i=0, s=diff->hunks.size(); ireadAllStandardOutput());
- int retCode = 0;
-
// check if we already could parse the complete stdio output
- if (!parseStdio(retCode))
+ int dummy;
+ if (!parseStdio(dummy))
{
qWarning("Monotone::executeCommand: Contents incomplete/invalid.");
continue;
============================================================
--- guitone/src/view/dialogs/FileDiff.cpp 2eb4fb38faeacbf4ea7150d3ddbcc0cafe364187
+++ guitone/src/view/dialogs/FileDiff.cpp 87b557e1445814d58ace8a28e3ca8cf3b5dd605f
@@ -39,10 +39,30 @@ void FileDiff::init(QString fileName)
void FileDiff::init(QString fileName)
{
+ connect(
+ showVersionLeft, SIGNAL(toggled(bool)),
+ this, SLOT(versionToggled(bool))
+ );
+ connect(
+ showVersionRight, SIGNAL(toggled(bool)),
+ this, SLOT(versionToggled(bool))
+ );
+ connect(
+ showVersionBoth, SIGNAL(toggled(bool)),
+ this, SLOT(versionToggled(bool))
+ );
+
+ QString title = windowTitle();
+ setWindowTitle(title.arg(fileName));
+
fileModel = new GetFile(this);
fileModel->readFileByName(fileName);
+
+ fileProxyModel = new GetFileProxyModel(this);
+ fileProxyModel->setSourceModel(fileModel);
- diffView->setModel(fileModel);
+ diffView->setModel(fileProxyModel);
+
// make the line number col a little smaller
diffView->header()->resizeSection(0, 40);
@@ -57,7 +77,7 @@ void FileDiff::init(QString fileName)
if (diffWaiter.wait())
{
- fileModel->applyDiff(diffModel->getDiff(fileName), GetFile::Both);
+ fileModel->applyDiff(diffModel->getDiff(fileName));
}
else
{
@@ -72,3 +92,13 @@ FileDiff::~FileDiff() {}
FileDiff::~FileDiff() {}
+void FileDiff::versionToggled(bool dummy)
+{
+ if (showVersionLeft->isChecked())
+ fileProxyModel->setFileVersion(GetFileProxyModel::Left);
+ if (showVersionRight->isChecked())
+ fileProxyModel->setFileVersion(GetFileProxyModel::Right);
+ if (showVersionBoth->isChecked())
+ fileProxyModel->setFileVersion(GetFileProxyModel::Both);
+}
+
============================================================
--- guitone/src/view/dialogs/FileDiff.h 99ff9d52eae341041edad007cd2f529658d1a122
+++ guitone/src/view/dialogs/FileDiff.h 0a6a2befd7b13fa6c49ee439f1cd364bd3d3e7c8
@@ -24,6 +24,7 @@
#include "ui_file_diff.h"
#include "../../model/ContentDiff.h"
#include "../../model/GetFile.h"
+#include "../../model/GetFileProxyModel.h"
class FileDiff : public QDialog, private Ui::FileDiffDialog
{
@@ -36,9 +37,13 @@ public:
~FileDiff();
+private slots:
+ void versionToggled(bool);
+
private:
ContentDiff * diffModel;
GetFile * fileModel;
+ GetFileProxyModel * fileProxyModel;
};
#endif