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