Adapt to kpmcore changes regarding LVM PV detection.

This commit is contained in:
Andrius Štikonas 2016-09-07 14:36:59 +01:00
parent e7d2a21599
commit da663169f7
5 changed files with 25 additions and 17 deletions

View File

@ -28,9 +28,10 @@
#include <KLocalizedString> #include <KLocalizedString>
#include <KSharedConfig> #include <KSharedConfig>
CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& pvlist, qint32& pesize) : CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, const QList<Device*>& devices, QString& vgName, QStringList& pvList, qint32& peSize) :
VolumeGroupDialog(parent, vgname, pvlist), VolumeGroupDialog(parent, vgName, pvList),
m_PESize(pesize), m_PESize(peSize),
m_Devices(devices),
m_SystemVGList(LvmDevice::getVGs()) m_SystemVGList(LvmDevice::getVGs())
{ {
setWindowTitle(xi18nc("@title:window", "Create new Volume Group")); setWindowTitle(xi18nc("@title:window", "Create new Volume Group"));
@ -48,9 +49,9 @@ CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, QString& vgnam
void CreateVolumeGroupDialog::setupDialog() void CreateVolumeGroupDialog::setupDialog()
{ {
for (const auto &pvpath : FS::lvm2_pv::getFreePV()) { for (const auto &p : FS::lvm2_pv::getFreePV(m_Devices)) {
if (!LvmDevice::s_DirtyPVs.contains(pvpath)) { if (!LvmDevice::s_DirtyPVs.contains(p->deviceNode())) {
dialogWidget().listPV().addPartition(pvpath, false); dialogWidget().listPV().addPartition(p->deviceNode(), false);
} }
} }
} }

View File

@ -21,12 +21,14 @@
#include "gui/volumegroupdialog.h" #include "gui/volumegroupdialog.h"
class Device;
class CreateVolumeGroupDialog : public VolumeGroupDialog class CreateVolumeGroupDialog : public VolumeGroupDialog
{ {
Q_DISABLE_COPY(CreateVolumeGroupDialog) Q_DISABLE_COPY(CreateVolumeGroupDialog)
public: public:
CreateVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& pvlist, qint32& pesize); CreateVolumeGroupDialog(QWidget* parent, const QList<Device*>& devices, QString& vgName, QStringList& pvList, qint32& peSize);
protected: protected:
void accept() override; void accept() override;
@ -42,6 +44,8 @@ protected:
} }
qint32& m_PESize; qint32& m_PESize;
const QList<Device*>& m_Devices; // List of all devices found on the system
private: private:
QStringList m_SystemVGList; QStringList m_SystemVGList;
}; };

View File

