Could you please move the QSettings::setValue() call to QgsOptions? I think it belongs there... a function like this should not has such side effect.

Also, it would be good to change qDebug() calls to QgsDebugMsg() as the latter one comes from our logging framework...