From aa2145ac5e3382519ad5a420d79b5a35448978dc Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 28 Sep 2022 14:17:50 +0200 Subject: [PATCH] VcsBase: Inline nicknamedialog.ui Change-Id: I98b0d300d78336c67103483bdf5c552b36e0a868 Reviewed-by: Orgad Shaneh --- src/plugins/vcsbase/CMakeLists.txt | 2 +- src/plugins/vcsbase/nicknamedialog.cpp | 57 +++++++++++------- src/plugins/vcsbase/nicknamedialog.h | 17 +++--- src/plugins/vcsbase/nicknamedialog.ui | 82 -------------------------- src/plugins/vcsbase/vcsbase.qbs | 1 - 5 files changed, 45 insertions(+), 114 deletions(-) delete mode 100644 src/plugins/vcsbase/nicknamedialog.ui diff --git a/src/plugins/vcsbase/CMakeLists.txt b/src/plugins/vcsbase/CMakeLists.txt index 489e65a69cb..6f806067777 100644 --- a/src/plugins/vcsbase/CMakeLists.txt +++ b/src/plugins/vcsbase/CMakeLists.txt @@ -9,7 +9,7 @@ add_qtc_plugin(VcsBase cleandialog.cpp cleandialog.h commonvcssettings.cpp commonvcssettings.h diffandloghighlighter.cpp diffandloghighlighter.h - nicknamedialog.cpp nicknamedialog.h nicknamedialog.ui + nicknamedialog.cpp nicknamedialog.h submiteditorfile.cpp submiteditorfile.h submiteditorwidget.cpp submiteditorwidget.h submiteditorwidget.ui submitfieldwidget.cpp submitfieldwidget.h diff --git a/src/plugins/vcsbase/nicknamedialog.cpp b/src/plugins/vcsbase/nicknamedialog.cpp index d5427c9434f..1a5a529950c 100644 --- a/src/plugins/vcsbase/nicknamedialog.cpp +++ b/src/plugins/vcsbase/nicknamedialog.cpp @@ -2,11 +2,14 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0 #include "nicknamedialog.h" -#include "ui_nicknamedialog.h" +#include #include +#include +#include #include +#include #include #include #include @@ -28,8 +31,7 @@ enum { NickNameRole = Qt::UserRole + 1 }; be preferred. */ -namespace VcsBase { -namespace Internal { +namespace VcsBase::Internal { // For code clarity, a struct representing the entries of a mail map file // with parse and model functions. @@ -143,42 +145,54 @@ QDebug operator<<(QDebug d, const NickNameEntry &e) NickNameDialog::NickNameDialog(QStandardItemModel *model, QWidget *parent) : QDialog(parent), - m_ui(new Internal::Ui::NickNameDialog), m_model(model), m_filterModel(new QSortFilterProxyModel(this)) { - m_ui->setupUi(this); + auto filterLineEdit = new FancyLineEdit; + + m_filterTreeView = new TreeView; + + m_buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); + okButton()->setEnabled(false); // Populate model and grow tree to accommodate it m_filterModel->setSourceModel(model); m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); - m_ui->filterTreeView->setModel(m_filterModel); - m_ui->filterTreeView->setActivationMode(DoubleClickActivation); + m_filterTreeView->setModel(m_filterModel); + m_filterTreeView->setActivationMode(DoubleClickActivation); const int columnCount = m_filterModel->columnCount(); int treeWidth = 0; for (int c = 0; c < columnCount; c++) { - m_ui->filterTreeView->resizeColumnToContents(c); - treeWidth += m_ui->filterTreeView->columnWidth(c); + m_filterTreeView->resizeColumnToContents(c); + treeWidth += m_filterTreeView->columnWidth(c); } - m_ui->filterTreeView->setMinimumWidth(treeWidth + 20); - m_ui->filterLineEdit->setFiltering(true); - connect(m_ui->filterTreeView, &QAbstractItemView::activated, this, + m_filterTreeView->setMinimumWidth(treeWidth + 20); + filterLineEdit->setFiltering(true); + + using namespace Layouting; + Column { + filterLineEdit, + m_filterTreeView, + m_buttonBox + }.attachTo(this); + + connect(m_buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(m_buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + + connect(m_filterTreeView, &QAbstractItemView::activated, this, &NickNameDialog::slotActivated); - connect(m_ui->filterTreeView->selectionModel(), &QItemSelectionModel::currentRowChanged, + connect(m_filterTreeView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &NickNameDialog::slotCurrentItemChanged); - connect(m_ui->filterLineEdit, &FancyLineEdit::filterChanged, + connect(filterLineEdit, &FancyLineEdit::filterChanged, m_filterModel, &QSortFilterProxyModel::setFilterFixedString); } -NickNameDialog::~NickNameDialog() -{ - delete m_ui; -} +NickNameDialog::~NickNameDialog() = default; QPushButton *NickNameDialog::okButton() const { - return m_ui->buttonBox->button(QDialogButtonBox::Ok); + return m_buttonBox->button(QDialogButtonBox::Ok); } void NickNameDialog::slotCurrentItemChanged(const QModelIndex &index) @@ -194,7 +208,7 @@ void NickNameDialog::slotActivated(const QModelIndex &) QString NickNameDialog::nickName() const { - const QModelIndex index = m_ui->filterTreeView->selectionModel()->currentIndex(); + const QModelIndex index = m_filterTreeView->selectionModel()->currentIndex(); if (index.isValid()) { const QModelIndex sourceIndex = m_filterModel->mapToSource(index); if (const QStandardItem *item = m_model->itemFromIndex(sourceIndex)) @@ -250,5 +264,4 @@ QStringList NickNameDialog::nickNameList(const QStandardItemModel *model) return rc; } -} // namespace Internal -} // namespace VcsBase +} // VcsBase::Internal diff --git a/src/plugins/vcsbase/nicknamedialog.h b/src/plugins/vcsbase/nicknamedialog.h index 555c1158dd1..6ca5e0e704e 100644 --- a/src/plugins/vcsbase/nicknamedialog.h +++ b/src/plugins/vcsbase/nicknamedialog.h @@ -6,16 +6,16 @@ #include QT_BEGIN_NAMESPACE -class QSortFilterProxyModel; -class QStandardItemModel; +class QDialogButtonBox; class QModelIndex; class QPushButton; +class QSortFilterProxyModel; +class QStandardItemModel; QT_END_NAMESPACE -namespace VcsBase { -namespace Internal { +namespace Utils { class TreeView; } -namespace Ui { class NickNameDialog; } +namespace VcsBase::Internal { class NickNameDialog : public QDialog { @@ -42,10 +42,11 @@ private: QPushButton *okButton() const; - Ui::NickNameDialog *m_ui; QStandardItemModel *m_model; QSortFilterProxyModel *m_filterModel; + + Utils::TreeView *m_filterTreeView; + QDialogButtonBox *m_buttonBox; }; -} // namespace Internal -} // namespace VcsBase +} // VcsBase::Internal diff --git a/src/plugins/vcsbase/nicknamedialog.ui b/src/plugins/vcsbase/nicknamedialog.ui deleted file mode 100644 index bb9c84a1d62..00000000000 --- a/src/plugins/vcsbase/nicknamedialog.ui +++ /dev/null @@ -1,82 +0,0 @@ - - - VcsBase::Internal::NickNameDialog - - - - 0 - 0 - 618 - 414 - - - - Nicknames - - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - Utils::FancyLineEdit - QLineEdit -
utils/fancylineedit.h
-
- - Utils::TreeView - QTreeView -
utils/itemviews.h
-
-
- - - - buttonBox - accepted() - VcsBase::Internal::NickNameDialog - accept() - - - 252 - 405 - - - 157 - 274 - - - - - buttonBox - rejected() - VcsBase::Internal::NickNameDialog - reject() - - - 293 - 405 - - - 286 - 274 - - - - -
diff --git a/src/plugins/vcsbase/vcsbase.qbs b/src/plugins/vcsbase/vcsbase.qbs index d9cfd524efa..fb338ba3c78 100644 --- a/src/plugins/vcsbase/vcsbase.qbs +++ b/src/plugins/vcsbase/vcsbase.qbs @@ -33,7 +33,6 @@ QtcPlugin { "diffandloghighlighter.h", "nicknamedialog.cpp", "nicknamedialog.h", - "nicknamedialog.ui", "submiteditorfile.cpp", "submiteditorfile.h", "submiteditorwidget.cpp",