emit selected from various sources
add .hasVisibleItems
use own viewport fork for now