@ -1106,7 +1106,7 @@ void MainWindow::onCreateNewVolumeGroup()
QStringList* pvlist = new QStringList(); QStringList* pvlist = new QStringList();
qint32 pesize = 4; qint32 pesize = 4;
// *NOTE*: vgname & pvlist will be modified and validated by the dialog // *NOTE*: vgname & pvlist will be modified and validated by the dialog
QPointer<CreateVolumeGroupDialog> dlg = new CreateVolumeGroupDialog(this, *vgname, *pvlist, pesize); QPointer<CreateVolumeGroupDialog> dlg = new CreateVolumeGroupDialog(this, operationStack().previewDevices(), *vgname, *pvlist, pesize);
if (dlg->exec() == QDialog::Accepted) { if (dlg->exec() == QDialog::Accepted) {
operationStack().push(new CreateVolumeGroupOperation(*vgname, *pvlist, pesize)); operationStack().push(new CreateVolumeGroupOperation(*vgname, *pvlist, pesize));
} }
@ -1153,7 +1153,7 @@ void MainWindow::onResizeVolumeGroup()
QStringList* pvList = new QStringList(); QStringList* pvList = new QStringList();
// *NOTE*: pvList will be modified and validated by the dialog // *NOTE*: pvList will be modified and validated by the dialog
QPointer<ResizeVolumeGroupDialog> dlg = new ResizeVolumeGroupDialog(this, *vgName, *pvList, *tmpDev); QPointer<ResizeVolumeGroupDialog> dlg = new ResizeVolumeGroupDialog(this, operationStack().previewDevices(), *vgName, *pvList, *tmpDev);
if (dlg->exec() == QDialog::Accepted) { if (dlg->exec() == QDialog::Accepted) {
operationStack().push(new ResizeVolumeGroupOperation(*tmpDev, *pvList)); operationStack().push(new ResizeVolumeGroupOperation(*tmpDev, *pvList));
} }
@ -1253,7 +1253,7 @@ static KLocalizedString checkSupportInNode(const PartitionNode* parent)
KLocalizedString rval; KLocalizedString rval;
for (auto const &node : parent->children()) { for (const auto &node : parent->children()) {
const Partition* p = dynamic_cast<const Partition*>(node); const Partition* p = dynamic_cast<const Partition*>(node);
if (p == nullptr) if (p == nullptr)

View File

@ -34,9 +34,10 @@
@param parent pointer to the parent widget @param parent pointer to the parent widget
@param dev the Device to show properties for @param dev the Device to show properties for
*/ */
ResizeVolumeGroupDialog::ResizeVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& partlist, VolumeManagerDevice& dev) : ResizeVolumeGroupDialog::ResizeVolumeGroupDialog(QWidget* parent, const QList<Device*>& devices, QString& vgName, QStringList& partList, VolumeManagerDevice& d) :
VolumeGroupDialog(parent, vgname, partlist), VolumeGroupDialog(parent, vgName, partList),
m_Device(dev) m_Devices(devices),
m_Device(d)
{ {
setWindowTitle(xi18nc("@title:window", "Resize Volume Group")); setWindowTitle(xi18nc("@title:window", "Resize Volume Group"));
@ -51,9 +52,9 @@ void ResizeVolumeGroupDialog::setupDialog()
{ {
if (dialogWidget().volumeType().currentText() == QStringLiteral("LVM")) { if (dialogWidget().volumeType().currentText() == QStringLiteral("LVM")) {
dialogWidget().listPV().addPartitionList(device().deviceNodes(), true); dialogWidget().listPV().addPartitionList(device().deviceNodes(), true);
for (const auto &pvpath : FS::lvm2_pv::getFreePV()) { for (const auto &p : FS::lvm2_pv::getFreePV(m_Devices)) {
if (!LvmDevice::s_DirtyPVs.contains(pvpath)) { if (!LvmDevice::s_DirtyPVs.contains(p->deviceNode())) {
dialogWidget().listPV().addPartition(pvpath, false); dialogWidget().listPV().addPartition(p->deviceNode(), false);
} }
} }
} }

View File

@ -21,6 +21,7 @@
#include "gui/volumegroupdialog.h" #include "gui/volumegroupdialog.h"
class Device;
class VolumeManagerDevice; class VolumeManagerDevice;
class ResizeVolumeGroupDialog : public VolumeGroupDialog class ResizeVolumeGroupDialog : public VolumeGroupDialog
@ -28,7 +29,7 @@ class ResizeVolumeGroupDialog : public VolumeGroupDialog
Q_DISABLE_COPY(ResizeVolumeGroupDialog) Q_DISABLE_COPY(ResizeVolumeGroupDialog)
public: public:
ResizeVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& partlist, VolumeManagerDevice& dev); ResizeVolumeGroupDialog(QWidget* parent, const QList<Device*>& devices, QString& vgName, QStringList& partList, VolumeManagerDevice& d);
protected: protected:
void accept() override; void accept() override;
@ -40,6 +41,7 @@ protected:
} }
private: private:
const QList<Device*>& m_Devices; // List of all devices found on the system
VolumeManagerDevice& m_Device; VolumeManagerDevice& m_Device;
}; };