#include "pagemountpoints.h" #include #include #include #include #include #include "calculateconfig.h" PageMountPoints::PageMountPoints() : InstallerPage() { setupUi(); } void PageMountPoints::setupUi() { m_labMountPoints = new QLabel; m_trwMountPoints = new QTreeWidget; QVBoxLayout* vbox_0 = new QVBoxLayout; vbox_0->addWidget(m_labMountPoints); vbox_0->addWidget( m_trwMountPoints); setLayout(vbox_0); connect( m_trwMountPoints, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(partitionDoubleClicked(QTreeWidgetItem*,int)) ); retranslateUi(); } void PageMountPoints::retranslateUi() { setTitle( tr("Mount points") ); QTreeWidgetItem* trwHeader = m_trwMountPoints->headerItem(); trwHeader->setText(0, tr("Partition") ); trwHeader->setText(1, tr("Label") ); trwHeader->setText(2, tr("Size") ); trwHeader->setText(3, tr("Mount point") ); trwHeader->setText(4, tr("File system") ); trwHeader->setText(5, tr("Format") ); m_labMountPoints->setText( tr("Select mount points:") ); } void PageMountPoints::show() { // get tree from CalculateConfig getTree(); showTree(); m_trwMountPoints->setColumnWidth(0, 120); m_trwMountPoints->setColumnWidth(1, 100); m_trwMountPoints->setColumnWidth(2, 80); m_trwMountPoints->setColumnWidth(3, 110); m_trwMountPoints->setColumnWidth(4, 80); m_trwMountPoints->expandAll(); if ( CalculateConfig::instance()->getValue("gui_partitioning") == "auto" ) { qDebug() << "Skip Mount points"; QMessageBox::information( this, tr("Information"), tr("You select auto partitioning. Press \"Next\" to continue.") ); m_trwMountPoints->setEnabled(false); emit changeNext(true); } } bool PageMountPoints::validate() { if ( CalculateConfig::instance()->getValue("gui_partitioning") != "auto" ) { // check parameters } return true; } void PageMountPoints::partitionDoubleClicked ( QTreeWidgetItem* item, int index ) { qDebug() << "selected :" << item->text(0); } void PageMountPoints::getTree() { QStringList os_disk_dev = CalculateConfig::instance()->getValue("os_disk_dev").toStringList(); QStringList os_disk_format = CalculateConfig::instance()->getValue("os_disk_format").toStringList(); QStringList os_disk_name = CalculateConfig::instance()->getValue("os_disk_name").toStringList(); QStringList os_disk_part = CalculateConfig::instance()->getValue("os_disk_part").toStringList(); QStringList os_disk_size = CalculateConfig::instance()->getValue("os_disk_size").toStringList(); QStringList os_dev_dev = CalculateConfig::instance()->getValue("os_device_dev").toStringList(); // TODO // if ( !( os_disk_dev.size() == os_disk_format.size() == os_disk_name.size() == os_disk_part.size() == // os_disk_size.size() ) // ) // { // qDebug() << "Error data from cl-install"; // return; // } foreach(const QString& dev, os_dev_dev) { for (int i(0); i < os_disk_dev.size(); ++i) { MountPoint mountpoint; if ( (os_disk_part.at(i) != "extended") && (os_disk_dev.at(i).contains(dev, Qt::CaseInsensitive)) ) { mountpoint.dev = os_disk_dev.at(i); mountpoint.label = os_disk_name.at(i); mountpoint.size = os_disk_size.at(i); mountpoint.fs = os_disk_format.at(i); if ( m_treeMountPoints.contains(dev) ) { m_treeMountPoints[dev] << mountpoint; //qDebug() << "Append m_treeMountPoints[" << dev << "] = " << mountpoint.dev; } else { MountPointsList lst = MountPointsList() << mountpoint; m_treeMountPoints[dev] = lst; //qDebug() << "Create m_treeMountPoints[" << dev << "] = " << mountpoint.dev; } } } } } void PageMountPoints::showTree() { m_trwMountPoints->clear(); MountPointsTree::ConstIterator it = m_treeMountPoints.constBegin(); while( it != m_treeMountPoints.constEnd() ) { showBranch( it.key(), it.value() ); ++it; } } void PageMountPoints::showBranch(const QString& dev, const MountPointsList& list) { QTreeWidgetItem* trwItem_0 = new QTreeWidgetItem; trwItem_0->setText(0, "/dev/" + dev ); trwItem_0->setText(1, "" ); trwItem_0->setText(2, "" ); trwItem_0->setText(3, "" ); trwItem_0->setText(4, "" ); trwItem_0->setText(5, "" ); // trwItem_0->setText(6, "" ); foreach(const MountPoint& mp, list) { QTreeWidgetItem* trwItem_0_0 = new QTreeWidgetItem(trwItem_0); trwItem_0_0->setText(0, mp.dev ); // Partition trwItem_0_0->setText(1, mp.label ); // Label trwItem_0_0->setText(2, mp.size ); // Size bool modified = !mp.mountpoint.isEmpty(); trwItem_0_0->setText(3, mp.mountpoint ); // Mount point // trwItem_0_0->setText(4, modified ? (mp.bind ? tr("YES") : tr("no")) : "" ); // Bind trwItem_0_0->setText(4, modified ? mp.fs_new : mp.fs ); // File system trwItem_0_0->setText(5, modified ? (mp.format ? tr("YES") : tr("no")) : "" ); // Format } m_trwMountPoints->insertTopLevelItem(m_trwMountPoints->topLevelItemCount(), trwItem_0); }