diff -r 6aeb7a756187 -r 3c88a81ff781 ginebra2/ContentViews/ViewportMetaDataParser.cpp --- a/ginebra2/ContentViews/ViewportMetaDataParser.cpp Thu Sep 23 15:32:11 2010 -0400 +++ b/ginebra2/ContentViews/ViewportMetaDataParser.cpp Fri Oct 15 17:30:59 2010 -0400 @@ -30,11 +30,11 @@ ViewportMetaDataParser::~ViewportMetaDataParser() {} -ViewportMetaData ViewportMetaDataParser::parse(const QString& viewportParams) +void ViewportMetaDataParser::parse(const QString& viewportParams, ViewportMetaData& viewportMetaData) { - ViewportMetaData viewportMetaData = processArguments(viewportParams); - viewportMetaData.adjustViewportData(m_clientRect); - return viewportMetaData; + processArguments(viewportParams, viewportMetaData); + //viewportMetaData.adjustViewportData(m_clientRect); + return; } @@ -55,12 +55,10 @@ || c == ';'; } -ViewportMetaData ViewportMetaDataParser::processArguments(const QString& features) +void ViewportMetaDataParser::processArguments(const QString& features, ViewportMetaData& viewportMetaData) { int keyBegin, keyEnd; int valueBegin, valueEnd; - ViewportMetaData viewportMetaData; - int i = 0; int length = features.length(); QString buffer = features.toLower(); @@ -104,7 +102,16 @@ QString valueString = buffer.mid(valueBegin, valueEnd - valueBegin); setViewportFeature(keyString, valueString, viewportMetaData); } - return viewportMetaData; +#ifdef VIEWPORT_ALWAYS_ALLOW_ZOOMING + // Hacks to always allow zooming. !!! + if(viewportMetaData.m_minimumScale == viewportMetaData.m_maximumScale) { + viewportMetaData.m_minimumScale = 0.2; + viewportMetaData.m_maximumScale = 5.0; + viewportMetaData.m_userScalable = true; + viewportMetaData.m_userScalableOverRidden = true; + } +#endif + return; } void ViewportMetaDataParser::setViewportFeature(const QString& keyString, const QString& valueString, ViewportMetaData& viewportMetaData) @@ -140,8 +147,14 @@ else if (keyString == "user-scalable") { if (QString::compare(valueString, "yes", Qt::CaseInsensitive) == 0) viewportMetaData.m_userScalable = true; - else + else { +#ifdef VIEWPORT_ALWAYS_ALLOW_ZOOMING + viewportMetaData.m_userScalable = true; + viewportMetaData.m_userScalableOverRidden = true; +#else viewportMetaData.m_userScalable = false; +#endif + } } else if (keyString == "width") { viewportMetaData.m_width = value;