diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index d0c3bd8e370131f28f47383791180424b1c34d4d..fbaeb0fdd0abeb41307bc17f979d52e00be9eb21 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -724,7 +724,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 +740,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 +753,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,9 +772,9 @@ 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); @@ -821,7 +823,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 +841,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,7 +859,7 @@ 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->document()->setContents(response.stdOut.toUtf8()); Core::EditorManager::activateEditor(editor); @@ -877,11 +879,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); @@ -1012,10 +1015,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 +1053,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()); } diff --git a/src/plugins/cvs/cvsplugin.h b/src/plugins/cvs/cvsplugin.h index 09b8a43522060e6201151702e7f14600b8392d6c..9608cd2e1bdc6af8653d24af916e34714989a90f 100644 --- a/src/plugins/cvs/cvsplugin.h +++ b/src/plugins/cvs/cvsplugin.h @@ -150,16 +150,16 @@ private: bool describe(const QString &toplevel, const QString &source, const QString &changeNr, QString *errorMessage); bool describe(const QString &repository, QList<CvsLogEntry> entries, QString *errorMessage); void filelog(const QString &workingDir, - const QStringList &files = QStringList(), + const QString &file = QString(), bool enableAnnotationContextMenu = false); bool unedit(const QString &topLevel, const QStringList &files); - bool status(const QString &topLevel, const QStringList &files, const QString &title); - bool update(const QString &topLevel, const QStringList &files); + bool status(const QString &topLevel, const QString &file, const QString &title); + bool update(const QString &topLevel, const QString &file); bool checkCVSDirectory(const QDir &directory) const; // Quick check if files are modified bool diffCheckModified(const QString &topLevel, const QStringList &files, bool *modified); QString findTopLevelForDirectoryI(const QString &directory) const; - void startCommit(const QString &workingDir, const QStringList &files = QStringList()); + void startCommit(const QString &workingDir, const QString &file = QString()); bool commit(const QString &messageFile, const QStringList &subVersionFileList); void cleanCommitMessageFile(); inline CvsControl *cvsVersionControl() const; diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index 0955b12bc1bdd4ab0a2d774302b6471ae555c9dd..7ae877f64d2e944b80590655adcb6d3c25765284 100644 --- a/src/plugins/git/branchdialog.cpp +++ b/src/plugins/git/branchdialog.cpp @@ -315,7 +315,7 @@ void BranchDialog::log() if (branchName.isEmpty()) return; // Do not pass working dir by reference since it might change - GitPlugin::instance()->gitClient()->log(QString(m_repository), QStringList(), false, QStringList(branchName)); + GitPlugin::instance()->gitClient()->log(QString(m_repository), QString(), false, QStringList(branchName)); } void BranchDialog::merge() diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 3ad47bd62048ea1c6f7dca4a5ecd57705485cb49..8b89f7f7be71b801788929a78f09ef648856d7dc 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -637,7 +637,7 @@ public: const QString &directory, bool enableAnnotationContextMenu, const QStringList &args, - const QStringList &fileNames) : + const QString &fileName) : BaseGitDiffArgumentsWidget(client, directory, args), m_client(client), m_workingDirectory(directory), @@ -657,24 +657,24 @@ public: QToolButton *graphButton = addToggleButton(graphArguments, tr("Graph"), tr("Show textual graph log.")); mapSetting(graphButton, m_client->settings()->boolPointer(GitSettings::graphLogKey)); - setFileNames(fileNames); + setFileName(fileName); } - void setFileNames(const QStringList &fileNames) + void setFileName(const QString &fileNames) { - m_fileNames = fileNames; + m_fileName = fileNames; } void executeCommand() { - m_client->log(m_workingDirectory, m_fileNames, m_enableAnnotationContextMenu, baseArguments()); + m_client->log(m_workingDirectory, m_fileName, m_enableAnnotationContextMenu, baseArguments()); } private: GitClient *m_client; QString m_workingDirectory; bool m_enableAnnotationContextMenu; - QStringList m_fileNames; + QString m_fileName; }; class ConflictHandler : public QObject @@ -1113,20 +1113,19 @@ void GitClient::status(const QString &workingDirectory) Qt::QueuedConnection); } -void GitClient::log(const QString &workingDirectory, const QStringList &fileNames, +void GitClient::log(const QString &workingDirectory, const QString &fileName, bool enableAnnotationContextMenu, const QStringList &args) { - const QString msgArg = fileNames.empty() ? workingDirectory : - fileNames.join(QLatin1String(", ")); + const QString msgArg = fileName.isEmpty() ? workingDirectory : fileName; const QString title = tr("Git Log \"%1\"").arg(msgArg); const Core::Id editorId = Git::Constants::GIT_LOG_EDITOR_ID; - const QString sourceFile = VcsBase::VcsBaseEditorWidget::getSource(workingDirectory, fileNames); + const QString sourceFile = VcsBase::VcsBaseEditorWidget::getSource(workingDirectory, fileName); VcsBase::VcsBaseEditorWidget *editor = findExistingVCSEditor("logFileName", sourceFile); if (!editor) editor = createVcsEditor(editorId, title, sourceFile, CodecLogOutput, "logFileName", sourceFile, new GitLogArgumentsWidget(this, workingDirectory, enableAnnotationContextMenu, - args, fileNames)); + args, fileName)); editor->setFileLogAnnotateEnabled(enableAnnotationContextMenu); editor->setDiffBaseDirectory(workingDirectory); @@ -1140,13 +1139,13 @@ void GitClient::log(const QString &workingDirectory, const QStringList &fileName GitLogArgumentsWidget *argWidget = qobject_cast<GitLogArgumentsWidget *>(editor->configurationWidget()); argWidget->setBaseArguments(args); - argWidget->setFileNames(fileNames); + argWidget->setFileName(fileName); QStringList userArgs = argWidget->arguments(); arguments.append(userArgs); - if (!fileNames.isEmpty()) - arguments << QLatin1String("--") << fileNames; + if (!fileName.isEmpty()) + arguments << QLatin1String("--") << fileName; executeGit(workingDirectory, arguments, editor); } diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 47e27ccf5b975ac379498ded12550844d9bebac6..fa7ac9a921215148fb3d10e9f46d1f1731ef5c75 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -146,7 +146,7 @@ public: void merge(const QString &workingDirectory, const QStringList &unmergedFileNames = QStringList()); void status(const QString &workingDirectory); - void log(const QString &workingDirectory, const QStringList &fileNames = QStringList(), + void log(const QString &workingDirectory, const QString &fileName = QString(), bool enableAnnotationContextMenu = false, const QStringList &args = QStringList()); void blame(const QString &workingDirectory, const QStringList &args, const QString &fileName, const QString &revision = QString(), int lineNumber = -1); diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 6801a973900a01ca5c034a3a63a4c9586df0c10e..2df9f0b0872ad73f755d884f9c2150eb48440948 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -744,7 +744,9 @@ void GitPlugin::diffCurrentProject() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasProject(), return); - m_gitClient->diff(state.currentProjectTopLevel(), state.relativeCurrentProject()); + const QString relativeProject = state.relativeCurrentProject(); + m_gitClient->diff(state.currentProjectTopLevel(), + relativeProject.isEmpty() ? QStringList() : QStringList(relativeProject)); } void GitPlugin::diffRepository() @@ -758,7 +760,7 @@ void GitPlugin::logFile() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasFile(), return); - m_gitClient->log(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true); + m_gitClient->log(state.currentFileTopLevel(), state.relativeCurrentFile(), true); } void GitPlugin::blameFile() diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 282db9f209c1704dde781bafe7ed3d843ef0f3a9..14d76ff23b913be3f35adf4c75f86af39033e482 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -105,19 +105,16 @@ static inline QString debugCodec(const QTextCodec *c) // Ensure adding "..." to relative paths which is p4's convention // for the current directory -static inline QStringList perforceRelativeFileArguments(const QStringList &args) +static inline QString perforceRelativeFileArguments(const QString &args) { if (args.isEmpty()) - return QStringList(QLatin1String("...")); - QTC_ASSERT(args.size() == 1, return QStringList()); - QStringList p4Args = args; - p4Args.front() += QLatin1String("/..."); - return p4Args; + return QLatin1String("..."); + return args + QLatin1String("/..."); } static inline QStringList perforceRelativeProjectDirectory(const VcsBase::VcsBasePluginState &s) { - return perforceRelativeFileArguments(s.relativeCurrentProject()); + return QStringList(perforceRelativeFileArguments(s.relativeCurrentProject())); } // Clean user setting off diff-binary for 'p4 resolve' and 'p4 diff'. @@ -735,7 +732,7 @@ void PerforcePlugin::filelogCurrentFile() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasFile(), return); - filelog(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true); + filelog(state.currentFileTopLevel(), state.relativeCurrentFile(), true); } void PerforcePlugin::filelog() @@ -743,7 +740,7 @@ void PerforcePlugin::filelog() const QString file = QFileDialog::getOpenFileName(0, tr("p4 filelog")); if (!file.isEmpty()) { const QFileInfo fi(file); - filelog(fi.absolutePath(), QStringList(fi.fileName())); + filelog(fi.absolutePath(), fi.fileName()); } } @@ -758,24 +755,25 @@ void PerforcePlugin::logRepository() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasTopLevel(), return); - filelog(state.topLevel(), perforceRelativeFileArguments(QStringList())); + filelog(state.topLevel(), perforceRelativeFileArguments(QString())); } -void PerforcePlugin::filelog(const QString &workingDir, const QStringList &fileNames, +void PerforcePlugin::filelog(const QString &workingDir, const QString &fileName, bool enableAnnotationContextMenu) { - const QString id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, fileNames); - QTextCodec *codec = VcsBase::VcsBaseEditorWidget::getCodec(workingDir, fileNames); + const QString id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, QStringList(fileName)); + QTextCodec *codec = VcsBase::VcsBaseEditorWidget::getCodec(workingDir, QStringList(fileName)); QStringList args; args << QLatin1String("filelog") << QLatin1String("-li"); if (m_settings.logCount() > 0) args << QLatin1String("-m") << QString::number(m_settings.logCount()); - args.append(fileNames); + if (!fileName.isEmpty()) + args.append(fileName); const PerforceResponse result = runP4Cmd(workingDir, args, CommandToWindow|StdErrToWindow|ErrorToWindow, QStringList(), QByteArray(), codec); if (!result.error) { - const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, fileNames); + const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, fileName); Core::IEditor *editor = showOutputInEditor(tr("p4 filelog %1").arg(id), result.stdOut, VcsBase::LogOutput, source, codec); if (enableAnnotationContextMenu) @@ -843,8 +841,8 @@ bool PerforcePlugin::managesDirectoryFstat(const QString &directory) bool managed = false; do { // Quick check: Must be at or below top level and not "../../other_path" - const QStringList relativeDirArgs = m_settings.relativeToTopLevelArguments(directory); - if (!relativeDirArgs.empty() && relativeDirArgs.front().startsWith(QLatin1String(".."))) + const QString relativeDirArgs = m_settings.relativeToTopLevelArguments(directory); + if (!relativeDirArgs.isEmpty() && relativeDirArgs.startsWith(QLatin1String(".."))) break; // Is it actually managed by perforce? QStringList args; diff --git a/src/plugins/perforce/perforceplugin.h b/src/plugins/perforce/perforceplugin.h index 5747b9414506421fc9e85c2300ba2091f6f53ddc..33d8f4737b0e93cde1252c144f51b13644ad85db 100644 --- a/src/plugins/perforce/perforceplugin.h +++ b/src/plugins/perforce/perforceplugin.h @@ -185,7 +185,7 @@ private: QString clientFilePath(const QString &serverFilePath); void annotate(const QString &workingDir, const QString &fileName, const QString &changeList = QString(), int lineNumber = -1); - void filelog(const QString &workingDir, const QStringList &fileNames = QStringList(), + void filelog(const QString &workingDir, const QString &fileName = QString(), bool enableAnnotationContextMenu = false); void cleanCommitMessageFile(); bool isCommitEditorOpen() const; diff --git a/src/plugins/perforce/perforcesettings.cpp b/src/plugins/perforce/perforcesettings.cpp index 8579fa2f802c998c88c8c86946c42e51b3e314cc..822f4f90bbe9cc4c06dd1115c7e9eb2680853d81 100644 --- a/src/plugins/perforce/perforcesettings.cpp +++ b/src/plugins/perforce/perforcesettings.cpp @@ -241,10 +241,9 @@ QString PerforceSettings::relativeToTopLevel(const QString &dir) const return m_topLevelDir->relativeFilePath(dir); } -QStringList PerforceSettings::relativeToTopLevelArguments(const QString &dir) const +QString PerforceSettings::relativeToTopLevelArguments(const QString &dir) const { - const QString relative = relativeToTopLevel(dir); - return relative.isEmpty() ? QStringList() : QStringList(relative); + return relativeToTopLevel(dir); } // Map the root part of a path: diff --git a/src/plugins/perforce/perforcesettings.h b/src/plugins/perforce/perforcesettings.h index a84d81fc1671cf65a947847d2211667b2b01f0f4..17a7fdca3bea4b9db7044045fde9bc4a6b1d216f 100644 --- a/src/plugins/perforce/perforcesettings.h +++ b/src/plugins/perforce/perforcesettings.h @@ -117,7 +117,7 @@ public: QString relativeToTopLevel(const QString &dir) const; // Return argument list relative to top level (empty meaning, // it is the same directory). - QStringList relativeToTopLevelArguments(const QString &dir) const; + QString relativeToTopLevelArguments(const QString &dir) const; // Map p4 path back to file system in case of a symlinked top-level QString mapToFileSystem(const QString &perforceFilePath) const; diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 7cdca762d366b2a4649a997e0f6c99348fa3c56f..13268bc36a027206211880dd72eae051844a9330 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -724,7 +724,8 @@ void SubversionPlugin::diffProject() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasProject(), return); - svnDiff(state.currentProjectTopLevel(), state.relativeCurrentProject(), state.currentProjectName()); + svnDiff(state.currentProjectTopLevel(), QStringList(state.relativeCurrentProject()), + state.currentProjectName()); } void SubversionPlugin::diffCurrentFile() @@ -820,7 +821,7 @@ void SubversionPlugin::filelogCurrentFile() { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasFile(), return); - filelog(state.currentFileTopLevel(), QStringList(state.relativeCurrentFile()), true); + filelog(state.currentFileTopLevel(), state.relativeCurrentFile(), true); } void SubversionPlugin::logProject() @@ -858,13 +859,13 @@ void SubversionPlugin::updateRepository() svnUpdate(state.topLevel()); } -void SubversionPlugin::svnStatus(const QString &workingDir, const QStringList &relativePaths) +void SubversionPlugin::svnStatus(const QString &workingDir, const QString &relativePath) { const VcsBase::VcsBasePluginState state = currentState(); QTC_ASSERT(state.hasTopLevel(), return); QStringList args(QLatin1String("status")); - if (!relativePaths.isEmpty()) - args.append(relativePaths); + if (!relativePath.isEmpty()) + args.append(relativePath); VcsBase::VcsBaseOutputWindow *outwin = VcsBase::VcsBaseOutputWindow::instance(); outwin->setRepository(workingDir); runSvn(workingDir, args, m_settings.timeOutMs(), @@ -873,7 +874,7 @@ void SubversionPlugin::svnStatus(const QString &workingDir, const QStringList &r } void SubversionPlugin::filelog(const QString &workingDir, - const QStringList &files, + const QString &file, bool enableAnnotationContextMenu) { // no need for temp file @@ -882,7 +883,7 @@ void SubversionPlugin::filelog(const QString &workingDir, args << QLatin1String("-l") << QString::number(m_settings.intValue(SubversionSettings::logCountKey)); } - foreach (const QString &file, files) + if (!file.isEmpty()) args.append(QDir::toNativeSeparators(file)); // subversion stores log in UTF-8 and returns it back in user system locale. @@ -896,14 +897,15 @@ void SubversionPlugin::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 id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, files); - const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files); + const QString id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, QStringList(file)); + const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, + QStringList(file)); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { editor->document()->setContents(response.stdOut.toUtf8()); Core::EditorManager::activateEditor(editor); } else { const QString title = QString::fromLatin1("svn log %1").arg(id); - const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, files); + const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, file); Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, VcsBase::LogOutput, source, /*codec*/0); VcsBase::VcsBaseEditorWidget::tagEditor(newEditor, tag); if (enableAnnotationContextMenu) @@ -918,12 +920,12 @@ void SubversionPlugin::updateProject() svnUpdate(state.currentProjectTopLevel(), state.relativeCurrentProject()); } -void SubversionPlugin::svnUpdate(const QString &workingDir, const QStringList &relativePaths) +void SubversionPlugin::svnUpdate(const QString &workingDir, const QString &relativePath) { QStringList args(QLatin1String("update")); args.push_back(QLatin1String(nonInteractiveOptionC)); - if (!relativePaths.isEmpty()) - args.append(relativePaths); + if (!relativePath.isEmpty()) + args.append(relativePath); const SubversionResponse response = runSvn(workingDir, args, 10 * m_settings.timeOutMs(), SshPasswordPrompt|ShowStdOutInLogWindow); diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h index b92e5309af7e1fa4a8c37a605a75e9aa7b2116bd..f0664cc5c62130e3fb20932b2a983bc23cda64c7 100644 --- a/src/plugins/subversion/subversionplugin.h +++ b/src/plugins/subversion/subversionplugin.h @@ -169,10 +169,10 @@ private: unsigned flags, QTextCodec *outputCodec = 0); void filelog(const QString &workingDir, - const QStringList &file = QStringList(), + const QString &file = QString(), bool enableAnnotationContextMenu = false); - void svnStatus(const QString &workingDir, const QStringList &relativePath = QStringList()); - void svnUpdate(const QString &workingDir, const QStringList &relativePaths = QStringList()); + void svnStatus(const QString &workingDir, const QString &relativePath = QString()); + void svnUpdate(const QString &workingDir, const QString &relativePath = QString()); bool checkSVNSubDir(const QDir &directory, const QString &fileName = QString()) const; void startCommit(const QString &workingDir, const QStringList &files = QStringList()); bool commit(const QString &messageFile, const QStringList &subVersionFileList); diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index 9d1905ccc7cf85d418730bc8fa4bca2f775d2c48..e47fb10f06435494326a58598164fada5ad15577 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -404,13 +404,12 @@ QString VcsBasePluginState::currentProjectTopLevel() const return data->m_state.currentProjectTopLevel; } -QStringList VcsBasePluginState::relativeCurrentProject() const +QString VcsBasePluginState::relativeCurrentProject() const { - QStringList rc; - QTC_ASSERT(hasProject(), return rc); + QTC_ASSERT(hasProject(), return QString()); if (data->m_state.currentProjectTopLevel != data->m_state.currentProjectPath) - rc.append(QDir(data->m_state.currentProjectTopLevel).relativeFilePath(data->m_state.currentProjectPath)); - return rc; + return QDir(data->m_state.currentProjectTopLevel).relativeFilePath(data->m_state.currentProjectPath); + return QString(); } bool VcsBasePluginState::hasTopLevel() const diff --git a/src/plugins/vcsbase/vcsbaseplugin.h b/src/plugins/vcsbase/vcsbaseplugin.h index 8c1f5fe39b191a0454c985d8b3e1c86413db9c78..ed60b866ad4d8e30661a1f05f615c4f9fa963130 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.h +++ b/src/plugins/vcsbase/vcsbaseplugin.h @@ -94,9 +94,9 @@ public: QString currentProjectName() const; QString currentProjectTopLevel() const; /* Convenience: Returns project path relative to top level if it - * differs from top level (else empty()) as an argument list to do + * differs from top level (else empty string) as an argument list to do * eg a 'vcs diff <args>' */ - QStringList relativeCurrentProject() const; + QString relativeCurrentProject() const; // Top level directory for actions on the top level. Preferably // the file one.