Page 1 of 1

Vybraná položka po přesunu (F6) označených souborů...

Posted: 09 Jul 2007, 03:09
by zarevak
Dobrý den,
nevím, do jaké části fóra toto zařadit - zda se jedná o chybu nebo vlastnost nebo něco jiného.... :?

Pokud mám složku obsahující několik položek a označím (select) tři po sobě jdoucí (pomocí klávesy Insert), skončí kurzor (focus) na položce za seznamem označených souborů a po dokončení přesunu (F6) označených položek zůstane kurzor na stejné položce.
Příklad:
jedna
dve
tri

ctyri << kurzor zde
pet
Po přesunu:
ctyri << kurzor zde
pet


Pokud však označím (select) tři po sobě jdoucí položky, přesunu kurzor (focus) na druhou označenou a provedu přesun (F6), tak se kurzor po dokončení přesunu přesune na položku o dvě za seznam položek...
Příklad:
jedna
dve
<< kurzor zde
tri
ctyri
pet
Po přesunu:
ctyri
pet << kurzor zde a nechápu proč


Očekával bych, že se kurzor vždy přesune za první neoznačenou zbylou položku v seznamu
- při označení jedna, tri a ctyri a kurzoru na jedna se po přesunu kurzor přesune na položku dve
- při označení jedna, tri a ctyri a kurzoru na tri se po přesunu kurzor přesune na položku pet

Posted: 11 Jul 2007, 16:22
by Jan Rysavy
Současné chování je postavené čistě na indexech. Salamander nehodnotí, které soubory zmizely, pouze se pokouší dodržet "TopIndex" (hloupě neodrolovat na začátek seznamu) a dále držet "FocusIndex", tedy zachovat focus na X-té položce. Pokud X-tá položka neexistuje (změnil se počet položek), zadrhne se na focus na začátku nebo konci seznamu.

To myslím vysvětluje oba popsané případy.

Posted: 12 Jul 2007, 22:50
by zarevak
Jan Rysavy wrote:Salamander nehodnotí, které soubory zmizely, pouze se pokouší dodržet "TopIndex" a "FocusIndex", tedy zachovat focus na X-té položce. Pokud X-tá položka neexistuje (změnil se počet položek), zadrhne se na focus na začátku nebo konci seznamu.

To myslím vysvětluje oba popsané případy.
Indexy vysvětlují druhý případ, kdy kurzor je na položce s indexem 2 (indexace od 1) a po skončení práce zůstává na položce 2 (a uživateli se zdá, že přeskočil položku ctyri s indexem 1).
V prvním případě však kurzor skočí na index 1, přestože původně byl na indexu 4 (nejde o návrat na začátek, protože Salamnder toto udělá, přestože jsou před tím další souboru v příkladu s indexy 0 a méně) - vypadá to, že Salamander ještě kontroluje existenci původně vybrané (focus) položky.
:arrow: Pokud je kurzor na položce, která nezmizí, tak se Salamander zachová správně a kurzorem na této položce zůstane :)
:arrow: Pokud je kurzor na položce, která zmizí, Salamander kurzor přesune na pro uživatele dopředu nespecifikovatelnou položku :x

Test:
1) Vyrobte si složku s desítkami položek a druhou pomocnou prázdnou složku.
2) Označte každou druhou položku v první složce.
A: 3) kurzorem se přesuňte na jakoukoliv neoznačenou položku a přesuňte označené soubory do druhé složky. Kurzor, ať byl kdekoliv zůstane na stejné položce.
B: 3) kurzorem se přesuňte na jakoukoliv označenou položku a přesuňte označené položky do druhé složky - zkuste si předem tipnout, na jaké položce kurzor skončí (skončí na stejném místě na obrazovce, ale položka bude totálně nepředvídatelná)


Z vlákna se tedy stal jednoznačný Feature Request: Ať kurzor vždy skončí blízko původně vybrané (focus) položky (jak popsáno v prvním příspěvku)

Posted: 13 Jul 2007, 06:08
by Jan Rysavy
Aha, pravda. To co jsem popsal platí pouze v případě, že zmizí focused položka. Pokud focused položka zůstane, priroritně ji Salamander zvolí. To vysvětluje případ jedna.

Otázkou je, jak požadavek řešit. Jakmile obdržíme nový listing, nemáme již k dispozici ten starý. Pouze si pamatujeme jméno staré focused položky, TopIndex a FocusIndex. Jak tedy dohledat nejbližší položku, pokud ta focused zmizela?

Posted: 13 Jul 2007, 11:56
by zarevak
Jan Rysavy wrote:Otázkou je, jak požadavek řešit. Jakmile obdržíme nový listing, nemáme již k dispozici ten starý. Pouze si pamatujeme jméno staré focused položky, TopIndex a FocusIndex. Jak tedy dohledat nejbližší položku, pokud ta focused zmizela?
Pokud předpokládáme, že původní seznam byl seřazený (v Salamanderu snad vždy pravda) a nový seznam bude seřazený (taky vždy pravda) stejným způsobem (tady možná drobný zádrhel...), tak můžeme zkusit nenalezenou položku virtuálně zařadit do nového seznamu a vybrat položku za ní. Potřeba však bude udržet kromě názvu i všechny parametry potřebné pro vybrané řazení.

Posted: 13 Jul 2007, 15:24
by Jan Rysavy
To by šlo!