void AddBuild::okClick(){ QString buildDirectory = ui->lineEditDirectory->text(); //Check to see if directory actually exist... if(!QDir(buildDirectory).exists()){ showError("Invalid directory path","error"); return; } //continue if it does exist QString BuildID = ui->lineEditBuildID->text(); QString buildName = ui->lineEditName->text(); QString buildDescription = ui->lineEditDescription->text(); if(buildName.size() > NAME_SIZE_LIMIT || !buildName.compare("")){ showError("Build name not within valid range(1-25)","error"); } //Exit if a field is empty if(BuildID.compare("") == 0|| buildName.compare("") == 0){ showError("All fields are required","error"); return; } //Exit if the BuildID is in use if(!checkBuildID(BuildID)){ showError("The Build ID cannot contain a duplicate entry","error"); return; } if(!checkBuildName(buildName)){ showError("There already exist a build with that name","error"); return; } //If all is fine, continue int buildID = BuildID.toInt(); Build * newBuild = new Build(buildID,buildName,buildDescription,buildDirectory); //qDebug()<<"about to emit"; addToXML(buildID,buildName,buildDescription,buildDirectory); //clean up for next add ui->lineEditBuildID->setText(""); ui->lineEditName->setText(""); ui->lineEditDescription->setText(""); ui->lineEditDirectory->setText(""); ui->lineEditDirectory->setFocus(); //Use show error to confirm the build is added showError("Build added successfully","info"); emit initiateAddBuild(newBuild); this->close(); }
int main(int argc, char *argv[]) { QString title; title = title + "****************************************************************** \n"; title = title + " * DictToXML 1.0 * \n"; title = title + " * This tool generates an XML structure of a CSPro dictionary * \n"; title = title + " * file. The XML has the same data as the DCF file but using * \n"; title = title + " * XML tags. The purpose of an XML structure is to easily read * \n"; title = title + " * dictionary information or to quickly alter value lists. * \n"; title = title + " * The XMLToDict do the oposite. * \n"; title = title + " * This tool is part of CSPro Tools (c) ILRI, 2012 * \n"; title = title + " ****************************************************************** \n"; TCLAP::CmdLine cmd(title.toLatin1().constData(), ' ', "1.0 (Beta 1)"); //Required arguments TCLAP::ValueArg<std::string> inputArg("i","input","Input CSPro DCF File",true,"","string"); TCLAP::ValueArg<std::string> outputArg("o","output","Output XML file. Default ./output.xml",false,"./output.xml","string"); cmd.add(inputArg); cmd.add(outputArg); //Parsing the command lines cmd.parse( argc, argv ); //Getting the variables from the command QString input = QString::fromUtf8(inputArg.getValue().c_str()); QString output = QString::fromUtf8(outputArg.getValue().c_str()); QFile file(input); if (!file.exists()) { printLog("The input DCF file does not exits"); return 1; } if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { printLog("Cannot open DCF file"); return 1; } doc = QDomDocument("CSProXMLFile"); root = doc.createElement("CSProXML"); root.setAttribute("version", "1.0"); doc.appendChild(root); QTextStream in(&file); int pos; pos = 1; while (!in.atEnd()) { QString line = in.readLine(); if (!line.isEmpty()) addToXML(line); //Parse the line pos++; } if (createXML(output) != 0) { printLog("Error saving XML file"); return 1; } printLog("Done"); return 0; }