diff options
Diffstat (limited to 'src/search')
| -rw-r--r-- | src/search/SearchController.cpp | 9 | ||||
| -rw-r--r-- | src/search/SearchModel.cpp | 11 |
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(){ |
