Closed Bug 218999 (thundertab) Opened 21 years ago Closed 16 years ago

Thunderbird should use a tabbed interface (thundertab)

Categories

(Thunderbird :: Mail Window Front End, enhancement, P1)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 3.0b1

People

(Reporter: tironsi, Unassigned)

References

(Depends on 1 open bug)

Details

(Whiteboard: features todo: comment 47, 57, 66, 67)

Attachments

(16 files, 4 obsolete files)

192.76 KB, image/png
Details
135.92 KB, image/png
Details
251.20 KB, image/jpeg
Details
112.02 KB, image/jpeg
Details
105.94 KB, image/jpeg
Details
160.84 KB, image/gif
Details
19.78 KB, image/jpeg
Details
7.67 KB, image/jpeg
Details
24.34 KB, patch
Details | Diff | Splinter Review
23.69 KB, patch
mscott
: superreview+
Details | Diff | Splinter Review
2.25 KB, patch
Details | Diff | Splinter Review
30.22 KB, patch
Bienvenu
: superreview+
Details | Diff | Splinter Review
13.93 KB, patch
Bienvenu
: superreview+
Details | Diff | Splinter Review
1.40 KB, patch
Details | Diff | Splinter Review
4.74 KB, patch
Bienvenu
: superreview+
Details | Diff | Splinter Review
1.03 KB, patch
Details | Diff | Splinter Review
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624

Thunderbird should follow in the footsteps of the browser and allow for a tabbed
interface. For example: if you want to open a message, it should open in a tab,
not in a new window; if you want to compose a message, it should open in another
tab, not in a new window; address book, etc. This is how Eudora does it and it
is very convenient.

I am using: Mozilla Thunderbird 0.2 (20030901)

Reproducible: Always

Steps to Reproduce:
1.
2.
3.
.
Target Milestone: --- → After Thunderbird 1.
QA Contact: asa
The Compose window could become a new tab, rather than an entirely new window,
with the toolbars changing to reflect this.
implement this in mozilla too, so that you can have different tabs in one window
(from the different window types!)
*** Bug 232424 has been marked as a duplicate of this bug. ***
*** Bug 247597 has been marked as a duplicate of this bug. ***
Lotus Notes also uses tabs and although its interface is terrible otherwise,
this sole feature makes it more usable than Outlook, at least IMHO.

