michaelh added inline comments.

INLINE COMMENTS

> bruns wrote in fileindexscheduler.cpp:148
> You can put the lambda into the `remove_if` invocation:
> 
>   auto tail = std::remove_if(list.begin(), list.end(),
>                              [&dir](const QString& file) {
>                                  return file.startsWith(dir);
>                              });

I suppose developers on my level will appreciate code to be most 
self-explanatory. I'm not objecting though, we might al well go "all the way":

  list.erase(std::remove_if(list.begin(), list.end(), [&dir](const QString& 
file) {
          return file.startsWith(dir);
      }), list.end());

> bruns wrote in pendingfilequeue.cpp:66
> You are missing the `m_pendingFiles.remove(...)` and 
> `m_recentlyEmitted.remove(...)` calls here.
> 
> Variant A:
> You can use `std::partition` instead of `std::remove_if` here (which keeps 
> the elements between tail and .end() intact), and iterate over the tail to 
> remove the elements from m_pendingFiles and m_recentlyEmitted. Last, do the 
> erase(tail, m_cache.end()).
> 
> Variant B:
> Use `std::remove_if`, but call `m_pendingFiles.remove()` (dito 
> m_recentlyEmitted) inside the lambda.
> 
> Variant A is definitely the much cleaner approach.

Ooops.

REPOSITORY
  R293 Baloo

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

To: michaelh, #baloo
Cc: bruns, #frameworks, ashaposhnikov, michaelh, astippich, spoorun, ngraham

Reply via email to