30#include "moc_qgseditorwidgetregistry.cpp"
32using namespace Qt::StringLiterals;
57 mFallbackWidgetFactory = std::make_unique<QgsTextEditWidgetFactory>( tr(
"Text Edit" ) );
85 qDeleteAll( mWidgetFactories );
91 const int index = fields.
indexOf( fieldName );
99 return mAutoConf.editorWidgetSetup( vl, fieldName );
106 return create( setup.
type(), vl, fieldIdx, setup.
config(), editor, parent, context );
113 if ( mWidgetFactories.contains( widgetId ) )
129 const QString wid = findSuitableWrapper( editor, u
"TextEdit"_s );
130 ww = mWidgetFactories[wid]->create( vl, fieldIdx, editor, parent );
146 if ( mWidgetFactories.contains( widgetId ) )
166 if ( mWidgetFactories.contains( widgetId ) )
168 return mWidgetFactories[widgetId]->configWidget( vl, fieldIdx, parent );
175 if ( mWidgetFactories.contains( widgetId ) )
177 return mWidgetFactories[widgetId]->name();
185 if ( mWidgetFactories.contains( widgetId ) )
187 return mWidgetFactories[widgetId]->icon();
195 if ( mWidgetFactories.contains( widgetId ) )
197 return mWidgetFactories[widgetId]->isReadOnly();
205 return mWidgetFactories;
210 return mWidgetFactories.value( widgetId, mFallbackWidgetFactory.get() );
215 if ( !widgetFactory )
220 else if ( mWidgetFactories.contains( widgetId ) )
227 mWidgetFactories.insert( widgetId, widgetFactory );
231 QHash<const char *, int>::ConstIterator it;
232 it = types.constBegin();
234 for ( ; it != types.constEnd(); ++it )
236 if ( it.value() > mFactoriesByType[it.key()].first )
238 mFactoriesByType[it.key()] = qMakePair( it.value(), widgetId );
246QString QgsEditorWidgetRegistry::findSuitableWrapper( QWidget *editor,
const QString &defaultWidget )
248 QMap<const char *, QPair<int, QString>>::ConstIterator it;
257 it = mFactoriesByType.constBegin();
258 for ( ; it != mFactoriesByType.constEnd(); ++it )
260 if ( QWidget::staticMetaObject.className() == it.key() )
263 return it.value().second;
265 else if ( editor->inherits( it.key() ) )
268 if ( it.value().first > weight )
270 weight = it.value().first;
271 widgetid = it.value().second;
277 if ( widgetid.isNull() )
278 widgetid = defaultWidget;
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
Contains context information for attribute editor widgets.
Editor widget factory for datetime widgets.
QgsEditorWidgetSetup editorWidgetSetup() const
Gets the editor widget setup for the field.
Container of fields for a vector layer.
Q_INVOKABLE int indexOf(const QString &fieldName) const
Gets the field index from the field name.
QgsField field(int fieldIdx) const
Returns the field at particular index (must be in range 0..N-1).
QgsField at(int i) const
Returns the field at particular index (must be in range 0..N-1).
Map canvas is a class for displaying all GIS data types on a canvas.
A bar for displaying non-blocking messages to the user.
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true, const char *file=__builtin_FILE(), const char *function=__builtin_FUNCTION(), int line=__builtin_LINE(), Qgis::StringFormat format=Qgis::StringFormat::PlainText)
Adds a message to the log instance (and creates it if necessary).
Editor widget factory for relation reference widgets.
Editor widget factory for text editor widgets.
Represents a vector layer which manages a vector based dataset.