Archive Page 2

Teaching KDE

DISCLAIMER: We know KDE is wider concept than simply application development but in this post i’m gonna talk about development related issues :)

INTRODUCTION: I suppose we all might agree with the fact that the most solid pillar of the Open Source World is the idea that every little piece of code might be an helpful reading for other developers in increasing their knowledge. This means that sharing knowledge is our strength. I really don’t want to argue against other form of softwares, i’m just underlining the strength of our personal form of software belief  (second disclaimer :P ). As many of you may already know i’m a student of Computer Science Engineering at the Politecnico of Bari here in Italy. I’m not very happy of how *they* teach most of the subjects we study in the courses and most of my sadness is due to the way they teach (or try to teach) us programming languages. Nearly two years ago i passed my C++ exam but all we learnt was how to create simple command line-apps that we might have easily written in C. I’ve always dreamt about a C++ exam where the teacher picks a piece of KDE code as example and uses it to teach us all the funny things of developing an application, advanced C++ tricks and so on. I know i still have the “Software Development Engineering” exam at the 2nd specialistic degree (don’t really know how to say that in english) but i’m sure *they* won’t teach us developing applications starting from a real successful example from the Open Source World.

THE IDEA: So, an idea came to my mind. I proposed to some friends the idea of building up a C++/Qt-KDE course open to every one interested in it. We have students associations that help us fight for our rights and realize self-managed courses like the one i proposed. The idea was accepted and really lots of student signed up!! This makes me really proud and happy since i have the chance to teach something i learnt (and continue learning) developing in KDE.

THE COURSE: The course will be of 10 lessons, 2 hours each. Students are supposed to have C++ basis since i’d like to deep start with the real development. Most of our courses at the university are just about theory (this is one of the big problems of italian universities: too much theory, really poor practice); so i’d like to help them make practice. I talked to two of them and their expectations about the course are just these: design and develop an application, practically!! Put their hands on the code, fight against build errors, optimize code and so on.. The stuff we do almost every day with KDE xD. So i’d like to use the 10 lessons to design and develop a real simple KDE application discussing the designing problem with them lesson by lesson. This way, after the course, they will be able to continue taking care of their little baby maybe making it grow as much as having the opportunity to publish it on KDE-apps.org maybe :D

YOUR HELP: And now let’s come to the real goal of this post :D . I haven’t yet decided what application they’re gonna develop with my help. It just came to my mind the idea of a simple Text Editing Application but maybe you have nicer ideas. Of course keep in mind that most of them don’t even have ever touched Qt/kdelibs/cmake. I’d start from the techbase tutorials to help them write a basic KDE application and then start with the real development. In addition to this i was looking for a live distro that ships at least KDE 4.2 with cmake kdelibs-dev and kwrite to help those students without Linux on their PCs (i think i’ll force all of them installing it :)

So please, lemme know your ideas, suggestions, insults and whatever.. everything but spam is appreciated xD

Cheers!!

Just one more idea (add widget stuff)

mock

Ok first of all i’m really sorry for my poor mockup skills, i did my best but i’m just crappy at drawing with pc :)

And now the explanation..

This is my crazy idea for the “add widget”-stuff. Don’t really know if it is user friendly, nice and whatever, it just came to my mind before going to bed so i decided to put it down and show to you, folks :) .

So, how is it supposed to work? Let’s go step by step:

  1. The user keeps a modifier pressed (e.g. ctrl+alt+whatever)
  2. The plus icon appears on the desktop at the cursor position
  3. The user clicks the plus icon
  4. That mockup stuff appears
  5. Categories are shown, the user navigates using keyboards to scroll items. NOTE: The number of visible items != the number of available items. Aka scrolling items through the right makes the last item on the right disappear and a new item on the left appear. Instead of categories this stuff can show favorites plasmoids as default or whatever you think it’s better ;-)
  6. The user finds the plasmoid he was looking for (either navigating the categories or typing the plasmoid name)
  7. The user just clicks the plasmoid icon and it’ll be added exactly at the plus-icon position.

