From 0a3ed4d20b47c1820fe9d2dcfb5d165bf7d812e6 Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Thu, 18 Sep 2014 16:36:12 +0100 Subject: [PATCH] Add an about dialog based on ktikz code --- config.h.in | 1 + source/app/AboutDialog.cpp | 74 ++++++++++++++++++++++++++++++++++++++ source/app/AboutDialog.h | 39 ++++++++++++++++++++ source/app/main.cpp | 5 +-- source/app/plaYUVerApp.cpp | 20 ++++++----- source/app/plaYUVerApp.h | 3 ++ 6 files changed, 132 insertions(+), 10 deletions(-) create mode 100644 source/app/AboutDialog.cpp create mode 100644 source/app/AboutDialog.h diff --git a/config.h.in b/config.h.in index 960df62..eced5f1 100644 --- a/config.h.in +++ b/config.h.in @@ -31,6 +31,7 @@ #define PLAYUVER_VERSION_MINOR @PLAYUVER_VERSION_MINOR@ #define PLAYUVER_VERSION_PATCH @PLAYUVER_VERSION_PATCH@ #define PLAYUVER_VERSION @PLAYUVER_VERSION@ +#define PLAYUVER_VERSION_STRING "@PLAYUVER_VERSION@" /* QT definition */ diff --git a/source/app/AboutDialog.cpp b/source/app/AboutDialog.cpp new file mode 100644 index 0000000..ff6142f --- /dev/null +++ b/source/app/AboutDialog.cpp @@ -0,0 +1,74 @@ +/* This file is a part of plaYUVer project + * Copyright (C) 2014 by Luis Lucas (luisfrlucas@gmail.com) + * Joao Carreira (jfmcarreira@gmail.com) + * + * This program 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. + * + * This program 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 this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + + +/** + * \file AboutDialog.cpp + * \brief About Dialog + * Based on the work of Glad Deschrijver in KTikZ project + */ + + +#include "AboutDialog.h" +#include +#include +#include +#include +#include + +AboutDialog::AboutDialog(QWidget *parent) + : QDialog(parent) +{ + QLabel *pixmapLabel = new QLabel; + //pixmapLabel->setPixmap(QPixmap(":/icons/qtikz-128.png")); + QLabel *label = new QLabel(QString("

%1 %2

%3

%4

") + .arg(QApplication::applicationName()) + .arg(QApplication::applicationVersion()) + .arg(tr("Copyright 2014 Luis Lucas and Joao Carreira")) + .arg(tr("plaYUVer is an open-source QT based raw video player."))); + label->setWordWrap(true); + + QWidget *topWidget = new QWidget; + QHBoxLayout *topLayout = new QHBoxLayout; + topLayout->addWidget(pixmapLabel); + topLayout->addWidget(label); + topWidget->setLayout(topLayout); + + QTextEdit *textEdit = new QTextEdit(tr("

This program 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.

" + "

This program 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.

")); + textEdit->setReadOnly(true); + QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok); + connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); + + QVBoxLayout *mainLayout = new QVBoxLayout(this); + mainLayout->addWidget(topWidget); + mainLayout->addWidget(textEdit); + mainLayout->addWidget(buttonBox); + mainLayout->setSpacing(10); + buttonBox->setFocus(); + + setWindowTitle(tr("About %1").arg("playuver")); +} diff --git a/source/app/AboutDialog.h b/source/app/AboutDialog.h new file mode 100644 index 0000000..4470655 --- /dev/null +++ b/source/app/AboutDialog.h @@ -0,0 +1,39 @@ +/* This file is a part of plaYUVer project + * Copyright (C) 2014 by Luis Lucas (luisfrlucas@gmail.com) + * Joao Carreira (jfmcarreira@gmail.com) + * + * This program 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. + * + * This program 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 this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +/** + * \file AboutDialog.h + * \brief About Dialog + * Based on the work of Glad Deschrijver in KTikZ project + */ + +#ifndef __ABOUTDIALOG_H__ +#define __ABOUTDIALOG_H__ + +#include + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + AboutDialog(QWidget *parent = 0); +}; + +#endif // __ABOUTDIALOG_H__ diff --git a/source/app/main.cpp b/source/app/main.cpp index fb6dc7a..8ffc86c 100644 --- a/source/app/main.cpp +++ b/source/app/main.cpp @@ -23,6 +23,7 @@ */ #include +#include "config.h" #include "plaYUVerApp.h" #ifdef USE_FERVOR #include "fvupdater.h" @@ -36,8 +37,8 @@ using namespace plaYUVer; int main( int argc, char *argv[] ) { QApplication a( argc, argv ); - QApplication::setApplicationName("playuver"); - QApplication::setApplicationVersion("PLAYUVER_VERSION"); + QApplication::setApplicationName("PlaYUVer"); + QApplication::setApplicationVersion(PLAYUVER_VERSION_STRING); QApplication::setOrganizationName("pixlra"); QApplication::setOrganizationDomain("playuver.pixlra"); plaYUVerApp w; diff --git a/source/app/plaYUVerApp.cpp b/source/app/plaYUVerApp.cpp index dad84cb..1c7ea0c 100644 --- a/source/app/plaYUVerApp.cpp +++ b/source/app/plaYUVerApp.cpp @@ -70,7 +70,7 @@ plaYUVerApp::plaYUVerApp() readSettings(); - setWindowTitle( tr( "plaYUVer" ) ); + setWindowTitle( QApplication::applicationName() ); setWindowIcon( QIcon( ":/images/playuver.png" ) ); setUnifiedTitleAndToolBarOnMac( true ); @@ -84,6 +84,7 @@ plaYUVerApp::plaYUVerApp() setAcceptDrops( true ); mdiArea->setAcceptDrops( true ); + m_pcAboutDialog = NULL; m_pcCurrentSubWindow = NULL; } @@ -102,13 +103,16 @@ Void plaYUVerApp::parseArgs( Int argc, Char *argv[] ) Void plaYUVerApp::about() { - QString about_message; - about_message.append( "The plaYUVer is an open-source raw video player! " ); - about_message.append( "Developed by " ); - about_message.append( "João Carreira " ); - about_message.append( "and " ); - about_message.append( "Luís Lucas" ); - QMessageBox::about( this, "About plaYUVer", about_message ); + if (!m_pcAboutDialog) + m_pcAboutDialog = new AboutDialog(this); + m_pcAboutDialog->exec(); +// QString about_message; +// about_message.append( "The plaYUVer is an open-source raw video player! " ); +// about_message.append( "Developed by " ); +// about_message.append( "João Carreira " ); +// about_message.append( "and " ); +// about_message.append( "Luís Lucas" ); +// QMessageBox::about( this, "About plaYUVer", about_message ); } Void plaYUVerApp::closeEvent( QCloseEvent *event ) diff --git a/source/app/plaYUVerApp.h b/source/app/plaYUVerApp.h index 50b360e..12973df 100644 --- a/source/app/plaYUVerApp.h +++ b/source/app/plaYUVerApp.h @@ -36,6 +36,7 @@ #include "ModulesHandle.h" #include "PropertiesSidebar.h" #include "QualityMeasurementSidebar.h" +#include "AboutDialog.h" namespace plaYUVer { @@ -277,6 +278,8 @@ private: QAction *actionSelectionTool; enum eTool m_appTool; + AboutDialog* m_pcAboutDialog; + }; } // NAMESPACE