17#ifndef QGSCPTCITYARCHIVE_H
18#define QGSCPTCITYARCHIVE_H
25#include <QAbstractItemModel>
33#define DEFAULT_CPTCITY_ARCHIVE "cpt-city-qgis-min"
44 const QString &
baseDir = QString() );
54 void setBaseDir(
const QString &dirName ) { mBaseDir = dirName; }
57 QString copyingFileName(
const QString &dirName )
const;
58 QString descFileName(
const QString &dirName )
const;
59 static QString findFileName(
const QString &target,
const QString &startDir,
const QString &baseDir );
60 static QMap< QString, QString > copyingInfo(
const QString &fileName );
61 static QMap< QString, QString > description(
const QString &fileName );
63 static QMap< double, QPair<QColor, QColor> > gradientColorMap(
const QString &fileName )
SIP_SKIP;
69 static void initArchives(
bool loadAll =
false );
70 static void initArchive(
const QString &archiveName,
const QString &archiveBaseDir );
71 static void initDefaultArchive();
72 static void clearArchives();
74 static QMap< QString, QgsCptCityArchive * > archiveRegistry();
77 QVector< QgsCptCityDataItem * >
rootItems()
const {
return mRootItems; }
78 QVector< QgsCptCityDataItem * >
selectionItems()
const {
return mSelectionItems; }
85 QVector< QgsCptCityDataItem * > mRootItems;
86 QVector<QgsCptCityDataItem *> mSelectionItems;
113 const QString &name,
const QString &path );
122 virtual int leafCount()
const;
126 virtual void refresh();
131 virtual QVector<QgsCptCityDataItem *> createChildren();
136 virtual void populate();
184 Q_DECL_DEPRECATED
virtual bool handleDrop(
const QMimeData *data, Qt::DropAction action )
SIP_DEPRECATED { Q_UNUSED( data ); Q_UNUSED( action );
return false; }
200 virtual QIcon
icon( QSize size ) { Q_UNUSED( size )
return icon(); }
283 const QString &
name,
const QString &
path,
284 const QString &variantName = QString(),
285 bool initialize =
false );
287 const QString &
name,
const QString &
path,
288 const QStringList &variantList,
289 bool initialize =
false );
298 QIcon icon()
override;
299 QIcon icon( QSize size )
override;
319 const QString &
name,
const QString &
path );
324 QVector<QgsCptCityDataItem *> childrenRamps(
bool recursive );
339 const QString &
name,
const QString &
path );
346 const QString &
name,
const QString &
path );
349 QMap< QString, QStringList >
rampsMap();
385 const QVector<QgsCptCityDataItem *> &items );
413 ViewType Type = Authors );
417 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
418 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
419 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
420 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
421 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
422 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
426 QModelIndex parent(
const QModelIndex &index )
const override;
433 bool hasChildren(
const QModelIndex &parent = QModelIndex() )
const override;
439 void refresh(
const QString &path );
442 void refresh(
const QModelIndex &index = QModelIndex() );
445 QModelIndex findPath(
const QString &path );
449 bool canFetchMore(
const QModelIndex &parent )
const override;
450 void fetchMore(
const QModelIndex &parent )
override;
455 void endInsertItems();
457 void endRemoveItems();
463 void removeRootItems();
QgsCptCityAllRampsItem(QgsCptCityDataItem *parent, const QString &name, const QVector< QgsCptCityDataItem * > &items)
QVector< QgsCptCityDataItem * > mItems
QVector< QgsCptCityDataItem * > createChildren() override
Returns a vector of children items.
Represents a CPT City color scheme.
static QString defaultBaseDir()
QVector< QgsCptCityDataItem * > rootItems() const
QString archiveName() const
static QgsCptCityArchive * defaultArchive()
QgsCptCityArchive & operator=(const QgsCptCityArchive &rh)=delete
void setBaseDir(const QString &dirName)
QgsCptCityArchive(const QString &archiveName=DEFAULT_CPTCITY_ARCHIVE, const QString &baseDir=QString())
QVector< QgsCptCityDataItem * > selectionItems() const
QgsCptCityArchive(const QgsCptCityArchive &rh)=delete
A custom item model for display of CPT City color palettes.
QgsCptCityArchive * mArchive
QgsCptCityBrowserModel(QObject *parent=nullptr, QgsCptCityArchive *archive=QgsCptCityArchive::defaultArchive(), ViewType Type=Authors)
QVector< QgsCptCityDataItem * > mRootItems
void addChild(QgsCptCityDataItem *item)
QgsCptCityCollectionItem(QgsCptCityDataItem *parent, const QString &name, const QString &path)
const QgsCptCityColorRamp & ramp() const
bool equal(const QgsCptCityDataItem *other) override
Returns true if this item is equal to an other item.
int leafCount() const override
Returns the total count of "leaf" items (all children which are end nodes).
QgsCptCityColorRampItem(QgsCptCityDataItem *parent, const QString &name, const QString &path, const QString &variantName=QString(), bool initialize=false)
QgsCptCityColorRamp mRamp
A color ramp from the CPT City collection.
Base class for all items in a QgsCptCityBrowserModel model.
QgsCptCityDataItem * parent() const
void setToolTip(const QString &msg)
void beginRemoveItems(QgsCptCityDataItem *parent, int first, int last)
Emitted before child items are removed from this data item.
QString shortInfo() const
virtual Q_DECL_DEPRECATED bool acceptDrop()
Returns true if the item accepts drag & dropped layers - e.g.
virtual Q_DECL_DEPRECATED bool handleDrop(const QMimeData *data, Qt::DropAction action)
Tries to process the data dropped on this item.
void endRemoveItems()
Emitted after child items have been removed from this data item.
bool isPopulated()
Returns true if the item is already populated.
QVector< QgsCptCityDataItem * > mChildren
void endInsertItems()
Emitted after child items have been added to this data item.
void setParent(QgsCptCityDataItem *parent)
virtual Q_DECL_DEPRECATED QWidget * paramWidget()
virtual QIcon icon(QSize size)
QgsCptCityDataItem * mParent
void setIcon(const QIcon &icon)
QgsCptCityDataItem(QgsCptCityDataItem::Type type, QgsCptCityDataItem *parent, const QString &name, const QString &path)
QVector< QgsCptCityDataItem * > children() const
void beginInsertItems(QgsCptCityDataItem *parent, int first, int last)
Emitted before child items are added to this item.
QStringList dirEntries() const
static QgsCptCityDataItem * dataItem(QgsCptCityDataItem *parent, const QString &name, const QString &path)
QVector< QgsCptCityDataItem * > createChildren() override
Returns a vector of children items.
QgsCptCityDirectoryItem(QgsCptCityDataItem *parent, const QString &name, const QString &path)
QMap< QString, QStringList > mRampsMap
bool equal(const QgsCptCityDataItem *other) override
Returns true if this item is equal to an other item.
QMap< QString, QStringList > rampsMap()
A selection which contains subdirectories and color ramps for use in QgsCptCityBrowserModel.
QVector< QgsCptCityDataItem * > createChildren() override
Returns a vector of children items.
QgsCptCitySelectionItem(QgsCptCityDataItem *parent, const QString &name, const QString &path)
bool equal(const QgsCptCityDataItem *other) override
Returns true if this item is equal to an other item.
QStringList mSelectionsList
QStringList selectionsList() const
#define DEFAULT_CPTCITY_ARCHIVE