diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 318c30d7eff..a24d9b7f2a8 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -472,6 +472,12 @@ PushButton::PushButton(std::initializer_list items) applyItems(widget, items); } +HorizontalRule::HorizontalRule(std::initializer_list items) +{ + widget = createHr(); + applyItems(widget, items); +} + // "Properties" LayoutBuilder::Setter title(const QString &title, BoolAspect *checker) @@ -524,6 +530,14 @@ LayoutBuilder::Setter tooltip(const QString &toolTip) }; } +QWidget *createHr(QWidget *parent) +{ + auto frame = new QFrame(parent); + frame->setFrameShape(QFrame::HLine); + frame->setFrameShadow(QFrame::Sunken); + return frame; +} + LayoutBuilder::Break br; LayoutBuilder::Stretch st; LayoutBuilder::Space empty(0); diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index f0ddf8ac723..fa7a17511ac 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -159,6 +159,7 @@ QTCREATOR_UTILS_EXPORT LayoutBuilder::Setter text(const QString &text); QTCREATOR_UTILS_EXPORT LayoutBuilder::Setter tooltip(const QString &toolTip); QTCREATOR_UTILS_EXPORT LayoutBuilder::Setter onClicked(const std::function &func, QObject *guard = nullptr); +QTCREATOR_UTILS_EXPORT QWidget *createHr(QWidget *parent = nullptr); class QTCREATOR_UTILS_EXPORT Group : public LayoutBuilder::LayoutItem { @@ -172,6 +173,12 @@ public: PushButton(std::initializer_list items); }; +class QTCREATOR_UTILS_EXPORT HorizontalRule : public LayoutBuilder::LayoutItem +{ +public: + HorizontalRule(std::initializer_list items); +}; + class QTCREATOR_UTILS_EXPORT Column : public LayoutBuilder { public: diff --git a/src/plugins/android/androidsdkmanagerwidget.cpp b/src/plugins/android/androidsdkmanagerwidget.cpp index 84fb2f3adb0..052a152b5cb 100644 --- a/src/plugins/android/androidsdkmanagerwidget.cpp +++ b/src/plugins/android/androidsdkmanagerwidget.cpp @@ -11,8 +11,8 @@ #include #include -#include #include +#include #include #include @@ -76,10 +76,6 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config, auto obsoleteCheckBox = new QCheckBox(tr("Include obsolete")); - auto line = new QFrame; - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - auto showAvailableRadio = new QRadioButton(tr("Available")); auto showInstalledRadio = new QRadioButton(tr("Installed")); auto showAllRadio = new QRadioButton(tr("All")); @@ -141,7 +137,7 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config, Column { Row { tr("Channel:"), channelCheckbox }, obsoleteCheckBox, - line, + HorizontalRule {}, showAvailableRadio, showInstalledRadio, showAllRadio, diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index e5ddc6836bd..f91a4c592c9 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -820,14 +821,6 @@ void TestRunner::reportResult(ResultType type, const QString &description) /*************************************************************************************************/ -static QFrame *createLine(QWidget *parent) -{ - QFrame *line = new QFrame(parent); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - return line; -} - RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString &buildTargetKey, QWidget *parent) : QDialog(parent) @@ -853,7 +846,7 @@ RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString & formLayout->addRow(m_details); formLayout->addRow(Tr::tr("Run Configuration:"), m_rcCombo); formLayout->addRow(m_rememberCB); - formLayout->addRow(createLine(this)); + formLayout->addRow(Layouting::createHr(this)); formLayout->addRow(Tr::tr("Executable:"), m_executable); formLayout->addRow(Tr::tr("Arguments:"), m_arguments); formLayout->addRow(Tr::tr("Working Directory:"), m_workingDir); @@ -861,7 +854,7 @@ RunConfigurationSelectionDialog::RunConfigurationSelectionDialog(const QString & auto vboxLayout = new QVBoxLayout(this); vboxLayout->addLayout(formLayout); vboxLayout->addStretch(); - vboxLayout->addWidget(createLine(this)); + vboxLayout->addWidget(Layouting::createHr(this)); vboxLayout->addWidget(m_buttonBox); connect(m_rcCombo, &QComboBox::currentTextChanged, diff --git a/src/plugins/clearcase/checkoutdialog.cpp b/src/plugins/clearcase/checkoutdialog.cpp index 8c827d00fde..857e55dc591 100644 --- a/src/plugins/clearcase/checkoutdialog.cpp +++ b/src/plugins/clearcase/checkoutdialog.cpp @@ -6,6 +6,8 @@ #include "activityselector.h" #include "ui_checkoutdialog.h" +#include + #include namespace ClearCase { @@ -22,12 +24,7 @@ CheckOutDialog::CheckOutDialog(const QString &fileName, bool isUcm, bool showCom m_actSelector = new ActivitySelector(this); ui->verticalLayout->insertWidget(0, m_actSelector); - - auto line = new QFrame(this); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - - ui->verticalLayout->insertWidget(1, line); + ui->verticalLayout->insertWidget(1, Utils::Layouting::createHr()); } if (!showComment) diff --git a/src/plugins/clearcase/clearcasesubmiteditorwidget.cpp b/src/plugins/clearcase/clearcasesubmiteditorwidget.cpp index baa8c9f51e7..b089c7b83b2 100644 --- a/src/plugins/clearcase/clearcasesubmiteditorwidget.cpp +++ b/src/plugins/clearcase/clearcasesubmiteditorwidget.cpp @@ -5,8 +5,9 @@ #include "activityselector.h" +#include + #include -#include #include using namespace ClearCase::Internal; @@ -67,11 +68,7 @@ void ClearCaseSubmitEditorWidget::addActivitySelector(bool isUcm) m_actSelector = new ActivitySelector; m_verticalLayout->insertWidget(0, m_actSelector); - - auto line = new QFrame; - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - m_verticalLayout->insertWidget(1, line); + m_verticalLayout->insertWidget(1, Utils::Layouting::createHr()); } QString ClearCaseSubmitEditorWidget::commitName() const diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp index 2eabc26da5b..954849eac53 100644 --- a/src/plugins/coreplugin/editormanager/editorview.cpp +++ b/src/plugins/coreplugin/editormanager/editorview.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -47,7 +48,7 @@ EditorView::EditorView(SplitterOrView *parentSplitterOrView, QWidget *parent) : m_toolBar(new EditorToolBar(this)), m_container(new QStackedWidget(this)), m_infoBarDisplay(new InfoBarDisplay(this)), - m_statusHLine(new QFrame(this)), + m_statusHLine(Layouting::createHr(this)), m_statusWidget(new QFrame(this)) { auto tl = new QVBoxLayout(this); @@ -79,8 +80,6 @@ EditorView::EditorView(SplitterOrView *parentSplitterOrView, QWidget *parent) : tl->addWidget(new FindToolBarPlaceHolder(this)); { - m_statusHLine->setFrameStyle(QFrame::HLine); - m_statusWidget->setFrameStyle(QFrame::NoFrame); m_statusWidget->setLineWidth(0); m_statusWidget->setAutoFillBackground(true); diff --git a/src/plugins/coreplugin/editormanager/editorview.h b/src/plugins/coreplugin/editormanager/editorview.h index d395851fdee..51d53a17549 100644 --- a/src/plugins/coreplugin/editormanager/editorview.h +++ b/src/plugins/coreplugin/editormanager/editorview.h @@ -113,7 +113,7 @@ private: QStackedWidget *m_container; Utils::InfoBarDisplay *m_infoBarDisplay; QString m_statusWidgetId; - QFrame *m_statusHLine; + QWidget *m_statusHLine; QFrame *m_statusWidget; QLabel *m_statusWidgetLabel; QToolButton *m_statusWidgetButton; diff --git a/src/plugins/coreplugin/foldernavigationwidget.cpp b/src/plugins/coreplugin/foldernavigationwidget.cpp index 34623b0d025..70f3c689249 100644 --- a/src/plugins/coreplugin/foldernavigationwidget.cpp +++ b/src/plugins/coreplugin/foldernavigationwidget.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -85,13 +86,6 @@ FolderNavigationWidgetFactory *FolderNavigationWidgetFactory::instance() namespace Internal { -static QWidget *createHLine() -{ - auto widget = new QFrame; - widget->setFrameStyle(QFrame::Plain | QFrame::HLine); - return widget; -} - // Call delayLayoutOnce to delay reporting the new heightForWidget by the double-click interval. // Call setScrollBarOnce to set a scroll bar's value once during layouting (where heightForWidget // is called). @@ -318,7 +312,7 @@ FolderNavigationWidget::FolderNavigationWidget(QWidget *parent) : QWidget(parent crumbLayout->setContentsMargins(4, 4, 4, 4); crumbLayout->addWidget(m_crumbLabel); crumbContainerLayout->addLayout(crumbLayout); - crumbContainerLayout->addWidget(createHLine()); + crumbContainerLayout->addWidget(Layouting::createHr(this)); m_crumbLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop); auto layout = new QVBoxLayout(); diff --git a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp index 8620f27cf9b..9d5e8543ac6 100644 --- a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp @@ -322,9 +322,7 @@ ClangdSettingsWidget::ClangdSettingsWidget(const ClangdSettings::Data &settingsD else Core::EditorManager::openEditor(Utils::FilePath::fromString(link)); }); - const auto separator = new QFrame; - separator->setFrameShape(QFrame::HLine); - layout->addWidget(separator); + layout->addWidget(Utils::Layouting::createHr()); layout->addWidget(configFilesHelpLabel); layout->addStretch(1); diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index abd46384389..1bd8bda761d 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -3152,9 +3153,7 @@ public: defaultImplTargetComboBox->setCurrentIndex(implTargetStrings.size() - 1); const auto mainLayout = new QVBoxLayout(this); mainLayout->addLayout(defaultImplTargetLayout); - const auto separator = new QFrame(); - separator->setFrameShape(QFrame::HLine); - mainLayout->addWidget(separator); + mainLayout->addWidget(Utils::Layouting::createHr(this)); mainLayout->addLayout(candidatesLayout); mainLayout->addWidget(buttonBox); } diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 3defce1fc12..da0e6fd20fd 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -262,14 +263,6 @@ StartApplicationDialog::StartApplicationDialog(QWidget *parent) "If empty, $SYSROOT/usr/lib/debug will be chosen.")); d->debuginfoPathChooser->setHistoryCompleter("Debugger.DebugLocation.History"); - auto line = new QFrame(this); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - - auto line2 = new QFrame(this); - line2->setFrameShape(QFrame::HLine); - line2->setFrameShadow(QFrame::Sunken); - d->historyComboBox = new QComboBox(this); d->buttonBox = new QDialogButtonBox(this); @@ -292,13 +285,13 @@ StartApplicationDialog::StartApplicationDialog(QWidget *parent) formLayout->addRow(Tr::tr("Debug &information:"), d->debuginfoPathChooser); formLayout->addRow(d->channelOverrideHintLabel); formLayout->addRow(d->channelOverrideLabel, d->channelOverrideEdit); - formLayout->addRow(line2); + formLayout->addRow(Layouting::createHr()); formLayout->addRow(Tr::tr("&Recent:"), d->historyComboBox); auto verticalLayout = new QVBoxLayout(this); verticalLayout->addLayout(formLayout); verticalLayout->addStretch(); - verticalLayout->addWidget(line); + verticalLayout->addWidget(Layouting::createHr()); verticalLayout->addWidget(d->buttonBox); connect(d->localExecutablePathChooser, &PathChooser::rawPathChanged, diff --git a/src/plugins/debugger/loadcoredialog.cpp b/src/plugins/debugger/loadcoredialog.cpp index 6b89eb168b7..01515197bb8 100644 --- a/src/plugins/debugger/loadcoredialog.cpp +++ b/src/plugins/debugger/loadcoredialog.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -258,17 +259,12 @@ AttachCoreDialog::AttachCoreDialog(QWidget *parent) formLayout->addRow(Tr::tr("&Executable or symbol file:"), d->symbolFileName); formLayout->addRow(Tr::tr("Override &start script:"), d->overrideStartScriptFileName); formLayout->addRow(Tr::tr("Override S&ysRoot:"), d->sysRootDirectory); - - auto line = new QFrame(this); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - formLayout->addRow(d->buttonBox); auto vboxLayout = new QVBoxLayout(this); vboxLayout->addLayout(formLayout); vboxLayout->addStretch(); - vboxLayout->addWidget(line); + vboxLayout->addWidget(Layouting::createHr()); vboxLayout->addWidget(d->buttonBox); } diff --git a/src/plugins/ios/iossettingswidget.cpp b/src/plugins/ios/iossettingswidget.cpp index 20eb4479fb7..4eb75051097 100644 --- a/src/plugins/ios/iossettingswidget.cpp +++ b/src/plugins/ios/iossettingswidget.cpp @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -71,10 +70,6 @@ IosSettingsWidget::IosSettingsWidget() m_resetButton->setEnabled(false); m_resetButton->setToolTip(tr("Reset contents and settings of simulator devices.")); - auto line = new QFrame; - line->setFrameShadow(QFrame::Raised); - line->setFrameShape(QFrame::HLine); - auto createButton = new QPushButton(tr("Create")); createButton->setToolTip(tr("Create a new simulator device.")); @@ -121,7 +116,7 @@ IosSettingsWidget::IosSettingsWidget() st }, }, - line, + HorizontalRule {}, Row { tr("Screenshot directory:"), m_pathWidget } } } diff --git a/src/plugins/modeleditor/modeleditor.cpp b/src/plugins/modeleditor/modeleditor.cpp index fe5c8bd7565..e0f1838c582 100644 --- a/src/plugins/modeleditor/modeleditor.cpp +++ b/src/plugins/modeleditor/modeleditor.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include #include @@ -1120,9 +1121,7 @@ void ModelEditor::initToolbars() } case qmt::Toolbar::TooltypeSeparator: { - auto horizLine1 = new QFrame(d->leftToolBox); - horizLine1->setFrameShape(QFrame::HLine); - toolBarLayout->addWidget(horizLine1); + toolBarLayout->addWidget(Layouting::createHr(d->leftToolBox)); break; } } @@ -1155,9 +1154,7 @@ void ModelEditor::initToolbars() new DragTool(QIcon(":/modelinglib/48x48/item.png"), tr("Item"), tr("New Item"), QLatin1String(qmt::ELEMENT_TYPE_ITEM), QString(), toolBar)); - auto horizLine1 = new QFrame(d->leftToolBox); - horizLine1->setFrameShape(QFrame::HLine); - toolBarLayout->addWidget(horizLine1); + toolBarLayout->addWidget(Layouting::createHr(d->leftToolBox)); toolBarLayout->addWidget( new DragTool(QIcon(":/modelinglib/48x48/annotation.png"), tr("Annotation"), QString(), QLatin1String(qmt::ELEMENT_TYPE_ANNOTATION), diff --git a/src/plugins/perfprofiler/perfloaddialog.cpp b/src/plugins/perfprofiler/perfloaddialog.cpp index 99aec0de738..2cfa0726ad4 100644 --- a/src/plugins/perfprofiler/perfloaddialog.cpp +++ b/src/plugins/perfprofiler/perfloaddialog.cpp @@ -15,7 +15,6 @@ #include #include -#include #include #include #include @@ -46,10 +45,6 @@ PerfLoadDialog::PerfLoadDialog(QWidget *parent) m_kitChooser = new ProjectExplorer::KitChooser(this); m_kitChooser->populate(); - auto line = new QFrame(this); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - auto buttonBox = new QDialogButtonBox(this); buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); @@ -62,7 +57,7 @@ PerfLoadDialog::PerfLoadDialog(QWidget *parent) label3, Span(2, m_kitChooser) }, st, - line, + HorizontalRule {}, buttonBox }.attachTo(this); diff --git a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp index e5a939b8778..1dc64722288 100644 --- a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp +++ b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp @@ -156,10 +156,6 @@ DeviceProcessesDialogPrivate::DeviceProcessesDialogPrivate(KitChooser *chooser, mainLayout->addWidget(errorText); mainLayout->addWidget(buttonBox); -// QFrame *line = new QFrame(this); -// line->setFrameShape(QFrame::HLine); -// line->setFrameShadow(QFrame::Sunken); - proxyModel.setFilterRegularExpression(processFilterLineEdit->text()); connect(processFilterLineEdit, &FancyLineEdit::textChanged, diff --git a/src/plugins/projectexplorer/panelswidget.cpp b/src/plugins/projectexplorer/panelswidget.cpp index f5048821d00..55444db033a 100644 --- a/src/plugins/projectexplorer/panelswidget.cpp +++ b/src/plugins/projectexplorer/panelswidget.cpp @@ -4,6 +4,7 @@ #include "panelswidget.h" #include +#include #include #include #include @@ -103,13 +104,7 @@ void PanelsWidget::addPropertiesPanel(const QString &displayName) f.setPointSizeF(f.pointSizeF() * 1.6); nameLabel->setFont(f); m_layout->addWidget(nameLabel); - - // line: - auto line = new QFrame(m_root); - line->setFrameShape(QFrame::HLine); - line->setForegroundRole(QPalette::Midlight); - line->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - m_layout->addWidget(line); + m_layout->addWidget(Layouting::createHr()); } void PanelsWidget::addWidget(QWidget *widget) @@ -160,10 +155,7 @@ void PanelsWidget::addGlobalSettingsProperties(ProjectSettingsWidget *widget) } horizontalLayout->addStretch(1); m_layout->addLayout(horizontalLayout); - - auto separator = new QFrame(m_root); - separator->setFrameShape(QFrame::HLine); - m_layout->addWidget(separator); + m_layout->addWidget(Layouting::createHr()); } } // ProjectExplorer diff --git a/src/plugins/projectexplorer/sessiondialog.cpp b/src/plugins/projectexplorer/sessiondialog.cpp index 203901f0e91..e902e736aa9 100644 --- a/src/plugins/projectexplorer/sessiondialog.cpp +++ b/src/plugins/projectexplorer/sessiondialog.cpp @@ -11,7 +11,6 @@ #include #include -#include #include #include #include @@ -127,10 +126,6 @@ SessionDialog::SessionDialog(QWidget *parent) : QDialog(parent) m_autoLoadCheckBox = new QCheckBox(tr("Restore last session on startup")); - auto line = new QFrame(this); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - auto buttonBox = new QDialogButtonBox(this); buttonBox->setStandardButtons(QDialogButtonBox::Close); @@ -157,7 +152,7 @@ SessionDialog::SessionDialog(QWidget *parent) : QDialog(parent) } }, m_autoLoadCheckBox, - line, + HorizontalRule {}, Row { whatsASessionLabel, buttonBox }, }.attachTo(this); diff --git a/src/plugins/qbsprojectmanager/qbsprofilessettingspage.cpp b/src/plugins/qbsprojectmanager/qbsprofilessettingspage.cpp index 6dc833f4f74..8d51b07f123 100644 --- a/src/plugins/qbsprojectmanager/qbsprofilessettingspage.cpp +++ b/src/plugins/qbsprojectmanager/qbsprofilessettingspage.cpp @@ -134,17 +134,13 @@ QbsProfilesSettingsWidget::QbsProfilesSettingsWidget() m_profileValueLabel = new QLabel; m_propertiesView = new QTreeView; - auto line = new QFrame; - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - using namespace Utils::Layouting; Column { Form { tr("Kit:"), m_kitsComboBox, br, tr("Associated profile:"), m_profileValueLabel, br, }, - line, + HorizontalRule {}, tr("Profile properties:"), Row { m_propertiesView, diff --git a/src/shared/help/bookmarkmanager.cpp b/src/shared/help/bookmarkmanager.cpp index 25073098423..4e6cf48437c 100644 --- a/src/shared/help/bookmarkmanager.cpp +++ b/src/shared/help/bookmarkmanager.cpp @@ -60,10 +60,6 @@ BookmarkDialog::BookmarkDialog(BookmarkManager *manager, const QString &title, m_toolButton = new QToolButton; m_toolButton->setFixedSize(24, 24); - auto line = new QFrame; - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - line->setForegroundRole(QPalette::Midlight); m_treeView = new QTreeView; m_treeView->setModel(proxyModel); @@ -83,7 +79,7 @@ BookmarkDialog::BookmarkDialog(BookmarkManager *manager, const QString &title, tr("Bookmark:"), m_bookmarkEdit, br, tr("Add in folder:"), m_bookmarkFolders, br, }, - Row { m_toolButton, line, }, + Row { m_toolButton, HorizontalRule {}, }, m_treeView, Row { m_newFolderButton, m_buttonBox, } }.attachTo(this);