Skip to content

Commit

Permalink
Add option to hide visible bouquet markers.
Browse files Browse the repository at this point in the history
This allows visible markers (bouquet spacers i.e. #SERVICE 1:320:0:0:0:0:0:0:0:0:) such as those used by fastscan and cable scan plugins to be hidden as a user defined option. When in "channelSelection" move mode the markers will be displayed allowing channels to be placed between them if desired.
  • Loading branch information
Huevos committed Aug 21, 2019
1 parent 8b1aab6 commit 288120f
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 8 deletions.
1 change: 1 addition & 0 deletions data/setup.xml
Expand Up @@ -93,6 +93,7 @@
<item level="1" text="Channel list cursor behavior" description="Configure the cursor behavior in the channel selection list. When opening the channel selection list you can remain on the current service or already select up/down and you are able to revert the B+/B- buttons.">config.usage.servicelist_cursor_behavior</item>
<item level="1" text="Enable multiple bouquets" description="Services may be grouped in bouquets. When enabled, you can use more than one bouquet.">config.usage.multibouquet</item>
<item level="1" text="Enable panic button" description="When enabled, pressing '0' will zap you to the first channel in your first bouquet and delete your zap-history.">config.usage.panicbutton</item>
<item level="1" text="Hide number markers" description="When enabled, number markers will be hidden.">config.usage.hide_number_markers</item>
<item level="1" text="Jump first press in channel selection" description="This option allows you to choose what the first button press jumps to in channel list screen, (so pressing '2' jumps to 'A' or '2' first), when 'Quick Actions' preset actions are perfomed. ">config.usage.show_channel_jump_in_servicelist</item>
<item level="0" text="Show event-progress in channel selection" description="Set the type of the progress indication in the channel selection screen.">config.usage.show_event_progress_in_servicelist</item>
<item level="0" text="Show channel numbers in channel selection" description="When enabled, show channel numbers in the channel selection screen.">config.usage.show_channel_numbers_in_servicelist</item>
Expand Down
1 change: 1 addition & 0 deletions lib/python/Components/ServiceList.py
Expand Up @@ -399,6 +399,7 @@ def setMode(self, mode):
self.l.setElementFont(self.l.celServiceInfo, self.ServiceInfoFont)
if "perc" in config.usage.show_event_progress_in_servicelist.value:
self.l.setElementFont(self.l.celServiceEventProgressbar, self.ServiceInfoFont)
self.l.setHideNumberMarker(config.usage.hide_number_markers.value)
self.l.setServiceTypeIconMode(int(config.usage.servicetype_icon_mode.value))
self.l.setCryptoIconMode(int(config.usage.crypto_icon_mode.value))
self.l.setRecordIndicatorMode(int(config.usage.record_indicator_mode.value))
Expand Down
3 changes: 3 additions & 0 deletions lib/python/Components/UsageConfig.py
Expand Up @@ -37,6 +37,9 @@ def alternativeNumberModeChange(configElement):
refreshServiceList()
config.usage.alternative_number_mode.addNotifier(alternativeNumberModeChange)

config.usage.hide_number_markers = ConfigYesNo(default = True)
config.usage.hide_number_markers.addNotifier(refreshServiceList)

config.usage.servicetype_icon_mode = ConfigSelection(default = "0", choices = [("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))])
config.usage.servicetype_icon_mode.addNotifier(refreshServiceList)
config.usage.crypto_icon_mode = ConfigSelection(default = "0", choices = [("0", _("None")), ("1", _("Left from servicename")), ("2", _("Right from servicename"))])
Expand Down
12 changes: 12 additions & 0 deletions lib/python/Screens/ChannelSelection.py
Expand Up @@ -1351,6 +1351,7 @@ def toggleMoveMode(self, select=False):
self.saved_title = None
self.buildTitleString()
self.servicelist.resetRoot()
self.servicelist.l.setHideNumberMarker(config.usage.hide_number_markers.value)
self.servicelist.setCurrent(self.servicelist.getCurrent())
else:
self.mutableList = self.getMutableList()
Expand Down Expand Up @@ -1396,8 +1397,19 @@ def exitContext(self, close = False):
l.setFontsize()
l.setItemsPerPage()
l.setMode('MODE_TV')

# l.setMode('MODE_TV') automatically sets "hide number marker" to
# the config.usage.hide_number_markers.value so when we are in "movemode"
# we need to force display of the markers here after l.setMode('MODE_TV')
# has run. If l.setMode('MODE_TV') were ever removed above,
# "self.servicelist.l.setHideNumberMarker(False)" could be moved
# directly to the "else" clause of "def toggleMoveMode".
if self.movemode:
self.servicelist.l.setHideNumberMarker(False)

if close:
self.cancel()


MODE_TV = 0
MODE_RADIO = 1
Expand Down
16 changes: 8 additions & 8 deletions lib/service/listboxservice.cpp
Expand Up @@ -189,14 +189,14 @@ int eListboxServiceContent::getPrevMarkerPos()
{
--i;
--index;
if (! ((i->flags & eServiceReference::isMarker) && !(i->flags & eServiceReference::isInvisible)))
if (!(i->flags & eServiceReference::isMarker && !(i->flags & eServiceReference::isInvisible)))
break;
}
while (index)
{
--i;
--index;
if ((i->flags & eServiceReference::isMarker) && !(i->flags & eServiceReference::isInvisible))
if (i->flags & eServiceReference::isMarker && !(i->flags & eServiceReference::isInvisible))
break;
}
return cursorResolve(index);
Expand All @@ -212,7 +212,7 @@ int eListboxServiceContent::getNextMarkerPos()
{
++i;
++index;
if ((i->flags & eServiceReference::isMarker) && !(i->flags & eServiceReference::isInvisible))
if (i->flags & eServiceReference::isMarker && !(i->flags & eServiceReference::isInvisible))
break;
}
return cursorResolve(index);
Expand Down Expand Up @@ -320,7 +320,7 @@ void eListboxServiceContent::sort()
DEFINE_REF(eListboxServiceContent);

eListboxServiceContent::eListboxServiceContent()
:m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_itemheight(25), m_servicetype_icon_mode(0), m_crypto_icon_mode(0), m_record_indicator_mode(0), m_column_width(0), m_progressbar_height(6), m_progressbar_border_width(2), m_nonplayable_margins(10), m_items_distances(8)
:m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_itemheight(25), m_hide_number_marker(false), m_servicetype_icon_mode(0), m_crypto_icon_mode(0), m_record_indicator_mode(0), m_column_width(0), m_progressbar_height(6), m_progressbar_border_width(2), m_nonplayable_margins(10), m_items_distances(8)
{
memset(m_color_set, 0, sizeof(m_color_set));
cursorHome();
Expand Down Expand Up @@ -455,7 +455,7 @@ int eListboxServiceContent::cursorMove(int count)
m_listbox->entryChanged(cursorResolve(m_cursor_number));
}
++m_cursor_number;
if (!(m_cursor->flags & eServiceReference::isInvisible))
if (!(m_hide_number_marker && m_cursor->flags & eServiceReference::isNumberedMarker) && !(m_cursor->flags & eServiceReference::isInvisible))
--count;
}
}
Expand All @@ -471,7 +471,7 @@ int eListboxServiceContent::cursorMove(int count)
m_listbox->entryChanged(cursorResolve(m_cursor_number));
}
--m_cursor_number;
if (!(m_cursor->flags & eServiceReference::isInvisible))
if (!(m_hide_number_marker && m_cursor->flags & eServiceReference::isNumberedMarker) && !(m_cursor->flags & eServiceReference::isInvisible))
++count;
}
while (m_cursor != m_list.end())
Expand Down Expand Up @@ -508,7 +508,7 @@ int eListboxServiceContent::cursorResolve(int cursor_position)

count++;

if (i->flags & eServiceReference::isInvisible)
if ((m_hide_number_marker && (i->flags & eServiceReference::isNumberedMarker)) || (i->flags & eServiceReference::isInvisible))
continue;
m_stripped_cursor++;
}
Expand Down Expand Up @@ -552,7 +552,7 @@ int eListboxServiceContent::size()
int size = 0;
for (list::iterator i(m_list.begin()); i != m_list.end(); ++i)
{
if (i->flags & eServiceReference::isInvisible)
if ((m_hide_number_marker && (i->flags & eServiceReference::isNumberedMarker)) || (i->flags & eServiceReference::isInvisible))
continue;
size++;
}
Expand Down

0 comments on commit 288120f

Please sign in to comment.