summaryrefslogtreecommitdiff
path: root/SDL_Core/src/components/qt_hmi/qml_model_qt4/models
diff options
context:
space:
mode:
Diffstat (limited to 'SDL_Core/src/components/qt_hmi/qml_model_qt4/models')
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml57
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml91
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js249
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml98
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml510
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml58
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js163
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml112
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml72
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml52
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml43
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml51
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml125
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml45
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml234
20 files changed, 2327 insertions, 0 deletions
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml
new file mode 100644
index 000000000..a50113095
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml
@@ -0,0 +1,57 @@
+/**
+ * @file ApplicationData.qml
+ * @brief Model for Application.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string mainField1
+ property string mainField2
+ property string mainField3
+ property string mainField4
+ property string statusBar
+ property string mediaTrack
+ property string image
+
+ function reset () {
+ console.debug("enter")
+ mainField1 = ""
+ mainField2 = ""
+ mainField3 = ""
+ mainField4 = ""
+ statusBar = ""
+ mediaTrack = ""
+ image = ""
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml
new file mode 100644
index 000000000..206eaa918
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml
@@ -0,0 +1,91 @@
+/**
+ * @file ApplicationModel.qml
+ * @brief Own fields for each application.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+
+QtObject {
+ property int appId
+ property string appName
+ property string ngnMediaScreenAppName
+ property Icon appIcon: Icon { }
+ property string deviceName
+ property int hmiDisplayLanguageDesired
+ property bool isMediaApplication
+ property variant appType
+ property int hmiUITextAlignment
+
+ // media player
+ property string playPauseState
+ property ApplicationData hmiUIText: ApplicationData { }
+ property MediaClockModel mediaClock: MediaClockModel { }
+
+ property string helpPrompt
+ property string timeoutPrompt
+ property ListModel options: ListModel { }
+
+ property ListModel currentSubMenu: options
+ property ListModel turnList
+ property ListModel softButtons
+ property ListModel turnListSoftButtons
+ property ListModel customPresets
+ property int languageTTSVR
+ // This place is for adding new properties
+
+ function reset () {
+ console.debug("enter")
+ appId = -1
+ appName = ""
+ ngnMediaScreenAppName = ""
+ appIcon.reset()
+ deviceName = ""
+ hmiDisplayLanguageDesired = -1
+ isMediaApplication = false
+ appType = undefined
+ playPauseState = ""
+ hmiUIText.reset()
+// no need to reset mediaClock
+ helpPrompt = ""
+ timeoutPrompt = ""
+ options.clear()
+ currentSubMenu = options
+ turnList = null
+ softButtons = null
+ turnListSoftButtons = null
+ customPresets = null
+ languageTTSVR = -1
+ hmiUITextAlignment = null
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml
new file mode 100644
index 000000000..f636d1e79
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file CarMenuModel.qml
+ * @brief Car menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ name: "ambient"
+ icon: "../res/vehicle/Ambient Lighti Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "cal"
+ icon: "../res/vehicle/cal.png"
+ qml: ""
+ }
+ ListElement {
+ name: "ev"
+ icon: "../res/vehicle/EV Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "folders"
+ icon: "../res/vehicle/folders.png"
+ qml: ""
+ }
+ ListElement {
+ name: "key"
+ icon: "../res/vehicle/key_car.png"
+ qml: ""
+ }
+ ListElement {
+ name: "mcs"
+ icon: "../res/vehicle/MCS Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "sun"
+ icon: "../res/vehicle/sun.png"
+ qml: ""
+ }
+ ListElement {
+ name: "sync"
+ icon: "../res/vehicle/SYNC Services.png"
+ qml: ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js
new file mode 100644
index 000000000..1bc5c558b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js
@@ -0,0 +1,249 @@
+/**
+ * @file Constants.js
+ * @brief Namespace of constants.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+.pragma library
+
+// Colors
+
+// Main color of HMI model(now it ~lightblue). Buttons, text, icons of this color.
+var primaryColor = "#1d81d5"
+
+// Color of pressed buttons, text, icons etc.
+var primaryColorPressed = "#8ec0ea"
+
+// Secondary color of HMI model, backgroud of this color.
+var secondaryColor = "black"
+
+// Color of text at buttonts that are inactive (at phone keyboard, when no any contact started with current letter).
+var inactiveButtonTextColor = "grey"
+
+// Color of text at buttonts that are inactive but nevertheless pressed (at phone keyboard, when no any contact started with current letter).
+var inactiveButtonTextColorPressed = "lightgrey"
+
+// Color of text at contact list screen view (Name, number and number type).
+var contactTextColor = "lightblue"
+
+// Color of text at buttons, when they are pressed.
+var pressedButtonTextColor = "black"
+
+// Color of text at "white" buttons, for all other buttons (which most) use primaryColor.
+var releasedButtonTextColor = "white"
+
+// Transparent background.
+var transparentColor = "#00000000"
+
+// "Warning" word color
+var warningColor = "red"
+
+// Color for PopUp
+var popUpBorderColor = "white"
+
+// Color for hardware and simulation panels
+var panelColor = "#003"
+
+// Color for text in hardware and simulation panels
+var panelTextColor = "white"
+
+// Audio pass thru PopUp text color
+var audioPassThruTextColor = "white"
+
+// Color for border of controls
+var controlsBorderColor = "#ababab"
+
+//--------------------------------------------------------------------------------------
+
+// Font sizes of different elements
+
+// Font size for most of text in HMI model.
+var fontSize = 20
+
+// Font size for text inside oval buttons.
+var ovalButtonFontSize = 15
+
+// Title font size
+var titleFontSize = 35
+
+// Power on/off button font size
+var powerButtonFornSize = 25
+
+// Font size of status bar
+var statusBarFontSize = 15
+
+// Size icon for buttons
+var iconButtonSize = 30
+
+// Size icon for item list
+var iconItemListSize = 40
+
+// font size fo TTS popup
+var ttsFontSize = 12
+
+// Font size for list of applications
+var appListFontSize = 40
+
+// Size of contact list fields
+var contactListNameFieldSize = 0.4
+var contactListPhoneFieldSize = 0.3
+var contactListDescriptionFieldSize = 0.3
+
+//--------------------------------------------------------------------------------------
+
+// Sizes of buttons, menus, screen, etc
+
+// Minimal width and height of screen (screen wont resize, if height and width are lower).
+var mainScreenMinWidth = 800
+var mainScreenMiHeight = 600
+
+// Width for long oval button
+var ovalButtonWidth = 163
+
+// Height for oval button
+var ovalButtonHeight = 65
+
+// Height item list
+var itemListHeight = 60
+
+// Width for TTS popup
+var ttsPopUpWidth = 250
+
+// Height for TTS popup
+var ttsPopUpHeight = 100
+
+// Width for popup view
+var popupWidth = 700
+
+// Width for alert window
+var alertWidth = 360
+
+// Height for popup view
+var popupHeigth = 500
+
+// Width for combobox
+var defaultComboboxWidth = 150
+
+// Size icon for list of applications
+var appListIconSize = 100
+
+// DistanceBar height
+var distanceBarHeight = 1
+
+
+//---------------------------------------------------------------------------------------
+
+// Other
+
+// Offset from the edges of the screen.
+var margin = 20
+
+// Offset from the edges of the popup
+var popupMargin = 15
+
+// Spacing between contacts at contact screen view.
+var contactListSpacing = 30
+
+// Duration of appearance of icon/button at icon/button menus.
+var animationDuration = 500
+
+// Duration of appearence of "OK" button at warning screen view, when HMI starts.
+var warningScreenDuration = 1000
+
+// Timer to check how long preset button is pressed.
+var presetButtonTimer = 800
+
+// Spacing between icon and item in list
+var iconItemListSpacing = 20
+
+// Spacing between item on views
+var generalSpacing = 10
+
+// Width of scrollBar
+var scrollBarWidth = 5
+
+// Speak text for a given time
+var ttsSpeakTime = 2000
+
+// Maximal number of submenus
+var maximumSubmenus = 1000
+
+// Maximal number of commands in submenu or root menu
+var maximumCommandsPerSubmenu = 1000
+
+// padding for popup view
+var popUpPadding = 20
+
+// Padding for TTS popup
+var ttsPopUpPadding = 10
+
+// -------------------------
+var sliderBarWidth = 400
+var sliderBarHeight = 50
+var sliderBarRadius = 3
+var sliderBarBorderWidth = 1
+var sliderTextColor = "white"
+var sliderBarBorderColor = "white"
+var sliderBarFillColor = "white"
+
+// -------------------------
+var scrollableMessageTextColor = "white"
+var scrollableMessageScrollBarColor = "gray"
+var scrollableMessageScrollBarWidth = 10
+
+// Padding for hardware and simulation panels
+var panelPadding = 20
+
+// Scale for pressed icon in menu
+var pressedIconScale = 1.1
+
+// Values of color effect for highlighted button
+var highlightedButtonHue = 0.9
+var highlightedButtonSaturation = 0.0
+var highlightedButtonLightness = 0.1
+
+// Values of color effect for disabled button
+var disabledButtonHue = 0.0
+var disabledButtonSaturation = -1.0
+var disabledButtonLightness = 0.1
+
+// Count of rows for grid menu
+var menuRowCount = 2
+
+// Count of columns for grid menu
+var menuColumnCount = 3
+
+// Radius of controls
+var controlsRadius = 2
+
+// Width of border of controls
+var controlsBorderWidth = 1
+// Position for element that came without position value (should be always at the end)
+var positionOfElementWithoutPosition = 1001
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml
new file mode 100644
index 000000000..348d30156
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml
@@ -0,0 +1,98 @@
+/**
+ * @file ContactsListModel.qml
+ * @brief List of contacts.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ // TODO {ALeshin}: This list model should be sorted in ABC and Upper/lower case order,
+ // when it will be filled dynamically.
+ ListElement { name: "Aaron" ; phone:"(614)555-2444";type:"Mobile"}
+ ListElement { name: "Adrian" ; phone:"(740)245-3434";type:"Mobile" }
+ ListElement { name: "Albert" ; phone:"(614)245-5584";type:"Mobile" }
+ ListElement { name: "Alice" ; phone:"(313)878-3566";type:"Office"}
+ ListElement { name: "Alec" ; phone:"(917)608-2418";type:"Mobile"}
+ ListElement { name: "Alexander" ; phone:"(614)608-2400";type:"Home"}
+ ListElement { name: "Alexander Vasil'evich Michail Leontiy" ; phone:"(614)608-2400";type:"Mobile"}
+ ListElement { name: "Amber" ; phone:"(614)608-2111";type:"Mobile"}
+ ListElement { name: "Amy" ; phone:"(440)245-3434";type:"Mobile" }
+ ListElement { name: "Andy" ; phone:"(313)245-3434";type:"Mobile" }
+ ListElement { name: "Antje" ; phone:"(567)245-3434";type:"Home" }
+ ListElement { name: "buddy" ; phone:"(614)813-6610";type:"Mobile" }
+ ListElement { name: "Barry" ; phone:"(313)555-2211";type:"Mobile" }
+ ListElement { name: "Bea" ; phone:"(614)455-3434";type:"Mobile" }
+ ListElement { name: "Ben" ; phone:"(614)882-1843";type:"Office" }
+ ListElement { name: "Blake" ; phone:"(330)149-7778";type:"Mobile" }
+ ListElement { name: "Bob Mould" ; phone:"(313)245-3434";type:"Mobile" }
+ ListElement { name: "Brian" ; phone:"(614)332-7499";type:"Mobile" }
+ ListElement { name: "Calvin" ; phone:"(614)442-9974";type:"Mobile" }
+ ListElement { name: "Carl" ; phone:"(567)773-3434";type:"Home" }
+ ListElement { name: "Cat Power" ; phone:"(313)608-3434";type:"Home"}
+ ListElement { name: "Cathy" ; phone:"(313)444-456";type:"Home"}
+ ListElement { name: "Chris" ; phone:"(734)997-6514";type:"Home" }
+ ListElement { name: "Cloud Nothings"; phone:"(444)608-543";type:"Mobile"}
+ ListElement { name: "Cody" ; phone:"(567)365-8413";type:"Home" }
+ ListElement { name: "Curtis" ; phone:"(614)245-1547";type:"Office" }
+ ListElement { name: "Dakota" ; phone:"(567)555-4444";type:"Home" }
+ ListElement { name: "Dale" ; phone:"(567)723-1974";type:"Mobile" }
+ ListElement { name: "Dallas"; phone:"(614)556-879";type:"Home"}
+ ListElement { name: "Damian" ; phone:"(614)245-3434";type:"Office" }
+ ListElement { name: "Daniel"; phone:"(614)556-879";type:"Home"}
+ ListElement { name: "Darina"; phone:"(313)895-888";type:"Mobile"}
+ ListElement { name: "Dee "; phone:"(313)432-3434";type:"Home"}
+// ListElement { name: "Edward" ; phone:"(917)608-975";type:"Office"}
+ ListElement { name: "Ferdinand" ; phone:"(917)879-795";type:"Mobile"}
+ ListElement { name: "gomez" ; phone:"(313)455-543";type:"Mobile"}
+ ListElement { name: "Harry Potter"; phone:"(313)888-432";type:"Home"}
+ ListElement { name: "Ivan"; phone:"(313)996-225";type:"Home"}
+// ListElement { name: "James" ; phone:"(917)608-3434";type:"Mobile"}
+ ListElement { name: "Karen"; phone:"(313)998-332";type:"Home"}
+ ListElement { name: "Luis Torres"; phone:"(313)779-111";type:"Home"}
+ ListElement { name: "Mary"; phone:"(313)234-098";type:"Mobile"}
+ ListElement { name: "Neil"; phone:"(313)444-112";type:"Mobile"}
+ ListElement { name: "Oswald"; phone:"(313)456-921";type:"Mobile"}
+ ListElement { name: "Oscar"; phone:"(313)332-778";type:"Home"}
+ ListElement { name: "~1123"; phone:"(313)1332";type:"Home"}
+ ListElement { name: "Patrice"; phone:"(313)789-111";type:"Mobile"}
+ ListElement { name: "Queen Elizabeth"; phone:"(313)897-666";type:"Mobile"}
+ ListElement { name: "Rose"; phone:"(313)111-211";type:"Mobile"}
+ ListElement { name: "Susell"; phone:"(313)345-122";type:"Home"}
+ ListElement { name: "Thomas"; phone:"(917)608-342";type:"Mobile"}
+ ListElement { name: "Titus Andronicus" ; phone:"(917)608-321";type:"Office"}
+ ListElement { name: "Toretto" ; phone:"(917)608-3434";type:"Home"}
+ ListElement { name: "Uhl" ; phone:"(313)444-654";type:"Office"}
+ ListElement { name: "willi" ; phone:"(313)224-5712";type:"Office"}
+ ListElement { name: "Wanda" ; phone:"(313)666-6969";type:"Office"}
+ ListElement { name: "wanda" ; phone:"(313)666-6969";type:"Office"}
+ ListElement { name: "Zara" ; phone:"(313)231-009";type:"Mobile"}
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml
new file mode 100644
index 000000000..cc5f6fc21
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml
@@ -0,0 +1,510 @@
+/**
+ * @file DataStorage.qml
+ * @brief Container for data.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "Internal.js" as Internal
+import "Constants.js" as Constants
+
+QtObject {
+
+ property string contactsFirstLetter // first letter of contact's name that need to find at contact list
+ property ApplicationModel currentApplication: ApplicationModel { }
+ property SliderModel uiSlider: SliderModel { }
+ property PerformAudioPassThruModel uiAudioPassThru: PerformAudioPassThruModel { }
+
+ function getApplication(appId) {
+ console.log("dataContainer getApplication enter");
+ for(var i = 0; i < applicationList.count; i++) {
+ if(applicationList.get(i).appId === appId) {
+ console.log("Application found", applicationList.get(i));
+ return applicationList.get(i);
+ }
+ }
+ console.log("dataContainer getApplication exit");
+ }
+
+ onApplicationListChanged: {
+ console.log("onApplicationListChanged()");
+ setCurrentApplication(appId);
+ }
+
+ function setCurrentApplication(appId) {
+ console.log("Enter setCurrentApplication function");
+ var oldApplicationContext = applicationContext;
+ if (currentApplication.appId !== appId) {
+ applicationContext = false;
+ }
+
+ for(var i = 0; i < applicationList.count; i++) {
+ if(applicationList.get(i).appId === appId) {
+ currentApplication.appId = appId
+ var application = applicationList.get(i)
+ currentApplication.appName = application.appName
+ currentApplication.appType = application.appType
+ currentApplication.appIcon.source = application.icon
+ currentApplication.playPauseState = application.playPauseState
+ currentApplication.options = application.options
+ currentApplication.softButtons = application.softButtons
+ currentApplication.customPresets = application.customPresets
+
+ if (application.hmiUIText.mainField1 !== undefined) {
+ currentApplication.hmiUIText.mainField1 = application.hmiUIText.mainField1
+ }
+ if (application.hmiUIText.mainField2 !== undefined) {
+ currentApplication.hmiUIText.mainField2 = application.hmiUIText.mainField2
+ }
+ if (application.hmiUIText.mainField3 !== undefined) {
+ currentApplication.hmiUIText.mainField3 = application.hmiUIText.mainField3
+ }
+ if (application.hmiUIText.mainField4 !== undefined) {
+ currentApplication.hmiUIText.mainField4 = application.hmiUIText.mainField4
+ }
+ if (application.hmiUIText.statusBar !== undefined) {
+ currentApplication.hmiUIText.statusBar = application.hmiUIText.statusBar
+ }
+ if (application.hmiUIText.mediaTrack !== undefined) {
+ currentApplication.hmiUIText.mediaTrack = application.hmiUIText.mediaTrack
+ }
+ if (application.hmiUIText.image !== undefined) {
+ currentApplication.hmiUIText.image = application.hmiUIText.image
+ }
+ if (application.hmiUITextAlignment !== undefined) {
+ currentApplication.hmiUITextAlignment = application.hmiUITextAlignment
+ }
+ if (application.helpPrompt !== undefined) {
+ currentApplication.helpPrompt = application.helpPrompt
+ }
+ if (application.timeoutPrompt !== undefined) {
+ currentApplication.timeoutPrompt = application.timeoutPrompt
+ }
+ // Check fields with mandatory = false
+
+ currentApplication.deviceName = application.deviceName
+ currentApplication.isMediaApplication = application.isMediaApplication
+ currentApplication.turnList = application.turnList
+ currentApplication.turnListSoftButtons = application.turnListSoftButtons
+ currentApplication.mediaClock.updateMode = application.mediaClock.updateMode
+ currentApplication.mediaClock.runningMode = application.mediaClock.runningMode
+ currentApplication.mediaClock.startTimeForProgress = application.mediaClock.startTimeForProgress
+ if (application.mediaClock.startTime !== undefined) {
+ currentApplication.mediaClock.startTime = application.mediaClock.startTime
+ }
+ if (application.mediaClock.endTime !== undefined) {
+ currentApplication.mediaClock.endTime = application.mediaClock.endTime
+ }
+ currentApplication.languageTTSVR = application.languageTTSVR
+ currentApplication.hmiDisplayLanguageDesired = application.hmiDisplayLanguageDesired
+ // This place is for adding new properties
+ }
+ }
+ applicationContext = oldApplicationContext;
+ currentApplicationChanged()
+ console.log("Exit setCurrentApplication function")
+ }
+
+ function addApplication(app) {
+ console.log("enter")
+ applicationList.append({
+ appName: app.appName,
+ ngnMediaScreenAppName: app.ngnMediaScreenAppName,
+ icon: app.icon,
+ deviceName: app.deviceName,
+ appId: app.appId,
+ hmiDisplayLanguageDesired: app.hmiDisplayLanguageDesired,
+ isMediaApplication: app.isMediaApplication,
+ appType: app.appType,
+ helpPrompt: "",
+ timeoutPrompt: "",
+ customPresets: app.customPresets ? app.customPresets : [],
+ playPauseState: 'Pause',
+ hmiUIText: app.hmiUIText,
+ hmiUITextAlignment: app.hmiUITextAlignment,
+ options: [],
+ turnList: [],
+ turnListSoftButtons: [],
+ mediaClock: app.mediaClock,
+ languageTTSVR: Common.Language.EN_US,
+ softButtons: []
+ // This place is for adding new properties
+ })
+
+ if (app.isMediaApplication) {
+ musicSourceModel.insert(0, {
+ "title": app.appName,
+ "qml": "views/SDLPlayerView.qml",
+ "appId": app.appId
+ })
+ }
+
+ console.log("exit")
+ }
+
+ function setApplicationProperties(appId, props) {
+ console.log("Enter setApplicationProperties function");
+ var app = getApplication(appId)
+ for (var p in props) {
+ if (props[p] !== undefined) {
+ app[p] = props[p]
+ }
+ }
+ if (currentApplication.appId === appId) {
+ setCurrentApplication(appId); // copy new values to current application
+ }
+ console.log("Exit setApplicationProperties function");
+ }
+
+ function removeApplication(appId) {
+ console.log("enter");
+ for (var j = 0; j < musicSourceModel.count; ++j) {
+ if (musicSourceModel.get(j).appId === appId) {
+ musicSourceModel.remove(j);
+ break;
+ }
+ }
+ for (var i = 0; i < applicationList.count; i++) {
+ if (applicationList.get(i).appId === appId) {
+ applicationList.remove(i);
+ break;
+ }
+ }
+ console.log("exit");
+ }
+
+ property int systemContext
+ property int hmiContext
+ property bool applicationContext: false
+ property bool applicationSavedContext
+ property string routeText: ""
+ property PlayerState cdPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState ipodPlayerState: PlayerState {
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ playPauseState: 'Pause'
+ }
+ property PlayerState usbPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState linePlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState btPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState amPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: [ "1130", "950", "760", "1270", "1400", "2100", "940", "1001" ]
+ }
+ property PlayerState fmPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: ["96.3", "107.9", "104.3", "101.9", "105.3", "100.5", "107.9", "103.4"]
+ }
+ property PlayerState siriusPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: [ "Lithium", "Spectrum", "ESPN", "Alt Nation", "Lithium", "Spectrum", "ESPN", "Alt Nation" ]
+ }
+
+ property bool hmiVRAvailable: false
+ property bool hmiTTSAvailable: false
+ property bool hmiNavigationAvailable: false
+ property bool hmiVehicleInfoAvailable: false
+ property bool hmiUIAvailable: false
+
+ property int hmiUILanguage: Common.Language.EN_US
+ property int hmiTTSVRLanguage: Common.Language.EN_US
+
+ property ListModel deviceList: ListModel { }
+ property ListModel applicationList: ListModel { }
+
+ property ListModel vrCommands: ListModel {}
+
+ property ListModel vrHelp: ListModel {}
+
+ function reset () {
+ console.log("dataContainer reset enter");
+ routeText = ""
+ console.log("dataContainer reset exit");
+ }
+
+ function changeRegistrationUI (language, appID) {
+ console.log("dataContainer changeRegistrarionUI enter");
+ setApplicationProperties(appID, { hmiDisplayLanguageDesired: language });
+ console.log("dataContainer changeRegistrarionUI exit");
+ }
+
+ function changeRegistrationTTSVR(language, appID) {
+ console.log("dataContainer changeRegistrationTTSVR enter");
+ setApplicationProperties(appID, { languageTTSVR: language });
+ console.log("dataContainer changeRegistrationTTSVR exit");
+ }
+
+ function addCommand (cmdID, menuParams, cmdIcon, appID) {
+ console.debug("enter: " +
+ cmdID +
+ ", " +
+ (menuParams ?
+ "{" + menuParams.parentID + ", " + menuParams.position + ", " + menuParams.menuName + "}" : menuParams) +
+ ", " +
+ (cmdIcon ?
+ "{" + cmdIcon.value + ", " + cmdIcon.imageType + "}" : cmdIcon) +
+ ", " +
+ appID
+ )
+ var commandToAddPosition
+ var app = getApplication(appID)
+ var currentMenu = app.options
+ var maximumCommands = Constants.maximumCommandsPerSubmenu
+ var index = 0
+
+ if ((menuParams) && (menuParams.parentID)) { // Work with sub menu
+ var parentNotFound = true
+ for (var optionIndex = 0; optionIndex < app.options.count; ++optionIndex) {
+ if ((app.options.get(optionIndex).type === Internal.MenuItemType.MI_SUBMENU) && (app.options.get(optionIndex).id === menuParams.parentID)) {
+ currentMenu = app.options.get(optionIndex).subMenu
+ parentNotFound = false
+ maximumCommands += 1
+ }
+ }
+ if (parentNotFound) {
+ console.log("UI::addCommand(): parentID " + menuParams.parentID + " not found")
+ }
+ }
+
+ if (currentMenu.count < maximumCommands) {
+ if (menuParams && (menuParams.position !== undefined)) {
+ commandToAddPosition = menuParams.position
+ } else {
+ commandToAddPosition = Constants.positionOfElementWithoutPosition
+ }
+ for (var i = 0; i < currentMenu.count; i++) {
+ if (commandToAddPosition >= currentMenu.get(i).position) {
+ index = i + 1
+ } else {
+ break
+ }
+ }
+ currentMenu.insert( index,
+ { id: cmdID,
+ name: menuParams.menuName,
+ type: Internal.MenuItemType.MI_NODE,
+ position: commandToAddPosition,
+ icon: cmdIcon ? cmdIcon : {},
+ subMenu: []
+ })
+ } else {
+ console.log("addCommand(): too many commands in menu: ", menuParams.parentID, " rejecting")
+ throw Common.Result.REJECTED
+ }
+ console.debug("exit")
+ }
+
+ function deleteCommand (cmdID, appID) {
+ console.debug("enter: " + cmdID + ", " + appID)
+ for (var optionIndex = 0; optionIndex < getApplication(appID).options.count; ++optionIndex) {
+ var option = getApplication(appID).options.get(optionIndex)
+ if (option.type === Internal.MenuItemType.MI_NODE) {
+ if (option.id === cmdID) {
+ getApplication(appID).options.remove(optionIndex)
+ break
+ }
+ }
+ if (option.type === Internal.MenuItemType.MI_SUBMENU) {
+ var subMenu = option.subMenu
+ var idMatchFound = false
+ for (var subOptionIndex = 0; subOptionIndex < subMenu.count; ++subOptionIndex) {
+ if (subMenu.get(subOptionIndex).id === cmdID) {
+ idMatchFound = true
+ if (subMenu !== currentApplication.currentSubMenu) {
+ subMenu.remove(subOptionIndex)
+ }
+ else {
+ console.log("UI::deleteCommand(): cannot remove item from current submenu")
+ throw Common.Result.IN_USE
+ }
+ break
+ }
+ }
+ if (idMatchFound) {
+ break
+ }
+ }
+ }
+ console.debug("exit")
+ }
+
+ function addSubMenu (menuID, menuParams, appID) {
+ console.debug("enter: " + menuID + ", {" + menuParams.parentID + ", " + menuParams.position + ", " + menuParams.menuName + "}, " + appID)
+ var app = getApplication(appID)
+ var index = 0
+ var count = app.options.count
+ var subMenuToAddPosition
+
+ if (count < Constants.maximumSubmenus) {
+ if (menuParams.position !== undefined) {
+ subMenuToAddPosition = menuParams.position
+ } else {
+ subMenuToAddPosition = Constants.positionOfElementWithoutPosition
+ }
+ for (var i = 0; i < count; i++) {
+ if (subMenuToAddPosition >= app.options.get(i).position) {
+ index = i + 1
+ } else {
+ break
+ }
+ }
+ app.options.insert(index, {
+ "id": menuID,
+ "name": menuParams.menuName,
+ "position": subMenuToAddPosition,
+ "type": Internal.MenuItemType.MI_SUBMENU,
+ "icon": undefined,
+ "subMenu": [{
+ "id": -1,
+ "name": menuParams.menuName,
+ "position": -1,
+ "type": Internal.MenuItemType.MI_PARENT,
+ "icon": {
+ "imageType": Common.ImageType.DYNAMIC,
+ "value": "../res/nav/turnArrow.png"
+ },
+ "subMenu": getApplication(appID).options
+ }]
+ })
+ }
+ else {
+ console.log("addSubMenu(): too many submenus, rejecting")
+ throw Common.Result.REJECTED
+ }
+ console.debug("exit")
+ }
+
+ function deleteSubMenu (menuID, appID) {
+ console.debug("enter: " + menuID + ", " + appID)
+ for (var optionIndex = 0; optionIndex < getApplication(appID).options.count; ++optionIndex) {
+ var option = getApplication(appID).options.get(optionIndex)
+ if ((option.type === Internal.MenuItemType.MI_SUBMENU) && (option.id === menuID)) {
+ if (option.subMenu !== currentApplication.currentSubMenu) {
+ getApplication(appID).options.remove(optionIndex)
+ }
+ else {
+ console.log("UI::deleteSubMenu(): cannot remove current submenu")
+ throw Common.Result.IN_USE
+ }
+ break
+ }
+ }
+ console.debug("exit")
+ }
+
+ function setVrHelp (vrHelp) {
+ this.vrHelp.clear()
+ var index
+ for (var i = 0; i < vrHelp.length; ++i) {
+ index = 0
+// sort by simple inserts
+ while ((index < this.vrHelp.count) && (this.vrHelp.get(index).position < vrHelp[i].position)) {
+ ++index
+ }
+ this.vrHelp.insert(index, {
+ "text": vrHelp[i].text,
+ "icon": vrHelp[i].image ? vrHelp[i].image : {},
+ "position": vrHelp[i].position
+ })
+ }
+ }
+
+ property NavigationModel navigationModel: NavigationModel { }
+ property VehicleInfoModel vehicleInfoModel: VehicleInfoModel { }
+ property ScrollableMessageModel scrollableMessageModel: ScrollableMessageModel { }
+ property bool activeVR: false
+
+ property InteractionModel interactionModel: InteractionModel {
+ }
+
+ property int driverDistractionState: Common.DriverDistractionState.DD_OFF
+ onDriverDistractionStateChanged: {
+ sdlUI.onDriverDistraction(driverDistractionState);
+ }
+ property bool activeTTS: false
+ property variant activePopup
+ property int popups: 0
+
+ property bool activeAlert: false
+
+ onActiveVRChanged: setSystemContext()
+ onActiveAlertChanged: setSystemContext()
+ onPopupsChanged: setSystemContext()
+
+ function setSystemContext () {
+ console.debug("enter")
+ if (popups > 0) {
+ systemContext = Common.SystemContext.SYSCTXT_HMI_OBSCURED
+ }
+ else if (activeAlert) {
+ systemContext = Common.SystemContext.SYSCTXT_ALERT
+ }
+ else if (activeVR) {
+ systemContext = Common.SystemContext.SYSCTXT_VRSESSION
+ }
+ else if (contentLoader.item !== null) {
+ systemContext = contentLoader.item.systemContext
+ }
+ console.debug("exit")
+ }
+ property MusicSourceModel musicSourceModel: MusicSourceModel {
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml
new file mode 100644
index 000000000..8da8a035d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml
@@ -0,0 +1,58 @@
+/**
+ * @file InteractionModel.qml
+ * @brief Interaction model.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Async.js" as Async
+
+QtObject {
+ property string initialText
+ property ListModel choice: ListModel {
+ }
+ property int timeout
+ property variant async
+
+ function performInteraction (initialText, choiceSet, vrHelp, timeout, appID) {
+ console.debug("enter")
+ this.initialText = initialText.fieldText
+ choice.clear()
+ for (var i = 0; i < choiceSet.length; ++i) {
+ choice.append({"id": choiceSet[i].choiceID, "name": choiceSet[i].menuName ? choiceSet[i].menuName : "choiceID = " + choiceSet[i].choiceID, image: choiceSet[i].image})
+ }
+ this.timeout = timeout
+ interactionPopup.activate()
+ async = new Async.AsyncCall()
+ console.debug("exit")
+ return async
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js
new file mode 100644
index 000000000..4a1ebc625
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var MenuItemType = {
+ MI_NODE: 0,
+ MI_SUBMENU: 1,
+ MI_PARENT: 2
+}
+
+function activePageChoose(flickElement, pages) {
+ if (flickElement.contentX <= 0) {
+ return 0
+ }
+ else if ( (flickElement.contentWidth - flickElement.contentX) < flickElement.width) {
+ return pages -1
+ }
+ else {
+ if ( (flickElement.contentX % flickElement.width) >= (1/6 * flickElement.width)) {
+ return Math.ceil(flickElement.contentX / flickElement.width)
+ }
+ else if ( (flickElement.contentX % flickElement.width) > 0) {
+ return Math.floor(flickElement.contentX / flickElement.width)
+ }
+ }
+}
+
+var MediaClockUpdateMode = {
+ MCU_COUNTUP: 0,
+ MCU_COUNTDOWN: 1,
+}
+
+var MediaClockRunningMode = {
+ MCR_RUNNING: 0,
+ MCR_STOPPED: 1
+}
+
+function appendVrHelpItem (arrayElement, index, array) {
+ this.append({
+ text: arrayElement.text,
+ image: arrayElement.image ? arrayElement.image : "",
+ position: arrayElement.position
+ })
+}
+
+function checkBit(value, bitPosition) {
+ return (value & (1 << bitPosition))
+}
+
+function getArrayForPresetRow() {
+ var array = []
+ for (var i = 0; i < dataContainer.currentApplication.customPresets.count; i++) {
+ array.push(dataContainer.currentApplication.customPresets.get(i).text)
+ }
+ return array
+}
+
+function pad (string, length, lead) {
+ if (!lead) {
+ lead = '0'
+ }
+ var paddedString = "" + string
+ while (paddedString.length < length) {
+ paddedString = lead + paddedString
+ }
+ return paddedString
+}
+
+function hmsTime (hours, minutes, seconds) {
+ return 60 * (60 * hours + minutes) + seconds
+}
+
+function hmsTimeToString (hmsTime) {
+ if (hmsTime === -1) {
+ return "0:00:00"
+ }
+
+ var _time = hmsTime
+ var seconds = _time % 60
+ _time -= seconds
+ _time /= 60
+ var minutes = _time % 60
+ _time -= minutes
+ _time /= 60
+ var hours = _time
+ var string = ""
+ string += hours
+ string += ":"
+ string += pad(minutes, 2)
+ string += ":"
+ string += pad(seconds, 2)
+ return string
+}
+
+function stringToHmsTime (hmsString) {
+ console.debug("enter: \"" + hmsString + "\"")
+ var substrings = hmsString.split(":")
+ var seconds = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ if (seconds >= 60) {
+ console.log("incorrect field \"seconds\": " + seconds)
+ console.debug("exit")
+ return 0
+ }
+ var minutes = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ if (minutes >= 60) {
+ console.log("incorrect field \"minutes\": " + minutes)
+ console.debug("exit")
+ return 0
+ }
+ var hours = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ console.debug("exit")
+ return hmsTime(hours, minutes, seconds)
+}
+
+function mediaClockUpdateModeToString (mediaClockUpdateMode) {
+ switch (mediaClockUpdateMode) {
+ case MediaClockUpdateMode.MCU_COUNTUP:
+ return "Internal.MediaClockUpdateMode.MCU_COUNTUP"
+ case MediaClockUpdateMode.MCU_COUNTDOWN:
+ return "Internal.MediaClockUpdateMode.MCU_COUNTDOWN"
+ default:
+ return ""
+ }
+}
+
+function mediaClockRunningModeToString (mediaClockRunningMode) {
+ switch (mediaClockRunningMode) {
+ case MediaClockRunningMode.MCR_RUNNING:
+ return "Internal.MediaClockRunningMode.MCR_RUNNING"
+ case MediaClockRunningMode.MCR_STOPPED:
+ return "Internal.MediaClockRunningMode.MCR_STOPPED"
+ default:
+ return ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml
new file mode 100644
index 000000000..49b4e7fb9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml
@@ -0,0 +1,79 @@
+/**
+ * @file MainMenuListModel.qml
+ * @brief Main menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ name: "Climate"
+ icon: "../res/snow.png"
+ qml: "./views/ClimateControlView.qml"
+ }
+
+ ListElement {
+ name: "Navigation"
+ icon: "../res/arrow.png"
+ qml: "./views/NavigationNoRouteGridView.qml"
+ }
+
+ ListElement {
+ name: "Media"
+ icon: "../res/notes.png"
+ qml: "./views/MusicSourceView.qml"
+ }
+
+ ListElement {
+ name: "Preferences"
+ icon: "../res/gear.png"
+ qml: ""
+ }
+
+ ListElement {
+ name: "Apps"
+ icon: "../res/apps.png"
+ qml: "./views/ApplicationListView.qml"
+ }
+
+ ListElement {
+ name: "Phone"
+ icon: "../res/phone/phone.png"
+ qml: "./views/PhoneMenuGridView.qml"
+ }
+
+ ListElement {
+ name: "Car"
+ icon: "../res/car.png"
+ qml: "./views/CarMenuGridView.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml
new file mode 100644
index 000000000..8f062008a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml
@@ -0,0 +1,112 @@
+/**
+ * @file MediaClockModel.qml
+ * @brief Media clock model
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Internal.js" as Internal
+
+QtObject {
+ property int updateMode
+ property int runningMode
+ property int startTime
+ property int endTime
+ property int upperTimeLimit: 60 * 60 * 60 - 1
+ property int startTimeForProgress
+ property real progress
+
+ property Timer timer: Timer {
+ id: timer
+ interval: 1000
+ repeat: true
+ onTriggered: onTimer()
+ }
+ onRunningModeChanged: {
+ if (runningMode === Internal.MediaClockRunningMode.MCR_STOPPED) {
+ timer.stop()
+ } else {
+ timer.start()
+ }
+ }
+
+ onStartTimeChanged: {
+ if (startTime === -1) {
+ progress = 0
+ } else {
+ if (updateMode === Internal.MediaClockUpdateMode.MCU_COUNTUP) {
+ progress = (endTime !== -1) ? (startTime / endTime) : (startTime / upperTimeLimit)
+ } else {
+ progress = (endTime !== -1) ? ( (startTime - endTime) / (startTimeForProgress - endTime) )
+ : (startTime / startTimeForProgress)
+ }
+ }
+ }
+
+ function onTimer () {
+ switch (updateMode) {
+ case Internal.MediaClockUpdateMode.MCU_COUNTUP:
+ if (endTime !== -1) {
+ if (startTime < endTime) {
+ startTime++
+ } else {
+ timer.stop()
+ runningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ console.debug("count Up timer stopped")
+ }
+ } else {
+ if (startTime < upperTimeLimit) {
+ startTime++
+ } else {
+ startTime = 0
+ }
+ }
+ break
+ case Internal.MediaClockUpdateMode.MCU_COUNTDOWN:
+ console.debug("count down")
+ if (--startTime === 0) {
+ timer.stop()
+ runningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ startTime = endTime = -1
+ console.debug("count Down timer stopped")
+ }
+ break
+ }
+ dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, {
+ "mediaClock": {startTime: startTime,
+ endTime: endTime,
+ updateMode: updateMode,
+ runningMode: runningMode,
+ startTimeForProgress: startTimeForProgress
+ }
+ })
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml
new file mode 100644
index 000000000..b01c4cf83
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file MusicSourceModel.qml
+ * @brief Music source menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ title: "FM"
+ qml: "./views/FMPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "AM"
+ qml: "./views/AMPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "BT Audio"
+ qml: "./views/BTPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "Sirius"
+ qml: "./views/SiriusPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "CD"
+ qml: "./views/CDPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "iPod"
+ qml: "./views/IPodPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "USB"
+ qml: "./views/UsbPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "LineIn"
+ qml: "./views/LineInPlayerView.qml"
+ appId: 0
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml
new file mode 100644
index 000000000..963225719
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml
@@ -0,0 +1,72 @@
+/**
+ * @file NavigationMenuModel.qml
+ * @brief Music source menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ title: "Home"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Keyboard"
+ icon: "../res/buttons/long_oval_btn.png"
+ qml: "./views/NavigationKeyboardView.qml"
+ }
+ ListElement {
+ title: "Favorites"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Work"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Recent"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "POI"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Scout"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Waze"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml
new file mode 100644
index 000000000..f9203875d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml
@@ -0,0 +1,52 @@
+/**
+ * @file NavigationModel.qml
+ * @brief Model for Navigation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string text1: ""
+ property string text2: ""
+ property string totalDistance: ""
+ property string eta: ""
+ property string timeToDestination: ""
+ property variant turnIcon
+ property variant nextTurnIcon
+
+ property real distanceToManeuver: 0
+ property real distanceToManeuverScale: 0
+ property bool maneuverComplete
+ property ListModel softButtons: ListModel {}
+ property int appId: -1
+ property ListModel alertManeuverSoftButtons: ListModel {}
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml
new file mode 100644
index 000000000..8b861d37a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml
@@ -0,0 +1,43 @@
+/**
+ * @file PerformAudioPassThruModel.qml
+ * @brief Data model audio pass thru.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string appName: ""
+ property string firstLine: ""
+ property string secondLine: ""
+ property int timeout: 0
+ property bool running: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml
new file mode 100644
index 000000000..a191f46e4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file PhoneMenuModel.qml
+ * @brief Phone menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ name: "phone"
+ icon: "../res/phone/phone.png"
+ qml: ""
+ }
+ ListElement {
+ name: "contacts"
+ icon: "../res/phone/contacts.png"
+ qml: "./views/PhoneKeyboardView.qml"
+ }
+ ListElement {
+ name: "messages"
+ icon: "../res/phone/messages.png"
+ qml: ""
+ }
+ ListElement {
+ name: "DND"
+ icon: "../res/phone/dnd_off.png"
+ qml: ""
+ }
+ ListElement {
+ name: "texts"
+ icon: "../res/phone/texts.png"
+ qml: ""
+ }
+ ListElement {
+ name: "recent"
+ icon: "../res/phone/recent.png"
+ qml: ""
+ }
+ ListElement {
+ name: "keyboard"
+ icon: "../res/phone/keypad.png"
+ qml: ""
+ }
+ ListElement {
+ name: "more"
+ icon: "../res/phone/more.png"
+ qml: ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml
new file mode 100644
index 000000000..bbacd49f8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml
@@ -0,0 +1,51 @@
+/**
+ * @file PlayerState.qml
+ * @brief List of parameters for each player.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+// Player state for all players except SDL media player
+Item {
+ // Media players
+ property string playPauseState
+ property string albumImage
+ property string trackNumber
+ property int songPosition
+ property string trackName
+
+ // Radio Players
+ property variant presets: []
+
+ // Both players
+ property string songName
+ property string albumName
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml
new file mode 100644
index 000000000..6fd441ac3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml
@@ -0,0 +1,54 @@
+/**
+ * @file ScrollableMessageModel.qml
+ * @brief Model for Scrollable Message.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+QtObject {
+ property string longMessageText: "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh"
+ property ListModel softButtons: ListModel {}
+ property int appId: -1
+ property int timeout: 0
+ property variant async
+ property bool running: false
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml
new file mode 100644
index 000000000..7fb6cfcdd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml
@@ -0,0 +1,125 @@
+/**
+ * @file SettingsStorage.qml
+ * @brief Storage for keeping settings.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+Item
+{
+ property variant sdlLanguagesList: [
+ Common.Language.EN_US,
+ Common.Language.ES_MX,
+ Common.Language.FR_CA,
+ Common.Language.DE_DE,
+ Common.Language.ES_ES,
+ Common.Language.EN_GB,
+ Common.Language.RU_RU,
+ Common.Language.TR_TR,
+ Common.Language.PL_PL,
+ Common.Language.FR_FR,
+ Common.Language.IT_IT,
+ Common.Language.SV_SE,
+ Common.Language.PT_PT,
+ Common.Language.NL_NL,
+ Common.Language.ZH_TW,
+ Common.Language.JA_JP,
+ Common.Language.AR_SA,
+ Common.Language.KO_KR,
+ Common.Language.PT_BR,
+ Common.Language.CS_CZ,
+ Common.Language.DA_DK,
+ Common.Language.NO_NO
+ ]
+
+ property variant displayCapabilities: {
+ "displayType": Common.DisplayType.GEN2_8_DMA,
+ "textFields": [
+ Common.TextFieldName.mainField1,
+ Common.TextFieldName.mainField2,
+ Common.TextFieldName.mainField3,
+ Common.TextFieldName.mainField4,
+ Common.TextFieldName.statusBar,
+ Common.TextFieldName.mediaClock,
+ Common.TextFieldName.mediaTrack,
+ Common.TextFieldName.alertText1,
+ Common.TextFieldName.alertText2,
+ Common.TextFieldName.alertText3,
+ Common.TextFieldName.scrollableMessageBody,
+ Common.TextFieldName.initialInteractionText,
+ Common.TextFieldName.navigationText1,
+ Common.TextFieldName.navigationText2,
+ Common.TextFieldName.ETA,
+ Common.TextFieldName.totalDistance,
+ Common.TextFieldName.navigationText,
+ Common.TextFieldName.audioPassThruDisplayText1,
+ Common.TextFieldName.audioPassThruDisplayText2,
+ Common.TextFieldName.sliderHeader,
+ Common.TextFieldName.sliderFooter,
+ Common.TextFieldName.notificationText
+ ],
+ "mediaClockFormats": [
+ Common.MediaClockFormat.CLOCK1,
+ Common.MediaClockFormat.CLOCK2,
+ Common.MediaClockFormat.CLOCK3,
+ Common.MediaClockFormat.CLOCKTEXT1,
+ Common.MediaClockFormat.CLOCKTEXT2,
+ Common.MediaClockFormat.CLOCKTEXT3,
+ Common.MediaClockFormat.CLOCKTEXT4
+ ],
+ "graphicSupported": true,
+ "imageCapabilities": [ Common.ImageType.DYNAMIC ],
+ "templatesAvailable": [ "" ],
+ "screenParams": {
+ "resolution": {
+ "resolutionWidth": 800,
+ "resolutionHeight": 480
+ },
+ "touchEventAvailable": {
+ "pressAvailable": true,
+ "multiTouchAvailable": true,
+ "doublePressAvailable": true
+ }
+ },
+ "numCustomPresetsAvailable": 6
+ }
+
+ property variant softButtonCapabilities: {
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true,
+ "imageSupported": true
+ }
+
+ property variant buttonCapabilities: []
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml
new file mode 100644
index 000000000..d335c9eb2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml
@@ -0,0 +1,45 @@
+/**
+ * @file SliderModel.qml
+ * @brief Data model for slider.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string appName: ""
+ property string header: ""
+ property variant footer: []
+ property int numTicks: 0
+ property int position: 0
+ property int timeout: 0
+ property bool running: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml
new file mode 100644
index 000000000..f5c309880
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml
@@ -0,0 +1,234 @@
+/**
+ * @file VehicleInfoModel.qml
+ * @brief Data model for vehicle info.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+QtObject {
+ id: vehicleInfo
+ property real speed: 80.1
+ property int rpm: 5000
+ property real fuelLevel: 0.2
+ property int fuelLevel_State: Common.ComponentVolumeStatus.CVS_LOW
+ property real instantFuelConsumption: 2.2
+ property int driverBraking: Common.VehicleDataEventStatus.VDES_NO_EVENT
+ property int wiperStatus: Common.WiperStatus.OFF
+ property real engineTorque: 2.5
+ property real accPedalPosition: 0.5
+ property real steeringWheelAngle: 1.2
+ property real externalTemperature: 40.0
+ property string vin: '52-452-52-752'
+ property int odometer: 2
+ property int prndl: Common.PRNDL.FIFTH
+
+ property variant headLampStatus: {
+ "lowBeamsOn": false,
+ "highBeamsOn": false,
+ "ambientLightSensorStatus": Common.AmbientLightStatus.TWILIGHT_1
+ }
+ property variant deviceStatus: {
+ 'voiceRecOn': false,
+ 'btIconOn': false,
+ 'callActive': false,
+ 'phoneRoaming': false,
+ 'textMsgAvailable': false,
+ 'battLevelStatus': Common.DeviceLevelStatus.ZERO_LEVEL_BARS,
+ 'stereoAudioOutputMuted': false,
+ 'monoAudioOutputMuted': false,
+ 'signalLevelStatus': Common.DeviceLevelStatus.ZERO_LEVEL_BARS,
+ 'primaryAudioSource': Common.PrimaryAudioSource.NO_SOURCE_SELECTED,
+ 'eCallEventActive': false
+ }
+ property variant bodyInformation: {
+ 'parkBrakeActive': false,
+ 'ignitionStableStatus': Common.IgnitionStableStatus.IGNITION_SWITCH_NOT_STABLE,
+ 'ignitionStatus': Common.IgnitionStatus.IS_UNKNOWN
+ }
+ property variant beltStatus: {
+ 'driverBeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerBeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerBuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'driverBuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerChildDetected': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRearInflatableBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRearInflatableBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow1BeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow1BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ }
+ property variant tirePressure: {
+ 'pressureTelltale': Common.WarningLightStatus.WLS_ON,
+ 'leftFront': { status: Common.ComponentVolumeStatus.CVS_NORMAL},
+ 'rightFront': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'leftRear': { status: Common.ComponentVolumeStatus.CVS_NORMAL },
+ 'rightRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'innerLeftRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'innerRightRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN }
+ }
+ property variant gps: {
+ 'longitudeDegrees': 42.3293,
+ 'latitudeDegrees': -83.0464,
+ 'utcYear': 2013,
+ 'utcMonth': 2,
+ 'utcDay': 14,
+ 'utcHours': 13,
+ 'utcMinutes': 16,
+ 'utcSeconds': 54,
+ 'compassDirection': Common.CompassDirection.SOUTHWEST,
+ 'pdop': 4,
+ 'hdop': 5,
+ 'vdop': 6,
+ 'actual': false,
+ 'satellites': 8,
+ 'dimension': Common.Dimension.Dimension_2D,
+ 'altitude': 7,
+ 'heading': 173,
+ 'speed': 2
+ }
+ property variant ecuDIDData: {
+ 'data1': 'ECU 1 Test Data',
+ 'data2': 'ECU 2 Test Data'
+ }
+ property variant eCallInfo: {
+ "eCallNotificationStatus" : Common.VehicleDataNotificationStatus.VDNS_NORMAL,
+ "auxECallNotificationStatus" : Common.VehicleDataNotificationStatus.VDNS_ACTIVE,
+ "eCallConfirmationStatus" : Common.ECallConfirmationStatus.ECCS_NORMAL
+ }
+ property variant airbagStatus: {
+ "driverAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ "driverSideAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO,
+ "driverCurtainAirbagDeployed" : Common.VehicleDataEventStatus.VDES_YES,
+ "passengerAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NOT_SUPPORTED,
+ "passengerCurtainAirbagDeployed" : Common.VehicleDataEventStatus.VDES_FAULT,
+ "driverKneeAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO,
+ "passengerSideAirbagDeployed" : Common.VehicleDataEventStatus.VDES_YES,
+ "passengerKneeAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NOT_SUPPORTED
+ }
+ property variant emergencyEvent: {
+ "emergencyEventType" : Common.EmergencyEventType.EET_NO_EVENT,
+ "fuelCutoffStatus" : Common.EmergencyEventType.EET_FRONTAL,
+ "rolloverEvent" : Common.EmergencyEventType.EET_SIDE,
+ "maximumChangeVelocity" : Common.EmergencyEventType.EET_REAR,
+ "multipleEvents" : Common.EmergencyEventType.EET_ROLLOVER
+ }
+ property variant clusterModeStatus: {
+ "powerModeActive" : true,
+ "powerModeQualificationStatus" : Common.PowerModeQualificationStatus.POWER_MODE_UNDEFINED,
+ "carModeStatus" : Common.CarModeStatus.CMS_NORMAL,
+ "powerModeStatus" : Common.PowerModeStatus.KEY_OUT
+ }
+ property variant myKey: {
+ "e911Override": Common.VehicleDataStatus.VDS_NO_DATA_EXISTS
+ }
+
+
+ function sendGpsChange(){
+ sdlVehicleInfo.onGps(vehicleInfo.gps)
+ }
+ function sendSpeedChange(){
+ sdlVehicleInfo.onSpeed(vehicleInfo.speed)
+ }
+ function sendRpmChange(){
+ sdlVehicleInfo.onRpm(vehicleInfo.rpm)
+ }
+ function sendFuelLevelChange(){
+ sdlVehicleInfo.onFuelLevel(vehicleInfo.fuelLevel)
+ }
+ function sendFuelLevel_StateChange(){
+ sdlVehicleInfo.onFuelLevel_State(vehicleInfo.fuelLevel_State)
+ }
+ function sendInstantFuelConsumptionChange(){
+ sdlVehicleInfo.onInstantFuelConsumption(vehicleInfo.instantFuelConsumption)
+ }
+ function sendExternalTemperatureChange(){
+ sdlVehicleInfo.onExternalTemperature(vehicleInfo.externalTemperature)
+ }
+ function sendPrndlChange() {
+ if (dataContainer.vehicleInfoModel.prndl !== -1)
+ {sdlVehicleInfo.onPrndl(vehicleInfo.prndl)}
+ }
+ function sendTirePressureChange(){
+ sdlVehicleInfo.onTirePressure(vehicleInfo.tirePressure)
+ }
+ function sendOdometerChange(){
+ sdlVehicleInfo.onOdometer(vehicleInfo.odometer)
+ }
+ function sendBeltStatusChange(){
+ sdlVehicleInfo.onBeltStatus(vehicleInfo.beltStatus)
+ }
+ function sendBodyInformationChange(){
+ sdlVehicleInfo.onBodyInformation(vehicleInfo.bodyInformation)
+ }
+ function sendDeviceStatusChange(){
+ sdlVehicleInfo.onDeviceStatus(vehicleInfo.deviceStatus)
+ }
+ function sendDriverBrakingChange(){
+ sdlVehicleInfo.onDriverBraking(vehicleInfo.driverBraking)
+ }
+ function sendWiperStatusChange(){
+ sdlVehicleInfo.onWiperStatus(vehicleInfo.wiperStatus)
+ }
+ function sendHeadLampStatusChange(){
+ sdlVehicleInfo.onHeadLampStatus(vehicleInfo.headLampStatus)
+ }
+ function sendEngineTorqueChange(){
+ sdlVehicleInfo.onEngineTorque(vehicleInfo.engineTorque)
+ }
+ function sendAccPedalPositionChange(){
+ sdlVehicleInfo.onAccPedalPosition(vehicleInfo.accPedalPosition)
+ }
+ function sendSteeringWheelAngleChange(){
+ sdlVehicleInfo.onSteeringWheelAngle(vehicleInfo.steeringWheelAngle)
+ }
+ function sendECallInfoChange(){
+ sdlVehicleInfo.onECallInfo(vehicleInfo.eCallInfo)
+ }
+ function sendAirbagStatusChange(){
+ sdlVehicleInfo.onAirbagStatus(vehicleInfo.airbagStatus)
+ }
+ function sendEmergencyEventChange(){
+ sdlVehicleInfo.onEmergencyEvent(vehicleInfo.emergencyEvent)
+ }
+ function sendClusterModeStatusChange(){
+ sdlVehicleInfo.onClusterModeStatus(vehicleInfo.clusterModeStatus)
+ }
+ function sendMyKeyChange(){
+ sdlVehicleInfo.onMyKey(vehicleInfo.myKey)
+ }
+}