@@ -287,13 +287,11 @@ qx.Class.define("osparc.file.FolderContent", {
287287 } ) ;
288288 this . __selectionChanged ( selectedFiles ) ;
289289 } else {
290- if ( this . getMode ( ) === "icons" ) {
291- // unselect the other items
292- const iconsLayout = this . getChildControl ( "icons-layout" ) ;
293- iconsLayout . getChildren ( ) . forEach ( btn => {
294- btn . setValue ( btn === gridItem ) ;
295- } ) ;
296- }
290+ // unselect the other items
291+ const iconsLayout = this . getChildControl ( "icons-layout" ) ;
292+ iconsLayout . getChildren ( ) . forEach ( btn => {
293+ btn . setValue ( btn === gridItem ) ;
294+ } ) ;
297295 this . __selectionChanged ( gridItem . getValue ( ) ? [ gridItem . entry ] : null ) ;
298296 }
299297 // folders can't be selected
@@ -311,11 +309,17 @@ qx.Class.define("osparc.file.FolderContent", {
311309 if ( e . getNativeEvent ( ) . ctrlKey ) {
312310 this . setMultiSelect ( true ) ;
313311 }
314- const selectedRow = e . getRow ( ) ;
315- const rowData = table . getTableModel ( ) . getRowData ( selectedRow ) ;
316- if ( "entry" in rowData ) {
317- this . __selectionChanged ( [ rowData . entry ] ) ;
318- }
312+ const selectedFiles = [ ] ;
313+ const selectionRanges = table . getSelectionModel ( ) . getSelectedRanges ( ) ;
314+ selectionRanges . forEach ( range => {
315+ for ( let i = range . minIndex ; i <= range . maxIndex ; i ++ ) {
316+ const row = table . getTableModel ( ) . getRowData ( i ) ;
317+ if ( osparc . file . FilesTree . isFile ( row . entry ) ) {
318+ selectedFiles . push ( row . entry ) ;
319+ }
320+ }
321+ } ) ;
322+ this . __selectionChanged ( selectedFiles ) ;
319323 } , this ) ;
320324 table . addListener ( "cellDbltap" , e => {
321325 const selectedRow = e . getRow ( ) ;
0 commit comments