Author: aschnell
Date: Wed Feb 20 17:56:54 2008
New Revision: 44713
URL: http://svn.opensuse.org/viewcvs/yast?rev=44713&view=rev
Log:
- backup commit
Modified:
branches/tmp/aschnell/part-redesign/storage/src/include/ep-hd.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-lib.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.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/modules/TreePanel.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=44713&r1=44712&r2=44713&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 Wed Feb 20 17:56:54 2008
@@ -128,7 +128,7 @@
if (EpDeleteDevice(device))
{
// TODO: update tree and tab (with focus)
- UpdateNavigationTree();
+ UpdateNavigationTree(nil);
CreateHdDiskPartitionsTab(user_data);
}
}
@@ -199,7 +199,7 @@
if (EpDeleteDevice(device))
{
// TODO: update tree (with focus)
- UpdateNavigationTree();
+ UpdateNavigationTree(nil);
}
}
}
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lib.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-lib.ycp?rev=44713&r1=44712&r2=44713&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-lib.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-lib.ycp Wed Feb 20 17:56:54 2008
@@ -12,7 +12,7 @@
map part = $[];
map disk = Storage::GetDisk( tg, id );
-
+
if( !haskey( tg, id ) )
part = Storage::GetPartition( tg, id );
y2milestone( "id:%1 part:%2", id, part );
@@ -20,13 +20,13 @@
{
return false;
}
-
+
if( disk["readonly"]:false )
{
Popup::Error( Partitions::RdonlyText( disk["device"]:"", true ));
return false;
}
-
+
if( haskey( tg, id ) )
{
if( tg[id,"type"]:`CT_UNKNOWN == `CT_MD )
@@ -70,13 +70,13 @@
// written) partition (sign: "create = true"): delete it
// else there must be already existing partition: mark it
// with "delete = true"
-
+
focusline = id;
-
+
y2milestone( "delete part %1", part );
/////////////////////////////////////////////////////
// check if the partition can be deleted
-
+
if( part["type"]:`primary == `extended &&
!check_extended_delete( disk, Stage::initial() ))
{
@@ -88,16 +88,16 @@
{
return false;
}
-
+
/////////////////////////////////////////////////////
// now delete partition!!
-
+
// YesNo popup text, %1 is replaced by a device name e.g. /dev/hda1
if( Popup::YesNo( sformat(_("Really delete %1?"),
part["device"]:"" )))
{
if( (search( id, "/dev/loop")==0 ||
- search( id, "/dev/mapper/")==0) &&
+ search( id, "/dev/mapper/")==0) &&
size(part["fpath"]:"")>0 &&
Mode::normal() &&
// YesNo popup. %1 is path to a file
@@ -126,7 +126,7 @@
UI::ReplaceWidget( `id(`raid_button),
RaidButton(size(raid["partitions"]:[])) );
}
- else if( search( id, "/dev/loop" )==0 ||
+ else if( search( id, "/dev/loop" )==0 ||
search( id, "/dev/mapper/" )==0 )
{
map dev = Storage::GetDisk( Storage::GetTargetMap(), "/dev/loop" );
@@ -137,4 +137,31 @@
return true;
}
+
+
+ boolean EpDeleteVg(string vgname)
+ {
+ boolean ret = false;
+
+ map tg = Storage::GetTargetMap();
+ integer count = size(get_lv_names(tg, vgname));
+
+ if (count > 0)
+ {
+ // Message popup
+ Popup::Message(sformat(_("The volume group \"%1\" contains at least one logical
+volume. It cannot be removed. Remove all logical volumes then
+remove the volume group.
+"), vgname));
+ }
+ else
+ {
+ // popup text
+ if (Popup::ContinueCancel(sformat(_("Really remove the volume group \"%1\"?"), vgname)))
+ {
+ ret = Storage::DeleteLvmVg(vgname);
+ }
+ }
+ return ret;
+ }
}
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp?rev=44713&r1=44712&r2=44713&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp Wed Feb 20 17:56:54 2008
@@ -12,7 +12,7 @@
import "DualMultiSelectionBox";
- void DlgCreateVolumeGroupNew()
+ string DlgCreateVolumeGroupNew()
{
map tg = Storage::GetTargetMap();
list<map> candidates = get_possible_pvs(tg);
@@ -23,6 +23,14 @@
return `item(`id(device), device);
});
+ /*
+ foreach(string t, ["/dev/hda1", "/dev/hda2", "/dev/hda3", "/dev/hda4", "/dev/hda5",
+ "/dev/hdb1", "/dev/hdb2", "/dev/hdb3", "/dev/hdb4", "/dev/hdb5",
+ "/dev/hdb6", "/dev/hdb7", "/dev/hdb8", "/dev/hdb9", "/dev/hdb10" ], {
+ candidates_list = add(candidates_list, `item(`id(t), t));
+ });
+ */
+
// TODO: use Wizard:: ?
UI::OpenDialog(`opt(`defaultsize),
`VBox(
@@ -74,9 +82,11 @@
if (widget == `ok)
{
- Storage::CreateLvmVgWithDevs(vgname, pesize_str_to_byte (pesize), !old_metadata, pvs);
- // TODO: update tree (with focus)
- UpdateNavigationTree();
+ if (Storage::CreateLvmVgWithDevs(vgname, pesize_str_to_byte (pesize), !old_metadata, pvs))
+ return vgname;
}
+
+ return nil;
}
}
+
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=44713&r1=44712&r2=44713&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 Wed Feb 20 17:56:54 2008
@@ -34,7 +34,12 @@
{
if (widget == `create_vg)
{
- DlgCreateVolumeGroupNew();
+ string vgname = DlgCreateVolumeGroupNew();
+ if (vgname != nil)
+ {
+ // TODO: update tree (with focus)
+ UpdateNavigationTree("/dev/" + vgname);
+ }
}
}
@@ -61,6 +66,22 @@
}
+ void HandleLvmVgOverviewTab(any user_data, any widget)
+ {
+ string device = (string) user_data;
+ string vgname = substring(device, 5);
+
+ if (widget == `delete)
+ {
+ if (EpDeleteVg(vgname))
+ {
+ // TODO: update tree (with focus)
+ UpdateNavigationTree(`lvm);
+ }
+ }
+ }
+
+
void CreateLvmVgLvsTab(any user_data)
{
string device = (string) user_data;
@@ -104,6 +125,12 @@
}
+ void HandleLvmVgLvsTab(any user_data, any widget)
+ {
+ string device = (string) user_data;
+ }
+
+
void CreateLvmVgPvsTab(any user_data)
{
string device = (string) user_data;
@@ -150,8 +177,8 @@
{
string device = (string) user_data;
- map data = $[ `overview : $[ `create : CreateLvmVgOverviewTab, `user_data : user_data ],
- `lvs : $[ `create : CreateLvmVgLvsTab, `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,
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=44713&r1=44712&r2=44713&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 Wed Feb 20 17:56:54 2008
@@ -365,7 +365,7 @@
}
- void UpdateNavigationTree();
+ void UpdateNavigationTree(any new_focus);
include "partitioning/ep-lib.ycp";
@@ -443,10 +443,10 @@
}
- void UpdateNavigationTree()
+ void UpdateNavigationTree(any new_focus)
{
list<term> tree = MakeNavigationTree();
- TreePanel::Update(data, tree);
+ TreePanel::Update(data, tree, new_focus);
}
@@ -537,7 +537,7 @@
// DoApply (inst_prepdisk) replaces the wizard content
// TODO: make nicer
Wizard::SetContentsButtons(_("Expert Partitioner"), content, "", back_label, next_label);
- UpdateNavigationTree();
+ UpdateNavigationTree(nil);
widget = nil;
continue;
}
Modified: branches/tmp/aschnell/part-redesign/storage/src/modules/TreePanel.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/modules/TreePanel.ycp?rev=44713&r1=44712&r2=44713&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/modules/TreePanel.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/modules/TreePanel.ycp Wed Feb 20 17:56:54 2008
@@ -69,16 +69,28 @@
/**
* Update the content of the Tree widget.
*/
- global void Update(map d, list tree)
+ global void Update(map d, list tree, any new_item)
{
- data = d;
+ any old_item = current_item;
any open_items = UI::QueryWidget(`tree, `OpenItems);
UI::ChangeWidget(`tree, `Items, tree);
- UI::ChangeWidget(`tree, `CurrentItem, current_item);
UI::ChangeWidget(`tree, `OpenItems, open_items);
- // TODO: if old current_item does not exist anymore do a save and a create
+ if (new_item == nil)
+ UI::ChangeWidget(`tree, `CurrentItem, current_item);
+ else
+ UI::ChangeWidget(`tree, `CurrentItem, new_item);
+
+ new_item = UI::QueryWidget(`tree, `CurrentItem);
+
+ if (old_item != new_item)
+ {
+ CallSave();
+ data = d;
+ current_item = new_item;
+ CallCreate();
+ }
}
/**
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org