From 48a7c050c05db68d56359700412504f360e5df2b Mon Sep 17 00:00:00 2001 From: Krzysztof Chrusciel Date: Tue, 8 Apr 2025 15:42:23 +0200 Subject: [PATCH] Lua: Add possibility to get all opened editors Change-Id: Iae68fca2ec0f42043b3e4db7de91babba60e29e0 Reviewed-by: David Schulz --- src/plugins/lua/bindings/texteditor.cpp | 9 +++++++++ src/plugins/texteditor/texteditor.cpp | 5 +++++ src/plugins/texteditor/texteditor.h | 1 + 3 files changed, 15 insertions(+) diff --git a/src/plugins/lua/bindings/texteditor.cpp b/src/plugins/lua/bindings/texteditor.cpp index 71d66e7ba60..5eb6081120a 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 editors = BaseTextEditor::openedTextEditors(); + sol::table result = lua.create_table(); + for (auto& editor : editors) { + result.add(TextEditorPtr(editor)); + } + return result; + }; + result.new_usertype( "MultiTextCursor", sol::no_constructor, diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 02ccb8b06f1..fc562fc7a79 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -10364,6 +10364,11 @@ BaseTextEditor *BaseTextEditor::currentTextEditor() return qobject_cast(EditorManager::currentEditor()); } +QList BaseTextEditor::openedTextEditors() +{ + return qobject_container_cast(DocumentModel::editorsForOpenedDocuments()); +} + QVector BaseTextEditor::textEditorsForDocument(TextDocument *textDocument) { QVector ret; diff --git a/src/plugins/texteditor/texteditor.h b/src/plugins/texteditor/texteditor.h index 76bf06ab102..41baf490bd9 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 openedTextEditors(); static QVector textEditorsForDocument(TextDocument *textDocument); TextEditorWidget *editorWidget() const;