Minor change

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3703 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2015-02-11 08:27:39 +00:00
parent 5e73294d9d
commit ab1f02bc6b

View File

@@ -614,92 +614,104 @@ void QETElementEditor::xmlPreview() {
* Do several check about element. * Do several check about element.
* If error is occured return false * If error is occured return false
*/ */
bool QETElementEditor::checkElement() { bool QETElementEditor::checkElement()
// liste les avertissements applicables {
//List of warning and error
typedef QPair<QString, QString> QETWarning; typedef QPair<QString, QString> QETWarning;
QList<QETWarning> warnings; QList<QETWarning> warnings;
QList<QETWarning> errors; QList<QETWarning> errors;
/// Warning #1: Element haven't got terminal /// Warning #1: Element haven't got terminal
if (!ce_scene -> containsTerminals()) { /// (except for report, because report must have one terminal and this checking is do below)
if (!ce_scene -> containsTerminals() && !ce_scene -> elementType().contains("report"))
{
warnings << qMakePair( warnings << qMakePair(
tr("Absence de borne", "warning title"), tr("Absence de borne", "warning title"),
tr( tr(
"L'\351l\351ment ne comporte aucune borne. Un \351l\351ment " "<br>En l'absence de borne, l'\351l\351ment ne pourra \352tre"
"doit comporter des bornes afin de pouvoir \351tre reli\351 " " reli\351 \340 d'autres \351l\351ments par l'interm\351diaire de conducteurs.",
"\340 d'autres \351l\351ments par l'interm\351diaire de "
"conducteurs.",
"warning description" "warning description"
) )
); );
} }
/// Check master, slave and simple element /// Check master, slave, simple and report element
if(ce_scene -> elementType() == "master" || if(ce_scene -> elementType() == "master" ||
ce_scene -> elementType() == "slave" || ce_scene -> elementType() == "slave" ||
ce_scene -> elementType() == "simple" || ce_scene -> elementType() == "simple" ||
ce_scene -> elementType().contains("report")) { ce_scene -> elementType().contains("report"))
{
bool wrng = true; bool wrng = true;
foreach (CustomElementPart *cep, ce_scene->primitives()) { foreach (CustomElementPart *cep, ce_scene->primitives())
if (cep->property("tagg").toString() == "label") wrng = false; if (cep->property("tagg").toString() == "label") wrng = false;
}
///Error #1: element is master, slave or simple but havent got input tagged 'label' ///Error #1: element is master, slave or simple but havent got input tagged 'label'
if (wrng) { if (wrng) {
errors << qMakePair( errors << qMakePair(
tr("Absence de champ texte 'label'", "warning title"), tr("Absence de champ texte 'label'", "warning title"),
tr("Les \351l\351ments ma\356tres, esclaves, simple et renvoie de folio doivent poss\351der " tr("<br><b>Erreur</b \240> :"
"un champ texte comportant le tagg 'label'", "warning description")); "<br>Les \351l\351ments de type ma\356tres, esclaves, simple et renvoie de folio doivent poss\351der un champ texte comportant le tagg 'label'."
"<br><b>Solution</b> :"
"<br>Ins\351rer un champ texte et lui attribuer le tagg 'label'", "warning description"));
} }
} }
/// Check folio report element /// Check folio report element
if (ce_scene -> elementType().contains("report")) { if (ce_scene -> elementType().contains("report"))
{
int text =0, terminal =0; int text =0, terminal =0;
foreach(QGraphicsItem *qgi, ce_scene->items()) { foreach(QGraphicsItem *qgi, ce_scene->items())
{
if (qgraphicsitem_cast<PartTerminal *>(qgi)) terminal ++; if (qgraphicsitem_cast<PartTerminal *>(qgi)) terminal ++;
else if (qgraphicsitem_cast<PartTextField *>(qgi)) text ++; else if (qgraphicsitem_cast<PartTextField *>(qgi)) text ++;
} }
///Error #2 folio report must have only one terminal ///Error #2 folio report must have only one terminal
if (terminal != 1) { if (terminal != 1)
errors << qMakePair ( {
tr("Absence de borne"), errors << qMakePair (tr("Absence de borne"),
tr("Les reports de folio doivent poss\351der une seul borne.")); tr("<br><b>Erreur</b> :"
} "<br>Les reports de folio doivent poss\351der une seul borne."
"<br><b>Solution</b> :"
///Error #3 folio report must have at least one text "<br>Verifier que l'\351l\351ment ne poss\350de qu'une seul borne"));
if (text <= 0) {
errors << qMakePair (
tr("Absence de champ texte"),
tr("Les reports de folio doivent poss\351der au moins un champ texte \351ditable."));
} }
} }
if (!errors.count() && !warnings.count()) return(true); if (!errors.count() && !warnings.count()) return(true);
// Display warnings
QString dialog_message = tr("La v\351rification de cet \351l\351ment a g\351n\351r\351", "message box content");
if (errors.size())
dialog_message += QString(tr(" %n erreur(s)", "errors", errors.size()));
if (warnings.size())
{
if (errors.size())
dialog_message += QString (tr(" et"));
dialog_message += QString (tr(" %n avertissment(s)", "warnings", warnings.size()));
}
dialog_message += " :";
dialog_message += "<ol>";
QList<QETWarning> total = warnings << errors; QList<QETWarning> total = warnings << errors;
// Display warnings
QString warning_message = tr(
"La v\351rification de cet \351l\351ment a g\351n\351r\351 %n avertissement(s)\240:",
"message box content",
total.count()
);
warning_message += "<ol>";
foreach(QETWarning warning, total) { foreach(QETWarning warning, total) {
warning_message += "<li>"; dialog_message += "<li>";
warning_message += QString( dialog_message += QString(
tr("<b>%1</b>\240: %2", "warning title: warning description") tr("<b>%1</b>\240: %2", "warning title: warning description")
).arg(warning.first).arg(warning.second); ).arg(warning.first).arg(warning.second);
warning_message += "</li>"; dialog_message += "</li>";
} }
warning_message += "</ol>"; dialog_message += "</ol>";
QMessageBox::warning(this, tr("Avertissements"), warning_message); if (errors.size())
QMessageBox::critical(this, tr("Erreurs"), dialog_message);
else
QMessageBox::warning(this, tr("Avertissements"), dialog_message);
//if error == 0 that means they are only warning, we return true. //if error == 0 that means they are only warning, we return true.
if (errors.count() == 0) return(true); if (errors.count() == 0) return(true);
return false; return false;
} }