diff --git a/.gitignore b/.gitignore index bc5d335c04339f406e86c950ca358ccf620557f8..99c11f8ebdf7a0a8d4f2bb69ebf56f4cd2615e17 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ SkywardHub.pro.user SkywardHub.pro.user.* SkywardHub.pro.user.* +.build diff --git a/Components/ErrorDisplayer/errordisplayer.cpp b/Components/ErrorDisplayer/errordisplayer.cpp index 436f95304e1f7bd7951d4d06c934442333deea10..79aa960ed2c7661322349889e13d95e71c55a616 100644 --- a/Components/ErrorDisplayer/errordisplayer.cpp +++ b/Components/ErrorDisplayer/errordisplayer.cpp @@ -34,26 +34,4 @@ void ErrorDisplayer::removeError(Error* error){ void ErrorDisplayer::reposition() { adjustSize(); move(parent->width() - width(), parent->height() - height()); -} - - - -QMap<QObject*, ErrorDisplayer*> ErrorDisplayerProxy::displayers; - -ErrorDisplayer *ErrorDisplayerProxy::createErrorDisplayer(QWidget* window) { - ErrorDisplayer* displayer = new ErrorDisplayer(window); - ErrorDisplayerProxy::displayers[window] = displayer; - return displayer; -} - -ErrorDisplayer *ErrorDisplayerProxy::getErrorDisplayer(QWidget* widget) { - QObject* parent = widget; - while (!ErrorDisplayerProxy::displayers.contains(parent)){ - parent = parent->parent(); - } - return ErrorDisplayerProxy::displayers[parent]; -} - -void ErrorDisplayerProxy::removeErrorDisplayer(QWidget* window){ - ErrorDisplayerProxy::displayers.remove(window); -} +} \ No newline at end of file diff --git a/Components/ErrorDisplayer/errordisplayer.h b/Components/ErrorDisplayer/errordisplayer.h index 139e1b656b787773d4b1d12c6b4d4b50ee57ae27..38544ca29b519bd5057e5497beeba3ae2349d046 100644 --- a/Components/ErrorDisplayer/errordisplayer.h +++ b/Components/ErrorDisplayer/errordisplayer.h @@ -34,15 +34,4 @@ class ErrorDisplayer : public QWidget { }; -class ErrorDisplayerProxy { - - public: - static ErrorDisplayer* createErrorDisplayer(QWidget* window); - static ErrorDisplayer* getErrorDisplayer(QWidget* widget); - static void removeErrorDisplayer(QWidget* window); - - private: - static QMap<QObject*, ErrorDisplayer*> displayers; -}; - #endif // ERRORDISPLAYER_H diff --git a/Modules/DefaultModule/defaultmodule.cpp b/Modules/DefaultModule/defaultmodule.cpp index 9608e3fdae2ad7451ceb6e6c2449bf6363291360..b5ee6214e1bb973b200c8ff54d92385092f0af26 100644 --- a/Modules/DefaultModule/defaultmodule.cpp +++ b/Modules/DefaultModule/defaultmodule.cpp @@ -103,3 +103,7 @@ Window* DefaultModule::getWindow(){ } return dynamic_cast<Window*>(parent); } + +void DefaultModule::error(QString title, QString description){ + getWindow()->errorDisplayer->createError(title, description); +} \ No newline at end of file diff --git a/Modules/DefaultModule/defaultmodule.h b/Modules/DefaultModule/defaultmodule.h index b68b8cf79497ddb5852fc151c3eb4c4862dd6044..8229cf305c1b85fc69e658f02bc1ed7d61b171ec 100644 --- a/Modules/DefaultModule/defaultmodule.h +++ b/Modules/DefaultModule/defaultmodule.h @@ -35,6 +35,8 @@ class DefaultModule : public QWidget, public Module { virtual void onReplaceClicked(); virtual void onCloseClicked(); + void error(QString title, QString description); + private: SkywardHubCoreProxy proxyCore; QList<QAction*> menuActions; diff --git a/Modules/MainWindow/window.cpp b/Modules/MainWindow/window.cpp index 0f510bef500aadb75a181bacf288adec73e82c7d..e9b2798620dbff74638565fb46c9f1657bb2e31a 100644 --- a/Modules/MainWindow/window.cpp +++ b/Modules/MainWindow/window.cpp @@ -7,12 +7,11 @@ Window::Window(QWidget *parent) : QWidget(parent), ui(new Ui::Window) { ui->setupUi(this); - errorDisplayer = ErrorDisplayerProxy::createErrorDisplayer(this); + errorDisplayer = new ErrorDisplayer(this); } Window::~Window() { delete ui; - ErrorDisplayerProxy::removeErrorDisplayer(this); delete errorDisplayer; } diff --git a/Modules/MainWindow/window.h b/Modules/MainWindow/window.h index 56e1a65bed7ba694eee43c65e333aa9436e2dd11..762bc896a3e023de7389225938f3d117da980cdc 100644 --- a/Modules/MainWindow/window.h +++ b/Modules/MainWindow/window.h @@ -24,6 +24,8 @@ class Window : public QWidget { void setCentralModule(Module *value); + ErrorDisplayer* errorDisplayer; + protected: void closeEvent(QCloseEvent *event) override; void onWidgetDestroyed(); @@ -33,7 +35,6 @@ class Window : public QWidget { private: Ui::Window *ui; Module *centralModule = nullptr; - ErrorDisplayer* errorDisplayer; }; #endif // WINDOW_H