Author: aschnell
Date: Fri Jul 18 22:52:55 2008
New Revision: 49259
URL: http://svn.opensuse.org/viewcvs/yast?rev=49259&view=rev
Log:
- finished hidden fields configuration
Modified:
branches/tmp/aschnell/part-redesign/storage/src/include/ep-settings.ycp
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-settings.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-settings.ycp?rev=49259&r1=49258&r2=49259&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-settings.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-settings.ycp Fri Jul 18 22:52:55 2008
@@ -7,30 +7,33 @@
{
textdomain "storage";
- import "Map";
// TODO: check if translated when switching language
- map visible_fields = $[
- `cyl : _("Cylinder information"),
- `mount_by : _("Mount by"),
- `used_by : _("Used by"),
- `uuid : _("UUID"),
- `label : _("Label"),
- `bios_id : _("BIOS ID"),
- ];
+ list< map > visible_fields = [
+ $[ `label : _("Label"), `fields : [ `label ] ],
+ $[ `label : _("UUID"), `fields : [ `uuid ] ],
+ $[ `label : _("Mount by"), `fields : [ `mount_by ] ],
+ $[ `label : _("Used by"), `fields : [ `used_by ] ],
+ $[ `label : _("BIOS ID"), `fields : [ `bios_id ] ],
+ $[ `label : _("Cylinder information"), `fields : toset([ `start_cyl, `end_cyl, `num_cyl, `cyl_size ]) ],
+ $[ `label : _("Fibre Channel information"), `fields : toset([ `fc_wwpn, `fc_port_id ]) ]
+ ];
+
void CreateSettingsPanel(any user_data)
{
- list <term> PreselectVisibleFields() {
+ list <term> PreselectVisibleFields()
+ {
list <symbol> hidden_fields = StorageSettings::GetHiddenFields();
-
- list <term> msb_items = maplist ( symbol s, ( list <symbol> ) Map::Keys( visible_fields ), {
- return toterm( `item, [ `id(s), visible_fields[s]:"", !contains (hidden_fields, s)]);
- } );
-
- return msb_items;
- }
-
+ return maplist(integer i, Integer::Range(size(visible_fields)), {
+ string label = visible_fields[i, `label]:"";
+ list<symbol> fields = visible_fields[i, `fields]:[];
+ boolean selected = list::reduce(boolean tmp, symbol field, true, fields, {
+ return tmp && !setcontains(hidden_fields, field);
+ });
+ return `item(`id(i), label, selected);
+ });
+ }
UI::ReplaceWidget(`tree_panel,
Greasemonkey::Transform(
@@ -63,7 +66,7 @@
`Left(`HBox(
`MultiSelectionBox(`id(`visible_fields), `opt(`shrinkable),
_("Visible Information On Storage Devices"),
- PreselectVisibleFields() ),
+ PreselectVisibleFields()),
`HStretch()
))
),
@@ -76,7 +79,8 @@
void HandleSettingsPanel(any user_data, symbol widget)
{
- if (widget == `display_name) {
+ if (widget == `display_name)
+ {
StorageSettings::SetDisplayName((symbol) UI::QueryWidget(`id(`display_name), `Value));
UpdateNavigationTree(nil);
}
@@ -85,18 +89,23 @@
void DestroySettingsPanel(any user_data)
{
- list <symbol> InvertVisibleFields () {
- list <symbol> selected = (list <symbol>) UI::QueryWidget(`id(`visible_fields), `SelectedItems );
-
- list <symbol> ret = filter ( symbol s, (list <symbol> ) Map::Keys(visible_fields), {
- return (!contains(selected, s));
+ list<symbol> InvertVisibleFields(list<symbol> hidden_fields)
+ {
+ list<integer> selected = (list<integer>) UI::QueryWidget(`id(`visible_fields), `SelectedItems);
+
+ foreach(integer i, Integer::Range(size(visible_fields)), {
+ list<symbol> fields = visible_fields[i, `fields]:[];
+ if (contains(selected, i))
+ hidden_fields = filter(symbol hidden_field, hidden_fields, { return !setcontains(fields, hidden_field); });
+ else
+ hidden_fields = toset(flatten([ hidden_fields, fields ]));
});
- return ret;
+ return hidden_fields;
}
Storage::SetDefaultMountBy((symbol) UI::QueryWidget(`id(`default_mountby), `Value));
Partitions::SetDefaultFs((symbol) UI::QueryWidget(`id(`default_fs), `Value));
- StorageSettings::SetHiddenFields( InvertVisibleFields() );
+ StorageSettings::SetHiddenFields(InvertVisibleFields(StorageSettings::GetHiddenFields()));
}
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org