File indexing completed on 2024-04-21 04:49:02

0001 /*
0002    SPDX-FileCopyrightText: 2020 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr>
0003 
0004    SPDX-License-Identifier: LGPL-3.0-or-later
0005  */
0006 
0007 #include "viewconfigurationdata.h"
0008 
0009 class ViewConfigurationDataPrivate
0010 {
0011 public:
0012     ViewConfigurationDataPrivate()
0013     = default;
0014 
0015     ViewConfigurationDataPrivate(ElisaUtils::FilterType filterType, int expectedDepth,
0016                                  QString mainTitle, QString secondaryTitle,
0017                                  QUrl imageUrl, ElisaUtils::PlayListEntryType dataType,
0018                                  QAbstractItemModel *model, QAbstractProxyModel *associatedProxyModel,
0019                                  QUrl viewDefaultIcon, DataTypes::DataType dataFilter,
0020                                  int sortRole, QVector<int> sortRoles, QVector<QString> sortRoleNames,
0021                                  Qt::SortOrder sortOrder, QVector<QString> sortOrderNames,
0022                                  ViewManager::ViewCanBeRated viewShowRating,
0023                                  ViewManager::DelegateUseSecondaryText viewDelegateDisplaySecondaryText)
0024         : mFilterType(filterType)
0025         , mExpectedDepth(expectedDepth)
0026         , mMainTitle(std::move(mainTitle))
0027         , mSecondaryTitle(std::move(secondaryTitle))
0028         , mImageUrl(std::move(imageUrl))
0029         , mDataType(dataType)
0030         , mModel(model)
0031         , mAssociatedProxyModel(associatedProxyModel)
0032         , mViewDefaultIcon(std::move(viewDefaultIcon))
0033         , mDataFilter(std::move(dataFilter))
0034         , mViewShowRating(viewShowRating)
0035         , mViewDelegateDisplaySecondaryText(viewDelegateDisplaySecondaryText)
0036         , mSortRole(sortRole)
0037         , mSortRoles(std::move(sortRoles))
0038         , mSortRoleNames(std::move(sortRoleNames))
0039         , mSortOrder(sortOrder)
0040         , mSortOrderNames(std::move(sortOrderNames))
0041     {
0042     }
0043 
0044     ViewConfigurationDataPrivate(ElisaUtils::FilterType filterType, int expectedDepth,
0045                                  QString mainTitle, QString secondaryTitle,
0046                                  QUrl imageUrl, ElisaUtils::PlayListEntryType dataType,
0047                                  QAbstractItemModel *model, QAbstractProxyModel *associatedProxyModel,
0048                                  DataTypes::DataType dataFilter,
0049                                  int sortRole, QVector<int> sortRoles, QVector<QString> sortRoleNames,
0050                                  Qt::SortOrder sortOrder, QVector<QString> sortOrderNames,
0051                                  ViewManager::AlbumCardinality displaySingleAlbum,
0052                                  ViewManager::AlbumViewStyle showDiscHeaders,
0053                                  ViewManager::RadioSpecificStyle radioCase)
0054         : mFilterType(filterType)
0055         , mExpectedDepth(expectedDepth)
0056         , mMainTitle(std::move(mainTitle))
0057         , mSecondaryTitle(std::move(secondaryTitle))
0058         , mImageUrl(std::move(imageUrl))
0059         , mDataType(dataType)
0060         , mModel(model)
0061         , mAssociatedProxyModel(associatedProxyModel)
0062         , mDataFilter(std::move(dataFilter))
0063         , mSortRole(sortRole)
0064         , mSortRoles(std::move(sortRoles))
0065         , mSortRoleNames(std::move(sortRoleNames))
0066         , mSortOrder(sortOrder)
0067         , mSortOrderNames(std::move(sortOrderNames))
0068         , mDisplaySingleAlbum(displaySingleAlbum)
0069         , mShowDiscHeaders(showDiscHeaders)
0070         , mRadioCase(radioCase)
0071     {
0072     }
0073 
0074     ElisaUtils::FilterType mFilterType;
0075 
0076     int mExpectedDepth;
0077 
0078     QString mMainTitle;
0079 
0080     QString mSecondaryTitle;
0081 
0082     QUrl mImageUrl;
0083 
0084     ElisaUtils::PlayListEntryType mDataType;
0085 
0086     QAbstractItemModel * mModel;
0087 
0088     QAbstractProxyModel * mAssociatedProxyModel;
0089 
0090     QUrl mViewDefaultIcon;
0091 
0092     DataTypes::DataType mDataFilter;
0093 
0094     ViewManager::ViewCanBeRated mViewShowRating;
0095 
0096     ViewManager::DelegateUseSecondaryText mViewDelegateDisplaySecondaryText;
0097 
0098     int mSortRole;
0099 
0100     QVector<int> mSortRoles;
0101 
0102     QVector<QString> mSortRoleNames;
0103 
0104     Qt::SortOrder mSortOrder;
0105 
0106     QVector<QString> mSortOrderNames;
0107 
0108     ViewManager::AlbumCardinality mDisplaySingleAlbum;
0109 
0110     ViewManager::AlbumViewStyle mShowDiscHeaders;
0111 
0112     ViewManager::RadioSpecificStyle mRadioCase;
0113 };
0114 
0115 ViewConfigurationData::ViewConfigurationData(QObject *parent)
0116     : QObject(parent)
0117     , d(std::make_unique<ViewConfigurationDataPrivate>())
0118 {
0119 }
0120 
0121 ViewConfigurationData::ViewConfigurationData(ElisaUtils::FilterType filterType, int expectedDepth,
0122                                              QString mainTitle, QString secondaryTitle,
0123                                              QUrl imageUrl, ElisaUtils::PlayListEntryType dataType,
0124                                              QAbstractItemModel *model, QAbstractProxyModel *associatedProxyModel,
0125                                              QUrl viewDefaultIcon, DataTypes::DataType dataFilter,
0126                                              int sortRole, QVector<int> sortRoles, QVector<QString> sortRoleNames,
0127                                              Qt::SortOrder sortOrder, QVector<QString> sortOrderNames,
0128                                              ViewManager::ViewCanBeRated viewShowRating,
0129                                              ViewManager::DelegateUseSecondaryText viewDelegateDisplaySecondaryText,
0130                                              QObject *parent)
0131     : QObject(parent)
0132     , d(std::make_unique<ViewConfigurationDataPrivate>(filterType, expectedDepth, std::move(mainTitle),
0133                                                        std::move(secondaryTitle), std::move(imageUrl),
0134                                                        dataType, model, associatedProxyModel,
0135                                                        std::move(viewDefaultIcon), std::move(dataFilter),
0136                                                        sortRole, std::move(sortRoles), std::move(sortRoleNames),
0137                                                        sortOrder, std::move(sortOrderNames),
0138                                                        viewShowRating,viewDelegateDisplaySecondaryText))
0139 {
0140 }
0141 
0142 ViewConfigurationData::ViewConfigurationData(ElisaUtils::FilterType filterType, int expectedDepth,
0143                                              QString mainTitle, QString secondaryTitle,
0144                                              QUrl imageUrl, ElisaUtils::PlayListEntryType dataType,
0145                                              QAbstractItemModel *model, QAbstractProxyModel *associatedProxyModel,
0146                                              DataTypes::DataType dataFilter,
0147                                              int sortRole, QVector<int> sortRoles, QVector<QString> sortRoleNames,
0148                                              Qt::SortOrder sortOrder, QVector<QString> sortOrderNames,
0149                                              ViewManager::AlbumCardinality displaySingleAlbum,
0150                                              ViewManager::AlbumViewStyle showDiscHeaders,
0151                                              ViewManager::RadioSpecificStyle radioCase,
0152                                              QObject *parent)
0153     : QObject(parent)
0154     , d(std::make_unique<ViewConfigurationDataPrivate>(filterType, expectedDepth, std::move(mainTitle),
0155                                                        std::move(secondaryTitle), std::move(imageUrl),
0156                                                        dataType, model, associatedProxyModel, std::move(dataFilter),
0157                                                        sortRole, std::move(sortRoles), std::move(sortRoleNames),
0158                                                        sortOrder, std::move(sortOrderNames), displaySingleAlbum, showDiscHeaders,
0159                                                        radioCase))
0160 {
0161 }
0162 
0163 ElisaUtils::FilterType ViewConfigurationData::filterType() const
0164 {
0165     return d->mFilterType;
0166 }
0167 
0168 int ViewConfigurationData::expectedDepth() const
0169 {
0170     return d->mExpectedDepth;
0171 }
0172 
0173 QString ViewConfigurationData::mainTitle() const
0174 {
0175     return d->mMainTitle;
0176 }
0177 
0178 QString ViewConfigurationData::secondaryTitle() const
0179 {
0180     return d->mSecondaryTitle;
0181 }
0182 
0183 QUrl ViewConfigurationData::imageUrl() const
0184 {
0185     return d->mImageUrl;
0186 }
0187 
0188 ElisaUtils::PlayListEntryType ViewConfigurationData::dataType() const
0189 {
0190     return d->mDataType;
0191 }
0192 
0193 QAbstractItemModel *ViewConfigurationData::model() const
0194 {
0195     return d->mModel;
0196 }
0197 
0198 QAbstractProxyModel *ViewConfigurationData::associatedProxyModel() const
0199 {
0200     return d->mAssociatedProxyModel;
0201 }
0202 
0203 QUrl ViewConfigurationData::viewDefaultIcon() const
0204 {
0205     return d->mViewDefaultIcon;
0206 }
0207 
0208 DataTypes::DataType ViewConfigurationData::dataFilter() const
0209 {
0210     return d->mDataFilter;
0211 }
0212 
0213 ViewManager::ViewCanBeRated ViewConfigurationData::viewShowRating() const
0214 {
0215     return d->mViewShowRating;
0216 }
0217 
0218 ViewManager::DelegateUseSecondaryText ViewConfigurationData::viewDelegateDisplaySecondaryText() const
0219 {
0220     return d->mViewDelegateDisplaySecondaryText;
0221 }
0222 
0223 int ViewConfigurationData::sortRole() const
0224 {
0225     return d->mSortRole;
0226 }
0227 
0228 QVector<int> ViewConfigurationData::sortRoles() const
0229 {
0230     return d->mSortRoles;
0231 }
0232 
0233 QVector<QString> ViewConfigurationData::sortRoleNames() const
0234 {
0235     return d->mSortRoleNames;
0236 }
0237 
0238 Qt::SortOrder ViewConfigurationData::sortOrder() const
0239 {
0240     return d->mSortOrder;
0241 }
0242 
0243 QVector<QString> ViewConfigurationData::sortOrderNames() const
0244 {
0245     return d->mSortOrderNames;
0246 }
0247 
0248 ViewManager::AlbumCardinality ViewConfigurationData::displaySingleAlbum() const
0249 {
0250     return d->mDisplaySingleAlbum;
0251 }
0252 
0253 ViewManager::AlbumViewStyle ViewConfigurationData::showDiscHeaders() const
0254 {
0255     return d->mShowDiscHeaders;
0256 }
0257 
0258 ViewManager::RadioSpecificStyle ViewConfigurationData::radioCase() const
0259 {
0260     return d->mRadioCase;
0261 }
0262 
0263 ViewConfigurationData::~ViewConfigurationData() = default;
0264 
0265 #include "moc_viewconfigurationdata.cpp"