void PluginFactory::load( const PluginInfoPair& pair )
{
    PTRACE( 6, "PluginFactory::load" );
    PluginInfo *pluginInfo = pair.first;
    if( !pluginInfo ) return;

    int id = pluginInfo->id;
    onStartupMap[id] = Load;

    if( loaded(pair) ) return;

    Plugin *plugin = createPlugin( pair );

    // create GUI that plugin exports?
    if( pluginInfo->flags & P_HAS_GUI ) {
        PTRACE( 1, "Creating GUI of plugin " << plugin->name() );
        QWidget *widget = plugin->createGUI();
        if ( widget ) {
            emit insertWidget( widget, plugin->type(), plugin->text(), plugin->icon(), plugin->significance(), plugin->guiType() );
            insertedWidgets[id] = widget;
            if( d->paletteSet ) setGUIPluginsPalette(d->currentPalette);
        } else
            PTRACE( 1, "Failed" );
    }
}
void PluginFactory::createGUIs()
{
    //sort GUI plugins according to significance
    qHeapSort(d->guiPlugins);

    for( PluginFactoryPrivate::GuiPluginList::iterator it = d->guiPlugins.begin(); it != d->guiPlugins.end(); ++it ) {
        Plugin *plugin = (*it).plugin();
        if( !plugin ) continue;

        PTRACE( 1, "Creating GUI of plugin " << plugin->name() );
        QWidget *widget = plugin->createGUI();
        if ( widget ) {
            emit insertWidget( widget, plugin->type(), plugin->text(), plugin->icon(), plugin->significance(), plugin->guiType() );
            insertedWidgets[plugin->pluginInfo()->id] = widget;
        } else
            PTRACE( 1, "Failed" );
    }
}