Plugin.MailMerge: Allow CSV chooser to be re-used
This commit is contained in:
parent
8d297afa33
commit
ba0ed1c018
1 changed files with 35 additions and 24 deletions
|
|
@ -203,34 +203,23 @@ public class Plugin.MailMerge :
|
|||
}
|
||||
|
||||
private async void load_composer_data(Composer composer) {
|
||||
var chooser = new Gtk.FileChooserNative(
|
||||
/// Translators: File chooser title after invoking mail
|
||||
/// merge in composer
|
||||
_("Mail Merge"),
|
||||
null, OPEN,
|
||||
_("_Open"),
|
||||
_("_Cancel")
|
||||
);
|
||||
var csv_filter = new Gtk.FileFilter();
|
||||
/// Translators: File chooser filer label
|
||||
csv_filter.set_filter_name(_("Comma separated values (CSV)"));
|
||||
csv_filter.add_mime_type("text/csv");
|
||||
chooser.add_filter(csv_filter);
|
||||
var data = show_merge_data_chooser();
|
||||
if (data != null) {
|
||||
var insert_field_action = new GLib.SimpleAction(
|
||||
ACTION_INSERT_FIELD,
|
||||
GLib.VariantType.STRING
|
||||
);
|
||||
composer.register_action(insert_field_action);
|
||||
insert_field_action.activate.connect(
|
||||
(param) => {
|
||||
insert_field(composer, (string) param);
|
||||
}
|
||||
);
|
||||
|
||||
var insert_field_action = new GLib.SimpleAction(
|
||||
ACTION_INSERT_FIELD,
|
||||
GLib.VariantType.STRING
|
||||
);
|
||||
composer.register_action(insert_field_action);
|
||||
insert_field_action.activate.connect(
|
||||
(param) => { insert_field(composer, (string) param); }
|
||||
);
|
||||
|
||||
if (chooser.run() == Gtk.ResponseType.ACCEPT) {
|
||||
try {
|
||||
composer.set_action_bar(
|
||||
yield new_composer_action_bar(
|
||||
chooser.get_file(),
|
||||
data,
|
||||
composer.action_group_name
|
||||
)
|
||||
);
|
||||
|
|
@ -303,6 +292,28 @@ public class Plugin.MailMerge :
|
|||
return action_bar;
|
||||
}
|
||||
|
||||
private GLib.File? show_merge_data_chooser() {
|
||||
var chooser = new Gtk.FileChooserNative(
|
||||
/// Translators: File chooser title after invoking mail
|
||||
/// merge in composer
|
||||
_("Mail Merge"),
|
||||
null, OPEN,
|
||||
_("_Open"),
|
||||
_("_Cancel")
|
||||
);
|
||||
var csv_filter = new Gtk.FileFilter();
|
||||
/// Translators: File chooser filer label
|
||||
csv_filter.set_filter_name(_("Comma separated values (CSV)"));
|
||||
csv_filter.add_mime_type("text/csv");
|
||||
chooser.add_filter(csv_filter);
|
||||
|
||||
return (
|
||||
chooser.run() == Gtk.ResponseType.ACCEPT
|
||||
? chooser.get_file()
|
||||
: null
|
||||
);
|
||||
}
|
||||
|
||||
private void insert_field(Composer composer, string field) {
|
||||
composer.insert_text(FIELD_START + field + FIELD_END);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue