File indexing completed on 2024-05-05 05:37:09
0001 /* 0002 * SPDX-FileCopyrightText: 2007 Aaron Seigo <aseigo@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef ENGINEEXPLORER_H 0008 #define ENGINEEXPLORER_H 0009 0010 class QStandardItemModel; 0011 class QStandardItem; 0012 0013 #include <QDialog> 0014 0015 #include <Plasma5Support/DataEngine> 0016 0017 #include "ui_engineexplorer.h" 0018 0019 namespace Plasma5Support 0020 { 0021 class DataEngine; 0022 class PluginLoader; 0023 } // namespace Plasma 0024 0025 class QPushButton; 0026 0027 class EngineExplorer : public QDialog, public Ui::EngineExplorer 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 explicit EngineExplorer(QWidget *parent = nullptr); 0033 ~EngineExplorer() override; 0034 0035 void setApp(const QString &app); 0036 void setEngine(const QString &engine); 0037 void setInterval(const int interval); 0038 void requestSource(const QString &source); 0039 0040 static QString convertToString(const QVariant &value); 0041 0042 public Q_SLOTS: 0043 void dataUpdated(const QString &source, const Plasma5Support::DataEngine::Data &data); 0044 0045 private Q_SLOTS: 0046 void showEngine(const QString &engine); 0047 void addSource(const QString &source); 0048 void removeSource(const QString &source); 0049 void requestSource(); 0050 void requestServiceForSource(); 0051 void showDataContextMenu(const QPoint &point); 0052 void cleanUp(); 0053 0054 private: 0055 void listEngines(); 0056 int showData(QStandardItem *parent, Plasma5Support::DataEngine::Data data); 0057 void showData(QStandardItem *parent, int row, const QString &key, const QVariant &value); 0058 int showContainerData(QStandardItem *parent, QStandardItem *current, int row, const char *typeName, const QList<QVariantMap> &list); 0059 int showContainerData(QStandardItem *parent, QStandardItem *current, int row, const char *typeName, const QVariantList &list); 0060 int showContainerData(QStandardItem *parent, QStandardItem *current, int row, const char *typeName, const QVariantMap &map); 0061 void updateTitle(); 0062 void enableButtons(bool enable); 0063 void removeExtraRows(QStandardItem *parent, int preserve); 0064 0065 QStandardItemModel *m_dataModel; 0066 QString m_app; 0067 QString m_engineName; 0068 Plasma5Support::DataEngine *m_engine; 0069 int m_sourceCount; 0070 bool m_requestingSource; 0071 QPushButton *m_expandButton; 0072 QPushButton *m_collapseButton; 0073 }; 0074 0075 #endif // multiple inclusion guard