MainWindow owns connection switching, device identity, channel caching, SQLite history, pending
sends, removals, unread state and presentation. Extract a DeviceSession or ApplicationController
so the UI only binds state and invokes commands.
Reference: src/ui/main_window.h:86 and src/ui/main_window.cpp.
The controller should own:
Worth doing before direct messages and contacts add a second and third conversation kind to the same
class.
Worth landing before #1 and #2 add more conversation kinds to MainWindow.
MainWindowowns connection switching, device identity, channel caching, SQLite history, pendingsends, removals, unread state and presentation. Extract a
DeviceSessionorApplicationControllerso the UI only binds state and invokes commands.
Reference:
src/ui/main_window.h:86andsrc/ui/main_window.cpp.The controller should own:
CompanionClientand connection/session state.Worth doing before direct messages and contacts add a second and third conversation kind to the same
class.
Worth landing before #1 and #2 add more conversation kinds to
MainWindow.