ES-DE/src/views/gamelist/IGameListView.cpp
Aloshi 139fc720ac Moved Guis from src/components to src/guis.
Renamed ComponentListComponent to ComponentGrid.
Changed some older files' #ifdefs to #pragma once to be more consistent.
2014-02-28 19:00:38 -06:00

52 lines
1.8 KiB
C++

#include "IGameListView.h"
#include "../../Window.h"
#include "../../guis/GuiMetaDataEd.h"
#include "../../guis/GuiMenu.h"
#include "../../guis/GuiFastSelect.h"
#include "../ViewController.h"
#include "../../Settings.h"
bool IGameListView::input(InputConfig* config, Input input)
{
// F3 to open metadata editor
if(config->getDeviceId() == DEVICE_KEYBOARD && input.id == SDLK_F3 && input.value != 0)
{
// open metadata editor
FileData* file = getCursor();
ScraperSearchParams p;
p.game = file;
p.system = file->getSystem();
mWindow->pushGui(new GuiMetaDataEd(mWindow, &file->metadata, file->metadata.getMDD(), p, file->getPath().filename().string(),
std::bind(&IGameListView::onFileChanged, this, file, FILE_METADATA_CHANGED), [file, this] {
boost::filesystem::remove(file->getPath()); //actually delete the file on the filesystem
file->getParent()->removeChild(file); //unlink it so list repopulations triggered from onFileChanged won't see it
onFileChanged(file, FILE_REMOVED); //tell the view
delete file; //free it
}));
Sound::getFromTheme(mTheme, getName(), "menuOpen")->play();
return true;
// Ctrl-R to reload a view when debugging
}else if(Settings::getInstance()->getBool("DEBUG") && config->getDeviceId() == DEVICE_KEYBOARD &&
(SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL)) && input.id == SDLK_r && input.value != 0)
{
LOG(LogDebug) << "reloading view";
mWindow->getViewController()->reloadGameListView(this, true);
return true;
// select opens the fast select GUI
}else if(config->isMappedTo("select", input) && input.value != 0)
{
// open fast select
mWindow->pushGui(new GuiFastSelect(mWindow, this));
return true;
}
return GuiComponent::input(config, input);
}
void IGameListView::setTheme(const std::shared_ptr<ThemeData>& theme)
{
mTheme = theme;
onThemeChanged(theme);
}