Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(445)

Side by Side Diff: Source/devtools/front_end/ConsoleView.js

Issue 33143002: DevTools: Unify filtering UI (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Comments addressed Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/devtools/front_end/ConsolePanel.js ('k') | Source/devtools/front_end/FilterBar.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 18 matching lines...) Expand all
29 29
30 /** 30 /**
31 * @extends {WebInspector.View} 31 * @extends {WebInspector.View}
32 * @implements {WebInspector.Searchable} 32 * @implements {WebInspector.Searchable}
33 * @constructor 33 * @constructor
34 * @param {boolean} hideContextSelector 34 * @param {boolean} hideContextSelector
35 */ 35 */
36 WebInspector.ConsoleView = function(hideContextSelector) 36 WebInspector.ConsoleView = function(hideContextSelector)
37 { 37 {
38 WebInspector.View.call(this); 38 WebInspector.View.call(this);
39 this.registerRequiredCSS("filter.css");
40
39 this.element.classList.add("fill", "vbox"); 41 this.element.classList.add("fill", "vbox");
40 this._visibleMessagesIndices = []; 42 this._visibleMessagesIndices = [];
41 this._urlToMessageCount = {}; 43 this._urlToMessageCount = {};
42 44
43 this._clearConsoleButton = new WebInspector.StatusBarButton(WebInspector.UIS tring("Clear console log."), "clear-status-bar-item"); 45 this._clearConsoleButton = new WebInspector.StatusBarButton(WebInspector.UIS tring("Clear console log."), "clear-status-bar-item");
44 this._clearConsoleButton.addEventListener("click", this._requestClearMessage s, this); 46 this._clearConsoleButton.addEventListener("click", this._requestClearMessage s, this);
45 47
46 this._frameSelector = new WebInspector.StatusBarComboBox(this._frameChanged. bind(this), "console-context"); 48 this._frameSelector = new WebInspector.StatusBarComboBox(this._frameChanged. bind(this), "console-context");
47 this._contextSelector = new WebInspector.StatusBarComboBox(this._contextChan ged.bind(this), "console-context"); 49 this._contextSelector = new WebInspector.StatusBarComboBox(this._contextChan ged.bind(this), "console-context");
48 50
49 this._filter = new WebInspector.ConsoleViewFilter(); 51 this._filter = new WebInspector.ConsoleViewFilter();
50 this._filter.addEventListener(WebInspector.ConsoleViewFilter.Events.FilterCh anged, this._updateMessageList.bind(this)); 52 this._filter.addEventListener(WebInspector.ConsoleViewFilter.Events.FilterCh anged, this._updateMessageList.bind(this));
51 53
52 if (hideContextSelector) { 54 if (hideContextSelector) {
53 this._frameSelector.element.addStyleClass("hidden"); 55 this._frameSelector.element.addStyleClass("hidden");
54 this._contextSelector.element.addStyleClass("hidden"); 56 this._contextSelector.element.addStyleClass("hidden");
55 } 57 }
56 58
59 this._filterBar = new WebInspector.FilterBar();
60
57 var statusBarElement = this.element.createChild("div", "console-status-bar") ; 61 var statusBarElement = this.element.createChild("div", "console-status-bar") ;
62 statusBarElement.appendChild(this._filterBar.filterButton());
58 statusBarElement.appendChild(this._clearConsoleButton.element); 63 statusBarElement.appendChild(this._clearConsoleButton.element);
59 statusBarElement.appendChild(this._frameSelector.element); 64 statusBarElement.appendChild(this._frameSelector.element);
60 statusBarElement.appendChild(this._contextSelector.element); 65 statusBarElement.appendChild(this._contextSelector.element);
61 statusBarElement.appendChild(this._filter.sourceFilterButton.element); 66
62 statusBarElement.appendChild(this._filter.filterBarElement); 67 this._filtersContainer = this.element.createChild("div", "console-filters-he ader hidden");
68 this._filtersContainer.appendChild(this._filterBar.filtersElement());
69 this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggle d, this._onFiltersToggled, this);
70 this._filter.addFilters(this._filterBar);
63 71
64 this.messagesElement = document.createElement("div"); 72 this.messagesElement = document.createElement("div");
65 this.messagesElement.id = "console-messages"; 73 this.messagesElement.id = "console-messages";
66 this.messagesElement.className = "monospace"; 74 this.messagesElement.className = "monospace";
67 this.messagesElement.addEventListener("click", this._messagesClicked.bind(th is), true); 75 this.messagesElement.addEventListener("click", this._messagesClicked.bind(th is), true);
68 this.element.appendChild(this.messagesElement); 76 this.element.appendChild(this.messagesElement);
69 this._scrolledToBottom = true; 77 this._scrolledToBottom = true;
70 78
71 this.promptElement = document.createElement("div"); 79 this.promptElement = document.createElement("div");
72 this.promptElement.id = "console-prompt"; 80 this.promptElement.id = "console-prompt";
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 var resetFiltersLink = this._filterStatusMessageElement.createChild("span", "console-info node-link"); 117 var resetFiltersLink = this._filterStatusMessageElement.createChild("span", "console-info node-link");
110 resetFiltersLink.textContent = WebInspector.UIString("Show all messages."); 118 resetFiltersLink.textContent = WebInspector.UIString("Show all messages.");
111 resetFiltersLink.addEventListener("click", this._filter.reset.bind(this._fil ter), true); 119 resetFiltersLink.addEventListener("click", this._filter.reset.bind(this._fil ter), true);
112 120
113 this.messagesElement.insertBefore(this._filterStatusMessageElement, this.top Group.element); 121 this.messagesElement.insertBefore(this._filterStatusMessageElement, this.top Group.element);
114 122
115 this._updateFilterStatus(); 123 this._updateFilterStatus();
116 } 124 }
117 125
118 WebInspector.ConsoleView.prototype = { 126 WebInspector.ConsoleView.prototype = {
127 _onFiltersToggled: function(event)
128 {
129 var toggled = /** @type {boolean} */ (event.data);
130 this._filtersContainer.enableStyleClass("hidden", !toggled);
131 },
132
119 /** 133 /**
120 * @param {WebInspector.Event} event 134 * @param {WebInspector.Event} event
121 */ 135 */
122 _frameAdded: function(event) 136 _frameAdded: function(event)
123 { 137 {
124 var contextList = /** @type {WebInspector.FrameExecutionContextList} */ (event.data); 138 var contextList = /** @type {WebInspector.FrameExecutionContextList} */ (event.data);
125 this._addFrame(contextList); 139 this._addFrame(contextList);
126 }, 140 },
127 141
128 /** 142 /**
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 return; 301 return;
288 302
289 clearTimeout(this._scrollIntoViewTimer); 303 clearTimeout(this._scrollIntoViewTimer);
290 delete this._scrollIntoViewTimer; 304 delete this._scrollIntoViewTimer;
291 }, 305 },
292 306
293 /** 307 /**
294 * @param {number=} count 308 * @param {number=} count
295 */ 309 */
296 _updateFilterStatus: function(count) { 310 _updateFilterStatus: function(count) {
297 count = (typeof count === undefined) ? (WebInspector.console.messages.le ngth - this._visibleMessagesIndices.length) : count; 311 count = (typeof count === "undefined") ? (WebInspector.console.messages. length - this._visibleMessagesIndices.length) : count;
298 this._filterStatusTextElement.textContent = WebInspector.UIString(count == 1 ? "%d message is hidden by filters." : "%d messages are hidden by filters." , count); 312 this._filterStatusTextElement.textContent = WebInspector.UIString(count == 1 ? "%d message is hidden by filters." : "%d messages are hidden by filters." , count);
299 this._filterStatusMessageElement.style.display = count ? "" : "none"; 313 this._filterStatusMessageElement.style.display = count ? "" : "none";
300 }, 314 },
301 315
302 /** 316 /**
303 * @param {WebInspector.Event} event 317 * @param {WebInspector.Event} event
304 */ 318 */
305 _consoleMessageAdded: function(event) 319 _consoleMessageAdded: function(event)
306 { 320 {
307 var message = /** @type {WebInspector.ConsoleMessage} */ (event.data); 321 var message = /** @type {WebInspector.ConsoleMessage} */ (event.data);
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 delete this._searchProvider; 690 delete this._searchProvider;
677 delete this._searchResultsIndices; 691 delete this._searchResultsIndices;
678 delete this._searchRegex; 692 delete this._searchRegex;
679 }, 693 },
680 694
681 canSearchAndReplace: function() 695 canSearchAndReplace: function()
682 { 696 {
683 return false; 697 return false;
684 }, 698 },
685 699
686 canFilter: function()
687 {
688 return true;
689 },
690
691 /** 700 /**
692 * @param {string} query 701 * @param {string} query
693 * @param {boolean} shouldJump 702 * @param {boolean} shouldJump
694 * @param {WebInspector.Searchable=} self 703 * @param {WebInspector.Searchable=} self
695 */ 704 */
696 performSearch: function(query, shouldJump, self) 705 performSearch: function(query, shouldJump, self)
697 { 706 {
698 this.searchCanceled(); 707 this.searchCanceled();
699 this._searchProvider = self || this; 708 this._searchProvider = self || this;
700 WebInspector.searchController.updateSearchMatchesCount(0, this._searchPr ovider); 709 WebInspector.searchController.updateSearchMatchesCount(0, this._searchPr ovider);
(...skipping 12 matching lines...) Expand all
713 722
714 /** 723 /**
715 * @return {number} 724 * @return {number}
716 */ 725 */
717 minimalSearchQuerySize: function() 726 minimalSearchQuerySize: function()
718 { 727 {
719 return 0; 728 return 0;
720 }, 729 },
721 730
722 /** 731 /**
723 * @param {string} query
724 */
725 performFilter: function(query)
726 {
727 this._filter.performFilter(query);
728 },
729
730 /**
731 * @param {WebInspector.Searchable=} self 732 * @param {WebInspector.Searchable=} self
732 */ 733 */
733 jumpToNextSearchResult: function(self) 734 jumpToNextSearchResult: function(self)
734 { 735 {
735 if (!this._searchResultsIndices || !this._searchResultsIndices.length) 736 if (!this._searchResultsIndices || !this._searchResultsIndices.length)
736 return; 737 return;
737 this._jumpToSearchResult((this._currentSearchResultIndex + 1) % this._se archResultsIndices.length, self); 738 this._jumpToSearchResult((this._currentSearchResultIndex + 1) % this._se archResultsIndices.length, self);
738 }, 739 },
739 740
740 /** 741 /**
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 __proto__: WebInspector.View.prototype 782 __proto__: WebInspector.View.prototype
782 } 783 }
783 784
784 /** 785 /**
785 * @extends {WebInspector.Object} 786 * @extends {WebInspector.Object}
786 * @constructor 787 * @constructor
787 */ 788 */
788 WebInspector.ConsoleViewFilter = function() 789 WebInspector.ConsoleViewFilter = function()
789 { 790 {
790 this._messageURLFilters = WebInspector.settings.messageURLFilters.get(); 791 this._messageURLFilters = WebInspector.settings.messageURLFilters.get();
791 this._messageSourceFilters = WebInspector.settings.messageSourceFilters.get( ); 792 this._hideCSSErrorsInConsole = WebInspector.settings.hideCSSErrorsInConsole. get();
792 this._messageLevelFilters = WebInspector.settings.messageLevelFilters.get(); 793 this._messageLevelFilters = WebInspector.settings.messageLevelFilters.get();
793 794
794 this._sourceToKeyMap = {};
795
796 for (var key in WebInspector.ConsoleViewFilter._messageSourceGroups) {
797 if (!WebInspector.ConsoleViewFilter._messageSourceGroups[key].sources) {
798 console.assert(!this._otherKey);
799 this._otherKey = key;
800 continue;
801 }
802
803 for (var i = 0; i < WebInspector.ConsoleViewFilter._messageSourceGroups[ key].sources.length; ++i)
804 this._sourceToKeyMap[WebInspector.ConsoleViewFilter._messageSourceGr oups[key].sources[i]] = key;
805 }
806
807 this._filterChanged = this.dispatchEventToListeners.bind(this, WebInspector. ConsoleViewFilter.Events.FilterChanged); 795 this._filterChanged = this.dispatchEventToListeners.bind(this, WebInspector. ConsoleViewFilter.Events.FilterChanged);
808 796
809 WebInspector.settings.messageSourceFilters.addChangeListener(this._updateSou rceFilterButton.bind(this)); 797 WebInspector.settings.hideCSSErrorsInConsole.addChangeListener(this._updateC SSFilter.bind(this));
810 WebInspector.settings.messageLevelFilters.addChangeListener(this._updateLeve lFilterBar.bind(this)); 798 WebInspector.settings.messageLevelFilters.addChangeListener(this._updateLeve lFilter.bind(this));
811
812 this.sourceFilterButton = new WebInspector.StatusBarButton(WebInspector.UISt ring("Filter"), "console-filter", 2);
813 this.sourceFilterButton.element.addEventListener("mousedown", this._handleSo urceFilterButtonClick.bind(this), false);
814
815 this._filterBarElements = [];
816
817 this.filterBarElement = document.createElement("div");
818 this.filterBarElement.className = "scope-bar status-bar-item";
819
820 this._createLevelFilterBarElement("all", WebInspector.UIString("All"));
821
822 var dividerElement = document.createElement("div");
823 dividerElement.addStyleClass("scope-bar-divider");
824 this.filterBarElement.appendChild(dividerElement);
825
826 this._createLevelFilterBarElement("error", WebInspector.UIString("Errors"));
827 this._createLevelFilterBarElement("warning", WebInspector.UIString("Warnings "));
828 this._createLevelFilterBarElement("log", WebInspector.UIString("Logs"));
829 this._createLevelFilterBarElement("debug", WebInspector.UIString("Debug"));
830
831 this._updateLevelFilterBar();
832 this._updateSourceFilterButton();
833 }; 799 };
834 800
835 WebInspector.ConsoleViewFilter.Events = { 801 WebInspector.ConsoleViewFilter.Events = {
836 FilterChanged: "FilterChanged" 802 FilterChanged: "FilterChanged"
837 }; 803 };
838 804
839 WebInspector.ConsoleViewFilter._messageSourceGroups = { 805 WebInspector.ConsoleViewFilter.prototype = {
840 JS: { sources: [WebInspector.ConsoleMessage.MessageSource.JS], title: "JavaS cript", styleClass: "filter-type-javascript"}, 806 addFilters: function(filterBar)
841 Network: { sources: [WebInspector.ConsoleMessage.MessageSource.Network], tit le: "Network", styleClass: "filter-type-network"}, 807 {
842 Logging: { sources: [WebInspector.ConsoleMessage.MessageSource.ConsoleAPI], title: "Logging", styleClass: "filter-type-logging"}, 808 this._textFilterUI = new WebInspector.TextFilterUI();
843 CSS: { sources: [WebInspector.ConsoleMessage.MessageSource.CSS], title: "CSS ", styleClass: "filter-type-css"}, 809 this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterC hanged, this._textFilterChanged, this);
844 Other: { title: "Other", styleClass: "filter-type-other"} 810 filterBar.addFilter(this._textFilterUI);
845 };
846 811
847 WebInspector.ConsoleViewFilter.prototype = { 812 this._levelFilterUI = new WebInspector.NamedBitSetFilterUI();
813 this._levelFilterUI.addBit("error", WebInspector.UIString("Errors"));
814 this._levelFilterUI.addBit("warning", WebInspector.UIString("Warnings")) ;
815 this._levelFilterUI.addBit("log", WebInspector.UIString("Logs"));
816 this._levelFilterUI.addBit("debug", WebInspector.UIString("Debug"));
817 this._levelFilterUI.addEventListener(WebInspector.FilterUI.Events.Filter Changed, this._levelFilterChanged, this);
818 filterBar.addFilter(this._levelFilterUI);
819 this._updateLevelFilter();
820
821 this._cssFilterUI = new WebInspector.CheckboxFilterUI(WebInspector.Conso leMessage.MessageSource.CSS, WebInspector.UIString("Hide CSS"), true);
822 this._cssFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterCh anged, this._cssFilterChanged, this);
823 filterBar.addFilter(this._cssFilterUI);
824 this._updateCSSFilter();
825 },
826
827 _textFilterChanged: function(event)
828 {
829 var query = this._textFilterUI.value();
830 if (!query)
831 delete this._filterRegex;
832 else
833 this._filterRegex = createPlainTextSearchRegex(query, "gi");
834
835 this._filterChanged();
836 },
837
838 _levelFilterChanged: function(event)
839 {
840 if (this._updatingLevelFilter)
841 return;
842 var filteredOutTypes = this._levelFilterUI.filteredOutTypes();
843 this._messageLevelFilters = {};
844 for (var i = 0; i < filteredOutTypes.length; ++i)
845 this._messageLevelFilters[filteredOutTypes[i]] = true;
846 WebInspector.settings.messageLevelFilters.set(this._messageLevelFilters) ;
847 this._filterChanged();
848 },
849
850 _cssFilterChanged: function(event)
851 {
852 if (this._updatingCSSFilter)
853 return;
854
855 this._hideCSSErrorsInConsole = this._cssFilterUI.checked();
856 WebInspector.settings.hideCSSErrorsInConsole.set(this._hideCSSErrorsInCo nsole);
857 this._filterChanged();
858 },
859
848 /** 860 /**
849 * @param {string} url 861 * @param {string} url
850 */ 862 */
851 addMessageURLFilter: function(url) 863 addMessageURLFilter: function(url)
852 { 864 {
853 this._messageURLFilters[url] = true; 865 this._messageURLFilters[url] = true;
854 WebInspector.settings.messageURLFilters.set(this._messageURLFilters); 866 WebInspector.settings.messageURLFilters.set(this._messageURLFilters);
855 this._filterChanged(); 867 this._filterChanged();
856 }, 868 },
857 869
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 903
892 if (message.level && this._messageLevelFilters[message.level]) 904 if (message.level && this._messageLevelFilters[message.level])
893 return false; 905 return false;
894 906
895 if (this._filterRegex) { 907 if (this._filterRegex) {
896 this._filterRegex.lastIndex = 0; 908 this._filterRegex.lastIndex = 0;
897 if (!message.matchesRegex(this._filterRegex)) 909 if (!message.matchesRegex(this._filterRegex))
898 return false; 910 return false;
899 } 911 }
900 912
901 // We store group keys, and we have resolved group by message source 913 if (message.source && message.source === WebInspector.ConsoleMessage.Mes sageSource.CSS && this._hideCSSErrorsInConsole)
902 if (message.source) { 914 return false;
903 if (this._sourceToKeyMap[message.source])
904 return !this._messageSourceFilters[this._sourceToKeyMap[message. source]];
905 else
906 return !this._messageSourceFilters[this._otherKey];
907 }
908
909 915
910 return true; 916 return true;
911 }, 917 },
912 918
913 reset: function() 919 reset: function()
914 { 920 {
915 this._messageSourceFilters = {}; 921 this._hideCSSErrorsInConsole = false;
916 WebInspector.settings.messageSourceFilters.set(this._messageSourceFilter s); 922 WebInspector.settings.hideCSSErrorsInConsole.set(this._hideCSSErrorsInCo nsole);
917 this._messageURLFilters = {}; 923 this._messageURLFilters = {};
918 WebInspector.settings.messageURLFilters.set(this._messageURLFilters); 924 WebInspector.settings.messageURLFilters.set(this._messageURLFilters);
919 this._messageLevelFilters = {}; 925 this._messageLevelFilters = {};
920 WebInspector.settings.messageLevelFilters.set(this._messageLevelFilters) ; 926 WebInspector.settings.messageLevelFilters.set(this._messageLevelFilters) ;
921 this._filterChanged(); 927 this._filterChanged();
922 }, 928 },
923 929
924 /** 930 /**
925 * @param {string} query
926 */
927 performFilter: function(query)
928 {
929 if (!query)
930 delete this._filterRegex;
931 else
932 this._filterRegex = createPlainTextSearchRegex(query, "gi");
933
934 this._filterChanged();
935 },
936
937 /**
938 * @param {string} sourceGroup
939 * @private
940 */
941 _toggleMessageSourceFilter: function(sourceGroup)
942 {
943 if (!this._messageSourceFilters[sourceGroup])
944 this._messageSourceFilters[sourceGroup] = true;
945 else
946 delete this._messageSourceFilters[sourceGroup];
947
948 WebInspector.settings.messageSourceFilters.set(this._messageSourceFilter s);
949 this._filterChanged();
950 },
951
952 /**
953 * @private 931 * @private
954 */ 932 */
955 _updateSourceFilterButton: function() 933 _updateLevelFilter: function()
956 { 934 {
957 var hasActiveSourceFilter = false; 935 this._updatingLevelFilter = true;
958 for (var sourceGroup in WebInspector.ConsoleViewFilter._messageSourceGro ups) { 936 var filteredOutTypes = Object.keys(this._messageLevelFilters);
959 if (this._messageSourceFilters[sourceGroup]) { 937 this._levelFilterUI.setFilteredOutTypes(filteredOutTypes);
960 hasActiveSourceFilter = true; 938 delete this._updatingLevelFilter;
961 break;
962 }
963 }
964
965 this.sourceFilterButton.state = hasActiveSourceFilter;
966 },
967
968 /**
969 * @param {Event} event
970 * @returns {WebInspector.ContextMenu}
971 * @private
972 */
973 _createSourceFilterMenu: function(event)
974 {
975 var menu = new WebInspector.ContextMenu(event);
976
977 for (var sourceGroup in WebInspector.ConsoleViewFilter._messageSourceGro ups) {
978 var filter = WebInspector.ConsoleViewFilter._messageSourceGroups[sou rceGroup];
979
980 menu.appendCheckboxItem(WebInspector.UIString(WebInspector.UIString( filter.title)), this._toggleMessageSourceFilter.bind(this, sourceGroup), !this._ messageSourceFilters[sourceGroup]);
981 }
982
983 return menu;
984 },
985
986 /**
987 * @param {string} level
988 * @param {string} label
989 * @private
990 */
991 _createLevelFilterBarElement: function(level, label)
992 {
993 var categoryElement = document.createElement("li");
994 categoryElement.category = level;
995 categoryElement.className = level;
996 categoryElement.textContent = label;
997 categoryElement.addEventListener("click", this._toggleLevelFilter.bind(t his, level), false);
998
999 this._filterBarElements[level] = categoryElement;
1000 this.filterBarElement.appendChild(categoryElement);
1001 },
1002
1003 /**
1004 * @param {string} level
1005 * @param {Event} event
1006 * @private
1007 */
1008 _toggleLevelFilter: function(level, event)
1009 {
1010 var isMac = WebInspector.isMac();
1011 var selectMultiple = false;
1012 if (isMac && event.metaKey && !event.ctrlKey && !event.altKey && !event. shiftKey)
1013 selectMultiple = true;
1014 if (!isMac && event.ctrlKey && !event.metaKey && !event.altKey && !event .shiftKey)
1015 selectMultiple = true;
1016
1017 if (level === "all")
1018 this._messageLevelFilters = {};
1019 else {
1020 if (!selectMultiple) {
1021 this._messageLevelFilters = {error: true, warning: true, log: tr ue, debug: true};
1022 delete this._messageLevelFilters[level];
1023 } else {
1024 if (this._messageLevelFilters[level])
1025 delete this._messageLevelFilters[level];
1026 else
1027 this._messageLevelFilters[level] = true;
1028 }
1029 }
1030
1031 WebInspector.settings.messageLevelFilters.set(this._messageLevelFilters) ;
1032 this._filterChanged();
1033 }, 939 },
1034 940
1035 /** 941 /**
1036 * @private 942 * @private
1037 */ 943 */
1038 _updateLevelFilterBar: function() 944 _updateCSSFilter: function()
1039 { 945 {
1040 var all = !(this._messageLevelFilters["error"] || this._messageLevelFilt ers["warning"] || this._messageLevelFilters["log"] || this._messageLevelFilters[ "debug"]); 946 this._updatingCSSFilter = true;
1041 947 this._cssFilterUI.setChecked(this._hideCSSErrorsInConsole);
1042 this._filterBarElements["all"].enableStyleClass("selected", all); 948 delete this._updatingCSSFilter;
1043
1044 this._filterBarElements["error"].enableStyleClass("selected", !all && !t his._messageLevelFilters["error"]);
1045 this._filterBarElements["warning"].enableStyleClass("selected", !all && !this._messageLevelFilters["warning"]);
1046 this._filterBarElements["log"].enableStyleClass("selected", !all && !thi s._messageLevelFilters["log"]);
1047 this._filterBarElements["debug"].enableStyleClass("selected", !all && !t his._messageLevelFilters["debug"]);
1048 },
1049
1050 /**
1051 * @param {Event} event
1052 * @private
1053 */
1054 _handleSourceFilterButtonClick: function(event)
1055 {
1056 if (!event.button)
1057 this._createSourceFilterMenu(event).showSoftMenu();
1058 }, 949 },
1059 950
1060 __proto__: WebInspector.Object.prototype 951 __proto__: WebInspector.Object.prototype
1061 }; 952 };
1062 953
1063 954
1064 /** 955 /**
1065 * @constructor 956 * @constructor
1066 * @extends WebInspector.ConsoleMessage 957 * @extends WebInspector.ConsoleMessage
1067 */ 958 */
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1241 1132
1242 /** 1133 /**
1243 * @type {?WebInspector.ConsoleView} 1134 * @type {?WebInspector.ConsoleView}
1244 */ 1135 */
1245 WebInspector.consoleView = null; 1136 WebInspector.consoleView = null;
1246 1137
1247 WebInspector.ConsoleMessage.create = function(source, level, message, type, url, line, column, repeatCount, parameters, stackTrace, requestId, isOutdated) 1138 WebInspector.ConsoleMessage.create = function(source, level, message, type, url, line, column, repeatCount, parameters, stackTrace, requestId, isOutdated)
1248 { 1139 {
1249 return new WebInspector.ConsoleMessageImpl(source, level, message, WebInspec tor.consoleView._linkifier, type, url, line, column, repeatCount, parameters, st ackTrace, requestId, isOutdated); 1140 return new WebInspector.ConsoleMessageImpl(source, level, message, WebInspec tor.consoleView._linkifier, type, url, line, column, repeatCount, parameters, st ackTrace, requestId, isOutdated);
1250 } 1141 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/ConsolePanel.js ('k') | Source/devtools/front_end/FilterBar.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698