diff --git a/src/plugins/git/branchview.cpp b/src/plugins/git/branchview.cpp index 406304608dd..4619a21e7ec 100644 --- a/src/plugins/git/branchview.cpp +++ b/src/plugins/git/branchview.cpp @@ -67,7 +67,6 @@ BranchView::BranchView() : m_model(new BranchModel(GitPlugin::client(), this)) { m_addButton->setIcon(Utils::Icons::PLUS_TOOLBAR.icon()); - m_addButton->setToolTip(tr("Add Branch")); m_addButton->setProperty("noArrow", true); connect(m_addButton, &QToolButton::clicked, this, &BranchView::add); @@ -126,10 +125,12 @@ void BranchView::refresh(const QString &repository, bool force) m_repository = repository; if (m_repository.isEmpty()) { m_repositoryLabel->setText(tr("")); + m_addButton->setToolTip(tr("Create Git Repository...")); m_branchView->setEnabled(false); } else { m_repositoryLabel->setText(QDir::toNativeSeparators(m_repository)); m_repositoryLabel->setToolTip(GitPlugin::msgRepositoryLabel(m_repository)); + m_addButton->setToolTip(tr("Add Branch...")); m_branchView->setEnabled(true); } QString errorMessage; @@ -252,6 +253,11 @@ QModelIndex BranchView::selectedIndex() bool BranchView::add() { + if (m_repository.isEmpty()) { + GitPlugin::instance()->initRepository(); + return true; + } + QModelIndex trackedIndex = selectedIndex(); QString trackedBranch = m_model->fullName(trackedIndex); if (trackedBranch.isEmpty()) { diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index cafcc554702..87aac67ef09 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -1319,6 +1319,11 @@ void GitPlugin::manageRemotes() showNonModalDialog(currentState().topLevel(), m_remoteDialog); } +void GitPlugin::initRepository() +{ + createRepository(); +} + void GitPlugin::stashList() { showNonModalDialog(currentState().topLevel(), m_stashDialog); diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index fde722bd4b8..8722cc058d8 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -93,6 +93,7 @@ public: QObject *remoteCommand(const QStringList &options, const QString &workingDirectory, const QStringList &args) override; void manageRemotes(); + void initRepository(); protected: void updateActions(VcsBase::VcsBasePlugin::ActionState) override;