function viewAndSaveQuery (outline, selection) {
  var qs = outline.qs
  UI.log.info('outline.doucment is now ' + outline.document.location)
  var q = saveQuery(selection, qs)
  /*
  if (tabulator.isExtension) {
    // tabulator.drawInBestView(q)
  } else
  */

  for (let i = 0; i < qs.listeners.length; i++) {
    qs.listeners[i].getActiveView().view.drawQuery(q)
    qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView())
  }
}
function viewAndSaveQuery (outline, selection) {
  var qs = outline.qs
  UI.log.info('outline.doucment is now ' + outline.document.location)
  var q = saveQuery(selection, qs)
  

  for (let i = 0; i < qs.listeners.length; i++) {
    qs.listeners[i].getActiveView().view.drawQuery(q)
    qs.listeners[i].updateQueryControls(qs.listeners[i].getActiveView())
  }
}
function viewAndSaveQuery ( outline , selection ) { var qs = outline . qs UI . log . info ( 'outline.doucment is now ' + outline . document . location ) var q = saveQuery ( selection , qs ) /*
  if (tabulator.isExtension) {
    // tabulator.drawInBestView(q)
  } else
  */ for ( let i = 0 ; i < qs . listeners . length ; i ++ ) { qs . listeners [ i ] . getActiveView ( ) . view . drawQuery ( q ) qs . listeners [ i ] . updateQueryControls ( qs . listeners [ i ] . getActiveView ( ) ) } }
When the user asks for all list of all matching parts of the data
When the user asks for all list of all matching parts of the data