ginebra2/ContentViews/ViewportMetaDataParser.cpp
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
--- 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;