00001 /**************************************************************************** 00002 ** 00003 ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. 00004 ** 00005 ** This file is part of the Qt Designer of the Qt Toolkit. 00006 ** 00007 ** This file may be used under the terms of the GNU General Public 00008 ** License version 2.0 as published by the Free Software Foundation 00009 ** and appearing in the file LICENSE.GPL included in the packaging of 00010 ** this file. Please review the following information to ensure GNU 00011 ** General Public Licensing requirements will be met: 00012 ** http://www.trolltech.com/products/qt/opensource.html 00013 ** 00014 ** If you are unsure which license is appropriate for your use, please 00015 ** review the following information: 00016 ** http://www.trolltech.com/products/qt/licensing.html or contact the 00017 ** sales department at sales@trolltech.com. 00018 ** 00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00021 ** 00022 ****************************************************************************/ 00023 00024 #ifndef PROPERTYEDITOR_H 00025 #define PROPERTYEDITOR_H 00026 00027 #include "propertyeditor_global.h" 00028 #include "qpropertyeditor.h" 00029 00030 #include <QtDesigner/QtDesigner> 00031 00032 #include <QtCore/QPointer> 00033 00034 class DomProperty; 00035 class QDesignerPropertySheetExtension; 00036 00037 namespace qdesigner_internal { 00038 class MetaDataBaseItem; 00039 00040 class QT_PROPERTYEDITOR_EXPORT PropertyEditor: public QDesignerPropertyEditorInterface 00041 { 00042 Q_OBJECT 00043 public: 00044 PropertyEditor(QDesignerFormEditorInterface *core, QWidget *parent = 0, Qt::WindowFlags flags = 0); 00045 virtual ~PropertyEditor(); 00046 00047 virtual QDesignerFormEditorInterface *core() const; 00048 00049 virtual bool isReadOnly() const; 00050 virtual void setReadOnly(bool readOnly); 00051 virtual void setPropertyValue(const QString &name, const QVariant &value, bool changed = true); 00052 virtual void setObject(QObject *object); 00053 00054 virtual QObject *object() const 00055 { return m_object; } 00056 00057 virtual QString currentPropertyName() const; 00058 00059 private slots: 00060 void firePropertyChanged(IProperty *property); 00061 void resetProperty(const QString &prop_name); 00062 00063 private: 00064 IProperty *propertyByName(IProperty *p, const QString &name); 00065 void clearDirty(IProperty *p); 00066 void createPropertySheet(PropertyCollection *root, QObject *object); 00067 static IProperty *createSpecialProperty(const QVariant &value, const QString &name); 00068 00069 private: 00070 MetaDataBaseItem *metaDataBaseItem() const; 00071 00072 QDesignerFormEditorInterface *m_core; 00073 QPropertyEditor *m_editor; 00074 IPropertyGroup *m_properties; 00075 QDesignerPropertySheetExtension *m_prop_sheet; 00076 QPointer<QObject> m_object; 00077 }; 00078 00079 } // namespace qdesigner_internal 00080 00081 #endif // PROPERTYEDITOR_H
1.5.1