diff --git a/resources/img/db_add.png b/resources/img/db_add.png new file mode 100644 index 0000000..a1ed1d7 Binary files /dev/null and b/resources/img/db_add.png differ diff --git a/resources/img/db_remove.png b/resources/img/db_remove.png new file mode 100644 index 0000000..c874c07 Binary files /dev/null and b/resources/img/db_remove.png differ diff --git a/resources/systeminstaller.qrc b/resources/systeminstaller.qrc index d178c74..d832af3 100644 --- a/resources/systeminstaller.qrc +++ b/resources/systeminstaller.qrc @@ -6,5 +6,7 @@ img/dialog-ok-apply.png img/list-add-user.png img/list-remove-user.png + img/db_add.png + img/db_remove.png diff --git a/src/main.cpp b/src/main.cpp index e4c3972..d8a0db1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,7 +26,7 @@ int main(int argc, char** argv) QApplication app(argc, argv); - qInstallMsgHandler( MsgHandler ); + //qInstallMsgHandler( MsgHandler ); debugLog.setFileName("/var/log/calculate/cl-install-gui-debug.log"); if ( debugLog.open(QIODevice::Append | QIODevice::WriteOnly | QIODevice::Text | QIODevice::Unbuffered) ) diff --git a/src/pageinstall.cpp b/src/pageinstall.cpp index 311fc32..0490995 100644 --- a/src/pageinstall.cpp +++ b/src/pageinstall.cpp @@ -123,7 +123,7 @@ void PageInstall::show() m_clProc->setStandardErrorFile("/var/log/calculate/cl-install-gui-err.log"); m_clProc->start( "cl-install -f --color never -P " + args.join(" ") ); - m_Output->insertPlainText( "cl-install -f --color never -P " + args.join(" ") ); + //m_Output->insertPlainText( "cl-install -f --color never -P " + args.join(" ") ); m_Progress->setMinimum(0); m_Progress->setMaximum(0); diff --git a/src/pagemountpoints.cpp b/src/pagemountpoints.cpp index 513ba07..af36faf 100644 --- a/src/pagemountpoints.cpp +++ b/src/pagemountpoints.cpp @@ -26,7 +26,9 @@ void PageMountPoints::setupUi() m_labMountPointHelp->setWordWrap(true); m_butAddMountPoint = new QToolButton; + m_butAddMountPoint->setIcon( QIcon(":/img/db_add.png") ); m_butDelMountPoint = new QToolButton; + m_butDelMountPoint->setIcon( QIcon(":/img/db_remove.png") ); QHBoxLayout* hbox_but = new QHBoxLayout; hbox_but->addWidget(m_butAddMountPoint); hbox_but->addWidget(m_butDelMountPoint); @@ -72,17 +74,20 @@ void PageMountPoints::retranslateUi() { setTitle( tr("Mount points") ); - m_butAddMountPoint->setText("+"); - m_butDelMountPoint->setText("-"); + //m_butAddMountPoint->setText("+"); + m_butAddMountPoint->setToolTip( tr("Add a new mount point") ); + //m_butDelMountPoint->setText("-"); + m_butDelMountPoint->setToolTip( tr("Remove a selected mount point") ); + QTableWidgetItem* tab0 = m_tabMountPoints->horizontalHeaderItem(0); - tab0->setText( tr("Mount point") ); + tab0->setText( tr("Mount\npoint") ); QTableWidgetItem* tab1 = m_tabMountPoints->horizontalHeaderItem(1); tab1->setText( tr("Partition") ); QTableWidgetItem* tab2 = m_tabMountPoints->horizontalHeaderItem(2); tab2->setText( tr("Format") ); QTableWidgetItem* tab3 = m_tabMountPoints->horizontalHeaderItem(3); - tab3->setText( tr("File system") ); + tab3->setText( tr("File\nsystem") ); QTableWidgetItem* tab4 = m_tabMountPoints->horizontalHeaderItem(4); tab4->setText( tr("Label") ); QTableWidgetItem* tab5 = m_tabMountPoints->horizontalHeaderItem(5); @@ -92,8 +97,11 @@ void PageMountPoints::retranslateUi() m_tabMountPoints->setSelectionBehavior(QTableWidget::SelectRows); m_labMountPointHelp->setText( - tr("Choose mount points for the installation. " - "You need at least a root / partition.") + tr( + "Choose mount points for the installation. " + "You need at least a root / partition.\n" + "To modify the mount point, double-click it." + ) ); } @@ -104,7 +112,7 @@ void PageMountPoints::show() m_tabMountPoints->setColumnWidth(0, 110); m_tabMountPoints->setColumnWidth(1, 110); - m_tabMountPoints->setColumnWidth(2, 90); + m_tabMountPoints->setColumnWidth(2, 100); m_tabMountPoints->setColumnWidth(3, 90); m_tabMountPoints->setColumnWidth(4, 110); @@ -129,7 +137,14 @@ bool PageMountPoints::validate() foreach( const MountPoint& mp, m_MountPointsList ) { if ( mp.dev.isEmpty() || mp.mountpoint.isEmpty() ) + { + QMessageBox::warning( + this, + tr("Warning"), + tr("To continue You need to choose partition for mount point %1.").arg(mp.mountpoint) + ); return false; + } } } @@ -337,12 +352,7 @@ void PageMountPoints::getPartitions() void PageMountPoints::initMountPoints() { - // create default mount point for root partition and migrated mount points - MountPoint root; - root.mountpoint = "/"; - - m_MountPointsList.append( root ); - + bool rootFound = false; CalculateConfig* clConf = CalculateConfig::instance(); // check new format parameters @@ -372,6 +382,9 @@ void PageMountPoints::initMountPoints() { MountPoint mp; mp.mountpoint = def_os_install_disk_mount.at(i); + if (mp.mountpoint == "/") + rootFound = true; + mp.dev = os_disk_dev.at(i); mp.fs = os_disk_format.at(i); mp.size = os_disk_size.at(i); @@ -385,6 +398,15 @@ void PageMountPoints::initMountPoints() } } + // if root not found, create default mount point for root partition and migrated mount points + if ( !rootFound ) + { + MountPoint root; + root.mountpoint = "/"; + + m_MountPointsList.prepend( root ); + } + getPartitions(); } @@ -444,292 +466,3 @@ QString PageMountPoints::parseSwap() return QString(); } - - -/* -void PageMountPoints::partitionDoubleClicked ( QTreeWidgetItem* item, int index ) -{ - // skip disks - if (item->childCount() != 0) - return; - - if (item->parent() == 0) - return; - - QString dev = item->parent()->text(0); - QString part = item->text(0); - - //qDebug() << "selected :" << dev << " " << part; - - // find data - MountPointsList mpList = m_treeMountPoints[dev]; - - int mpIndex = -1; - foreach(const MountPoint& mpItem, mpList) - { - ++mpIndex; - if (mpItem.dev == part) - break; - } - - //qDebug() << "index: " << mpIndex; - - if (mpIndex >= 0) - { - MountPoint mp( mpList.at(mpIndex) ); - - QScopedPointer mpDlg( new MountPointDialog(this, getAllDefinedMountPoints(), &mp) ); - - if ( mpDlg->exec() == QDialog::Accepted ) - { - // replace information - mpList.replace(mpIndex, mp); - m_treeMountPoints.remove(dev); - m_treeMountPoints[dev] = mpList; - - //qDebug() << "All mountpoints:" << getAllDefinedMountPoints(); - - showTree(); - } - } -} - -QStringList PageMountPoints::getAllDefinedMountPoints() -{ - QStringList allMps; - - MountPointsTree::ConstIterator it = m_treeMountPoints.constBegin(); - while( it != m_treeMountPoints.constEnd() ) - { - foreach(const MountPoint& mp, it.value() ) - allMps << mp.mountpoint; - ++it; - } - - return allMps; -} - -void PageMountPoints::getTree() -{ - CalculateConfig* clConf = CalculateConfig::instance(); - - // check new format parameters - clConf->getNewMountpoints(); - - // copy mountpoints - MountPointsTree copyTree(m_treeMountPoints); - - m_treeMountPoints.clear(); - - QStringList os_disk_dev = clConf->getValue("os_disk_dev").toStringList(); - QStringList os_disk_format = clConf->getValue("os_disk_format").toStringList(); - QStringList os_disk_name = clConf->getValue("os_disk_name").toStringList(); - QStringList os_disk_part = clConf->getValue("os_disk_part").toStringList(); - QStringList os_disk_size = clConf->getValue("os_disk_size").toStringList(); - - QStringList os_disk_mount = clConf->getValue("os_disk_mount").toStringList(); - - QStringList def_os_install_disk_mount = clConf->getValue("def_os_install_disk_mount").toStringList(); - QStringList os_install_disk_mount = clConf->getValue("os_install_disk_mount").toStringList(); - QStringList os_install_disk_format = clConf->getValue("os_install_disk_format").toStringList(); - QStringList os_install_disk_perform_format = clConf->getValue("os_install_disk_perform_format").toStringList(); - - qDebug() << "os_install_disk_mount = " << os_install_disk_mount.join(", "); - - QStringList os_dev_dev = clConf->getValue("os_device_dev").toStringList(); - - qDebug() << ""; - qDebug() << "Get three"; -// qDebug() << "def_os_install_disk_mount: " << def_os_install_disk_mount.join(", "); -// qDebug() << "os_install_disk_mount" << os_install_disk_mount.join(", "); -// qDebug() << "os_install_disk_format" << os_install_disk_format.join(", "); -// qDebug() << "os_install_disk_perform_format" << os_install_disk_perform_format.join(", "); - - - foreach(const QString& dev, os_dev_dev) - { - for (int i(0); i < os_disk_dev.size(); ++i) - { - MountPoint mountpoint; - - if ( - (os_disk_dev.at(i).contains(dev, Qt::CaseInsensitive)) && - (os_disk_part.at(i) != "extended") && // skip extended partition - (os_disk_mount.at(i) != "/") // skip root - ) - { - 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) ) - { - // migrated mp - if ( !def_os_install_disk_mount.at(i).isEmpty() ) - { - mountpoint.migrated_mountpoint = def_os_install_disk_mount.at(i); - mountpoint.skipped = false; - } - - if (copyTree.contains(dev)) - { - // check - foreach(MountPoint mp, copyTree[dev]) - { - if (mp.dev == mountpoint.dev) - { - mountpoint.mountpoint = mp.mountpoint; - mountpoint.format = mp.format; - mountpoint.fs_new = mp.fs_new; - break; - } - } - } - - if (mountpoint.mountpoint.isEmpty()) - { - if ( !mountpoint.migrated_mountpoint.isEmpty() && !mountpoint.skipped ) - mountpoint.mountpoint = mountpoint.migrated_mountpoint; - } - - if (os_install_disk_perform_format.at(i) == "yes") - { - mountpoint.format = true; - } - - m_treeMountPoints[dev] << mountpoint; - } - else - { - MountPointsList lst = MountPointsList() << mountpoint; - m_treeMountPoints[dev] = lst; - } - } - } - } -} - -void PageMountPoints::showTree() -{ - generateCmdDisk(); - - getTree(); - - m_trwMountPoints->clear(); - - MountPointsTree::ConstIterator it = m_treeMountPoints.constBegin(); - - while( it != m_treeMountPoints.constEnd() ) - { - showBranch( it.key(), it.value() ); - ++it; - } - - m_trwMountPoints->expandAll(); - - generateCmdDisk(); -} - -void PageMountPoints::showBranch(const QString& dev, const MountPointsList& list) -{ - QTreeWidgetItem* trwItem_0 = new QTreeWidgetItem; - trwItem_0->setText(0, dev ); - trwItem_0->setText(1, "" ); - trwItem_0->setText(2, "" ); - trwItem_0->setText(3, "" ); - trwItem_0->setText(4, "" ); - trwItem_0->setText(5, "" ); - - 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 - trwItem_0_0->setText(3, mp.mountpoint ); // Mount point - trwItem_0_0->setText(4, mp.fs_new.isEmpty() ? mp.fs : mp.fs_new ); // File system - trwItem_0_0->setText(5, mp.fs_new.isEmpty() ? tr("no") : tr("YES") ); // Format - } - - m_trwMountPoints->insertTopLevelItem(m_trwMountPoints->topLevelItemCount(), trwItem_0); -} - -void PageMountPoints::generateCmdDisk() -{ - if ( CalculateConfig::instance()->getValue("gui_partitioning") != "auto" ) - { - QStringList diskCfg = parseMountPoint(); - CalculateConfig::instance()->setValue( "--disk", diskCfg ); - - QString swapCfg = parseSwap(); - CalculateConfig::instance()->setValue( "--swap", swapCfg ); - } - CalculateConfig::instance()->showInstallParameters(); -} - -QStringList PageMountPoints::parseMountPoint() -{ - QStringList result; - - MountPointsTree::ConstIterator it = m_treeMountPoints.constBegin(); - while( it != m_treeMountPoints.constEnd() ) - { - foreach(const MountPoint& mp, it.value()) - { - if ( !mp.mountpoint.isEmpty() && (mp.mountpoint != mp.migrated_mountpoint) && (mp.mountpoint != "swap") ) - { - QString resultStr = mp.dev + ":" + mp.mountpoint; - if (mp.format && !mp.fs_new.isEmpty()) - resultStr += ":" + mp.fs_new; - resultStr += " "; - - result << resultStr; - } - else if ( mp.mountpoint.isEmpty() && !mp.migrated_mountpoint.isEmpty() && !mp.skipped ) - { - result << (mp.dev + ":none"); - } - } - ++it; - } - - return result; -} - -QString PageMountPoints::parseSwap() -{ - QString result; - - MountPointsTree::ConstIterator it = m_treeMountPoints.constBegin(); - - while( it != m_treeMountPoints.constEnd() ) - { - foreach(const MountPoint& mp, it.value()) - { - if ( isMigratedMountPoint(mp.dev, mp.mountpoint) ) - continue; - - if ( mp.mountpoint == "swap" ) - return mp.dev; - } - ++it; - } - - return QString(); -} - -bool PageMountPoints::isMigratedMountPoint ( const QString& dev, const QString& mp ) -{ - CalculateConfig* clConf = CalculateConfig::instance(); - QStringList os_disk_dev = clConf->getValue ( "os_disk_dev" ).toStringList(); - QStringList os_install_disk_mount = clConf->getValue ( "os_install_disk_mount" ).toStringList(); - - int partIndx = os_disk_dev.indexOf ( dev ); - - if ( ( partIndx != -1 ) && ( os_install_disk_mount.at ( partIndx ) == mp ) ) - return true; - - return false; -} -*/ diff --git a/src/systeminstaller.cpp b/src/systeminstaller.cpp index bc1dc72..3be2078 100644 --- a/src/systeminstaller.cpp +++ b/src/systeminstaller.cpp @@ -37,11 +37,11 @@ SystemInstaller::SystemInstaller(QWidget *parent) : { QMessageBox::critical(this, tr("Critical error"), tr("Failed to launch 'cl-install'.") ); installReady = false; + } else { + // set os locale language + changeLanguage( CalculateConfig::instance()->getValue("os_locale_lang").toString() ); } - // set os locale language - changeLanguage( CalculateConfig::instance()->getValue("os_locale_lang").toString() ); - setupUi(); setupInstallerPages(); @@ -258,7 +258,10 @@ void SystemInstaller::changeEvent(QEvent* event) void SystemInstaller::closeEvent ( QCloseEvent* event ) { if (m_doFinish) + { event->accept(); + return; + } QMessageBox quest; quest.setWindowTitle( tr("Attention") ); @@ -358,6 +361,7 @@ void SystemInstaller::showAbout() void SystemInstaller::finishInstall() { + qDebug() << "Installation complete."; m_doFinish = true; close(); } diff --git a/src/systeminstaller.h b/src/systeminstaller.h index a48a9e4..7af5069 100644 --- a/src/systeminstaller.h +++ b/src/systeminstaller.h @@ -78,8 +78,8 @@ private: PageCfdisk* m_PageCfdisk; QScopedPointer m_PageManager; - QString m_CurrentLanguage; + QString m_CurrentLanguage; - bool m_doFinish; + volatile bool m_doFinish; };