From 382317dcaf944114b2996722b8ae998b3d84252a Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Wed, 3 Sep 2014 17:56:46 +0200 Subject: [PATCH] Added WaitingWidget to libcalamaresui, wrapper for QtWaitingSpinner --- src/libcalamaresui/CMakeLists.txt | 2 + src/libcalamaresui/widgets/WaitingWidget.cpp | 64 ++++++++++++++++++++ src/libcalamaresui/widgets/WaitingWidget.h | 38 ++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 src/libcalamaresui/widgets/WaitingWidget.cpp create mode 100644 src/libcalamaresui/widgets/WaitingWidget.h diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 357ee9712..ed143bc49 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -13,7 +13,9 @@ list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_SOURCES viewpages/AbstractPage.cpp viewpages/ViewStep.cpp + widgets/ClickableLabel.cpp widgets/QtWaitingSpinner.cpp + widgets/WaitingWidget.cpp InstallationViewStep.cpp Settings.cpp diff --git a/src/libcalamaresui/widgets/WaitingWidget.cpp b/src/libcalamaresui/widgets/WaitingWidget.cpp new file mode 100644 index 000000000..55471eff3 --- /dev/null +++ b/src/libcalamaresui/widgets/WaitingWidget.cpp @@ -0,0 +1,64 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014, Teo Mrnjavac + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "WaitingWidget.h" + +#include "utils/CalamaresUtilsGui.h" +#include "QtWaitingSpinner.h" + +#include +#include + +WaitingWidget::WaitingWidget( const QString& text, QWidget* parent ) + : QWidget( parent ) +{ + QBoxLayout* waitingLayout = new QVBoxLayout; + setLayout( waitingLayout ); + waitingLayout->addStretch(); + QBoxLayout* pbLayout = new QHBoxLayout; + waitingLayout->addLayout( pbLayout ); + pbLayout->addStretch(); + + QtWaitingSpinner* spnr = new QtWaitingSpinner(); + pbLayout->addWidget( spnr ); + + pbLayout->addStretch(); + + m_waitingLabel = new QLabel( text ); + + int spnrSize = m_waitingLabel->fontMetrics().height() * 4; + spnr->setFixedSize( spnrSize, spnrSize ); + spnr->setRadius( spnrSize / 2 ); + spnr->setLength( spnrSize / 2 ); + spnr->setWidth( spnrSize / 8 ); + spnr->start(); + + m_waitingLabel->setAlignment( Qt::AlignCenter ); + waitingLayout->addSpacing( spnrSize / 2 ); + waitingLayout->addWidget( m_waitingLabel ); + waitingLayout->addStretch(); + + CalamaresUtils::unmarginLayout( waitingLayout ); +} + + +void +WaitingWidget::setText( const QString& text ) +{ + m_waitingLabel->setText( text ); +} diff --git a/src/libcalamaresui/widgets/WaitingWidget.h b/src/libcalamaresui/widgets/WaitingWidget.h new file mode 100644 index 000000000..4eda7ff5d --- /dev/null +++ b/src/libcalamaresui/widgets/WaitingWidget.h @@ -0,0 +1,38 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014, Teo Mrnjavac + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef WAITINGWIDGET_H +#define WAITINGWIDGET_H + +#include + +class QLabel; + +class WaitingWidget : public QWidget +{ + Q_OBJECT +public: + explicit WaitingWidget( const QString& text, QWidget* parent = nullptr ); + + void setText( const QString& text ); + +private: + QLabel* m_waitingLabel; +}; + +#endif // WAITINGWIDGET_H