aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/git/gitsubmiteditorwidget.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2022-08-05 12:48:25 +0200
committerhjk <hjk@qt.io>2022-08-05 11:52:10 +0000
commit9ad5c4254d83b0adceed45fd8da84f8f9c271dd9 (patch)
tree4de71462096893427a7bedbf797acd28c690891e /src/plugins/git/gitsubmiteditorwidget.cpp
parent332f35d864d9b6fcb39e4fa312c3e8ddc4a64109 (diff)
Git: inline gitsubmitpanel.ui
Change-Id: Ib6ba5a6c44d413a13300a28ffb575db5799a9927 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/git/gitsubmiteditorwidget.cpp')
-rw-r--r--src/plugins/git/gitsubmiteditorwidget.cpp136
1 files changed, 101 insertions, 35 deletions
diff --git a/src/plugins/git/gitsubmiteditorwidget.cpp b/src/plugins/git/gitsubmiteditorwidget.cpp
index eaf3428c84..f17254269d 100644
--- a/src/plugins/git/gitsubmiteditorwidget.cpp
+++ b/src/plugins/git/gitsubmiteditorwidget.cpp
@@ -23,8 +23,9 @@
**
****************************************************************************/
-#include "commitdata.h"
#include "gitsubmiteditorwidget.h"
+
+#include "commitdata.h"
#include "githighlighters.h"
#include "logchangedialog.h"
@@ -32,53 +33,118 @@
#include <utils/completingtextedit.h>
#include <utils/filepath.h>
+#include <utils/layoutbuilder.h>
#include <utils/theme/theme.h>
#include <utils/utilsicons.h>
-#include <QRegularExpressionValidator>
-#include <QTextEdit>
-
+#include <QApplication>
+#include <QCheckBox>
#include <QDir>
#include <QGroupBox>
-#include <QVBoxLayout>
+#include <QGroupBox>
+#include <QLabel>
+#include <QLineEdit>
#include <QMenu>
+#include <QRegularExpressionValidator>
+#include <QTextEdit>
+#include <QVBoxLayout>>
using namespace Utils;
namespace Git {
namespace Internal {
+class GitSubmitPanel : public QWidget
+{
+public:
+ GitSubmitPanel()
+ {
+ resize(364, 269);
+
+ repositoryLabel = new QLabel(tr("repository"));
+ branchLabel = new QLabel(tr("branch")); // FIXME: Isn't this overwritten soon?
+ showHeadLabel = new QLabel(tr("<a href=\"head\">Show HEAD</a>")); // FIXME: Simplify string in tr()
+
+ authorLineEdit = new QLineEdit;
+ authorLineEdit->setMinimumSize(QSize(200, 0));
+
+ invalidAuthorLabel = new QLabel;
+ invalidAuthorLabel->setMinimumSize(QSize(20, 20));
+
+ emailLineEdit = new QLineEdit;
+ emailLineEdit->setMinimumSize(QSize(200, 0));
+
+ invalidEmailLabel = new QLabel;
+ invalidEmailLabel->setMinimumSize(QSize(20, 20));
+
+ bypassHooksCheckBox = new QCheckBox(tr("By&pass hooks"));
+
+ signOffCheckBox = new QCheckBox(tr("Sign off"));
+
+ using namespace Layouting;
+
+ editGroup = new QGroupBox(tr("Commit Information"));
+ Grid {
+ tr("Author:"), authorLineEdit, invalidAuthorLabel, st, br,
+ tr("Email:"), emailLineEdit, invalidEmailLabel, br,
+ empty, Row { bypassHooksCheckBox, signOffCheckBox, st }
+ }.attachTo(editGroup);
+
+ Column {
+ Group {
+ title(tr("General Information")),
+ Form {
+ tr("Repository:"), repositoryLabel, br,
+ tr("Branch:"), branchLabel, br,
+ Span(2, showHeadLabel)
+ }
+ },
+ editGroup,
+ }.attachTo(this, WithoutMargins);
+ }
+
+ QLabel *repositoryLabel;
+ QLabel *branchLabel;
+ QLabel *showHeadLabel;
+ QGroupBox *editGroup;
+ QLineEdit *authorLineEdit;
+ QLabel *invalidAuthorLabel;
+ QLineEdit *emailLineEdit;
+ QLabel *invalidEmailLabel;
+ QCheckBox *bypassHooksCheckBox;
+ QCheckBox *signOffCheckBox;
+};
+
// ------------------
GitSubmitEditorWidget::GitSubmitEditorWidget() :
- m_gitSubmitPanel(new QWidget)
+ m_gitSubmitPanel(new GitSubmitPanel)
{
- m_gitSubmitPanelUi.setupUi(m_gitSubmitPanel);
new GitSubmitHighlighter(descriptionEdit());
m_emailValidator = new QRegularExpressionValidator(QRegularExpression("[^@ ]+@[^@ ]+\\.[a-zA-Z]+"), this);
const QPixmap error = Utils::Icons::CRITICAL.pixmap();
- m_gitSubmitPanelUi.invalidAuthorLabel->setPixmap(error);
- m_gitSubmitPanelUi.invalidEmailLabel->setToolTip(tr("Provide a valid email to commit."));
- m_gitSubmitPanelUi.invalidEmailLabel->setPixmap(error);
+ m_gitSubmitPanel->invalidAuthorLabel->setPixmap(error);
+ m_gitSubmitPanel->invalidEmailLabel->setToolTip(tr("Provide a valid email to commit."));
+ m_gitSubmitPanel->invalidEmailLabel->setPixmap(error);
- connect(m_gitSubmitPanelUi.authorLineEdit, &QLineEdit::textChanged,
+ connect(m_gitSubmitPanel->authorLineEdit, &QLineEdit::textChanged,
this, &GitSubmitEditorWidget::authorInformationChanged);
- connect(m_gitSubmitPanelUi.emailLineEdit, &QLineEdit::textChanged,
+ connect(m_gitSubmitPanel->emailLineEdit, &QLineEdit::textChanged,
this, &GitSubmitEditorWidget::authorInformationChanged);
- connect(m_gitSubmitPanelUi.showHeadLabel, &QLabel::linkActivated,
+ connect(m_gitSubmitPanel->showHeadLabel, &QLabel::linkActivated,
this, [this] { emit showRequested("HEAD"); });
}
void GitSubmitEditorWidget::setPanelInfo(const GitSubmitEditorPanelInfo &info)
{
- m_gitSubmitPanelUi.repositoryLabel->setText(info.repository.toUserOutput());
+ m_gitSubmitPanel->repositoryLabel->setText(info.repository.toUserOutput());
if (info.branch.contains("(no branch)")) {
const QString errorColor =
Utils::creatorTheme()->color(Utils::Theme::TextColorError).name();
- m_gitSubmitPanelUi.branchLabel->setText(QString::fromLatin1("<span style=\"color:%1\">%2</span>")
+ m_gitSubmitPanel->branchLabel->setText(QString::fromLatin1("<span style=\"color:%1\">%2</span>")
.arg(errorColor, tr("Detached HEAD")));
} else {
- m_gitSubmitPanelUi.branchLabel->setText(info.branch);
+ m_gitSubmitPanel->branchLabel->setText(info.branch);
}
}
@@ -102,7 +168,7 @@ void GitSubmitEditorWidget::initialize(CommitType commitType,
return;
m_isInitialized = true;
if (commitType != AmendCommit)
- m_gitSubmitPanelUi.showHeadLabel->hide();
+ m_gitSubmitPanel->showHeadLabel->hide();
if (commitType == FixupCommit) {
auto logChangeGroupBox = new QGroupBox(tr("Select Change"));
auto logChangeLayout = new QVBoxLayout;
@@ -112,7 +178,7 @@ void GitSubmitEditorWidget::initialize(CommitType commitType,
connect(m_logChangeWidget, &LogChangeWidget::commitActivated, this, &GitSubmitEditorWidget::showRequested);
logChangeLayout->addWidget(m_logChangeWidget);
insertLeftWidget(logChangeGroupBox);
- m_gitSubmitPanelUi.editGroup->hide();
+ m_gitSubmitPanel->editGroup->hide();
hideDescription();
}
insertTopWidget(m_gitSubmitPanel);
@@ -140,15 +206,15 @@ void GitSubmitEditorWidget::refreshLog(const FilePath &repository)
GitSubmitEditorPanelData GitSubmitEditorWidget::panelData() const
{
GitSubmitEditorPanelData rc;
- const QString author = m_gitSubmitPanelUi.authorLineEdit->text();
- const QString email = m_gitSubmitPanelUi.emailLineEdit->text();
+ const QString author = m_gitSubmitPanel->authorLineEdit->text();
+ const QString email = m_gitSubmitPanel->emailLineEdit->text();
if (author != m_originalAuthor || email != m_originalEmail) {
rc.author = author;
rc.email = email;
}
- rc.bypassHooks = m_gitSubmitPanelUi.bypassHooksCheckBox->isChecked();
+ rc.bypassHooks = m_gitSubmitPanel->bypassHooksCheckBox->isChecked();
rc.pushAction = m_pushAction;
- rc.signOff = m_gitSubmitPanelUi.signOffCheckBox->isChecked();
+ rc.signOff = m_gitSubmitPanel->signOffCheckBox->isChecked();
return rc;
}
@@ -156,21 +222,21 @@ void GitSubmitEditorWidget::setPanelData(const GitSubmitEditorPanelData &data)
{
m_originalAuthor = data.author;
m_originalEmail = data.email;
- m_gitSubmitPanelUi.authorLineEdit->setText(data.author);
- m_gitSubmitPanelUi.emailLineEdit->setText(data.email);
- m_gitSubmitPanelUi.bypassHooksCheckBox->setChecked(data.bypassHooks);
- m_gitSubmitPanelUi.signOffCheckBox->setChecked(data.signOff);
+ m_gitSubmitPanel->authorLineEdit->setText(data.author);
+ m_gitSubmitPanel->emailLineEdit->setText(data.email);
+ m_gitSubmitPanel->bypassHooksCheckBox->setChecked(data.bypassHooks);
+ m_gitSubmitPanel->signOffCheckBox->setChecked(data.signOff);
authorInformationChanged();
}
bool GitSubmitEditorWidget::canSubmit(QString *whyNot) const
{
- if (m_gitSubmitPanelUi.invalidAuthorLabel->isVisible()) {
+ if (m_gitSubmitPanel->invalidAuthorLabel->isVisible()) {
if (whyNot)
*whyNot = tr("Invalid author");
return false;
}
- if (m_gitSubmitPanelUi.invalidEmailLabel->isVisible()) {
+ if (m_gitSubmitPanel->invalidEmailLabel->isVisible()) {
if (whyNot)
*whyNot = tr("Invalid email");
return false;
@@ -214,12 +280,12 @@ QString GitSubmitEditorWidget::commitName() const
void GitSubmitEditorWidget::authorInformationChanged()
{
- bool bothEmpty = m_gitSubmitPanelUi.authorLineEdit->text().isEmpty() &&
- m_gitSubmitPanelUi.emailLineEdit->text().isEmpty();
+ bool bothEmpty = m_gitSubmitPanel->authorLineEdit->text().isEmpty() &&
+ m_gitSubmitPanel->emailLineEdit->text().isEmpty();
- m_gitSubmitPanelUi.invalidAuthorLabel->
- setVisible(m_gitSubmitPanelUi.authorLineEdit->text().isEmpty() && !bothEmpty);
- m_gitSubmitPanelUi.invalidEmailLabel->
+ m_gitSubmitPanel->invalidAuthorLabel->
+ setVisible(m_gitSubmitPanel->authorLineEdit->text().isEmpty() && !bothEmpty);
+ m_gitSubmitPanel->invalidEmailLabel->
setVisible(!emailIsValid() && !bothEmpty);
updateSubmitAction();
@@ -245,8 +311,8 @@ void GitSubmitEditorWidget::commitAndPushToGerritSlot()
bool GitSubmitEditorWidget::emailIsValid() const
{
- int pos = m_gitSubmitPanelUi.emailLineEdit->cursorPosition();
- QString text = m_gitSubmitPanelUi.emailLineEdit->text();
+ int pos = m_gitSubmitPanel->emailLineEdit->cursorPosition();
+ QString text = m_gitSubmitPanel->emailLineEdit->text();
return m_emailValidator->validate(text, pos) == QValidator::Acceptable;
}