forked from qt-creator/qt-creator
Git: Add a toggle button for filter widget
Change-Id: If9680d1fc8a06f57f995a63095ad201fc1f3156b Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
committed by
Orgad Shaneh
parent
2110be00ab
commit
6d8efefbe5
@@ -565,9 +565,10 @@ class BaseGitLogArgumentsWidget : public BaseGitDiffArgumentsWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BaseGitLogArgumentsWidget(VcsBaseClientSettings &settings, QToolBar *toolBar) :
|
BaseGitLogArgumentsWidget(VcsBaseClientSettings &settings, GitEditorWidget *editor) :
|
||||||
BaseGitDiffArgumentsWidget(settings, toolBar)
|
BaseGitDiffArgumentsWidget(settings, editor->toolBar())
|
||||||
{
|
{
|
||||||
|
QToolBar *toolBar = editor->toolBar();
|
||||||
QAction *diffButton = addToggleButton("--patch", tr("Diff"),
|
QAction *diffButton = addToggleButton("--patch", tr("Diff"),
|
||||||
tr("Show difference."));
|
tr("Show difference."));
|
||||||
mapSetting(diffButton, settings.boolPointer(GitSettings::logDiffKey));
|
mapSetting(diffButton, settings.boolPointer(GitSettings::logDiffKey));
|
||||||
@@ -575,6 +576,11 @@ public:
|
|||||||
connect(diffButton, &QAction::toggled, m_ignoreWSButton, &QAction::setVisible);
|
connect(diffButton, &QAction::toggled, m_ignoreWSButton, &QAction::setVisible);
|
||||||
m_patienceButton->setVisible(diffButton->isChecked());
|
m_patienceButton->setVisible(diffButton->isChecked());
|
||||||
m_ignoreWSButton->setVisible(diffButton->isChecked());
|
m_ignoreWSButton->setVisible(diffButton->isChecked());
|
||||||
|
auto filterAction = new QAction(tr("Filter"), toolBar);
|
||||||
|
filterAction->setToolTip(tr("Filter commits by message or content."));
|
||||||
|
filterAction->setCheckable(true);
|
||||||
|
connect(filterAction, &QAction::toggled, editor, &GitEditorWidget::toggleFilters);
|
||||||
|
toolBar->addAction(filterAction);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -583,8 +589,8 @@ class GitLogArgumentsWidget : public BaseGitLogArgumentsWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GitLogArgumentsWidget(VcsBaseClientSettings &settings, bool fileRelated, QToolBar *toolBar) :
|
GitLogArgumentsWidget(VcsBaseClientSettings &settings, bool fileRelated, GitEditorWidget *editor) :
|
||||||
BaseGitLogArgumentsWidget(settings, toolBar)
|
BaseGitLogArgumentsWidget(settings, editor)
|
||||||
{
|
{
|
||||||
QAction *firstParentButton =
|
QAction *firstParentButton =
|
||||||
addToggleButton({"-m", "--first-parent"},
|
addToggleButton({"-m", "--first-parent"},
|
||||||
@@ -615,8 +621,8 @@ class GitRefLogArgumentsWidget : public BaseGitLogArgumentsWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GitRefLogArgumentsWidget(VcsBaseClientSettings &settings, QToolBar *toolBar) :
|
GitRefLogArgumentsWidget(VcsBaseClientSettings &settings, GitEditorWidget *editor) :
|
||||||
BaseGitLogArgumentsWidget(settings, toolBar)
|
BaseGitLogArgumentsWidget(settings, editor)
|
||||||
{
|
{
|
||||||
QAction *showDateButton =
|
QAction *showDateButton =
|
||||||
addToggleButton("--date=iso",
|
addToggleButton("--date=iso",
|
||||||
@@ -1033,7 +1039,7 @@ void GitClient::log(const QString &workingDirectory, const QString &fileName,
|
|||||||
codecFor(CodecLogOutput), "logTitle", msgArg));
|
codecFor(CodecLogOutput), "logTitle", msgArg));
|
||||||
VcsBaseEditorConfig *argWidget = editor->editorConfig();
|
VcsBaseEditorConfig *argWidget = editor->editorConfig();
|
||||||
if (!argWidget) {
|
if (!argWidget) {
|
||||||
argWidget = new GitLogArgumentsWidget(settings(), !fileName.isEmpty(), editor->toolBar());
|
argWidget = new GitLogArgumentsWidget(settings(), !fileName.isEmpty(), editor);
|
||||||
argWidget->setBaseArguments(args);
|
argWidget->setBaseArguments(args);
|
||||||
connect(argWidget, &VcsBaseEditorConfig::commandExecutionRequested, this,
|
connect(argWidget, &VcsBaseEditorConfig::commandExecutionRequested, this,
|
||||||
[=]() { this->log(workingDir, fileName, enableAnnotationContextMenu, args); });
|
[=]() { this->log(workingDir, fileName, enableAnnotationContextMenu, args); });
|
||||||
@@ -1068,11 +1074,12 @@ void GitClient::reflog(const QString &workingDirectory, const QString &ref)
|
|||||||
const Id editorId = Git::Constants::GIT_REFLOG_EDITOR_ID;
|
const Id editorId = Git::Constants::GIT_REFLOG_EDITOR_ID;
|
||||||
// Creating document might change the referenced workingDirectory. Store a copy and use it.
|
// Creating document might change the referenced workingDirectory. Store a copy and use it.
|
||||||
const QString workingDir = workingDirectory;
|
const QString workingDir = workingDirectory;
|
||||||
VcsBaseEditorWidget *editor = createVcsEditor(editorId, title, workingDir, codecFor(CodecLogOutput),
|
GitEditorWidget *editor = static_cast<GitEditorWidget *>(
|
||||||
"reflogRepository", workingDir);
|
createVcsEditor(editorId, title, workingDir, codecFor(CodecLogOutput),
|
||||||
|
"reflogRepository", workingDir));
|
||||||
VcsBaseEditorConfig *argWidget = editor->editorConfig();
|
VcsBaseEditorConfig *argWidget = editor->editorConfig();
|
||||||
if (!argWidget) {
|
if (!argWidget) {
|
||||||
argWidget = new GitRefLogArgumentsWidget(settings(), editor->toolBar());
|
argWidget = new GitRefLogArgumentsWidget(settings(), editor);
|
||||||
if (!ref.isEmpty())
|
if (!ref.isEmpty())
|
||||||
argWidget->setBaseArguments({ref});
|
argWidget->setBaseArguments({ref});
|
||||||
connect(argWidget, &VcsBaseEditorConfig::commandExecutionRequested, this,
|
connect(argWidget, &VcsBaseEditorConfig::commandExecutionRequested, this,
|
||||||
|
|||||||
@@ -92,6 +92,8 @@ public:
|
|||||||
addWidget(grepLineEdit);
|
addWidget(grepLineEdit);
|
||||||
addSeparator();
|
addSeparator();
|
||||||
addWidget(pickaxeLineEdit);
|
addWidget(pickaxeLineEdit);
|
||||||
|
hide();
|
||||||
|
connect(editor, &GitEditorWidget::toggleFilters, this, &QWidget::setVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FancyLineEdit *grepLineEdit;
|
Utils::FancyLineEdit *grepLineEdit;
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ public:
|
|||||||
QString pickaxeValue() const;
|
QString pickaxeValue() const;
|
||||||
void refresh();
|
void refresh();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void toggleFilters(bool value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void applyDiffChunk(const VcsBase::DiffChunk& chunk, bool revert);
|
void applyDiffChunk(const VcsBase::DiffChunk& chunk, bool revert);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user