Vista velké ikony v panelu pro Thumbnail režimu...

Vítáme všechny návrhy na nové funkce a vylepšení programu Altap Salamander. Pro každý návrh prosím vytvořte samostatný příspěvek.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Vista velké ikony v panelu pro Thumbnail režimu...

Post by zarevak »

Toto souvisí s několika vlákny:
- Explorer thumbnails displayed in Thumbnail View
- Thumbnail plugin při selhání zamezí načtení ikony souboru
- Explorer Thumbnails Plugin


Visty nabízí veliké ikony až do velikosti 256x256, jenže Salamander tak velké ikony nepodporuje a thumbnails režim tak nevypadá tak krásně, jak by mohl 8) Pokoušel jsem se o doplnění této funkčnosti na úrovni Explorer Thumbnails pluginu, ale to má dvě omezení:
- nedokáže generovat ikony pro složky, protože pro ně nikdy není zavolán
- pokud načte ikonu, tak zamezí ostatním pluginům načíst náhled (například Eroica Viewer)

Code: Select all

HBITMAP GetVistaIcon(WCHAR *filename, int width, int height)
{
  HBITMAP hbm = NULL;
  IShellItem *pisi;

  // Vista only funkce, která vrátí správné IShellItem bez jakýchkoliv komplikací s "PIDLy"
  if (SUCCEEDED(SHCreateItemFromParsingName(filename, NULL, IID_IShellItem, (void**)&pisi)))
  {
    IShellItemImageFactory *pisiif;
    if (SUCCEEDED(pisi->QueryInterface(IID_IShellItemImageFactory, (void**)&pisiif)) && pisiif != NULL)
    {
      SIZE size = { width, height };
      SIIGBF flags = SIIGBF_ICONONLY; //Chceme jenom ikonu
      pisiif->GetImage(size, flags, &hbm);
      pisiif->Release();
    }
    pisi->Release();
  }
  return hbm;
}
Jedinné omezení výše uvedeného kódu je v tom, že pro složky, které obsahují obrázky nakreslí otevřenou složku, ale bez vlžených obrázků. Pokud se flags parametr změní na 0, tak se načítají jak náhledy (kde dostupné), tak ikony.

EDIT: Pozor, výsledný HBITMAP může obsahovat 32-bit ARGB bitmapu, ale funkce AlphaBlend (kterou jsem v puginu zkoušel použít) podporuje jen premultiplied Alpha (PARGB).

EDIT2: Tento kód taky nevytváří video okraje... Jak toto dělá Explorer netuším :(

konelupy
Posts: 85
Joined: 18 Jul 2006, 09:06
Location: Turnov, Czech Republic

Re: Vista velké ikony v panelu pro Thumbnail režimu...

Post by konelupy »

zarevak wrote: Visty nabízí veliké ikony až do velikosti 256x256, jenže Salamander tak velké ikony nepodporuje a thumbnails režim tak nevypadá tak krásně, jak by mohl 8) Pokoušel jsem se o doplnění této funkčnosti na úrovni Explorer Thumbnails pluginu, ale to má dvě omezení:
- nedokáže generovat ikony pro složky, protože pro ně nikdy není zavolán

