diff options
Diffstat (limited to 'lib/about')
| -rw-r--r-- | lib/about/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | lib/about/aboutdialog.cpp | 68 | ||||
| -rw-r--r-- | lib/about/aboutdialog.h | 31 | ||||
| -rw-r--r-- | lib/about/aboutdialog.ui | 105 | 
4 files changed, 219 insertions, 0 deletions
diff --git a/lib/about/CMakeLists.txt b/lib/about/CMakeLists.txt new file mode 100644 index 0000000..56cd646 --- /dev/null +++ b/lib/about/CMakeLists.txt @@ -0,0 +1,15 @@ +# Find includes in corresponding build directories +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +# Instruct CMake to run moc automatically when needed. +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) + +add_library(about +    aboutdialog.cpp +    aboutdialog.h +    aboutdialog.ui +) + +target_link_libraries(about Qt5::Widgets) diff --git a/lib/about/aboutdialog.cpp b/lib/about/aboutdialog.cpp new file mode 100644 index 0000000..ff4200f --- /dev/null +++ b/lib/about/aboutdialog.cpp @@ -0,0 +1,68 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: https://neueland.iserlohn-fortress.net/smolbote.hg + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#include "aboutdialog.h" +#include "ui_aboutdialog.h" +#include <QtWebEngine/QtWebEngineVersion> +#include <boost/version.hpp> + +// compiler +// clang also defines __GNUC__, so we need to check for clang first +#if defined(__clang__) +#define compiler "Clang " __clang_version__ +#elif defined(__GNUC__) +#define compiler "GCC " __VERSION__ +#else +#define compiler "unknown compiler"; +#endif + +AboutDialog::AboutDialog(QWidget *parent) +    : QDialog(parent) +    , ui(new Ui::AboutDialog) +{ +    setAttribute(Qt::WA_DeleteOnClose, true); +    ui->setupUi(this); + +    ui->icon->setPixmap(qApp->windowIcon().pixmap(72, 72)); + +    auto *aboutLabel = new QLabel(this); +    aboutLabel->setWordWrap(true); +    aboutLabel->setText(tr("<h2>smolbote %1</h2>" +                           "<p><i>yet another no-frills browser</i></p>").arg(qApp->applicationVersion())); +    ui->toolBox->addItem(aboutLabel, tr("About")); + +    auto *licenseLabel = new QLabel(this); +    licenseLabel->setWordWrap(true); +    licenseLabel->setText(tr("<p>Copyright 2017 - 2018 aqua</p>" +                             "<p>This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3:" +                             "<ul>" +                             "<li> the freedom to use the software for any purpose,</li>" +                             "<li> the freedom to change the software to suit your needs,</li>" +                             "<li> the freedom to share the software with anyone,</li>" +                             "<li> the freedom to share the changes you make, and</li>" +                             "<li> the responsibility to grant the same freedoms when sharing the software.</li>" +                             "</ul>" +                             "<p>This is a short summary; you can find the full license text in LICENSE.md.</p>")); +    ui->toolBox->addItem(licenseLabel, tr("License")); + +    auto *detailsLabel = new QLabel(this); +    detailsLabel->setWordWrap(true); +    detailsLabel->setText(tr("<p>Compiled with " compiler "</p>" +                          "<p><ul>" +                          "<li>Qt " QT_VERSION_STR "</li>" +                          "<li>QtWebEngine " QTWEBENGINE_VERSION_STR "</li>" +                          "<li>Boost " BOOST_LIB_VERSION " </li>" +                          "</ul></p>")); +    ui->toolBox->addItem(detailsLabel, tr("Details")); + +} + +AboutDialog::~AboutDialog() +{ +    delete ui; +} diff --git a/lib/about/aboutdialog.h b/lib/about/aboutdialog.h new file mode 100644 index 0000000..265f3c9 --- /dev/null +++ b/lib/about/aboutdialog.h @@ -0,0 +1,31 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: https://neueland.iserlohn-fortress.net/smolbote.hg + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef SMOLBOTE_ABOUTDIALOG_H +#define SMOLBOTE_ABOUTDIALOG_H + +#include <QDialog> + +namespace Ui +{ +class AboutDialog; +} + +class AboutDialog : public QDialog +{ +    Q_OBJECT + +public: +    explicit AboutDialog(QWidget *parent = nullptr); +    ~AboutDialog() override; + +private: +    Ui::AboutDialog *ui; +}; + +#endif // SMOLBOTE_ABOUTDIALOG_H diff --git a/lib/about/aboutdialog.ui b/lib/about/aboutdialog.ui new file mode 100644 index 0000000..f7fe21e --- /dev/null +++ b/lib/about/aboutdialog.ui @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>AboutDialog</class> + <widget class="QDialog" name="AboutDialog"> +  <property name="geometry"> +   <rect> +    <x>0</x> +    <y>0</y> +    <width>500</width> +    <height>600</height> +   </rect> +  </property> +  <property name="windowTitle"> +   <string>About</string> +  </property> +  <layout class="QHBoxLayout" name="horizontalLayout"> +   <item> +    <layout class="QVBoxLayout" name="verticalLayout_2"> +     <item> +      <widget class="QLabel" name="icon"> +       <property name="minimumSize"> +        <size> +         <width>72</width> +         <height>72</height> +        </size> +       </property> +       <property name="text"> +        <string>TextLabel</string> +       </property> +      </widget> +     </item> +     <item> +      <spacer name="verticalSpacer"> +       <property name="orientation"> +        <enum>Qt::Vertical</enum> +       </property> +       <property name="sizeHint" stdset="0"> +        <size> +         <width>20</width> +         <height>40</height> +        </size> +       </property> +      </spacer> +     </item> +    </layout> +   </item> +   <item> +    <layout class="QVBoxLayout" name="verticalLayout"> +     <item> +      <widget class="QToolBox" name="toolBox"> +       <property name="currentIndex"> +        <number>-1</number> +       </property> +      </widget> +     </item> +     <item> +      <widget class="QDialogButtonBox" name="buttonBox"> +       <property name="orientation"> +        <enum>Qt::Horizontal</enum> +       </property> +       <property name="standardButtons"> +        <set>QDialogButtonBox::Close</set> +       </property> +      </widget> +     </item> +    </layout> +   </item> +  </layout> + </widget> + <resources/> + <connections> +  <connection> +   <sender>buttonBox</sender> +   <signal>accepted()</signal> +   <receiver>AboutDialog</receiver> +   <slot>accept()</slot> +   <hints> +    <hint type="sourcelabel"> +     <x>248</x> +     <y>254</y> +    </hint> +    <hint type="destinationlabel"> +     <x>157</x> +     <y>274</y> +    </hint> +   </hints> +  </connection> +  <connection> +   <sender>buttonBox</sender> +   <signal>rejected()</signal> +   <receiver>AboutDialog</receiver> +   <slot>reject()</slot> +   <hints> +    <hint type="sourcelabel"> +     <x>316</x> +     <y>260</y> +    </hint> +    <hint type="destinationlabel"> +     <x>286</x> +     <y>274</y> +    </hint> +   </hints> +  </connection> + </connections> +</ui>  | 
