It uses the GtkDialog framework to show the dialog window, so SaveOptions is a true widget, and a subclass of GtkDialog. This saves quite a bit of code, and make it behave more like a regular gtk dialog (so the popup is draggable, for example).
The dialog (though not all the contents, of course) are defined in a .ui file, reducing code a bit more.
It looks like a regular dialog to callers, saving some code there too.
I simplified the widget tree somewhat.
angstyloop's nice introspection code for creating and reading the option widgets is still there.
To do:
[x] An error and progress bar in the save popup.
[x] delayed return of the accept response, for long-running saves.
[x] a couple of small memleaks, with FIXMEs on them
[x] the filechooser is being destroyed too early, causing a warning
This is @angstyloop's PR #15, with a few changes:
GtkDialog
framework to show the dialog window, soSaveOptions
is a true widget, and a subclass ofGtkDialog
. This saves quite a bit of code, and make it behave more like a regular gtk dialog (so the popup is draggable, for example)..ui
file, reducing code a bit more.To do: