1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
/*
* SPDX-FileCopyrightText: 2007 Aaron Seigo <aseigo@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef ENGINEEXPLORER_H
#define ENGINEEXPLORER_H
class QStandardItemModel;
class QStandardItem;
#include <QDialog>
#include <Plasma5Support/DataEngine>
#include "ui_engineexplorer.h"
namespace Plasma5Support
{
class DataEngine;
class PluginLoader;
} // namespace Plasma
class QPushButton;
class EngineExplorer : public QDialog, public Ui::EngineExplorer
{
Q_OBJECT
public:
explicit EngineExplorer(QWidget *parent = nullptr);
~EngineExplorer() override;
void setApp(const QString &app);
void setEngine(const QString &engine);
void setInterval(const int interval);
void requestSource(const QString &source);
static QString convertToString(const QVariant &value);
public Q_SLOTS:
void dataUpdated(const QString &source, const Plasma5Support::DataEngine::Data &data);
private Q_SLOTS:
void showEngine(const QString &engine);
void addSource(const QString &source);
void removeSource(const QString &source);
void requestSource();
void requestServiceForSource();
void showDataContextMenu(const QPoint &point);
void cleanUp();
private:
void listEngines();
int showData(QStandardItem *parent, Plasma5Support::DataEngine::Data data);
void showData(QStandardItem *parent, int row, const QString &key, const QVariant &value);
int showContainerData(QStandardItem *parent, QStandardItem *current, int row, const char *typeName, const QList<QVariantMap> &list);
int showContainerData(QStandardItem *parent, QStandardItem *current, int row, const char *typeName, const QVariantList &list);
int showContainerData(QStandardItem *parent, QStandardItem *current, int row, const char *typeName, const QVariantMap &map);
void updateTitle();
void enableButtons(bool enable);
void removeExtraRows(QStandardItem *parent, int preserve);
QStandardItemModel *m_dataModel;
QString m_app;
QString m_engineName;
Plasma5Support::DataEngine *m_engine;
int m_sourceCount;
bool m_requestingSource;
QPushButton *m_expandButton;
QPushButton *m_collapseButton;
};
#endif // multiple inclusion guard
|