ConfigDialog::ConfigDialog(MovieRecorderImpl* recorder) : recorder(recorder), updateViewComboLater(std::bind(&ConfigDialog::updateViewCombo, this)) { setWindowTitle(_("Movie Recorder")); QVBoxLayout* vbox = new QVBoxLayout(); setLayout(vbox); QHBoxLayout* hbox = new QHBoxLayout(); hbox->addWidget(new QLabel(_("Target view:"))); targetViewCombo.sigCurrentIndexChanged().connect( std::bind(&ConfigDialog::onTargetViewIndexChanged, this, std::placeholders::_1)); hbox->addWidget(&targetViewCombo); viewMarkerCheck.setText(_("Show the marker")); viewMarkerCheck.sigToggled().connect( std::bind(&MovieRecorderImpl::onViewMarkerToggled, recorder, std::placeholders::_1)); hbox->addWidget(&viewMarkerCheck); hbox->addStretch(); vbox->addLayout(hbox); hbox = new QHBoxLayout(); hbox->addWidget(new QLabel(_("Recording mode: "))); ButtonGroup* modeGroup = new ButtonGroup(); for(int i=0; i < N_RECORDING_MODES; ++i){ RadioButton* radio = &modeRadioButtons[i]; radio->setText(recorder->recordingMode.label(i)); modeGroup->addButton(radio, i); hbox->addWidget(radio); } modeRadioButtons[0].setChecked(true); modeGroup->sigButtonClicked().connect( std::bind(&ConfigDialog::onRecordingModeRadioClicked, this, std::placeholders::_1)); hbox->addStretch(); vbox->addLayout(hbox); hbox = new QHBoxLayout(); hbox->addWidget(new QLabel(_("Directory"))); hbox->addWidget(&directoryEntry); QIcon folderIcon = QIcon::fromTheme("folder"); if(folderIcon.isNull()){ directoryButton.setText(_("Select")); } else { directoryButton.setIcon(folderIcon); } directoryButton.sigClicked().connect( std::bind(&ConfigDialog::showDirectorySelectionDialog, this)); hbox->addWidget(&directoryButton); vbox->addLayout(hbox); hbox = new QHBoxLayout(); hbox->addWidget(new QLabel(_("Basename"))); basenameEntry.setText("scene"); hbox->addWidget(&basenameEntry); hbox->addStretch(); vbox->addLayout(hbox); hbox = new QHBoxLayout(); hbox->addWidget(new QLabel(_("Frame rate"))); fpsSpin.setDecimals(1); fpsSpin.setRange(1.0, 9999.9); fpsSpin.setValue(30.0); fpsSpin.setSingleStep(0.1); hbox->addWidget(&fpsSpin); hbox->addWidget(new QLabel(_("[fps]"))); hbox->addStretch(); vbox->addLayout(hbox); hbox = new QHBoxLayout(); startTimeCheck.setText(_("Start time")); hbox->addWidget(&startTimeCheck); startTimeSpin.setDecimals(2); startTimeSpin.setRange(0.00, 9999.99); startTimeSpin.setSingleStep(0.1); hbox->addWidget(&startTimeSpin); hbox->addWidget(new QLabel(_("[s]"))); hbox->addSpacing(4); finishTimeCheck.setText(_("Finish time")); hbox->addWidget(&finishTimeCheck); finishTimeSpin.setDecimals(2); finishTimeSpin.setRange(0.00, 9999.99); finishTimeSpin.setSingleStep(0.1); hbox->addWidget(&finishTimeSpin); hbox->addWidget(new QLabel(_("[s]"))); hbox->addStretch(); vbox->addLayout(hbox); hbox = new QHBoxLayout(); imageSizeCheck.setText(_("Image size")); hbox->addWidget(&imageSizeCheck); imageWidthSpin.setRange(1, 9999); imageWidthSpin.setValue(640); hbox->addWidget(&imageWidthSpin); hbox->addWidget(new QLabel("x")); imageHeightSpin.setRange(1, 9999); imageHeightSpin.setValue(480); hbox->addWidget(&imageHeightSpin); hbox->addStretch(); vbox->addLayout(hbox); if(ENABLE_MOUSE_CURSOR_CAPTURE){ hbox = new QHBoxLayout(); mouseCursorCheck.setText(_("Capture the mouse cursor")); hbox->addWidget(&mouseCursorCheck); hbox->addStretch(); vbox->addLayout(hbox); } vbox->addWidget(new HSeparator()); QDialogButtonBox* buttonBox = new QDialogButtonBox(this); recordingToggle.setText(_("&Record")); recordingToggle.setDefault(true); recordingToggle.sigToggled().connect( std::bind(&MovieRecorderImpl::activateRecording, recorder, std::placeholders::_1, true)); buttonBox->addButton(&recordingToggle, QDialogButtonBox::ActionRole); vbox->addWidget(buttonBox); }