<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>119341</bug_id>
          
          <creation_ts>2006-01-01 17:47:47 +0000</creation_ts>
          <short_desc>KDirWatch stopDirScan affects outside KDirWatch instances also - signal missing</short_desc>
          <delta_ts>2006-01-11 11:25:06 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>Unmaintained</classification>
          <product>kio</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Unlisted Binaries</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Stoecker">kde</reporter>
          <assigned_to name="David Faure">faure</assigned_to>
          
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>402913</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Stoecker">kde</who>
    <bug_when>2006-01-01 17:47:47 +0000</bug_when>
    <thetext>Version:            (using KDE KDE 3.5.0)
Installed from:    Unspecified Linux

When multiple instances of KDirWatch are used in one program, then a call to stopDirScan() affects all the other instances watching the same directory. They don&apos;t get the dirty signal.

The order of emitted signal seems to be equal to the order of addDir() calls. This means the first instance, which calls an addDir for an directory will see the dirty() signal. If it does a stopDirScan() in it&apos;s signal slot, then all the following instances will not get dirty().

I will attach a example program illustrating this behaviour. If #define NOERROR is used, then the 3 top LineEdits will show a difference whenever you click on the delete/new buttons. You will see the new/deleted file in the listview.

If NOERROR is not defined, then only Test1 and 2 will react. Test3 never gets a dirty() signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402914</commentid>
    <comment_count>1</comment_count>
      <attachid>14097</attachid>
    <who name="Dirk Stoecker">kde</who>
    <bug_when>2006-01-01 17:48:26 +0000</bug_when>
    <thetext>Created attachment 14097
The testcase C File.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402915</commentid>
    <comment_count>2</comment_count>
      <attachid>14098</attachid>
    <who name="Dirk Stoecker">kde</who>
    <bug_when>2006-01-01 17:48:59 +0000</bug_when>
    <thetext>Created attachment 14098
The testcase H-File.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405071</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Stoecker">kde</who>
    <bug_when>2006-01-10 18:52:52 +0000</bug_when>
    <thetext>Would be nice to hear something about this. It took me 3 days to compile the bug report and the problem is really annoying in the application I extracted the report from.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405121</commentid>
    <comment_count>4</comment_count>
    <who name="David Faure">faure</who>
    <bug_when>2006-01-10 22:14:08 +0000</bug_when>
    <thetext>SVN commit 496601 by dfaure:

Use re-entrant iteration so that stopDirScan/restartDirScan from a slot connected
to one of our signals, doesn&apos;t break receiving the signal in other instances of KDirWatch.
Thanks to Dirk Stoecker &lt;kde dstoecker.de&gt; for his great testcase.
BUG: 119341


 M  +5 -2      kdirwatch.cpp  


--- branches/KDE/3.5/kdelibs/kio/kio/kdirwatch.cpp #496600:496601
@@ -1220,8 +1220,11 @@
 #endif
   }
 
-  Client* c = e-&gt;m_clients.first();
-  for(;c;c=e-&gt;m_clients.next()) {
+  QPtrListIterator&lt;Client&gt; cit( e-&gt;m_clients );
+  for ( ; cit.current(); ++cit )
+  {
+    Client* c = cit.current();
+
     if (c-&gt;instance==0 || c-&gt;count==0) continue;
 
     if (c-&gt;watchingStopped) {
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405127</commentid>
    <comment_count>5</comment_count>
    <who name="David Faure">faure</who>
    <bug_when>2006-01-10 22:45:14 +0000</bug_when>
    <thetext>Do you agree with your test program being licensed under the LGPL and added to kdelibs/kio/tests?
(with a better naming for the files;)
I&apos;d like to keep it around, not only for this bug.
(I just tested it on KDE4/Qt4 too, it only needed s/KMainWindow/QWidget/ since kmainwindow already has a layout.)
Thanks.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405199</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Stoecker">kde</who>
    <bug_when>2006-01-11 08:59:53 +0000</bug_when>
    <thetext>It is public domain. Do with it whatever you want.

Well, the layout warning was on QT3 as well, but I did not figure out, how to fix it :-) And I didn&apos;t want to spend more time than necessary on a test tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405234</commentid>
    <comment_count>7</comment_count>
    <who name="David Faure">faure</who>
    <bug_when>2006-01-11 11:25:06 +0000</bug_when>
    <thetext>On Wednesday 11 January 2006 08:59, Dirk Stoecker wrote:
&gt; Well, the layout warning was on QT3 as well, but I did not figure out, how to fix it :-) And I didn&apos;t want to spend more time than necessary on a test tool.


Sure - it&apos;s just that in QT4 Q_ASSERT is fatal so I had to fix this problem before the program would start ;-)
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>14097</attachid>
            <date>2006-01-01 17:48:26 +0000</date>
            <delta_ts>2006-01-01 17:48:26 +0000</delta_ts>
            <desc>The testcase C File.</desc>
            <filename>shit.cpp</filename>
            <type>text/x-c++src</type>
            <size>3017</size>
            <attacher name="Dirk Stoecker">kde</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgInNoaXQuaCIKCiNpbmNsdWRlIDxrYWJvdXRkYXRhLmg+CiNpbmNsdWRlIDxrYXBw
