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)
}
}