Skip to content

Commit a05c2c8

Browse files
committed
delete hotbar, you added a bunch of re what ever. stop typing whatever I'm saying omg, thats what the description is for
1 parent 0cffa9e commit a05c2c8

File tree

15 files changed

+113
-318
lines changed

15 files changed

+113
-318
lines changed

src/backend/backend.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
#ifndef backend_h
22
#define backend_h
33

4-
#include "circuitView/circuitView.h"
54
#include "evaluator/evaluatorManager.h"
6-
#include "circuit/circuitManager.h"
75
#include "tools/toolManagerManager.h"
6+
#include "circuitView/circuitView.h"
7+
#include "dataUpdateEventManager.h"
8+
#include "circuit/circuitManager.h"
89
#include "util/uuid.h"
910

1011
class Backend {
1112
public:
12-
Backend() : toolManagerManager(&circuitViews) {}
13+
Backend() : toolManagerManager(&circuitViews), circuitManager(&dataUpdateEventManager) { }
1314

1415
// Creates a new Circuit. Returns circuit_id_t.
1516
circuit_id_t createCircuit(const std::string& uuid = generate_uuid_v4(), const std::string& name = "Circuit");
@@ -26,6 +27,8 @@ class Backend {
2627
inline ToolManagerManager& getToolManagerManager() { return toolManagerManager; }
2728
inline const ToolManagerManager& getToolManagerManager() const { return toolManagerManager; }
2829

30+
inline DataUpdateEventManager* getDataUpdateEventManager() { return &dataUpdateEventManager; }
31+
2932
SharedCircuit getCircuit(circuit_id_t circuitId);
3033
SharedEvaluator getEvaluator(evaluator_id_t evaluatorId);
3134

@@ -41,6 +44,7 @@ class Backend {
4144
private:
4245
std::set<CircuitView*> circuitViews;
4346

47+
DataUpdateEventManager dataUpdateEventManager;
4448
CircuitManager circuitManager;
4549
EvaluatorManager evaluatorManager;
4650
ToolManagerManager toolManagerManager;

src/backend/circuit/circuitManager.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
class CircuitManager {
99
public:
10+
CircuitManager(DataUpdateEventManager* dataUpdateEventManager) : dataUpdateEventManager(dataUpdateEventManager), blockDataManager(dataUpdateEventManager) {}
11+
1012
inline const BlockDataManager* getBlockDataManager() const { return &blockDataManager; }
1113
inline const CircuitBlockDataManager* getCircuitBlockDataManager() const { return &circuitBlockDataManager; }
1214

@@ -27,10 +29,13 @@ class CircuitManager {
2729
blockData->setWidth(2);
2830
blockData->setHeight(2);
2931

32+
dataUpdateEventManager->sendEvent("blockDataUpdate");
33+
3034
// blockData->trySetConnectionOutput(Vector(0, 0), 0);
3135

3236
// Circuit Block Data
3337
circuitBlockDataManager.newCircuitBlockData(circuitId, blockType);
38+
3439
return blockType;
3540
}
3641

@@ -72,6 +77,7 @@ class CircuitManager {
7277

7378
BlockDataManager blockDataManager;
7479
CircuitBlockDataManager circuitBlockDataManager;
80+
DataUpdateEventManager* dataUpdateEventManager;
7581

7682
circuit_id_t lastId = 0;
7783
std::map<circuit_id_t, SharedCircuit> circuits;

src/backend/container/block/blockDataManager.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#ifndef blockDataManager_h
22
#define blockDataManager_h
33

4+
#include "../../dataUpdateEventManager.h"
45
#include "blockData.h"
56

67
class BlockDataManager {
78
public:
8-
BlockDataManager() {
9+
BlockDataManager(DataUpdateEventManager* dataUpdateEventManager) : dataUpdateEventManager(dataUpdateEventManager) {
910
// load default data
1011
blockData.resize(13);
1112
getBlockData(BlockType::AND)->setName("And");
@@ -43,10 +44,13 @@ class BlockDataManager {
4344
getBlockData(BlockType::LIGHT)->setName("Light");
4445
getBlockData(BlockType::LIGHT)->setDefaultData(false);
4546
getBlockData(BlockType::LIGHT)->trySetConnectionInput(Vector(0, 0), 0);
47+
48+
dataUpdateEventManager->sendEvent("blockDataUpdate");
4649
}
4750

4851
inline BlockType addBlock() noexcept {
4952
blockData.emplace_back();
53+
dataUpdateEventManager->sendEvent("blockDataUpdate");
5054
return (BlockType) blockData.size();
5155
}
5256

@@ -130,6 +134,7 @@ class BlockDataManager {
130134

131135
private:
132136
std::vector<BlockData> blockData;
137+
DataUpdateEventManager* dataUpdateEventManager;
133138
};
134139

135140
#endif /* blockDataManager_h */
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include "dataUpdateEventManager.h"
2+
3+
DataUpdateEventReceiver::DataUpdateEventReceiver(DataUpdateEventManager* eventManager) : eventManager(eventManager) {
4+
if (eventManager) eventManager->DataUpdateeventReceivers.emplace(this);
5+
}
6+
7+
DataUpdateEventReceiver::DataUpdateEventReceiver(const DataUpdateEventReceiver& other) : eventManager(other.eventManager) {
8+
if (eventManager) eventManager->DataUpdateeventReceivers.emplace(this);
9+
}
10+
11+
DataUpdateEventReceiver& DataUpdateEventReceiver::operator=(const DataUpdateEventReceiver& other) {
12+
if (this != &other) {
13+
eventManager = other.eventManager;
14+
if (eventManager) eventManager->DataUpdateeventReceivers.emplace(this);
15+
functions = other.functions;
16+
}
17+
return *this;
18+
};
19+
20+
DataUpdateEventReceiver::~DataUpdateEventReceiver() {
21+
eventManager->DataUpdateeventReceivers.erase(this);
22+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#ifndef dataUpdateEventManager_h
2+
#define dataUpdateEventManager_h
3+
4+
class DataUpdateEventManager;
5+
6+
class DataUpdateEventReceiver {
7+
friend class DataUpdateEventManager;
8+
public:
9+
DataUpdateEventReceiver(DataUpdateEventManager* eventManager = nullptr);
10+
DataUpdateEventReceiver(const DataUpdateEventReceiver& other);
11+
DataUpdateEventReceiver& operator=(const DataUpdateEventReceiver& other);
12+
~DataUpdateEventReceiver();
13+
14+
void linkFunction(const std::string& eventName, std::function<void()> function) { functions[eventName] = function; }
15+
16+
private:
17+
std::map<std::string, std::function<void()>> functions;
18+
DataUpdateEventManager* eventManager = nullptr;
19+
};
20+
21+
class DataUpdateEventManager {
22+
friend class DataUpdateEventReceiver;
23+
public:
24+
void sendEvent(const std::string& eventName) {
25+
for (DataUpdateEventReceiver* DataUpdateeventReceiver : DataUpdateeventReceivers) {
26+
for (auto pair : DataUpdateeventReceiver->functions) {
27+
pair.second();
28+
}
29+
}
30+
}
31+
32+
private:
33+
std::set<DataUpdateEventReceiver*> DataUpdateeventReceivers;
34+
35+
};
36+
37+
#endif /* dataUpdateEventManager_h */

src/gui/mainWindow.cpp

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include "backend/circuitView/tools/other/previewPlacementTool.h"
1515
#include "backend/circuit/validateCircuit.h"
1616
#include "selection/selectorWindow.h"
17-
#include "selection/hotbarWindow.h"
1817
#include "circuitViewWidget.h"
1918
#include "mainWindow.h"
2019

@@ -49,11 +48,6 @@ MainWindow::MainWindow(KDDockWidgets::MainWindowOptions options)
4948
openNewSelectorWindow();
5049

5150
setUpMenuBar();
52-
53-
updateLoopTimer = new QTimer(this);
54-
updateLoopTimer->setInterval((int)(updateInterval * 1000.0f));
55-
updateLoopTimer->start();
56-
connect(updateLoopTimer, &QTimer::timeout, this, &MainWindow::updateLoop);
5751
}
5852

5953
// Utility methods
@@ -298,23 +292,15 @@ void MainWindow::exportProject() {
298292
}
299293

300294
void MainWindow::openNewSelectorWindow() {
301-
SelectorWindow* selector = new SelectorWindow(backend.getBlockDataManager());
295+
SelectorWindow* selector = new SelectorWindow(backend.getBlockDataManager(), backend.getDataUpdateEventManager());
302296
selector->updateBlockList();
303297
connect(selector, &SelectorWindow::selectedBlockChange, this, &MainWindow::setBlock);
304298
connect(selector, &SelectorWindow::selectedToolChange, this, &MainWindow::setTool);
305299
connect(selector, &SelectorWindow::selectedModeChange, this, &MainWindow::setMode);
306300
connect(this, &MainWindow::toolModeOptionsChanged, selector, &SelectorWindow::updateToolModeOptions);
307-
connect(this, &MainWindow::updateBlockList, selector, &SelectorWindow::updateBlockList);
308301
addDock(selector, KDDockWidgets::Location_OnLeft);
309302
}
310303

311-
// void MainWindow::openNewHotbarWindow() {
312-
// HotbarWindow* selector = new HotbarWindow();
313-
// connect(selector, &HotbarWindow::selectedBlockChange, this, &MainWindow::setBlock);
314-
// connect(selector, &HotbarWindow::selectedToolChange, this, &MainWindow::setTool);
315-
// addDock(selector, KDDockWidgets::Location_OnBottom);
316-
// }
317-
318304
CircuitViewWidget* MainWindow::openNewCircuitViewWindow() {
319305
QWidget* w = new QWidget();
320306
Ui::CircuitViewUi* circuitViewUi = new Ui::CircuitViewUi();
@@ -364,7 +350,3 @@ void MainWindow::setTool(std::string tool) {
364350
void MainWindow::setMode(std::string mode) {
365351
backend.getToolManagerManager().setMode(mode);
366352
}
367-
368-
void MainWindow::updateLoop() {
369-
emit updateBlockList();
370-
}

src/gui/mainWindow.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ class MainWindow : public KDDockWidgets::QtWidgets::MainWindow {
3535
void loadCircuitInto(CircuitView* circuitWidget);
3636
void exportProject();
3737
void openNewSelectorWindow();
38-
void openNewHotbarWindow();
3938

4039
private:
4140
// utility
@@ -48,7 +47,6 @@ class MainWindow : public KDDockWidgets::QtWidgets::MainWindow {
4847
// update loop
4948
QTimer* updateLoopTimer;
5049
const float updateInterval = 0.1f;
51-
void updateLoop();
5250

5351
QGraphicsScene* scene;
5452
QMenu* saveSubMenu;
@@ -63,7 +61,6 @@ class MainWindow : public KDDockWidgets::QtWidgets::MainWindow {
6361

6462
signals:
6563
void toolModeOptionsChanged(const std::vector<std::string>* modes);
66-
void updateBlockList();
6764
};
6865

6966
#endif /* mainWindow_h */

src/gui/selection/BAD_hotbar.ui

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/gui/selection/hotbar.ui

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)