client: Detect legacy CoreInfo, request on show
authorShane Synan <digitalcircuit36939@gmail.com>
Mon, 18 Jun 2018 21:16:37 +0000 (16:16 -0500)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 19 Jun 2018 00:02:15 +0000 (02:02 +0200)
commite375f7a6a6de045735a897ef05bf6dcc82770ff5
tree71658e546ef387bbab6b906eb62d121200519b26
parentdcc541413235e39cc505061950d4aafa89367f98
client: Detect legacy CoreInfo, request on show

Add feature flag 'SyncedCoreInfo' to signify the core supports
signals for the CoreInfo object.

Detect cores without support for 'SyncedCoreInfo', and poll for core
information on every CoreInfoDlg show.  This avoids regressing
functionality for older cores.

Synchronize the CoreInfo object before connecting, ensuring it's
ready to receive parameters on first connect, mimicking backlog
requester.  This avoids a warning about "No registered receiver"
for the CoreInfo handler.

Reset CoreInfo object on disconnect, update CoreInfoDlg with
"Disconnected from core" message.  This reduces confusion about the
state of the core; before, it would simply stop updating.

Remove several nullpointer checks, CoreInfo now should never be null.

Add Client::coreInfoResynchronized() signal for CoreInfo
resynchronization, allowing for periodic updates on legacy cores.
src/client/client.cpp
src/client/client.h
src/common/coreinfo.cpp
src/common/coreinfo.h
src/common/quassel.h
src/qtui/coreinfodlg.cpp
src/qtui/coreinfodlg.h