diff --git a/models/musiclibraryitemalbum.cpp b/models/musiclibraryitemalbum.cpp index cbb44afbd..b578e8d37 100644 --- a/models/musiclibraryitemalbum.cpp +++ b/models/musiclibraryitemalbum.cpp @@ -367,6 +367,7 @@ void MusicLibraryItemAlbum::remove(int row) delete i; m_totalTime=0; m_artists.clear(); + resetRows(); } void MusicLibraryItemAlbum::remove(MusicLibraryItemSong *i) @@ -375,6 +376,7 @@ void MusicLibraryItemAlbum::remove(MusicLibraryItemSong *i) if (-1!=idx) { remove(idx); } + resetRows(); } void MusicLibraryItemAlbum::removeAll(const QSet &fileNames) @@ -391,6 +393,7 @@ void MusicLibraryItemAlbum::removeAll(const QSet &fileNames) ++i; } } + resetRows(); } QMap MusicLibraryItemAlbum::getSongs(const QSet &fileNames) const diff --git a/models/musiclibraryitemartist.cpp b/models/musiclibraryitemartist.cpp index aee659c8d..f169bdf55 100644 --- a/models/musiclibraryitemartist.cpp +++ b/models/musiclibraryitemartist.cpp @@ -254,6 +254,7 @@ void MusicLibraryItemArtist::remove(MusicLibraryItemAlbum *album) } m_indexes.remove(album->data()); delete m_childItems.takeAt(index); + resetRows(); } QList MusicLibraryItemArtist::mutipleArtistAlbums() diff --git a/models/musiclibraryitemroot.cpp b/models/musiclibraryitemroot.cpp index 6b56d0785..8d242f915 100644 --- a/models/musiclibraryitemroot.cpp +++ b/models/musiclibraryitemroot.cpp @@ -210,6 +210,7 @@ void MusicLibraryItemRoot::remove(MusicLibraryItemArtist *artist) } m_indexes.remove(artist->data()); delete m_childItems.takeAt(index); + resetRows(); } QSet MusicLibraryItemRoot::allSongs(bool revertVa) const diff --git a/models/proxymodel.cpp b/models/proxymodel.cpp index 09af724dd..2bc9c6630 100644 --- a/models/proxymodel.cpp +++ b/models/proxymodel.cpp @@ -77,24 +77,23 @@ bool ProxyModel::update(const QString &text, const QString &genre) if (text.length()<2 && genre.isEmpty()) { if (filterEnabled) { -// bool wasEmpty=isEmpty(); + bool wasEmpty=isEmpty(); filterEnabled=false; filterGenre=genre; -// if (!wasEmpty) { + if (!wasEmpty || !filterRegExp().isEmpty()) { invalidate(); -// } -// if (!filterRegExp().isEmpty()) { -// setFilterRegExp(QString()); -// } + } + if (!filterRegExp().isEmpty()) { + setFilterRegExp(QString()); + } return true; } } else { filterEnabled=true; filterGenre=genre; + invalidate(); if (text!=filterRegExp().pattern()) { setFilterRegExp(text); - } else { - invalidate(); } return true; } diff --git a/online/onlineservicespage.cpp b/online/onlineservicespage.cpp index 08b8e69cf..c7b868cea 100644 --- a/online/onlineservicespage.cpp +++ b/online/onlineservicespage.cpp @@ -294,6 +294,7 @@ void OnlineServicesPage::controlSearch(bool on) genreCombo->setEnabled(true); searchService=QString(); proxy.setFilterItem(0); + proxy.update(QString(), QString()); view->setBackgroundImage(QIcon()); } }