From da663169f7c24510f91477ab4a2abd8b3330467b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Wed, 7 Sep 2016 14:36:59 +0100 Subject: [PATCH] Adapt to kpmcore changes regarding LVM PV detection. --- src/gui/createvolumegroupdialog.cpp | 13 +++++++------ src/gui/createvolumegroupdialog.h | 6 +++++- src/gui/mainwindow.cpp | 6 +++--- src/gui/resizevolumegroupdialog.cpp | 13 +++++++------ src/gui/resizevolumegroupdialog.h | 4 +++- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/gui/createvolumegroupdialog.cpp b/src/gui/createvolumegroupdialog.cpp index 38f1de6..f29eeba 100644 --- a/src/gui/createvolumegroupdialog.cpp +++ b/src/gui/createvolumegroupdialog.cpp @@ -28,9 +28,10 @@ #include #include -CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& pvlist, qint32& pesize) : - VolumeGroupDialog(parent, vgname, pvlist), - m_PESize(pesize), +CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, const QList& devices, QString& vgName, QStringList& pvList, qint32& peSize) : + VolumeGroupDialog(parent, vgName, pvList), + m_PESize(peSize), + m_Devices(devices), m_SystemVGList(LvmDevice::getVGs()) { setWindowTitle(xi18nc("@title:window", "Create new Volume Group")); @@ -48,9 +49,9 @@ CreateVolumeGroupDialog::CreateVolumeGroupDialog(QWidget* parent, QString& vgnam void CreateVolumeGroupDialog::setupDialog() { - for (const auto &pvpath : FS::lvm2_pv::getFreePV()) { - if (!LvmDevice::s_DirtyPVs.contains(pvpath)) { - dialogWidget().listPV().addPartition(pvpath, false); + for (const auto &p : FS::lvm2_pv::getFreePV(m_Devices)) { + if (!LvmDevice::s_DirtyPVs.contains(p->deviceNode())) { + dialogWidget().listPV().addPartition(p->deviceNode(), false); } } } diff --git a/src/gui/createvolumegroupdialog.h b/src/gui/createvolumegroupdialog.h index 69742b6..c4404bb 100644 --- a/src/gui/createvolumegroupdialog.h +++ b/src/gui/createvolumegroupdialog.h @@ -21,12 +21,14 @@ #include "gui/volumegroupdialog.h" +class Device; + class CreateVolumeGroupDialog : public VolumeGroupDialog { Q_DISABLE_COPY(CreateVolumeGroupDialog) public: - CreateVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& pvlist, qint32& pesize); + CreateVolumeGroupDialog(QWidget* parent, const QList& devices, QString& vgName, QStringList& pvList, qint32& peSize); protected: void accept() override; @@ -42,6 +44,8 @@ protected: } qint32& m_PESize; + const QList& m_Devices; // List of all devices found on the system + private: QStringList m_SystemVGList; }; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 8ac32f0..cb8fab1 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -1106,7 +1106,7 @@ void MainWindow::onCreateNewVolumeGroup() QStringList* pvlist = new QStringList(); qint32 pesize = 4; // *NOTE*: vgname & pvlist will be modified and validated by the dialog - QPointer dlg = new CreateVolumeGroupDialog(this, *vgname, *pvlist, pesize); + QPointer dlg = new CreateVolumeGroupDialog(this, operationStack().previewDevices(), *vgname, *pvlist, pesize); if (dlg->exec() == QDialog::Accepted) { operationStack().push(new CreateVolumeGroupOperation(*vgname, *pvlist, pesize)); } @@ -1153,7 +1153,7 @@ void MainWindow::onResizeVolumeGroup() QStringList* pvList = new QStringList(); // *NOTE*: pvList will be modified and validated by the dialog - QPointer dlg = new ResizeVolumeGroupDialog(this, *vgName, *pvList, *tmpDev); + QPointer dlg = new ResizeVolumeGroupDialog(this, operationStack().previewDevices(), *vgName, *pvList, *tmpDev); if (dlg->exec() == QDialog::Accepted) { operationStack().push(new ResizeVolumeGroupOperation(*tmpDev, *pvList)); } @@ -1253,7 +1253,7 @@ static KLocalizedString checkSupportInNode(const PartitionNode* parent) KLocalizedString rval; - for (auto const &node : parent->children()) { + for (const auto &node : parent->children()) { const Partition* p = dynamic_cast(node); if (p == nullptr) diff --git a/src/gui/resizevolumegroupdialog.cpp b/src/gui/resizevolumegroupdialog.cpp index 695a981..621c4fe 100644 --- a/src/gui/resizevolumegroupdialog.cpp +++ b/src/gui/resizevolumegroupdialog.cpp @@ -34,9 +34,10 @@ @param parent pointer to the parent widget @param dev the Device to show properties for */ -ResizeVolumeGroupDialog::ResizeVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& partlist, VolumeManagerDevice& dev) : - VolumeGroupDialog(parent, vgname, partlist), - m_Device(dev) +ResizeVolumeGroupDialog::ResizeVolumeGroupDialog(QWidget* parent, const QList& devices, QString& vgName, QStringList& partList, VolumeManagerDevice& d) : + VolumeGroupDialog(parent, vgName, partList), + m_Devices(devices), + m_Device(d) { setWindowTitle(xi18nc("@title:window", "Resize Volume Group")); @@ -51,9 +52,9 @@ void ResizeVolumeGroupDialog::setupDialog() { if (dialogWidget().volumeType().currentText() == QStringLiteral("LVM")) { dialogWidget().listPV().addPartitionList(device().deviceNodes(), true); - for (const auto &pvpath : FS::lvm2_pv::getFreePV()) { - if (!LvmDevice::s_DirtyPVs.contains(pvpath)) { - dialogWidget().listPV().addPartition(pvpath, false); + for (const auto &p : FS::lvm2_pv::getFreePV(m_Devices)) { + if (!LvmDevice::s_DirtyPVs.contains(p->deviceNode())) { + dialogWidget().listPV().addPartition(p->deviceNode(), false); } } } diff --git a/src/gui/resizevolumegroupdialog.h b/src/gui/resizevolumegroupdialog.h index 4651668..ea99adf 100644 --- a/src/gui/resizevolumegroupdialog.h +++ b/src/gui/resizevolumegroupdialog.h @@ -21,6 +21,7 @@ #include "gui/volumegroupdialog.h" +class Device; class VolumeManagerDevice; class ResizeVolumeGroupDialog : public VolumeGroupDialog @@ -28,7 +29,7 @@ class ResizeVolumeGroupDialog : public VolumeGroupDialog Q_DISABLE_COPY(ResizeVolumeGroupDialog) public: - ResizeVolumeGroupDialog(QWidget* parent, QString& vgname, QStringList& partlist, VolumeManagerDevice& dev); + ResizeVolumeGroupDialog(QWidget* parent, const QList& devices, QString& vgName, QStringList& partList, VolumeManagerDevice& d); protected: void accept() override; @@ -40,6 +41,7 @@ protected: } private: + const QList& m_Devices; // List of all devices found on the system VolumeManagerDevice& m_Device; };