├── .gitignore ├── .prettierrc ├── CHANGELOG ├── README.md ├── build.bat ├── doc └── migration-guide.md ├── jsconfig.json ├── make_xpi.bat ├── ns ├── MailNewsTypes2.idl ├── README.md ├── imgIContainer.idl ├── imgITools.idl ├── nsIClipboard.idl ├── nsIClipboardOwner.idl ├── nsIConverterInputStream.idl ├── nsIConverterOutputStream.idl ├── nsIDOMWindow.idl ├── nsIDocShell.idl ├── nsIDocShellTreeItem.idl ├── nsIDocShellTreeOwner.idl ├── nsIFile.idl ├── nsIFilePicker.idl ├── nsIFileStreams.idl ├── nsIFocusManager.idl ├── nsIIOService.idl ├── nsIInputStream.idl ├── nsIInputStreamChannel.idl ├── nsIInputStreamLength.idl ├── nsIInputStreamPriority.idl ├── nsIInputStreamPump.idl ├── nsIInputStreamTee.idl ├── nsIInterfaceRequestor.idl ├── nsIMsgCopyServiceListener.idl ├── nsIMsgFilterCustomAction.idl ├── nsIMsgFilterService.idl ├── nsIMsgFolder.idl ├── nsIMsgHdr.idl ├── nsIMsgSearchCustomTerm.idl ├── nsIMsgWindow.idl ├── nsINetUtil.idl ├── nsIOutputStream.idl ├── nsIPromptService.idl ├── nsIProperties.idl ├── nsIScriptableInputStream.idl ├── nsISpeculativeConnect.idl ├── nsIStyleSheetService.idl ├── nsISupports.idl ├── nsITransferable.idl ├── nsIURI.idl ├── nsIUnicharInputStream.idl ├── nsIUnicharOutputStream.idl ├── nsIVersionComparator.idl ├── nsIWebNavigation.idl ├── nsIWindowWatcher.idl ├── nsMsgSearchCore.idl └── nsPIDOMWindow.h ├── package-lock.json ├── package.json ├── src ├── _locales │ ├── de │ │ └── messages.json │ ├── en │ │ └── messages.json │ ├── fr │ │ └── messages.json │ ├── it │ │ └── messages.json │ ├── lv │ │ └── messages.json │ └── ro │ │ └── messages.json ├── api │ ├── LegacyCSS.js │ ├── ResourceUrl.js │ ├── legacy.ts │ ├── qapp.ts │ ├── qnote.ts │ ├── qpopup.ts │ └── xnote.ts ├── background.html ├── background.ts ├── html │ ├── background.css │ ├── installed.css │ ├── installed.html │ ├── options.css │ ├── options.html │ ├── qpopup.css │ ├── qpopup.html │ ├── updated.html │ ├── wepopup.css │ └── wepopup.html ├── images │ ├── 0.14.4-options.png │ ├── 1x1.gif │ ├── empty-win.gif │ ├── icons │ │ ├── EUR.svg │ │ ├── USD.svg │ │ ├── close.svg │ │ ├── copy.svg │ │ ├── edit.svg │ │ ├── gear.svg │ │ ├── gear2.svg │ │ ├── important.svg │ │ ├── new.svg │ │ ├── ok.svg │ │ ├── paste.svg │ │ ├── qnote-disabled.svg │ │ ├── qnote.svg │ │ ├── reset.svg │ │ ├── save.svg │ │ ├── screenshot.svg │ │ └── trash.svg │ ├── mini-note-disabled.gif │ ├── mini-note.gif │ ├── redim-dark.png │ ├── redim.png │ ├── storage.png │ ├── title-background-dark.png │ ├── title-background.png │ ├── txt-background-dark.png │ └── txt-background.png ├── manifest.json ├── modules-exp │ ├── QNoteFile.mts │ ├── QNoteFilters.mts │ ├── QPopups.sys.mjs │ ├── XNoteFile.mts │ └── api.mts ├── modules │ ├── DOMLocalizator.mts │ ├── Menu.mts │ ├── Messages.mts │ ├── Note.mts │ ├── NotePopups.mts │ ├── QEventDispatcher.mts │ ├── common-background.mts │ ├── common.mts │ └── luxon.mjs ├── schemas │ ├── LegacyCSS.json │ ├── ResourceUrl.json │ ├── legacy.json │ ├── qapp.json │ ├── qnote.json │ ├── qpopup.json │ └── xnote.json ├── scripts │ ├── installed.ts │ ├── messageDisplay.ts │ ├── options.ts │ ├── qpopup.ts │ └── wepopup.ts └── types │ ├── browser.d.ts │ ├── thunderbird-webext-browser.d.ts │ └── thunderbirdClassic.d.ts ├── thunderbird.net ├── about.html └── screenshots │ ├── attach_message.jpg │ ├── attach_print.jpg │ ├── column.jpg │ ├── filters.jpg │ ├── note.jpg │ └── search.jpg ├── tsconfig.json └── update_vers.bat /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | _misc 4 | ns 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 4, 3 | "useTabs": true, 4 | "printWidth": 120 5 | } 6 | -------------------------------------------------------------------------------- /CHANGELOG: -------------------------------------------------------------------------------- 1 | CHANGELOG QNote 2 | =========================== 3 | 4 | RELEASE 0.14.8 - ... 5 | - Fix compatibility with TB139 6 | 7 | RELEASE 0.14.7 - Mar 24, 2025 8 | - Fix compatibility with TB136 9 | - Fix issues with multinote (#78) 10 | - Fix autosave when closing / switching tab / window 11 | 12 | RELEASE 0.14.4 - Dec 16, 2024 13 | ----------------- 14 | - Remove extra title bar for popup window (#75) 15 | - Revert default save and close mechanism as it was before 0.14.3 (#67, #68, #69) 16 | - Show context menu in message page context (#71) 17 | - Fix large icons when opening message pane in a new tab (#72) 18 | 19 | RELEASE 0.14.3 - Oct 7, 2024 20 | ----------------- 21 | - Complete rewrite in TypeScript. Fixes most of the issues with TB128 22 | - Feature take note screenshot to clipboard 23 | - Fix note scrolling with large texts (#48) 24 | - Fix MacOS blank window (#58) 25 | - Fix QNote missing text column (#57) 26 | - Deprecated: storage option inside extension 27 | 28 | RELEASE 0.13.0 - Aug 21, 2024 29 | ----------------- 30 | - Add templating support for attaching to print and message (#34, #47, #52) 31 | - Add treat note text as HTML option for attaching to print and message 32 | - Add 'aAghe' date formatting rules (#50) 33 | - Fix tagging (#56) 34 | 35 | RELEASE 0.12.7 - Aug 15, 2024 36 | ----------------- 37 | - Fix compatibility with TB128 (#54) 38 | - Fix ColumnHandler with TB115 39 | 40 | RELEASE 0.12.5 - Aug 1, 2023 41 | ----------------- 42 | - Fix some TB 115 issues 43 | - Column handler still won't work with TB 115 44 | - QuickFilter still won't work with TB 115 45 | 46 | RELEASE 0.12.3 - Jul 4, 2023 47 | ----------------- 48 | - Double click on embedded note opens note popup (#35) 49 | - Fix embedded note incorrect text wrapping (#39) 50 | - Fix QuickFilter on focus triggers unnecessary search (#43) 51 | 52 | RELEASE 0.12.* - Nov 9, 2022 53 | ----------------- 54 | - Add multi message selection context menu (create, update, delete, reset, copy, paste) 55 | - Add icon to multi message selection list 56 | - Add filters (Edit / Find / Search Messages) 57 | - Add filter actions (Tools / Message Filters) 58 | - Add clipboard Copy / Paste 59 | - Lots of fixes and code cleanup 60 | 61 | RELEASE 0.11.* - May 12, 2022 62 | ----------------- 63 | - Add context menu to message 64 | - Add QuickFilter support for filtering notes (only for folder storage) 65 | - Add ability to export notes to folder by choosing QNote or XNote++ formats (#20) 66 | - Minor bugfixes 67 | 68 | RELEASE 0.10.4 - Oct 15, 2021 69 | ----------------- 70 | - Options: enable / disable spell check 71 | - Add Romanian locale 72 | - Add dark theme 73 | - Fix note resize issues 74 | - Minor bugfixes 75 | 76 | RELEASE 0.10.3 - Oct 8, 2021 77 | ----------------- 78 | - Use Webextension headerMessageId property (starting with TB85) 79 | - Fix unnecessary trimming when message-id is w/o brackets (#6) 80 | - Fix note movement for TB < 91 (#9) 81 | 82 | RELEASE 0.10.2 - Aug 28, 2021 83 | ----------------- 84 | - Fix compatibility with TB91 (#8) 85 | 86 | RELEASE 0.10.1 - Dec 1, 2020 87 | ----------------- 88 | - Options: auto save 89 | - Options: reset to defaults 90 | - Options: more default positions 91 | - Options: opt always use default size and position 92 | - Add date localization 93 | - Styling tweaks 94 | - Minor bug fixes 95 | 96 | RELEASE 0.10.0 - Nov 23, 2020 97 | ----------------- 98 | - Add localized date format option with custom or predefined formats 99 | - Add default note placement option (only floating panel) 100 | - Add confirm delete option 101 | - Save options w/o extension reload 102 | - Style options page according to selected theme 103 | - Minor bug fixes 104 | 105 | 106 | RELEASE 0.9.1 - Nov 18, 2020 107 | ----------------- 108 | - Attach note to print 109 | - Attach note to message 110 | - Removed search from QuickFilter until we find a good solution 111 | - Lots of bugfixes 112 | 113 | RELEASE 0.7.0 - Nov 5, 2020 114 | ----------------- 115 | - Add QuickFilter support for filtering notes by contents 116 | - Various bug fixes 117 | 118 | RELEASE 0.6.3 - Oct 26, 2020 119 | ----------------- 120 | - Added main toolbar button 121 | - Attach note to window that opened it instead to main window 122 | - Updated icons 123 | - Force note text color to black 124 | - Minor bug fixes 125 | 126 | RELEASE 0.6.2 - Oct 15, 2020 127 | ----------------- 128 | - New locales - IT / LV / FR / DE 129 | - Saving notes using UTF-8 encoded files 130 | - Fix QNote extension interfere with some other extensions 131 | 132 | RELEASE 0.6.1 - Oct 8, 2020 133 | ----------------- 134 | - Added Alt+Q keyboard shortcut 135 | - Better overall keyboard handling 136 | - Note to grab focus when explicitly click on QNote button or context menu 137 | - Minor bug fixes 138 | 139 | RELEASE 0.6.0 - Oct 3, 2020 140 | ----------------- 141 | - Notes will now be saved on disk using more versatile JSON format, not XNote++ format anymore 142 | - Auto close note after folder or tab change 143 | - Preserve column width 144 | - Fix XNote filename handling containing slashes 145 | 146 | RELEASE 0.5.4 - Oct 2, 2020 147 | ----------------- 148 | - Change note timestamp only if text changed 149 | - Option to overwrite existing notes when importing xnotes 150 | - Properly encode/decode .xnote filenames. Some notes did not shown up because of .xnote file names 151 | - Fix popup losing controls (again) 152 | - Minor bugfixes 153 | 154 | RELEASE 0.5.3 - Sep 30, 2020 155 | ----------------- 156 | - Fix popup losing controls 157 | - Add option for note to gain auto focus 158 | 159 | RELEASE 0.5.2 - Sep 29, 2020 160 | ----------------- 161 | - Added column with icon and text option 162 | - Added window option - popup or floating panel 163 | 164 | RELEASE 0.4 - Sep 19, 2020 165 | ----------------- 166 | - Added storage option - folder or extension storage 167 | - Closing with empty text will result in note deletion 168 | 169 | RELEASE 0.2 - Sep 16, 2020 170 | ----------------- 171 | - Fix compatibility with TB78 172 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Table of contents 2 | 1. [About](#about) 3 | 1. [Features](#features) 4 | 1. [Usage](#usage) 5 | 1. [Storage](#storage) 6 | 1. [Popup windows](#popup-windows) 7 | 1. [Screenshots](#screenshots) 8 | 1. [Building](#building) 9 | 1. [Releases](#releases) 10 | 1. [Known issues](#known-issues) 11 | 1. [Support](#support) 12 | 1. [Credits](#credits) 13 | 14 | 15 | # About 16 | This is the source code repository for the Thunderbird [QNote](https://addons.thunderbird.net/en-US/thunderbird/addon/qnote/) extension. 17 | 18 |
19 |
20 |
21 |
69 |
70 |
71 |
73 |
74 |
75 |
77 |
78 |
79 |
Extension to attach notes to emails
17 |Complete list of features and more information available on GitHub
28 |Read the migration guide
33 |46 | It was fun experimenting with Thunderbird (TB) internals when I first decided to rewrite XNote++ to support the latest TB version about four years ago. 47 | This was mainly because I was an XNote++ user myself and was disappointed when it stopped working due to changes in TB internals. 48 |
49 | 50 |51 | And now, again, in version 126 some breaking changes have been made to TB internals, so much so that another rewrite was required to support the latest TB versions. 52 |
53 | 54 |55 | I really hate to ask for donations, but it has come to this. 56 | In all honesty, I'm not sure if I still want to (or can) spend so much time developing this extension. 57 | If this extension brings you any value, please consider sending a donation. 58 |
59 | 60 |61 | To put things into perspective: it took around one month of full-time development to bring this extension up to date yet again. 62 | If all current QNote users donated 1€ (or $1), this could cover the latest rewrite and then some. 63 |
64 | 65 |66 | Thank you to all who have already donated! 67 |
68 | 69 | 74 |Extension to attach notes to emails
17 |