diff options
Diffstat (limited to 'src/modules/welcome/WelcomeViewStep.cpp')
-rw-r--r-- | src/modules/welcome/WelcomeViewStep.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/modules/welcome/WelcomeViewStep.cpp b/src/modules/welcome/WelcomeViewStep.cpp index d1c2cc840..91745967e 100644 --- a/src/modules/welcome/WelcomeViewStep.cpp +++ b/src/modules/welcome/WelcomeViewStep.cpp @@ -22,10 +22,12 @@ #include "WelcomePage.h" #include "checker/GeneralRequirements.h" +#include "geoip/Handler.h" #include "modulesystem/ModuleManager.h" #include "utils/Logger.h" #include "utils/Variant.h" +#include <QFutureWatcher> #include <QVariant> CALAMARES_PLUGIN_FACTORY_DEFINITION( WelcomeViewStepFactory, registerPlugin<WelcomeViewStep>(); ) @@ -112,6 +114,26 @@ WelcomeViewStep::setConfigurationMap( const QVariantMap& configurationMap ) else cWarning() << "no valid requirements map found in welcome " "module configuration."; + + bool ok = false; + QVariantMap geoip = CalamaresUtils::getSubMap( configurationMap, "geoip", ok ); + if ( ok ) + { + using FWString = QFutureWatcher< QString >; + + auto* handler = new CalamaresUtils::GeoIP::Handler( + CalamaresUtils::getString( geoip, "style" ), + CalamaresUtils::getString( geoip, "url" ), + CalamaresUtils::getString( geoip, "selector" ) ); + auto* future = new FWString(); + connect( future, &FWString::finished, [f=future, h=handler]() + { + cDebug() << "GeoIP result for welcome=" << f->future().result(); + f->deleteLater(); + delete h; + } ); + future->setFuture( handler->queryRaw() ); + } } Calamares::RequirementsList WelcomeViewStep::checkRequirements() |