예제 #1
0
 public filter_item(ui_filter filter) {
     filter_ = filter;
 }
예제 #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 update 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
        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);
        }