Is it possible with Qt to have a very fast & responsive live filtering list of hundreds of thousands items? (like Everything-Search)



  • Here's a short webm of "Everything Search Engine":http://s1.webmshare.com/54KKv.webm is about
    It lists every single file on your hard drives (assuming NTFS) and filters live through them as you type.

    Is Qt capable of providing such very responsive functionality if there would be million files in the list?

    The idea is made something similar to everything on linux, using locate results as the source for it.
    I am a noobie learning python and very little experience, I used PySide to just try test the concept.
    "Heres":http://pastebin.com/s3fDchTe it is in 50 lines. Its just me being interested.
    idea is you run

    @locate . > every.txt@

    to get linux locate output that you can then use.

    As I said, I am a noob and I am mostly interested if its possible, and if so, how?

    Recommendation in what direction to go? Using database for files instead of reading them from a file? switching from ListWidget to ListView. Change the way the list is being filtered?

    Just generic recommendations in which directions to go

    here you can find Everything if interested
    http://www.voidtools.com/



  • Hi
    this is only possible to indexing all files on you system.
    http://www.voidtools.com/faq/#How_long_will_it_take_to_index_my_files

    Add yes you can do the same with qt and linux as well.
    The main problem here is that you have to update your file data with every change so that the displayed info is always accurate.

    locate and updatedb is one way to achieve this under linux.
    As far as I know has kde and gnome an own file index mechanism.

    Check out the existing projects and find out where the bottle necks are and how they solved the problems.

    To display the files its quite simple MVC pattern is your friend.

    Cheers J



  • Thanks for an answer, will check on the MVC

    Currently I am trying to go the way of loading the results of "locate ." in to a database, then adding extension FTS4 which should provide very fast full text searches
    http://www.sqlite.org/fts3.html

    And then limiting the results of the database search to 1000 items and adding only those in to QListWidget.
    This way it is relatively fast and responsive when working with 1 million items/files, as it eliminates stuttering of trying to ram thousands of results on the first three key strokes as a person starts to type.
    but I did not move further yet.
    If going this way, how to simulate that the list is huge and load next stuff on scroll or pagedown. I am thinking there I will gonna have some problems.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.