diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8df429b34b0b6a81bcd5d7ed519b2d0cb3815b9e..74c5329c76141ce293dc33f70880f734a54099c7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,8 +28,8 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5 #sudo apt-get install libpappsomspp-dev #FIND_PACKAGE( Pappsomspp REQUIRED ) -#SET (PAPPSOMSPP_DIR "/home/olivier/eclipse/git/pappsomspp") - SET (PAPPSOMSPP_DIR "/home/langella/developpement/git/pappsomspp") +SET (PAPPSOMSPP_DIR "/home/olivier/eclipse/git/pappsomspp") +# SET (PAPPSOMSPP_DIR "/home/langella/developpement/git/pappsomspp") SET (PAPPSOMSPP_INCLUDE_DIR "${PAPPSOMSPP_DIR}/src") SET (PAPPSOMSPP_QT5_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/libpappsomspp-qt5.so") SET (PAPPSOMSPP_WIDGET_QT5_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/pappsomspp/widget/libpappsomspp-widget-qt5.so") diff --git a/src/gui/protein_list_view/protein_view.ui b/src/gui/protein_list_view/protein_view.ui index 7934ff6a09a14fd36ad304a9b03dced8c58126a1..5541225bbf35adafeb7aef0bb13bcd213f272cbc 100644 --- a/src/gui/protein_list_view/protein_view.ui +++ b/src/gui/protein_list_view/protein_view.ui @@ -110,7 +110,11 @@ <widget class="QLineEdit" name="msrun_auto_completion"/> </item> <item> - <widget class="QSpinBox" name="scan_number_edit"/> + <widget class="QSpinBox" name="scan_number_edit"> + <property name="maximum"> + <number>9999999</number> + </property> + </widget> </item> </layout> </item> @@ -210,6 +214,38 @@ </hint> </hints> </connection> + <connection> + <sender>msrun_auto_completion</sender> + <signal>textChanged(QString)</signal> + <receiver>ProteinView</receiver> + <slot>doMsrunFileSearch(QString)</slot> + <hints> + <hint type="sourcelabel"> + <x>574</x> + <y>360</y> + </hint> + <hint type="destinationlabel"> + <x>860</x> + <y>501</y> + </hint> + </hints> + </connection> + <connection> + <sender>scan_number_edit</sender> + <signal>valueChanged(int)</signal> + <receiver>ProteinView</receiver> + <slot>doScanNumberSearch(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>782</x> + <y>346</y> + </hint> + <hint type="destinationlabel"> + <x>1091</x> + <y>324</y> + </hint> + </hints> + </connection> </connections> <slots> <slot>doNotValidHide(bool)</slot> @@ -217,5 +253,7 @@ <slot>doNotGroupedHide(bool)</slot> <slot>onProteinSearchEdit(QString)</slot> <slot>doSearchOn(QString)</slot> + <slot>doMsrunFileSearch(QString)</slot> + <slot>doScanNumberSearch(int)</slot> </slots> </ui> diff --git a/src/gui/protein_list_view/proteinlistwindow.cpp b/src/gui/protein_list_view/proteinlistwindow.cpp index 4acadde0fd8e6fe67460488248ee9876c62f1865..e3e84d72845744559f3de9cfda41591349bd45cb 100644 --- a/src/gui/protein_list_view/proteinlistwindow.cpp +++ b/src/gui/protein_list_view/proteinlistwindow.cpp @@ -241,6 +241,14 @@ void ProteinListWindow::doSearchOn(QString search_on) { emit proteinDataChanged(); } +void ProteinListWindow::doMsrunFileSearch(QString msr_run_file_search) { + //_p_proxy_model->setMsrunFileSearch(msr_run_file_search); + emit proteinDataChanged(); +} + +void ProteinListWindow::doScanNumberSearch(int scan_num) { + emit proteinDataChanged(); +} void ProteinListWindow::onProteinSearchEdit(QString protein_search_string) { qDebug() << "ProteinTableProxyModel::onProteinSearchEdit begin " << protein_search_string; diff --git a/src/gui/protein_list_view/proteinlistwindow.h b/src/gui/protein_list_view/proteinlistwindow.h index 0b30860fc980f2542a5ed29186f514217f8b69c7..a5966bca39e0387b3d606cfb06c77b57cefc8366 100644 --- a/src/gui/protein_list_view/proteinlistwindow.h +++ b/src/gui/protein_list_view/proteinlistwindow.h @@ -85,6 +85,8 @@ protected slots: void doNotValidHide(bool hide); void doNotCheckedHide(bool hide); void doNotGroupedHide(bool hide); + void doMsrunFileSearch(QString msr_run_file_search); + void doScanNumberSearch(int scan_num); void doProxyLayoutChanged(); void showContextMenu(const QPoint &); void updateStatusBar(); diff --git a/src/gui/protein_list_view/proteintableproxymodel.cpp b/src/gui/protein_list_view/proteintableproxymodel.cpp index e133174cd914ddf0406c32f545e98d4a606e596d..55f25919bf9a143064b077e2c449412b412c087b 100644 --- a/src/gui/protein_list_view/proteintableproxymodel.cpp +++ b/src/gui/protein_list_view/proteintableproxymodel.cpp @@ -23,6 +23,7 @@ #include <QDebug> #include <pappsomspp/pappsoexception.h> +#include "ui_protein_view.h" #include "proteintableproxymodel.h" #include "proteintablemodel.h" #include "proteinlistwindow.h" @@ -48,6 +49,32 @@ bool ProteinTableProxyModel::filterAcceptsRow(int source_row, ProteinMatch * protein_match = _protein_table_model_p->getIdentificationGroup()->getProteinMatchList().at(source_row); //qDebug() << "ProteinTableProxyModel::filterAcceptsRow protein_match " << source_row; + + if (_search_on == "msrun/scan") { + unsigned int scan_num = this->_p_protein_list_window->ui->scan_number_edit->value(); + QString file_search_string = this->_p_protein_list_window->ui->msrun_auto_completion->text().toLower(); + qDebug() << "ProteinTableProxyModel::filterAcceptsRow msrun/scan " << file_search_string << " " << scan_num; + for (const PeptideMatch & p_peptide_match: protein_match->getPeptideMatchList()) { + bool scan_ok = true; + if (scan_num > 0) { + scan_ok = false; + if (p_peptide_match.getPeptideEvidence()->getScan() == scan_num) { + scan_ok = true; + } + } + bool msrun_ok = true; + if (!file_search_string.isEmpty()) { + msrun_ok = false; + if (p_peptide_match.getPeptideEvidence()->getMsRunP()->getFilename().toLower().contains(file_search_string)) { + msrun_ok = true; + } + } + if (msrun_ok && scan_ok ) { + return true; + } + } + return false; + } if (!_protein_search_string.isEmpty()) { if (_search_on == "accession") { if (!protein_match->getProteinXtpSp().get()->getAccession().contains(_protein_search_string)) { @@ -204,6 +231,9 @@ void ProteinTableProxyModel::hideNotGrouped(bool hide) { void ProteinTableProxyModel::setSearchOn(QString search_on) { _search_on = search_on; } + +void ProteinTableProxyModel::setMsrunFileSearch(QString msrun_file_search) { +} void ProteinTableProxyModel::setProteinSearchString(QString protein_search_string) { _protein_search_string = protein_search_string; } diff --git a/src/gui/protein_list_view/proteintableproxymodel.h b/src/gui/protein_list_view/proteintableproxymodel.h index 082c2d069da1d82af4d1defe303635c1666e89e8..a71cf0a2e8945c2ef7a800116b82194bb286d7e9 100644 --- a/src/gui/protein_list_view/proteintableproxymodel.h +++ b/src/gui/protein_list_view/proteintableproxymodel.h @@ -50,6 +50,7 @@ public: void hideNotChecked(bool hide); void hideNotGrouped(bool hide); void setProteinSearchString(QString protein_search_string); + void setMsrunFileSearch(QString msrun_file_search); void setSearchOn(QString search_on); void setProteinListColumnDisplay(ProteinListColumn column, bool toggled); bool getProteinListColumnDisplay(ProteinListColumn column) const;