<?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>64879</bug_id>
          
          <creation_ts>2003-09-24 21:04:04 +0000</creation_ts>
          <short_desc>add comment to each recorded time slot</short_desc>
          <delta_ts>2007-01-20 22:14:51 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>ktimetracker</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>unspecified</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>HI</priority>
          <bug_severity>wishlist</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ferdinand Gassauer">gassauer</reporter>
          <assigned_to name="Thorsten Staerk">dev</assigned_to>
          <cc>opensource</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>56</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>161411</commentid>
    <comment_count>0</comment_count>
    <who name="Ferdinand Gassauer">gassauer</who>
    <bug_when>2003-09-24 21:04:05 +0000</bug_when>
    <thetext>Version:           1.3 (using KDE 3.1.92 (alpha2, CVS &gt;= 20030921), compiled sources)
Compiler:          gcc version 3.3 20030226 (prerelease) (SuSE Linux)
OS:          Linux (i686) release 2.4.20-4GB

To know what has been done it is mandatory to record not only the time spent but also what has been done at each time slot.
IMHO a comment field would do it, where the user can/must add a comment for each recorded time slot.
may be that this goes beyond this project, but would make it really useful.
cu
ferdinand</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161415</commentid>
    <comment_count>1</comment_count>
    <who name="Ferdinand Gassauer">gassauer</who>
    <bug_when>2003-09-24 21:07:35 +0000</bug_when>
    <thetext>*** Bug 64880 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230097</commentid>
    <comment_count>2</comment_count>
    <who name="Mathieu Jobin">opensource</who>
    <bug_when>2004-05-09 19:26:10 +0000</bug_when>
    <thetext>I think this is a mandatory features. time tracking can be fun, but seriously useless without details.

without this, you can tell how much time you spent playing unreal tournament...
but who cares ;)

so, I think, we not only need the total spent, but also every single entry available in a spreadsheet somewhat. with comments one every one of &apos;em.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232565</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Bucciarelli">mark</who>
    <bug_when>2004-05-14 03:08:10 +0000</bug_when>
    <thetext>I can implement this now, as libical now saves ical comments.   The ics spec allows multiple comments for each event.  There are two possible implementations I can see:

(1) store comments at the task level (an iCal todo)

(2) store comment with the &quot;closest&quot; time entry (an iCal event)

I think I like (1), mainly because (2) becomes tricky if you want to add a comment to a task that is not currrently being timed.  It will take some work to figure out which start/stop event (an iCal event) to associate the comment with.  It seems more flexible just to stamp the comment with a datetime string and store it at the event level.

How important is it to be able to edit comments, once saved?  The simplest implementation is to provide a hot key for &quot;Add Comment&quot; which lets you type in as much text as you like, then save it.  No editing, no deleting.

I like simple ... especially since there will be collateral work here--we need to report on any data entered.

And speaking of reporting, it is possible with 3.2 to print time cards that break down time logged by task and day.  From you comment, it sounds like you haven&apos;t discovered this (undocumented) feature.  Turn on logging in the preferences and after logging time for a while, you can press Ctrl-Alt-C to copy the timecard text to the clipboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239902</commentid>
    <comment_count>4</comment_count>
    <who name="M G Berberich">kde</who>
    <bug_when>2004-06-08 17:17:23 +0000</bug_when>
    <thetext>I would like to have comments on a time entry (an iCal event). So that something like

12:00--12:20 project A: added interrupthandling
12:20--12:40 project A: fixed taskbar
12:40--12:45 project B: helping User X
12:45--12:50 project A: fixed typo

would be possible.

At the moment we could generate subtasks, but this would give a lot of subtasks over time.

A possible way to archive this &quot;nearly&quot; would be to add the comment to the description of the running tasks ical-entry, adding comments multiple times would accumulate these comments in this entry, giving:

12:00--12:20 project A: added interrupthandling
fixed taskbar
12:40--12:45 project B: helping User X
12:45--12:50 project A: fixed typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240320</commentid>
    <comment_count>5</comment_count>
    <who name="Thorsten Staerk">dev</who>
    <bug_when>2004-06-10 11:27:41 +0000</bug_when>
    <thetext>let&apos;s keep things simple, I want to

store comments at the task level (an iCal todo)

If we have this, we do it the same way as planner and korganizer, and that is really enough, as task attributes are not the core competency of a time tracker, rather of an organizer.
As soon as you have to record your activities per time, you can establish a subtask.

If we do 

store comment with the &quot;closest&quot; time entry (an iCal event)

how will you represent it in the edittaskview ?
I do not have a simple idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241336</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Bucciarelli">mark</who>
    <bug_when>2004-06-14 15:43:18 +0000</bug_when>
    <thetext>This functionality is now on the karm feature plan (target release is 3.4).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245950</commentid>
    <comment_count>7</comment_count>
    <who name="Marc Haber">mh+kde-bugs</who>
    <bug_when>2004-07-05 15:47:59 +0000</bug_when>
    <thetext>I&apos;d like to have the comment with the event, probably only with the stop event to make sure it is logged what was done.

Greetings
Marc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305416</commentid>
    <comment_count>8</comment_count>
    <who name="Ingo Oeser">kde-bugs</who>
    <bug_when>2005-01-21 13:46:33 +0000</bug_when>
    <thetext>The comment from Marc is important esp. if you use it for 2nd level support
on a not so busy hotline, where the customer calls in. 

You could also simply use a knotes note internally, but I don&apos;t know how
complicated this is. I just usally open a note with knote
and start a task or subtask in karm. While talking and doing stuff I note
everything in knote. When doing recalls and being recalled, I switch to the
desktop which karm monitors and change my note continously.

Often I mail the whole note later to our support list, to have them informed.
This is esp. useful for special cases and if the task is not yet complete (since I could be away later and my co-workers need to continue).

This is quite effective already, but I would like to have it combined.

So the options: &quot;force entering note on complete&quot;, &quot;mail comment&quot; (already in knote!), &quot;show only incomplete&quot; would be very useful for support usage.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356841</commentid>
    <comment_count>9</comment_count>
      <attachid>11749</attachid>
    <who name="Thorsten Staerk">dev</who>
    <bug_when>2005-07-10 21:30:33 +0000</bug_when>
    <thetext>Created attachment 11749
enable adding comments to each task, prerelease</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437091</commentid>
    <comment_count>10</comment_count>
    <who name="Thorsten Staerk">dev</who>
    <bug_when>2006-05-07 19:48:26 +0000</bug_when>
    <thetext>This has also been asked @ LinuxTag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502860</commentid>
    <comment_count>11</comment_count>
      <attachid>19355</attachid>
    <who name="Thorsten Staerk">dev</who>
    <bug_when>2007-01-20 21:39:25 +0000</bug_when>
    <thetext>Created attachment 19355
commenting works &quot;a bit&quot;

This gives a direction how we can enable commenting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502870</commentid>
    <comment_count>12</comment_count>
    <who name="Thorsten Staerk">dev</who>
    <bug_when>2007-01-20 22:14:50 +0000</bug_when>
    <thetext>SVN commit 625704 by tstaerk:

Allow adding comments.
BUGS:64879


 M  +46 -12    taskview.cpp  
 M  +5 -0      taskview.h  


--- trunk/KDE/kdepim/ktimetracker/taskview.cpp #625703:625704
@@ -408,28 +408,62 @@
 QStringList TaskView::listallevents() 
 {
   kDebug(5970) &lt;&lt; &quot;Entering TaskView::listallevents&quot; &lt;&lt; endl;
-  QTableWidget* tw=new QTableWidget();
+  historywidget=new QTableWidget();
+  connect (historywidget, SIGNAL(cellChanged(int, int)), this, SLOT (historywidgetchanged(int, int)));
   QStringList labels;
-  labels &lt;&lt; &quot;Task&quot; &lt;&lt; &quot;StartTime&quot; &lt;&lt; &quot;EndTime&quot;;
-  tw-&gt;setColumnCount(3);
-  tw-&gt;setEditTriggers(QAbstractItemView::NoEditTriggers);
-  tw-&gt;setHorizontalHeaderLabels(labels);
-  tw-&gt;horizontalHeader()-&gt;setStretchLastSection(true);
+  labels &lt;&lt; &quot;Task&quot; &lt;&lt; &quot;StartTime&quot; &lt;&lt; &quot;EndTime&quot; &lt;&lt; &quot;Comment&quot; &lt;&lt; &quot;uid&quot;;
+  historywidget-&gt;setColumnCount(5);
+  historywidget-&gt;setEditTriggers(QAbstractItemView::AllEditTriggers);
+  historywidget-&gt;setHorizontalHeaderLabels(labels);
+  historywidget-&gt;horizontalHeader()-&gt;setStretchLastSection(true);
   KCal::Event::List eventList = _storage-&gt;rawevents();
   for(KCal::Event::List::iterator i = eventList.begin(); i != eventList.end(); ++i)
   {
-    int row=tw-&gt;rowCount();
-    tw-&gt;insertRow(row);
+    int row=historywidget-&gt;rowCount();
+    historywidget-&gt;insertRow(row);
     QTableWidgetItem* item=new QTableWidgetItem((*i)-&gt;relatedTo()-&gt;summary());
     item-&gt;setFlags(Qt::ItemIsEnabled);
-    tw-&gt;setItem(row,0,item);
-    tw-&gt;setItem(row,1,new QTableWidgetItem((*i)-&gt;dtStart().toString()));
-    tw-&gt;setItem(row,2,new QTableWidgetItem((*i)-&gt;dtEnd().toString()));
+    historywidget-&gt;setItem(row,0,item);
+    historywidget-&gt;setItem(row,1,new QTableWidgetItem((*i)-&gt;dtStart().toString()));
+    historywidget-&gt;setItem(row,2,new QTableWidgetItem((*i)-&gt;dtEnd().toString()));
+    historywidget-&gt;setItem(row,4,new QTableWidgetItem((*i)-&gt;uid()));
+    kDebug() &lt;&lt; &quot;(*i)-&gt;comments.count() =&quot;  &lt;&lt; (*i)-&gt;comments().count() &lt;&lt; endl;
+    if ((*i)-&gt;comments().count() &gt; 0)
+    {
+      historywidget-&gt;setItem(row,3,new QTableWidgetItem((*i)-&gt;comments().last()));
+    }
   }
-  tw-&gt;show();
+  historywidget-&gt;show();
+  historywidgetchanged(-1,-1); // signal that we are ready
+  kDebug() &lt;&lt; &quot;Exiting listallevents&quot; &lt;&lt; endl;
   return labels;
 }
 
