- Cloning now uses the keychain to store credentials, and sets the default remote

- Clone target fossil file now adds the fossil extension if missing
- Fixed clipboard URL parsing for clone url
- Added more actions to disable when a valid workspace is not available


FossilOrigin-Name: e7d9b59c32aa0d0ad5c97b24d7562e448dad16f3
This commit is contained in:
kostas 2015-06-02 14:48:51 +00:00
parent e71c3750cb
commit d87c651d45
4 changed files with 38 additions and 12 deletions

View File

@ -1,5 +1,5 @@
C Fixed\slocalization\sconversion\sscript\sfor\senvironments\swithout\sBash.\sThanks\sRussell\n
D 2015-05-29T20:26:33.541
C -\sCloning\snow\suses\sthe\skeychain\sto\sstore\scredentials,\sand\ssets\sthe\sdefault\sremote\n-\sClone\starget\sfossil\sfile\snow\sadds\sthe\sfossil\sextension\sif\smissing\n-\sFixed\sclipboard\sURL\sparsing\sfor\sclone\surl\n-\sAdded\smore\sactions\sto\sdisable\swhen\sa\svalid\sworkspace\sis\snot\savailable\n
D 2015-06-02T14:48:51.127
F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35
F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b
F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b
@ -208,7 +208,7 @@ F rsrc/icons/fuel.png 40daf53b7f6bdcdd0d6aa5ef433d078ec5ea4342
F rsrc/resources.qrc 388225a5b09c56c12d4cbde8b4d0b4466740fc97
F src/BrowserWidget.cpp 8b8f545cdff4a4188edc698a1b4777f5df46f056
F src/BrowserWidget.h 764d66aa9a93b890298bd0301097739cb4e16597
F src/CloneDialog.cpp 4fc5aa8146ac63ba6ba7341b1635b3025819d708
F src/CloneDialog.cpp c341622b01d493387d6e4928018b3392d92471e8
F src/CloneDialog.h 8813d91f893eb3eb86a4ea5e50f9a53a0ea07047
F src/CommitDialog.cpp bbf5fe1c66d28068cc3fd061f4f9f1faa9e89196
F src/CommitDialog.h 921bf27c0c538ab9e9d6bdc750064337d346270b
@ -224,7 +224,7 @@ F src/FslSettingsDialog.cpp 2531d3709f0eab66651671e3edead2ca720d07d5
F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7
F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c
F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261
F src/MainWindow.cpp 3c2ecc74550811b1c5b271aeb3df36e3ee981f3b
F src/MainWindow.cpp dd63f28e8e76be4d1889d846d3fa5e10ef57a928
F src/MainWindow.h 1ecfb255c8e013cf4e2d07bfd485ed41d26c97c7
F src/RemoteDialog.cpp 8540cc5e2e41c4127ed8a028d84691604fa6ecac
F src/RemoteDialog.h 5e0438c2bd7c79b1bb44bfbd58c2181b544a9e5d
@ -252,7 +252,7 @@ F ui/MainWindow.ui 5857b45ed96fb027b6159e44742e9afaa3e89cfb
F ui/RemoteDialog.ui 95a4750d972ed8c49bb10b95db91ff16cfe2dd0b
F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd
F ui/SettingsDialog.ui 4c480cd595a32664d01c85bf74845c4282fc0068
P 28087b899e38a3881855cf1e7272da3fb13b3462
R 71dc66119bd6197ccc43c2f63bcb6903
P 9a06e230f398a3c93247382ba8f37d29201268f8
R 9ec0409d6daac9f2e3cfb869bd2ddac0
U kostas
Z a0035a9ebb38ddec4dd5c9d8986c6e6d
Z 8b0caa86a0cd20719647e3c92b4abcb3

View File

@ -1 +1 @@
9a06e230f398a3c93247382ba8f37d29201268f8
e7d9b59c32aa0d0ad5c97b24d7562e448dad16f3

View File

@ -40,7 +40,7 @@ bool CloneDialog::run(QWidget *parent, QUrl &url, QString &repository, QUrl &url
dlg.ui->linePassword->setText(nurl.password());
nurl.setUserName("");
nurl.setPassword("");
dlg.ui->lineURL->setText(nurl.toString());
dlg.ui->lineURL->setText(UrlToStringNoCredentials(nurl));
}
}
@ -91,6 +91,11 @@ void CloneDialog::GetRepositoryPath(QString &pathResult)
filter,
&filter,
QFileDialog::DontConfirmOverwrite);
// Ensure that it ends in the required extension (On GTK, Qt doesn't seem to add it automatically)
QFileInfo fi(pathResult);
if(fi.suffix().toLower() != ("." FOSSIL_EXT))
pathResult += "." FOSSIL_EXT;
}
//-----------------------------------------------------------------------------

View File

@ -521,7 +521,25 @@ void MainWindow::on_actionCloneRepository_triggered()
return;
}
openWorkspace(repository);
if(!openWorkspace(repository))
return;
// Store credentials
if(!url.isLocalFile())
{
KeychainDelete(this, url);
if(!KeychainSet(this, url))
QMessageBox::critical(this, tr("Error"), tr("Could not store information to keychain."), QMessageBox::Ok );
}
// Create Remote
url.setPassword("");
QString name = UrlToStringNoCredentials(url);
getWorkspace().addRemote(url, name);
getWorkspace().setRemoteDefault(url);
updateWorkspaceView();
}
//------------------------------------------------------------------------------
@ -559,6 +577,7 @@ void MainWindow::onOpenRecent()
void MainWindow::enableActions(bool on)
{
QAction *actions[] = {
ui->actionCloseRepository,
ui->actionCommit,
ui->actionDiff,
ui->actionAdd,
@ -585,6 +604,7 @@ void MainWindow::enableActions(bool on)
ui->actionDeleteTag,
ui->actionCreateBranch,
ui->actionMergeBranch,
ui->actionFossilSettings
};
for(size_t i=0; i<COUNTOF(actions); ++i)
@ -623,8 +643,9 @@ bool MainWindow::refresh()
setStatus("");
enableActions(true);
if(!fossil().getProjectName().isEmpty())
title += " - " + fossil().getProjectName();
const QString &project_name = fossil().getProjectName();
if(!project_name.isEmpty())
title += " - " + project_name;
setWindowTitle(title);
return true;