3.4.0
—————

Added:
▪ New icons (CC 3.0 BY) inspired by the work of Dave Gandy.
▪ "Cleanup database" action has now configurable shortcut. (issue #90)
▪ Fixed #76, now user can choose to "not show the dialog again" when opening hyperlink from message previewer. This only concerns the lite version of RSS Guard which uses simpler text component for message previewing.

Changed:
▪ (Linux only) Primary user data/config storage is now undex $HOME/.config/RSS Guard. XDG_CONFIG_HOME variable is respected. If old user data is detected, then old user data path is used. Note that the location of cache is now changed too to $XDG_{CACHE,DATA}_HOME/RSS Guard.
▪ RSS Guard now uses "_" character as localization file names separator. (issue #75)
▪ Localizations are now placed in "translations" subfolder instead of "l10n" subfolder. (issue #75)

3.3.8
—————

Fixed:
▪ Percent HTML encoding is now decoded when messages are downloaded. (bug #83)

3.3.6
—————

Added:
▪ User now can place custom user skins in user "data" folder. (issue #81) See "About" dialog for the exact path.
▪ User now can select if DB transactions are enabled or not. (bug #70) By default, DB transactions are now switched OFF, therefore anyone who wants better performance, must turn them ON in app settings.
▪ MySQL database backend now requires at least version 5.5, DB encoding is now changed to utf8mb4 character set. (bug #74)
▪ Height if message attachment image is now configurable, defaults to 36. (issue #69)
▪ All textual contents of all messages are now locally saved in explicit UTF-8 encoding. This is partially because of MySQL backend. We need to keep encoding of data sent to DB and encoding of DB itself in parity.

Changed:
▪ TT-RSS plugin now does NOT require service URL to be entered with "/api/" suffix. In other words, do not use that suffix now, RSS Guard will add it silently when it needs to.

Fixed:
▪ Fixed problem with strings in core being rendered untranslated. (bug #60)
▪ Fixed problem with feed updates progress bar flickering. (bug #73)
▪ Partially fixed problem with incorrect number of downloaded messages being reported. (bug #70)

3.3.5
—————

Added:
▪ Qt "styles" are now configurable via settings and not hardcoded in "skin" files. Default "style" is now "Fusion" and can be changed to anything else in settings.

Changed:
▪ Made some tweaks regarding bug #41. Number of new messages is now determined in feed downloader working thread too.

Fixed:
▪ Fixed problem with updating states of messages in Nextcloud. Remove and re-add your account to fix the problem!! (bug #59)

3.3.4
—————

Added:
▪ Development builds are now automatically compiled for Windows and Mac OS X. See https://github.com/martinrotter/rssguard/tree/build-artifacts for links and more information.
▪ RSS Guard now can be compiled WITHOUT QtWebEngine module. Minimal Qt required was also lowered to 5.6.0.

Changed:
▪ Obtaining feed metadata including icons is now improved a bit.
▪ Big application core refactoring. Many functions rewritten, some bad code removed.

Fixed:
▪ RSS Guard could not stop ongoing feed updates. (bug #52)
▪ RSS Guard was not launchable in Windows XP. (bug #53)
▪ RSS Guard crashed when switching msg status during feed updates. (bug #41)

3.3.3
—————

Added:
▪ Message viewer now displays thumbnails of image message attachments. (issue #39)
▪ Application settings is now divided into separate components on source code level.
▪ Application settings now offers "Apply" button which saves settings without closing the dialog. (issue #16)

Fixed:
▪ Correct message is now selected after some feed gets updated. Multi-selection is not maintained, only focused ("current") message selection is. (bug #46)
▪ RSS Guard correctly saves windows size/position when maximized on exit. (bug #45)

Changed:
▪ Focused message is now displayed in previewer when multiple messages are selected. This is related to bug #46.
▪ MariaDB binary DLL file updated to 10.1.16 (Windows only).

3.3.2
—————

Changed:
▪ Feed updating/message downloading logic is now a bit simpler. Message downloading is still parallelized but final storing into DB is not. It is now queued. This slows down the proces only a bit, but gives more reliability.

Fixed:
▪ Fixed problems with obtaining custom ID for downloaded messages in TT-RSS plugin. This caused probably a lot of problems with mismatch of downloaded/real unread messages counts.
▪ Fixed some typos.
▪ Fixed some UI stuff in menus etc.
▪ Fixed problem with skin loading. (bug #25)

You can see more verbose list of fixed stuff here: https://github.com/martinrotter/rssguard/milestone/2?closed=1

3.3.1
—————

Changed:
▪ Changed couple of icons. (bug #12)
▪ Changed codes of localizations and localizations loading. (bug #19)

Fixed:
▪ Fixed problematic message reselection when filtering messages.
▪ Fixed problem when updating 0 feeds - GUI lockup.
▪ Fixed minimum allowed length of category/feed titles. (bug #17)

3.3.0
—————

Added:
▪ Internal message viewer is now based on QtWebEngine module which is based on Chromium project. This speeds up viewing of messages and supports newest HTML 5 or CSS 3 features. Note that this does not mean that fully featured internal web browser will come back. It will not! Only SIMPLIFIED internal web browser is now added. New message viewer is also better for viewing messages in newspaper mode.
▪ Default skin now uses Bootrstrap-powered look.
▪ Feed updates are now parallelized up to infinite number of threads. This speeds up speed of concurrent feed updates rapidly (more than 5 times). I was able to update about 160 feeds in 35 seconds. Note that this feature is still in experimental state.
▪ Middle mouse button click on any message in message list opens message in internal web browser, double click in external web browser.
▪ Any middle mouse button click on hyperlink opens it in new internal web browser tab.

Changed:
▪ Minimal Qt version bumped to 5.7.0 - this will lead to some betere features in the future.
▪ Updated miscellaneous libraries - MariadDB, openSSL (Windows only).
▪ Main menu is by default hidden, tab bar is now always visible. Main menu is now accessible via left/top corner iconified button. Users can of course tweak settings in Tools -> Options -> User interface.

Removed:
▪ All skins except default are removed because it is difficult for me to maintain all of them. Any user can pickup removed skin from repository, tweak it (it is easy) and send it to me and I will include it with next version of RSS Guard.
▪ Cmake dependency completely removed!
▪ Completely abandoned support for self-updating via NSIS installers. Now, RSS Guard is distributed only via ZIP archives on Windows. User still can download them in RSS Guard.

Fixed:
▪ Removed "Restart" functionality, it was buggy and was causing a lot of internal problems, primarily with storing settings.
▪ OPML exporter now generates valid XML with all xmlns correctly filled.

3.2.4
—————

Fixed:
▪ Auto-update interval/type is now persistent across sync-in for TT-RSS/ownCloud.

3.2.3
—————

Changed:
▪ Some minor tweaks for default icon theme loading.


3.2.2
—————

Added:
▪ RSS Guard now supports system-wide icon themes and on Windows -> built-in Faenza theme was tweaked.
▪ ownCloud plugin now allows to add feeds and rename feeds.

Fixed:
▪ Some minor buggies and code mistakes.
▪ Fixed problem with message counts.

3.2.1
—————

Added:
▪ Internal message previewer now introduces list of images contained in message contents of displayed message.

Fixed:
▪ Changes in count of all/unread messages are now faster. This results in (much) faster program startup when using BIG database file.

Changed:
▪ Internal message viewer now displays title as part of main HTML view.

3.2.0
—————

Main:
▪ Internal web browser was REMOVED. This is because old Qt WebKit web component will be removed from Qt and new Qt component for web viewing is based on Chromium, which is fucking joke. Some people hate Chromium because of many (technocal, philosophical, etical) reasons. Moreover, it lacks some useful features and is memory hungry. It is also very buggy in Qt now. Therefore now internal web browser is gone. Message preview component now uses much lighter solution and still can display certain HTML subset. RSS Guard was tweaked to be more friendly to external web browser. Double-clicking any message results in it being opened via external web browser.
▪ PLEASE, fill this survey: http://goo.gl/forms/ASWg4TFxlS
▪ RSS Guard now depends only Qt 5.6 or higher.

Added:
▪ ownCloud plugin now can delete feeds and edit auto-update policy of feeds.
▪ Global auto-update feed interval spinbox now has better format. (issue #176)
▪ Message preview's font is now fully adjustable in settings. (issue #177)
▪ RSS Guard now automatically switches to SQLite backend if MySQL is not available on program startup.
▪ Newspaper view now allows marking individual messages read/unread/starred/unstarred.
▪ Added experimental support for tweakable statusbar. (issue #158)
▪ Opening of download manager when new file download starts is now optional. (issue #165)

Fixed:
▪ Download manager now correctly displays download progress/info.
▪ Better detection of MySQL server status. (bug #169)
▪ Ordering of messages is now done on SQL server (stands for both MySQL and SQLite). (bug #172)
▪ Now title of the RSS/ATOM message is taken into account when deciding message "uniqueness". (bug #171)
▪ MySQL scripts improved. (bug #170)
▪ Fixed little problem with feed list hiding. (bug #163)

Changed:
▪ Better performance when recalculating counts of all/unread messages in categories with many feeds.
▪ Custom notification popup window is now removed, it was buggy on Windows 10. Windows 10 offers good built-in alternative. On Linux, we rely on D-Bus notifications.

3.1.0
—————

Added:
▪ NEW ACCOUNT PLUGIN: OwnCloud News API 1.2 is now supported. Note that the support in this version is experimental and relatively basic. So far only syncing of feeds/messages is supported. Feed/category adding/removing is not yet supported yet. The OwnCloud plugin will be enhanced in future RSS Guard versions.
▪ Recycle bins now have context menu. (issue #162)
▪ User is now able to delete TT-RSS feeds. (issue #151)
▪ Added ability to stop running batch feed update. (issue #157)

Fixed:
▪ Some other minor fixes.
▪ Feed list hidden when respective menu item is unchecked. (bug #163)
▪ Standard RSS/RDF/ATOM relative URLs in entries should now be correctly loaded. (bug #160)
▪ Fixed some problems when adding feeds from external web browser like Firefox. (bug #135)
▪ Fixed problem where custom HTTP timeout setting was ignored for TT-RSS account. (GitHub bug #9)
▪ Fixed problems with master update mutex locking. (bug #153)
▪ Fixed some problems: "Add category to selected account" was enabled when it shouldn't be.
▪ ♥ Auto-updating of feeds fixed (again?!). ♥
▪ Fixed problem with adding feeds in TT-RSS accounts. (bug #154)

Changed:
▪ Increased max feed network download timeout to 45 s.
▪ Adjusted behavior of Google suggestions when no suggestions are available for give text.
▪ Adjusted sorting, particularly in message list.
▪ Tweaked "remove duplicates" policy.
▪ TT-RSS plugin can now restore messages from local recycle bin.

3.0.2
—————

Added:
▪ Import of OPML/TXT files now allows to fetch feed metadata from online feed source.
▪ Added generic "Add new feed" action, which can be accessed via "Feeds & messages" menu. (issue #146)
▪ User can now specify destination root node when importing feeds. (issue #147)
▪ Added support for import/export to/from plain TXT file (one feed URL per line). (issue #142)
▪ Optimized menu items in "Add new item" submenu. Added two new bindable actions for adding feeds & categories. (issues #146 and #148)

Changed:
▪ Some GUI refinements and fixes.
▪ Added more logging entries.
▪ "Clean all items" now does not clean messages from recycle bins.

Fixed:
▪ Left over messages are now correctly deleted after sync-in is performed in TT-RSS account.
▪ Made some rather big changes to sorting/filtering of feeds, which is now dynamic.
▪ Feeds are now (re)sorted when batch update finishes. (bug #150)
▪ Expand status if items in feed list are now persistent when performing sync-in of TT-RSS accounts. (bug #149)
▪ Fixed problem with importing invalid OPML 2.0 files. (bug #145)
▪ Fixed error in SQL initialization script which led to problems with in-memory SQLite DBs. (bug #140)
▪ Fixed problem with saving sort column/order for message list. (bug #141)
▪ Fixed problem with reloading feeds with newly downloaded messages when read-only-visible feeds filter is activated. (bug #139)

3.0.1
—————

Added:
▪ Background color of notifications is now changeable. (issue #134)
▪ Auto-update setting of individual Tiny Tiny RSS feeds can now be changed.
▪ RSS Guard is now useable as external RSS reader by common web browsers like Firefox etc. (issue #135)
▪ Tiny Tiny RSS plugin now supports adding of new feeds.
▪ Activated accounts are now integrated into built-in web browser "add feed from website" feature.

Fixed:
▪ Problem with adding/editing TT-RSS accounts. (bug #137)

3.0.0
—————

Added:
▪ Brand new Tiny Tiny RSS plugin.
▪ Brand new "service plugin system" - HIGHLY EXPERIMENTAL and REWRITTEN from scratch. Expect bugs and misunderstandings now! Major parts of RSS Guard were completely rewritten. Note that some functionality might be TEMPORARILY removed.
▪ Added ability to completely disable notifications (bug #128).
▪ Added ability to hide status bar.
▪ Added ability to go to next unread message. (partially bug #112)

Fixed:
▪ Tiny Tiny RSS plugin now supports HTTP authentication (Basic, NTLM, Digest). (bug #132)
▪ Fixed bug with updating feed. (bug #131)
▪ Solved problem when user selects HUGE number of individual messages and marks them read/unread. Reselecting them after change may cause RSS Guard to hang.
▪ Better info in popup notification when many feeds are updated.
▪ Fixed obtaining of contents in RSS 2.0 feed entries. (bug #130)
▪ Improved popup informing about changes in newly installed version.
▪ Icons in notification popups are now smaller (22 x 22 pixels).
▪ Encoding selection widget in feed add/edit dialog now detects encodings via case insensitive string matching.
▪ When removing download item from download manager via DELETE key, then "Cleanup" button is correctly disabled.

2.5.2
—————

Added:
▪ Added experimental support for fetching metadata for individual feeds via feed context menu. (issue #118)
▪ "Show unread feeds only" is now persistent between application sessions. GUI of this feature will be worked on in upcoming releases. (issue #119)

Fixed:
▪ Fixed crash when adding Adblock subscription.
▪ Custom external web browser now correctly opens URLs on some operating systems. This seemed to primarily affect Linux distributions. (bug #123)
▪ Categories are now not expanded when selected using "Go to next/previous item" in feeds list. (bug #122)
▪ Added action to expand/collapse currently selected item in feeds list. (enhancement #121)

2.5.1
—————

Added:
▪ Key used for proxy/feed password coding is now stored in separate file. This file lies in the same directory as configuration file. If your use password-protected proxy/feeds, then make sure that NOBODY gets access to that file and your DB file in the same time.
▪ Notifications on Linux now support D-Bus "org.freedesktop.Notifications" service. User must have enabled "modern & fancy notifications" for this to work. If D-Bus service is not available, then feature falls back to RSS Guard custom popup notifications.

Fixed:
▪ Size of downloaded website artifacts is now not hidden by progress bar.
▪ Auto-updating of feeds fixed, error was due to master mutex double locking. (issue #117)
▪ Fixed some memory leaks which might appear when adding/editing categories/feeds.

2.5.0
—————

Added:
▪ Implemented ability to display ONLY FEEDS WITH SOME UNREAD MESSAGES. This behavior can be controlled by action in menu 'Feeds -> Show only unread feeds/categories' (issue #52). Behavior is this:

    ▪ User selects some feeds with unread messages, reads them all.
    ▪ User switches to another feed.
    ▪ Previously selected feed (now has no unread messages) is now hidden.
    
    Note that this feature also works when you e.g. mark message(s) as read/unread or when you restore some messages from recycle bin. Also when feeds are updated, then filter is invalidated.

▪ Password in feeds & proxy & MySQL are now saved in encrypted form. This means that all passwords from RSS Guard older than 2.5.0 are lost!!! Set your passwords again. Used encryption scheme is meant to only make sure that passwords are not stored in DB/settings in plain form. It is not meant to protect your passwords in any broader way. Attacker can exploit your passwords if he really wants.
▪ Fancy & modern popup notifications (turned on by default).
▪ Enhanced information in download manager.
Added ability to change font for internal message viewer.
▪ Updated URLs of some Adblock subscriptions.
▪ (Windows only) Updated bundled Qt runtime to versions 4.8.7/5.5.0. Pre-builded binaries use Qt 5. Although this results in larger installation files, this is good for future, because Qt 5 is newer and has better support.

Fixed:
▪ Adblock subscriptions starting with faulty " [Adblock..."] are now correctly loaded.

2.4.2
—————

Fixed:
▪ Browse button in 'Downloads' section of settings is now correctly disabled when needed.
▪ Icon cache is now automatically cleared after most of application is loaded. This should save some memory.

2.4.1
—————

Added:
▪ Experimental support for lighter version of Adblock component. It is configurable via status bar icon in bottom-right corner of main application window. It supports Adblock Plus filters. It is disabled by default. DO NOT user Adblock component if you wish to have LOW memory footprint or use very limited set of rules. Big set of rules makes RSS Guard more RAM hungry. (issue #7)
▪ Unavailable actions in menus are automatically disabled when such a situation arises. (issue #28)
▪ Added support for Google auto-suggest API. Just type your phrase in internal web browser location text box and Google will help you out.

Fixed:
▪ Source code now uses QStringLiteral/QLatin1String class for character literals.
▪ Internal message previewer is now cleared only once when switching feeds.
▪ Database cleanup tools now do support "shrinking" in in-memory databases, althouth it is bit hacky.
▪ Google suggest API now prevents completion if ENTER in address textbox is hit.
▪ Double-clickin on message now results in opening source article in mini web browser.

2.4.0
—————

Added:
▪ Initial support for databse cleaning. See menu 'Tools -> Cleanup database'. (issue #101)
▪ RSS Guard is now able to export/import feed/category icons to/from OPML 2.0 files.
▪ Localizations now load their titles for localization list automatically.
▪ All feeds are by default checked when exporting/importing them.
▪ Message previewer now displays MIME type of all podcasts too. This MIME type is also stored in DB.
▪ Ability to fetch only new icon for feed from its online source.
▪ Message view now automatically scrolls to selected message when changing filter string.
▪ Some small memory footprint enhancements.
▪ Option to search highlighted text in web browser via Google, available from context menu. (issue #72)

Fixed:
▪ Marking feed(s) unread now correctly marks also selected message unread.
▪ Threads for feed updating are created only when really needed.
▪ Reworked DB initialization scripts which allow to use OPML to do initial feed population.
▪ Titles and descriptions of feeds are now fetched correctly in feed add/edit dialog.

2.3.1
—————

Added:
▪ Danish localization.

Fixed:
▪ Enhanced downloading of feed icons. Now combines Google API along with the actual links obtained from feed XMLs.
▪ Fixed restarting issues. (issue #109)
▪ Target directory settings is now used for all kinds of downloading + when prompt for each download destination is set, then previously used folder is saved. (issue #108)
▪ Fixed solarized skin. (issue #111)
▪ Keyboard shorcuts and toolbar editors now have alphabetically sorted actions. Toolbar editor switched from drag/drop to buttons. You can use CTRL+UP/DOWN arrow to move buttons in toolbar editor or double-click them to add/remove them. (issue #110)
▪ New constructs on source code level.
▪ Many minor fixes, mainly code cleanup and refactoring.

2.3.0
—————

Fixed:
▪ Some MySQL-related fixes.

Added:
▪ User now can specify MySQL target database by name. (issue #107)
▪ Automatic detection of feeds on websites. User loads website and can add feeds via custom web browser toolbar button. (issue #47)
▪ Better format for logged messages. Logging to file is possible via "rssguard 2> log.txt" command.
▪ Full support for podcasts (issue #81). Supports RSS 2.0 podcasts and ATOM 1.0 podcasts. In ATOM, RSS Guard is able to fetch multiple podcasts per message. Podcasts are displayed as additional URL addresses in message preview panel.

2.2.0
—————

Fixed:
▪ Fixed issue #53 - removing of duplicate messages. Feature is available globally in "Settings -> Messages".
▪ Fixed issue #100 - saving HTML web pages.
▪ Fixed issues #106, #65.

Added:
▪ Completely new downloader (see menu Tools -> Downloads) forked from original Qt examples.

Changed:
▪ Updater now displays full changelog.

2.1.0
—————

Fixed:
▪ Fixed bug #105, #103.

Added:
▪ Embedded web browser supports printing of its contents, feature is accessible via web browser context menu.
▪ Embedded web browser now displays navigation toolbar even in message preview mode/newspaper mode when user loads external links.

2.0.0.4
———————

Fixed:
▪ Database is now correctly restored when using SQLite memory databases.
▪ When items are deleted from recycle bin then they are kept in DB and marked as "permanently deleted" (bug #95).'

Added:
▪ Layout orientation of message list/viewer is now changeable via "View" menu (bug report #98).
▪ Sort order/column in message list is now persistent (bug #97).
▪ Inline searching in feed/message list is now case insensitive and more polished (bug report #84).
▪ Items in feed list (categories and feeds) now can be re-arranged via drag-drop functionality (issue report #91).
▪ Tray icon now displays blue number of unread messages if any of those messages is newly downloaded from online feed (enhancement #87).
▪ Fixed issue request #95: items are now permanently hidden (not deleted from database) when "deleted" from recycle bin.
▪ Issue request #95: moreover custom incremental ability to update database schema was added to keep RSS Guard 2.0.0.4+ fully compatible with previous releases. Incremental algorithm supports both database backends.

2.0.0.3
———————

Fixed:
▪ Fixed #76, #75, #82, #79, #85 #78, #92, #93.

Added:
▪ Settings/database can now experimentally be exported/imported.
▪ Added Swedish localization (thanks to Åke Engelbrektson).
▪ Parent item is now selected when adding new category/feed with that parent pre-selected in feed view.
▪ Message date/time format is now changeable.

2.0.0.2
———————

Fixed:
▪ Fully portable settings is now used as default if non portable settings does not exist yet.
▪ List of actions in toolbar editor now does not allow copying of items.
▪ Keyboard search for message list should now work with Qt 4.
▪ Overall code cleanups and refactoring primarily in area of feed/message models and recycle bin functionality.
▪ Fixed bugs #66, #67, #69, #64, #48.
▪ Blau skin now has colored webkit scrollbars, fixed some button widths and enhanced menu popup tool buttons.

Added:
▪ Application can now be safely restarted from within main menu.
▪ HTTP request for feed files now contains special "Accept" header.
▪ Recycle bin with ability to trash or restore the whole bin or individual messages.
▪ MySQL backend now allows to defragment/optimize RSS Guard database.
▪ Three new skins, including solarized skin. Vergilius improved.

Changed:
▪ File downloader now resolves "feed://" URI scheme to "http://" URI scheme.
▪ Target message is now selected instead of highlighted when searching with keyboard.

2.0.0.1
———————

Fixed:
▪ Some visual tweaking.
▪ URL redirection now works with relative redirecting addresses.
▪ Messages are now sorted using active locale.
▪ Fixed bug #49 and duplicate feed/category detection.
▪ Experimentally fixed bug #50.
▪ NSIS installer is now portable. It makes only ONE access to registry and you can use it to install RSS Guard to any location such as USB flash drives.

Added:
▪ RSS Guard now accepts donations, see "Help" menu for more information.
▪ Tray icon tooltips now displays number of unread messages if there is at least one unread message.
▪ Re-introduced "blau" (dark) skin.
▪ Import/export dialog now offers "Check/uncheck all items" button.

Changed:
▪ Selection in feed list is now single.
▪ Keyboard navigation to "next/previous" item in feed list is now recursively hybrid.

2.0.0.0
———————

Fixed:
▪ Improved behavior of updater. Switched to NSIS installers.
▪ Adjusted OS/2 icon handling.
▪ Toolbars tweaked.
▪ Source code huge refactorings.
▪ Flag icons are now separated into their own directory.
▪ File downloaders are now thinner.
▪ GUI tweaked.
▪ Database connections are only used when really needed.

Added:
▪ Added NSIS-based "portable" installer for Windows and restructured update process.
▪ Added experimental support for exporting and importing feeds to/from OPML 2.0.
▪ Feeds now change their color to red if their network status reports error - feed is not reachable or was moved or is unavailable due to other errors.

Changed:
▪ Added newly-compiled SQL libraries - MariaDB, Postgre SQL.
▪ Updated bundled OpenSSL libraries for Windows portable version.
