ConnectionStatus.qml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import QtQuick 2.15
  2. Rectangle {
  3. id: connectionDot
  4. property var backend: null
  5. width: 12
  6. height: 12
  7. radius: 6
  8. // Direct property binding to backend.serialConnected
  9. color: {
  10. if (!backend) {
  11. console.log("ConnectionStatus: No backend available")
  12. return "#FF5722" // Red if no backend
  13. }
  14. var connected = backend.serialConnected
  15. console.log("ConnectionStatus: backend.serialConnected =", connected)
  16. if (connected === true) {
  17. return "#4CAF50" // Green if connected
  18. } else {
  19. return "#FF5722" // Red if not connected
  20. }
  21. }
  22. // Listen for changes to trigger color update
  23. Connections {
  24. target: backend
  25. function onSerialConnectionChanged(connected) {
  26. console.log("ConnectionStatus: serialConnectionChanged signal received:", connected)
  27. // The color binding will automatically update
  28. }
  29. }
  30. // Debug logging
  31. Component.onCompleted: {
  32. console.log("ConnectionStatus: Component completed, backend =", backend)
  33. if (backend) {
  34. console.log("ConnectionStatus: initial serialConnected =", backend.serialConnected)
  35. }
  36. }
  37. onBackendChanged: {
  38. console.log("ConnectionStatus: backend changed to", backend)
  39. if (backend) {
  40. console.log("ConnectionStatus: new backend serialConnected =", backend.serialConnected)
  41. }
  42. }
  43. // Animate color changes
  44. Behavior on color {
  45. ColorAnimation {
  46. duration: 300
  47. easing.type: Easing.OutQuart
  48. }
  49. }
  50. }