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;
|
break;
|
||||||
case XMMS_PLAYLIST_CHANGED_MOVE:
|
case XMMS_PLAYLIST_CHANGED_MOVE:
|
||||||
|
@ -151,12 +153,18 @@ PlaylistList::playlistChanged (QHash<QString,QString> h)
|
||||||
case XMMS_PLAYLIST_CHANGED_SHUFFLE:
|
case XMMS_PLAYLIST_CHANGED_SHUFFLE:
|
||||||
case XMMS_PLAYLIST_CHANGED_SORT:
|
case XMMS_PLAYLIST_CHANGED_SORT:
|
||||||
{
|
{
|
||||||
|
while (!m_items->isEmpty()) {
|
||||||
|
PlaylistItem *item = m_items->takeFirst();
|
||||||
|
m_items->removeAll (item);
|
||||||
|
delete item;
|
||||||
|
}
|
||||||
|
|
||||||
m_itemmap->clear ();
|
m_itemmap->clear ();
|
||||||
while (!m_items->isEmpty())
|
|
||||||
delete m_items->takeFirst();
|
|
||||||
|
|
||||||
if (signal != XMMS_PLAYLIST_CHANGED_CLEAR) {
|
if (signal != XMMS_PLAYLIST_CHANGED_CLEAR) {
|
||||||
xmmsh->requestPlaylistList ();
|
xmmsh->requestPlaylistList ();
|
||||||
|
} else {
|
||||||
|
doResize ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
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
|
void
|
||||||
PlaylistList::addItem (PlaylistItem *i)
|
PlaylistList::addItem (PlaylistItem *i)
|
||||||
{
|
{
|
||||||
|
@ -604,10 +627,7 @@ PlaylistList::addItem (PlaylistItem *i)
|
||||||
if (!m_itemmap->contains (i->getID())) {
|
if (!m_itemmap->contains (i->getID())) {
|
||||||
m_itemmap->insert (i->getID(), i);
|
m_itemmap->insert (i->getID(), i);
|
||||||
}
|
}
|
||||||
if (m_items->count()*getFontH () > size().height()) {
|
doResize ();
|
||||||
resize (size().width(), m_items->count ()*getFontH ());
|
|
||||||
emit sizeChanged (size());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -20,6 +20,7 @@ class PlaylistList : public QWidget {
|
||||||
void addItem (PlaylistItem *i);
|
void addItem (PlaylistItem *i);
|
||||||
void setOffset (int i) { m_offset = i; }
|
void setOffset (int i) { m_offset = i; }
|
||||||
uint getOffset (void) const { return m_offset; }
|
uint getOffset (void) const { return m_offset; }
|
||||||
|
void doResize (void);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setPixmaps (Skin *skin);
|
void setPixmaps (Skin *skin);
|
||||||
|
|
2
TODO
2
TODO
|
@ -10,9 +10,7 @@ Todo:
|
||||||
* CloseButton
|
* CloseButton
|
||||||
* ShadeButton
|
* ShadeButton
|
||||||
* Add files / folders
|
* Add files / folders
|
||||||
* Redo paintEvent in PlaylistWindow class to not be slow.
|
|
||||||
* Jump entry to dialog
|
* Jump entry to dialog
|
||||||
* Reposition sliderbar on resize
|
|
||||||
* move viewport when walking outside it with keyboard
|
* move viewport when walking outside it with keyboard
|
||||||
* drag and drop outside viewport
|
* drag and drop outside viewport
|
||||||
* jump to entry when it's played.
|
* jump to entry when it's played.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue