libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
httpbutton.cpp
Go to the documentation of this file.
1/**
2 * \file pappsomspp/widget/httpbutton/httpbutton.cpp
3 * \date 20/04/2021
4 * \author Olivier Langella
5 * \brief push button to trigger web browser on URL
6 */
7
8
9/*******************************************************************************
10 * Copyright (c) 2021 Olivier Langella
11 *<Olivier.Langella@universite-paris-saclay.fr>.
12 *
13 * This file is part of the PAPPSOms++ library.
14 *
15 * PAPPSOms++ is free software: you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation, either version 3 of the License, or
18 * (at your option) any later version.
19 *
20 * PAPPSOms++ is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
27 *
28 ******************************************************************************/
29
30#include "httpbutton.h"
31#include "../../utils.h"
32
33#include <QDebug>
34#include <QDesktopServices>
35
36using namespace pappso;
37
38HttpButton::HttpButton(QWidget *parent) : QPushButton(parent)
39{
40 qDebug();
41}
42
46
47void
49{
50 if(!text().isEmpty())
51 {
52 if(text().startsWith("MOD:"))
53 {
54 QDesktopServices::openUrl(getOlsUrl(this->text()));
55 // qDebug() << getOlsUrl(this->text());
56 }
57 else if(text().startsWith("PubMed:"))
58 {
59 QDesktopServices::openUrl(getPubMedUrl(this->text()));
60 // qDebug() << getPubMedUrl(this->text());
61 }
62 else if(text().startsWith("RESID:"))
63 {
64 QDesktopServices::openUrl(getRESIDUrl(this->text()));
65 // qDebug() << getPubMedUrl(this->text());
66 }
67 else if(text().startsWith("ChEBI:"))
68 {
69 QDesktopServices::openUrl(getChEBIUrl(this->text()));
70 // qDebug() << getPubMedUrl(this->text());
71 }
72 else if(text().startsWith("Unimod:"))
73 {
74 QDesktopServices::openUrl(getUnimodUrl(this->text()));
75 // qDebug() << getPubMedUrl(this->text());
76 }
77 else
78 {
79 qDebug() << "unknown" << this->text();
80 }
81 }
82 QPushButton::mousePressEvent(e);
83}
84
85void
86pappso::HttpButton::setText(const QString &text)
87{
88 QPushButton::setText(text);
89}
90
91
92const QUrl
93HttpButton::getOlsUrl(QString psimod_accession)
94{
95
96 QString iri(QString("http://purl.obolibrary.org/obo/%1")
97 .arg(psimod_accession.replace(":", "_")));
98 QUrl url(
99 QString("http://www.ebi.ac.uk/ols/ontologies/mod/terms?iri=%1").arg(iri));
100 return url;
101}
102
103const QUrl
104HttpButton::getPubMedUrl(QString accession)
105{
106 // https://pubmed.ncbi.nlm.nih.gov/18688235/
107 QUrl url(QString("https://pubmed.ncbi.nlm.nih.gov/%1/")
108 .arg(accession.replace("PubMed:", "")));
109 return url;
110}
111
112
113const QUrl
114HttpButton::getRESIDUrl(QString accession)
115{
116 // https://annotation.dbi.udel.edu/cgi-bin/resid?id=AA0470
117 QUrl url(QString("https://annotation.dbi.udel.edu/cgi-bin/resid?id=%1")
118 .arg(accession.replace("RESID:", "")));
119 return url;
120}
121
122
123const QUrl
124HttpButton::getChEBIUrl(QString accession)
125{
126 // ChEBI:37629
127 // https://www.ebi.ac.uk/chebi/searchId.do?chebiId=37628
128 QUrl url(QString("https://www.ebi.ac.uk/chebi/searchId.do?chebiId=%1")
129 .arg(accession.replace("ChEBI:", "")));
130 return url;
131}
132
133
134const QUrl
135HttpButton::getUnimodUrl(QString accession)
136{
137 // Unimod:23
138 // http://www.unimod.org/modifications_view.php?editid1=23
139 QUrl url(QString("http://www.unimod.org/modifications_view.php?editid1=%1")
140 .arg(accession.replace("Unimod:", "")));
141 return url;
142}
const QUrl getUnimodUrl(QString accession)
void setText(const QString &text)
void mousePressEvent(QMouseEvent *e) override
const QUrl getRESIDUrl(QString accession)
const QUrl getChEBIUrl(QString accession)
HttpButton(QWidget *parent=nullptr)
const QUrl getOlsUrl(QString psimod_accession)
const QUrl getPubMedUrl(QString accession)
push button to trigger web browser on URL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39