File: engineexplorer.h

package info (click to toggle)
plasma-sdk 6.5.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,264 kB
  • sloc: cpp: 4,446; xml: 452; sh: 27; makefile: 12
file content (75 lines) | stat: -rw-r--r-- 2,230 bytes parent folder | download | duplicates (2)
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