espenr
Qt
Posted by espenr
 in Qt
 on Wednesday, February 27, 2008 @ 20:36

So the Qt 4.4.0 beta is finally out, and on that occation we’re also launching the port of Qt for Windows CE. The chosen launch location is Embedded World 2008 down in beautiful Nürnberg (Germany).

Download Qt for Windows CE from here:

We´ve had lots of people over to our booth on Embedded World and there’s never been a quiet moment. People are generally impressed with the cross-platform nature of Qt, and especially that it also extends to embedded devices. As you probably know Qt is supported on Windows, Linux/Unix and Max OSX as well as embedded Linux, and now also Windows CE (including Windows Mobile).

I’d like to congratulate the creators of Qt for Windows CE with a job (almost finished now) well done:

  • Thomas Hartmann
  • Jörg Bornemann
  • Maurice Kalinowski
  • Marius Storm-Olsen (Qt3 port)

…and say that it’s a pleasure to present the fruits of our labors after over a year of focused development :D (I’m sure Maurice agrees). Cheers guys, and I’ll see you at the cabin trip this weekend.

So here is a small video of “live” footage from Embedded World today:


If you’re stopping by Embedded World tomorrow, I’m having a talk at 14:40 in hall 11. I’ll go through an introduction on using Qt for Windows CE.

So, thanks for now and I hope you enjoy the video AND the release. Don’t be shy. If you’ve got any feedback or problems, just subscribe to the preview list by sending a mail with subject: subscribe to qtce-preview-feedback-subscribe@trolltech.com and start asking questions.

I have a video of Qt runnin on an HTC Touch compared to Qt running on an OpenMoko NEO1973. I’ll put it up next week I promise!

Benjamin Meyer
Qt
KDE
Posted by Benjamin Meyer
 in Qt, KDE
 on Tuesday, February 26, 2008 @ 12:25

One small feature that I have wanted Qt to have when writing applications was a way to get some common directories. Where is the desktop, the music directory, or even the location where I should store my data files? On Mac, Windows and Linux these have always been different. A big problem in adding this feature has been Linux with the lack of any sort of standard, but this past year with the xdg-user-dirs spec released and with distributions like Ubuntu and others adopting it I decided it was a good time to revisit the problem. In Qt 4.4 QDesktopServices got a new function, storageLocation that returns the default system directory where files of a certain type belong. The currently supported types are: Desktop, Documents, Fonts, Applications, Music, Movies, Pictures, Temp, Home, and Data. Note that storage location can return an empty string or even a directory that currently doesn’t exists such as where the Music directory should be, but the user deleted it.

In a media player you could set the initial directory of the file dialog to open the music directory.

    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                     QDesktopServices::storageLocation(QDesktopServices::MusicLocation),
                                                     tr("Media Files (*.ogg *.mp3 *.flac *.wav)"));

Or when looking to store some application data, say palettes for an image editor.

    QString directory = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
    // embedded platforms currently don't define this location and you don't want to write to /foo
    if (directory.isEmpty())
        directory = QDir::homePath() + "/." + QCoreApplication::applicationName();
    // the first time I am saving data
    if (!QFile::exists(directory)) {
        QDir dir;
        dir.mkpath(directory);
    }
    // save my data
    QFile file(directory + "/custompalettes.dat");
    ...
Benjamin Meyer
Qt
KDE
Posted by Benjamin Meyer
 in Qt, KDE
 on Friday, February 22, 2008 @ 13:46

Finishing off IPC features in 4.4, two small classes that have been added are QLocalServer and QLocalSocket. On Windows this is a named pipe and on Unix this is a local domain socket. The API is almost identical to QAbstractSocket so switching from a local socket to a tcp socket and vice versa is very easy if you want to. For those KDE applications that are currently using KLocalServer/KLocalSocket with minor function name changes most of them should be able to switch and then they will get another feature working on Windows. If you have a Qt 4.4 snapshot in the examples/ipc/ directory you will find two new examples that are ports of the fortune server and client.
qlocalserversocket.png

Kent
Labs
Qt Script Debug
Posted by Kent
 in Labs, Qt Script Debug
 on Friday, February 22, 2008 @ 10:19

Announcing a new project on Trolltech Labs: Qt Script Debug. This is a collection of classes and tools that add debugging capabilities to applications that use Qt Script (Qt 4.4+ is needed). Embedding a debugger directly into an application can be done like this:

QScriptEmbeddedDebugger debugger;
debugger.attachTo(/* Pointer to your QScriptEngine goes here*/);

Then just go on with your business as usual. When one of your scripts triggers an uncaught exception, a window like this will pop up. The debugger also adds a qs_break() function to your engine, so you can call that function from a script to bring up the debugger at a specific location. See the docs and examples (in particular the calculator_embed example) for details. For the graphically challenged, there’s a gdb-like debugger available.

One nice thing about the API is that it supports (actually, it’s designed for) out-of-process/remote debugging. This screenshot shows the stand-alone debugger running on a MacBook, debugging an application running on my Linux box. :-D

Feedback and suggestions on debugging-related features and API you’d like to see for Qt Script are welcome. Happy debugging!

Simon
Qt
WebKit
Posted by Simon
 in Qt, WebKit
 on Monday, February 18, 2008 @ 10:53

Henrik recorded some cool videos showing off a bit of the integration of WebKit into Qt. The Quicktime videos are at the bottom of our QtWebKit announcement page, showing WebKit in designer, integrating Google maps into your Qt application or how to embed native widgets into HTML.

lorn
Qt
Qtopia
KDE
WebKit
Posted by lorn
 in Qt, Qtopia, KDE, WebKit
 on Sunday, February 17, 2008 @ 19:34

Lots has been happening downunder lately. Namely, summer has come and gone. Wasn’t too hot this year, but rained heaps. Causing my pitiful electric mower to die a horrible death on my back yard that was in some spots, a meter tall. Several lawn mowing services balked at the idea of mowing it, so I bit the big one, and bought a petrol mower. How I hate mowing grass, it goes against nature, is noisy and smelly. My daughter of almost 6 months has started sitting and somewhat getting some sort of locomotion going, although it usually ends up in tears, because she wants to just jump into the whole walking thing like her brother and everyone else does. My 2.5 year old son started painting. Luckily not on the walls, but on an easel.

On the Trolltech front, besides the whole Nokia thing, we released Qtopia 4.3.1 SDK for Neo. What better way to create software for Qtopia for your FIC Neo. It seems that OpenMoko have been slowly coming around to officially using Qtopia, in some sort.

Other than the SDK I have been busy preparing the Qtopia 4.4 webkit demonstration, that was at 3GSM, errr MWC. Cool things are possible with webkit in Qtopia. Although it is rather large, the sizes of flash memory can be quite large, and most phones now have huge amounts of space, classing them not in the embedded space any longer.

The Neuros OSD I have has some competition, as I bought an already-configured-for-Australian-use series 1, Oztivo’ified Tivo (thanks Ian!), (for research purposes, my dear wife!). Neuros really needs some scheduling information, they know it, and have put up a bounty
What I like about the Neuros OSD over the tivo is it’s size. The tivo is just huge, like a regular desktop box, and has cooling fans. The OSD has sexy curves, is sleek, glossy black and silent. Makes me want to lick it. Not to mention Neuros will be using Qt Embedded, errr Qtopia Core soon.

I feel bad about my old Sharp Zaurus 5000d’s. Gathering dust, or played with by my son, until he realizes they need charging. Perhaps I will charge them up…

Almost forgot to mention, I have been putting together a virtual keyboard for X11 using Qt. Based largely on kvkbd for kde, but reads the keys and keycodes from an xml file. It works too!

QVKeyboard snapshot

tsdogs, who is one of the HTC-linux guys (who have ported linux to HTC Universal phones and friends), recently gotten embeddedkonsole 4 to run on Qtopia 4. It’s named qterminal and I have put a qpk package for the Neo at qtopia.net. For those who think they need a terminal on their phone. The HTC-linux guys have done quite a lot to hack Linux onto these phones, although it needs to be run from an sd card. The sources can be found in the unofficial Qtopia git repository : git clone git://git.asheesh.org/qtopia_snapshot.git

Thomas Zander
KDE
News
Posted by Thomas Zander
 in KDE, News
 on Saturday, February 16, 2008 @ 13:47

Its been some time since my last blog; I’ve been quite busy and didn’t have a whole lot of time for KDE/KOffice and other fun things. I have been following Norwegian courses in the evenings and the little spare time I had left went to doing non-computer things. (Snowboarding is even more fun if its just an hour travel)
I’m slowly getting back to having time again for fun computer things, and I’ve been working out some ideas, among others a human-friendly front-end (not graphical for now) to Git.

One question I’ve had from several people was where they could actually find this Kids-Office stuff I blogged about a little while ago.
The thing is; KOffice2 is very modular and you can take away the default dialogs and dock-widgets and enable alternatives on a per-user basis.
In practice this means that if you have run any alpha version of KOffice you would have already had the kids-office components on your computer, just not on screen.
So, here the 3 step list of how to turn your KWord into a kids-friendly-KWord;
1) Start KWord from a KOffice2-alpha release (or current svn).
2) Go to the Settings menu, submenu ‘Dockers’ and disable all dockers.
3) In the same menu; enable the “Format” docker.

I am fully aware this is not really user-friendly and could do with some usability features. I’d love to have a kids-kword icon that started KWord with the above configuration. But, yeah, there are a lot of things I’d love to see ;)

I have not been the only one that has been off the web for some time; and I was very happy to get back in touch with Evangelia Berdou. She graduated late 2007 with, which to me is some successstory of how FOSS affects real lives. Some may recall that she conducted research a few years ago on certain aspects of KDE, including a survey of KDE e.V. members. Her thesis, which is titled: ‘Managing the bazaar: Commercialization and peripheral participation in mature, community-led F/OS projects’ is now available online. The thesis used GNOME and KDE as the primary case studies.
You can download a copy  either from the MIT F/OS paper repository (PDF) or from her website . The latter provides some more details on the overall context of the research. The chapter that presents the analysis of the data from the survey of the KDE e.V. members is Chapter 6.
I mostly read the paper some time ago, and I already realized how fast KDE moves, the research uses a lot of data that after the KDE4 cleanups are not really accurate anymore. I have the suspician that the core argumetns are not really affected by that, though. I understand she is really interested in hearing what the community thinks of her research.

I promise more coherent rambling for a next blog ;)

Comments Off
harald
Qt
KDE
Posted by harald
 in Qt, KDE
 on Wednesday, February 06, 2008 @ 20:27

Reading about Benjamin getting motivated to work on KDE on OS X got me motivated, too. So, one svn checkout later, I realized that before I can even start with KDE 4, I need a bunch of dependency libraries, which are obtainable from Finc or MacPorts. Since I’m not very patient (and low on disk space), I decided to do something about it.

A low hanging fruit is to remove the dependency on the image libraries (e.g. PNG, JPG, JPEG 2000, TIFF) and let OS X do the work. After a 2 days hack, I came up with a Qt Image IO plugin that uses Mac OS X’s ImageIO Framework (source code). It requires Qt >= 4.3 and probably OS X >= 10.5.

The plugin can load all image formats supported by OS X, including animated ones (e.g. animated GIFs), but doesn’t handle image properties yet. Once it matures, I can fix the CMake build scripts to stop looking for libpng and friends, and finally start configuring kdelibs on OS X :)

Andreas
Qt
KDE
Graphics View
Posted by Andreas
 in Qt, KDE, Graphics View
 on Tuesday, February 05, 2008 @ 22:27

I recently got a new embedded Linux device to decorate my desk. This is like my childhood dream. :-)) I’m incredibly happy to have the opportunity to work with such a range of awesome stuff at Trolltech. And working on embedded devices is like bringing me back to the days when I was hacking graphics demos on a home made 386 SX 33MHz with a CGA screen ;-) (INF). Here’s my new baby:

My Gumstix

It’s running a simple Graphics View demo app. I’m hereby dedicating my Creative Fridays to play around with this device, it’s actually great fun to see how fast you can make it go. And I must say, speaking as an open source developer, it pleases me to know how easy it is for anyone to get hooked up with one of these babies.

First, Brad and I went onto the Gumstix web site and ordered two LCD packs. This is a decent piece of embedded hardware: you get a 600MHz XScale CPU, with a 10/100MBit ethernet plug, USB and serial connectors, and a nice big 4.3″ touchscreen 18bit display, at around $450. Delivery was swift. Now Brad got his device up in no-time, but me being completely new to this game, I needed some help with getting the screws into the right spot. It took us 15 minutes (now that Brad had figured out how to connect the LCD ;-)).

My Gumstix 2

After assembling the device, we booted it up. It gave us the Linux console prompt out-of-the box, and immediately hooked onto the network/DHCP, so I had ssh access right away. Following the instructions on http://docwiki.gumstix.org/Buildroot I quickly got the basic setup for running cross compilation, and I installed some of the basic tools I need to have a decent console (e.g., bash). I installed my build root under ~/gumstix-buildroot, and added the bin dir of the cross compiler to my PATH:

