Skip to content

Commit 2b95031

Browse files
committedMay 17, 2018
Add a default editor widget factory
for safety when working without initialized widget registry in standalone apps and tests
1 parent 9963892 commit 2b95031

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed
 

‎src/gui/editorwidgets/core/qgseditorwidgetregistry.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@
4040
#include "qgsvaluemapwidgetfactory.h"
4141
#include "qgsvaluerelationwidgetfactory.h"
4242

43+
QgsEditorWidgetRegistry::QgsEditorWidgetRegistry()
44+
{
45+
mFallbackWidgetFactory.reset( new QgsTextEditWidgetFactory( tr( "Text Edit" ) ) );
46+
}
47+
4348
void QgsEditorWidgetRegistry::initEditors( QgsMapCanvas *mapCanvas, QgsMessageBar *messageBar )
4449
{
4550
registerWidget( QStringLiteral( "TextEdit" ), new QgsTextEditWidgetFactory( tr( "Text Edit" ) ) );
@@ -163,7 +168,7 @@ QMap<QString, QgsEditorWidgetFactory *> QgsEditorWidgetRegistry::factories()
163168

164169
QgsEditorWidgetFactory *QgsEditorWidgetRegistry::factory( const QString &widgetId )
165170
{
166-
return mWidgetFactories.value( widgetId );
171+
return mWidgetFactories.value( widgetId, mFallbackWidgetFactory.get() );
167172
}
168173

169174
bool QgsEditorWidgetRegistry::registerWidget( const QString &widgetId, QgsEditorWidgetFactory *widgetFactory )

‎src/gui/editorwidgets/core/qgseditorwidgetregistry.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class GUI_EXPORT QgsEditorWidgetRegistry : public QObject
5252
* Constructor for QgsEditorWidgetRegistry. QgsEditorWidgetRegistry is not usually directly created, but rather accessed through
5353
* QgsGui::editorWidgetRegistry().
5454
*/
55-
QgsEditorWidgetRegistry() = default;
55+
QgsEditorWidgetRegistry();
5656

5757
/**
5858
* Registers all the default widgets.
@@ -188,6 +188,7 @@ class GUI_EXPORT QgsEditorWidgetRegistry : public QObject
188188
QMap<QString, QgsEditorWidgetFactory *> mWidgetFactories;
189189
QMap<const char *, QPair<int, QString> > mFactoriesByType;
190190
QgsEditorWidgetAutoConf mAutoConf;
191+
std::unique_ptr<QgsEditorWidgetFactory> mFallbackWidgetFactory = nullptr;
191192
};
192193

193194
#endif // QGSEDITORWIDGETREGISTRY_H

0 commit comments

Comments
 (0)