Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4552158
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T16:44:25+00:00 2026-05-21T16:44:25+00:00

I have created an extension that adds a new column to the main message

  • 0

I have created an extension that adds a new column to the main message list, basically following the New Column Howto. Now I would like to place the column directly before the subject column, which appeared to be possible by not persisting the ordinal field and adding a insertbefore attribute. However, I still need to manually choose the column from the column chooser to make it visible, and I also need to do this for each folder. Is there a way to insert this automatically to all message views just before the subject column? My goal is that the column appears automatically in all possible message view when the extension is installed.

My XUL overlay currently looks like this:

<overlay id="colovl"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/x-javascript" src="chrome://myext/content/column_overlay.js"/>
  <tree id="threadTree">
    <treecols id="threadCols">
    <splitter class="tree-splitter" />
    <treecol id="MyCol" insertbefore="subjectCol" fixed="true" 
           flex="2" hidden="false"
           class="treecol-image"
           label="MyCol" tooltiptext="Click to sort by MyCol" />
    </treecols>
  </tree>
</overlay>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T16:44:26+00:00Added an answer on May 21, 2026 at 4:44 pm

    Thunderbird 3.1 has an user exposed action to apply the current’s folder column layout to other folders and their subfolders. As a user you can use this action through the folder configuration menu’s “Apply columns to …” action.

    This means what you want to do is doable.

    The implementation for this action is contained in threadPaneColumnPicker.xml. Browsing through the source code I’d say the interesting part starts at line 167. I copied parts of the code:

    let destFolder = event.originalTarget._folder;
    let parent = event.originalTarget.parentNode;
    while (parent != noChildrenPopup && parent != yesChildrenPopup) {
       parent = parent.parentNode;
    }
    
    // Get the current folder's column state.
    let propName = gFolderDisplay.PERSISTED_COLUMN_PROPERTY_NAME;
    let dbFolderInfo =
      gFolderDisplay.displayedFolder.msgDatabase.dBFolderInfo;
    let columnStateString = dbFolderInfo.getCharProperty(propName);
    // Now propagate appropriately...
    if (useChildren) {
      // Generate an observer notification when we have finished configuring
      // all folders.  This is currently done for the benefit of our mozmill
      // tests.
      function observerCallback() {
        let obsService =
           Components.classes["@mozilla.org/observer-service;1"]
                     .getService(Components.interfaces.nsIObserverService);
        obsService.notifyObservers(gFolderDisplay.displayedFolder,
                                   "msg-folder-columns-propagated", "");
      }
      MailUtils.setStringPropertyOnFolderAndDescendents(propName,
                                                        columnStateString,
                                                        destFolder,
                                                        observerCallback);
    }
    

    I’m not sure that you can reuse the code as-is but it should give you inspiration for a starting point.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have created a namespace extension that is rooted under Desktop. The main purpose
I would like to create a safe sum extension method that would have the
I have created a Chrome extension that uses the hotkeys [Alt]+[0...9] only to discover
I have created a subclass of a generic list so that I could implement
I have created an extension for mediawiki that works in all major browsers other
I have created a few WebRequest extension methods that support cancelling. Is it possible
I have created a small daemon (basically a console application that hides the console
I have written a Chrome extension that adds a char counter to some input
I have created a custom control that inherits System.Windows.Forms.Panel, and adds a few extra
I have created a simple Google chrome extension that overrides CSS classes using the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.