void onDeleteSelected();
void onShareSelected();
- static void onNameSortingOrderChanged(contacts_name_sorting_order_e sortingOrder, void *data);
+ void onSortOrderChanged(contacts_name_sorting_order_e order);
virtual void onSelectAllInsert(Ui::GenlistItem *item) override;
virtual void onSelectModeChanged(Ux::SelectMode selectMode) override;
void hideNoContentLayout();
void updateNoContentLayout();
- void setFavouriteItemsMode(Ux::SelectMode selectMode);
-
void addSection(SectionId sectionId);
void removeSection(SectionId sectionId);
Ui::GenlistItem *getNextSectionItem(SectionId currentSection);
void onIndexSelected(Evas_Object *index, Elm_Object_Item *indexItem);
void onPersonInserted(Contacts::Model::ContactData &person);
- void onPersonUpdated(PersonItem *item, int changes);
- void onPersonDeleted(PersonItem *item);
-
void onSectionUpdated(bool isEmpty, SectionId sectionId);
Evas_Object *m_Box;
ListView::~ListView()
{
- contacts_setting_remove_name_sorting_order_changed_cb(onNameSortingOrderChanged, this);
+ contacts_setting_remove_name_sorting_order_changed_cb(
+ makeCallbackWithLastParam(&ListView::onSortOrderChanged), this);
}
Evas_Object *ListView::onCreate(Evas_Object *parent)
updateSectionsMode();
m_Provider.setInsertCallback(std::bind(&ListView::onPersonInserted, this, _1));
- contacts_setting_add_name_sorting_order_changed_cb(onNameSortingOrderChanged, this);
+ contacts_setting_add_name_sorting_order_changed_cb(
+ makeCallbackWithLastParam(&ListView::onSortOrderChanged), this);
}
void ListView::onDestroy()
getNavigator()->navigateTo(view);
}
-void ListView::onNameSortingOrderChanged(contacts_name_sorting_order_e sortingOrder, void *data)
+void ListView::onSortOrderChanged(contacts_name_sorting_order_e order)
{
- RETM_IF(!data, "invalid data");
- ListView *view = (ListView *)data;
-
- if (view->m_Sections[SectionPerson]) {
- for (auto &personGroup : view->m_PersonGroups) {
+ if (m_Sections[SectionPerson]) {
+ for (auto &personGroup : m_PersonGroups) {
delete personGroup.second;
}
- view->m_PersonGroups.clear();
- view->m_Provider.clearDataList();
+ m_PersonGroups.clear();
+ m_Provider.clearDataList();
- elm_index_item_clear(view->m_Index);
- elm_index_level_go(view->m_Index, 0);
+ elm_index_item_clear(m_Index);
+ elm_index_level_go(m_Index, 0);
- view->m_Sections[SectionPerson] = nullptr;
+ m_Sections[SectionPerson] = nullptr;
- view->fillPersonList();
+ fillPersonList();
}
}
if (!favoritesSection->empty()) {
onSectionUpdated(false, SectionFavorites);
}
-
- } else {
- setFavouriteItemsMode(getSelectMode());
}
}
m_Provider.getDataList().size() > 0 ? hideNoContentLayout() : showNoContentLayout();
}
-void ListView::setFavouriteItemsMode(SelectMode selectMode)
-{
- if (m_Sections[SectionFavorites]) {
- for (auto &&favoriteItem : *m_Sections[SectionFavorites]) {
- static_cast<PersonItem *>(favoriteItem)->setSelectMode(selectMode);
- }
- }
-}
-
void ListView::addSection(SectionId sectionId)
{
switch (sectionId) {
PersonItem *ListView::createPersonItem(Person &person)
{
PersonItem *item = new PersonItem(person);
- person.setUpdateCallback(std::bind(&ListView::onPersonUpdated, this, item, _1));
- person.setDeleteCallback(std::bind(&ListView::onPersonDeleted, this, item));
+ person.setUpdateCallback(std::bind(&ListView::updatePersonItem, this, item, _1));
+ person.setDeleteCallback(std::bind(&ListView::deletePersonItem, this, item));
return item;
}
void ListView::deletePersonItem(PersonItem *item)
{
PersonGroupItem *oldGroup = static_cast<PersonGroupItem *>(item->getParentItem());
-
- item->getPerson().unsetUpdateCallback();
- item->getPerson().unsetDeleteCallback();
delete item;
if (oldGroup->empty()) {
onItemInserted(item);
}
-void ListView::onPersonUpdated(PersonItem *item, int changes)
-{
- updatePersonItem(item, changes);
-}
-
-void ListView::onPersonDeleted(PersonItem *item)
-{
- deletePersonItem(item);
-}
-
void ListView::onSectionUpdated(bool isEmpty, SectionId sectionId)
{
if (isEmpty) {