func (app *Application) getItemInfo(p operations.ListProperty) ItemInfo {
	info := toItemInfo(p)

	// TODO: filter MIME type
	if app.settings.thumbnailSizeLimitation >= uint64(info.Size) {
		thumbnail, err := thumbnails.GenThumbnailWithMime(p.URI, p.MIME, app.settings.iconSize)
		info.Thumbnail = thumbnail

		if err != nil {
			Log.Warningf("Get thumbnail for %q failed: %s\n", p.URI, err)
		}
	}

	info.Icon = operations.GetThemeIcon(p.URI, app.settings.iconSize)
	info.IconName = operations.GetIconName(p.URI)

	return info
}
// GetIconName get icon name for file.
// If the file is a executable desktop file, the app icon name will be returned,
// otherwise, a coresponding file icon name will be returned.
func (job *QueryFileInfoJob) GetIconName(file string) string {
	return operations.GetIconName(file)
}