abstract shared parts of switchTo methods away

This commit is contained in:
Andrzej Rybczak
2012-09-15 22:27:50 +02:00
parent f7dba0a578
commit 14587cb4ec
46 changed files with 301 additions and 463 deletions

View File

@@ -29,6 +29,7 @@
#include "settings.h"
#include "statusbar.h"
#include "utility/comparators.h"
#include "screen_switcher.h"
SelectedItemsAdder *mySelectedItemsAdder;
@@ -103,7 +104,6 @@ void SelectedItemsAdder::switchTo()
{
using Global::myScreen;
assert(myScreen != this);
auto hs = hasSongs(myScreen);
if (!hs || !hs->allowsSelection())
return;
@@ -115,15 +115,10 @@ void SelectedItemsAdder::switchTo()
Statusbar::msg("List of selected items is empty");
return;
}
if (hasToBeResized)
resize();
populatePlaylistSelector(myScreen);
SwitchTo::execute(this);
// default to main window
w = &m_playlist_selector;
myScreen = this;
}
void SelectedItemsAdder::resize()
@@ -141,10 +136,10 @@ void SelectedItemsAdder::resize()
(COLS-m_position_selector_width)/2,
MainStartY+(MainHeight-m_position_selector_height)/2
);
if (m_old_screen && m_old_screen->hasToBeResized) // resize background window
if (previousScreen() && previousScreen()->hasToBeResized) // resize background window
{
m_old_screen->resize();
m_old_screen->refresh();
previousScreen()->resize();
previousScreen()->refresh();
}
hasToBeResized = 0;
}
@@ -162,7 +157,7 @@ void SelectedItemsAdder::refresh()
std::wstring SelectedItemsAdder::title()
{
return m_old_screen->title();
return previousScreen()->title();
}
void SelectedItemsAdder::enterPressed()
@@ -187,7 +182,6 @@ void SelectedItemsAdder::mouseButtonPressed(MEVENT me)
void SelectedItemsAdder::populatePlaylistSelector(BasicScreen *old_screen)
{
typedef SelectedItemsAdder Self;
m_old_screen = old_screen;
m_playlist_selector.reset();
m_playlist_selector.clear();
if (old_screen != myPlaylist)
@@ -245,7 +239,7 @@ void SelectedItemsAdder::addToExistingPlaylist(const std::string &playlist) cons
if (Mpd.CommitCommandsList())
{
Statusbar::msg("Selected item(s) added to playlist \"%s\"", playlist.c_str());
m_old_screen->switchTo();
switchToPreviousScreen();
}
}
@@ -301,7 +295,7 @@ void SelectedItemsAdder::addAfterHighlightedSong() const
void SelectedItemsAdder::cancel()
{
if (isActiveWindow(m_playlist_selector))
m_old_screen->switchTo();
switchToPreviousScreen();
else if (isActiveWindow(m_position_selector))
w = &m_playlist_selector;
}
@@ -309,7 +303,7 @@ void SelectedItemsAdder::cancel()
void SelectedItemsAdder::exitSuccessfully() const
{
Statusbar::msg("Selected items added");
m_old_screen->switchTo();
switchToPreviousScreen();
}
void SelectedItemsAdder::setDimensions()