summaryrefslogtreecommitdiffstats
path: root/tools/qmldebugger/creatorplugin/qmlinspectormode.h
blob: c70d6307b11eb8b8eada73c96257c9637180aacc (plain)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef QMLINSPECTORMODE_H
#define QMLINSPECTORMODE_H

#include <QAction>

#include <coreplugin/basemode.h>
#include <QtCore/QObject>

QT_BEGIN_NAMESPACE

class QToolButton;
class QLineEdit;
class QSpinBox;
class QLabel;

class QmlEngineDebug;
class QmlDebugConnection;
class QmlDebugEnginesQuery;
class QmlDebugRootContextQuery;
class ObjectTree;
class WatchTableModel;
class WatchTableView;
class ObjectPropertiesView;
class CanvasFrameRate;
class ExpressionQueryWidget;
class EngineSpinBox;
    

class QmlInspectorMode : public Core::BaseMode
{
    Q_OBJECT

public:
    QmlInspectorMode(QObject *parent = 0);
    
    
    quint16 viewerPort() const;
    
signals:
    void startViewer();
    void stopViewer();
    void statusMessage(const QString &text);
    
public slots: 
    void connectToViewer(); // using host, port from widgets
    void disconnectFromViewer(); 

private slots:
    void connectionStateChanged();
    void connectionError();
    void reloadEngines();
    void enginesChanged();
    void queryEngineContext(int);
    void contextChanged();

private:
    struct Actions {
        QAction *startAction;
        QAction *stopAction;
    };
    
    void initActions();
    QWidget *createModeWindow();
    QWidget *createMainView();
    void initWidgets();
    QWidget *createBottomWindow();
    QToolButton *createToolButton(QAction *action);
    
    Actions m_actions;
    
    QmlDebugConnection *m_conn;
    QmlEngineDebug *m_client;

    QmlDebugEnginesQuery *m_engineQuery;
    QmlDebugRootContextQuery *m_contextQuery;
    
    ObjectTree *m_objectTreeWidget;
    ObjectPropertiesView *m_propertiesWidget;
    WatchTableModel *m_watchTableModel;
    WatchTableView *m_watchTableView;
    CanvasFrameRate *m_frameRateWidget;
    ExpressionQueryWidget *m_expressionWidget;

    QLineEdit *m_addressEdit;
    QSpinBox *m_portSpinBox;
    EngineSpinBox *m_engineSpinBox;
};

QT_END_NAMESPACE

#endif