Fix icons missing in device settings page
This commit is contained in:
@@ -9,6 +9,15 @@ ComboBox {
|
||||
id: comboBox
|
||||
|
||||
property string iconSourceRole
|
||||
property int iconSourceRoleInt
|
||||
|
||||
property string iconSource: comboBox.currentIndex === -1
|
||||
? ""
|
||||
: Array.isArray(comboBox.model)
|
||||
? comboBox.model[comboBox.currentIndex][comboBox.iconSourceRole]
|
||||
: (comboBox.model as ListModel)?.get(comboBox.currentIndex)[comboBox.iconSourceRole]
|
||||
?? (comboBox.model as FolderListModel)?.get(comboBox.currentIndex, comboBox.iconSourceRole)
|
||||
?? comboBox.model.data(comboBox.model.index(comboBox.currentIndex, 0), comboBox.iconSourceRoleInt)
|
||||
|
||||
delegate: ItemDelegate {
|
||||
height: 64
|
||||
@@ -23,45 +32,7 @@ ComboBox {
|
||||
}
|
||||
contentItem: IconChooserDelegateLayout {
|
||||
text: comboBox.displayText
|
||||
iconSource: {
|
||||
// console.log("QAbstractListModel", model instanceof QAbstractListModel);
|
||||
// console.log("QAbstractItemModel", model instanceof QAbstractItemModel);
|
||||
// console.log("FolderListModel", model instanceof FolderListModel);
|
||||
// console.log("DeviceTypesModel", model instanceof DeviceTypesModel);
|
||||
// console.log("QtObject", model instanceof QtObject);
|
||||
|
||||
if (comboBox.currentIndex < 0)
|
||||
return '';
|
||||
if (!comboBox.model)
|
||||
return '';
|
||||
if (!comboBox.iconSourceRole)
|
||||
return '';
|
||||
|
||||
if (model instanceof FolderListModel)
|
||||
return model.get(comboBox.currentIndex, iconSourceRole);
|
||||
else if ('get' in model)
|
||||
{
|
||||
const data = model.get(comboBox.currentIndex);
|
||||
console.log(data);
|
||||
return data[iconSourceRole];
|
||||
}
|
||||
else if ('roleNames' in model || 'itemData' in model)
|
||||
{
|
||||
if (!('roleNames' in model && 'itemData' in model))
|
||||
throw 'roleNames or itemData not defined!';
|
||||
|
||||
const roleNames = model.roleNames();
|
||||
console.log('roleNames', roleNames);
|
||||
|
||||
const index = model.index(comboBox.currentIndex, 0);
|
||||
const itemData = model.itemData(index);
|
||||
console.log('itemData', itemData);
|
||||
|
||||
throw 'getting data from model using roleNames and itemData is not yet implemented.';
|
||||
}
|
||||
else
|
||||
throw 'unknown model type' + typeof model;
|
||||
}
|
||||
iconSource: comboBox.iconSource
|
||||
isInsideMaterialComboBox: true
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user