示例#1
0
        private void addFilter_Click(object sender, EventArgs e)
        {
            if (view_ == null)
            {
                Debug.Assert(false);
                return;
            }

            ui_filter new_ui = new ui_filter {
                enabled = true, dimmed = false, text = "", apply_to_existing_lines = false
            };
            filter_item new_ = new filter_item(new_ui);

            view_.filters.Add(new_ui);

            ++ignore_change_;
            filterCtrl.AddObject(new_);
            filterCtrl.SelectedIndices.Clear();
            filterCtrl.SelectObject(new_);
            curFilterCtrl.Text = "";
            --ignore_change_;

            on_save();

            util.postpone(() => {
                curFilterCtrl.Focus();
                curFilterCtrl.SelectionStart = curFilterCtrl.TextLength;
            }, 10);
        }
示例#2
0
        public void update_filter_row(string id, string filter_str, bool apply_to_existing_lines)
        {
            bool   updated      = false;
            bool   was_selected = false;
            string unique_id    = new raw_filter_row(filter_str, apply_to_existing_lines).unique_id;

            for (int idx = 0; idx < filterCtrl.GetItemCount(); ++idx)
            {
                var  i       = filterCtrl.GetItem(idx).RowObject as filter_item;
                bool is_same = i.filter_id == id;
                if (!is_same)
                {
                    // in this case, check if we have an existing filter exactly the same, but with a different color
                    is_same = unique_id == i.unique_id;
                }
                if (is_same)
                {
                    i.text       = raw_filter_row.merge_lines(i.text, filter_str);
                    was_selected = idx == filterCtrl.SelectedIndex;
                    filterCtrl.RefreshObject(i);
                    updated = true;
                    break;
                }
            }

            if (!updated)
            {
                // new filter
                ui_filter new_ui = new ui_filter {
                    enabled = true, dimmed = false, text = filter_str, apply_to_existing_lines = apply_to_existing_lines
                };
                filter_item new_ = new filter_item(new_ui);

                view_.filters.Add(new_ui);

                ++ignore_change_;
                filterCtrl.AddObject(new_);
                --ignore_change_;
            }

            // if editing, need to set_aliases that as well
            if (was_selected)
            {
                ++ignore_change_;
                curFilterCtrl.Text = filter_str;
                --ignore_change_;
            }

            on_save();
            ui_to_view(view_idx_);
            if (updated)
            {
                do_refresh();
            }
            else
            {
                on_rerun_view(view_idx_);
            }
        }
示例#3
0
 public filter_item(ui_filter filter)
 {
     filter_ = filter;
 }