From cd883d9759844701ef57afa0cb03de7722acc5e5 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Thu, 30 Nov 2006 12:42:58 +0000 Subject: some changes for service groups --- lib/service/listboxservice.cpp | 24 ++++++++++++------------ lib/service/servicedvb.cpp | 7 ++++--- 2 files changed, 16 insertions(+), 15 deletions(-) (limited to 'lib/service') diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp index f6d9e78b..2e0dfa98 100644 --- a/lib/service/listboxservice.cpp +++ b/lib/service/listboxservice.cpp @@ -432,11 +432,9 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const ePtr 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); + bool isPlayable = !(ref.flags & eServiceReference::isDirectory || ref.flags & eServiceReference::isMarker); - if (checkPlayable && m_is_playable_ignore.valid() && service_info && !service_info->isPlayable(*m_cursor, m_is_playable_ignore)) + if (isPlayable && 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 @@ -549,7 +547,15 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const eRect area = m_element_position[p]; int correction = (area.height() - pixmap_size.height()) / 2; - if (m_cursor->flags & eServiceReference::flagDirectory) + if (isPlayable) + { + if (e != celServiceTypePixmap) + continue; + m_element_position[celServiceInfo] = area; + m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); + m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); + } + else if (m_cursor->flags & eServiceReference::isDirectory) { if (e != celFolderPixmap) continue; @@ -561,13 +567,7 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const continue; } else - { - if (e != celServiceTypePixmap) - continue; - m_element_position[celServiceInfo] = area; - m_element_position[celServiceInfo].setLeft(area.left() + pixmap_size.width() + 8); - m_element_position[celServiceInfo].setWidth(area.width() - pixmap_size.width() - 8); - } + eFatal("unknown service type in listboxservice"); area.moveBy(offset); painter.clip(area); diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 76fc005b..1264b872 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -172,8 +172,9 @@ int eStaticServiceDVBBouquetInformation::isPlayable(const eServiceReference &ref ((const eServiceReferenceDVB&)ignore).getChannelID(chid_ignore); for (std::list::iterator it(bouquet->m_services.begin()); it != bouquet->m_services.end(); ++it) { - int tmp=res->canAllocateChannel(chid, chid_ignore); ((const eServiceReferenceDVB&)*it).getChannelID(chid); + int tmp=res->canAllocateChannel(chid, chid_ignore); + eDebug("%d %s", tmp, it->toString().c_str()); if (tmp > cur) { m_playable_service = *it; @@ -545,7 +546,7 @@ RESULT eDVBServiceList::getNext(eServiceReference &ref) RESULT eDVBServiceList::startEdit(ePtr &res) { - if (m_parent.flags & eServiceReference::flagDirectory) // bouquet + if (m_parent.flags & eServiceReference::canDescent) // bouquet { ePtr db; ePtr resm; @@ -639,7 +640,7 @@ RESULT eServiceFactoryDVB::list(const eServiceReference &ref, ePtr &ptr) { /* is a listable service? */ - if ((ref.flags & eServiceReference::flagDirectory) == eServiceReference::flagDirectory) // bouquet + if (ref.flags & eServiceReference::canDescent) // bouquet { if ( !ref.name.empty() ) // satellites or providers list ptr = m_StaticServiceDVBInfo; -- cgit v1.2.3