Posted: 01 Feb 2009, 20:58
Well now I feel like an idiot but it's a good feeling. That worked.
Thank you!
Thank you!
Oops, the diskdir plugin uses Total Commander's feature to ask for the next volume of the archive. I inadvertently omitted this feature from the TC emulation layer Fixed for the next version. Thanks.ether wrote:I tested your new TC Proxy with diskdir.wcx - it makes a structured list of files and directories including information about date/time, size and original path. When the plugin is requested to unpack something, a dialog appears, but then Salamander freezes. It's probably caused by the wcx, because it normally shows a dialog asking to enter the path to the actual file (and/or insert the correct disc). In Salamander, this dialog doesn't actually appear, but the proxy waits for it to close, causing the freeze.
When the file is present at the expected location, there is no problem and the file is "extracted" successfully.
@manison] The issue is probably caused by returning wrong (or not returning) value, when the plugin is asked whether it accepts the specific file. For example when I use F3 on a .doc file that contains plain text (old text files had this extension sometimes), Eroiica loads the file, but rejects it, so Internal Viewer opens the file, which is the correct behavior. I looked into the SDK and I think you should implement virtual BOOL WINAPI CPluginInterfaceForViewerAbstract::CanViewFile(const char *name) which defaults to false. You should return always true unless there is a similar function in TC's plugin interface - in that case, call that function and returns its value. In DemoPlug, it's on one line in demoplug.h:JohnFredC wrote:The plug-ins installed without error and appear in the list for "alternate editors". I selected masks and associated them with the plug-ins, making sure to move them to the top of the list above the internal viewer (so as to override it).
However, pressing F3 (to View) or Alt-F3 (to "alt" View) one of the files identified by the masks I defined loads it into the standard Salamander viewer instead of the plug-in.
Code: Select all
virtual BOOL WINAPI CanViewFile(const char *name) {return TRUE;}
Yes, in the meantime, you can use Ctrl+Shift+F3 to force the chosen viewer to open.JohnFredC wrote:Am I right to expect the plug-in to show inside the F3 viewer?
I took a look at the plugin's sources - it's written in Delphi and uses VCL form to display a progress dialog (in spite of there is progress API specially exported for the plugin, grrrh ) This may not be an issue for genuine Total Commander, since it's written in Delphi (or Builder or whatever) also, but probably causes focus mess in the Salamander. Let me investigate this issue further.zarevak wrote:Good work manison!
I've tested your plugin with MSIE Cache Browser 1.2.5.2 plugin and I have a few problems:
- Salamander is losing foxus after each directory change
- The files displayed contain soliduses ("/") and colons (":") and probably other forbidden characters. Is it possible for your TC Proxy plugin to rename the files on the fly so the Viewers and copying from the plugin works?
That does work, thanks. Not as convenient but... it works! Excellent.ether wrote:you can use Ctrl+Shift+F3 to force the chosen viewer to open.
You are absolutely right, ether. I completely overlooked this subtlety In fact there is a way to ask the TC plugin whether it can handle the content, however it's a bit complicated (it's probably the only point where the TC's interface is more complicated than the AS' one So for now I just return TRUE.ether wrote:@manison] The issue is probably caused by returning wrong (or not returning) value, when the plugin is asked whether it accepts the specific file. For example when I use F3 on a .doc file that contains plain text (old text files had this extension sometimes), Eroiica loads the file, but rejects it, so Internal Viewer opens the file, which is the correct behavior. I looked into the SDK and I think you should implement virtual BOOL WINAPI CPluginInterfaceForViewerAbstract::CanViewFile(const char *name) which defaults to false. You should return always true unless there is a similar function in TC's plugin interface - in that case, call that function and returns its value. In DemoPlug, it's on one line in demoplug.h...
Fixed for the next version. For now please use the Ctrl+Shift+F3 to force the viewer as advised by ether.JohnFredC wrote:I have eagerly awaited this welcome enhancement of TC Proxy, but...
...the first two WLXs I tried were not successful:...
Yeah, it works. Thanks.manison wrote:(ether, can you please test the diskdir plugin?).
Thank you for your feedback, John. I got your bugreports (are they from you, aren't they?) I will try to contact you soon regarding the details, hovewer I'm now quite busy. Could you please send me the INI file that caused the crash in the meantime (if it does not contain any sensitive information, of course)? I tested the IniEd plugin with several files and the plugin refuses to load some of them and raises an exception (error dialog should be displayed in that case). However the exception never forced my Salamander to crash.JohnFredC wrote:I installed the new version. It seems to work fine with the TC plugins I tested except:
Salamander becomes unstable after the first alt-F3 file view using the INIEd plugin that I mentioned above.