Version: (using KDE KDE 3.5.5) Installed from: SuSE RPMs When I start kprinter, it comes up 2860 pixels wide and and 538 pixels high. It cannot be resized to some smaller width, resizing to another height is possible. Almost all interesting parts of kprinter, e.g. the print button, fall of my monitor on its right side into all the garbage already there. :) This is the version as delivered in the OpenSUSE KDE update repositories for 10.2.
Do you have some printer with particularly long name?
No, not that I know. Just the defaults like Mail, PS, PDF and FAX in the lower part of the printer combo box. And then our printers from a SUSE 10.0 CUPS server. Those printers are the same since months and the kprinter dialog shows up properly on 10.0 systems with kprinter from kdebase3-3.5.5-17.1, whereas on the system with the SUSE 10.2 we have kdebase3-3.5.5-125.2. But I think I found the reason. It's the text "CUPS (Common Unix Print System)" displayed in the selection for the print system to be used in either kprinter or the print manager. The print manager (kcmshell kde-printers.desktop) shows exactly the same behaviour, but only when selecting CUPS. When I e.g. switch to "lpr/lprng" I suddenly can resize the kprinter or printer manager window to smaller widths. This seems to be independant from the language beeing used, I tried US-English and German.
One should more closely to what's displayed! The real problem seems to be the name of the CUPS server shown just below the selected printing system. On my home machine it displays "localhost: %2" and at the company this is "cups.ourdomain.de: %2" when using CUPS. There seems to be something wrong with the port number display.
Same behaviour here. openSUSE 10.2, KDE 3.5.5 (installed from openSUSE rpms), CUPS-Server on a SuSE 10.1 box
The fact that you can't resize down the window is due to some minimal size computed for the dialog. This minimal size is automatically computed, based on the dialog's content. So the question is: what control (label, combobox...) requires so much space to show? "localhost: %2" doesn't seem so long (although there seems to be a problem in the port number display). Can you find any control in the dialog (be sure to expand it) that would requires an unexpected large width?
As said before. The only difference I can see when I switch between CUPS and lpr/lprng ist a few more tabs ("Advanced Options" and "Additional Tags") in the container above the print system selection and the "<server>:%2". One of those tabs could contain elements that stretch these panels, but how do I find out what element stretches the size? It could be the "value" column of the additional tags, but how do I find out? The listed printers are the same when I switch printing systems. The selection button of the selection "CUPS" vs. "lpr/lprng" has different widths. When I select "CUPS" this text field almost goes from the complete left to the right. When I select "lpr/lprng" and manually stretch kprinter I get a filler between "Print system currently used:" and the left edge, when I select CUPS this label is at the complete left edge and the button "CUPS ..." fills the complete rest of the width of kprinter. I'll attach two PNG's showing the difference.
Created attachment 19003 [details] kprinter, CUPS selected
Created attachment 19004 [details] kprinter, lpr/lprng selected
Can you check the CUPS server name (use "System Options" button)? Is there any spaces/tabs in front of it?
Sorry, neither in the text field of the system options "Cups Server"->"Host", nor inside ~/.kde/.../kdeprintrc in the line "Host=localhost". But of course, as you can see it in the attached PNG *between* the text fields "Server:" and "localhost:%2". But those can simply be caused by the layout manager. I downloaded the sources, once the SVN branch 3.5, once the source RPM. I'll start with the source RPM. When looking over the sources I was wondering about kdelibs/kdeprint/cups/kmcupsmanager.cpp KMCupsManager::stateInformation(). There is one call to AString::arg with two parameters. CupsInfos::port() returns an int, therefore the version QString::arg(const QString &a, int fieldWidth) const must be called. Could this be the reason for the problem? Probably port() returned QSTring in previous versions?
Yes, the function KMCupsManager::stateInformation() must be the reason for the problem. When I temporarily switch to a small port number, e.g. 20, everything looks good.
Thanks a lot for the excellent debugging. I will make up a patch as soon as I get 2 minutes.
The bug is introduced by the patch cups-only-accepts-localhost-ipp.diff of the kdelibs3 source RPM as located on the OpenSUSE repository servers. The SVN versions of KDE do not seem to have that problem.
Exactly. It's taking forever to download the src.rpm here and I'm 15 minutes before going to work. Please consider wrapping the second attribute in a call of .arg() for itself and rebuild the src.rpm. You might want to ping the openSUSE people (notably the maintainer of the kdelibs rpm) for this annoying slip in their package. I will close this bug report, since it's not a problem with KDE sources. Thanks a lot for your excellent debugging.
*** Bug 139516 has been marked as a duplicate of this bug. ***
*** Bug 139866 has been marked as a duplicate of this bug. ***
Closing old Resolved status bug.