[01:41] \o/ https://launchpad.net/ubuntu/+source/kde4libs/4:4.4.90-0ubuntu3 [01:43] good :) [02:04] that thing with akonadi needing to be manually started before kontact or kontact needing to be started twice... is that fixed in the ppa 4.4.3 or anything? [02:05] * ScottK thought it was "fixed" in an SRU already. [02:05] I say "fixed" because the "fix" was to make the timeout longer. [02:15] NCommander: There are new uploads of python-qt4 and sip4-qt3 sitting on mentors.debian.net. Would you please have a look at them. === kubotu_ is now known as kubotu [02:35] any chance of seeing the latest qt-creator packaged for lucid?? [05:07] * v waves [05:08] yay! [05:08] figured out what was making my tray grow to ginormousness [05:08] it's pidgin's fault [05:09] hrm [05:09] when pidgin runs, the tray gets big blank gaps that grow and grow til chunks of the panel get cut off due to lack of space [05:09] when i quit pidgin, the tray snaps back to the proper size [05:10] I never really liked pidgin === v is now known as vorian === freeflyi1g is now known as freeflying [08:14] hi [08:15] its today right? tutorial day? [08:15] anybody [08:16] bye [08:58] hi [08:59] i need some help with mounting a usb drive via ethernet on DDWRT router [09:00] KenDDWRT: support in #kubuntu or #ubuntu [09:01] cool thanks dude === KenDDWRT is now known as KenWRT54G [09:26] fabo: how come I don't see phonon-vlc here? http://packages.debian.org/search?suite=stable§ion=all&arch=any&searchon=sourcenames&keywords=phonon [09:26] ah hah, there it is http://packages.qa.debian.org/p/phonon-backend-vlc.html [09:31] well that crashes horribly on anything that uses it [09:38] needs vlc-nox installed [09:39] dragon crashes on exit with vlc-plugin-pulse installed though :( [09:41] and videos have the curious effect of being rendered in ascii art [09:43] so needs to depend on vlc not vlc-nox unless we are happy with ascii art [09:45] uploaded to ubuntu with vlc dependency added [09:45] debfx: ^^ [09:49] Riddell: I found out why I got plagued with black screen yesterday [09:50] My display driver was an Intel 8xx :/ [09:51] Riddell: I didn't noticed as I'm usiing vlc as my main mediaplayer === ulysses_ is now known as ulysses [09:52] nigelb: that's bad? [09:52] fabo: do you use pulseaudio and vlc-plugin-pulse? [09:53] Riddell: yep. Its a known issue because of KMS. I didn't understand the reason, but the fix would take longer than 10 minutes, and it was already 3:30 am, so I gave for temporarily :) [09:53] *gave up [09:54] hey nigelb, good to see you here [09:54] I knew you would come into the light! [09:54] :-) [09:55] Riddell: no, I don't use PA nor vlc-plugin-pulse [09:56] valorie: heh ;) === Riddell changed the topic of #kubuntu-devel to: Alpha 2 released! | https://wiki.kubuntu.org/Kubuntu/Todo | https://wiki.kubuntu.org/KubuntuTutorialsDay Today 18:00UTC [10:32] anyone know who made the plymouth splash image? the logo looks a bit off-centered [10:33] hi kwwii, that was nixternal I think [10:33] hi Riddell, thanks! [10:33] ScottK: who uploaded them? [10:34] kwwii: it's just .png files in kubuntu-default-settings so it should be easy to fix [10:34] kwwii: looking at bug 580571 ? [10:34] Launchpad bug 580571 in kubuntu-default-settings (Ubuntu) "Kubuntu plymouth logo text is centered with gears sign factored into total width, placing 'kubuntu' text off-center" [Low,Triaged] https://launchpad.net/bugs/580571 [10:56] Riddell: yes, vish wants to help :-) [10:58] Riddell, vish: have you two met? [10:58] hi. [10:59] \o [10:59] kwwii: new recruit? :D [10:59] so I was looking at Bug 580571 , and was wondering why the logo was misaligned... [10:59] Launchpad bug 580571 in kubuntu-default-settings (Ubuntu) "Kubuntu plymouth logo text is centered with gears sign factored into total width, placing 'kubuntu' text off-center" [Low,Triaged] https://launchpad.net/bugs/580571 [11:00] Quintasan: lol , papercuts already has me tied up :D [11:00] :O [11:00] That's good [11:00] :P [11:01] to me it just seems like an oversight than a conscious choice.. probably nixternal might know more :) [11:02] I was wondering, can't we use SVG there? [11:02] Quintasan: hehe, it's mr papercuts :p [11:02] Quintasan: on the other hand , papercuts can sure benefit from a kubuntu helping hand ;) https://bugs.launchpad.net/hundredpapercuts/+bugs?field.tag=kde :) [11:02] Plymouth theme in 1920x1080 looks like crap [11:04] kwwii: that sounds like the gingerbread man! ;p [11:04] 18:00 UTC is 20:00 GMT+1 (holland) right? [11:05] I don't want to miss the tutorials day for having my time wrong [11:05] acemo: date -u [11:05] date -u [11:05] doh [11:06] thanks :) [11:06] vish: I am sure you taste just as spicy :D [11:07] acemo: np, I just dobule checked it too :P [11:08] ;) [11:08] will there be any (k)ubuntu specific things in the Introduction to Qt Quick and QML, Start Coding Qt or Beastie Hunting? I'm using archlinux atm but i still do have a free partition so i could install kubuntu if needed [11:10] hi vish [11:10] o/ [11:10] vish: want to fix it? [11:11] vish: bzr branch lp:~kubuntu-members/kubuntu-default-settings/ubuntu/ [11:11] cd kubuntu-default-settings/lib/plymouth/themes/kubuntu-logo [11:11] edit the files [11:11] Riddell: wanted to check why it was like currently .. [11:11] like that* [11:11] vish: I doubt it's a concious decision, nixternal isn't an artist [11:14] Riddell: Was there any discussion about branding in Kubuntu? I can't remember anything. [11:14] sheytan: \o [11:15] Quintasan hi ;) [11:16] apachelogger: ping [11:17] Quintasan: discussion about what aspect? [11:17] Riddell: do we want it and who will do that [11:17] acemo: no it should be distro neutral I expect [11:17] acemo: just get the binary package of qtcreator, released versions aren't new enough [11:19] acemo: ftp://ftp.qt.nokia.com/qtcreator/snapshots/latest [11:19] acemo: just in case :P [11:19] Riddell: am getting qt-creator 2.0 and qt4.7 from AUR (sort of ppa) :) [11:22] Ohh... right.. I already had qt-creator 2.0 [11:25] Btw, did any of you knew that when you run kubuntu inside virtualbox on a windows7 computer, you compile faster as directly in windows7? we noticed this with mingw, qt-creator 1.3 and qt 4.6 [11:35] acemo: qt-creator 2.0 isn't good enough [11:35] needs to be those binary packages [11:41] Riddell: qt 4.7 beta1 is good enough? [11:45] acemo: doesn't matter, qt-creator binaries come with their own Qt [11:45] Riddell: great, i just installed qt 4.7 beta1 :) === automatical_ is now known as automatical [12:26] ScottK: so the patch for python-sip and python-qt4 is badly broken. [12:26] and not usable without additional wokr [12:26] * NCommander is looking at it [12:26] (I'm also looking at kdebindings) [13:06] hi all [13:16] anyone knows how can I stop bzr from asking my ssh password? [13:16] Like for 10 minutes or so [13:16] It's annoying [13:22] NCommander: Not anyone I know (who uploaded them). [13:22] NCommander: Glad to hear it. [13:24] nigelb: Which Intel 8XX? It seems to vary widely what works, but I have a 865G system that works pretty well. [13:27] ScottK: hold on, lemme check my version [13:28] ScottK: 855GM [13:29] 845 and 855 do tend to be problematic, but there have been post-release updates to help. [13:29] I'd encourage you to check around for specific work arounds for 855GM. [13:30] #ubuntu-x might have advice on this. === yofel_ is now known as yofel [13:35] I don't suppose it's possible for there ever to be a Launchpad release where I read about the new "features" and don't have a reaction along the lines of "Dear God, they can't really mean that"? [13:35] what did they do this time? [13:37] JontheEchidna: A new bug status called "Opinion" so people can be welcomed to continue disucssing a bug after it's wontfix or invalid. [13:38] @_@ [13:45] Now, if that was an importance level.... [13:46] but really, I *do* want the discussion to end when I close a bug [13:47] as long as I can disable mail notifications when a bug is marked as opinion I don't mind :p [13:47] talk all you want :D [13:47] ScottK: I will keep looking indeed. I'm not happy with working on jaunty, rather be on LTS [13:50] well, talking is fine I suppose, just don't reopen it :D [13:50] that is something I really wish we had more control over [13:53] JontheEchidna: yeah, it was raised at UDS [13:53] JontheEchidna: The problem is if you are implicitly subscribed to the bug due to package subscriptions or team membership, there is no escape. [13:53] heh, JFO said "I want to mark a bug as closed and *noone* except LP admins should be able to reopen" [13:54] ScottK: exactly! [14:10] Quintasan: ssh-add ~/.ssh/id* [14:11] Quintasan: enter the passwords matching the ssh keys it requests and it wont ask you again til your next login [14:12] ^you can also use ksshaskpass to do that, and ksshaskpass will use the normal kwallet authentication that you have to do on startup anyways [14:14] maco: thats pretty nice :) [14:23] ScottK: could you take a look at bug 602733 please? [14:23] Launchpad bug 602733 in lucid-backports "Please backport K3b 2.0.0 to lucid" [Undecided,New] https://launchpad.net/bugs/602733 [14:24] Hi All. Can I ask a question? I'm would create an application that uses KDE Widgets in Qt (for example KIconButton or other K-Stuffs). Using KDevelop I get an error "undefined reference to blabla". Is 'cause I should link KDE libraries? How do that in Kdevelop (or in QtCreator?) [14:25] JontheEchidna: Bug needs to say it installs and runs too. [14:25] hrm, I don't have a lucid install handy... anybody able to help out? [14:26] R3Dkn16h7: Might be a question a bit more appropriate for #kde-devel or somesuch :) [14:27] R3Dkn16h7: You have to tell the linker where to look for libs [14:32] Riddell: I think your second machine died or something :S [14:33] fooey [14:33] I'll need to ping my flatmate [14:34] maybe the ISP has finally noticed that they cut me off a month ago === rgreening_ is now known as rgreening === rgreening is now known as rgreening_ === rgreening_ is now known as rgreening [15:04] [muon] jmthomas * 1147170 * trunk/playground/sysadmin/muon/src/MainWindow.cpp Fix the runtime warning "QCoreApplication::postEvent: Unexpected null receiver" by only calling deleteLater on our widgets if they are still around [15:24] [muon] jmthomas * 1147176 * trunk/playground/sysadmin/muon/src/DetailsTabs/DependsTab.cpp Add support for showing reverse depends in the Depends tab [15:30] * Quintasan is going skateboarding [15:51] ScottK: it's beginning to look like pim 4.5 might miss maverick, even. [15:51] JontheEchidna: It wouldn't hurt my feelings any. [15:52] yes they had a meeting yesterday and they want to delay it more [15:52] I don't think we want it [15:52] http://simplest-image-hosting.net/i0-plasma-desktopoo1466-jpg.jpg [15:52] and they want to pull the current tars because they're not good enough [16:04] ScottK: so I identified why kdebindings broke, although smoke on ARM is still in many pieces [16:04] NCommander: Excellent. [16:04] ScottK: yeah, I'm not sure what changed though specifically, it looks like a check for SIP_GLOBAL_OPTIONS was removed somewhere, but I can't remember where I added it necessary [16:04] s/necessary/originally/g [16:04] * NCommander thinks his mind is mental mush [16:05] * ScottK hands NCommander a spoon. [16:07] ScottK: thanks, I'm going to need it. for python3-ifying sip4, I just managed to break SVN, this is non-trivial, and I'm going to revert out my work for today until I can talk to the other maintainers [16:08] NCommander: You might consider converting to dh_python{2,3} for that (and waiting a week or two will probably make that easier) [16:09] ScottK: yeah. [16:09] ScottK: bloody hell its hot here [16:09] Finland? [16:13] about the kubuntu tutorials day, what language is it gonna be in ? english, right ? [16:13] yes English [16:13] it's all interactive, you can ask questions if you get stuck [16:13] cool... i'm in a different timezone... jus confirming... starts in around 2 hours 45 min right ? [16:14] anirudh24seven: yes [16:15] oh thats today? hmm i should boot my kubuntu vm [16:16] is Qt Creator from Maverick's repo new enough? [16:17] maco: no [16:17] you need to download the binary package [16:19] * maco pouts [16:19] expected maverick to be newerer than lucid [16:21] maco: it is newer, but they removed the qt quick features from qt creator [16:21] doh [16:22] whyd they do that? [16:22] wait "they"? [16:22] doesnt they = someone in this channel? [16:23] i assume you mean the packager [16:27] maco: I think it was upstream. [16:28] ScottK: oh. i guess they have a reason, but... if there's a version that they package with qt quick, why can't our version have it too? [16:29] No idea [16:29] ScottK: yeah. [16:32] maco: it's not stable yet [16:32] that's why it got removed for the 2.0 release [16:32] oh [16:32] the language is still changing === AndIrc_ is now known as cmagina === cmagina_ is now known as cmagina [16:49] weird [16:49] packages from my QApt PPA lack an origin [16:50] http://simplest-image-hosting.net/i0-plasma-desktopdk1466-jpg.jpg [16:50] it should be something like LP-PPA-echidnaman-qapt or somesuch [16:50] as a result it's not showing up in software-center either... === ganderson is now known as ganderson-fudz [16:53] Actually, all newly-added PPAs have no origin :/ [16:53] I wonder if its related to add-apt-repository not being able to connect to keyserver.ubuntu.com [16:53] Oh, a PPa for Muon, I should try it^^ [16:56] bla, will investigate after lunch [17:05] hello? === hector__ is now known as duva [17:22] Quintasan: poke... [17:23] Riddell_: i *might* not be able to make it today [17:23] loads of rain have damaged internet lines :( [17:23] shadeslayer_: busy watching football? [17:23] oh, that's a better excuse :) [17:23] :P [17:23] im not even @ home [17:24] what's your current status? [17:24] well.. ill try to make it [17:24] if not I can fill in [17:24] but.. if theres no internet,i cant help it [17:24] Riddell: poke me 10 mins before the session [17:25] if i reply ill be able to make it [17:25] well... atleast we will be having everything all over again in ubuntu dev week [17:27] o/ [17:27] also... kde rc 2 packages are up [17:28] Riddell: can you upload kdetoys or plasma addons somewhere? [17:28] ( not on ktown ) [17:28] so that if i come we can use that.. [17:29] shadeslayer_: it is on ktown [17:30] both of them are [17:30] Riddell: Qt is in binary New [17:30] Riddell: not everyone who will be attending will have access :) [17:32] shadeslayer_: monsoon hit you? ;) [17:33] :P [17:33] got stranded ... [17:33] ouch, where/ [17:33] nigelb: Karol Bagh,Delhi [17:33] coming back from Noida [17:33] brb in a sec [17:34] shadeslayer_: awesome :D [17:35] shadeslayer: http://people.canonical.com/~jriddell/tmp/kdetoys-4.4.92.tar.bz2 === AndIrc_36 is now known as cmagina [17:42] Riddell: sorry, did you see my message ^ ? :) [17:42] https://launchpad.net/ubuntu/+source/qt4-x11/4:4.7.0~beta1+git20100706-0ubuntu1 [17:42] lex79: what's new? [17:42] gosh, lots === ganderson-fudz is now known as ganderson [17:43] New packages: qt4-qmlviewer, libqt4-declarative-{particles, gestures, folderlistmodel} [17:43] lex79: why the new packages? is that coordinated with Debian? [17:43] yes, merge with Debian, see the changelog :) [17:45] oh fridge people... [17:45] they called Qt Quick as "Qt Quickly" [17:47] at least it'll get rickspencer's attention :) [17:47] heh [17:47] they also spelled "platform" wrong when writing about agateau's award [17:48] is this the right version of qtcreator? 2.0.0-0ubuntu1 [17:49] no, you need the binary (for the Qt Quick stuff) [17:50] for Johan Thelin's talk anything will do [17:50] on kubuntu.org it links to the PPA [17:50] for 4.5 beta [17:51] thats the version that's in that ppa [17:52] Riddell: see? http://www.kubuntu.org/news/kubuntututorialdays [17:54] no wait...there's no maverick stuff in that ppa [17:54] bah im confused [17:54] where is kubuntu tutorals day being held? [17:55] nigelb: here [17:56] maco: strange, how come not -classroom? [17:56] -classroom starts with a u instead of a k? [17:56] there is a u in classroom? :o [17:56] #ubuntu-classroom [17:57] maybe if there was a #kubuntu-classroom... ;-) [17:57] ohh, thought the tutorial day was going to be in here? [17:57] maco: you know classroom isn't really distro specific :) [17:57] it is in here [17:57] we're all friendly people there ;) [17:57] nigelb asked why here and not #ubuntu-classroom [17:57] ahh okay [17:57] and i joked that it's because #ubuntu-classroom is missing a k [17:58] oh oh how about #ubuntu-klassroom? [17:58] maco: klassy ;) [18:01] so tutorials day is in 2 hrs? [18:02] daylight savings time (or the lack thereof) always messes me up. :/ [18:02] should be in 1 i think [18:04] hm so qt creator has git and mercurial built in [18:04] needs a bzr plugin... and probably an svn one to make kde happy [18:05] kde developers have kdevelop? [18:05] qt creator needs the kdevelop c++ parsing engine [18:05] actually.. I just want kate to have the kdevelop c++ parsing engine [18:05] and I would be happy [18:05] oooh qtcreator can read your .vimrc! [18:08] Hi guys ;) [18:09] What do you think http://img689.imageshack.us/img689/9317/test2vu.jpg ? ;)P [18:09] or this one http://img257.imageshack.us/img257/2910/test3gm.jpg [18:10] speaking of ... Riddell any word on the new site? [18:10] can we just host this stuff ourselves? [18:24] [muon] jmthomas * 1147236 * trunk/playground/sysadmin/muon/src/PackageModel/PackageProxyModel.cpp Turns out we actually *do* have to invalidate the whole model, and not just the filter, when we change the filter to prevent the results from becoming unsorted. [18:27] btw .. why is new kde rc 4.4.92 ? shouldnt it be 4.4.95? :P [18:30] nigelb: torrential rains dude... made me think i was in bombay :P [18:31] shadeslayer: The entire electrical system in my pulsar shorted out yday after rains [18:32] nigelb: the metro dropped me till karol bagh.. and i was supposed to take a cab from there... funny thing.. cabs dont want to go till gurgaon in rains... so had to come to Uttam Nagar :P [18:32] had ta push to a workshop - pushing 150 kg is not fun [18:32] yeah.. :( [18:32] thankfully the metro doesnt do that... imagine pushing the metro... [18:33] heh [18:38] ~identica dent Kubuntu Tutorials Day in half an hour in #kubuntu-devel [18:38] status updated [18:39] txwikinger3: ping [18:39] txwikinger: ping [18:40] Riddell: pong [18:40] Riddell: you forgot to put a ! at the beginning of Kubuntu to send it to the group! but nevermind, i'll redent it with the group tag... [18:40] wow.. now i have power woes as well... -.- [18:41] ~identica dent !kubuntu tutorials day in 30 mins! [18:41] status updated [18:41] txwikinger: all good for your session in a bit over 4 hours time? [18:41] Riddell: yes [18:41] aalpert: ah, hello [18:41] Riddell: good evening [18:41] aalpert: all good for your session in 80 minutes time? [18:41] Riddell: Just have to learn QML :P [18:42] hehe.. [18:42] I hear the Brisbane Trolls keep changing the syntax :) [18:42] drkonqi is failing me [18:42] maco: on mav? [18:42] rekonq crashed, and it tells me useless bt, so i install -dbg and reload and it still says useless :( [18:42] shadeslayer: yes [18:42] Riddell: There shouldn't be too many changes between the latest snapshot and the one I downloaded a few days ago. Just a few names ;) [18:42] maco: yeah.. thats een disabled [18:43] *been [18:43] some security issue.. [18:43] OH RIGHT [18:43] the kernel thing [18:43] yep [18:43] so i should ulimit -c 0 and then get a core and attach that? [18:43] whatever it means.. :P [18:44] oh oh..btw who ever is concerned with uploading rekonq,i have to add some more stuff to apturl patch,please ping before uploading new rekonq [18:44] maco: just enable the ptrace switch? [18:45] umm [18:45] or just use gdb rekonq and run [18:45] echo 0 | sudo tee /proc/sys/kernel/ptrace_scope [18:46] the next kernel update should remove the need for that^ [18:46] oho [18:48] Did someone get access to a new ppa by chance right now === matrixx_ is now known as matrixx [18:48] i'm trying to install kubuntu-dev-tools with sc 4.5 rc1 [18:48] but the package seems to conflict [18:48] any way to solve it? [18:49] angelus85: what do you want it for? [18:49] Riddell: ninja packaging [18:49] i red it was needed for later sessions [18:49] yep [18:49] angelus85: use ubuntu dev tols [18:49] hmm, well it is indeed broken currently [18:49] bzr co lp:~kubuntu-members/kubuntu-dev-tools/trunk/ [18:49] Riddell: ok [18:50] Riddell: fixed in bzr [18:53] In 8 minutes UTD ? [18:53] yes [18:54] hm, anyone an idea what could make dolphin read whole files just because I hover over them with the mouse? [18:54] the preview? [18:54] Riddell: Qt is still in New :( and I'm building kdelibs 4.4.92..... [18:54] preview is off though [18:57] lex79: accepted [18:58] good ! :) [18:59] hm, seems it does it to show more extensive file information, like audio codec and tracks. Any ideas where that comes from? Nepomuk is turned off [18:59] nothing to do with nepomuk, it's KFileThingy [18:59] KFileMetaInfo? somthing like that === Riddell changed the topic of #kubuntu-devel to: Kubuntu Tutorials Day now on https://wiki.kubuntu.org/KubuntuTutorialsDay [19:00] good evening friends [19:00] anyone where for Kubuntu Tutorials Day? [19:01] anyone here for Kubuntu Tutorials Day? [19:01] o/ [19:01] I am [19:01] me [19:01] me2 [19:01] +1 === simi is now known as simion314 [19:01] \o [19:01] yep [19:01] \o/ [19:01] yy [19:02] me [19:02] o/ === cmagina_ is now known as cmagina [19:02] I'll be impressed if we have any German or Spanish people here [19:02] apparantly there's some sports match on [19:02] but here we have an exciting programme of talks [19:02] * yofel is german... [19:02] yes [19:02] yofel: I'm impressed :) [19:03] https://wiki.kubuntu.org/KubuntuTutorialsDay if you haven't seen it [19:03] the play is still some time away, I'll have one eye here and one there :P [19:03] Here's an Honduran :P [19:03] in an hour aalpert will be telling us about Qt Quick, the all new way to programme with Qt [19:03] if you want to take part download the qt creator from here ftp://ftp.qt.nokia.com/qtcreator/snapshots/latest . [19:03] * txwikinger is German-Canadian :p [19:03] packaged versions aren't new enough [19:04] Riddell: not even from Kubuntu Experimental? [19:04] shadeslayer will be telling us how to package in Kubuntu, for that one apt-get install devscripts build-essential kdelibs5-dev is a good start [19:04] keepitsimple: not even from experimental, the new Qt Quick stuff hasn't been released yet [19:05] keepitsimple: If your about box in creator is anything less than 2.0.80, it's too old. [19:05] great, got booted from the interwebs :) [19:05] famous Qt author Johan Thelin should be turning up to talk about starting Qt programming [19:05] apt-get install libqt4-dev for that one [19:06] txwikinger will be talking about sorting out the good and the bad from bugs, all you need is a web browser for that one [19:06] hopefully we'll all learn something new [19:06] so this is the kubuntu development channel [19:07] it's where most of the exciting development happens for the world's most friendly distro [19:07] we're currently working hard on Maverick Meerkat which will become Kubuntu 10.10 [19:07] due to be released on 10/10/10 [19:07] Riddell: i live in a location where my download limit is restricted except for abt 6 hours daily... can i save the talks now and download the reqd files and work on it later ? will that be useful ? [19:08] anirudh24seven: yes we'll have logs available for later reading [19:08] although it's probably useful to follow along live even if you can't do all the examples yourself, you can still read and understand them [19:09] every six months at the start of the cycle we meet up for an ubuntu developer summit to discuss our plans for Kubuntu [19:09] (one of the perks of being a Kubuntu developer is that you may get sponsored to fly around the world to fancy hotels) [19:09] the plans we have for 10.10 are written up here https://wiki.kubuntu.org/Kubuntu/Todo [19:09] the highlights start with all new versions of your favourite software [19:10] KDE Platform, KDE Workspaces and KDE Applications will be newly polished [19:10] as well as fun new stuff like Google Gadget Plasma Support [19:11] and useful new stuff like pulseaudio (which is now reliable enough for our high standards, and means you won't have different audio setup between KDE and non KDE applications) [19:11] one notable change is we want to replace the default web browser with rekonq [19:11] which is a lovely new all KDE happy web browser [19:12] another big change is merging the desktop and netbook images into one, the correct workspace will be loaded based on what sort of machine you have [19:12] of course you can change if you prefer the other workspace [19:13] talking of workspaces we should have an all new one, Plasma Mobile, suitable for handheld machines [19:13] it won't be very stable but ought to be good enough for a Tech preview label [19:13] which means we're (well NCommander) working hard on getting everything working on ARM [19:13] for a whole new range of devices [19:14] * NCommander sticks his head in [19:14] we have plans for an Application focused package manager [19:14] "app store" to non Linux users [19:14] not sure if that'll make it but it's something we need [19:15] filling in the gaps in KDE we also have plans for new printer tools and fixing file sharing with samba [19:15] the gents at Kolabsys want to work with us to create top quality Kontact packages to ensure you never have any problems with KMail [19:16] Will the Application focused package manager be kubuntu specific or is it planned to get used over multiple distro's? [19:16] well that nicely takes me to my next topic [19:16] which is what is Kubuntu for [19:16] and I think Kubuntu is for being a distro that brings the best out of KDE Software [19:17] the way to do that is not to go creating our own distro specific tools [19:17] but to make the best of what KDE offers [19:17] we did used to have our own package manager but we didn't have the resources to maintain it [19:17] so it's good for us and good for KDE if we use KDE Software [19:18] so for an Application focused package manager, I'd like that to be done as part of KPackageKit [19:18] Aweasome, that would make it more easy for my mom to install stuff :) [19:18] that means we solve the problem for us and for everyone [19:19] now this approach to KDE (being their biggest fanboy) can bring us into trouble [19:19] if KDE has gaps it means that Kubuntu has gaps [19:19] and network management has been a notable problem there [19:19] * maco scowls at hidden ssid's [19:20] maco: ah, so it is a known issue :) [19:20] but in general the best way to get something fixed long term is to work with upstream [19:20] if we do it ourselves it's likely we won't have the resources to maintain it in the long term [19:20] micahg: yes, nixternal has complained for months, but i think he said putting in the BSSID (the MAC) manually worked for him. doesnt for me. :( [19:21] my end goal is world domination for free software [19:21] and anyone who has coded in free software knows that Qt and KDE make the best platform for that [19:22] :) [19:22] but of course :) [19:22] Riddell: when do you believe to be able to achieve world domination? ;) [19:23] so I'm a fan of using those technologies as much as possible and not using inferior technology or system proprietry technology [19:23] and I also think linux distros should make releases, and do so with a good balance of stability without being out of date [19:24] now world domination won't be achieved all at once [19:24] it'll be one place at a time [19:24] my trick is to take over places with good beaches and sun, that way you can enjoy yourselves while you do it [19:25] taking over the canary islands was a big win there (Kubuntu is used in all their schools) [19:25] I always knew your a genious [19:25] we're currently in Finland for Akademy and it's surprisingly sunny here, 23.5 hours a day [19:26] Must suck for the person who i saw complaining he wakes up when the sun gets up... [19:26] Lots of time to work then ;) [19:26] New Zealand is a nice place and we took that over a while ago (Weta Digital use Kubuntu on all their thouands and thousands of machines) [19:26] and Weta Digital means that we already have a hold on Middle Earth and Pandora [19:26] as well as District 9 (although i don't advocate doing an alien invasion to take over a country) [19:27] oh we took over Georgia too (used in all their schools) [19:27] which takes me to another topic [19:27] translations [19:28] we do this funny thing in Ubuntu where we put all of upstreams translations into launchpad then take them back out of there [19:28] I had a friend in grade school who's father imigrated from Georgia. (Before Kubuntu's time, though) ;) [19:28] Q: was Shaman considerd as a ackage manager? [19:29] and that means recreating all of KDE's translations infrastructure [19:29] which is fiddly and error prone [19:29] simion314: yes we have looked at Shaman but it wasn't stable enough for use [19:29] maybe JontheEchidna has looked at it more recently [19:30] Yeah, it's not near being ready yet. [19:30] Needs a lot of love [19:30] there is a good reason to use launchpad for translations and it's due to the lack of an upstream translations community [19:31] if we have say Georgia wanting to translate Kubuntu into Georgian, pointing them at .po files in KDE SVN and again for openoffice and whatever mozilla do for translations isn't going to be popular [19:31] it's too fiddly by far for non geeks and too fragmented [19:32] so launchpad helps them see what needs translating and in a consistent and easy manor [19:32] but it has plenty of critics [19:32] it means translations often don't get shared with other distros [19:32] and it means upstream translations can be changed [19:33] and launchpad might not have the right settings (e.g. lithuanian changed from having 3 plural forms to 4 and launchpad didn't notice) [19:33] although I'm not sure how you can be unclear how many plural forms your language has :) [19:33] launchpad does give us a nice way to have translations for Kubuntu specific bits of software such as the installer [19:34] in general for KDE Software we advise people to do the translations in KDE [19:34] but while there remains a lack of an upstream translations community it's unlikely to go away [19:35] maybe there should be made a translation community thats not linked to any distro? [19:35] acemoo: There is. [19:35] right [19:35] a cross project one [19:35] Unfortunately different projects have different standards for how translations are done. [19:36] we do have dpm now who is dedicated to sorting out translations problems, so if you have any do let him know [19:36] one thing we can always do better in Kubuntu is Quality [19:37] we always need more testers for new software [19:37] whenever we make a PPA release of new software versions we need lots of testers [19:37] and it can be surprisingly hard to find them sometimes [19:37] so hanging around on kubuntu channels offering to help test is very welcome [19:37] similarly for each alpha/beta/RC and final release we need to test the images for various install methods [19:38] and it's very hard to get people to do that, it's time and bandwidth consuming [19:38] but we can't release without it being done so we'd love for people to take part more there [19:38] and of course we have lots of bugs report, txwikinger will talk later about helping to sort those [19:39] well I think that's all the items I had to talk about [19:39] any questions? [19:40] Is project timelord still busy? [19:40] do you use virtualization for that? [19:40] apachelogger? JontheEchidna? [19:40] emanuele: yes ISO image testing can be done in virtualisation [19:40] Q: i had a panel related bug only in kubuntu, all versions but not in other distro is somethng diffrent in kubuntus KDE? is it vanila KDE or you put stuff in it? [19:40] although I tend to use real hardware to be extra certain, but virtual machine installs are very useful too [19:41] alvin: Project Timelord is a set of overarching goals to improve Kubuntu. We are still working on them. [19:41] simion314: We do have some distro patches, but we try to keep them to a minimum. [19:41] So it's not exactly vanilla, it's close. [19:41] we do tend to consider distro patches evil [19:41] but sometimes they're the best way [19:41] Project Timelord has been taken in to consideration when planning out the goals for 10.10. It's a long-term vision for the direction of Kubuntu [19:42] Q: I heard about a mac like menu bar being made in (k)ubuntu, hows that processing and is there any place where i could follow it? [19:42] acemoo: Could you put that in more general terms for those of us who don't know about Macs? [19:42] what about reKonq? [19:42] acemoo: our very own agateau just recently posted an update about the global menu: http://agateau.wordpress.com/2010/07/05/getting-menus-out-of-application-windows-2/ [19:42] simion314: we also use plasma's javascript to setup some bits on the panel (such as changing from knetworkmanager to the new plasma network manager) so it's possible that could have bugs [19:43] Ah. That one. [19:43] ScottK: yeah that one :) [19:43] acemoo: We are looking into using that on netbooks this cycle if it's mature enough. [19:43] I'd like to see the global menu being used in our netbook workspace for Maverick [19:43] emanuele: For testing ISO's check http://goo.gl/pqUd && http://goo.gl/pTFd [19:43] ^and of course non-netbook users will be able to opt-in for using the global menubar on the desktop if they wish [19:43] and so would upstream (although they can't use it because it's not in stock Qt) [19:44] This is an example of something we distro patch for. [19:44] could netbook users opt out? [19:44] We'll carry the patches for a cycle or two, but they'll go upstream in Qt 4.8. [19:44] maco: Certainly. [19:44] yay [19:44] maco: right click-> "Remove this menu widget", just like any other plasmoid :) [19:44] It would be removing a widget from the panel. [19:44] Riddell: my problem is that the clock plasmoid is not full displayed, i use larger fonts then usual ,onlu in kubuntu and since Hardy i think, no such bug inArch or other kde distros [19:44] JontheEchidna: yay [19:45] 4.8? oh beef thats one way of getting people back to kubuntu :) [19:45] simion314: I recally seeing that in the past. I don't see it in Lucid. [19:45] acemoo: Qt 4.7 is already past feature freeze, so it's the first chance. [19:46] This is all being coordinated with Qt and Plasma upstreams. [19:46] simion314: nothing comes to my mind what could cause that, we certainly don't alter the clock applet, nor the plasma style [19:46] ScottK: us still in lucid and still in kde4.5 packages [19:46] Riddell: I think it may be related to font settings in k-d-s. [19:46] (but since I don't have it anymore, I can't say for sure) [19:47] simion314: so maybe try removing kubuntu-default-settings and seeing if that helps [19:48] But if he's using custom font settings, k-d-s shouldn't be doing anything [19:49] ScottK: Atleast its nice to see the global menu bar is so far in development already, I was afraid it might become vapor ware like the project I saw around kde 4.1 [19:49] Q: what about the bluetooth stack in kde? ie there is no way to use mobile phone + bluetooth + internet tethering without console. [19:50] acemoo: it's also nice that it works with GTK apps too (although they have plenty of bugs on their side but that's what you get for not using qt :) [19:50] we have a new version of kde bluetooth tools coming in a couple of weeks [19:50] user: Bluetooth is another area where sticking with KDE causes us to lag. Kbluetooth was unmaintained for a while, but it has a new maintainer now and so progress is being made. [19:50] I'm told (by the author) it's a big improvement [19:51] but networking may be another question [19:51] user: You might try installing blueman (it's in Universe) and see if that works in the meantime. [19:51] since that's mostly a network manager issue and KDE's network manager is a problem area as I mentioned earlier [19:51] bluetooth pan + networkmanager would be very nice :) [19:52] (while we stick with stock KDE stuff as much as possible in the default install, one advantage of being part of Ubuntu is we also offer the full breath of the Debian package archive if you want it) [19:52] ohh right, i've been planning on using bluetooth to use my mobile to pause vlc because i hate getting up and walking to my laptop when am watching a movie on my tv screen [19:52] user: thanks for reminding me about that, i keep forgetting about it [19:52] talking about watching films, plasma media centre is showing progress [19:53] I need to find the right person to talk to here at Akademy to see if it'll be ready for maverick [19:53] Q: what are the relations between kbluetooth and bluedevil ? [19:53] kbluetooth is old [19:53] it got replaced by kdebluetooth [19:53] and is now being replaced by bluedevil [19:53] I believe [19:53] well, kdebluetooth was the old, replaced by kbluetooth, but yeah :) [19:53] plasma media centre? i didn't even knew about that... sounds interesting :) [19:54] oh, my mistake [19:54] I think kbluetooth is more recent than kbluetooth but ok [19:54] i an using kde4.5 and the systemsettings looks bad in this versionm is it configured like this in KDE or is only a kubuntu stuff [19:54] bluedevil will be replacing both soon, and then it won't matter :D [19:54] Q: any idea if kbluetooth (or the recent one) supports bluetooth headphones? [19:54] plasma media centre is a "10 foot" interface (or as we prefer to call it outside the US, 3.048 metre interface) [19:54] yes ;) [19:54] simion314: The system settings reorganization was made by KDE [19:54] so you can use your computer from a distance to watch films and play music [19:55] simion314: systemsettings got a major overhaul upstream in 4.5. [19:55] http://adjamblog.wordpress.com/2010/07/07/rekonq-0-5/ <- shadeslayer [19:55] 3 meter...? rats my tv is only 37 inch :S [19:55] acemoo: that's distance from the TV, not size of it. [19:55] systemsettings was a kubuntu project that got taken over by KDE upstream (long time ago) [19:56] Riddell: no way really? wow [19:56] bigbrovar: bluetooth headphones support is currently being implemented in kbluetooth according to what I've read recently [19:56] bigbrovar: I just hated KControl so badly I had to get it fixed :) [19:57] jgeact: you asked about rekonq, any paticular aspect? [19:57] Riddell: nice to know kubuntu has done is bit for kde upstream [19:57] ScottK: so its like a hardware and software combination? [19:57] Will khelpcenter receive some updated content? [19:58] now isn't a good time to test rekonq unfortunately, there's bug in flash and elsewhere, but I'm pretty confident they'll get sorted [19:58] acemoo: Yes. I haven't used it a lot though. [19:59] alvin: documentation is mostly an upstream issue and it can be considered a gap in upstream in places [19:59] as such Kubuntu would like to help fill it and our docs man nixternal has been doing some of that [19:59] but it's a big task [19:59] there was an akademy award presented to a guy for documentation on Sunday so maybe things will pick up there again [20:00] ScottK: with plasma media centre, should i expect to have an interface on my mobile to control the computer or what? [20:00] plasma media centre can be used with a remote control or a keyboard or a mouse [20:00] of course wireless keyboard/mouse works best [20:01] but I think it's time to move on [20:01] plenty of time for questions later [20:01] I'm very happy to introduce our first guest speaker [20:01] Riddel: no, only what new thing [20:01] ahh.. i found the project page already :) [20:01] acemoo: I haven't investigate media center at all. [20:01] thanks for the talk Riddell [20:01] And thanks for the support ScottK [20:01] all the way from Australia, via Finland and here to talk about Qt Quick it's aalpert [20:02] Hello :) [20:02] hi ^^ [20:02] Hi aalpert [20:02] My background is that I'm a Qt developer and have been working on QML, since the project started. So ask me anything :). [20:03] This session is an introduction to Qt Quick, which will be new in Qt 4.7 [20:03] First up; What is Qt Quick? It's a marketing term for QML + Creator + the QtDeclarative module. To developers, it's pretty much just QML. Since we can get technical when we need to talk about details :) [20:03] Onto the real stuff. What is QML? Qt Meta-Object Language (or Qt Magic Language, if you prefer) is a declarative user interface language. [20:03] You can use it to declare the whole UI layer, plus some logic in JavaScript. And then you can stick the UI onto a Qt program. [20:04] So when Johan talks about 'legacy' Qt stuff later, a lot will still be useful. Just don't worry about the widget bits ;) [20:04] Actually, QML only really replaces widgets fully on mobile devices. [20:04] On desktops, widgets still work fine. [20:04] QML is also interpreted, so it can work anywhere. Including the next version of Kubuntu, which will probably will have 4.7 available (and have qmlviewer in one of the packages) [20:05] Plasma integration is also in progress, and there were a few sessions on that at akademy so far [20:05] QML is simple enough that designers can use it too [20:05] do we have any designers here? [20:05] Or anyone who doesn't like using C++? [20:06] * keepitsimple all the way C++ [20:06] Developers can enjoy QML as well, don't worry [20:06] if you all enjoy Qt C++ already, you'll be glad to know that QML is designed to integrate well with it [20:07] so QML can easily interact with QObjects that have properties, signals and slots [20:07] if you designed your application with a good UI and data level split, then adding QML is really easy [20:07] Let's now go through the hello world tutorial [20:08] if you downloaded creator, you'll see a Qt Quick examples combobox on the welcome screen [20:08] and from there you can select tutorials [20:08] and you'll load up a project containing this, and other tutorials [20:08] for others, I'll be going through it here line by line [20:08] and since it's IRC, questions at anytime are just fine. [20:09] Note that if you are looking at it in creator you might see lines like //![0]. Ignore them, they are just used to generate the example docs. [20:09] aalpert: so far, everything you said is clear :) [20:09] acemoo: Good to know :) [20:09] First line of QML.... [20:09] import Qt 4.7 [20:10] Thought i'd give a little feedback so you don't think your here all alone :P [20:10] How can I feel alone with 157 nicks in the channel ;) [20:10] aalpert: this is in Cell.qml? [20:10] * keepitsimple we are all ears [20:10] This is in tutorial1.qml [20:10] got it [20:10] aalpert: could be 156 afkers? :P [20:10] in the helloworld directory [20:11] the creator screen currently loads all the tutorials, and all stages at once [20:11] import Qt 4.7 imports all the types in Qt 4.7 [20:11] so when we start using types later, like 'Rectangle', you now know where they are from [20:11] and if you get error messages about not finding types, check your import messags [20:11] and your spelling [20:12] Next line... [20:12] Rectangle { [20:12] aalpert: Is it possible to only import 'Rectangle'? [20:12] mariob: No. Module level is the only granularity you have [20:12] ok [20:12] isn't that a bit memory inefficient? [20:13] only if you have bloated modules :P [20:13] making the types available is not expensive. [20:13] this merely means that the engine knows where to look to get the types [20:13] i'll just hope and asume the qt modules ain't bloated then :) [20:13] ohh.. [20:13] and a module is often just one C++ library anyways [20:14] the Rectangle { line actually creates a Rectangle element [20:14] there is a matching close brace too, much later in the file [20:14] between {} you can set the properties and children of the element [20:14] the next line, 'id: page', sets the id of the element to 'page'. [20:15] So that later in the file, you can refer to it as 'page' (and we will) [20:15] next line 'width: 500; height: 200' sets two properties [20:15] the width and the height. To values measured in pixels [20:15] note that you can have a semi colon instead of a new line [20:15] the next line sets the color to 'lightgray', in a similar manner [20:15] aalpert: is it also possible to set a size relative to screen width or so? [20:16] aalpert: in percents? [20:16] wind-rider___: You can only set in pixels, technically [20:16] wind-rider___: witdh*0.6 would work [20:16] but you can use bindings to do exactly that [20:16] and the bindings reevaluate when the width changes [20:16] aalpert: sounds a lot similar to css... [20:17] It's a little similar to css in terms of styling, yes. [20:17] but without the cascading part. [20:17] And I don't think setting things in CSS will reevaluate when the expression changes [20:17] the next line, Text{, creates another element [20:18] this element, as it's inside the Rectangle{}, will be a child of the Rectangle element [20:18] and we set its properties over the next few lines [20:18] anchors.horizontalCenter: page.horizontalCenter warrants a little more explanation though [20:19] the anchor properties are another way to position elements [20:19] and that line binds the horizontal center anchor of the Text to the horizontal center of the element called 'page' [20:19] note that this is a binding, and so will reevaluate when page.horizontalCenter changes [20:20] are all the elements in one namespace? seeing the Text element does not needs a special name for its parent element [20:20] you can run the tutorial now, and see 'Hello World' [20:20] and if you resize the window, and change the horizontal center, the text moves [20:20] acemoo: The names have a form of scoping [20:21] but you could use 'parent' instead of 'page' here [20:21] inside a single QML file, you can usually access all the elements with an id [20:21] things get more complex with multiple files [20:21] so onto tutorial2.qml, which uses multiple files [20:22] The change here, is a grid containing a lot of cells that are all very similar [20:22] so we want to write the code for the Cell once, and reuse it. [20:22] While the types Rectangle, Text and Grid are in Qt 4.7, Cell is not. [20:22] So it will load the file Cell.qml to create the Cell type [20:22] Now you can look at Cell.qml :) [20:23] Item is just a simple type in QML, which is pretty much nothing but a bounding box. [20:24] the line 'property alias cellColor: rectangle.color' creates a new property on this item, and calls it cellColor [20:24] Item is like QWidget the base class for all elements? [20:24] simion314: Yes, and like QGraphicsObject is the base class in QGraphicsView [20:24] 'property' starts the property declaration, 'alias' is the type of property, and 'cellColor' is the name [20:25] because it is an alias type, it's value is another property. And it just forwards everything to that property [20:25] this is because, back in tutorial2.qml, we only have a 'Cell'. And the interface for that is whatever is declared in the root item of Cell.qml [20:25] so to expose rectangle.color, we add an alias property [20:26] the 'signal clicked(color cellColor)' line is similar. We add a signal to the item so that it can be used in the main file [20:26] Another new element in this file is 'MouseArea'. This is a user input primitive [20:27] despite the name, it works equally well for touch [20:27] QML can be the entire UI layer, including user interaction. [20:27] And MouseArea is a separate element so that you can place it whereever you want. You can make it bigger than the buttons for finger touch interfaces, for example [20:28] to make it the exact size of the Item, we use 'anchors.fill: parent' [20:28] which anchors it to fill its parent [20:28] less obvious is the 'onClicked' line after that [20:28] MouseArea has a signal called 'clicked' [20:28] aalpert: in that case you should place the button shape inside a MouseArea and make it a child of MouseArea? [20:29] wind-rider___: That is one way of doing it. You can also make the MouseArea large than the button and centered in it [20:29] aalpert: ok [20:29] Note that child elements can go outside their parent elements in QML [20:29] while elements can click, this is off by default [20:29] aalpert: ok, then it's clear :) [20:29] and I'll point out a use of this when we get back to tutorial2.qml [20:29] MouseArea has a signal called 'clicked', and thus a signal handler called 'onClicked' [20:30] you can put a script (QtScript) snippet in 'onClicked', like in Cell.qml, and that snippet is executed when the signal is emitted [20:30] so when you click on the MouseArea, the clicked signal is emitted, and the script snippet is emitted [20:31] and the script snippet says to emit the clicked signal of the parent item, with container.cellColor as the argument. [20:31] Back to tutorial2.qml, we can see this interface in use [20:31] In each Cell instance, we set the cellColor property [20:31] you don't need to import cell? [20:31] and use the onClicked handler. [20:31] files in the same directory are automatically imported [20:32] if it was in another directory, or a module, you'd have to import that directory (or module) [20:32] The Grid element positions the Cell elements in a grid [20:33] by setting properties such as rows, columns, and spacing, we can control the details of how this occurs [20:33] for some reason earlier I thought the Grid was 0,0 sized, but now I realize it isn't [20:34] but if it was, then the Cells would still have the same x,y valeus [20:34] *values [20:34] and note that x,y positions are relative to your parent, just like in graphics view [20:34] lol Pnux, there you go ;) [20:34] and so if the Grid was 0x0, and in the same place, then it would look the exact same [20:35] it's just that Grid does size itself to its children, and this is needed for its anchors.bottom to work [20:35] Now that we've learnt reusable components in QML, lets move on to the bit you've all been waiting for. Animations [20:35] tutorial3.qml makes this thing animate [20:35] alpert: about tutorial2 [20:36] aalpert: how come that Grid is also snapped to the left side of the window? [20:36] x: 4 [20:36] wind-rider___: in the code I only see that it's sticked to the bottom [20:36] aalpert: ok, clear :) [20:36] I overlooked it [20:36] x: 4 is the same as anchors.left: parent.left; anchors.leftMargin: 4 [20:37] we could do y: parent.width - colorPicker.width - 4 instead of the current anchros [20:37] *anchors [20:37] but in this case, the anchors are clearer [20:38] tutorial3.qml does animations using states and transitions [20:38] one trap to be aware of - these aren't the states and transitions of the State machine framework in Qt [20:38] those are logical states, these are UI states [20:38] Here, a State is just a set of property changes from the base state (called "") [20:39] and a Transition is just telling it how to animate those property changes [20:39] so in this file, in the Text element, we add a MouseArea, states, and transitiosn. [20:39] And since I'm getting tired, I'll stop correcting my typos ;) [20:40] We have a State, which we name "down", and the way we are entering it is through the when property. [20:40] aalpert: and you'll make pnux think your a bot again ;) [20:40] this is just a standard boolean property [20:40] acemoo: use !help to get instructions for this bot [20:40] aalpert: 20 minutes to go ;-) [20:41] so the magic really happens because of QML's bindings. [20:41] When either 'mouseArea.pressed' or 'true' changes, that property binding gets revaluated [20:41] and you may find that this changes the value of the when property. [20:42] true doesn't change often. But when mouseArea.pressed does, it makes 'when' true. And so the state activates itself [20:42] and this applies the property changes in the PropertyChanges element [20:42] we do try to make this language fairly self explanatory :) [20:42] PropertyChanges has a similar syntax to the rest of QML. Once you set the target, it is just like you are in that item. [20:43] So the 'y: 160' and 'rotation: 180' will be applied as if they were written inside the Text item [20:44] with just the State, it would be boring. Comment out the transitions: line (and everything to the } of the Transition as well) to find out [20:44] C++/JS style comments work in QML [20:44] The Transition element says how to animate the property changes. [20:44] the from and to properties on the element say which state you are going from and to [20:44] or just select what you want to comment and ctrl+/ [20:45] you can use "*" to match all states. [20:45] But in this case we want to be specific. So that when we set the reversible property, it will use the reverse of this transition to go from the 'to' state back to the 'from' state [20:46] The ParallelAnimation element just groups animations [20:46] and when it runs, the animations in it are run in Parallel [20:46] The first animation in it is a NumberAnimation, which animates numbers [20:46] 'properties: "y, rotation"' means that it will animate the y and rotation properties [20:47] so if these properties changed in this state, on any items, they will be animated in this way [20:47] the rest of the properites in the NumberAnimation will define this exact way [20:47] duration: 500 means the animation will take 500ms [20:48] easing.type: Easing.InOutQuad means that it will use an interpolation function that has quadratics on both the in and out parts [20:48] or something like that. The documentation has pretty pictures [20:48] It's at [20:48] http://doc.qt.nokia.com/4.7-snapshot/declarativeui.html [20:48] But the docs don't suffer the same stability freeze as the rest, so they will still be improving for some time. [20:48] aalpert: when I hold the mousebutton until the text is at the bottom and I quickly do a mouseup and I hold it again, the mousepress is not recognized anymore. can you explain that? or am I nitpicking? ;-) [20:49] Will it only affect the text element? [20:49] wind-rider_: Are you using an old version? [20:49] tsvi: The animation will affect all elements whose y or rotation properties have changed [20:49] in that state [20:49] you can be more specific if you want [20:50] wind-rider_: does it not recognize when its still reverting or also after that? [20:50] acemoo: when it's still reverting [20:50] wind-rider_: I can't reproduce. But I think you might be misinterpreting something here [20:50] remember that the MouseArea is on the Text [20:50] so when the Text moves, the MouseArea follows it [20:50] so if you try to click again before the Text returns, the MouseArea isn't there [20:51] You could make the MouseArea a sibling of the Text instead, to keep it in one place [20:51] aalpert: you just made me try to go click the moving text, lets see if i can do that :) [20:51] aalpert: that is it :) [20:51] The fun thing about QML is that it is so powerful and dynamic, you get all these extra 'features' :) [20:51] yep works :) [20:51] The other animation is ColorAnimation, which automatically animates any color changes. [20:52] is it possible to compile qml or is there only the interpreted way? [20:52] user: It compiles transparently without you noticing. [20:52] I don't remember if we cache the compiled output somewhere [20:52] but I believe you have compiled it every time you run qmlviewer :) [20:53] One goal of QML is to provide a clear declarative interface and not too much C++ interface [20:53] that way, it's like a black box for your UI files [20:53] and so we can make it magically faster every release :) [20:53] note that distros won't install qmlviewer normally, you need to have some c++ to run it for a real application with Qt 4.7 [20:53] aalpert: user probably means that one can ship just an executable file instead of an executable+qml file [20:53] can you use qml with pyqt? [20:53] Riddell: It'll probably be part of the qt-devel package though [20:53] Riddell just said c++ [20:54] yes it'll be available to install for developers [20:54] You can create a Qt/C++ app and use QDeclarativeView to easily load a QML file (with a function call) [20:54] maco: I'm sure the QDeclarativeView features will get bindings just like the rest of the Qt API [20:54] if that QML file is in Qt resources, then you compiled the qml file into the application [20:55] Don't forget to prefix resources with qrc:/ (at least in the previous releases of qml) [20:55] from C++, use qrc:/ from qml, don't. [20:56] we might need to beef up the docs on that use case [20:56] Note that you can export your existing QGraphicsObject subclasses to QML with a couple lines, and then use them like Rectangle [20:56] in case any of you have existing graphics view code lying around [20:56] aalpert: when can we start seeing QML built apps in kde. and what does it really offer KDE and its app ecosystem I am speaking from a user non programmer point of view [20:57] bigbrovar: From the User point of view, you'll see more fluid apps [20:57] because developers can do the animations easier [20:57] and UI scripting will be a little easier [20:57] the KDE PIM guys are using it already for making e-mail and calendar apps using akonadi [20:57] The benefit to KDE and it's app ecosystem is just another way of creating UIs, so it'll increase app quality indirectly [20:58] and it'll be easier to port to mobile now. Because it's much easier to create the mobile UIs with QML [20:58] Riddell: Are there any screenshots? [20:58] :) I definitely backed the right horse then :) [20:58] the KDE PIM guys seem happy with it for mobile even though they suffered through immense early adopter pains [20:58] http://dot.kde.org/2010/06/10/kde-pim-goes-mobile [20:58] but we've stopped changing stuff (well, will this week) and so it's stabilizing [20:58] this is practically the first tutorial on it QML that won't go out of date really fast :) . [20:59] bigbrovar: QML is a lot more accessible, so user non-developers now have a chance at writing plasmoids [20:59] it's even easier than the JS bindings for plasmoids [20:59] there won't be widespread use of QML until Qt 4.7 is released, it's still not in general use [20:59] I think I'm out of time, for further questions we have #qt-qml on freenode [21:00] QML is still pre-release. I doubt there will be much adoption until 4.7 is released later this year [21:00] hopefully in time for kubuntu 10.10 [21:00] aalpert: will the designer integratation be coming back at some point? [21:00] Riddell: At some point. When it works well enough. [21:01] When should i expect a preview version of qt 4.8? [21:01] since it doesn't right now, it's not coming out soon [21:01] but we will try to get something visual to help people in QtCreator 2.1 [21:01] it looked very slick when I saw it, means you can make QML interfaces without caring much about the code [21:01] acemoo: trunk is already 4.8 qt.gitorious.org [21:01] great for designers [21:01] 5 minutes break now before the next tutorial [21:01] The designers I talked to liked it, but were okay at writing the code too [21:01] but they were really good designers :) [21:02] aalpert: aweasome, then the global menu bar can't take too long to be going to different distro's as unstable/testing :) [21:03] aalpert: I was there listening your presentation on aKademy too today, both presentations where good :) Thanks [21:04] oops *were good [21:04] probably I'm also a bit tired already, it's been a long day in aKademy [21:05] One warning about QML that I forgot to give: The main team working on it is in Brisbane (GMT +1000) [21:05] aalpert: thx for your tutorial :-) [21:05] so the irc channel might be a little underpopulated while some of you are awake [21:06] in that case, we can join are wise heads together :) [21:06] aalpert: thanks for giving the nice tutorial and helping work on making QML [21:07] thanks! [21:07] I'm always happy to show people my pre-release software :) [21:07] we are now due a packaging session [21:07] however shadeslayer isn't around to give it [21:07] so I'm going to make one up on the fly! [21:07] anyone want to follow along? [21:07] (shadeslayer's internet fell over, if you're all thinking he's playing hooky) [21:08] I'm interested, even though am on arch.. [21:08] he's got flooded away in the monsoons [21:08] oh my how unfortunate [21:08] You can give some tips and best practices [21:08] or something like that [21:08] every few weeks KDE make a new release of their software compilation [21:08] Thanks for the tutorial [21:08] and our crack team of packaging ninjas jumps into action to package this [21:09] packaging for the development version (Maverick) and usually backporting it for the stable release [21:09] just such a release is about to happen [21:09] KDE SC 4.5 RC 2 is coming, what a lovely acronym filled name [21:09] and as crack ninjas we get the tars a few days early to package them up [21:10] so everyone here is now a crack ninja and can get the tar early [21:10] you just have to remember it's top secret until release [21:10] Riddell: I heard all ninja's got killed like long long ago.. how can you still be a ninja? :o [21:10] * Quintasan sets up an ambush for acemoo [21:10] acemoo: not true! i met a guy studying ninjitsu at the art store down the street [21:10] ninjas are skilled in the arts of deception and hiding [21:10] sorry.. someone at my school gave a presentation about ninja's 2 weeks ago.. :D [21:10] wget http://people.canonical.com/~jriddell/tmp/kdetoys-4.4.92.tar.bz2 [21:11] that's the top secret tar [21:11] now for Debian packages the name of the tar needs to follow a paticular format [21:11] toys are always great :) [21:11] so rename that file to kdetoys_4.4.92.orig.tar.bz2 [21:12] and extract it (tar xf kdetoys_4.4.92.orig.tar.bz2) [21:12] now we need to get our packaging [21:12] which we keep in a bzr archive [21:13] bzr co lp:~kubuntu-members/kdetoys/ubuntu [21:13] if you don't have bzr installed, you should, it's the best version control system ever [21:13] it's like git, only usable [21:13] LOL [21:13] I thought that was mercurial's tagline... [21:13] you could also just download the packaging from the current kdetoys package [21:13] https://launchpad.net/ubuntu/+archive/primary/+files/kdetoys_4.4.90-0ubuntu1.debian.tar.gz [21:14] (I found that on https://launchpad.net/ubuntu/+source/kdetoys ) [21:14] either way you'll get a debian/ directory [21:14] we use the debian packaging format in ubuntu of course [21:14] Not. I got ubuntu/ dir [21:14] am installing bzr atm [21:15] y me too [21:15] tsvi: but inside that should be debian/ [21:15] 46k/s \o/ [21:15] ok [21:16] * Riddell pauses so people can catch up [21:16] * user catched up :) [21:16] * acemoo catched up [21:16] good enough :) [21:17] you need to move the debian/ directory inside the kdetoys-4.4.92 source [21:17] tsvi catched up (how doyou do this message thingy?) [21:17] tsvi: /me [21:17] then change directory cd [21:17] cd kdetoys-4.4.92 [21:17] type there, obviously don't just type cd or you'll go to your home directory [21:18] ohh sweet, thats better as cd ~ [21:18] :) [21:18] see, I said you'd learn something :) [21:18] now we need to update the changelog with the new version number [21:18] dch -i [21:19] should open up a text editor with a new entry ready to be added to debian/changelog [21:19] dch is in the devscripts package [21:19] those of you following on arch will need to just edit debian/changelog and add a new entry manually :) [21:20] alright [21:20] now we are ready to build it [21:20] debuild [21:20] is the magic command [21:21] it may well tell you that you don't have everything installed [21:21] " Unmet build dependencies" [21:21] so you need to install them [21:22] .orig. file should be in the same dir as kdetoys-4.4.92 [21:22] why dont use pbuilder instead of installing every dependency into the running system? [21:22] kdetoys_4.4.92.orig.tar.bz2 should be outside the kdetoys-4.4.92/ directory [21:23] rats, no debuild for arch.. i'll just read along further then [21:23] pbuilder is a nifty script that will set up a chroot and install the packages and build the package [21:23] but it's only useful for a final check [21:23] I forgot the ? sorry [21:23] Riddell: apt-get build-dep kdetoys <-- might help at least get close on build deps (and should do the trick if there are no new deps) [21:23] pbuilder isn't useful for doing a first package because you can't check everything is correct at the end [21:24] okay [21:24] debuild says: This package has a Debian revision number but there does not seem to be an appropriate original tar file or .orig directory in the parent directory; (expected one of kdetoys_4.4.90.orig.tar.gz, kdetoys_4.4.90.orig.tar.bz2, kdetoys_4.4.90.orig.tar.lzma or kdetoys-4.4.92.orig) continue anyway? (y/n) [21:25] ah hah [21:25] you need the right version number in debian/changelog [21:25] I think dch didn't bump the version [21:25] Where do I get kde-sc-dev-latest (>= 4:4.4.90) libphonon-dev (>> 4:4.7.0really) [21:25] 4:4.4.92-0ubuntu1~ppa1 is it [21:26] user: try this-> mv kdetoys_4.4.92.orig.tar.bz2 kdetoys_4.4.90.orig.tar.bz2 [21:27] tsvi: from the 4.5 repository http://www.kubuntu.org/node/157 [21:27] changing the version number in the changelog file did it [21:27] keepitsimple: it's a BAD practice to do this :P [21:27] our version numbers are a little fiddly [21:27] 4:4.4.92-0ubuntu1~ppa1 4 is the epoch and only gets changed if you mess up. 4.4.92 is the upstream version [21:28] -0 is the debian version [21:28] we often take packages from debian in which case it would be set to 1 [21:28] in this case the package isn't from debian so it's a 0 [21:28] then the ubuntu version number [21:29] then the PPA number because we usually put packages in a PPA before uploading to the main archive [21:29] for the changelog text I usually put "New upstream release" [21:29] anyone got it compiling? [21:29] wip [21:30] * Quintasan <3 pbuilder [21:31] Riddell: will we bump epoch if we get to KDE 5 someday? :D [21:31] Whoaa kde-sc-dev-latest (>= 4:4.4.90) libphonon-dev (>> 4:4.7.0really) is a serious download hopefully will be ready by the end of the session [21:32] tsvi: well, it downloads developments files for KDE, that's a ton of headers :) [21:32] Quintasan: no, we'll only bump the epoch if KDE decides to change version format. maybe they'll change to KDE 04.10 after the month and year, then we'd need to change the epoch [21:32] Unmet build dependencies: kde-sc-dev-latest (>= 4:4.4.90) quilt libphonon-dev (>> 4:4.7.0really) [21:32] :) [21:33] I got it compiled! [21:33] I think that means I win === simion314 is now known as simion3142 [21:33] lol [21:34] the next thing I do is check over the build log which is in the directory above the sources and make sure the cmake output doesn't complain about anything missing [21:34] new KDE Software releases add new programmes and often need new libraries [21:34] then I need to check that all the files are actually packaged [21:35] the debian/*install lists which files should go into which .deb package [21:35] often new files are added for a new release [21:35] so you can run this command to check if there's any missing dh_install --list-missing [21:35] I can also run lintian over each of the .deb packages [21:36] lintian runs lots of checks on .deb packages for common errors [21:36] some of which I care about and some I don't care so much [21:36] I get this warning for example [21:36] W: kteatime: binary-without-manpage usr/bin/kteatime [21:37] well I think kteatime is a trivial enough application with few enough users that it's not worth my time making a man page [21:37] but then if we get lots of confused kteatime users who don't like kubuntu because they can't understand how to time their tea I'll have nobody to blame but myself [21:39] If it makes you feel better, feel free to blame me [21:39] ;) [21:39] acemoo: you know you will get tons of kteatime fanatics (including me) standing at your doors? :P [21:40] so now it builds and you know there's no files missed out of the .debs then you can use pbuilder [21:40] which will make sure it builds in a clean environment [21:40] often my computer will have packages already installed which are missed out of the build-dependencies [21:40] and pbuilder will catch that [21:40] it can be quite time consuming though [21:41] Quintasan: i like kteatime.. but i have too many different teas that i dont know the times of... so i stopped using kteatime and i just leave the tea in the water for ages... [21:41] final step is to build the source package and upload [21:41] debuild -S will build the source package [21:42] Finished getting all dependencies ... Finally [21:42] a source package in debian packaging is made up of the upstream .orig.tar.gz , the debian.tar.gz and a .dsc which is meta data with md5sums [21:43] the debian.tar.gz contains the debian/ directory [21:43] you can upload it to your PPA if you want to let people use it [21:44] everyone with a launchpad account can have a PPA [21:44] but you will need to have your gpg key in launchpad [21:45] So you have your deb file which is essentially a tarball containing these 3 files? [21:45] no the .deb files are the binary packages [21:45] you can use lesspipe to view their contents [21:45] lesspipe kteatime_4.4.92-0ubuntu1~ppa1_amd64.deb [21:46] the source part is kdetoys_4.4.92.orig.tar.bz2 kdetoys_4.4.92-0ubuntu1~ppa1.debian.tar.gz and kdetoys_4.4.92-0ubuntu1~ppa1.dsc [21:48] if you do get the source package built you can sign it with your gpg key [21:49] debsign -kjriddell@ubuntu.com kdetoys_4.4.92-0ubuntu1~ppa1_source.changes [21:49] using the e-mail address on your gpg key [21:49] then put it into your launchpad PPA [21:49] dput ppa:jr kdetoys_4.4.92-0ubuntu1~ppa1_source.changes [21:50] using your launchpad username in place of "jr" [21:50] launchpad will then build the package and make it available hopefully in less than an hour [21:51] So launchpad uses the sources to give me the .deb file, I finally got it [21:51] yes [21:51] Took me 5 years of using ubuntu to figure this out I can't believe it [21:51] and it'll compile it on i386 and amd64 [21:52] and if I upload it to the main ubuntu archive it'll compile on arm and the other weird architectures [21:53] the way you get privilages to upload to the main archive is fairly straight forward [21:53] you contribute to kubuntu (or another part of ubuntu) for a while [21:53] then you can apply to be a kubuntu member [21:54] which involved turning up a meeting and being grilled to be sure your heart is really in the right place for us [21:54] then you contribute for a bit more [21:54] then you can apply to be a kubuntu dev [21:54] then you get grilled once again [21:54] which involves turning up a meeting and being grilled to be sure your packaging skills are elite ninja standard [21:55] so.. how many ninja's does kubuntu has now? [21:55] btw: is there a good packaging documentation somewhere? ^^ [21:55] user: there's lots of documentation out there [21:55] user: yes, ninja typical environment -> https://wiki.kubuntu.org/Kubuntu/Ninjas/BuildEnvironment [21:55] debian new maintainer guide and ubuntu packaging guide for example [21:56] I get debsign: gpg error occurred! Aborting.... [21:56] user: Packaging Complete Guide -> https://wiki.ubuntu.com/PackagingGuide/Complete [21:56] I've never been too impressed by either though [21:56] tsvi: that means it's all compiled and finished [21:56] tsvi: it just means you don't have a gpg key with a name and e-mail matching what you used in debian/changelog [21:56] lol... even the url has ninjas.. i thought riddell made it up [21:56] user: though that ninja wiki is a little bit out of date [21:56] https://edge.launchpad.net/~kubuntu-ninjas/+members 21 members [21:57] some are more active than others of course [21:57] and some have their special ninjas skills, like NCommander and his arm fixation [21:57] tsvi: you have to add in your ~/.bashrc two lines, export DEBFULLNAME="your name" and export DEBEMAIL="name@hostname.whatever" [21:58] what if i want to recompile some binary with different options? [21:58] [libqapt] jmthomas * 1147313 * trunk/playground/libs/libqapt/src/ (backend.cpp backend.h) - Add two methods for retreiving the download size and the required disk space for marked changes - Add a method for returning the human-readable label of a package origin, given a QApt::Package pointer. [21:58] angelus85: then you have to change debian/rules which is a Makefile that tells the package how to actually build [21:59] angelus85: for the most part we just include standard stuff in debian/rules and it'll do the right thing [21:59] Where is the build log? [21:59] i was trying to compile pam face recognition [21:59] but i had some problems with some libraries [21:59] so that's why i was asking [21:59] (segfault of course) [22:00] [muon] jmthomas * 1147314 * trunk/playground/sysadmin/muon/src/StatusWidget.cpp Use the new methods in LibQApt to show in the statusbar how much is to be downloaded/installed [22:00] Where does debuild put the build log? [22:01] tsvi: kdetoys_4.4.92-0ubuntu1~ppa1_amd64.build in the directory above [22:02] let's have a wee break before the next session [22:02] if you do fancy helping the ninjas with the next KDE release, just stick on this channel [22:06] ok [22:06] coming up next [22:06] is our second guest speaker [22:06] I'm very pleased to introduce Johan thelin top Qt developer [22:06] take it away e8johan [22:06] :-) [22:06] thanks [22:06] * Quintasan claps [22:07] so, let me start by saying hi all [22:07] hi johan [22:07] my plan today (tonight) is to go through the creation of a [22:07] hi o/ [22:07] very simple application using Qt Creator [22:07] just to go through the concepts of Qt, getting started and heading in the right direction [22:08] just a quick question before we start, how many of you have experience from Qt Creator? [22:08] o/ [22:08] e8johan: I do, created a small useless app :) [22:08] \o [22:09] worked half a year on a project with it [22:09] good to see some hands - so I'll try to stick to the Qt code part, not the tool then [22:09] do tell if you want me to point something out to you :-) [22:09] either way, let's start by firing up Qt Creator [22:09] from the first screen you can choose to create a new project - do that [22:09] it'll bring you to a wizard [22:10] I do, worked through the tutorials and used it for some coding at work (all C though) [22:10] what you want to create is a Qt4 Gui Application [22:10] Riddell: er, I would have tried to phrase that a different way :-/ [22:10] cmagina: C-coding should be about enough for this - feel free to ask if the C++ is giving you trouble [22:10] Done the tutorials, quote long time ago though... [22:11] so, when you have decided which type of project to create, let's name it [22:11] I've called my version listexample [22:11] when naming it and choosing a directory, be aware that the project name is the name of a directory [22:11] i.e. do not name the directory listexample as well [22:12] that will just give you double directories [22:12] the next page of the wizard if interesting as it shows you all of Qt's modules [22:12] for now, Gui and Core will be just fine, but if you're curious, you can always check this site [22:12] I have Class Information [22:12] http://doc.qt.nokia.com/modules.html [22:12] I also get class information [22:13] Same here [22:13] hmm, ok, things might have changed places or something, class info is next for me [22:13] what class information does is that it sets up a skeleton project for you [22:13] some code to get started from [22:13] I believe we are all running the latest beta with Qt Quick [22:13] the default choice is to use a QMainWindow (in my case) [22:14] cmagina: ok, I'm running Qt Creator as packaged from kubuntu [22:14] i.e. not bleeding edge, just the default package [22:14] I'm sure that it will be ok either version, just tell me when I say things that seem strange to you :-) [22:14] the default choice, QMainWindow, is a bit of an over kill for a trivial example [22:15] it is a window with menus, toolbar, statusbar, dockable areas, etc [22:15] everything that you expect from a document centric desktop application [22:15] the other two choices are QDialog and QWidget [22:15] a QDialog is a window with a result - e.g. yes/no, ok/cancel, etc [22:16] that is not what we're after, so choose to use a QWidget [22:16] also, accept the default name of Widget (if you don't want to patch my code snippets all night :-) ) [22:16] a question to you who are running bleeding edge, do you get modules now? or do you get project management? [22:17] e8johan: project managment [22:17] ok, great [22:17] Yup [22:17] I'm using the default version, so everything is great for :) [22:17] we just skip project management for now - it is just versioning - so click finish and you'll get a freshly baked skeleton project [22:17] the project consists of four files [22:18] main.cpp, and the h, cpp and ui files for our Widget class [22:18] don't forget the .pro file ;) [22:18] aha! you are right :-) [22:18] looking inside the pro file, you can even see that it refers to the other files... [22:18] specially important for the people who did not get to choose modules before [22:19] you are absolutely right, the pro file is where the modules get selected or deselected [22:19] looking at the Widget class, the cpp and h files define the class to C++, while the ui file defines the user interface [22:20] modules = QtCore QtNetwork? [22:20] the ui file really is an XML file, but Qt comes with a visual editor for them [22:20] jgeact: do you get that with the bleeding edge version? [22:20] jgeact: you only need QtCore and QtGui and that is the default choice [22:20] i get "QT += core gui" in qt-creator 2.0 on arch [22:20] ok [22:21] acemoo: that sounds about right [22:21] does everyone have the project with the right modules in place? [22:21] I have the same as acemoo [22:21] yup [22:21] you can try running the application - click the green arrow in the lower left corner and you'll get an empty window [22:21] * tsvi ready [22:22] (if all is correct, that is) [22:22] oh frick am still double o === acemoo is now known as acemo [22:22] * Quintasan got it running [22:22] let's fire up Designer then [22:22] :) [22:22] * alvin uses qtcreator 1.3.1. Looks good [22:22] we get Designer started by double clicking on the ui file [22:23] this should give you loads of new panels with your empty window in the middle [22:23] I have :-) [22:23] * tsvi got it [22:23] the panels that we are going to use tonight are the widgets box (to the left) and the property editor (to the right) [22:24] if you have fresh installs, you might have loads of other stuff as well - do not be shy when it comes to closing or making them smaller :-) [22:24] you can always get them back [22:24] you can see a small screenshot for the application that we will go through over here: [22:24] http://www.thelins.se/johan/blog/resources/project-source-kubuntu-tutorial-day/ [22:25] aww no signals and slots tonight? thats something special i like about Qt:) [22:25] (you can get the full source there as well - but that is cheating) [22:25] acemo: you will get signals and slots [22:25] \o/ [22:25] acemo: we just need some widgets to get signals from :-) [22:25] in the screenshot you can see three QPushButtons to the right and a QListWidget to the left [22:26] try placing them roughly as in the screenshot in designer [22:26] then add a vertical spacer underneath the buttons [22:26] the spacer looks like a spring and acts like one as well - it pushed the buttons to the top of the window [22:27] when you have all the widgets in place, click somewhere in the window itself to select it and choose to apply a grid layout [22:27] you do that form the toolbar, not from the widgets panel [22:27] it can be scary applying layouts - things can get messed up, but then you can just break the layout again from the toolbar and try again [22:28] the point of a layout - instead of just static coordinates is that widgets can resize for new languages or fonts and that the user can stretch the ui to utilize more screen [22:28] when you feel that the design looks about right, try running the application again and resize the window a couple of times [22:29] are everyone keeping up? [22:29] no problems so far [22:29] great [22:29] Everything is great here [22:29] so lets just get names and properties setup [22:29] I'm happy too [22:29] yes. Cool! :) [22:30] how do I apply th elayout? [22:30] double click on each of the buttons and give them the right texts [22:30] okey [22:30] Context menu -> layout... [22:30] txwikinger: select the window and click the grid (3x3 blue boxes) in the toolbar [22:30] txwikinger: right click on the "window" and choose layout -> lay out in a grid [22:30] context menu should work well too [22:30] ah thanks [22:31] the idea is that the layout is applied to the container widget. the most common mistake is to select the widget about to be laid out. [22:31] e8johan: yep, happened to about everyone in my project :) [22:31] * tsvi ready for the next step [22:31] when you have given the buttons texts, select them one by one and change the objectName property (at the top) and name them addButton, deleteButton and clearButton [22:32] also, select the listWidget and look for the selectionMode property [22:32] set it to ExtendedSelection [22:32] when all this is done, save the file and open widget.h (just double click it) [22:33] in the header, you see the Widget class being declared [22:33] e8johan: what the Extended Selection does? [22:33] ExtendedSelection means that you can make selections using shift and ctrl, instead of just selecting a row at a time [22:34] you can pick between one item, continous ranges of items, or extended [22:34] oh, nice [22:34] when using qtcreator 2.0 to find the .h file first click on edit totally left [22:34] the other options lets the user toggle selected or not by clicking items, or disable selections [22:34] since design mode does not shows the file list :) [22:34] acemo: aha [22:34] acemo: sounds like an improvement, that panel tends to eat quite alot of screen [22:35] when you are in widget.h, you can see the line Ui::Widget *ui [22:35] e8johan: indeed, huge improvement [22:35] that refers to the design that you just created [22:35] all the widgets are available through the ui variable [22:36] just an important tip - as we will move between the header and source file quite often - simply press F4 to do that [22:36] so trying that shortcut, you can go to widget.cpp [22:36] in the constructor (i.e. the Widget::Widget function for the C user out there) you can see ui->setupUi being called [22:36] that creates all the widgets that you just designed [22:37] now for the signals and slots part! [22:37] @_@ [22:37] \o/ [22:37] :-) [22:37] signals and slots is really what makes Qt tick [22:37] :-)) [22:37] * Quintasan used to define all widgets within constructor [22:37] it really helps creating reusable code [22:37] Quintasan: this way, you still do, but you let Designer generate the code :-) [22:37] * txwikinger wonders where to put the unit tests first :) [22:38] e8johan: indeed it does, signals and slots help you save loads of code and headache's [22:38] basically, signals are emitted when interesting stuff happens [22:38] txwikinger: you need to separate ui from logic :-) [22:38] interesting stuff can be buttons being clicked, sliders moved, etc [22:38] they are kind of like events, but at a higher level [22:38] (events are more mouse moved, key pressed, etc) [22:39] signals are always emitted by widgets, but to have something happen, you need to create a slot and connect it to signals [22:39] you can create any number of signals to a slot, and any number of slots to a signal, etc [22:39] but, let's focus on the practical side of things [22:39] jumping back to widget.h (remember f4) [22:40] add a section called private slots: [22:40] signals and slots are a bit like the Observable pattern, when something interesting happens with the observable you get informed if you want [22:40] acemo: yes, that is basically what it is, and all QObjects can have observers connected to them [22:40] in that section, add a function declaration for void addClicked() [22:40] e.g: [22:40] private slots: [22:40] void addClicked(); [22:41] does everyone feel comfortable adding a section and a function declaration? [22:41] e8johan: Q_OBJECT <--- tutorials define this as some magic, where can I read what it does? [22:41] Yep [22:41] yep [22:41] So far so good :P [22:41] Quintasan: Q_OBJECT does define the magic that ties all this together, I'll give you a link after this session (remind me - I'm forgetful) [22:42] ;-) [22:42] Quintasan: that enables the signals and slots, and some other stuff [22:42] so, lets move back to widget.cpp [22:42] now implement the same function, i.e. void Widget::addClicked() [22:42] { [22:42] } [22:42] Yeah, I've looked at what it adds back when I did the tutorials... [22:43] just to make sure that our connection works, let's just add the line qDebug("Hello"); in the function body [22:43] (qDebug is a bit like printf, but adds \n on its own initiaitve) [22:43] now, in the c'tor, under the setupUi call, let's make the connection [22:43] e8johan: i'm used to using qDebug as a cout replacement: qDebug() << "Hello"; [22:43] connect(ui->addButton, SIGNAL(clicked()), this, SLOT(addClicked())); [22:44] running the application after this should give you the text Hello each time you click the add button [22:44] Just for clarity both the section and the function get defined in the widget class? [22:44] tsvi: yes [22:44] clarifying about tsvi's question, add the section to the Widget class [22:45] slots can be defined as private, protected or public and can be considered ordinary functions [22:45] it is perfectly ok to call a slot as any other function [22:45] the "slots" keyword is just a marker for Qt [22:45] did anyone have any problems creating the connection? [22:45] Works here [22:45] no, all ok [22:46] if you do, you will get the error message at run-time [22:46] auto-completion is awesome [22:46] great! [22:46] so, let's add some real code to that slot [22:46] first, go to the top of widget.cpp and add an include for QInputDialog [22:46] notice the caps and no ending .h [22:46] Qt wants to play at the same level as stl :_) [22:47] the QInputDialog is a class that lets us request basic user input without too much work [22:47] in the addClicked slot, start with: [22:47] Quintasan: http://doc.trolltech.com/main-snapshot/metaobjects.html <- about "the magic" [22:47] QString text = QInputDialog::getText(this, "Enter Text", "Text to add:"); [22:48] apachelogger: thanks [22:48] (also, remember to remove the qDebug line) [22:48] apachelogger: thanks, one more memory slot freed in this end :-) [22:48] running fine [22:48] :) [22:48] the QString class is Qt's string class [22:48] full unicode, implicit sharing (read efficient and fast) [22:48] it can also tell the difference between an empty string and no string [22:49] if the input dialog is closed through cancel, we get no string [22:49] while the user can still input an empty string and click ok [22:49] we check this through the isNull method [22:49] if(!text.isNull()) [22:49] then we add the text [22:50] ui->listWidget->addItem(text); [22:50] running the app now should mean that you can add items to the list [22:50] common operations are often available as slots [22:50] for example, clearing a list [22:51] returing to the c'tor, add another connection [22:51] connect(ui->clearButton, SIGNAL(clicked()), ui->listWidget, SLOT(clear())); [22:51] now you can clear the list as well [22:51] notice that the button can be connected to either our custom Widget, or a QListWidget - the button does not care [22:51] that is part of the greatness of signals and slots [22:52] now, the only button left is the delete button [22:52] e8johan: clear() is defined by Qt headers? [22:52] Quintasan: yes [22:52] nic [22:52] +e [22:52] if you press F1 while standing on ui->listWidget, you get the docs [22:52] scroll down to public slots and you'll find it [22:52] Quintasan: clear() is a slot just like the add one we just made, but on the QListWidget class [22:53] for the delete button we will need two slots [22:53] one for the deleting, and one for enabling and disabling it [22:53] it makes no sense to have it enabled when no items are selected [22:53] f1 to the header and add the following slots to the private slots section [22:54] void deleteClicked(); [22:54] void updateDeleteEnabled(); [22:54] then jump back to the widget.cpp and add empty function bodies for the two [22:54] u mean f4 to the header [22:54] f4 to the header, yes, add them then f4 back to the cpp [22:55] oh - wrote f1... sorry [22:55] it is getting late here :-) [22:55] e8johan: i was thinking what has the documentation to do with adding my own code :p... yep late here aswell [22:55] in the c'tor, make the following connections [22:55] connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteClicked())); [22:55] connect(ui->listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(updateDeleteEnabled())); [22:55] acemo: lol [22:56] the idea of the updateDeleteEnabled slot is to update the enabled state of the deleteButton [22:56] e8johan: according to what we change the member aka 3rd parameter? [22:56] depending on what is selected [22:56] angelus85: pardon? [22:57] e8johan: the 3rd parameter of connect [22:57] [libqapt] jmthomas * 1147328 * trunk/playground/libs/libqapt/src/ (backend.cpp backend.h) Some changes necessary for filtering by origin support in muon [22:57] i see it changed [22:57] angleus85: when did it change? it is this for all except clear, where it is ui->listWidget [22:57] sometimes it was this and some others it was ui->listWidget [22:58] ah, ok, the 3rd argument is the object that has the slot [22:58] the 3rd parameter defines which object to connect to [22:58] [muon] jmthomas * 1147329 * trunk/playground/sysadmin/muon/src/ (7 files in 2 dirs) "Filter by Origin" support, complete with human-readable repository names. [22:58] we implement all slots except clear [22:58] the 4th being the slot name [22:58] clear is implemented by the QListWidget itself, so then we need to connect the signal to it instead of "this" (i.e. Widget) [22:59] back to updatedeleteEnabled, the connection calls it upon change [22:59] but we need to call it once at the start, just to get everything right from the start [22:59] so add a call to is in the c'tor after the connections [22:59] Riddell: will be also be using the new font in kde? [23:00] (this shows how you can call a slot as a function - it just works because it is simply a function) [23:00] so, let's follow that trail and go to the implementation of updateDeleteEnabled [23:00] we can query how many items are selected through ui->listWidget->selectedItems().count() [23:00] so, let's add the following lines [23:00] if(ui->listWidget->selectedItems().count() == 0) [23:00] ui->deleteButton->setEnabled(false); [23:00] else [23:00] ui->deleteButton->setEnabled(true); [23:01] this should enable and disable the button as needed [23:01] then, all that is left is the deleteClicked implementation [23:02] we can get all the selectedItems from the list widget [23:02] the beautiful thing is that all items are objects, and if we delete the object, it automagically keeps the list widget updated on this [23:02] so, all we need to do is get them and delete them [23:02] (this also updates the selection, handing the enabled state of the delete button for us) [23:03] so, in the deleteClicked slot, start by adding the following line [23:03] QList items = ui->listWidget->selectedItems(); [23:03] now we kind of left C territory with templates [23:03] QList creates a list of QListWidgetItem pointers [23:04] that list, items, is initialized to contain all the selectedItems of the listWidget [23:04] QList is one of Qt's collections [23:05] it is the most common to use - there is QVector (quicker indexed lookup, slow insert) and QLinkedList (quick insert, slow indexed lookup) as well [23:05] to iterate over the QList, items, we use the Qt macro for each [23:05] foreach(QListWidgetItem *item, items) [23:05] this is equivalent to setting up a for loop and having item going over all items of the list [23:06] now, all that is left is to delete the items one by one, i.e. [23:06] ohh, great! [23:06] delete item; [23:06] i didn't knew about that macro yet [23:06] qt looking really cute [23:06] acemo: that macro is really great - compared to iterators and whatnot [23:06] tsvi: you don't pronounce Qt as cute for nothing ;) [23:06] there is a forever as well - but that has more limited use :-) [23:07] foreach(QListWidgetItem *item, items) [23:07] e8johan: If We weren't done with this school project, i'd go and replace like 150 iterators :p [23:07] I get ton of errors on this [23:07] forever is a while true? [23:07] having added these lines of code, you should now have a trivial but working application [23:07] Quintasan: which is the first error? [23:07] hmm [23:07] copypasta did the work [23:08] :-) [23:08] if you do run into issues, try comparing your code to the code at http://www.thelins.se/johan/blog/resources/project-source-kubuntu-tutorial-day/ [23:08] that is the cheat sheet :-) [23:08] It worked [23:08] also, for the docs, try http://doc.qt.nokia.com/latest [23:08] tsvi: congratulations! [23:09] no fun with comparing code, experimenting ftw! [23:09] very well [23:09] Haha, works here as well [23:09] in the Qt docs you will find a link "Overviews" at the top, that is a great starting point [23:09] then I ran into this the other day: http://qt.nokia.com/developer/learning/online/training/modules [23:09] I've not looked at them yet, but I'm told that they're good [23:10] now you all have something that works, it seems, and if you attended the previous session, you can also package it [23:10] works like a charm :) [23:10] so now there are really no excuses to get coding and contributing :-) [23:10] \o/ [23:10] did i miss something or should we have the foreach loop empty? [23:11] looking at the schedule - it also looks as if you have trouble, the next session is the one for you :-D [23:11] no excuse, perfectly [23:11] thanks very much e8johan [23:11] ohhh delete item; [23:11] ofcourse :) [23:11] thanks e8johan! [23:11] you can also purchase a copy of Foundations of Qt Development available in all good book shops [23:11] if you do get in trouble, or need other Qt help, you know who I am :-) [23:11] Thank's e8johan :-) [23:11] Thanks e8johan! [23:12] e8johan: when you new book for? [23:12] thanks e8johan! [23:12] Thanks for listening - it was fun! [23:12] by [23:12] jgeact: not sure... [23:12] Johan Thelin [23:12] e8johan: I came late, will this transcript be posted somewhere? [23:12] maxwellian: yes we'll put it on the wiki page [23:12] and , do you like QtCreator? [23:12] * matrixx *claps hands* [23:12] https://wiki.kubuntu.org/KubuntuTutorialsDay [23:12] e8johan: thanks a world :) [23:12] thanks alot e8johan, i'll think about getting your book ^^ since you managed to learn me something new in a basic tutorial.. :) [23:12] in a couple of minutes we'll start txwikinger's session on beastie hunting [23:12] jgeact: more and more, it is growing on me [23:12] Riddell: Thanks, I'm using Ubuntu but this looked like great info. Thanks for the link. [23:13] * txwikinger is cleaning his screen from all those qt creator stuff :D [23:13] jgeact: I've always used a term + kate, so I'm not too religous about editors [23:13] Riddell: well, means there are no good book shops in Poland :D === AndIrc_24 is now known as cmagina [23:13] thank you [23:15] next up... [23:15] txwikinger is going to talk to us about handing beasties [23:16] txwikinger is one of our best Kubuntu developers [23:16] go ahead txwikinger [23:16] thanks Riddell [23:16] ok folks.. everybody still fresh for looking for bugs after these exciting sessions about qt ? [23:17] \o/ [23:17] I will talk a little about our process dealing with bugs in launchpad [23:18] Most of the process is the same for all packages in our repos [23:18] So it does not matter if it is a KDE package or something else [23:19] However, for KDE packages we often don't even get in contact with the bugs if they are send straight to the KDE bug tracker [23:19] So the topic is === What is bug triage? === [23:19] The word triage comes from the French word trier which means sorting, sifting (see http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=triage) [23:20] Commonly it is used in the field of medicine, especially in the context of emergency rooms, disaster situations, basically when limited resources must be allocated to a high number of patients. [23:20] This in an analogy that also describes what we do with bug-reports. When they are submitted, they must be checked if the adhere to a certain standard, contain all the necessary information that they can be fixed and be sorted and classified in order to get the right "resource" to work on it. [23:20] In some way someone who triages bugs is something like a facilitator or arbitrator. You work with the reporter in order to retrieve as much information as possible. You also work with the developers for kubuntu and ubuntu as well as upstream distributions like KDE and debian and others in providing the information or finding out what information is needed. [23:21] Due to the fact that all of this concerns people it is very important that bug triage is done with a lot of patience and humility. There are sometimes different interests that need to be mitigated when decisions are made, and it is always the best to be as polite as possible to everybody around (see also Ubuntu CoC https://launchpad.net/codeofconduct/1.0.1) [23:21] or which ever CoC is active .. I think we actually have a newer one now [23:21] The bug triage happens on launchpad https://bugs.launchpad.net/ In order to be able to triage bugs effectively, you must have an account on launchpad. [23:22] === There are different elements to triaging bugs === [23:22] ==== 1) Cleaning up bug reports: ==== [23:22] Bugs are often submitted by reporters that do not understand fully the process. On the other hand, the people working with the bugs need efficient access to the information. Therefore it can be very important to clean up the bugs summary to soemthing that is meaningful that in a list of reports someone already understand the main issue of every report in the list. [23:22] It can also be helpful if certain important information is added to the description of the report, since this is the first thing after the summary one would read. [23:24] Let's look at this bug https://bugs.edge.launchpad.net/kubuntu-ppa/+bug/599175 [23:24] Launchpad bug 599175 in Kubuntu PPA "Amarok doesn't save my layout configuration" [Undecided,New] [23:24] amarok has bugs? [23:24] :D [23:25] Nightrose: you promised it had none! [23:25] Well.. someone seems to think so [23:25] However, if you look at this report, you see it is not really actionable [23:25] It does not give any information about the release of amarok, or Kubuntu [23:26] It does not explain very detailed what has been done to create the issue [23:26] It explains a little bit the expected result [23:27] In this case, we could start to clean up the report by reproducing the issue ourselves and filling in the gaps [23:27] or we can ask the report to collect more information [23:27] ==== 1) Cleaning up bug reports: ==== [23:27] sorry [23:27] ==== 2) Colleting more information in order to be able to triage and/or reproduce and fix a bug ==== [23:28] This is in my opinion the most important step of bug triage. In an ideal world, a bug report has a description that allows anybody following it to immediately reproduce the bug. That is not always possible, but a good target. It is good practice to see if the description given is sufficient to reproduce or see the problem and if necessary add additional information if the problem is found. [23:28] If you look at https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/102979/comments/2, I had gone through the steps in the description and found actually a workaround for the problem. I have added this information and confirmed that there is really a problem, that anybody can reproduce. [23:28] Launchpad bug 102979 in ubiquity (Ubuntu) "[kde-ui] next button does not respond to keyboard (dup-of: 46600)" [Low,Triaged] [23:28] Launchpad bug 46600 in ubiquity (Ubuntu) "cannot select `continue' with keyboard in kde" [Medium,Triaged] [23:29] Since there was a workaround, I also added it to the main information https://bugs.edge.launchpad.net/ubuntu/+source/ubiquity/+bug/102979 [23:30] Launchpad bug 102979 in ubiquity (Ubuntu) "[kde-ui] next button does not respond to keyboard (dup-of: 46600)" [Low,Triaged] [23:30] Launchpad bug 46600 in ubiquity (Ubuntu) "cannot select `continue' with keyboard in kde" [Medium,Triaged] [23:30] This allows others to now work with the issue while it is solved, and the developers haev more information that they can fix the problem [23:30] Often this steps includes to ask the right questions to the submitter that allows them to give more accurate information that is needed. [23:31] And we actually have a list of standard reponses which can be used to ask the reporter for more information [23:31] ==== 3) Sorting tasks. ==== [23:32] ===== 3a) Assigning the report to the right package ===== [23:32] Often bug reporters do not know which package contains the program they have found a problem in [23:33] they either choose a wrong packages or don't give any package [23:33] Therefore, an important part of the sorting of the reports is to assign them to the right package. This allows the right people to look at the bugs. Here are good instructions on how to find the right package to assign a bug to: [23:33] https://wiki.ubuntu.com/Bugs/FindRightPackage [23:34] ===== 3b) Entering the correct status: ===== [23:35] https://wiki.ubuntu.com/Bugs/CommonTasks#Setting Status gives an overwiew of the different states a report can have. For the triage, the essential states are New, Incomplete, Confirmed and Invalid. [23:35] well.. unfortunately the wiki link inside the page does not work correctly here [23:35] it is section 9 on the page [23:36] It is important to make sure that the status of any report is set correctly because this is one of the most important filter criteria for people working on bugs [23:36] Every report start with the state New. When somebody starts to triage it and more information is necessary it will be set in the state incomplete until all the information is in the report. [23:37] Wenn information is missing like in the amarok bug before, the status would be set to incomplete [23:37] When all the information is in the report and the bug can be reproduced it will be set to the state Confirmed. [23:38] Or if the triager is part of the bughelper team, it would be set to triaged [23:38] so anyone can set confirmed but only elite people can set it to triaged? [23:39] only people who have gone through the mentorship program for the bugsquad can set the status to triaged [23:40] or people in (k)ubuntu-dev? [23:40] however, it is not very difficult to be accepted there, we just want to make sure that people know the policies and have read the relevant wiki pages [23:40] yes developers have the access too AFAIK [23:41] However, something very important, reporters should not set their own reports to confirmed or triaged in most cases [23:41] This forces a second pair of eyes to look over the issue and maybe weed out odd issues in one particular installation [23:42] A lot of reports will turn out either not to be bugs, or it is impossible to collect the necessary information that the report has a positive effect, i.e really helps to solve a problem. Sometimes reporters will not respond for request for the information needed, and it is not feasible or possible to recreate it yourself. In these cases the state will be changed to invalid. [23:42] With all those state changes always keep in mind the consequences. We do not want to unnecessarily mark reports invalid because of laziness. A report might contain crucial information to solve a problem, sometimes not understood to the person that triages it. Therefore, we do not close report lightly in this way. We always want to make sure the report has all the necessary information to be set for the next state. [23:43] If you find that a bug actually has been fixed in a current release it would be set to fixed released [23:44] however, most bugs are set automatically to this state when they are mentioned in the changelog that is uploaded with the new package [23:44] ==== 4) Duplicates ==== [23:44] While reporters are encouraged to first look for similar or identical problems in the bug tracker, it is inevidable that we get a lot of duplicate reports. Therefore a very important step during the information collection is to see if there is already another report. If this is the case, the report is linked to the original report [23:45] more info is at https://wiki.ubuntu.com/Bugs/CommonTasks#Duplicates [23:45] txwikinger: the team that can set triaged is BugControl [23:45] maco: yes that is right [23:46] looking for duplicates is very important in the bug triage process [23:47] because it helps to connect all the information together that is needed to solve a problem, and prevents duplicate efforts [23:47] ==== 5) Upstream reports: ==== [23:47] This is also in particular important for KDE packages, but is very good practice in general [23:47] Often we will deal with issues that are problems in upstream packages. We are working very close with the upstream distros and it is a mutual benefit for everybody to get bug fixes introduced as high upstream as possible. For Kubuntu, KDE is in particular of interest. Here is an example of this https://bugs.launchpad.net/kdebase/+bug/96151 [23:47] Launchpad bug 96151 in KDE Base "kcmclock does not change to correct location" [Unknown,Fix released] [23:48] In such cases you either find an already existing report in the upstream bugtracker and add it to the report, or you create a new report in the upstream bug tracker and add that one. Here are the instructions how to do this https://wiki.ubuntu.com/Bugs/HowToTriage#head-ab0eb9d7731fa877b5fc866eedc4c312dab50ee7 [23:48] Basically you choose the upstream project (KDE in this case) an add the url to the particular bug in their tracker. LP will then update periodically the state of the report in the upstream tracker. [23:49] ==== 6) Standard Responses ==== [23:49] One thing that helps a lot, especially to maintain a polite and collaborative atmosphere are standard responses that can be adjusted to the particular situation. [23:49] Here are lots of such responses for various situations: https://wiki.ubuntu.com/Bugs/Responses [23:51] Usually 90% of all bugs looked at for instance bug days can be dealt with with any of those standard responses [23:51] ==== 7) Support Requests ==== [23:51] Sometimes bug reports turn out to be really support requests. Reporters should be gently nudged to the support tracker in launchpad. It is certainly beneficial if inexperienced users are guided by the people that help to support them to filter out all the issues that are not really bugs. It is very easy to create a bug report linked to an existing question if it turns out to be such. [23:52] It is the button/link on the top right side "Convert to a question" [23:53] This makes the issue available at https://answers.launchpad.net/ubuntu/ [23:53] Similarily, people who answer such questions can convert a question into a bug if this should be necessary [23:53] ==== 8) Bug Days ==== [23:54] We have currently, weekly bug days where there is special focus on a particular class of bugs. Information can be found here: https://wiki.ubuntu.com/UbuntuBugDay [23:54] are bug days always on the same day of the week? [23:55] Yes currently the ubuntu Bug day is Thursdays [23:55] https://wiki.ubuntu.com/UbuntuBugDay/20100708 [23:55] this is the next day - tomorrow [23:55] I also will as often as I get to it provide a more Kubuntu focus Bug Day on Mondays [23:56] So Monday 12th should be the next one for that [23:56] The bug days are also announced in different mailing lists and I believe in the UWN [23:56] If there are requests for which packages need some love in this way, please feel free to contact me with it [23:57] ==== 9) The IRC channel: #ubuntu-bugs ==== [23:57] The main channel to find help or other folks working on bugs is the channel above [23:58] We have also a Kubuntu channel at #kubuntu-bugs [23:58] and there are some other channels too, for instance the German Kubuntu team has a channel at #kubuntu-de-bugs [23:59] For people who like to work a little bit on bugs every day, there is a five bugs a day effort