Sjednocení AddCustomUnpacker a AddPanelArchiver

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

Sjednocení AddCustomUnpacker a AddPanelArchiver

Post by zarevak »

Dobrý den,
plánuji napsat další Unpacker plugin, jenže tyto archivy využívají obecné přípony DAT. Naštěstí je lze rozpoznat podle unikátního názvu souboru, takže je lze zacílit pomocí masky souborů. (Například maska: "backup_####_##_##*.dat" by odpovídala souboru "backup_2009_03_24_dokumenty.dat")

- AddCustomUnpacker umožňuje zadat masku podporovaných souborů, takže lze tento případ vyřešit.
- AddPanelArchiver však umožňuje zadat jen příponu názvu souboru, takže by byl v případě DAT přípony uživatel zmaten všudypřítomnými "archivy", které nejsou archivy. :cry:

Navrhuji:
1) AddPanelArchiver: změnit parametr extensions ze seznamu přípon na obvyklé masky jak je použito v AddCustomUnpacker (tento bod mne tlačí nejvíce... ostatní jsou méně důležité)
2) AddCustomUnpacker: odstranit přebytečný parametr title, který může být bez problémů automaticky vygenerován Salamanderem podobně jako se tomu děje u Panel Archiverů při použití AddPanelArchiver

Poznámky ke konfiguraci:
- Panelové Archivery jsou jedinným místem v konfiguraci, které nevyužívají masky. Editory, Viewery i Unpackery masky používají ;)
- Je zvláštní, že zatímco způsob zadání přípon panel archiveru je docela přehledný a sjednocený s ostatními částmi konfigurace; zadání masek Unpackeru je jen v malém nepřehledném okénku :(

Současné deklarace:
// 'title' je nazev custom unpackeru pro uzivatele
// 'masks' jsou masky souboru archivu (hleda se podle nich cim rozpakovavat dany archiv, oddelovac je ';' (escape sekvence pro ';' je ";;") a pouzivaji se klasicky wildcards '*' a '?' plus '#' pro '0'..'9')
void WINAPI AddCustomUnpacker(const char *title, const char *masks, BOOL update);

// 'extensions' jsou pripony archivu, ktere se timto pluginem maji zpracovavat (oddelovac je ';' (zde nema ';' zadnou escape sekvenci) a pouziva se wildcard '#' pro '0'..'9')
void WINAPI AddPanelArchiver(const char *extensions, BOOL edit, BOOL updateExts);