summaryrefslogtreecommitdiff
path: root/src/plugins/cvs/cvsplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cvs/cvsplugin.cpp')
-rw-r--r--src/plugins/cvs/cvsplugin.cpp75
1 files changed, 39 insertions, 36 deletions
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index 85ffd0a65c..070ea7e088 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -225,12 +225,13 @@ bool CvsPlugin::initialize(const QStringList &arguments, QString *errorMessage)
using namespace Core::Constants;
using namespace ExtensionSystem;
+ using Core::Command;
initializeVcs(new CvsControl(this));
m_cvsPluginInstance = this;
- if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/trolltech.cvs/CVS.mimetypes.xml"), errorMessage))
+ if (!MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.cvs/CVS.mimetypes.xml"), errorMessage))
return false;
m_settings.fromSettings(ICore::settings());
@@ -457,7 +458,7 @@ bool CvsPlugin::submitEditorAboutToClose()
// Submit editor closing. Make it write out the commit message
// and retrieve files
- const QFileInfo editorFile(editorDocument->fileName());
+ const QFileInfo editorFile(editorDocument->filePath());
const QFileInfo changeFile(m_commitMessageFileName);
if (editorFile.absoluteFilePath() != changeFile.absoluteFilePath())
return true; // Oops?!
@@ -559,9 +560,9 @@ void CvsPlugin::cvsDiff(const QString &workingDir, const QStringList &files)
cvsDiff(p);
}
-void CvsPlugin::cvsDiff(const CvsDiffParameters &p)
+void CvsPlugin::cvsDiff(const Cvs::Internal::CvsDiffParameters &p)
{
- if (Cvs::Constants::debug)
+ if (Constants::debug)
qDebug() << Q_FUNC_INFO << p.files;
const QString source = VcsBaseEditorWidget::getSource(p.workingDir, p.files);
QTextCodec *codec = VcsBaseEditorWidget::getCodec(p.workingDir, p.files);
@@ -591,7 +592,7 @@ void CvsPlugin::cvsDiff(const CvsDiffParameters &p)
// Show in the same editor if diff has been executed before
const QString tag = VcsBaseEditorWidget::editorTag(DiffOutput, p.workingDir, p.files);
if (IEditor *existingEditor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
- existingEditor->createNew(output);
+ existingEditor->document()->setContents(output.toUtf8());
EditorManager::activateEditor(existingEditor);
setDiffBaseDirectory(existingEditor, p.workingDir);
return;
@@ -724,7 +725,9 @@ void CvsPlugin::diffProject()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasProject(), return);
- cvsDiff(state.currentProjectTopLevel(), state.relativeCurrentProject());
+ const QString relativeProject = state.relativeCurrentProject();
+ cvsDiff(state.currentProjectTopLevel(),
+ relativeProject.isEmpty() ? QStringList() : QStringList(relativeProject));
}
void CvsPlugin::diffCurrentFile()
@@ -738,7 +741,7 @@ void CvsPlugin::startCommitCurrentFile()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return);
- startCommit(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()));
+ startCommit(state.currentFileTopLevel(), state.relativeCurrentFile());
}
void CvsPlugin::startCommitAll()
@@ -751,7 +754,7 @@ void CvsPlugin::startCommitAll()
/* Start commit of files of a single repository by displaying
* template and files in a submit editor. On closing, the real
* commit will start. */
-void CvsPlugin::startCommit(const QString &workingDir, const QStringList &files)
+void CvsPlugin::startCommit(const QString &workingDir, const QString &file)
{
if (raiseSubmitEditor())
return;
@@ -770,16 +773,16 @@ void CvsPlugin::startCommit(const QString &workingDir, const QStringList &files)
// Get list of added/modified/deleted files and purge out undesired ones
// (do not run status with relative arguments as it will omit the directories)
StateList statusOutput = parseStatusOutput(QString(), response.stdOut);
- if (!files.isEmpty()) {
+ if (!file.isEmpty()) {
for (StateList::iterator it = statusOutput.begin(); it != statusOutput.end() ; ) {
- if (files.contains(it->second))
+ if (file == it->second)
++it;
else
it = statusOutput.erase(it);
}
}
if (statusOutput.empty()) {
- VcsBaseOutputWindow::instance()->append(tr("There are no modified files."));
+ VcsBaseOutputWindow::instance()->appendWarning(tr("There are no modified files."));
return;
}
m_commitRepository = workingDir;
@@ -806,7 +809,7 @@ void CvsPlugin::startCommit(const QString &workingDir, const QStringList &files)
bool CvsPlugin::commit(const QString &messageFile,
const QStringList &fileList)
{
- if (Cvs::Constants::debug)
+ if (Constants::debug)
qDebug() << Q_FUNC_INFO << messageFile << fileList;
QStringList args = QStringList(QLatin1String("commit"));
args << QLatin1String("-F") << messageFile;
@@ -821,7 +824,7 @@ void CvsPlugin::filelogCurrentFile()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasFile(), return);
- filelog(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true);
+ filelog(state.currentFileTopLevel(), state.relativeCurrentFile(), true);
}
void CvsPlugin::logProject()
@@ -839,16 +842,16 @@ void CvsPlugin::logRepository()
}
void CvsPlugin::filelog(const QString &workingDir,
- const QStringList &files,
+ const QString &file,
bool enableAnnotationContextMenu)
{
- QTextCodec *codec = VcsBaseEditorWidget::getCodec(workingDir, files);
+ QTextCodec *codec = VcsBaseEditorWidget::getCodec(workingDir, QStringList(file));
// no need for temp file
- const QString id = VcsBaseEditorWidget::getTitleId(workingDir, files);
- const QString source = VcsBaseEditorWidget::getSource(workingDir, files);
+ const QString id = VcsBaseEditorWidget::getTitleId(workingDir, QStringList(file));
+ const QString source = VcsBaseEditorWidget::getSource(workingDir, file);
QStringList args;
args << QLatin1String("log");
- args.append(files);
+ args.append(file);
const CvsResponse response =
runCvs(workingDir, args, m_settings.timeOutMS(),
SshPasswordPrompt, codec);
@@ -857,9 +860,9 @@ void CvsPlugin::filelog(const QString &workingDir,
// Re-use an existing view if possible to support
// the common usage pattern of continuously changing and diffing a file
- const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, files);
+ const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, QStringList(file));
if (Core::IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
- editor->createNew(response.stdOut);
+ editor->document()->setContents(response.stdOut.toUtf8());
Core::EditorManager::activateEditor(editor);
} else {
const QString title = QString::fromLatin1("cvs log %1").arg(id);
@@ -877,11 +880,12 @@ void CvsPlugin::updateProject()
update(state.currentProjectTopLevel(), state.relativeCurrentProject());
}
-bool CvsPlugin::update(const QString &topLevel, const QStringList &files)
+bool CvsPlugin::update(const QString &topLevel, const QString &file)
{
QStringList args(QLatin1String("update"));
args.push_back(QLatin1String("-dR"));
- args.append(files);
+ if (!file.isEmpty())
+ args.append(file);
const CvsResponse response =
runCvs(topLevel, args, m_settings.longTimeOutMS(),
SshPasswordPrompt|ShowStdOutInLogWindow);
@@ -1001,7 +1005,7 @@ void CvsPlugin::annotate(const QString &workingDir, const QString &file,
const QString tag = VcsBaseEditorWidget::editorTag(AnnotateOutput, workingDir, QStringList(file), revision);
if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
- editor->createNew(response.stdOut);
+ editor->document()->setContents(response.stdOut.toUtf8());
VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber);
EditorManager::activateEditor(editor);
} else {
@@ -1012,10 +1016,11 @@ void CvsPlugin::annotate(const QString &workingDir, const QString &file,
}
}
-bool CvsPlugin::status(const QString &topLevel, const QStringList &files, const QString &title)
+bool CvsPlugin::status(const QString &topLevel, const QString &file, const QString &title)
{
QStringList args(QLatin1String("status"));
- args.append(files);
+ if (!file.isEmpty())
+ args.append(file);
const CvsResponse response =
runCvs(topLevel, args, m_settings.timeOutMS(), 0);
const bool ok = response.result == CvsResponse::Ok;
@@ -1049,14 +1054,14 @@ void CvsPlugin::statusRepository()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return);
- status(state.topLevel(), QStringList(), tr("Repository status"));
+ status(state.topLevel(), QString(), tr("Repository status"));
}
void CvsPlugin::updateRepository()
{
const VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return);
- update(state.topLevel(), QStringList());
+ update(state.topLevel(), QString());
}
@@ -1089,7 +1094,7 @@ bool CvsPlugin::describe(const QString &toplevel, const QString &file, const
// This function makes use of it to find all files related to
// a commit in order to emulate a "describe global change" functionality
// if desired.
- if (Cvs::Constants::debug)
+ if (Constants::debug)
qDebug() << Q_FUNC_INFO << file << changeNr;
// Number must be > 1
if (isFirstRevision(changeNr)) {
@@ -1197,7 +1202,7 @@ bool CvsPlugin::describe(const QString &repositoryPath,
// the common usage pattern of continuously changing and diffing a file
const QString commitId = entries.front().revisions.front().commitId;
if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(commitId)) {
- editor->createNew(output);
+ editor->document()->setContents(output.toUtf8());
EditorManager::activateEditor(editor);
setDiffBaseDirectory(editor, repositoryPath);
} else {
@@ -1212,8 +1217,7 @@ bool CvsPlugin::describe(const QString &repositoryPath,
void CvsPlugin::submitCurrentLog()
{
m_submitActionTriggered = true;
- EditorManager::instance()->closeEditors(QList<IEditor*>()
- << EditorManager::currentEditor());
+ EditorManager::closeEditor(EditorManager::currentEditor());
}
// Run CVS. At this point, file arguments must be relative to
@@ -1233,8 +1237,7 @@ CvsResponse CvsPlugin::runCvs(const QString &workingDirectory,
}
// Run, connect stderr to the output window
const Utils::SynchronousProcessResponse sp_resp =
- runVcs(workingDirectory, executable,
- m_settings.addOptions(arguments),
+ runVcs(workingDirectory, executable, m_settings.addOptions(arguments),
timeOut, flags, outputCodec);
response.result = CvsResponse::OtherError;
@@ -1266,11 +1269,11 @@ IEditor *CvsPlugin::showOutputInEditor(const QString& title, const QString &outp
const VcsBaseEditorParameters *params = findType(editorType);
QTC_ASSERT(params, return 0);
const Id id = params->id;
- if (Cvs::Constants::debug)
+ if (Constants::debug)
qDebug() << "CVSPlugin::showOutputInEditor" << title << id.name()
<< "source=" << source << "Size= " << output.size() << " Type=" << editorType << debugCodec(codec);
QString s = title;
- IEditor *editor = EditorManager::openEditorWithContents(id, &s, output);
+ IEditor *editor = EditorManager::openEditorWithContents(id, &s, output.toUtf8());
connect(editor, SIGNAL(annotateRevisionRequested(QString,QString,int)),
this, SLOT(vcsAnnotate(QString,QString,int)));
CvsEditor *e = qobject_cast<CvsEditor*>(editor->widget());
@@ -1353,7 +1356,7 @@ bool CvsPlugin::managesDirectory(const QString &directory, QString *topLevel /*
}
}
} while (false);
- if (Cvs::Constants::debug) {
+ if (Constants::debug) {
QDebug nsp = qDebug().nospace();
nsp << "CVSPlugin::managesDirectory" << directory << manages;
if (topLevel)