clear filters when empty string is passed to applyFilter

boost::regex doesn't like empty strings in literal mode and throws exceptions.
This commit is contained in:
Andrzej Rybczak
2013-04-28 23:25:08 +02:00
parent d0b0f1f57c
commit 786ffe9182
6 changed files with 65 additions and 0 deletions

View File

@@ -251,6 +251,12 @@ std::string Browser::currentFilter()
void Browser::applyFilter(const std::string &filter) void Browser::applyFilter(const std::string &filter)
{ {
if (filter.empty())
{
w.clearFilter();
w.clearFilterResults();
return;
}
try try
{ {
w.showAll(); w.showAll();

View File

@@ -559,6 +559,25 @@ std::string MediaLibrary::currentFilter()
void MediaLibrary::applyFilter(const std::string &filter) void MediaLibrary::applyFilter(const std::string &filter)
{ {
if (filter.empty())
{
if (isActiveWindow(Tags))
{
Tags.clearFilter();
Tags.clearFilterResults();
}
else if (isActiveWindow(Albums))
{
Albums.clearFilter();
Albums.clearFilterResults();
}
else if (isActiveWindow(Songs))
{
Songs.clearFilter();
Songs.clearFilterResults();
}
return;
}
try try
{ {
if (isActiveWindow(Tags)) if (isActiveWindow(Tags))

View File

@@ -142,6 +142,12 @@ std::string Playlist::currentFilter()
void Playlist::applyFilter(const std::string &filter) void Playlist::applyFilter(const std::string &filter)
{ {
if (filter.empty())
{
w.clearFilter();
w.clearFilterResults();
return;
}
try try
{ {
w.showAll(); w.showAll();

View File

@@ -335,6 +335,20 @@ std::string PlaylistEditor::currentFilter()
void PlaylistEditor::applyFilter(const std::string &filter) void PlaylistEditor::applyFilter(const std::string &filter)
{ {
if (filter.empty())
{
if (isActiveWindow(Playlists))
{
Playlists.clearFilter();
Playlists.clearFilterResults();
}
else if (isActiveWindow(Content))
{
Content.clearFilter();
Content.clearFilterResults();
}
return;
}
try try
{ {
if (isActiveWindow(Playlists)) if (isActiveWindow(Playlists))

View File

@@ -264,6 +264,12 @@ std::string SearchEngine::currentFilter()
void SearchEngine::applyFilter(const std::string &filter) void SearchEngine::applyFilter(const std::string &filter)
{ {
if (filter.empty())
{
w.clearFilter();
w.clearFilterResults();
return;
}
try try
{ {
w.showAll(); w.showAll();

View File

@@ -740,6 +740,20 @@ std::string TagEditor::currentFilter()
void TagEditor::applyFilter(const std::string &filter) void TagEditor::applyFilter(const std::string &filter)
{ {
if (filter.empty())
{
if (w == Dirs)
{
Dirs->clearFilter();
Dirs->clearFilterResults();
}
else if (w == Tags)
{
Tags->clearFilter();
Tags->clearFilterResults();
}
return;
}
try try
{ {
if (w == Dirs) if (w == Dirs)