This file contains tasks that need to be done for future versions of Xestia Address Book. - Split big C++ files down into smaller files to make the project more manageable. - vcard/vcard34conv.cpp (6,017 lines) - frmMain.cpp (2,823 lines) - frmContactEditor-Save.cpp (2,304 lines) - frmActivityMgr.cpp (1,627 lines) - common/getcontactinfo.cpp (1,710 lines) - Implement unit testing for main features. - vCard - Investigate possibility of replacing use of vCard object with ContactDataObject. - Add support for other file formats when importing and exporting (and configure setting). - OpenDocument Spreadsheet Format (ODS) (--enable-ods) - OpenDocument Database Format (ODB) (--enable-odb) - XLS format (--enable-xls) - Add support for managing other user's address books if the user has been granted permission to do it (indicate this via a different icon). Also display associated groups with it. - Add tab within account settings to display which address books the user wants. - Add support for using the data within other applications (email clients for example). - Do a detailed check that CardDAV support between the other popular address book client is working and no data loss or data duplication occurs. - Check when changing servers when updating account settings: - If the server being switched to is empty, ask if the contacts stored locally should be uploaded. - If the server being switched to isn't empty, ask if the server contents should be kept, the local contents should be kept or merge the contacts. - After importing, check that the imported contacts are added to the server properly. - Add support for adding the picture with the highest priority to the icon for the contact editor. - Add icons (within the contact editor and search) to make the application stand out better. - Move the saving data process in frmContactEditor to ContactDataObject. This process will also need to be refactored so less code is used. - Investigate issues with vCard 3<->4 conversion as some values appear to be missing (add unit tests). - Take syncronisation code out of frmActivityMgr, place into a new "framework" and make it easily to test against through the unit testing application. - Implement the quit application function properly. - Replace the code for getting SSL information for Linux systems with data from the SSL context object as done with Win32 and macOS.