Hello community,

here is the log from the commit of package yast2-ycp-ui-bindings for 
openSUSE:Factory checked in at 2020-10-18 16:20:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-ycp-ui-bindings (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-ycp-ui-bindings.new.3486 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-ycp-ui-bindings"

Sun Oct 18 16:20:53 2020 rev:81 rq:840449 version:4.3.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/yast2-ycp-ui-bindings/yast2-ycp-ui-bindings.changes  
    2020-08-14 13:10:17.953232372 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-ycp-ui-bindings.new.3486/yast2-ycp-ui-bindings.changes
    2020-10-18 16:21:11.716484788 +0200
@@ -1,0 +2,7 @@
+Fri Oct  9 12:04:21 UTC 2020 - José Iván López González <jlo...@suse.com>
+
+- Added Nested Tables (bsc#1176402)
+- Require libyui.so.14
+- 4.3.3
+
+-------------------------------------------------------------------

Old:
----
  yast2-ycp-ui-bindings-4.3.2.tar.bz2

New:
----
  yast2-ycp-ui-bindings-4.3.3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-ycp-ui-bindings.spec ++++++
--- /var/tmp/diff_new_pack.Ovbujp/_old  2020-10-18 16:21:12.736485242 +0200
+++ /var/tmp/diff_new_pack.Ovbujp/_new  2020-10-18 16:21:12.740485244 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package yast2-ycp-ui-bindings
 #
-# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,16 +12,16 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 # YUIWidget_MenuBar
 %define min_yui_version        3.11.0
-%define yui_so         13
+%define yui_so         14
 
 Name:           yast2-ycp-ui-bindings
-Version:        4.3.2
+Version:        4.3.3
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ yast2-ycp-ui-bindings-4.3.2.tar.bz2 -> 
yast2-ycp-ui-bindings-4.3.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ycp-ui-bindings-4.3.2/examples/Events.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Events.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Events.rb  2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Events.rb  2020-10-09 
16:50:33.000000000 +0200
@@ -1,6 +1,6 @@
 # encoding: utf-8
 
-# (Advanced) YCP example for various UI events:
+# (Advanced) example for various UI events:
 #
 # Create a dialog with all kinds of widgets that can generate events and
 # display any event nicely formatted in a RichText widget.
@@ -32,7 +32,7 @@
 
       @delivery = Tree(
         Id(:delivery_service),
-        Opt(:notify, :notifyContextMenu),
+        Opt(:notify, :immediate, :notifyContextMenu),
         "&Delivery Service",
         [
           Item(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Table-flat-items.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Table-flat-items.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Table-flat-items.rb        
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Table-flat-items.rb        
2020-10-09 16:50:33.000000000 +0200
@@ -0,0 +1,91 @@
+# encoding: utf-8
+
+# Example for table with single-selection and with flat items (no nesting)
+
+module Yast
+  class TableFlatItems < Client
+    Yast.import "UI"
+
+    def main
+      UI.OpenDialog(main_dialog)
+      update_selected(current_table_item)
+      handle_events
+      UI.CloseDialog
+    end
+
+    def main_dialog
+      MinSize(
+        74, 17,
+        MarginBox(
+          1, 0.4,
+          VBox(
+            Left(
+              Heading("Storage Overview")
+            ),
+            VSpacing(0.2),
+            table,
+            VSpacing(0.2),
+            Left(Label("Selected:")),
+            Label(Id(:selected), Opt(:outputField, :hstretch), "..."),
+            VSpacing(0.3),
+            Right(
+              PushButton(Id(:close), "&Close")
+            )
+          )
+        )
+      )
+    end
+
+    def table
+      Table(
+        Id(:table),
+        Opt(:notify, :immediate),
+        Header("Device", "Size", "Type", "Mount Point"),
+        items
+      )
+    end
+
+    def items
+      [
+        Item(Id(:sda), "/dev/sda", "931.5G"),
+        Item(Id(:sda1), "/dev/sda1",  "97.7G", "ntfs", "/win/boot" ),
+        Item(Id(:sda2), "/dev/sda2", "833.9G", "ntfs", "/win/app"  ),
+        Item(Id(:sdb), "/dev/sdb", "931.5G"),
+        Item(Id(:sdb1), "/dev/sdb1",   "2.0G", "swap" ),
+        Item(Id(:sdb2), "/dev/sdb2",  "29.4G", "ext4", "/hd-root-leap-42"   ),
+        Item(Id(:sdb3), "/dev/sdb3",  "29.4G", "ext4", "/hd-root-leap-15-0" ),
+        Item(Id(:sdb4), "/dev/sdb4", "855.8G", "xfs",  "/work" ),
+        Item(Id(:sdc), "/dev/sdc", "232.9G"),
+        Item(Id(:sdc1), "/dev/sdc1",   "2.0G", "swap", "[swap]" ),
+        Item(Id(:sdc2), "/dev/sdc2",  "29.4G", "ext4", "/ssd-root-leap-15-1" ),
+        Item(Id(:sdc3), "/dev/sdc3",  "29.4G", "ext4", "/" ),
+        Item(Id(:sdc4), "/dev/sdc4", "167.2G", "ext4", "/ssd-work" )
+      ]
+    end
+
+    def handle_events
+      while true
+        id = UI.UserInput
+        case id
+
+        when :close, :cancel # :cancel is WM_CLOSE
+          break # leave event loop
+        when :table
+          update_selected(current_table_item)
+        end
+        id
+      end
+    end
+
+    def current_table_item
+      UI.QueryWidget(Id(:table), :CurrentItem)
+    end
+
+    def update_selected(id)
+      id ||= "<nil>"
+      UI.ChangeWidget(Id(:selected), :Value, id.to_s)
+    end
+  end
+end
+
+Yast::TableFlatItems.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Table-flat-multiSel.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Table-flat-multiSel.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Table-flat-multiSel.rb     
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Table-flat-multiSel.rb     
2020-10-09 16:50:33.000000000 +0200
@@ -0,0 +1,90 @@
+# encoding: utf-8
+
+# Example for table with multi-selection and flat items (no nestig)
+
+module Yast
+  class TableFlatMultiSel < Client
+    Yast.import "UI"
+
+    def main
+      UI.OpenDialog(main_dialog)
+      update_selected(selected_items)
+      handle_events
+      UI.CloseDialog
+    end
+
+    def main_dialog
+      MinSize(
+        74, 17,
+        MarginBox(
+          1, 0.4,
+          VBox(
+            Left(
+              Heading("Storage Overview")
+            ),
+            VSpacing(0.2),
+            table,
+            VSpacing(0.2),
+            Left(Label("Selected:")),
+            Label(Id(:selected), Opt(:outputField, :hstretch), "..."),
+            VSpacing(0.3),
+            Right(
+              PushButton(Id(:close), "&Close")
+            )
+          )
+        )
+      )
+    end
+
+    def table
+      Table(
+        Id(:table),
+        Opt(:notify, :immediate, :multiSelection),
+        Header("Device", "Size", "Type", "Mount Point"),
+        items
+      )
+    end
+
+    def items
+      [
+        Item(Id(:sda), "/dev/sda", "931.6G"),
+        Item(Id(:sda1), "/dev/sda1",  "97.7G", "ntfs", "/win/boot" ),
+        Item(Id(:sda2), "/dev/sda2", "833.9G", "ntfs", "/win/app"  ),
+        Item(Id(:sdb), "/dev/sdb", "931.5G"),
+        Item(Id(:sdb1), "/dev/sdb1",   "2.0G", "swap" ),
+        Item(Id(:sdb2), "/dev/sdb2",  "29.4G", "ext4", "/hd-root-leap-42"   ),
+        Item(Id(:sdb3), "/dev/sdb3",  "29.4G", "ext4", "/hd-root-leap-15-0" ),
+        Item(Id(:sdb4), "/dev/sdb4", "855.8G", "xfs",  "/work" ),
+        Item(Id(:sdc), "/dev/sdc", "232.9G"),
+        Item(Id(:sdc1), "/dev/sdc1",   "2.0G", "swap", "[swap]" ),
+        Item(Id(:sdc2), "/dev/sdc2",  "29.4G", "ext4", "/ssd-root-leap-15-1" ),
+        Item(Id(:sdc3), "/dev/sdc3",  "29.4G", "ext4", "/" ),
+        Item(Id(:sdc4), "/dev/sdc4", "167.2G", "ext4", "/ssd-work" )
+      ]
+    end
+
+    def handle_events
+      while true
+        id = UI.UserInput
+        case id
+
+        when :close, :cancel # :cancel is WM_CLOSE
+          break # leave event loop
+        when :table
+          update_selected(selected_items)
+        end
+        id
+      end
+    end
+
+    def selected_items
+      UI.QueryWidget(Id(:table), :SelectedItems)
+    end
+
+    def update_selected(ids)
+      UI.ChangeWidget(Id(:selected), :Value, ids.join(", "))
+    end
+  end
+end
+
+Yast::TableFlatMultiSel.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Table-nested-items.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Table-nested-items.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Table-nested-items.rb      
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Table-nested-items.rb      
2020-10-09 16:50:33.000000000 +0200
@@ -0,0 +1,106 @@
+# encoding: utf-8
+
+# Example for table with single-selection and nested items
+
+module Yast
+  class TableNestedItems < Client
+    Yast.import "UI"
+
+    def main
+      UI.OpenDialog(main_dialog)
+      update_selected(current_table_item)
+      handle_events
+      UI.CloseDialog
+    end
+
+    def main_dialog
+      MinSize(
+        74, 17,
+        MarginBox(
+          1, 0.4,
+          VBox(
+            Left(
+              Heading("Storage Overview")
+            ),
+            VSpacing(0.2),
+            table,
+            VSpacing(0.2),
+            Left(Label("Selected:")),
+            Label(Id(:selected), Opt(:outputField, :hstretch), "..."),
+            VSpacing(0.3),
+            Right(
+              PushButton(Id(:close), "&Close")
+            )
+          )
+        )
+      )
+    end
+
+    def table
+      Table(
+        Id(:table),
+        Opt(:notify, :immediate),
+        Header("Device", "Size", "Type", "Mount Point"),
+        disk_items
+      )
+    end
+
+    def disk_items
+      [
+        Item(Id(:sda), "/dev/sda", "931.5G", "", "", sda_items, :open),
+        Item(Id(:sdb), "/dev/sdb", "931.5G", "", "", sdb_items, :closed),
+        Item(Id(:sdc), "/dev/sdc", "232.9G", "", "", sdc_items, :open)
+      ]
+    end
+
+    def sda_items
+      [
+        Item(Id(:sda1), "/dev/sda1",  "97.7G", "ntfs", "/win/boot" ),
+        Item(Id(:sda2), "/dev/sda2", "833.9G", "ntfs", "/win/app"  )
+      ]
+    end
+
+    def sdb_items
+      [
+        Item(Id(:sdb1), "/dev/sdb1",   "2.0G", "swap" ),
+        Item(Id(:sdb2), "/dev/sdb2",  "29.4G", "ext4", "/hd-root-leap-42"   ),
+        Item(Id(:sdb3), "/dev/sdb3",  "29.4G", "ext4", "/hd-root-leap-15-0" ),
+        Item(Id(:sdb4), "/dev/sdb4", "855.8G", "xfs",  "/work" )
+      ]
+    end
+
+    def sdc_items
+      [
+        Item(Id(:sdc1), "/dev/sdc1",   "2.0G", "swap", "[swap]" ),
+        Item(Id(:sdc2), "/dev/sdc2",  "29.4G", "ext4", "/ssd-root-leap-15-1" ),
+        Item(Id(:sdc3), "/dev/sdc3",  "29.4G", "ext4", "/" ),
+        Item(Id(:sdc4), "/dev/sdc4", "167.2G", "ext4", "/ssd-work" )
+      ]
+    end
+
+    def handle_events
+      while true
+        id = UI.UserInput
+        case id
+
+        when :close, :cancel # :cancel is WM_CLOSE
+          break # leave event loop
+        when :table
+          update_selected(current_table_item)
+        end
+        id
+      end
+    end
+
+    def current_table_item
+      UI.QueryWidget(Id(:table), :CurrentItem)
+    end
+
+    def update_selected(id)
+      id ||= "<nil>"
+      UI.ChangeWidget(Id(:selected), :Value, id.to_s)
+    end
+  end
+end
+
+Yast::TableNestedItems.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Table-nested-multiSel.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Table-nested-multiSel.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Table-nested-multiSel.rb   
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Table-nested-multiSel.rb   
2020-10-09 16:50:33.000000000 +0200
@@ -0,0 +1,105 @@
+# encoding: utf-8
+
+# Example for table with multi-selection and nested items
+
+module Yast
+  class TableNestedMultiSel < Client
+    Yast.import "UI"
+
+    def main
+      UI.OpenDialog(main_dialog)
+      update_selected(selected_items)
+      handle_events
+      UI.CloseDialog
+    end
+
+    def main_dialog
+      MinSize(
+        74, 17,
+        MarginBox(
+          1, 0.4,
+          VBox(
+            Left(
+              Heading("Storage Overview")
+            ),
+            VSpacing(0.2),
+            table,
+            VSpacing(0.2),
+            Left(Label("Selected:")),
+            Label(Id(:selected), Opt(:outputField, :hstretch), "..."),
+            VSpacing(0.3),
+            Right(
+              PushButton(Id(:close), "&Close")
+            )
+          )
+        )
+      )
+    end
+
+    def table
+      Table(
+        Id(:table),
+        Opt(:notify, :immediate, :multiSelection),
+        Header("Device", "Size", "Type", "Mount Point"),
+        disk_items
+      )
+    end
+
+    def disk_items
+      [
+        Item(Id(:sda), "/dev/sda", "931.5G", "", "", sda_items, :open),
+        Item(Id(:sdb), "/dev/sdb", "931.5G", "", "", sdb_items, :closed),
+        Item(Id(:sdc), "/dev/sdc", "232.9G", "", "", sdc_items, :open)
+      ]
+    end
+
+    def sda_items
+      [
+        Item(Id(:sda1), "/dev/sda1",  "97.7G", "ntfs", "/win/boot" ),
+        Item(Id(:sda2), "/dev/sda2", "833.9G", "ntfs", "/win/app"  )
+      ]
+    end
+
+    def sdb_items
+      [
+        Item(Id(:sdb1), "/dev/sdb1",   "2.0G", "swap" ),
+        Item(Id(:sdb2), "/dev/sdb2",  "29.4G", "ext4", "/hd-root-leap-42"   ),
+        Item(Id(:sdb3), "/dev/sdb3",  "29.4G", "ext4", "/hd-root-leap-15-0" ),
+        Item(Id(:sdb4), "/dev/sdb4", "855.8G", "xfs",  "/work" )
+      ]
+    end
+
+    def sdc_items
+      [
+        Item(Id(:sdc1), "/dev/sdc1",   "2.0G", "swap", "[swap]" ),
+        Item(Id(:sdc2), "/dev/sdc2",  "29.4G", "ext4", "/ssd-root-leap-15-1" ),
+        Item(Id(:sdc3), "/dev/sdc3",  "29.4G", "ext4", "/" ),
+        Item(Id(:sdc4), "/dev/sdc4", "167.2G", "ext4", "/ssd-work" )
+      ]
+    end
+
+    def handle_events
+      while true
+        id = UI.UserInput
+        case id
+
+        when :close, :cancel # :cancel is WM_CLOSE
+          break # leave event loop
+        when :table
+          update_selected(selected_items)
+        end
+        id
+      end
+    end
+
+    def selected_items
+      UI.QueryWidget(Id(:table), :SelectedItems)
+    end
+
+    def update_selected(ids)
+      UI.ChangeWidget(Id(:selected), :Value, ids.join(", "))
+    end
+  end
+end
+
+Yast::TableNestedMultiSel.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox.rb   2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox.rb   1970-01-01 
01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
-# encoding: utf-8
-
-# Tree with icons
-module Yast
-  class TreeCheckboxClient < Client
-    def main
-      Yast.import "UI"
-      UI.OpenDialog(
-        VBox(
-          Heading("YaST2 Mini Control Center"),
-          Tree(
-            Id(:mod),
-            Opt(:multiSelection),
-            "Modules",
-            [
-              Item(
-                Id("country"),
-                term(:icon, "yast-yast-language.png"),
-                "Localization",
-                true,
-                [
-                  Item(
-                    Id("keyboard"),
-                    term(:icon, "yast-keyboard.png"),
-                    "Keyboard"
-                  ),
-                  Item(
-                    Id("timezone"),
-                    term(:icon, "yast-timezone.png"),
-                    "Time zone"
-                  )
-                ]
-              ),
-              Item(Id("mouse"), term(:icon, "yast-mouse.png"), "Mouse"),
-              Item(Id("lan"), term(:icon, "yast-lan.png"), "Network"),
-              Item(Id(:xmas), term(:icon, "yast-software.png"), "Merry X-Mas"),
-              Item(
-                Id(:newyear),
-                term(:icon, "yast-software.png"),
-                "Happy New Year"
-              )
-            ]
-          ),
-          PushButton(Id(:ok), Opt(:default), "&OK")
-        )
-      )
-
-      UI.ChangeWidget(:mod, :SelectedItems, [:xmas, :newyear])
-
-      @id = nil
-      begin
-        @id = UI.TimeoutUserInput(300)
-        @selected_items = Convert.to_list(
-          UI.QueryWidget(Id(:mod), :SelectedItems)
-        )
-        Builtins.y2warning("Selected items: %1", @selected_items)
-      end until @id == :ok
-
-      nil
-    end
-  end
-end
-
-Yast::TreeCheckboxClient.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox1.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox1.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox1.rb  1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox1.rb  2020-10-09 
16:50:33.000000000 +0200
@@ -0,0 +1,67 @@
+# encoding: utf-8
+
+# Tree with icons
+module Yast
+  class TreeCheckboxClient < Client
+    def main
+      Yast.import "UI"
+
+      UI.OpenDialog(
+        MinSize( 40, 15,
+          VBox(
+            Heading("YaST2 Mini Control Center"),
+            Tree(
+              Id(:mod),
+              Opt(:multiSelection),
+              "Modules",
+              [
+                Item(
+                  Id("country"),
+                  term(:icon, "yast-yast-language.png"),
+                  "Localization",
+                  true,
+                  [
+                    Item(
+                      Id("keyboard"),
+                      term(:icon, "yast-keyboard.png"),
+                      "Keyboard"
+                    ),
+                    Item(
+                      Id("timezone"),
+                      term(:icon, "yast-timezone.png"),
+                      "Time zone"
+                    )
+                  ]
+                ),
+                Item(Id("mouse"), term(:icon, "yast-mouse.png"), "Mouse"),
+                Item(Id("lan"), term(:icon, "yast-lan.png"), "Network"),
+                Item(Id(:xmas), term(:icon, "yast-software.png"), "Merry 
X-Mas"),
+                Item(
+                  Id(:newyear),
+                  term(:icon, "yast-software.png"),
+                  "Happy New Year"
+                )
+              ]
+            ),
+            PushButton(Id(:ok), Opt(:default), "&OK")
+          )
+        )
+      )
+
+      UI.ChangeWidget(:mod, :SelectedItems, [:xmas, :newyear])
+
+      @id = nil
+      begin
+        @id = UI.TimeoutUserInput(300)
+        @selected_items = Convert.to_list(
+          UI.QueryWidget(Id(:mod), :SelectedItems)
+        )
+        Builtins.y2warning("Selected items: %1", @selected_items)
+      end until @id == :ok
+
+      nil
+    end
+  end
+end
+
+Yast::TreeCheckboxClient.new.main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox2.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox2.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox2.rb  2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox2.rb  2020-10-09 
16:50:33.000000000 +0200
@@ -5,45 +5,48 @@
   class TreeCheckbox2Client < Client
     def main
       Yast.import "UI"
+
       UI.OpenDialog(
-        VBox(
-          Heading("YaST2 Mini Control Center"),
-          Tree(
-            Id(:mod),
-            Opt(:notify, :multiSelection, :immediate),
-            "Modules",
-            [
-              Item(
-                Id("country"),
-                term(:icon, "yast-yast-language.png"),
-                "Localization",
-                false,
-                [
-                  Item(
-                    Id("keyboard"),
-                    term(:icon, "yast-keyboard.png"),
-                    "Keyboard"
-                  ),
-                  Item(
-                    Id("timezone"),
-                    term(:icon, "yast-timezone.png"),
-                    "Time zone"
-                  )
-                ]
-              ),
-              Item(Id("mouse"), term(:icon, "yast-mouse.png"), "Mouse"),
-              Item(Id("lan"), term(:icon, "yast-lan.png"), "Network"),
-              Item(Id("xmas"), term(:icon, "yast-software.png"), "Merry 
X-Mas"),
-              Item(
-                Id("newyear"),
-                term(:icon, "yast-software.png"),
-                "Happy New Year"
-              )
-            ]
-          ),
-          HBox(
-            PushButton(Id(:ok), Opt(:default), "&OK"),
-            PushButton(Id(:deselect), "&Log selected")
+        MinSize( 40, 15,
+          VBox(
+            Heading("YaST2 Mini Control Center"),
+            Tree(
+              Id(:mod),
+              Opt(:notify, :multiSelection, :immediate),
+              "Modules",
+              [
+                Item(
+                  Id("country"),
+                  term(:icon, "yast-yast-language.png"),
+                  "Localization",
+                  false,
+                  [
+                    Item(
+                      Id("keyboard"),
+                      term(:icon, "yast-keyboard.png"),
+                      "Keyboard"
+                    ),
+                    Item(
+                      Id("timezone"),
+                      term(:icon, "yast-timezone.png"),
+                      "Time zone"
+                    )
+                  ]
+                ),
+                Item(Id("mouse"), term(:icon, "yast-mouse.png"), "Mouse"),
+                Item(Id("lan"), term(:icon, "yast-lan.png"), "Network"),
+                Item(Id("xmas"), term(:icon, "yast-software.png"), "Merry 
X-Mas"),
+                Item(
+                  Id("newyear"),
+                  term(:icon, "yast-software.png"),
+                  "Happy New Year"
+                )
+              ]
+            ),
+            HBox(
+              PushButton(Id(:ok), Opt(:default), "&OK"),
+              PushButton(Id(:deselect), "&Log selected")
+            )
           )
         )
       )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox4.rb 
new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox4.rb
--- old/yast2-ycp-ui-bindings-4.3.2/examples/Tree-Checkbox4.rb  2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/Tree-Checkbox4.rb  2020-10-09 
16:50:33.000000000 +0200
@@ -6,38 +6,38 @@
     def main
       Yast.import "UI"
 
-
-
       UI.OpenDialog(
-        VBox(
-          Heading("YaST2 Mini Control Center"),
-          Tree(
-            Id(:mod),
-            Opt(:multiSelection, :notify, :immediate, :recursiveSelection),
-            "Modules",
-            [
-              Item(Id("unselected"), "Unseleted"),
-              Item(
-                Id("country"),
-                "Localization",
-                true,
-                [
-                  Item(Id("keyboard"), "Keyboard"),
-                  Item(
-                    Id("timezone"),
-                    "Time zone",
-                    true,
-                    [Item(Id(:europe), "Europe"), Item(Id(:asia), "Asia")]
-                  )
-                ]
-              ),
-              Item(Id(:mouse), "Mouse"),
-              Item(Id(:lan), "Network"),
-              Item(Id(:xmas), "Merry X-Mas"),
-              Item(Id(:newyear), "Happy New Year")
-            ]
-          ),
-          PushButton(Id(:ok), Opt(:default), "&OK")
+        MinSize( 40, 15,
+          VBox(
+            Heading("YaST2 Mini Control Center"),
+            Tree(
+              Id(:mod),
+              Opt(:multiSelection, :notify, :immediate, :recursiveSelection),
+              "Modules",
+              [
+                Item(Id("unselected"), "Unseleted"),
+                Item(
+                  Id("country"),
+                  "Localization",
+                  true,
+                  [
+                    Item(Id("keyboard"), "Keyboard"),
+                    Item(
+                      Id("timezone"),
+                      "Time zone",
+                      true,
+                      [Item(Id(:europe), "Europe"), Item(Id(:asia), "Asia")]
+                    )
+                  ]
+                ),
+                Item(Id(:mouse), "Mouse"),
+                Item(Id(:lan), "Network"),
+                Item(Id(:xmas), "Merry X-Mas"),
+                Item(Id(:newyear), "Happy New Year")
+              ]
+            ),
+            PushButton(Id(:ok), Opt(:default), "&OK")
+          )
         )
       )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ycp-ui-bindings-4.3.2/examples/start-pm 
new/yast2-ycp-ui-bindings-4.3.3/examples/start-pm
--- old/yast2-ycp-ui-bindings-4.3.2/examples/start-pm   2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/start-pm   1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-y2base PackageSelector.ycp qt -geometry 1024x768+0+0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ycp-ui-bindings-4.3.2/examples/start-you 
new/yast2-ycp-ui-bindings-4.3.3/examples/start-you
--- old/yast2-ycp-ui-bindings-4.3.2/examples/start-you  2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/start-you  1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-y2base PackageSelector-YOU.ycp qt -geometry 1024x768+0+0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ycp-ui-bindings-4.3.2/examples/start_glyphs 
new/yast2-ycp-ui-bindings-4.3.3/examples/start_glyphs
--- old/yast2-ycp-ui-bindings-4.3.2/examples/start_glyphs       2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/examples/start_glyphs       1970-01-01 
01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-#!/bin/sh
-y2base Glyphs.ycp qt -font 
'-gnu-unifont-medium-r-normal--16-160-75-75-p-80-iso10646-1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/package/yast2-ycp-ui-bindings.changes 
new/yast2-ycp-ui-bindings-4.3.3/package/yast2-ycp-ui-bindings.changes
--- old/yast2-ycp-ui-bindings-4.3.2/package/yast2-ycp-ui-bindings.changes       
2020-08-12 16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/package/yast2-ycp-ui-bindings.changes       
2020-10-09 16:50:33.000000000 +0200
@@ -1,4 +1,11 @@
 -------------------------------------------------------------------
+Fri Oct  9 12:04:21 UTC 2020 - José Iván López González <jlo...@suse.com>
+
+- Added Nested Tables (bsc#1176402)
+- Require libyui.so.14
+- 4.3.3
+
+-------------------------------------------------------------------
 Wed Aug 12 12:12:01 UTC 2020 - Stefan Hundhammer <shundham...@suse.com>
 
 - Use new syntax (MenuBar(), Menu()) in MenuBar example (bsc#1175115)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/package/yast2-ycp-ui-bindings.spec 
new/yast2-ycp-ui-bindings-4.3.3/package/yast2-ycp-ui-bindings.spec
--- old/yast2-ycp-ui-bindings-4.3.2/package/yast2-ycp-ui-bindings.spec  
2020-08-12 16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/package/yast2-ycp-ui-bindings.spec  
2020-10-09 16:50:33.000000000 +0200
@@ -17,10 +17,10 @@
 
 # YUIWidget_MenuBar
 %define min_yui_version        3.11.0
-%define yui_so         13
+%define yui_so         14
 
 Name:           yast2-ycp-ui-bindings
-Version:        4.3.2
+Version:        4.3.3
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ycp-ui-bindings-4.3.2/src/YCPTableItemParser.cc 
new/yast2-ycp-ui-bindings-4.3.3/src/YCPTableItemParser.cc
--- old/yast2-ycp-ui-bindings-4.3.2/src/YCPTableItemParser.cc   2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/src/YCPTableItemParser.cc   2020-10-09 
16:50:33.000000000 +0200
@@ -95,6 +95,7 @@
 {
     YCPTableItem * item = new YCPTableItem();
     YUI_CHECK_NEW( item );
+    YItemCollection children;
 
     const char * usage =
        "Expected: `item(`id(`myID), (\"MyLabelText\"|`cell(...)), ... )";
@@ -144,6 +145,30 @@
            {
                item->addCell( YCPString("") );
            }
+            else if ( arg->isList() )           // child items list
+            {
+                // A children list should be the next-to-last or the last
+                // argument of the term, but it doesn't really matter where, so
+                // let's just allow it anywhere. It is still best practice to
+                // specifiy it at the end of the term, and better yet, it
+                // should be followed by one of :open or :closed.
+
+                children = parseTableItemList( arg->asList() );
+            }
+            else if ( arg->isSymbol()    &&     // :open  or  :closed
+                      ( arg->asSymbol()->symbol() == YUISymbol_open   ||
+                        arg->asSymbol()->symbol() == YUISymbol_closed    ) )
+            {
+                // This is a lot less strict than it could be, and this is
+                // intentional:
+                //
+                // An application may specify :open or :closed anywhere in the
+                // term, no matter if a children list was already specifed or
+                // if there is one at all. If there are no children, setting
+                // the item to open or closed does not do any harm.
+
+                item->setOpen( arg->asSymbol()->symbol() == YUISymbol_open );
+            }
            else
            {
                YUI_THROW( YCPDialogSyntaxErrorException( usage, itemTerm ) );
@@ -169,6 +194,12 @@
        throw;
     }
 
+
+    // If there were any child items, add them to this item
+
+    for ( YItemIterator it = children.begin(); it != children.end(); ++it )
+        item->addChild( *it );
+
     return item;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ycp-ui-bindings-4.3.2/src/YCPTableItemParser.h 
new/yast2-ycp-ui-bindings-4.3.3/src/YCPTableItemParser.h
--- old/yast2-ycp-ui-bindings-4.3.2/src/YCPTableItemParser.h    2020-08-12 
16:43:34.000000000 +0200
+++ new/yast2-ycp-ui-bindings-4.3.3/src/YCPTableItemParser.h    2020-10-09 
16:50:33.000000000 +0200
@@ -46,9 +46,21 @@
      *
      *     [
      *         `item(`id(`myID1 ), "Label1", "Label2", "Label3" ),
-     *         `item(`id(`myID1 ), "Label1", `cell("Label2"), "Label3" ),
-     *         `item(`id(`myID2 ), "Label1", `cell(`icon( "icon2.png"), 
"Label2" ), "Label3" ),
-     *         `item(`id(`myID2 ), "Label1", `cell( "Label2", `icon( 
"icon2.png")), "Label3" )
+     *         `item(`id(`myID2 ), "Label1", `cell("Label2"), "Label3" ),
+     *         `item(`id(`myID3 ), "Label1", `cell(`icon( "icon2.png"), 
"Label2" ), "Label3" ),
+     *         `item(`id(`myID4 ), "Label1", `cell( "Label2", `icon( 
"icon2.png")), "Label3" ),
+     *         `item(`id(`myID5 ), "Label1", "Label2", "Label3",
+     *               [
+     *                   `item(`id(`myId51, "Label1", "Label2", "Label3")),
+     *                   `item(`id(`myId52, "Label1", "Label2", "Label3"))
+     *               ],
+     *               `open),
+     *         `item(`id(`myID6 ), "Label1", "Label2", "Label3",
+     *               [
+     *                   `item(`id(`myId61, "Label1", "Label2", "Label3")),
+     *                   `item(`id(`myId62, "Label1", "Label2", "Label3"))
+     *               ],
+     *               `closed),
      *     ]
      *
      * Return a list of newly created YTableItem-derived objects.
@@ -61,12 +73,26 @@
 protected:
 
     /**
-     * Parse an item term:
+     * Parse an item term; one of:
      *
      *         `item(`id(`myID1 ), "Label1", "Label2", "Label3" )
-     *         `item(`id(`myID1 ), "Label1", `cell( "Label2" ), "Label3" )
-     *         `item(`id(`myID2 ), "Label1", `cell(`icon( "icon2.png" ), 
"Label2" ), "Label3" )
-     *         `item(`id(`myID2 ), "Label1", `cell( "Label2", `icon( 
"icon2.png")), "Label3" )
+     *         `item(`id(`myID2 ), "Label1", `cell( "Label2" ), "Label3" )
+     *         `item(`id(`myID3 ), "Label1", `cell(`icon( "icon2.png" ), 
"Label2" ), "Label3" )
+     *         `item(`id(`myID4 ), "Label1", `cell( "Label2", `icon( 
"icon2.png")), "Label3" )
+     *
+     *         `item(`id(`myID5 ), "Label1", "Label2", "Label3",
+     *               [
+     *                   `item(`id(`myId51, "Label1", "Label2", "Label3")),
+     *                   `item(`id(`myId52, "Label1", "Label2", "Label3"))
+     *               ],
+     *               `open)
+     *
+     *         `item(`id(`myID6 ), "Label1", "Label2", "Label3",
+     *               [
+     *                   `item(`id(`myId61, "Label1", "Label2", "Label3")),
+     *                   `item(`id(`myId62, "Label1", "Label2", "Label3"))
+     *               ],
+     *               `closed)
      *
      * `cell() is optional if there is only a label and no icon for that cell.
      *


Reply via email to