GitUI.RevisionGrid.FormatQuickFilter C# (CSharp) Метод

FormatQuickFilter() публичный Метод

public FormatQuickFilter ( string filter, bool parameters, string &revListArgs, string &inMemMessageFilter, string &inMemCommitterFilter, string &inMemAuthorFilter ) : void
filter string
parameters bool
revListArgs string
inMemMessageFilter string
inMemCommitterFilter string
inMemAuthorFilter string
Результат void
        public void FormatQuickFilter(string filter,
                                      bool[] parameters,
                                      out string revListArgs,
                                      out string inMemMessageFilter,
                                      out string inMemCommitterFilter,
                                      out string inMemAuthorFilter)
        {
            revListArgs = string.Empty;
            inMemMessageFilter = string.Empty;
            inMemCommitterFilter = string.Empty;
            inMemAuthorFilter = string.Empty;
            if (!string.IsNullOrEmpty(filter))
            {
                // hash filtering only possible in memory
                var cmdLineSafe = GitCommandHelpers.VersionInUse.IsRegExStringCmdPassable(filter);
                revListArgs = " --regexp-ignore-case ";
                if (parameters[0])
                    if (cmdLineSafe && !MessageFilterCouldBeSHA(filter))
                        revListArgs += "--grep=\"" + filter + "\" ";
                    else
                        inMemMessageFilter = filter;
                if (parameters[1] && !filter.IsNullOrWhiteSpace())
                    if (cmdLineSafe)
                        revListArgs += "--committer=\"" + filter + "\" ";
                    else
                        inMemCommitterFilter = filter;
                if (parameters[2] && !filter.IsNullOrWhiteSpace())
                    if (cmdLineSafe)
                        revListArgs += "--author=\"" + filter + "\" ";
                    else
                        inMemAuthorFilter = filter;
                if (parameters[3])
                    if (cmdLineSafe)
                        revListArgs += "\"-S" + filter + "\" ";
                    else
                        throw new InvalidOperationException("Filter text not valid for \"Diff contains\" filter.");
            }
        }

Usage Example

Пример #1
0
        private void ApplyFilter()
        {
            string revListArgs;
            string inMemMessageFilter;
            string inMemCommitterFilter;
            string inMemAuthorFilter;
            var    filterParams = new bool[4];

            filterParams[0] = _commitToolStripMenuItem.Checked;
            filterParams[1] = _committerToolStripMenuItem.Checked;
            filterParams[2] = _authorToolStripMenuItem.Checked;
            filterParams[3] = _diffContainsToolStripMenuItem.Checked;
            try
            {
                _NO_TRANSLATE_revisionGrid.FormatQuickFilter(
                    _NO_TRANSLATE_textBox.Text,
                    filterParams,
                    out revListArgs,
                    out inMemMessageFilter,
                    out inMemCommitterFilter,
                    out inMemAuthorFilter);
            }
            catch (InvalidOperationException ex)
            {
                MessageBox.Show(_NO_TRANSLATE_form, ex.Message, "Filter error");
                _NO_TRANSLATE_textBox.Text = "";
                return;
            }

            if ((_NO_TRANSLATE_revisionGrid.QuickRevisionFilter == revListArgs) &&
                (_NO_TRANSLATE_revisionGrid.InMemMessageFilter == inMemMessageFilter) &&
                (_NO_TRANSLATE_revisionGrid.InMemCommitterFilter == inMemCommitterFilter) &&
                (_NO_TRANSLATE_revisionGrid.InMemAuthorFilter == inMemAuthorFilter) &&
                _NO_TRANSLATE_revisionGrid.InMemFilterIgnoreCase)
            {
                return;
            }

            _NO_TRANSLATE_revisionGrid.QuickRevisionFilter   = revListArgs;
            _NO_TRANSLATE_revisionGrid.InMemMessageFilter    = inMemMessageFilter;
            _NO_TRANSLATE_revisionGrid.InMemCommitterFilter  = inMemCommitterFilter;
            _NO_TRANSLATE_revisionGrid.InMemAuthorFilter     = inMemAuthorFilter;
            _NO_TRANSLATE_revisionGrid.InMemFilterIgnoreCase = true;
            _NO_TRANSLATE_revisionGrid.Visible = true;
            _NO_TRANSLATE_revisionGrid.ForceRefreshRevisions();
        }
RevisionGrid