Members of the KDE Community are recommended to subscribe to the kde-community mailing list at https://mail.kde.org/mailman/listinfo/kde-community to allow them to participate in important discussions and receive other important announcements

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
parent a6ed2e7b
......@@ -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"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment