/* SPDX-FileCopyrightText: 2011 Viranch Mehta SPDX-License-Identifier: LGPL-2.0-only */ #include "soliddevicejob.h" #include #include #include #include #include void SolidDeviceJob::start() { Solid::Device device(m_dest); QString operation = operationName(); if (operation == QLatin1String("mount")) { if (device.is()) { Solid::StorageAccess *access = device.as(); if (access && !access->isAccessible()) { access->setup(); } } } else if (operation == QLatin1String("unmount")) { if (device.is()) { Solid::OpticalDrive *drive = device.as(); if (!drive) { drive = device.parent().as(); } if (drive) { drive->eject(); } } else if (device.is()) { Solid::StorageAccess *access = device.as(); if (access && access->isAccessible()) { access->teardown(); } } } emitResult(); }