Thanks for the patch, and sorry for the late response. The approach looks good, and I think that this patch will solve fix both bugs (see my comments in the bug reports).
However, I'm wondering if we can avoid calling "view->model()->data(index).value("isLink")" in KStandardItemListWidgetInformant::itemIsLink(). Calling "data" for every item in the model essentially means that we revert https://git.reviewboard.kde.org/r/112725/ , such that this fix would increase the memory usage considerably.
Since the "isLink" property is only ever used in KFileItemListView/Widget: maybe just make
KStandardItemListWidgetInformant::itemIsLink(int index, const KItemListView* view)
return "false"? The function
KFileItemListWidgetInformant::itemIsLink(int index, const KItemListView* view)
does the right thing.