Added "Update to Revision" Action
FossilOrigin-Name: 203cae37a6553c26a3844dcfdd3386eae9be288f
This commit is contained in:
parent
b3ba622ef2
commit
4cd2e6e5b4
13
fuel.pro
13
fuel.pro
@ -46,34 +46,37 @@ SOURCES += src/main.cpp\
|
||||
src/CommitDialog.cpp \
|
||||
src/FileActionDialog.cpp \
|
||||
src/SettingsDialog.cpp \
|
||||
src/CloneDialog.cpp \
|
||||
src/UpdateDialog.cpp \
|
||||
src/Utils.cpp \
|
||||
src/FileTableView.cpp \
|
||||
src/CloneDialog.cpp \
|
||||
src/LoggedProcess.cpp \
|
||||
src/BrowserWidget.cpp \
|
||||
src/CustomWebView.cpp \
|
||||
src/Fossil.cpp \
|
||||
src/Workspace.cpp
|
||||
src/Workspace.cpp
|
||||
|
||||
HEADERS += src/MainWindow.h \
|
||||
src/CommitDialog.h \
|
||||
src/FileActionDialog.h \
|
||||
src/SettingsDialog.h \
|
||||
src/CloneDialog.h \
|
||||
src/UpdateDialog.h \
|
||||
src/Utils.h \
|
||||
src/FileTableView.h \
|
||||
src/CloneDialog.h \
|
||||
src/LoggedProcess.h \
|
||||
src/BrowserWidget.h \
|
||||
src/CustomWebView.h \
|
||||
src/Fossil.h \
|
||||
src/Workspace.h
|
||||
src/Workspace.h
|
||||
|
||||
FORMS += ui/MainWindow.ui \
|
||||
ui/CommitDialog.ui \
|
||||
ui/FileActionDialog.ui \
|
||||
ui/SettingsDialog.ui \
|
||||
ui/CloneDialog.ui \
|
||||
ui/BrowserWidget.ui
|
||||
ui/BrowserWidget.ui \
|
||||
ui/UpdateDialog.ui
|
||||
|
||||
RESOURCES += \
|
||||
rsrc/resources.qrc
|
||||
|
25
manifest
25
manifest
@ -1,5 +1,5 @@
|
||||
C Renamed\supdateDirView\sto\supdateWorkspaceView\nDisabled\ssorting\sin\sthe\sworkspace\sview
|
||||
D 2015-05-02T14:37:35.228
|
||||
C Added\s"Update\sto\sRevision"\sAction\n
|
||||
D 2015-05-02T16:42:06.752
|
||||
F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35
|
||||
F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b
|
||||
F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b
|
||||
@ -15,7 +15,7 @@ F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e
|
||||
F doc/Building.txt 17b43fa23da764b5d1b828cc48c5a95e612bbd8f
|
||||
F doc/Changes.txt b03302545e4a6c0b16a30d623a7627f8aef65ef6
|
||||
F doc/License.txt 4cc77b90af91e615a64ae04893fdffa7939db84c
|
||||
F fuel.pro cda04943d336bd186ab428a81310d442aec94ca2
|
||||
F fuel.pro ffc65a5de975124eeb22032c6d9595f77ef284d8
|
||||
F intl/convert.bat 4222ae403418381452b843929d15259ea9850ab1 x
|
||||
F intl/convert.sh 2ca2179ff53e727f241925b75e19182607883c45 x
|
||||
F intl/de_DE.ts e2faceab920ac60c97bbc6fba038e261d51fc741
|
||||
@ -196,14 +196,16 @@ F src/FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8
|
||||
F src/FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
|
||||
F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2
|
||||
F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df
|
||||
F src/Fossil.cpp c19b0e9b510743e7a49c7f0d2b4c5eba4b93382e
|
||||
F src/Fossil.h 33b6845a8adbc351f82c5256282671a6c3d864d2
|
||||
F src/Fossil.cpp 35ee3e88a14e6673e991a3c743a4fa7ab5697a24
|
||||
F src/Fossil.h 7c91732020730f33e50663b0e5c66e6c35ad5cdc
|
||||
F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c
|
||||
F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261
|
||||
F src/MainWindow.cpp 5ed1c10b7ac306fa2594f7dae36028ac3cce3730
|
||||
F src/MainWindow.h 13810b522080c52541112a68890f75d20e3d8f13
|
||||
F src/MainWindow.cpp 8ae32de39af8917cdb5a5c7efc221da4a61154a1
|
||||
F src/MainWindow.h 8377cf134d64d74855b1795463356a7a817b149f
|
||||
F src/SettingsDialog.cpp a46cff5e5dd425e3dbdd15632abfd5829f5562b4
|
||||
F src/SettingsDialog.h 4e2790f581e991c744ae9f86580f1972b8c7ff43
|
||||
F src/UpdateDialog.cpp 54df56055ee5efe1170efbed495363fb14abc8e5
|
||||
F src/UpdateDialog.h e2252c7d555e161f946e99014a6e6c6b52b4b53c
|
||||
F src/Utils.cpp f78728e0817b1db23007ba0d2c5c26980ee7ebca
|
||||
F src/Utils.h 8ad68bd227bd999eb6ea92a70bb4be2d6788d912
|
||||
F src/Workspace.cpp fca14549ff85125a9fb7fd8a2722198055ea9f9a
|
||||
@ -215,9 +217,10 @@ F ui/BrowserWidget.ui 5ad98b13773afadb20a1a2c22148aaebe5dbd95d
|
||||
F ui/CloneDialog.ui 4886e7d4f258ea8b852b5eefc860396e35145712
|
||||
F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f
|
||||
F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d
|
||||
F ui/MainWindow.ui f18e1ca4dbbf1ad031dd6660e3b1bef927bf32e8
|
||||
F ui/MainWindow.ui 798a40a0fd715b0544f608543e09038e2b1fb69a
|
||||
F ui/SettingsDialog.ui 2b7c2870e0054b0f4106f495d85d02c0b814df8b
|
||||
P 304f9bd6c61babe7abc522c1a1301fe3f1887505
|
||||
R 8eb683509bb23eb5a25729fe59a5def6
|
||||
F ui/UpdateDialog.ui 129596c2deb60211f25cefd785696ca7c7c56d42
|
||||
P 330e0819bba257c674afdadb1ab097cd7f7ffe61
|
||||
R 44924937e1415e3426bc0d8efcc11b99
|
||||
U kostas
|
||||
Z e1f07217ec9a1e8b6c63138e70dfd9dd
|
||||
Z 30db0249ce1d6def72f41fe542e3c03a
|
||||
|
@ -1 +1 @@
|
||||
330e0819bba257c674afdadb1ab097cd7f7ffe61
|
||||
203cae37a6553c26a3844dcfdd3386eae9be288f
|
@ -286,7 +286,7 @@ bool Fossil::undoRepository(QStringList &result, bool explainOnly)
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
bool Fossil::updateRepository(QStringList &result, bool explainOnly)
|
||||
bool Fossil::updateRepository(QStringList &result, const QString &revision, bool explainOnly)
|
||||
{
|
||||
QStringList params;
|
||||
params << "update";
|
||||
@ -294,6 +294,12 @@ bool Fossil::updateRepository(QStringList &result, bool explainOnly)
|
||||
if(explainOnly)
|
||||
params << "--nochange";
|
||||
|
||||
if(revision.isEmpty())
|
||||
params << "--latest";
|
||||
else
|
||||
params << revision;
|
||||
|
||||
|
||||
result.clear();
|
||||
return runFossil(params, &result);
|
||||
}
|
||||
|
@ -83,7 +83,7 @@ public:
|
||||
bool pullRepository();
|
||||
bool cloneRepository(const QString &repository, const QUrl &url, const QUrl &proxyUrl);
|
||||
bool undoRepository(QStringList& result, bool explainOnly);
|
||||
bool updateRepository(QStringList& result, bool explainOnly);
|
||||
bool updateRepository(QStringList& result, const QString& revision, bool explainOnly);
|
||||
bool getFossilVersion(QString &version);
|
||||
|
||||
bool uiRunning() const;
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "CommitDialog.h"
|
||||
#include "FileActionDialog.h"
|
||||
#include "CloneDialog.h"
|
||||
#include "UpdateDialog.h"
|
||||
#include "Utils.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -1455,10 +1456,10 @@ void MainWindow::on_actionUpdate_triggered()
|
||||
QStringList res;
|
||||
|
||||
// Do test update
|
||||
if(!fossil().updateRepository(res, true))
|
||||
if(!fossil().updateRepository(res, "", true))
|
||||
return;
|
||||
|
||||
// Fixme: parse "changes: None. Already up-to-date" and avoid dialog
|
||||
// FIXME: parse "changes: None. Already up-to-date" and avoid dialog
|
||||
|
||||
if(res.length()==0)
|
||||
return;
|
||||
@ -1467,11 +1468,55 @@ void MainWindow::on_actionUpdate_triggered()
|
||||
return;
|
||||
|
||||
// Do update
|
||||
fossil().updateRepository(res, false);
|
||||
fossil().updateRepository(res, "", false);
|
||||
|
||||
refresh();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void MainWindow::on_actionUpdateRevision_triggered()
|
||||
{
|
||||
updateRevision("");
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void MainWindow::updateRevision(const QString &revision)
|
||||
{
|
||||
QStringList versions;
|
||||
versions.append(tr("Latest version"));
|
||||
versions += getWorkspace().getBranches();
|
||||
versions += getWorkspace().getTags();
|
||||
const QString latest = tr("Latest version");
|
||||
QString defaultval = latest;
|
||||
|
||||
if(!revision.isEmpty())
|
||||
defaultval = revision;
|
||||
|
||||
QString selected_revision = UpdateDialog::run(this, versions, defaultval);
|
||||
|
||||
if(selected_revision.isEmpty())
|
||||
return;
|
||||
else if(selected_revision == latest)
|
||||
selected_revision = ""; // Empty revision is "latest"
|
||||
|
||||
QStringList res;
|
||||
|
||||
// Do test update
|
||||
if(!fossil().updateRepository(res, selected_revision, true))
|
||||
return;
|
||||
|
||||
// FIXME: parse "changes: None. Already up-to-date" and avoid dialog
|
||||
if(res.length()==0)
|
||||
return;
|
||||
|
||||
if(!FileActionDialog::run(this, tr("Update"), tr("The following files will be updated.")+"\n"+tr("Are you sure?"), res))
|
||||
return;
|
||||
|
||||
// Do update
|
||||
fossil().updateRepository(res, selected_revision, false);
|
||||
refresh();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void MainWindow::loadFossilSettings()
|
||||
{
|
||||
@ -2160,3 +2205,4 @@ QMessageBox::StandardButton MainWindow::MainWinUICallback::Query(const QString &
|
||||
{
|
||||
return DialogQuery(mainWindow, title, query, buttons);
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,7 @@ private:
|
||||
void scanWorkspace();
|
||||
void applySettings();
|
||||
void updateSettings();
|
||||
void updateRevision(const QString& revision);
|
||||
const QString &getCurrentWorkspace();
|
||||
void setCurrentWorkspace(const QString &workspace);
|
||||
void log(const QString &text, bool isHTML=false);
|
||||
@ -112,6 +113,8 @@ private slots:
|
||||
void on_fileTableView_customContextMenuRequested(const QPoint &pos);
|
||||
void on_workspaceTreeView_customContextMenuRequested(const QPoint &pos);
|
||||
|
||||
void on_actionUpdateRevision_triggered();
|
||||
|
||||
private:
|
||||
class MainWinUICallback : public UICallback
|
||||
{
|
||||
|
34
src/UpdateDialog.cpp
Normal file
34
src/UpdateDialog.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#include "UpdateDialog.h"
|
||||
#include "ui_UpdateDialog.h"
|
||||
#include "Utils.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
UpdateDialog::UpdateDialog(QWidget *parent, const QStringList &completions, const QString &defaultValue) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::UpdateDialog),
|
||||
completer(completions, parent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->cmbRevision->setCompleter(&completer);
|
||||
|
||||
ui->cmbRevision->addItems(completions);
|
||||
|
||||
if(!defaultValue.isEmpty())
|
||||
ui->cmbRevision->setCurrentText(defaultValue);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
UpdateDialog::~UpdateDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
QString UpdateDialog::run(QWidget *parent, const QStringList &completions, const QString &defaultValue)
|
||||
{
|
||||
UpdateDialog dlg(parent, completions, defaultValue);
|
||||
|
||||
if(dlg.exec() != QDialog::Accepted)
|
||||
return QString("");
|
||||
return dlg.ui->cmbRevision->currentText();
|
||||
}
|
27
src/UpdateDialog.h
Normal file
27
src/UpdateDialog.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef UPDATEDIALOG_H
|
||||
#define UPDATEDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QCompleter>
|
||||
|
||||
namespace Ui {
|
||||
class UpdateDialog;
|
||||
}
|
||||
|
||||
class UpdateDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit UpdateDialog(QWidget *parent, const QStringList &completions, const QString &defaultValue);
|
||||
~UpdateDialog();
|
||||
|
||||
static QString run(QWidget *parent, const QStringList &completions, const QString &defaultValue);
|
||||
|
||||
|
||||
private:
|
||||
Ui::UpdateDialog *ui;
|
||||
QCompleter completer;
|
||||
};
|
||||
|
||||
#endif // UPDATEDIALOG_H
|
@ -293,6 +293,7 @@
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionCommit"/>
|
||||
<addaction name="actionUpdate"/>
|
||||
<addaction name="actionUpdateRevision"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionPush"/>
|
||||
<addaction name="actionPull"/>
|
||||
@ -889,6 +890,21 @@
|
||||
<string>Diff Stash</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionUpdateRevision">
|
||||
<property name="icon">
|
||||
<iconset resource="../rsrc/resources.qrc">
|
||||
<normaloff>:/icons/icons/Button Forward-01.png</normaloff>:/icons/icons/Button Forward-01.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>UpdateRevision</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Update the workspace to a specific revision</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+Shift+U</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
|
91
ui/UpdateDialog.ui
Normal file
91
ui/UpdateDialog.ui
Normal file
@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UpdateDialog</class>
|
||||
<widget class="QDialog" name="UpdateDialog">
|
||||
<property name="windowModality">
|
||||
<enum>Qt::WindowModal</enum>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>478</width>
|
||||
<height>81</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Update Workspace</string>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Revision</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="cmbRevision">
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>UpdateDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>UpdateDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
Loading…
x
Reference in New Issue
Block a user