/****************************************************************************
**
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
**
** This file is part of the Qt Designer of the Qt Toolkit.
**
** Licensees holding a valid Qt License Agreement may use this file in
** accordance with the rights, responsibilities and obligations
** contained therein. Please consult your licensing agreement or
** contact sales@trolltech.com if any conditions of this licensing
** agreement are not clear to you.
**
** Further information about Qt licensing is available at:
** http://www.trolltech.com/products/qt/licensing.html or by
** contacting info@trolltech.com.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/
#ifndef ABSTRACTFORMBUILDERPRIVATE_H
#define ABSTRACTFORMBUILDERPRIVATE_H
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists purely as an
// implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
//
#include "uilib_global.h"
#ifndef QT_FORMBUILDER_NO_SCRIPT
# include "formscriptrunner_p.h"
#endif
#include <QtCore/QHash>
#include <QtCore/QPointer>
#include <QtCore/QString>
class QObject;
class QVariant;
class QWidget;
class QObject;
class QLabel;
#ifdef QFORMINTERNAL_NAMESPACE
namespace QFormInternal
{
#endif
class QAbstractFormBuilder;
class QDESIGNER_UILIB_EXPORT QFormBuilderExtra
{
QFormBuilderExtra();
public:
void clear();
bool applyPropertyInternally(QObject *o, const QString &propertyName, const QVariant &value);
enum BuddyMode { BuddyApplyAll, BuddyApplyVisibleOnly };
void applyInternalProperties() const;
static bool applyBuddy(const QString &buddyName, BuddyMode applyMode, QLabel *label);
const QPointer<QWidget> &rootWidget() const;
void setRootWidget(const QPointer<QWidget> &w);
#ifndef QT_FORMBUILDER_NO_SCRIPT
QFormScriptRunner &formScriptRunner();
void storeCustomWidgetScript(const QString &className, const QString &script);
QString customWidgetScript(const QString &className) const;
#endif
void setProcessingLayoutWidget(bool processing);
bool processingLayoutWidget() const;
static QFormBuilderExtra *instance(const QAbstractFormBuilder *afb);
static void removeInstance(const QAbstractFormBuilder *afb);
private:
const QString m_buddyPropertyName;
typedef QHash<QLabel*, QString> BuddyHash;
BuddyHash m_buddies;
#ifndef QT_FORMBUILDER_NO_SCRIPT
QFormScriptRunner m_FormScriptRunner;
typedef QHash<QString, QString> CustomWidgetScriptHash;
CustomWidgetScriptHash m_customWidgetScriptHash;
#endif
bool m_layoutWidget;
QPointer<QWidget> m_rootWidget;
};
void uiLibWarning(const QString &message);
#ifdef QFORMINTERNAL_NAMESPACE
}
#endif
#endif // ABSTRACTFORMBUILDERPRIVATE_H