FW: clipboard

Antala Mario Mario.Antala na siemens.com
Středa Srpen 27 11:16:57 CEST 2003


tak som sa pokusal to nejako riesit. testoval som to s ruoznymi aplikaciami
a s ruoznymi datami a prisiel som na to, ze prenos dat
medzi aplikaciami cez clipboard jednoducho NIE JE VYRIESENY.
nielen ze ruozne aplikacie si nedokazu medzi sebou vymienat data (nie vzdy,
ale vaecsinou), ale dokonca aj v pripadoch, ked to dokazu maju problemy s
binarnymi datami.
co je pre mna dost nemile a prekvapujuce.
ak niekto nahodou vie o nejakom "rychlom (nie bug report)" rieseni,
budem happy ak pomuoze ... ;-)

 g.

 
--> > jedina vec, ktora ma v poslednej dobe na linuxe stve je clipboard.
--> > pri pracovani v X-och (WindowMaker, KDE, Gnome atd.) je problem
--> > prenasat data medzi aplikaciam cez clipboard.
--> > obcas je problem, obcas nie je. zavisi od aplikacie a od 
--> niecoho co
--> > sa mi nepodarilo vystopovat (dufam, ze ziadna bulharska 
--> konstanta:)
--> > 
--> > v kde je aj nejaky clipboard tool. v nom je skutocne 
--> vsetko, co som
--> > kedy skopiroval, ale napriek tomu sa mi nedari dostat do 
--> niektorych
--> > aplikacii data cez Ctrl-V (napr.IDEA). je to chyba 
--> aplikacie, alebo
--> > nejakeho nastavenia? aj ked v kde ten clipboard tool vypnem (v
--> > ostatnych wm nic take nepouzivam), nic to neriesi.
--> > 
--> > vie niekto ako dosiahnut fungovanie clipboardu na 100% ?
--> 
-->  No, to by vyzadovalo neco tak na urovni mensiho heroickeho 
--> vykonu. Ne ze by
--> to bylo zase tak slozite, ale autori X tady prekonali svuj 
--> prumer a dotahli
--> dost do extremu svoji filozofii 
--> hlavne-at-pane-boze-nekomu-neco-nezakazeme.
--> Jinymi slovy, popis clipboardu v X
--> (http://tronche.com/gui/x/icccm/sec-2.html) podrobne a 
--> precizne popisuje,
--> jak prenes nejaka data a oznaceni jejich typu mezi dvema 
--> aplikacemi, a tam
--> ta podrobnost a preciznost konci. Popisy typu clipboardu 
--> (ano, je jich
--> vice, ten dokument jim rika selections) jsou tezce vagni, a 
--> standardizovane
--> typy dat pro komunikaci jsou nedostatecne. Neboli je dost 
--> jednoduche to
--> zvorat, v lepsim pripade udelat navzajem nekompatibilne, a 
--> je v vlastne
--> zazrak, ze to mezi ruznymi aplikacemi alespon nejak funguje.
--> 
-->  Je to zhruba asi takhle:
--> 
-->  Ty druhy selections jsou 3 : PRIMARY, SECONDARY a 
--> CLIPBOARD. Do PRIMARY se
--> obvykle data vlozi tak, ze se proste oznaci mysi (tj. 
--> obvykle je to jen na
--> text), z PRIMARY se data potom vyndaji prostrednim 
--> tlacitkem mysi. K cemu
--> je SECONDARY, to asi tusi malokdo. CLIPBOARD je takovy ten klasicky
--> clipboard znamy treba z Windows - vlada se do nej obvykle 
--> Ctrl+C, Ctrl+X
--> (nektere aplikace tim Ctrl+Ins nebo jak to je), vyndava se 
--> z nej Ctrl+V.
--> 
-->  Pro to, aby se obe aplikace dohodly na prenosu dat pres 
--> clipboard, ze musi
--> dohodnout na:
--> 1) pouziti spravne selection - nektere aplikace/toolkity 
--> treba vesele
--> pouzivaji jen jeden druh selection a ostatni (resp. ten 
--> druhy, kdyz se bude
--> ignorovat SECONDARY) neberou na vedomi - ne ze by to tedy 
--> delaly vyslovene
--> spatne - ten popis nahore je jen konvence, nic zavazneho, 
--> aplikace si v
--> podstate muze pouzivat jako klavesove zkratky chce a jakou 
--> selection chce
--> 
--> 2) pouziti stejneho typu dat (resp. prijemce musi umet 
--> alespon jeden typ,
--> ktery nabidne vlastnik clipboardu) - ted uz se sice 
--> pouzivaji jako typy
--> vetsinou mime types (text/plain,image/png, atd.), ale i 
--> tady se aplikacim
--> povede si vymyslet vlastni typy nebo neco podobneho
--> 
--> 3) stejne implementaci selections - i tady se chybicka 
--> obcas stane, ta
--> pravidla pro tohle jsou sice precizni, ale neni to uplna 
--> brnkacka (vlastni
--> zkusenost). Pokud si tohle aplikace neresi sama, ale 
--> pouziva toolkit, tak
--> si tim vetsinou vyresi dost problemu, a staci ji jen 
--> pouzivat spravnou
--> selection, vybrat vhodny typ dat pro prenos, a data z/do 
--> nej transformovat.
--> To neni az takova drina.
--> 
--> 
--> 
-->  Pokud mate problem s prenosem dat clipboardem mezi dvema 
--> aplikacemi, tak
--> zkuste zjistit, ktera z nich je vinik, treba zkuste jak jde 
--> oboum prenost
--> do neceho "nezavisleho" (xterm,kwrite,gedit,mozilla,...). 
--> Pak navstivte
--> bugreport system patrici k aplikaci, ktera prohrala, a 
--> problem popiste. Ja
--> vim, to je neco na urovni mensiho heroickeho vykonu. Jenze 
--> to je asi tak
--> jediny realny zpusob, jak situaci zlepsit :-/.
--> 
--> 
-->  BTW, Klipper (=clipboard tool z KDE) tady obcas muze 
--> pomoct - jednak dela
--> historii, coz se dost hodi, jednak si pamatuje obsah 
--> clipboardu i kdyz tak
--> aplikace co ho nastavila se ukonci (jinak by se "vymazal"), 
--> jednak kdyz se
--> nektera z tech polozek v te historii explicitne vybere, tak 
--> se nastavi do i
--> PRIMARY i CLIPBOARD, coz se muze hodit u aplikaci ktere 
--> maji problem s 1),
--> a v posledni rade Qt u nekterych typu dat nabizi vetsi 
--> mnozstvi typu (treba
--> obrazky asi v 10-ti formatech), takze i to muze obcas 
--> pomoct. Na druhou
--> stranu obcas Klipper muze i nejaky ten problem zpusobit, 
--> protoze Qt v tom
--> kodu tykajiciho se clipboardu melo par bugu, a jeste se mi nepovedlo
--> vsechny opravy protlacit, takze nekdy naopak vypnuti 
--> Klipperu muze situaci
--> i vylepsit :( .


Další informace o konferenci Linux