19 #include "qgssettings.h"
31 :
QgsDataCollectionItem( parent, name, QStringLiteral(
"favorites:" ), QStringLiteral(
"special:Favorites" ) )
36 mIconName = QStringLiteral(
"/mIconFavorites.svg" );
46 const QStringList favDirs = settings.value( QStringLiteral(
"browser/favourites" ), QVariant() ).toStringList();
49 for (
const QString &favDir : favDirs )
51 const QStringList parts = favDir.split( QStringLiteral(
"|||" ) );
55 const QString dir = parts.at( 0 );
57 if ( parts.count() > 1 )
68 const QString
name = n.isEmpty() ? favDir : n;
71 QStringList favDirs = settings.value( QStringLiteral(
"browser/favourites" ) ).toStringList();
72 favDirs.append( QStringLiteral(
"%1|||%2" ).arg( favDir,
name ) );
73 settings.setValue( QStringLiteral(
"browser/favourites" ), favDirs );
91 QStringList favDirs = settings.value( QStringLiteral(
"browser/favourites" ) ).toStringList();
92 for (
int i = favDirs.count() - 1; i >= 0; --i )
94 const QStringList parts = favDirs.at( i ).split( QStringLiteral(
"|||" ) );
98 const QString dir = parts.at( 0 );
100 favDirs.removeAt( i );
102 settings.setValue( QStringLiteral(
"browser/favourites" ), favDirs );
107 QgsDebugMsg( QStringLiteral(
"favorites item %1 not found" ).arg( item->
path() ) );
118 QgsSettings settings;
119 QStringList favDirs = settings.value( QStringLiteral(
"browser/favourites" ) ).toStringList();
120 for (
int i = 0; i < favDirs.count(); ++i )
122 const QStringList parts = favDirs.at( i ).split( QStringLiteral(
"|||" ) );
126 const QString dir = parts.at( 0 );
129 QStringList newParts {
path,
name };
130 favDirs[i] = newParts.join( QLatin1String(
"|||" ) );
134 settings.setValue( QStringLiteral(
"browser/favourites" ), favDirs );
137 const QVector<QgsDataItem *> ch =
children();
140 if (
QgsFavoriteItem *favorite = qobject_cast< QgsFavoriteItem * >( child ) )
142 if ( favorite->dirPath() ==
path )
144 favorite->setName(
name );
158 return QStringLiteral(
" 0" );
167 children.reserve( providers.size() );
172 if (
QgsDataItem *item = provider->createDataItem( directory,
this ) )
174 item->setName(
name );
191 :
QgsDirectoryItem( parent, name, dirPath, path, QStringLiteral(
"special:Favorites" ) )
192 , mFavorites( parent )
@ Populated
Children created.
@ Rename
Item can be renamed.
@ Fast
CreateChildren() is fast enough to be run in main thread when refreshing items, most root items (wms,...
@ Favorites
Represents a favorite item.
static QgsDataItemProviderRegistry * dataItemProviderRegistry()
Returns the application's data item provider registry, which keeps a list of data item providers that...
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
A Collection: logical collection of layers or subcollections, e.g.
QList< QgsDataItemProvider * > providers() const
Returns the list of available providers.
This is the interface for those who want to add custom data items to the browser tree.
Base class for all items in the model.
static int findItem(QVector< QgsDataItem * > items, QgsDataItem *item)
Qgis::BrowserItemType mType
virtual void deleteChildItem(QgsDataItem *child)
Removes and deletes a child item, emitting relevant signals to the model.
QVector< QgsDataItem * > mChildren
QVector< QgsDataItem * > children() const
Qgis::BrowserItemCapabilities mCapabilities
Qgis::BrowserItemState state() const
static QString pathComponent(const QString &component)
Create path component replacing path separators.
QString name() const
Returns the name of the item (the displayed text for the item).
virtual void addChildItem(QgsDataItem *child, bool refresh=false)
Inserts a new child item.
virtual void populate(const QVector< QgsDataItem * > &children)
A directory: contains subdirectories and layers.
QString dirPath() const
Returns the full path to the directory the item represents.
A directory item showing the a single favorite directory.
QgsFavoriteItem(QgsFavoritesItem *parent, const QString &name, const QString &dirPath, const QString &path)
Constructor for QgsFavoriteItem.
bool rename(const QString &name) override
Sets a new name for the favorite.
Contains various Favorites directories.
void addDirectory(const QString &directory, const QString &name=QString())
Adds a new directory to the favorites group.
QVariant sortKey() const override
Returns the sorting key for the item.
void removeDirectory(QgsDirectoryItem *item)
Removes an existing directory from the favorites group.
static QIcon iconFavorites()
Icon for favorites group.
QVector< QgsDataItem * > createChildren() override
Create children.
QgsFavoritesItem(QgsDataItem *parent, const QString &name, const QString &path=QString())
Constructor for QgsFavoritesItem.
void renameFavorite(const QString &path, const QString &name)
Renames the stored favorite with corresponding path a new name.