Skip to content

Commit de2513a

Browse files
committed
Implement filtering in media library
1 parent 17effe0 commit de2513a

9 files changed

Lines changed: 208 additions & 116 deletions

File tree

src/actions.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,7 +1167,7 @@ void TogglePlayingSongCentering::run()
11671167
{
11681168
auto s = myPlaylist->nowPlayingSong();
11691169
if (!s.empty())
1170-
myPlaylist->moveToSong(s);
1170+
myPlaylist->locateSong(s);
11711171
}
11721172
}
11731173

@@ -1197,15 +1197,15 @@ void JumpToPlayingSong::run()
11971197
return;
11981198
if (myScreen == myPlaylist)
11991199
{
1200-
myPlaylist->moveToSong(s);
1200+
myPlaylist->locateSong(s);
12011201
}
12021202
else if (myScreen == myBrowser)
12031203
{
12041204
myBrowser->locateSong(s);
12051205
}
12061206
else if (myScreen == myLibrary)
12071207
{
1208-
myLibrary->LocateSong(s);
1208+
myLibrary->locateSong(s);
12091209
}
12101210
}
12111211

@@ -1611,7 +1611,7 @@ bool JumpToMediaLibrary::canBeRun()
16111611

16121612
void JumpToMediaLibrary::run()
16131613
{
1614-
myLibrary->LocateSong(*m_song);
1614+
myLibrary->locateSong(*m_song);
16151615
}
16161616

16171617
bool JumpToPlaylistEditor::canBeRun()
@@ -2226,7 +2226,7 @@ void ToggleBrowserSortMode::run()
22262226
bool ToggleLibraryTagType::canBeRun()
22272227
{
22282228
return (myScreen->isActiveWindow(myLibrary->Tags))
2229-
|| (myLibrary->Columns() == 2 && myScreen->isActiveWindow(myLibrary->Albums));
2229+
|| (myLibrary->columns() == 2 && myScreen->isActiveWindow(myLibrary->Albums));
22302230
}
22312231

22322232
void ToggleLibraryTagType::run()
@@ -2257,7 +2257,7 @@ void ToggleLibraryTagType::run()
22572257
std::string and_mtime = Config.media_library_sort_by_mtime ?
22582258
" and mtime" :
22592259
"";
2260-
if (myLibrary->Columns() == 2)
2260+
if (myLibrary->columns() == 2)
22612261
{
22622262
myLibrary->Songs.clear();
22632263
myLibrary->Albums.reset();

src/browser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ bool Browser::enterDirectory()
456456

457457
void Browser::getDirectory(std::string directory)
458458
{
459-
ScopedUnfilteredMenu<MPD::Item, ReapplyFilter::Yes> sunfilter(w);
459+
ScopedUnfilteredMenu<MPD::Item> sunfilter(ReapplyFilter::Yes, w);
460460

461461
m_scroll_beginning = 0;
462462
w.clear();

src/helpers.h

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434

3535
enum ReapplyFilter { Yes, No };
3636

37-
template <typename ItemT, ReapplyFilter reapplyFilter>
37+
template <typename ItemT>
3838
struct ScopedUnfilteredMenu
3939
{
40-
ScopedUnfilteredMenu(NC::Menu<ItemT> &menu)
41-
: m_menu(menu)
40+
ScopedUnfilteredMenu(ReapplyFilter reapply_filter, NC::Menu<ItemT> &menu)
41+
: m_refresh(false), m_reapply_filter(reapply_filter), m_menu(menu)
4242
{
4343
m_is_filtered = m_menu.isFiltered();
4444
if (m_is_filtered)
@@ -49,7 +49,7 @@ struct ScopedUnfilteredMenu
4949
{
5050
if (m_is_filtered)
5151
{
52-
switch (reapplyFilter)
52+
switch (m_reapply_filter)
5353
{
5454
case ReapplyFilter::Yes:
5555
m_menu.reapplyFilter();
@@ -59,10 +59,20 @@ struct ScopedUnfilteredMenu
5959
break;
6060
}
6161
}
62+
if (m_refresh)
63+
m_menu.refresh();
64+
}
65+
66+
void set(ReapplyFilter reapply_filter, bool refresh)
67+
{
68+
m_reapply_filter = reapply_filter;
69+
m_refresh = refresh;
6270
}
6371

6472
private:
6573
bool m_is_filtered;
74+
bool m_refresh;
75+
ReapplyFilter m_reapply_filter;
6676
NC::Menu<ItemT> &m_menu;
6777
};
6878

@@ -375,9 +385,7 @@ template <typename Iterator> std::string getSharedDirectory(Iterator first, Iter
375385
template <typename ListT>
376386
void markSongsInPlaylist(ListT &list)
377387
{
378-
ScopedUnfilteredMenu<
379-
typename ListT::Item::Type,
380-
ReapplyFilter::No> sunfilter(list);
388+
ScopedUnfilteredMenu<typename ListT::Item::Type> sunfilter(ReapplyFilter::No, list);
381389
MPD::Song *s;
382390
for (auto &p : static_cast<SongList &>(list))
383391
{

0 commit comments

Comments
 (0)