QGIS API Documentation 4.1.0-Master (60fea48833c)
Loading...
Searching...
No Matches
qgswidgetwrapper.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgswidgetwrapper.cpp
3 --------------------------------------
4 Date : 14.5.2013
5 Copyright : (C) 2013 Matthias Kuhn
6 Email : matthias at opengis dot ch
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#include "qgswidgetwrapper.h"
17
18#include "qgsvectorlayer.h"
19
20#include <QWidget>
21
22#include "moc_qgswidgetwrapper.cpp"
23
25{
26 static QgsPropertiesDefinition properties;
27
28 if ( properties.isEmpty() )
29 {
30 properties = {
31 { static_cast<int>( Property::RootPath ),
32 QgsPropertyDefinition( "propertyRootPath", QgsPropertyDefinition::DataTypeString, QObject::tr( "Root path" ), QObject::tr( "string of variable length representing root path to attachment" ) ) },
33 { static_cast<int>( Property::DocumentViewerContent ),
34 QgsPropertyDefinition( "documentViewerContent", QgsPropertyDefinition::DataTypeString, QObject::tr( "Document viewer content" ), QObject::tr( "string" ) + "<b>NoContent</b>|<b>Image</b>|<b>Audio</b>|<b>Video</b>|<b>Web</b>" ) },
35 { static_cast<int>( Property::StorageUrl ),
36 QgsPropertyDefinition( "storageUrl", QgsPropertyDefinition::DataTypeString, QObject::tr( "Storage Url" ), QObject::tr( "String of variable length representing the URL used to store document with an external storage" ) ) }
37 };
38 }
39 return properties;
40}
41
42QgsWidgetWrapper::QgsWidgetWrapper( QgsVectorLayer *vl, QWidget *editor, QWidget *parent )
43 : QObject( parent )
44 , mWidget( editor )
45 , mParent( parent )
46 , mLayer( vl )
47{}
48
50{
51 if ( !mWidget )
52 mWidget = createWidget( mParent );
53
54 if ( !mInitialized )
55 {
56 mWidget->setProperty( "EWV2Wrapper", QVariant::fromValue<QgsWidgetWrapper *>( this ) );
57 initWidget( mWidget );
58 mInitialized = true;
59 }
60
61 return mWidget;
62}
63
64void QgsWidgetWrapper::setConfig( const QVariantMap &config )
65{
66 mConfig = config;
67}
68
74
75QVariant QgsWidgetWrapper::config( const QString &key, const QVariant &defaultVal ) const
76{
77 if ( mConfig.contains( key ) )
78 {
79 return mConfig[key];
80 }
81 return defaultVal;
82}
83
84QVariantMap QgsWidgetWrapper::config() const
85{
86 return mConfig;
87}
88
90{
91 return mContext;
92}
93
95{
96 return mLayer;
97}
98
100{
101 return widget->property( "EWV2Wrapper" ).value<QgsWidgetWrapper *>();
102}
103
105{
106 aboutToSave();
107}
108
109void QgsWidgetWrapper::initWidget( QWidget *editor )
110{
111 Q_UNUSED( editor )
112}
113
115{
116 Q_UNUSED( enabled )
117}
118
119void QgsWidgetWrapper::aboutToSave()
120{}
Contains context information for attribute editor widgets.
Definition for a property.
Definition qgsproperty.h:47
@ DataTypeString
Property requires a string value.
Definition qgsproperty.h:91
Represents a vector layer which manages a vector based dataset.
void notifyAboutToSave()
Notify this widget, that the containing form is about to save and that any pending changes should be ...
static QgsWidgetWrapper * fromWidget(QWidget *widget)
Will return a wrapper for a given widget.
QWidget * widget()
Access the widget managed by this wrapper.
virtual void initWidget(QWidget *editor)
This method should initialize the editor widget with runtime data.
static const QgsPropertiesDefinition & propertyDefinitions()
Returns the editor widget property definitions.
QVariant config(const QString &key, const QVariant &defaultVal=QVariant()) const
Use this inside your overridden classes to access the configuration.
void contextChanged()
Signal when QgsAttributeEditorContext mContext changed.
QgsWidgetWrapper(QgsVectorLayer *vl, QWidget *editor=nullptr, QWidget *parent=nullptr)
Create a new widget wrapper.
void setConfig(const QVariantMap &config)
Will set the config of this wrapper to the specified config.
const QgsAttributeEditorContext & context() const
Returns information about the context in which this widget is shown.
QgsVectorLayer * layer() const
Returns the vector layer associated with the widget.
void setContext(const QgsAttributeEditorContext &context)
Set the context in which this widget is shown.
QVariantMap config() const
Returns the whole config.
@ DocumentViewerContent
Document type for external resource.
@ StorageUrl
Storage URL for external resource.
@ RootPath
Root path for external resource.
virtual QWidget * createWidget(QWidget *parent)=0
This method should create a new widget with the provided parent.
virtual void setEnabled(bool enabled)
Is used to enable or disable the edit functionality of the managed widget.
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.