@@ -95,7 +95,11 @@ define(function (require, exports, module) {
9595
9696 var folderSpan = $ ( "<span></span>" ) . addClass ( "recent-folder" ) . text ( folder ) ,
9797 restSpan = $ ( "<span></span>" ) . addClass ( "recent-folder-path" ) . text ( " - " + rest ) ;
98- return $ ( "<a></a>" ) . addClass ( "recent-folder-link" ) . append ( folderSpan ) . append ( restSpan ) ;
98+ return $ ( "<a></a>" ) . addClass ( "recent-folder-link" ) . append ( folderSpan ) . append ( restSpan ) . data ( "path" , path ) ;
99+ }
100+
101+ function renderDelete ( ) {
102+ return $ ( "<div id='recent-folder-delete'></div>" ) . addClass ( "trash-icon" ) ;
99103 }
100104
101105 /**
@@ -148,13 +152,45 @@ define(function (require, exports, module) {
148152 }
149153 } ) ;
150154 closeDropdown ( ) ;
155+ } )
156+ . mouseenter ( function ( e ) {
157+ var $target = $ ( e . currentTarget ) ,
158+ $del = renderDelete ( )
159+ . click ( function ( ) {
160+ // remove the project from the preferences.
161+ var prefs = PreferencesManager . getPreferenceStorage ( PREFERENCES_KEY ) ,
162+ recentProjects = getRecentProjects ( ) ,
163+ index = recentProjects . indexOf ( $ ( this ) . data ( "path" ) ) ,
164+ newProjects = [ ] ,
165+ i ;
166+ for ( i = 0 ; i < recentProjects . length ; i ++ ) {
167+ if ( i !== index ) {
168+ newProjects . push ( recentProjects [ i ] ) ;
169+ }
170+ }
171+ prefs . setValue ( "recentProjects" , newProjects ) ;
172+ closeDropdown ( ) ;
173+ } ) ;
174+
175+ $ ( this ) . append ( $del ) ;
176+
177+ $del . css ( "right" , 5 ) ;
178+ $del . css ( "top" , $target . position ( ) . top + 11 ) ;
179+ $del . css ( "display" , "inline-block" ) ;
180+ $del . data ( "path" , $ ( this ) . data ( "path" ) ) ;
181+ } )
182+ . mouseleave ( function ( ) {
183+ $ ( "#recent-folder-delete" ) . remove ( ) ;
151184 } ) ;
185+
152186 $ ( "<li></li>" )
153187 . append ( $link )
154188 . appendTo ( $dropdown ) ;
155189 hasProject = true ;
156190 }
157191 } ) ;
192+
193+
158194 if ( hasProject ) {
159195 $ ( "<li class='divider'>" ) . appendTo ( $dropdown ) ;
160196 }
@@ -203,4 +239,4 @@ define(function (require, exports, module) {
203239 . after ( "<span class='dropdown-arrow'></span>" ) ;
204240 $dropdownToggle = $ ( "#project-dropdown-toggle" ) . click ( toggle ) ;
205241 } ) ;
206- } ) ;
242+ } ) ;
0 commit comments