fix 392330, view picker not updated when we switch tabs, and issues with account manager in tabs, r/sr=standard8
This commit is contained in:
Родитель
1952a18c59
Коммит
bf12bf2692
|
@ -1348,7 +1348,7 @@ let mailTabType = {
|
||||||
aTab.messenger = messenger;
|
aTab.messenger = messenger;
|
||||||
aTab.dbView = gDBView;
|
aTab.dbView = gDBView;
|
||||||
aTab.searchSession = gSearchSession;
|
aTab.searchSession = gSearchSession;
|
||||||
|
aTab.msgSelectedFolder = gMsgFolderSelected;
|
||||||
if (!gDBView)
|
if (!gDBView)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1358,18 +1358,16 @@ let mailTabType = {
|
||||||
{
|
{
|
||||||
var curMsgHdr = gDBView.hdrForFirstSelectedMessage;
|
var curMsgHdr = gDBView.hdrForFirstSelectedMessage;
|
||||||
aTab.selectedMsgId = curMsgHdr.messageId;
|
aTab.selectedMsgId = curMsgHdr.messageId;
|
||||||
aTab.msgSelectedFolder = curMsgHdr.folder;
|
|
||||||
}
|
|
||||||
catch (ex)
|
|
||||||
{
|
|
||||||
aTab.msgSelectedFolder = gMsgFolderSelected
|
|
||||||
}
|
}
|
||||||
|
catch (ex) {}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aTab.selectedMsgId = null;
|
aTab.selectedMsgId = null;
|
||||||
aTab.msgSelectedFolder = null;
|
aTab.msgSelectedFolder = gDBView.msgFolder;
|
||||||
}
|
}
|
||||||
|
if (aTab.msgSelectedFolder)
|
||||||
|
aTab.mailView = GetMailViewForFolder(aTab.msgSelectedFolder);
|
||||||
},
|
},
|
||||||
|
|
||||||
_folderAndThreadPaneVisible: true,
|
_folderAndThreadPaneVisible: true,
|
||||||
|
@ -1387,26 +1385,32 @@ let mailTabType = {
|
||||||
gDBView = aTab.dbView;
|
gDBView = aTab.dbView;
|
||||||
gSearchSession = aTab.searchSession;
|
gSearchSession = aTab.searchSession;
|
||||||
|
|
||||||
|
// restore selection in folder pane;
|
||||||
|
let folderToSelect = gDBView ? gDBView.msgFolder : aTab.msgSelectedFolder;
|
||||||
// restore view state if we had one
|
// restore view state if we had one
|
||||||
|
var row = gFolderTreeView.getIndexOfFolder(folderToSelect);
|
||||||
|
|
||||||
|
var treeBoxObj = document.getElementById("folderTree").treeBoxObject;
|
||||||
|
var folderTreeSelection = treeBoxObj.view.selection;
|
||||||
|
// make sure that row.value is valid so that it doesn't mess up
|
||||||
|
// the call to ensureRowIsVisible().
|
||||||
|
if ((row >= 0) && !folderTreeSelection.isSelected(row))
|
||||||
|
{
|
||||||
|
gMsgFolderSelected = folderToSelect;
|
||||||
|
folderTreeSelection.selectEventsSuppressed = true;
|
||||||
|
folderTreeSelection.select(row);
|
||||||
|
treeBoxObj.ensureRowIsVisible(row);
|
||||||
|
folderTreeSelection.selectEventsSuppressed = false;
|
||||||
|
}
|
||||||
if (gDBView)
|
if (gDBView)
|
||||||
{
|
{
|
||||||
var row = gFolderTreeView.getIndexOfFolder(gDBView.msgFolder);
|
|
||||||
|
|
||||||
var treeBoxObj = document.getElementById("folderTree").treeBoxObject;
|
|
||||||
var folderTreeSelection = treeBoxObj.view.selection;
|
|
||||||
// make sure that row.value is valid so that it doesn't mess up
|
|
||||||
// the call to ensureRowIsVisible().
|
|
||||||
if ((row >= 0) && !folderTreeSelection.isSelected(row))
|
|
||||||
{
|
|
||||||
gMsgFolderSelected = gDBView.msgFolder;
|
|
||||||
folderTreeSelection.selectEventsSuppressed = true;
|
|
||||||
folderTreeSelection.select(row);
|
|
||||||
treeBoxObj.ensureRowIsVisible(row);
|
|
||||||
folderTreeSelection.selectEventsSuppressed = false;
|
|
||||||
}
|
|
||||||
// This sets the thread pane tree's view to the gDBView view.
|
// This sets the thread pane tree's view to the gDBView view.
|
||||||
UpdateSortIndicators(gDBView.sortType, gDBView.sortOrder);
|
UpdateSortIndicators(gDBView.sortType, gDBView.sortOrder);
|
||||||
RerootThreadPane();
|
RerootThreadPane();
|
||||||
|
// Only refresh the view picker if the views toolbar is visible.
|
||||||
|
if (document.getElementById("mailviews-container"))
|
||||||
|
UpdateViewPickerByValue(aTab.mailView);
|
||||||
|
|
||||||
// We need to restore the selection to what it was when we switched away
|
// We need to restore the selection to what it was when we switched away
|
||||||
// from this tab. We need to remember the selected keys, instead of the
|
// from this tab. We need to remember the selected keys, instead of the
|
||||||
// selected indices, since the view might have changed. But maybe the
|
// selected indices, since the view might have changed. But maybe the
|
||||||
|
@ -1434,14 +1438,13 @@ let mailTabType = {
|
||||||
// existing API call that accomplishes it.
|
// existing API call that accomplishes it.
|
||||||
}
|
}
|
||||||
catch (ex) {dump(ex);}
|
catch (ex) {dump(ex);}
|
||||||
|
ShowThreadPane();
|
||||||
}
|
}
|
||||||
// make sure the folder tree knows that we don't have a view
|
else if (gMsgFolderSelected.isServer)
|
||||||
else
|
|
||||||
{
|
{
|
||||||
var tree = GetThreadTree();
|
UpdateStatusQuota(null);
|
||||||
tree.boxObject.QueryInterface(Components.interfaces.nsITreeBoxObject)
|
// Load AccountCentral page here.
|
||||||
.view = null;
|
ShowAccountCentral();
|
||||||
ClearMessagePane();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -124,9 +124,20 @@ function ViewChangeByMenuitem(aMenuitem)
|
||||||
|
|
||||||
|
|
||||||
function ViewChangeByValue(aValue)
|
function ViewChangeByValue(aValue)
|
||||||
|
{
|
||||||
|
ViewChange(aValue, GetLabelForValue(aValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
function ViewChangeByFolder(aFolder)
|
||||||
|
{
|
||||||
|
var result = GetMailViewForFolder(aFolder);
|
||||||
|
ViewChangeByValue(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
function GetLabelForValue(aValue)
|
||||||
{
|
{
|
||||||
var label = "";
|
var label = "";
|
||||||
var viewPickerPopup = document.getElementById("viewPickerPopup");
|
let viewPickerPopup = document.getElementById("viewPickerPopup");
|
||||||
if (viewPickerPopup)
|
if (viewPickerPopup)
|
||||||
{
|
{
|
||||||
// grab the label for the menulist from one of its menuitems
|
// grab the label for the menulist from one of its menuitems
|
||||||
|
@ -139,17 +150,14 @@ function ViewChangeByValue(aValue)
|
||||||
}
|
}
|
||||||
label = selectedItems && selectedItems.length && selectedItems.item(0).label;
|
label = selectedItems && selectedItems.length && selectedItems.item(0).label;
|
||||||
}
|
}
|
||||||
ViewChange(aValue, label);
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function UpdateViewPickerByValue(aValue)
|
||||||
function ViewChangeByFolder(aFolder)
|
|
||||||
{
|
{
|
||||||
var result = GetMailViewForFolder(aFolder);
|
UpdateViewPicker(aValue, GetLabelForValue(aValue));
|
||||||
ViewChangeByValue(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function UpdateViewPicker(aValue, aLabel)
|
function UpdateViewPicker(aValue, aLabel)
|
||||||
{
|
{
|
||||||
var viewPicker = document.getElementById("viewPicker");
|
var viewPicker = document.getElementById("viewPicker");
|
||||||
|
@ -160,7 +168,6 @@ function UpdateViewPicker(aValue, aLabel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function GetFolderInfo(aFolder)
|
function GetFolderInfo(aFolder)
|
||||||
{
|
{
|
||||||
if (aFolder)
|
if (aFolder)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче