#
#
# patch "guitone/res/forms/revision_diff.ui"
# from [ad0e31fbd4c9f994cdec9a694aad0c2de499ef59]
# to [d4d25a844c0a4a141bc9ac01933d96371b7116c0]
#
# patch "guitone/res/forms/switch_workspace.ui"
# from [5b6fe51ea63043d36ca1ef52190d834f3ad0c33a]
# to [84d6a64e2f799a5cb951836b6293045bbb34c324]
#
# patch "guitone/res/i18n/guitone_de.ts"
# from [2f4b9e55dd9664deafd756e7b42966c6dab8a1fd]
# to [8a9f18c91d4da422143541bbe523025eb7a280d3]
#
# patch "guitone/src/monotone/Monotone.cpp"
# from [2216c6cbd2f50518534321309c62e2b5d7576f09]
# to [70ccad4aa0480ca1c0b18c00699c682b68244e4c]
#
# patch "guitone/src/view/dialogs/RevisionDiff.cpp"
# from [fcc65ed14a1745d84da4a77033a9fb652e1391d2]
# to [63eb939175650c01c82ce8e7252f88f69c84fc80]
#
# patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp"
# from [c7048551cefd35c3eb3d7cce60197d311bc59bdd]
# to [bb862eb7efcae41624d5af6a56493bf161600e46]
#
# patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.h"
# from [8e9ba9782eaafa5700552d409af2a6a7db0f9bb4]
# to [a0b1232436cc001948b1a9d11de0e598305505b9]
#
============================================================
--- guitone/res/forms/revision_diff.ui ad0e31fbd4c9f994cdec9a694aad0c2de499ef59
+++ guitone/res/forms/revision_diff.ui d4d25a844c0a4a141bc9ac01933d96371b7116c0
@@ -5,13 +5,10 @@
0
0
- 484
- 432
+ 528
+ 431
-
- Differences in %1 between %2 and %3
-
:/icons/guitone.png
============================================================
--- guitone/res/forms/switch_workspace.ui 5b6fe51ea63043d36ca1ef52190d834f3ad0c33a
+++ guitone/res/forms/switch_workspace.ui 84d6a64e2f799a5cb951836b6293045bbb34c324
@@ -5,8 +5,8 @@
0
0
- 622
- 421
+ 532
+ 364
@@ -68,13 +68,78 @@
Qt::Vertical
-
-
- false
-
-
- false
-
+
+
+
+ 0
+
+
+ 6
+
+ -
+
+
+ false
+
+
+ false
+
+
+
+ -
+
+
+ 0
+
+
+ 6
+
+
-
+
+
+ false
+
+
+ Select first revision
+
+
+
+ -
+
+
+ false
+
+
+ Select second revision
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ false
+
+
+ Show differences
+
+
+
+
+
+
@@ -140,7 +205,7 @@
Splitter
QSplitter
-
+
TreeView
@@ -152,8 +217,6 @@
selectorBox
selectorValue
searchRevsBtn
- revisionList
- certList
okButton
cancelButton
@@ -168,8 +231,8 @@
accept()
- 523
- 409
+ 546
+ 386
96
@@ -184,8 +247,8 @@
reject()
- 610
- 409
+ 632
+ 386
179
============================================================
--- guitone/res/i18n/guitone_de.ts 2f4b9e55dd9664deafd756e7b42966c6dab8a1fd
+++ guitone/res/i18n/guitone_de.ts 8a9f18c91d4da422143541bbe523025eb7a280d3
@@ -9,11 +9,6 @@
- <br/><br/>Authors: <a href="mailto:address@hidden">Thomas Keller</a>, <a href="mailto:address@hidden">Ingo Maindorfer</a> and <a href="mailto:address@hidden">Jean-Louis Fuchs</a> and <br/><br/>This program is free software; you can redistribute it and/or modify<br/>it under the terms of the GNU General Public License as published by<br/>the Free Software Foundation; either version 2 of the License, or<br/>(at your option) any later version.<br/><br/>Bugs? Suggestions? Help? <a href="http://guitone.thomaskeller.biz">guitone Homepage</a><br/><br/>Many thanks go to the <a href="irc://irc.freenode.net/qt">#qt on Freenode channel</a> for their helpful<br/>comments during endless coding sessions - you guys rock!
- <br/><br/>Autoren: <a href="mailto:address@hidden">Thomas Keller</a>, <a href="mailto:address@hidden">Ingo Maindorfer</a> und <a href="mailto:address@hidden">Jean-Louis Fuchs</a><br/><br/>Dieses Programm ist freie Software. Sie können es unter den<br/>Bedingungen der GNU General Public License, wie von der<br/>Free Software Foundation veröffentlicht, weitergeben und/oder<br/>modifizieren, entweder gemäà Version 2 der Lizenz oder <br/>(nach Ihrer Option) jeder späteren Version.<br/><br/>Fehler? Vorschläge? Hilfe? <a href="http://guitone.thomaskeller.biz">guitone Webseite</a><br/><br/>Vielen Dank an den <a href="irc://irc.freenode.net/qt">#qt on Freenode channel</a> für die Hilfe während der<br/>unendlich langen Programmierstunden -
Ihr Jungs seid Spitze!
-
-
-
<br/><br/>Authors: <a href="mailto:address@hidden">Thomas Keller</a>, <a href="mailto:address@hidden">Ingo Maindorfer</a> and <a href="mailto:address@hidden">Jean-Louis Fuchs</a>.<br/><br/>This program is free software; you can redistribute it and/or modify<br/>it under the terms of the GNU General Public License as published by<br/>the Free Software Foundation; either version 2 of the License, or<br/>(at your option) any later version.<br/><br/>Bugs? Suggestions? Help? <a href="http://guitone.thomaskeller.biz">guitone Homepage</a><br/><br/>Many thanks go to the friendly guys at <a href="irc://irc.freenode.net/qt">#qt</a> for their helpful<br/>comments during endless coding sessions - you guys rock!
<br/><br/>Autoren: <a href="mailto:address@hidden">Thomas Keller</a>, <a href="mailto:address@hidden">Ingo Maindorfer</a> und <a href="mailto:address@hidden">Jean-Louis Fuchs</a><br/><br/>Dieses Programm ist freie Software. Sie können es unter den<br/>Bedingungen der GNU General Public License, wie von der<br/>Free Software Foundation veröffentlicht, weitergeben und/oder<br/>modifizieren, entweder gemäà Version 2 der Lizenz oder <br/>(nach Ihrer Option) jeder späteren Version.<br/><br/>Fehler? Vorschläge? Hilfe? <a href="http://guitone.thomaskeller.biz">guitone Webseite</a><br/><br/>Vielen Dank an die freundlichen Seelen auf <a href="irc://irc.freenode.net/qt">#qt</a> für die Hilfe während der<br/>unendlich langen Programmierstunden - Ihr Jungs s
eid Spitze!
@@ -1056,25 +1051,30 @@ monotone gab zurück:
RevisionDiff
-
+
base revision
Basis-Revision
-
+
workspace revision
Arbeitsbereich-Revision
+
+
+ Differences between %1 and %2 in %3
+ Unterschiede zwischen %1 und %2 in %3
+
+
+
+ Differences between %1 and %2
+ Unterschiede zwischen %1 und %2
+
RevisionDiffDialog
-
- Differences in %1 between %2 and %3
- Unterschiede in %1 zwischen %2 und %3
-
-
-
+
Close
SchlieÃen
@@ -1100,37 +1100,37 @@ monotone gab zurück:
Finden
-
+
OK
OK
-
+
Cancel
Abbrechen
-
+
Branch
Zweig
-
+
Tag
Marke
-
+
Author
Autor
-
+
Date
Datum
-
+
Custom
Selbstdefiniert
@@ -1140,35 +1140,60 @@ monotone gab zurück:
beinhaltet
-
+
Revision
Revision
-
+
Invalid selection
Ungültige Auswahl
-
+
The given selection could not be processed: %1
Die eingegebene Auswahl kann nicht ausgeführt werden: %1
-
+
Combined
Kombiniert
-
+
Unable to execute command
Konnte Kommando nicht ausführen
-
+
Unable to execute '%1' - maybe another command is still running?
Konnte '%1' nicht ausführen - eventuell läuft noch ein anderes Kommando?
+
+
+ Select first revision
+ Erste Revision auswählen
+
+
+
+ Select second revision
+ Zweite Revision auswählen
+
+
+
+ Show differences
+ Ãnderungen anzeigen
+
+
+
+ First: %1...
+ Erste: %1...
+
+
+
+ Second: %1...
+ Zweite: %1...
+
Tags
============================================================
--- guitone/src/monotone/Monotone.cpp 2216c6cbd2f50518534321309c62e2b5d7576f09
+++ guitone/src/monotone/Monotone.cpp 70ccad4aa0480ca1c0b18c00699c682b68244e4c
@@ -394,6 +394,12 @@ void Monotone::writeStdin(const QStringL
for (int i=0, c=options.size(); i 0)
{
- left = leftRevision.left(8).append("...");
+ left = leftRevision.left(12).append("...");
}
if (rightRevision.size() > 0)
{
- right = rightRevision.left(8).append("...");
+ right = rightRevision.left(12).append("...");
}
- setWindowTitle(title.arg(path).arg(left).arg(right));
+ QString title;
+ if (path.size() > 0 && path != ".")
+ {
+ title = tr("Differences between %1 and %2 in %3")
+ .arg(left).arg(right).arg(path);
+ }
+ else
+ {
+ title = tr("Differences between %1 and %2")
+ .arg(left).arg(right);
+ }
+ setWindowTitle(title);
+
diffModel = new ContentDiff(this);
diffView->setModel(diffModel);
============================================================
--- guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp c7048551cefd35c3eb3d7cce60197d311bc59bdd
+++ guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp bb862eb7efcae41624d5af6a56493bf161600e46
@@ -20,6 +20,7 @@
#include "SwitchWorkspaceRevision.h"
#include "Settings.h"
+#include "RevisionDiff.h"
#include
#include
@@ -83,6 +84,11 @@ SwitchWorkspaceRevision::SwitchWorkspace
certsModel, SLOT(readCerts(const QModelIndex &))
);
+ connect(
+ revisionList, SIGNAL(clicked(const QModelIndex &)),
+ this, SLOT(enableDiffButtons(const QModelIndex &))
+ );
+
// handle selector errors
connect(
selectorModel, SIGNAL(invalidSelection(QString)),
@@ -95,6 +101,21 @@ SwitchWorkspaceRevision::SwitchWorkspace
this, SLOT(setCompleter(int))
);
+ connect(
+ selectFirst, SIGNAL(clicked()),
+ this, SLOT(setFirstRevision())
+ );
+
+ connect(
+ selectSecond, SIGNAL(clicked()),
+ this, SLOT(setSecondRevision())
+ );
+
+ connect(
+ showDiff, SIGNAL(clicked()),
+ this, SLOT(showDiffDialog())
+ );
+
// disable the OK button unless we have a valid selected revision
okButton->setEnabled(false);
}
@@ -103,6 +124,10 @@ void SwitchWorkspaceRevision::triggerRev
void SwitchWorkspaceRevision::triggerRevisionSearch()
{
+ selectFirst->setEnabled(false);
+ selectSecond->setEnabled(false);
+ showDiff->setEnabled(false);
+
QString selector = selectorBox->itemData(selectorBox->currentIndex()).toString();
if (selector == "i")
@@ -261,3 +286,38 @@ void SwitchWorkspaceRevision::accept()
done(0);
}
+void SwitchWorkspaceRevision::setFirstRevision()
+{
+ Q_ASSERT(currentRevision.size() > 0);
+ if (currentRevision == secondRevision) return;
+ firstRevision = currentRevision;
+ if (secondRevision.size() > 0) showDiff->setEnabled(true);
+ selectFirst->setText(tr("First: %1...").arg(firstRevision.left(12)));
+}
+
+void SwitchWorkspaceRevision::setSecondRevision()
+{
+ Q_ASSERT(currentRevision.size() > 0);
+ if (currentRevision == firstRevision) return;
+ secondRevision = currentRevision;
+ if (firstRevision.size() > 0) showDiff->setEnabled(true);
+ selectSecond->setText(tr("Second: %1...").arg(secondRevision.left(12)));
+}
+
+void SwitchWorkspaceRevision::enableDiffButtons(const QModelIndex & index)
+{
+ if (!index.isValid()) return;
+ currentRevision = index.data().toString();
+ selectFirst->setEnabled(true);
+ selectSecond->setEnabled(true);
+}
+
+void SwitchWorkspaceRevision::showDiffDialog()
+{
+ Q_ASSERT(firstRevision.size() > 0 && secondRevision.size() > 0);
+
+ RevisionDiff dlg(this);
+ dlg.init(".", firstRevision, secondRevision);
+ dlg.exec();
+}
+
============================================================
--- guitone/src/view/dialogs/SwitchWorkspaceRevision.h 8e9ba9782eaafa5700552d409af2a6a7db0f9bb4
+++ guitone/src/view/dialogs/SwitchWorkspaceRevision.h a0b1232436cc001948b1a9d11de0e598305505b9
@@ -37,7 +37,7 @@ public:
Q_OBJECT
public:
- SwitchWorkspaceRevision(QWidget*);
+ SwitchWorkspaceRevision(QWidget *);
~SwitchWorkspaceRevision();
private:
@@ -49,12 +49,20 @@ private:
Keys * keysModel;
QCompleter * selectorCompleter;
+ QString firstRevision;
+ QString secondRevision;
+ QString currentRevision;
+
private slots:
void triggerRevisionSearch();
void handleInvalidSelection(QString);
- void enableDisableOkButton(const QModelIndex&);
+ void enableDisableOkButton(const QModelIndex &);
void setCompleter(int);
void accept();
+ void setFirstRevision();
+ void setSecondRevision();
+ void enableDiffButtons(const QModelIndex &);
+ void showDiffDialog();
};
#endif