Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion src/Application.vala
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,26 @@ public class Application : Gtk.Application {
}

public void on_open_document () {
var open_dialog = new Gtk.FileDialog ();
var all_files_filter = new Gtk.FileFilter () {
name = _("All files"),
};
all_files_filter.add_pattern ("*");

var text_files_filter = new Gtk.FileFilter () {
name = _("Text files"),
};
text_files_filter.add_mime_type ("text/plain");

var filter_model = new ListStore (typeof (Gtk.FileFilter));
filter_model.append (all_files_filter);
filter_model.append (text_files_filter);

var open_dialog = new Gtk.FileDialog () {
default_filter = text_files_filter,
filters = filter_model,
title = _("Open"),
};

open_dialog.open.begin (this.active_window, null, (obj, res) => {
try {
var file = open_dialog.open.end (res);
Expand Down
17 changes: 17 additions & 0 deletions src/Window.vala
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,24 @@ public class AppWindow : Gtk.Window {
File oldfile = this.file;
bool is_unsaved_doc = (Application.data_dir_path in this.file.get_path ());

var all_files_filter = new Gtk.FileFilter () {
name = _("All files"),
};
all_files_filter.add_pattern ("*");

var text_files_filter = new Gtk.FileFilter () {
name = _("Text files"),
};
text_files_filter.add_mime_type ("text/plain");

var filter_model = new ListStore (typeof (Gtk.FileFilter));
filter_model.append (all_files_filter);
filter_model.append (text_files_filter);

var save_dialog = new Gtk.FileDialog () {
default_filter = text_files_filter,
filters = filter_model,
title = _("Save as"),
initial_name = (is_unsaved_doc ? file_name + ".txt" : file_name)
};

Expand Down