C
Qt Quick Ultralite Automotive Cluster Demo
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial pragma Singleton import QtQuick 2.15 QtObject { id: drivemodemenumodel enum DriveModeOption { NormalDrive, SportDrive, ModeOptionsCount } enum Tabs { DriveModeTab, CarStatusTab, LastTripTab, TabsCount } property int currentDriveModeSelected: SettingsMenuModel.NormalDrive property int currentTab: SettingsMenuModel.DriveModeTab onCurrentTabChanged: notifyConnectivityService() onCurrentDriveModeSelectedChanged: notifyConnectivityService() function previousTab() { currentTab = (currentTab + SettingsMenuModel.TabsCount - 1) % SettingsMenuModel.TabsCount } function nextTab() { currentTab = (currentTab + 1) % SettingsMenuModel.TabsCount } function switchOption() { currentDriveModeSelected = (currentDriveModeSelected + 1) % SettingsMenuModel.ModeOptionsCount } function notifyConnectivityService() { if (NormalModeModel.menu == NormalModeModel.CarStatusMenu && MainModel.clusterMode == MainModel.ModeNormal) { if (currentTab == SettingsMenuModel.DriveModeTab) { ConnectivityService.currentMenu = ConnectivityService.Mode } else if (currentTab == SettingsMenuModel.CarStatusTab) { ConnectivityService.currentMenu = ConnectivityService.CarStatus } else { ConnectivityService.currentMenu = ConnectivityService.LastTrip } } ConnectivityService.enableDriveModeChange = (currentDriveModeSelected == SettingsMenuModel.NormalDrive && MainModel.clusterMode == MainModel.ModeSport) || (currentDriveModeSelected == SettingsMenuModel.SportDrive && MainModel.clusterMode == MainModel.ModeNormal) } }