View Issue Details

IDProjectCategoryView StatusLast Update
0000125DarkRadiantGUIpublic27.03.2007 15:56
ReporterSneaksieDave Assigned Toorbweaver  
PrioritylowSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product Version0.8.1 
Fixed in Version0.9.0 
Summary0000125: Arrows to navigate folder trees
DescriptionA perfect partner to the jump-to-letter functionality (whatever that's called) would be the ability to use the arrow keys (and/or perhaps enter and backspace?) to open and close folders and navigate.

For illustration: getting to metal trims darkmod folder would be a matter of opening the textures folder, typing 'd', pressing right arrow, typing 'm', pressing right arrow, then typing 't'. Presumably the user could arrow up and down to scroll through the textures.
TagsNo tags attached.

Activities

orbweaver

orbweaver

15.02.2007 10:18

developer   ~0000137

I have noticed this and I am surprised this doesn't work out of the box. Investigation required to see whether GTK supports this.
orbweaver

orbweaver

18.02.2007 13:32

developer   ~0000159

I did some investigation and I cannot find any way that GTK can be told to do this -- maybe there is some complex style property that can be set, but I didn't find any.

While it would be theoretically possible to code up all of the event handling and callbacks necessary to implement this in application-space, I don't want to take this road since this is a GTK issue not a DarkRadiant one.
SneaksieDave

SneaksieDave

25.03.2007 15:33

developer   ~0000498

I didn't realize this had been closed. Is it possible to at least have Enter open a folder? That way the user goes to the media tab, types "da" and gets darkmod, hits Enter, types "w" and jumps to wood, hits Enter... and so on?

Failing that, can we scale back the existing shift-arrow functionality (which expands the _entire_ tree) so that it only opens one folder at a time and doesn't go through the whole tree? It would be much more usable if so.
orbweaver

orbweaver

25.03.2007 16:25

developer   ~0000501

It *may* be possible to achieve this using custom keybindings in .RC files. Probably you want this behaviour for all GTK apps, but it should also be possible to supply a custom GTKRC file for DarkRadiant.

Key binding information:
http://developer.gnome.org/doc/API/2.0/gtk/gtk-Bindings.html

Resource file information: http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
orbweaver

orbweaver

25.03.2007 16:47

developer   ~0000502

This can be fixed. You need to find the gtkrc-2.0 file (or equivalent) on Windows -- I am not entirely sure where this is unfortunately -- and insert the following:

-- BEGIN --
binding "ExpandRows" {
    bind "<Control>Right" {
        "expand-collapse-cursor-row" (1, 1, 0)
    }
    bind "<Control>Left" {
        "expand-collapse-cursor-row" (1, 0, 0)
    }
}
class "GtkTreeView" binding "ExpandRows"
-- END --

Theoretically you can use any keybinding you like here, I have use Control-Arrow but you could use just an arrow if required.
greebo

greebo

25.03.2007 16:50

administrator   ~0000503

The .rc file is here:

C:\Program Files\<Common Files?>\GTK\2.0\etc\gtk-2.0

I don't know exactly, what the common files folder is called in the English WinXP version, I have the German one.
SneaksieDave

SneaksieDave

26.03.2007 22:30

developer   ~0000514

Ah! Thanks guys, that's great. :)

Only leaving this open for feedback, will close right away - should this be included in the package by default, or no?
orbweaver

orbweaver

27.03.2007 09:58

developer   ~0000515

Since it is a global GTK issue rather than DR-specific, we can't really package it as part of the release. It could go on the Wiki in a Hints & Tips section however.
SneaksieDave

SneaksieDave

27.03.2007 15:56

developer   ~0000516

Sounds good. Closing.

Issue History

Date Modified Username Field Change
15.02.2007 03:20 SneaksieDave New Issue
15.02.2007 10:18 orbweaver Note Added: 0000137
15.02.2007 10:18 orbweaver Assigned To => orbweaver
15.02.2007 10:18 orbweaver Status new => acknowledged
18.02.2007 13:32 orbweaver Status acknowledged => closed
18.02.2007 13:32 orbweaver Note Added: 0000159
18.02.2007 13:32 orbweaver Resolution open => not fixable
25.03.2007 15:33 SneaksieDave Note Added: 0000498
25.03.2007 15:33 SneaksieDave Assigned To orbweaver =>
25.03.2007 15:33 SneaksieDave Status closed => new
25.03.2007 16:25 orbweaver Note Added: 0000501
25.03.2007 16:25 orbweaver Status new => acknowledged
25.03.2007 16:47 orbweaver Status acknowledged => resolved
25.03.2007 16:47 orbweaver Fixed in Version => latest SVN
25.03.2007 16:47 orbweaver Resolution not fixable => no change required
25.03.2007 16:47 orbweaver Assigned To => orbweaver
25.03.2007 16:47 orbweaver Note Added: 0000502
25.03.2007 16:50 greebo Note Added: 0000503
26.03.2007 22:30 SneaksieDave Status resolved => feedback
26.03.2007 22:30 SneaksieDave Resolution no change required => reopened
26.03.2007 22:30 SneaksieDave Note Added: 0000514
27.03.2007 09:58 orbweaver Note Added: 0000515
27.03.2007 15:56 SneaksieDave Status feedback => closed
27.03.2007 15:56 SneaksieDave Note Added: 0000516
27.03.2007 15:56 SneaksieDave Resolution reopened => fixed