summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2006-01-23 19:18:56 +0000
committerwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2006-01-23 19:18:56 +0000
commitcc68bd26aba482be1493c8bae85be2853895bc6e (patch)
tree1190f466f5b0b8f3a2b4376a4651b16f8d4fb902
parent216ee89fd860fef766a2037fec003545b575bf91 (diff)
downloadvdr-plugin-muggle-cc68bd26aba482be1493c8bae85be2853895bc6e.tar.gz
vdr-plugin-muggle-cc68bd26aba482be1493c8bae85be2853895bc6e.tar.bz2
use the unique key (tracks.id for GD) from the listitem when retrieving an item
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@916 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r--mg_selection.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/mg_selection.c b/mg_selection.c
index 8e30945..b9798f8 100644
--- a/mg_selection.c
+++ b/mg_selection.c
@@ -647,6 +647,13 @@ mgParts
mgSelection::SelParts(bool distinct, bool deepsort) const
{
assert(m_level<ordersize());
+ mgParts result;
+ if (inItem())
+ {
+ // only use tracks.id
+ result += Keys[ordersize()-1]->Parts(m_db,distinct);
+ return result;
+ }
mgKey *high = Keys[m_level];
mgListItem* highitem = 0;
if (high->Type()!=keyGdUnique)
@@ -654,7 +661,6 @@ mgSelection::SelParts(bool distinct, bool deepsort) const
highitem = high->get();
high->set(0);
}
- mgParts result;
result.orderByCount = m_orderByCount;
for (unsigned int i=0;i<ordersize();i++)
{
@@ -960,10 +966,16 @@ bool mgSelection::enter (unsigned int position)
{
setPosition(position);
position = gotoPosition(); // reload adjusted position
- Key(m_level)->set (listitems[position]);
- mgDebug(5,"enter:level=%d,set to %s",m_level,getCurrentValue().c_str());
- IncLevel();
- refreshValues();
+ if (inItems())
+ {
+ mgListItem *item=Key(m_level)->get();
+ IncLevel();
+ Key(m_level)->set(item);
+ mgListItem *i2=Key(m_level)->get();
+ i2->set(item->value(),item->unique_id(),1);
+ }
+ else
+ IncLevel();
position = 0;
if (empty())
break;