diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index 8c6edc55d..682e0e616 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -221,10 +221,14 @@ ScrollViewKCM { onTriggered: kcm.selectedTranslationsModel.move(index, 0) }, Kirigami.Action { - enabled: !model.IsMissing + property bool removing: false + enabled: removing || !model.IsMissing && languagesList.count > 1 iconName: "list-remove" tooltip: i18nc("@info:tooltip", "Remove") - onTriggered: kcm.selectedTranslationsModel.remove(model.LanguageCode) + onTriggered: { + removing = true; // Don't crash by re-evaluating `enabled` during destruction. + kcm.selectedTranslationsModel.remove(model.LanguageCode); + } }] } } diff --git a/translationsmodel.cpp b/translationsmodel.cpp index 4a7fa9a2d..fbb5407d1 100644 --- a/translationsmodel.cpp +++ b/translationsmodel.cpp @@ -213,7 +213,7 @@ void SelectedTranslationsModel::remove(const QString &languageCode) int index = m_selectedLanguages.indexOf(languageCode); - if (index < 1) { + if (index < 0 || m_selectedLanguages.count() < 2) { return; }