@@ -79,60 +79,96 @@ define([
79
79
} ;
80
80
}
81
81
82
- function toggle_timing_display ( cell , vis ) {
83
- if ( cell instanceof CodeCell ) {
84
- var ce = cell . element ;
85
- var timing_area = ce . find ( '.timing_area' ) ;
86
- if ( timing_area . length > 0 ) {
87
- if ( vis === undefined ) {
88
- vis = ! timing_area . is ( ':visible' ) ;
82
+ function toggle_timing_display ( cells , vis ) {
83
+ for ( var i = 0 ; i < cells . length ; i ++ ) {
84
+ var cell = cells [ i ] ;
85
+ if ( cell instanceof CodeCell ) {
86
+ var ce = cell . element ;
87
+ var timing_area = ce . find ( '.timing_area' ) ;
88
+ if ( timing_area . length > 0 ) {
89
+ if ( vis === undefined ) {
90
+ vis = ! timing_area . is ( ':visible' ) ;
91
+ }
92
+ timing_area . toggle ( vis ) ;
93
+ return vis ;
89
94
}
90
- timing_area . toggle ( vis ) ;
91
- return vis ;
92
95
}
93
96
}
94
97
}
95
98
96
- function toggle_timing_display_multiple ( cells , vis ) {
97
- for ( var i = 0 ; i < cells . length ; i ++ ) {
98
- if ( cells [ i ] instanceof CodeCell ) {
99
- vis = toggle_timing_display ( cells [ i ] , vis ) ;
100
- }
101
- }
99
+ function clear_timing_data ( cells ) {
100
+ cells . forEach ( function ( cell , idx , arr ) {
101
+ delete cell . metadata . ExecuteTime ;
102
+ cell . element . find ( '.timing_area' ) . remove ( ) ;
103
+ } ) ;
104
+ events . trigger ( 'set_dirty.Notebook' , { value : true } ) ;
102
105
}
103
106
104
- function toggle_timing_display_selected ( ) {
105
- toggle_timing_display_multiple ( Jupyter . notebook . get_selected_cells ( ) ) ;
107
+ function clear_timing_data_all ( ) {
108
+ console . log ( log_prefix , 'Clearing all timing data' ) ;
109
+ clear_timing_data ( Jupyter . notebook . get_cells ( ) ) ;
106
110
}
107
111
108
112
function create_menu ( ) {
109
- var menu_toggle_timings = $ ( '<li/>' )
113
+ var timings_menu_item = $ ( '<li/>' )
110
114
. addClass ( 'dropdown-submenu' )
111
115
. append (
112
- $ ( '<a/>' ) . text ( 'Toggle timings ' )
116
+ $ ( '<a/>' ) . text ( 'Execution Timings ' )
113
117
)
114
118
. appendTo ( $ ( '#cell_menu' ) ) ;
115
119
116
120
var timings_submenu = $ ( '<ul/>' )
117
121
. addClass ( 'dropdown-menu' )
118
- . appendTo ( menu_toggle_timings ) ;
122
+ . appendTo ( timings_menu_item ) ;
119
123
120
124
$ ( '<li/>' )
121
125
. attr ( 'title' , 'Toggle the timing box for the selected cell(s)' )
122
126
. append (
123
- $ ( '<a/>' )
124
- . text ( 'Selected' )
125
- . on ( 'click' , toggle_timing_display_selected )
127
+ $ ( '<a href="#">' )
128
+ . text ( 'Toggle visibility (selected)' )
129
+ . on ( 'click' , function ( evt ) {
130
+ evt . preventDefault ( ) ;
131
+ evt . stopPropagation ( ) ;
132
+ toggle_timing_display ( Jupyter . notebook . get_selected_cells ( ) ) ;
133
+ } )
126
134
)
127
135
. appendTo ( timings_submenu ) ;
128
136
129
137
$ ( '<li/>' )
130
138
. attr ( 'title' , 'Toggle the timing box for all cells' )
131
139
. append (
132
- $ ( '<a/>' )
133
- . text ( 'All' )
140
+ $ ( '<a href="#">' )
141
+ . text ( 'Toggle visibility (all)' )
142
+ . on ( 'click' , function ( evt ) {
143
+ evt . preventDefault ( ) ;
144
+ evt . stopPropagation ( ) ;
145
+ toggle_timing_display ( Jupyter . notebook . get_cells ( ) ) ;
146
+ } )
147
+ )
148
+ . appendTo ( timings_submenu ) ;
149
+
150
+ $ ( '<li/>' )
151
+ . attr ( 'title' , 'Clear the selected cell(s) timing data' )
152
+ . append (
153
+ $ ( '<a href="#">' )
154
+ . text ( 'Clear (selected)' )
155
+ . on ( 'click' , function ( evt ) {
156
+ evt . preventDefault ( ) ;
157
+ evt . stopPropagation ( ) ;
158
+ clear_timing_data ( Jupyter . notebook . get_selected_cells ( ) ) ;
159
+ } )
160
+ )
161
+ . appendTo ( timings_submenu ) ;
162
+
163
+ $ ( '<li/>' )
164
+ . attr ( 'title' , 'Clear the timing data from all cells' )
165
+ . append (
166
+ $ ( '<a href="#">' )
167
+ . text ( 'Clear (all)' )
134
168
. on ( 'click' , function ( evt ) {
135
- toggle_timing_display_multiple ( Jupyter . notebook . get_cells ( ) ) ;
169
+ evt . preventDefault ( ) ;
170
+ evt . stopPropagation ( ) ;
171
+ clear_timing_data ( Jupyter . notebook . get_cells ( ) ) ;
136
172
} )
137
173
)
138
174
. appendTo ( timings_submenu ) ;
@@ -209,7 +245,7 @@ define([
209
245
if ( timing_area . length < 1 ) {
210
246
timing_area = $ ( '<div/>' )
211
247
. addClass ( 'timing_area' + ( options . display_right_aligned ? ' text-right' : '' ) )
212
- . on ( 'dblclick' , function ( evt ) { toggle_timing_display ( cell ) ; } )
248
+ . on ( 'dblclick' , function ( evt ) { toggle_timing_display ( [ cell ] ) ; } )
213
249
. appendTo ( cell . element . find ( '.input_area' ) ) ;
214
250
}
215
251
0 commit comments