From 96819ddb7acdf8b9cebee4cc2afe5d7dd1c494ea Mon Sep 17 00:00:00 2001 From: cerf Date: Mon, 22 Aug 2011 15:33:02 +0000 Subject: [PATCH] vcsbase: move VCSBaseClient's private slots in its pimpl Change-Id: Ic9bd8d75d3985538c686fdd632a6ce5993997fc6 Merge-request: 358 Reviewed-by: Tobias Hunger Reviewed-on: http://codereview.qt.nokia.com/3334 --- src/plugins/vcsbase/vcsbaseclient.cpp | 88 +++++++++++++++++++---------------- src/plugins/vcsbase/vcsbaseclient.h | 10 ++-- 2 files changed, 52 insertions(+), 46 deletions(-) diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index b516e820c7..6f00aaa716 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -81,20 +81,58 @@ namespace VCSBase { class VCSBaseClientPrivate { public: - explicit VCSBaseClientPrivate(VCSBaseClientSettings *settings); + VCSBaseClientPrivate(VCSBaseClient *client, VCSBaseClientSettings *settings); + + void statusParser(QByteArray data); + void annotateRevision(QString source, QString change, int lineNumber); + void saveSettings(); VCSJobRunner *m_jobManager; Core::ICore *m_core; - VCSBaseClientSettings* m_clientSettings; + VCSBaseClientSettings *m_clientSettings; + +private: + VCSBaseClient *m_client; }; -VCSBaseClientPrivate::VCSBaseClientPrivate(VCSBaseClientSettings *settings) : - m_jobManager(0), m_core(Core::ICore::instance()), m_clientSettings(settings) +VCSBaseClientPrivate::VCSBaseClientPrivate(VCSBaseClient *client, VCSBaseClientSettings *settings) : + m_jobManager(0), m_core(Core::ICore::instance()), m_clientSettings(settings), m_client(client) +{ +} + +void VCSBaseClientPrivate::statusParser(QByteArray data) +{ + QList > statusList; + + QStringList rawStatusList = QTextCodec::codecForLocale()->toUnicode(data).split(QLatin1Char('\n')); + + foreach (const QString &string, rawStatusList) { + QPair status = m_client->parseStatusLine(string); + if (!status.first.isEmpty() && !status.second.isEmpty()) + statusList.append(status); + } + + emit m_client->parsedStatus(statusList); +} + +void VCSBaseClientPrivate::annotateRevision(QString source, QString change, int lineNumber) +{ + // This might be invoked with a verbose revision description + // "SHA1 author subject" from the annotation context menu. Strip the rest. + const int blankPos = change.indexOf(QLatin1Char(' ')); + if (blankPos != -1) + change.truncate(blankPos); + const QFileInfo fi(source); + m_client->annotate(fi.absolutePath(), fi.fileName(), change, lineNumber); +} + +void VCSBaseClientPrivate::saveSettings() { + m_clientSettings->writeSettings(m_core->settings()); } VCSBaseClient::VCSBaseClient(VCSBaseClientSettings *settings) : - d(new VCSBaseClientPrivate(settings)) + d(new VCSBaseClientPrivate(this, settings)) { qRegisterMetaType(); connect(d->m_core, SIGNAL(saveSettingsRequested()), this, SLOT(saveSettings())); @@ -240,24 +278,6 @@ Utils::SynchronousProcessResponse VCSBaseClient::vcsSynchronousExec( flags, outputCodec); } -void VCSBaseClient::slotAnnotateRevisionRequested(const QString &source, - QString change, - int lineNumber) -{ - // This might be invoked with a verbose revision description - // "SHA1 author subject" from the annotation context menu. Strip the rest. - const int blankPos = change.indexOf(QLatin1Char(' ')); - if (blankPos != -1) - change.truncate(blankPos); - const QFileInfo fi(source); - annotate(fi.absolutePath(), fi.fileName(), change, lineNumber); -} - -void VCSBaseClient::saveSettings() -{ - d->m_clientSettings->writeSettings(d->m_core->settings()); -} - void VCSBaseClient::annotate(const QString &workingDir, const QString &file, const QString revision /* = QString() */, int lineNumber /* = -1 */) @@ -372,8 +392,7 @@ void VCSBaseClient::statusWithSignal(const QString &repositoryRoot) QStringList args(vcsCommandString(StatusCommand)); args << statusArguments(QString()); QSharedPointer job(new VCSJob(repositoryRoot, args, VCSJob::RawDataEmitMode)); - connect(job.data(), SIGNAL(rawData(QByteArray)), - this, SLOT(statusParser(QByteArray))); + connect(job.data(), SIGNAL(rawData(QByteArray)), this, SLOT(statusParser(QByteArray))); enqueueJob(job); } @@ -399,21 +418,6 @@ QString VCSBaseClient::vcsCommandString(VCSCommand cmd) const return QString(); } -void VCSBaseClient::statusParser(const QByteArray &data) -{ - QList > statusList; - - QStringList rawStatusList = QTextCodec::codecForLocale()->toUnicode(data).split(QLatin1Char('\n')); - - foreach (const QString &string, rawStatusList) { - QPair status = parseStatusLine(string); - if (!status.first.isEmpty() && !status.second.isEmpty()) - statusList.append(status); - } - - emit parsedStatus(statusList); -} - void VCSBaseClient::import(const QString &repositoryRoot, const QStringList &files) { QStringList args(vcsCommandString(ImportCommand)); @@ -521,7 +525,7 @@ VCSBase::VCSBaseEditorWidget *VCSBaseClient::createVCSEditor(const QString &kind outputEditor->file()->setProperty(registerDynamicProperty, dynamicPropertyValue); baseEditor = VCSBase::VCSBaseEditorWidget::getVcsBaseEditor(outputEditor); connect(baseEditor, SIGNAL(annotateRevisionRequested(QString,QString,int)), - this, SLOT(slotAnnotateRevisionRequested(QString,QString,int))); + this, SLOT(annotateRevision(QString,QString,int))); QTC_ASSERT(baseEditor, return 0); baseEditor->setSource(source); if (setSourceCodec) @@ -546,3 +550,5 @@ void VCSBaseClient::enqueueJob(const QSharedPointer &job) } } // namespace VCSBase + +#include "moc_vcsbaseclient.cpp" diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h index 3887a0db27..f63d51a627 100644 --- a/src/plugins/vcsbase/vcsbaseclient.h +++ b/src/plugins/vcsbase/vcsbaseclient.h @@ -185,13 +185,13 @@ protected: const char *registerDynamicProperty, const QString &dynamicPropertyValue) const; -private slots: - void statusParser(const QByteArray &data); - void slotAnnotateRevisionRequested(const QString &source, QString change, int lineNumber); - void saveSettings(); - private: + friend class VCSBaseClientPrivate; QScopedPointer d; + + Q_PRIVATE_SLOT(d, void statusParser(QByteArray)) + Q_PRIVATE_SLOT(d, void annotateRevision(QString, QString, int)) + Q_PRIVATE_SLOT(d, void saveSettings()) }; } //namespace VCSBase -- 2.11.0