+void TaskView::historywidgetchanged(int row, int col)
+{
+  kDebug(5970) &lt;&lt; &quot;Entering historywidgetchanged&quot; &lt;&lt; endl;
+  kDebug(5970) &lt;&lt; &quot;row =&quot; &lt;&lt; row &lt;&lt; &quot; col =&quot; &lt;&lt; col &lt;&lt; endl;
+  static bool ready=false;
+  if (row==-1) ready=true;
+  else if (ready &amp;&amp; (col==3))
+  {
+    kDebug(5970) &lt;&lt; historywidget-&gt;item(row,col)-&gt;text() &lt;&lt; endl;
+    QString uid=historywidget-&gt;item(row,4)-&gt;text();
+    kDebug() &lt;&lt; &quot;uid = &quot; &lt;&lt; uid &lt;&lt; endl;
+    KCal::Event::List eventList = _storage-&gt;rawevents();
+    for(KCal::Event::List::iterator i = eventList.begin(); i != eventList.end(); ++i)
+    {
+      kDebug() &lt;&lt; &quot;row=&quot; &lt;&lt; row &lt;&lt; &quot; col=&quot; &lt;&lt; col &lt;&lt; endl;
+      if ((*i)-&gt;uid() == uid)
+      {
+        (*i)-&gt;addComment(historywidget-&gt;item(row,col)-&gt;text()); 
+        kDebug() &lt;&lt; &quot;added &quot; &lt;&lt; historywidget-&gt;item(row,col)-&gt;text() &lt;&lt; endl;
+      }
+    }
+    ready=false;
+  }
+}
+
 QString TaskView::save()
 {
     // DF: this code created a new event for the running task(s),
--- trunk/KDE/kdepim/ktimetracker/taskview.h #625703:625704
@@ -36,6 +36,7 @@
 #include &quot;karmstorage.h&quot;
 #include &quot;reportcriteria.h&quot;
 #include &lt;QTimer&gt;
+#include &lt;QTableWidget&gt;
 
 class Q3ListBox;
 class QString;
@@ -111,6 +112,9 @@
                      Task* parent = 0 );
 
   public slots:
+    /** Something in the history widget changed */
+    void historywidgetchanged(int row, int col);
+
     /** Save to persistent storage. */
     QString save();
 
@@ -230,6 +234,7 @@
     DesktopTracker* _desktopTracker;
     bool _isloading;
     Task* dragTask;
+    QTableWidget* historywidget;
 
     //KCal::CalendarLocal _calendar;
     KarmStorage * _storage;
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11749</attachid>
            <date>2005-07-10 21:30:33 +0000</date>
            <delta_ts>2007-01-20 21:39:25 +0000</delta_ts>
            <desc>enable adding comments to each task, prerelease</desc>
            <filename>datei</filename>
            <type>text/plain</type>
            <size>7854</size>
            <attacher name="Thorsten Staerk">dev</attacher>
            
              <data encoding="base64">SW5kZXg6IHRhc2t2aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGFza3ZpZXcuaAkocmV2aXNpb24gNDMz
