# Toolbar Customization The toolbar can be customized in a number of ways to fit your custom build needs. The toolbar internally is made up of a number of sections from left to right: - View Switching - Indicators - App Indicators - Vehicle Indicators - Vehicle Mode Indicators - Connection Management - Branding The Indicator section varies based on the view currently displayed: - Fly View - Shows all indicators - Plan View - Show no indicators and has its own custom indicator section for Plan status values - Other Views - Do not show Vehicle Mode Indicators ## Customization Possibilities ### Indicators You can add your own indicators for display or remove any of the upstream indicators. The mechanism you use depends on the indicator type. #### App Indicators These provide information to the user which is not associated with a vehicle. For example RTK status. To manipulate the list of app indicators you use `QGCPlugin::toolbarIndicators`. #### Vehicle Indicators These are indicators which are associated with information about the vehicle. They are only available when a vehicle is connected. To manipulate the list of vehicle indicators you override `FirmwarePlugin::toolIndicators`. #### Vehicle Mode Indicators These are indicators which are associated with information about the vehicle. They require additional UI provided by the Fly View to complete their actions. An example is Arming and Disarming. They are only available when a vehicle is connected. To manipulate the list of vehicle mode indicators you override `FirmwarePlugin::modeIndicators`. ### Modifying the toolbar UI itself This is accomplished by using resource overrides on the qml files associated with the toolbar. This provides a high level of customization but also a higher level of complexity. The primary ui for the toolbar is in `MainToolBar.qml`. The main window code in `MainRootWindow.qml` interacts with the toolbar to show different indicator sections based on current view as well as whether the mode indicators show or not also based on current view. If you want full control over the toolbar then you can override `MainToolBar.qml` and make your own completely different version. You will need to pay special attention to the interactions of the main toolbar with `MainRootWindow.qml` since you are going to need to replicated those interactions in your own custom version. There are two standard indicator ui sections of the toolbar: #### `MainToolBarIndicators.qml` This is used for all views except Plan. It display all the indicators in a row. Although you can override this file, in reality it doesn't do much other than layout for indicators. #### `PlanToolBarIndicators.qml` This is used by the Plan view to show the status values. If you want to change that ui you can override this file and provide your own custom version.