File indexing completed on 2024-05-12 05:17:28
0001 /* 0002 SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef MAINWINDOW_H 0008 #define MAINWINDOW_H 0009 0010 #include <KItinerary/ExtractorDocumentNode> 0011 #include <KItinerary/ExtractorEngine> 0012 0013 #include <KXmlGuiWindow> 0014 0015 #include <memory> 0016 0017 namespace KMime { 0018 class Message; 0019 } 0020 0021 namespace KTextEditor { 0022 class Document; 0023 class View; 0024 } 0025 0026 namespace Ui 0027 { 0028 class MainWindow; 0029 } 0030 0031 class AttributeModel; 0032 class DocumentModel; 0033 class DOMModel; 0034 class QStandardItemModel; 0035 0036 class MainWindow : public KXmlGuiWindow 0037 { 0038 Q_OBJECT 0039 public: 0040 explicit MainWindow(QWidget *parent = nullptr); 0041 ~MainWindow(); 0042 0043 void openFile(const QString &file); 0044 0045 private: 0046 enum InputTab { 0047 ExtractorEditorTab = 0, 0048 InputTab = 1, 0049 DocumentTab = 2, 0050 TextTab = 3, 0051 ImageTab = 4, 0052 DomTab = 5, 0053 Uic9183Tab = 6, 0054 IataBcbpTab = 7, 0055 EraSsbTab = 8, 0056 VdvTab = 9, 0057 }; 0058 0059 enum OutputTab { 0060 NodeResultTab = 0, 0061 ExtractorOutputTab = 1, 0062 PostprocessorTab = 2, 0063 ValidatedTab = 3, 0064 ICalTab = 4, 0065 ConsoleTab = 5 0066 }; 0067 0068 void clearEngine(); 0069 void sourceChanged(); 0070 void urlChanged(); 0071 void loadFromClipboard(); 0072 void imageContextMenu(QPoint pos); 0073 void setCurrentDocumentNode(const KItinerary::ExtractorDocumentNode &node); 0074 0075 private: 0076 std::unique_ptr<Ui::MainWindow> ui; 0077 0078 KTextEditor::Document *m_sourceDoc = nullptr; 0079 KTextEditor::Document *m_preprocDoc = nullptr; 0080 KTextEditor::Document *m_nodeResultDoc = nullptr; 0081 KTextEditor::Document *m_outputDoc = nullptr; 0082 KTextEditor::Document *m_postprocDoc = nullptr; 0083 KTextEditor::Document *m_validatedDoc = nullptr; 0084 KTextEditor::Document *m_icalDoc = nullptr; 0085 KTextEditor::View *m_sourceView = nullptr; 0086 0087 DocumentModel *m_extractorDocModel; 0088 QStandardItemModel *m_imageModel; 0089 DOMModel *m_domModel; 0090 AttributeModel *m_attrModel; 0091 QStandardItemModel *m_iataBcbpModel; 0092 QStandardItemModel *m_eraSsbModel; 0093 QStandardItemModel *m_vdvModel; 0094 0095 KItinerary::ExtractorEngine m_engine; 0096 QByteArray m_data; 0097 std::unique_ptr<KMime::Message> m_contextMsg; 0098 KItinerary::ExtractorDocumentNode m_currentNode; 0099 }; 0100 0101 #endif // MAINWINDOW_H