MzY2KQorKysgdGFza3ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQAogCiAg
ICAgLyoqIEFkZCBhIHRhc2sgdG8gdmlldyBhbmQgc3RvcmFnZS4gKi8KICAgICBRU3RyaW5nIGFk
ZFRhc2soIGNvbnN0IFFTdHJpbmcmIHRhc2thbWUsIGxvbmcgdG90YWwsIGxvbmcgc2Vzc2lvbiwg
Y29uc3QgRGVza3RvcExpc3QmIGRlc2t0b3BzLCAKLSAgICAgICAgICAgICAgICAgICAgIFRhc2sq
IHBhcmVudCA9IDAgKTsKKyAgICAgICAgICAgICAgICAgICAgIFRhc2sqIHBhcmVudCA9IDAsIFFT
dHJpbmcgY29tbWVudCA9ICIiICk7CiAKICAgcHVibGljIHNsb3RzOgogICAgIC8qKiBTYXZlIHRv
IHBlcnNpc3RlbnQgc3RvcmFnZS4gKi8KSW5kZXg6IHRhc2t2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSB0YXNrdmlldy5jcHAJKHJldmlzaW9uIDQzMzM2NikKKysrIHRhc2t2aWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDY5LDYgKzQ2OSw5IEBACiAgICAgUVN0cmluZyB0YXNrTmFtZSA9IGkxOG4o
ICJVbm5hbWVkIFRhc2siICk7CiAgICAgaWYgKCAhZGlhbG9nLT50YXNrTmFtZSgpLmlzRW1wdHko
KSkgdGFza05hbWUgPSBkaWFsb2ctPnRhc2tOYW1lKCk7CiAKKyAgICBRU3RyaW5nIGNvbW1lbnQg
PSBRU3RyaW5nOjpudWxsOworICAgIGlmICggIWRpYWxvZy0+dGFza0NvbW1lbnQoKS5pc0VtcHR5
KCkpIGNvbW1lbnQgPSBkaWFsb2ctPnRhc2tDb21tZW50KCk7CisKICAgICB0b3RhbCA9IHRvdGFs
RGlmZiA9IHNlc3Npb24gPSBzZXNzaW9uRGlmZiA9IDA7CiAgICAgZGlhbG9nLT5zdGF0dXMoICZ0
b3RhbCwgJnRvdGFsRGlmZiwgJnNlc3Npb24sICZzZXNzaW9uRGlmZiwgJmRlc2t0b3BMaXN0ICk7
CiAKQEAgLTQ3Nyw3ICs0ODAsOCBAQAogICAgIGlmICggZGVza3RvcExpc3Quc2l6ZSgpID09ICgg
dW5zaWduZWQgaW50ICkgX2Rlc2t0b3BUcmFja2VyLT5kZXNrdG9wQ291bnQoKSApCiAgICAgICBk
ZXNrdG9wTGlzdC5jbGVhcigpOwogCi0gICAgUVN0cmluZyB1aWQgPSBhZGRUYXNrKCB0YXNrTmFt
ZSwgdG90YWwsIHNlc3Npb24sIGRlc2t0b3BMaXN0LCBwYXJlbnQgKTsKKyAgICBrZERlYnVnKDU5
NzApIDw8ICJUYXNrVmlldzo6bmV3VGFzazpjb21tZW50IGlzIiA8PCBjb21tZW50IDw8IGVuZGw7
CisgICAgUVN0cmluZyB1aWQgPSBhZGRUYXNrKCB0YXNrTmFtZSwgdG90YWwsIHNlc3Npb24sIGRl
c2t0b3BMaXN0LCBwYXJlbnQsIGNvbW1lbnQgKTsKICAgICBpZiAoIHVpZC5pc051bGwoKSApCiAg
ICAgewogICAgICAgS01lc3NhZ2VCb3g6OmVycm9yKCAwLCBpMThuKApAQCAtNDkwLDE0ICs0OTQs
MTQgQEAKIAogUVN0cmluZyBUYXNrVmlldzo6YWRkVGFzawogKCBjb25zdCBRU3RyaW5nJiB0YXNr
bmFtZSwgbG9uZyB0b3RhbCwgbG9uZyBzZXNzaW9uLCAKLSAgY29uc3QgRGVza3RvcExpc3QmIGRl
c2t0b3BzLCBUYXNrKiBwYXJlbnQgKQorICBjb25zdCBEZXNrdG9wTGlzdCYgZGVza3RvcHMsIFRh
c2sqIHBhcmVudCwgUVN0cmluZyBjb21tZW50ICkKIHsKICAgVGFzayAqdGFzazsKIAogICBrZERl
YnVnKDU5NzApIDw8ICJUYXNrVmlldzo6YWRkVGFzazogdGFza25hbWUgPSAiIDw8IHRhc2tuYW1l
IDw8IGVuZGw7CiAKLSAgaWYgKCBwYXJlbnQgKSB0YXNrID0gbmV3IFRhc2soIHRhc2tuYW1lLCB0
b3RhbCwgc2Vzc2lvbiwgZGVza3RvcHMsIHBhcmVudCApOwotICBlbHNlICAgICAgICAgIHRhc2sg
PSBuZXcgVGFzayggdGFza25hbWUsIHRvdGFsLCBzZXNzaW9uLCBkZXNrdG9wcywgdGhpcyApOwor
ICBpZiAoIHBhcmVudCApIHRhc2sgPSBuZXcgVGFzayggdGFza25hbWUsIHRvdGFsLCBzZXNzaW9u
LCBkZXNrdG9wcywgcGFyZW50LCBjb21tZW50ICk7CisgIGVsc2UgICAgICAgICAgdGFzayA9IG5l
dyBUYXNrKCB0YXNrbmFtZSwgdG90YWwsIHNlc3Npb24sIGRlc2t0b3BzLCB0aGlzLCBjb21tZW50
ICk7CiAKICAgdGFzay0+c2V0VWlkKCBfc3RvcmFnZS0+YWRkVGFzayggdGFzaywgcGFyZW50ICkg
KTsKIApJbmRleDogdGFzay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGFzay5jcHAJKHJldmlzaW9uIDQz
MzM2NikKKysrIHRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxNyArMjIsMTggQEAKIFFQ
dHJWZWN0b3I8UVBpeG1hcD4gKlRhc2s6Omljb25zID0gMDsKIAogVGFzazo6VGFzayggY29uc3Qg
UVN0cmluZyYgdGFza05hbWUsIGxvbmcgbWludXRlcywgbG9uZyBzZXNzaW9uVGltZSwKLSAgICAg
ICAgICAgIERlc2t0b3BMaXN0IGRlc2t0b3BzLCBUYXNrVmlldyAqcGFyZW50KQorICAgICAgICAg
ICAgRGVza3RvcExpc3QgZGVza3RvcHMsIFRhc2tWaWV3ICpwYXJlbnQsIGNvbnN0IFFTdHJpbmcg
Y29tbWVudHMgKQogICA6IFFPYmplY3QoKSwgUUxpc3RWaWV3SXRlbShwYXJlbnQpCiB7IAotICBp
bml0KHRhc2tOYW1lLCBtaW51dGVzLCBzZXNzaW9uVGltZSwgZGVza3RvcHMsIDApOworICBpbml0
KHRhc2tOYW1lLCBtaW51dGVzLCBzZXNzaW9uVGltZSwgZGVza3RvcHMsIDAsIGNvbW1lbnRzKTsK
IH0KIAogVGFzazo6VGFzayggY29uc3QgUVN0cmluZyYgdGFza05hbWUsIGxvbmcgbWludXRlcywg
bG9uZyBzZXNzaW9uVGltZSwKLSAgICAgICAgICAgIERlc2t0b3BMaXN0IGRlc2t0b3BzLCBUYXNr
ICpwYXJlbnQpCisgICAgICAgICAgICBEZXNrdG9wTGlzdCBkZXNrdG9wcywgVGFzayAqcGFyZW50
LCBjb25zdCBRU3RyaW5nIGNvbW1lbnRzICkKICAgOiBRT2JqZWN0KCksIFFMaXN0Vmlld0l0ZW0o
cGFyZW50KQogewotICBpbml0KHRhc2tOYW1lLCBtaW51dGVzLCBzZXNzaW9uVGltZSwgZGVza3Rv
cHMsIDApOworICBrZERlYnVnKDU5NzApIDw8ICJUYXNrOjpUYXNrOmNvbW1lbnRzIGFyZSIgPDwg
Y29tbWVudHMgPDwgZW5kbDsKKyAgaW5pdCh0YXNrTmFtZSwgbWludXRlcywgc2Vzc2lvblRpbWUs
IGRlc2t0b3BzLCAwLCBjb21tZW50cyk7CiB9CiAKIFRhc2s6OlRhc2soIEtDYWw6OlRvZG8qIHRv
ZG8sIFRhc2tWaWV3KiBwYXJlbnQgKQpAQCAtNDksNyArNTAsNyBAQAogfQogCiB2b2lkIFRhc2s6
OmluaXQoIGNvbnN0IFFTdHJpbmcmIHRhc2tOYW1lLCBsb25nIG1pbnV0ZXMsIGxvbmcgc2Vzc2lv
blRpbWUsCi0gICAgICAgICAgICAgICAgIERlc2t0b3BMaXN0IGRlc2t0b3BzLCBpbnQgcGVyY2Vu
dF9jb21wbGV0ZSkKKyAgICAgICAgICAgICAgICAgRGVza3RvcExpc3QgZGVza3RvcHMsIGludCBw
ZXJjZW50X2NvbXBsZXRlLCBRU3RyaW5nIGNvbW1lbnRzICkKIHsKICAgLy8gSWYgb3VyIHBhcmVu
dCBpcyB0aGUgdGFza3ZpZXcgdGhlbiBjb25uZWN0IG91ciB0b3RhbFRpbWVzQ2hhbmdlZAogICAv
LyBzaWduYWwgdG8gaXRzIHJlY2VpdmVyCkBAIC03NSw2ICs3Niw4IEBACiAKICAgX3JlbW92aW5n
ID0gZmFsc2U7CiAgIF9uYW1lID0gdGFza05hbWUuc3RyaXBXaGl0ZVNwYWNlKCk7CisgIGtkRGVi
dWcoNTk3MCkgPDwgInRhc2s6OmluaXQ6IGNvbW1lbnRzIGFyZSIgPDwgY29tbWVudHMgPDwgZW5k
bDsKKyAgX2NvbW1lbnRzID0gY29tbWVudHM7CiAgIF9sYXN0U3RhcnQgPSBRRGF0ZVRpbWU6OmN1
cnJlbnREYXRlVGltZSgpOwogICBfdG90YWxUaW1lID0gX3RpbWUgPSBtaW51dGVzOwogICBfdG90
YWxTZXNzaW9uVGltZSA9IF9zZXNzaW9uVGltZSA9IHNlc3Npb25UaW1lOwpAQCAtMzEzLDYgKzMx
Niw5IEBACiAKICAgdG9kby0+c2V0UGVyY2VudENvbXBsZXRlKF9wZXJjZW50Y29tcGxldGUpOwog
CisgIHRvZG8tPmFkZENvbW1lbnQoX2NvbW1lbnRzKTsKKyAga2REZWJ1Zyg1OTcwKSA8PCAiY29t
bWVudCBpcyAiIDw8IF9jb21tZW50cyA8PCBlbmRsOworCiAgIHJldHVybiB0b2RvOwogfQogCkBA
IC0zMjUsNyArMzMxLDcgQEAKICAgbmFtZSA9IGluY2lkZW50LT5zdW1tYXJ5KCk7CiAgIF91aWQg
PSBpbmNpZGVudC0+dWlkKCk7CiAKLSAgX2NvbW1lbnQgPSBpbmNpZGVudC0+ZGVzY3JpcHRpb24o
KTsKKyAgX2NvbW1lbnRzID0gaW5jaWRlbnQtPmRlc2NyaXB0aW9uKCk7CiAKICAgb2sgPSBmYWxz
ZTsKICAgbWludXRlcyA9IGluY2lkZW50LT5jdXN0b21Qcm9wZXJ0eSgga2FwcC0+aW5zdGFuY2VO
YW1lKCksCkBAIC00MTEsMTMgKzQxNywxMyBAQAogCiB2b2lkIFRhc2s6OmFkZENvbW1lbnQoIFFT
dHJpbmcgY29tbWVudCwgS2FybVN0b3JhZ2UqIHN0b3JhZ2UgKQogewotICBfY29tbWVudCA9IF9j
b21tZW50ICsgUVN0cmluZzo6ZnJvbUxhdGluMSgiXG4iKSArIGNvbW1lbnQ7CisgIF9jb21tZW50
cyA9IF9jb21tZW50cyArIFFTdHJpbmc6OmZyb21MYXRpbjEoIlxuIikgKyBjb21tZW50OwogICBz
dG9yYWdlLT5hZGRDb21tZW50KHRoaXMsIGNvbW1lbnQpOwogfQogCiBRU3RyaW5nIFRhc2s6OmNv
bW1lbnQoKSBjb25zdAogewotICByZXR1cm4gX2NvbW1lbnQ7CisgIHJldHVybiBfY29tbWVudHM7
CiB9CiAKIGludCBUYXNrOjpjb21wYXJlICggUUxpc3RWaWV3SXRlbSAqIGksIGludCBjb2wsIGJv
b2wgYXNjZW5kaW5nICkgY29uc3QKSW5kZXg6IGVkaXR0YXNrZGlhbG9nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBlZGl0dGFza2RpYWxvZy5jcHAJKHJldmlzaW9uIDQzMzM2NikKKysrIGVkaXR0YXNrZGlh
bG9nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAgIGthcm0KICAq
ICAgVGhpcyBmaWxlIG9ubHk6IENvcHlyaWdodCAoQykgMTk5OSAgRXNwZW4gU2FuZCwgZXNwZW5z
YUBvbmxpbmUubm8KLSAqICAgTW9kaWZpY2F0aW9ucyAoc2VlIENWUyBsb2cpIENvcHlyaWdodCAo
QykgMjAwMCBLbGFy5Gx2ZGFsZW5zCisgKiAgIE1vZGlmaWNhdGlvbnMgKHNlZSBDVlMgbG9nKSBD
b3B5cmlnaHQgKEMpIDIwMDAgS2xhcu+/vXZkYWxlbnMKICAqICAgRGF0YWtvbnN1bHQgQUIgPGth
bGxlQGRhbGhlaW1lci5kZT4sIEplc3BlciBQZWRlcnNlbiA8YmxhY2tpZUBrZGUub3JnPgogICoK
ICAqCkBAIC02Nyw2ICs2NywyMCBAQAogICBsYWJlbC0+c2V0QnVkZHkoIF9uYW1lICk7CiAKIAor
ICAvLyBkZXNjcmlwdGlvbgorICBRTGFiZWwgKmxhYmVsY29tbSA9IG5ldyBRTGFiZWwoIGkxOG4o
IkNvbW1lbnQ6IiksIHBhZ2UsICJjb21tIiApOworICBsYXkyLT5hZGRXaWRnZXQoIGxhYmVsY29t
bSApOworICBsYXkyLT5hZGRTcGFjaW5nKDUpOworICAKKyAgCisgIF9jb21tID0gbmV3IFFMaW5l
RWRpdCggcGFnZSwgImxpbmVlZGl0IiApOworICAKKyAgX2NvbW0tPnNldE1pbmltdW1XaWR0aChm
b250TWV0cmljcygpLm1heFdpZHRoKCkqMTUpOworICBsYXkyLT5hZGRXaWRnZXQoIF9jb21tICk7
CisgIGxhYmVsLT5zZXRCdWRkeSggX2NvbW0gKTsKKworCisKICAgLy8gVGhlICJFZGl0IEFic29s
dXQiIHJhZGlvIGJ1dHRvbgogICBsYXkxLT5hZGRTcGFjaW5nKDEwKTtsYXkxLT5hZGRTdHJldGNo
KDEpOyAKICAgX2Fic29sdXRlUkIgPSBuZXcgUVJhZGlvQnV0dG9uKCBpMThuKCAiRWRpdCAmYWJz
b2x1dGUiICksIHBhZ2UsCkBAIC0zMTAsNiArMzI0LDEwIEBACiAgIHJldHVybiggX25hbWUtPnRl
eHQoKSApOyAKIH0KIAorUVN0cmluZyBFZGl0VGFza0RpYWxvZzo6dGFza0NvbW1lbnQoKSBjb25z
dAoreworICByZXR1cm4oIF9jb21tLT50ZXh0KCkgKTsKK30KIAogdm9pZCBFZGl0VGFza0RpYWxv
Zzo6c3RhdHVzKGxvbmcgKnRpbWUsIGxvbmcgKnRpbWVEaWZmLCBsb25nICpzZXNzaW9uLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgKnNlc3Npb25EaWZmLCBEZXNrdG9wTGlzdCAq
ZGVza3RvcExpc3QpIGNvbnN0CkluZGV4OiB0YXNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGFzay5oCShy
ZXZpc2lvbiA0MzMzNjYpCisrKyB0YXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDkg
QEAKICAgcHVibGljOgogICAgIC8vQHsgY29uc3RydWN0b3JzCiAgICAgVGFzayggY29uc3QgUVN0
cmluZyYgdGFza2FtZSwgbG9uZyBtaW51dGVzLCBsb25nIHNlc3Npb25UaW1lLAotICAgICAgICAg
IERlc2t0b3BMaXN0IGRlc2t0b3BzLCBUYXNrVmlldyogcGFyZW50ID0gMCk7CisgICAgICAgICAg
RGVza3RvcExpc3QgZGVza3RvcHMsIFRhc2tWaWV3KiBwYXJlbnQgPSAwLCBjb25zdCBRU3RyaW5n
IGNvbW1lbnRzID0gIiIgKTsKICAgICBUYXNrKCBjb25zdCBRU3RyaW5nJiB0YXNrYW1lLCBsb25n
IG1pbnV0ZXMsIGxvbmcgc2Vzc2lvblRpbWUsCi0gICAgICAgICAgRGVza3RvcExpc3QgZGVza3Rv
cHMsIFRhc2sqIHBhcmVudCA9IDApOworICAgICAgICAgIERlc2t0b3BMaXN0IGRlc2t0b3BzLCBU
YXNrKiBwYXJlbnQgPSAwLCBjb25zdCBRU3RyaW5nIGNvbW1lbnRzID0gIiIgKTsKICAgICBUYXNr
KCBLQ2FsOjpUb2RvKiBpbmNpZGVudCwgVGFza1ZpZXcqIHBhcmVudCApOwogICAgIC8vQH0KICAg
ICAvKiBkZXN0cnVjdG9yICovCkBAIC0yNDcsNyArMjQ3LDcgQEAKICAgICBRU3RyaW5nIF91aWQ7
CiAKICAgICAvKiogVGhlIGNvbW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgVGFzay4gKi8KLSAg
ICBRU3RyaW5nIF9jb21tZW50OworICAgIFFTdHJpbmcgX2NvbW1lbnRzOwogCiAgICAgaW50IF9w
ZXJjZW50Y29tcGxldGU7CiAKQEAgLTI1OCw3ICsyNTgsNyBAQAogCiAgICAgLyoqIGluaXRpYWxp
emUgYSB0YXNrICovCiAgICAgdm9pZCBpbml0KCBjb25zdCBRU3RyaW5nJiB0YXNrYW1lLCBsb25n
IG1pbnV0ZXMsIGxvbmcgc2Vzc2lvblRpbWUsCi0gICAgICAgICAgICAgICBEZXNrdG9wTGlzdCBk
ZXNrdG9wcywgaW50IHBlcmNlbnRfY29tcGxldGUpOworICAgICAgICAgICAgICAgRGVza3RvcExp
c3QgZGVza3RvcHMsIGludCBwZXJjZW50X2NvbXBsZXRlLCBRU3RyaW5nIGNvbW1lbnRzID0gIiIg
KTsKIAogCiAgICAgLyoqIHRhc2sgbmFtZSAqLwpJbmRleDogZWRpdHRhc2tkaWFsb2cuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBlZGl0dGFza2RpYWxvZy5oCShyZXZpc2lvbiA0MzMzNjYpCisrKyBlZGl0dGFz
a2RpYWxvZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAgICAgRWRpdFRhc2tE
aWFsb2coUVN0cmluZyBjYXB0aW9uLCBib29sIGVkaXREbGcsIERlc2t0b3BMaXN0KiBkZXNrdG9w
TGlzdD0wKTsKICAgICB2b2lkIHNldFRhc2soY29uc3QgUVN0cmluZyAmbmFtZSwgbG9uZyB0aW1l
LCBsb25nIHNlc3Npb25UaW1lKTsKICAgICBRU3RyaW5nIHRhc2tOYW1lKCkgY29uc3Q7Ci0KKyAg
ICBRU3RyaW5nIHRhc2tDb21tZW50KCkgY29uc3Q7CiAgICAgLy8gcmV0dXJuIHVzZXIgY2hvaWNl
cwogICAgIHZvaWQgc3RhdHVzKCBsb25nICp0aW1lLCBsb25nICp0aW1lRGlmZiwgCiAgICAgICAg
ICAgICAgICAgIGxvbmcgKnNlc3Npb24sIGxvbmcgKnNlc3Npb25EaWZmLCAKQEAgLTYxLDYgKzYx
LDcgQEAKIAogICBwcml2YXRlOgogICAgIFFMaW5lRWRpdCogX25hbWU7CisgICAgUUxpbmVFZGl0
KiBfY29tbTsKICAgICBLQXJtVGltZVdpZGdldCogX3RpbWVUVzsKICAgICBLQXJtVGltZVdpZGdl
dCogX3Nlc3Npb25UVzsKICAgICBLQXJtVGltZVdpZGdldCogX2RpZmZUVzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19355</attachid>
            <date>2007-01-20 21:39:25 +0000</date>
            <delta_ts>2007-01-20 21:39:25 +0000</delta_ts>
            <desc>commenting works &quot;a bit&quot;</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>2720</size>
            <attacher name="Thorsten Staerk">dev</attacher>
            
              <data encoding="base64">SW5kZXg6IHRhc2t2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0YXNrdmlldy5jcHAJKHJldmlzaW9u
