VCS[Mercurial]: Implement annotate previous as for git.

Task-number:   QTCREATORBUG-503
This commit is contained in:
Friedemann Kleint
2010-01-08 09:44:07 +01:00
parent e8195c0766
commit da6463ee2f
6 changed files with 173 additions and 33 deletions

View File

@@ -117,7 +117,7 @@ MercurialPlugin *MercurialPlugin::m_instance = 0;
MercurialPlugin::MercurialPlugin() :
VCSBase::VCSBasePlugin(QLatin1String(Constants::COMMITKIND)),
optionsPage(0),
client(0),
m_client(0),
changeLog(0),
m_menuAction(0)
{
@@ -126,9 +126,9 @@ MercurialPlugin::MercurialPlugin() :
MercurialPlugin::~MercurialPlugin()
{
if (client) {
delete client;
client = 0;
if (m_client) {
delete m_client;
m_client = 0;
}
deleteCommitLog();
@@ -140,7 +140,7 @@ bool MercurialPlugin::initialize(const QStringList & /* arguments */, QString *
{
typedef VCSBase::VCSEditorFactory<MercurialEditor> MercurialEditorFactory;
VCSBase::VCSBasePlugin::initialize(new MercurialControl(client));
VCSBase::VCSBasePlugin::initialize(new MercurialControl(m_client));
core = Core::ICore::instance();
actionManager = core->actionManager();
@@ -149,15 +149,15 @@ bool MercurialPlugin::initialize(const QStringList & /* arguments */, QString *
addAutoReleasedObject(optionsPage);
mercurialSettings.readSettings(core->settings());
client = new MercurialClient();
connect(optionsPage, SIGNAL(settingsChanged()), client, SLOT(settingsChanged()));
m_client = new MercurialClient();
connect(optionsPage, SIGNAL(settingsChanged()), m_client, SLOT(settingsChanged()));
connect(client, SIGNAL(changed(QVariant)), versionControl(), SLOT(changed(QVariant)));
connect(m_client, SIGNAL(changed(QVariant)), versionControl(), SLOT(changed(QVariant)));
static const char *describeSlot = SLOT(view(QString,QString));
const int editorCount = sizeof(editorParameters)/sizeof(VCSBase::VCSBaseEditorParameters);
for (int i = 0; i < editorCount; i++)
addAutoReleasedObject(new MercurialEditorFactory(editorParameters + i, client, describeSlot));
addAutoReleasedObject(new MercurialEditorFactory(editorParameters + i, m_client, describeSlot));
addAutoReleasedObject(new VCSBase::VCSSubmitEditorFactory<CommitEditor>(&submitEditorParameters));
@@ -258,21 +258,21 @@ void MercurialPlugin::annotateCurrentFile()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return)
client->annotate(state.currentFileTopLevel(), state.relativeCurrentFile());
m_client->annotate(state.currentFileTopLevel(), state.relativeCurrentFile());
}
void MercurialPlugin::diffCurrentFile()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return)
client->diff(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()));
m_client->diff(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()));
}
void MercurialPlugin::logCurrentFile()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return)
client->log(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true);
m_client->log(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true);
}
void MercurialPlugin::revertCurrentFile()
@@ -283,14 +283,14 @@ void MercurialPlugin::revertCurrentFile()
RevertDialog reverter;
if (reverter.exec() != QDialog::Accepted)
return;
client->revertFile(state.currentFileTopLevel(), state.relativeCurrentFile(), reverter.revision());
m_client->revertFile(state.currentFileTopLevel(), state.relativeCurrentFile(), reverter.revision());
}
void MercurialPlugin::statusCurrentFile()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return)
client->status(state.currentFileTopLevel(), state.relativeCurrentFile());
m_client->status(state.currentFileTopLevel(), state.relativeCurrentFile());
}
void MercurialPlugin::createDirectoryActions(const QList<int> &context)
@@ -327,14 +327,14 @@ void MercurialPlugin::diffRepository()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return)
client->diff(state.topLevel());
m_client->diff(state.topLevel());
}
void MercurialPlugin::logRepository()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return)
client->log(state.topLevel());
m_client->log(state.topLevel());
}
void MercurialPlugin::revertMulti()
@@ -345,7 +345,7 @@ void MercurialPlugin::revertMulti()
RevertDialog reverter;
if (reverter.exec() != QDialog::Accepted)
return;
client->revertRepository(state.topLevel(), reverter.revision());
m_client->revertRepository(state.topLevel(), reverter.revision());
}
void MercurialPlugin::statusMulti()
@@ -353,7 +353,7 @@ void MercurialPlugin::statusMulti()
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return)
client->status(state.topLevel());
m_client->status(state.topLevel());
}
void MercurialPlugin::createRepositoryActions(const QList<int> &context)
@@ -411,7 +411,7 @@ void MercurialPlugin::pull()
dialog.setWindowTitle(tr("Pull Source"));
if (dialog.exec() != QDialog::Accepted)
return;
client->pull(state.topLevel(), dialog.getRepositoryString());
m_client->pull(state.topLevel(), dialog.getRepositoryString());
}
void MercurialPlugin::push()
@@ -423,7 +423,7 @@ void MercurialPlugin::push()
dialog.setWindowTitle(tr("Push Destination"));
if (dialog.exec() != QDialog::Accepted)
return;
client->push(state.topLevel(), dialog.getRepositoryString());
m_client->push(state.topLevel(), dialog.getRepositoryString());
}
void MercurialPlugin::update()
@@ -435,7 +435,7 @@ void MercurialPlugin::update()
updateDialog.setWindowTitle(tr("Update"));
if (updateDialog.exec() != QDialog::Accepted)
return;
client->update(state.topLevel(), updateDialog.revision());
m_client->update(state.topLevel(), updateDialog.revision());
}
void MercurialPlugin::import()
@@ -451,7 +451,7 @@ void MercurialPlugin::import()
return;
const QStringList fileNames = importDialog.selectedFiles();
client->import(state.topLevel(), fileNames);
m_client->import(state.topLevel(), fileNames);
}
void MercurialPlugin::incoming()
@@ -463,14 +463,14 @@ void MercurialPlugin::incoming()
dialog.setWindowTitle(tr("Incoming Source"));
if (dialog.exec() != QDialog::Accepted)
return;
client->incoming(state.topLevel(), dialog.getRepositoryString());
m_client->incoming(state.topLevel(), dialog.getRepositoryString());
}
void MercurialPlugin::outgoing()
{
const VCSBase::VCSBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return)
client->outgoing(state.topLevel());
m_client->outgoing(state.topLevel());
}
void MercurialPlugin::createSubmitEditorActions()
@@ -502,9 +502,9 @@ void MercurialPlugin::commit()
m_submitRepository = state.topLevel();
connect(client, SIGNAL(parsedStatus(QList<QPair<QString,QString> >)),
connect(m_client, SIGNAL(parsedStatus(QList<QPair<QString,QString> >)),
this, SLOT(showCommitWidget(QList<QPair<QString,QString> >)));
client->statusWithSignal(m_submitRepository);
m_client->statusWithSignal(m_submitRepository);
}
void MercurialPlugin::showCommitWidget(const QList<QPair<QString, QString> > &status)
@@ -512,7 +512,7 @@ void MercurialPlugin::showCommitWidget(const QList<QPair<QString, QString> > &st
VCSBase::VCSBaseOutputWindow *outputWindow = VCSBase::VCSBaseOutputWindow::instance();
//Once we receive our data release the connection so it can be reused elsewhere
disconnect(client, SIGNAL(parsedStatus(QList<QPair<QString,QString> >)),
disconnect(m_client, SIGNAL(parsedStatus(QList<QPair<QString,QString> >)),
this, SLOT(showCommitWidget(QList<QPair<QString,QString> >)));
if (status.isEmpty()) {
@@ -547,7 +547,7 @@ void MercurialPlugin::showCommitWidget(const QList<QPair<QString, QString> > &st
const QString msg = tr("Commit changes for \"%1\".").arg(m_submitRepository);
commitEditor->setDisplayName(msg);
QString branch = client->branchQuerySync(m_submitRepository);
QString branch = m_client->branchQuerySync(m_submitRepository);
commitEditor->setFields(m_submitRepository, branch, mercurialSettings.userName(),
mercurialSettings.email(), status);
@@ -560,7 +560,7 @@ void MercurialPlugin::showCommitWidget(const QList<QPair<QString, QString> > &st
void MercurialPlugin::diffFromEditorSelected(const QStringList &files)
{
client->diff(m_submitRepository, files);
m_client->diff(m_submitRepository, files);
}
void MercurialPlugin::commitFromEditor()
@@ -604,7 +604,7 @@ bool MercurialPlugin::submitEditorAboutToClose(VCSBase::VCSBaseSubmitEditor *sub
editorFile->save();
core->fileManager()->unblockFileChange(editorFile);
client->commit(commitEditor->repoRoot(), files, commitEditor->committerInfo(),
m_client->commit(commitEditor->repoRoot(), files, commitEditor->committerInfo(),
editorFile->fileName());
}
return true;