diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2023-03-06 15:51:03 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2023-03-09 14:59:22 +0200 |
commit | c3ea614cf37d965a24d2217f50d0ebf78881ee71 (patch) | |
tree | 99144c1a2dfe6687ac3d220b20cdba776b121504 /src/libs | |
parent | 0d1ed4d5c4de1ab000062be6cfab8822ca1b867f (diff) |
Move 'Browse QBSP files' button into the wizard page layout
Part of updating the widgets based on the installer facelift design.
Move the button from the navigation footer to the main page layout.
Task-number: QTIFW-2994
Change-Id: I3135f6c1b770c501943e9bb1bc65ae79c202c2d9
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/componentselectionpage_p.cpp | 101 | ||||
-rw-r--r-- | src/libs/installer/componentselectionpage_p.h | 4 |
2 files changed, 56 insertions, 49 deletions
diff --git a/src/libs/installer/componentselectionpage_p.cpp b/src/libs/installer/componentselectionpage_p.cpp index 875f4431a..f9987e162 100644 --- a/src/libs/installer/componentselectionpage_p.cpp +++ b/src/libs/installer/componentselectionpage_p.cpp @@ -99,6 +99,8 @@ ComponentSelectionPagePrivate::ComponentSelectionPagePrivate(ComponentSelectionP m_tabWidget->tabBar()->setObjectName(QLatin1String("ComponentSelectionTabBar")); m_tabWidget->hide(); + m_rightSideVLayout = new QVBoxLayout; + QScrollArea *descriptionScrollArea = new QScrollArea(q); descriptionScrollArea->setWidgetResizable(true); descriptionScrollArea->setFrameShape(QFrame::NoFrame); @@ -118,6 +120,20 @@ ComponentSelectionPagePrivate::ComponentSelectionPagePrivate(ComponentSelectionP m_sizeLabel->setObjectName(QLatin1String("ComponentSizeLabel")); descriptionVLayout->addWidget(m_sizeLabel); + m_qbspPushButton = new QPushButton(q); + m_qbspPushButton->setVisible(false); + m_qbspPushButton->setText(ComponentSelectionPage::tr("Browse &QBSP files")); + m_qbspPushButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + m_qbspPushButton->setToolTip( + ComponentSelectionPage::tr("Select a Qt Board Support Package file to install " + "additional content that is not directly available from the online repositories.")); + + connect(m_qbspPushButton, &QPushButton::clicked, + this, &ComponentSelectionPagePrivate::qbspButtonClicked); + + m_rightSideVLayout->addWidget(m_descriptionBaseWidget); + m_rightSideVLayout->addWidget(m_qbspPushButton, 0, Qt::AlignRight | Qt::AlignBottom); + QHBoxLayout *topHLayout = new QHBoxLayout; m_checkStateComboBox = new QComboBox(q); m_checkStateComboBox->setObjectName(QLatin1String("CheckStateComboBox")); @@ -169,9 +185,16 @@ ComponentSelectionPagePrivate::ComponentSelectionPagePrivate(ComponentSelectionP QWidget *mainStackedWidget = new QWidget(); m_mainGLayout = new QGridLayout(mainStackedWidget); + { + int left = 0; + int top = 0; + int bottom = 0; + m_mainGLayout->getContentsMargins(&left, &top, nullptr, &bottom); + m_mainGLayout->setContentsMargins(left, top, 0, bottom); + } m_mainGLayout->addLayout(topHLayout, 0, 0); m_mainGLayout->addLayout(treeViewVLayout, 1, 0); - m_mainGLayout->addWidget(m_descriptionBaseWidget, 1, 1); + m_mainGLayout->addLayout(m_rightSideVLayout, 1, 1); m_mainGLayout->setColumnStretch(0, 3); m_mainGLayout->setColumnStretch(1, 2); @@ -207,29 +230,13 @@ void ComponentSelectionPagePrivate::allowCompressedRepositoryInstall() void ComponentSelectionPagePrivate::showCompressedRepositoryButton() { - QWizard *wizard = qobject_cast<QWizard*>(m_core->guiObject()); - if (wizard && !(wizard->options() & QWizard::HaveCustomButton2) && m_allowCompressedRepositoryInstall) { - wizard->setOption(QWizard::HaveCustomButton2, true); - wizard->setButtonText(QWizard::CustomButton2, - ComponentSelectionPage::tr("&Browse QBSP files")); - wizard->button(QWizard::CustomButton2)->setToolTip( - ComponentSelectionPage::tr("Select a Qt Board Support Package file to install " - "additional content that is not directly available from the online repositories.")); - connect(wizard, &QWizard::customButtonClicked, - this, &ComponentSelectionPagePrivate::customButtonClicked); - q->gui()->updateButtonLayout(); - } + if (m_allowCompressedRepositoryInstall) + m_qbspPushButton->setVisible(true); } void ComponentSelectionPagePrivate::hideCompressedRepositoryButton() { - QWizard *wizard = qobject_cast<QWizard*>(m_core->guiObject()); - if (wizard && (wizard->options() & QWizard::HaveCustomButton2)) { - wizard->setOption(QWizard::HaveCustomButton2, false); - disconnect(wizard, &QWizard::customButtonClicked, - this, &ComponentSelectionPagePrivate::customButtonClicked); - q->gui()->updateButtonLayout(); - } + m_qbspPushButton->setVisible(false); } void ComponentSelectionPagePrivate::setupCategoryLayout() @@ -276,13 +283,14 @@ void ComponentSelectionPagePrivate::showCategoryLayout(bool show) setupCategoryLayout(); if (show) { - m_mainGLayout->removeWidget(m_descriptionBaseWidget); + m_rightSideVLayout->removeWidget(m_descriptionBaseWidget); m_tabWidget->insertTab(0, m_descriptionBaseWidget, tr("Information")); - m_mainGLayout->addWidget(m_tabWidget, 1, 1); + m_rightSideVLayout->insertWidget(m_rightSideVLayout->count() - 1, m_tabWidget); } else { m_tabWidget->removeTab(0); - m_mainGLayout->removeWidget(m_tabWidget); - m_mainGLayout->addWidget(m_descriptionBaseWidget, 1, 1); + m_rightSideVLayout->removeWidget(m_tabWidget); + m_rightSideVLayout->insertWidget(m_rightSideVLayout->count() - 1, m_descriptionBaseWidget); + m_descriptionBaseWidget->setVisible(true); } m_tabWidget->setVisible(show); m_categoryLayoutVisible = show; @@ -480,8 +488,7 @@ void ComponentSelectionPagePrivate::updateWidgetVisibility(bool show) else m_stackedLayout->setCurrentIndex(0); - if (QAbstractButton *bspButton = q->gui()->button(QWizard::CustomButton2)) - bspButton->setEnabled(!show); + m_qbspPushButton->setEnabled(!show); if (show) { q->gui()->button(QWizard::NextButton)->setEnabled(false); @@ -512,31 +519,29 @@ void ComponentSelectionPagePrivate::fetchRepositoryCategories() m_searchLineEdit->text().isEmpty() ? expandDefault() : expandSearchResults(); } -void ComponentSelectionPagePrivate::customButtonClicked(int which) +void ComponentSelectionPagePrivate::qbspButtonClicked() { - if (QWizard::WizardButton(which) == QWizard::CustomButton2) { - QString defaultDownloadDirectory = - QStandardPaths::writableLocation(QStandardPaths::DownloadLocation); - QStringList fileNames = QFileDialog::getOpenFileNames(nullptr, - ComponentSelectionPage::tr("Open File"),defaultDownloadDirectory, - QLatin1String("QBSP or 7z Files (*.qbsp *.7z)")); - - QSet<Repository> set; - foreach (QString fileName, fileNames) { - Repository repository = Repository::fromUserInput(fileName, true); - repository.setEnabled(true); - set.insert(repository); - } - if (set.count() > 0) { - updateWidgetVisibility(true); - m_core->settings().addTemporaryRepositories(set, false); - if (!m_core->fetchCompressedPackagesTree()) { - MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), - QLatin1String("FailToFetchPackages"), tr("Error"), m_core->error()); - } + QString defaultDownloadDirectory = + QStandardPaths::writableLocation(QStandardPaths::DownloadLocation); + QStringList fileNames = QFileDialog::getOpenFileNames(nullptr, + ComponentSelectionPage::tr("Open File"),defaultDownloadDirectory, + QLatin1String("QBSP or 7z Files (*.qbsp *.7z)")); + + QSet<Repository> set; + foreach (QString fileName, fileNames) { + Repository repository = Repository::fromUserInput(fileName, true); + repository.setEnabled(true); + set.insert(repository); + } + if (set.count() > 0) { + updateWidgetVisibility(true); + m_core->settings().addTemporaryRepositories(set, false); + if (!m_core->fetchCompressedPackagesTree()) { + MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), + QLatin1String("FailToFetchPackages"), tr("Error"), m_core->error()); } - updateWidgetVisibility(false); } + updateWidgetVisibility(false); } /*! diff --git a/src/libs/installer/componentselectionpage_p.h b/src/libs/installer/componentselectionpage_p.h index 25aca1edc..ed68fafa4 100644 --- a/src/libs/installer/componentselectionpage_p.h +++ b/src/libs/installer/componentselectionpage_p.h @@ -84,7 +84,7 @@ public slots: void enableRepositoryCategory(const QString &repositoryName, bool enable); void updateWidgetVisibility(bool show); void fetchRepositoryCategories(); - void customButtonClicked(int which); + void qbspButtonClicked(); void onProgressChanged(int progress); void setMessage(const QString &msg); void setTotalProgress(int totalProgress); @@ -105,12 +105,14 @@ private: QWidget *m_descriptionBaseWidget; QLabel *m_sizeLabel; QLabel *m_descriptionLabel; + QPushButton *m_qbspPushButton; QComboBox *m_checkStateComboBox; QWidget *m_categoryWidget; QGroupBox *m_categoryGroupBox; QLabel *m_metadataProgressLabel; QProgressBar *m_progressBar; QGridLayout *m_mainGLayout; + QVBoxLayout *m_rightSideVLayout; bool m_allowCompressedRepositoryInstall; bool m_categoryLayoutVisible; ComponentModel *m_allModel; |