У меня есть приложение Gjs, которому нужно сохранять файлы. Я могу просто открыть диалоговое окно выбора файла из своего меню, и я добавил кнопку «сохранить» и «отменить», но я не могу заставить кнопку «сохранить» запустить что-либо.
Я знаю, что должен передать ему response_id, но я не уверен, как это должно выглядеть и что я должен делать с ним потом. Я прочитал эту часть здесь: https://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.FileChooserDialog.html#expand
let actionSaveAs = new Gio.SimpleAction ({ name: 'saveAs' });
actionSaveAs.connect('activate', () => {
const saver = new Gtk.FileChooserDialog({title:'Select a destination'});
saver.set_action(Gtk.FileChooserAction.SAVE);
saver.add_button('save', 'GTK_RESPONSE_ACCEPT');
saver.add_button('cancel', 'GTK_RESPONSE_CANCEL');
const res = saver.run();
if (res) {
print(res);
const filename = saver.get_filename();
print(filename);
}
saver.destroy();
});
APP.add_action(actionSaveAs);
Я могу поймать res
и запустить соответствующее небольшое действие ведения журнала, когда я закрываю диалоговое окно, но обе кнопки «сохранить» и «отмена» просто закрывают диалоговое окно, ничего не делая и не говоря.
Мой вопрос в том, что GTK_RESPONSE_ACCEPT и GTK_RESPONSE_CANCEL должны быть (выглядеть) в GJS и как их использовать?