summaryrefslogtreecommitdiff
path: root/src/search
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-04 15:39:24 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-04 15:39:24 (GMT)
commitf2f4278932e0752c22d15185ce70198077d0b5fd (patch)
treed53cc28ba9a9020fc851fb3d89803a52a7d06436 /src/search
parent055832270979cdb027c0c30a74cf82c23df13689 (diff)
downloadpowder-f2f4278932e0752c22d15185ce70198077d0b5fd.zip
powder-f2f4278932e0752c22d15185ce70198077d0b5fd.tar.gz
Better exiting from windows (Escape and Enter) and 'q' for exit, fixes #35 and #60
Diffstat (limited to 'src/search')
-rw-r--r--src/search/SearchController.cpp9
-rw-r--r--src/search/SearchModel.cpp11
2 files changed, 18 insertions, 2 deletions
diff --git a/src/search/SearchController.cpp b/src/search/SearchController.cpp
index 13a252a..f127354 100644
--- a/src/search/SearchController.cpp
+++ b/src/search/SearchController.cpp
@@ -20,8 +20,13 @@ public:
{
if(cc->activePreview->GetDoOpen() && cc->activePreview->GetSave())
{
- cc->searchModel->SetLoadedSave(new SaveInfo(*(cc->activePreview->GetSave())));
+ cc->searchModel->SetLoadedSave(cc->activePreview->GetSave());
}
+ else
+ {
+ cc->searchModel->SetLoadedSave(NULL);
+ }
+
}
};
@@ -161,6 +166,8 @@ void SearchController::Selected(int saveID, bool selected)
void SearchController::OpenSave(int saveID)
{
+ if(activePreview)
+ delete activePreview;
activePreview = new PreviewController(saveID, new OpenCallback(this));
ui::Engine::Ref().ShowWindow(activePreview->GetView());
}
diff --git a/src/search/SearchModel.cpp b/src/search/SearchModel.cpp
index 112adba..9449673 100644
--- a/src/search/SearchModel.cpp
+++ b/src/search/SearchModel.cpp
@@ -57,7 +57,16 @@ void SearchModel::UpdateSaveList(int pageNumber, std::string query)
void SearchModel::SetLoadedSave(SaveInfo * save)
{
- loadedSave = save;
+ if(loadedSave != save && loadedSave)
+ delete loadedSave;
+ if(save)
+ {
+ loadedSave = new SaveInfo(*save);
+ }
+ else
+ {
+ loadedSave = NULL;
+ }
}
SaveInfo * SearchModel::GetLoadedSave(){