diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2011-02-28 15:58:52 +0100 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2011-02-28 15:58:52 +0100 | 
| commit | c9ab4595a61640c157f55c1d7908d8fc6bf2ec9e (patch) | |
| tree | fd086ff8063f32eb2b215b2a664880b4ff1fe529 /src | |
| parent | Updated RELEASE_HOWTO (diff) | |
| download | rekonq-c9ab4595a61640c157f55c1d7908d8fc6bf2ec9e.tar.xz | |
Prevents rekonq from crash if an UA service cannot be found.
This fix needs IMHO an extra informational string that will be postponed to after 0.7 stable
release.
BUG:266997
Diffstat (limited to 'src')
| -rw-r--r-- | src/useragent/useragentinfo.cpp | 28 | ||||
| -rw-r--r-- | src/useragent/useragentinfo.h | 2 | 
2 files changed, 22 insertions, 8 deletions
diff --git a/src/useragent/useragentinfo.cpp b/src/useragent/useragentinfo.cpp index d6b286b6..67390e94 100644 --- a/src/useragent/useragentinfo.cpp +++ b/src/useragent/useragentinfo.cpp @@ -61,9 +61,9 @@ UserAgentInfo::UserAgentInfo()  QString UserAgentInfo::userAgentString(int i)  { -    if (i < 0) +    if (i < 0 || !providerExists(i))      { -        kDebug() << "oh oh... negative index on the user agent choice!"; +        kDebug() << "oh oh... wrong index on the user agent choice! INDEX = " << i;          return QL1S("Default");      } @@ -98,9 +98,9 @@ QString UserAgentInfo::userAgentString(int i)  QString UserAgentInfo::userAgentName(int i)  { -    if (i < 0) +    if (i < 0 || !providerExists(i))      { -        kDebug() << "oh oh... negative index on the user agent choice!"; +        kDebug() << "oh oh... wrong index on the user agent choice! INDEX = " << i;          return QL1S("Default");      } @@ -110,9 +110,9 @@ QString UserAgentInfo::userAgentName(int i)  QString UserAgentInfo::userAgentVersion(int i)  { -    if (i < 0) +    if (i < 0 || !providerExists(i))      { -        kDebug() << "oh oh... negative index on the user agent choice!"; +        kDebug() << "oh oh... wrong index on the user agent choice! INDEX = " << i;          return QL1S("Default");      } @@ -122,9 +122,9 @@ QString UserAgentInfo::userAgentVersion(int i)  QString UserAgentInfo::userAgentDescription(int i)  { -    if (i < 0) +    if (i < 0 || !providerExists(i))      { -        kDebug() << "oh oh... negative index on the user agent choice!"; +        kDebug() << "oh oh... wrong index on the user agent choice! INDEX = " << i;          return QL1S("Default");      } @@ -186,3 +186,15 @@ int UserAgentInfo::uaIndexForHost(const QString &host)      }      return -1;  } + + +bool UserAgentInfo::providerExists(int i) +{ +    KService::Ptr s = m_providers.at(i); +    if(s.isNull()) +    { +        //FIXME Add me when string freeze has been reopened: KMessageBox::error(...) +        return false; +    } +    return true; +} diff --git a/src/useragent/useragentinfo.h b/src/useragent/useragentinfo.h index 68af50ab..f95c696c 100644 --- a/src/useragent/useragentinfo.h +++ b/src/useragent/useragentinfo.h @@ -71,6 +71,8 @@ private:      QString userAgentVersion(int);      QString userAgentDescription(int); +    bool providerExists(int); +      private:      KService::List m_providers;  };  | 
