playlist: move sorting dialog related functions to separate file

This commit is contained in:
Andrzej Rybczak
2012-09-13 21:57:17 +02:00
parent fcc097fc76
commit 9ddfca8f31
16 changed files with 414 additions and 314 deletions

View File

@@ -43,6 +43,7 @@
#include "lyrics.h"
#include "playlist.h"
#include "playlist_editor.h"
#include "sort_playlist.h"
#include "search_engine.h"
#include "sel_items_adder.h"
#include "server_info.h"
@@ -103,6 +104,7 @@ void Action::SetResizeFlags()
myLyrics->hasToBeResized = 1;
mySelectedItemsAdder->hasToBeResized = 1;
mySongInfo->hasToBeResized = 1;
mySortPlaylistDialog->hasToBeResized = 1;
# ifdef HAVE_CURL_CURL_H
myLastfm->hasToBeResized = 1;
@@ -743,11 +745,11 @@ void VolumeDown::Run()
void Delete::Run()
{
if (myScreen == myPlaylist && !myPlaylist->Items->empty())
if (myScreen == myPlaylist && !myPlaylist->main()->empty())
{
Statusbar::msg("Deleting items...");
auto delete_fun = std::bind(&MPD::Connection::Delete, _1, _2);
if (deleteSelectedSongs(*myPlaylist->Items, delete_fun))
if (deleteSelectedSongs(*myPlaylist->main(), delete_fun))
Statusbar::msg("Item(s) deleted");
}
# ifndef WIN32
@@ -874,11 +876,11 @@ void SavePlaylist::Run()
}
if (!playlist_name.empty())
{
if (myPlaylist->Items->isFiltered())
if (myPlaylist->main()->isFiltered())
{
Mpd.StartCommandsList();
for (size_t i = 0; i < myPlaylist->Items->size(); ++i)
Mpd.AddToPlaylist(playlist_name, (*myPlaylist->Items)[i].value());
for (size_t i = 0; i < myPlaylist->main()->size(); ++i)
Mpd.AddToPlaylist(playlist_name, (*myPlaylist->main())[i].value());
Mpd.CommitCommandsList();
if (Mpd.GetErrorMessage().empty())
Statusbar::msg("Filtered items added to playlist \"%s\"", playlist_name.c_str());
@@ -924,30 +926,28 @@ void Stop::Run()
bool MoveSortOrderUp::canBeRun() const
{
return myScreen == myPlaylist
&& myPlaylist->SortingInProgress();
return myScreen == mySortPlaylistDialog;
}
void MoveSortOrderUp::Run()
{
myPlaylist->moveSortOrderUp();
mySortPlaylistDialog->moveSortOrderUp();
}
bool MoveSortOrderDown::canBeRun() const
{
return myScreen == myPlaylist
&& myPlaylist->SortingInProgress();
return myScreen == mySortPlaylistDialog;
}
void MoveSortOrderDown::Run()
{
myPlaylist->moveSortOrderDown();
mySortPlaylistDialog->moveSortOrderDown();
}
bool MoveSelectedItemsUp::canBeRun() const
{
return ((myScreen->activeWindow() == myPlaylist->Items
&& !myPlaylist->Items->empty()
return ((myScreen->activeWindow() == myPlaylist->main()
&& !myPlaylist->main()->empty()
&& !myPlaylist->isFiltered())
|| (myScreen->activeWindow() == myPlaylistEditor->Content
&& !myPlaylistEditor->Content->empty()
@@ -958,7 +958,7 @@ void MoveSelectedItemsUp::Run()
{
if (myScreen == myPlaylist)
{
moveSelectedItemsUp(*myPlaylist->Items, std::bind(&MPD::Connection::Move, _1, _2, _3));
moveSelectedItemsUp(*myPlaylist->main(), std::bind(&MPD::Connection::Move, _1, _2, _3));
}
else if (myScreen == myPlaylistEditor)
{
@@ -971,8 +971,8 @@ void MoveSelectedItemsUp::Run()
bool MoveSelectedItemsDown::canBeRun() const
{
return ((myScreen->activeWindow() == myPlaylist->Items
&& !myPlaylist->Items->empty()
return ((myScreen->activeWindow() == myPlaylist->main()
&& !myPlaylist->main()->empty()
&& !myPlaylist->isFiltered())
|| (myScreen->activeWindow() == myPlaylistEditor->Content
&& !myPlaylistEditor->Content->empty()
@@ -983,7 +983,7 @@ void MoveSelectedItemsDown::Run()
{
if (myScreen == myPlaylist)
{
moveSelectedItemsDown(*myPlaylist->Items, std::bind(&MPD::Connection::Move, _1, _2, _3));
moveSelectedItemsDown(*myPlaylist->main(), std::bind(&MPD::Connection::Move, _1, _2, _3));
}
else if (myScreen == myPlaylistEditor)
{
@@ -996,14 +996,14 @@ void MoveSelectedItemsDown::Run()
bool MoveSelectedItemsTo::canBeRun() const
{
return myScreen->activeWindow() == myPlaylist->Items
return myScreen->activeWindow() == myPlaylist->main()
|| myScreen->activeWindow() == myPlaylistEditor->Content;
}
void MoveSelectedItemsTo::Run()
{
if (myScreen == myPlaylist)
moveSelectedItemsTo(*myPlaylist->Items, std::bind(&MPD::Connection::Move, _1, _2, _3));
moveSelectedItemsTo(*myPlaylist->main(), std::bind(&MPD::Connection::Move, _1, _2, _3));
else
{
assert(!myPlaylistEditor->Playlists->empty());
@@ -1086,16 +1086,16 @@ void ToggleDisplayMode::Run()
if (Config.columns_in_playlist)
{
myPlaylist->Items->setItemDisplayer(std::bind(Display::SongsInColumns, _1, myPlaylist));
myPlaylist->main()->setItemDisplayer(std::bind(Display::SongsInColumns, _1, myPlaylist));
if (Config.titles_visibility)
myPlaylist->Items->setTitle(Display::Columns(myPlaylist->Items->getWidth()));
myPlaylist->main()->setTitle(Display::Columns(myPlaylist->main()->getWidth()));
else
myPlaylist->Items->setTitle("");
myPlaylist->main()->setTitle("");
}
else
{
myPlaylist->Items->setItemDisplayer(std::bind(Display::Songs, _1, myPlaylist, Config.song_list_format));
myPlaylist->Items->setTitle("");
myPlaylist->main()->setItemDisplayer(std::bind(Display::Songs, _1, myPlaylist, Config.song_list_format));
myPlaylist->main()->setTitle("");
}
}
else if (myScreen == myBrowser)
@@ -1166,8 +1166,8 @@ void TogglePlayingSongCentering::Run()
{
Config.autocenter_mode = !Config.autocenter_mode;
Statusbar::msg("Centering playing song: %s", Config.autocenter_mode ? "On" : "Off");
if (Config.autocenter_mode && Mpd.isPlaying() && !myPlaylist->Items->isFiltered())
myPlaylist->Items->highlight(Mpd.GetCurrentlyPlayingSongPos());
if (Config.autocenter_mode && Mpd.isPlaying() && !myPlaylist->main()->isFiltered())
myPlaylist->main()->highlight(Mpd.GetCurrentlyPlayingSongPos());
}
void UpdateDatabase::Run()
@@ -1193,7 +1193,7 @@ bool JumpToPlayingSong::canBeRun() const
void JumpToPlayingSong::Run()
{
if (myScreen == myPlaylist)
myPlaylist->Items->highlight(Mpd.GetCurrentlyPlayingSongPos());
myPlaylist->main()->highlight(Mpd.GetCurrentlyPlayingSongPos());
else if (myScreen == myBrowser)
{
myBrowser->LocateSong(myPlaylist->nowPlayingSong());
@@ -1751,7 +1751,7 @@ void CropMainPlaylist::Run()
if (yes)
{
Statusbar::msg("Cropping playlist...");
if (cropPlaylist(*myPlaylist->Items, std::bind(&MPD::Connection::Delete, _1, _2)))
if (cropPlaylist(*myPlaylist->main(), std::bind(&MPD::Connection::Delete, _1, _2)))
Statusbar::msg("Cropping playlist...");
}
}
@@ -1787,7 +1787,7 @@ void ClearMainPlaylist::Run()
auto delete_fun = std::bind(&MPD::Connection::Delete, _1, _2);
auto clear_fun = std::bind(&MPD::Connection::ClearMainPlaylist, _1);
Statusbar::msg("Deleting items...");
if (clearPlaylist(*myPlaylist->Items, delete_fun, clear_fun))
if (clearPlaylist(*myPlaylist->main(), delete_fun, clear_fun))
Statusbar::msg("Items deleted");
}
}
@@ -1821,7 +1821,7 @@ bool SortPlaylist::canBeRun() const
void SortPlaylist::Run()
{
myPlaylist->Sort();
mySortPlaylistDialog->switchTo();
}
bool ReversePlaylist::canBeRun() const
@@ -1857,7 +1857,7 @@ void ApplyFilter::Run()
filter = f->currentFilter();
if (filter.empty())
{
myPlaylist->Items->clearFilterResults();
myPlaylist->main()->clearFilterResults();
Statusbar::msg("Filtering disabled");
}
else
@@ -2145,7 +2145,7 @@ bool SetSelectedItemsPriority::canBeRun() const
Statusbar::msg("Priorities are supported in MPD >= 0.17.0");
return false;
}
return myScreen->activeWindow() == myPlaylist->Items && !myPlaylist->Items->empty();
return myScreen->activeWindow() == myPlaylist->main() && !myPlaylist->main()->empty();
}
void SetSelectedItemsPriority::Run()
@@ -2169,7 +2169,7 @@ void SetSelectedItemsPriority::Run()
bool FilterPlaylistOnPriorities::canBeRun() const
{
return myScreen->activeWindow() == myPlaylist->Items;
return myScreen->activeWindow() == myPlaylist->main();
}
void FilterPlaylistOnPriorities::Run()
@@ -2183,7 +2183,7 @@ void FilterPlaylistOnPriorities::Run()
if (!isInteger(strprio.c_str(), false))
return;
unsigned prio = stringToInt(strprio);
myPlaylist->Items->filter(myPlaylist->Items->begin(), myPlaylist->Items->end(),
myPlaylist->main()->filter(myPlaylist->main()->begin(), myPlaylist->main()->end(),
[prio](const NC::Menu<MPD::Song>::Item &s) {
return s.value().getPrio() > prio;
});