elvisangelaccio added a comment.

  I think I figured out what's going on. This seems to be a regression 
introduced by 
https://phabricator.kde.org/rPLASMAINTEGRATION25be75542f831863e905b590b6429127df1b13d3.
 If I revert this commit, this test passes.
  
  So, this is what's happening. In this example I'm considering the 
`text/x-chdr` test case:
  
  1. The test calls `dialog.setMimeTypeFilters("text/x-chdr")` and then 
`dialog.show()`
  2. `KDEPlatformFileDialogHelper::show()` calls `initializeDialog()`
  3. In `initiliazeDialog()` we end up appending `text/x-chdr` to the filters 
of `m_fileWidget`'s KFileFilterCombo (`d->m_filters` in 
`kio.git/src/filewidgets/kfilefiltercombo.cpp`)
  4. In the test we call `dialog.selectMimeTypeFilter("text/x-chdr")`
  5. QFileDialog calls `selectNameFilter("C header (*.h)")`
  6. KDEPlatformFileDialogHelper calls 
`selectNameFilter(qt2KdeFilter(QStringList("C header (*.h)")))`
  7. KDEPlatformFileDialog calls `filterWidget()->setCurrentFilter("*.h|C 
header ")`
  8. The KFileFilterCombo ends up calling 
`setCurrentIndex(d->m_filters.indexOf("*.h|C header "))` which fails because 
`d->m_filters` contains only `text/x-chdr`.
  9. `dialog.selectedNameFilter()` returns an empty string because of step 8.
  
  So the bug seems to be in the step 3. Before of commit 
https://phabricator.kde.org/rPLASMAINTEGRATION25be75542f831863e905b590b6429127df1b13d3,
 `d->m_filters` would also receive `*.h|C header ` which would make the test 
pass.
  
  But I'm still not sure how to properly fix this...

REPOSITORY
  rPLASMAINTEGRATION Integration for Qt applications in Plasma

REVISION DETAIL
  https://phabricator.kde.org/D2365

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: elvisangelaccio, dfaure, graesslin
Cc: plasma-devel, ali-mohamed, jensreuterberg, abetts, sebas

Reply via email to