bGljYXRpb24uaD4KI2luY2x1ZGUgPGtjbWRsaW5lYXJncy5oPgojaW5jbHVkZSA8a2RpcndhdGNo
Lmg+CiNpbmNsdWRlIDxrZmlsZXRyZWV2aWV3Lmg+CiNpbmNsdWRlIDxrbWFpbndpbmRvdy5oPgoj
aW5jbHVkZSA8cWRhdGV0aW1lLmg+CiNpbmNsdWRlIDxxZGlhbG9nLmg+CiNpbmNsdWRlIDxxZGly
Lmg+CiNpbmNsdWRlIDxxZmlsZWRpYWxvZy5oPgojaW5jbHVkZSA8cWxheW91dC5oPgojaW5jbHVk
ZSA8cWxpbmVlZGl0Lmg+CiNpbmNsdWRlIDxxcHVzaGJ1dHRvbi5oPgoKaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIgKiphcmd2KQp7CiAgICBLQWJvdXREYXRhIGFib3V0KCJzaGl0IiwgInNoaXQiLCAi
MC4xIiwgInNoaXQiLAogICAgS0Fib3V0RGF0YTo6TGljZW5zZV9HUEwsICIoQykgMjAwNiBEaXJr
IFN0b2Vja2VyIiwgMCwgMCwKICAgICJrZGVAZHN0b2Vja2VyLmRlIik7CiAgICBhYm91dC5hZGRB
dXRob3IoICJEaXJrIFN0b2Vja2VyIiwgMCwgImtkZUBkc3RvZWNrZXIuZGUiICk7CiAgICBLQ21k
TGluZUFyZ3M6OmluaXQoYXJnYywgYXJndiwgJmFib3V0KTsKICAgIEtBcHBsaWNhdGlvbiBhcHA7
CiAgICBzaGl0ICptYWluV2luID0gbmV3IHNoaXQoKTsKICAgIGFwcC5zZXRNYWluV2lkZ2V0KCBt
YWluV2luICk7CiAgICBtYWluV2luLT5zaG93KCk7CiAgICByZXR1cm4gYXBwLmV4ZWMoKTsKfQoK
c2hpdDo6c2hpdCgpIDogS01haW5XaW5kb3coKQp7CiAgICBRUHVzaEJ1dHRvbiAqZSwqZjsKICAg
IEtGaWxlVHJlZVZpZXcgKnRyZWU7CgogICAgUVZCb3hMYXlvdXQgKmxheSA9IG5ldyBRVkJveExh
eW91dCh0aGlzLCAwLCAtMSk7CiAgICBsYXktPmFkZFdpZGdldChsMSA9IG5ldyBRTGluZUVkaXQo
ICJUZXN0IDEiLCB0aGlzKSk7CiAgICBsYXktPmFkZFdpZGdldChsMiA9IG5ldyBRTGluZUVkaXQo
ICJUZXN0IDIiLCB0aGlzKSk7CiAgICBsYXktPmFkZFdpZGdldChsMyA9IG5ldyBRTGluZUVkaXQo
ICJUZXN0IDMiLCB0aGlzKSk7CiAgICBsYXktPmFkZFdpZGdldChkID0gbmV3IFFMaW5lRWRpdCgg
IlN0YXR1cyIsIHRoaXMpKTsKICAgIGxheS0+YWRkV2lkZ2V0KGUgPSBuZXcgUVB1c2hCdXR0b24o
Im5ldyBmaWxlIiwgdGhpcykpOwogICAgbGF5LT5hZGRXaWRnZXQoZiA9IG5ldyBRUHVzaEJ1dHRv
bigiZGVsZXRlIGZpbGUiLCB0aGlzKSk7CgogICAgZGlyID0gUURpcjo6Y3VycmVudERpclBhdGgo
KTsKICAgIGZpbGUgPSBkaXIgKyAiL3NoaXR0ZXN0ZmlsZSI7CgogICAgbGF5LT5hZGRXaWRnZXQo
dHJlZSA9IG5ldyBLRmlsZVRyZWVWaWV3KHRoaXMpKTsKICAgIFFTdHJpbmcgdmlldyA9ICJmaWxl
OiIgKyBkaXI7CiAgICBLRmlsZVRyZWVCcmFuY2ggKmJyYW5jaCA9IHRyZWUtPmFkZEJyYW5jaChL
VVJMKHZpZXcubGF0aW4xKCkpLCAiT3VyIGRhdGEgZGlyIik7CiAgICB0cmVlLT5hZGRDb2x1bW4o
IkZvbGRlcnMiKTsKICAgIGJyYW5jaC0+c2V0T3Blbih0cnVlKTsKCiAgICB3MSA9IG5ldyBLRGly
V2F0Y2goKTsKICAgIHcyID0gbmV3IEtEaXJXYXRjaCgpOwogICAgdzMgPSBuZXcgS0RpcldhdGNo
KCk7CiAgICBjb25uZWN0KHcxLCBTSUdOQUwoZGlydHkoY29uc3QgUVN0cmluZyAmKSksIHRoaXMs
IFNMT1Qoc2xvdERpcjEoY29uc3QgUVN0cmluZyAmKSkpOwogICAgY29ubmVjdCh3MiwgU0lHTkFM
KGRpcnR5KGNvbnN0IFFTdHJpbmcgJikpLCB0aGlzLCBTTE9UKHNsb3REaXIyKGNvbnN0IFFTdHJp
bmcgJikpKTsKICAgIGNvbm5lY3QodzMsIFNJR05BTChkaXJ0eShjb25zdCBRU3RyaW5nICYpKSwg
dGhpcywgU0xPVChzbG90RGlyMyhjb25zdCBRU3RyaW5nICYpKSk7CiAgICB3MS0+YWRkRGlyKGRp
ci5sYXRpbjEoKSk7CiAgICB3Mi0+YWRkRGlyKGRpci5sYXRpbjEoKSk7CiAgICB3My0+YWRkRGly
KGRpci5sYXRpbjEoKSk7CgogICAgbGF5LT5hZGRXaWRnZXQobmV3IFFMaW5lRWRpdCgiRGlyZWN0
b3J5ID0gIiArIGRpciwgdGhpcykpOwogICAgbGF5LT5hZGRXaWRnZXQobmV3IFFMaW5lRWRpdCgi
RmlsZSA9ICIgKyBmaWxlLCB0aGlzKSk7CgogICAgY29ubmVjdChlLCBTSUdOQUwoY2xpY2tlZCgp
KSwgdGhpcywgU0xPVChzbG90TmV3Q2xpY2tlZCgpKSk7CiAgICBjb25uZWN0KGYsIFNJR05BTChj
bGlja2VkKCkpLCB0aGlzLCBTTE9UKHNsb3REZWxldGVDbGlja2VkKCkpKTsKCiAgICBzZXRNaW5p
bXVtV2lkdGgoODAwKTsKICAgIHNldE1pbmltdW1IZWlnaHQoNDAwKTsKfQoKdm9pZCBzaGl0Ojpz
bG90RGlyMShjb25zdCBRU3RyaW5nICZhKQp7CiAgbDEtPnNldFRleHQoIlRlc3RBMSBjaGFuZ2Vk
ICIgKyBhICsgIiBhdCAiICsgUVRpbWU6OmN1cnJlbnRUaW1lKCkudG9TdHJpbmcoKSk7Cn0KCnZv
aWQgc2hpdDo6c2xvdERpcjIoY29uc3QgUVN0cmluZyAmYSkKewojaWZuZGVmIE5PRVJST1IKICB3
Mi0+c3RvcERpclNjYW4oYS5sYXRpbjEoKSk7CiAgdzItPnJlc3RhcnREaXJTY2FuKGEubGF0aW4x
KCkpOwojZW5kaWYKICBsMi0+c2V0VGV4dCgiVGVzdEEyIGNoYW5nZWQgIiArIGEgKyAiIGF0ICIg
KyBRVGltZTo6Y3VycmVudFRpbWUoKS50b1N0cmluZygpKTsKfQoKdm9pZCBzaGl0OjpzbG90RGly
Myhjb25zdCBRU3RyaW5nICZhKQp7CiAgbDMtPnNldFRleHQoIlRlc3RBMyBjaGFuZ2VkICIgKyBh
ICsgIiBhdCAiICsgUVRpbWU6OmN1cnJlbnRUaW1lKCkudG9TdHJpbmcoKSk7Cn0KCnZvaWQgc2hp
dDo6c2xvdERlbGV0ZUNsaWNrZWQoKQp7CiAgcmVtb3ZlKGZpbGUubGF0aW4xKCkpOwogIGQtPnNl
dFRleHQoIkRlbGV0ZSBjbGlja2VkIGF0ICIgKyBRVGltZTo6Y3VycmVudFRpbWUoKS50b1N0cmlu
ZygpKTsKfQoKdm9pZCBzaGl0OjpzbG90TmV3Q2xpY2tlZCgpCnsKICBmY2xvc2UoZm9wZW4oZmls
ZS5sYXRpbjEoKSwgIndiIikpOwogIGQtPnNldFRleHQoIk5ldyBjbGlja2VkIGF0ICIgKyBRVGlt
ZTo6Y3VycmVudFRpbWUoKS50b1N0cmluZygpKTsKfQoKI2luY2x1ZGUgInNoaXQubW9jIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>14098</attachid>
            <date>2006-01-01 17:48:59 +0000</date>
            <delta_ts>2006-01-01 17:48:59 +0000</delta_ts>
            <desc>The testcase H-File.</desc>
            <filename>shit.h</filename>
            <type>text/x-c++hdr</type>
            <size>532</size>
            <attacher name="Dirk Stoecker">kde</attacher>
            
              <data encoding="base64">I2lmbmRlZiBfU0hJVF9IXwojZGVmaW5lIF9TSElUX0hfCgojaW5jbHVkZSA8a21haW53aW5kb3cu
