diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -32,7 +32,9 @@ REQUIRED_HEADERS SonnetCore_HEADERS ) -target_link_libraries(KF5SonnetCore PUBLIC Qt5::Core) +target_link_libraries(KF5SonnetCore + PUBLIC Qt5::Core + PUBLIC Qt5::Widgets) set_target_properties(KF5SonnetCore PROPERTIES VERSION ${SONNET_VERSION_STRING} SOVERSION ${SONNET_SOVERSION} @@ -63,6 +65,8 @@ ${SonnetCore_HEADERS} LINK_QCHS Qt5Core_QCH + Qt5Gui_QCH + Qt5Widgets_QCH BLANK_MACROS SONNETCORE_EXPORT SONNETCORE_DEPRECATED_EXPORT diff --git a/src/core/loader.cpp b/src/core/loader.cpp --- a/src/core/loader.cpp +++ b/src/core/loader.cpp @@ -30,6 +30,7 @@ #include #include "core_debug.h" #include +#include #include @@ -86,14 +87,29 @@ QString backend = clientName; QString plang = language; + const QString &defaultLang = d->settings->defaultLanguage(); if (plang.isEmpty()) { - plang = d->settings->defaultLanguage(); + plang = defaultLang; } const QVector lClients = d->languageClients[plang]; if (lClients.isEmpty()) { - qCWarning(SONNET_LOG_CORE) << "No language dictionaries for the language:" << plang; - return nullptr; + if (plang == defaultLang) { + const QString localeLang = QLocale::system().name(); + if (d->settings->setDefaultLanguage(localeLang)) { + d->settings->save(); + QMessageBox::information(nullptr, + tr("Spell Checker"), + tr("No dictionaries for language: \"%1\" could be loaded.\n" + "The default dictionary has been reset to the system locale: \"%2\"").arg(plang).arg(localeLang)); + } else { + qCWarning(SONNET_LOG_CORE) << "No language dictionaries for language:" << plang << "or locale language:" << localeLang; + return nullptr; + } + } else { + qCWarning(SONNET_LOG_CORE) << "No language dictionaries for language:" << plang; + return nullptr; + } } if (backend.isEmpty()) { diff --git a/src/core/sonnet-core.pro b/src/core/sonnet-core.pro --- a/src/core/sonnet-core.pro +++ b/src/core/sonnet-core.pro @@ -1,7 +1,7 @@ TARGET = sonnet-core TEMPLATE = lib CONFIG += staticlib c++11 -QT -= gui +QT += widgets SOURCES += loader.cpp \ client.cpp \