Prog.
In addition to the Compose window (as suggested in comment #1), it would be
useful to be able to open messages in tabs. For people having multiple email
accounts, it'd be useful to have each account list on a tab. 
I like the idea in Comment #7 to /allow/ (not require) different accounts to be
under different tabs. It feels right now (TB 0.9) like Thunderbird tries to
imitate Outlook Express far too much. Not to say that TB is too much like OE in
how it operates, or in functionality, but only in its look and feel. At any
rate, as helpful as tabs are to Firefox, it seems like nothing short of a
travesty to deny them for TB as well.
Separate accounts might be OK in tabs, but to me I'd really like to be opening
separate folders in different tabs with separate accounts in different windows.
Compose might open in the same pane as the mail reading window instead in this
scheme.
*** Bug 273899 has been marked as a duplicate of this bug. ***
I don't mind the free-floating windows for composition, and I certainly don't 
mind using a tree to select accounts and folders; that seems intuitive and right 
to me.

The really useful application of tabs would be to have a Mail tab and a News 
tab.  (I would put the RSS/Blog account under News. but I wouldn't care if it 
were in Mail or even in its own tab.)  The primary reason for this separation is 
that certain aspects of the fundamental UI changes between those two modes -- 
for instance, certain menu items do not apply to one or the other sort.  Also, 
the default action of the Get New Messages button could then be made "get new 
messages for all mail accounts" when on the Mail tab and "get new messages for 
this newsgroup" when on the News tab.  And, finally, if new mail arrived while 
reading news, you could switch tabs to read the mail, then return to the news 
tab and not have lost your place!

One possible drawback to this scheme is that the News tab would require access 
to Local Folders, for drafts and saving copies of messages.  I would handle that 
by making a subtree of Local Folders related to News which is all that would be 
visible in the News tree; I'm undecided whether that subtree would be visible in 
the Mail tab or not.
(In reply to comment #11)
> I don't mind the free-floating windows for composition, and I certainly don't 
> mind using a tree to select accounts and folders; that seems intuitive and right 
> to me.
> 
> The really useful application of tabs would be to have a Mail tab and a News 
> tab.  (I would put the RSS/Blog account under News. but I wouldn't care if it 
> were in Mail or even in its own tab.)  The primary reason for this separation is 
> that certain aspects of the fundamental UI changes between those two modes -- 
> for instance, certain menu items do not apply to one or the other sort.  Also, 
> the default action of the Get New Messages button could then be made "get new 
> messages for all mail accounts" when on the Mail tab and "get new messages for 
> this newsgroup" when on the News tab.  And, finally, if new mail arrived while 
> reading news, you could switch tabs to read the mail, then return to the news 
> tab and not have lost your place!
> 
> One possible drawback to this scheme is that the News tab would require access 
> to Local Folders, for drafts and saving copies of messages.  I would handle that 
> by making a subtree of Local Folders related to News which is all that would be 
> visible in the News tree; I'm undecided whether that subtree would be visible in 
> the Mail tab or not.


I can understand the reason why there are floating windows but I don't like them.
Why does thunderbird also be a newsreader? There are a lot of great newsreaders
on the market (40tude, gravity etc.). First Mozilla/netscape hat few success
with the all or nothing idea (all in one). Then Mozilla decided to create a
browser and an email client seperated. That was the right thing to do. Now your
are deciding again to integrate another thing.. a news reader client and that's
the reason why windows has to be floating.
A lot of people do not like new browser windows and that's the reason why you
created a tabbed browser. Why not a tabbed email client (or all in one window
email client)? 
Even Pegasus has after years chosen for an option to integrate all in one
window. Eudora does. Thunderbird not. It is a fantastic email client but I realy
detest these floating windows and did not an uninstall of Eudora till yet.
The reason tabs are successful in Firefox is that the user gets to decide what
goes in different tabs. It provides a richer exploration interface to the user.

I think any tabs in Thunderbird should follow the same principle - don't decree
"Mail in one tab, News in another" or "one tab per folder", but allow the user
to open an account / Folder / message in a different tab at will.

For example, from the list of messages in a folder, middle clicking on a thread
could open if in a new tab.

I don't think the application is as intuitive as in Firefox, where you're
working through links the whole time anyway... it will require a lot of thought
to get it right.
This one I received from Mike:

From: Mike Cowperthwaite <mcow@well.com> 
To: raynews@virgilio.it 

Interesting.  My idea of how tabs might be implemented is not worth
consideration; but your idea of how tabs might be implemented is gospel, and all
programs must adhere to that idea or they are worthless.

Furthermore, you apparently believe Bugzilla is a discussion forum (it's not)
and therefore you are free to post comments that offer no new information but
simply advocate what's already been said.

Here's a clue: NOBODY CARES if you use Eudora instead of Thunderbird.
I've written a brief, basic outline of how I envisage a tabbed interface for
Thunderbird: http://purl.org/mooquackwooftweetmeow/tabbedthunderbird
(In reply to comment #15)
> I've written a brief, basic outline of how I envisage a tabbed interface for
> Thunderbird: http://purl.org/mooquackwooftweetmeow/tabbedthunderbird

Mmm… I don't think it is needed to give * any * folder a tab. If there are many
folders, you cannot navigate within the tabs.

I have read it at-a-glance, so sorry if you've written a solution for it…

You may add sub-tabs for the sub-folders, but I think too deep level will cause
a too low space to see the messages.

I think the best is the keep the folders panel, and any click on a folder should
open the folder in the current tab (only if it is a folder tab - else, it
shouldn't do anything). Double-clicking should open it in a new tab, instead of
a new window. It should be * in * the main tabs (of accounts), but out of the
sub-tabs.
I don't usually try to be contrary, but I would NOT like to see the compose
window handled this way.  That's mostly because I would very much like to see
the composer become a separate executable that could be run (e.g. from a mailto:
link in the browser) without loading the whole bigfoot-print of Thunderbird.

For multiple messages, yeah it might be nice to have.
In reply to comment #12: Mail and news have so many things inherently in common,
especially when the messages are copied to a local folder. What's the difference
between reading a mail message via IMAP and reading a news message via NNTP, and
vice versa for composition? Therefore I find it quite natural that mail and news
are integrated into one program.

Regarding the tabbed interface, I haven't tried Eudora or anything else in such
an interface, but I'm quite unsure whether it would be a good idea to enable
having browsing, composition and the address book in multiple tabs in a single
window. I feel that tabs in a single window should have the same functionality
and interface and differ only in the contents. It would be confusing if the
applicable menu items and toolbars should change with switching between tabs.
In reply to comment #18:
I recently switched from Eudora to TB after having used to it from 1.5 till 5.x
(free edition). It is no problem at all to have multiple tabs or MDI-windows
with different looks and feels.

I don't see much difference with Firefox. When I browse a forum, I keep one tab
with the list of messages and others with the seperate messages. I don't see why
that is different from a mail client.
See bug 297379, which has a patch-in-progress (last active in August) to implement one form of a tabbed interface.
Depends on: 297379
Blocks: eudora
A screenshot of Sylpheed
http://sylpheed.good-day.net/ja/

which have tabs above the message plane.

I would assume that the tabs reads "Message", "Full Header", and "Attachments".
At this mock up ( which comes from Bug #306125 ) do I propose that the notebook widget is used rather than tabs for Header, Message, and Attachment notebooks, and several other could be considered. E.g. a GPG notebook.

Having the attachments in their own notebook ought to solve Bug #223340

I therefore think that tabs should be under the toolbar, and trickered when the user e.g. pressed the middle mouse button on folders, messages, and etc.
Just a note that I came to this bug wanting tabs when clicking new e-mails, composing new e-mails, and so forth. I got the idea from Yahoo!'s beta interface: it has that behavior and I used it and liked it. The preceding discussion makes evident that tabs have several potential uses in Thunderbird, at least, but this might need to become a metabug soon with so many different types of ideas floating around. 

People should also remember that there are two opportunities for tab usage: vertical tabs and horizontal tabs. For example, rather than do what the drawing in Comment #22 shows, you could make Message, Full Header, Attachments into horizontal tabs (or tab-ish things that aren't quite tabs) in each message, with each message being its own vertical tab.

Anyway; just wanted to add my 2 cents and especially point you to the Yahoo! beta interface, which is what inspired me to hunt down and comment to this bug.
QA Contact: front-end
Attached patch work in progress (obsolete) — Splinter Review
I've been playing with this a bit - this adds top-level tabs to the 3-pane UI, and allows you to open folders or individual messages in their own tabs, which is what I'm most interested in.  Each tab has its own messenger context, so the back and forward buttons are specific to the tab, like the browser, and each tab has its own nsMsgDBView, which is cached. Switching between tabs reloads the message, though perhaps there's a clever way to keep the message loaded.

One area that could really use improvement is the tabs themselves - I tried to use a modified version of the tab widget that the browser uses (tabbrowser.xml) but I failed miserably (the tabs wanted to be centered, at least on the mac). It would be nice to have a close button, scrollable tabs, and a tab dropdown menu. And skinnable tabs, of course.
Assignee: mscott → bienvenu
Status: NEW → ASSIGNED
Attached image Lotus Notes Screenshot
A screenshot of Lotus Notes which have used tabs for many years with great success.

Notice that it looks a lot like a browser; toolbar, tabs, content.
Another screenshot of Lotus Notes using tabs in a different way.
Attached image Yahoo mail using tabs.
(In reply to comment #24)
>Switching between tabs reloads the message,
>though perhaps there's a clever way to keep the message loaded.
You would have to maintain separate <browser>s for each tab, but I'm not sure how you would deal with "Account Central".

>One area that could really use improvement is the tabs themselves - I tried to
>use a modified version of the tab widget that the browser uses (tabbrowser.xml)
>but I failed miserably (the tabs wanted to be centered, at least on the mac).
>It would be nice to have a close button, scrollable tabs, and a tab dropdown
>menu. And skinnable tabs, of course.
I'm not sure what you mean by skinnable tabs, but the tabbed browser is rather specific to tabbed browsing so while by all means use it for inspiration, don't try to copy it too closely ;-)
Comment on attachment 266134 [details] [diff] [review]
work in progress

>+    var tabContainer = document.getElementById("tabcontainer");
>+    var curTab = tabContainer.childNodes[tabContainer.selectedIndex];
This is just the same as tabContainer.selectedItem

>+  // We also want to save the selection
Doesn't each view have its own selection object anyway?
>This is just the same as tabContainer.selectedItem
Cool, thx
>Doesn't each view have its own selection object anyway?
It has a reference to the selection, but the underlying selection is owned by the tree, which gets its view swapped out when we switch tabs.
fix a few problems with last patch, and make it so different kinds of things can be added as tabs, as long as they support a few basic methods.
Attachment #266134 - Attachment is obsolete: true
Scott and I were thinking that we might as well land this on the trunk - it has almost no effect unless you open a folder or message in a tab, and getting it landed will make it easier for other people to work on this.
Attachment #266771 - Flags: superreview?(mscott)
To add a new kind of tab, you define an object which implements four methods and a type, e.g.:

+msgFolderTab.prototype =
+{
+  open : function ()
+  close : function () 
+  saveCurrentInfo : function()
+  onSelect : function()
+  type : "folder",
+};

To add the tab, do something like:

var tab = new msgFolderTab();
OpenNewTab(tab);

and everything else should be handled by implementing the methods.

Improvements that would be interesting for someone to tackle:

Improving the tabs themselves (rounded tabs, close buttons, etc)
scroll arrows for the tabs, and a dropdown

Improvements I will tackle, but would happily hand-off:
keyboard shortcuts for switching tabs, as in FF
Add new message indicator/counts to the folder tabs
make double click open message/folder in a new tab instead of window, controllable by a pref



pinging on the review request.
Comment on attachment 266771 [details] [diff] [review]
[checked in]patch for checkin

missing a ;:

+    gCurrentLoadingFolderURI = ""

I don't know that any of these items would keep this from landing but I've noticed the following:

* open message in tab only works for the classic view, the UI is broken for wide and vertical.

* at least on windows we get a dark grey shadow below the main toolbar when no tabs are open.

Once this lands it'll be easier for us to all help beef up the styling of the tabs. 

I suspect some of this stuff:

+    var tabContainer = document.getElementById("tabcontainer");
+    var strip = document.getElementById("tabstrip");
+    var t = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",
+                                     "tab");
+    
+    t.setAttribute("crop", "end");
+    t.maxWidth = 250;
+//    t.minWidth = this.mTabContainer.mTabMinWidth;
+    t.width = 0;
+    t.setAttribute("flex", "100");
+    t.setAttribute("validate", "never");
+    t.className = "tabemail-tab";

will get move into XBL down the line.
In addition to the dark grey shadow below the main toolbar, I'm also getting a double border in the message pane above the status bar. Instead of a single line separating the status bar from the bottom of the message pane, I get two lines. Minor, but something I'll want to clean up once this lands.
Comment on attachment 266771 [details] [diff] [review]
[checked in]patch for checkin

I don't think any of the issues I've found so far would stop this from landing. And getting it checked in means it will be easier for me and others to help fix some of these issues.

Great work David! 

I'd like to help work with someone on adding some XBL and theme CSS to style the Windows tabs to look like Firefox and to support a close icon. :)
Attachment #266771 - Flags: superreview?(mscott) → superreview+
Comment on attachment 266771 [details] [diff] [review]
[checked in]patch for checkin

I made one small change before I checked in to fix opening a message in a tab when in the wide view layout.
Attachment #266771 - Attachment description: patch for checkin → [checked in]patch for checkin
This patch brings in the tabbrowser style rules so our tabs look like the tabs in Firefox. The close tab icon and the tab panel overflow widget don't work.

We're using tabbrowser bindings for tabs, tabpanels, etc. But we don't actually use a tabbrowser widget. Lots of these bindings assume they have a tabbrowser as a parent.  That's one reason why the close tab icon doesn't work. 

I think eventually we might need to extend the tabbrowser binding into a tabmail  binding to help make things like the close tab icon and the tab overflow menu start working. Maybe Phil and I can brainstorm about what exactly we'll need to do :).

On an unrelated note, I noticed that right clicking on a tab causes the message to reload. I'll try to look into that too.
Comment on attachment 266771 [details] [diff] [review]
[checked in]patch for checkin

+    <menuitem id="threadPaneContet-openNewTab"
I suppose a X is missing in Context.

+            <menuitem label="&newTabCmd.label;" accesskey="&newTabCmd.accesskey;"
+                          inherits="oncommand=onnewtab"/>
+            <menuitem label="&closeTabCmd.label;" accesskey="&closeTabCmd.accesskey;"
+                          oncommand="MsgCloseTab(document.popupNode);"/>
Is'nt it better if this two menuitems becomes IDs? With this it is for example easyer to add icons in extensions like CuteMenus or in themes.
Sorry I forgot in the previous post this:

+    <menuitem id="folderPaneContext-openNewWindow" 
+              label="&folderContextOpenNewTab.label;"
+              accesskey="&folderContextOpenNewTab.accesskey;"
+              oncommand="MsgOpenNewTabForFolder(null,-1);"/> 
The ID should be folderPaneContext-openNewTab and not Window.
thanks david for remembering the wide view!

after downloading trunk to try this, i discovered tabbing is top-level, which includes all 3 panes when selecting a folder, but only includes the Message Pane when selecting a message.  thus, there is no difference in view whether a folder is selected from Folder Pane or whether it's opened in a tab which is clicked.  plus, with Favorites folders, organization of folders is already possible.

i was really hoping for tabs in the Message Pane, a new way of organizing message content further within Folders.  imagine 2 folders Project1 and Project2, each getting dozens of emails a day.  i would want to click Project1 and collect in tabs relevant messages; same for Project2 folder.  switching one to the other would display each folder's collected tabbed messages.  i could then add msgs from Thread Pane into additional tabs, but the folder is the anchor.  a neat feature would be to then gather all tabs and move/copy them to a subfolder, eg.

another way of using this is RSS.  in a reading session, one might run through the items in a large feed's Thread Pane quickly, adding only messages of interest to tabs, for reading later.

opening just a Message Pane in a tab currently leaves it out of context.  is it   possible to also add a tabbed Message Pane?
Still a work in progress but this patch so far does the following:

* Creates an XBL widget for tabemail (I hate that name, can we come up with something better), which is the mail equivalent of a tabbrowser element. The tab container, tab strip, tabs, and tab are now part of the tabemail widget and are no longer explicitly declared in messenger.xul.

* Implemented/copied methods for addTab, removeTab, etc. on the tabemail widget, removing the code from mailWindowOverlay.js that did this.

* the close button on a tab now works.

* the tab over flow menu popup now works and can be used to navigate through the open tabs.

* middle mouse button clicks on a tab now close the tab, like Firefox.

* clicking on a tab (or opening a context menu on a tab) no longer causes the tab to reload.

* I renamed the objects that control the tab to tabOwners to make their relationship to a tab xul element a little more clear. Calling both the element a tab and the JS object that knows how to layout a tab was confusing me. I can undo this if we don't like calling the objects tab owners. 

*
When I open a message in a tab, I get the following assertion, I haven't looked into it yet:

###!!! ASSERTION: selected indices is not equal to num of msg selected!!!: 'numS
elected == selection.GetSize()', file c:/build/trees/tb-trunk/mozilla/mailnews/b
ase/src/nsMsgDBView.cpp, line 996

If you have multiple tabs open and one of them is a message tab, it's possible to close the main 3-pane tab, leaving you unable to navigate folders. I'm not sure what the right UI behavior is for that yet.
(In reply to comment #47)
> * Creates an XBL widget for tabemail (I hate that name, can we come up with
> something better), which is the mail equivalent of a tabbrowser element. The

Why not simply use tabmail? It's short and also reflects the application name.
(In reply to comment #48)
[...]
> If you have multiple tabs open and one of them is a message tab, it's possible
> to close the main 3-pane tab, leaving you unable to navigate folders. I'm not
> sure what the right UI behavior is for that yet.

What about a two-tier approach?
- Pop up a warning when trying to close the main mail page (as when trying to close several tabs at once in the browser)
- Have a menu item somewhere to open the main mail page (in this tab? in a new tab? in a new window?)
(In reply to comment #48)
> If you have multiple tabs open and one of them is a message tab, it's possible
> to close the main 3-pane tab, leaving you unable to navigate folders. I'm not
> sure what the right UI behavior is for that yet.
> 

open a message in a message pane tab, and preserve the 3 pane view.  for then viewing the message in the entire window, toggle between 3 pane with MP tab and full window.
Depends on: 386244
In 3 pane view, tabs appear blank if preview pane is dragged off screen.
I have it set that way to prevent plugins and helper apps from activating on preview and interfering with fully opened screens.
This seems like it could be customized for my "long wanted" almost full screen view.
If I only had a working Domi for trunk.
I don't understand what you mean by "dragging preview pane off screen". Are you basically hiding the message pane by collapsing it, e.g., similar to what happens when you press f8?

(In reply to comment #53)
> I don't understand what you mean by "dragging preview pane off screen". Are you
> basically hiding the message pane by collapsing it, e.g., similar to what
> happens when you press f8?
> 

I don't use the preview pane at all. So I grab the upper border down until it is hidden.
I think this patch is far enough along to be an improvement over what we have now, especially picking up the ability to close tabs via the close tab button.

See my previous comments on the xbl patch for some of the what's new.

I also changed:

* how we update tab titles
* moved the close tabs code out of OnMailWindowUnload which is shared with the stand alone msg window and into msgMail3PaneWindow.js to avoid a JS error when closing the stand alone message window.
Attachment #270142 - Attachment is obsolete: true
Attachment #270245 - Flags: superreview?(bienvenu)
Comment on attachment 270245 [details] [diff] [review]
[checked in]updated XBL patch

very cool
Attachment #270245 - Flags: superreview?(bienvenu) → superreview+
Attachment #270245 - Attachment description: updated XBL patch → [checked in]updated XBL patch
Attachment #269985 - Attachment description: short term fix to make the tabs look pretty → [checked in]short term fix to make the tabs look pretty
With this patch, the icon for a folder tab now looks like a folder, and for special folders (Inbox, Templates, Saved Searches, etc) it gets the same icon as the folder pane.

Message tabs also get their own icon now.

In order to reduce duplicate style rules, I added the folder tab icon style rules to folderPane.css, but that splits it away from the message tab icon rules in mailwindow1.css, it may be better to put them together in mailWindow1.css.

Oh and I haven't tested the pinstripe style rules at all yet :).

After this, David and I were talking about how great it would be to make the icons reflect the presence of unseen messages in the folder for that tab.
See my previous comment, this allows tab owners to update a tab icon. I didn't test this on pinstripe, so I'm not sure if the style rules are correct there yet. The previous WIP patch had a bug when loading saved searches or the trash folder in RSS accounts.
Attachment #270407 - Attachment is obsolete: true
Attachment #270536 - Flags: superreview?(bienvenu)
Comment on attachment 270536 [details] [diff] [review]
[checked in]change the tab icon based on the folder type

what do we show if a message is displayed in a tab?
Attachment #270536 - Flags: superreview?(bienvenu) → superreview+
Comment on attachment 270536 [details] [diff] [review]
[checked in]change the tab icon based on the folder type

good question, for qute we show a closed envelope (same icon we show in the windows title bar for the 3-pane). for pinstripe, we actually have a icon specific to messages that we can use.
Attachment #270536 - Attachment description: change the tab icon based on the folder type → [checked in]change the tab icon based on the folder type
I had a typo which was keeping the unsent messages folder tab icon from showing up. kudos to Phil for catching this.
this patch does the following:

* the tab owner onselect method now takes an argument for the tab owner of the previously selected tab. Now when selecting a tab, the tab owner can skip updating the visibility of the UI elements if the type of tab isn't changing. i.e. going from a message tab to another message tab no longer clears the message pane, etc. This makes switching between tabs of the same type much smoother.

* When showing a message pane tab, the threadpane-splitter was not getting collapsed because ObserveDisplayDeckChange gets called for every click inside the deck (including clicks in the folder pane, thread pane, tab strip, etc).  ObserveDisplayDeckChange uncollapses the thread pane splitter, thus undoing the tab owner's attempt to collapse the splitter. To fix this, I made ObserveDisplayDeckChange do nothing when the deck is not changing.

There's still a problem in the stand alone message tab on windows where we've got a dark line between the tab strip and the message pane box due to this style rule:

#messagepanebox {
  border-top: 1px solid ThreeDShadow;
}

this style is required for the windows 'classic' look in the mail 3-pane with the splitter visible (otherwise the splitter and the message pane box blend together). We need to come up with a way to not have this style rule when the threadpane-splitter is collapsed. I tried applying the border on the splitter instead of the box, but that didn't quite look like it does today for the non-tab case.
Attachment #270638 - Flags: superreview?(bienvenu)
Comment on attachment 270638 [details] [diff] [review]
[checked in]reduce the amount of flicker between tabs

nice!
Attachment #270638 - Flags: superreview?(bienvenu) → superreview+
Attachment #270638 - Attachment description: reduce the amoung of flicker between tabs → [checked in]reduce the amoung of flicker between tabs
Attachment #270638 - Attachment description: [checked in]reduce the amoung of flicker between tabs → [checked in]reduce the amount of flicker between tabs
Patch to correct the typos in mailWindowOverlay.xul (see comment #44 and #45).
The diff is not against the CVS as I have no access.
Richard (for reference): you can use anonymous cvs for checkout, see <http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS>
Thanks for implementing this! :)

Some initial observations that may need confirmation:

- I have multiple mail addresses, each set-up to use their own Inbox. I now use tabs for each Inbox. In the three-pane view (Classic + Message view) however the collapsed state of the Inboxes on the left-hand side won't stick (i.e., a change made in one tab propagates to the other tabs as well).

- The scroll bar for the message pane now exhibits some noticeable lag and repaint issues. I don't know if this is related to the tab view though.

- Tabs are not yet drag/droppable

- Tab titles could be more informative (for instance, when displaying an Inbox it could either list the account name or how many messages read/unread)

- Keyboard navigation and shortcuts should be implemented (e.g., cycling through tabs, closing tabs, and opening in tabs)

Would you like to spin these issues off as separate bugs?
Further the implementation of session storage would be a great idea. So when you start Thunderbird anyone gets the opened tabs from the last session. Even the history and undo tab closing would be nice.
I suppose the dependence of this bug on bug 297379 (which is RESOLVED WONTFIX) should be lifted. I don't know if that can be done immediately or if some preliminary work is required.
track new features left to do in status whiteboard.
currently comment 47, 57, 66, 67 based on a quick scan of comments.

blocking‑thunderbird3? as this is on the thunderbird 3 roadmap
Flags: blocking-thunderbird3?
Whiteboard: features todo: comment 47, 57, 66, 67
Nominating wanted-thunderbird3.0a1 if someone wants to improve this for alpha 1
as well.
Flags: wanted-thunderbird3.0a1?
I'd also like to see this for 3.0a1. Before it lands several issues need to be fixed:
-No tab prefs visible in the Preferences. Need some UI control for this similar to that used in FF. Some people hate tabs, and would like to be able to turn them off.
-Need keyboard/mouse shortcuts to open and navigate tabs. These should match those used in FF for consistency. For example I expect that ctrl/cmd-click would open folder/message in a new tab, it does not. I expect ctrl/cmd-t to open a new tab with default startup view, it does not. Middle-click should also open new tab, it does not.
These need to be addressed to make tabs discoverable by users.
(In reply to comment #72)
> I'd also like to see this for 3.0a1. Before it lands several issues need to be
> fixed:
> -No tab prefs visible in the Preferences. Need some UI control for this similar
> to that used in FF. Some people hate tabs, and would like to be able to turn
> them off.

agreed

> -Need keyboard/mouse shortcuts to open and navigate tabs. These should match
> those used in FF for consistency. For example I expect that ctrl/cmd-click
> would open folder/message in a new tab, it does not. I expect ctrl/cmd-t to
> open a new tab with default startup view, it does not. Middle-click should also
> open new tab, it does not.


This may give some conflicting shortcuts. For example, in Firefox CTRL+T opens a new tab, but in Thunderbird this is already set to retrieve messages from a server

See also comment 66 for further polish concerning the tabbed interface.
Moving from wanted‑thunderbird3.0a1? flag to wanted‑thunderbird3.0a2? flag since code for Thunderbird 3 Alpha 1 has been frozen.
Flags: wanted-thunderbird3.0a1? → wanted-thunderbird3.0a2?
<quote cite="comment #73"> Firefox CTRL+T opens a new tab, but in Thunderbird this is already set to retrieve messages from a server</quote>

Which always seemed to me very unintuitive!  QUESTION: does anyone look over the "family" of applications for consistent use of shortcuts, etc.?

My point being, I would not find it hard to live with a change in this shortcut. 
(In reply to comment #75)
> <quote cite="comment #73"> Firefox CTRL+T opens a new tab, but in Thunderbird
> this is already set to retrieve messages from a server</quote>
> 
> Which always seemed to me very unintuitive!  QUESTION: does anyone look over
> the "family" of applications for consistent use of shortcuts, etc.?
> 
> My point being, I would not find it hard to live with a change in this
> shortcut. 
> 

It would be nice to have a survey on what shortcuts people use in what apps.  Eg. Ctrl-1, Ctrl-2, etc. Ctrl-T, Ctrl-B, etc., etc., etc.  Honestly I had never thought about a shortcut for send/receive since I have it set to check frequently.... most people do.

-[Unknown]
Attached file My keyboard shortcuts (obsolete) —
In reply to comment #76
OK, here are mine, but somehow I feel the list would be too long (and somewhat OT) for a comment.
Comment on attachment 319089 [details]
My keyboard shortcuts

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9pre) Gecko/2008050201 SeaMonkey/2.0a1pre

   One key I use a lot is Ctrl+W, both in the Browser (close tab) and in Mail/News (close window).
   I use Ctrl-T (get new mail) in the mailer when I can't wait 5 minutes for a message which I know is coming (yes, I've set POP/NNTP cycle time
to 5 minutes). Or I click "File -> Get New Messages For -> All accounts" (somehow Ctrl+Shift+T doesn't seem to really do more than Ctrl+T but I
suppose I'm mistaken).
   I don't use Ctrl+<digit> and I can't use Ctrl+Fn (which is captured by my window manager before any app sees it). I go from tab to tab using
Ctrl+PgUp, Ctrl+PgDn, or by clicking.
   I sometimes use Alt+Left (Back), Alt+Right (Forward), but I click Back/Forward much more often.
   I always use Ctrl-Q to quit, which happens at least once a day before installing the next nightly.
   I use / to search, then Ctrl+G (next) or sometimes Ctrl+Shift+G (previous)
   When I want to zoom the text (which isn't very often but does happen at some sites which use very small type) I use Ctrl++, which on my
fr-BE keyboard is actually Ctrl+= since + is Shift+=. I go back by Ctrl+- (and - is unshifted).
   Most menus I click with the mouse; the exceptions are Alt+F U (Page Setup) and Alt+F V (Print Preview). I also use Ctrl+P (Print) and, in
MailNews, Ctrl+F Y (empty trash).
   I sometimes use Tab followed by Enter to click the first button after the current textarea on a certain page I know, when that button is
off-screen. When I hit Tab by mistake while typing in a textarea I come back with Shift+Tab.
   To open a new browser window I click Ctrl+N. I use it mostly to overcome a bug which only happens when a certain extension (but one I
couldn't live without) is enabled.
   In the browser I use Ctrl+L a lot to select the URL bar. Then I may use Down (and Up) to choose an autocomplete entry and Enter to select it.
   In the SeaMonkey browser I use F9 a lot to toggle the sidebar, where I can use Search. I search both Mozillazine-KB and Wikipedia-en a lot, and
sometimes others such as MDC and MozillaWiki.
   And of course I use the ubiquitous "clipboard and friends" shortcuts everywhere: Ctrl+A (select all), Ctrl+C (copy), Ctrl+X (cut), Ctrl+V
(paste), Ctrl+Z (undo insert).
   In MailNews I use N (next unread), B (back = previous), F (forward = next, read or not), Enter (open), Ctrl+O (open mail but don't
expand/collapse thread), J (mark as junk), M (toggle read), R (mark thread as read), Del (move to trash).
   In MailNews and less often in the Browser I use Ctrl+U (View Source).
   I also use Ctrl+A (select all) and Del (remove from list) in the Download Manager.
Suggest the discussion of shortcuts is best done somewhere else (another bug or newsgroup). Be aware, such discussions rarely have useful results, historically.
Comment on attachment 319089 [details]
My keyboard shortcuts

Hey, shit, I misunderstood the meaning of "Edit as Comment".
Attachment #319089 - Attachment is obsolete: true
(In reply to comment #79)
> Suggest the discussion of shortcuts is best done somewhere else (another bug or
> newsgroup). Be aware, such discussions rarely have useful results,
> historically.
> 

you're right, Wayne, my bad, see comment #80. The newsgroups, maybe?
(In reply to comment #76)
> It would be nice to have a survey on what shortcuts people use in what apps. 
> Eg. Ctrl-1, Ctrl-2, etc. Ctrl-T, Ctrl-B, etc., etc., etc.  Honestly I had never
> thought about a shortcut for send/receive since I have it set to check
> frequently.... most people do.
> 
> -[Unknown]

(In reply to comment #79)
> Suggest the discussion of shortcuts is best done somewhere else (another bug or
> newsgroup). Be aware, such discussions rarely have useful results,
> historically.
> 

Sorry, I meant more of a "study" speaking of a long-term thing (and not on some corner of the internet, e.g. newsgroups.)  Anyway, I think that adjusting shortcuts for tabbed stuff in Thunderbird definitely belongs in its own bug anyway, imho.

-[Unknown]
Think you might need to have the port number in the news link
news://news.mozilla.org:119/m_-dnZpDnvol27bVnZ2dnUVZ_qTinZ2d@mozilla.org

News links are very iffy. Here's the google archive:
http://groups.google.com/group/mozilla.dev.apps.thunderbird/browse_thread/thread/9077b4505b82ad86#
(In reply to comment #52)
> In 3 pane view, tabs appear blank if preview pane is dragged off screen.
> I have it set that way to prevent plugins and helper apps from activating on
> preview and interfering with fully opened screens.
> 
This behavior still exists in Shredder Alpha 1:
When opening a message in a new tab with the Message Pane disabled, the message is not loading and the tab remains blank. When switching to the 3-pane layout the message loads properly in a new tab.
Looks like a problem to me.
I think we want to have a good story for tabs pretty soon, so marking as blocking and assigning to Bryan for the UX decisions.

Note that I don't mean to imply anything about the fate of any of the proposed patches or solutions -- I do mean to imply that we want to resolve the overall tabbing approach.

It's not going to make a2, however.
Assignee: bienvenu → clarkbw
Status: ASSIGNED → NEW
Flags: wanted-thunderbird3.0a2?
Flags: wanted-thunderbird3.0a2-
Flags: blocking-thunderbird3?
Flags: blocking-thunderbird3+
Target Milestone: Future → Thunderbird 3.0b2
Priority: -- → P1
Just posted some of the designs for this in my blog last night.
entry: http://clarkbw.net/blog/2008/09/25/thunder-tab/
designs: http://clarkbw.net/designs/tabbing/thundertab/

Seems like the initial stages are this (in order):
1) getting the tab bar to show by default
2) naming the default tab bar (i keep using All Mail, even though I think it should just sail Mail - bike sheds are best colored aquamarine)
3) add new tab button for opening a new tab
4) add tab shortcut area for opening different tab types
Here are some notes I had on the current functionality associate with opening in tabs.

Current tab actions are all related to opening objects as they exist in the main interface.  Examples:
* "Open Message in New Tab"
* "Open in New Tab"
** Related to Accounts, Newsgroups, and Folders

However as with bug 452281 and bug 446306 we're moving towards a more search centric interface and we should be using terminology and views to represent that.

* "Open Conversation"
* "Find Messages Like These"
* "All Messages by This Person"

Each of these, being a search, opens in a new tab and presents a view by which the parent object (either a thread, account, or person) is represented and the associated messages are available.  The results view for each of these will also include search facets to help refine large result sets.

The effect this search interface has on existing functionality is that they must start using a similar search interface.

* "Open Message in New Tab" -> "Open Message"
** Uses the same functionality as "Open Conversation", however it will set focus to the message selected
* "Open Account" as well as (Folder, Newsgroup)
** This will change because the Folder Pane is changing, however this will use a search results view to show the sub-folders and the associated messages

There isn't a search results view that is completely worked out yet, but these interactions above are helping to define it.
Alias: thundertab
Summary: Thunderbird should use a tabbed interface → Thunderbird should use a tabbed interface (thundertab)
Also we're going to need to reign a few key combos for the tabbed interface.  Following the Firefox controls will likely provide the best transition for people coming from a tabbed browsing world.

ctrl-t (open new tab) bug 458069
ctrl-w (close current tab) bug 408398
Great work! Small nit: Shouldn't the open tabs be made persistent for next startup?
dbo: http://clarkbw.net/blog/2008/10/09/thunderbird-tab-session-restore/

I may be late, but there is a small design issue, aren't we wasting a lot of space in the tabs bar?  Or keep the calendar and tasks tabs when lightning is installed for the first time?
(In reply to comment #93)
> I may be late, but there is a small design issue, aren't we wasting a lot of
> space in the tabs bar?  Or keep the calendar and tasks tabs when lightning is
> installed for the first time?

In regards to your first question: Are you talking about the shortcut buttons to open calendar/task tabs on the right side of the tab bar?

In regards to your second question: Are you suggesting making the calendar/task tabs sticky so that they are opened by default (and potentially can't be closed)?
Hm, should I file bug about Inbox tab being not closable :] ?
(In reply to comment #95)
> Hm, should I file bug about Inbox tab being not closable :] ?

The first tab currently cannot be closed because we lack a way to get it back.  There should probably be a bug to either make the close button on the tab be disabled to reflect this, or a bug to add a shortcut button on the right to get a 3-pane view back.  If it is close-able, we would potentially want to automatically spawn a new blank tab if we're not going to quit.  I think this needs to be specified by clarkbw, if he has not already...
Is there going to be a prefs panel (or just a pref) to turn off tabs now that they seem to be the default?
Blocks: smtabmail
Depends on: 389735
Firefox has browser.tabs.autoHide which hides the tab bar when there's only one tab.  I'd definitely like to see the same thing in TB.
ok, initial designs have landed for this.  I don't think we're finished but this certainly isn't blocking on me anymore; obviously I'll continue to watch this.  The greater blocker is the thunderbar bug and how it relates to the tabs we have landed.

bug 459096 is about tab session restore and how to make that happen

re: inbox not closeable.  there is an issue that closing the first tab presents ,which andrew mentions, that we'd have no way to get it back.  We could work on interactions for getting the inbox tab back; however it's a lot simpler and easier to just not allow closing it.  We do need to remove the close button on that tab as it does cause a lot of confusion.

re: prefs / auto-hide.  since we're using tab shortcuts as a way to get to the calendar and tasks auto-hiding the tabs would collapse those buttons until at least 2 tabs were open.  There might be a way to get this done, especially for people who don't want calendar; however it's a bunch of extra work so someone else would need to step up.  Everything has been done (AFAIK) with ideas like this in mind such that an extension could easily be written to make this change happen.
Assignee: clarkbw → nobody
Depends on: 463395
remaining issues tracked in meta bug 392328 and new bugs
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Now that the tabbed interface is in place, can we expect to have the address book opened in a tab as well (bug #457270)?
Depends on: 468704
(In reply to comment #61)
> Created an attachment (id=270539) [details]
> [checked in]fix typo for Unsent Messages tab icon
> 
> I had a typo which was keeping the unsent messages folder tab icon from showing
> up. kudos to Phil for catching this.

I still seeing different icons for unsent messages on tabs and on folderPane under Windows XP (I guess it also occurs on other systems).
It seems the tab shows the correct icon but the folder pane shows the generic folder icon.

I've figured out working on my theme that I have to "escape" the white space between "Unsent" and "Messages" on "specialFolder-Unsent Messages".

"specialFolder-Unsent\ Messages" works for me.
yes, see bug 466261
Depends on: 495763
No longer depends on: 495763
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: