Skip to content

Commit

Permalink
provide generic init method in MainLoopEntity
Browse files Browse the repository at this point in the history
  • Loading branch information
chrxh committed Oct 22, 2024
1 parent 03cde91 commit ac93ecc
Show file tree
Hide file tree
Showing 45 changed files with 152 additions and 161 deletions.
6 changes: 2 additions & 4 deletions source/Gui/AlienDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,11 @@
#include "DelayedExecutionController.h"

template <typename... Dependencies>
class AlienDialog : public MainLoopEntity
class AlienDialog : public MainLoopEntity<Dependencies...>
{
public:
AlienDialog(std::string const& title);

void init(Dependencies... dependencies);

virtual void open();

protected:
Expand All @@ -29,6 +27,7 @@ class AlienDialog : public MainLoopEntity
virtual void close();

private:
void init(Dependencies... dependencies) override;
void process() override;
void shutdown() override;

Expand All @@ -55,7 +54,6 @@ AlienDialog<Dependencies...>::AlienDialog(std::string const& title)
template <typename ... Dependencies>
void AlienDialog<Dependencies...>::init(Dependencies... dependencies)
{
MainLoopEntityController::get().registerObject(this);
initIntern(dependencies...);
}

Expand Down
6 changes: 2 additions & 4 deletions source/Gui/AlienWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@
#include "WindowController.h"

template<typename ...Dependencies>
class AlienWindow : public MainLoopEntity
class AlienWindow : public MainLoopEntity<Dependencies...>
{
public:
AlienWindow(std::string const& title, std::string const& settingsNode, bool defaultOn);

void init(Dependencies... dependencies);

bool isOn() const;
void setOn(bool value);

Expand All @@ -36,6 +34,7 @@ class AlienWindow : public MainLoopEntity
std::string _settingsNode;

private:
void init(Dependencies... dependencies) override;
void process() override;
void shutdown() override;
};
Expand All @@ -55,7 +54,6 @@ template <typename ... Dependencies>
void AlienWindow<Dependencies...>::init(Dependencies... dependencies)
{
_on = GlobalSettings::get().getBool(_settingsNode + ".active", _defaultOn);
MainLoopEntityController::get().registerObject(this);
initIntern(dependencies...);
}

Expand Down
4 changes: 1 addition & 3 deletions source/Gui/AutosaveController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,11 @@ namespace
auto constexpr MinutesForAutosave = 40;
}

void AutosaveController::init(SimulationFacade const& simulationFacade)
void AutosaveController::init(SimulationFacade simulationFacade)
{
_simulationFacade = simulationFacade;
_startTimePoint = std::chrono::steady_clock::now();
_on = GlobalSettings::get().getBool("controllers.auto save.active", true);

MainLoopEntityController::get().registerObject(this);
}

void AutosaveController::shutdown()
Expand Down
7 changes: 3 additions & 4 deletions source/Gui/AutosaveController.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,21 @@
#include <chrono>

#include "Base/Singleton.h"
#include "EngineInterface/Definitions.h"
#include "EngineInterface/SimulationFacade.h"

#include "Definitions.h"
#include "MainLoopEntity.h"

class AutosaveController : public MainLoopEntity
class AutosaveController : public MainLoopEntity<SimulationFacade>
{
MAKE_SINGLETON(AutosaveController);

public:
void init(SimulationFacade const& simulationFacade);

bool isOn() const;
void setOn(bool value);

private:
void init(SimulationFacade simulationFacade) override;
void process() override;
void shutdown() override;

Expand Down
2 changes: 1 addition & 1 deletion source/Gui/BrowserWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ void BrowserWindow::initIntern(SimulationFacade simulationFacade, PersisterFacad

_lastSessionData.load(getAllRawTOs());

EditSimulationDialog::get().init();
EditSimulationDialog::get().setup();
}

void BrowserWindow::shutdownIntern()
Expand Down
7 changes: 4 additions & 3 deletions source/Gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ PUBLIC
LogWindow.cpp
LogWindow.h
Main.cpp
MainLoopEntity.cpp
MainLoopEntity.h
MainLoopEntityController.cpp
MainLoopEntityController.h
MainWindow.cpp
MainWindow.h
MassOperationsDialog.cpp
Expand Down Expand Up @@ -105,9 +109,6 @@ PUBLIC
Shader.h
ShaderWindow.cpp
ShaderWindow.h
MainLoopEntityController.cpp
MainLoopEntityController.h
MainLoopEntity.h
SimulationInteractionController.cpp
SimulationInteractionController.h
SimulationParametersWindow.cpp
Expand Down
5 changes: 0 additions & 5 deletions source/Gui/DelayedExecutionController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ void DelayedExecutionController::process()
}
}

