OSDN Git Service

Update license.
[qt-creator-jp/qt-creator-jp.git] / src / plugins / qmldesigner / qmlcontextpane.h
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (info@qt.nokia.com)
8 **
9 **
10 ** GNU Lesser General Public License Usage
11 **
12 ** This file may be used under the terms of the GNU Lesser General Public
13 ** License version 2.1 as published by the Free Software Foundation and
14 ** appearing in the file LICENSE.LGPL included in the packaging of this file.
15 ** Please review the following information to ensure the GNU Lesser General
16 ** Public License version 2.1 requirements will be met:
17 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 **
19 ** In addition, as a special exception, Nokia gives you certain additional
20 ** rights. These rights are described in the Nokia Qt LGPL Exception
21 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 **
23 ** Other Usage
24 **
25 ** Alternatively, this file may be used in accordance with the terms and
26 ** conditions contained in a signed written agreement between you and Nokia.
27 **
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
30 **
31 **************************************************************************/
32
33 #ifndef QMLCONTEXTPANE_H
34 #define QMLCONTEXTPANE_H
35
36 #include <QLabel>
37 #include <QToolBar>
38 #include <QPushButton>
39 #include <QToolButton>
40 #include <QGridLayout>
41 #include <QGroupBox>
42 #include <QVariant>
43 #include <QGraphicsDropShadowEffect>
44 #include <QWeakPointer>
45
46 #include <qmljs/qmljsicontextpane.h>
47
48 namespace TextEditor {
49 class BaseTextEditorEditable;
50 }
51
52 namespace QmlDesigner {
53
54 class ContextPaneWidget;
55
56 class QmlContextPane : public QmlJS::IContextPane
57 {
58     Q_OBJECT
59
60 public:
61    QmlContextPane(QObject *parent = 0);
62    ~QmlContextPane();
63    void apply(TextEditor::BaseTextEditorEditable *editor, QmlJS::Document::Ptr doc, const QmlJS::Snapshot &snapshot, QmlJS::AST::Node *node, bool update, bool force = 0);
64    bool isAvailable(TextEditor::BaseTextEditorEditable *editor, QmlJS::Document::Ptr doc, const QmlJS::Snapshot &snapshot, QmlJS::AST::Node *node);
65    void setProperty(const QString &propertyName, const QVariant &value);
66    void removeProperty(const QString &propertyName);
67    void setEnabled(bool);
68    QWidget* widget();
69
70 public slots:
71        void onPropertyChanged(const QString &, const QVariant &);
72        void onPropertyRemoved(const QString &);
73        void onPropertyRemovedAndChange(const QString &, const QString &, const QVariant &, bool removeFirst = true);
74        void onPinnedChanged(bool);
75        void onEnabledChanged(bool);
76
77 private:
78     ContextPaneWidget* contextWidget();
79     QWeakPointer<ContextPaneWidget> m_widget;
80     QmlJS::Document::Ptr m_doc;
81     QmlJS::AST::Node *m_node;
82     TextEditor::BaseTextEditorEditable *m_editor;
83     bool m_blockWriting;
84     QStringList m_propertyOrder;
85 };
86
87 } //QmlDesigner
88
89 #endif // QMLCONTEXTPANE_H