Skip to content

Commit

Permalink
Add common partition lookup method
Browse files Browse the repository at this point in the history
  • Loading branch information
rainemak committed Sep 4, 2018
1 parent 293ae72 commit 5266109
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 55 deletions.
81 changes: 26 additions & 55 deletions src/partitionmodel.cpp
Expand Up @@ -122,89 +122,49 @@ void PartitionModel::refresh(int index)
void PartitionModel::lock(const QString &deviceName)
{
qCInfo(lcMemoryCardLog) << Q_FUNC_INFO << deviceName << m_partitions.count();

bool found = false;
for (const Partition &partition : m_partitions) {
if (deviceName == partition.deviceName()) {
found = true;
m_manager->lock(partition);
break;
}
}

if (!found) {
if (const Partition *partition = getPartition(deviceName)) {
m_manager->lock(*partition);
} else {
qCWarning(lcMemoryCardLog) << "Unable to lock unknown device:" << deviceName;
}
}

void PartitionModel::unlock(const QString &deviceName, const QString &passphrase)
{
qCInfo(lcMemoryCardLog) << Q_FUNC_INFO << deviceName << m_partitions.count();

bool found = false;
for (const Partition &partition : m_partitions) {
if (deviceName == partition.deviceName()) {
found = true;
m_manager->unlock(partition, passphrase);
break;
}
}

if (!found) {
if (const Partition *partition = getPartition(deviceName)) {
m_manager->unlock(*partition, passphrase);
} else {
qCWarning(lcMemoryCardLog) << "Unable to unlock unknown device:" << deviceName;
}
}

void PartitionModel::mount(const QString &deviceName)
{
qCInfo(lcMemoryCardLog) << Q_FUNC_INFO << deviceName << m_partitions.count();

bool found = false;
for (const Partition &partition : m_partitions) {
if (deviceName == partition.deviceName()) {
found = true;
m_manager->mount(partition);
break;
}
}

if (!found) {
if (const Partition *partition = getPartition(deviceName)) {
m_manager->mount(*partition);
} else {
qCWarning(lcMemoryCardLog) << "Unable to mount unknown device:" << deviceName;
}
}

void PartitionModel::unmount(const QString &deviceName)
{
qCInfo(lcMemoryCardLog) << Q_FUNC_INFO << deviceName << m_partitions.count();

bool found = false;
for (const Partition &partition : m_partitions) {
if (deviceName == partition.deviceName()) {
found = true;
m_manager->unmount(partition);
break;
}
}

if (!found) {
if (const Partition *partition = getPartition(deviceName)) {
m_manager->unmount(*partition);
} else {
qCWarning(lcMemoryCardLog) << "Unable to unmount unknown device:" << deviceName;
}
}

void PartitionModel::format(const QString &deviceName, const QString &type, const QString &label, const QString &passphrase)
{
qCInfo(lcMemoryCardLog) << Q_FUNC_INFO << deviceName << type << label << m_partitions.count();

bool found = false;
for (const Partition &partition : m_partitions) {
if (deviceName == partition.deviceName()) {
found = true;
m_manager->format(partition, type, label, passphrase);
break;
}
}

if (!found) {
if (const Partition *partition = getPartition(deviceName)) {
m_manager->format(*partition, type, label, passphrase);
} else {
qCWarning(lcMemoryCardLog) << "Unable to format unknown device:" << deviceName;
}
}
Expand Down Expand Up @@ -251,6 +211,17 @@ void PartitionModel::update()
}
}

const Partition *PartitionModel::getPartition(const QString &deviceName) const
{
for (const Partition &partition : m_partitions) {
if (deviceName == partition.deviceName()) {
return &partition;
}
}

return nullptr;
}

QHash<int, QByteArray> PartitionModel::roleNames() const
{
static const QHash<int, QByteArray> roleNames = {
Expand Down
2 changes: 2 additions & 0 deletions src/partitionmodel.h
Expand Up @@ -150,6 +150,8 @@ class SYSTEMSETTINGS_EXPORT PartitionModel : public QAbstractListModel
private:
void update();

const Partition *getPartition(const QString &deviceName) const;

void partitionChanged(const Partition &partition);
void partitionAdded(const Partition &partition);
void partitionRemoved(const Partition &partition);
Expand Down

0 comments on commit 5266109

Please sign in to comment.