summaryrefslogtreecommitdiff
path: root/src/search/SearchModel.cpp
diff options
context:
space:
mode:
authorSimon 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)
commitbbfbb81086897d50b67bf1494ac150eb607add72 (patch)
tree80bab3ddb1f62f847f12947bc81fac2c091669b8 /src/search/SearchModel.cpp
parent8f8de875c6f7a68a3e47252a8653abb72fd398c1 (diff)
downloadpowder-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.cpp41
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)