From: Alexis Bienvenüe <paamc@passoire.fr>
Date: Sat, 20 Feb 2021 15:22:26 +0100
Subject: Bugfix: choose columns window (export) was broken. Refs #759.
Origin: https://gitlab.com/jojo_boulix/auto-multiple-choice/-/commit/d3d7ea24d8dbf1ed5591bf139fee508066086705
Bug: https://project.auto-multiple-choice.net/issues/759
Forwarded: not-needed


---
 AMC-perl/AMC/Export/register.pm      |  2 +-
 AMC-perl/AMC/Export/register/CSV.pm  | 12 ++++++------
 AMC-perl/AMC/Export/register/List.pm |  8 ++++----
 AMC-perl/AMC/Export/register/ods.pm  | 20 ++++++++++----------
 AMC-perl/AMC/Gui/Main.pm.in          |  2 +-
 5 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/AMC-perl/AMC/Export/register.pm b/AMC-perl/AMC/Export/register.pm
index bdd952ea..5ea3ef77 100644
--- a/AMC-perl/AMC/Export/register.pm
+++ b/AMC-perl/AMC/Export/register.pm
@@ -63,7 +63,7 @@ sub needs_module {
 }
 
 sub build_config_gui {
-    my ( $self, $w, $prefs ) = @_;
+    my ( $self, $main_ui ) = @_;
 }
 
 sub hide {
diff --git a/AMC-perl/AMC/Export/register/CSV.pm b/AMC-perl/AMC/Export/register/CSV.pm
index 002f7c85..37ad8eea 100644
--- a/AMC-perl/AMC/Export/register/CSV.pm
+++ b/AMC-perl/AMC/Export/register/CSV.pm
@@ -67,7 +67,7 @@ sub options_default {
 }
 
 sub build_config_gui {
-    my ( $self, $w, $prefs ) = @_;
+    my ( $self, $main ) = @_;
     my $t = Gtk3::Grid->new();
     my $widget;
     my $y = 0;
@@ -78,14 +78,14 @@ sub build_config_gui {
     $renderer = Gtk3::CellRendererText->new();
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_csv_separateur => cb_model(
             TAB => '<TAB>',
             ";" => ";",
             "," => ","
         )
     );
-    $w->{export_c_export_csv_separateur} = $widget;
+    $main->{ui}->{export_c_export_csv_separateur} = $widget;
     $t->attach( $widget, 1, $y, 1, 1 );
     $y++;
 
@@ -94,19 +94,19 @@ sub build_config_gui {
     $renderer = Gtk3::CellRendererText->new();
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_csv_ticked => cb_model(
             ""   => __ "No",
             "01" => ( __ "Yes:" ) . " 0;0;1;0",
             AB   => ( __ "Yes:" ) . " AB",
         )
     );
-    $w->{export_c_export_csv_ticked} = $widget;
+    $main->{ui}->{export_c_export_csv_ticked} = $widget;
     $t->attach( $widget, 1, $y, 1, 1 );
     $y++;
 
     $widget = Gtk3::Button->new_with_label( __ "Choose columns" );
-    $widget->signal_connect( clicked => \&main::choose_columns_current );
+    $widget->signal_connect( clicked => sub { $main->choose_columns_current } );
     $t->attach( $widget, 0, $y, 2, 1 );
     $y++;
 
diff --git a/AMC-perl/AMC/Export/register/List.pm b/AMC-perl/AMC/Export/register/List.pm
index c6ea3654..436bb8ff 100644
--- a/AMC-perl/AMC/Export/register/List.pm
+++ b/AMC-perl/AMC/Export/register/List.pm
@@ -68,7 +68,7 @@ sub options_default {
 }
 
 sub build_config_gui {
-    my ( $self, $w, $prefs ) = @_;
+    my ( $self, $main ) = @_;
     my $t = Gtk3::Grid->new();
     my $widget;
     my $y = 0;
@@ -77,7 +77,7 @@ sub build_config_gui {
       Gtk3::SpinButton->new( Gtk3::Adjustment->new( 1, 1, 5, 1, 1, 0 ), 0, 0 );
     $widget->set_tooltip_text(
         __ "Long list is divided into this number of columns on each page." );
-    $w->{export_s_export_ncols} = $widget;
+    $main->{ui}->{export_s_export_ncols} = $widget;
     $t->attach( $widget, 1, $y, 1, 1 );
     $y++;
     $t->attach( Gtk3::Label->new( __ "Paper size" ), 0, $y, 1, 1 );
@@ -85,7 +85,7 @@ sub build_config_gui {
     my $renderer = Gtk3::CellRendererText->new();
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_pagesize => cb_model(
             "a3"   => "A3",
             "a4"   => "A4",
@@ -93,7 +93,7 @@ sub build_config_gui {
             legal  => "Legal"
         )
     );
-    $w->{export_c_export_pagesize} = $widget;
+    $main->{ui}->{export_c_export_pagesize} = $widget;
     $t->attach( $widget, 1, $y, 1, 1 );
     $y++;
 
diff --git a/AMC-perl/AMC/Export/register/ods.pm b/AMC-perl/AMC/Export/register/ods.pm
index 216c16f4..ee3bfc6b 100644
--- a/AMC-perl/AMC/Export/register/ods.pm
+++ b/AMC-perl/AMC/Export/register/ods.pm
@@ -77,7 +77,7 @@ sub needs_module {
 }
 
 sub build_config_gui {
-    my ( $self, $w, $prefs ) = @_;
+    my ( $self, $main ) = @_;
     my $t = Gtk3::Grid->new();
     my $widget;
     my $renderer;
@@ -98,7 +98,7 @@ sub build_config_gui {
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
 
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_ods_stats => cb_model(
             "" => __p(
                 # TRANSLATORS: Menu to export statistics table in the
@@ -126,7 +126,7 @@ sub build_config_gui {
             )
         )
     );
-    $w->{export_c_export_ods_stats} = $widget;
+    $main->{ui}->{export_c_export_ods_stats} = $widget;
     $t->attach( $widget, 1, $y, 1, 1 );
     $y++;
 
@@ -145,14 +145,14 @@ sub build_config_gui {
     $renderer = Gtk3::CellRendererText->new();
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_ods_statsindic => cb_model(
             "" => __ "None",
             h  => __ "Horizontal flow",
             v  => __ "Vertical flow"
         )
     );
-    $w->{export_c_export_ods_statsindic} = $widget;
+    $main->{ui}->{export_c_export_ods_statsindic} = $widget;
     $t->attach( $widget, 1, $y, 1, 1 );
     $widget->set_tooltip_text( __
 "Create a table with basic statistics about answers for each indicative question?"
@@ -177,7 +177,7 @@ sub build_config_gui {
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
 
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_ods_group => cb_model(
             "0" => __(
                 # TRANSLATORS: Option for ODS export: group questions
@@ -203,7 +203,7 @@ sub build_config_gui {
             )
         )
     );
-    $w->{export_c_export_ods_group} = $widget;
+    $main->{ui}->{export_c_export_ods_group} = $widget;
 
     $widget->set_tooltip_text(
         __ "Add sums of the scores for each question group?" );
@@ -218,7 +218,7 @@ sub build_config_gui {
     $widget->pack_start( $renderer, Glib::TRUE );
     $widget->add_attribute( $renderer, 'text', COMBO_TEXT );
 
-    $prefs->store_register(
+    $main->{prefs}->store_register(
         export_ods_groupsep => cb_model(
             ":" => __(
                 # TRANSLATORS: Option for ODS export: group questions
@@ -237,7 +237,7 @@ sub build_config_gui {
             )
         )
     );
-    $w->{export_c_export_ods_groupsep} = $widget;
+    $main->{ui}->{export_c_export_ods_groupsep} = $widget;
 
     $widget->set_tooltip_text( __
 "To define groups, use question ids in the form \"group:question\" or \"group.question\", depending on the scope separator."
@@ -248,7 +248,7 @@ sub build_config_gui {
     $y++;
 
     my $b = Gtk3::Button->new_with_label( __ "Choose columns" );
-    $b->signal_connect( clicked => \&main::choose_columns_current );
+    $b->signal_connect( clicked => sub { $main->choose_columns_current } );
     $t->attach( $b, 0, $y, 2, 1 );
     $y++;
 
diff --git a/AMC-perl/AMC/Gui/Main.pm.in b/AMC-perl/AMC/Gui/Main.pm.in
index b186af77..b479afea 100644
--- a/AMC-perl/AMC/Gui/Main.pm.in
+++ b/AMC-perl/AMC/Gui/Main.pm.in
@@ -3980,7 +3980,7 @@ sub set_export {
 
     for my $m ( @{ $self->{config}->{export_modules} } ) {
         my $x = "AMC::Export::register::$m"
-          ->build_config_gui( $self->{ui}, $self->{prefs} );
+          ->build_config_gui( $self );
         if ($x) {
             $self->{ui}->{ 'config_export_module_' . $m } = $x;
             $self->{ui}->{config_export_modules}->pack_start( $x, 0, 0, 0 );
-- 
2.30.1

