void PlacesView::onEjectButtonClicked(PlacesModelItem* item) { // The eject button is clicked for a device item (volume or mount) if(item->type() == PlacesModelItem::Volume) { PlacesModelVolumeItem* volumeItem = static_cast<PlacesModelVolumeItem*>(item); MountOperation* op = new MountOperation(true, this); if(volumeItem->canEject()) // do eject if applicable op->eject(volumeItem->volume()); else // otherwise, do unmount instead op->unmount(volumeItem->volume()); } else if(item->type() == PlacesModelItem::Mount) { PlacesModelMountItem* mountItem = static_cast<PlacesModelMountItem*>(item); MountOperation* op = new MountOperation(true, this); op->unmount(mountItem->mount()); } qDebug("PlacesView::onEjectButtonClicked"); }
void PlacesView::onUnmountVolume() { PlacesModel::ItemAction* action = static_cast<PlacesModel::ItemAction*>(sender()); if(!action->index().isValid()) return; PlacesModelVolumeItem* item = static_cast<PlacesModelVolumeItem*>(model_->itemFromIndex(action->index())); MountOperation* op = new MountOperation(true, this); op->unmount(item->volume()); op->wait(); }