[SCM] massXpert mass spectrometry suite: debian packaging branch, upstream, updated. 41a70205093791df401b34b6867e830c5a46d1f9
Filippo Rusconi
rusconi at mnhn.fr
Wed Apr 15 15:42:55 UTC 2009
The following commit has been merged in the upstream branch:
commit ea089372c40d305b06af8f160e1d65b818160f01
Author: Filippo Rusconi <rusconi at mnhn.fr>
Date: Wed Apr 15 15:21:32 2009 +0200
Fixed bug due to not taking into account the locale
while making textual mass lists starting from oligomer items in treeviews.
diff --git a/gui/cleaveOligomerTreeView.cpp b/gui/cleaveOligomerTreeView.cpp
index c5f58b2..d6f8eec 100644
--- a/gui/cleaveOligomerTreeView.cpp
+++ b/gui/cleaveOligomerTreeView.cpp
@@ -436,55 +436,58 @@ namespace massXpert
static_cast<CleaveOligomerTreeViewModel *>(model());
Q_ASSERT(treeModel);
+ int columnIndex = 0;
+
+ if(monoOrAvg == MXT_MASS_MONO)
+ columnIndex = CLEAVE_OLIGO_MONO_COLUMN;
+ else if (monoOrAvg == MXT_MASS_AVG)
+ columnIndex = CLEAVE_OLIGO_AVG_COLUMN;
+ else
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
int rowCount = treeModel->rowCount();
if (!rowCount)
return;
- // Iterate in each partial cleavage node of the main tree, and for
- // each such node, iterate in the different oligomers of that
- // specific partial cleavage node.
-
for (int iter = 0; iter < rowCount; ++iter)
{
- QModelIndex oligomerIndex =
- treeModel->index(iter, CLEAVE_OLIGO_PARTIAL_COLUMN, QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
+ QModelIndex oligomerIndex =
+ treeModel->index(iter, columnIndex, QModelIndex());
- if(monoOrAvg == MXT_MASS_MONO)
- {
- oligomerIndex =
- treeModel->index(iter, CLEAVE_OLIGO_MONO_COLUMN,
- QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- double value = treeModel->data(oligomerIndex,
- Qt::DisplayRole).toDouble();
-
- massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
- massList += "\n";
- }
- else if (monoOrAvg == MXT_MASS_AVG)
- {
- QModelIndex oligomerIndex =
- treeModel->index(iter, CLEAVE_OLIGO_AVG_COLUMN,
- QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- double value = treeModel->data(oligomerIndex,
- Qt::DisplayRole).toDouble();
-
- massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
- massList += "\n";
- }
- else
- Q_ASSERT(0);
+ if (!oligomerIndex.isValid())
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+
+ // We have to make sure we translate correctly from
+ // locale-based textual representation of double numbers
+ // to real double numbers.
+
+ bool ok = false;
+
+ QString valueString =
+ treeModel->data(oligomerIndex, Qt::DisplayRole).toString();
+
+ double value =
+ locale.toDouble(valueString, &ok);
+
+ if (!value && !ok)
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+ // double value = treeModel->data(oligomerIndex,
+ // Qt::DisplayRole).toDouble();
+
+ massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
+ massList += "\n";
}
-
+
if (massList.isEmpty())
return;
-
+
QClipboard *clipboard = QApplication::clipboard();
-
+
clipboard->setText(massList, QClipboard::Clipboard);
}
diff --git a/gui/fragmentOligomerTreeView.cpp b/gui/fragmentOligomerTreeView.cpp
index c239305..ebf2a65 100644
--- a/gui/fragmentOligomerTreeView.cpp
+++ b/gui/fragmentOligomerTreeView.cpp
@@ -402,57 +402,50 @@ namespace massXpert
static_cast<FragmentOligomerTreeViewModel *>(model());
Q_ASSERT(treeModel);
+ int columnIndex = 0;
+
+ if(monoOrAvg == MXT_MASS_MONO)
+ columnIndex = FRAG_OLIGO_MONO_COLUMN;
+ else if (monoOrAvg == MXT_MASS_AVG)
+ columnIndex = FRAG_OLIGO_AVG_COLUMN;
+ else
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
int rowCount = treeModel->rowCount();
if (!rowCount)
return;
- // Iterate in each fragmentation pattern node of the main tree, and for
- // each such node, iterate in the different oligomers of that
- // specific fragmentation pattern node.
-
- // OLIGOMER_PATTERN_COLUMN,
- // OLIGOMER_NAME_COLUMN,
- // OLIGOMER_COORDINATES_COLUMN,
- // OLIGOMER_MONO_COLUMN,
- // OLIGOMER_AVG_COLUMN,
- // OLIGOMER_MODIF_COLUMN,
- // OLIGOMER_TOTAL_COLUMNS
-
-
for (int iter = 0; iter < rowCount; ++iter)
{
- QModelIndex oligomerIndex =
- treeModel->index(iter, FRAG_OLIGO_PATTERN_COLUMN, QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- if(monoOrAvg == MXT_MASS_MONO)
- {
- QModelIndex oligomerIndex =
- treeModel->index(iter, FRAG_OLIGO_MONO_COLUMN,
- QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- double value = treeModel->data(oligomerIndex,
- Qt::DisplayRole).toDouble();
-
- massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
- massList += "\n";
- }
- else if (monoOrAvg == MXT_MASS_AVG)
- {
- QModelIndex oligomerIndex =
- treeModel->index(iter, FRAG_OLIGO_AVG_COLUMN,
- QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- double value = treeModel->data(oligomerIndex,
- Qt::DisplayRole).toDouble();
-
- massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
- massList += "\n";
- }
- else
- Q_ASSERT(0);
+ QModelIndex oligomerIndex =
+ treeModel->index(iter, columnIndex, QModelIndex());
+
+ if (!oligomerIndex.isValid())
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+ // We have to make sure we translate correctly from
+ // locale-based textual representation of double numbers
+ // to real double numbers.
+
+ bool ok = false;
+
+ QString valueString =
+ treeModel->data(oligomerIndex, Qt::DisplayRole).toString();
+
+ double value =
+ locale.toDouble(valueString, &ok);
+
+ if (!value && !ok)
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+ // double value = treeModel->data(oligomerIndex,
+ // Qt::DisplayRole).toDouble();
+
+ massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
+ massList += "\n";
}
if (massList.isEmpty())
diff --git a/gui/massSearchOligomerTreeView.cpp b/gui/massSearchOligomerTreeView.cpp
index 83a6834..e113130 100644
--- a/gui/massSearchOligomerTreeView.cpp
+++ b/gui/massSearchOligomerTreeView.cpp
@@ -428,38 +428,50 @@ namespace massXpert
static_cast<MassSearchOligomerTreeViewModel *>(model());
Q_ASSERT(treeModel);
- int oligomerRowCount = treeModel->rowCount();
+ int columnIndex = 0;
+
+ if(monoOrAvg == MXT_MASS_MONO)
+ columnIndex = MASS_SEARCH_OLIGO_MONO_COLUMN;
+ else if (monoOrAvg == MXT_MASS_AVG)
+ columnIndex = MASS_SEARCH_OLIGO_AVG_COLUMN;
+ else
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+ int rowCount = treeModel->rowCount();
+ if (!rowCount)
+ return;
- for (int iter = 0 ; iter < oligomerRowCount; ++iter)
+ for (int iter = 0 ; iter < rowCount; ++iter)
{
- if(monoOrAvg == MXT_MASS_MONO)
- {
- QModelIndex oligomerIndex =
- treeModel->index(iter, MASS_SEARCH_OLIGO_MONO_COLUMN,
- QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- double value = treeModel->data(oligomerIndex,
- Qt::DisplayRole).toDouble();
-
- massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
- massList += "\n";
- }
- else if (monoOrAvg == MXT_MASS_AVG)
- {
- QModelIndex oligomerIndex =
- treeModel->index(iter, MASS_SEARCH_OLIGO_AVG_COLUMN,
- QModelIndex());
- Q_ASSERT(oligomerIndex.isValid());
-
- double value = treeModel->data(oligomerIndex,
- Qt::DisplayRole).toDouble();
-
- massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
- massList += "\n";
- }
- else
- Q_ASSERT(0);
+ QModelIndex oligomerIndex =
+ treeModel->index(iter, columnIndex, QModelIndex());
+
+ if (!oligomerIndex.isValid())
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+ // We have to make sure we translate correctly from
+ // locale-based textual representation of double numbers
+ // to real double numbers.
+
+ bool ok = false;
+
+ QString valueString =
+ treeModel->data(oligomerIndex, Qt::DisplayRole).toString();
+
+ double value =
+ locale.toDouble(valueString, &ok);
+
+ if (!value && !ok)
+ qFatal("Fatal error at %s@%d. Program aborted.",
+ __FILE__, __LINE__);
+
+ // double value = treeModel->data(oligomerIndex,
+ // Qt::DisplayRole).toDouble();
+
+ massList += locale.toString(value, 'f', MXP_OLIGOMER_DEC_PLACES);
+ massList += "\n";
}
if (massList.isEmpty())
--
massXpert mass spectrometry suite: debian packaging
More information about the debian-science-commits
mailing list