export PATH=$HOME/gumstix-buildroot/build_arm_nofpu/staging_dir/bin:$PATH

Then I configured Qt 4.4 for Embedded Linux (ftp://ftp.trolltech.com/qt/snapshots gives you the free edition, Qtopia Core source packages). Turned out to be pretty straight forward. I created a qt-4.4 directory on my device in my user’s home dir, and configured Qt like this:

$ ./configure -release -embedded arm -no-webkit 
        -prefix /home/ahanssen/qt-4.4 -hostprefix   
        && make

Notice how I skipped webkit, you probably want to skip all the modules you aren’t planning to deploy on the device. Space counts :-).

After this, I copied the lib files onto the device, and copied an example over, and ran it on the host like this:

$ ./collidingmice -qws

That’s it! For Linux developers, working on a Gumstix device like this is really really fun. I strongly encourage more people to throw themselves into this game. These devices also come in boxed versions, with Wifi and GPS expansion boards, audio chipsets, and more.

Next step: I’m planning to get KDE4 and Plasma to run on this device. Oh yes. ;-)

Andreas
Uncategorized
Aggregated
Posted by Andreas
 in Uncategorized, Aggregated
 on Tuesday, February 05, 2008 @ 17:36

On my way home from work today, I somehow found myself in an awkward situation, laughing as I saw an elder man that I don’t know hit the ground with a thump. Didn’t look too serious, but it most certainly hurt, and it really made my day. Hehe! A wonderful sense of euphoria went through my body as I wondered whether or not I should flip a coin into the air towards this unfortunate fellow, for reasons that probably wouldn’t strike your average observer as being glaringly obvious (in contrary, for also-oh-so-unobvious reasons this might have been perceived as a very rude thing to do, but I don’t quite know why).

So it all started when I was humming and strolling through the streets, past the shops near where I live. Sometimes I enjoy looking at all the funny people around me, at the silly signs people put up outside their stores. I decided to take a trip into the indoor mall. As the weather is pretty harsh sometimes in this country (rain/snow/wind) the mall has this double set of automatic glass doors, mounted like the sluice in a shape ship, to make sure cold air doesn’t get in, and warm air doesn’t get out. So anyway. As I close in on these doors from the outside, I suddenly stop up, and realize that the doors open very slowly today. They’re set up at about half speed. Probably because weather has been bad. I think, “That’s funny, hehe”, and then I continue walking in once the doors are completely open.

Please Spare Some Change

Now, as I’m on my way out again after buying a bag of raisin buns, I see two teenage girls approaching from the outside, all poshed up and chatting like teenage girls do, and suddenly I hear a loud “Bang!” as one of the girls has managed to bang her forehaid on the door as she walked in. “Hehe,” I found myself bursting out aloud. Her reaction was to give me, and then the half-open door the evil eye before shouting “Fy F#¤N i H#”#¤e, er det muuulig!?” [*] And so her friend naturally immediately concurred, “Ja fy f#¤n er det mulig.”

This is truly the age where on one side of the street, your average lady is facing a closed door, and blinking her eyes, hoping that that’ll remove this funny obstruction which she hasn’t encountered before. The door, on its side, is presenting its knob as best it can, wishing it could just say “Here!!! it’s right here!! it’s a KNOB!! you can use it to open me!!”. Your average guy walks straight into the shop window (i.e., that glass thing with no handles, next to the door) BANG, and curses the heavens above, rubbing his forehead and rushing away. These people are angry and upset with a wooden board, or a sheet of glass, failing to meet with their absolute requirements of not being in the way. Ah, astonishing.

And so it happens. Within two seconds after the last girl had just caught her breath, the guy, a man whom I do not know, walks BANG right into the same half-open door. The door did not open (with the speed that he was expecting). His predicted trajectory intersected that of the door-which-moveth-too-slow. ;-) This was an underperforming lame excuse for an automatic door. And so, he fell backwards, dropped his two bags, and whammed into the ground, and of course, he too, cursed out loud, and angry.

And I laughed. I’m evil. I’m sorry. I laughed out loud. :-D

[*] The first girl’s outburst translates to “Oh, darn you bad devil from hell, is this not completely stupid, if at all possible?!?”. The other girl’s response would be something like “Yeah, I soo agree darn, you bad devil, it’s quite stupid, and not likely possible at all.” :-D Norwegian teenage cursing is great fun :-D.