char *
GetSystemConfigFile(const char *filename)
{
    const char *sysConfigName = filename;

    //
    // If no system config file name was given, check the VISITSYSTEMCONFIG
    // environment variable if we're on Windows. Otherwise, just use the
    // name "config".
    //
    if(sysConfigName == 0)
    {
#if defined(_WIN32)
        // Try and get the system config filename from the environment settings.
        sysConfigName = getenv("VISITSYSTEMCONFIG");
#endif

        // If we still don't have the name of a system config file, use 
        // the name "config".
        if(sysConfigName == 0)
            sysConfigName = "config";
    }

    return GetDefaultConfigFile(sysConfigName, "VISITHOME");
}
// ****************************************************************************
// Method:  GetUserVisItHostsDirectory
//
// Purpose:
//   Returns the path to the visit installation directory's
//   host subdirectory.
//
// Arguments:
//   none
//
// Programmer:  Jeremy Meredith
// Creation:    February 18, 2010
//
// Modifications:
//   Jeremy Meredith, Wed Apr 21 13:02:53 EDT 2010
//   Don't mkdir the system hosts directory.  If it doesn't exist, no problem;
//   we're never going to write into it.  Only the installer does that.
//
// ****************************************************************************
std::string
GetSystemVisItHostsDirectory()
{
    const char *defConfig = GetDefaultConfigFile("hosts", "VISITHOME");
    std::string retVal(defConfig);
    delete [] defConfig;
    return retVal;
}
std::string
GetSystemVisItRCFile()
{
    const char *defConfig = GetDefaultConfigFile("visitrc", "VISITHOME");
    std::string retVal(defConfig);
    delete [] defConfig;
    return retVal;
}
void
QvisSetupHostProfilesAndConfigWindow::performSetup()
{
    QString hostsInstallDirectory =
        QString::fromStdString(GetAndMakeUserVisItHostsDirectory());

    for (std::list<NetworkInfo>::iterator it = networkList.begin();
            it != networkList.end(); ++it)
    {
        if (it->checkBox->isChecked())
        {
            QString srcDir(GetVisItResourcesFile(VISIT_RESOURCES_HOSTS, 
                                                 it->shortName.toStdString()).c_str());
            QDir srcHostProfileDir(srcDir, "host*.xml");
            QStringList files = srcHostProfileDir.entryList();
            for (int i = 0; i < files.size(); ++ i)
            {
                const QString &thisProfile = files.at(i);
                installConfigFile(srcDir + "/" + thisProfile,
                                  hostsInstallDirectory + "/" + thisProfile);
            }
        }
    }
    for (std::list<DefaultConfigInfo>::iterator it = defaultConfigList.begin();
            it != defaultConfigList.end(); ++it)
    {
        if (it->radioButton->isChecked())
        {
            const char *configFilename[] = {
                "config", "guiconfig", "visitrc", 0 };

            for (int i = 0; configFilename[i] != 0; ++i)
            {
                std::string srcCfgName =
                    it->shortName.toStdString() +
                    "/" + std::string(configFilename[i]);
                QString srcCfgPath(GetVisItResourcesFile(VISIT_RESOURCES_HOSTS, srcCfgName).c_str());
                if (QFile::exists(srcCfgPath))
                {
                    char *srcCfgFile = GetDefaultConfigFile(configFilename[i]);
                    installConfigFile(srcCfgPath, srcCfgFile);
                    delete [] srcCfgFile;
                }
            }
        }
    }

    QMessageBox msgBox;
    msgBox.setText(tr("Host profiles and configuration files have been installed"
               " and will be available after VisIt is restarted."));
    msgBox.exec();

    close();
}