Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgseditformconfig_p - %{Cpp:License:ClassName} 3 : : 4 : : --------------------- 5 : : begin : 18.8.2016 6 : : copyright : (C) 2016 by Matthias Kuhn 7 : : email : matthias@opengis.ch 8 : : *************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : #ifndef QGSEDITFORMCONFIG_P_H 17 : : #define QGSEDITFORMCONFIG_P_H 18 : : 19 : : #include <QMap> 20 : : #include "qgsfields.h" 21 : : #include "qgseditformconfig.h" 22 : : #include "qgsattributeeditorcontainer.h" 23 : : 24 : : /// @cond PRIVATE 25 : : 26 : : class QgsEditFormConfigPrivate : public QSharedData 27 : : { 28 : : public: 29 : 78 : QgsEditFormConfigPrivate() 30 : 78 : : mInvisibleRootContainer( new QgsAttributeEditorContainer( QString(), nullptr ) ) 31 : 156 : {} 32 : : 33 : 0 : QgsEditFormConfigPrivate( const QgsEditFormConfigPrivate &o ) 34 : 0 : : QSharedData( o ) 35 : 0 : , mInvisibleRootContainer( static_cast<QgsAttributeEditorContainer *>( o.mInvisibleRootContainer->clone( nullptr ) ) ) 36 : 0 : , mConfiguredRootContainer( o.mConfiguredRootContainer ) 37 : 0 : , mFieldEditables( o.mFieldEditables ) 38 : 0 : , mLabelOnTop( o.mLabelOnTop ) 39 : 0 : , mReuseLastValue( o.mReuseLastValue ) 40 : 0 : , mDataDefinedFieldProperties( o.mDataDefinedFieldProperties ) 41 : 0 : , mWidgetConfigs( o.mWidgetConfigs ) 42 : 0 : , mEditorLayout( o.mEditorLayout ) 43 : 0 : , mUiFormPath( o.mUiFormPath ) 44 : 0 : , mInitFunction( o.mInitFunction ) 45 : 0 : , mInitFilePath( o.mInitFilePath ) 46 : 0 : , mInitCodeSource( o.mInitCodeSource ) 47 : 0 : , mInitCode( o.mInitCode ) 48 : 0 : , mSuppressForm( o.mSuppressForm ) 49 : 0 : , mFields( o.mFields ) 50 : 0 : {} 51 : : 52 : 62 : ~QgsEditFormConfigPrivate() 53 : : { 54 : 62 : delete mInvisibleRootContainer; 55 : 62 : } 56 : : 57 : 0 : static QgsPropertiesDefinition &propertyDefinitions() 58 : : { 59 : 0 : static QgsPropertiesDefinition sPropertyDefinitions 60 : 0 : { 61 : 0 : { 62 : 0 : QgsEditFormConfig::DataDefinedProperty::Alias, 63 : 0 : QgsPropertyDefinition( "dataDefinedAlias", 64 : 0 : QObject::tr( "Alias" ), 65 : : QgsPropertyDefinition::String ) 66 : : }, 67 : : }; 68 : 0 : return sPropertyDefinitions; 69 : 0 : }; 70 : : 71 : : //! The invisible root container for attribute editors in the drag and drop designer 72 : : QgsAttributeEditorContainer *mInvisibleRootContainer = nullptr; 73 : : 74 : : //! This flag is set if the root container was configured by the user 75 : 78 : bool mConfiguredRootContainer = false; 76 : : 77 : : QMap< QString, bool> mFieldEditables; 78 : : QMap< QString, bool> mLabelOnTop; 79 : : QMap< QString, bool> mReuseLastValue; 80 : : QMap< QString, QgsPropertyCollection> mDataDefinedFieldProperties; 81 : : 82 : : QMap<QString, QVariantMap > mWidgetConfigs; 83 : : 84 : : //! Defines the default layout to use for the attribute editor (Drag and drop, UI File, Generated) 85 : 78 : QgsEditFormConfig::EditorLayout mEditorLayout = QgsEditFormConfig::EditorLayout::GeneratedLayout; 86 : : 87 : : //! Path or URL to the UI form 88 : : QString mUiFormPath; 89 : : //! Name of the Python form init function 90 : : QString mInitFunction; 91 : : //! Path of the Python external file to be loaded 92 : : QString mInitFilePath; 93 : : //! Choose the source of the init founction 94 : 78 : QgsEditFormConfig::PythonInitCodeSource mInitCodeSource = QgsEditFormConfig::PythonInitCodeSource::CodeSourceNone; 95 : : //! Python init code provided in the dialog 96 : : QString mInitCode; 97 : : 98 : : //! Type of feature form suppression after feature creation 99 : 78 : QgsEditFormConfig::FeatureFormSuppress mSuppressForm = QgsEditFormConfig::FeatureFormSuppress::SuppressDefault; 100 : : 101 : : QgsFields mFields; 102 : : 103 : : private: 104 : : QgsEditFormConfigPrivate &operator= ( const QgsEditFormConfigPrivate & ) = delete; 105 : : }; 106 : : 107 : : 108 : : /// @endcond 109 : : 110 : : #endif // QGSEDITFORMCONFIG_P_H