Reactos Search prototype

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

cruonit
Posts: 250
Joined: Mon Jun 29, 2009 12:57 am

Reactos Search prototype

Post by cruonit »

I had some free time and constucted an search application(my first prototype) in pure win32 api for reactos with some inspiration from Explorer++


How it looks like in reactos
[ external image ]


the same .exe on windows 8:

[ external image ]
looks like LV_VIEW_TILE (first implemented in ListView version 6) has some bugs (has anybody used it ?? , i think thats also the problem with explorer++ icons not showing).



this are my first results it's pretty fast, it searches the whole system in less than a minute (i have firefox, opera, vmwaretools, totalcommander, .net frmw 2.0, MSVC++ runtime etc. installed).

its multithreaded.

TODO:
- port it from MSVC to cmake/gcc
- Decomposition - pack it inside an DLL and the view as an user control(to be used as
%SystemRoot%\explorer.exe search-ms: OR %windir%\explorer.exe shell:::{9343812e-1c37-4a49-a12e-4b2d810d956b}) like: http://pokit.org/get/?52b8d3492eb9647cb ... 1698e7.png so that the search can be enbedded inside explorer (although other layout)
- fix the title_view or use other listview layout in order to show the icons and additional data
- implement infile search -trivial

Next step:
- clucene based Reactos Service that indexes the system in background when the user is away from kb (i had allready worked with clucene)
- query the service inside the frontennd - trivial

hbelusca
Developer
Posts: 1169
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Reactos Search prototype

Post by hbelusca »

That looks nice ! It would be great to find a way to incorporate in our shell :) (if you have a look at our current search functionality (Start Menu --> Search --> ...) you will see that file searching is indeed unimplemented (and the error message gives the name of the unimplemented shell API).

vicmarcal
Test Team
Posts: 2732
Joined: Mon Jul 07, 2008 12:35 pm

Re: Reactos Search prototype

Post by vicmarcal »

One of the best things of creating useful apps as this one is that:
1)We can include that code as part of our Shell.
2)We can find bugs in ReactOS.

As you are pointing seems LV_VIEW_TILE[quote][/quote] is not implemented or bugged because the list view seems to be shown as LV_VIEW_DETAILS.

In this case:you found a valid bug,you know the causes and you can even include the .exe that reveaks it and its sourcecode,you should consider to report it in Reactos Jira.

Code: Select all

09040 static INT LISTVIEW_SetView(LISTVIEW_INFO *infoPtr, DWORD nView)
09041 { 
09042 SIZE oldIconSize = infoPtr->iconSize; 
09043 HIMAGELIST himl; 
09044 
09045 if (infoP ((INT)nView tr->uView == nView) return 1; 
09046 
09047 if < 0 || nView > LV_VIEW_MAX) return -1; 
09048 if (nView == LV_VIEW_TILE) 
09049 { 
09050 FIXME("View LV_VIEW_TILE unimplemented\n"); 
09051 return -1; 
09052 }

hbelusca
Developer
Posts: 1169
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Reactos Search prototype

Post by hbelusca »

And....

.... as you might know, this ListView code (as well as all the other code for the "common controls", in comctl32.dll) comes from Wine (since we share Wine code :) ). So, if you want to fix it, you should create a patch on the Wine code, by downloading their code (Git-repo), do the modifs, create the patch, send it to them and, if it is accepted and committed by the Wine team, it will be present in our code base at the next sync.

manuel
Posts: 408
Joined: Thu Jan 28, 2010 11:20 pm
Location: México
Contact:

Re: Reactos Search prototype

Post by manuel »

vicmarcal wrote:We can include that code as part of our Shell.
+1 8-)

milon
Posts: 969
Joined: Sat Sep 05, 2009 9:26 pm

Re: Reactos Search prototype

Post by milon »

cruonit wrote:I had some free time and constucted an search application(my first prototype) in pure win32 api for reactos with some inspiration from Explorer++
Awesome work, cruonit! Way to go!

cruonit
Posts: 250
Joined: Mon Jun 29, 2009 12:57 am

Re: Reactos Search prototype

Post by cruonit »

http://www.reactos.org/wiki/Search

i think i will have more time next week to continue to work on it.