That’s it i think. Feel free to ignore this post or ask question or even insult me xD

P.S.: s/plasmoid/the name you like most for your plasma widgets/

Cheers dear devs!

“the earth will shake”

raptor_new3
raptor_new2
raptor_new4
raptor_new1
raptor_new31
raptor_new5

Some hobbies are “easier” than others..

It’s been quite a long time since my last blog entry.. University, family and love took me a little away from the KDE scene.. Anyway i was able to follow the great success the incoming KDE 4.2 release is getting. You all have done a great job and we all should be proud of what KDE is and will be for the Open Source world. Unfortunately i’m in my exam period at university and i hope it’ll last soon.. Btw i was able to get back in touch with Plasma and committed two little patches this morning.. Nothing really relevant, just to feel i’m back to KDE development :) .

Due to this busy period i’ve left Lukas all alone with our KConfigEditor port to KDE4 which is still there, just ported but not improved. I’ll get back working on it soon, i promise! :P

PolicyKit-KDE is another big project i was contributing to till the end of the last year. Daniel Nicoletti, helped by Lukas, is doing a really great work and KDE will soon be enriched by a great PolicyKit library ;) . I hope me and Dario Freddi will be back helping soon.

But the reason i wanted to write this (maybe unuseful?) blog entry was the interest Raptor is getting these days. Do you remember Raptor?? :P Me, Riccardo, Lukas, Dario and some others (sorry, i don’t remember your names) started to work back on the abandoned Raptor promising we would have released it by KDE 4.2.. As you may have noticed we didn’t.. Sorry for that..

Someone asked in chat, some others in the mailing list.. I’d like to show you what a dear user said on raptor@kde.org =)

It is quite a sad ordeal that such a brilliantly planned and designed project has been halted. I hope someone can get to work on it. Now that KDE4 has matured though, I realise there may not have as many visionary developers willing to work on it. In saying this, it is still a worthy cause if anyone wants to give it a go. This would be a very powerful system, capable of running on any operating system and may change the paradigm of such systems in the future.

Please, if anyone is reading this. If you are interesting in it and have spare time, please work on it :) .
Thanks,
- Sacha

It is always a big pleasure for us (you, me, us), developers, when users directly ask for our contribution and talk about their real feeling of need for this or that feature. As Sacha says, KDE4 has matured; yes, but i think that just because of the current state of KDE4 there’s now need to make real what Raptor (the idea) is! Unfortunately, for most of us, KDE is a question of spare time so sometimes we need to abandon it a little in favour of university, work, or whatever. So, Sacha, and everyone else interested in, sorry for the slowness of Raptor development, but i’d thank you for your mail. It makes us really proud of being KDE developers and it is for sure a motivation for us. I  hope we’ll be able to make Raptor real soon. You can track its development with this repository: http://github.com/ruphy/raptor or just ask on #raptor. =)

P.S.: I have some news about Raptor, technical stuff.. Youll read soon a blog entry about it. ;)

Hugs KDE devs & users.

Revival of your favourite admin-tool

Hello ugly men and beautiful women =)

Finally i’m back to blog. I’ve been a little busy with my exam period at university but now i’m back to KDE.

Times ago metellius posted this “Idea of the week: Universal config file user interface”
and among the comments someone talked about the good old KConfigEditor. It’s a great app written by the great Zack Rusin and it is capable of editing your config files. Being them KDE ones or Gnome ones.  So together with Lukas we decided to start porting it to Qt4/KDE4 helped by Dario and Martin. I’d have to say that we wanted to start writing it from scratch but fortunately Pino pointed me to the right way (Thanks Pino) of porting since KConfigEditor is a huge working piece of code. Writing it from scratch wouldn’t have been a successful idea. And now, in about two days we managed to have it building on KDE4 with few deprecated methods and classes still used.

Here is KConfigEditor running on KDE4:

kconfigeditor

I know, nothing really special for KDE4 standards but we manage to of course port everything to model/view Qt programming in order to write beautiful delegates for a nice editing experience ™ =).

So i’d like everyone who cares to come on #kconfigeditor on irc and help us porting this beautiful application. But of course i’d like to have Zack to join us in order to help and lead us in rewriting parts of *his* app. After the first phase of removing the deprecated classes/methods we’d like to restyle the gui in order to meet KDE4 Ui Guide Lines.

So that’s all guys.

You can checkout trunk/playground/utils/kconfigeditor in order to see wazzup or help us.

Of course comments are really welcome.

C ya and stay tuned!!

Some credits for their job…

They used to work in the darkness… they just did their job and nobody could know about them… all of you are benefiting from their job… they live behind the scenes… but now things have changed! They are “The applets’ makers” and you will know more about them since… revision 881889!!

Ok i’m not so fool as it may seem. I just found some time to implement the feature you’ll see below from the screenshots and i wanted to share it with you =).

author info icon

author info icon

As you maybe noticed the “info icon” only appears on hovering so that we avoid the UI to become too crowded.

author about

author about

So clicking the icon you’ll get the well known AboutApplicationDialog that will show you some credits about the applet.

So that’s all folks, i just wished to post this. See you soon.

And stay tuned for the almighty 4.2 release!

Cheers.

Drag/drop from/to panel!!

Hay hackers!

After some time spent restoring my gentoo machine I’m back to KDE stuff… I worked on the must-have-feature “Drag&drop from panel” and tried to polish its behavior as much as possible together with Marco Martin.

Even if there’s still some little weirdness to fix we decided to commit anyway since it does its work! So have a look:

So please test it and let me know about bugs so i’ll try to fix them.

Cheers friends :)

Let’s “raptorize”!

Hello my dear hackers.

Today I won’t bother you with previewer, happy no? =)

I started my contribution to Raptor writing some lines for the main items view and now together with Riccardo (ruphy), Dario (drf__) and Lukas (boom1992) we just made up a nice and pretty functional interface. :)

Riccardo and Dario implemented fixed and polished the search features for Raptor so that we have a krunner-like application search. :)

Lukas helped with some graphical improvements (navigation arrow) and started the implementation of the breadcrumb. For those who cannot figure out what the breadcrumb is here comes a screenshot:

You can see a pair of icons on the top left corner. The most right one indicates the subsection we are in, in this case we are in “Graphics”. The left one allows you to get back to the main view. Of course, navigating under many subsections will put an icon for each subsection in the breadcrumb so that the user can get back step by step.

Unfortunately we had some visual issues with the breadcrumb but the almighty Dario solved them today. :)

Riccardo did a great job polishing even more the painting, giving clearness to the entire view and making the item selection even nicer.

I know you are hungry of screenshots so here they come:

This is ( Dario + Riccardo)’s search in action :) . Of course typing “Document” or “Viewer” is also fine to find Okular =).

And this is raptor at first start. :)

As agreed with Dario, today my aim was to give a basical implementation of a nice feature of Raptor: the Description Mode. This mode will show each element with a precise description of what the application does. Unfortunately current standards don’t take care of an enough precise description of an application. Btw I had success in implementing this kind of feature for when it will be available.. see below:

Something is still missing (last used time for example) but it gives the idea of what we want for raptor. I followed nuno’s mockup to get this and i’m almost there =). Of course that string is hardcoded but it would be nice to start thinking about so-long-description-fields.

And now some notes:

Even if Raptor is taking a nice graphical shape it is highly WIP and its core is still full of nasty bugs that we are trying to fix as soon as possible. Of course you can try it cloning from ruphy’s git repo hgit://github.com/ruphy/raptor.git but keep in mind what i just said :) . Btw it can launch apps :P

Cheers my friends and stay tuned :)

The “brand new” Previewer

Hello KDE addicted =)

Finally i’m back to my regular life after a month spent by the sea in the south of Italy at 70km from my city, away from computers and tech in general. Unfortunately i didn’t take so much photos of me, i just found this (a night in a pub =) ):

me in a pub =)

me in a pub =)

Ok let’s get back talking about the Previewer =).

I restarted with new ideas for the Previewer applet having a look at this mockup by nuno by Nuno. So i started reviewing the Previewer keeping in mind this mockup. Here is what i got:

the new previewer

the new previewer

I feel “almost there” but there is still something to polish. Fortunately i could use some of folder view’s code to make that kind of view. But don’t get scared, the good old PreviewDialog is still there, you just have to click on the file you want to preview to get this:

previewDialog

previewDialog

Now the Dialog is cleaner without the file list (no need since the files are in the applet) and without the resize button O.O. Yes, i removed the resize button (awful way of resizing) since i added the setResizeCorners() method to Plasma::Dialog. Now the dialog resizes easily dragging its corners. Really easier and nicer than before, finally! :)

The trash button has changed its behavior since now it closes and removes the file from the disk.

And last but not least the “run” button. It just executes the right application to open the file =).

I’m quite busy these days for my exams but i’d like to have the previewer ready for kdereview->kdebase so please test it and tell me your suggestions, ideas, critics =).

Cheers.

PS: finally the new planetKDE, and i’m back to blogging =).

Giving love to the Previewer

Very hard work has been done in these days to improve more and more the Previewer. The first thing i focused on was making a good DBus interface. Helped by Fabrizio Montesi (fmontesi on irc) i made some methods to allow a good integration with JOLIE. So these methods came out:

void openFile(QString filename)

void goToPage(uint page)

QString currentFile()

uint currentPage()

Actually goToPage and currentPage only work when an Okular part is loaded. They allow the client/server communication provided by JOLIE. You can have a look at this screencast made by Fabrizio to show JOLIE+Previewer working together =). http://jolie.sf.net/videos/vision-previewer.ogv

This works for most of you (Thank you Fabrizio): http://jolie.sf.net/videos/vision-previewer.avi

Btw there are also some graphical improvements to talk about =). First of all Nuno Pinheiro made a really nice icon for the Previewer. Currently it looks this way, enjoy:

the Previewer Icon

the Previewer Icon

Now let’s have a look to multiple previews handling. Previewer stores recently opened files in the context menu. Now we have a nicer and faster way to retrieve recently previewed files just by clicking on the left side of the dialog, where a list of recent files is shown. Pictures will talk in place of me =)

multiple previews

multiple previews

I made the list as “Plasmy” (awful term) as possible so that it looks not so alien as other widgets do. It reacts well to theme changing:

previewer glassified

previewer glassified

Nice huh? =)

Now, as you (ok, some of you =) ) noticed, there are two more icons near the close button. We got a trash:

the trash icon

the trash icon

As suggested by friedrich| on irc, some of you would need to delete some recently opened files from the history. So here comes that trash: click on it to remove the currently opened file both from the Previewer and from its history. Simple! =)

The second added icon is the resize one =). Since scrolling the wheel to resize the previewer was getting hateful for me i decided to make something different (more like is done for your applets on the desktop).

resize icon

resize icon

So, as the tooltip suggests, just drag that icon to resize your dialog. =)

Oh! Forgetting.. Some of you asked for an integration with Dolphin/Konqueror. Currently Previewer provides a service menu:

previewer and service menu

previewer and service menu

“Preview this file” sends the file to Previewer and shows it.. This isn’t a real Dolphin integration. Btw I’m keeping in touch with Peter Penz to integrate this behavior in Dolphin natively. It doesn’t seem so easy to implement but i’m sure that Peter will do a great job for this!! =)

That’s it guys. Of course comments are always welcome!

Cheers

Alessandro.

« Previous PageNext Page »