Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-17257

Display custom applications icons for installed applications in Rapps

    XMLWordPrintable

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • 0.4.15
    • Applications
    • VirtualBox 5.1.38.

    Description

      I wroted the patch that allows Rapps to display the custom app icons for installed software instead of just default Rapps icon. In my opinion, default icon for each application looks monotonously and not informatively, because it doesn't display what it should. So displaying the custom app's icon instead will make it less hard to understand which app is actually installed. Moreover, it already has been done for available apps (during GSoC 2020).

      My patch contains the following changes:

      • Implement `RetrieveIcon` helper function in `CInstalledApplicationInfo` class, which retrueves the current app's icon from registrty, same as it done for `CAvailableApplicationInfo`.
      • Use it for loading the icon in `CAppsListView::AddInstalledApplication` function, via `ExtractIconW`. Load default Rapps icon only when the app has no its custom icon.
      • Retrieve `DisplayIcon` value from registry in `CInstalledApps::Enum` function, same as other registry values (like app name, description, etc).Store it in `szDisplayIcon` string, which is used in `CInstalledApplicationInfo::RetrieveIcon` for retrieving the data of that value.
      • Increase `LISTVIEW_ICON_SIZE` macro from 24 to 32, so 32x32 icon size is now used instead of 24x24. This makes displayed icons more accurate, since most of apps contain 32x32 icon, so they look a bit distorted with 24x24 size.
         
        TODO:
      • Display the icons also for apps, whose strings in registry are terminated by zero. Currently, my patch implements displaying the icons only for apps, which have direct string. E. g. for:

      C:\AppPath\AppName.exe
      

      it displays the icon correctly, but for

      C:\AppPath\AppName.exe,0
      

      it does not.
      I don't know exactly how I can do that. Probably I should use something other as 3rd parameter of ExtractIconW function, which I can declare differently.

      Attachments

        Issue Links

          Activity

            People

              Oleg Dubinskij Oleg Dubinskiy
              Oleg Dubinskij Oleg Dubinskiy
              Votes:
              2 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: