• Login
Community
  • Login

Interact on oppening file

Scheduled Pinned Locked Moved Notepad++ & Plugin Development
7 Posts 3 Posters 4.0k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Y
    Yunatane Gris Fond
    last edited by Dec 5, 2016, 11:37 AM

    Hello,

    I’ve maid a plugin that verify if you can open a file ( you have a message box if an other user has oppened it). It’s ok for this but now I want to propose to the user if he want to open the file in read only or not to pen this file.
    I tried to use :
    unsigned long ret = SendMessage(nppHandle, NPPM_MENUCOMMAND, 0, IDM_EDIT_CLEARREADONLY);
    and
    unsigned long ret = SendMessage(nppHandle, NPPM_MENUCOMMAND, 0, IDM_EDIT_CLEARREADONLY);
    in the NPPN_FILEOPENED procedure but it does noithing
    How can this things works ?

    1 Reply Last reply Reply Quote 0
    • D
      dail
      last edited by dail Dec 5, 2016, 2:40 PM Dec 5, 2016, 2:38 PM

      Although I don’t have any exact answers, I may be able to provide a few hints to help you. I spent a couple minutes messing around calling some of the menu commands from a script…

      There are 2 “read only” flags you need to keep in mind. There is one that is associated with the Windows operating system (meaning Windows will not allow the file to be overwritten, etc). There is also a “read only” flag within Notepad++, meaning that the file can be overwritten on the actual hard drive, but Notepad++ won’t allow it to be edited in the editor. (See SCI_SETREADONLY for reference.) I’m not sure which flags (maybe both?) get set when calling IDM_EDIT_CLEARREADONLY and IDM_EDIT_SETREADONLY.

      It looks like using IDM_EDIT_SETREADONLY toggles the read only flag (again not sure exactly which flag).

      I’m not 100% sure what IDM_EDIT_CLEARREADONLY does.

      There might a problem setting the read only status during the NPPN_FILEOPENED notification. Notepad++ might mess with the read only flag after it has sent your plugin this notification.

      1 Reply Last reply Reply Quote 1
      • Y
        Yunatane Gris Fond
        last edited by Dec 8, 2016, 1:50 PM

        Thanks for answering, I’m now able to set readonlyfile (Npp flag only) on a file already open but I can’t do it on openning. I’ve tried to call a function via a thread (I’m in C#) but I have error maybe about static declaration. Is there anyone who use thread or just have been able to set
        Win32.SendMessage(PluginBase.nppData._nppHandle, (uint)NppMsg.NPPM_MENUCOMMAND, 0, NppMenuCmd.IDM_EDIT_SETREADONLY); on an oppening file ?.

        C 1 Reply Last reply Dec 8, 2016, 9:31 PM Reply Quote 0
        • D
          dail
          last edited by Dec 8, 2016, 2:21 PM

          @Yunatane-Gris-Fond

          You are correct that it doesn’t look like using IDM_EDIT_SETREADONLY works for some reason during NPPN_FILEOPENED. For me it partially works but I can’t find any repeatable behavior. I can’t think of another good way to try to fix it.

          1 Reply Last reply Reply Quote 0
          • C
            Claudia Frank @Yunatane Gris Fond
            last edited by Dec 8, 2016, 9:31 PM

            @Yunatane-Gris-Fond

            from what I remember, I once checked this out and hope it is still the status quo, the read only story is the following.
            As dail already pointed out, there are two read only functions which do different things.
            The toggle function set-read-only and the clear-read-only function.
            The first doesn’t change the file attribute where as the latter clears it (but cannot set it).
            Set-read-only just toggles the write state from ui point of view and npp (better scintilla) does or does not allow
            to overwrite the current file.
            Clear-Read-Only can, as the name already suggest, only clear the os file permission flag but cannot set it.

            In regards to your problem, it seems that that the notification is already sent before file has been loaded into
            scintilla buffer completely. I would suggest you use buffer activated notification in addition to set the read-only ui flag.
            From previous testing it looks like that this notification always arrives after buffer has been loaded completely.

            Cheers
            Claudia

            1 Reply Last reply Reply Quote 1
            • D
              dail
              last edited by Dec 9, 2016, 3:32 PM

              I would suggest you use buffer activated notification…

              Ah yes! Don’t know why I didn’t think of that (not enough coffee probably) but that would probably be the best in the end anyways.

              C 1 Reply Last reply Dec 9, 2016, 3:38 PM Reply Quote 0
              • C
                Claudia Frank @dail
                last edited by Dec 9, 2016, 3:38 PM

                Nice to see that I’m not the only one whose “clear view” depends on coffee consumption :-D
                Just ready for another cup …

                Cheers
                Claudia

                1 Reply Last reply Reply Quote 0
                4 out of 7
                • First post
                  4/7
                  Last post
                The Community of users of the Notepad++ text editor.
                Powered by NodeBB | Contributors