From a2b735ab48b36a425de74fb648d4dccc471f5b68 Mon Sep 17 00:00:00 2001 From: Ricardo Mones Date: Fri, 16 Sep 2016 01:35:59 +0200 Subject: [PATCH] Disable plugins not configured --- clawsker | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/clawsker b/clawsker index 84473fe..5df31fe 100755 --- a/clawsker +++ b/clawsker @@ -245,6 +245,9 @@ my $ALTCONFIGDIR = FALSE; my $CONFIGDIR = $ENV{HOME} . '/.claws-mail/'; my $CONFIGRC = 'clawsrc'; my $ACCOUNTRC = 'accountrc'; +# supported and available plugins lists +my @PLUGINS = qw(AttRemover Libravatar ManageSieve PerlPlugin); +my @AVPLUGINS = (); # index constants for preference arrays use constant NAME => 0; # the name on the rc file @@ -1918,26 +1921,37 @@ sub new_accounts_page() { ); sub new_plugins_page() { - return new_vbox_pack ( + my %frame = (); + $frame{'AttRemover'} = new_subpage_frame ( new_hbox_pack ( new_text_box_for_int (\%pr::plu, 'arm_winw', $PLHPVALUE{'AttRemover'}), new_text_box_for_int (\%pr::plu, 'arm_winh', $PLHPVALUE{'AttRemover'})), - _('Attachment remover'), 'not-packed'), + _('Attachment remover'), 'not-packed'); + $frame{'ManageSieve'} = new_subpage_frame ( new_hbox_pack ( new_text_box_for_int (\%pr::plu, 'msv_winw', $PLHPVALUE{'ManageSieve'}), new_text_box_for_int (\%pr::plu, 'msv_winh', $PLHPVALUE{'ManageSieve'})), - _('Sieve manager'), 'not-packed'), + _('Sieve manager'), 'not-packed'); + $frame{'Libravatar'} = new_subpage_frame ( new_hbox_pack ( new_text_box_for_nchar (\%pr::plu, 'lav_burl', $PLHPVALUE{'Libravatar'})), - _('Libravatar'), 'not-packed'), + _('Libravatar'), 'not-packed'); + $frame{'PerlPlugin'} = new_subpage_frame ( new_hbox_pack ( new_selection_box_for (\%pr::plu, 'prl_flvb', $PLHPVALUE{'PerlPlugin'})), - _('Perl'), 'not-packed') - ); + _('Perl'), 'not-packed'); + foreach (@PLUGINS) { + $frame{$_}->set_sensitive (defined $PLHPVALUE{$_}); + } + return new_vbox_pack ( + $frame{'AttRemover'}, + $frame{'ManageSieve'}, + $frame{'Libravatar'}, + $frame{'PerlPlugin'}); } # version info @@ -2052,7 +2066,9 @@ sub init_plu_hidden_preferences { foreach my $key (keys %pr::plu) { my $plugin = $pr::plu{$key}[PLUGIN]; my $pname = $pr::plu{$key}[NAME]; - $PLHPVALUE{$plugin}{$pname} = $PLPREFS{$plugin}{$pname}; + if (defined $PLPREFS{$plugin}) { + $PLHPVALUE{$plugin}{$pname} = $PLPREFS{$plugin}{$pname}; + } } return TRUE; } @@ -2132,9 +2148,12 @@ sub load_preferences { foreach (keys %{$CONFIGDATA->{'Common'}}) { $PREFS{$_} = $CONFIGDATA->{'Common'}{$_}; } - foreach my $plugin (qw(AttRemover Libravatar ManageSieve PerlPlugin)) { - foreach (keys %{$CONFIGDATA->{$plugin}}) { - $PLPREFS{$plugin}{$_} = $CONFIGDATA->{$plugin}{$_}; + foreach my $plugin (@PLUGINS) { + if (defined $CONFIGDATA->{$plugin}) { + push (@AVPLUGINS, $plugin); + foreach (keys %{$CONFIGDATA->{$plugin}}) { + $PLPREFS{$plugin}{$_} = $CONFIGDATA->{$plugin}{$_}; + } } } return TRUE; @@ -2169,7 +2188,7 @@ sub save_preferences { $CONFIGDATA->{'Common'}{$_} = $HPVALUE{$_}; } } - foreach my $plugin (qw(AttRemover Libravatar ManageSieve PerlPlugin)) { + foreach my $plugin (@AVPLUGINS) { foreach (keys %{$CONFIGDATA->{$plugin}}) { if (defined $PLHPVALUE{$plugin}{$_}) { $CONFIGDATA->{$plugin}{$_} = $PLHPVALUE{$plugin}{$_}; -- 2.25.1