File indexing completed on 2024-04-28 05:46:32

0001 /*
0002     SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com>
0003     SPDX-FileCopyrightText: 2016 Andrius Štikonas <andrius@stikonas.eu>
0004 
0005     SPDX-License-Identifier: GPL-3.0-or-later
0006 */
0007 
0008 #include "gui/listphysicalvolumes.h"
0009 
0010 #include <fs/lvm2_pv.h>
0011 #include <util/globallog.h>
0012 #include <util/capacity.h>
0013 
0014 ListPhysicalVolumes::ListPhysicalVolumes(QWidget* parent) :
0015     QWidget(parent),
0016     Ui::ListPhysicalVolumesBase()
0017 {
0018     setupUi(this);
0019 }
0020 
0021 void ListPhysicalVolumes::addPartition(const Partition& p, bool checked)
0022 {
0023     ListPhysicalVolumeWidgetItem *item = new ListPhysicalVolumeWidgetItem(p, checked);
0024     listPhysicalVolumes().addItem(item);
0025 }
0026 
0027 QVector<const Partition *> ListPhysicalVolumes::checkedItems()
0028 {
0029     QVector<const Partition *> partitionList;
0030     for (int i = 0; i < listPhysicalVolumes().count(); i++) {
0031         ListPhysicalVolumeWidgetItem* item = dynamic_cast<ListPhysicalVolumeWidgetItem*>(listPhysicalVolumes().item(i));
0032         if(item && item->checkState() == Qt::Checked)
0033             partitionList.push_back(item->partition());
0034     }
0035     return partitionList;
0036 }
0037 
0038 ListPhysicalVolumeWidgetItem::ListPhysicalVolumeWidgetItem(const Partition& p, bool checked)
0039     : QListWidgetItem(xi18nc("@item:inlistbox Device | Capacity", "%1 | %2",  p.deviceNode(), Capacity::formatByteSize(p.capacity())))
0040     , m_Partition(&p)
0041 {
0042     setToolTip(p.deviceNode());
0043     setSizeHint(QSize(0, 32));
0044     setCheckState( checked ? Qt::Checked : Qt::Unchecked);
0045 }