Hello community,
here is the log from the commit of package yast2-core
checked in at Wed Nov 21 03:28:20 CET 2007.
--------
--- yast2-core/yast2-core.changes 2007-11-16 20:25:03.000000000 +0100
+++ /mounts/work_src_done/STABLE/yast2-core/yast2-core.changes 2007-11-20 18:02:31.622021000 +0100
@@ -1,0 +2,10 @@
+Tue Nov 20 17:57:44 CET 2007 - sh@suse.de
+
+- V 2.16.7
+- More graceful error handling in
+ - UI::ChangeWidget()
+ - UI::QueryWidget()
+- InputField widgets now use reasonable default width,
+ no longer grow to eat up as much width as available
+
+-------------------------------------------------------------------
Old:
----
yast2-core-2.16.6.tar.bz2
New:
----
yast2-core-2.16.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-core.spec ++++++
--- /var/tmp/diff_new_pack.h27967/_old 2007-11-21 03:28:13.000000000 +0100
+++ /var/tmp/diff_new_pack.h27967/_new 2007-11-21 03:28:13.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package yast2-core (Version 2.16.6)
+# spec file for package yast2-core (Version 2.16.7)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,12 +11,12 @@
# norootforbuild
Name: yast2-core
-Version: 2.16.6
+Version: 2.16.7
Release: 1
License: GPL v2 or later
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-core-2.16.6.tar.bz2
+Source0: yast2-core-2.16.7.tar.bz2
Prefix: /usr
# obviously
BuildRequires: gcc-c++
@@ -115,7 +115,7 @@
Stanislav Visnovsky
%prep
-%setup -n yast2-core-2.16.6
+%setup -n yast2-core-2.16.7
%build
%{prefix}/bin/y2tool y2autoconf
@@ -192,6 +192,13 @@
%doc %{prefix}/share/doc/packages/yast2-core
/usr/share/YaST2/data/devtools/bin/generateYCPWrappers
%changelog
+* Tue Nov 20 2007 - sh@suse.de
+- V 2.16.7
+- More graceful error handling in
+ - UI::ChangeWidget()
+ - UI::QueryWidget()
+- InputField widgets now use reasonable default width,
+ no longer grow to eat up as much width as available
* Fri Nov 16 2007 - sh@suse.de
- V 2.16.6
- Merged mod-ui branch to trunk:
++++++ yast2-core-2.16.6.tar.bz2 -> yast2-core-2.16.7.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-core-2.16.6/libyui/doc/examples/InputField-layout.ycp new/yast2-core-2.16.7/libyui/doc/examples/InputField-layout.ycp
--- old/yast2-core-2.16.6/libyui/doc/examples/InputField-layout.ycp 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-core-2.16.7/libyui/doc/examples/InputField-layout.ycp 2007-11-19 17:22:42.000000000 +0100
@@ -0,0 +1,30 @@
+// Input field width under different layout constraints
+{
+ UI::OpenDialog(
+ `VBox(
+ `TextEntry( "Normal", "normal width" ),
+ `TextEntry(`opt(`shrinkable), "Sml", "shrinkable" ),
+ `VBox(
+ `MarginBox( 1, 0.2,
+ `Frame( "Useless Frame",
+ `VBox(
+ `Heading( "Very Wide and Very Useless Heading" ),
+ `TextEntry( "Normal 1" ),
+ `TextEntry( "Normal 2" ),
+ `TextEntry( "Normal 3" ),
+ `TextEntry( "Unusually &wide field caption to make it wider" ),
+ `TextEntry( "Normal 4" ),
+ `TextEntry(`opt(`hstretch ), "Stretch", "stretchable" ),
+ `TextEntry(`opt(`shrinkable), "Sml", "shrinkable" ),
+ `Left(`TextEntry( "Left", "left aligned" ) ),
+ `HSquash(`TextEntry( "HSquashed", "hquashed" ) )
+ )
+ )
+ )
+ ),
+ `PushButton(`opt(`default), "&OK" )
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-core-2.16.6/libyui/src/YInputField.cc new/yast2-core-2.16.7/libyui/src/YInputField.cc
--- old/yast2-core-2.16.6/libyui/src/YInputField.cc 2007-11-16 12:43:24.000000000 +0100
+++ new/yast2-core-2.16.7/libyui/src/YInputField.cc 2007-11-19 17:04:30.000000000 +0100
@@ -51,7 +51,7 @@
{
YUI_CHECK_NEW( priv );
- setDefaultStretchable( YD_HORIZ, true );
+ // setDefaultStretchable( YD_HORIZ, true );
setDefaultStretchable( YD_VERT, false );
}
@@ -89,6 +89,7 @@
void YInputField::setShrinkable( bool shrinkable )
{
priv->shrinkable = shrinkable;
+ // setDefaultStretchable( YD_HORIZ, ! shrinkable );
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-core-2.16.6/libyui/src/YUI_builtins.cc new/yast2-core-2.16.7/libyui/src/YUI_builtins.cc
--- old/yast2-core-2.16.6/libyui/src/YUI_builtins.cc 2007-11-16 12:43:24.000000000 +0100
+++ new/yast2-core-2.16.7/libyui/src/YUI_builtins.cc 2007-11-20 13:45:43.000000000 +0100
@@ -21,8 +21,9 @@
/-*/
-#define VERBOSE_COMMANDS // pretty verbose logging of each UI command
#define VERBOSE_REPLACE_WIDGET 0
+#define VERBOSE_EVENTS 0
+
#define NONFATAL_OPENDIALOG_EXCEPTIONS 0
#include
@@ -286,7 +287,7 @@
* as a separate process. It saves current window layout to the stack and
* runs the external program in the same terminal. When done, it restores
* the original window layout and returns exit code of the external program
- * (an integer value returned by system() call). When called from Qt UI,
+ * (an integer value returned by system() call). When called from the Qt UI,
* an error message is printed to the log.
* @param string external_program
* return integer
@@ -314,7 +315,7 @@
* @short Sets Keyboard
*
* @return void
- * @usage SetKeyboard( )
+ * @usage SetKeyboard()
*/
void YUI::evaluateSetKeyboard( )
{
@@ -336,7 +337,7 @@
/*
* Default UI-specific setConsoleFont()
- * Returns OK ( YCPVoid() )
+ * Returns OK (YCPVoid())
*/
YCPValue YUI::setConsoleFont( const YCPString & console_magic,
const YCPString & font,
@@ -408,7 +409,7 @@
*
* If "strip_encoding" is set to "true", all encoding or similar information is
* cut off, i.e. everything from the first "." or "@" on. Otherwise the current
- * contents of the "LANG" environment variable is returned ( which very likely
+ * contents of the "LANG" environment variable is returned (which very likely
* ends with ".UTF-8" since this is the encoding YaST2 uses internally).
*
* @param boolean strip_encoding
@@ -457,6 +458,10 @@
*/
YCPValue YUI::evaluateUserInput()
{
+#if VERBOSE_EVENTS
+ y2debug( "UI::UserInput()" );
+#endif
+
return doUserInput( YUIBuiltin_UserInput,
0, // timeout_millisec
true, // wait
@@ -472,8 +477,8 @@
* button, has closed the window or has activated
* some widget that has the <tt>`notify</tt> option set. Returns
* the id of the widget that has been selected
- * or <tt>`cancel</tt> if the user selected the implicite cancel
- * button ( for example he closes the window). Returns nil if no
+ * or <tt>`cancel</tt> if the user selected the implicit cancel
+ * button (for example he closes the window). Returns nil if no
* user input has occured.
*
* @return any
@@ -481,6 +486,10 @@
*/
YCPValue YUI::evaluatePollInput()
{
+#if VERBOSE_EVENTS
+ y2debug( "UI::PollInput()" );
+#endif
+
return doUserInput( YUIBuiltin_PollInput,
0, // timeout_millisec
false, // wait
@@ -506,6 +515,10 @@
YCPValue YUI::evaluateTimeoutUserInput( const YCPInteger & timeout )
{
long timeout_millisec = timeout->value();
+
+#if VERBOSE_EVENTS
+ y2debug( "UI::TimeoutUserInput( %d )", timeout_millisec );
+#endif
return doUserInput( YUIBuiltin_TimeoutUserInput,
timeout_millisec,
@@ -527,11 +540,15 @@
YCPValue YUI::evaluateWaitForEvent( const YCPInteger & timeout )
{
long timeout_millisec = 0;
-
+
if ( ! timeout.isNull() )
{
timeout_millisec = timeout->value();
}
+
+#if VERBOSE_EVENTS
+ y2debug( "UI::WaitForEvent( %d )", timeout_millisec );
+#endif
return doUserInput( YUIBuiltin_WaitForEvent,
timeout_millisec,
@@ -581,6 +598,9 @@
{
// Get an event from the specific UI. Wait if there is none.
+#if VERBOSE_EVENTS
+ y2debug( "SpecificUI::userInput()" );
+#endif
event = filterInvalidEvents( userInput( (unsigned long) timeout_millisec ) );
// If there was no event or if filterInvalidEvents() discarded
@@ -591,6 +611,9 @@
{
// Get an event from the specific UI. Don't wait if there is none.
+#if VERBOSE_EVENTS
+ y2debug( "SpecificUI::pollInput()" );
+#endif
event = filterInvalidEvents( pollInput() );
// Nevermind if filterInvalidEvents() discarded an invalid event.
@@ -601,10 +624,15 @@
if ( event )
{
+
if ( detailed )
input = event->ycpEvent(); // The event map
else
input = event->userInput(); // Only one single ID (or 'nil')
+
+#if VERBOSE_EVENTS
+ y2debug( "Got regular event from keyboard / mouse: %s", input->toString().c_str() );
+#endif
}
}
else // fakeUserInputQueue contains elements -> use the first one
@@ -612,6 +640,7 @@
// Handle macro playing
input = fakeUserInputQueue.front();
+ y2debug( "Using event from fakeUserInputQueue: %s", input->toString().c_str() );
fakeUserInputQueue.pop_front();
}
@@ -703,7 +732,7 @@
*
* See the widget documentation for details
* what widgets are available. All open dialogs are arranged in a stack. A
- * newly opened dialog is put on top of the stack. All operations implicitely
+ * newly opened dialog is put on top of the stack. All operations implicitly
* refer to the topmost dialog. The user can interact only with that dialog.
* The application does not terminate if the last dialog is closed.
*
@@ -874,96 +903,108 @@
YCPValue YUI::evaluateChangeWidget( const YCPValue & id_value, const YCPValue & property, const YCPValue & newValue )
{
- if ( ! YCPDialogParser::isSymbolOrId( id_value ) )
- {
- return YCPNull();
- }
-
- YCPValue id = YCPDialogParser::parseIdTerm( id_value );
- YWidget * widget = YCPDialogParser::findWidgetWithId( id );
-
- if ( ! widget )
- return YCPBoolean( false );
-
- blockEvents(); // We don't want self-generated events from UI::ChangeWidget().
YCPValue ret = YCPVoid();
+
+ try
+ {
+ blockEvents(); // We don't want self-generated events from UI::ChangeWidget().
+
+ if ( ! YCPDialogParser::isSymbolOrId( id_value ) )
+ {
+ YUI_THROW( YUISyntaxErrorException( string( "Expected `id(...) or `symbol, not " ) +
+ id_value->toString().c_str() ) );
+ }
- YPropertySet propSet = widget->propertySet();
+ YCPValue id = YCPDialogParser::parseIdTerm( id_value );
+ YWidget * widget = YCPDialogParser::findWidgetWithId( id,
+ true ); // throw if not found
- if ( propSet.size() == 5 ) // unchanged from YWidget, no properties supported
- {
- // FIXME: Get rid of this
- // FIXME: Get rid of this
- // FIXME: Get rid of this
+ YPropertySet propSet = widget->propertySet();
- if ( property->isSymbol() )
+ if ( propSet.size() == 5 ) // unchanged from YWidget, no properties supported
{
- YCPSymbol sym = property->asSymbol();
- y2debug( "Old style UI::ChangeWidget() for %s::%s",
- widget->widgetClass(), sym->toString().c_str() );
- ret = widget->changeWidget( sym, newValue );
+ // FIXME: Get rid of this
+ // FIXME: Get rid of this
+ // FIXME: Get rid of this
+
+ if ( property->isSymbol() )
+ {
+ YCPSymbol sym = property->asSymbol();
+ y2debug( "Old style UI::ChangeWidget() for %s::%s",
+ widget->widgetClass(), sym->toString().c_str() );
+ ret = widget->changeWidget( sym, newValue );
+ }
+ else
+ {
+ y2error( "Bad argument for UI::ChangeWidget(): %s",
+ property->toString().c_str() );
+ }
+
+ // FIXME: Get rid of this
+ // FIXME: Get rid of this
+ // FIXME: Get rid of this
}
else
{
- y2error( "Bad argument for UI::ChangeWidget(): %s",
- property->toString().c_str() );
- }
-
- // FIXME: Get rid of this
- // FIXME: Get rid of this
- // FIXME: Get rid of this
- }
- else
- {
- try
- {
- if ( property->isSymbol() )
+ try
{
- string oldShortcutString = widget->shortcutString();
- string propertyName = property->asSymbol()->symbol();
- // y2milestone( "New style UI::ChangeWidget() for %s::%s", widget->widgetClass(), propertyName.c_str() );
-
- YPropertyValue val;
-
- if ( newValue->isString() ) val = YPropertyValue( newValue->asString()->value() );
- else if ( newValue->isInteger() ) val = YPropertyValue( newValue->asInteger()->value() );
- else if ( newValue->isBoolean() ) val = YPropertyValue( newValue->asBoolean()->value() );
- else
- val = YPropertyValue( false ); // Dummy value, will be rejected anyway
+ if ( property->isSymbol() )
+ {
+ string oldShortcutString = widget->shortcutString();
+ string propertyName = property->asSymbol()->symbol();
+ // y2milestone( "New style UI::ChangeWidget() for %s::%s", widget->widgetClass(), propertyName.c_str() );
+
+ YPropertyValue val;
+
+ if ( newValue->isString() ) val = YPropertyValue( newValue->asString()->value() );
+ else if ( newValue->isInteger() ) val = YPropertyValue( newValue->asInteger()->value() );
+ else if ( newValue->isBoolean() ) val = YPropertyValue( newValue->asBoolean()->value() );
+ else
+ val = YPropertyValue( false ); // Dummy value, will be rejected anyway
- bool success = widget->setProperty( propertyName, val );
+ bool success = widget->setProperty( propertyName, val );
- if ( ! success )
- {
- // Try again with the known special cases
- success = YCPPropertyHandler::setComplexProperty( widget, propertyName, newValue );
- }
+ if ( ! success )
+ {
+ // Try again with the known special cases
+ success = YCPPropertyHandler::setComplexProperty( widget, propertyName, newValue );
+ }
- ret = YCPBoolean( success );
+ ret = YCPBoolean( success );
- if ( oldShortcutString != widget->shortcutString() )
- YDialog::currentDialog()->checkShortcuts();
- }
- else if ( property->isTerm() )
- {
- bool success = YCPPropertyHandler::setComplexProperty( widget, property->asTerm(), newValue );
- ret = YCPBoolean( success );
+ if ( oldShortcutString != widget->shortcutString() )
+ YDialog::currentDialog()->checkShortcuts();
+ }
+ else if ( property->isTerm() )
+ {
+ bool success = YCPPropertyHandler::setComplexProperty( widget, property->asTerm(), newValue );
+ ret = YCPBoolean( success );
+ }
+ else
+ {
+ YUI_THROW( YUISyntaxErrorException( string( "Bad UI::ChangeWidget args: " )
+ + property->toString() ) );
+ }
}
- else
+ catch( YUIException & exception )
{
- YUI_THROW( YUIException( string( "Bad UI::ChangeWidget args: " )
- + property->toString() ) );
+ YUI_CAUGHT( exception );
+ ycperror( "UI::ChangeWidget() failed for property %s of %s with ID %s, new value: %s",
+ property->toString().c_str(),
+ widget->widgetClass(),
+ id->toString().c_str(),
+ newValue->toString().c_str() );
}
}
- catch( YUIException & exception )
- {
- YUI_CAUGHT( exception );
- ycperror( "UI::ChangeWidget() failed for property %s of %s with ID %s, new value: %s",
- property->toString().c_str(),
- widget->widgetClass(),
- id->toString().c_str(),
- newValue->toString().c_str() );
- }
+ }
+ catch( YUIException & exception )
+ {
+ YUI_CAUGHT( exception );
+ ycperror( "UI::ChangeWidget failed: UI::ChangeWidget( %s, %s, %s )",
+ id_value->toString().c_str(),
+ property->toString().c_str(),
+ newValue->toString().c_str() );
+ ret = YCPNull();
}
unblockEvents();
@@ -991,80 +1032,92 @@
YCPValue YUI::evaluateQueryWidget( const YCPValue & id_value, const YCPValue & property )
{
- if ( ! YCPDialogParser::isSymbolOrId( id_value ) )
+ YCPValue ret = YCPVoid();
+
+ try
{
- return YCPNull();
- }
-
- YCPValue id = YCPDialogParser::parseIdTerm( id_value );
- YWidget *widget = YCPDialogParser::findWidgetWithId( id );
+ if ( ! YCPDialogParser::isSymbolOrId( id_value ) )
+ {
+ YUI_THROW( YUISyntaxErrorException( string( "Expected `id(...) or `symbol, not " ) +
+ id_value->toString().c_str() ) );
+ }
- if ( ! widget )
- return YCPVoid();
+ YCPValue id = YCPDialogParser::parseIdTerm( id_value );
+ YWidget *widget = YCPDialogParser::findWidgetWithId( id,
+ true ); // throw if not found
- YPropertySet propSet = widget->propertySet();
+ YPropertySet propSet = widget->propertySet();
- if ( propSet.size() == 5 ) // unchanged from YWidget, no properties supported
- {
- if ( property->isSymbol() )
+ if ( propSet.size() == 5 ) // unchanged from YWidget, no properties supported
{
- // FIXME: Get rid of this
- // FIXME: Get rid of this
- // FIXME: Get rid of this
- YCPSymbol sym = property->asSymbol();
- y2debug( "Old style UI::QueryWidget() for %s::%s",
- widget->widgetClass(), sym->symbol().c_str() );
- return widget->queryWidget( sym );
+ if ( property->isSymbol() )
+ {
+ // FIXME: Get rid of this
// FIXME: Get rid of this
// FIXME: Get rid of this
+ YCPSymbol sym = property->asSymbol();
+ y2debug( "Old style UI::QueryWidget() for %s::%s",
+ widget->widgetClass(), sym->symbol().c_str() );
+ return widget->queryWidget( sym );
// FIXME: Get rid of this
+ // FIXME: Get rid of this
+ // FIXME: Get rid of this
+ }
}
- }
- else
- {
- // y2debug( "New style UI::QueryWidget() for %s::%s", widget->widgetClass(), sym->symbol().c_str() );
-
- try
+ else
{
- if ( property->isSymbol() ) // The normal case: UI::QueryWidget(`myWidget, `SomeProperty)
+ // y2debug( "New style UI::QueryWidget() for %s::%s", widget->widgetClass(), sym->symbol().c_str() );
+
+ try
{
- string propertyName = property->asSymbol()->symbol();
- YPropertyValue val = widget->getProperty( propertyName );
+ if ( property->isSymbol() ) // The normal case: UI::QueryWidget(`myWidget, `SomeProperty)
+ {
+ string propertyName = property->asSymbol()->symbol();
+ YPropertyValue val = widget->getProperty( propertyName );
- switch ( val.type() )
+ switch ( val.type() )
+ {
+ case YStringProperty: return YCPString ( val.stringVal() );
+ case YBoolProperty: return YCPBoolean( val.boolVal() );
+ case YIntegerProperty: return YCPInteger( val.integerVal() );
+ case YOtherProperty: return YCPPropertyHandler::getComplexProperty( widget, propertyName );
+
+ default:
+ ycperror( "Unknown result for setProperty( %s )", propertyName.c_str() );
+ return YCPVoid();
+ }
+ }
+ else if ( property->isTerm() ) // Very rare: UI::QueryWidget(`myTable, `Item("abc", 3) )
{
- case YStringProperty: return YCPString ( val.stringVal() );
- case YBoolProperty: return YCPBoolean( val.boolVal() );
- case YIntegerProperty: return YCPInteger( val.integerVal() );
- case YOtherProperty: return YCPPropertyHandler::getComplexProperty( widget, propertyName );
-
- default:
- y2error( "Unknown result for setProperty( %s )", propertyName.c_str() );
- return YCPVoid();
+ return YCPPropertyHandler::getComplexProperty( widget, property->asTerm() );
+ }
+ else
+ {
+ YUI_THROW( YUISyntaxErrorException( string( "Bad UI::QueryWidget args: " )
+ + property->toString() ) );
}
}
- else if ( property->isTerm() ) // Very rare: UI::QueryWidget(`myTable, `Item("abc", 3) )
- {
- return YCPPropertyHandler::getComplexProperty( widget, property->asTerm() );
- }
- else
+ catch( YUIException & exception )
{
- YUI_THROW( YUIException( string( "Bad UI::QueryWidget args: " )
- + property->toString() ) );
- }
- }
- catch( YUIException & exception )
- {
- YUI_CAUGHT( exception );
- ycperror( "UI::QueryWidget() failed for property %s of %s with ID %s",
- property->toString().c_str(),
- widget->widgetClass(),
- id->toString().c_str() );
+ YUI_CAUGHT( exception );
+ ycperror( "UI::QueryWidget() failed for property %s of %s with ID %s",
+ property->toString().c_str(),
+ widget->widgetClass(),
+ id->toString().c_str() );
+ }
}
}
+ catch( YUIException & exception )
+ {
+ YUI_CAUGHT( exception );
+ ycperror( "UI::QueryWidget failed: UI::QueryWidget( %s, %s )",
+ id_value->toString().c_str(),
+ property->toString().c_str() );
+ ret = YCPNull();
+ }
- return YCPVoid();
+ return ret;
}
@@ -1242,7 +1295,7 @@
* @description
* Redraws the screen after it very likely has become garbled by some other output.
*
- * This should normally not be necessary: The ( specific ) UI redraws the screen
+ * This should normally not be necessary: The (specific) UI redraws the screen
* automatically whenever required. Under rare circumstances, however, the
* screen might have changes due to circumstances beyond the UI's control: For
* text based UIs, for example, system commands that cause output to every tty
@@ -1261,7 +1314,7 @@
* @builtin NormalCursor
* @short Sets the mouse cursor to the normal cursor
* @description
- * Sets the mouse cursor to the normal cursor ( after BusyCursor ), if the UI
+ * Sets the mouse cursor to the normal cursor (after BusyCursor), if the UI
* supports such a feature.
*
* This should normally not be necessary. The UI handles mouse cursors itself:
@@ -1458,6 +1511,7 @@
*/
void YUI::evaluateFakeUserInput( const YCPValue & next_input )
{
+ y2debug( "UI::FakeUserInput(%s)", next_input->toString().c_str() );
fakeUserInputQueue.push_back( next_input );
}
@@ -1465,12 +1519,12 @@
/**
* @builtin Glyph
- * @short Returns a special character ( a 'glyph' )
+ * @short Returns a special character (a 'glyph')
* @description
- * Returns a special character ( a 'glyph' ) according to the symbol specified.
+ * Returns a special character (a 'glyph') according to the symbol specified.
*
* Not all UIs may be capable of displaying every glyph; if a specific UI
- * doesn't support it, a textual representation ( probably in plain ASCII ) will
+ * doesn't support it, a textual representation (probably in plain ASCII) will
* be returned.
*
* This is also why there is only a limited number of predefined
@@ -1554,7 +1608,7 @@
* <b>This is a very expensive operation.</b>
*
* Use this after changing widget properties that might affect their size -
- * like the a Label widget's value. Call this once ( ! ) after changing all such
+ * like the a Label widget's value. Call this once (!) after changing all such
* widget properties.
*
* @return void
@@ -1573,7 +1627,7 @@
*
* Normally, keyboard shortcuts are checked automatically when a dialog is
* created or changed. This can lead to confusion, however, when multiple
- * changes to a dialog ( repeated ReplaceWidget() calls ) cause unwanted
+ * changes to a dialog (repeated ReplaceWidget() calls) cause unwanted
* intermediate states that may result in shortcut conflicts while the dialog
* is not final yet. Use this function to postpone this checking until all
* changes to the dialog are done and then explicitly check with
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-core-2.16.6/libyui/src/YUIException.h new/yast2-core-2.16.7/libyui/src/YUIException.h
--- old/yast2-core-2.16.6/libyui/src/YUIException.h 2007-11-16 12:43:24.000000000 +0100
+++ new/yast2-core-2.16.7/libyui/src/YUIException.h 2007-11-19 13:37:49.000000000 +0100
@@ -457,6 +457,18 @@
};
+class YUISyntaxErrorException: public YUIException
+{
+public:
+ YUISyntaxErrorException( const string & msg )
+ : YUIException( msg )
+ {}
+
+ virtual ~YUISyntaxErrorException() throw()
+ {}
+};
+
+
/**
* Abstract base class for widget property exceptions.
**/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-core-2.16.6/VERSION new/yast2-core-2.16.7/VERSION
--- old/yast2-core-2.16.6/VERSION 2007-11-16 16:37:09.000000000 +0100
+++ new/yast2-core-2.16.7/VERSION 2007-11-20 18:00:42.000000000 +0100
@@ -1 +1 @@
-2.16.6
+2.16.7
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org