K2T.eu :: Forum

WTW => Propozycje => Komunikator => Wątek zaczęty przez: Siwy w Lutego 08, 2011, 20:03:51 pm

Tytuł: Kolejność obsługiwania wtyczek.
Wiadomość wysłana przez: Siwy w Lutego 08, 2011, 20:03:51 pm
Czy jest możliwość wpłynięcia na kolejność obsługiwania wtyczek?
Chodzi o to, że jeśli np. mam kilka wtyczek obsługujących te same eventy i jedna z nich blokuje dalsze obsługiwanie eventu.
 
Konkretny przykład:
-archStatusLog i wtwideDescription - chcemy, żeby status najpierw był zapisany do archiwum a dopiero potem zablokowany przed wyświetleniem na ekranie (to konkretnie mój problem)
-kwNotify i np. wtyczka blokująca powiadomienia o pisaniu - notify dostajemy, ale komunikator nie zajmuje się dalszymi powiadomieniami (np. podświetlenie zakładki)

Można by to zrealizować np. poprzez sortowanie wtyczek na liście (tak to działało w K).
Tytuł: Odp: Kolejność obsługiwania wtyczek.
Wiadomość wysłana przez: Kaworu w Lutego 08, 2011, 20:16:13 pm
I dlatego eventy niektóre są podzielone na typy BEFORE i AFTER ;P
Tytuł: Odp: Kolejność obsługiwania wtyczek.
Wiadomość wysłana przez: Siwy w Lutego 08, 2011, 20:26:55 pm
To nawet jeśli odebranie statusu ma BEFORE i AFTER, to blokowanie opisu musi działać na BEFORE, zapisywanie do archiwum co prawda może na dowolnym, ale przy AFTER zapisze status po usunięciu opisu, a przy BEFORE właściwie nie wiadomo co się stanie?
Tytuł: Odp: Kolejność obsługiwania wtyczek.
Wiadomość wysłana przez: mucha w Lutego 08, 2011, 20:56:44 pm
Zapisanie do archiwum jest w AFTER, problem jest jak masz 2 lub więcej wtyczek modyfikujących status w BEFORE, wtedy jest hazard. Na razie to wtyczki są sortowane alfabetycznie, więc po prostu zmień nazwę pliku.
Tytuł: Odp: Kolejność obsługiwania wtyczek.
Wiadomość wysłana przez: Kaworu w Lutego 08, 2011, 21:13:51 pm
Blokowanie w zasadzie działa tylko w before, to raz. After jest tylko w ramach informacji jesli event nie został zablokowany w before.
Wtyczki nie są sortowane alfabetycznie tylko "w kolejności stworzenia plików" w zasadzie. A dokładniej są w takiej kolejności w jakiej dobiera się do nich ::FindNextFile();