File indexing completed on 2024-05-05 04:33:15
0001 /* 0002 SPDX-FileCopyrightText: 2004-2018 Gilles Caulier <caulier dot gilles at gmail dot com> 0003 SPDX-FileCopyrightText: 2006-2012 Marcel Wiesweg <marcel dot wiesweg at gmx dot de> 0004 SPDX-FileCopyrightText: 2004-2005 Renchi Raju <renchi dot raju at gmail dot com> 0005 SPDX-FileCopyrightText: 2004-2005 Jesper K. Pedersen <blackie at kde dot org> 0006 SPDX-FileCopyrightText: 2004-2005 Aurelien Gateau <aurelien dot gateau at free dot fr> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #include "imageinfoshared.h" 0012 0013 // Local includes 0014 0015 #include "interface.h" 0016 0017 namespace KIPI 0018 { 0019 0020 class Q_DECL_HIDDEN ImageInfoShared::Private 0021 { 0022 public: 0023 0024 Private() 0025 { 0026 count = 1; 0027 interface = nullptr; 0028 } 0029 0030 int count; 0031 Interface* interface; 0032 }; 0033 0034 ImageInfoShared::ImageInfoShared() 0035 : d(new Private) 0036 { 0037 } 0038 0039 ImageInfoShared::ImageInfoShared(Interface* const interface, const QUrl &url) 0040 : d(new Private) 0041 { 0042 d->interface = interface; 0043 _url = url; 0044 } 0045 0046 ImageInfoShared::~ImageInfoShared() = default; 0047 0048 void ImageInfoShared::addRef() 0049 { 0050 d->count++; 0051 } 0052 0053 void ImageInfoShared::removeRef() 0054 { 0055 d->count--; 0056 if ( d->count == 0 ) 0057 { 0058 delete this; 0059 } 0060 } 0061 0062 QUrl ImageInfoShared::url() const 0063 { 0064 return _url; 0065 } 0066 0067 void ImageInfoShared::cloneData(ImageInfoShared* const other) 0068 { 0069 clearAttributes(); 0070 addAttributes(other->attributes()); 0071 } 0072 0073 bool ImageInfoShared::reserveForAction(QObject* const reservingObject, const QString& descriptionOfAction) const 0074 { 0075 return d->interface->reserveForAction(_url, reservingObject, descriptionOfAction); 0076 } 0077 0078 void ImageInfoShared::clearReservation(QObject* const reservingObject) 0079 { 0080 return d->interface->clearReservation(_url, reservingObject); 0081 } 0082 0083 bool ImageInfoShared::itemIsReserved(QString* const descriptionOfAction) const 0084 { 0085 return d->interface->itemIsReserved(_url, descriptionOfAction); 0086 } 0087 0088 FileReadWriteLock* ImageInfoShared::createReadWriteLock() const 0089 { 0090 return d->interface->createReadWriteLock(_url); 0091 } 0092 0093 } // namespace KIPI