Ignore:
Timestamp:
05/22/13 08:44:24 (17 months ago)
Author:
Kris Moore <kris@…>
Branches:
master, 9.2-release, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3
Children:
e01d737
Parents:
0de7e02
Message:

Add UI functionality to load a pc-sysinstall config file from USB media, and install with it

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src-qt4/pc-installgui/installer.cpp

    r0de7e02 rc53b8ce  
    11#include <QCloseEvent> 
     2#include <QDir> 
    23#include <QProcess> 
    34#include <QTimer> 
     
    12811282void Installer::startInstall() 
    12821283{ 
     1284  QString cfgFile; 
     1285  if (customCfgFile.isEmpty() ) 
     1286    cfgFile = PCSYSINSTALLCFG; 
     1287  else 
     1288    cfgFile = customCfgFile; 
     1289 
    12831290  // Disable the back / next buttons until we are finished 
    12841291  nextButton->setEnabled(false); 
     
    13081315  QString program = PCSYSINSTALL; 
    13091316  QStringList arguments; 
    1310   arguments << "-c" << PCSYSINSTALLCFG; 
     1317  arguments << "-c" << cfgFile; 
    13111318 
    13121319  installProc = new QProcess(); 
     
    17571764void Installer::slotLoadConfigUSB() 
    17581765{ 
    1759  
    1760 } 
     1766  int ret = QMessageBox::question(this, tr("PC-BSD Installer"), 
     1767           tr("This will load any installation configuration files your MSDOSFS/FAT32 formatted USB stick. Continue?"), 
     1768           QMessageBox::No | QMessageBox::Yes, 
     1769           QMessageBox::No); 
     1770  switch (ret) { 
     1771  case QMessageBox::Yes: 
     1772      break; 
     1773  case QMessageBox::No: // :) 
     1774      return; 
     1775      break; 
     1776  } 
     1777 
     1778  // Prompt to insert USB stick 
     1779  QMessageBox::information(this, tr("PC-BSD Installer"), 
     1780          tr("Please insert the USB stick now, and click OK to continue."), 
     1781          QMessageBox::Ok, 
     1782          QMessageBox::Ok); 
     1783 
     1784  // Now lets try to load the config files 
     1785  qDebug() << "Running: /root/get-from-usb.sh"; 
     1786  QProcess m; 
     1787  m.start(QString("/root/get-from-usb.sh"), QStringList()); 
     1788  while(m.state() == QProcess::Starting || m.state() == QProcess::Running) { 
     1789     m.waitForFinished(200); 
     1790     QCoreApplication::processEvents(); 
     1791  } 
     1792 
     1793  if ( m.exitCode() != 0 ) { 
     1794     QMessageBox::critical(this, tr("PC-BSD Installer"), 
     1795          tr("Failed loading saved config files from the USB media. Is the device working and formatted MSDOSFS/FAT32?"), 
     1796          QMessageBox::Ok, 
     1797          QMessageBox::Ok); 
     1798     return; 
     1799 
     1800  } else { 
     1801     QMessageBox::information(this, tr("PC-BSD Installer"), 
     1802          tr("Configurations loaded! You may now safely remove the USB media."), 
     1803          QMessageBox::Ok, 
     1804          QMessageBox::Ok); 
     1805  } 
     1806 
     1807   
     1808  // Yay! Now lets prompt the user as to which config to use 
     1809  QDir cDir; 
     1810  cDir.setPath("/tmp/pc-sys"); 
     1811  QStringList cfgs = cDir.entryList(QDir::Files); 
     1812 
     1813  bool ok; 
     1814  QString cfgFile = QInputDialog::getItem(this, tr("PC-BSD Installer"), 
     1815                                       tr("Config File:"), cfgs, 0, false, &ok); 
     1816  if (!ok || cfgFile.isEmpty()) 
     1817    return; 
     1818   
     1819  ret = QMessageBox::question(this, tr("PC-BSD Installer"), 
     1820           tr("Start the install using this config file?") + "\n" + cfgFile, 
     1821           QMessageBox::No | QMessageBox::Yes, 
     1822           QMessageBox::No); 
     1823  switch (ret) { 
     1824  case QMessageBox::Yes: 
     1825      break; 
     1826  case QMessageBox::No: // :) 
     1827      return; 
     1828      break; 
     1829  } 
     1830 
     1831  // Time to start the installation with our custom config file 
     1832  qDebug() << cfgFile; 
     1833  customCfgFile = cfgFile; 
     1834  installStackWidget->setCurrentIndex(3); 
     1835  startInstall(); 
     1836} 
Note: See TracChangeset for help on using the changeset viewer.