Main window keep track centrally of all valid tokens, a Timer coupled
with it's own instance of LibresapiLocalClient refresh periodically
valid tokens, registerToken and isTokenValid are offered to child
components to operate without polling
Main window coreStateCheckTimer is stopped after login
When the server reply to a burst of querys the socket readyRead() signal
may be called only once, thus causing reply not being parsed until
next event, and making the query queue grow with time and the user
interface unusable, to fix this a the end of the read() slot if there
is more data available in the socket read is called again to parse it
LibresapiLocalClient improved debugging that may be configured per
instance in case of debug build
ChatHandler::handleUnreadMsgs(...) deprecate 'id' field
in favour of 'chat_id'
IdentityHandler::handleWildcard(...) reduce sleep time from 500 to 50 ms
IdentityHandler::handleWildcard(...) expose 'is_contact' to JSON API
Split contacts list delegate into GxsIdentityDelegate.qml
Update to QtQuick.Controls 2.0 because 1.4 is not supported anymore and
2.1 is not available yet in Qt 5.7.1
ChatView.qml mark messages as read
Set refreshTimer.triggeredOnStart=true to improve reponsiveness of views
Contacts.qml use a Popup that is available in Controls 2.0 instead of a
castrated Dialog to display full fingerprint
TrustedNodesView.qml check if locations[*].is_online is an array before
attempting calling reduce
main.qml added menuentry to shutdown de core
main.qml added menuantry to search contact
Now a color based representation is showed like an avatar for easier
verification, showing the full id is still possible longpressing the
colored representation
LibresapiLocalClient::request(...) return a meaningful value
ChatView.qml uses a TextField for message input
TrustedNodesView.qml improve aestetic
main.qml use stack based navigation and tool/menubar