1 /* SPDX-FileCopyrightText: 2003-2020 The KPhotoAlbum Development Team 2 3 SPDX-License-Identifier: GPL-2.0-or-later 4 */ 5 #ifndef CATEGORYCOLLECTION_H 6 #define CATEGORYCOLLECTION_H 7 8 #include "Category.h" 9 #include "CategoryPtr.h" 10 11 #include <QList> 12 13 namespace DB 14 { 15 16 /** 17 \class CategoryCollection 18 This class is the collection of categories. It is the basic anchor point to categories. 19 */ 20 21 class CategoryCollection : public QObject 22 { 23 Q_OBJECT 24 25 public: 26 enum class IncludeSpecialCategories { 27 Yes, 28 No 29 }; 30 virtual CategoryPtr categoryForName(const QString &name) const = 0; 31 virtual QStringList categoryNames(IncludeSpecialCategories include = IncludeSpecialCategories::Yes) const = 0; 32 virtual void removeCategory(const QString &name) = 0; 33 virtual void rename(const QString &oldName, const QString &newName) = 0; 34 virtual QList<CategoryPtr> categories() const = 0; 35 virtual void addCategory(const QString &text, const QString &icon, Category::ViewType type, 36 int thumbnailSize, bool show, bool positionable = false) 37 = 0; 38 virtual CategoryPtr categoryForSpecial(const Category::CategoryType type) const = 0; 39 40 signals: 41 void categoryCollectionChanged(); 42 void categoryRemoved(const QString &categoryName); 43 void itemRenamed(DB::Category *category, const QString &oldName, const QString &newName); 44 void itemRemoved(DB::Category *category, const QString &name); 45 46 protected slots: 47 void slotItemRenamed(const QString &oldName, const QString &newName); 48 void slotItemRemoved(const QString &item); 49 }; 50 51 } 52 53 #endif /* CATEGORYCOLLECTION_H */ 54 55 // vi:expandtab:tabstop=4 shiftwidth=4: 56