Updated - doesn't work perfectly because of qt4's broken moc, though :(