Author: aschnell
Date: Fri Apr 18 10:27:55 2008
New Revision: 46822
URL: http://svn.opensuse.org/viewcvs/yast?rev=46822&view=rev
Log:
- added tab history
Modified:
branches/tmp/aschnell/part-redesign/storage/src/include/ep-hd.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-main.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp
branches/tmp/aschnell/part-redesign/storage/src/modules/TabPanel.ycp
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-hd.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-hd.ycp?rev=46822&r1=46821&r2=46822&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-hd.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-hd.ycp Fri Apr 18 10:27:55 2008
@@ -278,17 +278,17 @@
{
string device = (string) user_data;
- map data = $[ `overview : $[ `create : CreateHdDiskOverviewTab,
- `handle : HandleHdDiskOverviewTab,
- `user_data : user_data ],
- `partitions : $[ `create : CreateHdDiskPartitionsTab,
- `handle : HandleHdDiskPartitionsTab,
- `user_data : user_data ] ];
+ map data = $[ `overview : $[ `create : CreateHdDiskOverviewTab,
+ `handle : HandleHdDiskOverviewTab,
+ `user_data : user_data ],
+ `partitions : $[ `create : CreateHdDiskPartitionsTab,
+ `handle : HandleHdDiskPartitionsTab,
+ `user_data : user_data ] ];
UI::ReplaceWidget(`tree_panel,
`VBox(
`Left(`Heading("Hard Disk: " + device)),
- TabPanel::DumbTab( `id(`tab), [
+ TabPanel::DumbTab(`id(`tab), [
`item(`id(`overview), "&Overview"),
`item(`id(`partitions), "&Partitions")
],
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp?rev=46822&r1=46821&r2=46822&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp Fri Apr 18 10:27:55 2008
@@ -108,7 +108,7 @@
DlgResizeVolumeGroup();
break;
}
-
+
case `delete:
{
if (EpDeleteVg(vgname))
@@ -237,9 +237,9 @@
{
string device = (string) user_data;
- map data = $[ `overview : $[ `create : CreateLvmVgOverviewTab, `handle : HandleLvmVgOverviewTab, `user_data : user_data ],
- `lvs : $[ `create : CreateLvmVgLvsTab, `handle : HandleLvmVgLvsTab, `user_data : user_data ],
- `pvs : $[ `create : CreateLvmVgPvsTab, `user_data : user_data ] ];
+ map data = $[ `overview : $[ `create : CreateLvmVgOverviewTab, `handle : HandleLvmVgOverviewTab, `user_data : user_data ],
+ `lvs : $[ `create : CreateLvmVgLvsTab, `handle : HandleLvmVgLvsTab, `user_data : user_data ],
+ `pvs : $[ `create : CreateLvmVgPvsTab, `user_data : user_data ] ];
UI::ReplaceWidget(`tree_panel,
`VBox(
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-main.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-main.ycp?rev=46822&r1=46821&r2=46822&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-main.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-main.ycp Fri Apr 18 10:27:55 2008
@@ -64,7 +64,7 @@
{
return open_items[id]:"" == "ID";
}
-
+
void huhu(map disk, symbol type, map a, map b)
{
@@ -95,25 +95,29 @@
string device = disk["device"]:"";
symbol type = disk["type"]:`CT_UNKNOWN;
- if (type == `CT_DISK || type == `CT_DMRAID) {
- huhu(disk, `hd, $[ `create : CreateHdPartitionPanel, `handle : HandleHdPartitionPanel ],
- $[ `create : CreateHdDiskPanel, `handle : HandleHdDiskPanel ]);
- }
- else if (type == `CT_LVM) {
- huhu(disk, `lvm, $[ `create : CreateLvmLvPanel, `handle : HandleLvmLvPanel ],
- $[ `create : CreateLvmVgPanel, `handle : HandleLvmVgPanel ]);
- }
- else if (type == `CT_MD) {
- huhu(disk, `md, $[ `create : CreateRaidPanel, `handle : HandleRaidPanel ], nil);
- }
- else if (type == `CT_LOOP) {
- huhu(disk, `loop, $[ `create : CreateLoopPanel, `handle : HandleLoopPanel ], nil);
- }
- else if (type == `CT_DM) {
- huhu(disk, `dm, $[ `create : CreateDmPanel, `handle : HandleDmPanel ], nil);
- }
- else if (type == `CT_NFS) {
- huhu(disk, `nfs, $[ `create : CreateNfsPanel, `handle : HandleNfsPanel ], nil);
+ switch(type)
+ {
+ case `CT_DISK:
+ case `CT_DMRAID:
+ huhu(disk, `hd, $[ `create : CreateHdPartitionPanel, `handle : HandleHdPartitionPanel ],
+ $[ `create : CreateHdDiskPanel, `handle : HandleHdDiskPanel ]);
+ break;
+ case `CT_LVM:
+ huhu(disk, `lvm, $[ `create : CreateLvmLvPanel, `handle : HandleLvmLvPanel ],
+ $[ `create : CreateLvmVgPanel, `handle : HandleLvmVgPanel ]);
+ break;
+ case `CT_MD:
+ huhu(disk, `md, $[ `create : CreateRaidPanel, `handle : HandleRaidPanel ], nil);
+ break;
+ case `CT_LOOP:
+ huhu(disk, `loop, $[ `create : CreateLoopPanel, `handle : HandleLoopPanel ], nil);
+ break;
+ case `CT_DM:
+ huhu(disk, `dm, $[ `create : CreateDmPanel, `handle : HandleDmPanel ], nil);
+ break;
+ case `CT_NFS:
+ huhu(disk, `nfs, $[ `create : CreateNfsPanel, `handle : HandleNfsPanel ], nil);
+ break;
}
}
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp?rev=46822&r1=46821&r2=46822&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp Fri Apr 18 10:27:55 2008
@@ -115,8 +115,8 @@
{
string device = (string) user_data;
- map data = $[ `overview : $[ `create : CreateRaidOverviewTab, `handle : HandleRaidOverviewTab, `user_data : user_data ],
- `devices : $[ `create : CreateRaidDevicesTab, `user_data : user_data ] ];
+ map data = $[ `overview : $[ `create : CreateRaidOverviewTab, `handle : HandleRaidOverviewTab, `user_data : user_data ],
+ `devices : $[ `create : CreateRaidDevicesTab, `user_data : user_data ] ];
UI::ReplaceWidget(`tree_panel,
`VBox(
Modified: branches/tmp/aschnell/part-redesign/storage/src/modules/TabPanel.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/modules/TabPanel.ycp?rev=46822&r1=46821&r2=46822&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/modules/TabPanel.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/modules/TabPanel.ycp Fri Apr 18 10:27:55 2008
@@ -4,15 +4,18 @@
* Summary: Expert Partitioner
* Authors: Arvin Schnell
*
- * The DumbTab widget must have id `tab.
+ * The DumbTab widget must have id `tab. The ids of the items of the DumbTab widget
+ * must be made of symbols.
*/
{
module "TabPanel";
- map data = nil;
+ map data = nil;
- any current_item = nil;
+ symbol current_item = nil;
+
+ list<symbol> history = [];
global const term empty_panel = `VBox(`VStretch(), `HStretch());
@@ -52,17 +55,40 @@
}
+ void AddToHistory()
+ {
+ history = filter(symbol s, history, { return s != current_item; });
+ history = prepend(history, current_item);
+ }
+
+
/**
* When calling this function the DumbTab widget must already exist.
*/
- global void Init(map d)
+ global void Init(map d)
{
data = d;
+ list<symbol> item1 = maplist(term t, (list<term>) UI::QueryWidget(`id(`tab), `Items),
+ { return t[0, 0]:`none; });
+ list<symbol> item2 = maplist(symbol s, map m, data, { return s; });
+ if (sort(item1) != sort(item2))
+ y2warning("DumbTab items and callback data do not match");
+
+ current_item = find(symbol s, history, { return contains(item1, s); });
+
+ if (current_item != nil)
+ {
+ if (!UI::HasSpecialWidget(`DumbTab))
+ UI::ChangeWidget(`tab, `Value, current_item);
+ else
+ UI::ChangeWidget(`tab, `CurrentItem, current_item);
+ }
+
if (!UI::HasSpecialWidget(`DumbTab))
- current_item = UI::QueryWidget(`tab, `Value);
+ current_item = (symbol) UI::QueryWidget(`tab, `Value);
else
- current_item = UI::QueryWidget(`tab, `CurrentItem);
+ current_item = (symbol) UI::QueryWidget(`tab, `CurrentItem);
CallCreate();
}
@@ -79,7 +105,8 @@
if (widget != current_item)
{
CallDestroy();
- current_item = widget;
+ current_item = (symbol) widget;
+ AddToHistory();
CallCreate();
}
}
@@ -98,9 +125,9 @@
global term DumbTab(term id, list<term> tabs, term contents)
{
if (!UI::HasSpecialWidget(`DumbTab))
- return `VBox(`Left(`ComboBox(id, `opt(`notify), "DumbTab Workaround",
+ return `VBox(`Left(`ComboBox(id, `opt(`notify), "DumbTab Workaround",
maplist(term t, tabs, {
- return `item(t[0]:nil, deletechars(t[1]:"", "&"));
+ return `item(t[0]:nil, deletechars(t[1]:"", "&"));
}))), contents);
else
return `DumbTab(id, tabs, contents);
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org