3#ifndef SRC_STOREMODEL_H_
4#define SRC_STOREMODEL_H_
7#include <QSortFilterProxyModel>
20class QFileSystemModel;
47 auto parseDropData(
const QMimeData *
data,
50 Qt::DropAction action,
const QModelIndex &parent)
52 auto handleDirDrop(
const QString &cleanedSrc,
const QFileInfo &destFileinfo,
53 const QFileInfo &srcFileInfo, Qt::DropAction action)
55 auto handleFileDrop(
const QString &cleanedSrc,
const QString &cleanedDest,
56 const QFileInfo &destFileinfo, Qt::DropAction action)
58 auto handleFileToDirDrop(
const QString &cleanedSrc,
59 const QString &cleanedDest, Qt::DropAction action)
61 auto handleFileToFileDrop(
const QString &cleanedSrc,
62 const QString &cleanedDest, Qt::DropAction action)
78 const QModelIndex &source_parent)
const
86 [[nodiscard]]
auto showThis(
const QModelIndex &index)
const -> bool;
94 const QString &passStore);
109 [[nodiscard]]
auto data(
const QModelIndex &index,
int role)
const
110 -> QVariant
override;
118 [[nodiscard]]
auto lessThan(
const QModelIndex &source_left,
119 const QModelIndex &source_right)
const
126 [[nodiscard]]
auto getStore() const -> QString {
return store; }
147 [[nodiscard]] auto
flags(const QModelIndex &index) const
148 -> Qt::ItemFlags override;
154 [[nodiscard]] auto
mimeTypes() const -> QStringList override;
161 [[nodiscard]] auto
mimeData(const QModelIndexList &indexes) const
162 -> QMimeData * override;
174 int column, const QModelIndex &parent) const
187 int column, const QModelIndex &parent) ->
bool override;
auto filterAcceptsRow(int source_row, const QModelIndex &source_parent) const -> bool override
Filter whether a row should be displayed.
auto getStore() const -> QString
Get the password store root path.
auto data(const QModelIndex &index, int role) const -> QVariant override
Get display data for index.
StoreModel()
Construct a StoreModel.
auto showThis(const QModelIndex &index) const -> bool
Check if a specific index should be shown.
auto mimeTypes() const -> QStringList override
Get supported MIME types for drag/drop.
void setModelAndStore(QFileSystemModel *sourceModel, const QString &passStore)
Initialize model with source model and store path.
auto dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) -> bool override
Handle dropped MIME data.
void setStore(const QString &passStore)
Update the store path used for filtering without changing the source model.
auto mimeData(const QModelIndexList &indexes) const -> QMimeData *override
Create MIME data from indexes.
auto supportedDragActions() const -> Qt::DropActions override
Get supported drag actions.
auto flags(const QModelIndex &index) const -> Qt::ItemFlags override
Get item flags for index.
auto canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const -> bool override
Check if drop is possible.
auto lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const -> bool override
Compare two indices for sorting.
auto supportedDropActions() const -> Qt::DropActions override
Get supported drop actions.
Holds information for drag and drop operations in the password store.
ItemKind
Type of the dragged item.