void ActivityScenariosView::loadScenarioList()
{
    elm_genlist_clear(scenario_list);
    GenlistItemScenarioHeader *headerLight = NULL, *headerShutter = NULL, *headerOther = NULL;

    if (view_mode == VIEW_MODE_ALL ||
        view_mode == VIEW_MODE_SCHEDULE)
    {
        headerLight = new GenlistItemScenarioHeader(evas, parent, _("Lights scenarios"));
        headerLight->Append(scenario_list);
        headerShutter = new GenlistItemScenarioHeader(evas, parent, _("Shutters scenarios"));
        headerShutter->Append(scenario_list);
        headerOther = new GenlistItemScenarioHeader(evas, parent, _("Other Scenarios"));
        headerOther->Append(scenario_list);
    }
    else if (view_mode == VIEW_MODE_LIGHT)
    {
        headerLight = new GenlistItemScenarioHeader(evas, parent, _("Lights scenarios"));
        headerLight->Append(scenario_list);
    }
    else if (view_mode == VIEW_MODE_SHUTTER)
    {
        headerShutter = new GenlistItemScenarioHeader(evas, parent, _("Shutters scenarios"));
        headerShutter->Append(scenario_list);
    }

    //populate the scenario list
    list<Scenario *>::iterator it = CalaosModel::Instance().getScenario()->scenarios.begin();
    for (;it != CalaosModel::Instance().getScenario()->scenarios.end();it++)
    {
        Scenario *sc = *it;
        bool cont = true;

        if (sc->getFirstCategory() == "light" &&
            (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_LIGHT || view_mode == VIEW_MODE_SCHEDULE))
        {
            if (view_mode == VIEW_MODE_SCHEDULE)
            {
                if (sc->isScheduled())
                    cont = false;
            }
            else
                cont = false;
        }

        if (sc->getFirstCategory() == "shutter" &&
            (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SHUTTER || view_mode == VIEW_MODE_SCHEDULE))
        {
            if (view_mode == VIEW_MODE_SCHEDULE)
            {
                if (sc->isScheduled())
                    cont = false;
            }
            else
                cont = false;
        }

        if (sc->getFirstCategory() == "other" &&
            (view_mode == VIEW_MODE_ALL || view_mode == VIEW_MODE_SCHEDULE))
        {
            if (view_mode == VIEW_MODE_SCHEDULE)
            {
                if (sc->isScheduled())
                    cont = false;
            }
            else
                cont = false;
        }

        if (cont)
            continue;

        GenlistItemScenarioSchedule *item = new GenlistItemScenarioSchedule(evas, parent, false, sc);
        item->schedule_add_click.connect(sigc::mem_fun(schedule_add_click, &sigc::signal<void, Scenario *>::emit));
        item->schedule_modify_click.connect(sigc::mem_fun(schedule_modify_click, &sigc::signal<void, Scenario *>::emit));
        item->schedule_del_click.connect(sigc::mem_fun(schedule_del_click, &sigc::signal<void, Scenario *>::emit));
        if (sc->getFirstCategory() == "light")
            item->InsertAfter(scenario_list, headerLight);
        else if (sc->getFirstCategory() == "shutter")
            item->InsertAfter(scenario_list, headerShutter);
        else
            item->InsertAfter(scenario_list, headerOther);
    }
}