Hi, do you guys see this issue? I'm using the latest nightly build version.
I see this day by day, here is the screen shot, search one the forum I get such post about ten years ago. Codeblocks Error "Failed to convert file" (http://forums.next.codeblocks.org/index.php?topic=6149.0), but the post said we have to add a second parameter to the file.Open() function, but when I search the ThreadSearch's source code, they all have the second argument.
I did some further test, it looks like this issue only happens on wx2.8 based C::B, my self build C::B which is wx3.1 based don't show this error message.
To test this issue, you can directly run threadsearch on the file "sdk\resources\lexers\lexer_powershell.sample". While, I also see that in my wx2.8, I can't open the file in the build-in editor, the editor just shows empty content. While under wx3.1 based C::B, I can correctly open the file under the buildl-in editor.
i too get this error many times, but only on wx3.0 builds... It is really annoying, for example if you search in *.* and you have some .bmp files in it... But i never investigated into it..
You cannot open a bmp in a cbeditor and this is what threadsearch tries to do. Not sure why. Probably to do correct encoding detection. I've not investigated, too.
Is it possible to translate those message box(dialog) to some logs, because the message box is so annoying, while I can live with the logs. ;)
Probably. Many people want to be able to disable various info windows. So a config system for those might be useful.
Isn't there the annoying dialog api?And there should be a subfunction for MessageBox that creates a hide able dialog.. I don't know if it is possible to log it instead...
If this is not a wx dialog it should be pretty easy...
I see I found a workaround about this issue.
In the file: src\find_replace.cpp
There is some code snippet:
else if (data->scope == 3) // replace in custom search path and mask
{
// fill the search list with the files found under the search path
int flags = wxDIR_FILES |
(data->recursiveSearch ? wxDIR_DIRS : 0) |
(data->hiddenSearch ? wxDIR_HIDDEN : 0);
wxArrayString masks = GetArrayFromString(data->searchMask);
if (!masks.GetCount())
masks.Add(_T("*"));
unsigned int count = masks.GetCount();
wxLogNull ln; // no logging
for (unsigned int i = 0; i < count; ++i)
{
// wxDir::GetAllFiles() does *not* clear the array, so it suits us just fine ;)
wxDir::GetAllFiles(data->searchPath, &filesList, masks[i], flags);
}
}
// if the list is empty, leave
int filesCount = filesList.GetCount();
if (filesCount == 0)
{
cbMessageBox(_("No files to search in!"), _("Error"), wxICON_WARNING);
return 0;
}
So, it use a local variable wxLogNull ln to disable the logging temporary.
Can thread search plugin have a similar mechanism?
BTW:
Maybe another way to handle this it to redirect the log message to texctrl, such as the "Code::Blocks" in the "logs and others panel" at the bottom of C:B's main frame.
Have you found the source of this error message? Is it in codeblocks, or is it in wxWidgets. I suspect it in wxWidgets... Can we do something about it there?
Quote from: BlueHazzard on September 16, 2018, 02:28:43 PM
Have you found the source of this error message? Is it in codeblocks, or is it in wxWidgets. I suspect it in wxWidgets... Can we do something about it there?
Yes, it is inside the wxWidgets's source code, I post it in the first post of this thread: Codeblocks Error "Failed to convert xxx file" when running threadsearch plugin (http://forums.next.codeblocks.org/index.php/topic,22188.msg151007.html#msg151007)
Quote from: BlueHazzard on September 16, 2018, 02:28:43 PM
Can we do something about it there?
I'm not sure, but first we need to know why this happens in the first place.
What is the encoding that C::B is requesting?
Probably we should start by making this message a bit more meaningful.
Like adding the encodings we've tried and failed.