Code

r11141@tres: ted | 2006-03-27 21:51:34 -0800
authorgouldtj <gouldtj@users.sourceforge.net>
Wed, 29 Mar 2006 05:44:15 +0000 (05:44 +0000)
committergouldtj <gouldtj@users.sourceforge.net>
Wed, 29 Mar 2006 05:44:15 +0000 (05:44 +0000)
 Additional protections against not finding an extension in the database

src/ui/dialog/extension-editor.cpp

index d642805c18f5a132bd001676b146b3c04bc8b83c..49f8c92dcbc401f4fde2cab449fedac1ddc76126 100644 (file)
@@ -148,13 +148,17 @@ ExtensionEditor::on_pagelist_selection_changed (void)
         _notebook_help.remove();
         _notebook_params.remove();
 
+        Inkscape::Extension::Extension * ext = Inkscape::Extension::db.get(id.c_str());
+
         /* Make sure we have all the widges */
         Gtk::Widget * info;
         info = row[_page_list_columns._col_info];
         if (info == NULL) {
-            info = Inkscape::Extension::db.get(id.c_str())->get_info_widget();
-            row[_page_list_columns._col_info] = info;
-            info->reference();
+            if (ext != NULL) {
+                info = ext->get_info_widget();
+                row[_page_list_columns._col_info] = info;
+                info->reference();
+            }
         } else {
             info->unparent();
         }
@@ -162,9 +166,11 @@ ExtensionEditor::on_pagelist_selection_changed (void)
         Gtk::Widget * help;
         help = row[_page_list_columns._col_help];
         if (help == NULL) {
-            help = Inkscape::Extension::db.get(id.c_str())->get_help_widget();
-            row[_page_list_columns._col_help] = help;
-            help->reference();
+            if (ext != NULL) {
+                help = ext->get_help_widget();
+                row[_page_list_columns._col_help] = help;
+                help->reference();
+            }
         } else {
             help->unparent();
         }
@@ -172,9 +178,11 @@ ExtensionEditor::on_pagelist_selection_changed (void)
         Gtk::Widget * params;
         params = row[_page_list_columns._col_params];
         if (params == NULL) {
-            params = Inkscape::Extension::db.get(id.c_str())->get_params_widget();
-            row[_page_list_columns._col_params] = params;
-            params->reference();
+            if (ext != NULL) {
+                params = ext->get_params_widget();
+                row[_page_list_columns._col_params] = params;
+                params->reference();
+            }
         } else {
             params->unparent();
         }