subsurface/qt-ui/about.cpp
Lubomir I. Ivanov 880b8394d2 Close child windows and dialogs with main window
Most child windows should be closed with the main application
window otherwise if left open and if making specific
modifictions could potentially cause a SIGSEGV.

To solve that we mark all custom windows/dialogs with
the Qt::WA_QuitOnClose attribute on instance creation.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-28 20:23:59 +08:00

40 lines
1.4 KiB
C++

#include "about.h"
#include "ui_about.h"
#include "../version.h"
#include <QDebug>
#include <QDialogButtonBox>
#include <QNetworkReply>
#include <qdesktopservices.h>
SubsurfaceAbout *SubsurfaceAbout::instance()
{
static SubsurfaceAbout *self = new SubsurfaceAbout();
self->setAttribute(Qt::WA_QuitOnClose, false);
return self;
}
SubsurfaceAbout::SubsurfaceAbout(QWidget* parent, Qt::WindowFlags f)
: ui( new Ui::SubsurfaceAbout())
{
ui->setupUi(this);
ui->aboutLabel->setText(tr("<span style='font-size: 18pt; font-weight: bold;'>" \
"Subsurface " VERSION_STRING "</span><br><br>" \
"Multi-platform divelog software in C<br>" \
"<span style='font-size: 8pt'>Linus Torvalds, Dirk Hohndel, and others, 2011, 2012, 2013</span>"));
licenseButton = new QPushButton(tr("&License"));
websiteButton = new QPushButton(tr("&Website"));
ui->buttonBox->addButton(licenseButton, QDialogButtonBox::ActionRole);
ui->buttonBox->addButton(websiteButton, QDialogButtonBox::ActionRole);
connect(licenseButton, SIGNAL(clicked(bool)), this, SLOT(licenseClicked()));
connect(websiteButton, SIGNAL(clicked(bool)), this, SLOT(websiteClicked()));
}
void SubsurfaceAbout::licenseClicked(void)
{
QDesktopServices::openUrl(QUrl("http://www.gnu.org/licenses/gpl-2.0.txt"));
}
void SubsurfaceAbout::websiteClicked(void)
{
QDesktopServices::openUrl(QUrl("http://subsurface.hohndel.org"));
}