Key up and down works in playlist and repositions the view.

This commit is contained in:
Tobias Rundstrom 2006-03-11 19:37:41 -03:00
parent 33d3d29914
commit 13b9c47523
2 changed files with 19 additions and 2 deletions

View file

@ -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);
}

View file

@ -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: