WIP: Use KTextEditor for writing scripts

This commit is contained in:
Waqar Ahmed
2022-05-24 12:16:55 +05:00
parent 8663b4be86
commit 2d094e2d17
2 changed files with 15 additions and 0 deletions

View File

@@ -1,6 +1,8 @@
ki18n_wrap_ui(EXTRA_QUICKCOMMANDSPLUGIN_SRCS qcwidget.ui)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED TextEditor)
kcoreaddons_add_plugin(konsole_quickcommandsplugin
SOURCES
quickcommandsplugin.cpp
@@ -15,4 +17,5 @@ INSTALL_NAMESPACE
target_link_libraries(konsole_quickcommandsplugin
konsoleprivate
konsoleapp
KF5::TextEditor
)

View File

@@ -19,6 +19,11 @@
#include <kmessagebox.h>
#include <kstandardguiitem.h>
#include <KTextEditor/Document>
#include <KTextEditor/Editor>
#include <KTextEditor/View>
#include <KTextEditor/ConfigInterface>
struct QuickCommandsWidget::Private {
QuickCommandsModel *model = nullptr;
FilterModel *filterModel = nullptr;
@@ -54,6 +59,13 @@ QuickCommandsWidget::QuickCommandsWidget(QWidget *parent)
priv->filterModel->invalidate();
});
auto doc = KTextEditor::Editor::instance()->createDocument(this);
auto view = doc->createView(this);
auto ciface = qobject_cast<KTextEditor::ConfigInterface*>(view);
ciface->setConfigValue(QStringLiteral("line-numbers"), true);
ciface->setConfigValue(QStringLiteral("modification-markers"), true);
ui->tabWidget->insertTab(0, view, i18n("Command"));
ui->commandsTreeView->setModel(priv->filterModel);
ui->commandsTreeView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->commandsTreeView, &QTreeView::doubleClicked, this, &QuickCommandsWidget::invokeCommand);