mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 00:25:35 +08:00
refs #452, views upgraded
* load indicator when performing long lasting operations * custom menu can be injected (->menu delegate) * resizing based on random elements (subset resized only)
This commit is contained in:
committed by
Mathew Sutcliffe
parent
933ffea201
commit
f0fc1cba42
108
src/blackgui/loadindicator.h
Normal file
108
src/blackgui/loadindicator.h
Normal file
@@ -0,0 +1,108 @@
|
||||
/* Copyright (C) 2015
|
||||
* swift project Community / Contributors
|
||||
*
|
||||
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
||||
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
||||
* contained in the LICENSE file.
|
||||
*
|
||||
* Class based on qLed: Copyright (C) 2010 by P. Sereno, http://www.sereno-online.com
|
||||
*/
|
||||
|
||||
//! \file
|
||||
|
||||
#ifndef BLACKGUI_LOADINDICATOR_H
|
||||
#define BLACKGUI_LOADINDICATOR_H
|
||||
|
||||
#include "blackgui/blackguiexport.h"
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
/**
|
||||
* The QProgressIndicator class lets an application display a progress indicator to show that a lengthy task is under way.
|
||||
* Progress indicators are indeterminate and do nothing more than spin to show that the application is busy.
|
||||
* \note based on https://github.com/mojocorp/QProgressIndicator under MIT license
|
||||
*/
|
||||
class CLoadIndicator : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
//! Constructor
|
||||
CLoadIndicator(int width = 64, int height = 64, QWidget *parent = nullptr);
|
||||
|
||||
//! Returns the delay between animation steps.
|
||||
//! \return The number of milliseconds between animation steps. By default, the animation delay is set to 40 milliseconds.
|
||||
//! \sa setAnimationDelay
|
||||
int animationDelay() const { return m_delayMs; }
|
||||
|
||||
//! Returns a Boolean value indicating whether the component is currently animated.
|
||||
//! \return Animation state.
|
||||
//! \sa startAnimation stopAnimation
|
||||
bool isAnimated() const;
|
||||
|
||||
//! Returns a Boolean value indicating whether the receiver shows itself even when it is not animating.
|
||||
//! \return Return true if the progress indicator shows itself even when it is not animating. By default, it returns false.
|
||||
//! \sa setDisplayedWhenStopped
|
||||
bool isDisplayedWhenStopped() const;
|
||||
|
||||
//! Returns the color of the component.
|
||||
//! \sa setColor
|
||||
const QColor &color() const { return m_color; }
|
||||
|
||||
//! \copydoc QWidget::sizeHint
|
||||
virtual QSize sizeHint() const override;
|
||||
|
||||
//! \copydoc QWidget::heightForWidth
|
||||
virtual int heightForWidth(int w) const override;
|
||||
|
||||
//! Paint to another painter
|
||||
void paint(QPainter &painter) const;
|
||||
|
||||
signals:
|
||||
//! Animation has been updated
|
||||
void updatedAnimation();
|
||||
|
||||
public slots:
|
||||
//! Starts the spin animation.
|
||||
//! \sa stopAnimation isAnimated
|
||||
void startAnimation();
|
||||
|
||||
//! Stops the spin animation.
|
||||
//! \sa startAnimation isAnimated
|
||||
void stopAnimation();
|
||||
|
||||
//! Sets the delay between animation steps.
|
||||
//! Setting the \a delay to a value larger than 40 slows the animation, while setting the \a delay to a smaller value speeds it up.
|
||||
//! \param delay The delay, in milliseconds.
|
||||
//! \sa animationDelay
|
||||
void setAnimationDelay(int delay);
|
||||
|
||||
//! Sets whether the component hides itself when it is not animating.
|
||||
//! \param state The animation state. Set false to hide the progress indicator when it is not animating; otherwise true.
|
||||
//! \sa isDisplayedWhenStopped
|
||||
void setDisplayedWhenStopped(bool state);
|
||||
|
||||
//! Sets the color of the components to the given color.
|
||||
//! \sa color
|
||||
void setColor(const QColor &color);
|
||||
|
||||
protected:
|
||||
//! \copydoc QWidget::timerEvent
|
||||
virtual void timerEvent(QTimerEvent *event) override;
|
||||
|
||||
//! \copydoc QWidget::paintEvent
|
||||
virtual void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
private:
|
||||
int m_angle = 0;
|
||||
int m_timerId = -1;
|
||||
int m_delayMs = 1000;
|
||||
bool m_displayedWhenStopped = false;
|
||||
QColor m_color = Qt::blue;
|
||||
};
|
||||
} // ns
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user