git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more robust rtp plus tag parsing
[enigma2.git]
/
lib
/
service
/
listboxservice.cpp
diff --git
a/lib/service/listboxservice.cpp
b/lib/service/listboxservice.cpp
index d87e3155e0369709284a54402348ebf8185507e7..b6d07f4467cabb37d0957e91d1c6f895aa45b243 100644
(file)
--- a/
lib/service/listboxservice.cpp
+++ b/
lib/service/listboxservice.cpp
@@
-11,25
+11,40
@@
void eListboxServiceContent::addService(const eServiceReference &service, bool b
m_list.insert(m_cursor, service);
else
m_list.push_back(service);
m_list.insert(m_cursor, service);
else
m_list.push_back(service);
- ++m_size;
- ++m_cursor_number;
- if (m_listbox)
- m_listbox->entryAdded(m_cursor_number-1);
+ if (m_size++)
+ {
+ ++m_cursor_number;
+ if (m_listbox)
+ m_listbox->entryAdded(m_cursor_number-1);
+ }
+ else
+ {
+ m_cursor = m_list.begin();
+ m_cursor_number=0;
+ m_listbox->entryAdded(0);
+ }
}
void eListboxServiceContent::removeCurrent()
{
if (m_size && m_listbox)
{
}
void eListboxServiceContent::removeCurrent()
{
if (m_size && m_listbox)
{
- --m_size;
- if (m_cursor_number == m_size-1)
+ if (m_cursor_number == --m_size)
{
m_list.erase(m_cursor--);
{
m_list.erase(m_cursor--);
- --m_cursor_number;
+ if (m_size)
+ {
+ --m_cursor_number;
+ m_listbox->entryRemoved(m_cursor_number+1);
+ }
+ else
+ m_listbox->entryRemoved(m_cursor_number);
}
else
}
else
+ {
m_list.erase(m_cursor++);
m_list.erase(m_cursor++);
- m_listbox->entryRemoved(m_cursor_number+1);
+ m_listbox->entryRemoved(m_cursor_number);
+ }
}
}
}
}
@@
-245,7
+260,7
@@
void eListboxServiceContent::sort()
DEFINE_REF(eListboxServiceContent);
eListboxServiceContent::eListboxServiceContent()
DEFINE_REF(eListboxServiceContent);
eListboxServiceContent::eListboxServiceContent()
- :m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_numberoffset(0)
+ :m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_numberoffset(0)
, m_itemheight(25)
{
cursorHome();
eServiceCenter::getInstance(m_service_center);
{
cursorHome();
eServiceCenter::getInstance(m_service_center);
@@
-437,7
+452,7
@@
void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
eServiceReference ref = *m_cursor;
bool isPlayable = !(ref.flags & eServiceReference::isDirectory || ref.flags & eServiceReference::isMarker);
eServiceReference ref = *m_cursor;
bool isPlayable = !(ref.flags & eServiceReference::isDirectory || ref.flags & eServiceReference::isMarker);
- if (isPlayable &&
m_is_playable_ignore.valid() &&
service_info && !service_info->isPlayable(*m_cursor, m_is_playable_ignore))
+ if (isPlayable && 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
@@
-537,6
+552,7
@@
void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
ePtr<gPixmap> &pixmap =
(e == celFolderPixmap) ? m_pixmaps[picFolder] :
(e == celMarkerPixmap) ? m_pixmaps[picMarker] :
ePtr<gPixmap> &pixmap =
(e == celFolderPixmap) ? m_pixmaps[picFolder] :
(e == celMarkerPixmap) ? m_pixmaps[picMarker] :
+ (m_cursor->flags & eServiceReference::isGroup) ? m_pixmaps[picServiceGroup] :
(orbpos == 0xFFFF) ? m_pixmaps[picDVB_C] :
(orbpos == 0xEEEE) ? m_pixmaps[picDVB_T] : m_pixmaps[picDVB_S];
if (pixmap)
(orbpos == 0xFFFF) ? m_pixmaps[picDVB_C] :
(orbpos == 0xEEEE) ? m_pixmaps[picDVB_T] : m_pixmaps[picDVB_S];
if (pixmap)
@@
-591,3
+607,10
@@
void eListboxServiceContent::setIgnoreService( const eServiceReference &service
{
m_is_playable_ignore=service;
}
{
m_is_playable_ignore=service;
}
+
+int eListboxServiceContent::setItemHeight(int height)
+{
+ m_itemheight = height;
+ if (m_listbox)
+ m_listbox->setItemHeight(height);
+}