Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by ArgusMagnus

  1. Thanks for the feedback. 1. Thats actually a left-over I missed, which has no effect as of now 2. I plan on also re-releasing the convolution plugin, so sit tight
  2. Updated, see https://forums.getpaint.net/topic/32337-argusmagnus-plugin-pack-20181019/
  3. Updated, see https://forums.getpaint.net/topic/32337-argusmagnus-plugin-pack-20181019/
  4. Updated, see https://forums.getpaint.net/topic/32337-argusmagnus-plugin-pack-20181019/
  5. I've updated my plugins to be a) v4.1.* compatible and b) completely self-contained (one dll file, no dependencies). The plugin behavior is unaltered. When updating, remove all Argus*.dll files first. Also, there is one new effect (Barcode renderer) and one new filetype (app icon set).
  6. ah.. I feel stupid.. Thanks for the quick Responses!
  7. Is there a Basic documentation/how to for writing FileType plugins? I've tried with the help of examples found online and based on the source of plugins like TinyPNG, but I cannot get PDN to Show me my plugin when I click "Save as...". This is what I have so far, any help would be appreciated. (It's a save-only plugin): public sealed class TestFileType : FileType, IFileTypeFactory { TestFileType() : base("Test", FileTypeFlags.SupportsSaving | FileTypeFlags.SavesWithProgress, new[] { ".test" }) { } protected override Document OnLoad(S
  8. It would certainly be worth it. The plugin in the developer section I linked to is fully functional (at least it was at the time) and does exactly that (by lauchning a separate process which requests elevated access to install). In fact, the installation process (copying files, restarting Paint.net) is fairly simple, the hard part is to correctly resolve dependencies and conflicts.
  9. Unfortunately, the feature you are requesting (and rightly so in my opinion) is forbidden to be included in a PlugIn:
  10. I fail to see why. Of course, "hack" is not really a well defined term, your definition obviously differs from mine. But given the fact that you already can't remove/refactor the EffectTokenConfigDialog class without braking a lot of plugins and you probably won't move away from windows form either, this doesn't seem to be "liable to break" to me. I don't mean to offend you and I appreciate the time you are investing into this amazing free software, but, as you said yourself, these things can take quite some time. This is understandable, but if we (plugin authors) then are forbidden to use
  11. If you still need to do something similar without relying on Form.ActiveForm maybe you could iterate over Application.OpenForms and check if one derives from the EffectConfigTokenDialog class to get the effect dialog form. This probably won't be I did something similar to check whether an effect was truly cancelled or if the IsCancelled flag was just set because the user changed values (to determine if I could discard cached data for good).
  12. There are cases however, where you can't get around external dll's (e.g. when you need to interop with native dlls). In my opinion, the real problem is, that the user needs to manually copy installation files/dlls. Ideally, we would provide our plugins with installers, which prevent the user from overwritting dlls with outdated versions (of course you still have to take care, that newer versions are backwards compatible).
  13. Ok. I have read the quoted statement, the reason why it wasn't clear to me if this included the effect plugin is, that your whole explanation why this shouldn't be done as a plugin was based on the assumption, that it would be a filetype plugin. It may be a good idea to update the rules to include this (till the end it remains unclear to me, why this shouldn't be done as an effect plugin, a corresponding entry in the rules could help prevent such confusion in the future).
  14. I don't think this is likely, other than a real effect which can probably very simply be integrated into the internal assemblies, Rick probably has his own ideas for a real plugin management system and won't just integrate an external tool, even if it is good. So.. I haven't really gotten an answer, can I keep the Effect Plugin? If yes, is anyone interested in helping me test it before I release it to the public? I might still do the external utility, but I don't have too much free time on my hands right now. Edit: I've uploaded a new version with some small fixes, it's less lik
  15. My guess is that the speed up is pretty unsignificant. This might become more significant the larger the project, but it also becomes more important to write well organized code.
  16. Yeah, I know, but nontheless those plugins I listed (including CodeLab) are located in the UI somewhere, where they don't naturally belong and are there simply due to the lack of alternatives. Maybe... I don't like it, because it means to have another little program only serving one small purpose which is not used very often having lying around somewhere. Perhaps I would still do it, but certainly not right away (I probably won't have time in the near future). But I would clearly prefer the Effects->Advanced->Plugin Installer option. I really think this would be more user-friendly. I cou
  17. You are right, the location (File->Open) doesn't really make sense. I would argue that this is also the case for tools effect plugins like CodeLab, Plugin Browser, Color Harmonies or Effect Plugins which let you upload images to imgur or similar sites and that it at least is also not too far off (it still opens/loads something). But if you don't want that, I accept that. You haven't mentioned how you feel about the Effect Plugin with the same functionality at all, would that be possible? I'll be honest, I'm not motivated to realize this as an external utility, it you don't want it a
  18. Do you mind if I ask why? (I will respect your final decision, but let me try to convince you) I could relative easily covert this to an external utility but I think this would greatly reduce the user experience and I don't know if this would be worth the trouble. Furthermore, in contrast to the plugin solution, it would require "hacks"/ugly methods (somehow get the paint.net process, read registry keys, etc.) which are more likely to fail/be broken by a future update of paint.net.
  19. Hehe, as I said, not hard to crash^^ I've fixed this, because it required almost no changes. Also the assembly version is now displayed. I have a lot of ideas for improvement, e.g. highlighting conflicting assemblies (possibly with different colors: newer<->green, older<->red), detecting conflicts not only due to conflicting file names but also due to duplicate menu entries, providing an installer for the plugin, possibly with file extension association (so *.pdnplgn would automatically be opened by paint.net, this idea is actually the reason the FileType plugin version ex
  20. I have developed a plugin installer. I know that this has been done before, but I wasn't happy with the existing solutions. I know that a plugin installer/management system is on Rick's ToDo list, but I wish to provide an intermediate solution, until the real one arrives. The installer can be invoked in two ways: 1. FileType: Open->Plugin Installer (*.pdnplgn, *.zip) 2. Effect: Effects->Advanced->Plugin Installer This will let you open a zip archive (optionally renamed to have a .pdnplgn extension). It will read the containing .net assemblies and show the contained filety
  21. Would "Edge Detect+" be a better name? According to the plugin index it is not taken yet. Does anyone use the "Corner" mode? (This plugin originally started out as a corner detection plugin, but as I kept going and tested the plugin, I began to see, that edge detection yields much more interesting results than corner detection and the math is almost identical, so switching between the two modes requires very little code changes). If not, I might remove the option altogether and instead add an option to perform the algorithm and different versions of the image. Currently the algorithm is pe
  22. I can't really follow you. How would implementing wait loops with gotos instead of for-next have have resulted in processor speed independent waiting? Nowadays, no one would implement waiting with loops, but usually there are better options than implementing this yourself with DateTime.Now, etc. such as Thread.Sleep or Timers (such as System.Timers.Timer)
  23. I know I read the solution somewhere some time ago but I can't remember where.. What is the recommended way to execute a method on the UI Thread, e.g. for showing a MessageBox? Im currently going with Process process = Process.GetCurrentProcess(); Form form = Form.FromHandle(process.MainWindowHandle) as Form; form?.Invoke(new Action(() => { MessageBox.Show("Some Message"); })); But this seems a bit ugly..
  • Create New...