From 51d8b2a2bc894dfe2bfd270a5687fcf619aa35c4 Mon Sep 17 00:00:00 2001 From: Claveau Joshua Date: Sat, 18 Jan 2020 16:25:30 +0100 Subject: [PATCH] Revamp the aboutQet dialog with Qt designer and add a new tab "libraries" --- sources/qetapp.cpp | 9 +- sources/ui/aboutqetdialog.cpp | 188 +++++++++++++ sources/ui/aboutqetdialog.h | 52 ++++ sources/ui/aboutqetdialog.ui | 493 ++++++++++++++++++++++++++++++++++ 4 files changed, 738 insertions(+), 4 deletions(-) create mode 100644 sources/ui/aboutqetdialog.cpp create mode 100644 sources/ui/aboutqetdialog.h create mode 100644 sources/ui/aboutqetdialog.ui diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp index b09bee077..05a2312a9 100644 --- a/sources/qetapp.cpp +++ b/sources/qetapp.cpp @@ -33,6 +33,7 @@ #include "qetmessagebox.h" #include "projectview.h" #include "elementpicturefactory.h" +#include "aboutqetdialog.h" #include #include @@ -1502,12 +1503,12 @@ void QETApp::configureQET() { */ void QETApp::aboutQET() { - AboutQET aq(qApp->activeWindow()); - + //AboutQET aq(qApp->activeWindow()); + AboutQETDialog aqd(qApp->activeWindow()); #ifdef Q_OS_MACOS - aq.setWindowFlags(Qt::Sheet); + aqd.setWindowFlags(Qt::Sheet); #endif - aq.exec(); + aqd.exec(); } /** diff --git a/sources/ui/aboutqetdialog.cpp b/sources/ui/aboutqetdialog.cpp new file mode 100644 index 000000000..e0baf08cd --- /dev/null +++ b/sources/ui/aboutqetdialog.cpp @@ -0,0 +1,188 @@ +/* + Copyright 2006-2019 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "aboutqetdialog.h" +#include "ui_aboutqetdialog.h" +#include "qet.h" + +AboutQETDialog::AboutQETDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::AboutQETDialog) +{ + ui->setupUi(this); + setAbout(); + setAuthors(); + setTranslators(); + setContributors(); + setVersion(); + setLibraries(); + setLicence(); +} + +AboutQETDialog::~AboutQETDialog() +{ + delete ui; +} + +void AboutQETDialog::setAbout() +{ + QString str = tr("QElectroTech, une application de réalisation de schémas électriques.", "about tab, description line") + + "

" + + tr("2006-2019 Les développeurs de QElectroTech", "about tab, developers line") + + "

" + "https://qelectrotech.org/" + "

