this brings more of the UI into the qml world, this time the rendering of the filelight map. it is implemented using qtquick shapes of stacking circles. this also introduces a listview to more reasonably glance, navigate and manage files inside the current scope (as opposed to the previous labeling approach inside the map). to ease discoverability the hover states between map and list are somewhat linked so it becomes easier to spot which segment is where in the list, and vice versa.
to facilitate all this a huge amount of reshuffling happened:
- item.cpp no longer exists, its functionality moved into either qml or the map.cpp
- new classes dropperitem (to receive drop events from qml) contextmenucontext (to implement the c++ side of context menu actions) filemodel (to model the file objects for the listview)
- File is no longer a QObject, this has been moved up one level in the architecutre -> Segment now is a QObject and delegates most of the UI relevant functions from File
- Files are now "linked" to their segment through a uuid string. this allows the UI code to establish a relationship between entities in the listview and the mapview. this is intentionally not pointer based to avoid clashes, confusion, and to prevent the Files from contributing to the lifetime of Segments (and thus complicate the entire shebang)
- various settings have been retired as they are no longer applicable: AA is now always on, there is no practical reason why the user would disable it in 2022, font size (now following system defaults and sometimes able to scale down if not enough space)