File indexing completed on 2024-05-05 04:47:19

0001 /****************************************************************************************
0002  * Copyright (c) 2007 Urs Wolfer <uwolfer at kde.org>                                   *
0003  * Copyright (c) 2008 Friedrich W. H. Kossebau <kossebau@kde.org>                       *
0004  * Copyright (c) 2009 Téo Mrnjavac <teo@kde.org>                                        *
0005  *                                                                                      *
0006  * Parts of this class have been take from the KAboutApplication class, which was       *
0007  * Copyright (c) 2000 Waldo Bastian (bastian@kde.org) and Espen Sand (espen@kde.org)    *
0008  *                                                                                      *
0009  * This program is free software; you can redistribute it and/or modify it under        *
0010  * the terms of the GNU General Public License as published by the Free Software        *
0011  * Foundation; either version 2 of the License, or (at your option) any later           *
0012  * version.                                                                             *
0013  *                                                                                      *
0014  * This program is distributed in the hope that it will be useful, but WITHOUT ANY      *
0015  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A      *
0016  * PARTICULAR PURPOSE. See the GNU General Public License for more details.             *
0017  *                                                                                      *
0018  * You should have received a copy of the GNU General Public License along with         *
0019  * this program.  If not, see <http://www.gnu.org/licenses/>.                           *
0020  ****************************************************************************************/
0021 
0022 #ifndef AMAROK_EXTENDEDABOUTDIALOG_H
0023 #define AMAROK_EXTENDEDABOUTDIALOG_H
0024 
0025 #include "core/support/Amarok.h"
0026 #include "amarok_export.h"
0027 #include "App.h"
0028 #include "OcsPersonListWidget.h"
0029 #include "AnimatedBarWidget.h"
0030 
0031 #include <QDialog>
0032 #include <QPointer>
0033 #include <Attica/ProviderManager>
0034 
0035 class AMAROK_EXPORT ExtendedAboutDialog : public QDialog
0036 {
0037     Q_OBJECT
0038 public:
0039     explicit ExtendedAboutDialog( const KAboutData &aboutData, const OcsData *ocsData, QWidget *parent = nullptr );
0040     ~ExtendedAboutDialog() override;
0041 
0042 private Q_SLOTS:
0043     void switchToOcsWidgets();
0044     void onProvidersFetched();
0045     void showLicense( const QString &number );
0046 
0047 private:
0048     class Private;
0049     Private* const d;
0050 
0051     Q_DISABLE_COPY( ExtendedAboutDialog )
0052 
0053     OcsData m_ocsData;
0054     Attica::ProviderManager m_providerManager;
0055 
0056 //Authors:
0057     QString m_authorPageTitle;
0058     QPointer<AnimatedBarWidget> m_showOcsAuthorButton;
0059     QPointer<QWidget> m_authorWidget;
0060     QPointer<OcsPersonListWidget> m_authorListWidget;
0061     bool m_isOfflineAuthorWidget;
0062 
0063 //Contributors:
0064     QPointer<AnimatedBarWidget> m_showOcsCreditButton;
0065     QPointer<QWidget> m_creditWidget;
0066     QPointer<OcsPersonListWidget> m_creditListWidget;
0067     bool m_isOfflineCreditWidget;
0068 
0069 //Donors:
0070     QPointer<AnimatedBarWidget> m_showOcsDonorButton;
0071     QPointer<QWidget> m_donorWidget;
0072     QPointer<OcsPersonListWidget> m_donorListWidget;
0073     bool m_isOfflineDonorWidget;
0074 
0075 };
0076 
0077 class ExtendedAboutDialog::Private
0078 {
0079 public:
0080     Private(ExtendedAboutDialog *parent)
0081         : q(parent),
0082           aboutData(nullptr)
0083     {}
0084 
0085     void _k_showLicense( const QString &number );
0086 
0087     ExtendedAboutDialog *q;
0088 
0089     const KAboutData *aboutData;
0090 };
0091 
0092 #endif  //AMAROK_EXTENDEDABOUTDIALOG_H