File indexing completed on 2024-05-12 16:59:53

0001 /*
0002     SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org>
0003     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 */
0005 
0006 #pragma once
0007 
0008 #include <KSambaShareData>
0009 #include <QAbstractListModel>
0010 
0011 /**
0012  * Model of KSambaShareData.
0013  */
0014 class KSambaShareModel : public QAbstractListModel
0015 {
0016     Q_OBJECT
0017 public:
0018     enum class Role { Name = Qt::UserRole + 1, Path, ShareUrl, Comment };
0019     Q_ENUM(Role)
0020 
0021     explicit KSambaShareModel(QObject *parent = nullptr);
0022     ~KSambaShareModel() override;
0023 
0024     int rowCount(const QModelIndex &parent) const final;
0025     QVariant data(const QModelIndex &index, int intRole) const final;
0026     bool hasChildren(const QModelIndex &parent) const final;
0027     Q_INVOKABLE void showPropertiesDialog(int index);
0028 
0029     QHash<int, QByteArray> roleNames() const final;
0030 
0031 public Q_SLOTS:
0032     void reloadData();
0033 
0034 private:
0035     QList<KSambaShareData> m_list;
0036     QString m_fqdn;
0037 };