Monday, February 05, 2007

Guest blog!

So I'm playing at being a real blog writer, and having a guest blogger for this post. I guess Kurt Pfeifle needs no introduction, but here's some relevant info:

Kurt is a long-time KDE contributor, and living proof that you don't have to be a coder to have a real effect in improving KDE. He does a lot of work on the KDE Print system (just take a look at all the whatsthis help in the printing dialog), and has recently done a lot of work triaging kdeprint bug reports. He's currently working on the notorious problems with producing PDFs from KDE applications.

I need a bit of help from some Qt or KDE developer guru.

Here is the problem: an unknown-to-me (and escaping-my-tracing-attempts) process keeps writing into my qtrc setting file(s) one specific key value that I want to remain unchanged. I want it to remain "embedFonts=false" as long as *I* tell it so; but some alien thing reverts it to "embedFonts=true" after each and every time I printed something.

Here some more details about my qtrc problem.

I know of 2 GUI applications that write this specific setting, when a certain checkbox is enabled:

  • "kaddprinterwizard --kdeconfig"; select "Fonts"; enable "Embed fonts in PostScript data when printing"

  • "qtconfig"; select the "Printer" tab; activate "Enable Font Embedding"

The button "System Options" in kprinter does also start this same dialog ("kaddprinterwizard --kdeconfig".)

Here is what I do:

  • open a KWord document

  • start the print dialog

  • click button "System Options" (i.o.w.: "kaddprinterwizard --kdeconfig")

  • make sure fonts are *not* embedded; confirm

  • select the "Print to file (PDF)" printer

  • print it

Here is what happens:

  • Next time I want to print...

  • ...I start the print dialog...

  • ...I click button "System Options" (i.o.w.: "kaddprinterwizard --kdeconfig")...

  • ...and annoyingly, I find that in the meantime, font embedding has magically been re-enabled!

The file qtrc comes in different incarnations:

  • /etc/X11/qtrc (for system-level settings). This one is used, when root runs "qtconfig".

  • $HOME/.qt/qtrc (for user-level settings). This one is used, when user runs "qtconfig" or "kaddprinterwizard --kdeconfig".

I assume, the settings in $HOME/.qt/qtrc should override settings of the /etc/X11/qtrc file for a user.

I verified that my clicking/confirming the change in the KDEPrint GUI does indeed write into the qtrc file momentarily. But as I said, this gets again reverted by another process. I also manually edited the system-wide /etc/X11/qtrc file and made sure it had "embedFonts=false" when I saved it. The above described behavior still remained unchanged, and even that system wide /etc/X11/qtrc file got reset!

I don't know who or what does mess with my qtrc file(s) and who or what resets my configuration to something I do not want for now.

For now, as a temporary workaround, I have changed permissions to all qtrc files found on my system to "0444" (read-only for user, group and others). This now ensures that my darn "embedFonts=false" entry remains stable; but this hack obviously is not exactly what the doctor ordered, and may lead to other problems on other corners of the system which I currently am not aware of....

So here are my questions to you:

  • Does this happen on your system too? (Mine is a SUSE-10.0 with qt3-3.3.7-9.3 and KDE 3.5.5, *and* libqt4-4.2.2-2.1 *and* libqt4-qt3support-4.2.2-2.1... but in any case, Qt4 doesn't seem to use a qtrc file any more.)

  • How can I find out who/what is re-setting the qtrc file behind my back?

  • How do I get rid of that behavior???


At 3:03 PM, Blogger Robert said...

Seemingly a SuSE thing -- on my Gentoo box running KDE 3.5.6 and koffice-1.6, unchecking the font box KEEPS it off.


Post a Comment

<< Home