Files
proton-bridge/internal/frontend/bridge-gui
Xavier Michelon 065dcd4d47 fix(GODT-2393): improved handling of unrecoverable error.
Fix a bug introduced in 265af2d. In the top level exception handler, we may not have add the time to establish connection, so we should not try to use the gRPC service to quit bridge.
2023-02-23 18:08:23 +01:00
..
2023-02-23 11:53:41 +01:00
2022-12-07 09:56:21 +01:00

bridge-gui

bridge-gui is the graphical user interface for Bridge. It's a C++ Qt application that communicates with the bridge executable via gRPC remote procedure call, on a local-only TLS-secured connection.

Components

bridge-gui consists in 3 components:

  • bridge-gui: The Bridge-GUI application itself. It's a QML Qt application that implements the bridge gRPC service to communicate and interact with the bridge application written in Go.
  • bridge-gui-tester: A Qt widgets test application that offers a dummy gRPC server implementing the Bridge gRPC service. It can be used as a debugging and development tool, as it can simulate the server side (bridge) portion of the gRPC service.
  • bridgepp: bridgepp (for bridge++) is a C++ static library that contains the code shared by bridge-gui and bridge-gui-tester.

Bridge gRPC service

The bridge gRPC service that allows communications between bridge-gui, and the bridge Go application (or bridge-gui-tester) is defined in ../grpc/bridge.proto.

Supported platforms

bridge-gui runs on the same platforms as the bridge app:

  • Linux x64.
  • macOS x64 and Apple Silicon.
  • Windows x64.

Requirements:

  • A C++ development toolchain (GCC/Clang/ MSVC, CMake, Ninja). An easy way to get all the needed tools is to use a modern IDE such as CLion, Qt Creator or Visual Studio Code that will check and install or use their bundled versions of the tools.
  • Qt 6. Use the online installer to install the latest stable release of Qt for your platform and compiler.

First build

bridge-gui uses vcpkg, Microsoft multi-platform C/C++ dependency manager to get the source code and build gRPC and its dependencies (protobuf, zlib, ...). vcpkg is managed as a git submodule in extern/vcpkg,relative to the root of the bridge source tree. A pair of scripts is provided to perform the initialization of vcpkg, the retrieval and compilation of gRPC and a first build of the bridge-gui project components:

  • build.sh: a shell script to use on macOS and Linux.
  • build.ps1: a PowerShell script for Windows.