Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
PAPPSO
xtpcpp
Commits
8a796ad0
Commit
8a796ad0
authored
Jun 12, 2019
by
Langella Olivier
Browse files
stronger tandem parameter file parser
parent
8271f8f9
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/core/tandem_run/tandemparameters.cpp
View file @
8a796ad0
...
...
@@ -85,24 +85,32 @@ TandemParameters::equals(const TandemParameters &other) const
const
QString
TandemParameters
::
getLabelCategory
(
const
QString
&
value
)
const
{
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
value
;
return
value
.
split
(
", "
).
at
(
0
);
}
const
QString
&
TandemParameters
::
getValue
(
const
QString
&
label
)
const
{
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
label
;
QMap
<
QString
,
QString
>::
const_iterator
it
=
_map_label_value
.
constFind
(
label
);
if
(
it
==
_map_label_value
.
end
())
{
throw
pappso
::
ExceptionNotFound
(
QObject
::
tr
(
"X!Tandem preset label
%1
not found in method
%2
"
)
QObject
::
tr
(
"X!Tandem preset label
\"
%1
\"
not found in method
\"
%2
\"
"
)
.
arg
(
label
)
.
arg
(
_method_name
));
}
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
return
it
.
value
();
}
void
TandemParameters
::
setParamLabelValue
(
const
QString
&
label
,
const
QString
&
value
)
{
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
label
;
// list path
//<note type="input" label="list path, default
// parameters">/gorgone/pappso/tmp/temp_condor_job24872841484824316495370334631825647/QExactive_analysis_FDR_nosemi.xml</note>
...
...
@@ -112,40 +120,47 @@ TandemParameters::setParamLabelValue(const QString &label, const QString &value)
{
return
;
}
if
(
label
==
"spectrum, path"
)
{
return
;
}
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
label
;
if
((
label
==
"spectrum, parent monoisotopic mass error units"
)
||
(
label
==
"spectrum, fragment monoisotopic mass error units"
))
{
if
((
value
!=
"Da"
)
&&
(
value
!=
"Daltons"
)
&&
(
value
!=
"ppm"
))
{
throw
pappso
::
ExceptionNotPossible
(
QObject
::
tr
(
"
%1
value must be Daltons or ppm (not
%2
)"
)
QObject
::
tr
(
"
\"
%1
\"
value must be Daltons or ppm (not
\"
%2
\"
)"
)
.
arg
(
label
)
.
arg
(
value
));
}
}
if
((
label
==
"spectrum, parent monoisotopic mass isotope error"
)
||
(
label
==
"spectrum, use neutral loss window"
)
||
(
label
==
"spectrum, use contrast angle"
)
||
(
label
==
"protein, cleavage semi"
)
||
(
label
==
"protein, quick acetyl"
)
||
(
label
==
"protein, quick pyrolidone"
)
||
(
label
==
"protein, stP bias"
)
||
(
label
==
"scoring, cyclic permutation"
)
||
(
label
==
"scoring, include reverse"
)
||
(
label
==
"scoring, y ions"
)
||
(
label
==
"scoring, b ions"
)
||
(
label
==
"scoring, c ions"
)
||
(
label
==
"scoring, z ions"
)
||
(
label
==
"scoring, a ions"
)
||
(
label
==
"scoring, x ions"
)
||
(
label
==
"refine"
)
||
(
label
==
"refine, use potential modifications for full refinement"
)
||
(
label
==
"refine, cleavage semi"
)
||
(
label
==
"refine, unanticipated cleavage"
)
||
(
label
==
"refine, spectrum synthesis"
)
||
(
label
==
"refine, point mutations"
)
||
(
label
==
"output, mzid"
)
||
(
label
==
"output, spectra"
)
||
(
label
==
"spectrum, use noise suppression"
))
else
if
((
label
==
"spectrum, parent monoisotopic mass isotope error"
)
||
(
label
==
"spectrum, use neutral loss window"
)
||
(
label
==
"spectrum, use contrast angle"
)
||
(
label
==
"protein, cleavage semi"
)
||
(
label
==
"protein, quick acetyl"
)
||
(
label
==
"protein, quick pyrolidone"
)
||
(
label
==
"protein, stP bias"
)
||
(
label
==
"scoring, cyclic permutation"
)
||
(
label
==
"scoring, include reverse"
)
||
(
label
==
"scoring, y ions"
)
||
(
label
==
"scoring, b ions"
)
||
(
label
==
"scoring, c ions"
)
||
(
label
==
"scoring, z ions"
)
||
(
label
==
"scoring, a ions"
)
||
(
label
==
"scoring, x ions"
)
||
(
label
==
"refine"
)
||
(
label
==
"refine, use potential modifications for full refinement"
)
||
(
label
==
"refine, cleavage semi"
)
||
(
label
==
"refine, unanticipated cleavage"
)
||
(
label
==
"refine, spectrum synthesis"
)
||
(
label
==
"refine, point mutations"
)
||
(
label
==
"output, mzid"
)
||
(
label
==
"output, spectra"
)
||
(
label
==
"output, proteins"
)
||
(
label
==
"output, sequences"
)
||
(
label
==
"output, one sequence copy"
)
||
(
label
==
"output, parameters"
)
||
(
label
==
"output, performance"
)
||
(
label
==
"output, histograms"
)
||
(
label
==
"output, path hashing"
)
||
(
label
==
"spectrum, use noise suppression"
)
||
(
label
==
"spectrum, use noise suppression"
))
{
if
((
value
!=
"yes"
)
&&
(
value
!=
"no"
))
{
...
...
@@ -154,19 +169,35 @@ TandemParameters::setParamLabelValue(const QString &label, const QString &value)
.
arg
(
label
)
.
arg
(
value
));
}
/*
<note label="scoring, algorithm" type="input">k-score</note>
<note label="spectrum, use conditioning" type="input">no</note>
<note label="scoring, minimum ion count" type="input">1</note>
*/
}
else
if
((
label
==
"spectrum, parent monoisotopic mass error minus"
)
||
(
label
==
"spectrum, parent monoisotopic mass error plus"
)
||
(
label
==
"spectrum, dynamic range"
)
||
(
label
==
"spectrum, minimum parent m+h"
)
||
(
label
==
"protein, cleavage C-terminal mass change"
)
||
(
label
==
"protein, cleavage N-terminal mass change"
)
||
(
label
==
"protein, C-terminal residue modification mass"
)
||
(
label
==
"protein, N-terminal residue modification mass"
)
||
(
label
==
"refine, maximum valid expectation value"
)
||
(
label
==
"spectrum, fragment monoisotopic mass error"
)
||
(
label
==
"spectrum, neutral loss mass"
)
||
(
label
==
"spectrum, neutral loss window"
)
||
(
label
==
"spectrum, minimum fragment mz"
)
||
(
label
==
"output, maximum valid expectation value"
)
||
(
label
==
"output, maximum valid protein expectation value"
)
)
if
((
label
==
"spectrum, parent monoisotopic mass error minus"
)
||
(
label
==
"spectrum, parent monoisotopic mass error plus"
)
||
(
label
==
"spectrum, dynamic range"
)
||
(
label
==
"spectrum, minimum parent m+h"
)
||
(
label
==
"protein, cleavage C-terminal mass change"
)
||
(
label
==
"protein, cleavage N-terminal mass change"
)
||
(
label
==
"protein, C-terminal residue modification mass"
)
||
(
label
==
"protein, N-terminal residue modification mass"
)
||
(
label
==
"refine, maximum valid expectation value"
))
{
bool
ok
;
QString
value_bis
=
value
.
simplified
();
if
(
value_bis
.
isEmpty
())
...
...
@@ -177,49 +208,105 @@ TandemParameters::setParamLabelValue(const QString &label, const QString &value)
if
(
!
ok
)
{
// not an integer
throw
pappso
::
ExceptionNotPossible
(
QObject
::
tr
(
"
%1
value must be a number (not
%2
)"
)
QObject
::
tr
(
"
\"
%1
\"
value must be a number (not
\"
%2
\"
)"
)
.
arg
(
label
)
.
arg
(
value
));
}
}
if
((
label
==
"spectrum, maximum parent charge"
)
||
(
label
==
"spectrum, total peaks"
)
||
(
label
==
"spectrum, minimum peaks"
)
||
(
label
==
"spectrum, sequence batch size"
)
||
(
label
==
"spectrum, threads"
)
||
(
label
==
"scoring, minimum ion count"
)
||
(
label
==
"scoring, maximum missed cleavage sites"
))
else
if
((
label
==
"protein, cleavage site"
)
||
(
label
==
"protein, modified residue mass file"
)
||
(
label
==
"residue, modification mass"
)
||
(
label
==
"residue, modification mass 1"
)
||
(
label
==
"residue, modification mass 2"
)
||
(
label
==
"residue, potential modification mass"
)
||
(
label
==
"residue, potential modification mass 1"
)
||
(
label
==
"residue, potential modification mass 2"
)
||
(
label
==
"residue, potential modification motif"
)
||
(
label
==
"residue, potential modification motif 1"
)
||
(
label
==
"residue, potential modification motif 2"
)
||
(
label
==
"refine, potential N-terminus modifications"
)
||
(
label
==
"refine, potential C-terminus modifications"
)
||
(
label
==
"refine, modification mass"
)
||
(
label
==
"refine, modification mass 1"
)
||
(
label
==
"refine, modification mass 2"
)
||
(
label
==
"refine, potential modification mass"
)
||
(
label
==
"refine, potential modification mass 1"
)
||
(
label
==
"refine, potential modification mass 2"
)
||
(
label
==
"refine, potential modification motif"
)
||
(
label
==
"refine, potential modification motif 1"
)
||
(
label
==
"refine, potential modification motif 2"
)
||
(
label
==
"output, sort results by"
)
||
(
label
==
"output, xsl path"
)
||
(
label
==
"spectrum, path"
))
{
// string
}
else
if
((
label
==
"spectrum, maximum parent charge"
)
||
(
label
==
"spectrum, total peaks"
)
||
(
label
==
"spectrum, minimum peaks"
)
||
(
label
==
"spectrum, sequence batch size"
)
||
(
label
==
"spectrum, threads"
)
||
(
label
==
"scoring, minimum ion count"
)
||
(
label
==
"scoring, maximum missed cleavage sites"
)
||
(
label
==
"output, histogram column width"
))
{
bool
ok
;
value
.
toInt
(
&
ok
);
if
(
!
ok
)
{
// not an integer
throw
pappso
::
ExceptionNotPossible
(
QObject
::
tr
(
"
%1
value must be an integer (not
%2
)"
)
QObject
::
tr
(
"
\"
%1
\"
value must be an integer (not
\"
%2
\"
)"
)
.
arg
(
label
)
.
arg
(
value
));
}
}
if
(
label
==
"spectrum, fragment mass type"
)
else
if
(
label
==
"spectrum, fragment mass type"
)
{
if
((
value
!=
"monoisotopic"
)
&&
(
value
!=
"average"
))
{
throw
pappso
::
ExceptionNotPossible
(
QObject
::
tr
(
"%1 value must be monoisotopic or average (not %2)"
)
QObject
::
tr
(
"
\"
%1
\"
value must be monoisotopic or average (not
\"
%2
\"
)"
)
.
arg
(
label
)
.
arg
(
value
));
}
}
// tandem input parameter label "output, results" for value "valid" not known.
else
if
(
label
==
"output, results"
)
{
/*
if((value != "all") && (value != "valid"))
{
throw pappso::ExceptionNotPossible(
QObject::tr("\"%1\" value must be valid or all (not \"%2\")")
.arg(label)
.arg(value));
}
*/
}
else
{
throw
pappso
::
ExceptionNotPossible
(
QObject
::
tr
(
"tandem input parameter label
\"
%1
\"
for value
\"
%2
\"
not known."
)
.
arg
(
label
)
.
arg
(
value
));
}
// text "protein, cleavage site" "protein, modified residue mass file"
// "residue, modification mass" || (label == "refine, potential N-terminus
// modifications") || (label == "refine, potential C-terminus modifications")
// spectrum, neutral loss mass
// spectrum, neutral loss window
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
label
;
_map_label_value
.
insert
(
label
,
value
);
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
label
;
}
void
TandemParameters
::
setMethodName
(
const
QString
&
method
)
...
...
src/files/tandemparametersfile.cpp
View file @
8a796ad0
...
...
@@ -39,7 +39,9 @@
TandemParametersFile
::
TandemParametersFile
(
const
QString
&
fasta_source
)
:
_param_source
(
fasta_source
)
{
qDebug
()
<<
"TandemParametersFile::TandemParametersFile "
<<
fasta_source
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
fasta_source
;
}
TandemParametersFile
::
TandemParametersFile
(
const
QFileInfo
&
fasta_source
)
:
_param_source
(
fasta_source
)
...
...
@@ -143,17 +145,17 @@ TandemParametersFile::setTandemParameters(const TandemParameters ¶meters)
}
TandemParameters
TandemParametersFile
::
getTandemParameters
()
const
TandemParametersFile
::
getTandemParameters
()
{
qDebug
()
<<
"TandemParametersFile::getTandemParameters begin"
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
TandemParameters
parameters
;
XtandemParamSaxHandler
*
parser
=
new
XtandemParamSaxHandler
(
&
parameters
);
QXmlSimpleReader
simplereader
;
simplereader
.
setContentHandler
(
parser
);
simplereader
.
setErrorHandler
(
parser
);
qDebug
()
<<
"TandemParametersFile::getTandemParameters '"
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
_param_source
.
absoluteFilePath
()
<<
"'"
;
parameters
.
setMethodName
(
getMethodName
());
...
...
@@ -162,14 +164,18 @@ TandemParametersFile::getTandemParameters() const
if
(
simplereader
.
parse
(
xmlInputSource
))
{
qDebug
()
<<
"TandemParametersFile::getTandemParameters parse ok"
;
m_isTandemParameterFile
=
parser
->
isTandemParameter
();
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
m_isTandemParameterFile
;
// parameters.getValue("spectrum, parent monoisotopic mass error units");
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
qfile
.
close
();
delete
parser
;
}
else
{
qDebug
()
<<
"
TandemParameter
s
File
::get
TandemParameter
s parse error"
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
m_is
TandemParameterFile
=
parser
->
is
TandemParameter
()
;
qfile
.
close
();
throw
pappso
::
PappsoException
(
...
...
@@ -182,7 +188,7 @@ TandemParametersFile::getTandemParameters() const
}
bool
TandemParametersFile
::
isTandemPresetFile
()
const
TandemParametersFile
::
isTandemPresetFile
()
{
if
(
this
->
exists
())
...
...
@@ -191,15 +197,20 @@ TandemParametersFile::isTandemPresetFile() const
try
{
TandemParameters
param
=
getTandemParameters
();
if
(
!
m_isTandemParameterFile
)
return
false
;
param
.
getValue
(
"spectrum, threads"
);
}
catch
(
pappso
::
ExceptionNotFound
&
error
)
{
return
false
;
if
(
!
m_isTandemParameterFile
)
return
false
;
}
catch
(
pappso
::
PappsoException
&
error
)
{
return
false
;
if
(
!
m_isTandemParameterFile
)
return
false
;
}
return
true
;
}
...
...
src/files/tandemparametersfile.h
View file @
8a796ad0
...
...
@@ -52,11 +52,11 @@ class TandemParametersFile
/** @brief tells if this file is really a tandem preset file
*/
bool
isTandemPresetFile
()
const
;
bool
isTandemPresetFile
();
/** @brief read tandem parameters from XML file
*/
TandemParameters
getTandemParameters
()
const
;
TandemParameters
getTandemParameters
();
/** @brief write tandem parameters to XML file
*/
...
...
@@ -72,6 +72,7 @@ class TandemParametersFile
private:
QFileInfo
_param_source
;
bool
m_isTandemParameterFile
=
false
;
};
#endif // TANDEMPARAMETERSFILE_H
src/gui/edit/edit_tandem_preset_dialog/edittandempresetdialog.cpp
View file @
8a796ad0
...
...
@@ -167,6 +167,7 @@ EditTandemPresetDialog::doLoad()
int
index
=
ui
->
preset_combo_box
->
currentIndex
();
if
(
index
!=
-
1
)
{
// -1 for not found
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
TandemParametersFile
*
p_tandem_preset_file
=
new
TandemParametersFile
(
ui
->
preset_combo_box
->
itemData
(
index
).
value
<
QString
>
());
if
(
p_tandem_preset_file
->
isTandemPresetFile
())
...
...
@@ -182,8 +183,23 @@ EditTandemPresetDialog::doLoad()
}
_p_tandem_preset_file
=
p_tandem_preset_file
;
_tandem_params
=
_p_tandem_preset_file
->
getTandemParameters
();
populate
();
try
{
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
_tandem_params
=
_p_tandem_preset_file
->
getTandemParameters
();
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
populate
();
}
catch
(
pappso
::
PappsoException
&
error
)
{
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
QMessageBox
::
warning
(
this
,
tr
(
"Error :"
),
tr
(
"Error reading %1 X!Tandem parameter file:
\n
%2"
)
.
arg
(
p_tandem_preset_file
->
getAbsoluteFilePath
())
.
arg
(
error
.
qwhat
()));
}
}
else
{
...
...
@@ -834,7 +850,7 @@ EditTandemPresetDialog::readUi()
void
EditTandemPresetDialog
::
populate
()
{
qDebug
()
<<
"EditTandemPresetDialog::populate begin"
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
try
{
ui
->
method_name_line_edit
->
setText
(
_tandem_params
.
getMethodName
());
...
...
@@ -1314,7 +1330,7 @@ EditTandemPresetDialog::populate()
{
QMessageBox
::
warning
(
this
,
tr
(
"Error in parameters :"
),
error
.
qwhat
());
}
qDebug
()
<<
"EditTandemPresetDialog::populate end"
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
;
}
void
...
...
src/input/xtandemparamsaxhandler.cpp
View file @
8a796ad0
...
...
@@ -48,7 +48,11 @@ XtandemParamSaxHandler::~XtandemParamSaxHandler()
{
}
bool
XtandemParamSaxHandler
::
isTandemParameter
()
const
{
return
m_isTandemParameter
;
}
bool
XtandemParamSaxHandler
::
startElement
(
const
QString
&
namespaceURI
,
const
QString
&
localName
,
...
...
@@ -67,12 +71,18 @@ XtandemParamSaxHandler::startElement(const QString &namespaceURI,
{
if
(
qName
!=
"bioml"
)
{
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::startElement "
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::startElement "
"root tag %1 is not <bioml>"
)
.
arg
(
qName
);
.
arg
(
qName
);
m_isTandemParameter
=
false
;
return
false
;
}
else
{
m_isTandemParameter
=
true
;
}
}
// startElement_group
...
...
@@ -84,16 +94,18 @@ XtandemParamSaxHandler::startElement(const QString &namespaceURI,
}
catch
(
pappso
::
PappsoException
exception_pappso
)
{
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::startElement "
"tag %1, PAPPSO exception:
\n
%2"
)
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::startElement "
"tag %1, PAPPSO exception:
\n
%2"
)
.
arg
(
qName
)
.
arg
(
exception_pappso
.
qwhat
());
return
false
;
}
catch
(
std
::
exception
exception_std
)
{
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::startElement "
"tag %1, std exception:
\n
%2"
)
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::startElement "
"tag %1, std exception:
\n
%2"
)
.
arg
(
qName
)
.
arg
(
exception_std
.
what
());
return
false
;
...
...
@@ -119,16 +131,18 @@ XtandemParamSaxHandler::endElement(const QString &namespaceURI,
}
catch
(
pappso
::
PappsoException
exception_pappso
)
{
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::endElement tag "
"%1, PAPPSO exception:
\n
%2"
)
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::endElement tag "
"%1, PAPPSO exception:
\n
%2"
)
.
arg
(
qName
)
.
arg
(
exception_pappso
.
qwhat
());
return
false
;
}
catch
(
std
::
exception
exception_std
)
{
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::endElement tag "
"%1, std exception:
\n
%2"
)
_errorStr
=
QObject
::
tr
(
"ERROR in XtandemParamSaxHandler::endElement tag "
"%1, std exception:
\n
%2"
)
.
arg
(
qName
)
.
arg
(
exception_std
.
what
());
return
false
;
...
...
@@ -144,12 +158,14 @@ XtandemParamSaxHandler::endElement(const QString &namespaceURI,
bool
XtandemParamSaxHandler
::
error
(
const
QXmlParseException
&
exception
)
{
_errorStr
=
QObject
::
tr
(
"Parse error at line %1, column %2 :
\n
"
"%3"
)
_errorStr
=
QObject
::
tr
(
"Parse error at line %1, column %2 :
\n
"
"%3"
)
.
arg
(
exception
.
lineNumber
())
.
arg
(
exception
.
columnNumber
())
.
arg
(
exception
.
message
());
qDebug
()
<<
"XtandemParamSaxHandler::error "
<<
_errorStr
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
_errorStr
;
return
false
;
}
...
...
@@ -157,12 +173,14 @@ XtandemParamSaxHandler::error(const QXmlParseException &exception)
bool
XtandemParamSaxHandler
::
fatalError
(
const
QXmlParseException
&
exception
)
{
_errorStr
=
QObject
::
tr
(
"Parse error at line %1, column %2 :
\n
"
"%3"
)
_errorStr
=
QObject
::
tr
(
"Parse error at line %1, column %2 :
\n
"
"%3"
)
.
arg
(
exception
.
lineNumber
())
.
arg
(
exception
.
columnNumber
())
.
arg
(
exception
.
message
());
qDebug
()
<<
"XtandemParamSaxHandler::fatalError "
<<
_errorStr
;
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
_errorStr
;
return
false
;
}
...
...
@@ -223,8 +241,21 @@ XtandemParamSaxHandler::endElement_note()
// _current_label << " " << _current_text.simplified();
if
(
!
_current_label
.
isEmpty
())
{
_p_tandem_parameters
->
setParamLabelValue
(
_current_label
,
_current_text
.
simplified
());
try
{
_p_tandem_parameters
->
setParamLabelValue
(
_current_label
,
_current_text
.
simplified
());
}
catch
(
pappso
::
PappsoException
&
exception
)
{
_errorStr
=
QObject
::
tr
(
"Error reading tandem input parameter
\"
%1
\"
:
\n
%2"
)
.
arg
(
_current_label
)
.
arg
(
exception
.
qwhat
());
qDebug
()
<<
__FILE__
<<
" "
<<
__FUNCTION__
<<
" "
<<
__LINE__
<<
" "
<<
_errorStr
;
return
false
;
}
}
return
true
;
}
src/input/xtandemparamsaxhandler.h
View file @
8a796ad0
...
...
@@ -41,10 +41,13 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler
XtandemParamSaxHandler
(
TandemParameters
*
p_tandem_parameters
);
~
XtandemParamSaxHandler
();
bool
startElement
(
const
QString
&
namespaceURI
,
const
QString
&
localName
,
const
QString
&
qName
,
const
QXmlAttributes
&
attributes
);
bool
startElement
(
const
QString
&
namespaceURI
,
const
QString
&
localName
,
const
QString
&
qName
,
const
QXmlAttributes
&
attributes
);
bool
endElement
(
const
QString
&
namespaceURI
,
const
QString
&
localName
,
bool
endElement
(
const
QString
&
namespaceURI
,
const
QString
&
localName
,
const
QString
&
qName
);
bool
startDocument
();
...
...
@@ -58,6 +61,7 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler
QString
errorString
()
const
;
bool
isTandemParameter
()
const
;
private:
bool
startElement_note
(
QXmlAttributes
attributes
);
bool
endElement_note
();
...
...
@@ -70,6 +74,7 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler
QString
_current_text
;
QString
_current_label
;
bool
m_isTandemParameter
=
false
;
};
#endif // XTANDEMPARAMSAXHANDLER_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel