Fixes: Add "Describe" to svn plugin.

Details: Also remove unused change number dialog.
This commit is contained in:
Friedemann Kleint
2009-02-09 17:33:31 +01:00
parent 1bb6568533
commit 53fde645f9
6 changed files with 49 additions and 212 deletions

View File

@@ -38,7 +38,6 @@
#include "subversionoutputwindow.h"
#include "subversionsubmiteditor.h"
#include "changenumberdialog.h"
#include "subversionconstants.h"
#include "subversioncontrol.h"
@@ -70,6 +69,9 @@
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMessageBox>
#include <QtGui/QInputDialog>
#include <limits.h>
using namespace Subversion::Internal;
@@ -96,6 +98,7 @@ const char * const SubversionPlugin::ANNOTATE_CURRENT = "Subversion.AnnotateCu
const char * const SubversionPlugin::SEPARATOR3 = "Subversion.Separator3";
const char * const SubversionPlugin::STATUS = "Subversion.Status";
const char * const SubversionPlugin::UPDATE = "Subversion.Update";
const char * const SubversionPlugin::DESCRIBE = "Subversion.Describe";
static const VCSBase::VCSBaseEditorParameters editorParameters[] = {
{
@@ -186,6 +189,7 @@ SubversionPlugin::SubversionPlugin() :
m_annotateCurrentAction(0),
m_statusAction(0),
m_updateProjectAction(0),
m_describeAction(0),
m_submitCurrentLogAction(0),
m_submitDiffAction(0),
m_submitUndoAction(0),
@@ -248,6 +252,16 @@ static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = {
Subversion::Constants::SUBVERSIONCOMMITEDITOR
};
static inline Core::Command *createSeparator(QObject *parent,
Core::ActionManager *ami,
const char*id,
const QList<int> &globalcontext)
{
QAction *tmpaction = new QAction(parent);
tmpaction->setSeparator(true);
return ami->registerAction(tmpaction, id, globalcontext);
}
bool SubversionPlugin::initialize(const QStringList &arguments, QString *errorMessage)
{
Q_UNUSED(arguments);
@@ -330,10 +344,7 @@ bool SubversionPlugin::initialize(const QStringList &arguments, QString *errorMe
connect(m_revertAction, SIGNAL(triggered()), this, SLOT(revertCurrentFile()));
subversionMenu->addAction(command);
QAction *tmpaction = new QAction(this);
tmpaction->setSeparator(true);
subversionMenu->addAction(ami->registerAction(tmpaction,
SubversionPlugin::SEPARATOR0, globalcontext));
subversionMenu->addAction(createSeparator(this, ami, SubversionPlugin::SEPARATOR0, globalcontext));
m_diffProjectAction = new QAction(tr("Diff Project"), this);
command = ami->registerAction(m_diffProjectAction, SubversionPlugin::DIFF_PROJECT,
@@ -349,10 +360,7 @@ bool SubversionPlugin::initialize(const QStringList &arguments, QString *errorMe
connect(m_diffCurrentAction, SIGNAL(triggered()), this, SLOT(diffCurrentFile()));
subversionMenu->addAction(command);
tmpaction = new QAction(this);
tmpaction->setSeparator(true);
subversionMenu->addAction(ami->registerAction(tmpaction,
SubversionPlugin::SEPARATOR1, globalcontext));
subversionMenu->addAction(createSeparator(this, ami, SubversionPlugin::SEPARATOR1, globalcontext));
m_commitAllAction = new QAction(tr("Commit All Files"), this);
command = ami->registerAction(m_commitAllAction, SubversionPlugin::COMMIT_ALL,
@@ -368,10 +376,7 @@ bool SubversionPlugin::initialize(const QStringList &arguments, QString *errorMe
connect(m_commitCurrentAction, SIGNAL(triggered()), this, SLOT(startCommitCurrentFile()));
subversionMenu->addAction(command);
tmpaction = new QAction(this);
tmpaction->setSeparator(true);
subversionMenu->addAction(ami->registerAction(tmpaction,
SubversionPlugin::SEPARATOR2, globalcontext));
subversionMenu->addAction(createSeparator(this, ami, SubversionPlugin::SEPARATOR2, globalcontext));
m_filelogCurrentAction = new QAction(tr("Filelog Current File"), this);
command = ami->registerAction(m_filelogCurrentAction,
@@ -389,10 +394,12 @@ bool SubversionPlugin::initialize(const QStringList &arguments, QString *errorMe
SLOT(annotateCurrentFile()));
subversionMenu->addAction(command);
tmpaction = new QAction(this);
tmpaction->setSeparator(true);
subversionMenu->addAction(ami->registerAction(tmpaction,
SubversionPlugin::SEPARATOR3, globalcontext));
m_describeAction = new QAction(tr("Describe..."), this);
command = ami->registerAction(m_describeAction, SubversionPlugin::DESCRIBE, globalcontext);
connect(m_describeAction, SIGNAL(triggered()), this, SLOT(slotDescribe()));
subversionMenu->addAction(command);
subversionMenu->addAction(createSeparator(this, ami, SubversionPlugin::SEPARATOR3, globalcontext));
m_statusAction = new QAction(tr("Project Status"), this);
command = ami->registerAction(m_statusAction, SubversionPlugin::STATUS,
@@ -536,7 +543,7 @@ SubversionSubmitEditor *SubversionPlugin::openSubversionSubmitEditor(const QStri
void SubversionPlugin::updateActions()
{
QString fileName = currentFileName();
const QString fileName = currentFileName();
const bool hasFile = !fileName.isEmpty();
m_addAction->setEnabled(hasFile);
@@ -549,6 +556,7 @@ void SubversionPlugin::updateActions()
m_filelogCurrentAction->setEnabled(hasFile);
m_annotateCurrentAction->setEnabled(hasFile);
m_statusAction->setEnabled(true);
m_describeAction->setEnabled(true);
QString baseName;
if (hasFile)
@@ -881,6 +889,25 @@ void SubversionPlugin::describe(const QString &source, const QString &changeNr)
}
}
void SubversionPlugin::slotDescribe()
{
const QStringList topLevels = currentProjectsTopLevels();
if (topLevels.size() != 1)
return;
QInputDialog inputDialog(Core::ICore::instance()->mainWindow());
inputDialog.setWindowFlags(inputDialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
inputDialog.setInputMode(QInputDialog::IntInput);
inputDialog.setIntRange(2, INT_MAX);
inputDialog.setWindowTitle(tr("Describe"));
inputDialog.setLabelText(tr("Revision number:"));
if (inputDialog.exec() != QDialog::Accepted)
return;
const int revision = inputDialog.intValue();
describe(topLevels.front(), QString::number(revision));
}
void SubversionPlugin::submitCurrentLog()
{
Core::EditorManager::instance()->closeEditors(QList<Core::IEditor*>()