diff --git a/resources/etc/freezedWidgetWrapper.html b/resources/etc/freezedWidgetWrapper.html
new file mode 100644
index 00000000..56f2f42a
--- /dev/null
+++ b/resources/etc/freezedWidgetWrapper.html
@@ -0,0 +1,47 @@
+
+
+ ololo
+
+
+
+
+ Widget freezed.
+
+
\ No newline at end of file
diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp
index 8af91ade..2e4454d2 100644
--- a/src/board/UBBoardController.cpp
+++ b/src/board/UBBoardController.cpp
@@ -365,7 +365,7 @@ void UBBoardController::connectToolbar()
void UBBoardController::startScript()
{
- freezeW3CWidgets(false);
+ freezeW3CWidgets(true);
}
void UBBoardController::stopScript()
@@ -2160,16 +2160,15 @@ void UBBoardController::freezeW3CWidgets(bool freeze)
void UBBoardController::freezeW3CWidget(QGraphicsItem *item, bool freeze)
{
- if(item->type() == UBGraphicsW3CWidgetItem::Type)
- {
- QString scriptString;
- if (freeze)
- scriptString = "setfreezed(true);";
- else
- scriptString = "setfreezed(false);";
- UBGraphicsW3CWidgetItem* item_casted = dynamic_cast(item);
- if (0 == item_casted)
- return;
- item_casted->widgetWebView()->page()->mainFrame()->evaluateJavaScript(scriptString);
- }
-}
\ No newline at end of file
+ if(item->type() == UBGraphicsW3CWidgetItem::Type)
+ {
+ UBGraphicsW3CWidgetItem* item_casted = dynamic_cast(item);
+ if (0 == item_casted)
+ return;
+
+ if (freeze) {
+ item_casted->widgetWebView()->page()->mainFrame()->setContent(UBW3CWidget::freezedWidgetPage().toAscii());
+ } else
+ item_casted->widgetWebView()->loadMainHtml();
+ }
+}
diff --git a/src/domain/UBW3CWidget.cpp b/src/domain/UBW3CWidget.cpp
index d5e399b2..1209ba76 100644
--- a/src/domain/UBW3CWidget.cpp
+++ b/src/domain/UBW3CWidget.cpp
@@ -29,6 +29,8 @@
#include "core/memcheck.h"
+const QString freezedWidgetDefaultContentFilePath = "./etc/freezedWidgetWrapper.html";
+
bool UBW3CWidget::sTemplateLoaded = false;
QMap UBW3CWidget::sNPAPIWrapperTemplates;
QString UBW3CWidget::sNPAPIWrappperConfigTemplate;
@@ -416,6 +418,29 @@ QString UBW3CWidget::createHtmlWrapperInDir(const QString& html, const QDir& pDi
}
+QString UBW3CWidget::freezedWidgetPage()
+{
+ static QString defaultcontent;
+
+ if (defaultcontent.isNull()) {
+ QFile wrapperFile(freezedWidgetDefaultContentFilePath);
+ if (!wrapperFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ qDebug() << "can't open wrapper file " + freezedWidgetDefaultContentFilePath;
+ defaultcontent = "";
+ } else {
+ QByteArray arr = wrapperFile.readAll();
+ if (!arr.isEmpty()) {
+ defaultcontent = QString(arr);
+ } else {
+ qDebug() << "content of " + freezedWidgetDefaultContentFilePath + "is empty";
+ defaultcontent = "";
+ }
+ }
+ }
+
+ return defaultcontent;
+}
+
void UBW3CWidget::loadNPAPIWrappersTemplates()
{
if (!sTemplateLoaded)
diff --git a/src/domain/UBW3CWidget.h b/src/domain/UBW3CWidget.h
index f407370b..d568e9d2 100644
--- a/src/domain/UBW3CWidget.h
+++ b/src/domain/UBW3CWidget.h
@@ -48,6 +48,8 @@ class UBW3CWidget : public UBAbstractWidget
static QString createHtmlWrapperInDir(const QString& html, const QDir& pDir,
const QSize& sizeHint, const QString& pName);
+ static QString freezedWidgetPage();
+
static bool hasNPAPIWrapper(const QString& pMimeType);
class PreferenceValue