vicmarcal
Test Team
Posts: 2732
Joined: Mon Jul 07, 2008 12:35 pm

Re: Reactos Search prototype

Post by vicmarcal »

cruonit wrote:http://www.reactos.org/wiki/Search

i think i will have more time next week to continue to work on it.

Awesome Wikipage!
Remember to begin with the basics and slowly going into more complex and difficult features.
That will help to reveal bugs as the ListView, and we will be able to go fixing them while your app goes improving :)

User avatar
jonaspm
Posts: 585
Joined: Mon Nov 21, 2011 1:10 am
Location: Mexico
Contact:

Re: Reactos Search prototype

Post by jonaspm »

manuel wrote:
vicmarcal wrote:We can include that code as part of our Shell.
+1 8-)
+1

PurpleGurl
Posts: 1788
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Reactos Search prototype

Post by PurpleGurl »

Can you use it with the index service disabled? In XP, I always disabled the service as I preferred to use just the crawl method. In 7, that is not an option, as the search ability and indexer are a single service.

hto
Developer
Posts: 2193
Joined: Sun Oct 01, 2006 3:43 pm

Re: Reactos Search prototype

Post by hto »

And please do not call it cidaemon.exe, as MS unwisely did in WinXP! It appears that some people disable the indexing service and even completely remove this file from the disk because of its unfortunate name. And someone already complained on this forum about the use of such a word in ReactOS, so it was changed to "service".

:)

cruonit
Posts: 250
Joined: Mon Jun 29, 2009 12:57 am

Re: Reactos Search prototype

Post by cruonit »

@PurpleGurl, of course :)

I always disabled the indexing service in windows until i learned how it works - only when the user is idle. The good thing with the indexing service is it enables a quick(almost instant) fulltext search of documents(only if a ifilter for that specific type exists)


daemon is somekind of more native to linux but they like the short version like indexd or searchd

wikipedia:
The term was coined by the programmers of MIT's Project MAC. They took the name from Maxwell's demon, an imaginary being from a famous thought experiment that constantly works in the background, sorting molecules.[2] Unix systems inherited this terminology. Daemons are also characters in Greek mythology, some of whom handled tasks that the gods could not be bothered with. BSD and some of its derivatives have adopted a daemon as its mascot, although this mascot is a variation of the demons that appear in Christian artwork.

The word daemon is an alternative spelling of demon,[3] and is pronounced /ˈdiːmən/ dee-mən. In the context of computer software, the original pronunciation /ˈdiːmən/ has drifted to /ˈdeɪmən/ day-mən for some speakers.[1]

Alternate terms for daemon are service (Microsoft Windows NT), started task (IBM z/OS),[4] server virtual machine (IBM VM), ghost job (XDS UTS).

hto
Developer
Posts: 2193
Joined: Sun Oct 01, 2006 3:43 pm

Post by hto »

cruonit wrote: […] only when the user is idle.
And (probably) when laptop is not on battery.
wikipedia:
[…]
It was easier to fix then to argue. :)

hbelusca
Developer
Posts: 1169
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Reactos Search prototype

Post by hbelusca »

hto wrote:And please do not call it cidaemon.exe, as MS unwisely did in WinXP! It appears that some people disable the indexing service and even completely remove this file from the disk because of its unfortunate name. And someone already complained on this forum about the use of such a word in ReactOS, so it was changed to "service".

:)
Weird, nobody acts like that under Linux/Unix.

hbelusca
Developer
Posts: 1169
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Reactos Search prototype

Post by hbelusca »

cruonit wrote:@PurpleGurl, of course :)

I always disabled the indexing service in windows until i learned how it works - only when the user is idle. The good thing with the indexing service is it enables a quick(almost instant) fulltext search of documents(only if a ifilter for that specific type exists)

[...]
If you implement text search inside files, cruonit, I recommend you to allow the user to perform searches with reg-exps (as you did for file names) (as grep does) for ALL types of files (or for a given set of types of files, an option must provide this choice to the user), and let the user be able to do searches with the index-service disabled (e.g. I never trust search results given with windows 7, especially those for text-search inside files). Optionally a binary search in files can be provided (can be useful in some cases) :) .

Locked

Who is online

Users browsing this forum: Baidu [Spider] and 1 guest