Bug 393887

Summary: Yast2 Squid-module displays error "UI Syntax Error" in TEXT mode
Product: [openSUSE] openSUSE 11.0 Reporter: nugenesis nugenesis <nugenesis>
Component: YaST2Assignee: Stefan Hundhammer <shundhammer>
Status: RESOLVED DUPLICATE QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: gs, jsuchome
Version: Factory   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 11.0   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: .y2log

Description nugenesis nugenesis 2008-05-23 09:29:41 UTC
--------
Overview
--------

When yast squid module is opened in text mode there is an error message displayed:
"UI Syntax Error Invalid arguments for the PushButton widget Check the log file!"

------------------
Steps to Reproduce
------------------

-install packages "squid" and "yast2-squid"
-start yast is text mode
-go to "Network Services" -> "Squid"
-> error message is displayed
Comment 1 Jiří Suchomel 2008-05-23 09:34:22 UTC
Created attachment 217725 [details]
.y2log

Easy to reproduce on beta3, not sure if it is ncurses or Wizard related...
Comment 2 Stefan Hundhammer 2008-05-26 15:02:17 UTC
In that version (Beta3), Wizard.ycp:828 was the UI::ReplaceWidget() line in Wizard::SetBackButton():

    /**
     * Set the dialog's "Back" button with a new label and a new ID
     *
     * @stable
     *
     * @param id Button ID
     * @param label Button Label
     **/
    global void SetBackButton( any id, string label )
    {
	if ( UI::WizardCommand(`SetBackButtonLabel( label ) ) == true )
	{
	    UI::WizardCommand(`SetBackButtonID( id ) );
	}
	else
	{
	    if ( UI::WidgetExists(`id(`rep_back ) ) )
	    {
		UI::ReplaceWidget(`id(`rep_back),
				  `PushButton( `id( id ), `opt (`key_F8), label )
				  );
	    }
	}
    }


So to me it looks as if the back button was replaced (or tried to be replaced) with another button with ID `help. This was always a bug, but previous versions of the UI only logged an error and then carried on regardless. The current libyui logs the bug and returns an error code (nil) from UI::ReplaceWidget().

This is also what the log says:

[libycp] Wizard.ycp:828 Widget id `help is not unique
[libycp] Wizard.ycp:828 Invalid arguments for the PushButton widget: `PushButton (`id (`help), `opt (`key_F8), "&Nápověda")
[ui] YCPDialogParser.cc(parsePushButton):1212 	THROW:    Invalid arguments for the PushButton widget
[ui] YCP_UI.cc(ReplaceWidget):829 	CAUGHT:   Invalid arguments for the PushButton widget
[libycp] Wizard.ycp:828 UI::ReplaceWidget() failed: UI::ReplaceWidget( `id (`rep_back), `PushButton (`id (`help), `opt (`key_F8), "&Nápověda") )
Comment 3 Stefan Hundhammer 2008-05-26 15:37:46 UTC
The offending line seems to be in CWM.ycp:

846     global define void AdjustButtons (string next, string back, string abort,
847         string help)
...
874             else if (help != "")
875                 Wizard::SetBackButton (`help, help);
876             else
877                 Wizard::HideBackButton ();


But that's gone in current SVN. SVN log says:

------------------------------------------------------------------------
r47826 | jsrain | 2008-05-23 12:25:29 +0200 (Fr, 23 Mai 2008) | 3 lines

adjusted button handling in CWM (bnc#392983)

Comment 4 Stefan Hundhammer 2008-05-26 15:38:24 UTC

*** This bug has been marked as a duplicate of bug 392983 ***