30 class KFileItemListPropertiesPrivate :
public QSharedData
33 KFileItemListPropertiesPrivate()
34 : m_isDirectory(false),
35 m_supportsReading(false),
36 m_supportsDeleting(false),
37 m_supportsWriting(false),
38 m_supportsMoving(false),
43 void determineMimeTypeAndGroup()
const;
49 bool m_isDirectory : 1;
50 bool m_supportsReading : 1;
51 bool m_supportsDeleting : 1;
52 bool m_supportsWriting : 1;
53 bool m_supportsMoving : 1;
59 : d(new KFileItemListPropertiesPrivate)
64 : d(new KFileItemListPropertiesPrivate)
74 void KFileItemListPropertiesPrivate::setItems(
const KFileItemList& items)
76 const bool initialValue = !items.isEmpty();
79 m_supportsReading = initialValue;
80 m_supportsDeleting = initialValue;
81 m_supportsWriting = initialValue;
82 m_supportsMoving = initialValue;
83 m_isDirectory = initialValue;
88 QFileInfo parentDirInfo;
99 if (m_isLocal && (m_supportsDeleting || m_supportsMoving)) {
101 if (parentDirInfo.filePath() != directory) {
102 parentDirInfo.setFile(directory);
104 if (!parentDirInfo.isWritable()) {
105 m_supportsDeleting =
false;
106 m_supportsMoving =
false;
109 if (m_isDirectory && !item.
isDir()) {
110 m_isDirectory =
false;
132 return d->m_supportsReading;
137 return d->m_supportsDeleting;
142 return d->m_supportsWriting;
147 return d->m_supportsMoving && d->m_supportsDeleting;
167 return d->m_isDirectory;
172 if (d->m_mimeType.isEmpty())
173 d->determineMimeTypeAndGroup();
174 return d->m_mimeType;
179 if (d->m_mimeType.isEmpty())
180 d->determineMimeTypeAndGroup();
181 return d->m_mimeGroup;
184 void KFileItemListPropertiesPrivate::determineMimeTypeAndGroup()
const
186 if (!m_items.isEmpty()) {
187 m_mimeType = m_items.first().mimetype();
188 m_mimeGroup = m_mimeType.left(m_mimeType.indexOf(
'/'));
190 foreach (
const KFileItem &item, m_items) {
193 if (m_mimeType != itemMimeType) {
195 if (m_mimeGroup != itemMimeType.left(itemMimeType.indexOf(
'/'))) {