From 371496178f913822134406c61132a703073bbee0 Mon Sep 17 00:00:00 2001 From: Yimgo Date: Fri, 27 Jul 2012 16:19:55 +0200 Subject: [PATCH 01/22] First modifications to move from QWebView to QGraphicsWebView. This is not functional. --- src/adaptors/UBSvgSubsetAdaptor.cpp | 16 +- .../publishing/UBDocumentPublisher.cpp | 34 +- src/api/UBW3CWidgetAPI.cpp | 120 +-- src/api/UBW3CWidgetAPI.h | 12 +- src/api/UBWidgetMessageAPI.cpp | 17 +- src/api/UBWidgetMessageAPI.h | 4 +- src/api/UBWidgetUniboardAPI.cpp | 4 +- src/api/UBWidgetUniboardAPI.h | 2 +- src/board/UBBoardController.cpp | 14 +- src/board/UBBoardView.cpp | 2 +- src/domain/UBGraphicsScene.cpp | 6 +- src/domain/UBGraphicsScene.h | 2 +- src/domain/UBGraphicsWebView.cpp | 182 ++++ src/domain/UBGraphicsWebView.h | 64 ++ src/domain/UBGraphicsWidgetItem.cpp | 961 ++++++++++++++++-- src/domain/UBGraphicsWidgetItem.h | 174 +++- src/domain/UBGraphicsWidgetItemDelegate.cpp | 8 +- src/domain/domain.pri | 2 + 18 files changed, 1368 insertions(+), 256 deletions(-) create mode 100644 src/domain/UBGraphicsWebView.cpp create mode 100644 src/domain/UBGraphicsWebView.h diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index a56fd342..ceeba630 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -2484,7 +2484,7 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsW3CWidgetToSvg(UBGraphicsW3C void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsWidgetToSvg(UBGraphicsWidgetItem* item) { - QUrl widgetRootUrl = item->widgetWebView()->widgetUrl(); + QUrl widgetRootUrl = item->widgetUrl(); QString uuid = UBStringUtils::toCanonicalUuid(item->uuid()); QString widgetDirectoryPath = UBPersistenceManager::widgetDirectory; if (widgetRootUrl.toString().startsWith("file://")) @@ -2513,13 +2513,13 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsWidgetToSvg(UBGraphicsWidget graphicsItemToSvg(item); - if (item->widgetWebView()->isFrozen()) + if (item->isFrozen()) { mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "frozen", xmlTrue); } QString snapshotPath = mDocumentPath + "/" + UBPersistenceManager::widgetDirectory + "/" + uuid + ".png"; - item->widgetWebView()->takeSnapshot().save(snapshotPath, "PNG"); + item->takeSnapshot().save(snapshotPath, "PNG"); mXmlWriter.writeStartElement(nsXHtml, "iframe"); @@ -2528,10 +2528,10 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsWidgetToSvg(UBGraphicsWidget mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height())); QString startFileUrl; - if (item->widgetWebView()->mainHtmlFileName().startsWith("http://")) - startFileUrl = item->widgetWebView()->mainHtmlFileName(); + if (item->mainHtmlFileName().startsWith("http://")) + startFileUrl = item->mainHtmlFileName(); else - startFileUrl = widgetRootUrl.toString() + "/" + item->widgetWebView()->mainHtmlFileName(); + startFileUrl = widgetRootUrl.toString() + "/" + item->mainHtmlFileName(); mXmlWriter.writeAttribute("src", startFileUrl); mXmlWriter.writeEndElement(); //iFrame @@ -2622,13 +2622,13 @@ UBGraphicsW3CWidgetItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsW3CWidge QPixmap snapshot(pixPath); if (!snapshot.isNull()) - widgetItem->w3cWidget()->setSnapshot(snapshot); + widgetItem->setSnapshot(snapshot); QStringRef frozen = mXmlReader.attributes().value(mNamespaceUri, "frozen"); if (!frozen.isNull() && frozen.toString() == xmlTrue && !snapshot.isNull()) { - widgetItem->w3cWidget()->freeze(); + widgetItem->freeze(); } graphicsItemFromSvg(widgetItem); diff --git a/src/adaptors/publishing/UBDocumentPublisher.cpp b/src/adaptors/publishing/UBDocumentPublisher.cpp index 1c360a1f..c7630b48 100644 --- a/src/adaptors/publishing/UBDocumentPublisher.cpp +++ b/src/adaptors/publishing/UBDocumentPublisher.cpp @@ -281,12 +281,12 @@ void UBDocumentPublisher::upgradeDocumentForPublishing() jsonFile.write(QString(" \"uuid\": \"%1\",\n").arg(UBStringUtils::toCanonicalUuid(widget->uuid())).toUtf8()); jsonFile.write(QString(" \"id\": \"%1\",\n").arg(widget->metadatas().id).toUtf8()); - jsonFile.write(QString(" \"name\": \"%1\",\n").arg(widget->w3cWidget()->metadatas().name).toUtf8()); - jsonFile.write(QString(" \"description\": \"%1\",\n").arg(widget->w3cWidget()->metadatas().description).toUtf8()); - jsonFile.write(QString(" \"author\": \"%1\",\n").arg(widget->w3cWidget()->metadatas().author).toUtf8()); - jsonFile.write(QString(" \"authorEmail\": \"%1\",\n").arg(widget->w3cWidget()->metadatas().authorEmail).toUtf8()); - jsonFile.write(QString(" \"authorHref\": \"%1\",\n").arg(widget->w3cWidget()->metadatas().authorHref).toUtf8()); - jsonFile.write(QString(" \"version\": \"%1\",\n").arg(widget->w3cWidget()->metadatas().authorHref).toUtf8()); + jsonFile.write(QString(" \"name\": \"%1\",\n").arg(widget->metadatas().name).toUtf8()); + jsonFile.write(QString(" \"description\": \"%1\",\n").arg(widget->metadatas().description).toUtf8()); + jsonFile.write(QString(" \"author\": \"%1\",\n").arg(widget->metadatas().author).toUtf8()); + jsonFile.write(QString(" \"authorEmail\": \"%1\",\n").arg(widget->metadatas().authorEmail).toUtf8()); + jsonFile.write(QString(" \"authorHref\": \"%1\",\n").arg(widget->metadatas().authorHref).toUtf8()); + jsonFile.write(QString(" \"version\": \"%1\",\n").arg(widget->metadatas().authorHref).toUtf8()); jsonFile.write(QString(" \"x\": %1,\n").arg(widget->sceneBoundingRect().x()).toUtf8()); jsonFile.write(QString(" \"y\": %1,\n").arg(widget->sceneBoundingRect().y()).toUtf8()); @@ -298,7 +298,7 @@ void UBDocumentPublisher::upgradeDocumentForPublishing() QString url = UBPersistenceManager::widgetDirectory + "/" + widget->uuid().toString() + ".wgt"; jsonFile.write(QString(" \"src\": \"%1\",\n").arg(url).toUtf8()); - QString startFile = widget->w3cWidget()->mainHtmlFileName(); + QString startFile = widget->mainHtmlFileName(); jsonFile.write(QString(" \"startFile\": \"%1\",\n").arg(startFile).toUtf8()); QMap preferences = widget->preferences(); @@ -363,7 +363,7 @@ void UBDocumentPublisher::generateWidgetPropertyScript(UBGraphicsW3CWidgetItem * QMap preferences = widgetItem->preferences(); QMap datastoreEntries = widgetItem->datastoreEntries(); - QString startFileName = widgetItem->w3cWidget()->mainHtmlFileName(); + QString startFileName = widgetItem->mainHtmlFileName(); if (!startFileName.startsWith("http://")) { @@ -394,18 +394,18 @@ void UBDocumentPublisher::generateWidgetPropertyScript(UBGraphicsW3CWidgetItem * lines << "