git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
whitespace fixes, collect errors while loading plugins
[enigma2.git]
/
lib
/
service
/
listboxservice.cpp
diff --git
a/lib/service/listboxservice.cpp
b/lib/service/listboxservice.cpp
index 33afaffe5836c3ab31a6a559cf4557a0eb1eba90..f6d9e78bae92d026188a3e6ae2a0f44b7358f67a 100644
(file)
--- a/
lib/service/listboxservice.cpp
+++ b/
lib/service/listboxservice.cpp
@@
-10,11
+10,11
@@
void eListboxServiceContent::addService(const eServiceReference &service, bool b
if (beforeCurrent && m_size)
{
m_list.insert(m_cursor, service);
if (beforeCurrent && m_size)
{
m_list.insert(m_cursor, service);
- ++m_size;
--m_cursor;
}
else
m_list.push_back(service);
--m_cursor;
}
else
m_list.push_back(service);
+ ++m_size;
}
void eListboxServiceContent::removeCurrent()
}
void eListboxServiceContent::removeCurrent()
@@
-22,7
+22,10
@@
void eListboxServiceContent::removeCurrent()
if (m_size && m_listbox)
{
if (m_cursor_number == m_size-1)
if (m_size && m_listbox)
{
if (m_cursor_number == m_size-1)
+ {
m_list.erase(m_cursor--);
m_list.erase(m_cursor--);
+ --m_cursor_number;
+ }
else
m_list.erase(m_cursor++);
--m_size;
else
m_list.erase(m_cursor++);
--m_size;
@@
-45,15
+48,16
@@
void eListboxServiceContent::setRoot(const eServiceReference &root, bool justSet
m_root = root;
if (justSet)
m_root = root;
if (justSet)
+ {
+ m_lst=0;
return;
return;
+ }
assert(m_service_center);
assert(m_service_center);
- ePtr<iListableService> lst;
- if (m_service_center->list(m_root, lst))
+ if (m_service_center->list(m_root, m_lst))
eDebug("no list available!");
eDebug("no list available!");
- else
- if (lst->getContent(m_list))
- eDebug("getContent failed");
+ else if (m_lst->getContent(m_list))
+ eDebug("getContent failed");
FillFinished();
}
FillFinished();
}
@@
-224,10
+228,11
@@
void eListboxServiceContent::setPixmap(int type, ePtr<gPixmap> &pic)
void eListboxServiceContent::sort()
{
void eListboxServiceContent::sort()
{
- ePtr<iListableService> lst;
- if (!m_service_center->list(m_root, lst))
+ if (!m_lst)
+ m_service_center->list(m_root, m_lst);
+ if (m_lst)
{
{
- m_list.sort(iListableServiceCompare(lst));
+ m_list.sort(iListableServiceCompare(
m_
lst));
/* FIXME: is this really required or can we somehow keep the current entry? */
cursorHome();
if (m_listbox)
/* FIXME: is this really required or can we somehow keep the current entry? */
cursorHome();
if (m_listbox)
@@
-301,13
+306,12
@@
int eListboxServiceContent::setCurrentMarked(bool state)
m_listbox->entryChanged(m_cursor_number);
if (!state)
{
m_listbox->entryChanged(m_cursor_number);
if (!state)
{
- ePtr<iListableService> lst;
- if (m_service_center->list(m_root, lst))
- eDebug("no list available!");
- else
+ if (!m_lst)
+ m_service_center->list(m_root, m_lst);
+ if (m_lst)
{
ePtr<iMutableServiceList> list;
{
ePtr<iMutableServiceList> list;
- if (lst->startEdit(list))
+ if (
m_
lst->startEdit(list))
eDebug("no editable list");
else
{
eDebug("no editable list");
else
{
@@
-326,6
+330,8
@@
int eListboxServiceContent::setCurrentMarked(bool state)
}
}
}
}
}
}
+ else
+ eDebug("no list available!");
}
}
}
}
@@
-425,8
+431,12
@@
void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
/* get service information */
ePtr<iStaticServiceInformation> service_info;
m_service_center->info(*m_cursor, service_info);
/* get service information */
ePtr<iStaticServiceInformation> service_info;
m_service_center->info(*m_cursor, service_info);
+ eServiceReference ref = *m_cursor;
+ bool checkPlayable =
+ (ref.flags & eServiceReference::flagDirectory) != eServiceReference::flagDirectory ||
+ (ref.flags & eServiceReference::isGroup);
- if (m_is_playable_ignore.valid() && service_info && !service_info->isPlayable(*m_cursor, m_is_playable_ignore))
+ if (
checkPlayable &&
m_is_playable_ignore.valid() && service_info && !service_info->isPlayable(*m_cursor, m_is_playable_ignore))
painter.setForegroundColor(gRGB(0xbbbbbb));
int xoffset=0; // used as offset when painting the folder/marker symbol
painter.setForegroundColor(gRGB(0xbbbbbb));
int xoffset=0; // used as offset when painting the folder/marker symbol