┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/places/placesitemmodel.h
diff options
context:
space:
mode:
authorKai Uwe Broulik <[email protected]>2021-12-16 19:29:22 +0100
committerKai Uwe Broulik <[email protected]>2022-01-09 18:09:10 +0100
commit0603e18cd4e36b988196a99810f2e3e803fe3125 (patch)
tree6d70829efea053cb36c9e6618d8feadd45569a91 /src/panels/places/placesitemmodel.h
parent3abc4cfcd49df45c856e1b5f01da8de8f970ccb2 (diff)
Port back to KFilePlacesView
This removes the custom-view engine version of the places panel and replaces it with the upstream `KFilePlacesView` from KIO.
Diffstat (limited to 'src/panels/places/placesitemmodel.h')
-rw-r--r--src/panels/places/placesitemmodel.h216
1 files changed, 0 insertions, 216 deletions
diff --git a/src/panels/places/placesitemmodel.h b/src/panels/places/placesitemmodel.h
deleted file mode 100644
index cd4079a73..000000000
--- a/src/panels/places/placesitemmodel.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2012 Peter Penz <[email protected]>
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
-#ifndef PLACESITEMMODEL_H
-#define PLACESITEMMODEL_H
-
-#include "kitemviews/kstandarditemmodel.h"
-
-#include <KFilePlacesModel>
-#include <Solid/Predicate>
-#include <Solid/StorageAccess>
-
-#include <QHash>
-#include <QList>
-#include <QSet>
-#include <QUrl>
-
-class KBookmark;
-class PlacesItem;
-class QAction;
-
-/**
- * @brief Model for maintaining the bookmarks of the places panel.
- *
- * It is based on KFilePlacesModel from KIO.
- */
-class PlacesItemModel: public KStandardItemModel
-{
- Q_OBJECT
-
-public:
- explicit PlacesItemModel(QObject* parent = nullptr);
- ~PlacesItemModel() override;
-
- /**
- * @brief Create a new place entry in the bookmark file
- * and add it to the model
- */
- void createPlacesItem(const QString& text, const QUrl& url, const QString& iconName = {}, const QString& appName = {});
- void createPlacesItem(const QString& text, const QUrl& url, const QString& iconName, const QString& appName, int after);
-
- PlacesItem* placesItem(int index) const;
-
- /**
- * @brief Mark an item as hidden
- * @param index of the item to be hidden
- */
- void hideItem(int index);
-
- /**
- * If set to true, all items that are marked as hidden
- * will be shown in the view. The items will
- * stay marked as hidden, which is visually indicated
- * by the view by desaturating the icon and the text.
- */
- void setHiddenItemsShown(bool show);
- bool hiddenItemsShown() const;
-
- /**
- * @return Number of items that are marked as hidden.
- * Note that this does not mean that the items
- * are really hidden
- * (see PlacesItemModel::setHiddenItemsShown()).
- */
- int hiddenCount() const;
-
- /**
- * Search the item which is equal to the URL or at least
- * is a parent URL. If there are more than one possible
- * candidates, return the item which covers the biggest
- * range of the URL. -1 is returned if no closest item
- * could be found.
- */
- int closestItem(const QUrl& url) const;
-
- QAction* ejectAction(int index) const;
- QAction* teardownAction(int index) const;
-
- void requestEject(int index);
- void requestTearDown(int index);
-
- bool storageSetupNeeded(int index) const;
- void requestStorageSetup(int index);
-
- QMimeData* createMimeData(const KItemSet& indexes) const override;
-
- bool supportsDropping(int index) const override;
-
- void dropMimeDataBefore(int index, const QMimeData* mimeData);
-
- /**
- * @return Converts the URL, which contains "virtual" URLs for system-items like
- * "search:/documents" into a Query-URL that will be handled by
- * the corresponding IO-slave. Virtual URLs for bookmarks are used to
- * be independent from internal format changes.
- */
- static QUrl convertedUrl(const QUrl& url);
-
- void clear() override;
-
- void proceedWithTearDown();
-
- /**
- * @brief Remove item from bookmark
- *
- * This function remove the index from bookmark file permanently
- *
- * @param index - the item to be removed
- */
- void deleteItem(int index);
-
- /**
- * Force a sync on the bookmarks and indicates to other applications that the
- * state of the bookmarks has been changed.
- */
- void refresh();
-
- bool isDir(int index) const override;
-
-
- KFilePlacesModel::GroupType groupType(int row) const;
- bool isGroupHidden(KFilePlacesModel::GroupType type) const;
- void setGroupHidden(KFilePlacesModel::GroupType type, bool hidden);
-
-Q_SIGNALS:
- void errorMessage(const QString& message);
- void storageSetupDone(int index, bool success);
- void storageTearDownRequested(const QString& mountPath);
- void storageTearDownExternallyRequested(const QString& mountPath);
- void storageTearDownSuccessful();
-
-protected:
- void onItemInserted(int index) override;
- void onItemRemoved(int index, KStandardItem* removedItem) override;
- void onItemChanged(int index, const QSet<QByteArray>& changedRoles) override;
-
-private Q_SLOTS:
- void slotStorageTearDownDone(Solid::ErrorType error, const QVariant& errorData);
- void slotStorageSetupDone(Solid::ErrorType error, const QVariant& errorData, const QString& udi);
-
- // source model control
- void onSourceModelRowsInserted(const QModelIndex &parent, int first, int last);
- void onSourceModelRowsAboutToBeRemoved(const QModelIndex &parent, int first, int last);
- void onSourceModelRowsAboutToBeMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row);
- void onSourceModelRowsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row);
- void onSourceModelDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
- void onSourceModelGroupHiddenChanged(KFilePlacesModel::GroupType group, bool hidden);
-
-private:
- /**
- * Remove bookmarks created by the previous version of dolphin that are
- * not valid anymore
- */
- void cleanupBookmarks();
-
- /**
- * Loads the bookmarks from the bookmark-manager and creates items for
- * the model or moves hidden items to m_bookmarkedItems.
- */
- void loadBookmarks();
-
- QString internalMimeType() const;
-
- /**
- * @return Adjusted drop index which assures that the item is aligned
- * into the same group as specified by PlacesItem::groupType().
- */
- int groupedDropIndex(int index, const PlacesItem* item) const;
-
- /**
- * @return True if the bookmarks have the same identifiers. The identifier
- * is the unique "ID"-property in case if no UDI is set, otherwise
- * the UDI is used as identifier.
- */
- static bool equalBookmarkIdentifiers(const KBookmark& b1, const KBookmark& b2);
-
- /**
- * Appends the item \a item as last element of the group
- * the item belongs to. If no item with the same group is
- * present, the item gets appended as last element of the
- * model. PlacesItemModel takes the ownership
- * of the item.
- */
- void insertSortedItem(PlacesItem* item);
-
- PlacesItem *itemFromBookmark(const KBookmark &bookmark) const;
-
- void addItemFromSourceModel(const QModelIndex &index);
- void removeItemByIndex(const QModelIndex &mapToSource);
-
- QString bookmarkId(const KBookmark &bookmark) const;
- void initializeDefaultViewProperties() const;
-
- int mapFromSource(const QModelIndex &index) const;
- QModelIndex mapToSource(int row) const;
-
- static void updateItem(PlacesItem *item, const QModelIndex &index);
-
-private:
- bool m_hiddenItemsShown;
-
- Solid::StorageAccess *m_deviceToTearDown;
-
- QHash<QObject*, int> m_storageSetupInProgress;
-
- KFilePlacesModel *m_sourceModel;
-
- QVector<QPersistentModelIndex> m_indexMap;
-};
-
-#endif
-
-