This is a feature that had been requested several times. I also took this as an
opportunity to clean up the spellchecking code in the compose window somehow.
The idea is that there's no reliable way for outer code to pass objects into
inner chrome from inside the chrome tab. This bug fixes the restriction by
adding an extra onLoad parameter to a content tab's arguments.
The order of context menu items, esp. after I added the spellcheck items, was
somehow chaotic. This patch makes it more consistent, mainly by copying the
order from Firefox, adding extra separators, etc.
This bug add entries in the context menu to choose a different language when
spellchecking textareas. This works for content tabs, but also for in-3-pane
HTML textareas, the main use case being Thunderbird Conversation's quick reply
faeture, of course.
The previous UI code had a bit the taste of spaghetti bolognese. Delicious, but hard to follow.
Concrete problem was mostly when you did not want autodetection, but manual config:
1. The Stop button didn't work, it continued for a bit after you pressed Stop
2. When you pressed "Manual Config", we immediately created the account and went into the
account manager, instead of going into the inline "Edit" mode.
3. Worse, the account was created with whatever server happened to be tested last,
so when pressing "Manual config", you got a litterally random config.
You couldn't change IMAP<->POP3 later, either.
4. The inline Edit didn't take the values you gave it as given, but second-guessed them
upon testing, and felt free to change them, even if the user explicitly said otherwise.
Understandably, that infuriated some users.
This change should fix all that.
The stop button now actually works, and the "Manual config" button goes into "Edit" mode.
This also uses a different philosophy, in a way:
After detection, we have a "result" screen, where the user is only *presented*
the values that we found, but he cannot *change* them (apart from IMAP vs. POP3).
The result screen is only to confirm that the servers are good. It should be
very quick and easy to read.
If the user wants to change the values, we make that easy with the "manual config"
button (formerly "Edit") and going into a different where we present all the values
as input fields. There, we take what the user said as a given command.
But the default is "Auto", where we can guess, so you have a combination of both
user being in command and us supporting the user.
Only if the user needs to change some advanced values like IMAP root folder, and
wants to do so immediately, we have the "Advanced config" button, which does the
same as the old "manual config".
This was a lot of work to code, and then even more with a one-year foray to get
this reviewed, so I really hope this helps.
Permission to commit into CLOSED TREE by Standard8/9 on IRC.