#include "SeerProgressIndicator.h" #include #include #include #include #include SeerProgressIndicator::SeerProgressIndicator(QWidget* parent) : QProgressIndicator(parent) { setContextMenuPolicy(Qt::CustomContextMenu); QObject::connect(this, &SeerProgressIndicator::customContextMenuRequested, this, &SeerProgressIndicator::handleShowContextMenu); // Read settings. readSettings(); } SeerProgressIndicator::~SeerProgressIndicator() { } void SeerProgressIndicator::writeSettings () { QSettings settings; settings.beginGroup("progressindicator"); { settings.setValue("type", typeName()); } settings.endGroup(); } void SeerProgressIndicator::readSettings () { QSettings settings; settings.beginGroup("progressindicator"); { setType(settings.value("type", QString("BallRotate")).toString()); } settings.endGroup(); } void SeerProgressIndicator::handleShowContextMenu (const QPoint& point) { // Don't do anything. if (point.isNull()) { return; } // Possible indicator types. QStringList typeList = types(); if (typeList.size() == 0) { return; } // Build up menu. QMenu menu("Progress Indicators", this); for (int i=0; itext()); // Save it for next time. writeSettings(); }