From 3735cf0d4f8d37f613bbefbc7db440c8fa9dfb02 Mon Sep 17 00:00:00 2001
From: ababi <albert.babi@savoirfairelinux.com>
Date: Wed, 23 Sep 2020 10:47:46 +0200
Subject: [PATCH] settings: set index limits for codecs table

- index must be within model's range

Gitlab: #102
Change-Id: Ia68e9d5440bc70a420b11f06800559d501a849c3
---
 src/settingsview/components/MediaSettings.qml | 35 +++++++++++--------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/settingsview/components/MediaSettings.qml b/src/settingsview/components/MediaSettings.qml
index 04f7b544d..75446fb8e 100644
--- a/src/settingsview/components/MediaSettings.qml
+++ b/src/settingsview/components/MediaSettings.qml
@@ -41,11 +41,14 @@ ColumnLayout {
 
     function decreaseCodecPriority() {
         var index = mediaListWidget.currentIndex
-        var codecId = mediaListWidget.model.data(mediaListWidget.model.index(index,0), MediaCodecListModel.MediaCodecID)
+        if (index >= mediaListWidget.model.rowCount() - 1)
+            return
+        var codecId = mediaListWidget.model.data(mediaListWidget.model.index(index,0),
+                                                 MediaCodecListModel.MediaCodecID)
 
-        if (mediaType == MediaSettings.VIDEO)
+        if (mediaType === MediaSettings.VIDEO)
             SettingsAdapter.decreaseVideoCodecPriority(codecId)
-        else if (mediaType == MediaSettings.AUDIO)
+        else if (mediaType === MediaSettings.AUDIO)
             SettingsAdapter.decreaseAudioCodecPriority(codecId)
         mediaListWidget.currentIndex = index + 1
         updateCodecs()
@@ -54,17 +57,21 @@ ColumnLayout {
     function updateCodecs() {
         mediaListWidget.model.layoutAboutToBeChanged()
         mediaListWidget.model.dataChanged(mediaListWidget.model.index(0, 0),
-                                     mediaListWidget.model.index(mediaListWidget.model.rowCount() - 1, 0))
+                                          mediaListWidget.model.index(
+                                              mediaListWidget.model.rowCount() - 1, 0))
         mediaListWidget.model.layoutChanged()
     }
 
     function increaseCodecPriority(){
         var index = mediaListWidget.currentIndex
-        var codecId = mediaListWidget.model.data(mediaListWidget.model.index(index,0), MediaCodecListModel.MediaCodecID)
+        if (index === 0)
+            return
+        var codecId = mediaListWidget.model.data(mediaListWidget.model.index(index,0),
+                                                 MediaCodecListModel.MediaCodecID)
 
-        if (mediaType == MediaSettings.VIDEO)
+        if (mediaType === MediaSettings.VIDEO)
             SettingsAdapter.increaseVideoCodecPriority(codecId)
-        else if (mediaType == MediaSettings.AUDIO)
+        else if (mediaType === MediaSettings.AUDIO)
             SettingsAdapter.increaseAudioCodecPriority(codecId)
         mediaListWidget.currentIndex = index - 1
         updateCodecs()
@@ -81,9 +88,9 @@ ColumnLayout {
 
             maxWidth: width
             eText:  {
-                if (mediaType == MediaSettings.VIDEO)
+                if (mediaType === MediaSettings.VIDEO)
                     return "Video Codecs"
-                else if (mediaType == MediaSettings.AUDIO)
+                else if (mediaType === MediaSettings.AUDIO)
                     return "Audio Codecs"
             }
             fontSize: JamiTheme.settingsFontSize
@@ -147,12 +154,12 @@ ColumnLayout {
             }
 
             onMediaCodecStateChange: {
-                if (mediaType == MediaSettings.VIDEO)
-                    SettingsAdapter.videoCodecsStateChange(idToSet , isToBeEnabled)
-                if (mediaType == MediaSettings.AUDIO)
-                    SettingsAdapter.audioCodecsStateChange(idToSet , isToBeEnabled)
+                if (mediaType === MediaSettings.VIDEO)
+                    SettingsAdapter.videoCodecsStateChange(idToSet, isToBeEnabled)
+                if (mediaType === MediaSettings.AUDIO)
+                    SettingsAdapter.audioCodecsStateChange(idToSet, isToBeEnabled)
                 updateCodecs()
             }
         }
     }
-}
\ No newline at end of file
+}
-- 
GitLab