Commit e809385a authored by bugzilla%arlen.demon.co.uk's avatar bugzilla%arlen.demon.co.uk
Browse files

Bug 121369 Should support Mozilla as default News client too, like Mail

p=me r=mnyromyr sr=neil.parkwaycc.co.uk a=asa
parent 9c095525
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -70,8 +70,6 @@
                accesskey="&confirmMove.accesskey;"/>
    </hbox>

    <hbox align="start" id="mapi"/>

    <hbox align="center">
      <checkbox id="mailRememberLastMsg" label="&rememberLastMsg.label;"
                prefstring="mailnews.remember_selected_message"
@@ -85,6 +83,8 @@
                prefstring="mailnews.thread_pane_column_unthreads"
                reversed="true" />
    </hbox>    

    <vbox id="mapi"/>
  </groupbox>

  <groupbox>
+2 −2
Original line number Diff line number Diff line
@@ -51,14 +51,14 @@
<!ENTITY location.label                   "Location:">
<!ENTITY location.accesskey               "L">
<!ENTITY useDefault.label                 "Restore Default">
<!ENTITY useDefault.accesskey             "R">
<!ENTITY useDefault.accesskey             "D">
<!ENTITY rememberLastMsg.label            "Remember the last selected message">
<!ENTITY rememberLastMsg.accesskey        "e">
<!ENTITY toolbarIntro.label               "Select the buttons you want to see in the toolbar">
<!ENTITY fileButton.label                 "File">
<!ENTITY fileButton.accesskey             "F">
<!ENTITY nextButton.label                 "Next">
<!ENTITY nextButton.accesskey             "N">
<!ENTITY nextButton.accesskey             "x">
<!ENTITY junkMailButton.label             "Junk">
<!ENTITY junkMailButton.accesskey         "J">
<!ENTITY printButton.label                "Print">
+68 −105
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
 * Contributor(s): 
 *   Srilatha Moturi <srilatha@netscape.com>
 *   Rajiv Dayal <rdayal@netscape.com>
 *   Ian Neal <bugzilla@arlen.demon.co.uk>
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -36,121 +37,83 @@
 *
 * ***** END LICENSE BLOCK ***** */

