Skip to content

Commit 8d0974c

Browse files
teamconswpkelso
andauthored
add filters (#43)
* add filters * Add filter for open too * dont make it modal --------- Co-authored-by: William Kelso <[email protected]>
1 parent 53d3dbe commit 8d0974c

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/Application.vala

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,26 @@ public class Application : Gtk.Application {
168168
}
169169

170170
public void on_open_document () {
171-
var open_dialog = new Gtk.FileDialog ();
171+
var all_files_filter = new Gtk.FileFilter () {
172+
name = _("All files"),
173+
};
174+
all_files_filter.add_pattern ("*");
175+
176+
var text_files_filter = new Gtk.FileFilter () {
177+
name = _("Text files"),
178+
};
179+
text_files_filter.add_mime_type ("text/plain");
180+
181+
var filter_model = new ListStore (typeof (Gtk.FileFilter));
182+
filter_model.append (all_files_filter);
183+
filter_model.append (text_files_filter);
184+
185+
var open_dialog = new Gtk.FileDialog () {
186+
default_filter = text_files_filter,
187+
filters = filter_model,
188+
title = _("Open"),
189+
};
190+
172191
open_dialog.open.begin (this.active_window, null, (obj, res) => {
173192
try {
174193
var file = open_dialog.open.end (res);

src/Window.vala

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,24 @@ public class AppWindow : Gtk.Window {
145145
File oldfile = this.file;
146146
bool is_unsaved_doc = (Application.data_dir_path in this.file.get_path ());
147147

148+
var all_files_filter = new Gtk.FileFilter () {
149+
name = _("All files"),
150+
};
151+
all_files_filter.add_pattern ("*");
152+
153+
var text_files_filter = new Gtk.FileFilter () {
154+
name = _("Text files"),
155+
};
156+
text_files_filter.add_mime_type ("text/plain");
157+
158+
var filter_model = new ListStore (typeof (Gtk.FileFilter));
159+
filter_model.append (all_files_filter);
160+
filter_model.append (text_files_filter);
161+
148162
var save_dialog = new Gtk.FileDialog () {
163+
default_filter = text_files_filter,
164+
filters = filter_model,
165+
title = _("Save as"),
149166
initial_name = (is_unsaved_doc ? file_name + ".txt" : file_name)
150167
};
151168

0 commit comments

Comments
 (0)