diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/cpaster/cpasterplugin.cpp | 9 | ||||
-rw-r--r-- | src/plugins/docker/kitdetector.cpp | 1 | ||||
-rw-r--r-- | src/plugins/languageclient/languageclientmanager.cpp | 3 | ||||
-rw-r--r-- | src/plugins/languageclient/languageclientsettings.cpp | 1 | ||||
-rw-r--r-- | src/plugins/lua/bindings/qt.cpp | 37 | ||||
-rw-r--r-- | src/plugins/lua/bindings/texteditor.cpp | 9 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.cpp | 5 | ||||
-rw-r--r-- | src/plugins/texteditor/texteditor.h | 1 |
8 files changed, 64 insertions, 2 deletions
diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp index 2f3c4561960..a2aedfb39d8 100644 --- a/src/plugins/cpaster/cpasterplugin.cpp +++ b/src/plugins/cpaster/cpasterplugin.cpp @@ -22,6 +22,7 @@ #include <coreplugin/messagemanager.h> #include <extensionsystem/iplugin.h> +#include <extensionsystem/pluginmanager.h> #include <utils/algorithm.h> #include <utils/fileutils.h> @@ -74,6 +75,7 @@ class CodePasterPluginPrivate : public QObject { public: CodePasterPluginPrivate(); + ~CodePasterPluginPrivate(); void post(PasteSource pasteSources); void post(QString data, const QString &mimeType); @@ -173,6 +175,13 @@ CodePasterPluginPrivate::CodePasterPluginPrivate() .setText(Tr::tr("Fetch from URL...")) .addToContainer(menu) .addOnTriggered(this, &CodePasterPluginPrivate::fetchUrl); + + ExtensionSystem::PluginManager::addObject(&m_service); +} + +CodePasterPluginPrivate::~CodePasterPluginPrivate() +{ + ExtensionSystem::PluginManager::removeObject(&m_service); } static inline void textFromCurrentEditor(QString *text, QString *mimeType) diff --git a/src/plugins/docker/kitdetector.cpp b/src/plugins/docker/kitdetector.cpp index 6d8e9d36536..c73d20f2f19 100644 --- a/src/plugins/docker/kitdetector.cpp +++ b/src/plugins/docker/kitdetector.cpp @@ -355,6 +355,7 @@ void KitDetectorPrivate::autoDetect() RunDeviceTypeKitAspect::setDeviceTypeId(k, m_device->type()); RunDeviceKitAspect::setDevice(k, m_device); + BuildDeviceTypeKitAspect::setDeviceTypeId(k, m_device->type()); BuildDeviceKitAspect::setDevice(k, m_device); const Toolchains toolchainCandidates = ToolchainManager::toolchains( diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 41058b14fbf..02c995d8a4c 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -660,7 +660,8 @@ void LanguageClientManager::documentOpened(Core::IDocument *document) clients.removeAll(clientForProject); } } else if (setting->m_startBehavior == BaseSettings::RequiresFile && clients.isEmpty()) { - clients << startClient(setting); + if (Client *client = startClient(setting); QTC_GUARD(client)) + clients << client; } allClients << clients; } diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index f5e73eb0a4b..357487cc8a3 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -618,6 +618,7 @@ Client *BaseSettings::createClient(ProjectExplorer::Project *project) const BaseClientInterface *interface = createInterface(project); QTC_ASSERT(interface, return nullptr); auto *client = createClient(interface); + QTC_ASSERT(client, return nullptr); if (client->name().isEmpty()) client->setName(Utils::globalMacroExpander()->expand(m_name)); diff --git a/src/plugins/lua/bindings/qt.cpp b/src/plugins/lua/bindings/qt.cpp index 16bcb12b714..eace0e0ab09 100644 --- a/src/plugins/lua/bindings/qt.cpp +++ b/src/plugins/lua/bindings/qt.cpp @@ -7,10 +7,11 @@ #include <utils/stringutils.h> +#include <QAction> #include <QApplication> #include <QClipboard> -#include <QCursor> #include <QCompleter> +#include <QCursor> #include <QDir> #include <QFileDevice> #include <QFontMetrics> @@ -26,6 +27,40 @@ void setupQtModule() sol::table qt(lua, sol::create); const ScriptPluginSpec *pluginSpec = lua.get<ScriptPluginSpec *>("PluginSpec"sv); + qt.new_usertype<QAction>( + "QAction", + sol::no_constructor, + "checkable", + sol::property(&QAction::isCheckable, &QAction::setCheckable), + "checked", + sol::property(&QAction::isChecked, &QAction::setChecked), + "enabled", + sol::property(&QAction::isEnabled, &QAction::setEnabled), + "icon", + sol::property( + &QAction::icon, + [](QAction *action, IconFilePathOrString icon) { + action->setIcon(toIcon(icon)->icon()); + }), + "text", + sol::property(&QAction::text, &QAction::setText), + "iconText", + sol::property(&QAction::iconText, &QAction::setIconText), + "toolTip", + sol::property(&QAction::toolTip, &QAction::setToolTip), + "statusTip", + sol::property(&QAction::statusTip, &QAction::setStatusTip), + "whatsThis", + sol::property(&QAction::whatsThis, &QAction::setWhatsThis), + "visible", + sol::property(&QAction::isVisible, &QAction::setVisible), + "iconVisibleInMenu", + sol::property(&QAction::isIconVisibleInMenu, &QAction::setIconVisibleInMenu), + "shortcutVisibleInContextMenu", + sol::property( + &QAction::isShortcutVisibleInContextMenu, + &QAction::setShortcutVisibleInContextMenu)); + qt.new_usertype<QCompleter>( "QCompleter", "create", diff --git a/src/plugins/lua/bindings/texteditor.cpp b/src/plugins/lua/bindings/texteditor.cpp index 4e5aa2cd8f3..0fe3d77b172 100644 --- a/src/plugins/lua/bindings/texteditor.cpp +++ b/src/plugins/lua/bindings/texteditor.cpp @@ -224,6 +224,15 @@ void setupTextEditorModule() return BaseTextEditor::currentTextEditor(); }; + result["openedEditors"] = [lua]() mutable -> sol::table { + QList<BaseTextEditor *> editors = BaseTextEditor::openedTextEditors(); + sol::table result = lua.create_table(); + for (auto& editor : editors) { + result.add(TextEditorPtr(editor)); + } + return result; + }; + result.new_usertype<MultiTextCursor>( "MultiTextCursor", sol::no_constructor, diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 0df4d50af7b..35e03c5ceb4 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -10354,6 +10354,11 @@ BaseTextEditor *BaseTextEditor::currentTextEditor() return qobject_cast<BaseTextEditor *>(EditorManager::currentEditor()); } +QList<BaseTextEditor *> BaseTextEditor::openedTextEditors() +{ + return qobject_container_cast<BaseTextEditor *>(DocumentModel::editorsForOpenedDocuments()); +} + QList<BaseTextEditor *> BaseTextEditor::textEditorsForDocument(TextDocument *doc) { return qobject_container_cast<BaseTextEditor *>(DocumentModel::editorsForDocument(doc)); diff --git a/src/plugins/texteditor/texteditor.h b/src/plugins/texteditor/texteditor.h index c3ed07936e2..91bb164bfa9 100644 --- a/src/plugins/texteditor/texteditor.h +++ b/src/plugins/texteditor/texteditor.h @@ -127,6 +127,7 @@ public: virtual void finalizeInitialization() {} static BaseTextEditor *currentTextEditor(); + static QList<BaseTextEditor *> openedTextEditors(); static QList<BaseTextEditor *> textEditorsForDocument(TextDocument *textDocument); static QList<BaseTextEditor *> textEditorsForFilePath(const Utils::FilePath &path); |