diff options
author | Oswald Buddenhagen <[email protected]> | 2012-09-12 17:27:37 +0200 |
---|---|---|
committer | Oswald Buddenhagen <[email protected]> | 2012-09-12 17:27:37 +0200 |
commit | e730e2bb8a2c499d135a472364959b1e48c0ad81 (patch) | |
tree | c276f9c7be5982958aaa3b5e6e727d9098093c79 /src/plugins/clearcase/clearcaseplugin.cpp | |
parent | c12cefbb510758839024446e0c6cebf1a8ef8061 (diff) | |
parent | 77a6b71f72917939f2fd9c5e1915f8b0f5009949 (diff) |
Merge remote-tracking branch 'gerrit/2.6'
Conflicts:
src/libs/utils/environment.cpp
src/plugins/android/androidtoolchain.cpp
src/plugins/projectexplorer/gcctoolchain.cpp
src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
src/plugins/qtsupport/baseqtversion.cpp
src/shared/proparser/qmakeevaluator.cpp
Change-Id: I554e96445a4d2b9ba0cc173ecd766091ee921aa2
Diffstat (limited to 'src/plugins/clearcase/clearcaseplugin.cpp')
-rw-r--r-- | src/plugins/clearcase/clearcaseplugin.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 85d770972ff..8c9044a2cc1 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -202,6 +202,7 @@ void ClearCasePlugin::cleanCheckInMessageFile() if (!m_checkInMessageFileName.isEmpty()) { QFile::remove(m_checkInMessageFileName); m_checkInMessageFileName.clear(); + m_checkInView.clear(); } } @@ -496,7 +497,7 @@ bool ClearCasePlugin::submitEditorAboutToClose(VcsBase::VcsBaseSubmitEditor *sub void ClearCasePlugin::diffCheckInFiles(const QStringList &files) { - ccDiffWithPred(files); + ccDiffWithPred(m_checkInView, files); } static inline void setDiffBaseDirectory(Core::IEditor *editor, const QString &db) @@ -563,7 +564,7 @@ ClearCaseSubmitEditor *ClearCasePlugin::openClearCaseSubmitEditor(const QString QTC_CHECK(submitEditor); submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_checkInSelectedAction, m_checkInDiffAction); connect(submitEditor, SIGNAL(diffSelectedFiles(QStringList)), this, SLOT(diffCheckInFiles(QStringList))); - submitEditor->setCheckScriptWorkingDirectory(currentState().topLevel()); + submitEditor->setCheckScriptWorkingDirectory(m_checkInView); return submitEditor; } @@ -738,18 +739,17 @@ QString ClearCasePlugin::ccGetFileVersion(const QString &workingDir, const QStri return runCleartoolSync(workingDir, args).trimmed(); } -void ClearCasePlugin::ccDiffWithPred(const QStringList &files) +void ClearCasePlugin::ccDiffWithPred(const QString &workingDir, const QStringList &files) { if (ClearCase::Constants::debug) qDebug() << Q_FUNC_INFO << files; - QString topLevel = currentState().topLevel(); - const QString source = VcsBase::VcsBaseEditorWidget::getSource(topLevel, files); + const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, files); QTextCodec *codec = source.isEmpty() ? static_cast<QTextCodec *>(0) : VcsBase::VcsBaseEditorWidget::getCodec(source); if ((m_settings.diffType == GraphicalDiff) && (files.count() == 1)) { QString file = files.first(); if (m_statusMap->value(file).status == FileStatus::Hijacked) - diffGraphical(ccGetFileVersion(topLevel, file), file); + diffGraphical(ccGetFileVersion(workingDir, file), file); else diffGraphical(file); return; // done here, diff is opened in a new window @@ -762,7 +762,7 @@ void ClearCasePlugin::ccDiffWithPred(const QStringList &files) QString result; foreach (const QString &file, files) { if (m_statusMap->value(QDir::fromNativeSeparators(file)).status == FileStatus::Hijacked) - result += diffExternal(ccGetFileVersion(topLevel, file), file); + result += diffExternal(ccGetFileVersion(workingDir, file), file); else result += diffExternal(file); } @@ -771,20 +771,20 @@ void ClearCasePlugin::ccDiffWithPred(const QStringList &files) // diff of a single file? re-use an existing view if possible to support // the common usage pattern of continuously changing and diffing a file - const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, topLevel, files); + const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, workingDir, files); if (files.count() == 1) { // Show in the same editor if diff has been executed before if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { existingEditor->createNew(result); Core::EditorManager::activateEditor(existingEditor, Core::EditorManager::ModeSwitch); - setDiffBaseDirectory(existingEditor, topLevel); + setDiffBaseDirectory(existingEditor, workingDir); return; } diffname = QDir::toNativeSeparators(files.first()); } const QString title = QString::fromLatin1("cc diff %1").arg(diffname); Core::IEditor *editor = showOutputInEditor(title, result, VcsBase::DiffOutput, source, codec); - setDiffBaseDirectory(editor, topLevel); + setDiffBaseDirectory(editor, workingDir); VcsBase::VcsBaseEditorWidget::tagEditor(editor, tag); ClearCaseEditor *diffEditorWidget = qobject_cast<ClearCaseEditor *>(editor->widget()); QTC_ASSERT(diffEditorWidget, return); @@ -884,7 +884,7 @@ void ClearCasePlugin::diffCurrentFile() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasFile(), return); - ccDiffWithPred(QStringList(state.relativeCurrentFile())); + ccDiffWithPred(state.topLevel(), QStringList(state.relativeCurrentFile())); } void ClearCasePlugin::startCheckInCurrentFile() @@ -974,6 +974,7 @@ void ClearCasePlugin::startCheckIn(const QString &workingDir, const QStringList return; } m_checkInMessageFileName = saver.fileName(); + m_checkInView = workingDir; // Create a submit editor and set file list ClearCaseSubmitEditor *editor = openClearCaseSubmitEditor(m_checkInMessageFileName); editor->setStatusList(files); @@ -1373,10 +1374,9 @@ bool ClearCasePlugin::vcsCheckIn(const QString &messageFile, const QStringList & if (files.isEmpty()) return true; const QString title = QString::fromLatin1("Checkin %1").arg(files.join(QLatin1String("; "))); - QString workingDir = currentState().topLevel(); typedef QSharedPointer<Core::FileChangeBlocker> FCBPointer; replaceActivity &= (activity != QLatin1String(Constants::KEEP_ACTIVITY)); - if (replaceActivity && !vcsSetActivity(workingDir, title, activity)) + if (replaceActivity && !vcsSetActivity(m_checkInView, title, activity)) return false; QFile msgFile(messageFile); msgFile.open(QFile::ReadOnly | QFile::Text); @@ -1395,11 +1395,11 @@ bool ClearCasePlugin::vcsCheckIn(const QString &messageFile, const QStringList & args << files; QList<FCBPointer> blockers; foreach (QString fileName, files) { - FCBPointer fcb(new Core::FileChangeBlocker(QFileInfo(workingDir, fileName).canonicalFilePath())); + FCBPointer fcb(new Core::FileChangeBlocker(QFileInfo(m_checkInView, fileName).canonicalFilePath())); blockers.append(fcb); } const ClearCaseResponse response = - runCleartool(workingDir, args, m_settings.longTimeOutMS(), ShowStdOutInLogWindow); + runCleartool(m_checkInView, args, m_settings.longTimeOutMS(), ShowStdOutInLogWindow); QRegExp checkedIn(QLatin1String("Checked in \\\"([^\"]*)\\\"")); bool anySucceeded = false; int offset = checkedIn.indexIn(response.stdOut); |