File indexing completed on 2024-05-12 05:17:27

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef EXTRACTOREDITORWIDGET_H
0008 #define EXTRACTOREDITORWIDGET_H
0009 
0010 #include <QWidget>
0011 
0012 #include <memory>
0013 
0014 namespace KTextEditor {
0015 class Document;
0016 class View;
0017 }
0018 
0019 class KActionCollection;
0020 
0021 class Ui_ExtractorEditorWidget;
0022 class ExtractorFilterModel;
0023 
0024 class ExtractorEditorWidget : public QWidget
0025 {
0026     Q_OBJECT
0027 public:
0028     explicit ExtractorEditorWidget(QWidget *parent = nullptr);
0029     ~ExtractorEditorWidget();
0030     void registerActions(KActionCollection *ac);
0031 
0032     void showExtractor(const QString &extractorId);
0033     void navigateToSource(const QString &fileName, int line);
0034     void reloadExtractors();
0035 
0036 Q_SIGNALS:
0037     void extractorChanged();
0038 
0039 private:
0040     void setMetaDataReadOnly(bool readOnly);
0041     void save();
0042     void create();
0043     void validateInput();
0044 
0045     std::unique_ptr<Ui_ExtractorEditorWidget> ui;
0046     ExtractorFilterModel *m_filterModel = nullptr;
0047 
0048     KTextEditor::Document *m_scriptDoc = nullptr;
0049     KTextEditor::View *m_scriptView = nullptr;
0050 };
0051 
0052 #endif // EXTRACTOREDITORWIDGET_H