X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/848abc5922167a467bb73107ee6b72e9af3c8317..c527dc2172:/src/panels/places/placesitem.cpp diff --git a/src/panels/places/placesitem.cpp b/src/panels/places/placesitem.cpp index a1e4611a5..9f9041bfa 100644 --- a/src/panels/places/placesitem.cpp +++ b/src/panels/places/placesitem.cpp @@ -21,11 +21,13 @@ ***************************************************************************/ #include "placesitem.h" +#include "trash/dolphintrash.h" #include "dolphindebug.h" +#include "placesitemsignalhandler.h" + #include #include -#include "placesitemsignalhandler.h" #include PlacesItem::PlacesItem(const KBookmark& bookmark, PlacesItem* parent) : @@ -36,7 +38,6 @@ PlacesItem::PlacesItem(const KBookmark& bookmark, PlacesItem* parent) : m_disc(), m_mtp(), m_signalHandler(nullptr), - m_trashDirLister(nullptr), m_bookmark() { m_signalHandler = new PlacesItemSignalHandler(this); @@ -46,7 +47,6 @@ PlacesItem::PlacesItem(const KBookmark& bookmark, PlacesItem* parent) : PlacesItem::~PlacesItem() { delete m_signalHandler; - delete m_trashDirLister; } void PlacesItem::setUrl(const QUrl &url) @@ -57,18 +57,8 @@ void PlacesItem::setUrl(const QUrl &url) // setting an equal URL results in an itemsChanged() // signal. if (dataValue("url").toUrl() != url) { - delete m_trashDirLister; if (url.scheme() == QLatin1String("trash")) { - // The trash icon must always be updated dependent on whether - // the trash is empty or not. We use a KDirLister that automatically - // watches for changes if the number of items has been changed. - // The update of the icon is handled in onTrashDirListerCompleted(). - m_trashDirLister = new KDirLister(); - m_trashDirLister->setAutoErrorHandlingEnabled(false, nullptr); - m_trashDirLister->setDelayedMimeTypes(true); - QObject::connect(m_trashDirLister.data(), static_cast(&KDirLister::completed), - m_signalHandler.data(), &PlacesItemSignalHandler::onTrashDirListerCompleted); - m_trashDirLister->openUrl(url); + QObject::connect(&Trash::instance(), &Trash::emptinessChanged, m_signalHandler.data(), &PlacesItemSignalHandler::onTrashEmptinessChanged); } setDataValue("url", url); @@ -144,7 +134,7 @@ void PlacesItem::setBookmark(const KBookmark& bookmark) const QString udi = bookmark.metaDataItem(QStringLiteral("UDI")); if (udi.isEmpty()) { setIcon(bookmark.icon()); - setText(i18nc("KFile System Bookmarks", bookmark.text().toUtf8().constData())); + setText(i18ndc("kio5", "KFile System Bookmarks", bookmark.text().toUtf8().constData())); setUrl(bookmark.url()); setSystemItem(bookmark.metaDataItem(QStringLiteral("isSystemItem")) == QLatin1String("true")); } else { @@ -238,14 +228,6 @@ void PlacesItem::onAccessibilityChanged() setUrl(QUrl::fromLocalFile(m_access->filePath())); } -void PlacesItem::onTrashDirListerCompleted() -{ - Q_ASSERT(url().scheme() == QLatin1String("trash")); - - const bool isTrashEmpty = m_trashDirLister->items().isEmpty(); - setIcon(isTrashEmpty ? QStringLiteral("user-trash") : QStringLiteral("user-trash-full")); -} - void PlacesItem::updateBookmarkForRole(const QByteArray& role) { Q_ASSERT(!m_bookmark.isNull()); @@ -258,7 +240,7 @@ void PlacesItem::updateBookmarkForRole(const QByteArray& role) // // NOTE: It is important to use "KFile System Bookmarks" as context // (see PlacesItemModel::createSystemBookmarks()). - if (text() != i18nc("KFile System Bookmarks", m_bookmark.text().toUtf8().data())) { + if (text() != i18ndc("kio5", "KFile System Bookmarks", m_bookmark.text().toUtf8().data())) { m_bookmark.setFullText(text()); } } else if (role == "url") {