|
|
|
@ -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(); |
|
|
|
|