Hello community, here is the log from the commit of package yast2 checked in at Sat Aug 30 02:01:51 CEST 2008. -------- --- yast2/yast2.changes 2008-08-25 14:21:15.000000000 +0200 +++ yast2/yast2.changes 2008-08-28 13:40:00.000000000 +0200 @@ -1,0 +2,15 @@ +Thu Aug 28 11:55:05 CEST 2008 - locilka@suse.cz + +- Adapted Popup, Confirm, CWM, ALog, GPGWidgets, NetworkPopup, + PackageCallbacks, SignatureCheckDialogs, FileChanges, Initrd, + and ModuleLoading libraries to use new YButtonBox widget + (FATE #303446). +- Adjusted RPM dependencies. +- 2.17.15 + +------------------------------------------------------------------- +Wed Aug 27 10:03:54 CEST 2008 - jsrain@suse.cz + +- added configuration files changes tracking in SNV as preview + +------------------------------------------------------------------- Old: ---- yast2-2.17.14.tar.bz2 New: ---- yast2-2.17.15.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2.spec ++++++ --- /var/tmp/diff_new_pack.Z20922/_old 2008-08-30 01:58:28.000000000 +0200 +++ /var/tmp/diff_new_pack.Z20922/_new 2008-08-30 01:58:28.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package yast2 (Version 2.17.14) +# spec file for package yast2 (Version 2.17.15) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -19,12 +19,12 @@ Name: yast2 -Version: 2.17.14 +Version: 2.17.15 Release: 1 License: GPL v2 or later Group: System/YaST BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: yast2-2.17.14.tar.bz2 +Source0: yast2-2.17.15.tar.bz2 Prefix: /usr Source1: yast2-rpmlintrc BuildRequires: perl-XML-Writer update-desktop-files yast2-devtools yast2-perl-bindings yast2-testsuite @@ -35,7 +35,8 @@ # y2base foo -S (hello) UI, list:: namespace Requires: yast2-core >= 2.17.1 # Mod_UI -Requires: yast2-ycp-ui-bindings >= 2.16.44 +# new YButtonBox widget (fate #303446) +Requires: yast2-ycp-ui-bindings >= 2.17.3 # changed patch/message callbacks Requires: yast2-pkg-bindings >= 2.17.1 Requires: yast2_ui yast2_theme @@ -148,7 +149,7 @@ Steffen Winterfeldt <snwint@suse.de> %prep -%setup -n yast2-2.17.14 +%setup -n yast2-2.17.15 %build %{prefix}/bin/y2tool y2autoconf @@ -252,6 +253,15 @@ %doc %{prefix}/share/doc/packages/yast2/types %doc %{prefix}/share/doc/packages/yast2/wizard %changelog +* Thu Aug 28 2008 locilka@suse.cz +- Adapted Popup, Confirm, CWM, ALog, GPGWidgets, NetworkPopup, + PackageCallbacks, SignatureCheckDialogs, FileChanges, Initrd, + and ModuleLoading libraries to use new YButtonBox widget + (FATE #303446). +- Adjusted RPM dependencies. +- 2.17.15 +* Wed Aug 27 2008 jsrain@suse.cz +- added configuration files changes tracking in SNV as preview * Mon Aug 25 2008 ug@suse.de - post-patterns for autoyast added - 2.17.14 ++++++ yast2-2.17.14.tar.bz2 -> yast2-2.17.15.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/configure new/yast2-2.17.15/configure --- old/yast2-2.17.14/configure 2008-08-25 14:11:26.000000000 +0200 +++ new/yast2-2.17.15/configure 2008-08-28 13:40:28.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for yast2 2.17.14. +# Generated by GNU Autoconf 2.61 for yast2 2.17.15. # # Report bugs to <http://bugs.opensuse.org/>. # @@ -574,8 +574,8 @@ # Identity of this package. PACKAGE_NAME='yast2' PACKAGE_TARNAME='yast2' -PACKAGE_VERSION='2.17.14' -PACKAGE_STRING='yast2 2.17.14' +PACKAGE_VERSION='2.17.15' +PACKAGE_STRING='yast2 2.17.15' PACKAGE_BUGREPORT='http://bugs.opensuse.org/' ac_unique_file="RPMNAME" @@ -1200,7 +1200,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures yast2 2.17.14 to adapt to many kinds of systems. +\`configure' configures yast2 2.17.15 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1271,7 +1271,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of yast2 2.17.14:";; + short | recursive ) echo "Configuration of yast2 2.17.15:";; esac cat <<\_ACEOF @@ -1349,7 +1349,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -yast2 configure 2.17.14 +yast2 configure 2.17.15 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1363,7 +1363,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by yast2 $as_me 2.17.14, which was +It was created by yast2 $as_me 2.17.15, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2184,7 +2184,7 @@ # Define the identity of the package. PACKAGE='yast2' - VERSION='2.17.14' + VERSION='2.17.15' cat >>confdefs.h <<_ACEOF @@ -2412,7 +2412,7 @@ -VERSION="2.17.14" +VERSION="2.17.15" RPMNAME="yast2" MAINTAINER="Jiri Srain <jsrain@suse.cz>" @@ -3427,7 +3427,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by yast2 $as_me 2.17.14, which was +This file was extended by yast2 $as_me 2.17.15, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3470,7 +3470,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -yast2 config.status 2.17.14 +yast2 config.status 2.17.15 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/configure.in new/yast2-2.17.15/configure.in --- old/yast2-2.17.14/configure.in 2008-08-25 14:11:19.000000000 +0200 +++ new/yast2-2.17.15/configure.in 2008-08-28 13:40:25.000000000 +0200 @@ -1,9 +1,9 @@ dnl configure.in for yast2 dnl -dnl -- This file is generated by y2autoconf 2.16.7 - DO NOT EDIT! -- +dnl -- This file is generated by y2autoconf 2.17.6 - DO NOT EDIT! -- dnl (edit configure.in.in instead) -AC_INIT(yast2, 2.17.14, http://bugs.opensuse.org/, yast2) +AC_INIT(yast2, 2.17.15, http://bugs.opensuse.org/, yast2) dnl Check for presence of file 'RPMNAME' AC_CONFIG_SRCDIR([RPMNAME]) @@ -18,7 +18,7 @@ AM_INIT_AUTOMAKE(tar-ustar -Wno-portability) dnl Important YaST2 variables -VERSION="2.17.14" +VERSION="2.17.15" RPMNAME="yast2" MAINTAINER="Jiri Srain <jsrain@suse.cz>" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/data/sysconfig.yast2 new/yast2-2.17.15/data/sysconfig.yast2 --- old/yast2-2.17.14/data/sysconfig.yast2 2007-09-07 16:09:37.000000000 +0200 +++ new/yast2-2.17.15/data/sysconfig.yast2 2008-08-28 11:06:29.000000000 +0200 @@ -31,3 +31,24 @@ # mono: white-black # braille: for visually impaired Y2NCURSES_COLOR_THEME="" + +## Type: list(yes,no) +## Default: "no" +# Enable tracking of configuraiton changes in subversion repository +# This is EXPERIMENTAL and not all YaST modules do support it. +# Use at your own risk +STORE_CONFIG_IN_SUBVERSION="no" + +## Type: list(yes,no) +## Default: "no" +# Track all changes in all files in configuration directory +# If set to "no", YaST adds to the repository only files it changes +# itself and the first change of a particular configuration file +# gets lost (it can only be manually compared to the one in +# configuration file). +# If set to "yes", all files in the configuration directory +# are tracked in the subversion repository. This has big impact +# on start-up and finish times of YaST modules +# This option is experimental and not all YaST modules do support +# configuration tracking via subversion +SUBVERSION_ADD_DIRS_RECURSIVE="no" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/agents/cfg_yast2.scr new/yast2-2.17.15/library/agents/cfg_yast2.scr --- old/yast2-2.17.14/library/agents/cfg_yast2.scr 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-2.17.15/library/agents/cfg_yast2.scr 2008-08-28 11:06:27.000000000 +0200 @@ -0,0 +1,17 @@ +/** + * File: + * cfg_yast2.scr + * Summary: + * SCR Agent for reading/writing /etc/sysconfig/yast2 + * using the sysconfig-agent + * + * $Id: cfg_displaymanager.scr 12455 2003-10-22 12:24:49Z visnov $ + * + * Read/Sets the values defined in <tt>/etc/sysconfig/yast2</tt> + * in an easy manner. + */ +.sysconfig.yast2 + +`ag_ini( + `SysConfigFile("/etc/sysconfig/yast2") +) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/cwm/src/CWM.ycp new/yast2-2.17.15/library/cwm/src/CWM.ycp --- old/yast2-2.17.14/library/cwm/src/CWM.ycp 2008-07-11 15:07:30.000000000 +0200 +++ new/yast2-2.17.15/library/cwm/src/CWM.ycp 2008-08-28 13:02:06.000000000 +0200 @@ -4,7 +4,7 @@ * Summary: Routines for common widget manipulation * Authors: Jiri Srain <jsrain@suse.cz> * - * $Id: CWM.ycp 48978 2008-07-10 16:51:50Z mvidner $ + * $Id: CWM.ycp 50435 2008-08-28 11:02:06Z locilka $ * */ @@ -399,14 +399,9 @@ * @return the term (HBox) */ global define term OkCancelBox () ``{ - return `HBox ( - `HStretch (), - `PushButton (`id (`_tp_ok), `opt (`key_F10, `default), - Label::OKButton ()), - `HSpacing (1), - `PushButton (`id (`_tp_cancel), `opt (`key_F9), - Label::CancelButton ()), - `HStretch () + return `ButtonBox ( + `PushButton (`id (`_tp_ok), `opt (`key_F10, `default, `okButton), Label::OKButton ()), + `PushButton (`id (`_tp_cancel), `opt (`key_F9, `cancelButton), Label::CancelButton ()) ); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/desktop/src/menu.ycp new/yast2-2.17.15/library/desktop/src/menu.ycp --- old/yast2-2.17.14/library/desktop/src/menu.ycp 2008-04-07 10:02:02.000000000 +0200 +++ new/yast2-2.17.15/library/desktop/src/menu.ycp 2008-08-28 13:02:06.000000000 +0200 @@ -4,7 +4,7 @@ * Summary: NCurses Control Center * Authors: Michal Svec <msvec@suse.cz> * - * $Id: menu.ycp 45905 2008-04-01 06:46:58Z jsrain $ + * $Id: menu.ycp 50435 2008-08-28 11:02:06Z locilka $ * * Provides a list of available yast2 modules. This module is inteded for use * with ncurses, for X the yast2 control center should be used. @@ -75,11 +75,9 @@ ), `VSpacing(1.0), - `HBox( - `HSpacing(2), - `Left(`PushButton(`id(`help), `opt(`key_F1), Label::HelpButton())), - `Right(`PushButton(`id(`quit), `opt(`key_F9), Label::QuitButton())), - `HSpacing(2) + `ButtonBox ( + `PushButton(`id(`help), `opt(`key_F1, `helpButton), Label::HelpButton()), + `PushButton(`id(`quit), `opt(`key_F9, `cancelButton), Label::QuitButton()) ), `VSpacing(1) )); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/gpg/src/GPGWidgets.ycp new/yast2-2.17.15/library/gpg/src/GPGWidgets.ycp --- old/yast2-2.17.14/library/gpg/src/GPGWidgets.ycp 2007-05-21 12:23:57.000000000 +0200 +++ new/yast2-2.17.15/library/gpg/src/GPGWidgets.ycp 2008-08-28 12:14:05.000000000 +0200 @@ -318,10 +318,9 @@ `Heading(_("Enter Passphrase")), "ask_passphrase", `VSpacing(0.5), - `HBox( - `PushButton(`id(`ok), `opt(`default), Label::OKButton()), - `HSpacing(1), - `PushButton(`id(`cancel), Label::CancelButton()) + `ButtonBox ( + `PushButton (`id (`ok), `opt (`default, `okButton, `key_F10), Label::OKButton()), + `PushButton (`id (`cancel), `opt (`cancelButton, `key_F9), Label::CancelButton()) ) ) ); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/log/src/ALog.ycp new/yast2-2.17.15/library/log/src/ALog.ycp --- old/yast2-2.17.14/library/log/src/ALog.ycp 2008-08-18 12:54:19.000000000 +0200 +++ new/yast2-2.17.15/library/log/src/ALog.ycp 2008-08-28 13:02:06.000000000 +0200 @@ -4,7 +4,7 @@ * Summary: Admin's Log, producing a summary of what YaST did to the system * Authors: Martin Vidner <mvidner@suse.cz> * - * $Id: ALog.ycp 49776 2008-08-06 13:50:01Z mvidner $ + * $Id: ALog.ycp 50435 2008-08-28 11:02:06Z locilka $ * FATE#303700 * TODO stability tag. * @@ -55,8 +55,10 @@ // TODO more lines? term d = `VBox( `InputField (`id (`val), label, ""), - `PushButton (`id (`ok), `opt (`default, `key_F10), Label::OKButton ()) - ); + `ButtonBox ( + `PushButton (`id (`ok), `opt (`default, `key_F10, `okButton), Label::OKButton ()) + ) + ); UI::OpenDialog (d); any ui = nil; do { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/modules/ConfigHistory.ycp new/yast2-2.17.15/library/modules/ConfigHistory.ycp --- old/yast2-2.17.14/library/modules/ConfigHistory.ycp 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-2.17.15/library/modules/ConfigHistory.ycp 2008-08-28 11:06:29.000000000 +0200 @@ -0,0 +1,475 @@ +/* ------------------------------------------------------------------------------ + * Copyright (c) 2008 Novell, Inc. All Rights Reserved. + * + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of version 2 of the GNU General Public License as published by the + * Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, contact Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, you may find + * current contact information at www.novell.com. + * ------------------------------------------------------------------------------ + */ + +/** + * File: modules/ConfigHistory.ycp + * Package: Maintain history of configuration files + * Summary: ConfigHistory settings, input and output functions + * Authors: Jiri Srain <jsrain@suse.cz> + * + * $Id: ConfigHistory.ycp 41350 2007-10-10 16:59:00Z dfiser $ + * + * Routines for tracking configuration files in a subversion repository + * + * Use: + * - at your module start, call ConfigHistory::Init(); which will initialize + * the repo if needed and also commits any uncommitted changes + * - at the module finish, call ConfigHistory::CommitChanges("module name"); + * which will commit the changes made to SVN with appropriate comment + * mentioning the module name in the log + * - to ensure all configuration files are in SVN after initialization, call + * ConfigHistory::InitFiles(["file1", "file2"]) immediatelly after calling + * Init(); which will ensure the changes made are tracked during the first + * run as well + * + * See also /etc/sysconfig/yast2, variables STORE_CONFIG_IN_SUBVERSION and + * SUBVERSION_ADD_DIRS_RECURSIVE + */ + +{ + +module "ConfigHistory"; +textdomain "config-history"; + +/** + * Location of SVN repo + */ +string history_location = "/var/lib/YaST2/config-history"; + +/** + * Location of timestamp for detecting changed files out of version control + */ +string changes_timestamp = "/var/lib/YaST2/config-history-timestamp"; + +/** + * Directories to put under version control + */ +list<string> log_directories = [ "/etc" ]; + +/** + * Is the SVN history active? + */ +boolean use_svn = nil; + +/** + * Always have whole subtree in SVN, not only files changed by YaST + */ +boolean store_whole_subtree = nil; + +/** + * Count of nested transactions (module calling another module) + */ +integer nested_transactions = 0; + +/** + * If true, force commit at the end of initialization/finalization + */ +boolean commit_needed = false; + +/** + * Is the SVN history in use? + * @return boolean true to log to SVN + */ +boolean UseSvn() { + if (use_svn == nil) { + use_svn = (string)SCR::Read (.sysconfig.yast2.STORE_CONFIG_IN_SUBVERSION) == "yes"; + y2milestone ("Using SVN for configuration files: %1", use_svn); + } + return use_svn; +} + +boolean Recursive() { + if (store_whole_subtree == nil) { + store_whole_subtree = (string)SCR::Read (.sysconfig.yast2.SUBVERSION_ADD_DIRS_RECURSIVE) == "yes"; + y2milestone ("Automatically store whole subtree: %1", store_whole_subtree); + } + return store_whole_subtree; +} + +/** + * Initialize a SVN repository for config files in /var/lib/YaST2 + * @return boolean true on success, false otherwise + */ +boolean InitSvnRepository() { + y2milestone ("Initializing repo at %1", history_location); + map out = (map)SCR::Execute (.target.bash_output, + sformat ("svnadmin create %1", history_location)); + if (out["exit"]:-1 != 0) { + y2error ("Failed to initialize SVN repository: %1", out["stderr"]:""); + return false; + } + out = (map)SCR::Execute (.target.bash_output, + sformat ("chown -R root:root %1; chmod -R g= %1; chmod -R o= %1", history_location)); + if (out["exit"]:-1 != 0) { + y2error ("Failed to set svn repo permissions: %1", out["stderr"]:""); + return false; + } + y2milestone ("Repo initialized"); + return true; +} + +/** + * Check the presence of SVN repo for storing changes + * @return boolean true if repo exists + */ +boolean CheckSvnRepository() { + y2milestone ("Checking repo presence"); + map out = (map)SCR::Execute (.target.bash_output, + sformat ("test -d %1", history_location)); + boolean ret = (out["exit"]:-1 == 0); + y2milestone ("Repo found: %1", ret); + return ret; +} + +/** + * Check whether repo has been deployed to the filesystem + * @return boolean true if yes (/.svn exists), false otherwise + */ +boolean CheckRepoLinked() { + y2milestone ("Checking whether repo is linked to root directory"); + map out = (map)SCR::Execute (.target.bash_output, + sformat ("test -d %1", "/.svn")); + boolean ret = (out["exit"]:-1 == 0); + y2milestone ("Repo linked: %1", ret); + return ret; +} + +/** + * Initialize predefined directories for SVN + * @param recursive boolean true to add whole directories incl. subtree, + * false to add directory itself only + * @return boolean true on success, false on failure + */ +boolean InitDirectories(boolean recursive) { + y2milestone ("Linking system with the repository; recursive: %1", recursive); + map out = (map)SCR::Execute (.target.bash_output, + sformat ("svn co file://%1 /", history_location)); + if (out["exit"]:-1 != 0) + { + y2error ("svn check out to root failed: %1", out["stderr"]:""); + return false; + } + boolean success = true; + foreach (string dir, log_directories, { + y2milestone ("Initializing directory %1", dir); + string params = recursive ? "" : "-N"; + out = (map)SCR::Execute (.target.bash_output, + sformat ("cd / ; svn add %2 %1", dir, params)); + if (out["exit"]:-1 != 0) + { + success = false; + y2error ("Failed to add directory %1: %2", dir, out["stderr"]:""); + } + }); + if (! success) + return false; + out = (map)SCR::Execute (.target.bash_output, + "cd / ; svn ci -m 'Initial check-in'"); + if (out["exit"]:-1 != 0) + { + y2error ("Initial check-in to repo failed: %1", out["stderr"]:""); + return false; + } + y2milestone ("Initial check-in succeeded"); + return true; +} + +/** + * Check for files in version control which had been changed but not committed + * @return boolean true on success + */ +boolean CheckUncommitedChanges() { + boolean success = true; + foreach (string dir, log_directories, { + y2milestone ("Checking for uncommitted changes in %1", dir); + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn st |grep '^M'", dir)); + if (out["exit"]:-1 == 1 && ! commit_needed) + { + y2milestone ("No uncommitted change detected"); + } + else + { + out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn ci -m 'Commit remaining changes before running YaST'", + dir)); + if (out["exit"]:-1 != 0) + { + success = false; + y2error ("Failed to commit changes in %1: %2", dir, out["stderr"]:""); + } + } + }); + y2milestone ("Commit successful: %1", success); + return success; +} + +/** + * Create a timestamp to find changed files which are not under version control + * @return boolean true on success + */ +boolean CreateTimeStamp() { + y2milestone ("Creating timestamp to detect changes"); + map out = (map)SCR::Execute (.target.bash_output, sformat ("touch %1", changes_timestamp)); + boolean ret = out["exit"]:-1 == 0; + y2milestone ("Success: %1", ret); + return ret; +} + +/** + * Check for changed files which are not under verison control (e.g. new created files) + * Schedule them for next commit + * @return boolean true on success, false on failure + */ +boolean CheckChangedFilesOutOfVersionControl() { + boolean success = true; + foreach (string dir, log_directories, { + y2milestone ("Checking for new files in %1", dir); + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "find %1 -newer %2 -type f |grep -v '/\\.'", dir, changes_timestamp)); + if (out["exit"]:-1 == 1) + { + y2milestone ("No changes found"); + return; + } + string param = out["stdout"]:""; + list<string> files = splitstring (param, "\n"); + files = filter (string f, files, { return f != ""; }); + files = filter (string f, files, { + return 0 == (integer)SCR::Execute (.target.bash, sformat ( + "svn st %1 | grep '^?'", f)); + }); + commit_needed = commit_needed || (size (files) > 0); + if (size (files) > 0) { + param = mergestring (files, " "); + out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn add --parents %2", dir, param)); + if (out["exit"]:-1 != 0) + { + success = false; + y2error ("Failed to add changes: %1", out["stderr"]:""); + } + } + }); + SCR::Execute (.target.bash_output, sformat ("rm %1", changes_timestamp)); + return success; +} + +/** + * Find all files which are not under version control + * Schedule such files for next commit + * @return boolean true on success, false otherwise + */ +boolean CheckAllFilesOutOfVersionControl() { + boolean success = true; + y2milestone ("Adding all files out of version control"); + foreach (string dir, log_directories, { + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn add `svn st |grep '^?'|cut -d ' ' -f 7`", dir)); + if (out["exit"]:-1 != 0) + { + y2error ("Failed to add files in %1: %2", dir, out["stderr"]:""); + success = false; + } + }); + commit_needed = true; // TODO check if really necessary + y2milestone ("Finished successfuly: %1", success); + return success; +} + +/** + * Check for files which had been deleted, but are still in SVN + * Schedule such files for deletion with next commit + * @return boolean true on success, false otherwise + */ +boolean RemoveDeletedFiles() { + boolean success = true; + y2milestone ("Checking for removed files"); + foreach (string dir, log_directories, { + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn st |grep '^!'|cut -d ' ' -f 7", dir)); + if (out["exit"]:-1 != 0) + { + y2error ("Failed to check for deleted files in %1: %2", dir, out["stderr"]:""); + success = false; + return; + } + string filelist = out["stdout"]:""; + list<string> files = splitstring (filelist, " "); + files = filter (string f, files, { return f != ""; }); + if (size (files) == 0) + return; + filelist = mergestring (files, " "); + out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn rm %2", dir, filelist)); + if (out["exit"]:-1 != 0) + { + y2error ("Failed to remove files in %1: %2", dir, out["stderr"]:""); + success = false; + } + }); + commit_needed = true; // TODO check if really necessary + y2milestone ("Finished successfuly: %1", success); + return success; +} + +/** + * Do commit to subversion + * @return boolean tru eon success + */ +boolean DoCommit(string mod) { + y2milestone ("Committing changes"); + string arg = mergestring (log_directories, " "); + y2debug ("Directories to commit: %1", arg); + string log = sformat ("Changes by YaST module %1", mod); + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd / ; svn ci -m '%1' %2", log, arg)); + boolean ret = out["exit"]:-1 == 0; + y2milestone ("Success: %1", ret); + return ret; +} + +/** + * Update check-out from SVN to avoid commit conflicts + * @return boolean true on success + */ +boolean UpdateCheckout() { + boolean success = true; + foreach (string dir, log_directories, { + y2milestone ("Updating configuration files in %1", dir); + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn up", dir)); + if (out["exit"]:-1 != 0) + { + y2error ("Failed to update %1 from SVN: %2", dir, out["stderr"]:""); + success = false; + } + }); + return success; +} + +/** + * Initialize before module is started + * Do not call CommitChanges unless Init returns true! + * @return boolean true on success, false on failure + */ +global boolean Init() { + if (! UseSvn()) + return true; + if (nested_transactions > 0) + { + nested_transactions = nested_transactions + 1; + y2milestone ("Skiping SVN initialization, translaction already in progress"); + return true; + } + //ensure the repo exists + if (! CheckSvnRepository ()) { + if (! InitSvnRepository()) + return false; + } + if (! CheckRepoLinked()) { + if (! InitDirectories(Recursive())) + return false; + } + if (Recursive()) { + CheckAllFilesOutOfVersionControl(); + } + RemoveDeletedFiles(); + if (! UpdateCheckout()) { + return false; + } + if (! CheckUncommitedChanges()) + return false; + if (! CreateTimeStamp()) + return false; + nested_transactions = nested_transactions + 1; + return true; +} + +/** + * Commit changes done by YaST into the SVN repo + * @param module_name string name of YaST module which does commit + * used only in the commit log + * @return boolean true on success, false on failure + */ +global boolean CommitChanges(string module_name) { + if (! UseSvn()) + return true; + nested_transactions = nested_transactions - 1; + if (nested_transactions > 0) + { + y2milestone ("Skipping commit, all nested transaction not yet finished"); + return true; + } + boolean success = true; + if (Recursive()) + success = CheckAllFilesOutOfVersionControl(); + else + success = CheckChangedFilesOutOfVersionControl(); + success = RemoveDeletedFiles() && success; + if (! UpdateCheckout()) { + success = false; + } + success = DoCommit(module_name) && success; + return true; +} + +/** + * Initialize specified files for version control; useful when + * not having whole directory under version control, but only + * relevant files + * @param files a list of files to add to repo (resp. ensure they are in) + * @return boolean true on success, false otherwise + */ +global boolean InitFiles(list<string> files) { + if (size (files) == 0) + return true; + if (! UseSvn()) + return true; + if (Recursive()) + return true; + if (nested_transactions == 0) + { + y2error ("InitFiles called before prior initialization"); + return false; + } + string filelist = mergestring (files, " "); + map out = (map)SCR::Execute (.target.bash_output, sformat ( + "svn add %1", filelist)); + if (out["exit"]:-1 != 0) { + y2error ("Failed to schedule files %1 for addition: %2", filelist, out["stderr"]:""); + return false; + } + boolean success = true; + foreach (string dir, log_directories, { + out = (map)SCR::Execute (.target.bash_output, sformat ( + "cd %1; svn ci -m 'Initial check-in of files to be changed'", dir)); + if (out["exit"]:-1 != 0) + { + y2error ("Failed to commit changes to %1: %2", dir, out["exit"]:""); + success = false; + } + }); + return success; +} + + +/* EOF */ +} diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/modules/Popup.ycp new/yast2-2.17.15/library/modules/Popup.ycp --- old/yast2-2.17.14/library/modules/Popup.ycp 2008-07-11 15:07:30.000000000 +0200 +++ new/yast2-2.17.15/library/modules/Popup.ycp 2008-08-28 11:56:14.000000000 +0200 @@ -7,7 +7,7 @@ * Arvin Schnell <arvin@suse.de> * Flags: Stable * - * $Id: Popup.ycp 48991 2008-07-11 11:55:54Z locilka $ + * $Id: Popup.ycp 50431 2008-08-28 09:56:14Z locilka $ * * Contains commonly used popup dialogs * for general usage, e.g. Popup::YesNo(), Popup::ContinueCancel(). @@ -165,13 +165,11 @@ integer width, integer height ) { - term button_box = `HBox( - `HStretch(), - `HWeight(1, `PushButton( `id(`stop), Label::StopButton())), - `HSpacing(2), - `HWeight(1, `PushButton( `id(`ok_msg), `opt(`default, `key_F10), Label::OKButton())), - `HStretch() + term button_box = `ButtonBox ( + `PushButton (`id (`stop), `opt (`customButton), Label::StopButton()), + `PushButton (`id (`ok_msg), `opt (`default, `okButton), Label::OKButton()) ); + UI::OpenDialog( `opt(`decorated), popupLayoutInternalTypeWithLabel( headline, message, icon_name, @@ -189,7 +187,7 @@ if (button == `stop) { - while(UI::UserInput() != `ok_msg){}; + while (UI::UserInput() != `ok_msg){}; break; } @@ -266,29 +264,18 @@ if ( focus == `focus_no ) { - yes_button = `PushButton( `id(`yes), - `opt (`key_F10), - yes_button_message ); - no_button = `PushButton( `id(`no_button), - `opt(`default, `key_F9), - no_button_message ); + yes_button = `PushButton (`id (`yes), `opt (`okButton), yes_button_message); + no_button = `PushButton (`id (`no_button), `opt(`default, `cancelButton), no_button_message); } else { - yes_button = `PushButton( `id(`yes), - `opt(`default, `key_F10), - yes_button_message); - no_button = `PushButton( `id(`no_button), - `opt (`key_F9), - no_button_message ); + yes_button = `PushButton (`id (`yes), `opt (`default, `okButton), yes_button_message); + no_button = `PushButton (`id (`no_button), `opt (`cancelButton), no_button_message); } - term button_box = `HBox( - `HStretch (), - `HWeight( 1, yes_button), - `HSpacing(2), - `HWeight( 1, no_button ), - `HStretch () + term button_box = `ButtonBox ( + yes_button, + no_button ); return button_box; } @@ -362,10 +349,9 @@ `HCenter( `Label(`id(`remaining_time), "" + timeout_seconds) ), - `HBox( - `PushButton(`id(`timed_stop), Label::StopButton() ), - `HSpacing(2), - `PushButton(`id(`timed_ok), `opt(`default, `key_F10), Label::OKButton() ) + `ButtonBox ( + `PushButton (`id (`timed_stop), `opt (`customButton), Label::StopButton()), + `PushButton (`id (`timed_ok), `opt (`default, `key_F10, `okButton), Label::OKButton()) ), `VSpacing(0.2) ) @@ -551,16 +537,21 @@ global define void LongText( string headline, term richtext, integer hdim, integer vdim ) { - UI::OpenDialog( `opt( `decorated ), - `HBox( `VSpacing(vdim), - `VBox (`HSpacing(hdim), - `Left(`Heading( headline )), - `VSpacing(0.2), - richtext, // scrolled text - `PushButton( `id(`ok), `opt(`default, `key_F10), Label::OKButton() ) - ) - ) - ); + UI::OpenDialog ( + `opt (`decorated), + `HBox ( + `VSpacing(vdim), + `VBox ( + `HSpacing(hdim), + `Left (`Heading (headline)), + `VSpacing(0.2), + richtext, // scrolled text + `ButtonBox ( + `PushButton (`id (`ok), `opt (`default, `key_F10, `okButton), Label::OKButton()) + ) + ) + ) + ); UI::SetFocus(`id(`ok ) ); @@ -590,16 +581,20 @@ { term yes_button = `PushButton ( `id (`ok), - ( focus == `focus_yes ? - `opt (`default, `key_F10) : - `opt (`key_F10) ), + (focus == `focus_yes ? + `opt (`default, `key_F10, `okButton) + : + `opt (`key_F10, `okButton) + ), yes_button_message); term no_button = `PushButton ( `id (`cancel), - ( focus == `focus_no ? - `opt (`default, `key_F9) : - `opt (`key_F9) ), + (focus == `focus_no ? + `opt (`default, `key_F9) + : + `opt (`key_F9) + ), no_button_message); term d = `HBox ( @@ -609,12 +604,13 @@ size (headline) > 0 ? `Left(`Heading( headline )) : `Empty (), `VSpacing(0.2), `RichText (richtext), - `HBox ( + `ButtonBox ( yes_button, no_button ) ) ); + UI::OpenDialog (`opt (`decorated), d); any ui = UI::UserInput (); UI::CloseDialog (); @@ -765,11 +761,12 @@ */ define void anyMessageDetailsInternalType(string headline, string message, string details, string icon_name, boolean richtext, integer width, integer height ) { - term button_box = `HBox ( - `PushButton (`id(`ok_msg), `opt (`default, `key_F10), Label::OKButton()), + term button_box = `ButtonBox ( + `PushButton (`id(`ok_msg), `opt (`default, `okButton), Label::OKButton()), // button label - `PushButton (`id(`details), `opt (`key_F6), _("&Details...")) + `PushButton (`id(`details), `opt (`key_F6, `customButton), _("&Details...")) ); + UI::OpenDialog ( `opt(`decorated), richtext ? popupLayoutInternalRich(headline, message, icon_name, button_box, width, height) @@ -789,7 +786,9 @@ `VSpacing (0.5), `RichText (mergestring(splitstring(String::EscapeTags(details), "\n"), "<br>")), `VSpacing (), - `PushButton (`id(`ok), `opt(`default, `key_F10), Label::OKButton()) + `ButtonBox ( + `PushButton (`id (`ok), `opt (`default, `key_F10, `okButton), Label::OKButton()) + ) ) )); UI::UserInput(); @@ -811,7 +810,10 @@ */ define void anyMessageInternalType(string headline, string message, string icon_name, boolean richtext, integer width, integer height ) { - term button_box = `PushButton( `id(`ok_msg), `opt(`default, `key_F10), Label::OKButton() ); + term button_box = `ButtonBox ( + `PushButton (`id (`ok_msg), `opt (`default, `key_F10, `okButton), Label::OKButton()) + ); + UI::OpenDialog( `opt(`decorated), richtext ? popupLayoutInternalRich(headline, message, icon_name, button_box, width, height) : @@ -857,7 +859,10 @@ */ define void anyRichMessageInternal(string headline, string message, string icon_name, integer width, integer height ) { - term button_box = `PushButton( `id(`ok_msg), `opt(`default, `key_F10), Label::OKButton() ); + term button_box = `ButtonBox ( + `PushButton (`id(`ok_msg), `opt (`default, `key_F10), Label::OKButton()) + ); + UI::OpenDialog( `opt(`decorated), popupLayoutInternalRich( headline, message, icon_name, button_box, width, height ) @@ -1314,12 +1319,10 @@ `HCenter( `Label(`id(`remaining_time), "" + timeout_seconds) ), - `HBox( - `PushButton(`id(`timed_stop), Label::StopButton() ), - `HSpacing(2), - `PushButton(`id(`timed_ok), `opt(`default, `key_F10), Label::OKButton() ), - `HSpacing(2), - `PushButton(`id(`timed_cancel), `opt (`key_F9), Label::CancelButton() ) + `ButtonBox ( + `PushButton (`id (`timed_stop), `opt (`customButton), Label::StopButton()), + `PushButton (`id (`timed_ok), `opt (`default, `key_F10, `okButton), Label::OKButton()), + `PushButton (`id (`timed_cancel), `opt (`key_F9, `cancelButton), Label::CancelButton()) ), `VSpacing(0.2) ) @@ -1378,49 +1381,29 @@ term no_button = `Empty(); term retry_button = `Empty(); - if ( focus == `focus_no ) + if (focus == `focus_no) { - yes_button = `PushButton( `id(`yes), - `opt (`key_F10), - yes_button_message ); - no_button = `PushButton( `id(`no), - `opt(`default, `key_F9), - no_button_message ); - retry_button = `PushButton( `id(`retry), - `opt (`key_F6), - retry_button_message ); - } - else if ( focus == `focus_yes ) - { - yes_button = `PushButton(`id(`yes), - `opt(`default, `key_F10), - yes_button_message); - no_button = `PushButton( `id(`no), - `opt (`key_F9), - no_button_message ); - retry_button = `PushButton( `id(`retry), - `opt (`key_F6), - retry_button_message ); + yes_button = `PushButton (`id (`yes), `opt (`key_F10, `okButton), yes_button_message); + no_button = `PushButton (`id (`no), `opt(`default, `key_F9, `cancelButton), no_button_message); + retry_button = `PushButton (`id(`retry), `opt (`key_F6, `customButton), retry_button_message); + } + else if (focus == `focus_yes) + { + yes_button = `PushButton (`id(`yes), `opt(`default, `key_F10, `okButton), yes_button_message); + no_button = `PushButton (`id(`no), `opt (`key_F9, `cancelButton), no_button_message); + retry_button = `PushButton (`id(`retry), `opt (`key_F6, `customButton), retry_button_message); } else { - yes_button = `PushButton(`id(`yes), - `opt (`key_F10), - yes_button_message); - no_button = `PushButton( `id(`no), - `opt (`key_F9), - no_button_message ); - retry_button = `PushButton( `id(`retry), - `opt(`default, `key_F6), - retry_button_message ); - } - - term button_box = `HBox( - `HWeight( 1, yes_button), - `HSpacing(2), - `HWeight( 1, no_button ), - `HSpacing(2), - `HWeight( 1, retry_button ) + yes_button = `PushButton (`id (`yes), `opt (`key_F10, `okButton), yes_button_message); + no_button = `PushButton (`id (`no), `opt (`key_F9, `cancelButton), no_button_message); + retry_button = `PushButton (`id(`retry), `opt (`default, `key_F6, `customButton), retry_button_message); + } + + term button_box = `ButtonBox ( + yes_button, + no_button, + retry_button ); UI::OpenDialog( @@ -1460,11 +1443,11 @@ `VBox( `VSpacing(0.2), `Heading(text), - `HBox( - `PushButton(`id(`back), `opt (`key_F8), Label::BackButton() ), - `PushButton(`id(`again), `opt (`key_F6), Label::RetryButton() ), - `PushButton(`id(`cancel), `opt (`key_F9), Label::QuitButton() ), - `PushButton(`id(`next), `opt (`key_F10), Label::NextButton() ) + `ButtonBox ( + `PushButton(`id(`back), `opt (`key_F8, `customButton), Label::BackButton()), + `PushButton(`id(`again), `opt (`key_F6, `customButton), Label::RetryButton()), + `PushButton(`id(`cancel), `opt (`key_F9, `cancelButton), Label::QuitButton()), + `PushButton(`id(`next), `opt (`key_F10, `okButton), Label::NextButton()) ), `VSpacing(0.2) ), @@ -1542,7 +1525,9 @@ `VSpacing( 0.3 ), `Label(`id(`label), sformat("%1", timeout)), `VSpacing(0.2), - `PushButton(`id(`ok_msg), `opt(`default, `key_F10), Label::OKButton() ), + `ButtonBox ( + `PushButton(`id (`ok_msg), `opt(`default, `key_F10, `okButton), Label::OKButton()) + ), `VSpacing( 0.3 ) ) ); @@ -1595,8 +1580,11 @@ ) ), `VSpacing( 0.3 ), - `PushButton( `opt(`default, `key_F10), Label::OKButton() ), `VSpacing( 0.3 ) - ) + `ButtonBox ( + `PushButton (`opt (`default, `key_F10, `okButton), Label::OKButton()) + ), + `VSpacing (0.3) + ) ); UI::UserInput(); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/modules/ValueBrowser.ycp new/yast2-2.17.15/library/modules/ValueBrowser.ycp --- old/yast2-2.17.14/library/modules/ValueBrowser.ycp 2008-03-31 16:09:41.000000000 +0200 +++ new/yast2-2.17.15/library/modules/ValueBrowser.ycp 2008-08-28 13:02:06.000000000 +0200 @@ -6,7 +6,7 @@ * Dan Vesely? * Flags: Unstable * - * $Id: ValueBrowser.ycp 44396 2008-02-12 15:52:28Z msvec $ + * $Id: ValueBrowser.ycp 50435 2008-08-28 11:02:06Z locilka $ */ { @@ -145,7 +145,9 @@ `VBox ( // translators: Tree header `Tree (`opt (`hstretch, `vstretch), _("&Variable"), [ items ]), - `PushButton (Label::OKButton()) + `ButtonBox ( + `PushButton (`id (`ok), `opt (`okButton, `key_F10), Label::OKButton()) + ) ) ); UI::UserInput (); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/modules/Version.ycp new/yast2-2.17.15/library/modules/Version.ycp --- old/yast2-2.17.14/library/modules/Version.ycp 2008-08-25 14:11:41.000000000 +0200 +++ new/yast2-2.17.15/library/modules/Version.ycp 2008-08-28 13:40:34.000000000 +0200 @@ -20,7 +20,7 @@ /** * Version of the yast2 package */ -global string yast2 = "2.17.14"; +global string yast2 = "2.17.15"; /* EOF */ } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/network/src/CWMFirewallInterfaces.ycp new/yast2-2.17.15/library/network/src/CWMFirewallInterfaces.ycp --- old/yast2-2.17.14/library/network/src/CWMFirewallInterfaces.ycp 2008-08-18 12:54:19.000000000 +0200 +++ new/yast2-2.17.15/library/network/src/CWMFirewallInterfaces.ycp 2008-08-28 13:02:06.000000000 +0200 @@ -4,7 +4,7 @@ * Summary: Routines for selecting interfaces opened in firewall * Authors: Jiri Srain <jsrain@suse.cz> * - * $Id: CWMFirewallInterfaces.ycp 49934 2008-08-11 11:52:49Z kmachalkova $ + * $Id: CWMFirewallInterfaces.ycp 50435 2008-08-28 11:02:06Z locilka $ * * WARNING: If you want to use this functionality of this module * you should allways call 'SuSEFirewall::Read()' in the @@ -778,11 +778,9 @@ string help = CWM::MergeHelps (w); term contents = `VBox ( "firewall_ifaces", - `HBox ( - `HStretch (), - `PushButton (`id (`ok), Label::OKButton ()), - `PushButton (`id (`cancel), Label::CancelButton ()), - `HStretch () + `ButtonBox ( + `PushButton (`id (`ok), `opt (`okButton, `key_F10), Label::OKButton ()), + `PushButton (`id (`cancel), `opt (`cancelButton, `key_F9), Label::CancelButton ()) ) ); contents = CWM::PrepareDialog (contents, w); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/network/src/NetworkPopup.ycp new/yast2-2.17.15/library/network/src/NetworkPopup.ycp --- old/yast2-2.17.14/library/network/src/NetworkPopup.ycp 2008-01-29 13:34:16.000000000 +0100 +++ new/yast2-2.17.15/library/network/src/NetworkPopup.ycp 2008-08-28 13:02:06.000000000 +0200 @@ -9,7 +9,7 @@ * Martin Vidner <mvidner@suse.cz> * Ladislav Slezak <lslezak@suse.cz> * - * $Id: NetworkPopup.ycp 43882 2008-01-24 14:18:42Z mzugec $ + * $Id: NetworkPopup.ycp 50435 2008-08-28 11:02:06Z locilka $ * * Network browsing dialogs - all hosts, NFS servers, exports of the NFS server * @@ -69,11 +69,9 @@ `Table(`id(`items), `header(_("Device Type"),_("Device Name"),_("IP Address"),_("Device ID")), Items), `VSpacing(10) ), - `HBox ( - `PushButton (`id(`ok), `opt(`default, `key_F10), - Label::OKButton()), - `PushButton (`id(`cancel), `opt(`key_F9), - Label::CancelButton()) + `ButtonBox ( + `PushButton (`id(`ok), `opt(`default, `key_F10, `okButton), Label::OKButton()), + `PushButton (`id(`cancel), `opt(`key_F9, `cancelButton), Label::CancelButton()) ) )); UI::ChangeWidget(`id(`items), `CurrentItem, selected); @@ -116,11 +114,9 @@ `SelectionBox (`id (`items), title, Items), `VSpacing(10) ), - `HBox ( - `PushButton (`id(`ok), `opt(`default, `key_F10), - Label::OKButton()), - `PushButton (`id(`cancel), `opt(`key_F9), - Label::CancelButton()) + `ButtonBox ( + `PushButton (`id(`ok), `opt(`default, `key_F10, `okButton), Label::OKButton()), + `PushButton (`id(`cancel), `opt(`key_F9, `cancelButton), Label::CancelButton()) ) )); UI::SetFocus (`id (`items)); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/packages/src/PackageCallbacks.ycp new/yast2-2.17.15/library/packages/src/PackageCallbacks.ycp --- old/yast2-2.17.14/library/packages/src/PackageCallbacks.ycp 2008-08-21 17:44:15.000000000 +0200 +++ new/yast2-2.17.15/library/packages/src/PackageCallbacks.ycp 2008-08-28 13:27:46.000000000 +0200 @@ -7,7 +7,7 @@ * * Purpose: provides the default Callbacks for Pkg:: * - * $Id: PackageCallbacks.ycp 50260 2008-08-21 11:11:22Z lslezak $ + * $Id: PackageCallbacks.ycp 50438 2008-08-28 11:27:45Z locilka $ * */ @@ -156,10 +156,8 @@ ) )), `ProgressBar(`id(`progress), "", 100, 0 ), - `HBox ( - `HStretch (), - `PushButton (`id (`abort), Label::AbortButton ()), - `HStretch () + `ButtonBox ( + `PushButton (`id (`abort), `opt (`key_F9, `cancelButton), Label::AbortButton ()) ) ); return progressbox; @@ -367,9 +365,11 @@ return "I"; } - term button_box = `HBox (`PushButton (`id(`abort), Label::AbortButton())); - button_box = add (button_box, `PushButton(`id(`retry), Label::RetryButton())); - button_box = add (button_box, `PushButton(`id(`ignore), Label::SkipButton())); + term button_box = `ButtonBox ( + `PushButton (`id(`abort), `opt (`cancelButton, `key_F9), Label::AbortButton()), + `PushButton (`id(`retry), `opt (`customButton), Label::RetryButton()), + `PushButton (`id(`ignore), `opt (`okButton), Label::SkipButton()) + ); if ( showLongInfo ) { @@ -579,9 +579,11 @@ } } else { - term button_box = `HBox (`PushButton (`id(`abort), Label::AbortButton()), - `PushButton(`id(`retry), Label::RetryButton()), - `PushButton(`id(`ignore), Label::IgnoreButton())); + term button_box = `ButtonBox ( + `PushButton (`id(`abort), `opt (`cancelButton), Label::AbortButton()), + `PushButton (`id(`retry), `opt (`commonButton), Label::RetryButton()), + `PushButton (`id(`ignore), `opt (`okButton), Label::IgnoreButton()) + ); if ( showLongInfo ) { @@ -790,18 +792,18 @@ // -------------------------------------- // build up button box - term button_box = `HBox (`PushButton (`id(`retry), `opt(`default), Label::RetryButton())); + term button_box = `ButtonBox (`PushButton (`id(`retry), `opt(`default, `commonButton), Label::RetryButton())); if (current == -1) // wrong media id, offer "Ignore" { - button_box = add (button_box, `PushButton(`id(`ignore), Label::IgnoreButton())); + button_box = add (button_box, `PushButton(`id(`ignore), `opt (`okButton), Label::IgnoreButton())); } - button_box = add (button_box, `PushButton (`id(`cancel), Label::AbortButton())); + button_box = add (button_box, `PushButton (`id(`cancel), `opt (`cancelButton), Label::AbortButton())); // push button label during media change popup, user can skip // this media (CD) so no packages from this media will be installed - button_box = add (button_box, `PushButton (`id(`skip), _("&Skip"))); + button_box = add (button_box, `PushButton (`id(`skip), `opt(`commonButton), _("&Skip"))); if (offer_eject_button) { @@ -1307,9 +1309,9 @@ UI::OpenDialog (`VBox ( `Label (message), `RichText(detail), - `HBox ( - `PushButton (`id (`RETRY), Label::RetryButton()), - `PushButton (`id (`ABORT), Label::AbortButton()) + `ButtonBox ( + `PushButton (`id (`RETRY), `opt (`okButton), Label::RetryButton()), + `PushButton (`id (`ABORT), `opt (`cancelButton), Label::AbortButton()) ) )); symbol ret = (symbol)UI::UserInput (); @@ -1423,9 +1425,9 @@ UI::OpenDialog (`VBox ( `Label (message), `RichText(detail), - `HBox ( - `PushButton (`id (`RETRY), Label::RetryButton()), - `PushButton (`id (`ABORT), Label::AbortButton()) + `ButtonBox ( + `PushButton (`id (`RETRY), `opt (`okButton), Label::RetryButton()), + `PushButton (`id (`ABORT), `opt (`cancelButton), Label::AbortButton()) ) )); symbol ret = (symbol)UI::UserInput (); @@ -1517,8 +1519,8 @@ `Label (message), `RichText(detail), `HBox ( - `PushButton (`id (`RETRY), Label::RetryButton()), - `PushButton (`id (`ABORT), Label::AbortButton()) + `PushButton (`id (`RETRY), `opt (`okButton), Label::RetryButton()), + `PushButton (`id (`ABORT), `opt (`cancelButton), Label::AbortButton()) ) )); symbol ret = (symbol)UI::UserInput (); @@ -1699,7 +1701,9 @@ // label `LogView(`id(`log), _("Output of the Script"), 10, 0), - `PushButton(`id(`abort), `opt(`default, `key_F9), Label::AbortButton()) + `ButtonBox ( + `PushButton(`id(`abort), `opt(`default, `key_F9, `cancelButton), Label::AbortButton()) + ) ); if (_script_popup) @@ -1814,10 +1818,9 @@ Note: If the refresh is skipped some packages might be missing or out of date.")), - `HBox( - `PushButton(`id(`continue), `opt(`default), Label::ContinueButton()), - `HSpacing(2), - `PushButton(`id(`skip), _("Skip Refresh")) + `ButtonBox ( + `PushButton (`id(`continue), `opt (`default, `okButton), Label::ContinueButton()), + `PushButton (`id(`skip), `opt (`commonButton), _("Skip Refresh")) ) ) ) @@ -1874,10 +1877,8 @@ `HSpacing(1) ), `VSpacing(0.5), - `HBox ( - `HStretch (), - `PushButton (`id (`abort), Label::AbortButton ()), - `HStretch () + `ButtonBox ( + `PushButton (`id (`abort), `opt (`cancelButton), Label::AbortButton ()) ), `VSpacing(0.5) ) @@ -2322,11 +2323,11 @@ boolean show_details = false; - term button_box = `HBox + term button_box = `ButtonBox ( - `PushButton (`id(`abort), Label::AbortButton()), - `PushButton(`id(`retry), Label::RetryButton()), - `PushButton(`id(`ignore), Label::IgnoreButton()) + `PushButton (`id (`abort), `opt (`cancelButton), Label::AbortButton()), + `PushButton (`id (`retry), `opt (`commonButton), Label::RetryButton()), + `PushButton (`id (`ignore), `opt (`okButton), Label::IgnoreButton()) ); UI::OpenDialog( `opt(`decorated), LayoutPopup (message, button_box, 1, false) ); @@ -2433,10 +2434,9 @@ `HSpacing(1) ), `VSpacing(0.5), - `HBox( - `PushButton (`id(`cont), `opt(`default), Label::ContinueButton()), - `HSpacing(1), - `PushButton(`id(`cancel), Label::CancelButton()) + `ButtonBox ( + `PushButton (`id(`cont), `opt (`default, `okButton), Label::ContinueButton()), + `PushButton(`id(`cancel), `opt (`cancelButton), Label::CancelButton()) ), `VSpacing(0.5) ); @@ -2522,7 +2522,9 @@ (in_percent) ? `ProgressBar (`id (`progress_widget), task, 100, val_percent) : `BusyIndicator(`id(`progress_widget), task, 3000), `VSpacing(0.2), - `PushButton (`id (`abort), Label::AbortButton ()), + `ButtonBox ( + `PushButton (`id (`abort), `opt (`cancelButton), Label::AbortButton ()) + ), `VSpacing(0.5) ), `HSpacing(1) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/packages/src/SignatureCheckDialogs.ycp new/yast2-2.17.15/library/packages/src/SignatureCheckDialogs.ycp --- old/yast2-2.17.14/library/packages/src/SignatureCheckDialogs.ycp 2008-04-07 10:02:02.000000000 +0200 +++ new/yast2-2.17.15/library/packages/src/SignatureCheckDialogs.ycp 2008-08-28 13:31:58.000000000 +0200 @@ -271,18 +271,17 @@ * @return term with buttons */ term YesNoButtons (symbol default_button) { - term yes_button = `PushButton(`id(`yes), Label::YesButton()); - term no_button = `PushButton(`id(`no), Label::NoButton()); + term yes_button = `PushButton(`id(`yes), `opt (`okButton, `key_F10), Label::YesButton()); + term no_button = `PushButton(`id(`no), `opt (`cancelButton, `key_F9), Label::NoButton()); if (default_button == `yes) { - yes_button = `PushButton(`id(`yes), `opt(`default), Label::YesButton()); + yes_button = `PushButton(`id(`yes), `opt(`default, `okButton, `key_F10), Label::YesButton()); } else { - no_button = `PushButton(`id(`no), `opt(`default), Label::NoButton()); + no_button = `PushButton(`id(`no), `opt(`default, `cancelButton, `key_F9), Label::NoButton()); } - return `HBox ( + return `ButtonBox ( yes_button, - `HSpacing(2), no_button ); } @@ -654,9 +653,8 @@ `MarginBox(0.5, 0.5, `Label(description_text)), `HBox ( // push button - `PushButton(`id(`trust), _("&Trust and Import the Key")), - `HSpacing(1), - `PushButton(`id(`skip), Label::SkipButton()) + `PushButton(`id(`trust), `opt(`okButton, `key_F10), _("&Trust and Import the Key")), + `PushButton(`id(`skip), `opt (`cancelButton, `key_F9), Label::SkipButton()) ) ) ); @@ -757,15 +755,11 @@ ), // dialog buttons `Bottom( - `HBox ( + `ButtonBox ( // push button - `PushButton(`id(`import), _("&Import")), - `HSpacing(1), + `PushButton (`id (`import), `opt (`okButton, `key_F10), _("&Import")), // push button - //`PushButton(`id(`details), _("&Details...")), - //`HSpacing(1), - // push button - `PushButton(`id(`dont_import), _("Do &Not Import")) + `PushButton (`id (`dont_import), `opt (`cancelButton, `key_F9), _("Do &Not Import")) ) ) ) @@ -863,15 +857,11 @@ ), // dialog buttons `Bottom( - `HBox ( - // push button - `PushButton(`id(`import), _("&Import")), - `HSpacing(1), + `ButtonBox ( // push button - //`PushButton(`id(`details), _("&Details...")), - //`HSpacing(1), + `PushButton(`id(`import), `opt (`key_F10, `okButton), _("&Import")), // push button - `PushButton(`id(`dont_import), _("Do &Not Import")) + `PushButton(`id(`dont_import), `opt (`key_F9, `cancelButton), _("Do &Not Import")) ) ) ) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/system/src/FileChanges.ycp new/yast2-2.17.15/library/system/src/FileChanges.ycp --- old/yast2-2.17.14/library/system/src/FileChanges.ycp 2008-07-11 15:07:30.000000000 +0200 +++ new/yast2-2.17.15/library/system/src/FileChanges.ycp 2008-08-28 13:34:54.000000000 +0200 @@ -167,8 +167,10 @@ term content = `VBox( `Label(msg), `Left(`CheckBox(`id(`disable), _("Do not show this message anymore"))), - `HBox(`PushButton(`id(`ok), Label::ContinueButton()), - `PushButton(`id(`cancel), Label::CancelButton())) + `ButtonBox ( + `PushButton(`id(`ok), `opt (`okButton), Label::ContinueButton()), + `PushButton(`id(`cancel), `opt (`cancelButton), Label::CancelButton()) + ) ); UI::OpenDialog(content); UI::SetFocus(`ok); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/system/src/Initrd.ycp new/yast2-2.17.15/library/system/src/Initrd.ycp --- old/yast2-2.17.14/library/system/src/Initrd.ycp 2008-08-25 12:56:10.000000000 +0200 +++ new/yast2-2.17.15/library/system/src/Initrd.ycp 2008-08-28 13:39:08.000000000 +0200 @@ -11,7 +11,7 @@ * Authors: * Jiri Srain <jsrain@suse.cz> * - * $Id: Initrd.ycp 50302 2008-08-22 08:19:25Z jsrain $ + * $Id: Initrd.ycp 50440 2008-08-28 11:39:07Z locilka $ * */ { @@ -332,7 +332,9 @@ // heading `Heading(header), text, // e.g. `Richtext() - `PushButton( `id(`ok_help), `opt(`default), Label::OKButton() ) + `ButtonBox ( + `PushButton( `id(`ok_help), `opt(`default, `okButton), Label::OKButton()) + ) ) ); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/system/src/ModuleLoading.ycp new/yast2-2.17.15/library/system/src/ModuleLoading.ycp --- old/yast2-2.17.14/library/system/src/ModuleLoading.ycp 2007-05-21 12:23:40.000000000 +0200 +++ new/yast2-2.17.15/library/system/src/ModuleLoading.ycp 2008-08-28 13:39:08.000000000 +0200 @@ -6,7 +6,7 @@ * Purpose: * This module does all module loading stuff. * - * $Id: ModuleLoading.ycp 25850 2005-10-10 13:38:49Z mvidner $ + * $Id: ModuleLoading.ycp 50440 2008-08-28 11:39:07Z locilka $ */ { module "ModuleLoading"; @@ -168,14 +168,11 @@ `Left(`TextEntry(`id(`mod_name), _("&Driver/Module to load"), modulename+" "+moduleargs)) ) ) - ), - `HSquash( - `HBox( - `HWeight( 1, `PushButton(`id(`ok_msg), `opt(`default), Label::OKButton())), - `HSpacing(2), - `HWeight( 1, `PushButton(`id(`cancel_msg), Label::CancelButton())) - ) - ), + ), + `ButtonBox ( + `PushButton (`id (`ok_msg), `opt (`default, `okButton, `key_F10), Label::OKButton()), + `PushButton (`id (`cancel_msg), `opt (`cancelButton, `key_F9), Label::CancelButton()) + ), `VSpacing(0.2) ) ) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/wizard/src/Confirm.ycp new/yast2-2.17.15/library/wizard/src/Confirm.ycp --- old/yast2-2.17.14/library/wizard/src/Confirm.ycp 2008-03-31 16:09:39.000000000 +0200 +++ new/yast2-2.17.15/library/wizard/src/Confirm.ycp 2008-08-28 11:56:14.000000000 +0200 @@ -9,7 +9,7 @@ * * Flags: Stable * - * $Id: Confirm.ycp 44622 2008-02-19 09:44:08Z mzugec $ + * $Id: Confirm.ycp 50431 2008-08-28 09:56:14Z locilka $ */ { @@ -65,12 +65,11 @@ `HVCenter(`Heading(class)), `VSpacing(0.5) ))), - `HSquash(`HBox( - `HWeight(1, `PushButton(`id(`continue), `opt(`default), Label::ContinueButton())), - `HSpacing(2), + `ButtonBox ( + `HWeight (1, `PushButton (`id(`continue), `opt(`default, `okButton), Label::ContinueButton())), /* PushButton label */ - `HWeight(1, `PushButton(`id(`skip), _("&Skip"))) - )), + `HWeight (1, `PushButton (`id(`skip, `cancelButton), _("&Skip"))) + ), `VSpacing(0.2) ))), `HSpacing(1) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/library/wizard/src/Wizard.ycp new/yast2-2.17.15/library/wizard/src/Wizard.ycp --- old/yast2-2.17.14/library/wizard/src/Wizard.ycp 2008-08-18 12:54:20.000000000 +0200 +++ new/yast2-2.17.15/library/wizard/src/Wizard.ycp 2008-08-28 12:06:22.000000000 +0200 @@ -169,13 +169,11 @@ **/ global term AbortApplyFinishButtonBox() { - return `HBox( - `PushButton(`id(`abort ), Label::AbortButton() ), - `HStretch(), + return `ButtonBox ( + `PushButton (`id (`abort, `cancelButton, `key_F9), Label::AbortButton()), // button text - `PushButton(`id(`apply), _("&Apply") ), - `HStretch(), - `PushButton(`id(`finish), Label::FinishButton() ) + `PushButton (`id (`apply, `applyButton), _("&Apply")), + `PushButton (`id (`finish, `okButton, `key_F10), Label::FinishButton()) ); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-2.17.14/VERSION new/yast2-2.17.15/VERSION --- old/yast2-2.17.14/VERSION 2008-08-25 14:10:48.000000000 +0200 +++ new/yast2-2.17.15/VERSION 2008-08-28 13:39:35.000000000 +0200 @@ -1 +1 @@ -2.17.14 +2.17.15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de