DiskMap Plugin

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: 785
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

DiskMap Plugin

Post by zarevak » 30 Jan 2009, 11:30

DiskMap Plugin je doplněk pro Altap Salamander 2.52 beta 1, který vizualizuje obsazené místo na disku pomocí TreeMapy. Každý soubor je zobrazen jako jeden obdélník, jehož plocha úměrně odpovídá velikosti souboru na disku. Lze tak jednoduše zjistit, které soubory zabírají nejvíce místa a kam se podělo cenné volné místo.

Užití:
- DiskMapu pro aktuální složku zobrazíte vybráním z Plugin menu/Plugin baru (Ctrl+Shift+D). Pro zobrazení diskmapy celého disku spusťte diskmapu z panelu, který je v kořenové složce (root) tohoto disku.

Jedná se testovací verzi určenou pro Altap Salamander 2.52 beta 1. Jakékoliv nalezené chyby nebo připomínky prosím hlašte do tohoto vlákna.

Známé nedostatky:
- Není testováno na Windows NT a Windows 95, 98, Me.
- Na Windows 2000 se nezobrazuje TortoiseCVS a podobné v kontextovém menu
- DiskMapa je jen v angličtině

Version History:
Version 0.3b1: (2009-03-23)
- Removed MSVCR80.dll dependency. Uses salrtl.dll bundled with Altap Salamander
- Added path to Window title
- Fixed window positioning - DiskMap is now openned over Salamander Window
- Closes on ESC keypress with suppressable confirmation
- Fixed new[] vs. delete mismatch (salrtl.dll doesn't support new[])
- Bugfixes
Version 0.2b1: (2009-01-30)
- first public version; displays TreeMap of files on your disk.
Attachments
diskmap_0.3b1.zip
DiskMap Plugin v0.3b1 pro Altap Salamander 2.52 beta 1. Rozbalte do složky "Salamander\plugins" a v Salamanderu přidejte pomocí "Plugin Manager".
(44.17 KiB) Downloaded 357 times
diskmap_0.3b1.png
Ukázka DiskMapy 0.3b1
diskmap_0.3b1.png (42.78 KiB) Viewed 13306 times
Last edited by zarevak on 23 Mar 2009, 15:30, edited 2 times in total.

User avatar
Raptor
Posts: 703
Joined: 28 Jan 2006, 15:04
Location: Prague, Czech Republic
Contact:

Post by Raptor » 30 Jan 2009, 11:51

Nevim zda je to chyba nebo zamer, ale ukazuje to vzdy misto v aktualnim adresari, ne na disku. Aby mi to ukazalo cely disk, musim byt v rootu. Ale o tom se nikde nepise.

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

Post by zarevak » 30 Jan 2009, 12:00

Raptor wrote:Nevim zda je to chyba nebo zamer, ale ukazuje to vzdy misto v aktualnim adresari, ne na disku. Aby mi to ukazalo cely disk, musim byt v rootu. Ale o tom se nikde nepise.
That's a feature 8) Přidal jsem poznámku do prvního příspěvku.

User avatar
Raptor
Posts: 703
Joined: 28 Jan 2006, 15:04
Location: Prague, Czech Republic
Contact:

Post by Raptor » 30 Jan 2009, 12:06

Tak pak bych se asi primlouval o featurky:
-inforadek at je videt co je vlastne zobrazene za slozku
-moznost posunovat se o slozku vys, pripadne primo do rootu disku (zavirat a otvirat je nepohodlne)

A dotaz - k cemu je Log Window?

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

Post by zarevak » 30 Jan 2009, 12:31

Raptor wrote:-inforadek at je videt co je vlastne zobrazene za slozku
Toto je na TODO ;)
Raptor wrote:-moznost posunovat se o slozku vys, pripadne primo do rootu disku (zavirat a otvirat je nepohodlne)
Toto je na TBD listu - tedy: je třeba rozmyslet :oops:
- Původní nápad byl pomalu na pozadí načítat zbytek disku směrem výš, ale nakonec jsem nápad zavrhl jako moc dotěrný pro uživatele a náročný na detaily v implementaci.
- Jednodušší řešení by bylo změnit otevíranou cestu a nechat znova načíst celý strom (Windows docela rozumně cachují, takže takový problém to není). Nadřazená složka však může být na jiném disku a DiskMapa se brání přechodu mezi disky, takže byste původní složku pak v nové mapě neviděl...
Raptor wrote:A dotaz - k cemu je Log Window?
Je to obdoba podobného logu ve Find dialogu. Při testování se ukázalo, že DiskMapa potichu ignoruje nepřístupné složky a uživatel o tomto není nijak informován. Log Window tyto složky zobrazí i s odůvodněním, proč se je nepodařilo otevřít.

User avatar
MartinS
Posts: 98
Joined: 04 May 2006, 19:48
Location: Brno, Moravia

Post by MartinS » 30 Jan 2009, 14:42

Díky za skvělý plugin.

Pár drobných nápadů:
- šlo by stav, kdy log window není prázdné nějak viditelně signalizovat (viz blikající ikona ve Find dialogu)
- nevím jestli jsem správně pochopil funkci ZOOM IN - jde jen o grafické přiblížení, nebo to načte podsložku se souborem, který je vybraný? Pokud by šlo o grafické přiblížení, hodily by se Scrollbars a podpora Ctrl-kolečko myši pro ZOOM IN/OUT
- podle čeho se určuje velikost a umístění okna? Nebylo by lepší vykreslit podle okna Salamandera?

EDIT: ty ikony v log window jsou schválně s takovými zvláštními okraji?
Last edited by MartinS on 30 Jan 2009, 18:58, edited 1 time in total.

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

Post by zarevak » 30 Jan 2009, 18:03

MartinS wrote:- šlo by stav, kdy log window není prázdné nějak viditelně signalizovat (viz blikající ikona ve Find dialogu)
Bude součástí Directory Line (infořádek, jak psal Raptor) ;)
MartinS wrote:- nevím jestli jsem správně pochopil funkci ZOOM IN - jde jen o grafické přiblížení, nebo to načte podsložku se souborem, který je vybraný? Pokud by šlo o grafické přiblížení, hodily by se Scrollbars a podpora Ctrl-kolečko myši pro ZOOM IN/OUT
Zoom In zobrazí mapu pro podsložku aktuálně zobrazené složky. Nově zobrazená podsložka je právě ta, která ve svém stromě obsahuje vybraný soubor.
Tedy, pokud zobrazuji mapu C:\ a mám vybraný soubor C:\Data\2008\report.dat tak se po Zoom In příkazu zobrazí mapa složky C:\Data.
MartinS wrote:- podle čeho se určuje velikost a umístění okna? Nebylo by lepší vykreslit podle okna Salamandera?
Výchozí podle Windows. Bude opraveno v příští verzi.
MartinS wrote:EDIT: ty ikony v log window jsou schválně s takovými zvláštními okraji?
Obdobný problém se stejnými ikonkami pozoruji na Windows 2000. Ještě prozkoumám.

Děkuji za komentáře ;)

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

Post by zarevak » 23 Mar 2009, 15:33

DiskMap 0.3b1 pro Altap Salamander 2.52 beta 1 plugin již nevyžaduje MSVCR80.dll, otevírá se nad oknem Salamanderu, zavírá se klávesou ESC a v titulku obsahuje načtenou cestu. Stahujte z prvního příspěvku.

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

Post by Petr Solin » 23 Mar 2009, 22:19

Nainstaloval jsem si, vyzkousel a dost se mi to libi! :) Ten tooltip je bezva, informaci az az. Napady a pripominky:
-uvodni nacitani dat by melo celkovou velikost ukazovat v kratkem formatu (18,5 GB misto 19 864 223 744), ta dlouha cisla jsou podle mne totalne neprehledna,
-docela mi chybi adresar, ve kterem mam zrovna "nazoomovano", proste kdyz provedu Zoom In (jestli to chapu dobre, jde o vstup do podadresare smerem k vybranemu souboru), privital bych, aby se titulek okna zmenil do toho podadresare (a zase zpet po pouziti Zoom Out) - podle me je to i logicke, v tu chvili se ukazuje jen ta "vyzoomovana" cesta,
-menu na prave tlacitko je bezva, jen me trochu mate, ze je v nem vzdy videt default akce (tucne pismo) a pritom na dvojklik se nic nedeje (v pripade, ze jiz nejde Zoom In) - tedy nezobrazoval bych Focus in Salamander jako default (mozna zmenit prikaz na Focus nebo Focus in Panel),
-mozna by se sikla toolbara, alespon na Zoom Out bych ji urcite uzil,
-dotaz na zavirani okna DiskMap by melo jit zavrit klavesou ESC, viz MSGBOXEX_ESCAPEENABLED a asi by mohlo byt i tiche (bez pipnuti pri otevreni), viz MSGBOXEX_SILENT,
-pridat texty hotkeys do menu, napr. Backspace pro Zoom Out jsem zkusil az kdyz jsem ho sel navrhnout ;-) pripadne dalsi: Ctrl/Shift+Backspace pro presun do rootu (odkud byl DiskMap spusten), F pro fokus v panelu, Enter pro Zoom In.

User avatar
Raptor
Posts: 703
Joined: 28 Jan 2006, 15:04
Location: Prague, Czech Republic
Contact:

Post by Raptor » 23 Mar 2009, 22:35

Mi by se libilo Zoom in/out na kolecko na mysi, pripadne pak funkcnost back/forward tlacitek na mysi.

Bylo by prima mit moznost jen najet na jakykoliv blok a jen zoomnout koleckem, aniz bych musel kliknout a vybrat zoom.

Toto by bylo asi ale pripadne fajn mit moznost zapnout/vypnout v konfiguraci.

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5126
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy » 25 Mar 2009, 15:58

Ondro, vypadá to velmi dobře!

Doplním pár drobností.
Petr Solin wrote:-uvodni nacitani dat by melo celkovou velikost ukazovat v kratkem formatu (18,5 GB misto 19 864 223 744), ta dlouha cisla jsou podle mne totalne neprehledna
1. Je na to metoda v SDK CSalamanderGeneralAbstract::PrintDiskSize();

2. Potom jedna maličkost. Pokud načítání přeruším, přestane se překreslovat okno, viz příloha.

3. V načteném stavu nechodí Ctrl+R. Z menu příkaz zadám bez problému.

4. Potom návrh: v menu by mohl být příkaz pro načtení jiného disku, aby člověk nemusel z okna odcházet. Otevřít std. dialog pro volbu cesty...
Attachments
diskmap.png
diskmap.png (13.46 KiB) Viewed 13185 times

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

Post by Petr Solin » 25 Mar 2009, 16:31

Navrhuju pridani tlacitka Abort (nebo Cancel) primo do okna (v menu je to prilis schovane), nejspis az uplne dolu, pod progress i status text.

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

Re: DiskMap Plugin

Post by zarevak » 03 May 2009, 03:39

Nová verze DiskMapy se blíží ;) Narazil jsem však na drobný problém a doufám, že se zde objeví někdo chytrý, kdo mi poradí (teď v noci na nic už přijít nemohu :()

Ukázka Directory Line s problémem:
dirline_problem.png
dirline_problem.png (4.42 KiB) Viewed 12936 times
Directory Line už krásně funguje až na tento drobný nedostatek, kdy Comic Sans MS Bold Italic přesahuje velikost naměřenou pomocí GetTextExtentPoint32 a GetTextExtentExPoint, které používám pro počítání rozměrů textu.

Zkoušel jsem se podívat na GetTextMetrics - konkrétně hodnotu tmOverhang struktury TEXTMETRIC, ale ta je v tomto případě rovna nule :(

:arrow: Jak zjistit skutečnou délku textu? :?:

Poznámky:
- Barvy jsou zatím dočasné, testovací
- Screenshot je z Windows 7; problém byl testován i na Windows 2000 a Windows XP
- Kreslení probíhá pomocí několika ExtTextOut(..., ETO_CLIPPED | ETO_OPAQUE, &rect, ...)

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5126
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: DiskMap Plugin

Post by Jan Rysavy » 03 May 2009, 06:26

Probém bych s klidem ignoroval. Stejnou věc jsme udělali v interním vieweru a uživatelé si nestěžují.
Ani edit line Windows nechodí zrovna ukázkově, tak proč bychom měli zrovna my :)

Italic fonty počítam uživatelé nepoužívají.
Attachments
windows.png
windows.png (34.51 KiB) Viewed 12936 times
internalviewer.png
internalviewer.png (7.73 KiB) Viewed 12943 times

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

Re: DiskMap Plugin

Post by zarevak » 03 May 2009, 14:03

Jan Rysavy wrote:Italic fonty počítam uživatelé nepoužívají.
Ve Windows 2000 jsem ho používal v titulku neaktivních oken :oops:

Jak se říká: "Ráno moudřejší večera." 8)
- Q244798: HOWTO: Mix Italic and Regular (Non-Italic) Text
- Q94646: INFO: Using GetCharABCWidths() to Calculate Text Extents
- MSDN: Character Widths

Základem řešení jsou tedy API GetCharABCWidths a GetCharABCWidthsFloat.
- GetCharABCWidths bohužel funguje jen pro True Type a Open Type fonty.
- GetCharABCWidthsFloat funguje pro všechny fonty, ale jenom na Windows NT.

Post Reply