File indexing completed on 2024-04-21 05:01:41
0001 /* 0002 This class derives from QObject and encapsulates a bookmark item. It 0003 is for use with QtQuick. 0004 0005 SPDX-FileCopyrightText: 2013-2022 Alexander Reinholdt <alexander.reinholdt@kdemail.net> 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 // application specific includes 0010 #include "smb4kbookmarkobject.h" 0011 0012 // Qt includes 0013 #include <QHostAddress> 0014 0015 // KDE includes 0016 #include <KIconLoader> 0017 0018 class Smb4KBookmarkObjectPrivate 0019 { 0020 public: 0021 QString workgroup; 0022 QUrl url; 0023 QString label; 0024 QString category; 0025 QString login; 0026 bool isCategory; 0027 bool isMounted; 0028 QHostAddress hostIp; 0029 }; 0030 0031 Smb4KBookmarkObject::Smb4KBookmarkObject(Smb4KBookmark *bookmark, QObject *parent) 0032 : QObject(parent) 0033 , d(new Smb4KBookmarkObjectPrivate) 0034 { 0035 d->workgroup = bookmark->workgroupName(); 0036 d->url = bookmark->url(); 0037 d->label = bookmark->label(); 0038 d->category = bookmark->categoryName(); 0039 d->login = bookmark->userName(); 0040 d->isCategory = false; 0041 d->isMounted = false; 0042 d->hostIp.setAddress(bookmark->hostIpAddress()); 0043 } 0044 0045 Smb4KBookmarkObject::Smb4KBookmarkObject(const QString &categoryName, QObject *parent) 0046 : QObject(parent) 0047 , d(new Smb4KBookmarkObjectPrivate) 0048 { 0049 d->category = categoryName; 0050 d->isCategory = true; 0051 d->isMounted = false; 0052 } 0053 0054 Smb4KBookmarkObject::Smb4KBookmarkObject(QObject *parent) 0055 : QObject(parent) 0056 , d(new Smb4KBookmarkObjectPrivate) 0057 { 0058 d->isCategory = false; 0059 d->isMounted = false; 0060 } 0061 0062 Smb4KBookmarkObject::~Smb4KBookmarkObject() 0063 { 0064 } 0065 0066 QString Smb4KBookmarkObject::workgroupName() const 0067 { 0068 return d->workgroup; 0069 } 0070 0071 void Smb4KBookmarkObject::setWorkgroupName(const QString &name) 0072 { 0073 if (d->workgroup != name) { 0074 d->workgroup = name; 0075 Q_EMIT changed(); 0076 } 0077 } 0078 0079 QString Smb4KBookmarkObject::hostName() const 0080 { 0081 return d->url.host().toUpper(); 0082 } 0083 0084 QString Smb4KBookmarkObject::shareName() const 0085 { 0086 return d->url.path().remove(QStringLiteral("/")); 0087 } 0088 0089 QString Smb4KBookmarkObject::label() const 0090 { 0091 return d->label; 0092 } 0093 0094 void Smb4KBookmarkObject::setLabel(const QString &label) 0095 { 0096 if (d->label != label) { 0097 d->label = label; 0098 Q_EMIT changed(); 0099 } 0100 } 0101 0102 QUrl Smb4KBookmarkObject::url() const 0103 { 0104 return d->url; 0105 } 0106 0107 void Smb4KBookmarkObject::setUrl(const QUrl &url) 0108 { 0109 if (!d->url.matches(url, QUrl::None)) { 0110 d->url = url; 0111 Q_EMIT changed(); 0112 } 0113 } 0114 0115 QString Smb4KBookmarkObject::categoryName() const 0116 { 0117 return d->category; 0118 } 0119 0120 void Smb4KBookmarkObject::setCategoryName(const QString &name) 0121 { 0122 if (d->category != name) { 0123 d->category = name; 0124 Q_EMIT changed(); 0125 } 0126 } 0127 0128 bool Smb4KBookmarkObject::isCategory() const 0129 { 0130 return d->isCategory; 0131 } 0132 0133 void Smb4KBookmarkObject::setCategory(bool category) 0134 { 0135 if (d->isCategory != category) { 0136 d->isCategory = category; 0137 Q_EMIT changed(); 0138 } 0139 } 0140 0141 bool Smb4KBookmarkObject::isMounted() const 0142 { 0143 return d->isMounted; 0144 } 0145 0146 void Smb4KBookmarkObject::setMounted(bool mounted) 0147 { 0148 if (d->isMounted != mounted) { 0149 d->isMounted = mounted; 0150 Q_EMIT changed(); 0151 } 0152 } 0153 0154 QString Smb4KBookmarkObject::userName() const 0155 { 0156 return d->login; 0157 } 0158 0159 void Smb4KBookmarkObject::setUserName(const QString &name) 0160 { 0161 if (d->login != name) { 0162 d->login = name; 0163 Q_EMIT changed(); 0164 } 0165 } 0166 0167 QString Smb4KBookmarkObject::hostIpAddress() const 0168 { 0169 return d->hostIp.toString(); 0170 } 0171 0172 void Smb4KBookmarkObject::setHostIpAddress(const QString &ip) 0173 { 0174 if (d->hostIp.toString() != ip) { 0175 d->hostIp.setAddress(ip); 0176 Q_EMIT changed(); 0177 } 0178 }