diff --git a/src/plugins/clearcase/clearcasecontrol.cpp b/src/plugins/clearcase/clearcasecontrol.cpp index 7c055f118dae76f34a4fcbe45f57e927e07c1014..475333084ed26516f7c84c7644aa3cca29515dc0 100644 --- a/src/plugins/clearcase/clearcasecontrol.cpp +++ b/src/plugins/clearcase/clearcasecontrol.cpp @@ -136,6 +136,16 @@ bool ClearCaseControl::vcsAnnotate(const QString &file, int line) return true; } +QString ClearCaseControl::vcsOpenText() const +{ + return tr("&Check Out"); +} + +QString ClearCaseControl::vcsMakeWritableText() const +{ + return tr("&Hijack"); +} + void ClearCaseControl::emitRepositoryChanged(const QString &s) { emit repositoryChanged(s); diff --git a/src/plugins/clearcase/clearcasecontrol.h b/src/plugins/clearcase/clearcasecontrol.h index 789dbbf9b3311e0f81402ef3d610a0c7e59ca79c..166b6195d3c065eacdd5d8cadaa8527db6af51e9 100644 --- a/src/plugins/clearcase/clearcasecontrol.h +++ b/src/plugins/clearcase/clearcasecontrol.h @@ -70,6 +70,9 @@ public: bool vcsAnnotate(const QString &file, int line); + QString vcsOpenText() const; + QString vcsMakeWritableText() const; + void emitRepositoryChanged(const QString &); void emitFilesChanged(const QStringList &); void emitConfigurationChanged(); diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index 1736574340a7e3b125abcb0ff78a55d0114cf81d..14a7450b3c99caabbdc42e6bc3c0641f4417deeb 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -102,7 +102,8 @@ SOURCES += mainwindow.cpp \ idocument.cpp \ textdocument.cpp \ documentmanager.cpp \ - removefiledialog.cpp + removefiledialog.cpp \ + iversioncontrol.cpp HEADERS += mainwindow.h \ editmode.h \ diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs index 255d946c4db3c9998b0d8959170df6a25b623571..cf50a5729939ee54c4bd87676cb0f8ad0acd0c6a 100644 --- a/src/plugins/coreplugin/coreplugin.qbs +++ b/src/plugins/coreplugin/coreplugin.qbs @@ -152,6 +152,7 @@ QtcPlugin { "versiondialog.cpp", "versiondialog.h", "id.cpp", + "iversioncontrol.cpp", "iversioncontrol.h", "variablechooser.cpp", "variablemanager.cpp", diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp index 7a1b0c5ab35d5bd1619e36ec863399d6b9bb0a25..a6eae6c95d74d03fe0a00f4c8683f9beedabb60e 100644 --- a/src/plugins/coreplugin/documentmanager.cpp +++ b/src/plugins/coreplugin/documentmanager.cpp @@ -829,15 +829,20 @@ DocumentManager::ReadOnlyAction tr("The file <i>%1</i> is read only.").arg(QDir::toNativeSeparators(fileName)), QMessageBox::Cancel, parent); + QString makeWritableText; QPushButton *vcsButton = 0; - if (promptVCS) - vcsButton = msgBox.addButton(tr("Open with VCS (%1)").arg(versionControl->displayName()), QMessageBox::AcceptRole); + if (promptVCS) { + vcsButton = msgBox.addButton(versionControl->vcsOpenText(), QMessageBox::AcceptRole); + makeWritableText = versionControl->vcsMakeWritableText(); + } + if (makeWritableText.isEmpty()) + makeWritableText = tr("Make &Writable"); - QPushButton *makeWritableButton = msgBox.addButton(tr("Make Writable"), QMessageBox::AcceptRole); + QPushButton *makeWritableButton = msgBox.addButton(makeWritableText, QMessageBox::AcceptRole); QPushButton *saveAsButton = 0; if (displaySaveAsButton) - saveAsButton = msgBox.addButton(tr("Save As..."), QMessageBox::ActionRole); + saveAsButton = msgBox.addButton(tr("&Save As..."), QMessageBox::ActionRole); msgBox.setDefaultButton(vcsButton ? vcsButton : makeWritableButton); msgBox.exec(); diff --git a/src/plugins/coreplugin/iversioncontrol.cpp b/src/plugins/coreplugin/iversioncontrol.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ebd075b112a743b2d0e5dab7846b22e9eab9d842 --- /dev/null +++ b/src/plugins/coreplugin/iversioncontrol.cpp @@ -0,0 +1,45 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: http://www.qt-project.org/ +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +**************************************************************************/ + +#include "iversioncontrol.h" + +namespace Core { + +QString IVersionControl::vcsOpenText() const +{ + return tr("Open with VCS (%1)").arg(displayName()); +} + +QString IVersionControl::vcsMakeWritableText() const +{ + return QString(); +} + +} diff --git a/src/plugins/coreplugin/iversioncontrol.h b/src/plugins/coreplugin/iversioncontrol.h index 3134d0fe08af9cff853af004e19977073def5bd8..b6f4e012f3d1149ff0b3c081849e174d58a2fe87 100644 --- a/src/plugins/coreplugin/iversioncontrol.h +++ b/src/plugins/coreplugin/iversioncontrol.h @@ -163,6 +163,16 @@ public: */ virtual bool vcsAnnotate(const QString &file, int line) = 0; + /*! + * Display text for Open operation + */ + virtual QString vcsOpenText() const; + + /*! + * Display text for Make Writable + */ + virtual QString vcsMakeWritableText() const; + signals: void repositoryChanged(const QString &repository); void filesChanged(const QStringList &files); diff --git a/src/plugins/perforce/perforceversioncontrol.cpp b/src/plugins/perforce/perforceversioncontrol.cpp index d4482aa5ba63b5a9084b5edff75b18a8bf750bf0..7a7b2f69d697d5e61667e691d0a9107f411ac8f1 100644 --- a/src/plugins/perforce/perforceversioncontrol.cpp +++ b/src/plugins/perforce/perforceversioncontrol.cpp @@ -158,6 +158,16 @@ QString PerforceVersionControl::vcsGetRepositoryURL(const QString &) return QString(); } +QString PerforceVersionControl::vcsOpenText() const +{ + return tr("&Edit (%1)").arg(displayName()); +} + +QString PerforceVersionControl::vcsMakeWritableText() const +{ + return tr("&Hijack"); +} + bool PerforceVersionControl::managesDirectory(const QString &directory, QString *topLevel) const { const bool rc = m_plugin->managesDirectory(directory, topLevel); diff --git a/src/plugins/perforce/perforceversioncontrol.h b/src/plugins/perforce/perforceversioncontrol.h index ee1ab655d9d0943d17e2fba7d33aedda7a504d01..0be5847b9eacea4f0f73a7accc0340ee39bbae2f 100644 --- a/src/plugins/perforce/perforceversioncontrol.h +++ b/src/plugins/perforce/perforceversioncontrol.h @@ -64,6 +64,8 @@ public: bool vcsRestoreSnapshot(const QString &topLevel, const QString &name); bool vcsRemoveSnapshot(const QString &topLevel, const QString &name); bool vcsAnnotate(const QString &file, int line); + QString vcsOpenText() const; + QString vcsMakeWritableText() const; void emitRepositoryChanged(const QString &s); void emitFilesChanged(const QStringList &l);