diff --git a/src/shared/Components/ErrorDisplayer/Error.cpp b/src/shared/Components/ErrorDisplayer/Error.cpp index 2222d2da56dcab1e2c1fefd2a53bc0079d874de2..8f6a1df950bb7d98132b777523b7a8671fed1744 100644 --- a/src/shared/Components/ErrorDisplayer/Error.cpp +++ b/src/shared/Components/ErrorDisplayer/Error.cpp @@ -77,7 +77,7 @@ Error::Error(ErrorDisplayer* _displayer, QString _title, QString _description, adjustSize(); } -Error::~Error() { displayer->removeError(this); } +Error::~Error() {} void Error::incrementCount(int msecDuration) { @@ -86,8 +86,8 @@ void Error::incrementCount(int msecDuration) { countLabel.setText(QString::number(count)); } - QTimer* timer = new QTimer(this); - connect(timer, &QTimer::timeout, this, &Error::decrementCount); + std::unique_ptr<QTimer> timer = std::make_unique<QTimer>(this); + connect(timer.get(), &QTimer::timeout, this, &Error::decrementCount); timer->start(msecDuration); } diff --git a/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp b/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp index dc8abee0a02ebfef71844815a815151e083c7149..be8af55d5733b16b0df0b62276d3506df60dfa1c 100644 --- a/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp +++ b/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp @@ -33,10 +33,10 @@ ErrorDisplayer::ErrorDisplayer(QWidget* _parent) : QWidget(_parent) ErrorDisplayer::~ErrorDisplayer() { - while (!errors.isEmpty()) + /*while (!errors.isEmpty()) { delete errors.takeFirst(); - } + }*/ } void ErrorDisplayer::createError(QString title, QString description, @@ -44,27 +44,22 @@ void ErrorDisplayer::createError(QString title, QString description, { if (!errors.isEmpty()) { - Error* lastError = errors.last(); + auto& lastError = errors.last(); if (lastError->compareError(title, description, type)) { lastError->incrementCount(msecDuration); return; } } - Error* error = new Error(this, title, description, type, msecDuration); - layout.addWidget(error); - errors.append(error); + auto error = + std::make_unique<Error>(this, title, description, type, msecDuration); + auto* errorAddr = error.get(); + layout.addWidget(errorAddr); + errors.append(std::move(error)); error->show(); reposition(); } -void ErrorDisplayer::removeError(Error* error) -{ - layout.removeWidget(error); - errors.removeAll(error); - reposition(); -} - void ErrorDisplayer::reposition() { adjustSize(); diff --git a/src/shared/Components/ErrorDisplayer/ErrorDisplayer.h b/src/shared/Components/ErrorDisplayer/ErrorDisplayer.h index 38d3c96212ad2cf499ac8aef207876ede347cfa9..9b6940b97d45f51adc5049c5c89e7d4b39b8ba57 100644 --- a/src/shared/Components/ErrorDisplayer/ErrorDisplayer.h +++ b/src/shared/Components/ErrorDisplayer/ErrorDisplayer.h @@ -41,13 +41,11 @@ public: void reposition(); protected: - void removeError(Error* error); - friend class Error; private: QWidget* parent; int index; QVBoxLayout layout; - QList<Error*> errors; + QList<std::unique_ptr<Error>> errors; };