int QFormLayout::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QLayout::qt_metacall(_c, _id, _a); if (_id < 0) return _id; #ifndef QT_NO_PROPERTIES if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< FieldGrowthPolicy*>(_v) = fieldGrowthPolicy(); break; case 1: *reinterpret_cast< RowWrapPolicy*>(_v) = rowWrapPolicy(); break; case 2: *reinterpret_cast< Qt::Alignment*>(_v) = labelAlignment(); break; case 3: *reinterpret_cast< Qt::Alignment*>(_v) = formAlignment(); break; case 4: *reinterpret_cast< int*>(_v) = horizontalSpacing(); break; case 5: *reinterpret_cast< int*>(_v) = verticalSpacing(); break; } _id -= 6; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setFieldGrowthPolicy(*reinterpret_cast< FieldGrowthPolicy*>(_v)); break; case 1: setRowWrapPolicy(*reinterpret_cast< RowWrapPolicy*>(_v)); break; case 2: setLabelAlignment(*reinterpret_cast< Qt::Alignment*>(_v)); break; case 3: setFormAlignment(*reinterpret_cast< Qt::Alignment*>(_v)); break; case 4: setHorizontalSpacing(*reinterpret_cast< int*>(_v)); break; case 5: setVerticalSpacing(*reinterpret_cast< int*>(_v)); break; } _id -= 6; } else if (_c == QMetaObject::ResetProperty) { switch (_id) { case 0: resetFieldGrowthPolicy(); break; case 1: resetRowWrapPolicy(); break; case 2: resetLabelAlignment(); break; case 3: resetFormAlignment(); break; } _id -= 6; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 6; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 6; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 6; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 6; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 6; } #endif // QT_NO_PROPERTIES return _id; }
BareMetalDeviceConfigurationWizardSetupPage::BareMetalDeviceConfigurationWizardSetupPage( QWidget *parent) : QWizardPage(parent) { setTitle(tr("Set up GDB Server or Hardware Debugger")); auto formLayout = new QFormLayout(this); formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); m_nameLineEdit = new QLineEdit(this); formLayout->addRow(tr("Name:"), m_nameLineEdit); m_gdbServerProviderChooser = new GdbServerProviderChooser(false, this); m_gdbServerProviderChooser->populate(); formLayout->addRow(tr("GDB server provider:"), m_gdbServerProviderChooser); connect(m_nameLineEdit, &QLineEdit::textChanged, this, &BareMetalDeviceConfigurationWizardSetupPage::completeChanged); connect(m_gdbServerProviderChooser, &GdbServerProviderChooser::providerChanged, this, &QWizardPage::completeChanged); }
GenericBuildSettingsWidget::GenericBuildSettingsWidget(GenericBuildConfiguration *bc) : m_buildConfiguration(0) { auto fl = new QFormLayout(this); fl->setContentsMargins(0, -1, 0, -1); fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); // build directory m_pathChooser = new Utils::PathChooser(this); m_pathChooser->setHistoryCompleter("Generic.BuildDir.History"); m_pathChooser->setEnabled(true); fl->addRow(tr("Build directory:"), m_pathChooser); connect(m_pathChooser, &Utils::PathChooser::rawPathChanged, this, &GenericBuildSettingsWidget::buildDirectoryChanged); m_buildConfiguration = bc; m_pathChooser->setBaseFileName(bc->target()->project()->projectDirectory()); m_pathChooser->setEnvironment(bc->environment()); m_pathChooser->setPath(m_buildConfiguration->rawBuildDirectory().toString()); setDisplayName(tr("Generic Manager")); connect(bc, &GenericBuildConfiguration::environmentChanged, this, &GenericBuildSettingsWidget::environmentHasChanged); }
BreakpointDialog::BreakpointDialog(Breakpoint b, QWidget *parent) : QDialog(parent), m_enabledParts(~0), m_previousType(UnknownBreakpointType), m_firstTypeChange(true) { setWindowTitle(tr("Edit Breakpoint Properties")); auto groupBoxBasic = new QGroupBox(tr("Basic"), this); // Match BreakpointType (omitting unknown type). QStringList types; types << tr("File name and line number") << tr("Function name") << tr("Break on memory address") << tr("Break when C++ exception is thrown") << tr("Break when C++ exception is caught") << tr("Break when function \"main\" starts") << tr("Break when a new process is forked") << tr("Break when a new process is executed") << tr("Break when a system call is executed") << tr("Break on data access at fixed address") << tr("Break on data access at address given by expression") << tr("Break on QML signal emit") << tr("Break when JavaScript exception is thrown"); // We don't list UnknownBreakpointType, so 1 less: QTC_CHECK(types.size() + 1 == LastBreakpointType); m_comboBoxType = new QComboBox(groupBoxBasic); m_comboBoxType->setMaxVisibleItems(20); m_comboBoxType->addItems(types); m_labelType = new QLabel(tr("Breakpoint &type:"), groupBoxBasic); m_labelType->setBuddy(m_comboBoxType); m_pathChooserFileName = new Utils::PathChooser(groupBoxBasic); m_pathChooserFileName->setHistoryCompleter(QLatin1String("Debugger.Breakpoint.File.History")); m_pathChooserFileName->setExpectedKind(Utils::PathChooser::File); m_labelFileName = new QLabel(tr("&File name:"), groupBoxBasic); m_labelFileName->setBuddy(m_pathChooserFileName); m_lineEditLineNumber = new QLineEdit(groupBoxBasic); m_labelLineNumber = new QLabel(tr("&Line number:"), groupBoxBasic); m_labelLineNumber->setBuddy(m_lineEditLineNumber); m_checkBoxEnabled = new QCheckBox(groupBoxBasic); m_labelEnabled = new QLabel(tr("&Enabled:"), groupBoxBasic); m_labelEnabled->setBuddy(m_checkBoxEnabled); m_lineEditAddress = new QLineEdit(groupBoxBasic); m_labelAddress = new QLabel(tr("&Address:"), groupBoxBasic); m_labelAddress->setBuddy(m_lineEditAddress); m_lineEditExpression = new QLineEdit(groupBoxBasic); m_labelExpression = new QLabel(tr("&Expression:"), groupBoxBasic); m_labelExpression->setBuddy(m_lineEditExpression); m_lineEditFunction = new QLineEdit(groupBoxBasic); m_labelFunction = new QLabel(tr("Fun&ction:"), groupBoxBasic); m_labelFunction->setBuddy(m_lineEditFunction); auto groupBoxAdvanced = new QGroupBox(tr("Advanced"), this); m_checkBoxTracepoint = new QCheckBox(groupBoxAdvanced); m_labelTracepoint = new QLabel(tr("T&racepoint only:"), groupBoxAdvanced); m_labelTracepoint->setBuddy(m_checkBoxTracepoint); m_checkBoxOneShot = new QCheckBox(groupBoxAdvanced); m_labelOneShot = new QLabel(tr("&One shot only:"), groupBoxAdvanced); m_labelOneShot->setBuddy(m_checkBoxOneShot); const QString pathToolTip = tr("<p>Determines how the path is specified " "when setting breakpoints:</p><ul>" "<li><i>Use Engine Default</i>: Preferred setting of the " "debugger engine.</li>" "<li><i>Use Full Path</i>: Pass full path, avoiding ambiguities " "should files of the same name exist in several modules. " "This is the engine default for CDB and LLDB.</li>" "<li><i>Use File Name</i>: Pass the file name only. This is " "useful when using a source tree whose location does " "not match the one used when building the modules. " "It is the engine default for GDB as using full paths can " "be slow with this engine.</li></ul>"); m_comboBoxPathUsage = new QComboBox(groupBoxAdvanced); m_comboBoxPathUsage->addItem(tr("Use Engine Default")); m_comboBoxPathUsage->addItem(tr("Use Full Path")); m_comboBoxPathUsage->addItem(tr("Use File Name")); m_comboBoxPathUsage->setToolTip(pathToolTip); m_labelUseFullPath = new QLabel(tr("Pat&h:"), groupBoxAdvanced); m_labelUseFullPath->setBuddy(m_comboBoxPathUsage); m_labelUseFullPath->setToolTip(pathToolTip); const QString moduleToolTip = tr("<p>Specifying the module (base name of the library or executable) " "for function or file type breakpoints can significantly speed up " "debugger start-up times (CDB, LLDB)."); m_lineEditModule = new QLineEdit(groupBoxAdvanced); m_lineEditModule->setToolTip(moduleToolTip); m_labelModule = new QLabel(tr("&Module:"), groupBoxAdvanced); m_labelModule->setBuddy(m_lineEditModule); m_labelModule->setToolTip(moduleToolTip); const QString commandsToolTip = tr("<p>Debugger commands to be executed when the breakpoint is hit. " "This feature is only available for GDB."); m_textEditCommands = new SmallTextEdit(groupBoxAdvanced); m_textEditCommands->setToolTip(commandsToolTip); m_labelCommands = new QLabel(tr("&Commands:"), groupBoxAdvanced); m_labelCommands->setBuddy(m_textEditCommands); m_labelCommands->setToolTip(commandsToolTip); m_lineEditMessage = new QLineEdit(groupBoxAdvanced); m_labelMessage = new QLabel(tr("&Message:"), groupBoxAdvanced); m_labelMessage->setBuddy(m_lineEditMessage); m_lineEditCondition = new QLineEdit(groupBoxAdvanced); m_labelCondition = new QLabel(tr("C&ondition:"), groupBoxAdvanced); m_labelCondition->setBuddy(m_lineEditCondition); m_spinBoxIgnoreCount = new QSpinBox(groupBoxAdvanced); m_spinBoxIgnoreCount->setMinimum(0); m_spinBoxIgnoreCount->setMaximum(2147483647); m_labelIgnoreCount = new QLabel(tr("&Ignore count:"), groupBoxAdvanced); m_labelIgnoreCount->setBuddy(m_spinBoxIgnoreCount); m_lineEditThreadSpec = new QLineEdit(groupBoxAdvanced); m_labelThreadSpec = new QLabel(tr("&Thread specification:"), groupBoxAdvanced); m_labelThreadSpec->setBuddy(m_lineEditThreadSpec); m_buttonBox = new QDialogButtonBox(this); m_buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); if (b) { if (DebuggerEngine *engine = b.engine()) { if (!engine->hasCapability(BreakConditionCapability)) m_enabledParts &= ~ConditionPart; if (!engine->hasCapability(BreakModuleCapability)) m_enabledParts &= ~ModulePart; if (!engine->hasCapability(TracePointCapability)) m_enabledParts &= ~TracePointPart; } } auto basicLayout = new QFormLayout(groupBoxBasic); basicLayout->addRow(m_labelType, m_comboBoxType); basicLayout->addRow(m_labelFileName, m_pathChooserFileName); basicLayout->addRow(m_labelLineNumber, m_lineEditLineNumber); basicLayout->addRow(m_labelEnabled, m_checkBoxEnabled); basicLayout->addRow(m_labelAddress, m_lineEditAddress); basicLayout->addRow(m_labelExpression, m_lineEditExpression); basicLayout->addRow(m_labelFunction, m_lineEditFunction); basicLayout->addRow(m_labelOneShot, m_checkBoxOneShot); auto advancedLeftLayout = new QFormLayout(); advancedLeftLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); advancedLeftLayout->addRow(m_labelCondition, m_lineEditCondition); advancedLeftLayout->addRow(m_labelIgnoreCount, m_spinBoxIgnoreCount); advancedLeftLayout->addRow(m_labelThreadSpec, m_lineEditThreadSpec); advancedLeftLayout->addRow(m_labelUseFullPath, m_comboBoxPathUsage); advancedLeftLayout->addRow(m_labelModule, m_lineEditModule); auto advancedRightLayout = new QFormLayout(); advancedRightLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); advancedRightLayout->addRow(m_labelCommands, m_textEditCommands); advancedRightLayout->addRow(m_labelTracepoint, m_checkBoxTracepoint); advancedRightLayout->addRow(m_labelMessage, m_lineEditMessage); auto horizontalLayout = new QHBoxLayout(groupBoxAdvanced); horizontalLayout->addLayout(advancedLeftLayout); horizontalLayout->addSpacing(15); horizontalLayout->addLayout(advancedRightLayout); auto verticalLayout = new QVBoxLayout(this); verticalLayout->addWidget(groupBoxBasic); verticalLayout->addSpacing(10); verticalLayout->addWidget(groupBoxAdvanced); verticalLayout->addSpacing(10); verticalLayout->addWidget(m_buttonBox); verticalLayout->setStretchFactor(groupBoxAdvanced, 10); connect(m_comboBoxType, static_cast<void(QComboBox::*)(int)>(&QComboBox::activated), this, &BreakpointDialog::typeChanged); connect(m_buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(m_buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); }