From 041ff11aae2bad95d7358023dd054da590c9c3cd Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 22 Jul 2022 16:14:13 +0200 Subject: [PATCH] Core: Inline urllocatorfilter.ui Change-Id: I083bbd17cc0dc7134372f8712ee30fdb31232601 Reviewed-by: hjk Reviewed-by: --- src/plugins/coreplugin/CMakeLists.txt | 2 +- src/plugins/coreplugin/coreplugin.qbs | 3 +- .../locator/locatorsettingspage.cpp | 1 + .../coreplugin/locator/urllocatorfilter.cpp | 127 ++++++---- .../coreplugin/locator/urllocatorfilter.h | 17 +- .../coreplugin/locator/urllocatorfilter.ui | 234 ------------------ 6 files changed, 102 insertions(+), 282 deletions(-) delete mode 100644 src/plugins/coreplugin/locator/urllocatorfilter.ui diff --git a/src/plugins/coreplugin/CMakeLists.txt b/src/plugins/coreplugin/CMakeLists.txt index d97b40493b8..61ba1599c01 100644 --- a/src/plugins/coreplugin/CMakeLists.txt +++ b/src/plugins/coreplugin/CMakeLists.txt @@ -119,7 +119,7 @@ add_qtc_plugin(Core locator/locatorwidget.cpp locator/locatorwidget.h locator/opendocumentsfilter.cpp locator/opendocumentsfilter.h locator/spotlightlocatorfilter.h locator/spotlightlocatorfilter.cpp - locator/urllocatorfilter.cpp locator/urllocatorfilter.h locator/urllocatorfilter.ui + locator/urllocatorfilter.cpp locator/urllocatorfilter.h loggingviewer.cpp loggingviewer.h loggingmanager.cpp loggingmanager.h mainwindow.cpp mainwindow.h diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs index 7bbe3010501..a659e5fcf11 100644 --- a/src/plugins/coreplugin/coreplugin.qbs +++ b/src/plugins/coreplugin/coreplugin.qbs @@ -371,8 +371,7 @@ Project { "spotlightlocatorfilter.h", "spotlightlocatorfilter.cpp", "urllocatorfilter.cpp", - "urllocatorfilter.h", - "urllocatorfilter.ui" + "urllocatorfilter.h" ] } diff --git a/src/plugins/coreplugin/locator/locatorsettingspage.cpp b/src/plugins/coreplugin/locator/locatorsettingspage.cpp index e2e3420dd67..af1816927be 100644 --- a/src/plugins/coreplugin/locator/locatorsettingspage.cpp +++ b/src/plugins/coreplugin/locator/locatorsettingspage.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include diff --git a/src/plugins/coreplugin/locator/urllocatorfilter.cpp b/src/plugins/coreplugin/locator/urllocatorfilter.cpp index 061c5c49bac..ae94ee44280 100644 --- a/src/plugins/coreplugin/locator/urllocatorfilter.cpp +++ b/src/plugins/coreplugin/locator/urllocatorfilter.cpp @@ -26,12 +26,19 @@ #include "urllocatorfilter.h" #include +#include #include +#include #include +#include #include #include +#include +#include +#include #include +#include #include using namespace Utils; @@ -43,83 +50,119 @@ UrlFilterOptions::UrlFilterOptions(UrlLocatorFilter *filter, QWidget *parent) : QDialog(parent) , m_filter(filter) { - m_ui.setupUi(this); setWindowTitle(ILocatorFilter::msgConfigureDialogTitle()); - m_ui.prefixLabel->setText(Core::ILocatorFilter::msgPrefixLabel()); - m_ui.prefixLabel->setToolTip(Core::ILocatorFilter::msgPrefixToolTip()); - m_ui.includeByDefault->setText(Core::ILocatorFilter::msgIncludeByDefault()); - m_ui.includeByDefault->setToolTip(Core::ILocatorFilter::msgIncludeByDefaultToolTip()); - m_ui.shortcutEdit->setText(m_filter->shortcutString()); - m_ui.includeByDefault->setChecked(m_filter->isIncludedByDefault()); - m_ui.nameEdit->setText(filter->displayName()); - m_ui.nameEdit->selectAll(); - m_ui.nameLabel->setVisible(filter->isCustomFilter()); - m_ui.nameEdit->setVisible(filter->isCustomFilter()); - m_ui.listWidget->setToolTip( - tr("Add \"%1\" placeholder for the query string.\nDouble-click to edit item.")); + resize(600, 400); + auto nameLabel = new QLabel(tr("Name:")); + nameLabel->setVisible(filter->isCustomFilter()); + + nameEdit = new QLineEdit; + nameEdit->setText(filter->displayName()); + nameEdit->selectAll(); + nameEdit->setVisible(filter->isCustomFilter()); + + listWidget = new QListWidget; + listWidget->setDragDropMode(QAbstractItemView::InternalMove); + listWidget->setToolTip( + tr("Add \"%1\" placeholder for the query string.\nDouble-click to edit item.")); const QStringList remoteUrls = m_filter->remoteUrls(); for (const QString &url : remoteUrls) { auto item = new QListWidgetItem(url); - m_ui.listWidget->addItem(item); + listWidget->addItem(item); item->setFlags(item->flags() | Qt::ItemIsEditable); } - connect(m_ui.add, &QPushButton::clicked, this, &UrlFilterOptions::addNewItem); - connect(m_ui.remove, &QPushButton::clicked, this, &UrlFilterOptions::removeItem); - connect(m_ui.moveUp, &QPushButton::clicked, this, &UrlFilterOptions::moveItemUp); - connect(m_ui.moveDown, &QPushButton::clicked, this, &UrlFilterOptions::moveItemDown); - connect(m_ui.listWidget, + auto add = new QPushButton(tr("Add")); + remove = new QPushButton(tr("Remove")); + moveUp = new QPushButton(tr("Move Up")); + moveDown = new QPushButton(tr("Move Down")); + + auto prefixLabel = new QLabel; + prefixLabel->setText(Core::ILocatorFilter::msgPrefixLabel()); + prefixLabel->setToolTip(Core::ILocatorFilter::msgPrefixToolTip()); + + shortcutEdit = new QLineEdit; + shortcutEdit->setText(m_filter->shortcutString()); + + includeByDefault = new QCheckBox; + includeByDefault->setText(Core::ILocatorFilter::msgIncludeByDefault()); + includeByDefault->setToolTip(Core::ILocatorFilter::msgIncludeByDefaultToolTip()); + includeByDefault->setChecked(m_filter->isIncludedByDefault()); + + auto buttonBox = new QDialogButtonBox; + buttonBox->setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok); + + using namespace Layouting; + static const Break br; + static const Stretch st; + + Column buttons { add, remove, moveUp, moveDown, st }; + + Grid { + nameLabel, nameEdit, br, + Column { tr("URLs:"), st }, Row { listWidget, buttons}, br, + prefixLabel, Row { shortcutEdit, includeByDefault, st }, br, + Span(2, buttonBox) + }.attachTo(this); + + connect(add, &QPushButton::clicked, this, &UrlFilterOptions::addNewItem); + connect(remove, &QPushButton::clicked, this, &UrlFilterOptions::removeItem); + connect(moveUp, &QPushButton::clicked, this, &UrlFilterOptions::moveItemUp); + connect(moveDown, &QPushButton::clicked, this, &UrlFilterOptions::moveItemDown); + connect(listWidget, &QListWidget::currentItemChanged, this, &UrlFilterOptions::updateActionButtons); + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + updateActionButtons(); } void UrlFilterOptions::addNewItem() { QListWidgetItem *item = new QListWidgetItem("https://www.example.com/search?query=%1"); - m_ui.listWidget->addItem(item); + listWidget->addItem(item); item->setSelected(true); item->setFlags(item->flags() | Qt::ItemIsEditable); - m_ui.listWidget->setCurrentItem(item); - m_ui.listWidget->editItem(item); + listWidget->setCurrentItem(item); + listWidget->editItem(item); } void UrlFilterOptions::removeItem() { - if (QListWidgetItem *item = m_ui.listWidget->currentItem()) { - m_ui.listWidget->removeItemWidget(item); + if (QListWidgetItem *item = listWidget->currentItem()) { + listWidget->removeItemWidget(item); delete item; } } void UrlFilterOptions::moveItemUp() { - const int row = m_ui.listWidget->currentRow(); + const int row = listWidget->currentRow(); if (row > 0) { - QListWidgetItem *item = m_ui.listWidget->takeItem(row); - m_ui.listWidget->insertItem(row - 1, item); - m_ui.listWidget->setCurrentRow(row - 1); + QListWidgetItem *item = listWidget->takeItem(row); + listWidget->insertItem(row - 1, item); + listWidget->setCurrentRow(row - 1); } } void UrlFilterOptions::moveItemDown() { - const int row = m_ui.listWidget->currentRow(); - if (row >= 0 && row < m_ui.listWidget->count() - 1) { - QListWidgetItem *item = m_ui.listWidget->takeItem(row); - m_ui.listWidget->insertItem(row + 1, item); - m_ui.listWidget->setCurrentRow(row + 1); + const int row = listWidget->currentRow(); + if (row >= 0 && row < listWidget->count() - 1) { + QListWidgetItem *item = listWidget->takeItem(row); + listWidget->insertItem(row + 1, item); + listWidget->setCurrentRow(row + 1); } } void UrlFilterOptions::updateActionButtons() { - m_ui.remove->setEnabled(m_ui.listWidget->currentItem()); - const int row = m_ui.listWidget->currentRow(); - m_ui.moveUp->setEnabled(row > 0); - m_ui.moveDown->setEnabled(row >= 0 && row < m_ui.listWidget->count() - 1); + remove->setEnabled(listWidget->currentItem()); + const int row = listWidget->currentRow(); + moveUp->setEnabled(row > 0); + moveDown->setEnabled(row >= 0 && row < listWidget->count() - 1); } } // namespace Internal @@ -230,12 +273,12 @@ bool UrlLocatorFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) if (optionsDialog.exec() == QDialog::Accepted) { QMutexLocker lock(&m_mutex); m_remoteUrls.clear(); - setIncludedByDefault(optionsDialog.m_ui.includeByDefault->isChecked()); - setShortcutString(optionsDialog.m_ui.shortcutEdit->text().trimmed()); - for (int i = 0; i < optionsDialog.m_ui.listWidget->count(); ++i) - m_remoteUrls.append(optionsDialog.m_ui.listWidget->item(i)->text()); + setIncludedByDefault(optionsDialog.includeByDefault->isChecked()); + setShortcutString(optionsDialog.shortcutEdit->text().trimmed()); + for (int i = 0; i < optionsDialog.listWidget->count(); ++i) + m_remoteUrls.append(optionsDialog.listWidget->item(i)->text()); if (isCustomFilter()) - setDisplayName(optionsDialog.m_ui.nameEdit->text()); + setDisplayName(optionsDialog.nameEdit->text()); return true; } return true; diff --git a/src/plugins/coreplugin/locator/urllocatorfilter.h b/src/plugins/coreplugin/locator/urllocatorfilter.h index 8a011a42f41..5a7bdb01681 100644 --- a/src/plugins/coreplugin/locator/urllocatorfilter.h +++ b/src/plugins/coreplugin/locator/urllocatorfilter.h @@ -25,14 +25,19 @@ #pragma once -#include "ui_urllocatorfilter.h" - #include "ilocatorfilter.h" #include #include +QT_BEGIN_NAMESPACE +class QCheckBox; +class QLineEdit; +class QListWidget; +class QPushButton; +QT_END_NAMESPACE + namespace Core { class CORE_EXPORT UrlLocatorFilter final : public Core::ILocatorFilter @@ -87,7 +92,13 @@ private: void updateActionButtons(); UrlLocatorFilter *m_filter = nullptr; - Ui::UrlFilterOptions m_ui; + QLineEdit *nameEdit; + QListWidget *listWidget; + QPushButton *remove; + QPushButton *moveUp; + QPushButton *moveDown; + QLineEdit *shortcutEdit; + QCheckBox *includeByDefault; }; } // namespace Internal diff --git a/src/plugins/coreplugin/locator/urllocatorfilter.ui b/src/plugins/coreplugin/locator/urllocatorfilter.ui deleted file mode 100644 index 56340cc88fa..00000000000 --- a/src/plugins/coreplugin/locator/urllocatorfilter.ui +++ /dev/null @@ -1,234 +0,0 @@ - - - Core::Internal::UrlFilterOptions - - - - 0 - 0 - 600 - 400 - - - - Filter Configuration - - - - - - Name: - - - - - - - - - - - - URLs: - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - QAbstractItemView::InternalMove - - - - - - - - - - 21 - 21 - - - - Add - - - - - - - - 21 - 21 - - - - Remove - - - - - - - - 21 - 21 - - - - Move Up - - - - - - - - 21 - 21 - - - - Move Down - - - - - - - Qt::Vertical - - - - 20 - 20 - - - - - - - - - - - - - 0 - 0 - - - - Prefix: - - - shortcutEdit - - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Include by default - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - Core::Internal::UrlFilterOptions - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Core::Internal::UrlFilterOptions - reject() - - - 316 - 260 - - - 286 - 274 - - - - -