/** * @RDE_HEADER@ * from FileManagement - FileContent model * $Id$ * $HeadURL$ * $Author$ * Created by Iuliana Ojog, SLSE, 2017-07-11 */ #pragma once #include #include #include #include // -------------------------------------------------------- namespace LtsWidgets { // -------------------------------------------------------- enum Columns { NAME = 0, ISTEMPLATE, FILETYPE, FILECATEGORY, FILESTATUS, EXERCISE, PHASE, OPERATOR, USEDBY, USES, LASTMODIFIED, PROPERTIES, FOLDER, COUNT, }; // -------------------------------------------------------- class DialogModelFile : public LtsWidgets::LtsAbstractTableModel { Q_OBJECT public: explicit DialogModelFile(QObject *parent = nullptr); bool initModel(const std::shared_ptr &dtc, const std::shared_ptr &opmDtc, const QString &xmlType, const std::function &predicate); QVariant data(const QModelIndex &, int) const override final; int findFileIdFromName(const QString &fileName) const; QStringList mimeTypes() const override; QMimeData *mimeData(const QModelIndexList &indexes) const override; Qt::DropActions supportedDragActions() const override { return Qt::CopyAction | Qt::MoveAction; } Qt::ItemFlags flags(const QModelIndex &modelIndex) const override { return LtsWidgets::LtsAbstractTableModel::flags(modelIndex) | Qt::ItemIsDragEnabled; } private: std::shared_ptr m_flmDtc; std::shared_ptr m_opmDtc; friend class DialogFileProxyModel; }; class DialogFileProxyModel final : public LtsWidgets::LtsColumnFilterProxyModel { Q_OBJECT public: using LtsWidgets::LtsColumnFilterProxyModel::LtsColumnFilterProxyModel; void setSourceModel(QAbstractItemModel *sourceModel) override; protected: bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; private: DialogModelFile *m_sourceModel = nullptr; }; }