diff --git a/src/kcm/package/contents/code/icon.js b/src/kcm/package/contents/code/icon.js --- a/src/kcm/package/contents/code/icon.js +++ b/src/kcm/package/contents/code/icon.js @@ -1,6 +1,5 @@ /* Copyright 2014-2015 Harald Sitter - Copyright 2019 Sefa Eyeoglu This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -36,3 +35,37 @@ } return icon; } + +function formFactorIcon(formFactor) { + switch(formFactor) { + case "internal": + return "audio-card"; + case "speaker": + return "audio-speakers-symbolic"; + case "phone": + return "phone"; + case "handset": + return "phone"; + case "tv": + return "video-television"; + case "webcam": + return "camera-web"; + case "microphone": + return "audio-input-microphone"; + case "headset": + return "audio-headset"; + case "headphone": + return "audio-headphones"; + case "hands-free": + return "hands-free"; + case "car": + return "car"; + case "hifi": + return "hifi"; + case "computer": + return "computer"; + case "portable": + return "portable"; + } + return ""; +} diff --git a/src/kcm/package/contents/ui/DeviceListItem.qml b/src/kcm/package/contents/ui/DeviceListItem.qml --- a/src/kcm/package/contents/ui/DeviceListItem.qml +++ b/src/kcm/package/contents/ui/DeviceListItem.qml @@ -25,6 +25,7 @@ import org.kde.kirigami 2.5 as Kirigami import org.kde.plasma.private.volume 0.1 +import "../code/icon.js" as Icon ColumnLayout { id: delegate @@ -39,7 +40,7 @@ Layout.alignment: Qt.AlignHCenter Layout.preferredHeight: delegateColumn.height * 0.75 Layout.preferredWidth: Layout.preferredHeight - source: IconName || "audio-card" + source: Icon.formFactorIcon(FormFactor) || IconName || "audio-card" } ColumnLayout {