Update translator email address
[clawsker.git] / clawsker
index 1f53f324bd7888e789d81c876edbaed64d3b4c3f..0e10937bd8423352be1a522ad921dfb3bc536a8b 100755 (executable)
--- a/clawsker
+++ b/clawsker
@@ -2129,7 +2129,11 @@ use constant {
     C_LABEL => 0,
     C_HOTKEY => 1,
     C_GROUP => 2,
-    C_ACCEL => 3
+    C_ACCEL => 3,
+    C_BCOLOR => 4,
+    # cell backgrounds
+    BG_LIGHTER => '#ffffff',
+    BG_DARKER => '#eeeeee'
 };
 
 sub new_hotkeys_list_label {
@@ -2152,7 +2156,9 @@ sub new_hotkeys_list_hotkey {
         $model->set($iter, C_HOTKEY, "\"$accel\"");
         my $gkey = $model->get_value ($iter, C_GROUP);
         my $akey = $model->get_value ($iter, C_ACCEL);
-        $HOTKEYS->{$gkey}->{$akey}->{'key'} = "\"$accel\"";
+        my $data = $HOTKEYS->{$gkey}->{$akey};
+        $data->{'key'} = "\"$accel\"";
+        $data->{'enabled'} = TRUE;
     });
     $renderer->signal_connect ('accel-cleared' => sub {
         my ($w, $path) = @_;
@@ -2160,7 +2166,9 @@ sub new_hotkeys_list_hotkey {
         $model->set($iter, C_HOTKEY, "\"\"");
         my $gkey = $model->get_value ($iter, C_GROUP);
         my $akey = $model->get_value ($iter, C_ACCEL);
-        $HOTKEYS->{$gkey}->{$akey}->{'key'} = "\"\"";
+        my $data = $HOTKEYS->{$gkey}->{$akey};
+        $data->{'key'} = "\"\"";
+        $data->{'enabled'} = FALSE;
     });
     return $renderer;
 }
@@ -2168,14 +2176,17 @@ sub new_hotkeys_list_hotkey {
 sub new_hotkeys_list {
     my ($gkey, $group) = @_;
     my $store = Gtk2::ListStore->new(
-        qw/Glib::String Glib::String Glib::String Glib::String/);
+        qw/Glib::String Glib::String Glib::String Glib::String Glib::String/);
+    my $even = FALSE;
     foreach my $akey (sort keys %$group) {
         my $iter = $store->append ();
         my $hotkey = $group->{$akey}->{'key'};
         my $label = $akey;
         $label =~ s/[<>]//g; # <rrsyl> and <IMAPFolder> !?
+        my $bgcol = $even ? BG_DARKER: BG_LIGHTER;
         $store->set ($iter, C_LABEL, $label, C_HOTKEY, $hotkey,
-            C_GROUP, $gkey, C_ACCEL, $akey);
+            C_GROUP, $gkey, C_ACCEL, $akey, C_BCOLOR, $bgcol);
+        $even = not $even;
     }
     my $treeview = Gtk2::TreeView->new_with_model ($store);
     # labels column
@@ -2183,8 +2194,10 @@ sub new_hotkeys_list {
         0, _("Menu path"), new_hotkeys_list_label (),
         sub {
             my ($col, $renderer, $model, $iter, $data) = @_;
-            my $label = $model->get_value ($iter, C_LABEL);
-            $renderer->set_property ('text' => $label);
+            $renderer->set_property (
+                'text' => $model->get_value ($iter, C_LABEL));
+            $renderer->set_property (
+                'background' => $model->get_value ($iter, C_BCOLOR));
         }
     );
     # hotkeys column
@@ -2197,6 +2210,8 @@ sub new_hotkeys_list {
             my ($acckey, $accmod) = Gtk2::Accelerator->parse ($hkey);
             $renderer->set_property ('accel-key' => $acckey);
             $renderer->set_property ('accel-mods' => $accmod);
+            $renderer->set_property (
+                'background' => $model->get_value ($iter, C_BCOLOR));
         }
     );
     # callback for saving current selection
@@ -2214,11 +2229,11 @@ sub new_hotkeys_page() {
         my $glabel = Gtk2::Label->new ('<b>' . $gkey . '</b>');
         $glabel->set_use_markup (TRUE);
         $glabel->set_alignment (0, 0.5);
-        $vbox->pack_start ($glabel, FALSE, FALSE, 1);
-        $vbox->pack_start (Gtk2::HSeparator->new (), FALSE, FALSE, 1);
+        $glabel->set_padding (5, 1);
+        $vbox->pack_start ($glabel, FALSE, FALSE, 0);
         # group key list
         my $keylist = new_hotkeys_list ($gkey, $group);
-        $vbox->pack_start ($keylist, FALSE, FALSE, 1);
+        $vbox->pack_start ($keylist, FALSE, FALSE, 0);
     }
     $swin->set_border_width (5);
     $swin->set_shadow_type ('none');
@@ -2614,6 +2629,15 @@ sub save_ac_preferences {
     return TRUE;
 }
 
+sub save_hk_preferences {
+    my $rc = get_menurc_filename ();
+    log_message ("Saving hotkey preferences to $rc\n");
+    return FALSE unless check_rc_file ($rc);
+    return FALSE unless check_claws_not_running ();
+    save_menurc ($rc, $HOTKEYS);
+    return TRUE;
+}
+
 # create notebook
 sub new_notebook {
     my $nb = Gtk2::Notebook->new;
@@ -2690,6 +2714,7 @@ sub new_button_box {
     $b_apply->signal_connect (clicked => sub {
         save_preferences ($parent);
         save_ac_preferences ($parent);
+        save_hk_preferences ($parent);
     });
     # $b_undo->signal_connect (clicked => sub { undo_current_changes });
     $b_about->signal_connect (clicked => sub { $adlg->run; $adlg->hide });
@@ -2733,7 +2758,7 @@ exit unless init_hidden_preferences ();
 my $box = Gtk2::VBox->new (FALSE, 5);
 $box->set_border_width(3);
 my $about = new_about_dialog ();
-$box->pack_start (new_notebook (), FALSE, FALSE, 0);
+$box->pack_start (new_notebook (), TRUE, TRUE, 0);
 $box->pack_end (new_button_box ($main_window, $about), FALSE, FALSE, 0);
 $main_window->signal_connect (delete_event => sub { Gtk2->main_quit });
 $main_window->set_title ($xl::s{win_title});