diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index 6e22d04b..7d43c949 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -49,7 +49,7 @@ UBGraphicsWidgetItem::UBGraphicsWidgetItem(const QUrl &pWidgetUrl, QGraphicsItem , mInitialLoadDone(false) , mIsFreezable(true) , mIsResizable(false) - , mLoadIsErronous(false) + , mLoadIsErronous(false) , mCanBeContent(0) , mCanBeTool(0) , mWidgetUrl(pWidgetUrl) @@ -113,6 +113,7 @@ void UBGraphicsWidgetItem::initialize() connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared())); connect(page(), SIGNAL(geometryChangeRequested(const QRect&)), this, SLOT(geometryChangeRequested(const QRect&))); connect(this, SIGNAL(loadFinished(bool)), this, SLOT(mainFrameLoadFinished (bool))); + connect(page()->mainFrame(), SIGNAL(initialLayoutCompleted()), this, SLOT(initialLayoutCompleted())); connect(page(), SIGNAL(linkClicked(const QUrl&)), this, SLOT(onLinkClicked(const QUrl&))); } @@ -121,6 +122,11 @@ void UBGraphicsWidgetItem::onLinkClicked(const QUrl& url) UBApplication::webController->loadUrl(url); } +void UBGraphicsWidgetItem::initialLayoutCompleted() +{ + mInitialLoadDone = true; +} + QUrl UBGraphicsWidgetItem::mainHtml() { return mMainHtmlUrl; @@ -564,40 +570,33 @@ void UBGraphicsWidgetItem::injectInlineJavaScript() void UBGraphicsWidgetItem::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - if (scene() && scene()->renderingContext() != UBGraphicsScene::Screen) - { + if (scene() && scene()->renderingContext() != UBGraphicsScene::Screen) { painter->drawPixmap(0, 0, snapshot()); } - else - { - if (!mInitialLoadDone || mLoadIsErronous) - { - QString message; + else { + QGraphicsWebView::paint(painter, option, widget); + } - if (mInitialLoadDone && mLoadIsErronous) - message = tr("Cannot load content"); - else - message = tr("Loading ..."); + if (!mInitialLoadDone) { + QString message; - painter->setFont(QFont("Arial", 12)); + message = tr("Loading ..."); - QFontMetrics fm = painter->fontMetrics(); - QRect txtBoundingRect = fm.boundingRect(message); + painter->setFont(QFont("Arial", 12)); - txtBoundingRect.moveCenter(rect().center().toPoint()); - txtBoundingRect.adjust(-10, -5, 10, 5); + QFontMetrics fm = painter->fontMetrics(); + QRect txtBoundingRect = fm.boundingRect(message); - painter->setPen(Qt::NoPen); - painter->setBrush(UBSettings::paletteColor); - painter->drawRoundedRect(txtBoundingRect, 3, 3); + txtBoundingRect.moveCenter(rect().center().toPoint()); + txtBoundingRect.adjust(-10, -5, 10, 5); - painter->setPen(Qt::white); - painter->drawText(rect(), Qt::AlignCenter, message); - } - else - QGraphicsWebView::paint(painter, option, widget); - } + painter->setPen(Qt::NoPen); + painter->setBrush(UBSettings::paletteColor); + painter->drawRoundedRect(txtBoundingRect, 3, 3); + painter->setPen(Qt::white); + painter->drawText(rect(), Qt::AlignCenter, message); + } } void UBGraphicsWidgetItem::geometryChangeRequested(const QRect& geom) @@ -618,7 +617,6 @@ void UBGraphicsWidgetItem::javaScriptWindowObjectCleared() void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok) { - mInitialLoadDone = true; mLoadIsErronous = !ok; update(boundingRect()); takeSnapshot(); diff --git a/src/domain/UBGraphicsWidgetItem.h b/src/domain/UBGraphicsWidgetItem.h index 10aeb2b7..412dbad8 100644 --- a/src/domain/UBGraphicsWidgetItem.h +++ b/src/domain/UBGraphicsWidgetItem.h @@ -21,8 +21,8 @@ #include "core/UB.h" -#include "UBItem.h" -#include "UBResizableGraphicsItem.h" +#include "UBItem.h" +#include "UBResizableGraphicsItem.h" class UBWidgetUniboardAPI; class UBGraphicsScene; @@ -163,6 +163,7 @@ class UBGraphicsWidgetItem : public QGraphicsWebView, public UBItem, public UBRe private slots: void onLinkClicked(const QUrl& url); + void initialLayoutCompleted(); private: bool mIsFrozen;