Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QFileSystemWatcher's signal "directoryChanged" not emitted

QFileSystemWatcher's signal "directoryChanged" not emitted

Scheduled Pinned Locked Moved Unsolved General and Desktop
qfilesystemwatcwindows10
43 Posts 5 Posters 22.1k Views 2 Watching
  • 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.
  • VRoninV VRonin

    Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

    Did you try if other environments are affected too? Any linux distribution for example?

    S Offline
    S Offline
    stephane78
    wrote on last edited by stephane78
    #11

    @VRonin I didn't try all the OS, but I can later, but under linux there isn't any difference between del and shift+del like under windows (because I tested that with del under win10 so when you put the folder in the trashcan, but did'nt test really with shift+del...I think with shift+del under win7 it is ok but not sure 100%
    I will do more test so....
    but I have already looked at the code of QFile SystemWatcher for one year because of the older bug and I don't really understand it....if I could understand it I would have made myself the correction.I will try again to look at the code of QFileSystemWatcher

    1 Reply Last reply
    0
    • VRoninV VRonin

      Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

      Did you try if other environments are affected too? Any linux distribution for example?

      S Offline
      S Offline
      stephane78
      wrote on last edited by
      #12

      @VRonin OK there is the same problem under linux debian 8 with kde.when you move to thrash a subdirectory watched the signal directorychanged is not emitted and when you delete it with shift+del the signal is emitted...I have just tested now
      under windows 7 I can only delete with shift+del it doesn't allow me to delete with del so there isn't any problem
      I didn't test under mac os

      1 Reply Last reply
      0
      • VRoninV VRonin

        Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

        Did you try if other environments are affected too? Any linux distribution for example?

        S Offline
        S Offline
        stephane78
        wrote on last edited by stephane78
        #13

        @VRonin I have looked quickly at the source code of QFileSystemWatcher....(Qt5.6.2)
        first I don't find the definition of init() and initPollerEngine() of the class QFileSystemWatcherPrivate (qfilesystemwatcher_p.h) that are called in the constructor of QFileSystemWatcher and in the method addPaths.
        second, I have seen that there is a thread that derivate from QThread for windows, QWindowsFileSystemWatcherEngineThread, and the method run is redefinited l332 in qfilesystemwatcher_win.cpp,so that I understand it but don't understand all the details in the method run...

        1 Reply Last reply
        0
        • VRoninV VRonin

          Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

          Did you try if other environments are affected too? Any linux distribution for example?

          S Offline
          S Offline
          stephane78
          wrote on last edited by
          #14

          @VRonin I have seen where it emits the signal directoryChanged when the directory is deleted l.388 and l.385 I see if(fakeRemove||!fileInfo.exists()) but I don't understand the other things well.....

          1 Reply Last reply
          0
          • VRoninV VRonin

            Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

            Did you try if other environments are affected too? Any linux distribution for example?

            S Offline
            S Offline
            stephane78
            wrote on last edited by
            #15

            @VRonin I have looked too at the win32 functions findfirstchangenotification (used l.160) and find nextchangenotification (used l.364)....I think I must use a debug version of Qt to debug that because perhaps there is no change notification on the handle when we use a simple del to delete a directory ie send it to trashcan(without shift) ?

            1 Reply Last reply
            0
            • VRoninV VRonin

              Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

              Did you try if other environments are affected too? Any linux distribution for example?

              S Offline
              S Offline
              stephane78
              wrote on last edited by
              #16

              @VRonin or perhaps the error l.367 is another error than ERROR_ACCESS_DENIED that should be considered too and the that fakeRemove should be put to true too (or another boolean )

              1 Reply Last reply
              0
              • VRoninV VRonin

                Might be worth you looking directly at the source code, see if you can get it sorted yourself, and submit a patch.

                Did you try if other environments are affected too? Any linux distribution for example?

                S Offline
                S Offline
                stephane78
                wrote on last edited by stephane78
                #17

                @VRonin what are the other errors of FindNextChangeNotification?didn't find them in the win32 msdn documentation.
                And I don't really know how to do debug of Qt ? because it is in QtCore,so I suppose I must take the project and source of QtCore, but my test project use not only QtCore but QtGui and QtWidget too....

                1 Reply Last reply
                0
                • VRoninV Offline
                  VRoninV Offline
                  VRonin
                  wrote on last edited by
                  #18

                  I'll take a quick look and see if I can spot something in the source, no promises though

                  "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                  ~Napoleon Bonaparte

                  On a crusade to banish setIndexWidget() from the holy land of Qt

                  S 2 Replies Last reply
                  0
                  • VRoninV VRonin

                    I'll take a quick look and see if I can spot something in the source, no promises though

                    S Offline
                    S Offline
                    stephane78
                    wrote on last edited by
                    #19

                    @VRonin Thank you vronin, do you know how I can debug QtCore (or corelib or io) with my test project synchro as executable with QtCreator and mingw-w64(the compiler of qt.io).I suppose I must take the source (single,the .zip) but don't really know how to do that.my project synchro uses core,gui and widget but I suppose I must open corelib or io as project in QtCreator

                    1 Reply Last reply
                    0
                    • VRoninV VRonin

                      I'll take a quick look and see if I can spot something in the source, no promises though

                      S Offline
                      S Offline
                      stephane78
                      wrote on last edited by stephane78
                      #20

                      @VRonin do you know how to get the version 5.6.2 of qtbase from code.qt.io with git? (to build it in debug and try to debug corelib)

                      1 Reply Last reply
                      0
                      • VRoninV Offline
                        VRoninV Offline
                        VRonin
                        wrote on last edited by
                        #21

                        Just clone the repository and check out the 5.6 branch

                        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                        ~Napoleon Bonaparte

                        On a crusade to banish setIndexWidget() from the holy land of Qt

                        S 6 Replies Last reply
                        1
                        • VRoninV VRonin

                          Just clone the repository and check out the 5.6 branch

                          S Offline
                          S Offline
                          stephane78
                          wrote on last edited by
                          #22

                          @VRonin ok thanks vronin...

                          1 Reply Last reply
                          0
                          • VRoninV VRonin

                            Just clone the repository and check out the 5.6 branch

                            S Offline
                            S Offline
                            stephane78
                            wrote on last edited by
                            #23

                            @VRonin it is done.but to debug qfilesystemwatcher should I open corelib.pro in QtCreator (QtCore) and build it debug and put breakpoints and attach to my app synchro ?

                            1 Reply Last reply
                            0
                            • VRoninV VRonin

                              Just clone the repository and check out the 5.6 branch

                              S Offline
                              S Offline
                              stephane78
                              wrote on last edited by stephane78
                              #24

                              @VRonin I want to put a breakpoint l.364 of QFileSystemWatcher_win.cpp and watch error l365

                              1 Reply Last reply
                              0
                              • VRoninV VRonin

                                Just clone the repository and check out the 5.6 branch

                                S Offline
                                S Offline
                                stephane78
                                wrote on last edited by
                                #25

                                @VRonin there is "attach to unstarted application" and "debug an external application" in Qtcreator\debug. is it possible to use one this option to debug QtCore (corelib) with my app synchro.exe ?

                                1 Reply Last reply
                                0
                                • VRoninV VRonin

                                  Just clone the repository and check out the 5.6 branch

                                  S Offline
                                  S Offline
                                  stephane78
                                  wrote on last edited by
                                  #26

                                  @VRonin when building corelib I have this error ..\corelib\global\qt_pch.h:50:21: fatal error: qglobal.h: No such file or directory
                                  #include <qglobal.h>
                                  qglobal.h is in the directory but I think I lacks an environment variable ?

                                  1 Reply Last reply
                                  0
                                  • VRoninV VRonin

                                    Just clone the repository and check out the 5.6 branch

                                    S Offline
                                    S Offline
                                    stephane78
                                    wrote on last edited by
                                    #27

                                    @VRonin OK I think I have found : I have copied the directory include of the source single (.zip) of 5.6.2 in the direcorty qtbase and I have put in my environment variable INCLUDE the path of directory include and reboot my windows...I think it will be ok

                                    S 1 Reply Last reply
                                    0
                                    • S stephane78

                                      @VRonin OK I think I have found : I have copied the directory include of the source single (.zip) of 5.6.2 in the direcorty qtbase and I have put in my environment variable INCLUDE the path of directory include and reboot my windows...I think it will be ok

                                      S Offline
                                      S Offline
                                      stephane78
                                      wrote on last edited by
                                      #28

                                      I have put

                                      INCLUDEPATH +="../../include"
                                      INCLUDEPATH +="../../include/QtCore"

                                      int he corelib.pro but I have an error In file included from ..\corelib\animation\qabstractanimation.cpp:143:0:
                                      ..\corelib\animation\qabstractanimation_p.h:52:31: fatal error: private/qobject_p.h: No such file or directory
                                      #include <private/qobject_p.h>

                                      S 1 Reply Last reply
                                      0
                                      • S stephane78

                                        I have put

                                        INCLUDEPATH +="../../include"
                                        INCLUDEPATH +="../../include/QtCore"

                                        int he corelib.pro but I have an error In file included from ..\corelib\animation\qabstractanimation.cpp:143:0:
                                        ..\corelib\animation\qabstractanimation_p.h:52:31: fatal error: private/qobject_p.h: No such file or directory
                                        #include <private/qobject_p.h>

                                        S Offline
                                        S Offline
                                        stephane78
                                        wrote on last edited by
                                        #29

                                        It think I will build the whole Qtbase as usually and then open the corelib.pro and put the directory of lib QtCored.dll as build directory and try to debug with my exe (synchro.exe)

                                        1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #30

                                          You have to, qtbase, unlike the other modules, requires that you run configure before building it.

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          S 2 Replies Last reply
                                          2

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved