Key up and down works in playlist and repositions the view.
This commit is contained in:
parent
33d3d29914
commit
13b9c47523
2 changed files with 19 additions and 2 deletions
|
@ -84,6 +84,8 @@ PlaylistScroller::repositionButton (void)
|
|||
PlaylistWidget *pw = dynamic_cast<PlaylistWidget *>(parent ());
|
||||
/* x = 182.6 / (454 - 242) * 224 */
|
||||
int bpos = (int)((float)(pw->getOffset ()) / (float)m_max * (float) getMax ());
|
||||
if (bpos > getMax ())
|
||||
bpos = getMax ();
|
||||
m_button->move (0, bpos);
|
||||
}
|
||||
|
||||
|
|
|
@ -468,18 +468,30 @@ PlaylistList::keyPressEvent (QKeyEvent *event)
|
|||
{
|
||||
|
||||
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
|
||||
QWidget *w = dynamic_cast<QWidget*>(parent());
|
||||
QSize s = w->size ();
|
||||
int lastitem = (m_offset + s.height()) / getFontH () - 1;
|
||||
if (lastitem > m_items->count())
|
||||
lastitem = m_items->count() - 1;
|
||||
int firstitem = m_offset / getFontH();
|
||||
|
||||
switch (event->key ()) {
|
||||
case Qt::Key_Down:
|
||||
{
|
||||
int i = m_selected->last ();
|
||||
i ++;
|
||||
if (i > m_items->count ())
|
||||
i = m_items->count ();
|
||||
|
||||
if (i > (m_items->count () - 1))
|
||||
i = m_items->count () - 1;
|
||||
|
||||
m_selected->clear ();
|
||||
m_selected->append (i);
|
||||
|
||||
if (i > lastitem)
|
||||
setOffset (m_offset += getFontH ());
|
||||
|
||||
update ();
|
||||
emit sizeChanged (size());
|
||||
}
|
||||
break;
|
||||
case Qt::Key_Up:
|
||||
|
@ -490,8 +502,11 @@ PlaylistList::keyPressEvent (QKeyEvent *event)
|
|||
i = 0;
|
||||
m_selected->clear ();
|
||||
m_selected->append (i);
|
||||
if (i < firstitem)
|
||||
setOffset (m_offset -= getFontH ());
|
||||
|
||||
update ();
|
||||
emit sizeChanged (size());
|
||||
}
|
||||
break;
|
||||
case Qt::Key_Backspace:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue