Up to Scribe...
- Fixed incorrect display after re-ordering folder columns with drag and drop.
- Fixed moving mail from mail3 to IMAP not removing the old email.
- Fixed mail item context menus that allow adding filters to understand multi-mailstore folders.
- Fixed the duplicate removal script not working with email from different back ends. Sometimes the message-ID has '<>' wrapping it, sometimes not. Updated the scripting docs to include String.Strip.
- Fixed OAUTH2 constantly failing after the token expired for an SMTP connect. Now on authentication failure it refreshes the token so that the next attempt can succeed. (ie if the send fails with 'auth error' just try again, you'll get the webpage show up to re-auth but it doesn't get stuck).
- Fixed a crash when reading email with a remote IFRAME in the HTML. I decided that I won't actually load and display the IFRAME if it's remote. I feel that's a bit of a security issue. But happy to discuss and change my mind if needed.
- Re-implemented the custom contact fields as list box of field/value pairs. The delete key removed the current selection. Double click the edit a cell. Also fully supported in scripts.
- Contact time zone drop down initializes to the same value as the edit box.
- Added scripting function LookupContact(email).
- Windows: Fixed the "check for software update" occasionally corrupting the download. Thou shall not check the file pointer from a different thread. The M$ monkeys use the same non-thread safe function for setting the file pointer as getting it. What could go wrong? The temp file location for the software download is also now in the %tmp%\Scribe rather than just %tmp%.
- Fixed moving contacts between mail3 stores.
- Extended the lookup of contacts, groups, calendar events and filters to include all loaded mail3 folders. At the moment I don't try and do anything smart about the filter indexes, if there are multiple folders of filters they will share indexes and potentially exhibit undefined behavior if the index matters.
- Fixed the calendar shortcut buttons in the mail window not showing up.
- Improved multi-term item searches. The default operator is now AND rather than OR. Also quote strings to use multi-word terms.
- Added buttons to the mail window to add calendar event attachments directly to the calendar. Before you had to double click the attachment, and then save. There is a second button that will populate the event with a popup reminder 10 minutes before. It also checks that the event doesn't already exist, to avoid duplicates.
- Mac: Stopped the save mail dialog coming up in the mail window when you press '5'.
- Fixed a crash in the GnuPG code if you had a key loading into gpg without an associated email address.
- Some threading and uninitialized variable fixes. (No known symptoms)
- Fixed a hang when emptying the trash with folders in it.
- Implemented better handling of missing system paths (that include mail store prefixes). Instead of blindly creating them errors are reported to the user with the option of correcting the paths.
- Fixed calendar event searches comparing UTC and local times, and thus getting marginally wrong results. This could be seen in the index page where no events would show in the calendar summary, depending on how near future they were and what your current time zone is.
- Linux: bundled static versions of libjpeg, png and zlib to avoid image library issues on different systems.
- Added the Calendar's notes to the body of any reminder email.
- Added the Calendar's guests to the recipients of any reminder email. It will only add the recipient once, as a hash table is used to weed out duplicates.
- Made the OAUTH2 code shutdown cleanly (in the IMAP context) if there is a problem with listening on the localhost socket. Thanks Firefox for listening on my port you dufus.
- Limited the OAUTH2 server listen attempt loop to 1 minute. At that point there is no point continuing. This is work around the mac holding onto the port after the process has exited for up to 30 seconds.
- Fixed OAUTH2 linux issues, the URL passed to the default browser wasn't escaped to Firefox's liking. Can now log in to Gmail properly.
- Calendar events now store guests as JSON instead of comma separated values. This allows arbitrary data to be attached to the records, like the "role" of the guest, or whether they have RSVPd. I also re-implemented support for guests when importing and exporting to vCalendar files.
- Fixed POP3 preview mail on server to list all the email instead of only the first.
- Much improved keyboard handling while editing times and dates in the calendar event window.
- If you make a calendar start date after the end, it'll move the end to 30 minutes after the start to maintain consistency.
- The delete attachments script now works again. Much rewrite. Many bug.
- Root folder node now renders useful Inbox information. The release notes also point to the right page (ie this one).
- Fixed IMAP full connections generating large logs when the connection drops, hanging the application if you click on the receive log view.
- Re-implemented the item filter list to allow filtering on colours and unread status as well as key words.
- Fixed the saving of the layout sizing if you have the item filter open.
- Put more recently used Groups at the top of the 'Add x to group' context menu.
- Fixed the libiconv component install to use the right file name.
- Fixed setting folder permissions. (Requires a DB schema update).
- Mail3 folders remember the expanded state between sessions. However the Inbox of the default folder will be selected if you don't specific a "start in" folder in the mail store settings. (Set the start in to '/' if you want to avoid this). This effectively will expand the mail store with the inbox. But secondary folders will save their expanded state.
- Fixed handling of old options files when the main file is missing. The most recent options file will be renamed to the correct name (it wasn't previously).
- Fixed SMTP not attempting to authenticate when using OAUTH2 and no password.
- Fixed the MIME encoder choosing Base64 for no good reason. Ugh.
- [Linux] Fixed a crash after using the clipboard to copy mail around.
- Fixed an image loading bug in the HTML control. The URI loader was passing back a file stream pointer and the HTML control was expected a loaded image surface. It now knows how to load a file stream into an image surface as well. Also it throws errors onto the console if something is wrong. I hate when it just doesn't work and there is no error to chase up.
- Fixed the 50% height limit on the preview panels mail headers.
- Added code to invalidate the OAUTH2 token after failed login attempt (ie after the access token has timed out).
- Added ability to filter by colour in the find window.
- RichText: Fixed Ctrl+I inserting a tab character. (Possibly windows only?)
- Further refining of inline-block element layout in the HTML viewer.
- Added fix for missing iconv in the HTML parser. Now it falls back to no conversion instead of showing nothing.
- Minor fix for CSS color inheritance. (Will now traverse a TABLE tag)
- Fixes to limit the size of account logs. Otherwise with a lot of output the app locks up processing it all.
- Fixed the IMAP full thread getting stuck using CPU when the connection fails. It now closes the connection and retries.
- [Mac] Fixed the display of rounded corners in the HTML viewer. e.g. use pre-multiplied alpha.
- Fixed one line quoted printable messages not showing up.
- Fixed some recently introduced HTML layout bugs for block "center" and "right" alignment.
- You can now click on the contact's image in the contact window, and Ctrl+V paste from the clipboard. Before it only responded to dropped images or the user browsing for a file.
- Improved date header parsing to support Unix timestamps. Whatevs people whatevs.
- Refactored the OAUTH2 code so it can also be used in the SMTP connector and potentially a Google cal connector as well. At least in the short term Scribe now supports sending using the Gmail SMTP server using OAUTH2. In fact you should select "OAUTH2" as the Authentication type in the Send tab to avoid it trying the non-working "PLAIN" and "LOGIN" types that the gmail server SAYS it supports but doesn't.
- Fixed some layout issues for inline-block elements in the HTML viewer.
- Fixed at least one instance of received email becoming "changed" when opening it.
- Fixed attachments missing their filename sometimes.
- Fixed the preview panel displaying the wrong email's fields when there are emoji in the subject.
- [Mac/Linux] Fixed a text wrapping bug in controls like check box, text label etc.
- Added support for CRAM-MD5 authentication for SMTP.
- Separated out the zlib library into it's own shared object / DLL so that compression only tasks work again.
- Fixed mutex problems in the Tree control that would lead to deadlocks (application hanging).
- [Linux] Fixed high CPU usage when idle.
- Fixed 100% CPU usage bug in the IMAP/SSL code.
- RichText: Fixed the document being corrupted when trying to delete the implyied new line at the end of a block.
- Removed a bunch of old dialogs from the resource file that were no longer used. Making it clearer for translators what is needed.
- Fixed some issues sending plain text email, either blank HTML sections or missing content.
- Fixed the show remote content button on the main app window's preview area and in the mail window itself.
- Fixed some IMAP fetch issues when running over SSL.
- Fixed the windows installer script to use the release (instead of debug) mode build of the aspell library, this accounts for the smaller file size.
- Fixed opening composed email with emoji after saving and closing them. The emoji would be lost on windows (utf16 related bug).
- Fixed copying plain text from the rich text control.
- Fixed the IMAP thread not retrying the connection.
- Some memory leaks fixed.
- Fixed very long lines getting truncated at 1024 bytes in the MIME decoder.
- Fixed folder -> context menu -> new mail saving into the outbox instead of the selected folder.
- Fixed crash deleting unsaved attachments.
- Fixed some combo boxes being too small for their content (see Calendar event window).
- Fixed the resizing of the language selection window on first startup.
- Fixed the tabs in the account options having the wrong grey.
- Mac: Fixed combo box painting bugs.
- Fixed "receive all" accounts not working.
- Scripting: Fixed a return value going to NULL incorrectly.
- Scripting: Fixed a crash in evaluation of expressions.
- Scripting: Added 'BreakPoint' to open the debugger window.
- Scripting: Made language reserved words non-case sensitive again.
- Fixed the portable mode not clearing out old options file versions. Is was doing that fine in "desktop" mode, but I've refactored the code to use the same functionality in both modes.
- Fixed re-saving an HTML email with images creating duplicate jpeg attachments.
- Changed the UI <-> storage layer pointers to be private to enforce relationship rules. This should only be good in the long term but might create instability in the short term.
- Known issue: There is something wrong in the SSL or IMAP fetch code. It seems to lose track of things sometimes. I'm looking into it.
- Fixed crash when attached file to an email.
- Fixed possible POP3 crashes when pressing the disconnect button.
- Fixed the look of the fonts on the tabs in the mail window.
- Gpg: Added an "Install" button next to the message "Gpg is not installed" message that opens the webpage where you can download GnuPG for your system.
Ctrl+ Wshortcut to close the console.
- HTML: inline images now wrap correctly instead of sliding off the right edge and/or being the wrong size.
- Linux: Fixed all the menu items with icons not having a shortcut.
- Windows: Implemented the MAPI function MAPISendMailW to support sending a file to a recipient on Windows 10, and possibly other versions and applications.
- Fixed some IMAP mail date issues. If you have email with dates like "0/0/2000" then right click on the folder (while online) and "Refresh" will fix it.
- The executable attachment checking is now more robust. Will now detect ARM and x64 PE binaries.
- Improved dragging calendar events in the calendar's month and year views.
- Calendar events now display correctly when their timezone is set. This stops them showing at the wrong time when the current timezone is different to the timezone saved in the event.
- Extended the number of backup options files to 7. It will save them in the same folder as the real options file, in the form "ScribeOptions_#.bak". And on startup it scans through them and find the most recent one that parses correctly. It then deletes any old ones so that the backups don't grow out of control.
- Fixed not being able to save the Contact's work webpage.
- Fixed the Contact preview to show all the fields available.
- I have re-implemented a core container class "List
" to use C++ templates properly. This will potentially have a negative impact on stability in the short term. But this branch is still marked unstable anyway. I have been steadily fixing related bugs over the last few weeks. And there is some validation code to catch run-time errors. This is the primary reason I haven't made a release just yet.
- Re-implemented the text layout algorithm in the text edit control to by more efficient. It was asking the OS too often for the size of various strings. This is a fairly major change and I hope not to break anything. It's especially obvious in Linux when the measurement of strings takes longer than windows.
- Changed the console logging to keep 'Scribe.txt' open between writes. This is because on some Windows systems closing a file can take up to 100ms due to the anti-virus getting involved. Which just kills performance.
- Added App.MailStorePaths DOM field to return the folder paths of the mail stores as an array.
- Added App.RootFolders DOM field to return the root folder paths of all the mail stores and IMAP full accounts.
- Fixed parsing badly formed HTML attributes (they would leak into the displayed text).
- Fixed being able to unset the "Start In" folder in the manage mail stores dialog.
- [RichText] Simplified the threading model to deal with bugs resizing and compressing images.
- [RichText] Fixed pasting multiple images that need compression into the control.
- [RichText] Optimized the auto spell check to work with large blocks of text and update quickly. No more slow updates scrolling along as you type.
- [Mac] Fixed tje download the OpenSSL libraries. But I'm moving to just include the right libs in the initial install anyway.
- Improved the decoding of mail with 8bit text in headers where no charset or Rfc2047 encoding is supplied, but a language is available (in the 'Content-Language' header). It will convert the text from the language's default charset to unicode.
- Fixed the HTML table layout to use the right font style for table layout metrics (it was using the ctrl's default font). This was easily visible in the email preview header where the subject line would wrap for no good reason.
- [Mac] Made the tab view control have the native look. And rolled out that look to the other platforms because I think it looks nicer than the WinXP style it was using before.
- Started adding support for HTML copy/paste in the rich text edit control. (Don't expect much... it's very rough)
- Fixed POP3 accounts getting stuck in a connect->fail loop. It was supposed to try APOP and fall back to USER/PASS on error, but the implementation was bad.
- Fixed some account logging display issues.
- Fixed some (all?) of the crashes that happen when click the "disconnect" button in the account status window. Esp with SSL connections which were notoriously flaky when trying to disconnect. They now should be a lot more robust.