diff --git a/src/plugins/git/remotedialog.cpp b/src/plugins/git/remotedialog.cpp index 4f2efcee4ad..b666abddaa4 100644 --- a/src/plugins/git/remotedialog.cpp +++ b/src/plugins/git/remotedialog.cpp @@ -103,6 +103,7 @@ RemoteDialog::RemoteDialog(QWidget *parent) : connect(m_ui->addButton, SIGNAL(clicked()), this, SLOT(addRemote())); connect(m_ui->fetchButton, SIGNAL(clicked()), this, SLOT(fetchFromRemote())); connect(m_ui->removeButton, SIGNAL(clicked()), this, SLOT(removeRemote())); + connect(m_ui->refreshButton, SIGNAL(clicked()), this, SLOT(refreshRemotes())); } RemoteDialog::~RemoteDialog() @@ -126,6 +127,11 @@ void RemoteDialog::refresh(const QString &repository, bool force) } } +void RemoteDialog::refreshRemotes() +{ + refresh(m_remoteModel->workingDirectory(), true); +} + void RemoteDialog::addRemote() { if (!m_addDialog) diff --git a/src/plugins/git/remotedialog.h b/src/plugins/git/remotedialog.h index 72683b5292c..4458bf544c7 100644 --- a/src/plugins/git/remotedialog.h +++ b/src/plugins/git/remotedialog.h @@ -80,6 +80,7 @@ public: public slots: void refresh(const QString &repository, bool force); + void refreshRemotes(); void addRemote(); void removeRemote(); void fetchFromRemote(); diff --git a/src/plugins/git/remotedialog.ui b/src/plugins/git/remotedialog.ui index 718a6d8663e..bb52f12b1e6 100644 --- a/src/plugins/git/remotedialog.ui +++ b/src/plugins/git/remotedialog.ui @@ -16,14 +16,33 @@ - - + + + 4 + + + 4 + + Repository: Dummy + + + + + 0 + 0 + + + + Re&fresh + + + @@ -33,6 +52,15 @@ Remotes + + 9 + + + 4 + + + 4 + @@ -63,7 +91,7 @@ - Add... + &Add... false @@ -73,14 +101,14 @@ - Fetch + F&etch - Remove + &Remove false diff --git a/src/plugins/git/remotemodel.cpp b/src/plugins/git/remotemodel.cpp index 8499f6d9c67..d6a122fd9e1 100644 --- a/src/plugins/git/remotemodel.cpp +++ b/src/plugins/git/remotemodel.cpp @@ -58,11 +58,6 @@ RemoteModel::RemoteModel(GitClient *client, QObject *parent) : m_client(client) { } -bool RemoteModel::refresh(const QString &workingDirectory, QString *errorMessage) -{ - return refreshRemotes(workingDirectory, errorMessage); -} - QString RemoteModel::remoteName(int row) const { return m_remotes.at(row).name; @@ -77,11 +72,11 @@ bool RemoteModel::removeRemote(int row) { QString output; QString error; - bool success = runGitRemoteCommand(m_workingDirectory, - QStringList() << QLatin1String("rm") << remoteName(row), - &output, &error); + bool success = m_client->synchronousRemoteCmd(m_workingDirectory, + QStringList() << QLatin1String("rm") << remoteName(row), + &output, &error); if (success) - success = refreshRemotes(m_workingDirectory, &error); + success = refresh(m_workingDirectory, &error); return success; } @@ -92,11 +87,11 @@ bool RemoteModel::addRemote(const QString &name, const QString &url) if (name.isEmpty() || url.isEmpty()) return false; - bool success = runGitRemoteCommand(m_workingDirectory, - QStringList() << QLatin1String("add") << name << url, - &output, &error); + bool success = m_client->synchronousRemoteCmd(m_workingDirectory, + QStringList() << QLatin1String("add") << name << url, + &output, &error); if (success) - success = refreshRemotes(m_workingDirectory, &error); + success = refresh(m_workingDirectory, &error); return success; } @@ -104,11 +99,11 @@ bool RemoteModel::renameRemote(const QString &oldName, const QString &newName) { QString output; QString error; - bool success = runGitRemoteCommand(m_workingDirectory, - QStringList() << QLatin1String("rename") << oldName << newName, - &output, &error); + bool success = m_client->synchronousRemoteCmd(m_workingDirectory, + QStringList() << QLatin1String("rename") << oldName << newName, + &output, &error); if (success) - success = refreshRemotes(m_workingDirectory, &error); + success = refresh(m_workingDirectory, &error); return success; } @@ -116,11 +111,11 @@ bool RemoteModel::updateUrl(const QString &name, const QString &newUrl) { QString output; QString error; - bool success = runGitRemoteCommand(m_workingDirectory, - QStringList() << QLatin1String("set-url") << name << newUrl, - &output, &error); + bool success = m_client->synchronousRemoteCmd(m_workingDirectory, + QStringList() << QLatin1String("set-url") << name << newUrl, + &output, &error); if (success) - success = refreshRemotes(m_workingDirectory, &error); + success = refresh(m_workingDirectory, &error); return success; } @@ -189,11 +184,6 @@ Qt::ItemFlags RemoteModel::flags(const QModelIndex &index) const return m_flags; } -bool RemoteModel::runGitRemoteCommand(const QString &workingDirectory, const QStringList &additionalArgs, QString *output, QString *errorMessage) -{ - return m_client->synchronousRemoteCmd(workingDirectory, additionalArgs, output, errorMessage); -} - void RemoteModel::clear() { if (m_remotes.isEmpty()) @@ -202,13 +192,13 @@ void RemoteModel::clear() reset(); } -bool RemoteModel::refreshRemotes(const QString &workingDirectory, QString *errorMessage) +bool RemoteModel::refresh(const QString &workingDirectory, QString *errorMessage) { // Run branch command with verbose. QStringList remoteArgs; remoteArgs << QLatin1String("-v"); QString output; - if (!runGitRemoteCommand(workingDirectory, remoteArgs, &output, errorMessage)) + if (!m_client->synchronousRemoteCmd(workingDirectory, remoteArgs, &output, errorMessage)) return false; // Parse output m_workingDirectory = workingDirectory; diff --git a/src/plugins/git/remotemodel.h b/src/plugins/git/remotemodel.h index 60939e0172d..312fc755c96 100644 --- a/src/plugins/git/remotemodel.h +++ b/src/plugins/git/remotemodel.h @@ -47,8 +47,8 @@ class RemoteModel : public QAbstractTableModel { public: explicit RemoteModel(GitClient *client, QObject *parent = 0); - virtual void clear(); - virtual bool refresh(const QString &workingDirectory, QString *errorMessage); + void clear(); + bool refresh(const QString &workingDirectory, QString *errorMessage); QString remoteName(int row) const; QString remoteUrl(int row) const; @@ -80,10 +80,6 @@ protected: }; typedef QList RemoteList; - /* Parse git output and populate m_branches. */ - bool refreshRemotes(const QString &workingDirectory, QString *errorMessage); - bool runGitRemoteCommand(const QString &workingDirectory, const QStringList &additionalArgs, QString *output, QString *errorMessage); - private: const Qt::ItemFlags m_flags;