From e44804ad5cc051c6002fda1ef692ca080af819be Mon Sep 17 00:00:00 2001 From: Olivier Langella <Olivier.Langella@moulon.inra.fr> Date: Mon, 20 Mar 2017 16:03:20 +0100 Subject: [PATCH] error message OK, close event handled --- src/gui/mainwindow.cpp | 48 ++++++++++++++++++++++++++++++------------ src/gui/mainwindow.h | 19 ++++++++++++++--- 2 files changed, 51 insertions(+), 16 deletions(-) diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 491c0958..139afaeb 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 536da3dc..2bf67e3a 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 -- GitLab