Thunderbird的发展真是够慢的,去年12月就出了3.0 beta1了,现在才出3.0rc1。这一年间每次新的beta版本出来我多试用,一方面是似乎没觉得有多少吸引人的新功能(未认真发掘?),另一方面是因为lightning 等关键扩展不可用的关系,一直没有正式换用v3版本。
这次3.0rc1出来,加上lightning之后试用,觉得基本上可以了,于是正式切换。
但有一个说小不小说大不大的问题让我不爽: 不能删除重复邮件了。旧的Remove Duplicate Messages扩展在v3上用不起来,新的R-D-M Alternative也完全不能工作(AMO上的评价又都还说不错,奇怪)。
今早上着手来解决这个问题,参照R-D-M Alternative的代码来看哪些地方需要修改。结果是搞定了,不过早上的两个多小时都搭进去了, :-)
diff -Ner removeduplicates-nosub/chrome/content/removeduplicates/removeduplicates.js removeduplicates-v3/chrome/content/removeduplicates/removeduplicates.js 507,508c /* if (msgWindow.SelectFolder) { msgWindow.SelectFolder( folderList[0].URI ); } else { msgWindow.windowCommands.selectFolder( folderList[0].URI ); }*/ var x = gDBView; . 231c if (folder.getMessages) { folderMessages = folder.getMessages(msgWindow); } else { folderMessages = folder.messages; } . diff -Ner removeduplicates-nosub/chrome/content/removeduplicates/showduplicatemessages.js removeduplicates-v3/chrome/content/removeduplicates/showduplicatemessages.js 508,509c } msgWindow.windowCommands.selectMessage(null); //FIXME . 496c msgWindow.SelectMessage( message.folder.getUriForMsg (message) ); } else { // msgWindow.windowCommands.selectFolder( message.folder.URI ); msgWindow.windowCommands.selectMessage( message.folder.getUriForMsg (message) ); } . 494a if (msgWindow.SelectFolder) { . 493c var message = getMessage ( messageTable[i].messageUri ); . 488c //var messageToRemove = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray); var messageToRemove = Components.classes["@mozilla.org/array;1"].createInstance(Components.interfaces.nsIMutableArray); . 329,331c if (msgWindow.SelectFolder) { msgWindow.SelectFolder( message.folder.URI ); msgWindow.SelectMessage( message.folder.getUriForMsg (message) ); msgWindow.SelectMessage( message.folder.getUriForMsg (message) ); } else { msgWindow.windowCommands.selectFolder( message.folder.URI ); msgWindow.windowCommands.selectMessage( message.folder.getUriForMsg (message) ); msgWindow.windowCommands.selectMessage( message.folder.getUriForMsg (message) ); } . 287c if ( messageToRemove.length > 0) . 282c messageToRemove.appendElement ( message, false ); . 278c messageToRemove.appendElement ( message, false ); . 274c var message = getMessage ( messageTable[i].messageUri ); . 269c //var messageToRemove = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray); // nsISupportsArray replaced with nsIArray by Mozilla bug 435290 var messageToRemove = Components.classes["@mozilla.org/array;1"].createInstance(Components.interfaces.nsIMutableArray); .