Skip to content
Snippets Groups Projects
Commit 0b47f6a3 authored by Samuel Jones's avatar Samuel Jones
Browse files

Re #18826 Reinstate unique pointer IBatchPresenter in MainWindow

parent d929a0a3
No related branches found
No related tags found
No related merge requests found
...@@ -37,7 +37,7 @@ public: ...@@ -37,7 +37,7 @@ public:
m_instrumentPresenterFactory(std::move(instrumentPresenterFactory)), m_instrumentPresenterFactory(std::move(instrumentPresenterFactory)),
m_savePresenterFactory(std::move(savePresenterFactory)) {} m_savePresenterFactory(std::move(savePresenterFactory)) {}
std::shared_ptr<IBatchPresenter> make(IBatchView *view) override { std::unique_ptr<IBatchPresenter> make(IBatchView *view) override {
auto runsPresenter = m_runsPresenterFactory.make(view->runs()); auto runsPresenter = m_runsPresenterFactory.make(view->runs());
auto eventPresenter = m_eventPresenterFactory.make(view->eventHandling()); auto eventPresenter = m_eventPresenterFactory.make(view->eventHandling());
auto experimentPresenter = auto experimentPresenter =
...@@ -50,7 +50,7 @@ public: ...@@ -50,7 +50,7 @@ public:
experimentPresenter->experiment(), instrumentPresenter->instrument(), experimentPresenter->experiment(), instrumentPresenter->instrument(),
runsPresenter->mutableRunsTable(), eventPresenter->slicing()); runsPresenter->mutableRunsTable(), eventPresenter->slicing());
return std::make_shared<BatchPresenter>( return std::make_unique<BatchPresenter>(
view, std::move(model), std::move(runsPresenter), view, std::move(model), std::move(runsPresenter),
std::move(eventPresenter), std::move(experimentPresenter), std::move(eventPresenter), std::move(experimentPresenter),
std::move(instrumentPresenter), std::move(savePresenter)); std::move(instrumentPresenter), std::move(savePresenter));
......
...@@ -18,7 +18,7 @@ class IBatchView; ...@@ -18,7 +18,7 @@ class IBatchView;
class IBatchPresenterFactory { class IBatchPresenterFactory {
public: public:
virtual ~IBatchPresenterFactory() = default; virtual ~IBatchPresenterFactory() = default;
virtual std::shared_ptr<IBatchPresenter> make(IBatchView *view) = 0; virtual std::unique_ptr<IBatchPresenter> make(IBatchView *view) = 0;
}; };
} // namespace ISISReflectometry } // namespace ISISReflectometry
} // namespace CustomInterfaces } // namespace CustomInterfaces
......
...@@ -17,9 +17,9 @@ namespace ISISReflectometry { ...@@ -17,9 +17,9 @@ namespace ISISReflectometry {
BatchPresenter *Decoder::findBatchPresenter(const QtBatchView *gui, BatchPresenter *Decoder::findBatchPresenter(const QtBatchView *gui,
const QtMainWindowView &mwv) { const QtMainWindowView &mwv) {
for (auto &ipresenter : mwv.m_presenter->m_batchPresenters) { for (auto &ipresenter : mwv.m_presenter->m_batchPresenters) {
auto presenter = std::dynamic_pointer_cast<BatchPresenter>(ipresenter); auto presenter = dynamic_cast<BatchPresenter *>(ipresenter.get());
if (presenter->m_view == gui) { if (presenter->m_view == gui) {
return presenter.get(); return presenter;
} }
} }
return nullptr; return nullptr;
......
...@@ -14,9 +14,9 @@ namespace ISISReflectometry { ...@@ -14,9 +14,9 @@ namespace ISISReflectometry {
BatchPresenter *Encoder::findBatchPresenter(const QtBatchView *gui, BatchPresenter *Encoder::findBatchPresenter(const QtBatchView *gui,
const QtMainWindowView &mwv) { const QtMainWindowView &mwv) {
for (auto &ipresenter : mwv.m_presenter->m_batchPresenters) { for (auto &ipresenter : mwv.m_presenter->m_batchPresenters) {
auto presenter = std::dynamic_pointer_cast<BatchPresenter>(ipresenter); auto presenter = dynamic_cast<BatchPresenter *>(ipresenter.get());
if (presenter->m_view == gui) { if (presenter->m_view == gui) {
return presenter.get(); return presenter;
} }
} }
return nullptr; return nullptr;
......
...@@ -58,7 +58,7 @@ public: ...@@ -58,7 +58,7 @@ public:
protected: protected:
IMainWindowView *m_view; IMainWindowView *m_view;
IMessageHandler *m_messageHandler; IMessageHandler *m_messageHandler;
std::vector<std::shared_ptr<IBatchPresenter>> m_batchPresenters; std::vector<std::unique_ptr<IBatchPresenter>> m_batchPresenters;
std::unique_ptr<IBatchPresenterFactory> m_batchPresenterFactory; std::unique_ptr<IBatchPresenterFactory> m_batchPresenterFactory;
private: private:
......
...@@ -45,8 +45,8 @@ GNU_DIAG_OFF_SUGGEST_OVERRIDE ...@@ -45,8 +45,8 @@ GNU_DIAG_OFF_SUGGEST_OVERRIDE
class MockBatchPresenterFactory : public IBatchPresenterFactory { class MockBatchPresenterFactory : public IBatchPresenterFactory {
public: public:
MOCK_METHOD1(makeProxy, IBatchPresenter *(IBatchView *)); MOCK_METHOD1(makeProxy, IBatchPresenter *(IBatchView *));
std::shared_ptr<IBatchPresenter> make(IBatchView *view) { std::unique_ptr<IBatchPresenter> make(IBatchView *view) {
return std::shared_ptr<IBatchPresenter>(makeProxy(view)); return std::unique_ptr<IBatchPresenter>(makeProxy(view));
} }
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment