This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Get Hot New Stuff 1

Tags: ghns, course ghns, course ghns, course
(comma "," separated)
User avatar
frederik
Moderator
Posts
37
Karma
0
OS

Get Hot New Stuff 1

Sun Jan 10, 2010 5:06 pm
Category: Development (C++) and getting to know KDE infrastructure
Mentor: frederik (fregl on IRC, #kde-devel on freenode)
Start date: Wednesday, Feb. 17th
Duration: 2 weeks
Students: 1-5

Purpose
With KDE SC 4.4 the get hot new stuff framework got a major overhaul. So far only very few applications have been ported to the new framework. With trunk open for 4.5 development, now is the time to port more applications to benefit from the improvements.

There are several examples of already ported applications so getting started should be easy. Depending on the progress, we can dive into more advanced features, such as adding get hot new stuff to applications that do not support it yet. Another exciting feature is the new upload dialog. I'm looking forward to where you want to take advantage of it! Maybe uploading wallpapers directly from Gwenview/Digikam?

Requirements
This Klassroom will help you get started with C++ development in KDE in an easy way. We will look at application code and change it.
You should be familiar with basic C++, preferably also Qt (though it will be easy to pick up if you haven't used it yet).

  • Basic level of C++ (you know what a class, pointer and reference is)
  • kdelibs 4.4 or later (KNewStuff 3 had its first appearance here)

We will take 1-2 days to get build problems and such resolved in the beginning. But you should try to prepare in advance!

If your distribution provides kdelibs 4.4 we can work with that, it should be easy to get you started how to build apps from there.

Content
To get your environment set up, read up on:
http://techbase.kde.org/Getting_Started
It is not necessary to build kdelibs from source, but of course you will have to compile the application you choose to work on from source.

The first steps will be easy - you pick an application that uses KNewStuff2 (the old version) and change it to the newer KNewStuff3. This should get us started nicely.
Candidates you could pick are for example:
  • KDE-Edu: Cantor, Kalzium, KAnagram, KStars, KWordQuiz, Marble, Step
  • KDE-Games: Granatier, Kigo, Ksirk, Krosswordpuzzle, KGameThemeSelector (lib)
  • Okular
  • KDE-Base: Several KCMs (Color, KDM, Style)
  • Plasma: Weather, Virus Wallpaper
  • Kopete
  • Probably more, as long as it already has a download dialog already.

Every student should pick 2 of the applications with the goal to port them.
The next step will be building the application from source.
Next up is the porting to KNS3.
The finished patches will be put on reviewboard.kde.org and finally make their way into KDE proper :)

If we have time left, we can set some additional goals:
Where else can KDE benefit from KNewStuff? Maybe we can integrate the upload dialog somewhere?

Along the way we will talk about how things work... for example we can discuss:
  • Getting the source - svn checkout
  • Building the application
  • Creating a patch to send to other people (reviewboard)
  • Dialogs in KDE (what is a modal dialog?).
  • How configuration files are stored and used in KDE (KConfig framework)
  • Menus and how to put a new entry there (or get a button to show up in the config dialog for example...)
  • Linking to a library with CMake

Expectations
You want to get involved with KDE code wise!
After this course a lot of applications use the new KNewStuff 3 framework instead of the older version. Each student ports her/his two applications.

If time permits, we put the knowledge to more creative use.
Even better if you have ideas where and how to improve KDE with respect to hot new stuff!

Starting tips
There are several examples of applications already ported that you can look at.
Here are relevant links to code:

The Plasma Image Wallpaper:
http://websvn.kde.org/trunk/KDE/kdebase/workspace/plasma/generic/wallpapers/image/image.cpp?view=markup
The .knsrc file:
http://websvn.kde.org/trunk/KDE/kdebase/workspace/plasma/generic/wallpapers/image/wallpaper.knsrc?view=markup

Implementation for Parley (includes upload):
http://websvn.kde.org/trunk/KDE/kdeedu/parley/src/parleydocument.cpp?view=markup
And the .knsrc file:
http://websvn.kde.org/trunk/KDE/kdeedu/parley/src/parley.knsrc?view=markup

Other helpful sources are the API docs:
http://api.kde.org/4.x-api/kdelibs-apidocs/knewstuff/html/classKNS3_1_1DownloadDialog.html
http://api.kde.org/4.x-api/kdelibs-apidocs/knewstuff/html/classKNS3_1_1UploadDialog.html
And the techbase tutorial:
http://techbase.kde.org/Development/Tutorials/Collaboration/HotNewStuff/Introduction

You can find a few blog posts about KNewStuff on my blog, for example:
http://blogs.fsfe.org/gladhorn/2010/01/ ... uff-again/


To apply for the course, post a reply in this topic!

Last edited by frederik on Sun Feb 14, 2010 10:23 am, edited 2 times in total.
User avatar
Hans
Administrator
Posts
3304
Karma
24
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 2:18 pm
Perfect timing, sign me up! :)
I'll have a look at trunk later and write which two applications I want to work on.

EDIT: I would like to work on Step and Kopete.


Problem solved? Please click on "Accept this answer" below the post with the best answer to mark your topic as solved.

10 things you might want to do in KDE | Open menu with Super key | Mouse shortcuts
SebastianHRO
Registered Member
Posts
29
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 3:13 pm
This is a great idea. I have a lack of time at the moment but I'm really thinking about participating. But I already have a question: To make sure nothing goes wrong I wanted to use a fresh OS installation on an older machine. So when you say "kdelibs 4.4 or later" I would like to ask if there is a distribution you can recommend for a KDE developer (in training). Perhaps one with up to date KDE dev packages so you only have to compile the application you are working on...
User avatar
Primoz
Moderator
Posts
859
Karma
1
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 3:32 pm
I won't actually participate in this course, as I don't know how to code in Qt (yet).
I just wish to know if this course will try to achieve what this idea proposes: brainstorm.php#idea38928 ?
I'd also like to see KGetHotNewStuff as one app, so I could just ran it and access and install everything from Plamsa to Screensaver.
Like the idea proposed.

Anyway if you think I can be of any help, just say, I'll be happy to help. But I really don't know how to code in C++ or Qt.


Primoz, proud to be a member of KDE forums since 2008-Nov.
briank
Registered Member
Posts
7
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 4:34 pm
I'd like to participate. Could I work on Okular or Plasma: Weather? I don't believe I use any of the other apps listed currently.
lliehu
Alumni
Posts
9
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 4:51 pm
I'd like to participate. I know C++ and a bit of Qt already, and this sounds great. :)

Edit: I'd be interested in some KCMs, too. It seems there are many KCMs using Get Hot New Stuff indeed. I'd especially like colors and splash screen KCMs. If someone else wants to do them, I could do some other KCMs or KWordQuiz or KAnagram.

Last edited by lliehu on Mon Feb 15, 2010 10:41 am, edited 1 time in total.
_eti_
Registered Member
Posts
8
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 5:31 pm
I'm in too. I started with a Plasmoid (C++) and would like to know how i can contribute furhter. So it's just the oportunity i was looking for.
I'll work on Kalzium an an other Edu Application (waths left;)).
deltaecho
Registered Member
Posts
18
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 5:58 pm
If there's still room, I would like to participate too. I've been playing around with C++/Qt for about a year now, and this would give me a reason to actually do something with it. I like math, so Cantor is right up my alley, as is Kalzium and Okular too (unless @briank takes it).


"Many of life's failures are people who did not realize how close they were to success when they gave up."
Thomas Edison
User avatar
ComaWhite
KDE Developer
Posts
100
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 7:55 pm
Sign me up I'll take KStars and Marble. :D


Image
KDE Version: 4.6 (Beta 2) | Qt Version: 4.7.1
Aki IRC Developer http://www.akiirc.org/
Dynamite
Registered Member
Posts
3
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 8:02 pm
I'd like to participate. I can work on KDM and Style.
arieder
KDE Developer
Posts
32
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 8:15 pm
Cantor already uses KNewStuff3 so you probably should take that one off the list.


arieder, proud to be a member of KDE forums since 2008-Oct.
deltaecho
Registered Member
Posts
18
Karma
0
OS

Re: Get Hot New Stuff 1

Sun Feb 14, 2010 8:58 pm
arieder wrote:Cantor already uses KNewStuff3 so you probably should take that one off the list.


That makes me sad. I will take any of them, though.


"Many of life's failures are people who did not realize how close they were to success when they gave up."
Thomas Edison
aronasorman
Registered Member
Posts
1
Karma
0
OS

Re: Get Hot New Stuff 1

Mon Feb 15, 2010 12:40 am
If it's still available, i'd like to work on Granatier.
Daniel84
Registered Member
Posts
3
Karma
0
OS

Re: Get Hot New Stuff 1

Mon Feb 15, 2010 6:57 am
Is there still an open slot?

Would love to contribute a bit to KDE - often tried to start, but always faild on various stages.

Avarage C++ Programmer, know a bit of QT (by using PyQT, Python)

How much time is needed? I have a day job (windows programmer :( ) - would ~3hrs a day (after work) be enough?

Topic: would love to do things from some KCM-Modules.

Ciao,
Daniel
User avatar
utkuaydin
KDE Developer
Posts
48
Karma
1
OS

Re: Get Hot New Stuff 1

Mon Feb 15, 2010 5:37 pm
I wish I could help but because of my school's internet I can't use SVN even checkout. And the next holiday is after 4 months from now. So, good luck guys. :(


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], kesang, Yahoo [Bot]