File indexing completed on 2025-10-12 03:31:09

0001 /*
0002     File                 : JsonOptionsWidget.h
0003     Project              : LabPlot
0004     Description          : Widget providing options for the import of json data.
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2018 Andrey Cygankov <craftplace.ms@gmail.com>
0007     SPDX-FileCopyrightText: 2018-2023 Alexander Semke <alexander.semke@web.de>
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef JSONOPTIONSWIDGET_H
0012 #define JSONOPTIONSWIDGET_H
0013 
0014 #include "ui_jsonoptionswidget.h"
0015 
0016 class JsonFilter;
0017 class QAbstractItemModel;
0018 class QJsonModel;
0019 
0020 class JsonOptionsWidget : public QWidget {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit JsonOptionsWidget(QWidget*);
0025 
0026     void applyFilterSettings(JsonFilter*, const QModelIndex&) const;
0027     void clearModel();
0028     void loadSettings() const;
0029     void saveSettings();
0030     void loadDocument(const QString& filename);
0031     QAbstractItemModel* model();
0032 
0033 private:
0034     void setTooltips();
0035     QVector<int> getIndexRows(const QModelIndex&) const;
0036 
0037     QString m_filename;
0038     Ui::JsonOptionsWidget ui;
0039     QPointer<QJsonModel> m_model;
0040 
0041 Q_SIGNALS:
0042     void error(const QString&);
0043 };
0044 
0045 #endif