void ProjectExporter::checkRes(ProjectModel *project) { QMap<QString, QString> settings = project->getSettings(); QMap<QString, QString>::iterator i; for(i = settings.begin(); i != settings.end(); i++) { if(i.key() == "wps" || i.key() == "rwps" || i.key() == "sbs" || i.key() == "rsbs" || i.key() == "fms" || i.key() == "rfms") { checkWPS(project, i.value()); } else if(i.value().contains("/.rockbox") && i.key() != "configfile" && i.key() != "themebase") { QString absPath = i.value().replace("/.rockbox", settings.value("themebase")); if(QFile::exists(absPath)) { addSuccess(i.key() + tr(" found")); } else { if(i.key() == "font") { QSettings qset; qset.beginGroup("RBFont"); QString fontDir = qset.value("fontDir", "").toString(); qset.endGroup(); QString newDir = fontDir + "/" + absPath.split("/").last(); if(QFile::exists(newDir)) { addSuccess(tr("font found in font pack")); } else { addWarning(tr("font not found")); } } else { addWarning(i.key() + tr(" not found")); } } } } }
void createErrorResponse(const QString &msg) { QJsonValue command = req.value(QLatin1String("command")); response.insert(QStringLiteral("command"), command); addRequestSequence(); addSuccess(false); addRunning(); response.insert(QStringLiteral("message"), msg); }
bool MprTestResult::assertTrue(MprTest *test, char *file, int line, bool success, char *testCode) { if (! success) { if (getDebugOnFailures()) { mprBreakpoint(0, 0, 0); } addFailure(new MprTestFailure(file, line, testCode)); if (test->getFailureCount() == 0) { lock(); testFailedCount++; unlock(); } test->adjustFailureCount(1); } else { addSuccess(test); } return success; }
ProjectExporter::ProjectExporter(QString path, ProjectModel* project, QWidget *parent) :QDialog(parent), ui(new Ui::ProjectExporter), zipFile(path) { ui->setupUi(this); QObject::connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(close())); if(zipFile.open(QuaZip::mdCreate)) { checkRes(project); writeZip(project->getSetting("themebase", "")); zipFile.close(); addSuccess(tr("Project exported successfully")); } else { addError(tr("Couldn't open zip file")); } }
void ProjectExporter::checkWPS(ProjectModel* project, QString file) { /* Set this to false if any resource checks fail */ bool check = true; QSettings settings; settings.beginGroup("RBFont"); QString fontPack = settings.value("fontDir", "").toString() + "/"; settings.endGroup(); QString fontDir = project->getSetting("themebase", "") + "/fonts/"; QString wpsName = file.split("/").last().split(".").first(); QString imDir = project->getSetting("themebase", "") + "/wps/" + wpsName + "/"; QFile fin(file.replace("/.rockbox", project->getSetting("themebase", ""))); if(!fin.open(QFile::ReadOnly | QFile::Text)) { addWarning(tr("Couldn't open ") + file.split("/").last()); } QString contents(fin.readAll()); fin.close(); skin_element* root; root = skin_parse(contents.toAscii()); if(!root) { addWarning(tr("Couldn't parse ") + file.split("/").last()); return; } /* Now we scan through the tree to check all the resources */ /* Outer loop scans through all viewports */ while(root) { skin_element* line; if(root->children_count == 0) line = 0; else line = root->children[0]; /* Next loop scans through logical lines */ while(line) { /* Innermost loop gives top-level tags */ skin_element* current; if(line->children_count == 0) current = 0; else current = line->children[0]; while(current) { if(current->type == TAG) { if(QString(current->tag->name) == "Fl") { QString font = current->params[1].data.text; if(!QFile::exists(fontDir + font) && !QFile::exists(fontPack + font)) { check = false; addWarning(font + tr(" not found")); } } else if(QString(current->tag->name) == "X") { QString backdrop = current->params[0].data.text; if(!QFile::exists(imDir + backdrop)) { check = false; addWarning(backdrop + tr(" not found")); } } else if(QString(current->tag->name) == "xl") { QString image = current->params[1].data.text; if(!QFile::exists(imDir + image)) { check = false; addWarning(image + tr(" not found")); } } } current = current->next; } line = line->next; } root = root->next; } if(check) addSuccess(file.split("/").last() + tr(" passed resource check")); else addWarning(file.split("/").last() + tr(" failed resource check")); }