Rocs Plugin (kservice) suport

I wrote this post a month back, but just now I have decided to post it.

Well, some weeks back i commited an initial project for plugins on Rocs, and it’s almost finished… but i had a question about life, the universe and everything: Why i took too long (3 weeks) to put it to work ?

First, i have some others stuff to do, but, this is not a true answer…

Second, I started with QtPlugins, It worked very well! But, and it is a big but, how will Rocs know the location of the installed plugins? Since plugins are shared lib loaded at runtime, I had to make this work somehow. So at IRC, #kde-dev, Rakuko told me something about KServices, unknow by me till then. So, with a little search on the KDE api, i found the rigth way (or KDE way) to make it works flawessly.

So, I had to stop doing with Qt Plugins and rewriting everything to use KServices, back from line zero. =)

After some hack. i had a problem loading the plugins, they were found in the system, but not loaded. So i started to look at other plugins (from kopete for instance) , Plugin example from kdevelop (What if some KDE programs where closed source? Maybe i will be still boring people at IRC to resolve that =). But it worked, compiled in a charmingly and cute way, then I forgot to work on them for another week.

Until the end of last week Rocs was compiled with static libs, so Tomaz made a shared lib with core classes, including plugin manager and interfaces and i went back to hack today. Looking at TextEditor plugin example, i saw 2 things that i have not noticied back then:

-use of library export (KDE_EXPORT/KDE_IMPORT) and

-use of explicit at contructor, both at interface class declaration.

With this 2 things, plugins started to load 🙂

Now Rocs have import/export and initial tools plugins suport. In next post i will give all the info required for your own plugin… by now take a look in this screenshot of import/export and a set of nodes with some properties.

[]’s

Wagner

Anúncios

Propriedades dinamicas e ‘coisas mais’

Nos ultimos dias Tomaz e eu estamos trabalhando para adicionar algumas features novas no Rocs e corrigindo alguns bugs que aparecem no caminho.

Conseguimos terminar a adição de propriedades dinâmicas, propriedades estas que podem ser adicionadas e utilizadas durante o script. Com elas fica mais fácil trabalhar com alguns problemas de grafos, como por exemplo PRV, CCP, CCCP, e outras siglas legais, uma vez que se podem adicionar propriedades como por exemplo capacidade ou demanda diretamente nos nós, sem ter um vetor separador. Aqui tem uma imagem
Rocs: Now with dinamic properties

Pra quem conhece o Rocs deve ter reparado que os icones dos nós estão diferentes neh? Bom, essa é uma outra novidade (ainda em desenvolvimento) que é os icons pack, onde os usuários podem criar seus prórpios conjuntos de icones (para apresentar sobre VRP, pode colocar o deposito como um prédio e as demandas como lojas, por exemplo) sendo interessante para apresentar em palestras

Foram feitas algumas melhorias para estabilidade no core e alterações na interface.

Se quiserem testar essa versão do rocs, o código fonte pode ser obtido com o svn (svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdeedu/rocs)

O inicio antes do fim

Por volta de julho contatei o Tomaz para ajudar no desenvolvimento do Rocs. Mas devido a ‘medo’ e falta de tempo mesmo (quem manda se envolver com tudo) não tinha pego o projeto pra trabalhar.

Após alguns meses o Tomaz pediu pra mim escrever uns exemplos para o Rocs, claro que aceitei, até pq eu jah tava com vergonha de por me dispor a ajudar e não ter posto o mão na massa ainda.
Devido a um erro em um script, encontrei um bug que fazia o Rocs travar. A resposta do Tomaz: Não abra bugs que pode corrigir:) . não poderia ter sido melhor. decidi que devia resolver.

Depois de lutar um pouco com threads, conseguimos (o Tomaz me deu uma baita mão pelo Gtalk ) e agora posso dizer que sou um ‘colaborador’ do KDE (através do Rocs).

E consegui antes do final do ano inciar a ajudar esse grande projeto que é o KDE através do Rocs, o qual tem várias idéias por serem implementadas para uma próxima versão e que vou ajudar nisso.