forked from qt-creator/qt-creator
Vcs: De-pimpl VcsBaseClient
Not necessary in this case anyway, and a step towards merging client and pluginbase hierarchies. Change-Id: I2240afe14019b764c5bfe4dcccfb4db69bf45ad9 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -252,42 +252,16 @@ void VcsBaseClientImpl::saveSettings()
|
|||||||
settings().writeSettings(Core::ICore::settings());
|
settings().writeSettings(Core::ICore::settings());
|
||||||
}
|
}
|
||||||
|
|
||||||
class VcsBaseClientPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
VcsBaseEditorConfig *createDiffEditor(VcsBaseEditorWidget *editor);
|
|
||||||
VcsBaseEditorConfig *createLogEditor(VcsBaseEditorWidget *editor);
|
|
||||||
|
|
||||||
VcsBaseClient::ConfigCreator m_diffConfigCreator;
|
|
||||||
VcsBaseClient::ConfigCreator m_logConfigCreator;
|
|
||||||
};
|
|
||||||
|
|
||||||
VcsBaseEditorConfig *VcsBaseClientPrivate::createDiffEditor(VcsBaseEditorWidget *editor)
|
|
||||||
{
|
|
||||||
return m_diffConfigCreator ? m_diffConfigCreator(editor->toolBar()) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
VcsBaseEditorConfig *VcsBaseClientPrivate::createLogEditor(VcsBaseEditorWidget *editor)
|
|
||||||
{
|
|
||||||
return m_logConfigCreator ? m_logConfigCreator(editor->toolBar()) : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
VcsBaseClient::StatusItem::StatusItem(const QString &s, const QString &f) :
|
VcsBaseClient::StatusItem::StatusItem(const QString &s, const QString &f) :
|
||||||
flags(s), file(f)
|
flags(s), file(f)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
|
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
|
||||||
VcsBaseClientImpl(settings),
|
VcsBaseClientImpl(settings)
|
||||||
d(new VcsBaseClientPrivate)
|
|
||||||
{
|
{
|
||||||
qRegisterMetaType<QVariant>();
|
qRegisterMetaType<QVariant>();
|
||||||
}
|
}
|
||||||
|
|
||||||
VcsBaseClient::~VcsBaseClient()
|
|
||||||
{
|
|
||||||
delete d;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool VcsBaseClient::synchronousCreateRepository(const QString &workingDirectory,
|
bool VcsBaseClient::synchronousCreateRepository(const QString &workingDirectory,
|
||||||
const QStringList &extraOptions)
|
const QStringList &extraOptions)
|
||||||
{
|
{
|
||||||
@@ -412,7 +386,8 @@ void VcsBaseClient::diff(const QString &workingDir, const QStringList &files,
|
|||||||
|
|
||||||
VcsBaseEditorConfig *paramWidget = editor->editorConfig();
|
VcsBaseEditorConfig *paramWidget = editor->editorConfig();
|
||||||
if (!paramWidget) {
|
if (!paramWidget) {
|
||||||
paramWidget = d->createDiffEditor(editor);
|
if (m_diffConfigCreator)
|
||||||
|
paramWidget = m_diffConfigCreator(editor->toolBar());
|
||||||
if (paramWidget) {
|
if (paramWidget) {
|
||||||
paramWidget->setBaseArguments(extraOptions);
|
paramWidget->setBaseArguments(extraOptions);
|
||||||
// editor has been just created, createVcsEditor() didn't set a configuration widget yet
|
// editor has been just created, createVcsEditor() didn't set a configuration widget yet
|
||||||
@@ -453,7 +428,8 @@ void VcsBaseClient::log(const QString &workingDir, const QStringList &files,
|
|||||||
|
|
||||||
VcsBaseEditorConfig *paramWidget = editor->editorConfig();
|
VcsBaseEditorConfig *paramWidget = editor->editorConfig();
|
||||||
if (!paramWidget) {
|
if (!paramWidget) {
|
||||||
paramWidget = d->createLogEditor(editor);
|
if (m_logConfigCreator)
|
||||||
|
paramWidget = m_logConfigCreator(editor->toolBar());
|
||||||
if (paramWidget) {
|
if (paramWidget) {
|
||||||
paramWidget->setBaseArguments(extraOptions);
|
paramWidget->setBaseArguments(extraOptions);
|
||||||
// editor has been just created, createVcsEditor() didn't set a configuration widget yet
|
// editor has been just created, createVcsEditor() didn't set a configuration widget yet
|
||||||
@@ -550,12 +526,12 @@ ExitCodeInterpreter VcsBaseClient::exitCodeInterpreter(VcsCommandTag cmd) const
|
|||||||
|
|
||||||
void VcsBaseClient::setDiffConfigCreator(ConfigCreator creator)
|
void VcsBaseClient::setDiffConfigCreator(ConfigCreator creator)
|
||||||
{
|
{
|
||||||
d->m_diffConfigCreator = std::move(creator);
|
m_diffConfigCreator = std::move(creator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VcsBaseClient::setLogConfigCreator(ConfigCreator creator)
|
void VcsBaseClient::setLogConfigCreator(ConfigCreator creator)
|
||||||
{
|
{
|
||||||
d->m_logConfigCreator = std::move(creator);
|
m_logConfigCreator = std::move(creator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VcsBaseClient::import(const QString &repositoryRoot, const QStringList &files,
|
void VcsBaseClient::import(const QString &repositoryRoot, const QStringList &files,
|
||||||
|
@@ -51,7 +51,6 @@ class VcsBaseEditorWidget;
|
|||||||
class VcsBaseClientSettings;
|
class VcsBaseClientSettings;
|
||||||
class VcsJob;
|
class VcsJob;
|
||||||
class VcsBaseClientImplPrivate;
|
class VcsBaseClientImplPrivate;
|
||||||
class VcsBaseClientPrivate;
|
|
||||||
class VcsBaseEditorConfig;
|
class VcsBaseEditorConfig;
|
||||||
|
|
||||||
class VCSBASE_EXPORT VcsBaseClientImpl : public QObject
|
class VCSBASE_EXPORT VcsBaseClientImpl : public QObject
|
||||||
@@ -147,7 +146,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
explicit VcsBaseClient(VcsBaseClientSettings *settings);
|
explicit VcsBaseClient(VcsBaseClientSettings *settings);
|
||||||
~VcsBaseClient() override;
|
|
||||||
virtual bool synchronousCreateRepository(const QString &workingDir,
|
virtual bool synchronousCreateRepository(const QString &workingDir,
|
||||||
const QStringList &extraOptions = QStringList());
|
const QStringList &extraOptions = QStringList());
|
||||||
virtual bool synchronousClone(const QString &workingDir,
|
virtual bool synchronousClone(const QString &workingDir,
|
||||||
@@ -239,8 +238,8 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void statusParser(const QString&);
|
void statusParser(const QString&);
|
||||||
|
|
||||||
friend class VcsBaseClientPrivate;
|
VcsBaseClient::ConfigCreator m_diffConfigCreator;
|
||||||
VcsBaseClientPrivate *d;
|
VcsBaseClient::ConfigCreator m_logConfigCreator;
|
||||||
};
|
};
|
||||||
|
|
||||||
} //namespace VcsBase
|
} //namespace VcsBase
|
||||||
|
Reference in New Issue
Block a user