Files
comaps/qt/qt_common/spinner.cpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

52 lines
1.0 KiB
C++

#include "qt/qt_common/spinner.hpp"
#include <QtCore/QString>
#include <QtCore/QTimer>
#include <QtCore/Qt>
namespace
{
int constexpr kMinSpinnerPixmap = 1;
int constexpr kMaxSpinnerPixmap = 12;
int constexpr kTimeoutMs = 100;
} // namespace
Spinner::Spinner()
{
for (int i = kMinSpinnerPixmap; i <= kMaxSpinnerPixmap; ++i)
{
auto const path = ":common/spinner" + QString::number(i) + ".png";
m_pixmaps.emplace_back(path);
}
setEnabled(false);
setAlignment(Qt::AlignCenter);
QSizePolicy policy(QSizePolicy::Fixed, QSizePolicy::Fixed);
policy.setRetainSizeWhenHidden(true);
setSizePolicy(policy);
setMinimumSize(m_pixmaps.front().size());
setPixmap(m_pixmaps.front());
m_timer = new QTimer(this /* parent */);
connect(m_timer, &QTimer::timeout, [this]() {
m_progress = (m_progress + 1) % m_pixmaps.size();
setPixmap(m_pixmaps[m_progress]);
});
}
void Spinner::Show()
{
m_progress = 0;
setPixmap(m_pixmaps[m_progress]);
m_timer->start(kTimeoutMs);
show();
}
void Spinner::Hide()
{
m_timer->stop();
hide();
}