Rectangular selection
authorColin Clark <cclark@mcb.net>
Wed, 4 Jan 2017 20:01:47 +0000 (20:01 +0000)
committerColin Clark <cclark@mcb.net>
Wed, 4 Jan 2017 20:01:47 +0000 (20:01 +0000)
Add toggle Rectangular Selection to Select menu. Shortcut key is Alt-R.
Also on Collection widow.
Removed option from Preferences page as it is redundant

doc/docbook/GuideMainWindowMenus.xml
doc/docbook/GuideOptionsBehavior.xml
doc/docbook/GuideReferenceKeyboardShortcuts.xml
src/collect-table.c
src/collect.c
src/layout_util.c
src/preferences.c

index 8c13af8..bc1fab5 100644 (file)
       </varlistentry>\r
       <varlistentry>\r
         <term>\r
-          <guimenu>Find duplicates…</guimenu>\r
+          <menuchoice>\r
+            <shortcut>\r
+              <keycombo>\r
+                <keycap>D</keycap>\r
+              </keycombo>\r
+            </shortcut>\r
+            <guimenu>Find duplicates...</guimenu>\r
+          </menuchoice>\r
         </term>\r
         <listitem>\r
           <para>Opens a new Find Duplicates window.</para>\r
           <menuchoice>\r
             <shortcut>\r
               <keycombo>\r
-                <keycap>4</keycap>\r
+                <keycap>Backspace</keycap>\r
               </keycombo>\r
             </shortcut>\r
             <guimenu>Previous Image</guimenu>\r
       <varlistentry>\r
         <term>\r
           <menuchoice>\r
+            <shortcut>\r
+              <keycombo>\r
+                <keycap>Ctrl</keycap>\r
+                <keycap>A</keycap>\r
+              </keycombo>\r
+            </shortcut>\r
             <guimenu>Select all</guimenu>\r
           </menuchoice>\r
         </term>\r
       <varlistentry>\r
         <term>\r
           <menuchoice>\r
+            <shortcut>\r
+              <keycombo>\r
+                <keycap>Ctrl</keycap>\r
+                <keycap>Shift</keycap>\r
+                <keycap>A</keycap>\r
+              </keycombo>\r
+            </shortcut>\r
             <guimenu>Select none</guimenu>\r
           </menuchoice>\r
         </term>\r
       <varlistentry>\r
         <term>\r
           <menuchoice>\r
-            <guimenu>Invert Selection</guimenu>\r
+            <shortcut>\r
+              <keycombo>\r
+                <keycap>Ctrl</keycap>\r
+                <keycap>Shift</keycap>\r
+                <keycap>I</keycap>\r
+              </keycombo>\r
+            </shortcut>\r
+            <guimenu>Invert selection</guimenu>\r
           </menuchoice>\r
         </term>\r
         <listitem>\r
           <para>Inverts current selection</para>\r
         </listitem>\r
       </varlistentry>\r
+      <varlistentry>\r
+        <term>\r
+          <menuchoice>\r
+            <shortcut>\r
+              <keycombo>\r
+                <keycap>Alt</keycap>\r
+                <keycap>R</keycap>\r
+              </keycombo>\r
+            </shortcut>\r
+            <guimenu>Rectangular selection</guimenu>\r
+          </menuchoice>\r
+        </term>\r
+        <listitem>\r
+          <para>Toggles rectangular selection mode for icons</para>\r
+        </listitem>\r
+      </varlistentry>\r
       <varlistentry>\r
         <term>\r
           <menuchoice>\r
       <varlistentry>\r
         <term>\r
           <menuchoice>\r
+            <shortcut>\r
+              <keycombo>\r
+                <keycap>M</keycap>\r
+              </keycombo>\r
+            </shortcut>\r
             <guimenu>Show marks</guimenu>\r
           </menuchoice>\r
         </term>\r
index 5b12fb7..c98bd5b 100644 (file)
   <section id="Behaviour">\r
     <title>Behavior</title>\r
     <variablelist>\r
-      <varlistentry>\r
-        <term>\r
-          <guilabel>Rectangular selection in icon view</guilabel>\r
-        </term>\r
-        <listitem>\r
-          <para>Enable this to change the selection method used when selecting multiple items in an icon view.</para>\r
-        </listitem>\r
-      </varlistentry>\r
       <varlistentry>\r
         <term>\r
           <guilabel>Descend folders in tree view</guilabel>\r
index da29391..d36c197 100644 (file)
             <entry />\r
             <entry>Unselect all images.</entry>\r
           </row>\r
+          <row>\r
+            <entry>\r
+              <code>\r
+                Ctrl + SHIFT +\r
+                <keycap>I</keycap>\r
+              </code>\r
+            </entry>\r
+            <entry />\r
+            <entry>Invert selection.</entry>\r
+          </row>\r
+          <row>\r
+            <entry>\r
+              <code>\r
+                Alt +\r
+                <keycap>R</keycap>\r
+              </code>\r
+            </entry>\r
+            <entry />\r
+            <entry>Toggle rectangular selection mode in icon view.</entry>\r
+          </row>\r
+          <row>\r
+            <entry>\r
+              <keycap>M</keycap>\r
+            </entry>\r
+            <entry />\r
+            <entry>Show marks.</entry>\r
+          </row>\r
           <row rowsep="0">\r
             <entry colsep="0" />\r
             <entry colsep="0" />\r
             <entry />\r
             <entry>Select multiple images.</entry>\r
           </row>\r
+          <row>\r
+            <entry>\r
+              <code>\r
+                Alt +\r
+                <keycap>R</keycap>\r
+              </code>\r
+            </entry>\r
+            <entry />\r
+            <entry>Toggle rectangular selection mode.</entry>\r
+          </row>\r
           <row>\r
             <entry>\r
               <keycap>Space</keycap>\r
index 2695640..ed61d5a 100644 (file)
@@ -808,6 +808,13 @@ static void collection_table_popup_select_invert_cb(GtkWidget *widget, gpointer
        ct->prev_selection= ct->click_info;
 }
 
+static void collection_table_popup_rectangular_selection_cb(GtkWidget *widget, gpointer data)
+{
+       CollectTable *ct = data;
+
+       options->collections.rectangular_selection = !(options->collections.rectangular_selection);
+}
+
 static void collection_table_popup_remove_cb(GtkWidget *widget, gpointer data)
 {
        CollectTable *ct = data;
@@ -924,6 +931,8 @@ static GtkWidget *collection_table_popup_menu(CollectTable *ct, gboolean over_ic
                        G_CALLBACK(collection_table_popup_unselectall_cb), ct);
        menu_item_add(submenu, _("Invert selection"),
                        G_CALLBACK(collection_table_popup_select_invert_cb), ct);
+       menu_item_add_check(submenu, _("Rectangular selection"), (options->collections.rectangular_selection != FALSE),
+                       G_CALLBACK(collection_table_popup_rectangular_selection_cb), ct);
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
        menu_item_add_divider(menu);
 
index 12bee14..2287d12 100644 (file)
@@ -908,6 +908,12 @@ static gboolean collection_window_keypress(GtkWidget *widget, GdkEventKey *event
                                        collection_set_sort_method(cw->cd, SORT_PATH);
                                        }
                                break;
+                       case 'R': case 'r':
+                               if (event->state & GDK_MOD1_MASK)
+                                       {
+                                               options->collections.rectangular_selection = !(options->collections.rectangular_selection);
+                                       }
+                               break;
                        case GDK_KEY_Delete: case GDK_KEY_KP_Delete:
                                list = g_list_copy(cw->table->selection);
                                if (list)
index 7e883d7..bdac533 100644 (file)
@@ -705,6 +705,13 @@ static void layout_menu_histogram_cb(GtkToggleAction *action, gpointer data)
                }
 }
 
+static void layout_menu_rectangular_selection_cb(GtkToggleAction *action, gpointer data)
+{
+       LayoutWindow *lw = data;
+
+       options->collections.rectangular_selection = gtk_toggle_action_get_active(action);
+}
+
 static void layout_menu_histogram_toggle_channel_cb(GtkAction *action, gpointer data)
 {
        LayoutWindow *lw = data;
@@ -1581,6 +1588,7 @@ static GtkToggleActionEntry menu_toggle_entries[] = {
   { "Grayscale",       NULL,                   N_("Toggle _grayscale"),                "<shift>G",             N_("Toggle grayscale"),                 CB(layout_menu_alter_desaturate_cb), FALSE},
   { "ImageOverlay",    NULL,                   N_("Image _Overlay"),                   NULL,                   N_("Image Overlay"),                    CB(layout_menu_overlay_cb),      FALSE },
   { "ImageHistogram",  NULL,                   N_("_Show Histogram"),                  NULL,                   N_("Show Histogram"),                   CB(layout_menu_histogram_cb),    FALSE },
+  { "RectangularSelection",    NULL,                   N_("Rectangular Selection"),                    "<alt>R",                       N_("Rectangular Selection"),                    CB(layout_menu_rectangular_selection_cb),        FALSE },
 };
 
 static GtkRadioActionEntry menu_radio_entries[] = {
@@ -1676,6 +1684,7 @@ static const gchar *menu_ui_description =
 "      <menuitem action='SelectAll'/>"
 "      <menuitem action='SelectNone'/>"
 "      <menuitem action='SelectInvert'/>"
+"      <menuitem action='RectangularSelection'/>"
 "      <placeholder name='SelectSection'/>"
 "      <separator/>"
 "      <menuitem action='CopyPath'/>"
index 4f558ab..27773a0 100644 (file)
@@ -276,8 +276,6 @@ static void config_window_apply(void)
 
        options->file_ops.enable_in_place_rename = c_options->file_ops.enable_in_place_rename;
 
-       options->collections.rectangular_selection = c_options->collections.rectangular_selection;
-
        options->image.tile_cache_max = c_options->image.tile_cache_max;
        options->image.image_cache_max = c_options->image.image_cache_max;
 
@@ -2147,9 +2145,6 @@ static void config_tab_behavior(GtkWidget *notebook)
 
        group = pref_group_new(vbox, FALSE, _("Behavior"), GTK_ORIENTATION_VERTICAL);
 
-       pref_checkbox_new_int(group, _("Rectangular selection in icon view"),
-                             options->collections.rectangular_selection, &c_options->collections.rectangular_selection);
-
        pref_checkbox_new_int(group, _("Descend folders in tree view"),
                              options->tree_descend_subdirs, &c_options->tree_descend_subdirs);