An SubsurfaceAbout class cleanup. Main change is that now SubsurfaceAbout doesn't have instance object, but it constructs and destructs dynamically.
If small patch it's acceptable, and continue with this pattern by remove other instance() members(around 10). br, Boris..
From b628527c190e4a898b3bd13747cb1c2dc1dfc56c Mon Sep 17 00:00:00 2001 From: Boris Barbulovski <[email protected]> Date: Sat, 8 Feb 2014 08:35:39 +0100 Subject: [PATCH] * Remove the static SubsurfaceAbout::instance() class member, and constructing/destructing about dialog on demand. * Other small aboutbox cleanups. Signed-off-by: Boris Barbulovski <[email protected]> --- qt-ui/about.cpp | 27 ++++----------- qt-ui/about.h | 9 ++--- qt-ui/about.ui | 93 ++++++++++++++++++++++++++++++++-------------------- qt-ui/mainwindow.cpp | 6 ++-- 4 files changed, 72 insertions(+), 63 deletions(-) diff --git a/qt-ui/about.cpp b/qt-ui/about.cpp index 0a6489d..804d73b 100644 --- a/qt-ui/about.cpp +++ b/qt-ui/about.cpp @@ -1,39 +1,26 @@ #include "about.h" #include "ssrf-version.h" -#include "mainwindow.h" -#include <QDebug> -#include <QDialogButtonBox> -#include <QNetworkReply> -#include <qdesktopservices.h> - -SubsurfaceAbout *SubsurfaceAbout::instance() -{ - static SubsurfaceAbout *self = new SubsurfaceAbout(mainWindow()); - self->setAttribute(Qt::WA_QuitOnClose, false); - return self; -} +#include <QDesktopServices> +#include <QUrl> SubsurfaceAbout::SubsurfaceAbout(QWidget* parent, Qt::WindowFlags f) { ui.setupUi(this); + + setWindowModality(Qt::ApplicationModal); + ui.aboutLabel->setText(tr("<span style='font-size: 18pt; font-weight: bold;'>" \ "Subsurface %1 </span><br><br>" \ "Multi-platform divelog software<br>" \ "<span style='font-size: 8pt'>Linus Torvalds, Dirk Hohndel, and others, 2011-2014</span>").arg(VERSION_STRING)); - 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) +void SubsurfaceAbout::on_licenseButton_clicked() { QDesktopServices::openUrl(QUrl("http://www.gnu.org/licenses/gpl-2.0.txt")); } -void SubsurfaceAbout::websiteClicked(void) +void SubsurfaceAbout::on_websiteButton_clicked() { QDesktopServices::openUrl(QUrl("http://subsurface.hohndel.org")); } diff --git a/qt-ui/about.h b/qt-ui/about.h index 06dc30c..0a4c8dd 100644 --- a/qt-ui/about.h +++ b/qt-ui/about.h @@ -9,14 +9,11 @@ class SubsurfaceAbout : public QDialog { Q_OBJECT public: - static SubsurfaceAbout* instance(); + explicit SubsurfaceAbout(QWidget* parent = 0, Qt::WindowFlags f = 0); private slots: - void licenseClicked(); - void websiteClicked(); + void on_licenseButton_clicked(); + void on_websiteButton_clicked(); private: - explicit SubsurfaceAbout(QWidget* parent = 0, Qt::WindowFlags f = 0); - QPushButton *licenseButton; - QPushButton *websiteButton; Ui::SubsurfaceAbout ui; }; diff --git a/qt-ui/about.ui b/qt-ui/about.ui index 71f0acb..0c1735e 100644 --- a/qt-ui/about.ui +++ b/qt-ui/about.ui @@ -29,22 +29,7 @@ <property name="modal"> <bool>true</bool> </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>20</number> - </property> - <property name="leftMargin"> - <number>30</number> - </property> - <property name="topMargin"> - <number>30</number> - </property> - <property name="rightMargin"> - <number>30</number> - </property> - <property name="bottomMargin"> - <number>20</number> - </property> + <layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0"> <item> <widget class="QLabel" name="subsurfaceIcon"> <property name="text"> @@ -61,7 +46,7 @@ <item> <widget class="QLabel" name="aboutLabel"> <property name="text"> - <string></string> + <string/> </property> <property name="textFormat"> <enum>Qt::RichText</enum> @@ -75,17 +60,55 @@ </widget> </item> <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Close</set> - </property> - <property name="centerButtons"> - <bool>true</bool> - </property> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="licenseButton"> + <property name="text"> + <string>&License</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="websiteButton"> + <property name="text"> + <string>&Website</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="closeButton"> + <property name="text"> + <string>&Close</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> </item> </layout> </widget> @@ -94,18 +117,18 @@ </resources> <connections> <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> + <sender>closeButton</sender> + <signal>clicked()</signal> <receiver>SubsurfaceAbout</receiver> - <slot>close()</slot> + <slot>accept()</slot> <hints> <hint type="sourcelabel"> - <x>227</x> - <y>437</y> + <x>290</x> + <y>411</y> </hint> <hint type="destinationlabel"> - <x>227</x> - <y>224</y> + <x>340</x> + <y>409</y> </hint> </hints> </connection> diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 6d7123a..73191da 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -503,7 +503,9 @@ void MainWindow::on_actionInputPlan_triggered() void MainWindow::on_actionAboutSubsurface_triggered() { - SubsurfaceAbout::instance()->show(); + SubsurfaceAbout dlg(this); + + dlg.exec(); } void MainWindow::on_actionUserManual_triggered() @@ -900,4 +902,4 @@ void MainWindow::on_profSAC_clicked(bool triggered) TOOLBOX_PREF_PROFILE(show_sac); } -#undef TOOLBOX_PREF_PROFILE \ No newline at end of file +#undef TOOLBOX_PREF_PROFILE -- 1.8.3.2
_______________________________________________ subsurface mailing list [email protected] http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface
