File indexing completed on 2024-04-28 04:21:19

0001 /* SPDX-FileCopyrightText: 2003-2014 Jesper K. Pedersen <blackie@kde.org>
0002 
0003    SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef SETTINGS_CATEGORYITEM_H
0007 #define SETTINGS_CATEGORYITEM_H
0008 
0009 // Qt includes
0010 #include <QListWidgetItem>
0011 
0012 // Local includes
0013 #include <DB/Category.h>
0014 
0015 namespace DB
0016 {
0017 
0018 // Local classes
0019 class MemberMap;
0020 
0021 }
0022 
0023 namespace Settings
0024 {
0025 
0026 class CategoryItem : public QObject, public QListWidgetItem
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     CategoryItem(
0032         const QString &category,
0033         const QString &icon,
0034         DB::Category::ViewType type,
0035         int thumbnailSize,
0036         QListWidget *parent,
0037         bool positionable = false);
0038     void setLabel(const QString &label);
0039     void setPositionable(bool positionable);
0040     void submit(DB::MemberMap *memberMap);
0041     void removeFromDatabase();
0042     bool positionable() const;
0043     int thumbnailSize() const;
0044     DB::Category::ViewType viewType() const;
0045     void setThumbnailSize(int size);
0046     void setViewType(DB::Category::ViewType type);
0047     QString icon() const;
0048     void setIcon(const QString &icon);
0049     QString originalName() const;
0050     void markAsNewCategory();
0051 
0052 protected:
0053     void renameCategory(DB::MemberMap *memberMap);
0054 
0055 private: // Variables
0056     QString m_categoryOrig;
0057     QString m_iconOrig;
0058     bool m_positionable;
0059     bool m_positionableOrig;
0060     QString m_category;
0061     QString m_text;
0062     QString m_icon;
0063     DB::Category::ViewType m_type;
0064     DB::Category::ViewType m_typeOrig;
0065     int m_thumbnailSize;
0066     int m_thumbnailSizeOrig;
0067 };
0068 
0069 }
0070 
0071 #endif // SETTINGS_CATEGORYITEM_H
0072 
0073 // vi:expandtab:tabstop=4 shiftwidth=4: