IPXV_SearchView.GetParams - what's inside?  SOLVED

PDF-XChange Editor SDK for Developers

Moderators: TrackerSupp-Daniel, Tracker Support, Paul - Tracker Supp, Vasyl-Tracker Dev Team, Chris - Tracker Supp, Sean - Tracker, Ivan - Tracker Software, Tracker Supp-Stefan

Forum rules
DO NOT post your license/serial key, or your activation code - these forums, and all posts within, are public and we will be forced to immediately deactivate your license.

When experiencing some errors, use the IAUX_Inst::FormatHRESULT method to see their description and include it in your post along with the error code.
Post Reply
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Support,

Having my hands on IPXV_SearchView - what's inside GetParams ICab ?

I'm trying to find a quick/direct way to figure out if the SearchView is presenting (or working on retrieving) results for "search in folder".

p.s.
I know I can catch e.operBeforeExecute for op.search and peek inside Params.Root['Input'] to see if the input is a folder and then store this ... and so on .... but I'm interested in those Params of the IPXV_SearchView.


-žarko
Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

Re: IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

Hello zarkogajic,

The g_SearchViewParams template is inside of the ICab:

Code: Select all

ITEMS(g_SearchFolder)
{
	{ L"FS",						dt_String,			0,							_S("") },			// FileSystem identifier
	{ L"P",							dt_String,			0,							_S("") },			// src path (local path may include '%MyDocuments%', '%Desktop%' etc.)
	{ L"PX",						dt_String,			0,							_S("") },			// expanded local path (not included '%MyDocuments%', '%Desktop%' etc.)
	//
	{}
};

ITEMS(g_SearchOptions)
{
	{ L"Flags",						dt_Int,				0,							PXV_SearchFlag_IncludePageText | PXV_SearchFlag_IncludeBookmarks | PXV_SearchFlag_IncludeAnnotations | PXV_SearchFlag_IncludeFormFields | PXV_SearchFlag_LookInSubFolders },
	{ L"Proximity",					dt_Int,				0,							0 },
	//
	{ L"MaxResDocs",				dt_Int,				0,							-1 },
	{ L"MaxResEntries",				dt_Int,				0,							-1 },
	{ L"MaxEmbeddDepth",			dt_Int,				0,							-1 },
	{ L"MaxFolderDepth",			dt_Int,				0,							-1 },
	//
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// start/stop points for one document (undefined by default)
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//
	{ L"StartPage",					dt_Int,				0,							0 },
	{ L"StopPage",					dt_Int,				0,							-1 },

	{ L"Cyclic",					dt_Bool,			0,							_N(false),	&g_NamedBool }, // also search on [0..startPage-1] pages for normal direction
	//
	{}
};

ITEMS_PUB(g_OpSearchOptions)
{
	DIC_BASE(g_SearchOptions),
	//
	ARR( L"AND",					0,										&g_StringItem ),
	ARR( L"OR",						0,										&g_StringItem ),
	ARR( L"NOT",					0,										&g_StringItem ),
	//
	{ L"GetTextOptions",			dt_IUnknown,							NULL }, // NULL - to use default 'get text options'
	{ L"Progress",					dt_IUnknown,							NULL },
	{ L"Callback",					dt_IUnknown,							NULL },
	{ L"PageSet",					dt_IUnknown,							NULL }, // IBitSet, used for DocFind feature!
	//
	{}
};

ITEMS_PUB(g_SearchViewParams)
{
	// options
	DIC_BASE(g_SearchOptions),
	// simple
	{ L"TextSimple",				dt_String,		0,						_S("") },
	// extended
	{ L"UseExt",					dt_Bool,		0,						_N(false),	&g_NamedBool },
	{ L"TextAll",					dt_String,		0,						_S("") },
	{ L"TextAny",					dt_String,		0,						_S("") },
	{ L"TextNot",					dt_String,		0,						_S("") },
	// dest
	{ L"Where",						dt_Int,			0,						SearchWhere_InActiveDoc }, // "in active document", "in opened documents", "in folder", "in specified documents"
	DIC(L"Folder",					0,				g_SearchFolder),
	//
	{ L"DisabledControls",			dt_Int,			0,						0 },
	//
	{ L"ExpandAll",					dt_Bool,		0,						_N(true),	&g_NamedBool },
	//
	{ L"ShowContextBookmarks",		dt_Bool,		0,						_N(true),	&g_NamedBool },
	{ L"ShowPageNum",				dt_Bool,		0,						_N(true),	&g_NamedBool },
	{ L"ShowCommentTypes",			dt_Bool,		0,						_N(true),	&g_NamedBool },
	//
	{}
};
Cheers,
Alex
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Alex,

Thanks. I've never tried working with such ICab structure. I'm not sure how to extract, for example, "DIC(L"Folder","..." from IPXV_SearchView.GetParams.

How would that go?

Code: Select all

IPXV_SearchView.GetParams.Root["Input"] .. ?

-žarko
Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

Re: IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

Hello zarkogajic,

That would be:

Code: Select all

ICabNode options = pView.GetParams.Root;
ICabNode folder = options["Folder"];
folder["FS"].v = "XYZ";
Cheers,
Alex
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Alex,

Straightforward :)

Thanks.

-žarko
Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

:)
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Support,

The g_SearchViewParams template mentions "in specified documents" as a possible option for L"Where".

With op.search operation: how to specify "specified documents" ? Is that an array of IPXC_Documents (essentially what's used with "in all open documents"), or can it also be an array of IID_IAFS_Name/IID_IAFS_File/IString specifing particular (non open) files by their full path name?

Essentially I'm looking for a way to specify an array of documents by their file name for the op.search operation.


-žarko
Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

Re: IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

Hello zarkogajic,

All of this goes into the operation's input (as the input is an array of IUnknown). Basically, you can pass IAFS_Name interfaces there or IPXC_Document interfaces if you have those.

Cheers,
Alex
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Alex,

I've tried adding two afsName files into Input - only the first one is searched.

Also , I've tried adding two folders - only the first one added is searched upon.

-žarko
Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

Re: IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

Hello zarkogajic,

Hmm it seemed that it should work like that... From what I see, an array of the IPXC_Document interfaces would be processed correctly for sure.

Cheers,
Alex
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

HI Alex,

Yes, an array of IPXC_Document does. But only the fist IAFS_Name.

Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

Re: IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

Hello zarkogajic,

It seems that it can use an array of documents only, one name and one folder. I will check with the responsible developer why is logic coded like that.

Cheers,
Alex
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Alex,

If you are to reimplement this, please consider:

Ideally I would like to be able to add multiple folders and/or files (not ipxc or ipxv documents, but an array of IAFS_Name, IAFS_File or IString) to the op.search input list.

Also, I would want to be able to skip/ignore some of the added files in, for example, IPXV_SearchCallback's OnStartPtr / OnStopPtr (before search goes "into" them looking for results: viewtopic.php?f=66&t=34498&sid=4ade7c3f ... 5c#p143217).

I would also like to skip some of the subfolders (when added entry is a folder and PXV_SearchFlag_LookInSubFolders is set).

So, say I'm adding:

\folder1
\folder2
\folder3\file3.pdf

Where folder2 has two subfolders
\folder2\sub2a
\folder2\sub2b

files can be in any of the added folders.

Then to be able to skip/ignore, for example, "folder1" and all or some files in "\folder2\sub2b", etc...

p.s.
This of course is more related to op.search (called from code) - not maybe directly to IPXV_SearchView - as implementing all the above options (adding multiple folder/file entries) in IPXV_SearchView would be "too much" for an ordinary user.


-žarko
Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

Re: IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

Hello zarkogajic,

Thanks, we'll take that into consideration.

Cheers,
Alex
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?

Post by zarkogajic »

Hi Support,
It seems that it can use an array of documents only, one name and one folder. I will check with the responsible developer...
Any plans to have :
Ideally I would like to be able to add multiple folders and/or files (not ipxc or ipxv documents, but an array of IAFS_Name, IAFS_File or IString) to the op.search input list....
User avatar
Vasyl-Tracker Dev Team
Site Admin
Posts: 2351
Joined: Thu Jun 30, 2005 4:11 pm
Location: Canada

Re: IPXV_SearchView.GetParams - what's inside?

Post by Vasyl-Tracker Dev Team »

Hi zarko.

Not at the moment. But, anyway, you can implement functionality you want using our search-operation - just provide docs or files to it, one by one or use many search-operation instances to process many docs/files in parallel threads...

Cheers.
Vasyl Yaremyn
Tracker Software Products
Project Developer

Please archive any files posted to a ZIP, 7z or RAR file or they will be removed and not posted.
zarkogajic
User
Posts: 1370
Joined: Thu Sep 05, 2019 12:35 pm

Re: IPXV_SearchView.GetParams - what's inside?  SOLVED

Post by zarkogajic »

Hi Vasyl,

Ok, fair enough.

Sasha - Tracker Dev Team
User
Posts: 5522
Joined: Fri Nov 21, 2014 8:27 am
Contact:

IPXV_SearchView.GetParams - what's inside?

Post by Sasha - Tracker Dev Team »

:)
Subscribe at:
https://www.youtube.com/channel/UC-TwAMNi1haxJ1FX3LvB4CQ
Post Reply