diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 491c0958a466d415a85fc71736abb0cb8f744616..139afaeb13bd66c4e691add45a605b67391035d1 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -24,11 +24,13 @@ #include <QDockWidget> #include <QSettings> #include <QFileDialog> +#include <QMessageBox> #include "mainwindow.h" #include "ui_main.h" #include "files/xpipfile.h" #include "gui/peptide_list_view/peptidelistwindow.h" +#include <pappsomspp/pappsoexception.h> void PwizLoaderThread::doMsDataFileLoad(const QString & parameter) { @@ -83,6 +85,21 @@ MainWindow::~MainWindow() } +void MainWindow::closeEvent(QCloseEvent * event) { + if (true) { + event->accept(); + } else { + event->ignore(); + } +} + +void MainWindow::viewError(QString error) { + QMessageBox::warning(this, + tr("Oops! an error occurred in XTPCPP. Dont Panic :"), error); +} + + + void MainWindow::doProteinMatchClicked(ProteinMatch * protein_match) { PeptideListWindow * peptide_window = new PeptideListWindow(this); peptide_window->setProteinMatch(_project_sp.get(), protein_match); @@ -90,23 +107,28 @@ void MainWindow::doProteinMatchClicked(ProteinMatch * protein_match) { } void MainWindow::selectXpipFile() { + try { + QSettings settings; + QString default_location = settings.value("path/xpipfile", "").toString(); - QSettings settings; - QString default_location = settings.value("path/xpipfile", "").toString(); + QString filename = QFileDialog::getOpenFileName(this, + tr("Open XPIP File"), default_location, + tr("xpip files (*.xpip);;all files (*)")); - QString filename = QFileDialog::getOpenFileName(this, - tr("Open XPIP File"), default_location, - tr("xpip files (*.xpip);;all files (*)")); + if (filename.isEmpty()) { + return; + } + QFileInfo new_xpip_file; + new_xpip_file.setFile(filename); - if (filename.isEmpty()) { - return; - } - QFileInfo new_xpip_file; - new_xpip_file.setFile(filename); - XpipFile xpip_file(new_xpip_file); + XpipFile xpip_file(new_xpip_file); - _project_sp = xpip_file.getProjectSp(); - _protein_list_window->setIdentificationGroup(_project_sp.get()->getCurrentIdentificationGroupP()); + _project_sp = xpip_file.getProjectSp(); + _protein_list_window->setIdentificationGroup(_project_sp.get()->getCurrentIdentificationGroupP()); + } + catch (pappso::PappsoException & error) { + viewError(error.qwhat()); + } } diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index 536da3dc36eaf261bc59699f70405f45a4cc140b..2bf67e3a16d5a7ac65d163adc01dd26f3b19169a 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -28,6 +28,7 @@ #include <QMainWindow> #include <QThread> #include <QFileInfo> +#include <QCloseEvent> #include <pappsomspp/types.h> #include <pappsomspp/peptide/peptide.h> #include <pappsomspp/spectrum/spectrum.h> @@ -48,6 +49,11 @@ class PwizLoaderThread : public QObject Q_OBJECT public: + +protected: + + void closeEvent(QCloseEvent *event); + public slots: void doMsDataFileLoad(const QString & parameter); @@ -72,16 +78,23 @@ public slots: // void setShape(Shape shape); signals: //void peptideChanged(pappso::PeptideSp peptide); + + +protected: -private: - Ui::Main *ui; + void closeEvent(QCloseEvent *event) override; - ProteinListWindow * _protein_list_window=nullptr; +private: + + void viewError(QString error); private : + Ui::Main *ui; ProjectSp _project_sp=nullptr; + ProteinListWindow * _protein_list_window=nullptr; + }; #endif // MAINWINDOW_H