diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-06 23:45:24 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-06 23:45:24 (GMT) |
| commit | bbfbb81086897d50b67bf1494ac150eb607add72 (patch) | |
| tree | 80bab3ddb1f62f847f12947bc81fac2c091669b8 /src/search/SearchModel.cpp | |
| parent | 8f8de875c6f7a68a3e47252a8653abb72fd398c1 (diff) | |
| download | powder-bbfbb81086897d50b67bf1494ac150eb607add72.zip powder-bbfbb81086897d50b67bf1494ac150eb607add72.tar.gz | |
Confirmation Dialogue, Save selection and multi-delete
Diffstat (limited to 'src/search/SearchModel.cpp')
| -rw-r--r-- | src/search/SearchModel.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/search/SearchModel.cpp b/src/search/SearchModel.cpp index 4a410c3..e1d9849 100644 --- a/src/search/SearchModel.cpp +++ b/src/search/SearchModel.cpp @@ -37,6 +37,8 @@ void SearchModel::UpdateSaveList(int pageNumber, std::string query) currentPage = pageNumber; notifySaveListChanged(); notifyPageChanged(); + selected.clear(); + notifySelectedChanged(); //Threading if(!updateSaveListWorking) @@ -94,6 +96,36 @@ void SearchModel::AddObserver(SearchView * observer) observer->NotifyShowOwnChanged(this); } +void SearchModel::SelectSave(int saveID) +{ + for(int i = 0; i < selected.size(); i++) + { + if(selected[i]==saveID) + { + return; + } + } + selected.push_back(saveID); + notifySelectedChanged(); +} + +void SearchModel::DeselectSave(int saveID) +{ + bool changed = false; +restart: + for(int i = 0; i < selected.size(); i++) + { + if(selected[i]==saveID) + { + selected.erase(selected.begin()+i); + changed = true; + goto restart; //Just ensure all cases are removed. + } + } + if(changed) + notifySelectedChanged(); +} + void SearchModel::notifySaveListChanged() { for(int i = 0; i < observers.size(); i++) @@ -130,6 +162,15 @@ void SearchModel::notifyShowOwnChanged() } } +void SearchModel::notifySelectedChanged() +{ + for(int i = 0; i < observers.size(); i++) + { + SearchView* cObserver = observers[i]; + cObserver->NotifySelectedChanged(this); + } +} + SearchModel::~SearchModel() { if(loadedSave) |
