Initial work on LVM Device

This commit is contained in:
Chantara Tith 2016-06-11 01:04:05 +07:00 committed by Andrius Štikonas
parent a2df4b648b
commit 6c946d7a2c
4 changed files with 43 additions and 25 deletions

View File

@ -62,7 +62,7 @@ PartitionTable::TableType CreatePartitionTableDialog::type() const
void CreatePartitionTableDialog::onMSDOSToggled(bool on)
{
if (on && device().totalSectors() > 0xffffffff) {
if (on && device().totalLogical() > 0xffffffff) {
if (KMessageBox::warningContinueCancel(this,
xi18nc("@info",
"<para>Do you really want to create an MS-Dos partition table on <filename>%1</filename>?</para>"

View File

@ -22,6 +22,7 @@
#include "gui/smartdialog.h"
#include <core/device.h>
#include <core/diskdevice.h>
#include <core/partitiontable.h>
#include <core/smartstatus.h>
@ -104,18 +105,22 @@ void DevicePropsDialog::setupDialog()
dialogWidget().capacity().setText(Capacity::formatByteSize(device().capacity()));
if (device().type() == Device::Disk_Device) {
const QString cyls = QLocale().toString((device().cylinders()));
const QString heads = QLocale().toString((device().heads()));
const QString sectors = QLocale().toString((device().sectorsPerTrack()));
dialogWidget().chs().setText(QStringLiteral("%1/%2/%3").arg(cyls).arg(heads).arg(sectors));
const DiskDevice& disk = dynamic_cast<const DiskDevice&>(device());
const QString cyls = QLocale().toString((disk.cylinders()));
const QString heads = QLocale().toString((disk.heads()));
const QString sectors = QLocale().toString((disk.sectorsPerTrack()));
dialogWidget().chs().setText(QStringLiteral("%1/%2/%3").arg(cyls).arg(heads).arg(sectors));
dialogWidget().cylinderSize().setText(xi18ncp("@label", "1 Sector", "%1 Sectors", device().cylinderSize()));
dialogWidget().primariesMax().setText(maxPrimaries);
dialogWidget().logicalSectorSize().setText(Capacity::formatByteSize(device().logicalSectorSize()));
dialogWidget().physicalSectorSize().setText(Capacity::formatByteSize(device().physicalSectorSize()));
dialogWidget().totalSectors().setText(QLocale().toString((device().totalSectors())));
dialogWidget().type().setText(type);
dialogWidget().cylinderSize().setText(i18ncp("@label", "1 Sector", "%1 Sectors", disk.cylinderSize()));
dialogWidget().primariesMax().setText(maxPrimaries);
dialogWidget().logicalSectorSize().setText(Capacity::formatByteSize(disk.logicalSectorSize()));
dialogWidget().physicalSectorSize().setText(Capacity::formatByteSize(disk.physicalSectorSize()));
dialogWidget().totalSectors().setText(QLocale().toString((disk.totalSectors())));
dialogWidget().type().setText(type);
}
if (device().smartStatus().isValid()) {
if (device().smartStatus().status()) {

View File

@ -19,6 +19,8 @@
#include "gui/infopane.h"
#include <core/device.h>
#include <core/diskdevice.h>
#include <core/lvmdevice.h>
#include <core/partition.h>
#include <fs/filesystem.h>
@ -174,16 +176,27 @@ void InfoPane::showDevice(Qt::DockWidgetArea area, const Device& d)
maxPrimaries = QStringLiteral("%1/%2").arg(d.partitionTable()->numPrimaries()).arg(d.partitionTable()->maxPrimaries());
}
createLabels(xi18nc("@label device", "Type:"), type, cols(area), x, y);
createLabels(xi18nc("@label device", "Capacity:"), Capacity::formatByteSize(d.capacity()), cols(area), x, y);
createLabels(xi18nc("@label device", "Total sectors:"), QLocale().toString(d.totalSectors()), cols(area), x, y);
createLabels(xi18nc("@label device", "Heads:"), QString::number(d.heads()), cols(area), x, y);
createLabels(xi18nc("@label device", "Cylinders:"), QLocale().toString(d.cylinders()), cols(area), x, y);
createLabels(xi18nc("@label device", "Sectors:"), QLocale().toString(d.sectorsPerTrack()), cols(area), x, y);
createLabels(xi18nc("@label device", "Logical sector size:"), Capacity::formatByteSize(d.logicalSectorSize()), cols(area), x, y);
createLabels(xi18nc("@label device", "Physical sector size:"), Capacity::formatByteSize(d.physicalSectorSize()), cols(area), x, y);
createLabels(xi18nc("@label device", "Cylinder size:"), xi18ncp("@label", "1 Sector", "%1 Sectors", d.cylinderSize()), cols(area), x, y);
createLabels(xi18nc("@label device", "Primaries/Max:"), maxPrimaries, cols(area), x, y);
if (d.type() == Device::Disk_Device) {
const DiskDevice& disk = dynamic_cast<const DiskDevice&>(d);
createLabels(i18nc("@label device", "Type:"), type, cols(area), x, y);
createLabels(i18nc("@label device", "Capacity:"), Capacity::formatByteSize(disk.capacity()), cols(area), x, y);
createLabels(i18nc("@label device", "Total sectors:"), QLocale().toString(disk.totalSectors()), cols(area), x, y);
createLabels(i18nc("@label device", "Heads:"), QString::number(disk.heads()), cols(area), x, y);
createLabels(i18nc("@label device", "Cylinders:"), QLocale().toString(disk.cylinders()), cols(area), x, y);
createLabels(i18nc("@label device", "Sectors:"), QLocale().toString(disk.sectorsPerTrack()), cols(area), x, y);
createLabels(i18nc("@label device", "Logical sector size:"), Capacity::formatByteSize(disk.logicalSectorSize()), cols(area), x, y);
createLabels(i18nc("@label device", "Physical sector size:"), Capacity::formatByteSize(disk.physicalSectorSize()), cols(area), x, y);
createLabels(i18nc("@label device", "Cylinder size:"), i18ncp("@label", "1 Sector", "%1 Sectors", disk.cylinderSize()), cols(area), x, y);
createLabels(i18nc("@label device", "Primaries/Max:"), maxPrimaries, cols(area), x, y);
} else if (d.type() == Device::LVM_Device) {
const LvmDevice& lvm = dynamic_cast<const LvmDevice&>(d);
//TODO: add LVM device info
createLabels(i18nc("@label device", "PE Size:"), Capacity::formatByteSize(lvm.peSize()), cols(area), x, y);
createLabels(i18nc("@label device", "Total PE:"),QString::number(lvm.totalPE()), cols(area), x, y);
createLabels(i18nc("@label device", "Allocated PE:"), QString::number(lvm.allocatedPE()), cols(area), x, y);
createLabels(i18nc("@label device", "Free PE:"), QString::number(lvm.freePE()), cols(area), x, y);
}
}
quint32 InfoPane::cols(Qt::DockWidgetArea area) const

View File

@ -115,8 +115,8 @@ void SizeDialogBase::setupConstraints()
dialogWidget().partResizerWidget().setMinimumLength(minimumLength());
dialogWidget().partResizerWidget().setMaximumLength(maximumLength());
dialogWidget().labelMinSize().setText(Capacity::formatByteSize(minimumLength() * device().logicalSectorSize()));
dialogWidget().labelMaxSize().setText(Capacity::formatByteSize(maximumLength() * device().logicalSectorSize()));
dialogWidget().labelMinSize().setText(Capacity::formatByteSize(minimumLength() * device().logicalSize()));
dialogWidget().labelMaxSize().setText(Capacity::formatByteSize(maximumLength() * device().logicalSize()));
dialogWidget().spinCapacity().setEnabled(canShrink() || canGrow());
@ -415,11 +415,11 @@ qint64 SizeDialogBase::maximumLength() const
static double sectorsToDialogUnit(const Device& d, qint64 v)
{
return Capacity(v * d.logicalSectorSize()).toDouble(preferredUnit());
return Capacity(v * d.logicalSize()).toDouble(preferredUnit());
}
static qint64 dialogUnitToSectors(const Device& d, double v)
{
return v * Capacity::unitFactor(Capacity::Byte, preferredUnit()) / d.logicalSectorSize();
return v * Capacity::unitFactor(Capacity::Byte, preferredUnit()) / d.logicalSize();
}