" + + tr("Contact : qet@lists.tuxfamily.org", "about tab, contact line"); + + ui->m_about_label->setText(str); +} + +void AboutQETDialog::setAuthors() +{ + addAuthor(ui->m_author_label, "Benoît Ansieau", "benoit@qelectrotech.org", tr("Idée originale")); + addAuthor(ui->m_author_label, "Laurent Trinques", "scorpio@qelectrotech.org", tr("Développement")); + addAuthor(ui->m_author_label, "Joshua Claveau", "Joshua@qelectrotech.org", tr("Développement")); + addAuthor(ui->m_author_label, "Davi Fochi", "davi@fochi.com.br", tr("Développement")); + addAuthor(ui->m_author_label, "Ronny Desmedt", "r.desmedt@live.be", tr("Convertisseur DXF")); + addAuthor(ui->m_author_label, "Raul Roda", "raulroda8@gmail.com", tr("Plugin Bornier")); + addAuthor(ui->m_author_label, "Abhishek Bansal", "abhishek@qelectrotech.org", tr("Développement")); +} + +void AboutQETDialog::setTranslators() +{ + addAuthor(ui->m_translators_label, "Alfredo Carreto", "electronicos_mx@yahoo.com.mx", tr("Traduction en espagnol")); + addAuthor(ui->m_translators_label, "Edgar Robles Najar", "tgo.edrobles@gmail.com", tr("Traduction en espagnol")); + addAuthor(ui->m_translators_label, "Yuriy Litkevich", "yuriy@qelectrotech.org", tr("Traduction en russe")); + addAuthor(ui->m_translators_label, "Evgeny Kozlov", "Evgeny.Kozlov.mailbox@gmail.com",tr("Traduction en russe")); + addAuthor(ui->m_translators_label, "José Carlos Martins", "jose@qelectrotech.org", tr("Traduction en portugais")); + addAuthor(ui->m_translators_label, "Pavel Fric", "pavelfric@seznam.cz", tr("Traduction en tchèque")); + addAuthor(ui->m_translators_label, "Paweł Śmiech", "pawel32640@gmail.com", tr("Traduction en polonais")); + addAuthor(ui->m_translators_label, "Markus Budde & Jonas Stein & Noah Braden", "news@jonasstein.de", tr("Traduction en allemand")); + addAuthor(ui->m_translators_label, "Nuri", "nuri@qelectrotech.org", tr("Traduction en allemand")); + addAuthor(ui->m_translators_label, "Gabi Mandoc", "gabriel.mandoc@gic.ro", tr("Traduction en roumain")); + addAuthor(ui->m_translators_label, "Alessandro Conti & Silvio", "silvio@qelectrotech.org", tr("Traduction en italien")); + addAuthor(ui->m_translators_label, "Mohamed Souabni", "souabnimohamed@yahoo.fr", tr("Traduction en arabe")); + addAuthor(ui->m_translators_label, "Antun Maraković", "antun.marakovic@lolaribar.hr", tr("Traduction en croate")); + addAuthor(ui->m_translators_label, "Eduard Amorós", "amoros@marmenuda.com", tr("Traduction en catalan")); + addAuthor(ui->m_translators_label, "Nikos Papadopoylos", "231036448@freemail.gr", tr("Traduction en grec")); + addAuthor(ui->m_translators_label, "Yannis Gyftomitros", "yang@hellug.gr", tr("Traduction en grec")); + addAuthor(ui->m_translators_label, "Paul Van Deelen", "shooter@home.nl", tr("Traduction en néerlandais")); + addAuthor(ui->m_translators_label, "Dik Leenheer", "dleenheer@suzerein.nl", tr("Traduction en néerlandais")); + addAuthor(ui->m_translators_label, "Ronny Desmedt", "r.desmedt@live.be", tr("Traduction en flamand")); + addAuthor(ui->m_translators_label, "OSS au2mation", "OSSau2mation@OSSau2mation.dk", tr("Traduction en danois")); + addAuthor(ui->m_translators_label, "Hilario Silveira", "hilario@soliton.com.br", tr("Traduction en brézilien")); + addAuthor(ui->m_translators_label, "Aziz Karabudak", "aziz.karabudak@argevi.com", tr("Traduction en Turc")); + addAuthor(ui->m_translators_label, "Emir Izmiroglu", "emirizmiroglu@gmail.com", tr("Traduction en Turc")); + addAuthor(ui->m_translators_label, "Gábor Gubányi", "gubanyig@gmail.com", tr("Traduction en hongrois")); +} + +void AboutQETDialog::setContributors() +{ + addAuthor(ui->m_contrib_label, "Remi Collet", "remi@fedoraproject.org", tr("Paquets Fedora et Red Hat")); + addAuthor(ui->m_contrib_label, "David Geiger", "david.david@mageialinux-online.org", tr("Paquets Mageia")); + addAuthor(ui->m_contrib_label, "Laurent Trinques", "scorpio@qelectrotech.org", tr("Paquets Debian")); + addAuthor(ui->m_contrib_label, "Denis Briand", "debian@denis-briand.fr", tr("Paquets Debian")); + addAuthor(ui->m_contrib_label, "W. Martin Borgert", "debacle@debian.org", tr("Paquets Debian")); + addAuthor(ui->m_contrib_label, "Markos Chandras", "hwoarang@gentoo.org.", tr("Paquets Gentoo")); + addAuthor(ui->m_contrib_label, "Mbit", "", tr("Paquets Gentoo")); + addAuthor(ui->m_contrib_label, "Elbert", "", tr("Paquets OS/2")); + addAuthor(ui->m_contrib_label, "zloidemon", "", tr("Paquets FreeBSD")); + addAuthor(ui->m_contrib_label, "Yoann Varenne", "yoann@tuxfamily.org", tr("Paquets MAC OS X")); + addAuthor(ui->m_contrib_label, "Chipsterjulien", "", tr("Paquets Archlinux AUR")); + addAuthor(ui->m_contrib_label, "Nuno Pinheiro", "nuno@nuno-icons.com", tr("Icônes")); + addAuthor(ui->m_contrib_label, "Cyril Frausti", "cyril@qelectrotech.org", tr("Développement")); + addAuthor(ui->m_contrib_label, "Fernando Mateu Palou de Comasema", "fdomateu@gmail.com", tr("Documentation")); + addAuthor(ui->m_contrib_label, "Arun Kishore Eswara", "eswara.arun@gmail.com", tr("Documentation")); + addAuthor(ui->m_contrib_label, "René Negre", "runsys@qelectrotech.org", tr("Développement")); + addAuthor(ui->m_contrib_label, "Nuri", "nuri@qelectrotech.org", tr("Collection d'éléments")); + addAuthor(ui->m_contrib_label, "Raul Roda", "", tr("Python plugin qet-tb-generator")); + addAuthor(ui->m_contrib_label, "Maximilian Federle", "", tr("Paquets Snap")); +} + +void AboutQETDialog::setVersion() +{ + QString str = "QElectroTech V " + QET::displayedVersion + ""; + QString compilation_info = "
" + tr("Compilation : "); +#ifdef __GNUC__ +#ifdef __APPLE_CC__ + compilation_info += " CLANG " + QString(__clang_version__ ); + compilation_info += "
Built with Qt " + QString(QT_VERSION_STR); + compilation_info += " - Date : " + QString(__DATE__); + compilation_info += " : " + QString(__TIME__); + compilation_info += "
Run with Qt "+ QString(qVersion()); + compilation_info += " using" + QString(" %1 thread(s)").arg(QThread::idealThreadCount()); + compilation_info += "
" " OS : " + QString(QSysInfo::kernelType()); + compilation_info += " - " + QString(QSysInfo::currentCpuArchitecture()); + compilation_info += " - Version : " + QString(QSysInfo::prettyProductName()); + compilation_info += "
" " - Kernel : " + QString(QSysInfo::kernelVersion()); +#else + compilation_info += " GCC " + QString(__VERSION__); + compilation_info += "
Built with Qt " + QString(QT_VERSION_STR); + compilation_info += " - Date : " + QString(__DATE__); + compilation_info += " : " + QString(__TIME__); + compilation_info += "
Run with Qt "+ QString(qVersion()); + compilation_info += " using" + QString(" %1 thread(s)").arg(QThread::idealThreadCount()); + compilation_info += "
" " OS : " + QString(QSysInfo::kernelType()); + compilation_info += " - " + QString(QSysInfo::currentCpuArchitecture()); + compilation_info += " - Version : " + QString(QSysInfo::prettyProductName()); + compilation_info += "
" " - Kernel : " + QString(QSysInfo::kernelVersion()); +#endif +#endif + ui->m_version_label->setText(str + compilation_info); +} + +void AboutQETDialog::setLibraries() +{ + addLibrary(ui->m_libraries_label, "KDE lib", "https://api.kde.org"); + addLibrary(ui->m_libraries_label, "Single application", "https://github.com/itay-grudev/SingleApplication"); + addLibrary(ui->m_libraries_label, "pugixml", "https://pugixml.org"); +} + +void AboutQETDialog::setLicence() +{ + ui->m_license_text_edit->setPlainText(QET::license()); +} + +/** + * @brief AboutQETDialog::addAuthor + * Adds a person to the list of authors + * @param label : QLabel which will add the person + * @param name : Name of person + * @param email : E-mail address of the person + * @param work : Function / work done by the person + */ +void AboutQETDialog::addAuthor(QLabel *label, const QString &name, const QString &email, const QString &work) +{ + QString new_text = label->text(); + + QString author_template = "%1 : %2 <%3>‎

"; + + // Add the function of the person + new_text += author_template.arg(work).arg(name).arg(email); + label->setText(new_text); +} + +void AboutQETDialog::addLibrary(QLabel *label, const QString &name, const QString &link) +{ + QString new_text = label->text(); + + QString Library_template = "%1 : <%3>‎

"; + + // Add the function of the person + new_text += Library_template.arg(name).arg(link); + label->setText(new_text); +} diff --git a/sources/ui/aboutqetdialog.h b/sources/ui/aboutqetdialog.h new file mode 100644 index 000000000..063d4aab6 --- /dev/null +++ b/sources/ui/aboutqetdialog.h @@ -0,0 +1,52 @@ +/* + Copyright 2006-2019 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef ABOUTQETDIALOG_H +#define ABOUTQETDIALOG_H + +#include + +class QLabel; + +namespace Ui { + class AboutQETDialog; +} + +class AboutQETDialog : public QDialog +{ + Q_OBJECT + + public: + explicit AboutQETDialog(QWidget *parent = nullptr); + ~AboutQETDialog(); + + private: + void setAbout(); + void setAuthors(); + void setTranslators(); + void setContributors(); + void setVersion(); + void setLibraries(); + void setLicence(); + void addAuthor(QLabel *label, const QString &name, const QString &email, const QString &work); + void addLibrary(QLabel *label, const QString &name, const QString &link); + + private: + Ui::AboutQETDialog *ui; +}; + +#endif // ABOUTQETDIALOG_H diff --git a/sources/ui/aboutqetdialog.ui b/sources/ui/aboutqetdialog.ui new file mode 100644 index 000000000..87f60a446 --- /dev/null +++ b/sources/ui/aboutqetdialog.ui @@ -0,0 +1,493 @@ + + + AboutQETDialog + + + + 0 + 0 + 700 + 500 + + + + + 0 + 0 + + + + À propos de QElectrotech + + + + + + 0 + + + + À propos + + + + + + + + + Qt::RichText + + + Qt::AlignCenter + + + true + + + + + + + + Auteurs + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + 0 + 0 + 676 + 420 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Qt::RichText + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Traducteurs + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + 0 + 0 + 676 + 420 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Qt::RichText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Contributeurs + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + 0 + 0 + 676 + 420 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Qt::RichText + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Version + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Qt::RichText + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + Bibliothèques + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + 0 + 0 + 676 + 420 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Qt::RichText + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Accord de licence + + + + + + Ce programme est sous licence GNU/GPL. + + + + + + + true + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + buttonBox + accepted() + AboutQETDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + AboutQETDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +