OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> | 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> |
4 * Copyright (C) 2009 Joseph Pecoraro | 4 * Copyright (C) 2009 Joseph Pecoraro |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * | 9 * |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 /** | 247 /** |
248 * @param {!WebInspector.DOMNode} node | 248 * @param {!WebInspector.DOMNode} node |
249 * @param {string} pseudoClass | 249 * @param {string} pseudoClass |
250 * @param {boolean} enable | 250 * @param {boolean} enable |
251 */ | 251 */ |
252 _setPseudoClassForNode: function(node, pseudoClass, enable) | 252 _setPseudoClassForNode: function(node, pseudoClass, enable) |
253 { | 253 { |
254 if (!node || !node.target().cssModel.forcePseudoState(node, pseudoClass,
enable)) | 254 if (!node || !node.target().cssModel.forcePseudoState(node, pseudoClass,
enable)) |
255 return; | 255 return; |
256 | 256 |
257 this._targetToTreeOutline.get(node.target()).updateOpenCloseTags(node); | 257 this._treeOutlineForNode(node).updateOpenCloseTags(node); |
258 this._metricsPaneEdited(); | 258 this._metricsPaneEdited(); |
259 this._stylesPaneEdited(); | 259 this._stylesPaneEdited(); |
260 | 260 |
261 WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMet
rics.UserAction, { | 261 WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMet
rics.UserAction, { |
262 action: WebInspector.UserMetrics.UserActionNames.ForcedElementState, | 262 action: WebInspector.UserMetrics.UserActionNames.ForcedElementState, |
263 selector: WebInspector.DOMPresentationUtils.fullQualifiedSelector(no
de, false), | 263 selector: WebInspector.DOMPresentationUtils.fullQualifiedSelector(no
de, false), |
264 enabled: enable, | 264 enabled: enable, |
265 state: pseudoClass | 265 state: pseudoClass |
266 }); | 266 }); |
267 }, | 267 }, |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 { | 451 { |
452 if (event.data) | 452 if (event.data) |
453 this.contentElement.classList.remove("nowrap"); | 453 this.contentElement.classList.remove("nowrap"); |
454 else | 454 else |
455 this.contentElement.classList.add("nowrap"); | 455 this.contentElement.classList.add("nowrap"); |
456 | 456 |
457 var selectedNode = this.selectedDOMNode(); | 457 var selectedNode = this.selectedDOMNode(); |
458 if (!selectedNode) | 458 if (!selectedNode) |
459 return; | 459 return; |
460 | 460 |
461 var treeOutline = this._targetToTreeOutline.get(selectedNode.target()); | 461 var treeElement = this._treeElementForNode(selectedNode); |
462 var treeElement = treeOutline.findTreeElement(selectedNode); | |
463 if (treeElement) | 462 if (treeElement) |
464 treeElement.updateSelection(); // Recalculate selection highlight di
mensions. | 463 treeElement.updateSelection(); // Recalculate selection highlight di
mensions. |
465 }, | 464 }, |
466 | 465 |
467 switchToAndFocus: function(node) | 466 switchToAndFocus: function(node) |
468 { | 467 { |
469 // Reset search restore. | 468 // Reset search restore. |
470 this._searchableView.cancelSearch(); | 469 this._searchableView.cancelSearch(); |
471 WebInspector.inspectorView.setCurrentPanel(this); | 470 WebInspector.inspectorView.setCurrentPanel(this); |
472 this.selectDOMNode(node, true); | 471 this.selectDOMNode(node, true); |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
614 } | 613 } |
615 | 614 |
616 if (typeof searchResult.node === "undefined") { | 615 if (typeof searchResult.node === "undefined") { |
617 // No data for slot, request it. | 616 // No data for slot, request it. |
618 searchResult.target.domModel.searchResult(searchResult.index, search
Callback.bind(this)); | 617 searchResult.target.domModel.searchResult(searchResult.index, search
Callback.bind(this)); |
619 return; | 618 return; |
620 } | 619 } |
621 | 620 |
622 this._searchableView.updateCurrentMatchIndex(index); | 621 this._searchableView.updateCurrentMatchIndex(index); |
623 | 622 |
624 var treeOutline = this._targetToTreeOutline.get(searchResult.target); | 623 var treeElement = this._treeElementForNode(searchResult.node); |
625 var treeElement = treeOutline.findTreeElement(searchResult.node); | |
626 if (treeElement) { | 624 if (treeElement) { |
627 treeElement.highlightSearchResults(this._searchQuery); | 625 treeElement.highlightSearchResults(this._searchQuery); |
628 treeElement.reveal(); | 626 treeElement.reveal(); |
629 var matches = treeElement.listItemElement.getElementsByClassName("hi
ghlighted-search-result"); | 627 var matches = treeElement.listItemElement.getElementsByClassName("hi
ghlighted-search-result"); |
630 if (matches.length) | 628 if (matches.length) |
631 matches[0].scrollIntoViewIfNeeded(); | 629 matches[0].scrollIntoViewIfNeeded(); |
632 } | 630 } |
633 }, | 631 }, |
634 | 632 |
635 _hideSearchHighlights: function() | 633 _hideSearchHighlights: function() |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1190 | 1188 |
1191 if (!treeOutline.editing()) { | 1189 if (!treeOutline.editing()) { |
1192 handleUndoRedo.call(this, treeOutline); | 1190 handleUndoRedo.call(this, treeOutline); |
1193 if (event.handled) | 1191 if (event.handled) |
1194 return; | 1192 return; |
1195 } | 1193 } |
1196 | 1194 |
1197 treeOutline.handleShortcut(event); | 1195 treeOutline.handleShortcut(event); |
1198 }, | 1196 }, |
1199 | 1197 |
1200 handleCopyEvent: function(event) | 1198 /** |
| 1199 * @param {?WebInspector.DOMNode} node |
| 1200 * @return {?WebInspector.ElementsTreeOutline} |
| 1201 */ |
| 1202 _treeOutlineForNode: function(node) |
1201 { | 1203 { |
1202 var currentFocusElement = WebInspector.currentFocusElement(); | 1204 if (!node) |
1203 if (currentFocusElement && WebInspector.isBeingEdited(currentFocusElemen
t)) | 1205 return null; |
1204 return; | 1206 return this._targetToTreeOutline.get(node.target()) || null; |
1205 | |
1206 // Don't prevent the normal copy if the user has a selection. | |
1207 if (!window.getSelection().isCollapsed) | |
1208 return; | |
1209 event.clipboardData.clearData(); | |
1210 event.preventDefault(); | |
1211 this.selectedDOMNode().copyNode(); | |
1212 }, | 1207 }, |
1213 | 1208 |
1214 /** | 1209 /** |
| 1210 * @param {!WebInspector.DOMNode} node |
| 1211 * @return {?WebInspector.ElementsTreeElement} |
| 1212 */ |
| 1213 _treeElementForNode: function(node) |
| 1214 { |
| 1215 var treeOutline = this._treeOutlineForNode(node); |
| 1216 return /** @type {?WebInspector.ElementsTreeElement} */ (treeOutline.fin
dTreeElement(node)); |
| 1217 }, |
| 1218 |
| 1219 /** |
| 1220 * @param {!Event} event |
| 1221 */ |
| 1222 handleCopyEvent: function(event) |
| 1223 { |
| 1224 var treeOutline = this._treeOutlineForNode(this.selectedDOMNode()); |
| 1225 if (treeOutline) |
| 1226 treeOutline.handleCopyOrCutEvent(false, event); |
| 1227 }, |
| 1228 |
| 1229 /** |
| 1230 * @param {!Event} event |
| 1231 */ |
| 1232 handleCutEvent: function(event) |
| 1233 { |
| 1234 var treeOutline = this._treeOutlineForNode(this.selectedDOMNode()); |
| 1235 if (treeOutline) |
| 1236 treeOutline.handleCopyOrCutEvent(true, event); |
| 1237 }, |
| 1238 |
| 1239 /** |
| 1240 * @param {!Event} event |
| 1241 */ |
| 1242 handlePasteEvent: function(event) |
| 1243 { |
| 1244 var treeOutline = this._treeOutlineForNode(this.selectedDOMNode()); |
| 1245 if (treeOutline) |
| 1246 treeOutline.handlePasteEvent(event); |
| 1247 }, |
| 1248 |
| 1249 /** |
1215 * @param {!WebInspector.DOMNode} node | 1250 * @param {!WebInspector.DOMNode} node |
1216 * @return {!WebInspector.DOMNode} | 1251 * @return {!WebInspector.DOMNode} |
1217 */ | 1252 */ |
1218 _leaveUserAgentShadowDOM: function(node) | 1253 _leaveUserAgentShadowDOM: function(node) |
1219 { | 1254 { |
1220 var userAgentShadowRoot = node.ancestorUserAgentShadowRoot(); | 1255 var userAgentShadowRoot = node.ancestorUserAgentShadowRoot(); |
1221 return userAgentShadowRoot ? /** @type {!WebInspector.DOMNode} */ (userA
gentShadowRoot.parentNode) : node; | 1256 return userAgentShadowRoot ? /** @type {!WebInspector.DOMNode} */ (userA
gentShadowRoot.parentNode) : node; |
1222 }, | 1257 }, |
1223 | 1258 |
1224 /** | 1259 /** |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1501 /** | 1536 /** |
1502 * @suppressReceiverCheck | 1537 * @suppressReceiverCheck |
1503 * @this {Element} | 1538 * @this {Element} |
1504 */ | 1539 */ |
1505 function parentElement() | 1540 function parentElement() |
1506 { | 1541 { |
1507 return this.parentElement; | 1542 return this.parentElement; |
1508 } | 1543 } |
1509 } | 1544 } |
1510 } | 1545 } |
OLD | NEW |