aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/clipboard/internal-ops/elements-clipboard-agent.js6
-rw-r--r--js/controllers/objects-controller.js6
-rw-r--r--js/controllers/presets-controller.js20
-rwxr-xr-xjs/controllers/styles-controller.js9
-rwxr-xr-xjs/ninja.reel/ninja.js2
-rwxr-xr-xjs/panels/CSSPanel/css-shorthand-map.js11
-rw-r--r--js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js40
-rw-r--r--js/panels/css-panel/styles-view-delegate.js22
-rwxr-xr-xjs/panels/properties.reel/properties.css8
-rwxr-xr-xjs/panels/properties.reel/sections/custom.reel/custom.js2
-rwxr-xr-xjs/stage/binding-view.reel/binding-hud-option.reel/binding-hud-option.js30
-rwxr-xr-xjs/stage/binding-view.reel/binding-hud.reel/binding-hud.css38
-rwxr-xr-xjs/stage/binding-view.reel/binding-hud.reel/binding-hud.html3
-rwxr-xr-xjs/stage/binding-view.reel/binding-hud.reel/binding-hud.js105
-rwxr-xr-xjs/stage/binding-view.reel/binding-view.html8
-rwxr-xr-xjs/stage/binding-view.reel/binding-view.js38
-rw-r--r--js/tools/bindingTool.js20
17 files changed, 259 insertions, 109 deletions
diff --git a/js/clipboard/internal-ops/elements-clipboard-agent.js b/js/clipboard/internal-ops/elements-clipboard-agent.js
index cd8de46e..1a4bfdba 100644
--- a/js/clipboard/internal-ops/elements-clipboard-agent.js
+++ b/js/clipboard/internal-ops/elements-clipboard-agent.js
@@ -232,7 +232,8 @@ var ElementsClipboardAgent = exports.ElementsClipboardAgent = Montage.create(Com
232 canvas.height = sourceCanvas.height; 232 canvas.height = sourceCanvas.height;
233 //end - clone copied canvas 233 //end - clone copied canvas
234 234
235 if (!canvas.getAttribute( "data-RDGE-id" )) canvas.setAttribute( "data-RDGE-id", document.application.njUtils.generateRandom() ); 235 //genenerate data-RDGE-id only for shapes
236 if (sourceCanvas.elementModel.shapeModel && !canvas.getAttribute( "data-RDGE-id" )) canvas.setAttribute( "data-RDGE-id", document.application.njUtils.generateRandom() );
236 237
237 if(sourceCanvas.ownerDocument.defaultView.getComputedStyle(sourceCanvas).getPropertyValue("position") === "absolute"){ 238 if(sourceCanvas.ownerDocument.defaultView.getComputedStyle(sourceCanvas).getPropertyValue("position") === "absolute"){
238 styles = canvas.elementModel.data || {}; 239 styles = canvas.elementModel.data || {};
@@ -275,7 +276,8 @@ var ElementsClipboardAgent = exports.ElementsClipboardAgent = Montage.create(Com
275 canvas.width = styles.width; 276 canvas.width = styles.width;
276 canvas.height = styles.height; 277 canvas.height = styles.height;
277 278
278 if (!canvas.getAttribute( "data-RDGE-id" )) canvas.setAttribute( "data-RDGE-id", document.application.njUtils.generateRandom() ); 279 //genenerate data-RDGE-id only for shapes
280 if (worldJson && !canvas.getAttribute( "data-RDGE-id" )) canvas.setAttribute( "data-RDGE-id", document.application.njUtils.generateRandom() );
279 281
280 this.pastePositioned(canvas, styles, false/*from copy*/); 282 this.pastePositioned(canvas, styles, false/*from copy*/);
281 283
diff --git a/js/controllers/objects-controller.js b/js/controllers/objects-controller.js
index 6557c14e..6ca869ba 100644
--- a/js/controllers/objects-controller.js
+++ b/js/controllers/objects-controller.js
@@ -27,7 +27,7 @@ var objectsController = exports.ObjectsController = Montage.create(Montage, {
27 setTimeout(function() { 27 setTimeout(function() {
28 this.bindToModelObjects(); 28 this.bindToModelObjects();
29 }.bind(this), 1000); 29 }.bind(this), 1000);
30 30 this.currentObjectBindings = [];
31 this._currentDocument = doc; 31 this._currentDocument = doc;
32 }, 32 },
33 enumerable : false 33 enumerable : false
@@ -150,9 +150,9 @@ var objectsController = exports.ObjectsController = Montage.create(Montage, {
150 var properties = []; 150 var properties = [];
151 151
152 for(var key in object) { 152 for(var key in object) {
153 if(object.hasOwnProperty(key)) { 153 //if(object.hasOwnProperty(key)) {
154 properties.push(key); 154 properties.push(key);
155 } 155 //}
156 } 156 }
157 157
158 if(excludeUnderscoreProperties) { 158 if(excludeUnderscoreProperties) {
diff --git a/js/controllers/presets-controller.js b/js/controllers/presets-controller.js
index 4c177189..65a56a74 100644
--- a/js/controllers/presets-controller.js
+++ b/js/controllers/presets-controller.js
@@ -53,6 +53,8 @@ exports.PresetsController = Montage.create(Component, {
53 //// TODO: replace this hack when webkit supports transitionStart event (see above) 53 //// TODO: replace this hack when webkit supports transitionStart event (see above)
54 window.clearTimeout(el.njTimeout); 54 window.clearTimeout(el.njTimeout);
55 55
56 this._dispatchChange();
57
56 el.classList.remove(this.transitionClass); 58 el.classList.remove(this.transitionClass);
57 el.removeEventListener("webkitTransitionEnd", this, true); 59 el.removeEventListener("webkitTransitionEnd", this, true);
58 } 60 }
@@ -107,6 +109,10 @@ exports.PresetsController = Montage.create(Component, {
107 } 109 }
108 }, this); 110 }, this);
109 111
112 if(!useTransition) {
113 this._dispatchChange();
114 }
115
110 } 116 }
111 }, 117 },
112 118
@@ -126,5 +132,19 @@ exports.PresetsController = Montage.create(Component, {
126 132
127 return keysString; 133 return keysString;
128 } 134 }
135 },
136
137 _dispatchChange : {
138 value: function(property, value) {
139 this.application.ninja.stage.updatedStage = true;
140 NJevent('elementChange', {
141 type : 'presetChange',
142 data: {
143 "prop": property,
144 "value": value
145 },
146 redraw: null
147 });
148 }
129 } 149 }
130}); \ No newline at end of file 150}); \ No newline at end of file
diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js
index e7f95335..478fc1db 100755
--- a/js/controllers/styles-controller.js
+++ b/js/controllers/styles-controller.js
@@ -213,6 +213,9 @@ var stylesController = exports.StylesController = Montage.create(Component, {
213 213
214 stylesheet.insertRule(ruleText, index); 214 stylesheet.insertRule(ruleText, index);
215 215
216 ///// Invalidate cache because rule dominance is affected
217 this._clearCache();
218
216 this.styleSheetModified(stylesheet); 219 this.styleSheetModified(stylesheet);
217 220
218 rule = stylesheet.rules[index]; 221 rule = stylesheet.rules[index];
@@ -775,7 +778,7 @@ var stylesController = exports.StylesController = Montage.create(Component, {
775 var a = this._getMostSpecificSelectorForElement(element, rule1[this.CONST.SPECIFICITY_KEY]), 778 var a = this._getMostSpecificSelectorForElement(element, rule1[this.CONST.SPECIFICITY_KEY]),
776 b = this._getMostSpecificSelectorForElement(element, rule2[this.CONST.SPECIFICITY_KEY]), 779 b = this._getMostSpecificSelectorForElement(element, rule2[this.CONST.SPECIFICITY_KEY]),
777 win = element.ownerDocument.defaultView, 780 win = element.ownerDocument.defaultView,
778 order; 781 order, sheetAIndex, sheetBIndex, ruleAIndex, ruleBIndex;
779 782
780 order = this.compareSpecificity(a.specificity, b.specificity); 783 order = this.compareSpecificity(a.specificity, b.specificity);
781 784
@@ -786,9 +789,9 @@ var stylesController = exports.StylesController = Montage.create(Component, {
786 /// If tied again (same sheet), determine which is further down in the sheet 789 /// If tied again (same sheet), determine which is further down in the sheet
787 if(sheetAIndex === sheetBIndex) { 790 if(sheetAIndex === sheetBIndex) {
788 ruleAIndex = this.getRuleIndex(rule1); ruleBIndex = this.getRuleIndex(rule2); 791 ruleAIndex = this.getRuleIndex(rule1); ruleBIndex = this.getRuleIndex(rule2);
789 return ruleAIndex < ruleBIndex ? 1 : (ruleAIndex > ruleBIndex) ? -1 : 0; 792 return ruleAIndex < ruleBIndex ? false : (ruleAIndex > ruleBIndex) ? true : false;
790 } else { 793 } else {
791 return sheetAIndex < sheetBIndex ? 1 : (sheetAIndex > sheetBIndex) ? -1 : 0; 794 return sheetAIndex < sheetBIndex ? false : (sheetAIndex > sheetBIndex) ? true : false;
792 } 795 }
793 } 796 }
794 797
diff --git a/js/ninja.reel/ninja.js b/js/ninja.reel/ninja.js
index e325316b..94f69ed8 100755
--- a/js/ninja.reel/ninja.js
+++ b/js/ninja.reel/ninja.js
@@ -516,8 +516,10 @@ exports.Ninja = Montage.create(Component, {
516 516
517 if(this.appModel.livePreview) { 517 if(this.appModel.livePreview) {
518 transitionStopRule = "nj-css-garbage-selector"; 518 transitionStopRule = "nj-css-garbage-selector";
519 this.stage.bindingView.hide = true;
519 } else { 520 } else {
520 transitionStopRule = "*" 521 transitionStopRule = "*"
522 this.stage.bindingView.hide = false;
521 } 523 }
522 524
523 this.application.ninja.stylesController._stageStylesheet.rules[0].selectorText = transitionStopRule; 525 this.application.ninja.stylesController._stageStylesheet.rules[0].selectorText = transitionStopRule;
diff --git a/js/panels/CSSPanel/css-shorthand-map.js b/js/panels/CSSPanel/css-shorthand-map.js
index d469e2a1..e38627f7 100755
--- a/js/panels/CSSPanel/css-shorthand-map.js
+++ b/js/panels/CSSPanel/css-shorthand-map.js
@@ -68,7 +68,15 @@ exports.CSS_SHORTHAND_MAP = {
68 'padding-left' : ['padding'], 68 'padding-left' : ['padding'],
69 'padding-right' : ['padding'], 69 'padding-right' : ['padding'],
70 'padding-top' : ['padding'], 70 'padding-top' : ['padding'],
71 71
72 '-webkit-animation-name' : ['-webkit-animation'],
73 '-webkit-animation-duration' : ['-webkit-animation'],
74 '-webkit-animation-timing-function' : ['-webkit-animation'],
75 '-webkit-animation-delay' : ['-webkit-animation'],
76 '-webkit-animation-iteration-count' : ['-webkit-animation'],
77 '-webkit-animation-direction' : ['-webkit-animation'],
78 '-webkit-animation-fill-mode' : ['-webkit-animation'],
79
72 '-webkit-transition-property' : ['-webkit-transition'], 80 '-webkit-transition-property' : ['-webkit-transition'],
73 '-webkit-transition-duration' : ['-webkit-transition'], 81 '-webkit-transition-duration' : ['-webkit-transition'],
74 '-webkit-transition-timing-function' : ['-webkit-transition'], 82 '-webkit-transition-timing-function' : ['-webkit-transition'],
@@ -91,6 +99,7 @@ exports.CSS_SHORTHAND_TO_SUBPROP_MAP = {
91 'list' : ["list-style-type", "list-style-image", "list-style-position"], 99 'list' : ["list-style-type", "list-style-image", "list-style-position"],
92 'margin' : ["margin-top", "margin-right", "margin-bottom", "margin-left"], 100 'margin' : ["margin-top", "margin-right", "margin-bottom", "margin-left"],
93 'padding' : ["padding-top", "padding-right", "padding-bottom", "padding-left"], 101 'padding' : ["padding-top", "padding-right", "padding-bottom", "padding-left"],
102 '-webkit-animation': ["webkit-animation-name", "webkit-animation-duration", "webkit-animation-timing-function", "webkit-animation-delay", "webkit-animation-iteration-count", "webkit-animation-direction", "webkit-animation-fill-mode"],
94 '-webkit-transition' : ["-webkit-transition-property", "-webkit-transition-duration", 103 '-webkit-transition' : ["-webkit-transition-property", "-webkit-transition-duration",
95 "-webkit-t