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 ());
|
PlaylistWidget *pw = dynamic_cast<PlaylistWidget *>(parent ());
|
||||||
/* x = 182.6 / (454 - 242) * 224 */
|
/* x = 182.6 / (454 - 242) * 224 */
|
||||||
int bpos = (int)((float)(pw->getOffset ()) / (float)m_max * (float) getMax ());
|
int bpos = (int)((float)(pw->getOffset ()) / (float)m_max * (float) getMax ());
|
||||||
|
if (bpos > getMax ())
|
||||||
|
bpos = getMax ();
|
||||||
m_button->move (0, bpos);
|
m_button->move (0, bpos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -468,18 +468,30 @@ PlaylistList::keyPressEvent (QKeyEvent *event)
|
||||||
{
|
{
|
||||||
|
|
||||||
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
|
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 ()) {
|
switch (event->key ()) {
|
||||||
case Qt::Key_Down:
|
case Qt::Key_Down:
|
||||||
{
|
{
|
||||||
int i = m_selected->last ();
|
int i = m_selected->last ();
|
||||||
i ++;
|
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->clear ();
|
||||||
m_selected->append (i);
|
m_selected->append (i);
|
||||||
|
|
||||||
|
if (i > lastitem)
|
||||||
|
setOffset (m_offset += getFontH ());
|
||||||
|
|
||||||
update ();
|
update ();
|
||||||
|
emit sizeChanged (size());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Qt::Key_Up:
|
case Qt::Key_Up:
|
||||||
|
@ -490,8 +502,11 @@ PlaylistList::keyPressEvent (QKeyEvent *event)
|
||||||
i = 0;
|
i = 0;
|
||||||
m_selected->clear ();
|
m_selected->clear ();
|
||||||
m_selected->append (i);
|
m_selected->append (i);
|
||||||
|
if (i < firstitem)
|
||||||
|
setOffset (m_offset -= getFontH ());
|
||||||
|
|
||||||
update ();
|
update ();
|
||||||
|
emit sizeChanged (size());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Qt::Key_Backspace:
|
case Qt::Key_Backspace:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue