]>
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());
28 KIO::ListJob
*listJob
= KIO::listRecursive(dir
, KIO::HideProgressInfo
);
29 connect(listJob
, &KIO::ListJob::entries
, this, &ApplyViewPropsJob::slotEntries
);
33 ApplyViewPropsJob::~ApplyViewPropsJob()
35 delete m_viewProps
; // the properties are written by the destructor
36 m_viewProps
= nullptr;
39 void ApplyViewPropsJob::slotEntries(KIO::Job
*, const KIO::UDSEntryList
&list
)
41 for (const KIO::UDSEntry
&entry
: list
) {
42 const QString name
= entry
.stringValue(KIO::UDSEntry::UDS_NAME
);
43 if (name
!= QLatin1Char('.') && name
!= QLatin1String("..") && entry
.isDir()) {
47 url
= url
.adjusted(QUrl::StripTrailingSlash
);
48 url
.setPath(url
.path() + QLatin1Char('/') + name
);
50 Q_ASSERT(m_viewProps
);
52 ViewProperties
props(url
);
53 props
.setDirProperties(*m_viewProps
);
58 void ApplyViewPropsJob::slotResult(KJob
*job
)
61 setError(job
->error());
62 setErrorText(job
->errorText());
67 #include "moc_applyviewpropsjob.cpp"