diff --git a/src/core/project.cpp b/src/core/project.cpp index b5b3940dce5948e6aca2f55630cda0650dfe7d3a..ecbb6f911153d509e688542de6871fe89e75d73a 100644 --- a/src/core/project.cpp +++ b/src/core/project.cpp @@ -38,7 +38,9 @@ Project::~Project() it++; } } - +const GroupingType Project::getGroupingType() const { + return _grouping_type; +} PeptideStore & Project::getPeptideStore() { return _peptide_store; } diff --git a/src/core/project.h b/src/core/project.h index 2e98fc3cf866b1da147b8edc4377f37789c4c9c1..677f54ad3fb8985a9e52ac1359effb6ff0533144 100644 --- a/src/core/project.h +++ b/src/core/project.h @@ -53,6 +53,8 @@ public: * */ void updateAutomaticFilters(const AutomaticFilterParameters & automatic_filter_parameters); void startGrouping(); + + const GroupingType getGroupingType() const; private : diff --git a/src/gui/project_view/projectwindow.cpp b/src/gui/project_view/projectwindow.cpp index f8245bed2b975f4a691fe8547bf22fcd3475f180..a4e6afeb68b9694dc78c81b06b6ccdce15b299eb 100644 --- a/src/gui/project_view/projectwindow.cpp +++ b/src/gui/project_view/projectwindow.cpp @@ -64,7 +64,9 @@ ProjectWindow::~ProjectWindow() } void ProjectWindow::setDefaultProteinListWindow(ProteinListWindow* p_protein_list_window) { + qDebug() << "ProjectWindow::setDefaultProteinListWindow begin"; _p_current_protein_list_window = p_protein_list_window; + qDebug() << "ProjectWindow::setDefaultProteinListWindow end"; } void ProjectWindow::connectNewProteinListWindow() { @@ -82,6 +84,8 @@ void ProjectWindow::connectNewProteinListWindow() { #else // Qt4 code connect (_p_current_protein_list_window, SIGNAL(proteinMatchClicked(ProteinMatch *)), this,SLOT(doProteinMatchClicked(ProteinMatch *))); + connect (_p_current_protein_list_window, SIGNAL(identificationGroupEdited(IdentificationGroup *)), this,SLOT(doIdentificationGroupEdited(IdentificationGroup *))); + connect (this, SIGNAL(identificationGroupGrouped(IdentificationGroup *)), _p_current_protein_list_window,SLOT(doIdentificationGroupGrouped(IdentificationGroup *))); #endif @@ -89,6 +93,16 @@ void ProjectWindow::connectNewProteinListWindow() { } +void ProjectWindow::doIdentificationGroupEdited(IdentificationGroup * p_ident_group) { + qDebug() << "ProjectWindow::doIdentificationGroupEdited begin"; + p_ident_group->startGrouping(_project_sp.get()->getGroupingType()); + + + emit identificationGroupGrouped(p_ident_group); + + qDebug() << "ProjectWindow::doIdentificationGroupEdited end"; +} + void ProjectWindow::doProteinMatchClicked(ProteinMatch * protein_match) { PeptideListWindow * peptide_window = new PeptideListWindow(this); peptide_window->setProteinMatch(_project_sp.get(), protein_match); diff --git a/src/gui/project_view/projectwindow.h b/src/gui/project_view/projectwindow.h index 87eb657f8ce3364a113eeef9d08240ae57d858d9..bba8045b35e3e1c4bdc57d548fd36f7d1dd43a07 100644 --- a/src/gui/project_view/projectwindow.h +++ b/src/gui/project_view/projectwindow.h @@ -47,17 +47,19 @@ public: public slots: void doViewProteinList(IdentificationGroup* p_identification_group =nullptr); void doProteinMatchClicked(ProteinMatch * protein_match); + void doIdentificationGroupEdited(IdentificationGroup * p_identification_group); void setDefaultProteinListWindow(ProteinListWindow* p_protein_list_window); // void setColor(const QColor &color); // void setShape(Shape shape); signals: + void identificationGroupGrouped(IdentificationGroup * p_identification_group); //void peptideChanged(pappso::PeptideSp peptide); private : void connectNewProteinListWindow(); private: Ui::ProjectView *ui; - MainWindow * main_window; + MainWindow * main_window; std::list <ProteinListWindow *> _protein_list_window_collection; ProteinListWindow * _p_current_protein_list_window = nullptr; ProjectSp _project_sp; diff --git a/src/gui/protein_list_view/proteinlistwindow.cpp b/src/gui/protein_list_view/proteinlistwindow.cpp index b4eec221ec55bad78b50182ab7c67b12856e65ad..1a888fac7ade4bd0fb698b525cb0aa35158932dd 100644 --- a/src/gui/protein_list_view/proteinlistwindow.cpp +++ b/src/gui/protein_list_view/proteinlistwindow.cpp @@ -84,6 +84,23 @@ ProteinListWindow::~ProteinListWindow() } +void ProteinListWindow::edited() { + qDebug() << "ProteinListWindow::edited begin"; + //emit dataChanged(index, index); + emit identificationGroupEdited(_p_identification_group); + updateStatusBar(); + + qDebug() << "ProteinListWindow::edited end"; +} + +void ProteinListWindow::doIdentificationGroupGrouped(IdentificationGroup * p_identification_group) { + qDebug() << "ProteinListWindow::doIdentificationGroupGrouped begin"; + if (_p_identification_group == p_identification_group) { + _p_proxy_model->setSourceModel(_protein_table_model_p); + updateStatusBar(); + } + qDebug() << "ProteinListWindow::doIdentificationGroupGrouped end"; +} void ProteinListWindow::setIdentificationGroup(IdentificationGroup * p_identification_group) { if (_p_identification_group != p_identification_group) { diff --git a/src/gui/protein_list_view/proteinlistwindow.h b/src/gui/protein_list_view/proteinlistwindow.h index 6bf3f442faaa37c8a08bc6cc674b3874106c0b80..cf9cbe34a2213dc91d6303642241baff6e361eb3 100644 --- a/src/gui/protein_list_view/proteinlistwindow.h +++ b/src/gui/protein_list_view/proteinlistwindow.h @@ -38,22 +38,28 @@ class ProteinView; class ProteinListWindow: public QMainWindow { Q_OBJECT + friend ProteinTableModel; public: explicit ProteinListWindow(ProjectWindow * parent = 0); ~ProteinListWindow(); void setIdentificationGroup(IdentificationGroup * p_identification_group); void doubleclickOnproteinMatch(ProteinMatch * p_protein_match); - void updateStatusBar(); + + void edited(); public slots: void doFocusReceived(bool has_focus); + void doIdentificationGroupGrouped(IdentificationGroup * p_identification_group); //void peptideEdited(QString peptideStr); // void setColor(const QColor &color); // void setShape(Shape shape); signals: void proteinMatchClicked(ProteinMatch * p_protein_match); + void identificationGroupEdited(IdentificationGroup * p_identification_group); +protected : + void updateStatusBar(); private: IdentificationGroup * _p_identification_group; Ui::ProteinView *ui; diff --git a/src/gui/protein_list_view/proteintablemodel.cpp b/src/gui/protein_list_view/proteintablemodel.cpp index 8962a472818b518dc32a8bb1bd66f97efc14a561..89306e95912ba5d476caef4d6ddbd36e24ca2253 100644 --- a/src/gui/protein_list_view/proteintablemodel.cpp +++ b/src/gui/protein_list_view/proteintablemodel.cpp @@ -233,8 +233,7 @@ void ProteinTableModel::onTableClicked(const QModelIndex &index) else { _p_identification_group->getProteinMatchList().at(row)->setChecked(true); } - //emit dataChanged(index, index); - _p_protein_list_window->updateStatusBar(); + _p_protein_list_window->edited(); } }