Skip to content

Commit 5ea1162

Browse files
committed
Always create favourites item + expand the favourites item in dock widget
1 parent ba003e6 commit 5ea1162

File tree

4 files changed

+17
-26
lines changed

4 files changed

+17
-26
lines changed

src/app/qgsbrowserdockwidget.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,15 @@ void QgsBrowserDockWidget::showEvent( QShowEvent * e )
135135
mBrowserView->setTextElideMode( Qt::ElideNone );
136136
mBrowserView->header()->setResizeMode( 0, QHeaderView::ResizeToContents );
137137
mBrowserView->header()->setStretchLastSection( false );
138+
139+
// find root favourites item
140+
for ( int i = 0; i < mModel->rowCount(); i++ )
141+
{
142+
QModelIndex index = mModel->index( i, 0 );
143+
QgsDataItem* item = mModel->dataItem( index );
144+
if ( item && item->type() == QgsDataItem::Favourites )
145+
mBrowserView->expand( index );
146+
}
138147
}
139148

140149
QDockWidget::showEvent( e );

src/core/qgsbrowsermodel.cpp

+5-24
Original file line numberDiff line numberDiff line change
@@ -35,33 +35,14 @@ void QgsBrowserModel::addRootItems()
3535
mRootItems << item;
3636

3737
// add favourite directories
38-
QSettings settings;
39-
QStringList favDirs = settings.value( "/browser/favourites", QVariant() ).toStringList();
40-
// if there are 5 or more items, create a "Favourites" Root item
41-
// perhaps this should be the default?
42-
if ( favDirs.count() >= 5 )
38+
QgsFavouritesItem *favitem = new QgsFavouritesItem( NULL, tr( "Favourites" ) );
39+
if ( favitem )
4340
{
44-
QgsFavouritesItem *item = new QgsFavouritesItem( NULL, tr( "Favourites" ), "" );
45-
if ( item )
46-
{
47-
connectItem( item );
48-
mRootItems << item;
49-
}
50-
}
51-
else
52-
{
53-
foreach( QString favDir, favDirs )
54-
{
55-
item = new QgsDirectoryItem( NULL, favDir, favDir );
56-
if ( item )
57-
{
58-
item->setIcon( QgsFavouritesItem::iconFavourites() );
59-
mRootItems << item;
60-
connectItem( item );
61-
}
62-
}
41+
connectItem( favitem );
42+
mRootItems << favitem;
6343
}
6444

45+
// add drives
6546
foreach( QFileInfo drive, QDir::drives() )
6647
{
6748
QString path = drive.absolutePath();

src/core/qgsdataitem.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -642,7 +642,7 @@ QgsErrorItem::~QgsErrorItem()
642642
QgsFavouritesItem::QgsFavouritesItem( QgsDataItem* parent, QString name, QString path )
643643
: QgsDataCollectionItem( parent, name, path )
644644
{
645-
mType = Collection; //favourites?
645+
mType = Favourites;
646646
mIcon = iconFavourites();
647647
}
648648

src/core/qgsdataitem.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class CORE_EXPORT QgsDataItem : public QObject
4848
Directory,
4949
Layer,
5050
Error,
51+
Favourites
5152
};
5253

5354
QgsDataItem( QgsDataItem::Type type, QgsDataItem* parent, QString name, QString path );
@@ -277,7 +278,7 @@ class CORE_EXPORT QgsFavouritesItem : public QgsDataCollectionItem
277278
{
278279
Q_OBJECT
279280
public:
280-
QgsFavouritesItem( QgsDataItem* parent, QString name, QString path );
281+
QgsFavouritesItem( QgsDataItem* parent, QString name, QString path = QString() );
281282
~QgsFavouritesItem();
282283

283284
QVector<QgsDataItem*> createChildren();

0 commit comments

Comments
 (0)