[yast-commit] r55611 - in /trunk/storage: libstorage/src/Graph.cc package/yast2-storage.changes
Author: aschnell Date: Thu Feb 19 15:24:40 2009 New Revision: 55611 URL: http://svn.opensuse.org/viewcvs/yast?rev=55611&view=rev Log: - added tooltips to nodes in graph Modified: trunk/storage/libstorage/src/Graph.cc trunk/storage/package/yast2-storage.changes Modified: trunk/storage/libstorage/src/Graph.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/Graph.cc?rev=55611&r1=55610&r2=55611&view=diff ============================================================================== --- trunk/storage/libstorage/src/Graph.cc (original) +++ trunk/storage/libstorage/src/Graph.cc Thu Feb 19 15:24:40 2009 @@ -10,6 +10,8 @@ #include "config.h" #include "y2storage/Graph.h" +#include "y2storage/AppUtil.h" +#include "y2storage/HumanString.h" using namespace std; @@ -23,13 +25,14 @@ struct Node { - Node(NodeType type, const string& id, const string& label) - : type(type), id(id), label(label) + Node(NodeType type, const string& id, const string& label, unsigned long long sizeK) + : type(type), id(id), label(label), sizeK(sizeK) {} NodeType type; string id; string label; + unsigned long long sizeK; }; @@ -69,37 +72,52 @@ } + string makeTooltip(const char* text, unsigned long long sizeK) + { + return dotQuote(string(text) + string(", ") + byteToHumanString(1024 * sizeK, false, 2, false)); + } + + std::ostream& operator<<(std::ostream& s, const Node& node) { s << dotQuote(node.id) << " [label=" << dotQuote(node.label); switch (node.type) { case NODE_DISK: - s << ", color=\"#ff0000\", fillcolor=\"#ffaaaa\""; + s << ", color=\"#ff0000\", fillcolor=\"#ffaaaa\"" + << ", tooltip=" << makeTooltip(_("Hard Disk"), node.sizeK); break; case NODE_DMRAID: - s << ", color=\"#ff0000\", fillcolor=\"#ffaaaa\""; + s << ", color=\"#ff0000\", fillcolor=\"#ffaaaa\"" + << ", tooltip=" << makeTooltip(_("BIOS RAID"), node.sizeK); break; case NODE_DMMULTIPATH: - s << ", color=\"#ff0000\", fillcolor=\"#ffaaaa\""; + s << ", color=\"#ff0000\", fillcolor=\"#ffaaaa\"" + << ", tooltip=" << makeTooltip(_("Multipath"), node.sizeK); break; case NODE_PARTITION: - s << ", color=\"#cc33cc\", fillcolor=\"#eeaaee\""; + s << ", color=\"#cc33cc\", fillcolor=\"#eeaaee\"" + << ", tooltip=" << makeTooltip(_("Partition"), node.sizeK); break; case NODE_MDRAID: - s << ", color=\"#aaaa00\", fillcolor=\"#ffffaa\""; + s << ", color=\"#aaaa00\", fillcolor=\"#ffffaa\"" + << ", tooltip=" << makeTooltip(_("RAID"), node.sizeK); break; case NODE_LVMVG: - s << ", color=\"#0000ff\", fillcolor=\"#aaaaff\""; + s << ", color=\"#0000ff\", fillcolor=\"#aaaaff\"" + << ", tooltip=" << makeTooltip(_("Volume Group"), node.sizeK); break; case NODE_LVMLV: - s << ", color=\"#6622dd\", fillcolor=\"#bb99ff\""; + s << ", color=\"#6622dd\", fillcolor=\"#bb99ff\"" + << ", tooltip=" << makeTooltip(_("Logical Volume"), node.sizeK); break; case NODE_DM: - s << ", color=\"#885511\", fillcolor=\"#ddbb99\""; + s << ", color=\"#885511\", fillcolor=\"#ddbb99\"" + << ", tooltip=" << makeTooltip(_("DM Device"), node.sizeK); break; case NODE_MOUNTPOINT: - s << ", color=\"#008800\", fillcolor=\"#99ee99\""; + s << ", color=\"#008800\", fillcolor=\"#99ee99\"" + << ", tooltip=" << makeTooltip(_("Mount Point"), node.sizeK); break; } return s << "];"; @@ -134,14 +152,16 @@ deque<ContainerInfo> containers; s->getContainers(containers); - for (deque<ContainerInfo>::iterator i1 = containers.begin(); - i1 != containers.end(); ++i1) + for (deque<ContainerInfo>::iterator i1 = containers.begin(); i1 != containers.end(); ++i1) { switch (i1->type) { case DISK: { - Node disk_node(NODE_DISK, "device:" + i1->device, i1->device); + DiskInfo diskinfo; + s->getDiskInfo(i1->device, diskinfo); + + Node disk_node(NODE_DISK, "device:" + i1->device, i1->device, diskinfo.sizeK); nodes.push_back(disk_node); if (!i1->usedByDevice.empty()) @@ -151,13 +171,12 @@ deque<PartitionInfo> partitions; s->getPartitionInfo(i1->name, partitions); - for (deque<PartitionInfo>::iterator i2 = partitions.begin(); - i2 != partitions.end(); ++i2) + for (deque<PartitionInfo>::iterator i2 = partitions.begin(); i2 != partitions.end(); ++i2) { if (i2->partitionType == EXTENDED) continue; - Node partition_node(NODE_PARTITION, "device:" + i2->v.device, i2->v.device); + Node partition_node(NODE_PARTITION, "device:" + i2->v.device, i2->v.device, i2->v.sizeK); nodes.push_back(partition_node); edges.push_back(EDGE_SUBDEVICE, disk_node.id, partition_node.id); @@ -169,7 +188,7 @@ if (!i2->v.mount.empty()) { - Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount); + Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount, i2->v.sizeK); nodes.push_back(mountpoint_node); edges.push_back(EDGE_MOUNT, partition_node.id, mountpoint_node.id); @@ -180,22 +199,24 @@ case LVM: { - Node vg_node(NODE_LVMVG, "device:" + i1->device, i1->device); + LvmVgInfo lvmvginfo; + s->getLvmVgInfo(i1->name, lvmvginfo); + + Node vg_node(NODE_LVMVG, "device:" + i1->device, i1->device, lvmvginfo.sizeK); nodes.push_back(vg_node); deque<LvmLvInfo> lvs; s->getLvmLvInfo(i1->name, lvs); - for (deque<LvmLvInfo>::iterator i2 = lvs.begin(); - i2 != lvs.end(); ++i2) + for (deque<LvmLvInfo>::iterator i2 = lvs.begin(); i2 != lvs.end(); ++i2) { - Node lv_node(NODE_LVMLV, "device:" + i2->v.device, i2->v.device); + Node lv_node(NODE_LVMLV, "device:" + i2->v.device, i2->v.device, i2->v.sizeK); nodes.push_back(lv_node); edges.push_back(EDGE_SUBDEVICE, vg_node.id, lv_node.id); if (!i2->v.mount.empty()) { - Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount); + Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount, i2->v.sizeK); nodes.push_back(mountpoint_node); edges.push_back(EDGE_MOUNT, lv_node.id, mountpoint_node.id); @@ -211,7 +232,7 @@ for (deque<MdInfo>::iterator i2 = mds.begin(); i2 != mds.end(); ++i2) { - Node md_node(NODE_MDRAID, "device:" + i2->v.device, i2->v.device); + Node md_node(NODE_MDRAID, "device:" + i2->v.device, i2->v.device, i2->v.sizeK); nodes.push_back(md_node); if (!i2->v.usedByDevice.empty()) @@ -221,7 +242,7 @@ if (!i2->v.mount.empty()) { - Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount); + Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount, i2->v.sizeK); nodes.push_back(mountpoint_node); edges.push_back(EDGE_MOUNT, md_node.id, mountpoint_node.id); @@ -237,7 +258,7 @@ for (deque<DmInfo>::iterator i2 = dms.begin(); i2 != dms.end(); ++i2) { - Node dm_node(NODE_DM, "device:" + i2->v.device, i2->v.device); + Node dm_node(NODE_DM, "device:" + i2->v.device, i2->v.device, i2->v.sizeK); nodes.push_back(dm_node); if (!i2->v.usedByDevice.empty()) @@ -247,7 +268,7 @@ if (!i2->v.mount.empty()) { - Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount); + Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->v.mount, i2->v.mount, i2->v.sizeK); nodes.push_back(mountpoint_node); edges.push_back(EDGE_MOUNT, dm_node.id, mountpoint_node.id); @@ -258,7 +279,10 @@ case DMRAID: { - Node dmraid_node(NODE_DMRAID, "device:" + i1->device, i1->device); + DmraidCoInfo dmraidcoinfo; + s->getDmraidCoInfo(i1->device, dmraidcoinfo); + + Node dmraid_node(NODE_DMRAID, "device:" + i1->device, i1->device, dmraidcoinfo.p.d.sizeK); nodes.push_back(dmraid_node); if (!i1->usedByDevice.empty()) @@ -268,13 +292,12 @@ deque<DmraidInfo> partitions; s->getDmraidInfo(i1->name, partitions); - for (deque<DmraidInfo>::iterator i2 = partitions.begin(); - i2 != partitions.end(); ++i2) + for (deque<DmraidInfo>::iterator i2 = partitions.begin(); i2 != partitions.end(); ++i2) { if (i2->p.p.partitionType == EXTENDED) continue; - Node partition_node(NODE_PARTITION, "device:" + i2->p.v.device, i2->p.v.device); + Node partition_node(NODE_PARTITION, "device:" + i2->p.v.device, i2->p.v.device, i2->p.v.sizeK); nodes.push_back(partition_node); edges.push_back(EDGE_SUBDEVICE, dmraid_node.id, partition_node.id); @@ -286,7 +309,7 @@ if (!i2->p.v.mount.empty()) { - Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->p.v.mount, i2->p.v.mount); + Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->p.v.mount, i2->p.v.mount, i2->p.v.sizeK); nodes.push_back(mountpoint_node); edges.push_back(EDGE_MOUNT, partition_node.id, mountpoint_node.id); @@ -297,7 +320,10 @@ case DMMULTIPATH: { - Node dmmultipath_node(NODE_DMMULTIPATH, "device:" + i1->device, i1->device); + DmmultipathCoInfo dmmultipathcoinfo; + s->getDmmultipathCoInfo(i1->device, dmmultipathcoinfo); + + Node dmmultipath_node(NODE_DMMULTIPATH, "device:" + i1->device, i1->device, dmmultipathcoinfo.p.d.sizeK); nodes.push_back(dmmultipath_node); if (!i1->usedByDevice.empty()) @@ -307,13 +333,12 @@ deque<DmmultipathInfo> partitions; s->getDmmultipathInfo(i1->name, partitions); - for (deque<DmmultipathInfo>::iterator i2 = partitions.begin(); - i2 != partitions.end(); ++i2) + for (deque<DmmultipathInfo>::iterator i2 = partitions.begin(); i2 != partitions.end(); ++i2) { if (i2->p.p.partitionType == EXTENDED) continue; - Node partition_node(NODE_PARTITION, "device:" + i2->p.v.device, i2->p.v.device); + Node partition_node(NODE_PARTITION, "device:" + i2->p.v.device, i2->p.v.device, i2->p.v.sizeK); nodes.push_back(partition_node); edges.push_back(EDGE_SUBDEVICE, dmmultipath_node.id, partition_node.id); @@ -325,7 +350,7 @@ if (!i2->p.v.mount.empty()) { - Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->p.v.mount, i2->p.v.mount); + Node mountpoint_node(NODE_MOUNTPOINT, "mountpoint:" + i2->p.v.mount, i2->p.v.mount, i2->p.v.sizeK); nodes.push_back(mountpoint_node); edges.push_back(EDGE_MOUNT, partition_node.id, mountpoint_node.id); Modified: trunk/storage/package/yast2-storage.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/package/yast2-storage.changes?rev=55611&r1=55610&r2=55611&view=diff ============================================================================== --- trunk/storage/package/yast2-storage.changes (original) +++ trunk/storage/package/yast2-storage.changes Thu Feb 19 15:24:40 2009 @@ -1,8 +1,13 @@ ------------------------------------------------------------------- +Thu Feb 19 15:23:47 CET 2009 - aschnell@suse.de + +- added tooltips to nodes in graph +- 2.18.7 + +------------------------------------------------------------------- Wed Feb 18 14:44:45 CET 2009 - aschnell@suse.de - converted proposal code to a module -- 2.18.7 ------------------------------------------------------------------- Fri Feb 13 12:42:07 CET 2009 - aschnell@suse.de -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
aschnell@svn.opensuse.org