17#ifndef QGSCPTCITYARCHIVE_H
18#define QGSCPTCITYARCHIVE_H
25#include <QAbstractItemModel>
34#define DEFAULT_CPTCITY_ARCHIVE "cpt-city-qgis-min"
58 void setBaseDir(
const QString &dirName ) { mBaseDir = dirName; }
61 QString copyingFileName(
const QString &dirName )
const;
62 QString descFileName(
const QString &dirName )
const;
63 static QString findFileName(
const QString &target,
const QString &startDir,
const QString &baseDir );
64 static QMap< QString, QString > copyingInfo(
const QString &fileName );
65 static QMap< QString, QString > description(
const QString &fileName );
67 static QMap< double, QPair<QColor, QColor> > gradientColorMap(
const QString &fileName )
SIP_SKIP;
73 static void initArchives(
bool loadAll =
false );
74 static void initArchive(
const QString &archiveName,
const QString &archiveBaseDir );
75 static void initDefaultArchive();
76 static void clearArchives();
78 static QMap< QString, QgsCptCityArchive * > archiveRegistry();
81 QVector< QgsCptCityDataItem * >
rootItems()
const {
return mRootItems; }
82 QVector< QgsCptCityDataItem * >
selectionItems()
const {
return mSelectionItems; }
88 QVector< QgsCptCityDataItem * > mRootItems;
89 QVector<QgsCptCityDataItem *> mSelectionItems;
123 virtual int leafCount()
const;
127 virtual void refresh();
132 virtual QVector<QgsCptCityDataItem *> createChildren();
137 virtual void populate();
206 virtual QIcon
icon( QSize size )
301 QIcon icon()
override;
302 QIcon icon( QSize size )
override;
325 QVector<QgsCptCityDataItem *> childrenRamps(
bool recursive );
348 QMap< QString, QStringList >
rampsMap();
412 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
413 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
414 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
415 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
416 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
417 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
421 QModelIndex parent(
const QModelIndex &index )
const override;
428 bool hasChildren(
const QModelIndex &parent = QModelIndex() )
const override;
434 void refresh(
const QString &path );
437 void refresh(
const QModelIndex &index = QModelIndex() );
440 QModelIndex findPath(
const QString &path );
444 bool canFetchMore(
const QModelIndex &parent )
const override;
445 void fetchMore(
const QModelIndex &parent )
override;
450 void endInsertItems();
452 void endRemoveItems();
457 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()
static const QgsSettingsEntryString * settingsCptCityArchiveName
QVector< QgsCptCityDataItem * > rootItems() const
QString archiveName() const
static QgsCptCityArchive * defaultArchive()
QgsCptCityArchive & operator=(const QgsCptCityArchive &rh)=delete
void setBaseDir(const QString &dirName)
static const QgsSettingsEntryString * settingsCptCityBaseDir
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