Store Sequence sequence location in a shared_ptr class
[mussa.git] / qui / seqbrowser / seqproperties / SequencePropertiesModel.cpp
index b4fc3b238e3db3f934fd5d233ac406ce20b558b5..dad25de8408b8d664bdec30cedd5458d17d0d013 100644 (file)
@@ -1,6 +1,6 @@
 #include "qui/seqbrowser/seqproperties/SequencePropertiesModel.hpp"
 
-SequencePropertiesModel::SequencePropertiesModel(model_type& orig, QObject *parent) 
+SequencePropertiesModel::SequencePropertiesModel(model_type orig, QObject *parent) 
   : QAbstractTableModel(parent),
     original_sequences(orig)
 {
@@ -128,7 +128,7 @@ SequencePropertiesModel::data(const QModelIndex &index, int role) const
   if (role == Qt::DisplayRole) {
     if (index.column() == 0 ) {
       model_item glseq = sequences[index.row()];
-      std::string name(glseq->sequence()->get_name());
+      std::string name(glseq->get_name());
       if (name.size() == 0) {
         return QString(tr("Unnamed Sequence"));
       } else {
@@ -205,4 +205,18 @@ Qt::ItemFlags SequencePropertiesModel::flags(const QModelIndex& index) const
     return QAbstractItemModel::flags(index);
   else
     return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
-}
\ No newline at end of file
+}
+
+void SequencePropertiesModel::saveChanges()
+{
+  const_iterator orig_seq_i = original_sequences.begin();
+  const_iterator new_seq_i = sequences.begin();
+
+  while(orig_seq_i != original_sequences.end() or new_seq_i != sequences.end())
+  {
+    // copy over properties
+    (*orig_seq_i)->setX((*new_seq_i)->x());
+    ++orig_seq_i;
+    ++new_seq_i;
+  }
+}