diff options
Diffstat (limited to 'abs/core/mythinstall/installdialog.cpp')
-rwxr-xr-x | abs/core/mythinstall/installdialog.cpp | 1034 |
1 files changed, 0 insertions, 1034 deletions
diff --git a/abs/core/mythinstall/installdialog.cpp b/abs/core/mythinstall/installdialog.cpp deleted file mode 100755 index e5bdfc9..0000000 --- a/abs/core/mythinstall/installdialog.cpp +++ /dev/null @@ -1,1034 +0,0 @@ -#include <qapplication.h> -#include <unistd.h> -#include <fstream> -#include <sys/wait.h> // For WIFEXITED on Mac OS X - -#include "mythcontext.h" -#include "mythdbcon.h" -#include "lcddevice.h" -#include "tv.h" -#include "programinfo.h" -#include "uitypes.h" -#include "remoteutil.h" -#include <qdir.h> -#include "installdialog.h" -#include "installsettings.h" -#include "installationtype.h" -#include "mv_common.h" -#include "libmyth/dialogbox.h" -#include <stdlib.h> -#define UPDATE_STATUS_INTERVAL 5000 -#define UPDATE_SCREEN_INTERVAL 5000 - - - -WelcomeDialog::WelcomeDialog(MythMainWindow *parent, - QString window_name, - QString theme_filename, - const char* name) -:MythThemedDialog(parent, window_name, theme_filename, name) -{ - system("rm -f /tmp/.install_state"); - system("rm -f /tmp/.install_percent"); - system("rm -f /tmp/.install_error"); - install_drive = "" ; - recording_text = ""; - scheduled_text = ""; - install_text = ""; - version_text = ""; - I_AM_BUSY = false; - WORKING_ON_INSTALL = false; - current_hostname = ""; - - gContext->addListener(this); - m_timeFormat = gContext->GetSetting("TimeFormat", "h:mm AP"); - wireUpTheme(); - assignFirstFocus(); - - m_updateStatusTimer = new QTimer(this); - connect(m_updateStatusTimer, SIGNAL(timeout()), this, - SLOT(updateStatus())); - m_updateStatusTimer->start(UPDATE_STATUS_INTERVAL); - - m_updateScreenTimer = new QTimer(this); - connect(m_updateScreenTimer, SIGNAL(timeout()), this, - SLOT(updateScreen())); - - m_timeTimer = new QTimer(this); - connect(m_timeTimer, SIGNAL(timeout()), this, - SLOT(updateTime())); - m_timeTimer->start(1000); - - reboot_box = NULL; - popup = NULL; - showPopup(); -} -void WelcomeDialog::shutdownNow(int rc) -{ - QString NETBOOT = getenv("NETBOOT"); - NETBOOT=NETBOOT.stripWhiteSpace(); - system("rm -f /tmp/.install_state"); - system("rm -f /tmp/.install_percent"); - system("rm -f /tmp/.install_error"); - if (rc == 1) - system("/sbin/halt"); - else - system("/sbin/reboot"); - // system("/usr/bin/killall -9 X"); -} - -void WelcomeDialog::runLIVECD(void) -{ - cancelPopup(); - ask_validate_network(); - if ( runsettings(true) == 1 ) - { - QString PAINTER = gContext->GetSetting("ThemePainter"); - QString startFECmd = ("MYTHCONFDIR=/tmp mythfrontend -O ThemePainter=" + PAINTER ); - myth_system(startFECmd.ascii()); - } - else - { - cancelPopup(); - showPopup(); - } - - -} - - - -int WelcomeDialog::exec() -{ - updateAll(); - return MythDialog::exec(); -} - - - -void WelcomeDialog::keyPressEvent(QKeyEvent *e) -{ - bool handled = false; - QStringList actions; - gContext->GetMainWindow()->TranslateKeyPress("Welcome", e, actions); - for (unsigned int i = 0; i < actions.size() && !handled; i++) - { - QString action = actions[i]; - handled = true; - if (action == "ESCAPE") - { - return; // eat escape key - } - else if (action == "MENU") - { - showPopup(); - } - else if (action == "NEXTVIEW") - { - accept(); - } - else if (action == "SELECT") - { - activateCurrent(); - } - else - handled = false; - } - - if (!handled) - MythThemedDialog::keyPressEvent(e); -} - -UITextType* WelcomeDialog::getTextType(QString name) -{ - UITextType* type = getUITextType(name); - if (!type) - { - cout << "ERROR: Failed to find '" << name << "' UI element in theme file\n" - << "Bailing out!" << endl; - exit(0); - } - return type; -} - -void WelcomeDialog::wireUpTheme() -{ - m_status_text = getTextType("status_text"); - m_recording_text = getTextType("recording_text"); - m_scheduled_text = getTextType("scheduled_text"); - m_mv_text=getTextType("mythvantage_text"); - m_time_text = getTextType("time_text"); - m_date_text = getTextType("date_text"); - m_warning_text = getTextType("conflicts_text"); - m_warning_text->hide(); - buildFocusList(); -} - -void WelcomeDialog::closeDialog() -{ - done(1); -} - -WelcomeDialog::~WelcomeDialog() -{ - gContext->removeListener(this); - if (m_updateStatusTimer) - delete m_updateStatusTimer; - - if (m_updateScreenTimer) - delete m_updateScreenTimer; - - if (m_timeTimer) - delete m_timeTimer; -} - -void WelcomeDialog::updateTime(void) -{ - QString releasefile="/etc/"; - releasefile.append(RELEASEFILE); - - extern const char *myth_source_version; - extern const char *myth_source_path; - QString distro_line; - QFile file(releasefile); - if ( file.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &file ); // use a text stream - distro_line = t.readLine(); - file.close(); - } - - - QString s=""; - //QString s="MythVantage 1.4 Mythtv svn: "; - s.append(distro_line); - s.append( " , Mythtv svn:" ); - s.append(myth_source_version); - s.append(" "); - s.append(myth_source_path); - m_date_text->SetText(s); -} - -void WelcomeDialog::updateStatus(void) -{ -// checkConnectionToServer(); - updateStatusMessage(); -} - -void WelcomeDialog::updateScreen(void) -{ - QString cmdtxt; - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh " ); - system(cmdtxt); - recording_text=" "; - mythvantage_text=" "; - error_text=" "; - scheduled_text=" "; - QFile mystatus("/tmp/.install_state"); - QFile mypercent("/tmp/.install_percent"); - QFile myerror("/tmp/.install_error"); - QFile mylog("/tmp/mythvantage_install.log"); - if ( mystatus.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &mystatus ); // use a text stream - scheduled_text = t.readLine(); - mystatus.close(); - } - - if ( mypercent.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &mypercent ); // use a text stream - recording_text = t.readLine(); - mypercent.close(); - } - - if ( myerror.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &myerror ); // use a text stream - error_text = t.readLine(); - myerror.close(); - scheduled_text = error_text; - recording_text = "FAILED"; - WORKING_ON_INSTALL = false; - } - - if ( WORKING_ON_INSTALL ) - { - if ( mylog.open( IO_ReadOnly| IO_Translate ) ) - { - QTextStream t( &mylog ); - while ( !t.atEnd() ) - { - mythvantage_text=t.readLine(); - } - mylog.close(); - } - } - else - mythvantage_text=""; - m_recording_text->SetText(recording_text); - m_scheduled_text->SetText(scheduled_text); - m_mv_text->SetText(mythvantage_text); - - if ( install_drive != "" ) - install_text = ""; - - m_status_text->SetText(install_text ); - m_updateScreenTimer->start(UPDATE_SCREEN_INTERVAL, true); - if ( scheduled_text == "Done" ) - { - Reboot_popup () ; - } - // shows the busy box when configuring the system - if ( scheduled_text == "Configuring system") - { - if ( ! I_AM_BUSY ) - busy_box(); - assignFirstFocus(); - } -}; - -void WelcomeDialog::busy_box(void) -{ - QString msgtext = "Please wait, " ; - msgtext.append(current_hostname); - msgtext.append(" is preparing for life"); - MythBusyDialog *busy = new MythBusyDialog(msgtext); - busy->start(); - - while ( scheduled_text == "Configuring system" ) - { - qApp->processEvents (); - usleep(900); - I_AM_BUSY = true; - } - busy->Close(); - I_AM_BUSY = false; - busy->deleteLater(); -} - -void WelcomeDialog::busy_find_oldsettings(void) -{ - MythBusyDialog *busy = new MythBusyDialog( - QObject::tr("Importing old settings")); - busy->start(); - int return_code = 0; - while ( return_code == 0 ) - { - qApp->processEvents (); - usleep(900); - I_AM_BUSY = true; - return_code = myth_system("ps -ef|grep install_proxy.sh|grep -v grep > /dev/null"); - - } - busy->Close(); - I_AM_BUSY = false; - busy->deleteLater(); - -} - - - -void WelcomeDialog::updateAll(void) -{ - updateRecordingList(); - updateScheduledList(); -} - -bool WelcomeDialog::updateRecordingList() -{ - return true; -} - -bool WelcomeDialog::updateScheduledList() -{ - updateStatus(); - updateScreen(); - return true; -} - -void WelcomeDialog::updateStatusMessage(void) -{ - -} - -void WelcomeDialog::showPopup(void) -{ - if (popup) - return; - popup = new MythPopupBox(gContext->GetMainWindow(), "Menu"); - QButton *topButton; - QLabel *label = popup->addLabel(tr("Menu"), MythPopupBox::Large, false); - label->setAlignment(Qt::AlignCenter | Qt::WordBreak); - // This is a bad way to lock the buttons but it works for now. - if ( scheduled_text.length() <= 2 ) - { - topButton = popup->addButton(tr("Install or Upgrade "), this, - SLOT(Display_2ndpopup())); - popup->addButton(tr("Run MythFrontend"), this, - SLOT(runLIVECD())); - popup->addButton(tr("Exit"), this, - SLOT(closeDialog())); - popup->addButton(tr("Close menu"), this, SLOT(cancelPopup())); - - popup->ShowPopup(this, SLOT(cancelPopup())); - - } - else - { - topButton= popup->addButton(tr("Exit"), this, - SLOT(closeDialog())); - popup->addButton(tr("Close menu"), this, SLOT(cancelPopup())); - - popup->ShowPopup(this, SLOT(cancelPopup())); - } - - topButton->setFocus(); -} - - -QString WelcomeDialog::diskmodel(QString drive , QString tsize) -{ - string line; - QString cmdtxt; - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh disk_model_it " + drive + " " + tsize ); - myth_system(cmdtxt); - - ifstream model("/tmp/model"); - if (model.is_open()) - getline (model,line); - model.close(); - return line; -} - -QString WelcomeDialog::findinstallsouce(void) -{ - string line; - QString currentitem; - ifstream mountfile("/proc/mounts"); - //ifstream mountfile("procmounts"); - while (! mountfile.eof() ) - { - getline (mountfile,line); - if ( line.empty() ) - line = "oops didn't find andthing"; - currentitem = line; - - if ( ! currentitem.contains("/dev")) - currentitem="not the right line"; - - //if ( currentitem.contains("/mnt/live/mnt") ) - if ( currentitem.contains("/.livesys/medium") ) - { - int ndx = line.find(" "); - currentitem = line.substr(0,ndx); - ndx = currentitem.findRev("/"); - currentitem = currentitem.mid(ndx+1,3); - return currentitem; - }; - - } - -}; - -void WelcomeDialog::showPopup_2(void) -{ - - if (popup) - return; - popup = new MythPopupBox(gContext->GetMainWindow(), "Select the drive to install"); - findinstallsouce(); - QButton *CancelButton; - QLabel *label = popup->addLabel(tr("Select the install target."), MythPopupBox::Large, false); - label->setAlignment(Qt::AlignCenter | Qt::WordBreak); - string currentitem; - string sizeitem; - string disksize; - string line; - bool installsource = false; - - QString NETBOOT = getenv("NETBOOT"); - NETBOOT=NETBOOT.stripWhiteSpace(); - if ( NETBOOT == "YES" ) - popup->addButton(("Diskless Frontend " ), this, SLOT(install_net() ) ); - - QString INSTALLSOURCE = findinstallsouce(); - std::cout << "install source:" << std::endl; - std::cout << INSTALLSOURCE << std::endl; - ifstream partitions("/proc/partitions"); - if (partitions.is_open()) - while (! partitions.eof() ) - { - getline (partitions,line); - if ( line.empty() ) - { - line = "oops didn't find anything"; - } - int ndx = line.rfind(" "); - ndx = ndx +1; - int linelength = line.length(); - currentitem = line.substr(ndx,linelength); - sizeitem = line.substr(0,ndx-1); - linelength = sizeitem.length(); - ndx = sizeitem.rfind(" "); - disksize = sizeitem.substr(ndx+1,linelength); - -// std::cout << currentitem<< std::endl; - if( currentitem == INSTALLSOURCE ) - { - std::cout << currentitem<< std::endl; - installsource = true; - } - - - if (! installsource ) - { - if ( currentitem == "hda" ) - popup->addButton(("hda " + diskmodel(currentitem,disksize)), this, SLOT(install_hda() ) ); - if ( currentitem == "hdb" ) - popup->addButton(("hdb " + diskmodel(currentitem,disksize)), this, SLOT(install_hdb() ) ); - if ( currentitem == "hdc" ) - popup->addButton(("hdc " + diskmodel(currentitem,disksize)), this, SLOT(install_hdc() ) ); - if ( currentitem == "hdd" ) - popup->addButton(("hdd " + diskmodel(currentitem,disksize)), this, SLOT(install_hdd() ) ); - if (currentitem == "sda" ) - popup->addButton(("sda " + diskmodel(currentitem,disksize)), this, SLOT(install_sda() ) ); - if (currentitem == "sdb" ) - popup->addButton(("sdb " + diskmodel(currentitem,disksize)), this, SLOT(install_sdb() ) ); - if (currentitem == "sdc" ) - popup->addButton(("sdc "+ diskmodel(currentitem,disksize)), this, SLOT(install_sdc() ) ); - if (currentitem == "sdd" ) - popup->addButton(("sdd "+ diskmodel(currentitem,disksize)), this, SLOT(install_sdd() ) ); - } - installsource = false; - } - partitions.close(); - CancelButton = popup->addButton(tr("Cancel"), this, SLOT(MAINPopup())); - popup->ShowPopup(this, SLOT(cancelPopup())); - CancelButton->setFocus(); -} - -void WelcomeDialog::GO_popup(QString go_text) -{ - if (popup) - return; - DialogCode retval = MythPopupBox::Show2ButtonPopup(gContext->GetMainWindow(), - QString("Start the process"), - QObject::tr(go_text), - QObject::tr("Start the process"), QObject::tr("Cancel"), kDialogCodeButton0); - - if ( retval == kDialogCodeButton0 ) - { - install_it(); - } - else - { - cancelPopup(); - showPopup(); - } -} - - -void WelcomeDialog::Reboot_popup(void) -{ if (reboot_box) - return; - QString prompt1; - QFile updbstatus("/tmp/.upgrade_db_failed"); - if ( updbstatus.open(IO_ReadOnly | IO_Translate) ) - { - prompt1 = QObject::tr(" "); - prompt1.append("\n"); - prompt1.append("An error occured while attempting to restore the database!"); - prompt1.append("\n"); - prompt1.append("The old database could not be restored, so a new database was created"); - prompt1.append("\n"); - - } - else - { - prompt1 = QObject::tr("Ready to go!"); - } - - - - reboot_box = new DialogBox(gContext->GetMainWindow(), prompt1); - reboot_box->AddButton(QObject::tr("Reboot")); - reboot_box->AddButton(QObject::tr("Power off")); - - int returncode = 0; - DialogCode dcode = reboot_box->exec(); - reboot_box->deleteLater(); - if (kDialogCodeButton0 == dcode ) - returncode = 0; - if (kDialogCodeButton1 == dcode ) - returncode = 1; - if (kDialogCodeButton2 == dcode ) - returncode = 2; - - - reboot_box = NULL; - shutdownNow(returncode); -} - - - -void WelcomeDialog::cancelPopup(void) -{ - if (!popup) - return; - popup->hide(); - popup->deleteLater(); - popup = NULL; - setActiveWindow(); -} - -void WelcomeDialog::MAINPopup(void) -{ - if (!popup) - return; - popup->hide(); - popup->deleteLater(); - popup = NULL; - showPopup(); - setActiveWindow(); -} - -void WelcomeDialog::Display_2ndpopup(void) -{ - cancelPopup(); - showPopup_2(); - updateStatusMessage(); - updateScreen(); -} - -void WelcomeDialog::install_hda(void) -{ - install_drive = "hda" ; - install_generic(); -} - -void WelcomeDialog::install_hdb(void) -{ - install_drive = "hdb" ; - install_generic(); -} - -void WelcomeDialog::install_hdc(void) -{ - install_drive = "hdc" ; - install_generic(); -} - -void WelcomeDialog::install_hdd(void) -{ - install_drive = "hdd" ; - install_generic(); -} - -void WelcomeDialog::install_sda(void) -{ install_drive = "sda" ; - install_generic(); -} -void WelcomeDialog::install_sdb(void) -{ install_drive = "sdb" ; - install_generic(); -} - -void WelcomeDialog::install_sdc(void) -{ install_drive = "sdc" ; - install_generic(); -} - -void WelcomeDialog::install_sdd(void) -{ - install_drive = "sdd" ; - install_generic(); -} - -void WelcomeDialog::install_net(void) -{ - install_drive = "NET" ; - gContext->ActivateSettingsCache(false); - gContext ->SaveSetting("HOSTinstallationtype","NET"); - install_generic(); -} - -void WelcomeDialog::install_generic(void) -{ - gContext->ActivateSettingsCache(false); - cancelPopup(); - updateStatusMessage(); - updateScreen(); - QString installwarningtext; - int runNextSetting; - runNextSetting = 1; - int tflag; - tflag = 0; - int retcode; - retcode=0; - QString installtype; - if ( install_drive != "NET") - retcode = mythinstalltype(install_drive); - if ( retcode == 0 ) - { - installtype = gContext -> GetSetting("HOSTinstallationtype"); - if ( installtype == "Full/Auto" ) - { - runNextSetting = ask_validate_network(); - installwarningtext="Warning!"; - installwarningtext.append ("\n"); - installwarningtext.append ("\n"); - installwarningtext.append ("About to erase the entire"); - installwarningtext.append ("\n"); - installwarningtext.append ("installation drive of "); - installwarningtext.append (install_drive); - - } - else if ( installtype == "NET") - { - runNextSetting=0; - gContext ->SaveSetting("HostSystemType", "Frontend_only"); - gContext->SaveSetting("HostaccesshostypeSystemtype","0"); - installwarningtext.append ("About to install "); - installwarningtext.append ("\n"); - installwarningtext.append (install_drive); - // ask for hostname - runsettings(false,true,false,false,false,false,false); - } - else if ( installtype == "Upgrade" ) - { - installwarningtext="Warning!"; - installwarningtext.append ("\n"); - installwarningtext.append ("\n"); - installwarningtext.append ("About to erase the"); - installwarningtext.append ("\n"); - installwarningtext.append ("partition "); - installwarningtext.append (install_drive); - installwarningtext.append ("1"); - QString cmdtxt; - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh find_update " + install_drive +" &"); - system(cmdtxt); - busy_find_oldsettings(); - bool flag = false; - QString line; - QString currentitem; - QFile file("/etc/systemconfig"); - if ( file.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &file ); // use a text stream - while ( !t.eof() ) - { - line = t.readLine(); - if ( line.startsWith("hostname")) - { - flag=true; - currentitem = line.section( "=", 1, 1 ); - current_hostname = currentitem ; - } - } - file.close(); - cout << current_hostname << endl; - } - if ( flag ) - { - // GO_popup(installwarningtext); - tflag = 1; - } - else - { - cout << "searching for knoppmyth-versin" << endl; - //couldn't open /etc/systemconfig, so now look for /tmp/etc/Knoppmyth-version - QFile file("/tmp/etc/KnoppMyth-version"); - if ( file.exists() ) - { //appears to be a knoppmyth version, proceed - cout << "found knoppmyth-version" << endl; - QFile kmfile("/tmp/etc/hostname"); - if ( kmfile.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &kmfile ); // use a text stream - line = t.readLine(); - flag=true; - currentitem = line.stripWhiteSpace(); - current_hostname = currentitem ; - //gContext->ActivateSettingsCache(true); - gContext->ClearSettingsCache(); - gContext->SetSetting("HostMyhostname",current_hostname); - gContext->SaveSetting("HostMyhostname",current_hostname); - } - kmfile.close(); - cout << current_hostname << endl; - runNextSetting = ask_validate_network(); - } - else - { - //popup things went wrong - DialogCode returncode = MythPopupBox::Show2ButtonPopup(gContext->GetMainWindow(), - QString(""), - QObject::tr("Couldn't find the old config file, proceed with update?"), - QObject::tr("No"), QObject::tr("Yes"), kDialogCodeButton1); - if ( returncode == kDialogCodeButton1 ) - { - runNextSetting = ask_validate_network(); - } - else if ( returncode == kDialogCodeButton0 ) - { - runNextSetting = 1; - } - } - - } - } - - } - - -//run through the system settings -if ( runNextSetting == 0 ) -{ - tflag = runsettings(false,false,true,true,false,false,false,false,false,false,true,false); - -} -else -{ - cancelPopup(); - showPopup(); -} - -if ( tflag == 1 ) - { - cancelPopup(); - GO_popup(installwarningtext); - } - else - { - cancelPopup(); - showPopup(); - } - -} - -void busy_network(void) -{ - MythBusyDialog *busy = new MythBusyDialog( - QObject::tr("Starting network")); - busy->start(); - int return_code = 0; - while ( return_code == 0 ) - { - qApp->processEvents (); - usleep(900); - return_code = myth_system("ps -ef|grep install_proxy.sh| grep setup_network |grep -v grep > /dev/null"); - } - busy->Close(); - busy->deleteLater(); -} - - -int WelcomeDialog::ask_validate_network(void) -{ - - QString pop_text="abc"; - int retval = 1; - while ( retval != 0 ) - { - int settingsrec = runsettings(false,true,false,false,false,false,false); - if ( settingsrec != 1 ) - return 1; - else - { - MythProgressDialog *network_check = NULL; - network_check = new MythProgressDialog(QObject::tr("Please wait while the network is checked."), 6); - updateScreen(); - QString cmdtxt; - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh network_check_it setup_network &"); - retval = system(cmdtxt); - busy_network(); - if (network_check) - { - network_check->setProgress(1); - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh network_check_it check_self"); - retval = system(cmdtxt); - if ( retval != 0 ) - { - network_check->Close(); - pop_text="Could not find myself on the network"; - } - } - - if ( retval == 0) - { - network_check->setProgress(2); - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh network_check_it check_gw"); - retval = system(cmdtxt); - if ( retval != 0 ) - { - network_check->Close(); - pop_text="Could not locate gateway"; - } - } - - if (retval == 0) - { - network_check->setProgress(3); - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh network_check_it check_ns"); - retval = system(cmdtxt); - if ( retval != 0 ) - { - network_check->Close(); - pop_text="Could not locate nameserver"; - } - } - if (retval == 0) - { - network_check->setProgress(4); - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh network_check_it check_names"); - retval = system(cmdtxt); - if ( retval != 0 ) - { - network_check->Close(); - pop_text="Could not lookup names"; - } - } - if (retval == 0) - { - network_check->setProgress(5); - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh network_check_it host_names"); - retval = system(cmdtxt); - if ( retval != 0 ) - { - network_check->Close(); - pop_text="Hostname already on the network"; - } - } - - - network_check->setProgress(6); - if (network_check) - { - network_check->Close(); - network_check->deleteLater(); - } - - if (retval != 0 ) - { - DialogCode val = MythPopupBox::Show2ButtonPopup(gContext->GetMainWindow(), QString(""), QObject::tr(pop_text), QObject::tr("Continue"), QObject::tr("Try again"), kDialogCodeButton0); - - if (kDialogCodeButton0 == val ) - retval = 0; - } - } - } -return 0; -} - - -void WelcomeDialog::install_it(void) -{ - QString installtype = gContext -> GetSetting("HOSTinstallationtype"); - QString rootfs = gContext -> GetSetting("HOSTrootfstype"); - QString datafs = gContext -> GetSetting("HOSTdatafstype"); - QString rootsize = gContext -> GetSetting("HOSTOSsize"); - rootsize=rootsize + "000"; - QString usealldata = gContext -> GetSetting("HostUseALLdata"); - QString datasize = gContext -> GetSetting("HOSTDATAsize"); - QString uprootfs = gContext -> GetSetting("HOSTuprootfstype"); - QString useswap = gContext -> GetSetting("HostUseSWAP"); - QString swapsize = gContext -> GetSetting("HOSTSWAPsize"); - if ( installtype != "Upgrade" ) - current_hostname = gContext->GetSetting("HostMyhostname"); - QString clean_upgrade = getenv("CLEAN_UPGRADE"); - if ( clean_upgrade == "YES" ) - current_hostname = gContext->GetSetting("HostMyhostname"); - -//get the hostname here if upgrade then use previous declarion of hostname - if ( usealldata == "1" ) - { - datasize="ALL"; - } - else - { - datasize=datasize + "000"; - } - if ( useswap == "0" ) - { - swapsize="NO"; - }; - - - if ( installtype == "Full/Auto" ) - { - QString currentitem; - QString line; - QFile file("/proc/meminfo"); - if ( file.open(IO_ReadOnly | IO_Translate) ) - { - QTextStream t( &file ); // use a text stream - line = t.readLine(); - if ( line.startsWith("MemTotal:")) - { - currentitem = line.simplifyWhiteSpace(); - currentitem = currentitem.section( " ", 1, 1 ); - } - } - file.close(); - bool ok; - int mem = currentitem.toInt( &ok, 10 ); // dec == 0, ok == FALSE - cout << mem << endl; - if ( mem >= 500000 ) - { - cout << gContext -> GetSetting("HostXres") << endl; - if ((gContext -> GetSetting("HostXres")) == "1280x720" ) - { - gContext->SaveSetting("Theme", "syth-lacquer-wide"); - cout <<"Setting theme to syth-wide" << endl; - } - } - - - QString cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh full_install_it " + install_drive + " " + rootfs + " " + rootsize + " " + datafs + " " + datasize + " " + swapsize + "&"); - system(cmdtxt); - } - else if ( installtype == "Upgrade" ) - { - QString cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh upgrade_it " + install_drive + " " + uprootfs + "&"); - system(cmdtxt); - } - else if (installtype=="NET") - { - QString olddb = gContext->GetSetting("HostMysqlserver"); - QString cmdtxt; - cmdtxt=MV_ROOT ; - char localhostname[1024]; - if (gethostname(localhostname, 1024)) - { - VERBOSE(VB_IMPORTANT, - "MCP: Error, could not determine host name." + ENO); - localhostname[0] = '\0'; - } - QString h; - h=localhostname; - cout << "calling restore_default_settings with hostname " << h << endl; - cmdtxt.append("bin/restore_default_settings.sh -c save -t syssettings -d 127.0.0.1 -h " + h); - system(cmdtxt); - cmdtxt=MV_ROOT ; - cmdtxt.append("bin/install_proxy.sh NETBOOT " + install_drive + " &"); - system(cmdtxt); - } - WORKING_ON_INSTALL = true; - usleep (500); - updateScreen(); - usleep (500); - updateScreen(); - cancelPopup(); -} |