From ff35008991fbd3d0799d99110de41b3a1ac19f4d Mon Sep 17 00:00:00 2001 From: Giacomo Caironi <giacomo.caironi@skywarder.eu> Date: Tue, 26 Apr 2022 22:33:21 +0200 Subject: [PATCH] Finish error displayer --- .gitignore | 1 + Components/ErrorDisplayer/errordisplayer.cpp | 24 +------------------- Components/ErrorDisplayer/errordisplayer.h | 11 --------- Modules/DefaultModule/defaultmodule.cpp | 4 ++++ Modules/DefaultModule/defaultmodule.h | 2 ++ Modules/MainWindow/window.cpp | 3 +-- Modules/MainWindow/window.h | 3 ++- 7 files changed, 11 insertions(+), 37 deletions(-) diff --git a/.gitignore b/.gitignore index bc5d335c..99c11f8e 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 436f9530..79aa960e 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 139e1b65..38544ca2 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 9608e3fd..b5ee6214 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 b68b8cf7..8229cf30 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 0f510bef..e9b27986 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 56e1a65b..762bc896 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 -- GitLab