'Override to update the item model and emit the signals.'

def _insert_widget(self, category, desc):

    assert isinstance(category, CategoryDescription)
    categories = self.categories()
    cat_i = categories.index(category)
    (_, widgets) = self._categories_dict[category.name]
    priorities = [w.priority for w in widgets]
    insertion_i = bisect.bisect_right(priorities, desc.priority)
    WidgetRegistry._insert_widget(self, category, desc)
    cat_item = self.__item_model.item(cat_i)
    widget_item = self._widget_desc_to_std_item(desc, category)
    cat_item.insertRow(insertion_i, widget_item)
    self.widget_added.emit(category.name, desc.name, desc)
