diff options
Diffstat (limited to 'src/plugins/cvs/cvsplugin.cpp')
-rw-r--r-- | src/plugins/cvs/cvsplugin.cpp | 75 |
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) |