|
Bugzilla – Full Text Bug Listing |
| Summary: | Too many wizard steps visible for some languages | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.0 | Reporter: | Michal Zugec <mzugec> |
| Component: | YaST2 | Assignee: | Stefan Hundhammer <shundhammer> |
| Status: | RESOLVED FIXED | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Normal | ||
| Priority: | P5 - None | ||
| Version: | Alpha 2 | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
correct UI
broken UI requested log file Test case screen shot from the test case screen shot after the fix |
||
|
Description
Michal Zugec
2007-12-05 09:28:21 UTC
Created attachment 185959 [details]
correct UI
Created attachment 185961 [details]
broken UI
Screenshots above are from VirtualBox but reproduced also in real machine (with different languages - strange). After I finish installation, I attach also YaST logs
Look at the wizard steps in the left panel. There are way too many of them. This is what stretches this layout so high. Please check the control.xml file; maybe that's where that comes from. If that doesn't point to the problem, we'll need y2logs with full debug logging. I'd like to find out if there were actually that many UI::WizardCommand(`AddStep(...)) calls or if there is a problem inside that UI::WizardCommand(`AddStep(...)) call. AFAICS this is called from ProductControl::AddWizardSteps(). With debug logging on, it should log "Adding wizard step" for each AddWizardSteps() call. Created attachment 186867 [details]
requested log file
Attached log with Y2DEBUG, I changed en_US <-> es_ES
Thanks for the logs.
The logs show that indeed most wizard steps are added multiple times (albeit not consistently 3 times each step - sometimes just once, sometimes 3 times, sometimes even 5 times).
fgrep '[ui-wizard]' y2log | sed -e 's/^.*Recognized wizard command //'
on the above log shows:
SetFocusToNextButton() : `SetFocusToNextButton ()
DeleteSteps() : `DeleteSteps ()
AddStepHeading(string) : `AddStepHeading ("Preparación")
AddStep(string,string) : `AddStep ("Idioma", "initial_1")
AddStep(string,string) : `AddStep ("Idioma", "initial_2")
AddStep(string,string) : `AddStep ("Acuerdo de licencia", "initial_3")
AddStep(string,string) : `AddStep ("Análisis del sistema", "initial_4")
AddStep(string,string) : `AddStep ("Zona horaria", "initial_5")
AddStep(string,string) : `AddStep ("Selección de escritorio", "initial_6")
AddStepHeading(string) : `AddStepHeading ("Instalación")
AddStep(string,string) : `AddStep ("Configuración de la instalación", "initial_8")
AddStep(string,string) : `AddStep ("Realizar la instalación", "initial_9")
AddStep(string,string) : `AddStep ("Realizar la instalación", "initial_10")
AddStep(string,string) : `AddStep ("Realizar la instalación", "initial_11")
AddStep(string,string) : `AddStep ("Realizar la instalación", "initial_12")
AddStep(string,string) : `AddStep ("Realizar la instalación", "initial_13")
AddStepHeading(string) : `AddStepHeading ("Configuración")
AddStep(string,string) : `AddStep ("Contraseña de root", "continue_2")
AddStep(string,string) : `AddStep ("Verifiación de Instalación", "continue_3")
AddStep(string,string) : `AddStep ("Verifiación de Instalación", "continue_4")
AddStep(string,string) : `AddStep ("Verifiación de Instalación", "continue_5")
AddStep(string,string) : `AddStep ("Nombre de host", "continue_6")
AddStep(string,string) : `AddStep ("Red", "continue_7")
AddStep(string,string) : `AddStep ("Red", "continue_8")
AddStep(string,string) : `AddStep ("Red", "continue_9")
AddStep(string,string) : `AddStep ("Registración", "continue_10")
AddStep(string,string) : `AddStep ("Registración", "continue_11")
AddStep(string,string) : `AddStep ("Actualización en línea", "continue_12")
AddStep(string,string) : `AddStep ("Actualización en línea", "continue_13")
AddStep(string,string) : `AddStep ("Actualización en línea", "continue_14")
AddStep(string,string) : `AddStep ("Actualización en línea", "continue_15")
AddStep(string,string) : `AddStep ("Usuarios", "continue_16")
AddStep(string,string) : `AddStep ("Usuarios", "continue_17")
AddStep(string,string) : `AddStep ("Usuarios", "continue_18")
AddStep(string,string) : `AddStep ("Notas de la versión", "continue_19")
AddStep(string,string) : `AddStep ("Configuración del hardware", "continue_20")
AddStep(string,string) : `AddStep ("Configuración del hardware", "continue_21")
AddStep(string,string) : `AddStep ("Configuración del hardware", "continue_22")
SetCurrentStep(string) : `SetCurrentStep ("initial_1")
UpdateSteps() : `UpdateSteps ()
SetCurrentStep(string) : `SetCurrentStep ("initial_1")
RetranslateInternalButtons() : `RetranslateInternalButtons ()
SetBackButtonLabel(string) : `SetBackButtonLabel ("&Atrás")
SetAbortButtonLabel(string) : `SetAbortButtonLabel ("Cancel&ar")
SetNextButtonLabel(string) : `SetNextButtonLabel ("S&iguiente")
SetFocusToNextButton() : `SetFocusToNextButton ()
SetCurrentStep(string) : `SetCurrentStep ("initial_1")
SetDialogHeading(string) : `SetDialogHeading ("Idioma")
SetHelpText(string) : `SetHelpText ("<p>\nElija el <b>Idioma</b> que se usará durante la instalación y en\nel sistema instalado.\n</p>\n<p>\nHaga clic en <b>Siguiente</b> para acceder al siguiente cuadro de diálogo.\n</p>\n<p>\nNo se producirá ninguna acción hasta que confirme todos\nlos ajustes en el último cuadro de diálogo.\n</p>\n<p>\nSeleccione <b>Cancelar la instalación</b> para interrumpir la instalación \nen cualquier momento.\n</p>\n")
EnableNextButton(bool) : `EnableNextButton (true)
EnableBackButton(bool) : `EnableBackButton (false)
SetFocusToNextButton() : `SetFocusToNextButton ()
SetDialogIcon(string) : `SetDialogIcon ("/usr/share/YaST2/theme/current/icons/22x22/apps/yast-language.png")
SetDialogIcon(string) : `SetDialogIcon ("/usr/share/YaST2/theme/current/icons/22x22/apps/yast-language.png")
SetFocusToNextButton() : `SetFocusToNextButton ()
DeleteSteps() : `DeleteSteps ()
AddStepHeading(string) : `AddStepHeading ("Preparation")
AddStep(string,string) : `AddStep ("Language", "initial_1")
AddStep(string,string) : `AddStep ("Language", "initial_2")
AddStep(string,string) : `AddStep ("License Agreement", "initial_3")
AddStep(string,string) : `AddStep ("System Analysis", "initial_4")
AddStep(string,string) : `AddStep ("Time Zone", "initial_5")
AddStep(string,string) : `AddStep ("Desktop Selection", "initial_6")
AddStepHeading(string) : `AddStepHeading ("Installation")
AddStep(string,string) : `AddStep ("Installation Settings", "initial_8")
AddStep(string,string) : `AddStep ("Perform Installation", "initial_9")
AddStep(string,string) : `AddStep ("Perform Installation", "initial_10")
AddStep(string,string) : `AddStep ("Perform Installation", "initial_11")
AddStep(string,string) : `AddStep ("Perform Installation", "initial_12")
AddStep(string,string) : `AddStep ("Perform Installation", "initial_13")
AddStepHeading(string) : `AddStepHeading ("Configuration")
AddStep(string,string) : `AddStep ("root Password", "continue_2")
AddStep(string,string) : `AddStep ("Check Installation", "continue_3")
AddStep(string,string) : `AddStep ("Check Installation", "continue_4")
AddStep(string,string) : `AddStep ("Check Installation", "continue_5")
AddStep(string,string) : `AddStep ("Hostname", "continue_6")
AddStep(string,string) : `AddStep ("Network", "continue_7")
AddStep(string,string) : `AddStep ("Network", "continue_8")
AddStep(string,string) : `AddStep ("Network", "continue_9")
AddStep(string,string) : `AddStep ("Registration", "continue_10")
AddStep(string,string) : `AddStep ("Registration", "continue_11")
AddStep(string,string) : `AddStep ("Online Update", "continue_12")
AddStep(string,string) : `AddStep ("Online Update", "continue_13")
AddStep(string,string) : `AddStep ("Online Update", "continue_14")
AddStep(string,string) : `AddStep ("Online Update", "continue_15")
AddStep(string,string) : `AddStep ("Users", "continue_16")
AddStep(string,string) : `AddStep ("Users", "continue_17")
AddStep(string,string) : `AddStep ("Users", "continue_18")
AddStep(string,string) : `AddStep ("Release Notes", "continue_19")
AddStep(string,string) : `AddStep ("Hardware Configuration", "continue_20")
AddStep(string,string) : `AddStep ("Hardware Configuration", "continue_21")
AddStep(string,string) : `AddStep ("Hardware Configuration", "continue_22")
SetCurrentStep(string) : `SetCurrentStep ("initial_1")
UpdateSteps() : `UpdateSteps ()
SetCurrentStep(string) : `SetCurrentStep ("initial_1")
RetranslateInternalButtons() : `RetranslateInternalButtons ()
SetBackButtonLabel(string) : `SetBackButtonLabel ("&Back")
SetAbortButtonLabel(string) : `SetAbortButtonLabel ("Abo&rt")
SetNextButtonLabel(string) : `SetNextButtonLabel ("&Next")
SetFocusToNextButton() : `SetFocusToNextButton ()
SetCurrentStep(string) : `SetCurrentStep ("initial_1")
SetDialogHeading(string) : `SetDialogHeading ("Language")
SetHelpText(string) : `SetHelpText ("<p>\nChoose the <b>Language</b> to use during installation and for\nthe installed system.\n</p>\n<p>\nClick <b>Next</b> to proceed to the next dialog.\n</p>\n<p>\nNothing will happen to your computer until you confirm\nall your settings in the last installation dialog.\n</p>\n<p>\nYou can select <b>Abort</b> at any time to abort the\ninstallation process.\n</p>\n")
EnableNextButton(bool) : `EnableNextButton (true)
EnableBackButton(bool) : `EnableBackButton (false)
SetFocusToNextButton() : `SetFocusToNextButton ()
SetDialogIcon(string) : `SetDialogIcon ("/usr/share/YaST2/theme/current/icons/22x22/apps/yast-language.png")
SetDialogIcon(string) : `SetDialogIcon ("/usr/share/YaST2/theme/current/icons/22x22/apps/yast-language.png")
Duh. My fault. Wrong thinking. The wizard should collapse multiple steps with the same label into one. So the caller is correct; the wizard should make sure it really produces only one to display. Created attachment 186906 [details]
Test case
I can reproduce it with the strings from that y2log. Must be some UTF-8 character problem (string comparison fails for some reason when UTF-8 characters are present).
Calling the test case:
/usr/lib/YaST2/bin/y2base ./Wiazrd3-es.ycp qt
Created attachment 186907 [details]
screen shot from the test case
You can see multiple steps with the same name not collapsed.
Fixed. Buggy string comparison (QString vs. std::string).
And also fixed missing UTF-8 conversion for the steps headings.
Index: YQWizard.cc
===================================================================
--- YQWizard.cc (Revision 42918)
+++ YQWizard.cc (Arbeitskopie)
@@ -403,7 +403,7 @@
return;
}
- if ( _stepsList.last() && _stepsList.last()->name() == text )
+ if ( _stepsList.last() && _stepsList.last()->name() == fromUTF8( text ) )
{
// Consecutive steps with the same name will be shown as one single step.
//
@@ -426,7 +426,7 @@
void YQWizard::addStepHeading( const string & text )
{
- _stepsList.append( new YQWizard::StepHeading( text ) );
+ _stepsList.append( new YQWizard::StepHeading( fromUTF8( text ) ) );
_stepsDirty = true;
}
Created attachment 186918 [details]
screen shot after the fix
|