From b6ffd5a332b6b21fdba9937fa3a0274556a09cdf Mon Sep 17 00:00:00 2001 From: Tobias Markmann Date: Tue, 1 Sep 2015 18:09:56 +0200 Subject: Add close button to about dialog for Linux desktops The default Debian 7 desktop uses window decorations for dialog windows that does not have close window buttons at the top. This commit adds a dedicated close button to the about window. This button is *not* added on Windows and OS X. Test-Information: Tested looks and function on OS X 10.9.5 with Qt 5.4.2 and Debian 7 with Qt 5.3.2. Change-Id: Ia363f66666eb88d43834ab0556f7b06efd3cedef diff --git a/Swift/QtUI/QtAboutWidget.cpp b/Swift/QtUI/QtAboutWidget.cpp index 3de95f4..7145384 100644 --- a/Swift/QtUI/QtAboutWidget.cpp +++ b/Swift/QtUI/QtAboutWidget.cpp @@ -1,20 +1,22 @@ /* - * Copyright (c) 2010 Isode Limited. + * Copyright (c) 2010-2015 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ -#include "Swift/QtUI/QtAboutWidget.h" +#include #include +#include #include #include -#include -#include #include #include -#include #include +#include +#include + +#include namespace Swift { @@ -50,11 +52,26 @@ QtAboutWidget::QtAboutWidget() : QDialog() { mainLayout->addWidget(new QLabel(QString("
") + QString(tr("Using the English translation by\n%1")).arg(QCoreApplication::translate("TRANSLATION_INFO", "TRANSLATION_AUTHOR")).replace("\n", "
") + "
", this)); } QCoreApplication::translate("TRANSLATION_INFO", "TRANSLATION_LICENSE", "This string contains the license under which this translation is licensed. We ask you to license the translation under the BSD license. Please read http://www.opensource.org/licenses/bsd-license.php, and if you agree to release your translation under this license, use the following (untranslated) text: 'This translation is licensed under the BSD License. See http://www.opensource.org/licenses/bsd-license.php'"); - +#if defined(SWIFTEN_PLATFORM_WINDOWS) || defined(SWIFTEN_PLATFORM_MACOSX) QPushButton* licenseButton = new QPushButton(tr("View License"), this); mainLayout->addWidget(licenseButton); connect(licenseButton, SIGNAL(clicked()), this, SLOT(handleLicenseClicked())); +#else + // Some Linux desktops have dialog window decorations without close window buttons. + // This code adds a dedicated button to close the about window dialog. + QHBoxLayout* buttonLayout = new QHBoxLayout(); + mainLayout->addLayout(buttonLayout); + + QPushButton* licenseButton = new QPushButton(tr("View License"), this); + buttonLayout->addWidget(licenseButton); + connect(licenseButton, SIGNAL(clicked()), this, SLOT(handleLicenseClicked())); + + buttonLayout->addItem(new QSpacerItem(20,20)); + QPushButton* closeButton = new QPushButton(tr("Close"), this); + buttonLayout->addWidget(closeButton); + connect(closeButton, SIGNAL(clicked()), this, SLOT(accept())); +#endif setFixedSize(minimumSizeHint()); } -- cgit v0.10.2-6-g49f6