mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Fix PlacesItemModel loading with hidden devices
Summary: Make sure that hidden devices loaded after module initialization does not appear in the view. Check for item visibility before add it on the model. Test Plan: Unit test created Reviewers: franckarrecot Reviewed By: franckarrecot Subscribers: cfeck, ervin, #dolphin Differential Revision: https://phabricator.kde.org/D9441
This commit is contained in:
parent
a6ed2e7b6b
commit
94b2b2a2db
|
@ -392,6 +392,10 @@ void PlacesItemModel::dropMimeDataBefore(int index, const QMimeData* mimeData)
|
|||
|
||||
void PlacesItemModel::addItemFromSourceModel(const QModelIndex &index)
|
||||
{
|
||||
if (!m_hiddenItemsShown && m_sourceModel->isHidden(index)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const KBookmark bookmark = m_sourceModel->bookmarkForIndex(index);
|
||||
Q_ASSERT(!bookmark.isNull());
|
||||
PlacesItem *item = new PlacesItem(bookmark);
|
||||
|
|
|
@ -82,6 +82,7 @@ private slots:
|
|||
void testIcons_data();
|
||||
void testIcons();
|
||||
void testDragAndDrop();
|
||||
void testHideDevices();
|
||||
|
||||
private:
|
||||
PlacesItemModel* m_model;
|
||||
|
@ -758,6 +759,29 @@ void PlacesItemModelTest::testDragAndDrop()
|
|||
CHECK_PLACES_URLS(urls);
|
||||
}
|
||||
|
||||
void PlacesItemModelTest::testHideDevices()
|
||||
{
|
||||
QSignalSpy itemsRemoved(m_model, &PlacesItemModel::itemsRemoved);
|
||||
QStringList urls = initialUrls();
|
||||
|
||||
m_model->setGroupHidden(KFilePlacesModel::RemovableDevicesType, true);
|
||||
QTRY_VERIFY(m_model->isGroupHidden(KFilePlacesModel::RemovableDevicesType));
|
||||
QTRY_COMPARE(itemsRemoved.count(), 3);
|
||||
|
||||
// remove removable-devices
|
||||
urls.removeOne(QStringLiteral("/media/floppy0"));
|
||||
urls.removeOne(QStringLiteral("/media/XO-Y4"));
|
||||
urls.removeOne(QStringLiteral("/media/cdrom"));
|
||||
|
||||
// check if the correct urls was removed
|
||||
CHECK_PLACES_URLS(urls);
|
||||
|
||||
delete m_model;
|
||||
m_model = new PlacesItemModel();
|
||||
QTRY_COMPARE(m_model->count(), urls.count());
|
||||
CHECK_PLACES_URLS(urls);
|
||||
}
|
||||
|
||||
QTEST_MAIN(PlacesItemModelTest)
|
||||
|
||||
#include "placesitemmodeltest.moc"
|
||||
|
|
Loading…
Reference in a new issue