forked from qt-creator/qt-creator
Subversion: Use the new AspectContainer::applied signal
Change-Id: Ie16ed5afc59a2f98f0564b9956550cdd08fa4b09 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -321,7 +321,7 @@ private:
|
||||
QAction *m_menuAction = nullptr;
|
||||
bool m_submitActionTriggered = false;
|
||||
|
||||
SubversionSettingsPage m_settingsPage{[this] { configurationChanged(); }, &m_settings};
|
||||
SubversionSettingsPage m_settingsPage{&m_settings};
|
||||
|
||||
public:
|
||||
VcsSubmitEditorFactory submitEditorFactory {
|
||||
@@ -557,6 +557,8 @@ SubversionPluginPrivate::SubversionPluginPrivate()
|
||||
connect(m_revertRepositoryAction, &QAction::triggered, this, &SubversionPluginPrivate::revertAll);
|
||||
subversionMenu->addAction(command);
|
||||
m_commandLocator->appendCommand(command);
|
||||
|
||||
connect(&m_settings, &AspectContainer::applied, this, &IVersionControl::configurationChanged);
|
||||
}
|
||||
|
||||
bool SubversionPluginPrivate::isVcsDirectory(const FilePath &fileName) const
|
||||
|
||||
@@ -108,66 +108,41 @@ bool SubversionSettings::hasAuthentication() const
|
||||
return useAuthentication.value() && !userName.value().isEmpty();
|
||||
}
|
||||
|
||||
// SubversionSettingsPage
|
||||
|
||||
class SubversionSettingsPageWidget final : public Core::IOptionsPageWidget
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(Subversion::Internal::SettingsPageWidget)
|
||||
|
||||
public:
|
||||
SubversionSettingsPageWidget(const std::function<void()> &onApply, SubversionSettings *settings);
|
||||
|
||||
void apply() final;
|
||||
|
||||
private:
|
||||
std::function<void()> m_onApply;
|
||||
SubversionSettings *m_settings;
|
||||
};
|
||||
|
||||
SubversionSettingsPageWidget::SubversionSettingsPageWidget(const std::function<void()> &onApply,
|
||||
SubversionSettings *settings)
|
||||
: m_onApply(onApply), m_settings(settings)
|
||||
{
|
||||
SubversionSettings &s = *m_settings;
|
||||
using namespace Layouting;
|
||||
|
||||
Column {
|
||||
Group {
|
||||
Title(tr("Configuration")),
|
||||
s.binaryPath
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(tr("Authentication"), &s.useAuthentication),
|
||||
Form {
|
||||
s.userName,
|
||||
s.password,
|
||||
}
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(tr("Miscellaneous")),
|
||||
Row { s.logCount, s.timeout, Stretch() },
|
||||
s.promptOnSubmit,
|
||||
s.spaceIgnorantAnnotation,
|
||||
},
|
||||
|
||||
Stretch()
|
||||
}.attachTo(this);
|
||||
}
|
||||
|
||||
void SubversionSettingsPageWidget::apply()
|
||||
{
|
||||
m_settings->apply();
|
||||
m_onApply();
|
||||
}
|
||||
|
||||
SubversionSettingsPage::SubversionSettingsPage(const std::function<void()> &onApply, SubversionSettings *settings)
|
||||
SubversionSettingsPage::SubversionSettingsPage(SubversionSettings *settings)
|
||||
{
|
||||
setId(VcsBase::Constants::VCS_ID_SUBVERSION);
|
||||
setDisplayName(SubversionSettingsPageWidget::tr("Subversion"));
|
||||
setDisplayName(SubversionSettings::tr("Subversion"));
|
||||
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
|
||||
setWidgetCreator([onApply, settings] { return new SubversionSettingsPageWidget(onApply, settings); });
|
||||
setSettings(settings);
|
||||
|
||||
setLayouter([settings](QWidget *widget) {
|
||||
SubversionSettings &s = *settings;
|
||||
using namespace Layouting;
|
||||
|
||||
Column {
|
||||
Group {
|
||||
Title(SubversionSettings::tr("Configuration")),
|
||||
s.binaryPath
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(SubversionSettings::tr("Authentication"), &s.useAuthentication),
|
||||
Form {
|
||||
s.userName,
|
||||
s.password,
|
||||
}
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(SubversionSettings::tr("Miscellaneous")),
|
||||
Row { s.logCount, s.timeout, Stretch() },
|
||||
s.promptOnSubmit,
|
||||
s.spaceIgnorantAnnotation,
|
||||
},
|
||||
|
||||
Stretch()
|
||||
}.attachTo(widget);
|
||||
});
|
||||
}
|
||||
|
||||
} // Internal
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
class SubversionSettingsPage final : public Core::IOptionsPage
|
||||
{
|
||||
public:
|
||||
SubversionSettingsPage(const std::function<void()> &onApply, SubversionSettings *settings);
|
||||
explicit SubversionSettingsPage(SubversionSettings *settings);
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
Reference in New Issue
Block a user