Skip to content

Commit

Permalink
[systemsettings] Expose objectPath lookup from partition model. Contr…
Browse files Browse the repository at this point in the history
…ibutes to JB#42530
  • Loading branch information
rainemak committed Sep 4, 2018
1 parent 5266109 commit 227fbf5
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/partitionmanager.cpp
Expand Up @@ -327,6 +327,16 @@ void PartitionManagerPrivate::format(const Partition &partition, const QString &
}
}

QString PartitionManagerPrivate::objectPath(const Partition &partition) const
{
if (externalMedia.match(partition.deviceName()).hasMatch()) {
return m_udisksMonitor->instance()->objectPath(partition.deviceName());
} else {
qCWarning(lcMemoryCardLog) << "Object path existing only for external memory cards:" << partition.devicePath();
return QString();
}
}

QStringList PartitionManagerPrivate::supportedFileSystems() const
{
// Query filesystems supported by this device
Expand Down
2 changes: 2 additions & 0 deletions src/partitionmanager_p.h
Expand Up @@ -72,6 +72,8 @@ class PartitionManagerPrivate : public QObject, public QSharedData
void unmount(const Partition &partition);
void format(const Partition &partition, const QString &type, const QString &label, const QString &passphrase);

QString objectPath(const Partition &partition) const;

QStringList supportedFileSystems() const;

signals:
Expand Down
11 changes: 11 additions & 0 deletions src/partitionmodel.cpp
Expand Up @@ -169,6 +169,17 @@ void PartitionModel::format(const QString &deviceName, const QString &type, cons
}
}

QString PartitionModel::objectPath(const QString &deviceName) const
{
qCInfo(lcMemoryCardLog) << Q_FUNC_INFO << deviceName;
if (const Partition *partition = getPartition(deviceName)) {
return m_manager->objectPath(*partition);
} else {
qCWarning(lcMemoryCardLog) << "Unable to get object path for unknown device:" << deviceName;
return QString();
}
}

void PartitionModel::update()
{
const int count = m_partitions.count();
Expand Down
2 changes: 2 additions & 0 deletions src/partitionmodel.h
Expand Up @@ -131,6 +131,8 @@ class SYSTEMSETTINGS_EXPORT PartitionModel : public QAbstractListModel
Q_INVOKABLE void unmount(const QString &deviceName);
Q_INVOKABLE void format(const QString &deviceName, const QString &type, const QString &label, const QString &passphrase = QString());

Q_INVOKABLE QString objectPath(const QString &deviceName) const;

QHash<int, QByteArray> roleNames() const;

int rowCount(const QModelIndex &parent = QModelIndex()) const;
Expand Down
4 changes: 2 additions & 2 deletions src/udisks2monitor_p.h
Expand Up @@ -86,6 +86,8 @@ class Monitor : public QObject

void format(const QString &deviceName, const QString &type, const QString &label, const QString &passphrase);

QString objectPath(const QString &deviceName) const;

signals:
void status(const QString &deviceName, Partition::Status);
void errorMessage(const QString &objectPath, const QString &errorName);
Expand Down Expand Up @@ -115,8 +117,6 @@ private slots:
void doFormat(const QString &deviceName, const QString &dbusObjectPath, const QString &type, const QVariantHash &arguments);
void getBlockDevices();

QString objectPath(const QString &deviceName) const;

private:
static Monitor *sharedInstance;

Expand Down

0 comments on commit 227fbf5

Please sign in to comment.