aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/git
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2020-02-19 21:20:41 +0200
committerOrgad Shaneh <orgads@gmail.com>2020-02-20 19:05:16 +0000
commit2110be00ab8f0868f861ab76384c5bca623ed2bc (patch)
tree0329749dec52261a6e7513f5363c9aef546f207d /src/plugins/git
parentd21f72d0dde65744c865c202d09db83c5db24c95 (diff)
Git: Move filter widget to GitEditor
and make it a QToolBar. Change-Id: I6a16b1a828bfabaace8e14ef39344f7f2bac7e8a Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'src/plugins/git')
-rw-r--r--src/plugins/git/giteditor.cpp80
-rw-r--r--src/plugins/git/giteditor.h10
-rw-r--r--src/plugins/git/gitplugin.cpp29
3 files changed, 58 insertions, 61 deletions
diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp
index 26842a6b1a..9f5867bf4a 100644
--- a/src/plugins/git/giteditor.cpp
+++ b/src/plugins/git/giteditor.cpp
@@ -42,17 +42,15 @@
#include <utils/qtcassert.h>
#include <utils/temporaryfile.h>
-#include <QMenu>
-
+#include <QDir>
#include <QFileInfo>
+#include <QHBoxLayout>
+#include <QMenu>
#include <QRegExp>
#include <QSet>
+#include <QTextBlock>
#include <QTextCodec>
-#include <QDir>
-
#include <QTextCursor>
-#include <QTextBlock>
-#include <QMessageBox>
#define CHANGE_PATTERN "[a-f0-9]{7,40}"
@@ -61,6 +59,45 @@ using namespace VcsBase;
namespace Git {
namespace Internal {
+class GitLogFilterWidget : public QToolBar
+{
+ Q_DECLARE_TR_FUNCTIONS(Git::Internal::GitLogFilterWidget);
+
+public:
+ GitLogFilterWidget(GitEditorWidget *editor)
+ {
+ auto addLineEdit = [](const QString &placeholder,
+ const QString &tooltip,
+ GitEditorWidget *editor)
+ {
+ auto lineEdit = new Utils::FancyLineEdit;
+ lineEdit->setFiltering(true);
+ lineEdit->setToolTip(tooltip);
+ lineEdit->setPlaceholderText(placeholder);
+ lineEdit->setMaximumWidth(200);
+ connect(lineEdit, &QLineEdit::returnPressed,
+ editor, &GitEditorWidget::refresh);
+ connect(lineEdit, &Utils::FancyLineEdit::rightButtonClicked,
+ editor, &GitEditorWidget::refresh);
+ return lineEdit;
+ };
+ grepLineEdit = addLineEdit(tr("Filter by message"),
+ tr("Filter log entries by text in the commit message."),
+ editor);
+ pickaxeLineEdit = addLineEdit(tr("Filter by content"),
+ tr("Filter log entries by added or removed string."),
+ editor);
+ addWidget(new QLabel(tr("Filter:")));
+ addSeparator();
+ addWidget(grepLineEdit);
+ addSeparator();
+ addWidget(pickaxeLineEdit);
+ }
+
+ Utils::FancyLineEdit *grepLineEdit;
+ Utils::FancyLineEdit *pickaxeLineEdit;
+};
+
GitEditorWidget::GitEditorWidget() :
m_changeNumberPattern(CHANGE_PATTERN)
{
@@ -360,44 +397,31 @@ QString GitEditorWidget::sourceWorkingDirectory() const
return path.toString();
}
-void GitEditorWidget::lineEditChanged()
+void GitEditorWidget::refresh()
{
if (VcsBaseEditorConfig *config = editorConfig())
config->handleArgumentsChanged();
}
-void GitEditorWidget::refreshOnLineEdit(Utils::FancyLineEdit *lineEdit)
-{
- connect(lineEdit, &QLineEdit::returnPressed,
- this, &GitEditorWidget::lineEditChanged);
- connect(lineEdit, &Utils::FancyLineEdit::rightButtonClicked,
- this, &GitEditorWidget::lineEditChanged);
-}
-
-void GitEditorWidget::setGrepLineEdit(Utils::FancyLineEdit *lineEdit)
-{
- m_grepLineEdit = lineEdit;
- refreshOnLineEdit(lineEdit);
-}
-
-void GitEditorWidget::setPickaxeLineEdit(Utils::FancyLineEdit *lineEdit)
+QWidget *GitEditorWidget::addFilterWidget()
{
- m_pickaxeLineEdit = lineEdit;
- refreshOnLineEdit(lineEdit);
+ if (!m_logFilterWidget)
+ m_logFilterWidget = new GitLogFilterWidget(this);
+ return m_logFilterWidget;
}
QString GitEditorWidget::grepValue() const
{
- if (!m_grepLineEdit)
+ if (!m_logFilterWidget)
return QString();
- return m_grepLineEdit->text();
+ return m_logFilterWidget->grepLineEdit->text();
}
QString GitEditorWidget::pickaxeValue() const
{
- if (!m_pickaxeLineEdit)
+ if (!m_logFilterWidget)
return QString();
- return m_pickaxeLineEdit->text();
+ return m_logFilterWidget->pickaxeLineEdit->text();
}
} // namespace Internal
diff --git a/src/plugins/git/giteditor.h b/src/plugins/git/giteditor.h
index 246ca9788f..1eceeae132 100644
--- a/src/plugins/git/giteditor.h
+++ b/src/plugins/git/giteditor.h
@@ -34,6 +34,8 @@ namespace Utils { class FancyLineEdit; }
namespace Git {
namespace Internal {
+class GitLogFilterWidget;
+
class GitEditorWidget : public VcsBase::VcsBaseEditorWidget
{
Q_OBJECT
@@ -42,10 +44,11 @@ public:
GitEditorWidget();
void setPlainText(const QString &text) override;
- void setGrepLineEdit(Utils::FancyLineEdit *lineEdit);
+ QWidget *addFilterWidget();
void setPickaxeLineEdit(Utils::FancyLineEdit *lineEdit);
QString grepValue() const;
QString pickaxeValue() const;
+ void refresh();
private:
void applyDiffChunk(const VcsBase::DiffChunk& chunk, bool revert);
@@ -64,13 +67,10 @@ private:
bool supportChangeLinks() const override;
QString fileNameForLine(int line) const override;
QString sourceWorkingDirectory() const;
- void refreshOnLineEdit(Utils::FancyLineEdit *lineEdit);
- void lineEditChanged();
mutable QRegExp m_changeNumberPattern;
QString m_currentChange;
- Utils::FancyLineEdit *m_grepLineEdit = nullptr;
- Utils::FancyLineEdit *m_pickaxeLineEdit = nullptr;
+ GitLogFilterWidget *m_logFilterWidget = nullptr;
};
} // namespace Git
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 5b1627ca01..3babb1e81d 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -60,7 +60,6 @@
#include <coreplugin/vcsmanager.h>
#include <aggregation/aggregate.h>
-#include <utils/fancylineedit.h>
#include <utils/parameteraction.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
@@ -85,7 +84,6 @@
#include <QAction>
#include <QApplication>
#include <QFileDialog>
-#include <QHBoxLayout>
#include <QMenu>
#include <QVBoxLayout>
@@ -146,29 +144,15 @@ public:
class GitLogEditorWidget : public QWidget
{
- Q_DECLARE_TR_FUNCTIONS(Git::Internal::GitLogEditorWidget);
public:
GitLogEditorWidget(GitEditorWidget *gitEditor)
{
auto vlayout = new QVBoxLayout;
- auto hlayout = new QHBoxLayout;
vlayout->setSpacing(0);
vlayout->setContentsMargins(0, 0, 0, 0);
- auto grepLineEdit = addLineEdit(tr("Filter by message"),
- tr("Filter log entries by text in the commit message."));
- auto pickaxeLineEdit = addLineEdit(tr("Filter by content"),
- tr("Filter log entries by added or removed string."));
- hlayout->setSpacing(20);
- hlayout->setContentsMargins(0, 0, 0, 0);
- hlayout->addWidget(new QLabel(tr("Filter:")));
- hlayout->addWidget(grepLineEdit);
- hlayout->addWidget(pickaxeLineEdit);
- hlayout->addStretch();
- vlayout->addLayout(hlayout);
+ vlayout->addWidget(gitEditor->addFilterWidget());
vlayout->addWidget(gitEditor);
setLayout(vlayout);
- gitEditor->setGrepLineEdit(grepLineEdit);
- gitEditor->setPickaxeLineEdit(pickaxeLineEdit);
auto textAgg = Aggregation::Aggregate::parentAggregate(gitEditor);
auto agg = textAgg ? textAgg : new Aggregation::Aggregate;
@@ -176,17 +160,6 @@ public:
agg->add(gitEditor);
setFocusProxy(gitEditor);
}
-
-private:
- FancyLineEdit *addLineEdit(const QString &placeholder, const QString &tooltip)
- {
- auto lineEdit = new FancyLineEdit;
- lineEdit->setFiltering(true);
- lineEdit->setToolTip(tooltip);
- lineEdit->setPlaceholderText(placeholder);
- lineEdit->setMaximumWidth(200);
- return lineEdit;
- }
};
template<class Editor>