void DelayedExecutionController::init()
{
MainLoopEntityController::get().registerObject(this);
}

void DelayedExecutionController::executeLater(std::function<void()> const& execFunc)
{
_execDatas.emplace_back(execFunc, 2);
Expand Down
4 changes: 2 additions & 2 deletions source/Gui/DelayedExecutionController.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
#include "Definitions.h"
#include "MainLoopEntity.h"

class DelayedExecutionController : public MainLoopEntity
class DelayedExecutionController : public MainLoopEntity<>
{
MAKE_SINGLETON(DelayedExecutionController);

public:
void init();

void executeLater(std::function<void(void)> const& execFunc);

private:
void init() override {}
void process() override;
void shutdown() override {}

Expand Down
16 changes: 7 additions & 9 deletions source/Gui/EditorController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,16 @@ namespace
auto const MaxInspectorWindowsToAdd = 10;
}

void EditorController::init(SimulationFacade const& simulationFacade)
void EditorController::init(SimulationFacade simulationFacade)
{
_simulationFacade = simulationFacade;

SelectionWindow::get().init();
EditorModel::get().init(_simulationFacade);
GenomeEditorWindow::get().init(_simulationFacade);
PatternEditorWindow::get().init(_simulationFacade);
CreatorWindow::get().init(_simulationFacade);
MultiplierWindow::get().init(_simulationFacade);

MainLoopEntityController::get().registerObject(this);
SelectionWindow::get().setup();
EditorModel::get().setup(_simulationFacade);
GenomeEditorWindow::get().setup(_simulationFacade);
PatternEditorWindow::get().setup(_simulationFacade);
CreatorWindow::get().setup(_simulationFacade);
MultiplierWindow::get().setup(_simulationFacade);
}

bool EditorController::isOn() const
Expand Down
6 changes: 3 additions & 3 deletions source/Gui/EditorController.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@

#include "Base/Definitions.h"
#include "Base/Singleton.h"
#include "EngineInterface/SimulationFacade.h"
#include "EngineInterface/Descriptions.h"

#include "Definitions.h"
#include "MainLoopEntity.h"

class EditorController : public MainLoopEntity
class EditorController : public MainLoopEntity<SimulationFacade>
{
MAKE_SINGLETON(EditorController);

public:
void init(SimulationFacade const& simulationFacade);

bool isOn() const;
void setOn(bool value);

Expand All @@ -39,6 +38,7 @@ class EditorController : public MainLoopEntity
void onAccelerateSelectedObjects(RealVector2D const& viewPos, RealVector2D const& prevWorldPos);

private:
void init(SimulationFacade simulationFacade) override;
void process() override;
void shutdown() override {}

Expand Down
2 changes: 1 addition & 1 deletion source/Gui/EditorModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "EngineInterface/DescriptionEditService.h"
#include "EngineInterface/SimulationFacade.h"

void EditorModel::init(SimulationFacade const& simulationFacade)
void EditorModel::setup(SimulationFacade const& simulationFacade)
{
_simulationFacade = simulationFacade;

Expand Down
2 changes: 1 addition & 1 deletion source/Gui/EditorModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class EditorModel
MAKE_SINGLETON(EditorModel);

public:
void init(SimulationFacade const& simulationFacade);
void setup(SimulationFacade const& simulationFacade);

SelectionShallowData const& getSelectionShallowData() const;
void update();
Expand Down
4 changes: 1 addition & 3 deletions source/Gui/FileTransferController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,11 @@ namespace
auto constexpr FileTransferSenderId = "FileTransfer";
}

void FileTransferController::init(PersisterFacade const& persisterFacade, SimulationFacade const& simulationFacade)
void FileTransferController::init(PersisterFacade persisterFacade, SimulationFacade simulationFacade)
{
_persisterFacade = persisterFacade;
_simulationFacade = simulationFacade;
_openSimulationProcessor = _TaskProcessor::createTaskProcessor(_persisterFacade);

MainLoopEntityController::get().registerObject(this);
}

void FileTransferController::onOpenSimulation()
Expand Down
10 changes: 4 additions & 6 deletions source/Gui/FileTransferController.h
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
#pragma once

#include "Base/Singleton.h"
#include "EngineInterface/Definitions.h"
#include "PersisterInterface/Definitions.h"
#include "PersisterInterface/PersisterRequestId.h"
#include "EngineInterface/SimulationFacade.h"
#include "PersisterInterface/PersisterFacade.h"

#include "Definitions.h"
#include "MainLoopEntity.h"

class FileTransferController : public MainLoopEntity
class FileTransferController : public MainLoopEntity<PersisterFacade, SimulationFacade>
{
MAKE_SINGLETON(FileTransferController);

public:
void init(PersisterFacade const& persisterFacade, SimulationFacade const& simulationFacade);

void onOpenSimulation();
void onSaveSimulation();

private:
void init(PersisterFacade persisterFacade, SimulationFacade simulationFacade) override;
void process() override;
void shutdown() override {}

Expand Down
5 changes: 0 additions & 5 deletions source/Gui/GenericFileDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@
#include "MainLoopEntityController.h"
#include "WindowController.h"

void GenericFileDialog::init()
{
MainLoopEntityController::get().registerObject(this);
}

void GenericFileDialog::showOpenFileDialog(
std::string const& title,
std::string const& filter,
Expand Down
5 changes: 2 additions & 3 deletions source/Gui/GenericFileDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@
#include "Definitions.h"
#include "MainLoopEntity.h"

class GenericFileDialog : public MainLoopEntity
class GenericFileDialog : public MainLoopEntity<>
{
MAKE_SINGLETON(GenericFileDialog);
public:
void init();

void showOpenFileDialog(
std::string const& title,
std::string const& filter,
Expand All @@ -27,6 +25,7 @@ class GenericFileDialog : public MainLoopEntity
std::function<void(std::filesystem::path const&)> const& actionFunc);

private:
void init() override {}
void process() override;
void shutdown() override {}

Expand Down
2 changes: 1 addition & 1 deletion source/Gui/GenomeEditorWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ void GenomeEditorWindow::initIntern(SimulationFacade simulationFacade)
}
_startingPath = GlobalSettings::get().getString("windows.genome editor.starting path", path.string());
_previewHeight = GlobalSettings::get().getFloat("windows.genome editor.preview height", scale(PreviewHeight));
ChangeColorDialog::get().init([&] { return getCurrentGenome(); }, [&](GenomeDescription const& genome) { setCurrentGenome(genome); });
ChangeColorDialog::get().setup([&] { return getCurrentGenome(); }, [&](GenomeDescription const& genome) { setCurrentGenome(genome); });
}

void GenomeEditorWindow::shutdownIntern()
Expand Down
2 changes: 1 addition & 1 deletion source/Gui/ImageToPatternDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include "GenericFileDialog.h"


void ImageToPatternDialog::init(SimulationFacade const& simulationFacade)
void ImageToPatternDialog::init(SimulationFacade simulationFacade)
{
_simulationFacade = simulationFacade;

Expand Down
8 changes: 3 additions & 5 deletions source/Gui/ImageToPatternDialog.h
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
#pragma once

#include "Base/Singleton.h"
#include "EngineInterface/Definitions.h"
#include "EngineInterface/SimulationFacade.h"

#include "Definitions.h"
#include "MainLoopEntity.h"

class ImageToPatternDialog : public MainLoopEntity
class ImageToPatternDialog : public MainLoopEntity<SimulationFacade>
{
MAKE_SINGLETON(ImageToPatternDialog);

public:

void init(SimulationFacade const& simulationFacade);

void show();

private:
void init(SimulationFacade simulationFacade) override;
void shutdown() override;
void process() override {}

Expand Down
6 changes: 2 additions & 4 deletions source/Gui/LoginController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include "BrowserWindow.h"
#include "MainLoopEntityController.h"

void LoginController::init(SimulationFacade const& simulationFacade, PersisterFacade const& persisterFacade)
void LoginController::init(SimulationFacade simulationFacade, PersisterFacade persisterFacade)
{
_simulationFacade = simulationFacade;
_persisterFacade = persisterFacade;
Expand All @@ -27,9 +27,7 @@ void LoginController::init(SimulationFacade const& simulationFacade, PersisterFa
_password = settings.getString("dialogs.login.password", "");
onLogin();
}

MainLoopEntityController::get().registerObject(this);
}
}

void LoginController::shutdown()
{
Expand Down
Loading

0 comments on commit ac93ecc

Please sign in to comment.