Core: Un-export and hide only locally used ProgressTimer

Change-Id: If67b0d55972620a59a38a811fda6238d9cd4ab56
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2023-10-04 16:15:43 +02:00
parent c732c137f7
commit 1a1dcfc5c7
2 changed files with 34 additions and 43 deletions

View File

@@ -24,7 +24,8 @@
#include <QAction>
#include <QEvent>
#include <QHBoxLayout>
#include <QFuture>
#include <QFutureInterfaceBase>
#include <QMouseEvent>
#include <QPainter>
#include <QPropertyAnimation>
@@ -42,6 +43,38 @@ using namespace Core::Internal;
using namespace Utils;
namespace Core {
class ProgressTimer : public QObject
{
public:
ProgressTimer(const QFutureInterfaceBase &futureInterface, int expectedSeconds, QObject *parent)
: QObject(parent),
m_futureInterface(futureInterface),
m_expectedTime(expectedSeconds)
{
m_futureInterface.setProgressRange(0, 100);
m_futureInterface.setProgressValue(0);
m_timer.setInterval(TimerInterval);
connect(&m_timer, &QTimer::timeout, this, &ProgressTimer::handleTimeout);
m_timer.start();
}
private:
void handleTimeout()
{
++m_currentTime;
const int halfLife = qRound(1000.0 * m_expectedTime / TimerInterval);
const int progress = MathUtils::interpolateTangential(m_currentTime, halfLife, 0, 100);
m_futureInterface.setProgressValue(progress);
}
QFutureInterfaceBase m_futureInterface;
int m_expectedTime;
int m_currentTime = 0;
QTimer m_timer;
};
/*!
\class Core::ProgressManager
\inheaderfile coreplugin/progressmanager/progressmanager.h
@@ -789,29 +822,4 @@ void ProgressManager::cancelTasks(Id type)
m_instance->doCancelTasks(type);
}
ProgressTimer::ProgressTimer(const QFutureInterfaceBase &futureInterface,
int expectedSeconds,
QObject *parent)
: QObject(parent),
m_futureInterface(futureInterface),
m_expectedTime(expectedSeconds)
{
m_futureInterface.setProgressRange(0, 100);
m_futureInterface.setProgressValue(0);
m_timer = new QTimer(this);
m_timer->setInterval(TimerInterval);
connect(m_timer, &QTimer::timeout, this, &ProgressTimer::handleTimeout);
m_timer->start();
}
void ProgressTimer::handleTimeout()
{
++m_currentTime;
const int halfLife = qRound(1000.0 * m_expectedTime / TimerInterval);
const int progress = MathUtils::interpolateTangential(m_currentTime, halfLife, 0, 100);
m_futureInterface.setProgressValue(progress);
}
} // Core

View File

@@ -11,8 +11,6 @@
#include <QFutureInterfaceBase>
#include <QObject>
QT_FORWARD_DECLARE_CLASS(QTimer)
namespace Core {
class FutureProgress;
@@ -58,21 +56,6 @@ private:
friend class Core::Internal::ProgressManagerPrivate;
};
class CORE_EXPORT ProgressTimer : public QObject
{
public:
ProgressTimer(const QFutureInterfaceBase &futureInterface, int expectedSeconds,
QObject *parent = nullptr);
private:
void handleTimeout();
QFutureInterfaceBase m_futureInterface;
int m_expectedTime;
int m_currentTime = 0;
QTimer *m_timer;
};
} // namespace Core
Q_DECLARE_OPERATORS_FOR_FLAGS(Core::ProgressManager::ProgressFlags)