tools/designer/src/components/propertyeditor/propertyeditor.h

Go to the documentation of this file.
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

Generated on Thu Mar 15 12:01:08 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1