]>
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"
14 ApplyViewPropsJob::ApplyViewPropsJob(const QUrl
&dir
, const ViewProperties
&viewProps
)
16 , m_viewProps(nullptr)
20 m_viewProps
= new ViewProperties(dir
);
21 m_viewProps
->setViewMode(viewProps
.viewMode());
22 m_viewProps
->setPreviewsShown(viewProps
.previewsShown());
23 m_viewProps
->setHiddenFilesShown(viewProps
.hiddenFilesShown());
24 m_viewProps
->setSortRole(viewProps
.sortRole());
25 m_viewProps
->setSortOrder(viewProps
.sortOrder());
27 KIO::ListJob
*listJob
= KIO::listRecursive(dir
, KIO::HideProgressInfo
);
28 connect(listJob
, &KIO::ListJob::entries
, this, &ApplyViewPropsJob::slotEntries
);
32 ApplyViewPropsJob::~ApplyViewPropsJob()
34 delete m_viewProps
; // the properties are written by the destructor
35 m_viewProps
= nullptr;
38 void ApplyViewPropsJob::slotEntries(KIO::Job
*, const KIO::UDSEntryList
&list
)
40 for (const KIO::UDSEntry
&entry
: list
) {
41 const QString name
= entry
.stringValue(KIO::UDSEntry::UDS_NAME
);
42 if (name
!= QLatin1Char('.') && name
!= QLatin1String("..") && entry
.isDir()) {
46 url
= url
.adjusted(QUrl::StripTrailingSlash
);
47 url
.setPath(url
.path() + '/' + name
);
49 Q_ASSERT(m_viewProps
);
51 ViewProperties
props(url
);
52 props
.setDirProperties(*m_viewProps
);
57 void ApplyViewPropsJob::slotResult(KJob
*job
)
60 setError(job
->error());
61 setErrorText(job
->errorText());
66 #include "moc_applyviewpropsjob.cpp"