7#ifndef KisAllTagsModel_H
8#define KisAllTagsModel_H
11#include <QAbstractTableModel>
12#include <QSortFilterProxyModel>
17#include "kritaresources_export.h"
39 virtual bool renameTag(
const KisTagSP tag,
const QString &newName,
const bool allowOverwrite) = 0;
45 :
public QAbstractTableModel
69 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
70 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
71 QVariant data(
const QModelIndex &index,
int role)
const override;
72 bool setData(
const QModelIndex &index,
const QVariant &
value,
int role)
override;
73 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
77 QModelIndex indexForTag(
KisTagSP tag)
const override;
78 KisTagSP tagForIndex(QModelIndex index = QModelIndex())
const override;
80 KisTagSP tagForUrl(
const QString& tagUrl)
const override;
85 bool setTagActive(
const KisTagSP tag)
override;
86 bool setTagInactive(
const KisTagSP tag)
override;
88 bool renameTag(
const KisTagSP tag,
const QString &newName,
const bool allowOverwrite)
override;
89 bool changeTagActive(
const KisTagSP tag,
bool active)
override;
92 static QString
urlAll() {
return "All"; }
97 void addStorage(
const QString &location);
98 void removeStorage(
const QString &location);
103 friend class TestTagResourceModel;
111 void untagAllResources(
KisTagSP tag);
122 :
public QSortFilterProxyModel
129 KisTagModel(
const QString &type, QObject *parent = 0);
133 ShowInactiveTags = 0,
138 void setTagFilter(TagFilter filter);
141 ShowInactiveStorages = 0,
146 void setStorageFilter(StorageFilter filter);
151 QModelIndex indexForTag(
KisTagSP tag)
const override;
152 KisTagSP tagForIndex(QModelIndex index = QModelIndex())
const override;
154 KisTagSP tagForUrl(
const QString& url)
const override;
156 bool setTagInactive(
const KisTagSP tag)
override;
157 bool setTagActive(
const KisTagSP tag)
override;
158 bool renameTag(
const KisTagSP tag,
const QString &newName,
const bool allowOverwrite)
override;
159 bool changeTagActive(
const KisTagSP tag,
bool active)
override;
163 bool filterAcceptsRow(
int source_row,
const QModelIndex &source_parent)
const override;
164 bool lessThan(
const QModelIndex &source_left,
const QModelIndex &source_right)
const override;
169 friend class TestTagModel;
float value(const T *src, size_t ch)
QSharedPointer< KisAllTagsModel > KisAllTagsModelSP
virtual ~KisAbstractTagModel()
virtual bool setTagActive(const KisTagSP tag)=0
virtual bool addTag(const KisTagSP tag, const bool allowOverwrite, QVector< KoResourceSP > taggedResources=QVector< KoResourceSP >())=0
Add a tag, if it doesn't exist yet, with a possibly empty list of resources to tag.
virtual QModelIndex indexForTag(KisTagSP tag) const =0
virtual bool setTagInactive(const KisTagSP tag)=0
virtual KisTagSP tagForUrl(const QString &url) const =0
Retrieve a tag by url.
virtual KisTagSP addTag(const QString &tagName, const bool allowOverwrite, QVector< KoResourceSP > taggedResources)=0
Add a new tag with a possibly empty list of resources to tag.
virtual bool changeTagActive(const KisTagSP tag, bool active)=0
virtual KisTagSP tagForIndex(QModelIndex index=QModelIndex()) const =0
virtual bool renameTag(const KisTagSP tag, const QString &newName, const bool allowOverwrite)=0