diff --git a/resources/library/interactivities/Cat images.wgt/js/script.js b/resources/library/interactivities/Cat images.wgt/js/script.js
index 441c3ea1..ecf2d8aa 100644
--- a/resources/library/interactivities/Cat images.wgt/js/script.js
+++ b/resources/library/interactivities/Cat images.wgt/js/script.js
@@ -112,7 +112,7 @@ function start(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -341,7 +341,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -413,12 +413,11 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
- });
- checkCorrectness(imgs_container);
+ });
}
all_imgs = $("
").appendTo(container);
@@ -458,6 +457,7 @@ function importData(data){
}
});
container.appendTo("#data");
+ checkCorrectness(all_imgs);
}
}
}
@@ -520,7 +520,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -531,7 +531,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -561,9 +561,9 @@ function addCategory(obj){
$("
").appendTo(imgs_container);
$("
").appendTo(imgs_container);
imgs_container.attr("ondragenter", "return false;")
- .attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondragover", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);");
+ .attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
+ .attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
+ .attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
}
//add new container
@@ -686,8 +686,7 @@ function returnId(){
}
//a func for checking when smth will drop
-function checkOnDrop(dest, source){
- dest.append(source);
+function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
@@ -697,47 +696,35 @@ function checkOnDrop(dest, source){
tmp_right = false;
});
if(tmp_right)
- dest.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
+ dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
- var tmp_count = source.find("input[name='count']").val();
- var tmp_mask = source.find("input[name='mask']").val();
- if(source.find(".img_block").size() == tmp_count){
- var tmp_right = true;
- source.find(".img_block").each(function(){
- if($(this).find("input").val() != tmp_mask)
- tmp_right = false;
- });
-
- if(tmp_right)
- source.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
- } else if(source.find(".img_block").size() == 0)
- source.addClass("def_cont")
- .removeClass("green_cont")
- .removeClass("red_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ }
+ } else {
+ if(source.find(".img_block").size() > 0){
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ }
}
}
diff --git a/resources/library/interactivities/Cat images.wgt/locales/fr/js/script.js b/resources/library/interactivities/Cat images.wgt/locales/fr/js/script.js
index ab48d98b..aad7172e 100644
--- a/resources/library/interactivities/Cat images.wgt/locales/fr/js/script.js
+++ b/resources/library/interactivities/Cat images.wgt/locales/fr/js/script.js
@@ -130,7 +130,7 @@ function start(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -358,7 +358,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -430,7 +430,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -475,6 +475,7 @@ function importData(data){
}
});
container.appendTo("#data");
+ checkCorrectness(all_imgs);
}
}
}
@@ -537,7 +538,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -548,7 +549,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -578,9 +579,9 @@ function addCategory(obj){
$("
").appendTo(imgs_container);
$("
").appendTo(imgs_container);
imgs_container.attr("ondragenter", "return false;")
- .attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondragover", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);");
+ .attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
+ .attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
+ .attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
}
//add new container
@@ -599,9 +600,9 @@ function addContainer(){
$("
").appendTo(imgs_container);
$("
").appendTo(imgs_container);
imgs_container.attr("ondragenter", "return false;")
- .attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondragover", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);");
+ .attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
+ .attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
+ .attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
container.insertBefore($(".add_block"));
}
@@ -704,8 +705,7 @@ function returnId(){
}
//a func for checking when smth will drop
-function checkOnDrop(dest, source){
- dest.append(source);
+function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
@@ -715,47 +715,35 @@ function checkOnDrop(dest, source){
tmp_right = false;
});
if(tmp_right)
- dest.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
+ dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
- var tmp_count = source.find("input[name='count']").val();
- var tmp_mask = source.find("input[name='mask']").val();
- if(source.find(".img_block").size() == tmp_count){
- var tmp_right = true;
- source.find(".img_block").each(function(){
- if($(this).find("input").val() != tmp_mask)
- tmp_right = false;
- });
-
- if(tmp_right)
- source.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
- } else if(source.find(".img_block").size() == 0)
- source.addClass("def_cont")
- .removeClass("green_cont")
- .removeClass("red_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ }
+ } else {
+ if(source.find(".img_block").size() > 0){
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ }
}
}
diff --git a/resources/library/interactivities/Cat images.wgt/locales/ru/js/script.js b/resources/library/interactivities/Cat images.wgt/locales/ru/js/script.js
index 367e5630..dc92f1e6 100644
--- a/resources/library/interactivities/Cat images.wgt/locales/ru/js/script.js
+++ b/resources/library/interactivities/Cat images.wgt/locales/ru/js/script.js
@@ -111,7 +111,7 @@ function start(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -342,7 +342,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -414,7 +414,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -459,6 +459,7 @@ function importData(data){
}
});
container.appendTo("#data");
+ checkCorrectness(all_imgs);
}
}
}
@@ -521,7 +522,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -532,7 +533,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -562,9 +563,9 @@ function addCategory(obj){
$("
").appendTo(imgs_container);
$("
").appendTo(imgs_container);
imgs_container.attr("ondragenter", "return false;")
- .attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondragover", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);");
+ .attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
+ .attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
+ .attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
}
//add new container
@@ -583,9 +584,9 @@ function addContainer(){
$("
").appendTo(imgs_container);
$("
").appendTo(imgs_container);
imgs_container.attr("ondragenter", "return false;")
- .attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondragover", "$(this).css(\"background-color\",\"\"); return false;")
- .attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);");
+ .attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;")
+ .attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;")
+ .attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);");
container.insertBefore($(".add_block"));
}
@@ -688,8 +689,7 @@ function returnId(){
}
//a func for checking when smth will drop
-function checkOnDrop(dest, source){
- dest.append(source);
+function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
@@ -699,47 +699,35 @@ function checkOnDrop(dest, source){
tmp_right = false;
});
if(tmp_right)
- dest.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
+ dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
- var tmp_count = source.find("input[name='count']").val();
- var tmp_mask = source.find("input[name='mask']").val();
- if(source.find(".img_block").size() == tmp_count){
- var tmp_right = true;
- source.find(".img_block").each(function(){
- if($(this).find("input").val() != tmp_mask)
- tmp_right = false;
- });
-
- if(tmp_right)
- source.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
- } else if(source.find(".img_block").size() == 0)
- source.addClass("def_cont")
- .removeClass("green_cont")
- .removeClass("red_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ }
+ } else {
+ if(source.find(".img_block").size() > 0){
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ }
}
}
diff --git a/resources/library/interactivities/Cat text.wgt/js/script.js b/resources/library/interactivities/Cat text.wgt/js/script.js
index 12653ac4..0dededfa 100644
--- a/resources/library/interactivities/Cat text.wgt/js/script.js
+++ b/resources/library/interactivities/Cat text.wgt/js/script.js
@@ -120,7 +120,7 @@ function start(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -339,7 +339,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -410,12 +410,11 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
- });
- checkCorrectness(imgs_container);
+ });
}
all_imgs = $("
").appendTo(container);
@@ -452,7 +451,8 @@ function importData(data){
}
}
}
- });
+ });
+ checkCorrectness(all_imgs);
}
}
}
@@ -516,7 +516,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -527,7 +527,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -685,8 +685,7 @@ function changeStyle(val){
}
//a func for checking when smth will drop
-function checkOnDrop(dest, source){
- dest.append(source);
+function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
@@ -696,46 +695,34 @@ function checkOnDrop(dest, source){
tmp_right = false;
});
if(tmp_right)
- dest.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
+ dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
- var tmp_count = source.find("input[name='count']").val();
- var tmp_mask = source.find("input[name='mask']").val();
- if(source.find(".img_block").size() == tmp_count){
- var tmp_right = true;
- source.find(".img_block").each(function(){
- if($(this).find("input").val() != tmp_mask)
- tmp_right = false;
- });
-
- if(tmp_right)
- source.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
- } else if(source.find(".img_block").size() == 0)
- source.addClass("def_cont")
- .removeClass("green_cont")
- .removeClass("red_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ }
+ } else {
+ if(source.find(".img_block").size() > 0){
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ }
}
}
diff --git a/resources/library/interactivities/Cat text.wgt/locales/fr/js/script.js b/resources/library/interactivities/Cat text.wgt/locales/fr/js/script.js
index 8d7149ed..606f4a4a 100644
--- a/resources/library/interactivities/Cat text.wgt/locales/fr/js/script.js
+++ b/resources/library/interactivities/Cat text.wgt/locales/fr/js/script.js
@@ -141,7 +141,7 @@ function start(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -360,7 +360,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -431,7 +431,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -473,7 +473,8 @@ function importData(data){
}
}
}
- });
+ });
+ checkCorrectness(all_imgs);
}
}
}
@@ -537,7 +538,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -548,7 +549,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -706,8 +707,7 @@ function changeStyle(val){
}
//a func for checking when smth will drop
-function checkOnDrop(dest, source){
- dest.append(source);
+function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
@@ -717,46 +717,34 @@ function checkOnDrop(dest, source){
tmp_right = false;
});
if(tmp_right)
- dest.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
+ dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
- var tmp_count = source.find("input[name='count']").val();
- var tmp_mask = source.find("input[name='mask']").val();
- if(source.find(".img_block").size() == tmp_count){
- var tmp_right = true;
- source.find(".img_block").each(function(){
- if($(this).find("input").val() != tmp_mask)
- tmp_right = false;
- });
-
- if(tmp_right)
- source.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
- } else if(source.find(".img_block").size() == 0)
- source.addClass("def_cont")
- .removeClass("green_cont")
- .removeClass("red_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ }
+ } else {
+ if(source.find(".img_block").size() > 0){
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ }
}
}
diff --git a/resources/library/interactivities/Cat text.wgt/locales/ru/js/script.js b/resources/library/interactivities/Cat text.wgt/locales/ru/js/script.js
index dade5268..86bef6bd 100644
--- a/resources/library/interactivities/Cat text.wgt/locales/ru/js/script.js
+++ b/resources/library/interactivities/Cat text.wgt/locales/ru/js/script.js
@@ -120,7 +120,7 @@ function start(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -339,7 +339,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -410,7 +410,7 @@ function importData(data){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -452,7 +452,8 @@ function importData(data){
}
}
}
- });
+ });
+ checkCorrectness(all_imgs);
}
}
}
@@ -516,7 +517,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -527,7 +528,7 @@ function showExample(){
drop: function(event, ui) {
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){
var tmp_ui = $(ui.draggable).parent();
- checkOnDrop($(this), $(ui.draggable));
+ $(this).append($(ui.draggable));
checkCorrectness(tmp_ui);
}
}
@@ -685,8 +686,7 @@ function changeStyle(val){
}
//a func for checking when smth will drop
-function checkOnDrop(dest, source){
- dest.append(source);
+function checkOnDrop(dest){
var tmp_count = dest.find("input[name='count']").val();
var tmp_mask = dest.find("input[name='mask']").val();
if(dest.find(".img_block").size() == tmp_count){
@@ -696,46 +696,34 @@ function checkOnDrop(dest, source){
tmp_right = false;
});
if(tmp_right)
- dest.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
+ dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont");
else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
} else
- dest.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont");
}
//checking source on correctness
function checkCorrectness(source){
if(!source.hasClass("all_imgs")){
- var tmp_count = source.find("input[name='count']").val();
- var tmp_mask = source.find("input[name='mask']").val();
- if(source.find(".img_block").size() == tmp_count){
- var tmp_right = true;
- source.find(".img_block").each(function(){
- if($(this).find("input").val() != tmp_mask)
- tmp_right = false;
- });
-
- if(tmp_right)
- source.removeClass("def_cont")
- .removeClass("red_cont")
- .addClass("green_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
- } else if(source.find(".img_block").size() == 0)
- source.addClass("def_cont")
- .removeClass("green_cont")
- .removeClass("red_cont");
- else
- source.removeClass("def_cont")
- .removeClass("green_cont")
- .addClass("red_cont");
+ if(source.parent().find(".all_imgs").find(".img_block").size() == 0){
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ }
+ } else {
+ if(source.find(".img_block").size() > 0){
+ source.parent().find(".imgs_cont").each(function(){
+ $(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont");
+ })
+ } else {
+ source.parent().find(".imgs_cont").each(function(){
+ checkOnDrop($(this))
+ })
+ }
}
}
\ No newline at end of file
diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp
index 03a62143..cabc74ad 100644
--- a/src/adaptors/UBSvgSubsetAdaptor.cpp
+++ b/src/adaptors/UBSvgSubsetAdaptor.cpp
@@ -3090,7 +3090,7 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
UBGraphicsCache* UBSvgSubsetAdaptor::UBSvgSubsetReader::cacheFromSvg()
{
- UBGraphicsCache* pCache = new UBGraphicsCache();
+ UBGraphicsCache* pCache = UBGraphicsCache::instance(mScene);
pCache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
graphicsItemFromSvg(pCache);
diff --git a/src/api/UBLibraryAPI.cpp b/src/api/UBLibraryAPI.cpp
index 8d75a568..073ed404 100644
--- a/src/api/UBLibraryAPI.cpp
+++ b/src/api/UBLibraryAPI.cpp
@@ -40,7 +40,7 @@ UBLibraryAPI::~UBLibraryAPI()
void UBLibraryAPI::addObject(QString pUrl, int width, int height, int x, int y, bool background)
{
if (UBApplication::boardController)
- UBApplication::boardController->downloadURL(QUrl(pUrl), QPointF(x, y), QSize(width, height), background);
+ UBApplication::boardController->downloadURL(QUrl(pUrl), QString(), QPointF(x, y), QSize(width, height), background);
}
diff --git a/src/api/UBWidgetUniboardAPI.cpp b/src/api/UBWidgetUniboardAPI.cpp
index b86e7aa1..32c62f32 100644
--- a/src/api/UBWidgetUniboardAPI.cpp
+++ b/src/api/UBWidgetUniboardAPI.cpp
@@ -201,7 +201,7 @@ void UBWidgetUniboardAPI::addObject(QString pUrl, int width, int height, int x,
if (UBApplication::boardController->activeScene() != mScene)
return;
- UBApplication::boardController->downloadURL(QUrl(pUrl), QPointF(x, y), QSize(width, height), background);
+ UBApplication::boardController->downloadURL(QUrl(pUrl), QString(), QPointF(x, y), QSize(width, height), background);
}
@@ -506,7 +506,7 @@ void UBWidgetUniboardAPI::ProcessDropEvent(QGraphicsSceneDragDropEvent *event)
sDownloadFileDesc desc;
desc.dest = sDownloadFileDesc::graphicsWidget;
desc.modal = true;
- desc.url = url;
+ desc.srcUrl = url;
desc.currentSize = 0;
desc.name = QFileInfo(url).fileName();
desc.totalSize = 0; // The total size will be retrieved during the download
diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp
index 949a5b97..b269b8fa 100644
--- a/src/board/UBBoardController.cpp
+++ b/src/board/UBBoardController.cpp
@@ -132,7 +132,7 @@ void UBBoardController::init()
, this, SLOT(lastWindowClosed()));
connect(UBDownloadManager::downloadManager(), SIGNAL(downloadModalFinished()), this, SLOT(onDownloadModalFinished()));
- connect(UBDownloadManager::downloadManager(), SIGNAL(addDownloadedFileToBoard(bool,QUrl,QString,QByteArray,QPointF,QSize,bool)), this, SLOT(downloadFinished(bool,QUrl,QString,QByteArray,QPointF,QSize,bool)));
+ connect(UBDownloadManager::downloadManager(), SIGNAL(addDownloadedFileToBoard(bool,QUrl,QUrl,QString,QByteArray,QPointF,QSize,bool)), this, SLOT(downloadFinished(bool,QUrl,QUrl,QString,QByteArray,QPointF,QSize,bool)));
UBDocumentProxy* doc = UBPersistenceManager::persistenceManager()->createDocument();
@@ -563,7 +563,12 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
}
UBMimeType::Enum itemMimeType;
- QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(item->sourceUrl().toLocalFile());
+
+ QString srcFile = item->sourceUrl().toLocalFile();
+ if (srcFile.isEmpty())
+ srcFile = item->sourceUrl().toString();
+
+ QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile);
if(NULL != qgraphicsitem_cast(commonItem))
itemMimeType = UBMimeType::Group;
else
@@ -588,8 +593,9 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (mitem)
{
sourceUrl = mitem->mediaFileUrl();
+ downloadURL(sourceUrl, srcFile, itemPos, QSize(itemSize.width(), itemSize.height()), false, false);
}
- }break;
+ }return NULL; // async operation
case UBMimeType::VectorImage:
{
@@ -662,7 +668,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (retItem)
return retItem;
- UBItem *createdItem = downloadFinished(true, sourceUrl, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
+ UBItem *createdItem = downloadFinished(true, sourceUrl, sourceUrl, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
if (createdItem)
{
createdItem->setSourceUrl(item->sourceUrl());
@@ -676,6 +682,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
retItem = dynamic_cast(createdItem);
}
+
return retItem;
}
@@ -961,7 +968,7 @@ void UBBoardController::groupButtonClicked()
}
}
-void UBBoardController::downloadURL(const QUrl& url, const QPointF& pPos, const QSize& pSize, bool isBackground, bool internalData)
+void UBBoardController::downloadURL(const QUrl& url, QString contentSourceUrl, const QPointF& pPos, const QSize& pSize, bool isBackground, bool internalData)
{
qDebug() << "something has been dropped on the board! Url is: " << url.toString();
QString sUrl = url.toString();
@@ -972,7 +979,7 @@ void UBBoardController::downloadURL(const QUrl& url, const QPointF& pPos, const
if(sUrl.startsWith("uniboardTool://"))
{
- downloadFinished(true, url, "application/vnd.mnemis-uniboard-tool", QByteArray(), pPos, pSize, isBackground);
+ downloadFinished(true, url, QUrl(), "application/vnd.mnemis-uniboard-tool", QByteArray(), pPos, pSize, isBackground);
}
else if (sUrl.startsWith("file://") || sUrl.startsWith("/"))
{
@@ -985,22 +992,37 @@ void UBBoardController::downloadURL(const QUrl& url, const QPointF& pPos, const
|| contentType.startsWith("application/widget")
|| contentType.startsWith("application/vnd.apple-widget");
- QFile file(fileName);
-
if (shouldLoadFileData)
+ {
+ QFile file(fileName);
file.open(QIODevice::ReadOnly);
-
- downloadFinished(true, formedUrl, contentType, file.readAll(), pPos, pSize, isBackground, internalData);
-
- if (shouldLoadFileData)
+ downloadFinished(true, formedUrl, QUrl(), contentType, file.readAll(), pPos, pSize, isBackground, internalData);
file.close();
+ }
+ else
+ {
+ // media items should be copyed in separate thread
+
+ sDownloadFileDesc desc;
+ desc.modal = false;
+ desc.srcUrl = sUrl;
+ desc.originalSrcUrl = contentSourceUrl;
+ desc.currentSize = 0;
+ desc.name = QFileInfo(url.toString()).fileName();
+ desc.totalSize = 0; // The total size will be retrieved during the download
+ desc.pos = pPos;
+ desc.size = pSize;
+ desc.isBackground = isBackground;
+
+ UBDownloadManager::downloadManager()->addFileToDownload(desc);
+ }
}
else
{
// When we fall there, it means that we are dropping something from the web to the board
sDownloadFileDesc desc;
desc.modal = true;
- desc.url = url.toString();
+ desc.srcUrl = url.toString();
desc.currentSize = 0;
desc.name = QFileInfo(url.toString()).fileName();
desc.totalSize = 0; // The total size will be retrieved during the download
@@ -1023,7 +1045,7 @@ void UBBoardController::downloadURL(const QUrl& url, const QPointF& pPos, const
}
-UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader,
+UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QUrl contentUrl, QString pContentTypeHeader,
QByteArray pData, QPointF pPos, QSize pSize,
bool isBackground, bool internalData)
{
@@ -1158,11 +1180,9 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri
qDebug() << "accepting mime type" << mimeType << "as video";
UBGraphicsMediaItem *mediaVideoItem = 0;
-
+ QUuid uuid = QUuid::createUuid();
if (pData.length() > 0)
{
- QUuid uuid = QUuid::createUuid();
-
QString destFile;
bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(selectedDocument(),
sourceUrl.toString(),
@@ -1179,16 +1199,19 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri
QUrl url = QUrl::fromLocalFile(destFile);
mediaVideoItem = mActiveScene->addMedia(url, false, pPos);
-
- mediaVideoItem->setSourceUrl(sourceUrl);
- mediaVideoItem->setUuid(uuid);
}
else
{
- mediaVideoItem = addVideo(sourceUrl, false, pPos);
+ qDebug() << sourceUrl.toString();
+ mediaVideoItem = addVideo(sourceUrl, false, pPos, true);
}
if(mediaVideoItem){
+ if (contentUrl.isEmpty())
+ mediaVideoItem->setSourceUrl(sourceUrl);
+ else
+ mediaVideoItem->setSourceUrl(contentUrl);
+ mediaVideoItem->setUuid(uuid);
connect(this, SIGNAL(activeSceneChanged()), mediaVideoItem, SLOT(activeSceneChanged()));
}
@@ -1202,10 +1225,9 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri
UBGraphicsMediaItem *audioMediaItem = 0;
+ QUuid uuid = QUuid::createUuid();
if (pData.length() > 0)
{
- QUuid uuid = QUuid::createUuid();
-
QString destFile;
bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(selectedDocument(),
sourceUrl.toString(),
@@ -1222,16 +1244,18 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri
QUrl url = QUrl::fromLocalFile(destFile);
audioMediaItem = mActiveScene->addMedia(url, false, pPos);
-
- audioMediaItem->setSourceUrl(sourceUrl);
- audioMediaItem->setUuid(uuid);
}
else
{
- audioMediaItem = addAudio(sourceUrl, false, pPos);
+ audioMediaItem = addAudio(sourceUrl, false, pPos, true);
}
if(audioMediaItem){
+ if (contentUrl.isEmpty())
+ audioMediaItem->setSourceUrl(sourceUrl);
+ else
+ audioMediaItem->setSourceUrl(contentUrl);
+ audioMediaItem->setUuid(uuid);
connect(this, SIGNAL(activeSceneChanged()), audioMediaItem, SLOT(activeSceneChanged()));
}
@@ -2027,23 +2051,28 @@ void UBBoardController::grabScene(const QRectF& pSceneRect)
}
}
-UBGraphicsMediaItem* UBBoardController::addVideo(const QUrl& pSourceUrl, bool startPlay, const QPointF& pos)
+UBGraphicsMediaItem* UBBoardController::addVideo(const QUrl& pSourceUrl, bool startPlay, const QPointF& pos, bool bUseSource)
{
QUuid uuid = QUuid::createUuid();
QUrl concreteUrl = pSourceUrl;
- QString destFile;
- bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(selectedDocument(),
- pSourceUrl.toLocalFile(),
- UBPersistenceManager::videoDirectory,
- uuid,
- destFile);
- if (!b)
+ // media file is not in document folder yet
+ if (!bUseSource)
{
- showMessage(tr("Add file operation failed: file copying error"));
- return NULL;
- }
- concreteUrl = QUrl::fromLocalFile(destFile);
+ QString destFile;
+ bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(selectedDocument(),
+ pSourceUrl.toLocalFile(),
+ UBPersistenceManager::videoDirectory,
+ uuid,
+ destFile);
+ if (!b)
+ {
+ showMessage(tr("Add file operation failed: file copying error"));
+ return NULL;
+ }
+ concreteUrl = QUrl::fromLocalFile(destFile);
+ }// else we just use source Url.
+
UBGraphicsMediaItem* vi = mActiveScene->addMedia(concreteUrl, startPlay, pos);
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
@@ -2057,23 +2086,27 @@ UBGraphicsMediaItem* UBBoardController::addVideo(const QUrl& pSourceUrl, bool st
}
-UBGraphicsMediaItem* UBBoardController::addAudio(const QUrl& pSourceUrl, bool startPlay, const QPointF& pos)
+UBGraphicsMediaItem* UBBoardController::addAudio(const QUrl& pSourceUrl, bool startPlay, const QPointF& pos, bool bUseSource)
{
QUuid uuid = QUuid::createUuid();
QUrl concreteUrl = pSourceUrl;
- QString destFile;
- bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(selectedDocument(),
- pSourceUrl.toLocalFile(),
- UBPersistenceManager::audioDirectory,
- uuid,
- destFile);
- if (!b)
+ // media file is not in document folder yet
+ if (!bUseSource)
{
- showMessage(tr("Add file operation failed: file copying error"));
- return NULL;
- }
- concreteUrl = QUrl::fromLocalFile(destFile);
+ QString destFile;
+ bool b = UBPersistenceManager::persistenceManager()->addFileToDocument(selectedDocument(),
+ pSourceUrl.toLocalFile(),
+ UBPersistenceManager::audioDirectory,
+ uuid,
+ destFile);
+ if (!b)
+ {
+ showMessage(tr("Add file operation failed: file copying error"));
+ return NULL;
+ }
+ concreteUrl = QUrl::fromLocalFile(destFile);
+ }// else we just use source Url.
UBGraphicsMediaItem* ai = mActiveScene->addMedia(concreteUrl, startPlay, pos);
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
@@ -2247,7 +2280,7 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint
if("" != url)
{
- downloadURL(url, pPos);
+ downloadURL(url, QString(), pPos);
return;
}
}
@@ -2267,7 +2300,7 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint
foreach(const QUrl url, urls){
QPointF pos(pPos + QPointF(index * 15, index * 15));
- downloadURL(url, pos, QSize(), false, internalData);
+ downloadURL(url, QString(), pos, QSize(), false, internalData);
index++;
}
@@ -2293,7 +2326,7 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint
// Sometimes, it is possible to have an URL as text. we check here if it is the case
QString qsTmp = pMimeData->text().remove(QRegExp("[\\0]"));
if(qsTmp.startsWith("http")){
- downloadURL(QUrl(qsTmp), pPos);
+ downloadURL(QUrl(qsTmp), QString(), pPos);
}
else{
mActiveScene->addTextHtml(pMimeData->html(), pPos);
@@ -2307,7 +2340,7 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint
QString qsUrl = UBPlatformUtils::urlFromClipboard();
if("" != qsUrl){
// We finally got the url of the dropped ressource! Let's import it!
- downloadURL(qsUrl, pPos);
+ downloadURL(qsUrl, qsUrl, pPos);
return;
}
#endif
diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h
index 9d810811..d7f44e37 100644
--- a/src/board/UBBoardController.h
+++ b/src/board/UBBoardController.h
@@ -193,8 +193,8 @@ class UBBoardController : public UBDocumentContainer
void firstScene();
void lastScene();
void groupButtonClicked();
- void downloadURL(const QUrl& url, const QPointF& pPos = QPointF(0.0, 0.0), const QSize& pSize = QSize(), bool isBackground = false, bool internalData = false);
- UBItem *downloadFinished(bool pSuccess, QUrl sourceUrl, QString pHeader,
+ void downloadURL(const QUrl& url, QString contentSourceUrl = QString(), const QPointF& pPos = QPointF(0.0, 0.0), const QSize& pSize = QSize(), bool isBackground = false, bool internalData = false);
+ UBItem *downloadFinished(bool pSuccess, QUrl sourceUrl, QUrl contentUrl, QString pHeader,
QByteArray pData, QPointF pPos, QSize pSize,
bool isBackground = false, bool internalData = false);
void changeBackground(bool isDark, bool isCrossed);
@@ -210,8 +210,8 @@ class UBBoardController : public UBDocumentContainer
void setRegularPageSize(bool checked);
void stylusToolChanged(int tool);
void grabScene(const QRectF& pSceneRect);
- UBGraphicsMediaItem* addVideo(const QUrl& pUrl, bool startPlay, const QPointF& pos);
- UBGraphicsMediaItem* addAudio(const QUrl& pUrl, bool startPlay, const QPointF& pos);
+ UBGraphicsMediaItem* addVideo(const QUrl& pUrl, bool startPlay, const QPointF& pos, bool bUseSource = false);
+ UBGraphicsMediaItem* addAudio(const QUrl& pUrl, bool startPlay, const QPointF& pos, bool bUseSource = false);
UBGraphicsWidgetItem *addW3cWidget(const QUrl& pUrl, const QPointF& pos);
void cut();
diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp
index 2652bb15..612813cd 100644
--- a/src/board/UBBoardPaletteManager.cpp
+++ b/src/board/UBBoardPaletteManager.cpp
@@ -995,6 +995,7 @@ void UBBoardPaletteManager::startDownloads()
mDownloadInProgress = true;
mpDownloadWidget->setVisibleState(true);
mRightPalette->addTab(mpDownloadWidget);
+ mpDownloadWidget;
}
}
diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp
index a9bbeb08..049ee301 100644
--- a/src/board/UBFeaturesController.cpp
+++ b/src/board/UBFeaturesController.cpp
@@ -711,7 +711,7 @@ void UBFeaturesController::addItemToPage(const UBFeature &item)
void UBFeaturesController::addItemAsBackground(const UBFeature &item)
{
- UBApplication::boardController->downloadURL( item.getFullPath(), QPointF(), QSize(), true );
+ UBApplication::boardController->downloadURL( item.getFullPath(), QString(), QPointF(), QSize(), true );
}
UBFeature UBFeaturesController::getDestinationFeatureForUrl( const QUrl &url )
diff --git a/src/core/UBDownloadManager.cpp b/src/core/UBDownloadManager.cpp
index 4127851f..e120038a 100644
--- a/src/core/UBDownloadManager.cpp
+++ b/src/core/UBDownloadManager.cpp
@@ -14,12 +14,79 @@
*/
#include "UBDownloadManager.h"
#include "core/UBApplication.h"
+#include "core/UBPersistenceManager.h"
#include "gui/UBMainWindow.h"
#include "board/UBBoardController.h"
#include "board/UBBoardPaletteManager.h"
+#include "frameworks/UBFileSystemUtils.h"
#include "core/memcheck.h"
+
+UBAsyncLocalFileDownloader::UBAsyncLocalFileDownloader(sDownloadFileDesc desc, QObject *parent)
+: QThread(parent)
+, mDesc(desc)
+, m_bAborting(false)
+{
+
+}
+
+UBAsyncLocalFileDownloader *UBAsyncLocalFileDownloader::download()
+{
+ if (!QFile::exists(QUrl(mDesc.srcUrl).toLocalFile())) {
+ qDebug() << "file" << mDesc.srcUrl << "does not present in fs";
+ return this;
+ }
+
+ start();
+
+ return this;
+}
+
+void UBAsyncLocalFileDownloader::run()
+{
+
+ QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(mDesc.srcUrl);
+
+ int position=mimeType.indexOf(";");
+ if(position != -1)
+ mimeType=mimeType.left(position);
+
+ UBMimeType::Enum itemMimeType = UBFileSystemUtils::mimeTypeFromString(mimeType);
+
+
+ QString destDirectory;
+ if (UBMimeType::Video == itemMimeType)
+ destDirectory = UBPersistenceManager::videoDirectory;
+ else
+ if (UBMimeType::Audio == itemMimeType)
+ destDirectory = UBPersistenceManager::audioDirectory;
+
+ if (mDesc.originalSrcUrl.isEmpty())
+ mDesc.originalSrcUrl = mDesc.srcUrl;
+
+ QString uuid = QUuid::createUuid();
+ UBPersistenceManager::persistenceManager()->addFileToDocument(UBApplication::boardController->selectedDocument(),
+ QUrl(mDesc.srcUrl).toLocalFile(),
+ destDirectory,
+ uuid,
+ mTo,
+ NULL);
+
+ if (m_bAborting)
+ {
+ if (QFile::exists(mTo))
+ QFile::remove(mTo);
+ }
+ else
+ emit signal_asyncCopyFinished(mDesc.id, !mTo.isEmpty(), QUrl::fromLocalFile(mTo), QUrl::fromLocalFile(mDesc.originalSrcUrl), "", NULL, mDesc.pos, mDesc.size, mDesc.isBackground);
+}
+
+void UBAsyncLocalFileDownloader::abort()
+{
+ m_bAborting = true;
+}
+
/** The unique instance of the download manager */
static UBDownloadManager* pInstance = NULL;
@@ -100,7 +167,7 @@ void UBDownloadManager::init()
{
mCrntDL.clear();
mPendingDL.clear();
- mReplies.clear();
+ mDownloads.clear();
mLastID = 1;
mDLAvailability.clear();
for(int i=0; iget(url, desc.pos, desc.size, desc.isBackground);
+ if (desc.srcUrl.startsWith("file://") || desc.srcUrl.startsWith("/"))
+ {
+ UBAsyncLocalFileDownloader * cpHelper = new UBAsyncLocalFileDownloader(desc, this);
+ connect(cpHelper, SIGNAL(signal_asyncCopyFinished(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool)), this, SLOT(onDownloadFinished(int, bool, QUrl, QUrl,QString, QByteArray, QPointF, QSize, bool)));
+ QObject *res = dynamic_cast(cpHelper->download());
+ if (!res)
+ delete res;
+ else
+ mDownloads[desc.id] = res;
+ }
+ else
+ {
+ UBDownloadHttpFile* http = new UBDownloadHttpFile(desc.id, this);
+ connect(http, SIGNAL(downloadProgress(int, qint64,qint64)), this, SLOT(onDownloadProgress(int,qint64,qint64)));
+ connect(http, SIGNAL(downloadFinished(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool)), this, SLOT(onDownloadFinished(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool)));
+
+ //the desc.srcUrl is encoded. So we have to decode it before.
+ QUrl url;
+ url.setEncodedUrl(desc.srcUrl.toUtf8());
+ // We send here the request and store its reply in order to be able to cancel it if needed
+ mDownloads[desc.id] = dynamic_cast(http->get(url, desc.pos, desc.size, desc.isBackground));
+ }
}
/**
@@ -356,10 +437,18 @@ void UBDownloadManager::checkIfModalRemains()
void UBDownloadManager::cancelDownloads()
{
// Stop the current downloads
- QMap::iterator it = mReplies.begin();
- for(; it!=mReplies.end();it++)
+ QMap::iterator it = mDownloads.begin();
+ for(; it!=mDownloads.end();it++)
{
- dynamic_cast(it.value())->abort();
+ QNetworkReply *netReply = dynamic_cast(it.value());
+ if (netReply)
+ netReply->abort();
+ else
+ {
+ UBAsyncLocalFileDownloader *localDownload = dynamic_cast(it.value());
+ if (localDownload)
+ localDownload->abort();
+ }
}
// Clear all the lists
@@ -372,7 +461,8 @@ void UBDownloadManager::cancelDownloads()
void UBDownloadManager::onDownloadError(int id)
{
- QNetworkReply* pReply = mReplies.value(id);
+ QNetworkReply *pReply = dynamic_cast(mDownloads.value(id));
+
if(NULL != pReply)
{
// Check which error occured:
@@ -402,9 +492,25 @@ void UBDownloadManager::finishDownloads(bool cancel)
void UBDownloadManager::cancelDownload(int id)
{
+ if (!mDownloads.size())
+ return;
+
// Stop the download
- mReplies[id]->abort();
- mReplies.remove(id);
+
+ QNetworkReply *pNetworkDownload = dynamic_cast(mDownloads[id]);
+ if (pNetworkDownload)
+ pNetworkDownload->abort();
+ else
+ {
+ UBAsyncLocalFileDownloader *pLocalDownload = dynamic_cast(mDownloads[id]);
+ if (pLocalDownload)
+ {
+ if (pLocalDownload->isRunning())
+ pLocalDownload->abort();
+ }
+ }
+
+ mDownloads.remove(id);
// Remove the canceled download from the download lists
bool bFound = false;
@@ -494,7 +600,7 @@ void UBDownloadHttpFile::onDownloadFinished(bool pSuccess, QUrl sourceUrl, QStri
if(pSuccess)
{
// Notify the end of the download
- emit downloadFinished(mId, pSuccess, sourceUrl, pContentTypeHeader, pData, pPos, pSize, isBackground);
+ emit downloadFinished(mId, pSuccess, sourceUrl, sourceUrl, pContentTypeHeader, pData, pPos, pSize, isBackground);
}
else
{
diff --git a/src/core/UBDownloadManager.h b/src/core/UBDownloadManager.h
index 2b5c52c0..cefa8f40 100644
--- a/src/core/UBDownloadManager.h
+++ b/src/core/UBDownloadManager.h
@@ -52,7 +52,8 @@ struct sDownloadFileDesc
int id;
int totalSize;
int currentSize;
- QString url;
+ QString srcUrl;
+ QString originalSrcUrl;
QString contentTypeHeader;
bool modal;
QPointF pos; // For board drop only
@@ -75,7 +76,7 @@ public:
signals:
void downloadProgress(int id, qint64 current,qint64 total);
- void downloadFinished(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
+ void downloadFinished(int id, bool pSuccess, QUrl sourceUrl, QUrl contentUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
void downloadError(int id);
private slots:
@@ -86,6 +87,28 @@ private:
int mId;
};
+class UBAsyncLocalFileDownloader : public QThread
+{
+ Q_OBJECT
+public:
+ UBAsyncLocalFileDownloader(sDownloadFileDesc desc, QObject *parent = 0);
+
+ UBAsyncLocalFileDownloader *download();
+ void run();
+ void abort();
+
+signals:
+ void finished(QString srcUrl, QString resUrl);
+ void signal_asyncCopyFinished(int id, bool pSuccess, QUrl sourceUrl, QUrl contentUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
+
+
+private:
+ sDownloadFileDesc mDesc;
+ bool m_bAborting;
+ QString mFrom;
+ QString mTo;
+};
+
class UBDownloadManager : public QObject
{
Q_OBJECT
@@ -108,7 +131,7 @@ signals:
void downloadFinished(bool pSuccess, int id, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData);
void downloadFinished(bool pSuccess, sDownloadFileDesc desc, QByteArray pData);
void downloadModalFinished();
- void addDownloadedFileToBoard(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
+ void addDownloadedFileToBoard(bool pSuccess, QUrl sourceUrl, QUrl contentUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
void addDownloadedFileToLibrary(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData);
void cancelAllDownloads();
void allDownloadsFinished();
@@ -116,7 +139,7 @@ signals:
private slots:
void onUpdateDownloadLists();
void onDownloadProgress(int id, qint64 received, qint64 total);
- void onDownloadFinished(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
+ void onDownloadFinished(int id, bool pSuccess, QUrl sourceUrl, QUrl contentUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
void onDownloadError(int id);
private:
@@ -138,7 +161,7 @@ private:
/** The current download availability (-1 = free, otherwise the file ID is recorded)*/
QVector mDLAvailability;
/** A map containing the replies of the GET operations */
- QMap mReplies;
+ QMap mDownloads;
};
#endif // UBDOWNLOADMANAGER_H
diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp
index 1faba0ce..9d3c8705 100644
--- a/src/domain/UBGraphicsMediaItem.cpp
+++ b/src/domain/UBGraphicsMediaItem.cpp
@@ -73,7 +73,11 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
mMediaObject = new Phonon::MediaObject(this);
- if (pMediaFileUrl.toLocalFile().contains("videos"))
+ QString mediaPath = pMediaFileUrl.toString();
+ if ("" == mediaPath)
+ mediaPath = pMediaFileUrl.toLocalFile();
+
+ if (mediaPath.toLower().contains("videos"))
{
mMediaType = mediaType_Video;
@@ -91,7 +95,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
haveLinkedImage = true;
}
else
- if (pMediaFileUrl.toLocalFile().contains("audios"))
+ if (mediaPath.toLower().contains("audios"))
{
mMediaType = mediaType_Audio;
mAudioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
@@ -191,7 +195,7 @@ void UBGraphicsMediaItem::setSourceUrl(const QUrl &pSourceUrl)
UBAudioPresentationWidget* pAudioWidget = dynamic_cast(mAudioWidget);
if (pAudioWidget)
{
- pAudioWidget->setTitle(UBFileSystemUtils::lastPathComponent(pSourceUrl.toString()));
+ pAudioWidget->setTitle(UBFileSystemUtils::lastPathComponent(pSourceUrl.toLocalFile()));
}
UBItem::setSourceUrl(pSourceUrl);
diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp
index 22ff3379..1b48cbf0 100644
--- a/src/domain/UBGraphicsScene.cpp
+++ b/src/domain/UBGraphicsScene.cpp
@@ -1217,6 +1217,11 @@ void UBGraphicsScene::textUndoCommandAdded(UBGraphicsTextItem *textItem)
}
UBGraphicsMediaItem* UBGraphicsScene::addMedia(const QUrl& pMediaFileUrl, bool shouldPlayAsap, const QPointF& pPos)
{
+ qDebug() << pMediaFileUrl.toLocalFile();
+ if (!QFile::exists(pMediaFileUrl.toLocalFile()))
+ if (!QFile::exists(pMediaFileUrl.toString()))
+ return NULL;
+
UBGraphicsMediaItem* mediaItem = new UBGraphicsMediaItem(pMediaFileUrl);
if(mediaItem){
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), mediaItem, SLOT(activeSceneChanged()));
@@ -1603,6 +1608,9 @@ void UBGraphicsScene::removeItem(QGraphicsItem* item)
--mItemCount;
mFastAccessItems.removeAll(item);
+ /* delete the item if it is cache to allow its reinstanciation, because Cache implements design pattern Singleton. */
+ if (dynamic_cast(item))
+ UBCoreGraphicsScene::deleteItem(item);
}
void UBGraphicsScene::removeItems(const QSet& items)
@@ -1956,17 +1964,17 @@ void UBGraphicsScene::addAristo(QPointF center)
void UBGraphicsScene::addCache()
{
- UBGraphicsCache* cache = new UBGraphicsCache();
- mTools << cache;
-
- addItem(cache);
+ UBGraphicsCache* cache = UBGraphicsCache::instance(this);
+ if (!items().contains(cache)) {
+ addItem(cache);
- cache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
+ cache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
- cache->setVisible(true);
- cache->setSelected(true);
- UBApplication::boardController->notifyCache(true);
- UBApplication::boardController->notifyPageChanged();
+ cache->setVisible(true);
+ cache->setSelected(true);
+ UBApplication::boardController->notifyCache(true);
+ UBApplication::boardController->notifyPageChanged();
+ }
}
void UBGraphicsScene::addMask(const QPointF ¢er)
diff --git a/src/frameworks/UBFileSystemUtils.cpp b/src/frameworks/UBFileSystemUtils.cpp
index 36a61945..2bde7364 100644
--- a/src/frameworks/UBFileSystemUtils.cpp
+++ b/src/frameworks/UBFileSystemUtils.cpp
@@ -19,7 +19,6 @@
#include "core/UBApplication.h"
-#include "board/UBBoardController.h"
#include "document/UBDocumentContainer.h"
#include "globals/UBGlobals.h"
@@ -854,5 +853,4 @@ QString UBFileSystemUtils::readTextFile(QString path)
}
return "";
-}
-
+}
\ No newline at end of file
diff --git a/src/frameworks/UBFileSystemUtils.h b/src/frameworks/UBFileSystemUtils.h
index 13c82dbf..6a0597f6 100644
--- a/src/frameworks/UBFileSystemUtils.h
+++ b/src/frameworks/UBFileSystemUtils.h
@@ -17,14 +17,17 @@
#define UBFILESYSTEMUTILS_H_
#include
+#include
#include "core/UB.h"
class QuaZipFile;
class UBProcessingProgressListener;
-class UBFileSystemUtils
+class UBFileSystemUtils : public QObject
{
+ Q_OBJECT
+
public:
UBFileSystemUtils();
diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp
index ee052027..ab965689 100644
--- a/src/gui/UBFeaturesWidget.cpp
+++ b/src/gui/UBFeaturesWidget.cpp
@@ -1048,8 +1048,8 @@ void UBFeatureProperties::onAddToLib()
desc.modal = false;
desc.name = QFileInfo( mpElement->getFullPath().toString()).fileName();
qDebug() << desc.name;
- desc.url = mpElement->getFullPath().toString();
- qDebug() << desc.url;
+ desc.srcUrl = mpElement->getFullPath().toString();
+ qDebug() << desc.srcUrl;
UBDownloadManager::downloadManager()->addFileToDownload(desc);
}
}
diff --git a/src/tools/UBGraphicsCache.cpp b/src/tools/UBGraphicsCache.cpp
index 7a89c534..dfde3b4f 100644
--- a/src/tools/UBGraphicsCache.cpp
+++ b/src/tools/UBGraphicsCache.cpp
@@ -24,11 +24,21 @@
#include "core/memcheck.h"
-UBGraphicsCache::UBGraphicsCache():QGraphicsRectItem()
+QMap UBGraphicsCache::sInstances;
+
+UBGraphicsCache* UBGraphicsCache::instance(UBGraphicsScene *scene)
+{
+ if (!sInstances.contains(scene))
+ sInstances.insert(scene, new UBGraphicsCache(scene));
+ return sInstances[scene];
+}
+
+UBGraphicsCache::UBGraphicsCache(UBGraphicsScene *scene) : QGraphicsRectItem()
, mMaskColor(Qt::black)
, mMaskShape(eMaskShape_Circle)
, mShapeWidth(100)
, mDrawMask(false)
+ , mScene(scene)
{
// Get the board size and pass it to the shape
QRect boardRect = UBApplication::boardController->displayView()->rect();
@@ -39,11 +49,12 @@ UBGraphicsCache::UBGraphicsCache():QGraphicsRectItem()
UBGraphicsCache::~UBGraphicsCache()
{
+ sInstances.remove(mScene);
}
UBItem* UBGraphicsCache::deepCopy() const
{
- UBGraphicsCache* copy = new UBGraphicsCache();
+ UBGraphicsCache* copy = new UBGraphicsCache(mScene);
copyItemParameters(copy);
diff --git a/src/tools/UBGraphicsCache.h b/src/tools/UBGraphicsCache.h
index 9ca07d0d..413aa352 100644
--- a/src/tools/UBGraphicsCache.h
+++ b/src/tools/UBGraphicsCache.h
@@ -30,7 +30,7 @@ typedef enum
class UBGraphicsCache : public QGraphicsRectItem, public UBItem
{
public:
- UBGraphicsCache();
+ static UBGraphicsCache* instance(UBGraphicsScene *scene);
~UBGraphicsCache();
enum { Type = UBGraphicsItemType::cacheItemType };
@@ -55,8 +55,7 @@ protected:
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
private:
- void init();
- QRectF updateRect(QPointF currentPoint);
+ static QMap sInstances;
QColor mMaskColor;
eMaskShape mMaskShape;
@@ -65,6 +64,13 @@ private:
QPointF mShapePos;
int mOldShapeWidth;
QPointF mOldShapePos;
+ UBGraphicsScene* mScene;
+
+
+ UBGraphicsCache(UBGraphicsScene *scene);
+
+ void init();
+ QRectF updateRect(QPointF currentPoint);
};
#endif // UBGRAPHICSCACHE_H
diff --git a/src/web/UBTrapFlashController.cpp b/src/web/UBTrapFlashController.cpp
index 25cb37e9..6458f203 100644
--- a/src/web/UBTrapFlashController.cpp
+++ b/src/web/UBTrapFlashController.cpp
@@ -200,7 +200,7 @@ void UBTrapFlashController::createWidget()
// flash widget
UBWebKitUtils::HtmlObject selectedObject = mAvailableFlashes.at(selectedIndex - 1);
UBApplication::applicationController->showBoard();
- UBApplication::boardController->downloadURL(QUrl(selectedObject.source), QPoint(0, 0), QSize(selectedObject.width, selectedObject.height));
+ UBApplication::boardController->downloadURL(QUrl(selectedObject.source), QString(), QPoint(0, 0), QSize(selectedObject.width, selectedObject.height));
}
QString freezedWidgetPath = UBPlatformUtils::applicationResourcesDirectory() + "/etc/freezedWidgetWrapper.html";
diff --git a/src/web/browser/WBWebTrapWebView.cpp b/src/web/browser/WBWebTrapWebView.cpp
index 971ed75c..2c97626c 100644
--- a/src/web/browser/WBWebTrapWebView.cpp
+++ b/src/web/browser/WBWebTrapWebView.cpp
@@ -281,7 +281,7 @@ void WBWebTrapWebView::trapElementAtPos(const QPoint& pos)
emit objectCaptured(QUrl(page()->currentFrame()->url().toString() + "/" + source), type,
htr.boundingRect().width(), htr.boundingRect().height());
- UBApplication::boardController->downloadURL(QUrl(source), QPointF(0.0, 0.0));
+ UBApplication::boardController->downloadURL(QUrl(source));
UBApplication::applicationController->showBoard();
}
}