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"