X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreinfodlg.cpp;h=47ab75890f0cc60091999557db1a609023851d43;hp=063e7a433ff896f3f3fe7d5ab30936f7700e53b1;hb=54ebc1bf00f4f9a8376629925329f0e72be04662;hpb=e375f7a6a6de045735a897ef05bf6dcc82770ff5 diff --git a/src/qtui/coreinfodlg.cpp b/src/qtui/coreinfodlg.cpp index 063e7a43..47ab7589 100644 --- a/src/qtui/coreinfodlg.cpp +++ b/src/qtui/coreinfodlg.cpp @@ -25,6 +25,7 @@ #include "bufferwidget.h" #include "client.h" #include "icon.h" +#include "util.h" CoreInfoDlg::CoreInfoDlg(QWidget *parent) : QDialog(parent) { ui.setupUi(this); @@ -35,7 +36,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 +49,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 @@ -79,7 +95,14 @@ void CoreInfoDlg::coreInfoChanged(const QVariantMap &coreInfo) { } else { ui.labelCoreVersion->setText(coreInfo["quasselVersion"].toString()); // "BuildDate" for compatibility - ui.labelCoreVersionDate->setText(coreInfo["quasselBuildDate"].toString()); + if (coreInfo["quasselBuildDate"].toString().isEmpty()) { + ui.labelCoreVersionDate->setText(QString("%1").arg(tr("Unknown date"))); + } + else { + ui.labelCoreVersionDate->setText( + tryFormatUnixEpoch(coreInfo["quasselBuildDate"].toString(), + Qt::DateFormat::DefaultLocaleShortDate)); + } ui.labelClientCount->setNum(coreInfo["sessionConnectedClients"].toInt()); } @@ -152,7 +175,8 @@ void CoreInfoDlg::updateUptime() { .arg(uphours, 2, 10, QChar('0')) .arg(upmins, 2, 10, QChar('0')) .arg(uptime, 2, 10, QChar('0')) - .arg(startTime.toLocalTime().toString(Qt::TextDate)); + .arg(startTime.toLocalTime() + .toString(Qt::DefaultLocaleShortDate)); ui.labelUptime->setText(uptimeText); } }