function mailnewsOverlayStartup() {
    mailnewsOverlayInit();
    if (!("mapiPref" in parent)) {
        parent.mapiPref = new Object;
        parent.mapiPref.isDefaultMailClient = 
               document.getElementById("mailnewsEnableMapi").checked;
        
        var mailnewsEnableNews = document.getElementById("mailnewsEnableNews"); 
        if (mailnewsEnableNews)
          parent.mapiPref.isDefaultNewsClient = mailnewsEnableNews.checked;
    }
    else { 
        // when we switch between different panes
        // set the checkbox based on the saved state
        var mailnewsEnableMapi = document.getElementById("mailnewsEnableMapi");
        var mailnewsEnableNews = document.getElementById("mailnewsEnableNews"); 
function mailnewsOverlayStartup()
{
  if (!("mapiInitialized" in parent))
  {
    parent.mapiDisabled = true;
    parent.newsDisabled = true;
    var mapiRegistry = getMapiRegistry();
    parent.mapiInitialized = !!mapiRegistry;
    if (mapiRegistry)
    {
      var prefWindow = parent.hPrefWindow;
      // initialise preference and registry components.
      // While the data is coming from the system registry, we use a set
      // of parallel preferences to indicate if the ui should be locked.
      parent.mapiPref = {};
      parent.mapiReg = {};

        if (parent.mapiPref.isDefaultMailClient)
            mailnewsEnableMapi.setAttribute("checked", "true");
        else
            mailnewsEnableMapi.setAttribute("checked", "false");
      // Only register callback if mapiRegistry exists so
      // we do not need to check its existence in onOK
      prefWindow.registerOKCallbackFunc(onOK);

        if (mailnewsEnableNews)
      var isDefault;
      const kPrefBase = "system.windows.lock_ui.";
      if (prefWindow.getPrefIsLocked(kPrefBase + "defaultMailClient"))
      {
          if (parent.mapiPref.isDefaultNewsClient)
             mailnewsEnableNews.setAttribute("checked", "true");
          else
             mailnewsEnableNews.setAttribute("checked", "false");
        }
        isDefault = prefWindow.getPref("bool", kPrefBase + "defaultMailClient");
        mapiRegistry.isDefaultMailClient = isDefault;
        parent.mapiReg.isDefaultMailClient = isDefault;
      }
      else
      {
        parent.mapiReg.isDefaultMailClient = mapiRegistry.isDefaultMailClient;
        parent.mapiDisabled = false;
      }
      parent.mapiPref.isDefaultMailClient = parent.mapiReg.isDefaultMailClient;

function registerCallback(){
    if ("mapiCallback" in parent && parent.mapiCallback)
        return;
    if ("hPrefWindow" in parent && parent.hPrefWindow) {
        parent.hPrefWindow.registerOKCallbackFunc( onOK );
        parent.mapiCallback = true;
      if (prefWindow.getPrefIsLocked(kPrefBase + "defaultNewsClient"))
      {
        isDefault = prefWindow.getPref("bool", kPrefBase + "defaultNewsClient");
        mapiRegistry.isDefaultNewsClient = isDefault;
        parent.mapiReg.isDefaultNewsClient = isDefault;
      }
      else
      {
        parent.mapiReg.isDefaultNewsClient = mapiRegistry.isDefaultNewsClient;
        parent.newsDisabled = false;
      }

function mailnewsOverlayInit() {
    try {
        var mapiRegistry = Components.classes[ "@mozilla.org/mapiregistry;1" ].
                   getService( Components.interfaces.nsIMapiRegistry );
      parent.mapiPref.isDefaultNewsClient = parent.mapiReg.isDefaultNewsClient;
    }
    catch(ex){
        mapiRegistry = null;
  }

    const prefbase = "system.windows.lock_ui.";
  var mailnewsEnableMapi = document.getElementById("mailnewsEnableMapi");
  var mailnewsEnableNews = document.getElementById("mailnewsEnableNews");

    if (mapiRegistry) {
    // initialise preference component.
    // While the data is coming from the system registry, we use a set
    // of parallel preferences to indicate if the ui should be locked.
        try { 
            var prefService = Components.classes["@mozilla.org/preferences-service;1"]
                          .getService()
                          .QueryInterface(Components.interfaces.nsIPrefService);
            var prefBranch = prefService.getBranch(prefbase);
            if (prefBranch && prefBranch.prefIsLocked("defaultMailClient")) {
                mapiRegistry.isDefaultMailClient = prefBranch.getBoolPref("defaultMailClient") ;
                mailnewsEnableMapi.setAttribute("disabled", "true");
           }
        }
        catch(ex) {}

        mailnewsEnableMapi.setAttribute("checked", mapiRegistry.isDefaultMailClient ? "true" : "false");
        if (mailnewsEnableNews)
          mailnewsEnableNews.setAttribute("checked", mapiRegistry.isDefaultNewsClient ? "true" : "false");
    }
    else
  if (parent.mapiInitialized)
  {
        mailnewsEnableMapi.setAttribute("disabled", "true");
        if (mailnewsEnableNews)
          mailnewsEnableNews.setAttribute("disabled", "true");
    // when we switch between different panes set the checkbox based on the saved state
    mailnewsEnableMapi.checked = parent.mapiPref.isDefaultMailClient;
    mailnewsEnableNews.checked = parent.mapiPref.isDefaultNewsClient;
  }
  mailnewsEnableMapi.disabled = parent.mapiDisabled;
  mailnewsEnableNews.disabled = parent.newsDisabled;
}

function onEnableMapi() {
    // save the state of the checkbox
    if ("mapiPref" in parent)
        parent.mapiPref.isDefaultMailClient = 
               document.getElementById("mailnewsEnableMapi").checked;
}

function onEnableNews() {
    // save the state of the checkbox
    if ("mapiPref" in parent)
        parent.mapiPref.isDefaultNewsClient = document.getElementById("mailnewsEnableNews").checked;
function getMapiRegistry() {
  if ("@mozilla.org/mapiregistry;1" in Components.classes)
    return Components.classes["@mozilla.org/mapiregistry;1"]
                     .getService(Components.interfaces.nsIMapiRegistry);
  return null;
}

function onOK()
{
    try {
        var mapiRegistry = Components.classes[ "@mozilla.org/mapiregistry;1" ].getService( Components.interfaces.nsIMapiRegistry );
    }
    catch(ex){
        mapiRegistry = null;
    } 

    if (mapiRegistry && ("mapiPref" in parent)) {
      if (mapiRegistry.isDefaultMailClient != parent.mapiPref.isDefaultMailClient)
  var mapiRegistry = getMapiRegistry();
  if (parent.mapiReg.isDefaultMailClient != parent.mapiPref.isDefaultMailClient)
    mapiRegistry.isDefaultMailClient = parent.mapiPref.isDefaultMailClient;

      if ("isDefaultNewsClient" in parent.mapiPref)
      {
        if (mapiRegistry.isDefaultNewsClient != parent.mapiPref.isDefaultNewsClient)
  if (parent.mapiReg.isDefaultNewsClient != parent.mapiPref.isDefaultNewsClient)
    mapiRegistry.isDefaultNewsClient = parent.mapiPref.isDefaultNewsClient;
}
    }
}

// Install the onload handler
addEventListener("load", mailnewsOverlayStartup, false);
+21 −12
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@

 Contributor(s):
   Srilatha Moturi <srilatha@netscape.com>
   Ian Neal <bugzilla@arlen.demon.co.uk>

 Alternatively, the contents of this file may be used under the terms of
 either of the GNU General Public License Version 2 or later (the "GPL"),
@@ -47,14 +48,22 @@

  <script type="application/x-javascript">
    <![CDATA[
      _elementIDs.push("mailnewsEnableMapi");
      _elementIDs.push("mailnewsEnableMapi", "mailnewsEnableNews");
    ]]>
  </script>         
  <script type="application/x-javascript" src="chrome://messenger-mapi/content/pref-mailnewsOverlay.js"/>
<hbox align="center" id="mapi">
  <vbox id="mapi">
    <separator class="thin"/>

    <description>&defaultMailSettings.label;</description>
    <hbox class="indent" align="center">
      <checkbox id="mailnewsEnableMapi" label="&enableMapi.label;"
                accesskey="&enableMapi.accesskey;" 
            oncommand="onEnableMapi();"
            startupFunc="registerCallback();"/>
                oncommand="parent.mapiPref.isDefaultMailClient = this.checked;"
                startupFunc="mailnewsOverlayStartup();"/>
      <checkbox id="mailnewsEnableNews" label="&enableNews.label;"
                accesskey="&enableNews.accesskey;" 
                oncommand="parent.mapiPref.isDefaultNewsClient = this.checked;"/>
    </hbox>
  </vbox>
</overlay> 
+5 −2
Original line number Diff line number Diff line
<!ENTITY enableMapiTitle.label        "When sending mail from other applications">
<!ENTITY enableMapi.label             "Use &vendorShortName; Mail as the default mail application">
<!ENTITY enableMapi.accesskey         "u">
<!ENTITY defaultMailSettings.label    "Make &vendorShortName; Mail &amp; Newsgroups the default application for:">
<!ENTITY enableMapi.label             "Mail">
<!ENTITY enableMapi.accesskey         "M">
<!ENTITY enableNews.label             "News">
<!ENTITY enableNews.accesskey         "N">