rssguard/src/librssguard/services/standard/standardcategory.h
2019-06-10 09:54:18 +02:00

43 lines
1.2 KiB
C++

// For license of this file, see <project-root-folder>/LICENSE.md.
#ifndef FEEDSMODELCATEGORY_H
#define FEEDSMODELCATEGORY_H
#include "services/abstract/category.h"
#include <QCoreApplication>
#include <QSqlRecord>
class FeedsModel;
class StandardServiceRoot;
// Base class for all categories contained in FeedsModel.
// NOTE: This class should be derived to create PARTICULAR category types.
// NOTE: This class should not be instantiated directly.
class StandardCategory : public Category {
Q_OBJECT
public:
explicit StandardCategory(RootItem* parent_item = nullptr);
explicit StandardCategory(const StandardCategory& other) = default;
explicit StandardCategory(const QSqlRecord& record);
virtual ~StandardCategory() = default;
StandardServiceRoot* serviceRoot() const;
// Returns the actual data representation of standard category.
Qt::ItemFlags additionalFlags() const;
bool performDragDropChange(RootItem* target_item);
bool canBeEdited() const;
bool canBeDeleted() const;
bool editViaGui();
bool deleteViaGui();
bool addItself(RootItem* parent);
bool editItself(StandardCategory* new_category_data);
bool removeItself();
};
#endif // FEEDSMODELCLASSICCATEGORY_H