aD4KI2luY2x1ZGUgPHFkaWFsb2cuaD4KCmNsYXNzIHNoaXQgOiBwdWJsaWMgS01haW5XaW5kb3cK
ewogICAgUV9PQkpFQ1QKcHVibGljOgogICAgc2hpdCgpOwpwcm90ZWN0ZWQgc2xvdHM6CiAgICB2
b2lkIHNsb3ROZXdDbGlja2VkKCk7CiAgICB2b2lkIHNsb3REZWxldGVDbGlja2VkKCk7CiAgICB2
b2lkIHNsb3REaXIxKGNvbnN0IFFTdHJpbmcgJnBhdGgpOwogICAgdm9pZCBzbG90RGlyMihjb25z
dCBRU3RyaW5nICZwYXRoKTsKICAgIHZvaWQgc2xvdERpcjMoY29uc3QgUVN0cmluZyAmcGF0aCk7
CnByaXZhdGU6CiAgICBjbGFzcyBRTGluZUVkaXQgKmQ7CiAgICBRU3RyaW5nIGZpbGUsIGRpcjsK
ICAgIGNsYXNzIEtEaXJXYXRjaCAqdzE7CiAgICBjbGFzcyBLRGlyV2F0Y2ggKncyOwogICAgY2xh
c3MgS0RpcldhdGNoICp3MzsKICAgIGNsYXNzIFFMaW5lRWRpdCAqbDEsICpsMiwgKmwzOwp9OwoK
I2VuZGlmIC8vIF9TSElUX0hfCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>