diff options
| author | Andreas Hartmetz <ahartmetz@gmail.com> | 2010-11-29 22:05:39 +0100 | 
|---|---|---|
| committer | Andreas Hartmetz <ahartmetz@gmail.com> | 2010-11-29 22:05:39 +0100 | 
| commit | 4ba011f9465ad0067c93c39c19638a80807b5183 (patch) | |
| tree | 30dfafcf0c951ffc92b193d6c50692d9a4e7e2f3 /src | |
| parent | My kuriikwsfilterrc contains no default search engine, so (diff) | |
| download | rekonq-4ba011f9465ad0067c93c39c19638a80807b5183.tar.xz | |
Port SearchEngine from somewhat unsafe "naked" static variables to
K_GLOBAL_STATIC(), which is Perfectly Safe ;)
Acked-by Jon.
Diffstat (limited to 'src')
| -rw-r--r-- | src/opensearch/searchengine.cpp | 40 | ||||
| -rw-r--r-- | src/opensearch/searchengine.h | 23 | 
2 files changed, 30 insertions, 33 deletions
diff --git a/src/opensearch/searchengine.cpp b/src/opensearch/searchengine.cpp index 4378a26c..92b3293e 100644 --- a/src/opensearch/searchengine.cpp +++ b/src/opensearch/searchengine.cpp @@ -37,12 +37,16 @@  #include <KConfigGroup>  #include <KServiceTypeTrader> +struct SearchEnginePrivate +{ +    SearchEnginePrivate() : isLoaded(false) {} +    bool isLoaded; +    QString delimiter; +    KService::List favorites; +    KService::Ptr defaultEngine; +}; -bool SearchEngine::m_loaded = false; -QString SearchEngine::m_delimiter = ""; -KService::List SearchEngine::m_favorites; -KService::Ptr SearchEngine::m_defaultEngine; - +K_GLOBAL_STATIC(SearchEnginePrivate, d)  void SearchEngine::reload()  { @@ -50,7 +54,7 @@ void SearchEngine::reload()      KConfigGroup cg = config.group("General");      //load delimiter -    m_delimiter = cg.readEntry("KeywordDelimiter", ":"); +    d->delimiter = cg.readEntry("KeywordDelimiter", ":");      //load favorite engines      QStringList favoriteEngines; @@ -65,44 +69,44 @@ void SearchEngine::reload()              QUrl url = service->property("Query").toUrl();              kDebug() << "ENGINE URL: " << url;              Application::iconManager()->downloadIconFromUrl(url); -             +              favorites << service;          }      } -    m_favorites = favorites; +    d->favorites = favorites;      //load default engine -    QString d = cg.readEntry("DefaultSearchEngine");   -    m_defaultEngine = KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(d)); -     -    m_loaded = true; +    QString dse = cg.readEntry("DefaultSearchEngine"); +    d->defaultEngine = KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(dse)); + +    d->isLoaded = true;  }  QString SearchEngine::delimiter()  { -    if (!m_loaded) +    if (!d->isLoaded)          reload(); -    return m_delimiter; +    return d->delimiter;  }  KService::List SearchEngine::favorites()  { -    if (!m_loaded) +    if (!d->isLoaded)          reload(); -    return m_favorites; +    return d->favorites;  }  KService::Ptr SearchEngine::defaultEngine()  { -    if (!m_loaded) +    if (!d->isLoaded)          reload(); -    return m_defaultEngine; +    return d->defaultEngine;  } diff --git a/src/opensearch/searchengine.h b/src/opensearch/searchengine.h index d813666b..45077f03 100644 --- a/src/opensearch/searchengine.h +++ b/src/opensearch/searchengine.h @@ -38,22 +38,15 @@  #include <QString> -class SearchEngine +namespace SearchEngine  { -public: -    static void reload(); -    static QString delimiter(); -    static KService::Ptr defaultEngine(); -    static KService::List favorites(); -    static KService::Ptr fromString(const QString &text); -    static QString buildQuery(KService::Ptr engine, const QString &text); -    static QString extractQuery(const QString &text); -     -private: -    static bool m_loaded; -    static QString m_delimiter; -    static KService::List m_favorites; -    static KService::Ptr m_defaultEngine; +void reload(); +QString delimiter(); +KService::Ptr defaultEngine(); +KService::List favorites(); +KService::Ptr fromString(const QString &text); +QString buildQuery(KService::Ptr engine, const QString &text); +QString extractQuery(const QString &text);  };  #endif  | 
