digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::SetupCollectionModel Class Reference
Inheritance diagram for Digikam::SetupCollectionModel:

Classes

class  Item

Public Types

enum  Category { CategoryLocal = 0 , CategoryRemovable = 1 , CategoryRemote = 2 , NumberOfCategories }
enum  Columns {
  ColumnStatus = 0 , ColumnName = 1 , ColumnPath = 2 , ColumnAppendButton = 3 ,
  ColumnUpdateButton = 4 , ColumnDeleteButton = 5 , NumberOfColumns
}
enum  SetupCollectionDataRole {
  IsCategoryRole = Qt::UserRole , CategoryButtonDisplayRole = Qt::UserRole + 1 , CategoryButtonMapId = Qt::UserRole + 2 , IsAppendRole = Qt::UserRole + 3 ,
  AppendDecorationRole = Qt::UserRole + 4 , AppendMapId = Qt::UserRole + 5 , IsUpdateRole = Qt::UserRole + 6 , UpdateDecorationRole = Qt::UserRole + 7 ,
  UpdateMapId = Qt::UserRole + 8 , IsDeleteRole = Qt::UserRole + 9 , DeleteDecorationRole = Qt::UserRole + 10 , DeleteMapId = Qt::UserRole + 11
}
 SetupCollectionModel is a model specialized for use in SetupCollectionTreeView. More...

Public Slots

void slotAppendPressed (int mappedId)
 Forward button clicked signals to this slot.
void slotCategoryButtonPressed (int mappedId)
 Forward category button clicked signals to this slot.
void slotDeletePressed (int mappedId)
void slotUpdatePressed (int mappedId)

Signals

void collectionsLoaded ()
 Emitted when all collections were loaded and the model reset in loadCollections.

Public Member Functions

 SetupCollectionModel (QObject *const parent=nullptr)
 Internal data structure:
void apply ()
 Apply the changed settings to CollectionManager.
QList< QModelIndex > categoryIndexes () const
int columnCount (const QModelIndex &parent=QModelIndex()) const override
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 QAbstractItemModel implementation.
Qt::ItemFlags flags (const QModelIndex &index) const override
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
QModelIndex indexForCategory (Category category) const
void loadCollections ()
 Read collections from CollectionManager.
QModelIndex parent (const QModelIndex &index) const override
int rowCount (const QModelIndex &parent=QModelIndex()) const override
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
void setParentWidgetForDialogs (QWidget *const widget)
 Set a widget used as parent for dialogs and message boxes.

Public Attributes

QString lastAddedCollectionPath

Protected Slots

void addCollection (int category)
void deleteCollection (int internalId)
void updateCollection (int internalId)

Protected Member Functions

bool askForNewCollectionCategory (int *const category)
bool askForNewCollectionPath (bool adding, int category, QString *const newPath, QString *const newLabel)
int buttonMapId (const QModelIndex &index) const
int categoryButtonMapId (const QModelIndex &index) const
QModelIndex indexForId (int id, int column) const

Static Protected Member Functions

static Category typeToCategory (CollectionLocation::Type type)

Protected Attributes

QList< Item > m_collections
QWidget * m_dialogParentWidget = nullptr

Member Enumeration Documentation

◆ SetupCollectionDataRole

It provides a reads the current collections from CollectionManager, displays them in three categories, and supports adding and removing collections

Enumerator
IsCategoryRole 
Returns
true if the model index is the index of a category
CategoryButtonDisplayRole 

The text for the category button.

IsAppendRole 
Returns
true if the model index is the index of a button
AppendDecorationRole 

The pixmap of the button.

IsUpdateRole 
Returns
true if the model index is the index of a button
UpdateDecorationRole 

The pixmap of the button.

IsDeleteRole 
Returns
true if the model index is the index of a button
DeleteDecorationRole 

The pixmap of the button.

Constructor & Destructor Documentation

◆ SetupCollectionModel()

Digikam::SetupCollectionModel::SetupCollectionModel ( QObject *const parent = nullptr)
explicit

The category entries get a model index with INTERNALID and are identified by their row(). The item entries get the index in m_collections as INTERNALID. No item is ever removed from m_collections, deleted entries are only marked as such.

Items have a location, a parentId, and a name and label field. parentId always contains the category, needed to implement parent(). The location is the location if it exists, or is null if the item was added. Name and label are null if unchanged, then the values from location are used. They are valid if edited (label) or the location was added (both valid, location null).

Member Function Documentation

◆ slotAppendPressed

void Digikam::SetupCollectionModel::slotAppendPressed ( int mappedId)
slot

mappedId is retrieved with the ButtonMapId role for the model index of the button

◆ slotCategoryButtonPressed

void Digikam::SetupCollectionModel::slotCategoryButtonPressed ( int mappedId)
slot

mappedId is retrieved with the CategoryButtonMapId role for the model index of the button