]>
cloud.milkyroute.net Git - dolphin.git/blob - src/settings/applyviewpropsjob.cpp
2 * SPDX-FileCopyrightText: 2006 Peter Penz <peter.penz19@gmail.com>
4 * The code is based on kdelibs/kio/directorysizejob:
5 * SPDX-FileCopyrightText: 2006 David Faure <faure@kde.org>
7 * SPDX-License-Identifier: GPL-2.0-or-later
10 #include "applyviewpropsjob.h"
12 #include "views/viewproperties.h"
13 #include <KIO/ListJob>
15 ApplyViewPropsJob::ApplyViewPropsJob(const QUrl
&dir
, const ViewProperties
&viewProps
)
17 , m_viewProps(nullptr)
21 m_viewProps
= new ViewProperties(dir
);
22 m_viewProps
->setViewMode(viewProps
.viewMode());
23 m_viewProps
->setPreviewsShown(viewProps
.previewsShown());
24 m_viewProps
->setHiddenFilesShown(viewProps
.hiddenFilesShown());
25 m_viewProps
->setSortRole(viewProps
.sortRole());
26 m_viewProps
->setSortOrder(viewProps
.sortOrder());
27 m_viewProps
->setGroupRole(viewProps
.groupRole());
28 m_viewProps
->setGroupOrder(viewProps
.groupOrder());
30 KIO::ListJob
*listJob
= KIO::listRecursive(dir
, KIO::HideProgressInfo
);
31 connect(listJob
, &KIO::ListJob::entries
, this, &ApplyViewPropsJob::slotEntries
);
35 ApplyViewPropsJob::~ApplyViewPropsJob()
37 delete m_viewProps
; // the properties are written by the destructor
38 m_viewProps
= nullptr;
41 void ApplyViewPropsJob::slotEntries(KIO::Job
*, const KIO::UDSEntryList
&list
)
43 for (const KIO::UDSEntry
&entry
: list
) {
44 const QString name
= entry
.stringValue(KIO::UDSEntry::UDS_NAME
);
45 if (name
!= QLatin1Char('.') && name
!= QLatin1String("..") && entry
.isDir()) {
49 url
= url
.adjusted(QUrl::StripTrailingSlash
);
50 url
.setPath(url
.path() + QLatin1Char('/') + name
);
52 Q_ASSERT(m_viewProps
);
54 ViewProperties
props(url
);
55 props
.setDirProperties(*m_viewProps
);
60 void ApplyViewPropsJob::slotResult(KJob
*job
)
63 setError(job
->error());
64 setErrorText(job
->errorText());
69 #include "moc_applyviewpropsjob.cpp"