Commit 4008102c authored by pixhawk's avatar pixhawk

Improved windows google earth support. Very close to full closed loop.

parent ed692bfd
...@@ -447,7 +447,7 @@ function initCallback(object) ...@@ -447,7 +447,7 @@ function initCallback(object)
ge.getLayerRoot().enableLayerById(ge.LAYER_TREES, true); ge.getLayerRoot().enableLayerById(ge.LAYER_TREES, true);
enableEventListener(); enableEventListener();
document.getElementById('JScript_initialized').setAttribute('value','true')
initialized = true; initialized = true;
} }
...@@ -602,5 +602,7 @@ function failureCallback(object) ...@@ -602,5 +602,7 @@ function failureCallback(object)
<center> <center>
<div id='map3d' style='margin: 0; spacing: 0; height: 100%; width: 100%'></div> <div id='map3d' style='margin: 0; spacing: 0; height: 100%; width: 100%'></div>
</center> </center>
<input type="hidden" id="JScript_initialized" value="false"/>
<input type="hidden" id="JScript_dragWaypointIndex" value="581" />
</body> </body>
</html> </html>
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
#include <QAxObject> #include <QAxObject>
#include <QUuid> #include <QUuid>
#include <mshtml.h> #include <mshtml.h>
#include <comdef.h>
#include <qaxtypes.h>
#endif #endif
#include "QGC.h" #include "QGC.h"
...@@ -443,22 +445,64 @@ QVariant QGCGoogleEarthView::documentElement(QString name) ...@@ -443,22 +445,64 @@ QVariant QGCGoogleEarthView::documentElement(QString name)
} }
else else
{ {
QVariantList params; // QVariantList params;
QString javaScript("getGlobal(%1)"); // QString javaScript("getGlobal(%1)");
params.append(javaScript.arg(name)); // params.append(javaScript.arg(name));
params.append("JScript"); // params.append("JScript");
QVariant result = jScriptWin->dynamicCall("execScript(QString, QString)", params); // QVariant result = jScriptWin->dynamicCall("execScript(QString, QString)", params);
qDebug() << "JScript result: " << result << result.toDouble(); // qDebug() << "JScript result: " << result << result.toDouble();
// if (documentWin) if (documentWin)
// { {
// // Get HTMLElement object QString resultString;
// QVariantList params;
// params.append(name); // Get HTMLElement object
// //QAxObject* elementWin = documentWin->dynamicCall("getElementById(QString)", params); QVariantList params;
// QVariant result =documentWin->dynamicCall("toString()"); IHTMLDocument3* doc;
// qDebug() << "GOT RESULT" << result; documentWin->queryInterface( IID_IHTMLDocument3, (void**)&doc);
// return QVariant(0);//QVariant(result); params.append(name);
// } IHTMLElement* element = NULL;
HRESULT res = doc->getElementById(L"JScript_dragWaypointIndex", &element);
//BSTR elemString;
if (element)
{
//element->get_innerHTML(&elemString);
VARIANT value;
element->getAttribute(L"value", 0, &value);
QVariant qtValue;
bool success = QVariantToVARIANT(qtValue, value);
qDebug() << "Convert MS VARIANT to QVariant:" << success;
if (success)
{
qDebug() << "initialized is:"<< qtValue.toInt();
return qtValue;
}
//element->toString(&elemString);
//_bstr_t bstrHello(elemString, true); // passing true means
// you should not call
// SysFreeString
//qDebug() << "BSTR:" << LPCSTR(bstrHello);
//QAxObject* elementWin = new QAxObject(element, documentWin);
//if (elementWin)
//{
// QVariant result = elementWin->dynamicCall("toString()");
// qDebug() << "GOT RESULT" << result << result.toString();
//}
//else
//{
// qDebug() << "CREATING HTML ELEMENT FAILED";
//}
}
else
{
qDebug() << "DID NOT GET HTML ELEMENT";
}
return QVariant(0);//QVariant(result);
}
} }
#endif #endif
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment