Skip to content
Snippets Groups Projects
Commit 7ff50657 authored by Langella Olivier's avatar Langella Olivier
Browse files

use shared pointer for fasta files in contaminant widget

parent 0894979a
No related branches found
No related tags found
No related merge requests found
......@@ -62,4 +62,6 @@ private :
};
Q_DECLARE_METATYPE(FastaFile *)
Q_DECLARE_METATYPE(FastaFileSp)
#endif // FASTAFILE_H
......@@ -47,7 +47,7 @@ ContaminantWidget::ContaminantWidget(QWidget * parent):
ui->contaminant_database_listview->setModel(_p_fasta_str_li);
QItemSelectionModel * selection_model = ui->contaminant_database_listview->selectionModel();
ui->contaminant_database_listview->setSelectionMode(QAbstractItemView::MultiSelection);
doSelectContaminantSource();
qDebug() << "ContaminantWidget::ContaminantWidget end";
}
......@@ -68,14 +68,13 @@ void ContaminantWidget::setRegexpContaminantPattern(const QString & pattern) {
void ContaminantWidget::setFastaFileList(std::vector<FastaFileSp> fasta_file_list) {
_fasta_file_list = fasta_file_list;
_p_fasta_str_li->removeRows(0, _p_fasta_str_li->rowCount());
for (FastaFileSp fasta_file : fasta_file_list ) {
QStandardItem *item;
item = new QStandardItem(QString("%1").arg(fasta_file.get()->getFilename()));
item->setEditable(false);
item->setData(QVariant::fromValue(fasta_file.get()), Qt::UserRole);
item->setData(QVariant::fromValue(fasta_file), Qt::UserRole);
_p_fasta_str_li->appendRow(item);
//item->setData(QVariant(QString("%1").arg(fasta_file.get()->getAbsoluteFilePath())),Qt::UserRole);
}
......@@ -106,9 +105,9 @@ void ContaminantWidget::setProjectContaminants(Project * p_project) {
p_project->getProteinStore().clearContaminants();
if (index_list.size() > 0) {
for (QModelIndex index :index_list) {
if (index.data(Qt::UserRole).canConvert<FastaFile *>()) {
FastaFile * p_fasta_file = index.data(Qt::UserRole).value<FastaFile *>();
p_fasta_file->setContaminants(p_project->getProteinStore());
if (index.data(Qt::UserRole).canConvert<FastaFileSp>()) {
FastaFileSp p_fasta_file = index.data(Qt::UserRole).value<FastaFileSp>();
p_fasta_file.get()->setContaminants(p_project->getProteinStore());
}
else {
throw pappso::PappsoException(QObject::tr("can not convert to FastaFile index.data().canConvert<FastaFile *>()"));
......@@ -153,13 +152,22 @@ void ContaminantWidget::doSelectFastaFile() {
if (filenames.size() > 0) {
settings.setValue("path/fastafiles_directory", QFileInfo(filenames[0]).absolutePath());
}
std::vector<FastaFileSp> fasta_file_list;
for (QString filename :filenames) {
fasta_file_list.push_back(std::make_shared<FastaFile>(filename));
}
this->setFastaFileList(fasta_file_list);
for (FastaFileSp fasta_file : fasta_file_list ) {
QStandardItem *item;
item = new QStandardItem(QString("%1").arg(fasta_file.get()->getFilename()));
item->setEditable(false);
item->setData(QVariant::fromValue(fasta_file), Qt::UserRole);
_p_fasta_str_li->appendRow(item);
//item->setData(QVariant(QString("%1").arg(fasta_file.get()->getAbsoluteFilePath())),Qt::UserRole);
}
}
catch (pappso::PappsoException & error) {
......
......@@ -70,8 +70,6 @@ private:
bool _no_project = true;
QStandardItemModel * _p_fasta_str_li;
std::vector<FastaFileSp> _fasta_file_list;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment