X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreinfodlg.cpp;fp=src%2Fqtui%2Fcoreinfodlg.cpp;h=d9527358c46c114acf4dfd0a2ac2040ae9f9aa71;hp=063e7a433ff896f3f3fe7d5ab30936f7700e53b1;hb=66082987f41afa5c19d8cfa711f185f9d5fe4bb1;hpb=e375f7a6a6de045735a897ef05bf6dcc82770ff5 diff --git a/src/qtui/coreinfodlg.cpp b/src/qtui/coreinfodlg.cpp index 063e7a43..d9527358 100644 --- a/src/qtui/coreinfodlg.cpp +++ b/src/qtui/coreinfodlg.cpp @@ -35,7 +35,7 @@ CoreInfoDlg::CoreInfoDlg(QWidget *parent) : QDialog(parent) { // Update legacy core info for Quassel cores earlier than 0.13. This does nothing on modern // cores. - Client::refreshLegacyCoreInfo(); + refreshLegacyCoreInfo(); // Display existing core info, set up signal handlers coreInfoResynchronized(); @@ -48,6 +48,21 @@ CoreInfoDlg::CoreInfoDlg(QWidget *parent) : QDialog(parent) { } +void CoreInfoDlg::refreshLegacyCoreInfo() { + if (!Client::isConnected() || Client::isCoreFeatureEnabled(Quassel::Feature::SyncedCoreInfo)) { + // If we're not connected, or the core supports SyncedCoreInfo (0.13+), bail out + return; + } + + // Request legacy (pre-0.13) CoreInfo object to be resynchronized (does nothing on modern cores) + Client::refreshLegacyCoreInfo(); + + // On legacy cores, CoreInfo data does not send signals. Periodically poll for information. + // 15 seconds seems like a reasonable trade-off as this only happens while the dialog is open. + QTimer::singleShot(15 * 1000, this, SLOT(refreshLegacyCoreInfo())); +} + + void CoreInfoDlg::coreInfoResynchronized() { // CoreInfo object has been recreated, or this is the first time the dialog's been shown