Fix some reposition bugs in the playlist.
This commit is contained in:
parent
103e016cbd
commit
33d3d29914
3 changed files with 27 additions and 8 deletions
|
@ -143,6 +143,8 @@ PlaylistList::playlistChanged (QHash<QString,QString> h)
|
|||
}
|
||||
}
|
||||
|
||||
doResize ();
|
||||
|
||||
}
|
||||
break;
|
||||
case XMMS_PLAYLIST_CHANGED_MOVE:
|
||||
|
@ -151,12 +153,18 @@ PlaylistList::playlistChanged (QHash<QString,QString> h)
|
|||
case XMMS_PLAYLIST_CHANGED_SHUFFLE:
|
||||
case XMMS_PLAYLIST_CHANGED_SORT:
|
||||
{
|
||||
while (!m_items->isEmpty()) {
|
||||
PlaylistItem *item = m_items->takeFirst();
|
||||
m_items->removeAll (item);
|
||||
delete item;
|
||||
}
|
||||
|
||||
m_itemmap->clear ();
|
||||
while (!m_items->isEmpty())
|
||||
delete m_items->takeFirst();
|
||||
|
||||
if (signal != XMMS_PLAYLIST_CHANGED_CLEAR) {
|
||||
xmmsh->requestPlaylistList ();
|
||||
} else {
|
||||
doResize ();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -597,6 +605,21 @@ PlaylistList::paintEvent (QPaintEvent *event)
|
|||
|
||||
}
|
||||
|
||||
void
|
||||
PlaylistList::doResize (void)
|
||||
{
|
||||
QWidget *w = dynamic_cast<QWidget*>(parent());
|
||||
QSize s = w->size ();
|
||||
|
||||
if (m_items->count()*getFontH () > s.height ()) {
|
||||
resize (size().width(), m_items->count ()*getFontH ());
|
||||
} else {
|
||||
resize (size().width(), s.height());
|
||||
setOffset (0);
|
||||
}
|
||||
emit sizeChanged (size());
|
||||
}
|
||||
|
||||
void
|
||||
PlaylistList::addItem (PlaylistItem *i)
|
||||
{
|
||||
|
@ -604,10 +627,7 @@ PlaylistList::addItem (PlaylistItem *i)
|
|||
if (!m_itemmap->contains (i->getID())) {
|
||||
m_itemmap->insert (i->getID(), i);
|
||||
}
|
||||
if (m_items->count()*getFontH () > size().height()) {
|
||||
resize (size().width(), m_items->count ()*getFontH ());
|
||||
emit sizeChanged (size());
|
||||
}
|
||||
doResize ();
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -20,6 +20,7 @@ class PlaylistList : public QWidget {
|
|||
void addItem (PlaylistItem *i);
|
||||
void setOffset (int i) { m_offset = i; }
|
||||
uint getOffset (void) const { return m_offset; }
|
||||
void doResize (void);
|
||||
|
||||
public slots:
|
||||
void setPixmaps (Skin *skin);
|
||||
|
|
2
TODO
2
TODO
|
@ -10,9 +10,7 @@ Todo:
|
|||
* CloseButton
|
||||
* ShadeButton
|
||||
* Add files / folders
|
||||
* Redo paintEvent in PlaylistWindow class to not be slow.
|
||||
* Jump entry to dialog
|
||||
* Reposition sliderbar on resize
|
||||
* move viewport when walking outside it with keyboard
|
||||
* drag and drop outside viewport
|
||||
* jump to entry when it's played.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue