From f1c302af0c950ec3d1cf05f552bef8aee51760da Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 1 Feb 2023 17:37:23 +0100 Subject: [PATCH] Fossil: Inline fossilcommitpanel.ui Change-Id: I9be4ed8cd598bc6c9b1bdef00b8eb28d2f0ac0dd Reviewed-by: Alessandro Portale --- src/plugins/fossil/CMakeLists.txt | 1 - src/plugins/fossil/fossil.qbs | 1 - src/plugins/fossil/fossilcommitpanel.ui | 177 ---------------------- src/plugins/fossil/fossilcommitwidget.cpp | 91 ++++++++--- src/plugins/fossil/fossilcommitwidget.h | 31 ++-- 5 files changed, 93 insertions(+), 208 deletions(-) delete mode 100644 src/plugins/fossil/fossilcommitpanel.ui diff --git a/src/plugins/fossil/CMakeLists.txt b/src/plugins/fossil/CMakeLists.txt index f5cb697c57e..fd3be16d753 100644 --- a/src/plugins/fossil/CMakeLists.txt +++ b/src/plugins/fossil/CMakeLists.txt @@ -10,7 +10,6 @@ add_qtc_plugin(Fossil constants.h fossil.qrc fossilclient.cpp fossilclient.h - fossilcommitpanel.ui fossilcommitwidget.cpp fossilcommitwidget.h fossileditor.cpp fossileditor.h fossilplugin.cpp fossilplugin.h diff --git a/src/plugins/fossil/fossil.qbs b/src/plugins/fossil/fossil.qbs index 0bab349e392..69068d708ed 100644 --- a/src/plugins/fossil/fossil.qbs +++ b/src/plugins/fossil/fossil.qbs @@ -26,7 +26,6 @@ QtcPlugin { "revisioninfo.h", "fossil.qrc", "revertdialog.ui", - "fossilcommitpanel.ui", ] Group { diff --git a/src/plugins/fossil/fossilcommitpanel.ui b/src/plugins/fossil/fossilcommitpanel.ui deleted file mode 100644 index b08e7883a5f..00000000000 --- a/src/plugins/fossil/fossilcommitpanel.ui +++ /dev/null @@ -1,177 +0,0 @@ - - - Fossil::Internal::FossilCommitPanel - - - - 0 - 0 - 374 - 270 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Current Information - - - - QFormLayout::ExpandingFieldsGrow - - - - - Local root: - - - - - - - Qt::NoFocus - - - true - - - - - - - Branch: - - - - - - - Qt::NoFocus - - - true - - - - - - - Tags: - - - - - - - Qt::NoFocus - - - true - - - - - - - - - - Commit Information - - - - - - New branch: - - - - - - - - - - - 50 - 20 - - - - - - - :/projectexplorer/images/compile_error.png - - - - - - - Create a private check-in that is never synced. -Children of private check-ins are automatically private. -Private check-ins are not pushed to the remote repository by default. - - - Private - - - - - - - Tags: - - - - - - - Tag names to apply; comma-separated. - - - - - - - Author: - - - - - - - - - - Qt::Horizontal - - - - 160 - 20 - - - - - - - - - - - - diff --git a/src/plugins/fossil/fossilcommitwidget.cpp b/src/plugins/fossil/fossilcommitwidget.cpp index f48f9850363..4d91f64acf2 100644 --- a/src/plugins/fossil/fossilcommitwidget.cpp +++ b/src/plugins/fossil/fossilcommitwidget.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "fossilcommitwidget.h" + #include "branchinfo.h" #include @@ -10,12 +11,18 @@ #include #include +#include +#include #include +#include #include +#include #include #include +using namespace Utils; + namespace Fossil { namespace Internal { @@ -31,7 +38,7 @@ static QTextCharFormat commentFormat() class FossilSubmitHighlighter : QSyntaxHighlighter { public: - explicit FossilSubmitHighlighter(Utils::CompletingTextEdit *parent); + explicit FossilSubmitHighlighter(CompletingTextEdit *parent); void highlightBlock(const QString &text) final; private: @@ -39,7 +46,7 @@ private: const QRegularExpression m_keywordPattern; }; -FossilSubmitHighlighter::FossilSubmitHighlighter(Utils::CompletingTextEdit *parent) : QSyntaxHighlighter(parent), +FossilSubmitHighlighter::FossilSubmitHighlighter(CompletingTextEdit *parent) : QSyntaxHighlighter(parent), m_commentFormat(commentFormat()), m_keywordPattern("\\[([0-9a-f]{5,40})\\]") { @@ -65,35 +72,83 @@ void FossilSubmitHighlighter::highlightBlock(const QString &text) FossilCommitWidget::FossilCommitWidget() : m_commitPanel(new QWidget) { - m_commitPanelUi.setupUi(m_commitPanel); + m_localRootLineEdit = new QLineEdit; + m_localRootLineEdit->setFocusPolicy(Qt::NoFocus); + m_localRootLineEdit->setReadOnly(true); + + m_currentBranchLineEdit = new QLineEdit; + m_currentBranchLineEdit->setFocusPolicy(Qt::NoFocus); + m_currentBranchLineEdit->setReadOnly(true); + + m_currentTagsLineEdit = new QLineEdit; + m_currentTagsLineEdit->setFocusPolicy(Qt::NoFocus); + m_currentTagsLineEdit->setReadOnly(true); + + m_branchLineEdit = new QLineEdit; + + m_invalidBranchLabel = new InfoLabel; + m_invalidBranchLabel->setMinimumSize(QSize(50, 20)); + m_invalidBranchLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); + m_invalidBranchLabel->setType(InfoLabel::Error); + + m_isPrivateCheckBox = new QCheckBox(tr("Private")); + m_isPrivateCheckBox->setToolTip(tr("Create a private check-in that is never synced.\n" + "Children of private check-ins are automatically private.\n" + "Private check-ins are not pushed to the remote repository by default.")); + + m_tagsLineEdit = new QLineEdit; + m_tagsLineEdit->setToolTip(tr("Tag names to apply; comma-separated.")); + + m_authorLineEdit = new QLineEdit; + + using namespace Layouting; + + Column { + Group { + title(tr("Current Information")), + Form { + tr("Local root:"), m_localRootLineEdit, + tr("Branch:"), m_currentBranchLineEdit, + tr("Tags:"), m_currentTagsLineEdit + } + }, + Group { + title(tr("Commit Information")), + Grid { + tr("New branch:"), m_branchLineEdit, m_invalidBranchLabel, m_isPrivateCheckBox, br, + tr("Tags:"), m_tagsLineEdit, br, + tr("Author:"), m_authorLineEdit, st, + } + } + }.attachTo(m_commitPanel, WithoutMargins); + insertTopWidget(m_commitPanel); new FossilSubmitHighlighter(descriptionEdit()); m_branchValidator = new QRegularExpressionValidator(QRegularExpression("[^\\n]*"), this); - connect(m_commitPanelUi.branchLineEdit, &QLineEdit::textChanged, + connect(m_branchLineEdit, &QLineEdit::textChanged, this, &FossilCommitWidget::branchChanged); } -void FossilCommitWidget::setFields(const Utils::FilePath &repoPath, const BranchInfo &branch, +void FossilCommitWidget::setFields(const FilePath &repoPath, const BranchInfo &branch, const QStringList &tags, const QString &userName) { - m_commitPanelUi.localRootLineEdit->setText(repoPath.toUserOutput()); - m_commitPanelUi.currentBranchLineEdit->setText(branch.name); - const QString tagsText = tags.join(", "); - m_commitPanelUi.currentTagsLineEdit->setText(tagsText); - m_commitPanelUi.authorLineEdit->setText(userName); + m_localRootLineEdit->setText(repoPath.toUserOutput()); + m_currentBranchLineEdit->setText(branch.name); + m_currentTagsLineEdit->setText(tags.join(", ")); + m_authorLineEdit->setText(userName); branchChanged(); } QString FossilCommitWidget::newBranch() const { - return m_commitPanelUi.branchLineEdit->text().trimmed(); + return m_branchLineEdit->text().trimmed(); } QStringList FossilCommitWidget::tags() const { - QString tagsText = m_commitPanelUi.tagsLineEdit->text().trimmed(); + QString tagsText = m_tagsLineEdit->text().trimmed(); if (tagsText.isEmpty()) return {}; @@ -102,19 +157,19 @@ QStringList FossilCommitWidget::tags() const QString FossilCommitWidget::committer() const { - return m_commitPanelUi.authorLineEdit->text(); + return m_authorLineEdit->text(); } bool FossilCommitWidget::isPrivateOptionEnabled() const { - return m_commitPanelUi.isPrivateCheckBox->isChecked(); + return m_isPrivateCheckBox->isChecked(); } bool FossilCommitWidget::canSubmit(QString *whyNot) const { QString message = cleanupDescription(descriptionText()).trimmed(); - if (m_commitPanelUi.invalidBranchLabel->isVisible() || message.isEmpty()) { + if (m_invalidBranchLabel->isVisible() || message.isEmpty()) { if (whyNot) *whyNot = tr("Message check failed."); return false; @@ -125,15 +180,15 @@ bool FossilCommitWidget::canSubmit(QString *whyNot) const void FossilCommitWidget::branchChanged() { - m_commitPanelUi.invalidBranchLabel->setVisible(!isValidBranch()); + m_invalidBranchLabel->setVisible(!isValidBranch()); updateSubmitAction(); } bool FossilCommitWidget::isValidBranch() const { - int pos = m_commitPanelUi.branchLineEdit->cursorPosition(); - QString text = m_commitPanelUi.branchLineEdit->text(); + int pos = m_branchLineEdit->cursorPosition(); + QString text = m_branchLineEdit->text(); return m_branchValidator->validate(text, pos) == QValidator::Acceptable; } diff --git a/src/plugins/fossil/fossilcommitwidget.h b/src/plugins/fossil/fossilcommitwidget.h index fd419f0dd8a..1d3bc1d4e0f 100644 --- a/src/plugins/fossil/fossilcommitwidget.h +++ b/src/plugins/fossil/fossilcommitwidget.h @@ -3,15 +3,19 @@ #pragma once -#include "ui_fossilcommitpanel.h" - #include QT_BEGIN_NAMESPACE +class QCheckBox; +class QLabel; +class QLineEdit; class QValidator; QT_END_NAMESPACE -namespace Utils { class FilePath; } +namespace Utils { +class FilePath; +class InfoLabel; +} namespace Fossil { namespace Internal { @@ -22,7 +26,7 @@ class BranchInfo; Some extra fields have been added to the standard SubmitEditorWidget, to help to conform to the commit style that is used by both git and Fossil*/ -class FossilCommitWidget : public VcsBase::SubmitEditorWidget +class FossilCommitWidget final : public VcsBase::SubmitEditorWidget { Q_OBJECT @@ -37,18 +41,23 @@ public: QString committer() const; bool isPrivateOptionEnabled() const; -protected: - bool canSubmit(QString *whyNot = nullptr) const; - -private slots: - void branchChanged(); - private: + bool canSubmit(QString *whyNot = nullptr) const final; + + void branchChanged(); bool isValidBranch() const; QWidget *m_commitPanel; - Ui::FossilCommitPanel m_commitPanelUi; QValidator *m_branchValidator; + + QLineEdit *m_localRootLineEdit; + QLineEdit *m_currentBranchLineEdit; + QLineEdit *m_currentTagsLineEdit; + QLineEdit *m_branchLineEdit; + Utils::InfoLabel *m_invalidBranchLabel; + QCheckBox *m_isPrivateCheckBox; + QLineEdit *m_tagsLineEdit; + QLineEdit *m_authorLineEdit; }; } // namespace Internal