ButtonEditDialog::ButtonEditDialog(JoyButton *button, QWidget *parent) : QDialog(parent, Qt::Window), ui(new Ui::ButtonEditDialog) { ui->setupUi(this); #ifdef Q_OS_WIN setMinimumHeight(460); #endif setAttribute(Qt::WA_DeleteOnClose); ignoreRelease = false; this->button = button; ui->virtualKeyMouseTabWidget->hide(); ui->virtualKeyMouseTabWidget->deleteLater(); ui->virtualKeyMouseTabWidget = new VirtualKeyboardMouseWidget(button, this); ui->virtualKeyMouseTabWidget->setFocus(); ui->verticalLayout->insertWidget(1, ui->virtualKeyMouseTabWidget); ui->slotSummaryLabel->setText(button->getSlotsString()); updateWindowTitleButtonName(); ui->toggleCheckBox->setChecked(button->getToggleState()); ui->turboCheckBox->setChecked(button->isUsingTurbo()); if (!button->getActionName().isEmpty()) { ui->actionNameLineEdit->setText(button->getActionName()); } if (!button->getButtonName().isEmpty()) { ui->buttonNameLineEdit->setText(button->getButtonName()); } connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionCleared()), this, SLOT(refreshSlotSummaryLabel())); connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionFinished()), this, SLOT(close())); connect(this, SIGNAL(keyGrabbed(JoyButtonSlot*)), this, SLOT(processSlotAssignment(JoyButtonSlot*))); connect(this, SIGNAL(selectionCleared()), this, SLOT(clearButtonSlots())); connect(this, SIGNAL(selectionCleared()), this, SLOT(sendSelectionFinished())); connect(this, SIGNAL(selectionFinished()), this, SLOT(close())); connect(ui->toggleCheckBox, SIGNAL(clicked()), this, SLOT(changeToggleSetting())); connect(ui->turboCheckBox, SIGNAL(clicked()), this, SLOT(changeTurboSetting())); connect(ui->advancedPushButton, SIGNAL(clicked()), this, SLOT(openAdvancedDialog())); connect(this, SIGNAL(advancedDialogOpened()), ui->virtualKeyMouseTabWidget, SLOT(establishVirtualKeyboardAdvancedSignalConnections())); connect(this, SIGNAL(advancedDialogOpened()), ui->virtualKeyMouseTabWidget, SLOT(establishVirtualMouseAdvancedSignalConnections())); connect(ui->virtualKeyMouseTabWidget, SIGNAL(selectionMade(int)), this, SLOT(createTempSlot(int))); connect(ui->actionNameLineEdit, SIGNAL(textEdited(QString)), button, SLOT(setActionName(QString))); connect(ui->buttonNameLineEdit, SIGNAL(textEdited(QString)), button, SLOT(setButtonName(QString))); connect(button, SIGNAL(toggleChanged(bool)), ui->toggleCheckBox, SLOT(setChecked(bool))); connect(button, SIGNAL(turboChanged(bool)), this, SLOT(checkTurboSetting(bool))); connect(button, SIGNAL(slotsChanged()), this, SLOT(refreshSlotSummaryLabel())); connect(button, SIGNAL(buttonNameChanged()), this, SLOT(updateWindowTitleButtonName())); }
AdvanceButtonDialog::AdvanceButtonDialog(JoyButton *button, QWidget *parent) : QDialog(parent, Qt::Dialog), ui(new Ui::AdvanceButtonDialog) { ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); this->button = button; oldRow = 0; if (this->button->getToggleState()) { ui->toggleCheckbox->setChecked(true); } if (this->button->isUsingTurbo()) { ui->turboCheckbox->setChecked(true); ui->turboSlider->setEnabled(true); } int interval = this->button->getTurboInterval() / 10; if (interval < MINIMUMTURBO) { interval = JoyButton::ENABLEDTURBODEFAULT / 10; } ui->turboSlider->setValue(interval); this->changeTurboText(interval); QListIterator<JoyButtonSlot*> iter(*(this->button->getAssignedSlots())); while (iter.hasNext()) { JoyButtonSlot *buttonslot = iter.next(); SimpleKeyGrabberButton *existingCode = new SimpleKeyGrabberButton(this); existingCode->setText(buttonslot->getSlotString()); existingCode->setValue(buttonslot->getSlotCode(), buttonslot->getSlotCodeAlias(), buttonslot->getSlotMode()); QListWidgetItem *item = new QListWidgetItem(); item->setData(Qt::UserRole, QVariant::fromValue<SimpleKeyGrabberButton*>(existingCode)); QHBoxLayout *layout= new QHBoxLayout(); layout->setContentsMargins(10, 0, 10, 0); layout->addWidget(existingCode); QWidget *widget = new QWidget(); widget->setLayout(layout); item->setSizeHint(widget->sizeHint()); ui->slotListWidget->addItem(item); ui->slotListWidget->setItemWidget(item, widget); connectButtonEvents(existingCode); } appendBlankKeyGrabber(); populateSetSelectionComboBox(); if (this->button->getSetSelection() > -1 && this->button->getChangeSetCondition() != JoyButton::SetChangeDisabled) { int selectIndex = (int)this->button->getChangeSetCondition(); selectIndex += this->button->getSetSelection() * 3; if (this->button->getOriginSet() < this->button->getSetSelection()) { selectIndex -= 3; } ui->setSelectionComboBox->setCurrentIndex(selectIndex); } fillTimeComboBoxes(); ui->actionTenthsComboBox->setCurrentIndex(1); updateActionTimeLabel(); changeTurboForSequences(); if (button->isCycleResetActive()) { ui->autoResetCycleCheckBox->setEnabled(true); ui->autoResetCycleCheckBox->setChecked(true); checkCycleResetWidgetStatus(true); } if (button->getCycleResetTime() != 0) { populateAutoResetInterval(); } updateWindowTitleButtonName(); connect(ui->turboCheckbox, SIGNAL(clicked(bool)), ui->turboSlider, SLOT(setEnabled(bool))); connect(ui->turboSlider, SIGNAL(valueChanged(int)), this, SLOT(checkTurboIntervalValue(int))); connect(ui->insertSlotButton, SIGNAL(clicked()), this, SLOT(insertSlot())); connect(ui->deleteSlotButton, SIGNAL(clicked()), this, SLOT(deleteSlot())); connect(ui->clearAllPushButton, SIGNAL(clicked()), this, SLOT(clearAllSlots())); connect(ui->pausePushButton, SIGNAL(clicked()), this, SLOT(insertPauseSlot())); connect(ui->holdPushButton, SIGNAL(clicked()), this, SLOT(insertHoldSlot())); connect(ui->cyclePushButton, SIGNAL(clicked()), this, SLOT(insertCycleSlot())); connect(ui->distancePushButton, SIGNAL(clicked()), this, SLOT(insertDistanceSlot())); connect(ui->releasePushButton, SIGNAL(clicked()), this, SLOT(insertReleaseSlot())); connect(ui->actionHundredthsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateActionTimeLabel())); connect(ui->actionSecondsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateActionTimeLabel())); connect(ui->actionMinutesComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateActionTimeLabel())); connect(ui->actionTenthsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateActionTimeLabel())); connect(ui->toggleCheckbox, SIGNAL(clicked(bool)), button, SLOT(setToggle(bool))); connect(ui->turboCheckbox, SIGNAL(clicked(bool)), this, SLOT(checkTurboSetting(bool))); connect(ui->setSelectionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSetSelection())); connect(ui->mouseModPushButton, SIGNAL(clicked()), this, SLOT(insertMouseSpeedModSlot())); connect(ui->slotListWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(performStatsWidgetRefresh(QListWidgetItem*))); connect(ui->actionHundredthsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(checkSlotTimeUpdate())); connect(ui->actionTenthsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(checkSlotTimeUpdate())); connect(ui->actionSecondsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(checkSlotTimeUpdate())); connect(ui->actionMinutesComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(checkSlotTimeUpdate())); connect(ui->distanceSpinBox, SIGNAL(valueChanged(int)), this, SLOT(checkSlotDistanceUpdate())); connect(ui->mouseSpeedModSpinBox, SIGNAL(valueChanged(int)), this, SLOT(checkSlotMouseModUpdate())); connect(ui->pressTimePushButton, SIGNAL(clicked()), this, SLOT(insertKeyPressSlot())); connect(ui->delayPushButton, SIGNAL(clicked()), this, SLOT(insertDelaySlot())); connect(ui->autoResetCycleCheckBox, SIGNAL(clicked(bool)), this, SLOT(checkCycleResetWidgetStatus(bool))); connect(ui->autoResetCycleCheckBox, SIGNAL(clicked(bool)), this, SLOT(setButtonCycleReset(bool))); connect(ui->resetCycleDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setButtonCycleResetInterval(double))); connect(button, SIGNAL(toggleChanged(bool)), ui->toggleCheckbox, SLOT(setChecked(bool))); connect(button, SIGNAL(turboChanged(bool)), this, SLOT(checkTurboSetting(bool))); }
MouseButtonSettingsDialog::MouseButtonSettingsDialog(JoyButton *button, QWidget *parent) : MouseSettingsDialog(parent) { setAttribute(Qt::WA_DeleteOnClose); resize(size().width(), 450); //setGeometry(geometry().x(), geometry().y(), size().width(), 450); this->button = button; calculateMouseSpeedPreset(); selectCurrentMouseModePreset(); calculateSpringPreset(); if (button->getSensitivity() > 0.0) { ui->sensitivityDoubleSpinBox->setValue(button->getSensitivity()); } updateAccelerationCurvePresetComboBox(); updateWindowTitleButtonName(); if (ui->mouseModeComboBox->currentIndex() == 2) { springPreviewWidget = new SpringModeRegionPreview(ui->springWidthSpinBox->value(), ui->springHeightSpinBox->value()); } else { springPreviewWidget = new SpringModeRegionPreview(0, 0); } ui->wheelHoriSpeedSpinBox->setValue(button->getWheelSpeedX()); ui->wheelVertSpeedSpinBox->setValue(button->getWheelSpeedY()); if (button->isRelativeSpring()) { ui->relativeSpringCheckBox->setChecked(true); } double easingDuration = button->getEasingDuration(); ui->easingDoubleSpinBox->setValue(easingDuration); if (button->isPartRealAxis()) { ui->extraAccelerationGroupBox->setChecked(button->isExtraAccelerationEnabled()); ui->extraAccelDoubleSpinBox->setValue(button->getExtraAccelerationMultiplier()); ui->minMultiDoubleSpinBox->setValue(button->getStartAccelMultiplier()); ui->minThresholdDoubleSpinBox->setValue(button->getMinAccelThreshold()); ui->maxThresholdDoubleSpinBox->setValue(button->getMaxAccelThreshold()); ui->accelExtraDurationDoubleSpinBox->setValue(button->getAccelExtraDuration()); } else { ui->extraAccelerationGroupBox->setVisible(false); } ui->releaseSpringRadiusspinBox->setValue(button->getSpringDeadCircleMultiplier()); calculateExtraAccelerationCurve(); changeSpringSectionStatus(ui->mouseModeComboBox->currentIndex()); changeSettingsWidgetStatus(ui->accelerationComboBox->currentIndex()); connect(this, SIGNAL(finished(int)), springPreviewWidget, SLOT(deleteLater())); connect(ui->mouseModeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMouseMode(int))); connect(ui->accelerationComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMouseCurve(int))); connect(ui->horizontalSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateConfigHorizontalSpeed(int))); connect(ui->verticalSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateConfigVerticalSpeed(int))); connect(ui->springWidthSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateSpringWidth(int))); connect(ui->springWidthSpinBox, SIGNAL(valueChanged(int)), springPreviewWidget, SLOT(setSpringWidth(int))); connect(ui->springHeightSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateSpringHeight(int))); connect(ui->springHeightSpinBox, SIGNAL(valueChanged(int)), springPreviewWidget, SLOT(setSpringHeight(int))); connect(ui->relativeSpringCheckBox, SIGNAL(clicked(bool)), this, SLOT(updateSpringRelativeStatus(bool))); connect(ui->sensitivityDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateSensitivity(double))); connect(ui->wheelHoriSpeedSpinBox, SIGNAL(valueChanged(int)), button, SLOT(setWheelSpeedX(int))); connect(ui->wheelVertSpeedSpinBox, SIGNAL(valueChanged(int)), button, SLOT(setWheelSpeedY(int))); connect(ui->easingDoubleSpinBox, SIGNAL(valueChanged(double)), button, SLOT(setEasingDuration(double))); connect(ui->extraAccelerationGroupBox, SIGNAL(clicked(bool)), this, SLOT(updateExtraAccelerationStatus(bool))); connect(ui->extraAccelDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateExtraAccelerationMultiplier(double))); connect(ui->minMultiDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateStartMultiPercentage(double))); connect(ui->minThresholdDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateMinAccelThreshold(double))); connect(ui->maxThresholdDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateMaxAccelThreshold(double))); connect(ui->accelExtraDurationDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateAccelExtraDuration(double))); connect(ui->releaseSpringRadiusspinBox, SIGNAL(valueChanged(int)), this, SLOT(updateReleaseSpringRadius(int))); connect(ui->extraAccelCurveComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateExtraAccelerationCurve(int))); }