diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-07-21 12:09:59 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-07-21 12:09:59 (GMT) |
| commit | 5bf0a084ace0e6b673efa4552b40de8b36e0668e (patch) | |
| tree | 8683ff6c11167cb3b95f7b4ae65269b3cb6dce98 /src/localbrowser/LocalBrowserController.cpp | |
| parent | 78b1ffb11dc78130cdb120acf37d5930807bff6c (diff) | |
| download | powder-5bf0a084ace0e6b673efa4552b40de8b36e0668e.zip powder-5bf0a084ace0e6b673efa4552b40de8b36e0668e.tar.gz | |
Prevent race condition when reloading local stamps, fix task so "after()" gets called and correct stamp name so they actually get deleted"
Diffstat (limited to 'src/localbrowser/LocalBrowserController.cpp')
| -rw-r--r-- | src/localbrowser/LocalBrowserController.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/localbrowser/LocalBrowserController.cpp b/src/localbrowser/LocalBrowserController.cpp index 47f02bb..28a7c64 100644 --- a/src/localbrowser/LocalBrowserController.cpp +++ b/src/localbrowser/LocalBrowserController.cpp @@ -65,8 +65,9 @@ void LocalBrowserController::removeSelectedC() class RemoveSavesTask : public Task { std::vector<std::string> saves; + LocalBrowserController * c; public: - RemoveSavesTask(std::vector<std::string> saves_) { saves = saves_; } + RemoveSavesTask(LocalBrowserController * c, std::vector<std::string> saves_) : c(c) { saves = saves_; } virtual bool doWork() { for(int i = 0; i < saves.size(); i++) @@ -80,10 +81,18 @@ void LocalBrowserController::removeSelectedC() } return true; } + virtual void after() + { + c->RefreshSavesList(); + } }; std::vector<std::string> selected = browserModel->GetSelected(); - new TaskWindow("Removing saves", new RemoveSavesTask(selected)); + new TaskWindow("Removing saves", new RemoveSavesTask(this, selected)); +} + +void LocalBrowserController::RefreshSavesList() +{ ClearSelection(); browserModel->UpdateSavesList(browserModel->GetPageNum()); } |
