Guest User

Untitled

a guest
May 4th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.55 KB | None | 0 0
  1. // solid command for try to generate filepath() mount points:
  2. [jerome@antergos-jerome ~]$ solid-hardware5 list | sed -n "/block_devices/{s/^.*'\//\//;s/'//p}" | xargs -n1
  3. /org/freedesktop/UDisks2/block_devices/loop2
  4. /org/freedesktop/UDisks2/block_devices/sdf3
  5. /org/freedesktop/UDisks2/block_devices/sdf2
  6. /org/freedesktop/UDisks2/block_devices/sdf1
  7. /org/freedesktop/UDisks2/block_devices/sde1
  8. /org/freedesktop/UDisks2/block_devices/sdc2
  9. /org/freedesktop/UDisks2/block_devices/sdc3
  10. /org/freedesktop/UDisks2/block_devices/sdd1
  11. /org/freedesktop/UDisks2/block_devices/sda6
  12. /org/freedesktop/UDisks2/block_devices/sda4
  13. /org/freedesktop/UDisks2/block_devices/sda3
  14. /org/freedesktop/UDisks2/block_devices/sdb1
  15. /org/freedesktop/UDisks2/block_devices/sda2
  16. /org/freedesktop/UDisks2/block_devices/sde9
  17. /org/freedesktop/UDisks2/block_devices/loop5
  18. /org/freedesktop/UDisks2/block_devices/loop6
  19. /org/freedesktop/UDisks2/block_devices/loop1
  20. /org/freedesktop/UDisks2/block_devices/sdc1
  21. /org/freedesktop/UDisks2/block_devices/loop4
  22. /org/freedesktop/UDisks2/block_devices/loop3
  23. /org/freedesktop/UDisks2/block_devices/loop7
  24. /org/freedesktop/UDisks2/block_devices/sdf
  25. /org/freedesktop/UDisks2/block_devices/sde
  26. /org/freedesktop/UDisks2/block_devices/sdd
  27. /org/freedesktop/UDisks2/block_devices/sdc
  28. /org/freedesktop/UDisks2/block_devices/sdb
  29. /org/freedesktop/UDisks2/block_devices/sda
  30. /org/freedesktop/UDisks2/block_devices/loop0
  31. /org/freedesktop/UDisks2/block_devices/sda5
  32.  
  33.  
  34. // part of header file concerned
  35.  
  36. #include <Solid/Device>
  37. #include <Solid/DeviceInterface>
  38. #include <Solid/StorageAccess>
  39. #include <Solid/StorageDrive>
  40. #include <Solid/StorageVolume>
  41. #include <Solid/DeviceNotifier>
  42.  
  43.  
  44. // part of .cpp file concerned
  45.  
  46. void Config_Compaign::on_disks_clicked(const QModelIndex &index) {
  47. selectedDisks[area_selection] = storageDevices.at(index.row()).udi();
  48. partitions_model->deleteLater();
  49. partitions_model = new QStandardItemModel;
  50. storageVolumes = Solid::Device::listFromType( // only from selected Device
  51. Solid::DeviceInterface::StorageVolume,
  52. storageDevices.at(index.row()).udi());
  53. //*** SHOW VOLUMES PARTITIONS ON index.row() selected DRIVE ***//
  54. foreach(Solid::Device partition, storageVolumes) {
  55. QList<QStandardItem*> row;
  56. Solid::StorageVolume *stv = partition.as<Solid::StorageVolume>();
  57. if(!stv->fsType().isEmpty()) { // skip empty datas lines
  58. qDebug() << "fstype is" << stv->fsType() << "END";
  59. row << new QStandardItem(stv->label());
  60. row << new QStandardItem(stv->uuid());
  61. row << new QStandardItem(stv->fsType());
  62. row << new QStandardItem(getMountPointFrom(partition.udi()));
  63. partitions_model->insertRow(partitions_model->rowCount(), row); } }
  64. //*** THE TABLE LOOK ***//
  65. partitions_model->setHeaderData(0, Qt::Horizontal, tr("Label"));
  66. partitions_model->setHeaderData(1, Qt::Horizontal, tr("UUID"));
  67. partitions_model->setHeaderData(2, Qt::Horizontal, tr("Format"));
  68. partitions_model->setHeaderData(3, Qt::Horizontal, tr("Points de montages"));
  69. partitions->setModel(partitions_model);
  70. partitions->verticalHeader()->hide();
  71. partitions->setSelectionMode(QAbstractItemView::SingleSelection);
  72. partitions->setSelectionBehavior(QAbstractItemView::SelectRows);
  73. partitions->horizontalHeader()->setStretchLastSection(true);
  74. partitions->resizeColumnsToContents();
  75. }
  76.  
  77. QString Config_Compaign::getMountPointFrom(const QString &udi) {
  78. QList<Solid::Device> strAccess = Solid::Device::listFromType(
  79. Solid::DeviceInterface::StorageAccess,
  80. udi);
  81. //*** SHOW ACTUAL MOUNTED POINT ON PARTITIONS udi ***//
  82. QString mPoint(tr("non monté"));
  83. foreach(Solid::Device access, strAccess) {
  84. if(access.as<Solid::StorageAccess>()) { // skip no StorageAccess
  85. Solid::StorageAccess *sta = access.as<Solid::StorageAccess>();
  86. mPoint = (mPoint == tr("non monté"))
  87. ? sta->filePath()
  88. : mPoint +
  89. QString(", %1").arg(sta->filePath()); } }
  90. return mPoint;
  91. }
  92.  
  93. void Config_Compaign::on_partitions_clicked(const QModelIndex &index) {
  94. selectedPartitions[area_selection] = storageVolumes.at(index.row()).udi();
  95. }
  96.  
  97. void Config_Compaign::refreshDiskArea() {
  98. disks_model->deleteLater();
  99. disks_model = new QStandardItemModel;
  100. storageDevices = Solid::Device::listFromType(
  101. Solid::DeviceInterface::StorageDrive,
  102. QString()); // all drives plugged
  103. //*** SHOW STORAGE DEVICES PLUGGED ON THE MACHINE ***//
  104. foreach(Solid::Device disk, storageDevices) {
  105. QList<QStandardItem*> row;
  106. row << new QStandardItem(disk.description());
  107. row << new QStandardItem(disk.product());
  108. Solid::StorageDrive *std = disk.as<Solid::StorageDrive>();
  109. row << new QStandardItem(QString("%1").arg(std->size()));
  110. disks_model->insertRow(disks_model->rowCount(), row); }
  111. //*** THE TABLE LOOK ***//
  112. disks_model->setHeaderData(0, Qt::Horizontal, tr("Volume/type"));
  113. disks_model->setHeaderData(1, Qt::Horizontal, tr("Identité"));
  114. disks_model->setHeaderData(2, Qt::Horizontal, tr("Capacité"));
  115. disks->setModel(disks_model);
  116. disks->verticalHeader()->hide();
  117. disks->setSelectionMode(QAbstractItemView::SingleSelection);
  118. disks->setSelectionBehavior(QAbstractItemView::SelectRows);
  119. disks->horizontalHeader()->setStretchLastSection(true);
  120. disks->resizeColumnsToContents();
  121. }
Add Comment
Please, Sign In to add comment