forked from qt-creator/qt-creator
Gerrit: Update remotes on settings change
If the user is changed, we need to refresh at least the fallback server. Task-number: QTCREATORBUG-20536 Change-Id: If21830ae5607907db9aaee164bc85b971ff93010 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
4a868d6a18
commit
909f30f006
@@ -216,6 +216,23 @@ void GerritDialog::refresh()
|
||||
m_ui->treeView->sortByColumn(-1);
|
||||
}
|
||||
|
||||
void GerritDialog::scheduleUpdateRemotes()
|
||||
{
|
||||
if (isVisible())
|
||||
updateRemotes();
|
||||
else
|
||||
m_shouldUpdateRemotes = true;
|
||||
}
|
||||
|
||||
void GerritDialog::showEvent(QShowEvent *event)
|
||||
{
|
||||
QDialog::showEvent(event);
|
||||
if (m_shouldUpdateRemotes) {
|
||||
m_shouldUpdateRemotes = false;
|
||||
updateRemotes();
|
||||
}
|
||||
}
|
||||
|
||||
void GerritDialog::remoteChanged()
|
||||
{
|
||||
const GerritServer server = m_ui->remoteComboBox->currentServer();
|
||||
|
||||
@@ -62,6 +62,7 @@ public:
|
||||
void fetchStarted(const QSharedPointer<Gerrit::Internal::GerritChange> &change);
|
||||
void fetchFinished();
|
||||
void refresh();
|
||||
void scheduleUpdateRemotes();
|
||||
|
||||
signals:
|
||||
void fetchDisplay(const QSharedPointer<Gerrit::Internal::GerritChange> &);
|
||||
@@ -77,6 +78,7 @@ private:
|
||||
void slotFetchCheckout();
|
||||
void remoteChanged();
|
||||
void updateRemotes(bool forceReload = false);
|
||||
void showEvent(QShowEvent *event) override;
|
||||
|
||||
void manageProgressIndicator();
|
||||
|
||||
@@ -101,6 +103,7 @@ private:
|
||||
QString m_repository;
|
||||
bool m_fetchRunning = false;
|
||||
bool m_updatingRemotes = false;
|
||||
bool m_shouldUpdateRemotes = false;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -72,6 +72,7 @@ void GerritOptionsPage::apply()
|
||||
newParameters.setPortFlagBySshType();
|
||||
*m_parameters = newParameters;
|
||||
m_parameters->toSettings(Core::ICore::settings());
|
||||
emit settingsChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,9 @@ public:
|
||||
void apply() override;
|
||||
void finish() override;
|
||||
|
||||
signals:
|
||||
void settingsChanged();
|
||||
|
||||
private:
|
||||
const QSharedPointer<GerritParameters> &m_parameters;
|
||||
QPointer<GerritOptionsWidget> m_widget;
|
||||
|
||||
@@ -292,7 +292,12 @@ bool GerritPlugin::initialize(ActionContainer *ac)
|
||||
connect(pushAction, &QAction::triggered, this, [this]() { push(); });
|
||||
ac->addAction(m_pushToGerritCommand);
|
||||
|
||||
new GerritOptionsPage(m_parameters, this);
|
||||
auto options = new GerritOptionsPage(m_parameters, this);
|
||||
connect(options, &GerritOptionsPage::settingsChanged,
|
||||
this, [this] {
|
||||
if (m_dialog)
|
||||
m_dialog->scheduleUpdateRemotes();
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user