From 0ffc9ab76aaaf8568aa9a2cab6b0a3d5007e5113 Mon Sep 17 00:00:00 2001
From: Alessandro Portale <alessandro.portale@nokia.com>
Date: Fri, 8 May 2009 15:31:54 +0200
Subject: [PATCH] Removed unused source files that mentioned "Workbench". While
 at it, also removed all code inside USE_P4_API. Gits history be our backup,
 if we ever want to use the P4 Api directly in the future.

---
 share/qtcreator/translations/qtcreator_de.ts |  19 --
 share/qtcreator/translations/qtcreator_ja.ts |  19 --
 src/plugins/perforce/p4.h                    |  45 ---
 src/plugins/perforce/perforce.pro            |   2 +-
 src/plugins/perforce/perforceplugin.cpp      |  24 --
 src/plugins/perforce/perforceplugin.h        |  10 -
 src/plugins/perforce/workbenchclientuser.cpp | 282 -------------------
 src/plugins/perforce/workbenchclientuser.h   | 108 -------
 8 files changed, 1 insertion(+), 508 deletions(-)
 delete mode 100644 src/plugins/perforce/p4.h
 delete mode 100644 src/plugins/perforce/workbenchclientuser.cpp
 delete mode 100644 src/plugins/perforce/workbenchclientuser.h

diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 6cabba88b06..a143642d1d5 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -7124,25 +7124,6 @@ in your .pro file.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
-<context>
-    <name>Perforce::Internal::WorkbenchClientUser</name>
-    <message>
-        <location filename="../../../src/plugins/perforce/workbenchclientuser.cpp" line="+143"/>
-        <location line="+138"/>
-        <source>Perforce Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-99"/>
-        <source>Closing p4 Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Do you want to submit this change list?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>PluginDialog</name>
     <message>
diff --git a/share/qtcreator/translations/qtcreator_ja.ts b/share/qtcreator/translations/qtcreator_ja.ts
index 76a490e231e..7a9e5312d29 100644
--- a/share/qtcreator/translations/qtcreator_ja.ts
+++ b/share/qtcreator/translations/qtcreator_ja.ts
@@ -6847,25 +6847,6 @@ in your .pro file.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
-<context>
-    <name>Perforce::Internal::WorkbenchClientUser</name>
-    <message>
-        <location filename="../../../src/plugins/perforce/workbenchclientuser.cpp" line="+143"/>
-        <location line="+138"/>
-        <source>Perforce Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-99"/>
-        <source>Closing p4 Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Do you want to submit this change list?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>PluginDialog</name>
     <message>
