From 3d52de047872b6a4198fae58ecf0ff2c499a329b Mon Sep 17 00:00:00 2001 From: alizane Date: Mon, 20 Apr 2026 20:22:14 +0530 Subject: [PATCH] feat: display client IP info when manual IP is configured --- src/lib/gui/MainWindow.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/lib/gui/MainWindow.cpp b/src/lib/gui/MainWindow.cpp index 7d2622a0b..ab467db76 100644 --- a/src/lib/gui/MainWindow.cpp +++ b/src/lib/gui/MainWindow.cpp @@ -524,14 +524,20 @@ void MainWindow::updateModeControls() const auto mode = m_coreProcess.mode(); const bool isServer = mode == Settings::CoreMode::Server; const bool isClient = mode == Settings::CoreMode::Client; + ui->serverOptions->setVisible(isServer); - ui->lblIpAddresses->setVisible(isServer); ui->clientOptions->setVisible(isClient); ui->lblNoMode->setVisible(!isServer && !isClient); toggleCanRunCore(canRunCore()); - if (isServer) { + ui->lblIpAddresses->setVisible( + (isClient && !Settings::value(Settings::Core::Interface).toString().isEmpty()) || isServer + ); + + if (ui->lblIpAddresses->isVisible()) updateNetworkInfo(); + + if (isServer) { m_networkMonitor->startMonitoring(); } else { m_networkMonitor->stopMonitoring(); @@ -587,7 +593,15 @@ void MainWindow::updateSecurityIcon(bool visible) void MainWindow::updateNetworkInfo() { - updateIpLabel(NetworkMonitor::validAddresses()); + const auto mode = m_coreProcess.mode(); + if (mode == CoreMode::None) { + return; + } + + if (mode == CoreMode::Server) + updateIpLabel(NetworkMonitor::validAddresses()); + else + updateIpLabel({Settings::value(Settings::Core::Interface).toString()}); } void MainWindow::serverConnectionConfigureClient(const QString &clientName) @@ -1215,7 +1229,8 @@ void MainWindow::remoteHostChanged(const QString &newRemoteHost) void MainWindow::updateIpLabel(const QStringList &addresses) { - if (m_coreProcess.mode() != CoreMode::Server) { + const auto mode = m_coreProcess.mode(); + if (mode == CoreMode::None) { return; } @@ -1232,7 +1247,6 @@ void MainWindow::updateIpLabel(const QStringList &addresses) QString labelText = fixedIP ? tr("Using IP: ") : tr("Suggested IP: "); QString toolTipText = tr("

If connecting via the hostname fails, try %1

"); - // Get all available IPs for tooltip const bool filterIpList = (serverStarted || fixedIP); const QRegularExpression ipListFilter(filterIpList ? QStringLiteral("(%1)").arg(m_serverStartIPs.join("|")) : ""); const QStringList ipList = addresses.filter(ipListFilter); @@ -1257,7 +1271,7 @@ void MainWindow::updateIpLabel(const QStringList &addresses) } ui->lblIpAddresses->setText(labelText); - ui->lblIpAddresses->setToolTip(toolTipText); + ui->lblIpAddresses->setToolTip(mode == CoreMode::Server ? toolTipText : QString()); } void MainWindow::updateTimeoutDelay(int newDelay)