~jeremywootten/pantheon-files/fix-backspace-in-columnv-view

« back to all changes in this revision

Viewing changes to src/View/AbstractDirectoryView.vala

  • Committer: Jeremy Wootten
  • Date: 2016-01-29 17:21:40 UTC
  • mfrom: (2023.1.25 pantheon-files)
  • Revision ID: jeremy@elementaryos.org-20160129172140-hirnjv1uo5mxiz7b
merge trunk r2048

Show diffs side-by-side

added added

removed removed

Lines of Context:
242
242
        public AbstractDirectoryView (Marlin.View.Slot _slot) {
243
243
            slot = _slot;
244
244
            window = _slot.window;
245
 
            editable_cursor = new Gdk.Cursor (Gdk.CursorType.XTERM);
246
 
            activatable_cursor = new Gdk.Cursor (Gdk.CursorType.HAND1);
247
 
            selectable_cursor = new Gdk.Cursor (Gdk.CursorType.ARROW);
248
 
            blank_cursor = new Gdk.Cursor (Gdk.CursorType.CROSSHAIR);
 
245
            editable_cursor = new Gdk.Cursor.from_name (Gdk.Display.get_default (), "text");
 
246
            activatable_cursor = new Gdk.Cursor.from_name (Gdk.Display.get_default (), "pointer");
 
247
            selectable_cursor = new Gdk.Cursor.from_name (Gdk.Display.get_default (), "default");
 
248
            blank_cursor = new Gdk.Cursor.from_name (Gdk.Display.get_default (), "crosshair");
249
249
            clipboard = ((Marlin.Application)(window.application)).get_clipboard_manager ();
250
250
            icon_renderer = new Marlin.IconRenderer ();
251
251
            thumbnailer = Marlin.Thumbnailer.get ();
282
282
            freeze_tree (); /* speed up loading of icon view. Thawed when directory loaded */
283
283
            set_up_zoom_level ();
284
284
            change_zoom_level ();
 
285
 
 
286
            connect_directory_handlers (slot.directory);
285
287
        }
286
288
 
287
289
        ~AbstractDirectoryView () {
326
328
            (GOF.Preferences.get_default ()).notify["show-hidden-files"].connect (on_show_hidden_files_changed);
327
329
            (GOF.Preferences.get_default ()).notify["interpret-desktop-files"].connect (on_interpret_desktop_files_changed);
328
330
 
329
 
            connect_directory_handlers (slot.directory);
330
 
 
331
331
            model.row_deleted.connect (on_row_deleted);
332
332
            /* Sort order of model is set after loading */
333
333
            model.sort_column_changed.connect (on_sort_column_changed);
619
619
            block_model ();
620
620
            model.clear ();
621
621
            unblock_model ();
622
 
            if (new_dir.can_load)
623
 
                connect_directory_handlers (new_dir);
 
622
            /* As we connect the signal file_loaded signal handler, we initialise. */
 
623
            connect_directory_handlers (new_dir);
624
624
        }
625
625
 
626
626
        public void reload () {
649
649
        }
650
650
 
651
651
        protected void cancel_thumbnailing () {
652
 
            slot.directory.cancel ();
 
652
            slot.directory.cancel_thumbnailing ();
653
653
            cancel_timeout (ref thumbnail_source_id);
654
654
 
655
655
            if (thumbnail_request > 0) {
970
970
 
971
971
            foreach (GOF.File file in selected_files) {
972
972
                window.add_tab (GLib.File.new_for_uri (file.get_display_target_uri ()), Marlin.ViewMode.CURRENT);
973
 
            }        
 
973
            }
974
974
        }
975
975
 
976
976
        private void on_selection_action_forget (GLib.SimpleAction action, GLib.Variant? param) {
1285
1285
        }
1286
1286
 
1287
1287
        private void  on_directory_done_loading (GOF.Directory.Async dir) {
1288
 
            debug ("DV  directory done loading %s", dir.file.uri);
 
1288
            /* Should only be called on directory creation or reload */
1289
1289
            dir.file_loaded.disconnect (on_directory_file_loaded);
 
1290
            dir.done_loading.disconnect (on_directory_done_loading);
1290
1291
            in_trash = slot.directory.is_trash;
1291
1292
            in_recent = slot.directory.is_recent;
1292
1293
            in_network_root = slot.directory.file.is_root_network_folder ();
1295
1296
 
1296
1297
            if (in_recent)
1297
1298
                model.set_sort_column_id (get_column_id_from_string ("modified"), Gtk.SortType.DESCENDING);
1298
 
            else
 
1299
            else if (slot.directory.file.info != null) {
1299
1300
                model.set_sort_column_id (slot.directory.file.sort_column_id, slot.directory.file.sort_order);
 
1301
            }
1300
1302
 
1301
1303
            /* This is a workround for a bug (Gtk?) in the drawing of the ListView where the columns
1302
1304
             * are sometimes not properly aligned when first drawn, only after redrawing the view. */
1342
1344
        }
1343
1345
 
1344
1346
        private void directory_hidden_changed (GOF.Directory.Async dir, bool show) {
 
1347
            /* May not be slot.directory - could be subdirectory */
1345
1348
            dir.file_loaded.connect (on_directory_file_loaded); /* disconnected by on_done_loading callback.*/
1346
 
 
1347
 
            if (show)
1348
 
                dir.load_hiddens ();
1349
 
            else
1350
 
                dir.load ();
 
1349
            dir.load_hiddens ();
1351
1350
        }
1352
1351
 
1353
1352
        private void on_interpret_desktop_files_changed () {
2072
2071
                if (ftype == GLib.FileType.DIRECTORY) {
2073
2072
                    var submenu = new GLib.MenuItem.submenu (label, templates_submenu);
2074
2073
                    templates_menu.append_item (submenu);
2075
 
                    templates_submenu = new GLib.Menu ();             
 
2074
                    templates_submenu = new GLib.Menu ();
2076
2075
                } else {
2077
2076
                    templates_submenu.append (label, "background.create_from::" + index.to_string ());
2078
2077
                    count ++;
2507
2506
/** Keyboard event handling **/
2508
2507
 
2509
2508
        /** Returns true if the code parameter matches the keycode of the keyval parameter for
2510
 
          * any keyboard group or level (in order to allow for non-QWERTY keyboards) **/ 
 
2509
          * any keyboard group or level (in order to allow for non-QWERTY keyboards) **/
2511
2510
        protected bool match_keycode (int keyval, uint code) {
2512
2511
            Gdk.KeymapKey [] keys;
2513
2512
            Gdk.Keymap keymap = Gdk.Keymap.get_default ();
3092
3091
            icon_renderer.set_property ("size", icon_size);
3093
3092
            helpers_shown = single_click_mode && (zoom_level >= Marlin.ZoomLevel.SMALL);
3094
3093
            icon_renderer.set_property ("selection-helpers", helpers_shown);
 
3094
            view.style_updated ();
3095
3095
        }
3096
3096
 
3097
3097
        private void start_renaming_file (GOF.File file, bool preselect_whole_name) {
3200
3200
            int sort_column_id = 0;
3201
3201
            Gtk.SortType sort_order = 0;
3202
3202
 
3203
 
            /* Ignore changes in model sort order while tree frozen (i.e. while still loading) to avoid resetting the 
 
3203
            /* Ignore changes in model sort order while tree frozen (i.e. while still loading) to avoid resetting the
3204
3204
             * the directory file metadata incorrectly (bug 1511307).
3205
 
             */  
 
3205
             */
3206
3206
            if (tree_frozen || !model.get_sort_column_id (out sort_column_id, out sort_order))
3207
3207
                return;
3208
3208