* cameraview: Scale the glViewPort by devicePixelRatio()
This fixes an issue seen in Cabana on a "hidpi" system with Wayland where
devicePixelRatio() != 1 and the video doesn't take up the full widget area.
On the recommended Ubuntu 20.04 install I wasn't able to reproduce, because
devicePixelRatio() was always equal to 1 even with scaling to 200% or 300%. It
might be different if "Fractional Scaling" is enabled in GNOME (I couldn't make
that option work in mv WM.)
Was going to enable just for Linux, but it appears to also be recommended for
Retina MacOS:
https://doc.qt.io/qt-5/scalability.html#high-dpi-scaling-on-macos-and-ios
... so have worked from the assumption that glViewport() always takes dimensions
in device pixels, never the "device independent pixels" of Qt.
* Update selfdrive/ui/qt/widgets/cameraview.cc
* Update selfdrive/ui/qt/widgets/cameraview.cc
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: fbcd0821c9
* auto detect available streams
* no switch if wide cam not available
* clear frames before getAvailableStreams
* warning
* clear at same time
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: d5375af2f5
* show confirmation toggle on first toggle of experimental mode
* don't store confirmation if users toggle off *after* this PR
* refactor
* cleaner
* not true
* try here
old-commit-hash: 2ad9a4f95a
* toggle confirmation
* change text
* not for e2e
* get current description
* remove are you sure
* merge rich text and confirmation dialogs
* add some line breaks
* font colour
* fix padding a little
* revert
* updated toggle design
old-commit-hash: 91a1f1a91e
* reduce frame dropping
* This mode will not draw the same frame twice
* cleanup comment
* use previous texture if update is not triggered by vipc thread and without new frame
old-commit-hash: 602b90f518
* UI: fade into wide camera
* handle routes with no wide calib
* more cleanup
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: dbc30c053c
* fix indentation
* add primeTypeChanged signal to uiState
* hide advanced networking toggles on prime type change
* switch between map settings on prime type change
* cleanup
* remove duplicate code, wait for signal
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
old-commit-hash: 06e283a750
* good updater experience
* set params on startup
* no fetch on first loop
* little type hinting
* little more
* update translations
* always set params with valid overlay
* wrap check
* use the param
* more wrapping
* vanish
* cleanup
* remove that
old-commit-hash: c4e63d14ab
* single longitudinal toggle for e2e and disable radar
* write disable radar param
* rename
* better param name
* clean that up
* update refs
* update translations
* not live for experimental
* write it out
* vanish
old-commit-hash: 655a64b603
* check the selected language in lange select dialog
* disable if user selects current option
* update line numbers
Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: eb17291ca1
* rough multiple language demo
* more wrappings
* stash
* add some bad translations
* updates
* map from french to spanish still has same problem of needing to call setText on everything
* add files
* restart UI
* use return code
* relative path
* more translations
* don't loop restart
* Toggle and prime translations
* try on device
* try QComboBox with readable style
* stash
* not yet scrollable
* stash
* dynamic translations (doesn't work for dynamic widget strings yet)
* clean up multiple option selector
* store languages in json
* try transparent
* Try transparent popup
* see how this looks
* tweaks
* clean up
* update names
* Add Chinese (Simplified) translations
* Do missing French translations
* unit tests caught that :)
* fix test
* fix other test (on PC)
* add entries to dialog to test
* add cancel button, clean up a bit
* just chinese
* some clean up
* use quotes
* clean up
* Just quit, set timeout to 0
* half a second
* use exitcode
* don't print if it's expected
* this comment is outdated
* update translations
* Update translations
* re-order input classes
* Update line numbers
* use enabled property for button style
* Get rid of ListWidget
* Update line numbers
* Log failed to load language
* Log failed to load language
* Move to utils and fix english logging
extra line
* Update translations
* spacing
* looks a bit better
* try this instead of exitcode
fixes
fix
* only one function
* comment
* Update line numbers
* fixup some japanese translations
* clean up multi option dialog
* Update line numbers
old-commit-hash: 949de4d2b6
* fix unable to scroll on 'Regulatory' page
deleteLater after hide
* remove alert
* override exec
* set MousePressEventDelay to 0
* set to 0.01
* cleanup
* check event->pos()
old-commit-hash: dc3d94d662
* rough multiple language demo
* more wrappings
* stash
* add some bad translations
* updates
* map from french to spanish still has same problem of needing to call setText on everything
* add files
* restart UI
* use return code
* relative path
* more translations
* don't loop restart
* Toggle and prime translations
* try on device
* try QComboBox with readable style
* stash
* not yet scrollable
* stash
* dynamic translations (doesn't work for dynamic widget strings yet)
* clean up multiple option selector
* store languages in json
* try transparent
* Try transparent popup
* see how this looks
* tweaks
* clean up
* clean up
* clean up 2 and missing tr
* wrap more strings
* missing updater
* fixes
* add basic test to ensure all strings wrapped
* try in CI
* clean up
* test name
* fix test
* always install qt dev tools
* fix deps
* fast test
* add section so it prints multiple errors
* debug
* debug
get rid of those
* make any difference?
* comment
* oh...
* run with offscreen platform
* try out section
* clean up
* fix missing wrappings (it works!)
* move down
* space
* clear relevant params, set TICI=1
old-commit-hash: 879a7c3201
* compute x and y offsets using calibration
* fix default calibration
* clamp to max values
* only use when valid
* not while calibrating
* less diff
* cleanup zoom
old-commit-hash: 915b4928ff