service: add sort of servicelist including all required layers
[enigma2.git] / lib / service / listboxservice.cpp
index 0783872230ed6b5e54fb91279062fd2642e65762..d4cbff208a0da0f1f8077a9762156710d58dcb2a 100644 (file)
@@ -108,6 +108,19 @@ void eListboxServiceContent::setElementFont(int element, gFont *font)
                m_element_font[element] = font;
 }
 
+void eListboxServiceContent::sort()
+{
+       ePtr<iListableService> lst;
+  if (!m_service_center->list(m_root, lst))
+  {
+               m_list.sort(iListableServiceCompare(lst));
+                       /* FIXME: is this really required or can we somehow keep the current entry? */
+               cursorHome();
+               if (m_listbox)
+                       m_listbox->entryReset();
+       }
+}
+
 DEFINE_REF(eListboxServiceContent);
 
 eListboxServiceContent::eListboxServiceContent()