[Kde-hardware-devel] Solid - how to get path of storage device
David Boosalis
david.boosalis at gmail.com
Wed Jun 11 02:31:35 CEST 2008
Hi Chris.
The signal gets generated from a USB being plugged in. I use the following
to connect the signal to the slog given:
connect(DeviceNotifier::instance(),
SIGNAL(deviceAdded(const QString &)),
this,
SLOT(slotSolidDeviceChanged(const QString &)));
connect(Solid::DeviceNotifier::instance(),
SIGNAL(deviceRemoved(const QString &)),
this,
SLOT(slotSolidDeviceChanged(const QString &)));
This was taken from the solid tutorial. Maybe I am getting an extraneous
signal when I plug in the usb stick because the qDebug statement for
filePath below prints nothing for hte filePath argument. I am using hte
latest build of the depot for all my coding work. You mentioned something
about StorgeAccess::setup(), I'll research this call, as I am not sure where
to put it.
Thanks for the reply,
David
PS I am CCing the hardware list by the way, but was unable to find the line
to subscribe to this group.
On Tue, Jun 10, 2008 at 3:16 PM, Christopher Blauvelt <cblauvelt at gmail.com>
wrote:
>
>
> On Tue, Jun 10, 2008 at 4:34 PM, David Boosalis <david.boosalis at gmail.com>
> wrote:
>
>> Hi All.
>>
>> My first time use of Solid as I want to capture in my application when a
>> USB Memory stick gets inserted into the computer. I have no problem getting
>> the event, my question is how do I go from a Solid Class to a File Path, so
>> I can open up a file dialog on it.
>>
>> Here is my slot thus far:
>>
>> void MyApp::slotSolidDeviceChanged(const QString &str)
>> {
>> qDebug() << "Device changed " << str;
>> QString filePath;
>> Solid::Device device(str);
>> Solid::DeviceInterface *deviceInterface;
>> Solid::StorageAccess *accessStorage;
>> Solid::StorageVolume *volumeStorage;
>> if (device.isValid())
>> {
>> if (device.is<Solid::StorageAccess>()) {
>> deviceInterface =
>> device.asDeviceInterface(Solid::DeviceInterface::StorageDrive);
>>
>> usbStick = device.as<Solid::StorageDrive>();
>>
>> volumeStorage = device.as<Solid::StorageVolume>();
>> accessStorage = device.as<Solid::StorageAccess>();
>> qDebug() << "file path = " << accessStorage->filePath(); //
>> produces NULL code
>> qDebug() << "uuid = " << volumeStorage->uuid();
>> qDebug() << "Volumne Label = " << volumeStorage->label();
>> }
>>
>>
> Dave,
> Are you sure the drive is mounted? If not, then filePath() should return
> an empty string. Make to use StorageAccess::setup. This will mount the
> drive and, if successful, you should be able to get a file path. Also, I've
> included kde-hardware-devel on this list. Posting here will likely get you
> more attention from knowledgable people.
> Chris
>
>
> >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to
> unsubscribe <<
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-hardware-devel/attachments/20080610/8780aa42/attachment.html
More information about the Kde-hardware-devel
mailing list