Make the ExternalTools classes accessible outside core

Change-Id: I225c22bc48b123fec4420761879382ea0a424029
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Christian Strømme
2022-02-21 20:01:40 +01:00
parent 679a7ba7ef
commit e45766cdc8
7 changed files with 20 additions and 34 deletions

View File

@@ -51,7 +51,6 @@ using namespace Utils;
using namespace Core::Internal; using namespace Core::Internal;
namespace Core { namespace Core {
namespace Internal {
const char kExternalTool[] = "externaltool"; const char kExternalTool[] = "externaltool";
const char kId[] = "id"; const char kId[] = "id";
@@ -331,7 +330,7 @@ static void localizedText(const QStringList &locales, QXmlStreamReader *reader,
} }
} else { } else {
if (*currentLocale < 0 && currentText->isEmpty()) { if (*currentLocale < 0 && currentText->isEmpty()) {
*currentText = QCoreApplication::translate("Core::Internal::ExternalTool", *currentText = QCoreApplication::translate("Core::ExternalTool",
reader->readElementText().toUtf8().constData(), reader->readElementText().toUtf8().constData(),
""); "");
} else { } else {
@@ -721,6 +720,4 @@ void ExternalToolRunner::readStandardError()
m_processOutput.append(output); m_processOutput.append(output);
} }
} // namespace Internal
} // namespace Core } // namespace Core

View File

@@ -25,6 +25,8 @@
#pragma once #pragma once
#include <coreplugin/core_global.h>
#include <utils/environment.h> #include <utils/environment.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/id.h> #include <utils/id.h>
@@ -38,9 +40,8 @@
namespace Utils { class QtcProcess; } namespace Utils { class QtcProcess; }
namespace Core { namespace Core {
namespace Internal {
class ExternalTool : public QObject class CORE_EXPORT ExternalTool : public QObject
{ {
Q_OBJECT Q_OBJECT
@@ -123,7 +124,7 @@ private:
QSharedPointer<ExternalTool> m_presetTool; QSharedPointer<ExternalTool> m_presetTool;
}; };
class ExternalToolRunner : public QObject class CORE_EXPORT ExternalToolRunner : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
@@ -158,7 +159,6 @@ private:
QString m_errorString; QString m_errorString;
}; };
} // Internal
} // Core } // Core
Q_DECLARE_METATYPE(Core::Internal::ExternalTool *) Q_DECLARE_METATYPE(Core::ExternalTool *)

View File

@@ -61,13 +61,6 @@ static ExternalToolManager *m_instance = nullptr;
static ExternalToolManagerPrivate *d = nullptr; static ExternalToolManagerPrivate *d = nullptr;
static void writeSettings(); static void writeSettings();
static void readSettings(const QMap<QString, ExternalTool *> &tools,
QMap<QString, QList<ExternalTool*> > *categoryPriorityMap);
static void parseDirectory(const QString &directory,
QMap<QString, QMultiMap<int, ExternalTool*> > *categoryMenus,
QMap<QString, ExternalTool *> *tools,
bool isPreset = false);
ExternalToolManager::ExternalToolManager() ExternalToolManager::ExternalToolManager()
: QObject(ICore::instance()) : QObject(ICore::instance())
@@ -120,7 +113,7 @@ ExternalToolManager *ExternalToolManager::instance()
return m_instance; return m_instance;
} }
static void parseDirectory(const QString &directory, void ExternalToolManager::parseDirectory(const QString &directory,
QMap<QString, QMultiMap<int, ExternalTool*> > *categoryMenus, QMap<QString, QMultiMap<int, ExternalTool*> > *categoryMenus,
QMap<QString, ExternalTool *> *tools, QMap<QString, ExternalTool *> *tools,
bool isPreset) bool isPreset)
@@ -254,7 +247,7 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<ExternalT
mexternaltools->menu()->addAction(d->m_configureAction); mexternaltools->menu()->addAction(d->m_configureAction);
} }
static void readSettings(const QMap<QString, ExternalTool *> &tools, void ExternalToolManager::readSettings(const QMap<QString, ExternalTool *> &tools,
QMap<QString, QList<ExternalTool *> > *categoryMap) QMap<QString, QList<ExternalTool *> > *categoryMap)
{ {
QSettings *settings = ICore::settings(); QSettings *settings = ICore::settings();

View File

@@ -34,7 +34,7 @@
namespace Core { namespace Core {
namespace Internal { class ExternalTool; } class ExternalTool;
class CORE_EXPORT ExternalToolManager : public QObject class CORE_EXPORT ExternalToolManager : public QObject
{ {
@@ -45,10 +45,17 @@ public:
~ExternalToolManager() override; ~ExternalToolManager() override;
static ExternalToolManager *instance(); static ExternalToolManager *instance();
static QMap<QString, QList<Internal::ExternalTool *> > toolsByCategory(); static QMap<QString, QList<ExternalTool *> > toolsByCategory();
static QMap<QString, Internal::ExternalTool *> toolsById(); static QMap<QString, ExternalTool *> toolsById();
static void setToolsByCategory(const QMap<QString, QList<Internal::ExternalTool *> > &tools); static void setToolsByCategory(const QMap<QString, QList<ExternalTool *> > &tools);
static void emitReplaceSelectionRequested(const QString &output); static void emitReplaceSelectionRequested(const QString &output);
static void readSettings(const QMap<QString, ExternalTool *> &tools,
QMap<QString, QList<ExternalTool*> > *categoryPriorityMap);
static void parseDirectory(const QString &directory,
QMap<QString, QMultiMap<int, ExternalTool*> > *categoryMenus,
QMap<QString, ExternalTool *> *tools,
bool isPreset = false);
signals: signals:
void replaceSelectionRequested(const QString &text); void replaceSelectionRequested(const QString &text);

View File

@@ -2,6 +2,4 @@ add_qtc_test(tst_externaltooltest
DEPENDS Core app_version DEPENDS Core app_version
SOURCES SOURCES
tst_externaltooltest.cpp tst_externaltooltest.cpp
"${PROJECT_SOURCE_DIR}/src/plugins/coreplugin/externaltool.cpp"
"${PROJECT_SOURCE_DIR}/src/plugins/coreplugin/externaltool.h"
) )

View File

@@ -5,15 +5,6 @@ QtcAutotest {
Depends { name: "Core" } Depends { name: "Core" }
Depends { name: "app_version_header" } Depends { name: "app_version_header" }
Group {
name: "Duplicated sources from Core plugin" // Ewww. But the .pro file does the same.
prefix: project.ide_source_tree + "/src/plugins/coreplugin/"
files: [
"externaltool.cpp",
"externaltool.h"
]
}
Group { Group {
name: "Test sources" name: "Test sources"
files: "tst_externaltooltest.cpp" files: "tst_externaltooltest.cpp"

View File

@@ -28,7 +28,7 @@
#include <coreplugin/externaltool.h> #include <coreplugin/externaltool.h>
using namespace Core::Internal; using namespace Core;
using namespace Utils; using namespace Utils;
static const char TEST_XML1[] = static const char TEST_XML1[] =