]>
cloud.milkyroute.net Git - dolphin.git/blob - src/settings/applyviewpropsjob.cpp
430b511216b4dd91bfce0294e674b4d161a866da
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
,
15 const ViewProperties
& viewProps
) :
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
,
30 this, &ApplyViewPropsJob::slotEntries
);
34 ApplyViewPropsJob::~ApplyViewPropsJob()
36 delete m_viewProps
; // the properties are written by the destructor
37 m_viewProps
= nullptr;
40 void ApplyViewPropsJob::slotEntries(KIO::Job
*, const KIO::UDSEntryList
& list
)
42 for (const KIO::UDSEntry
& entry
: list
) {
43 const QString name
= entry
.stringValue(KIO::UDSEntry::UDS_NAME
);
44 if (name
!= QLatin1Char('.') && name
!= QLatin1String("..") && entry
.isDir()) {
48 url
= url
.adjusted(QUrl::StripTrailingSlash
);
49 url
.setPath(url
.path() + '/' + name
);
51 Q_ASSERT(m_viewProps
);
53 ViewProperties
props(url
);
54 props
.setDirProperties(*m_viewProps
);
59 void ApplyViewPropsJob::slotResult(KJob
* job
)
62 setError(job
->error());
63 setErrorText(job
->errorText());