revert r1077006: don't show all devices in partition tree. it's just too
confusing. but do keep the code to show the first device by default. also add code to make sure the devices list shows the selected devices as indeed selected in the list widget. svn path=/trunk/extragear/sysadmin/partitionmanager/; revision=1081532
This commit is contained in:
parent
16dae55d04
commit
275dfde876
|
@ -59,6 +59,16 @@ void ListDevices::updateDevices()
|
|||
|
||||
if (idx > -1 && idx < listDevices().count())
|
||||
listDevices().setCurrentRow(idx);
|
||||
|
||||
if (pmWidget().selectedDevice())
|
||||
{
|
||||
for (idx = 0; idx < pmWidget().previewDevices().size(); idx++)
|
||||
if (pmWidget().previewDevices()[idx] == pmWidget().selectedDevice())
|
||||
{
|
||||
listDevices().setCurrentRow(idx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ListDevices::on_m_ListDevices_itemSelectionChanged()
|
||||
|
|
|
@ -86,14 +86,11 @@ class PartitionTreeWidgetItem : public QTreeWidgetItem
|
|||
Q_DISABLE_COPY(PartitionTreeWidgetItem)
|
||||
|
||||
public:
|
||||
PartitionTreeWidgetItem(const Partition* p) : QTreeWidgetItem(), m_Partition(p), m_Device(NULL) {}
|
||||
PartitionTreeWidgetItem(Device* d) : QTreeWidgetItem(), m_Partition(NULL), m_Device(d) {}
|
||||
PartitionTreeWidgetItem(const Partition* p) : QTreeWidgetItem(), m_Partition(p) {}
|
||||
const Partition* partition() const { return m_Partition; }
|
||||
Device* device() { return m_Device; }
|
||||
|
||||
private:
|
||||
const Partition* m_Partition;
|
||||
Device* m_Device;
|
||||
};
|
||||
|
||||
/** Creates a new PartitionManagerWidget instance.
|
||||
|
@ -318,8 +315,11 @@ void PartitionManagerWidget::scanDevices()
|
|||
libParted().scanDevices(operationStack());
|
||||
|
||||
if (!operationStack().previewDevices().isEmpty())
|
||||
{
|
||||
setSelectedDevice(operationStack().previewDevices()[0]);
|
||||
|
||||
}
|
||||
|
||||
updatePartitions();
|
||||
|
||||
Log() << i18nc("@info/plain", "Rescan finished.");
|
||||
|
@ -404,49 +404,43 @@ static QTreeWidgetItem* createTreeWidgetItem(const Partition& p)
|
|||
|
||||
void PartitionManagerWidget::updatePartitions()
|
||||
{
|
||||
if (selectedDevice() == NULL)
|
||||
return;
|
||||
|
||||
treePartitions().clear();
|
||||
partTableWidget().clear();
|
||||
|
||||
foreach(Device* d, operationStack().previewDevices())
|
||||
partTableWidget().setPartitionTable(selectedDevice()->partitionTable());
|
||||
|
||||
QTreeWidgetItem* deviceItem = new QTreeWidgetItem();
|
||||
deviceItem->setText(0, selectedDevice()->name());
|
||||
deviceItem->setIcon(0, DesktopIcon(selectedDevice()->iconName()));
|
||||
deviceItem->setSizeHint(0, QSize(0, 32));
|
||||
|
||||
treePartitions().addTopLevelItem(deviceItem);
|
||||
|
||||
if (selectedDevice()->partitionTable() != NULL)
|
||||
{
|
||||
QTreeWidgetItem* deviceItem = new PartitionTreeWidgetItem(d);
|
||||
deviceItem->setText(0, d->name());
|
||||
deviceItem->setIcon(0, DesktopIcon(d->iconName()));
|
||||
deviceItem->setSizeHint(0, QSize(0, 32));
|
||||
deviceItem->setFlags(Qt::ItemIsEnabled);
|
||||
|
||||
treePartitions().addTopLevelItem(deviceItem);
|
||||
|
||||
if (selectedDevice() == d)
|
||||
foreach(const Partition* p, selectedDevice()->partitionTable()->children())
|
||||
{
|
||||
deviceItem->setExpanded(true);
|
||||
QFont font;
|
||||
font.setBold(true);
|
||||
deviceItem->setFont(0, font);
|
||||
}
|
||||
QTreeWidgetItem* item = createTreeWidgetItem(*p);
|
||||
|
||||
if (d->partitionTable() != NULL)
|
||||
{
|
||||
foreach(const Partition* p, d->partitionTable()->children())
|
||||
foreach(const Partition* child, p->children())
|
||||
{
|
||||
QTreeWidgetItem* item = createTreeWidgetItem(*p);
|
||||
|
||||
foreach(const Partition* child, p->children())
|
||||
{
|
||||
QTreeWidgetItem* childItem = createTreeWidgetItem(*child);
|
||||
item->addChild(childItem);
|
||||
}
|
||||
|
||||
deviceItem->addChild(item);
|
||||
item->setExpanded(true);
|
||||
QTreeWidgetItem* childItem = createTreeWidgetItem(*child);
|
||||
item->addChild(childItem);
|
||||
}
|
||||
}
|
||||
|
||||
treePartitions().setFirstItemColumnSpanned(deviceItem, true);
|
||||
deviceItem->addChild(item);
|
||||
item->setExpanded(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (selectedDevice())
|
||||
partTableWidget().setPartitionTable(selectedDevice()->partitionTable());
|
||||
treePartitions().setFirstItemColumnSpanned(deviceItem, true);
|
||||
deviceItem->setExpanded(true);
|
||||
deviceItem->setFlags(Qt::ItemIsEnabled);
|
||||
|
||||
partTableWidget().update();
|
||||
}
|
||||
|
||||
void PartitionManagerWidget::on_m_TreePartitions_currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem*)
|
||||
|
@ -460,14 +454,13 @@ void PartitionManagerWidget::on_m_TreePartitions_currentItemChanged(QTreeWidgetI
|
|||
partTableWidget().setActiveWidget(NULL);
|
||||
}
|
||||
|
||||
void PartitionManagerWidget::on_m_TreePartitions_itemDoubleClicked(QTreeWidgetItem* qtwi, int)
|
||||
void PartitionManagerWidget::on_m_TreePartitions_itemDoubleClicked(QTreeWidgetItem* item, int)
|
||||
{
|
||||
PartitionTreeWidgetItem* item = dynamic_cast<PartitionTreeWidgetItem*>(qtwi);
|
||||
// if the activated item is the device item, don't do anything
|
||||
if (item == treePartitions().topLevelItem(0))
|
||||
return;
|
||||
|
||||
if (item && item->device())
|
||||
setSelectedDevice(item->device());
|
||||
else
|
||||
actionCollection()->action("propertiesPartition")->trigger();
|
||||
actionCollection()->action("propertiesPartition")->trigger();
|
||||
}
|
||||
|
||||
void PartitionManagerWidget::on_m_PartTableWidget_itemSelectionChanged(PartWidget* item)
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="itemsExpandable">
|
||||
<bool>true</bool>
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
|
|
Loading…
Reference in New Issue