blob: 64009e3c89d675d542bc47c264a7366a5df3ba4c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
/*
* Copyright (C) 2022 Niels De Graef <nielsdegraef@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using Folks;
/**
* A custom GtkFilter to filter {@link Chunk}s on them possibly being non-empty.
*/
public class Contacts.ChunkEmptyFilter : Gtk.Filter {
/** Whether empty chunks match the filter */
public bool allow_empty {
get { return this._allow_empty; }
set {
if (this._allow_empty == value)
return;
this._allow_empty = value;
changed (value? Gtk.FilterChange.LESS_STRICT : Gtk.FilterChange.MORE_STRICT);
}
}
private bool _allow_empty = false;
public override bool match (GLib.Object? item) {
unowned var chunk = (Chunk) item;
return match_empty (chunk);
}
private bool match_empty (Chunk chunk) {
return this.allow_empty || !chunk.is_empty;
}
public override Gtk.FilterMatch get_strictness () {
return this.allow_empty? Gtk.FilterMatch.ALL : Gtk.FilterMatch.SOME;
}
}
|