Open Bug 287137 Opened 20 years ago Updated 2 years ago

support inline editing of bookmark values in the bookmarks sidebar view

Categories

(Firefox :: Bookmarks & History, enhancement, P5)

enhancement

Tracking

()

Future

People

(Reporter: m.rick.mac, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; fr-FR; rv:1.7.6) Gecko/20050227 Firefox/1.0.1 (PowerBook)
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; fr-FR; rv:1.7.6) Gecko/20050227 Firefox/1.0.1 (PowerBook)

When you open the bookmark manager and want to change the name or the URL, you
have to edit it in another window and then change the fields yo uwant to modify,
not very practical ...
It would be better to directly double-click in the field you want to modify in
the Bookmarks list, just like Safari does under Mac OS.

Reproducible: Always

Steps to Reproduce:
A big "me too!" for this bug report. The lack of a context menu rename option is
very annoying in the bookmark sidebar.
A big "me too!" for this bug report. The lack of a context menu rename option is
very annoying in the bookmark sidebar.
*** Bug 306954 has been marked as a duplicate of this bug. ***
This was WONTFIXED by mconnor when i submitted a similar request
If I could only find the dupe....
mmm, I don't remember wontfixing this, this would be good, but our tree widget
doesn't support editable fields in this manner, yet
Assignee: vladimir+bm → nobody
*** Bug 326957 has been marked as a duplicate of this bug. ***
Safari and Firefox's bookmark handling is so awkward that I held out on Explorer until September, even though it was increasingly failing. Besides incompatibility with a lot of websites, especially mapping sites, news sites and sites with plugins, it's Firefox's biggest drawback. Bug 222717, which was reported over two years ago, is irritating as well. I'd be willing to pay a substantial amount for a browser, if I could find one that worked well. 
(In reply to comment #7)
> Safari and Firefox's bookmark handling is so awkward that I held out on
> Explorer until September, even though it was increasingly failing. Besides
> incompatibility with a lot of websites, especially mapping sites, news sites
> and sites with plugins, it's Firefox's biggest drawback. Bug 222717, which was
> reported over two years ago, is irritating as well. I'd be willing to pay a
> substantial amount for a browser, if I could find one that worked well. 
> 
Try this one http://www.omnigroup.com/applications/omniweb/ http://en.wikipedia.org/wiki/OmniWeb
I made it my default browser now.
sorry for bugspam, long-overdue mass reassign of ancient QA contact bugs, filter on "beltznerLovesGoats" to get rid of this mass change
QA Contact: mconnor → bookmarks
this is a lot better in Fx3, but inline editing would be great.
Status: UNCONFIRMED → NEW
Component: Bookmarks → Places
Ever confirmed: true
QA Contact: bookmarks → places
Summary: Editing a bookmark to rename or change its adress not easy → support inline editing of bookmark values
Whiteboard: DUPEME?
Target Milestone: --- → Future
i can't find a dupe, apart a bug filed against Seamonkey.
Whiteboard: DUPEME?
Bug 451915 - move Firefox/Places bugs to Firefox/Bookmarks and History. Remove all bugspam from this move by filtering for the string "places-to-b-and-h".

In Thunderbird 3.0b, you do that as follows:
Tools | Message Filters
Make sure the correct account is selected. Click "New"
Conditions: Body   contains   places-to-b-and-h
Change the action to "Delete Message".
Select "Manually Run" from the dropdown at the top.
Click OK.

Select the filter in the list, make sure "Inbox" is selected at the bottom, and click "Run Now". This should delete all the bugspam. You can then delete the filter.

Gerv
Component: Places → Bookmarks & History
QA Contact: places → bookmarks
I know this is a really old thread but I have this workflow issue as well.

Here is the scenario:
1.  I love using tags to quickly choose and select bookmarks and I type a tag of a bookmark I want to visit.
2.  The bookmark is found but when I click it, I find the path to the URL has changed and the website prompts me to change my bookmark.
3.  Even though I'm on the bookmark in the selection view, I can't change it.
4.  I have to open the bookmarks window, find it again, and edit it.

If I could edit the shown bookmark from the inline view there would be no need to open up the bookmark view at all.  OR, if when I opened the bookmarks view and it took me to the bookmark I just clicked, it would save me the time of finding it again.

Thanks for any attention you provide this concern.
Blocks: 402780
Priority: -- → P5
I think I need some help here.

As I understand it, there are currently 4 (?) places where bookmarks are viewed in a tree form:

1. Bookmarks sidebar
2. The inline picker when using the star icon. (I do know which files control this)
3. The bookmarks button right next to the star button.
4. The full fledged bookmark manager (THIS is where I want to work)

I tried using FF Devtools to inspect the bookmark manager but wasn't able to find any useful information apart from that the implementation for the functions live in treeView.js. There are some xul nodes with the 'type' attribute set to one of the '*.js' files in the places directory but that's it.

How do I go about finding where are the tree view is getting constructed from? How do I do about making the tree's nodes editable?

Sorry if I missed something obvious.
Flags: needinfo?(mak77)
Really sorry for being so dense. I am now able to edit the folder names by double clicking on the left pane in the bookmark manager using this diff.

diff --git a/browser/components/places/content/places.xul b/browser/components/places/content/places.xul
--- a/browser/components/places/content/places.xul
+++ b/browser/components/places/content/places.xul
@@ -338,20 +338,21 @@
 
   <hbox flex="1" id="placesView">
     <tree id="placesList"
           class="plain placesTree"
           type="places"
           hidecolumnpicker="true" context="placesContext"
           onselect="PlacesOrganizer.onPlaceSelected(true);"
           onclick="PlacesOrganizer.onPlacesListClick(event);"
           onfocus="PlacesOrganizer.updateDetailsPane(event);"
           seltype="single"
+          editable="true"
           persist="width"
           width="200"
           minwidth="100"
           maxwidth="400">
       <treecols>
         <treecol anonid="title" flex="1" primary="true" hideheader="true"/>
       </treecols>
       <treechildren flex="1"/>
     </tree>
     <splitter collapse="none" persist="state"></splitter>

So now I need to do the same for the nodes in the right pane (the actual bookmarks themselves). Then create a command and bind it to a key (F2). Am I right?
Flags: needinfo?(mak77)

I know this is a super old ticket (17 years!) ... is there still a chance that this will make it into Firefox in the future?

(In reply to Jan from comment #20)

I know this is a super old ticket (17 years!) ... is there still a chance that this will make it into Firefox in the future?

This is already in Firefox, just single click a bookmark and look at the bottom of the library window. You can change name, URL, tags, and keyword. There actually isn't any other way to change a bookmark from the library dialog. The "edit bookmark" dialog can only be opened from views in the main browser chrome

(In reply to Shane Hughes [:aminomancer] from comment #21)

This is already in Firefox, just single click a bookmark and look at the bottom of the library window. You can change name, URL, tags, and keyword. There actually isn't any other way to change a bookmark from the library dialog. The "edit bookmark" dialog can only be opened from views in the main browser chrome

There might be a misunderstanding here, I think the OP was referring to the bookmark sidebar (even though they wrote "bookmark manager" – in the Library it wouldn't make sense, as it's already possible as you pointed out). Also most of the subsequent comments are talking about the sidebar.
Should I open a new ticket, specifically referring to the bookmarks sidebar?

Summary: support inline editing of bookmark values → support inline editing of bookmark values in the bookmarks sidebar view

(In reply to Jan from comment #22)

Should I open a new ticket, specifically referring to the bookmarks sidebar?

No you're right, I misunderstood the request. So how would you think the feature should be implemented? It seems difficult to tack on inline editing to the bookmarks sidebar. I mean, single-click opens a bookmark, so that would have to go. It's conceivable that we could emulate the behavior of a file manager, wherein single-click does nothing but select an item, fast double-click opens an item, and slow double-click opens the inline text editor. Is that what you had in mind?

Yes, exactly, that's what I had in mind. I was thinking that from a UX perspective, the most intuitive would be that a slow double-click should open the inline text editor. That's what it does in many other applications.
That wouldn't necessarily mean that behavior of a single click (opening the bookmark) would have to change (which I don't think would be a good idea). A single-click (or the first click of the slow double-click) should still open the bookmark, while keeping the bookmark selected, and then a delayed second click should open an inline text editor.

Likewise, I think the context menu should have an item "Rename bookmark" right above "Edit bookmark"
which also brings up the inline text editor, while Edit bookmark should continue to bring up the pop up window where other attributes of the bookmark can be edited. That way people could also assign their own shortcuts (for example cmd-click, or fn-click or something) to in-line edit the bookmark name.

(In reply to Jan from comment #24)

That wouldn't necessarily mean that behavior of a single click (opening the bookmark) would have to change (which I don't think would be a good idea). A single-click (or the first click of the slow double-click) should still open the bookmark, while keeping the bookmark selected, and then a delayed second click should open an inline text editor.

Opening the bookmark on single-click but allowing further actions on double-click would significantly deviate from other aplications. That is, in every application I've seen where slow double-click does something, the primary action only happens on fast double-click, and single-click does nothing except focus/select the control. And that's a very reasonable scheme. Conversely, it seems less reasonable for single-click to perform an action that can change views when other interactions require further clicks on the same view.

Edit: Also, I think there are prefs that change the "where to open" behavior to make bookmarks open in a new window. So that would mean single-click completely obscures the view and prevents further interaction. There might be some other more subtle problems I haven't considered, but the main issue even for the default prefs is that user doesn't want the bookmark to open (and thereby navigate the current tab or open a new tab, depending on prefs) when they're only trying to rename it. Making it mandatory to launch a bookmark before you can rename it wouldn't produce a pleasant UX. I think I'd avoid it altogether if that was the case. And there would certainly be a ton of bug reports from users thinking that is unintended behavior.

I don't see a huge problem with moving the "open" behavior from single-click to double-click, since this is already how the main bookmarks places view (in the library dialog) works. It could be implemented in Nightly behind an experimental pref without harming anything.

Likewise, I think the context menu should have an item "Rename bookmark" right above "Edit bookmark"
which also brings up the inline text editor, while Edit bookmark should continue to bring up the pop up window where other attributes of the bookmark can be edited. That way people could also assign their own shortcuts (for example cmd-click, or fn-click or something) to in-line edit the bookmark name.

Can you elaborate on that a bit? I'm not sure I see how adding a context menu item would allow people to create shortcuts. Do you mean with the aid of something like autohotkey?

As for your screenshot, yeah that's what I was expecting, as it's pretty easy to do this already because Firefox already has a tree input feature. The main problem is it's only used in trees that don't do anything on single-click except change selection.

(In reply to Shane Hughes [:aminomancer] from comment #26)
I see your points. I personally certainly wouldn't mind having to double click. But other browsers generally open bookmarks on a single click. Hence users might expect that to happen. But it might be worth a try

It could be implemented in Nightly behind an experimental pref without harming anything.
That sounds like a great first step, also to get more input from users.

Likewise, I think the context menu should have an item "Rename bookmark" right above "Edit bookmark"
Can you elaborate on that a bit? I'm not sure I see how adding a context menu item would allow people to create shortcuts. Do you mean with the aid of something like autohotkey?
Yes, I was simply thinking that without renaming via slow double-click, having a rename context menu item would allow users still to implement a shortcut with their shortcut manager of choice. If this is implemented via slow double-click then that might not be necessary. It's just that the way it is currently there is no way around the pop-up window for editing bookmarks, which considerably slows down the workflow. Especially when creating a bookmark by dragging a link or a tab to the sidebar (which is super fast and convenient), the bookmark takes the name of the title of the site, which is often very long and not intuitive. Having to bring up the pop up menu for editing the entire bookmark just to rename it is tedious ... Inline editing would be a game changer.

That actually brings up another idea: When dragging a link/tab to the sidebar to create a bookmark, Firefox could automatically suggest the user to rename it by opening the in-line text edit box ...

When I was working on this issue my intent was to do what file managers allow people to do on trees. i.e. if you select something you can press F2 (on Windows/Linux) or Enter (on MacOS) to trigger rename.

Obviously there are input boxes below the bookmarks in the Library window but that requires either mouse interaction or Tab-ing to the correct field. It's much easier to press F2/Enter and go along with the rename. A single click for rename doesn't make a lot of sense to me since it's easy to do by mistake and people don't expect single clicks to trigger actions.

IMO:

  1. In the "Library" window (ala Bookmarks manager) inline editing (i.e. editing without having to click elsewhere) should be possible:
    a. In the tree view on the left hand side (which shows just the folders)
    b. In the list view on the right hand side (which shows both folders and bookmarks)
  2. I don't care as much about the bookmarks sidebar for now but the solution should look similar.

See comment 14 and 15 here (starting at https://bugzilla.mozilla.org/show_bug.cgi?id=287137#c14) for more details from my investigation and ideas all those years ago.

(In reply to Ashhar Hasan from comment #28)

Obviously there are input boxes below the bookmarks in the Library window but that requires either mouse interaction or Tab-ing to the correct field. It's much easier to press F2/Enter and go along with the rename. A single click for rename doesn't make a lot of sense to me since it's easy to do by mistake and people don't expect single clicks to trigger actions.

Can you clarify what you mean by "A single click for rename"? Virtually all file managers and many other similar applications work as follows:

  1. Single clicking an unselected item selects it. That is, nothing happens except the item you clicked is selected (highlighted).
  2. Single clicking a selected item starts a timer (usually about 3 seconds), after which the input box opens up if no further mouse button or key is pressed. So the common way to edit a file name is to "slow double click" on the text. Since an item can't be selected without user interaction, this doesn't constitute a "single click." But it would also be possible to select an item with the keyboard, and then click it once to enter the text editor.
  3. Double clicking an item, whether selected or not, within a certain interval, activates the item.

That's pretty universal behavior for decades, so it's definitely not unexpected. What to do on middle click or modifier + left click is something on which applications frequently disagree, so that's a separate issue. I think whatever we do with regular left clicks, the middle/modifier click behavior should be left as-is. That's easy enough to implement by using mousedown event handlers on treechildren for the 3 interactions I described above; but using click event handlers on tree for the middle/modifier click interactions.

  1. In the "Library" window (ala Bookmarks manager) inline editing (i.e. editing without having to click elsewhere) should be possible:
    a. In the tree view on the left hand side (which shows just the folders)
    b. In the list view on the right hand side (which shows both folders and bookmarks)
  2. I don't care as much about the bookmarks sidebar for now but the solution should look similar.

See comment 14 and 15 here (starting at https://bugzilla.mozilla.org/show_bug.cgi?id=287137#c14) for more details from my investigation and ideas all those years ago.

I started working on this earlier today. The components are substantially different now, mainly we're concerned with PlacesUIUtils.jsm and bookmarksSidebar.xhtml. Irrespective of that, the library window and the sidebar both use the places-tree element, so once the fundamental behavior is implemented, it can be applied to any places-tree that supports editing places nodes' string parameters. However, it's not a given that the solution for the bookmarks sidebar would be the same as that for the library, because the bookmarks sidebar currently implements very different click behavior.

F2 alone would go unnoticed by most users, and Enter would interfere with the current Enter behavior (which activates the bookmark item). And first you need to actually select an item. You can do that with the mouse in the library dialog, but not in the sidebar. So the click handler has to be changed to support mouse selection without activation.

It's easy to support F2 and there's no reason not to, but that alone doesn't resolve the bug because it's not that well-known and it's also not conventional on macOS. Enter is the key for activation, so it seems a mouse interaction is required. It's conceivable that on macOS we could have Enter to rename and Accel+Enter to activate, but that still leaves only the relatively obscure F2 on windows/linux. Not to mention that, in all the cases we're discussing, these keyboard shortcuts don't exist in a vacuum. They are like aliases for the more commonly used mouse interactions. So adding the keyboard shortcuts without the mouse behavior wouldn't be very intuitive.

A change to the mouse behavior is pretty disruptive so an experimental pref seems appealing.

(In reply to Shane Hughes [:aminomancer] from comment #29)

Can you clarify what you mean by "A single click for rename"?

Sorry for being unclear. I meant to agree with what you said. i.e. a quick single click or double click should NOT activate rename. Agreed with slow double click.

I think whatever we do with regular left clicks, the middle/modifier click behavior should be left as-is.

Agreed 100%.

F2 alone would go unnoticed by most users, and Enter would interfere with the current Enter behavior (which activates the bookmark item). And first you need to actually select an item. You can do that with the mouse in the library dialog, but not in the sidebar. So the click handler has to be changed to support mouse selection without activation.

Enter is special in MacOS land unfortunately and people expect it to trigger renames - I don't care about this though. Existing behaviour of Enter activating the bookmark makes perfect sense to me.

Good point about sidebar and it's challenges. Are the sidebar and the library dialog even sharing any code? Would it be easier to tackle both separately?

It's easy to support F2 and there's no reason not to, but that alone doesn't resolve the bug because it's not that well-known and it's also not conventional on macOS. Enter is the key for activation, so it seems a mouse interaction is required. It's conceivable that on macOS we could have Enter to rename and Accel+Enter to activate, but that still leaves only the relatively obscure F2 on windows/linux. Not to mention that, in all the cases we're discussing, these keyboard shortcuts don't exist in a vacuum. They are like aliases for the more commonly used mouse interactions. So adding the keyboard shortcuts without the mouse behavior wouldn't be very intuitive.

Agreed. I was pretty focused on my own personal usecase back when I tried to pick up this bug in college ~5 years ago.
Mouse behaviour must match to be discoverable and intuitive.

A change to the mouse behavior is pretty disruptive so an experimental pref seems appealing.

Doesn't this apply only to the sidebar?
For the library dialog I don't see any behaviour changing at all, single click to select, double click to activate. Only a new behaviour of slow double click to trigger rename would be added which is non-breaking.

BTW thanks for helping me get out of my slumber contributing to Firefox, I'll try to see if there's something I can help with now that I have more experience with software dev and debugging/archeology.

Yes that's right, it's only disruptive to the sidebar. But this bug report is about the sidebar and my patch is just constrained to the sidebar. The library change should probably be a further patch since there's no technical reason they need to be bundled together and smaller patches are always better. In any event, an experimental pref makes sense even for the library change because it's actually not a very simple change, there's a significant possibility for regressions I think.

The actual relevant components of the sidebar and library bookmarks view are sharing an enormous amount of code. The area where bookmarks are drawn (in both views as well as in history and other views) is a places-tree element which extends the tree element, and can be configured in a variety of ways. It's basically like a table with rows and columns, the sidebar tree just happens to have only one column and has some special event handlers (i.e., single click activation).

However, although those share code, the operative changes here are probably going to involve (and my patch so far does too) changes to PlacesUIUtils though (and places.js in the case of the library). Because otherwise this will wind up affecting other places-trees like the edit bookmarks dialog's folder selector.

Although then again, maybe the existing dblclick handler for launching the editor should just be universally replaced with the more file-manager-esque solution implemented here. I do think there's a particularly strong resemblance between the Library's bookmarks view and a file manager, so it becomes especially important there, but maybe it should just be like this everywhere.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: