DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Podpora vývojářů nových pluginů, oznámení o nových pluginech nezávislých autorů a diskuse o nich.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by zarevak »

Zdravím všechny příznivce Salamanderu a přináším novou verzi DiskMapy ;)

Od poslední verze 0.3b1 je spoustu novinek a současnou verzi považuji za ucelenou z hlediska základních vlastností a tedy připravenou pro veřejné vydání ve verzi 1.0. Prosím testujte a připomeňte mi, zda jsem na něco nezapomněl. Kompatibilita s Altap Salamander 2.5, 2.51 a 2.52 beta 2.

Novinky:
- Directory Line! Pomocí Directory line máte okamžitý přehled, kterou část disku mapa zobrazuje a získáváte nové informace, jako celkévý objem dat právě zobrazených souborů a v tooltipech informace o nadřazených složkách (po úroveň té, ze které je mapu otevřena)
- Klávesnice! Byly přidány nové klávesové zkratky pro pohodlnější ovládání z klávesnice. Pro procházení mapy můžete použít šipky a klávesy Enter a Backspace jak jste zvyklí ze Salamanderu ;) Okno hlášení je nově uzavíratelné pomocí klávesy Esc.
- Načítání! Úvodní načítací obrazovka dostala nový vzhled a přehlednější výstup.
- Opravy! Bylo nalezeno a opraveno spousty malých i závažnějších chyb.

Nedostatky:
- Nezobrazuje se TortoiseSVN a podobné menu, ale už nevím proč ;)
- Neběží na prvotních Windows 95 - vyžaduje COMCTL32.DLL
Attachments
diskmap_0.5.25.zip
DiskMap Plugin v0.5. Rozbalte do složky "Salamander\plugins" a v Salamanderu přidejte pomocí "Plugin Manager".
(50.2 KiB) Downloaded 572 times
Ukázka DiskMapy 0.5.25
Ukázka DiskMapy 0.5.25
diskmap_0.5.25.png (38.31 KiB) Viewed 21904 times
Last edited by zarevak on 15 May 2009, 22:26, edited 2 times in total.
User avatar
ino
Posts: 440
Joined: 09 Dec 2005, 14:59
Location: Brno, Czech Republic

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by ino »

Jenom poznámka k chování okna. Je-li okno Salamandra obnovené (tedy nemaximalizované) tak:
- velikost okna neodpovídá velikosti okna Salamandra (utíká o několik pixelů a při každém otevření o jiný počet) ((ale dá se s tím žít))
- okno DiskMapy se zobrazuje jinde než okno Salamandera, a to o něco výš než okno Salamandera (pozn, systémovou lištu mám nahoře a okno DM se mi zobrazí ukryt pod ní)
test na w2k, ještě to zkusím co to udělá na xp.
Jinak moc pěkná práce!
Edited: jaj, ještě něco:
- nelze vyskákat výš, než kde jsem začal (otevřu-li DM na úrovni C:\temp\neco, tak backspacem nelze vyskočit na C:\temp, ani pomocí kliknutí do Directory Line. Můžu jít pouze hlouběji, tedy do C:\temp\neco\nekde - potom je Directory Line funkční, ale jenom po počáteční úroveň tedy po C:\temp\neco)

Edit: tak výše popsané jsem reprodukoval jak na w2k, tak i xp.
Ještě doplním, že poloha okna zrřejmě skáče natvrdo do levého horního rohu (na xp mám lištu prozměnu nalevo, takze ve skutečnosti netuším, kam přesně se levý horní roh okna DM umísťuje...)
Petr Solin
ALTAP Staff
ALTAP Staff
Posts: 1112
Joined: 08 Dec 2005, 09:13
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Petr Solin »

Directory Line je cool. :)

Ovladani z klavesky vitam, proti mysi je tu ale znatelna nevyhoda v tom, ze se pro vybrany soubor neukazuje tooltip, navrhuju ho pri pohybu z klavesky ukazat pro nove vybranou polozku. Pri pohybu mysi by pak prirozene tento tooltip zase zmizel a ukazoval by se pro polozku pod mysi.

Druha vec u klavesky: kdyz otevru okno DiskMap, musim nejprve kliknout na nejakou polozku a az pak zacnou fungovat sipky z klavesky, to mi prijde zbytecne krkolomne, navrhuju proste pri prvni sipce vybrat prvni polozku na obrazovce.

Uvodni okenko je tez cool. Jeste bych asi pridal nejaky krizek nebo tlacitko Cancel + pripadne hint na ESC, kdyz uz to nacitani jde prerusit, tak at to neni tajna funkce (vim, ze tou dobou funguje menu, ale obavam se, ze to uzivatele nenapadne jit hledat do menu, na druhou stranu ESC asi zkusi zmacknout leckdo).

K tomu zminenemu problemu, ze nejde zkracovat v Directory Line nad adresar, pro ktery byla DiskMap otevrena: resenim by asi bylo nabidnout v tom pripade nacteni te cesty (chapu, ze okamzite ukazat nejde, kdyz nemas data).

Dalsi mozne zlepseni by bylo pridat ikonu do Directory Line v pripade, ze je neprazdny Log, aneb vic propagovat, ze se neco tak uplne nepovedlo. Treba za velikost, uplne vpravo. Ve Findu ta ikona jeste blika, to by bylo asi zajimave, ale nevidim to vubec jako nutnost, tady ty chyby asi nejsou zase az tak dulezite.
Petr Solin
ALTAP Staff
ALTAP Staff
Posts: 1112
Joined: 08 Dec 2005, 09:13
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Petr Solin »

Jeste "detail": pro prijemne pouziti z mysi mi chybi toolbarka s tlacitkem Back (to same jako klavesa Backspace).
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Jan Rysavy »

Ondro, vypadá to fakt dobře, gratuluju!
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by zarevak »

ino wrote:Jenom poznámka k chování okna. Je-li okno Salamandra obnovené (tedy nemaximalizované) tak:
- velikost okna neodpovídá velikosti okna Salamandra (utíká o několik pixelů a při každém otevření o jiný počet) ((ale dá se s tím žít))
- okno DiskMapy se zobrazuje jinde než okno Salamandera, a to o něco výš než okno Salamandera (pozn, systémovou lištu mám nahoře a okno DM se mi zobrazí ukryt pod ní)
...
Edit: tak výše popsané jsem reprodukoval jak na w2k, tak i xp.
Ještě doplním, že poloha okna zrřejmě skáče natvrdo do levého horního rohu (na xp mám lištu prozměnu nalevo, takze ve skutečnosti netuším, kam přesně se levý horní roh okna DM umísťuje...)
Ať dělám co dělám, nedaří se mi problém reprodukovat. Velikost okna získávám pomocí API GetWindowPlacement() a okna předaného parametrem parent v ExecuteMenuItem(). Pokud API funkce selže, mělo by se okno otevřít ve výchozí pozici určené Windows (a ty by měly brát ohled na pozici Taskbaru). Jak teď koukám na kód, tak snad jediná díra by mohla nastat, pokud by nebyly hodnoty uloženy do paměti, než se je pokusí číst vlákno okna (proměnné nejsou označené jako volatile).

Pro zobrazení okna DiskMapy používám tento postup:

Code: Select all

BOOL WINAPI CPluginInterfaceForMenuExt::ExecuteMenuItem(CSalamanderForOperationsAbstract *salamander, HWND parent, int id, DWORD eventMask)
{
	switch (id)
	{
	case MENUCMD_OPEN: 
		{
			//ziskani cesty do path
			....
			OpenDiskMapWindow(parent, path);
			return FALSE;
		}
	}
}

BOOL OpenDiskMapWindow(HWND parent, char const *path)
{
	bool alwaysOnTop = FALSE;
	int left = CW_USEDEFAULT;
	int top = CW_USEDEFAULT;
	int height = CW_USEDEFAULT;
	int width = CW_USEDEFAULT;
	int showCmd = SW_SHOW;

	WINDOWPLACEMENT wndpl;
	wndpl.length = sizeof(WINDOWPLACEMENT);
	if (GetWindowPlacement(parent, &wndpl))
	{
		showCmd = wndpl.showCmd;
		
		left = wndpl.rcNormalPosition.left;
		top = wndpl.rcNormalPosition.top;

		width = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left;
		height = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top;
	}
	....
	//zalozeni noveho vlakna a predani vyse ziskanych paramtru pomoci struktury data, do ktere byly hodnoty vyplneny
	HANDLE hThread = CreateThread( 
		NULL,              // default security attributes
		0,                 // use default stack size  
		WindowThreadBody,        // thread function 
		&data,             // argument to thread function 
		0,                 // use default creation flags 
		&threadId);   // returns the thread identifier 
	....
}
Poznámka: kód ještě neobsahuje úpravu pro podporu CallStack zpráv
User avatar
ino
Posts: 440
Joined: 09 Dec 2005, 14:59
Location: Brno, Czech Republic

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by ino »

Petr Solin wrote: Ovladani z klavesky vitam, proti mysi je tu ale znatelna nevyhoda v tom, ze se pro vybrany soubor neukazuje tooltip, navrhuju ho pri pohybu z klavesky ukazat pro nove vybranou polozku. Pri pohybu mysi by pak prirozene tento tooltip zase zmizel a ukazoval by se pro polozku pod mysi.
Právě v případě kdy se pohybuji kurzorovými klávesami, by se náramě hodil kdysi zmíněný (něco jako) statusbar, ve kterém by se zobrazovaly informace, které se teď tahají za kurzorem myši. Anebo ještě lépe, nechat tyto informace zobrazovat v okénku podobném logu - to si uživatel šoupne na monitoru kam chce a nebude muset očima neustále skákat za myší táhnoucí bublinu... Zároveň by toto okno neubíralo prostor hlavního okna DM, který je potřebný pro vykreslování polštářků..
Petr Solin wrote:K tomu zminenemu problemu, ze nejde zkracovat v Directory Line nad adresar, pro ktery byla DiskMap otevrena: resenim by asi bylo nabidnout v tom pripade nacteni te cesty (chapu, ze okamzite ukazat nejde, kdyz nemas data).
Jaj, to jsem si ráno ani neuvědomil. Kde nic není, ani smrt nebere ;-). Co zobrazit hlášku s informací, že jsem dosáhl výchozího adresáře, pro danou DM relaci. Pro vystoupení o úroveň výše bude adresářová struktura znovu zanalyzována. Chcete pokračovat... atd

Ještě pár nápadů:
Jako podkladová barva všech polštářků je černá - šlo by polštářky souborů patřící do jedné adresářové větve nad kterou je právě myš podbarvit jinou barvou (třeba salamandří oranžovou)?

Šlo by zapojit kolečko myši? Rolování pro zoomování, prostřední tlačítko třeba pro focus.

V pravo v Directory line by se mi líbila i informace o celkové kapacita disku. Např. 3,9 GB of drive total 10GB.

Jinak celkové hodnocení je na výbornou - vše funguje plynule, nic neproblikává, nekouše. Podrobně testováno na w2k.

Pozn: v About dialogu je použit vedle DiskMap i výraz TreeMap - bug nebo feature?
User avatar
ino
Posts: 440
Joined: 09 Dec 2005, 14:59
Location: Brno, Czech Republic

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by ino »

zarevak wrote:Ať dělám co dělám, nedaří se mi problém reprodukovat.
Hmm, s kódem nepomůžu, jediné čím můžu pomoci je poskytnutí více informací a testování ;-)

Moje okno AS momentálně vykazuje tyto vlastnosti:
>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title: Altap Salamander 2.52 beta 2 (PB 25) - Expires on 1. října 2009
Class: SalamanderMainWindowVer25
Size: X: -2 Y: 51 W: 974 H: 609

V tomto stavu je zavíráno i následně otevíráno. S jinými interními pluginy/viewery nemám problém.

Kdežto DiskMap se mi otevírá takto:
>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title: DiskMap - D:\install\Kolo Author Kinetic
Class: Zar.DM.MainWin.WC
Size: X: -2 Y: -2 W: 974 H: 609

EDIT: zkusil jsem AS přesunout doprostřed obrazovky - zavřít s uložením konfigurace - znovu otevřít - spustit DM a opět se okno zobrazilo vysunuté nad AS. Šířka i výška okna DM souhlasí s AS, jenom je vyšoupnuté nahoru.

Mám to - může za to systémová lišta od widowsu. Když ji mám nahoře, tak se okno DM posouvá nad okno AS. Je-li dole, tak je to ok. Je-li vlevo, tak okno DM ujede doleva. Je tedy ignorována šířka system baru.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Jan Rysavy »

ino wrote:Jako podkladová barva všech polštářků je černá - šlo by polštářky souborů patřící do jedné adresářové větve nad kterou je právě myš podbarvit jinou barvou (třeba salamandří oranžovou)?
Přesně toto mě taky napadlo.

Jinak bych se chtěl zeptat, čím se řídí barvy polštářků? Jsou z nějaké ručně vybrané palety nebo jde o algoritmus? Říkal jsem si, zda paletu neposadit do světlých pastelových tónů, ke kterým se posunuly XP/Vista/Win7? Momentálně mi okno připadá barevně spíš podobné hrám než vzhledu aplikací. Ale to už je samozřejmě kosmetická záležitost. Spíš až si na současný vzhled uživatelé zvyknou, nebudou z případné změny nadšení.
Attachments
Ukázka pastelových tónů
Ukázka pastelových tónů
paleta.png (98.26 KiB) Viewed 21852 times
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by zarevak »

ino wrote:Mám to - může za to systémová lišta od widowsu. Když ji mám nahoře, tak se okno DM posouvá nad okno AS. Je-li dole, tak je to ok. Je-li vlevo, tak okno DM ujede doleva. Je tedy ignorována šířka system baru.
Děkuji, ino, za super detektivní práci a za nakopnutí. U GetWindowPlacement() to nepíší, ale u struktury WINDOWPLACEMENT, kterou funkce vrací, je zmínka, že jsou souřadnice vztažené na pracovní plochu a ne na obrazovku. Pokud byl Taskbar dole, pak souřadnice [0,0] plochy odpovídala souřadnici [0,0] obrazovky. Při umístění Taskbaru vlevo nebo nahoru se souřadnice posunuly a vznikla chyba. Bude opraveno v 1.0
Jan Rysavy wrote:Jinak bych se chtěl zeptat, čím se řídí barvy polštářků? Jsou z nějaké ručně vybrané palety nebo jde o algoritmus?
Barvy jsou teď generovány jednoduchým algoritmem, který je generuje na základě přípony (první tři znaky přípony definují jednotlivé R, G a B složky barvy => EXE = RGB(36, 207, 36)). Výběr způsobu generování barev je jedna z věcí, která bude v budoucnu přidána - asi verze 1.2 nebo 1.3. Co však více ovlivňuje výsledný pocit z barev je design polštářků, kde ten současný obsahuje hodně černé. Mám druhý návrh, který generuje jiný tvar a pastelové barvy, ale mé přítelkyni se nelíbí :oops:
Poznámka: Nic jako podkladová barva neexistuje - černé pozadí úvodního načítání s barvou polštářků nesouvisí :-P
Petr Solin wrote:Jeste "detail": pro prijemne pouziti z mysi mi chybi toolbarka s tlacitkem Back (to same jako klavesa Backspace).
Už mi taky chybí ;) Bojím se ale, že se to brzy na pořad dne nedostane (je třeba udělat tlačítko, nakreslit ikonu, ošetřit vstup...) Tipuji verze 1.3
Poznámka: Možná stihnu do 1.0 přidat podporu tlačítka Back, které některé myši mají.
Petr Solin wrote:Druha vec u klavesky: kdyz otevru okno DiskMap, musim nejprve kliknout na nejakou polozku a az pak zacnou fungovat sipky z klavesky, to mi prijde zbytecne krkolomne, navrhuju proste pri prvni sipce vybrat prvni polozku na obrazovce.

Uvodni okenko je tez cool. Jeste bych asi pridal nejaky krizek nebo tlacitko Cancel + pripadne hint na ESC, kdyz uz to nacitani jde prerusit, tak at to neni tajna funkce (vim, ze tou dobou funguje menu, ale obavam se, ze to uzivatele nenapadne jit hledat do menu, na druhou stranu ESC asi zkusi zmacknout leckdo).
Souhlas, oba body budou ve verzi 1.0 opravené. (Doplněný text o Esc a na prázdnou obrazovku pak o Ctrl+R nebo F5)
Petr Solin wrote:K tomu zminenemu problemu, ze nejde zkracovat v Directory Line nad adresar, pro ktery byla DiskMap otevrena: resenim by asi bylo nabidnout v tom pripade nacteni te cesty (chapu, ze okamzite ukazat nejde, kdyz nemas data).
Budu muset rozmyslet úpravu Directory Line. Už teď jsem zápasil s výběrem barev pro označování myší. Pokud toto vznikne, bude třeba aby se cesta zvýraznila jinou barvou, aby bylo jasné, že nastane jiná operace. Další problém je s tooltipem, který pro nadřazené složky nemůže obsahovat počet souborů a složek. Bez klikání přes Directory Line možná v 1.1 nebo 1.2
Petr Solin wrote:Dalsi mozne zlepseni by bylo pridat ikonu do Directory Line v pripade, ze je neprazdny Log, aneb vic propagovat, ze se neco tak uplne nepovedlo. Treba za velikost, uplne vpravo. Ve Findu ta ikona jeste blika, to by bylo asi zajimave, ale nevidim to vubec jako nutnost, tady ty chyby asi nejsou zase az tak dulezite.
Log Window potřebuje trochu vylepšit (třeba ho čekají tlačítka Close a Focus in Panel) a při tom dodám i ikonu. Bohužel to zatím nepovažuji za moc důležité, takže až někdy kolem verze 1.5
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Ether »

U tvého pluginu je (v Plugins Manageru) URL http://salamander.diskmap.net, ale ta doména už neplatí.

Taky bych chtěl poukázat na to, že po smazání souboru (z kontextového menu) jeho polštářek nadále zůstává. Nevím, jestli je to správně nebo ne. Možná by stačilo jenom na tento stav nějak upozornit (zprůhledněním polštářku, textem Deleted v tooltipu).

Jinak chválím barvičky podle přípony souboru - potřeboval jsem najít všechny velké rary, a jakmile jsem si uvědomil tu barevnost, zjistil jsem, že je ta mapa velmi přehledná.
Ελληνικά rulez.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by zarevak »

Zdravím všechny příznivce DiskMapy ;)

Díky ethere za upozornění na vypršení domény; už jsem ji prodloužil. :oops:

Jan Ryšavý mne přesvědčil, abych předvedl další vzhledy DiskMapy. Třeba to někoho inspiruje pro vytvoření nového stylu polštářků (více dole) ;)

1) Basic: Základní a záložní styl DiskMapy pevně uložený v kódu. Používá se ve chvílích, kdy se nepodaří načíst jiný styl.
diskmap_design_basic.png
diskmap_design_basic.png (16.85 KiB) Viewed 21784 times
2) Plastic: První styl DiskMapy, který byl kdy vytvořen. První verze DiskMapy, které Altap viděl obsahovaly tento styl.
diskmap_design_plastic.png
diskmap_design_plastic.png (56.82 KiB) Viewed 21785 times
3) Glass: Styl DiskMapy, který všichni znáte. Z několika pokusů byl vybrán jako nejreprezentovatelnější.
diskmap_design_glass.png
diskmap_design_glass.png (20.24 KiB) Viewed 21784 times
4) Sleek: Výše zmíněný styl DiskMapy, který se však nelíbí mé přítelkyni...
diskmap_design_sleek.png
diskmap_design_sleek.png (52.09 KiB) Viewed 21786 times
5) Test: Styl DiskMapy vytvořený z testovacího PNG. Je na něm vidět nedokonalost zvětšovacího/zmenšovacího algortimu, který nepoužívá žádné složitější interpolace. (Nearest-neighbor interpolation) Pro ostatní polštářky toto omezení nevadí a naopak svojí jednoduchostí nabízí vysokou rychlost ;)
diskmap_design_test.png
diskmap_design_test.png (66.01 KiB) Viewed 21786 times
Detaily pro případné zájemce o vytvoření polštářku:
- Polštářky jsou černobílé bitmapy s alpha kanálem, kterými se překreslí barevná plocha polštářku. Pro testování vzhledu jeddnoho polštářku stačí pod grafiku polštářku vložit jakoukoliv barvu.
- Polštářky obsahují takzvané "pevné okraje", které se nezvětšují a nezměnšují se zbytkem, čímž lze dosáhnout čistých hran. Využito u stylů Basic, Glass a Sleek.
- Polštářky (až na Basic a Test) mají rozměru 512x512 pixelů. Při pokusech s Plastic stylem se ukázalo, že se tak zachová dostatečná kvalita při dostatečně malé paměťové náročnosti 512KB. Styl Test je velikosti 128x128 a Basic 3x3. Styl Glass by teoreticky mohl být užší, protože v horizontálním směru neobsahuje detaily/přechody.
- EDIT: Polštářek je třeba otestovat nad bílou i černou barvou. DiskMapa neobsahuje žádné omezení nad barvou polštářku a v budoucnu barvy bude řídit uživatel...
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Jan Rysavy »

SelfMan wrote:K tejto teme mozno zaujme: Color Schemes Appropriate for Scientific Data Graphics
To je naprostá paráda! Například "Stepped-sequential scheme, 5 hues x 5 saturation/value levels". Děkujeme!
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin Release Candidate pro Beta 2 (PB 25)

Post by Jan Rysavy »

zarevak wrote:Barvy jsou teď generovány jednoduchým algoritmem, který je generuje na základě přípony (první tři znaky přípony definují jednotlivé R, G a B složky barvy => EXE = RGB(36, 207, 36)).
Jak dopadnou barvy pro *.txt1 a *.txt2?
Post Reply