/**************************************************************************** ** ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the Qt Designer of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the Technology Preview License Agreement accompanying ** this package. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** ** ** ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #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 #include #include #include #include QT_BEGIN_NAMESPACE class QDesignerCustomWidgetInterface; class QObject; class QVariant; class QWidget; class QObject; class QLabel; class QButtonGroup; class QBoxLayout; class QGridLayout; class QAction; class QActionGroup; #ifdef QFORMINTERNAL_NAMESPACE namespace QFormInternal { #endif class DomButtonGroups; class DomButtonGroup; class DomCustomWidget; class QAbstractFormBuilder; class QResourceBuilder; class QTextBuilder; class QDESIGNER_UILIB_EXPORT QFormBuilderExtra { public: QFormBuilderExtra(); ~QFormBuilderExtra(); struct CustomWidgetData { CustomWidgetData(); explicit CustomWidgetData(const DomCustomWidget *dc); QString addPageMethod; QString script; QString baseClass; bool isContainer; }; 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 &parentWidget() const; bool parentWidgetIsSet() const; void setParentWidget(const QPointer &w); #ifndef QT_FORMBUILDER_NO_SCRIPT QFormScriptRunner &formScriptRunner(); QString customWidgetScript(const QString &className) const; #endif void setProcessingLayoutWidget(bool processing); bool processingLayoutWidget() const; void setResourceBuilder(QResourceBuilder *builder); QResourceBuilder *resourceBuilder() const; void setTextBuilder(QTextBuilder *builder); QTextBuilder *textBuilder() const; void storeCustomWidgetData(const QString &className, const DomCustomWidget *d); QString customWidgetAddPageMethod(const QString &className) const; QString customWidgetBaseClass(const QString &className) const; bool isCustomWidgetContainer(const QString &className) const; // --- Hash used in creating button groups on demand. Store a map of name and pair of dom group and real group void registerButtonGroups(const DomButtonGroups *groups); typedef QPair ButtonGroupEntry; typedef QHash ButtonGroupHash; const ButtonGroupHash &buttonGroups() const { return m_buttonGroups; } ButtonGroupHash &buttonGroups() { return m_buttonGroups; } // return stretch as a comma-separated list static QString boxLayoutStretch(const QBoxLayout*); // apply stretch static bool setBoxLayoutStretch(const QString &, QBoxLayout*); static void clearBoxLayoutStretch(QBoxLayout*); static QString gridLayoutRowStretch(const QGridLayout *); static bool setGridLayoutRowStretch(const QString &, QGridLayout *); static void clearGridLayoutRowStretch(QGridLayout *); static QString gridLayoutColumnStretch(const QGridLayout *); static bool setGridLayoutColumnStretch(const QString &, QGridLayout *); static void clearGridLayoutColumnStretch(QGridLayout *); // return the row/column sizes as comma-separated lists static QString gridLayoutRowMinimumHeight(const QGridLayout *); static bool setGridLayoutRowMinimumHeight(const QString &, QGridLayout *); static void clearGridLayoutRowMinimumHeight(QGridLayout *); static QString gridLayoutColumnMinimumWidth(const QGridLayout *); static bool setGridLayoutColumnMinimumWidth(const QString &, QGridLayout *); static void clearGridLayoutColumnMinimumWidth(QGridLayout *); QStringList m_pluginPaths; QMap m_customWidgets; QHash m_laidout; QHash m_actions; QHash m_actionGroups; int m_defaultMargin; int m_defaultSpacing; QDir m_workingDirectory; QString m_errorString; QString m_language; private: void clearResourceBuilder(); void clearTextBuilder(); typedef QHash BuddyHash; BuddyHash m_buddies; #ifndef QT_FORMBUILDER_NO_SCRIPT QFormScriptRunner m_FormScriptRunner; #endif QHash m_customWidgetDataHash; ButtonGroupHash m_buttonGroups; bool m_layoutWidget; QResourceBuilder *m_resourceBuilder; QTextBuilder *m_textBuilder; QPointer m_parentWidget; bool m_parentWidgetIsSet; }; void uiLibWarning(const QString &message); // Struct with static accessor that provides most strings used in the form builder. struct QDESIGNER_UILIB_EXPORT QFormBuilderStrings { QFormBuilderStrings(); static const QFormBuilderStrings &instance(); const QString buddyProperty; const QString cursorProperty; const QString objectNameProperty; const QString trueValue; const QString falseValue; const QString horizontalPostFix; const QString separator; const QString defaultTitle; const QString titleAttribute; const QString labelAttribute; const QString toolTipAttribute; const QString whatsThisAttribute; const QString flagsAttribute; const QString iconAttribute; const QString pixmapAttribute; const QString textAttribute; const QString currentIndexProperty; const QString toolBarAreaAttribute; const QString toolBarBreakAttribute; const QString dockWidgetAreaAttribute; const QString marginProperty; const QString spacingProperty; const QString leftMarginProperty; const QString topMarginProperty; const QString rightMarginProperty; const QString bottomMarginProperty; const QString horizontalSpacingProperty; const QString verticalSpacingProperty; const QString sizeHintProperty; const QString sizeTypeProperty; const QString orientationProperty; const QString styleSheetProperty; const QString qtHorizontal; const QString qtVertical; const QString currentRowProperty; const QString tabSpacingProperty; const QString qWidgetClass; const QString lineClass; const QString geometryProperty; const QString scriptWidgetVariable; const QString scriptChildWidgetsVariable; typedef QPair RoleNName; QList itemRoles; QHash treeItemRoleHash; // first.first is primary role, first.second is shadow role. // Shadow is used for either the translation source or the designer // representation of the string value. typedef QPair, QString> TextRoleNName; QList itemTextRoles; QHash > treeItemTextRoleHash; }; #ifdef QFORMINTERNAL_NAMESPACE } #endif QT_END_NAMESPACE #endif // ABSTRACTFORMBUILDERPRIVATE_H