Vcs: Move handling of settings from VcsBaseClient to VcsBaseClientImpl

... and update users of that functionality accordingly.

Unexpected plus: Now every supported VCS actually saves their setting
when requested.

Change-Id: I02db7b2ce14e5f52d26409b2a01aea290c2a294a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Tobias Hunger
2015-03-26 12:22:29 +01:00
parent d3100774f9
commit 90ce38da39
49 changed files with 342 additions and 383 deletions

View File

@@ -70,40 +70,41 @@ class CvsDiffParameterWidget : public VcsBaseEditorParameterWidget
{
Q_OBJECT
public:
explicit CvsDiffParameterWidget(CvsSettings *settings, QWidget *parent = 0);
explicit CvsDiffParameterWidget(VcsBaseClientSettings &settings, QWidget *parent = 0);
QStringList arguments() const;
private:
const CvsSettings *m_settings;
VcsBaseClientSettings &m_settings;
};
CvsDiffParameterWidget::CvsDiffParameterWidget(CvsSettings *settings, QWidget *parent)
: VcsBaseEditorParameterWidget(parent),
m_settings(settings)
CvsDiffParameterWidget::CvsDiffParameterWidget(VcsBaseClientSettings &settings,
QWidget *parent) :
VcsBaseEditorParameterWidget(parent),
m_settings(settings)
{
mapSetting(addToggleButton(QLatin1String("-w"), tr("Ignore Whitespace")),
settings->boolPointer(CvsSettings::diffIgnoreWhiteSpaceKey));
settings.boolPointer(CvsSettings::diffIgnoreWhiteSpaceKey));
mapSetting(addToggleButton(QLatin1String("-B"), tr("Ignore Blank Lines")),
settings->boolPointer(CvsSettings::diffIgnoreBlankLinesKey));
settings.boolPointer(CvsSettings::diffIgnoreBlankLinesKey));
}
QStringList CvsDiffParameterWidget::arguments() const
{
QStringList args;
args = m_settings->stringValue(CvsSettings::diffOptionsKey).split(QLatin1Char(' '), QString::SkipEmptyParts);
args = m_settings.stringValue(CvsSettings::diffOptionsKey).split(QLatin1Char(' '),
QString::SkipEmptyParts);
args += VcsBaseEditorParameterWidget::arguments();
return args;
}
CvsClient::CvsClient(CvsSettings *settings) :
VcsBaseClient(settings)
CvsClient::CvsClient() : VcsBaseClient(new CvsSettings)
{
setDiffParameterWidgetCreator([=] { return new CvsDiffParameterWidget(settings); });
setDiffParameterWidgetCreator([this] { return new CvsDiffParameterWidget(settings()); });
}
CvsSettings *CvsClient::settings() const
CvsSettings &CvsClient::settings() const
{
return dynamic_cast<CvsSettings *>(VcsBaseClient::settings());
return static_cast<CvsSettings &>(VcsBaseClient::settings());
}
Core::Id CvsClient::vcsEditorKind(VcsCommandTag cmd) const