1 /**************************************************************************
3 ** This file is part of Qt Creator
5 ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
7 ** Contact: Nokia Corporation (info@qt.nokia.com)
10 ** GNU Lesser General Public License Usage
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.
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.
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.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
31 **************************************************************************/
33 #ifndef QMLCONTEXTPANE_H
34 #define QMLCONTEXTPANE_H
38 #include <QPushButton>
39 #include <QToolButton>
40 #include <QGridLayout>
43 #include <QGraphicsDropShadowEffect>
44 #include <QWeakPointer>
46 #include <qmljs/qmljsicontextpane.h>
48 namespace TextEditor {
49 class BaseTextEditorEditable;
52 namespace QmlDesigner {
54 class ContextPaneWidget;
56 class QmlContextPane : public QmlJS::IContextPane
61 QmlContextPane(QObject *parent = 0);
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);
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);
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;
84 QStringList m_propertyOrder;
89 #endif // QMLCONTEXTPANE_H