diff --git a/Modules/QtWidgets/include/QmitkMemoryUsageIndicatorView.h b/Modules/QtWidgets/include/QmitkMemoryUsageIndicatorView.h index 9eb9a0514c..b050374394 100644 --- a/Modules/QtWidgets/include/QmitkMemoryUsageIndicatorView.h +++ b/Modules/QtWidgets/include/QmitkMemoryUsageIndicatorView.h @@ -1,49 +1,48 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef QmitkMemoryUsageIndicatorView_h #define QmitkMemoryUsageIndicatorView_h #include #include #include #include namespace Ui { class QmitkMemoryUsageIndicator; } /// \ingroup QmitkModule class MITKQTWIDGETS_EXPORT QmitkMemoryUsageIndicatorView : public QWidget { Q_OBJECT public: QmitkMemoryUsageIndicatorView(QWidget* parent = nullptr); ~QmitkMemoryUsageIndicatorView() override; private: void UpdateMemoryUsage(); std::string FormatMemorySize(size_t size); std::string FormatPercentage(double val); std::string GetMemoryDescription(size_t processSize, float percentage); - static std::array, 4> s_States; - Ui::QmitkMemoryUsageIndicator* m_Ui; size_t m_PreviousState; + std::array, 4> m_States; }; #endif diff --git a/Modules/QtWidgets/src/QmitkMemoryUsageIndicatorView.cpp b/Modules/QtWidgets/src/QmitkMemoryUsageIndicatorView.cpp index 8f58e4fc00..3ea50ac3f6 100644 --- a/Modules/QtWidgets/src/QmitkMemoryUsageIndicatorView.cpp +++ b/Modules/QtWidgets/src/QmitkMemoryUsageIndicatorView.cpp @@ -1,131 +1,130 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ /**************************************************************************** ** ui.h extension file, included from the uic-generated form implementation. ** ** If you want to add, delete, or rename functions or slots, use ** Qt Designer to update this file, preserving your code. ** ** You should not define a constructor or destructor in this file. ** Instead, write your code in functions called init() and destroy(). ** These will automatically be called by the form's constructor and ** destructor. *****************************************************************************/ #include #include #include #include #include #include #include #include #include -std::array, 4> QmitkMemoryUsageIndicatorView::s_States = { - std::make_pair(0.0f, QPixmap(QmitkMemoryUsageIndicatorImagesGreen_xpm)), - std::make_pair(50.0f, QPixmap(QmitkMemoryUsageIndicatorImagesYellow_xpm)), - std::make_pair(65.0f, QPixmap(QmitkMemoryUsageIndicatorImagesOrange_xpm)), - std::make_pair(85.0f, QPixmap(QmitkMemoryUsageIndicatorImagesRed_xpm)) -}; - QmitkMemoryUsageIndicatorView::QmitkMemoryUsageIndicatorView(QWidget*) : m_Ui(new Ui::QmitkMemoryUsageIndicator), - m_PreviousState(0) + m_PreviousState(0), + m_States { + std::make_pair(0.0f, QPixmap(QmitkMemoryUsageIndicatorImagesGreen_xpm)), + std::make_pair(50.0f, QPixmap(QmitkMemoryUsageIndicatorImagesYellow_xpm)), + std::make_pair(65.0f, QPixmap(QmitkMemoryUsageIndicatorImagesOrange_xpm)), + std::make_pair(85.0f, QPixmap(QmitkMemoryUsageIndicatorImagesRed_xpm)) + } { m_Ui->setupUi(this); - m_Ui->led->setPixmap(s_States[0].second); + m_Ui->led->setPixmap(m_States[0].second); auto timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &QmitkMemoryUsageIndicatorView::UpdateMemoryUsage); timer->start(1000); } QmitkMemoryUsageIndicatorView::~QmitkMemoryUsageIndicatorView() { } void QmitkMemoryUsageIndicatorView::UpdateMemoryUsage() { size_t processSize = mitk::MemoryUtilities::GetProcessMemoryUsage(); size_t totalSize = mitk::MemoryUtilities::GetTotalSizeOfPhysicalRam(); float percentage = static_cast(processSize) / totalSize * 100.0f; m_Ui->label->setText(QString::fromStdString(this->GetMemoryDescription(processSize, percentage))); - for (size_t i = s_States.size() - 1; i >= 0; --i) + for (size_t i = m_States.size() - 1; i >= 0; --i) { - if (percentage >= s_States[i].first) + if (percentage >= m_States[i].first) { if (m_PreviousState != i) { - m_Ui->led->setPixmap(s_States[i].second); + m_Ui->led->setPixmap(m_States[i].second); m_PreviousState = i; } break; } } } std::string QmitkMemoryUsageIndicatorView::FormatMemorySize(size_t size) { double val = size; std::string unit; if (val >= 1024.0) { val /= 1024.0; unit = "K"; } if (val >= 1024.0) { val /= 1024.0; unit = "M"; } if (val >= 1024.0) { val /= 1024.0; unit = "G"; } unit += "B"; std::ostringstream str; str.imbue(std::locale::classic()); str << std::fixed << std::setprecision(2) << val << " " << unit; return str.str(); } std::string QmitkMemoryUsageIndicatorView::FormatPercentage(double val) { std::ostringstream str; str.imbue(std::locale::classic()); str << std::fixed << std::setprecision(2) << val << " " << "%"; return str.str(); } std::string QmitkMemoryUsageIndicatorView::GetMemoryDescription(size_t processSize, float percentage) { std::ostringstream str; str.imbue(std::locale::classic()); str << FormatMemorySize(processSize) << " (" << FormatPercentage(percentage) << ")"; return str.str(); }