Creating FileRef object from QString

Michael Pyne mpyne at purinchu.net
Sat Dec 5 22:29:08 CET 2009


On Saturday 05 December 2009 15:25:13 Plasty Grove wrote:
> That makes sense, but even the following doesn't work:
> 
> QString qstr = "/home/mydir/music/song.mp3";
> QByteArray qbArray = qstr.toLocal8Bit();
> const char* str = qbArray.constData();
> TagLib::FileRef tagFile(str);
> 
> In this case, I've got a local object which stores the value returned by
> toLocal8Bit() and which is in scope when I'm using str. Does qbArray get
> destroyed whenever constData() is called on it? When I'm debugging, I can
> still see str holding a value when it goes to the next step.

Perhaps an encoding issue if you don't use straight US-ASCII for your file 
names? In that case if "local8Bit" is not the encoding Taglib is expecting 
you'll get weirdness.

The KDE JuK music manager uses taglib and has TString/QString conversion code 
(and I'm sure Amarok has the same thing) if you want to see how those projects 
do it.

If it's not encoding I'm not sure what to try other than stepping through 
FileRef in the debugger to see where the logic goes astray.

Regards,
 - Michael Pyne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/taglib-devel/attachments/20091205/2eeda6b7/attachment.sig 


More information about the taglib-devel mailing list