IDYwMTk2NSkKKysrIHRhc2t2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjkyLDcgKzY5Miw4
IEBACiAKIHZvaWQgVGFza1ZpZXc6OmV4dHJhY3RUaW1lKGludCBtaW51dGVzKQogewotICBhZGRU
aW1lVG9BY3RpdmVUYXNrcygtbWludXRlcyk7CisgIGtkRGVidWcoNTk3MCkgPDwgIkVudGVyaW5n
IGV4dHJhY3RUaW1lIiA8PCBlbmRsOworICAvL2FkZFRpbWVUb0FjdGl2ZVRhc2tzKC1taW51dGVz
KTsKIH0KIAogdm9pZCBUYXNrVmlldzo6YXV0b1NhdmVDaGFuZ2VkKGJvb2wgb24pCkluZGV4OiBp
ZGxldGltZWRldGVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaWRsZXRpbWVkZXRlY3Rvci5oCShyZXZp
c2lvbiA2MDE5NDApCisrKyBpZGxldGltZWRldGVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
LDcgKzE2LDcgQEAKICNlbmRpZiAvLyBIQVZFX0xJQlhTUwogCiAvLyBTZWNvbmRzIHBlciBtaW51
dGVzIC0gdXNlZnVsIGZvciBzcGVlZGluZyBkZWJ1Z2dpbmcgdXAhCi1jb25zdCBpbnQgc2Vjc1Bl
ck1pbnV0ZSA9IDYwOworY29uc3QgaW50IHNlY3NQZXJNaW51dGUgPSAxMDsKIAogLy8gTWludXRl
cyBiZXR3ZWVuIGVhY2ggaWRsZSBvdmVycnVuIHRlc3QuCiBjb25zdCBpbnQgdGVzdEludGVydmFs
PSBzZWNzUGVyTWludXRlICogMTAwMDsKSW5kZXg6IHRhc2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRh
c2suY3BwCShyZXZpc2lvbiA2MDE5NDkpCisrKyB0YXNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDcgKzExMiw3IEBACiAgICAgaWYgKF90aW1lci0+aXNBY3RpdmUoKSkgewogICAgICAgX3Rp
bWVyLT5zdG9wKCk7CiAgICAgICBpZiAoICEgX3JlbW92aW5nICkgewotICAgICAgICBzdG9yYWdl
LT5zdG9wVGltZXIodGhpcywgd2hlblN0b3BwZWQpOworICAgICAgICBzdG9yYWdlLT5zdG9wVGlt
ZXJBdCh0aGlzLCB3aGVuU3RvcHBlZCk7CiAgICAgICAgIHNldFBpeG1hcCgxLCBVc2VySWNvbihR
U3RyaW5nOjpmcm9tTGF0aW4xKCJlbXB0eS13YXRjaC54cG0iKSkpOwogICAgICAgfQogICAgIH0K
SW5kZXg6IGthcm1zdG9yYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2FybXN0b3JhZ2UuaAkocmV2aXNp
b24gNjAxOTY1KQorKysga2FybXN0b3JhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDYgKzIz
MiwxNyBAQAogICAgIHZvaWQgc3RvcFRpbWVyKGNvbnN0IFRhc2sqIHRhc2ssIFFEYXRlVGltZSB3
aGVuPVFEYXRlVGltZTo6Y3VycmVudERhdGVUaW1lKCkpOwogCiAgICAgLyoqCisgICAgICogTG9n
IHRoZSBldmVudCB0aGF0IHRoZSB0aW1lciBoYXMgc3RvcHBlZCBmb3IgdGhpcyB0YXNrLgorICAg
ICAqCisgICAgICogVGhlIHRhc2sgc3RvcmVzIHRoZSBsYXN0IHRpbWUgYSB0aW1lciB3YXMgc3Rh
cnRlZCwgc28gd2UgbG9nIGEgbmV3IGlDYWwKKyAgICAgKiBFdmVudCB3aXRoIHRoZSBzdGFydCBh
bmQgZW5kIHRpbWUgd2hlbiBmb3IgdGhpcyB0YXNrLgorICAgICAqIEBzZWUgS2FybVN0b3JhZ2U6
OmNoYW5nZVRpbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXNrICAgVGhlIHRhc2sgdGhlIHRp
bWVyIHdhcyBzdG9wcGVkIGZvci4KKyAgICAgKi8KKyAgICB2b2lkIHN0b3BUaW1lckF0KGNvbnN0
IFRhc2sqIHRhc2ssIFFEYXRlVGltZSB3aGVuPVFEYXRlVGltZTo6Y3VycmVudERhdGVUaW1lKCkp
OworCisgICAgLyoqCiAgICAgICogTG9nIGEgbmV3IGNvbW1lbnQgZm9yIHRoaXMgdGFzay4KICAg
ICAgKgogICAgICAqIGlDYWwgYWxsb3dzIG11bHRpcGxlIGNvbW1lbnQgdGFncy4gIFNvIHdlIGp1
c3QgYWRkIGEgbmV3IGNvbW1lbnQgdG8gdGhlCkluZGV4OiBrYXJtc3RvcmFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga2FybXN0b3JhZ2UuY3BwCShyZXZpc2lvbiA2MDE5NjUpCisrKyBrYXJtc3RvcmFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNTAsNiArMTA1MCwxNCBAQAogICBjaGFuZ2VUaW1l
KHRhc2ssIGRlbHRhKTsKIH0KIAordm9pZCBLYXJtU3RvcmFnZTo6c3RvcFRpbWVyQXQoY29uc3Qg
VGFzayogdGFzaywgUURhdGVUaW1lIHdoZW4pCisvLyBzdG9wcyBhIHRpbWVyIGF0IHRoZSBwb2lu
dCBpbiB0aW1lIHdoZW4KK3sKKyAga2REZWJ1Zyg1OTcwKSA8PCAiRW50ZXJpbmcgS2FybVN0b3Jh
Z2U6OnN0b3BUaW1lciIgPDwgZW5kbDsKKyAgbG9uZyBkZWx0YSA9IHRhc2stPnN0YXJ0VGltZSgp
LnNlY3NUbyh3aGVuKTsKKyAgY2hhbmdlVGltZSh0YXNrLCBkZWx0YSk7Cit9CisKIGJvb2wgS2Fy
bVN0b3JhZ2U6OmJvb2tUaW1lKGNvbnN0IFRhc2sqIHRhc2ssCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBRRGF0ZVRpbWUmIHN0YXJ0RGF0ZVRpbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBsb25nIGR1cmF0aW9uSW5TZWNvbmRzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>