VCSpeedDial::VCSpeedDial(QWidget* parent, Doc* doc) : VCWidget(parent, doc) , m_speedTypes(VCSpeedDial::Duration) , m_dial(NULL) , m_absoluteValueMin(0) , m_absoluteValueMax(1000 * 10) { new QVBoxLayout(this); m_dial = new SpeedDial(this); layout()->addWidget(m_dial); connect(m_dial, SIGNAL(valueChanged(int)), this, SLOT(slotDialValueChanged(int))); connect(m_dial, SIGNAL(tapped()), this, SLOT(slotDialTapped())); setType(VCWidget::SpeedDialWidget); setCaption(tr("Duration")); QSettings settings; QVariant var = settings.value(SETTINGS_SPEEDDIAL_SIZE); if (var.isValid() == true) resize(var.toSize()); else resize(VCSpeedDial::defaultSize); var = settings.value(SETTINGS_SPEEDDIAL_VALUE); if (var.isValid() == true) m_dial->setValue(var.toUInt()); slotModeChanged(doc->mode()); }
VCSpeedDial::VCSpeedDial(QWidget* parent, Doc* doc) : VCWidget(parent, doc) , m_currentFactor(1) , m_resetFactorOnDialChange(false) , m_absoluteValueMin(0) , m_absoluteValueMax(1000 * 10) { setFrameStyle(KVCFrameStyleSunken); QVBoxLayout* vBox = new QVBoxLayout(this); vBox->setMargin(0); QHBoxLayout* speedDialHBox = new QHBoxLayout(); vBox->addLayout(speedDialHBox); m_dial = new SpeedDial(this); speedDialHBox->addWidget(m_dial); connect(m_dial, SIGNAL(valueChanged(int)), this, SLOT(slotDialValueChanged())); connect(m_dial, SIGNAL(tapped()), this, SLOT(slotDialTapped())); m_factoredValue = m_dial->value(); setType(VCWidget::SpeedDialWidget); setCaption(tr("Duration")); QSettings settings; QVariant var = settings.value(SETTINGS_SPEEDDIAL_SIZE); if (var.isValid() == true) resize(var.toSize()); else resize(VCSpeedDial::defaultSize); var = settings.value(SETTINGS_SPEEDDIAL_VALUE); if (var.isValid() == true) m_dial->setValue(var.toUInt()); // Multiplier, factor, divider and reset box QHBoxLayout* multFactorDivHBox = new QHBoxLayout(); m_divButton = new QToolButton(); m_divButton->setIconSize(QSize(32, 32)); m_divButton->setIcon(QIcon(":/back.png")); m_divButton->setToolTip(tr("Divide the current time by 2")); connect(m_divButton, SIGNAL(clicked()), this, SLOT(slotDiv())); multFactorDivHBox->addWidget(m_divButton, Qt::AlignVCenter | Qt::AlignLeft); QVBoxLayout* labelsVboxBox = new QVBoxLayout(); m_multDivLabel = new QLabel(); m_multDivLabel->setAlignment(Qt::AlignCenter); m_multDivLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); labelsVboxBox->addWidget(m_multDivLabel, Qt::AlignVCenter | Qt::AlignLeft); m_multDivResultLabel = new QLabel(); m_multDivResultLabel->setAlignment(Qt::AlignCenter); m_multDivResultLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_multDivResultLabel->setBackgroundRole(QPalette::BrightText); labelsVboxBox->addWidget(m_multDivResultLabel); multFactorDivHBox->addLayout(labelsVboxBox); m_multButton = new QToolButton(); m_multButton->setIconSize(QSize(32, 32)); m_multButton->setIcon(QIcon(":/forward.png")); m_multButton->setToolTip(tr("Multiply the current time by 2")); connect(m_multButton, SIGNAL(clicked()), this, SLOT(slotMult())); multFactorDivHBox->addWidget(m_multButton, Qt::AlignVCenter | Qt::AlignLeft); m_multDivResetButton = new QToolButton(); m_multDivResetButton->setIconSize(QSize(32, 32)); m_multDivResetButton->setIcon(QIcon(":/fileclose.png")); m_multDivResetButton->setToolTip(tr("Reset the current factor to 1x")); connect(m_multDivResetButton, SIGNAL(clicked()), this, SLOT(slotMultDivReset())); multFactorDivHBox->addWidget(m_multDivResetButton); vBox->addLayout(multFactorDivHBox); // Update labels slotMultDivChanged(); // Apply button m_applyButton = new QPushButton(); m_applyButton->setStyleSheet(presetBtnSS.arg("#DDDDDD")); m_applyButton->setText(tr("Apply")); m_applyButton->setToolTip(tr("Send the current value to the function now")); connect(m_applyButton, SIGNAL(clicked()), this, SLOT(slotFactoredValueChanged())); vBox->addWidget(m_applyButton); // Presets m_presetsLayout = new FlowLayout(3); vBox->addLayout(m_presetsLayout); // Don't show Infinite button: it's handled by presets setVisibilityMask(SpeedDial::defaultVisibilityMask() & ~SpeedDial::Infinite); /* Update timer */ m_updateTimer = new QTimer(this); connect(m_updateTimer, SIGNAL(timeout()), this, SLOT(slotUpdate())); m_updateTimer->setSingleShot(true); slotModeChanged(m_doc->mode()); setLiveEdit(m_liveEdit); }