Sankore 1189 - loading message

preferencesAboutTextFull
Ilia Ryabokon 12 years ago
parent 6d66258441
commit e36a58a201
  1. 52
      src/domain/UBGraphicsWidgetItem.cpp
  2. 5
      src/domain/UBGraphicsWidgetItem.h

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

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

Loading…
Cancel
Save