From b299806a905fa96efc902161c43cc46d5c38df90 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sat, 25 Aug 2012 20:41:17 +0200 Subject: [PATCH] actions: define DisableFilter in terms of ApplyFilter --- src/actions.cpp | 28 ++++++++++++---------------- src/actions.h | 1 + 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/actions.cpp b/src/actions.cpp index 16a8e1c3..1f9d1e46 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -1972,14 +1972,18 @@ void ReversePlaylist::Run() myPlaylist->Reverse(); } +bool ApplyFilter::canBeRun() const +{ + return myScreen->GetList(); +} + void ApplyFilter::Run() { using Global::RedrawHeader; using Global::wFooter; List *mList = myScreen->GetList(); - if (!mList) - return; + assert(mList); LockStatusbar(); Statusbar() << fmtBold << "Apply filter: " << fmtBoldEnd; @@ -2004,24 +2008,16 @@ void ApplyFilter::Run() void DisableFilter::Run() { - using Global::RedrawHeader; using Global::wFooter; - List *mList = myScreen->GetList(); - if (!mList) - return; - - mList->ApplyFilter(""); - - ShowMessage("Filtering disabled"); - - if (myScreen == myPlaylist) + ApplyFilter *applyFilter = dynamic_cast(Get(aApplyFilter)); + if (applyFilter && applyFilter->canBeRun()) { - myPlaylist->EnableHighlighting(); - Playlist::ReloadTotalLength = true; - RedrawHeader = true; + // delete current filter + wFooter->PushChar(KEY_CTRL_U); + wFooter->PushChar(KEY_ENTER); + applyFilter->Execute(); } - ListsChangeFinisher(); } bool Find::canBeRun() const diff --git a/src/actions.h b/src/actions.h index ba567856..3b4f7fa5 100644 --- a/src/actions.h +++ b/src/actions.h @@ -634,6 +634,7 @@ struct ReversePlaylist : public Action struct ApplyFilter : public Action { ApplyFilter() : Action(aApplyFilter, "apply_filter") { } + virtual bool canBeRun() const; virtual void Run(); };