Support for force closing a workspace
FossilOrigin-Name: 16b4d25fe14b5d8a9398db1a31e683382b532473
This commit is contained in:
@@ -114,9 +114,15 @@ bool Fossil::createRepository(const QString& repositoryPath)
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
bool Fossil::closeWorkspace()
|
||||
bool Fossil::closeWorkspace(bool force)
|
||||
{
|
||||
if(!runFossil(QStringList() << "close"))
|
||||
QStringList params;
|
||||
params << "close";
|
||||
|
||||
if(force)
|
||||
params << "--force";
|
||||
|
||||
if(!runFossil(params))
|
||||
return false;
|
||||
|
||||
stopUI();
|
||||
|
@@ -22,7 +22,7 @@ public:
|
||||
|
||||
// Workspace
|
||||
bool createWorkspace(const QString &repositoryPath, const QString& workspacePath);
|
||||
bool closeWorkspace();
|
||||
bool closeWorkspace(bool force=false);
|
||||
void setWorkspace(const QString &_workspacePath);
|
||||
bool pushWorkspace(const QUrl& url);
|
||||
bool pullWorkspace(const QUrl& url);
|
||||
|
@@ -540,9 +540,26 @@ void MainWindow::on_actionCloseRepository_triggered()
|
||||
return;
|
||||
|
||||
// Close Repo
|
||||
if(!getWorkspace().close())
|
||||
bool success = getWorkspace().close();
|
||||
|
||||
if(!success)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Error"), tr("Cannot close the workspace.\nAre there still uncommitted changes available?"), QMessageBox::Ok );
|
||||
if(QMessageBox::Yes !=DialogQuery(this, tr("Close Workspace"),
|
||||
tr("Could not close the workspace.\n"
|
||||
"Perhaps there are uncommitted changes available\n"
|
||||
"Would you like to force closing this workspace?")))
|
||||
{
|
||||
refresh();
|
||||
return;
|
||||
}
|
||||
|
||||
success = getWorkspace().close(true);
|
||||
}
|
||||
|
||||
if(!success)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Error"), tr("Could not close the workspace."), QMessageBox::Ok);
|
||||
refresh();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -74,9 +74,9 @@ public:
|
||||
return fossil().getWorkspaceState();
|
||||
}
|
||||
|
||||
bool close()
|
||||
bool close(bool force=false)
|
||||
{
|
||||
return fossil().closeWorkspace();
|
||||
return fossil().closeWorkspace(force);
|
||||
}
|
||||
|
||||
bool cloneRepository(const QString &repository, const QUrl &url, const QUrl &proxyUrl)
|
||||
|
Reference in New Issue
Block a user