diff --git a/src/plugins/perforce/p4.h b/src/plugins/perforce/p4.h
deleted file mode 100644
index 107cf41da84..00000000000
--- a/src/plugins/perforce/p4.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact:  Qt Software Information (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-**
-**************************************************************************/
-
-#ifndef P4_API_INCL
-#define P4_API_INCL
-
-#include <qconfig.h>
-
-#ifdef USE_P4_API
-#
-#  if defined(Q_OS_WIN) && defined(SetPort)
-#    undef SetPort
-#  endif
-#
-#  include <clientapi.h>
-#  include <diff.h>
-#endif
-
-#endif // P4_API_INCL
diff --git a/src/plugins/perforce/perforce.pro b/src/plugins/perforce/perforce.pro
index 66fe1fe1f5a..017dda29819 100644
--- a/src/plugins/perforce/perforce.pro
+++ b/src/plugins/perforce/perforce.pro
@@ -4,7 +4,7 @@ TARGET = Perforce
 include(../../qtcreatorplugin.pri)
 include(perforce_dependencies.pri)
 
-HEADERS += p4.h \
+HEADERS += \
     perforceplugin.h \
     perforceoutputwindow.h \
     settingspage.h \
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index a3112da078b..eb3bafc0522 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -30,7 +30,6 @@
 #include "perforceplugin.h"
 
 #include "changenumberdialog.h"
-#include "p4.h"
 #include "pendingchangesdialog.h"
 #include "perforceconstants.h"
 #include "perforceeditor.h"
@@ -188,9 +187,6 @@ PerforcePlugin::PerforcePlugin() :
     m_undoAction(0),
     m_redoAction(0),
     m_changeTmpFile(0),
-#ifdef USE_P4_API
-    m_workbenchClientUser(0),
-#endif
     m_coreListener(0),
     m_submitEditorFactory(0),
     m_versionControl(0)
@@ -334,13 +330,6 @@ bool PerforcePlugin::initialize(const QStringList &arguments, QString *errorMess
     connect(m_openedAction, SIGNAL(triggered()), this, SLOT(printOpenedFileList()));
     mperforce->addAction(command);
 
-#ifdef USE_P4_API
-    m_resolveAction = new QAction(tr("Resolve"), this);
-    command = am->registerAction(m_resolveAction, PerforcePlugin::RESOLVE, globalcontext);
-    connect(m_resolveAction, SIGNAL(triggered()), this, SLOT(resolve()));
-    mperforce->addAction(command);
-#endif
-
     m_submitAction = new QAction(tr("Submit Project"), this);
     command = am->registerAction(m_submitAction, PerforcePlugin::SUBMIT, globalcontext);
     command->setDefaultKeySequence(QKeySequence(tr("Alt+P,Alt+S")));
@@ -493,14 +482,6 @@ void PerforcePlugin::printOpenedFileList()
     PerforceResponse result = runP4Cmd(QStringList() << QLatin1String("opened"), QStringList(), CommandToWindow|StdOutToWindow|StdErrToWindow|ErrorToWindow);
 }
 
-#ifdef USE_P4_API
-void PerforcePlugin::resolve()
-{
-    m_workbenchClientUser->setMode(WorkbenchClientUser::Resolve);
-    runP4APICmd(QLatin1String("resolve"));
-}
-#endif
-
 void PerforcePlugin::submit()
 {
     if (!checkP4Command()) {
@@ -689,11 +670,6 @@ void PerforcePlugin::updateActions()
     m_annotateAction->setEnabled(true);
     m_filelogAction->setEnabled(true);
     m_pendingAction->setEnabled(true);
-
-
-#ifdef USE_P4_API
-    m_resolveAction->setEnabled(m_enableP4APIActions);
-#endif
 }
 
 bool PerforcePlugin::managesDirectory(const QString &directory) const
diff --git a/src/plugins/perforce/perforceplugin.h b/src/plugins/perforce/perforceplugin.h
index 4191d30e8b2..733b514dd23 100644
--- a/src/plugins/perforce/perforceplugin.h
+++ b/src/plugins/perforce/perforceplugin.h
@@ -138,10 +138,6 @@ private slots:;
     void printPendingChanges();
     void slotDiff(const QStringList &files);
 
-#ifdef USE_P4_API
-    void resolve();
-#endif
-
 private:
     QStringList environment() const;
 
@@ -223,12 +219,6 @@ private:
     static PerforcePlugin *m_perforcePluginInstance;
     QString pendingChangesData();
 
-#ifdef USE_P4_API
-    void runP4APICmd(const QString &cmd, const QStringList &args = QStringList());
-    WorkbenchClientUser *m_workbenchClientUser;
-    bool m_enableP4APIActions;
-#endif
-
     CoreListener *m_coreListener;
     Core::IEditorFactory *m_submitEditorFactory;
     PerforceVersionControl *m_versionControl;
diff --git a/src/plugins/perforce/workbenchclientuser.cpp b/src/plugins/perforce/workbenchclientuser.cpp
deleted file mode 100644
index 097fe214904..00000000000
--- a/src/plugins/perforce/workbenchclientuser.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact:  Qt Software Information (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-**
-**************************************************************************/
-
-#include "workbenchclientuser.h"
-#include "perforceoutputwindow.h"
-#include "perforceplugin.h"
-
-#include <coreplugin/filemanager.h>
-#include <coreplugin/actionmanager/actionmanagerinterface.h>
-#include <coreplugin/editormanager/editormanager.h>
-
-#include <QtCore/QEventLoop>
-#include <QtCore/QTemporaryFile>
-#include <QtGui/QMessageBox>
-#include <QtGui/QRadioButton>
-#include <QtGui/QMessageBox>
-#include <QtGui/QMainWindow>
-
-using namespace Perforce::Internal;
-
-PromptDialog::PromptDialog(const QString &choice, const QString &text,
-                           QWidget *parent)
-    : QDialog(parent)
-{
-    m_ui.setupUi(this);
-    m_ui.msgLabel->setText(text);
-
-    const QChar closingParenthesis = QLatin1Char(')');
-    const QStringList opts = choice.split(QString(closingParenthesis));
-    int row = 0;
-    int column = 0;
-    QString opt;
-    QRadioButton *rb = 0;
-    for (int i=0; i<opts.count(); ++i) {
-        opt = opts.at(i).trimmed();
-        if (opt.isEmpty() || opt.startsWith(QLatin1String("Help")))
-            continue;
-        if (i == opts.count()-1)
-            opt = QLatin1String("Default(") + opt.left(opt.length()-1);
-        opt.append(QLatin1String(")"));
-        rb = new QRadioButton(opt, this);
-        rb->setChecked(true);
-        if (column>0 && column%3==0)
-            ++row;
-        m_ui.gridLayout->addWidget(rb, row, column%3, 1, 1);
-        ++column;
-
-        const int j = opt.lastIndexOf(QLatin1Char('('));
-        opt = opt.mid(j+1, opt.lastIndexOf(closingParenthesis)-j-1);
-        m_optionsMap.insert(rb, opt);
-    }
-}
-
-QString PromptDialog::input() const
-{
-    QMapIterator<QRadioButton*, QString> it(m_optionsMap);
-    while (it.hasNext()) {
-        it.next();
-        if (it.key()->isChecked())
-            return it.value();
-    }
-    return QString();
-}
-
-WorkbenchClientUser::WorkbenchClientUser(PerforceOutputWindow *out, PerforcePlugin *plugin)  :
-    QObject(out),
-    m_plugin(plugin),
-    m_core(Core::ICore::instance()),
-    m_currentEditorIface(0),
-    m_userCancelled(false),
-    m_mode(Submit),
-    m_perforceOutputWindow(out),
-    m_skipNextMsg(false),
-    m_eventLoop(new QEventLoop(this))
-{
-    connect(m_core, SIGNAL(coreAboutToClose()),
-        this, SLOT(cancelP4Command()));
-}
-
-WorkbenchClientUser::~WorkbenchClientUser()
-{
-}
-
-void WorkbenchClientUser::setMode(WorkbenchClientUser::Mode mode)
-{
-    m_mode = mode;
-}
-
-void WorkbenchClientUser::cancelP4Command()
-{
-    m_userCancelled = true;
-    m_eventLoop->quit();
-}
-
-void WorkbenchClientUser::Message(Error* err)
-{
-    StrBuf buf;
-    err->Fmt(&buf);
-    QString s = buf.Text();
-    m_perforceOutputWindow->append(s);
-    if (!m_skipNextMsg) {
-        if (err->GetSeverity() == E_FAILED || err->GetSeverity() == E_FATAL) {
-            if (!s.startsWith("Client side operation(s) failed."))
-                m_errMsg.append(s);
-        } else {
-            m_msg.append(s);
-        }
-    }
-    m_skipNextMsg = false;
-}
-
-void WorkbenchClientUser::displayErrorMsg(const QString &msg)
-{
-    if (msg.isEmpty())
-        return;
-
-    const QString title = tr("Perforce Error");
-    switch (m_mode) {
-    case Submit: {
-        QMessageBox msgBox(QMessageBox::Critical, title,  msg, QMessageBox::Ok, m_core->mainWindow());
-        msgBox.setDetailedText(m_msg);
-        msgBox.exec();
-    }
-        break;
-    default:
-        QMessageBox::critical(m_core->mainWindow(), title, msg);
-        break;
-    }
-    m_errMsg.clear();
-}
-
-void WorkbenchClientUser::OutputError(const char *errBuf)
-{
-    QString s(errBuf);
-    s = s.trimmed();
-    m_perforceOutputWindow->append(s);
-    displayErrorMsg(s);
-}
-
-void WorkbenchClientUser::Finished()
-{
-    m_errMsg = m_errMsg.trimmed();
-    displayErrorMsg(m_errMsg);
-    m_msg.clear();
-    m_currentEditorIface = 0;
-    m_userCancelled = false;
-    m_skipNextMsg = false;
-}
-
-bool WorkbenchClientUser::editorAboutToClose(Core::IEditor *editor)
-{
-    if (editor && editor == m_currentEditorIface) {
-        if (m_mode == WorkbenchClientUser::Submit) {
-            const QMessageBox::StandardButton answer =
-                QMessageBox::question(m_core->mainWindow(),
-                                      tr("Closing p4 Editor"),
-                                      tr("Do you want to submit this change list?"),
-                                      QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel, QMessageBox::Yes);
-            if (answer == QMessageBox::Cancel)
-                return false;
-            if (answer == QMessageBox::No)
-                m_userCancelled = true;
-            m_core->fileManager()->blockFileChange(m_currentEditorIface->file());
-            m_currentEditorIface->file()->save();
-            m_core->fileManager()->unblockFileChange(m_currentEditorIface->file());
-        }
-        m_eventLoop->quit();
-        m_currentEditorIface = 0;
-    }
-    return true;
-}
-
-void WorkbenchClientUser::Diff(FileSys *f1, FileSys *f2, int, char *, Error *err)
-{
-    if (!f1->IsTextual() || !f2->IsTextual())
-        return;
-
-    FileSys *file1 = File(FST_BINARY);
-    file1->Set(f1->Name());
-
-    FileSys *file2 = File(FST_BINARY);
-    file2->Set(f2->Name());
-
-    QTemporaryFile tmp;
-    tmp.open();
-    QString fileName = tmp.fileName();
-
-    {
-        ::Diff d;
-        d.SetInput(file1, file2, DiffFlags(), err);
-        if (!err->Test())
-            d.SetOutput(fileName.toLatin1().constData(), err);
-        if (!err->Test())
-            d.DiffUnified();
-        d.CloseOutput(err);
-    }
-    delete file1;
-    delete file2;
-
-    QString title = QString("diff %1").arg(f1->Name());
-    m_currentEditorIface = m_core->editorManager()->newFile("Perforce Editor", &title, tmp.readAll());
-    if (!m_currentEditorIface) {
-        err->Set(E_FAILED, "p4 data could not be opened!");
-        return;
-    }
-    m_userCancelled = false;
-    m_eventLoop->exec();
-    if (m_userCancelled)
-        err->Set(E_FAILED, "");
-}
-
-void WorkbenchClientUser::Edit(FileSys *f, Error *err)
-{
-    QString fileName(f->Name());
-    if (m_mode == Submit) {
-        m_currentEditorIface = m_plugin->openPerforceSubmitEditor(fileName, QStringList());
-    }
-    else {
-        m_currentEditorIface = m_core->editorManager()->openEditor(fileName);
-        m_core->editorManager()->ensureEditorManagerVisible();
-    }
-    if (!m_currentEditorIface) {
-        err->Set(E_FAILED, "p4 data could not be opened!");
-        return;
-    }
-    m_userCancelled = false;
-    m_eventLoop->exec();
-    if (m_userCancelled)
-        err->Set(E_FAILED, "");
-}
-
-void WorkbenchClientUser::Prompt(const StrPtr &msg, StrBuf &answer, int , Error *err)
-{
-    if (m_userCancelled) {
-        err->Set(E_FATAL, "");
-        return;
-    }
-    PromptDialog dia(msg.Text(), m_msg, qobject_cast<QWidget*>(m_core));
-    dia.exec();
-    answer = qstrdup(dia.input().toLatin1().constData());
-    if (m_mode == WorkbenchClientUser::Resolve) {
-        if (strcmp(answer.Text(), "e") == 0) {
-            ;
-        } else if (strcmp(answer.Text(), "d") == 0) {
-            ;
-        } else {
-            m_msg.clear();
-            m_skipNextMsg = true;
-        }
-    }
-}
-
-void WorkbenchClientUser::ErrorPause(char *msg, Error *)
-{
-    QMessageBox::warning(m_core->mainWindow(), tr("Perforce Error"), QString::fromUtf8(msg));
-}
diff --git a/src/plugins/perforce/workbenchclientuser.h b/src/plugins/perforce/workbenchclientuser.h
deleted file mode 100644
index 359bc1da29b..00000000000
--- a/src/plugins/perforce/workbenchclientuser.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact:  Qt Software Information (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, 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.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-**
-**************************************************************************/
-
-#ifndef WORKBENCHCLIENTUSER_H
-#define WORKBENCHCLIENTUSER_H
-
-#include "p4.h"
-#include "ui_promptdialog.h"
-
-#include <coreplugin/icorelistener.h>
-
-#include <QtCore/QObject>
-#include <QtCore/QMap>
-
-QT_BEGIN_NAMESPACE
-class QRadioButton;
-class QEventLoop;
-QT_END_NAMESPACE
-
-namespace Core {
-class ICore;
-class IEditor;
-}
-
-namespace Perforce {
-namespace Internal {
-
-class PerforceOutputWindow;
-class PerforcePlugin;
-
-class PromptDialog : public QDialog
-{
-public:
-    PromptDialog(const QString &choice, const QString &text, QWidget *parent = 0);
-    QString input() const;
-
-private:
-    Ui::PromptDialog m_ui;
-    QMap<QRadioButton*, QString> m_optionsMap;
-};
-
-class WorkbenchClientUser : public QObject, public ClientUser
-{
-    Q_OBJECT
-
-public:
-    enum Mode {Submit, Resolve};
-    WorkbenchClientUser(PerforceOutputWindow *out, PerforcePlugin *plugin);
-    ~WorkbenchClientUser();
-    void setMode(WorkbenchClientUser::Mode mode);
-
-    void Message(Error* err);
-    void OutputError(const char *errBuf);
-    void Finished();
-    void Diff(FileSys *f1, FileSys *f2, int, char *, Error *err);
-    void Edit( FileSys *f, Error *err);
-    void Prompt(const StrPtr &msg, StrBuf &answer, int , Error *err);
-    void ErrorPause(char *msg, Error *);
-    bool editorAboutToClose(Core::IEditor *editor);
-
-private slots:
-    void cancelP4Command();
-
-private:
-    void displayErrorMsg(const QString &msg);
-
-    PerforcePlugin *m_plugin;
-    Core::ICore *m_core;
-    Core::IEditor *m_currentEditorIface;
-    bool m_userCancelled;
-    Mode m_mode;
-    PerforceOutputWindow *m_perforceOutputWindow;
-    QString m_msg;
-    QString m_errMsg;
-    bool m_skipNextMsg;
-    QEventLoop *m_eventLoop;
-};
-
-} // namespace Perforce
-} // namespace Internal
-
-#endif // WORKBENCHCLIENTUSER_H
-- 
GitLab