EDIT2: Tento kód taky nevytváří video okraje... Jak toto dělá Explorer netuším :(
Pokud uvazujete o ikonach pro slozky tak myslite - na ikone vice obrazku ze slozky ?
pokud ano tak se mi zdaji hezci ty z XP - 4 obrazky vedle sebe nez ty z Vist - 2 obrazky jakoby v sanonu (taky je tam vic informaci).

nedoplňuje explorer okraje jen dle přípony ?

User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Re: Vista velké ikony v panelu pro Thumbnail režimu...

Post by zarevak »

konelupy wrote: Pokud uvazujete o ikonach pro slozky tak myslite - na ikone vice obrazku ze slozky ?
pokud ano tak se mi zdaji hezci ty z XP - 4 obrazky vedle sebe nez ty z Vist - 2 obrazky jakoby v sanonu (taky je tam vic informaci).
Možná jsou užitečnější, ale vznikl by tak rozdíl mezi Salamanderem a Explorerem. Navíc vytvořit takový náhled by vyžadovalo ruční načítání obsahu složky a ruční generování náhledu. Výše uvedený kus kódu dělá při změně parametru flags na 0 Vista náhled složky automaticky (a je možná i cachován?).
konelupy wrote:nedoplňuje explorer okraje jen dle přípony ?
Je to možné, protože při přejmenování přípony video souboru, který již má náhled vygenerovaný a uložený v cache, tento náhled zůstává, avšak mizí a objevuje se video řámeček podle aktuálně přidané přípony...

User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Re: Vista velké ikony v panelu pro Thumbnail režimu...

Post by zarevak »

zarevak wrote:
konelupy wrote:nedoplňuje explorer okraje jen dle přípony ?
Je to možné, protože při přejmenování přípony video souboru, který již má náhled vygenerovaný a uložený v cache, tento náhled zůstává, avšak mizí a objevuje se video řámeček podle aktuálně přidané přípony...
Záhada odhalena: Pokud je ve Windows Vista v registry u přípony klíč "PerceivedType" s hodnotou "video", tak se nakreslí video rámeček (nezávisle na tom, zda je soubor přiřazen k nějaké aplikaci). Ikona aplikace (pokud přiřazena) se pak přikreslí do pravého dolního rohu.

Petr Solin
ALTAP Staff
ALTAP Staff
Posts: 1111
Joined: 08 Dec 2005, 09:13
Location: Novy Bor, Czech Republic
Contact:

Post by Petr Solin »

Tady to bude chtit poradne promyslet, jestli zvolit cestu pridani nacitani ikon/thumbnailu ze systemu primo do jadra Salamandera nebo zdokonalit rozhrani thumbnaileru o nacitani thumbnailu i pro adresare a priorizaci. Pro vlozeni do jadra mluvi i potreba nacitat takhle i ikony (dnes jsou problem adresare + po zmene DPI obrazovky uz nemaji ikony stary dobry rozmer 16x16, atd.). Casem to poresime.

User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Post by zarevak »

Myslím, že rozšířovat rozhranní není rozumné. Nevidím totiž potřebu žádného jiného pluginu tvořit náhledy pro složky...

Přidání do jádra Salamandera vyřeší zároveň problém maximálně 48x48 ikon v panelech...

Otázka je, zda má Salamander načítat jen ikony nebo i náhledy (zde lze pomocí SIIGBF_INCACHEONLY omezit náhledy jen na ty již v Cache).

Proti náhledům mluví jednoduchost a potřeba zobrazit typ souborů místo obsahu.

Pro náhledy mluví prázdné otevřené složky s obrázky (bez vložených obrázků jsou k nerozeznání od normálních složek). Dále též sjednocení náhledů s dalšími programy pod Windows. Omezení jen na náhledy v cache bych implementoval jen pro první (rychlý) průchod, aby uživatelé nebyli zaskočeni, proč po ukenčení načítání některé soubory náhledy mají a jiné ne.

Vyvstává však otázka: Preferovat náhledy z pluginů nebo náhledy z Windows? Pluginy mohou generovat náhledy pro více typů souborů (obskurní formáty obrázků a PictView, ...). Windowsí náhledy zase mohou být přesnější (náhledy Eroica Vieweru jsou jen přibližné, zatímco pokud mám nainstalovaný oficiální software, tak ten může náhledy poskytovat v lepší kvalitě)
Attachments
Ikony složek. První ukazuje současný stav v Salamanderu. Pouze poslední vyžaduje načítání náhledů.
Ikony složek. První ukazuje současný stav v Salamanderu. Pouze poslední vyžaduje načítání náhledů.
vista_folders.png (29.43 KiB) Viewed 4504 times

Post Reply