From 89b42188532a42fb0e2d3dc3837efbec93f06589 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Mon, 6 Jul 2026 13:14:56 +0200 Subject: [PATCH] Handle missing Escargot profile URL --- src/kmess.cpp | 14 +++++++++++++- src/utils/kmessshared.cpp | 11 ++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/kmess.cpp b/src/kmess.cpp index 47c97e4..add634d 100644 --- a/src/kmess.cpp +++ b/src/kmess.cpp @@ -1820,7 +1820,19 @@ void KMess::showUserProfile() } const QString url( currentAccount_->getUrlInformation().value( "PROFILE" ) ); - KMessShared::openBrowser( QUrl::fromUserInput( url, QString(), QUrl::AssumeLocalFile ) ); + QUrl profileUrl; + + if( url.isEmpty() ) + { + kmWarning() << "No profile URL received from the server; opening the NINA account portal instead."; + profileUrl = QUrl( "https://account.nina.chat/login/" ); + } + else + { + profileUrl = QUrl::fromUserInput( url, QString(), QUrl::AssumeLocalFile ); + } + + KMessShared::openBrowser( profileUrl ); } diff --git a/src/utils/kmessshared.cpp b/src/utils/kmessshared.cpp index 73f62c4..47c5f1a 100644 --- a/src/utils/kmessshared.cpp +++ b/src/utils/kmessshared.cpp @@ -785,6 +785,12 @@ QString KMessShared::htmlUnescape( const QString &string ) */ void KMessShared::openBrowser( const QUrl &url ) { + if( url.isEmpty() || ! url.isValid() ) + { + kmWarning() << "Refusing to open invalid URL:" << url; + return; + } + // Open the options KConfigGroup group = KMessConfig::instance()->getGlobalConfig( "General" ); @@ -842,7 +848,10 @@ void KMessShared::openBrowser( const QUrl &url ) #ifdef KMESSDEBUG_SHARED_OPENEXTERNAL kmDebug() << "KDE default browser selected."; #endif - QDesktopServices::openUrl( url ); + if( ! QDesktopServices::openUrl( url ) ) + { + kmWarning() << "Unable to open URL with the desktop services:" << url; + } return; }