6565#include < QApplication>
6666#include < QtUiTools/quiloader.h>
6767#include < QDesktopServices>
68+ #include < QDir>
6869#include < QFile>
6970#include < QFileDialog>
7071#include < QJsonDocument>
@@ -1384,9 +1385,9 @@ QString mudlet::addProfile(const QString& host, const int port, const QString& l
13841385bool mudlet::mudletIsDefault ()
13851386{
13861387#if defined(Q_OS_WINDOWS)
1387- QSettings settings (qsl (" HKEY_CURRENT_USER\\ Software\\ Classes\\ telnet" ), QSettings::NativeFormat);
1388- QString defaultCommand = settings.value (qsl (" ." ), QString ()).toString ();
1389- return defaultCommand .contains (qApp->applicationFilePath (), Qt::CaseInsensitive);
1388+ QSettings settings (qsl (" HKEY_CURRENT_USER\\ Software\\ Classes\\ telnet\\ shell \\ open \\ command " ), QSettings::NativeFormat);
1389+ QString command = settings.value (qsl (" ." ), QString ()).toString ();
1390+ return command .contains (qApp->applicationFilePath (), Qt::CaseInsensitive);
13901391#elif defined(Q_OS_MACOS)
13911392 // On macOS, check if Mudlet is the default handler for telnet:// URLs
13921393 CFStringRef telnetScheme = CFSTR (" telnet" );
@@ -1396,7 +1397,7 @@ bool mudlet::mudletIsDefault()
13961397 return false ;
13971398 }
13981399
1399- bool isDefault = (coreMacOS::CFStringCompare (defaultHandler, CFSTR (" org.mudlet.Mudlet " ), 0 ) == coreMacOS::kCFCompareEqualTo );
1400+ bool isDefault = (coreMacOS::CFStringCompare (defaultHandler, CFSTR (" org.mudlet.mudlet " ), 0 ) == coreMacOS::kCFCompareEqualTo );
14001401 coreMacOS::CFRelease (defaultHandler);
14011402
14021403 return isDefault;
@@ -1451,8 +1452,10 @@ void mudlet::setMudletAsDefault()
14511452{
14521453#if defined(Q_OS_WINDOWS)
14531454 QSettings settings (qsl (" HKEY_CURRENT_USER\\ Software\\ Classes\\ telnet" ), QSettings::NativeFormat);
1454- settings.setValue (qsl (" ." ), qApp->applicationFilePath ());
1455- settings.setValue (qsl (" shell\\ open\\ command\\ ." ), qApp->applicationFilePath () + qsl (" \" %1\" " ));
1455+ settings.setValue (qsl (" ." ), qsl (" URL:Telnet Protocol" ));
1456+ settings.setValue (qsl (" URL Protocol" ), qsl (" " ));
1457+ QString command = qsl (" \" %1\" \" %2\" " ).arg (QDir::toNativeSeparators (qApp->applicationFilePath ()), qsl (" %1" ));
1458+ settings.setValue (qsl (" shell\\ open\\ command\\ ." ), command);
14561459 QMessageBox::information (this , tr (" Default Client" ), tr (" Mudlet has been set as your default Telnet client." ));
14571460#elif defined(Q_OS_MACOS)
14581461 // On macOS, register Mudlet as the default handler for telnet:// URLs
0 commit comments