Josselin Mouette <joss@debian.org> writes:
> The largest part of the problem is porting from GnomeDruid to
> GtkAssistant, which probably only requires a few hours for a
> knowledgeable person.
The back button of GtkAssistant seems troublesome.
In GnomeDruidPage, the back and next buttons just emit signals,
which Debconf::FrontEnd::Gnome then handles by exiting the main
loop and returning '' or 1 from sub go. In GtkAssistant however,
the back button backtraces a private visited_pages list, and it
is automatically hidden when this list is empty.
Approaches to be considered:
(a) Prepend an empty GTK_ASSISTANT_PAGE_INTRO. When displaying the
GtkAssistant, immediately switch to the GTK_ASSISTANT_PAGE_CONTENT
where the actual Debconf question is; if the GtkAssistant has
already been mapped, gtk_assistant_set_current_page then adds
the intro to visited_pages. If the user clicks the back button,
detect the intro page in the prepare signal.
(b) Handle the clicked signal from the back button and make the
button visible against the wishes of GtkAssistant. If the
visited_pages list remains empty at all times, then the
handler added by GtkAssistant does nothing, and there is no
need to remove it.
(c) Remove the original back button from its container and add
a custom one in its place.
(d) Just add a custom button that has nothing to do with the back
button.
(e) Rewrite Debconf so that the go method of Debconf::FrontEnd
is allowed to redisplay previous pages without returning.
Attachment:
pgpUOeTUNo67Z.pgp
Description: PGP signature