intr=QMessageBox::warning(this,tr("Open Repository"),dir+"\n\n"+tr("No such folder")+"\n\n"+tr("Remove from bookmark ?"),QMessageBox::Ok,QMessageBox::Cancel);
if(r==QMessageBox::Ok){
removeSelectedRepositoryFromBookmark(false);
}
return;
}
if(!Git::isValidWorkingCopy(dir)){
QMessageBox::warning(this,tr("Open Repository"),tr("Not a valid git repository")+"\n\n"+dir);
intr=QMessageBox::warning(this,tr("Confirm Remove"),tr("Are you sure you want to remove the repository from bookmarks ?")+'\n'+tr("(Files will NOT be deleted)"),QMessageBox::Ok,QMessageBox::Cancel);
if(r!=QMessageBox::Ok)return;
}
auto*repos=getReposPtr();
if(index>=0&&index<repos->size()){
repos->erase(repos->begin()+index);
saveRepositoryBookmarks();
updateRepositoriesList();
}
}
voidMainWindow::clone(QStringurl,QStringdir)
{
if(!isOnlineMode())return;
if(dir.isEmpty()){
dir=defaultWorkingDir();
}
while(1){
QStringssh_key;
CloneDialogdlg(this,url,dir,&m1->gcx);
if(dlg.exec()!=QDialog::Accepted){
return;
}
constCloneDialog::Actionaction=dlg.action();
url=dlg.url();
dir=dlg.dir();
ssh_key=dlg.overridedSshKey();
RepositoryItemrepos_item_data;
repos_item_data.local_dir=dir;
repos_item_data.local_dir.replace('\\','/');
repos_item_data.name=makeRepositoryName(dir);
repos_item_data.ssh_key=ssh_key;
// クローン先ディレクトリを求める
Git::CloneDataclone_data=Git::preclone(url,dir);
if(action==CloneDialog::Action::Clone){
// 既存チェック
QFileInfoinfo(dir);
if(info.isFile()){
QStringmsg=dir+"\n\n"+tr("A file with same name already exists");
QMessageBox::warning(this,tr("Clone"),msg);
continue;
}
if(info.isDir()){
QStringmsg=dir+"\n\n"+tr("A folder with same name already exists");