Bug 90744 - knotes dont save notes (standalone and kontact)
Summary: knotes dont save notes (standalone and kontact)
Status: RESOLVED FIXED
Alias: None
Product: knotes
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Michael Brade
URL:
Keywords:
: 105339 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-10-04 11:14 UTC by Roland
Modified: 2005-05-17 13:18 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roland 2004-10-04 11:14:36 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    SuSE RPMs

hi. after update from 3.2.1 to 3.3 by suserpms, knotes dont save any note. not standalone and not n kontact. i have the notes till i shut down kde. next start, knotes dont work. there is no note everywehre and ant the starticon looks chrashed, ofcorse there is no note (this bug maybe knowen? -- to stop, creat a dummynote ;) ).
Comment 1 Kay Patzwald 2004-10-04 14:42:28 UTC
Hi,

I have the same problem.

Best regards, Kay
Comment 2 Roland 2004-10-04 15:13:32 UTC
there was a error in an older version. the icon has a error, if no notes stored. the same like now. but there you have can make a dummyentry to get the right icon. but now knotes dont store any inputs.

i look at ~/.kde/share/apps/knotes. there are entrys for every note. but the text are not inside. have somebody a old correct entry? i want to copy the text into a note to have a dummy-entry like in the older version. can sombody help?
Comment 3 Michael Brade 2004-10-04 20:59:24 UTC
First of all, in KDE 3.3 the notes are stored in 
~/.kde/share/apps/knotes/notes.ics, KNotes will automatically detect old 
notes and convert and import them. The icon-bug I have fixed in CVS HEAD 
already.

You can use the DCOP interface to create new notes when the icon is broken to 
get the "dummy" entry. Or just type "knotes" on the commandline, that will 
create a new note as well.

Comment 4 Roland 2004-10-04 22:07:19 UTC
i dont have a notes.ics, but a ~/.kde/share/apps/knotesnotes.ics. i have make a copy to ..../notes and rename it. no effekt.

and i have allready the libkcal entrys, for every test on i can see at the date of every data.

can this come from the update from 3.2.1 to 3.3.0 ??

and last question: i try this with no effekt. why? do i thomething wrong? is this the error of knotes? i neaver work with dcop, i fund this withs google.de/linux and make copy&paste.
> $dcop knotes KNotesIface newNote "A note" "Stuff I want to keep track of"
> knotes: Unerwartetes Argument "KNotesIface".
means like waiting for a other argument .. ähm .. ;)
Comment 5 Roland 2004-10-04 22:12:39 UTC
i forget: there is a ~/.kde/share/apps/kontact/notes too. there are the libkcal-entrys for the notes make in kontact-notes.
Comment 6 Michael Brade 2004-10-04 23:17:56 UTC
$ dcop knotes KNotesIface newNote "yadda" "yadda"
works here. Try
  dcop knotes
and see what it prints. You can also use "kdcop" and (double)click on the 
functions.

The bug with "knotesnotes.ics" is fixed already, too.

> i dont have a notes.ics, but a ~/.kde/share/apps/knotesnotes.ics. i have
> make a copy to ..../notes and rename it. no effekt. 
You have got a .../knotes/notes.ics now? Or a .../knotes/notes/notes.ics? You 
need the _former_! And then restart KNotes, this must work. Make sure KNotes 
has read-permission to notes.ics.

> and i have allready the libkcal entrys, for every test on i can see at the
> date of every data. 
I'm sorry, I don't understand the meaning of that sentence.

Comment 7 Roland 2004-10-05 10:18:17 UTC
hi
>$dcop knotes
this will start knotes with a empty note and no returnmessages. in the .../apps/knotes directory a libkcal... data will make, but no notes.ics. to make a note with the comandline hase no effekt, everytime the same returnmassage.

i start kdcop. there is no entry for knotes. ??

> I'm sorry, I don't understand the meaning of that sentence. 
i mean, i have the notes config datas for every note i make.

and i have copyed the data to /apps/knotes. what do you mean with _former_ ... sorry, i never work "so deep" in my kde .. readingpermissions i think it has. owner and group of me, reading and wrinting for me, all others can read.
Comment 8 Roland 2004-10-05 10:35:53 UTC
ups, knotes must be started to see it in kdcop. but i think, the comandline was right.
Comment 9 mail 2004-10-05 11:02:21 UTC
I have the same problem, using SuSE with KDE 3.3 as well:
KDE Version 3.3 (KDE 3.3.0, SuSE)
Linux (i686) release 2.6.5-7.108-default
gcc version 3.3.3 (SuSE Linux)

I tried the following:
- Exited knotes
- Removed ~/.kde/share/apps/knotesnotes.*
- Removed ~/.kde/share/apps/knotes (directory)
- Started knotes
- A new message pops up; I filled in some stuff
- Exited knotes
- Result: ~/.kde/share/apps/knotesnotes.ics (!) is created, the stuff filled in is stored in there; ~/.kde/share/apps/knotes/notes/notes.ics does NOT exist
- Started knotes
- A new message pops up with a new creation time; the old stuff was obviously not loaded from knotesnotes.ics
- Filled in some other stuff
- Exited knotes
- Result: ~/.kde/share/apps/knotesnotes.ics is overwritten; the only message is now the new one with the other stuff filled in. Still no notes.ics, BUT two libkcal-... entries in the knotes/notes directory. Only one is referenced in knotesnotes.ics.
- Moved knotesnotes.ics to ~/.kde/share/apps/knotes/notes.ics.
- Started knotes
- Note with other stuff is loaded!
- Modified the other stuff
- Exited knotes
- Result: notes.ics still has the older other stuff, knotesnotes.ics is created again and has the new stuff
- Started knotes
- As expected, knotes only loads the contents of notes.ics, which is the one with older other stuff.

So it looks like knotes always SAVES stuff in knotesnotes.ics, even creating it when it does not exist, but LOADS stuff from notes.ics.

WORKAROUND with symbolic link:
- (Save old messages if needed)
- rm ~/.kde/share/apps/knotesnotes.ics*
- rm -r -f ~/.kde/share/apps/knotes
- knotes
- (Exit knotes)
- ln -s ~/.kde/share/apps/knotesnotes.ics ~/.kde/share/apps/knotes/notes.ics
- knotes
This works for me, saving notes between sessions. However, editing notes in kontact still does not work.
Comment 10 mail 2004-10-05 11:37:02 UTC
I also analyzed the problem with kontact a little more.
When I create a new message in kontact, I can see the changes in notes.ics (which is a link to the old knotesnotes.ics in my case; see above) immediately. But the libkcal-entries referenced in those new entries seem to exist nowhere; neither in ~/.kde/share/apps/knotes/notes, nor in ~/.kde/share/apps/kontact/notes. The changes are not reflected in the running knotes-Application (shouldn't there be some DCOP-communication?), and once I close the knotes-Application, notes.ics is overwritten by it so that all changes made in kontact are lost. Another thing is that renaming notes in kontact leads to changes in notes.ics, but the note is not renamed in the kontact view. Only reloading kontact makes those changes visible (until they are overwritten when closing knotes again).
Comment 11 Roland 2004-10-05 12:38:03 UTC
ok, i take the way with the link. but i have see, if i ending knotes and start it (in the same session), all old notes will be deleted.
Comment 12 JP 2004-10-10 15:37:55 UTC
I have the problem too.. with KDE 3.2.3 and Knotes 3.3
:(
Comment 13 Michael Brade 2004-10-10 16:31:09 UTC
On Tuesday 05 October 2004 11:37, mail@joerg-brenninkmeyer.de wrote:
> I also analyzed the problem with kontact a little more.
Thank you _very_ much, Joerg, for your detailed analysis of the problem! Much 
appreciated. Unfortunately, someone tried to fix a bug in KNotes in a 
slightly wrong way which introduced the problem with knotesnotes.ics. 
However, this was not released, but SuSE pulled the buggy fix for their KDE 
3.3 packages :-((

Now, what I don't understand, and in fact I think this should not be possible 
at all, is that if there is an apps/knotes/notes.ics file and it is readable 
and writeable by KNotes, there can not be any knotesnotes.ics created. Are 
you _really_ sure about that? The file should only be created if apps/knotes 
is no directory, impossible to be created, or unreadable. 

This problem has been fixed in the meantime, btw. And your workaround using 
the symbolic link is really clever!

> [...]
> and once I close the knotes-Application, notes.ics is overwritten by it so
> that all changes made in kontact are lost.
Yes, I know. This is still an open issue and needs quite some work. I didn't 
have the time to implement synchronization between Kontact and KNotes yet. 
But hopefully in about 3-4 weeks...

> Another thing is that renaming 
> notes in kontact leads to changes in notes.ics, but the note is not renamed
> in the kontact view. Only reloading kontact makes those changes visible
> (until they are overwritten when closing knotes again).
But that means you have an old Kontact, that is, a contact that does not have 
the iconview for the notes part?

Cheers,
  Michael
--
Michael Brade;                 KDE Developer, Student of Computer Science
  |-mail: echo brade !#|tr -d "c oh"|s\e\d 's/e/\@/2;s/$/.org/;s/bra/k/2'
  °--web: http://www.kde.org/people/michaelb.html

KDE 3: The Next Generation in Desktop Experience
Comment 14 Roland 2004-10-10 20:38:13 UTC
> I have the problem too.. with KDE 3.2.3 and Knotes 3
in kde 3.2.1 i make a trick. i have insert only one note witch i never delete. now knotes was working right. maybe its works with your version... ??
Comment 15 m00nraker 2004-10-18 10:48:16 UTC
Hi.

Under KDE 3.3.0, I had the same problem, that KNote doesn't save the notes on exit.

A few days later, there was an updated version of KNotes on an apt-mirror. I installed the updated version of KNotes (via. apt/synaptic) and after that it works fine. The notes were saved correctly on program exit.

But after I updated to KDE 3.3.1 last week, KNotes does't save the notes again. It's the same problem like described above.

Will there be a fixed version of Knotes for KDE 3.3.1?

I like KNotes very much. So thanks a lot for your work. 
Comment 16 Michael Brade 2004-10-18 14:39:44 UTC
> Will there be a fixed version of Knotes for KDE 3.3.1?
Dunno, but not officially from KDE. I was too late to notice and backport the 
changes, so all the known bugs I had fixed so far will be in KDE 3.3.2 only. 
Sorry about that, developers sometimes are soo lazy ;-}

> I like KNotes very much. So thanks a lot for your work.
Thanks, too! :)

Cheers,
  Michael
Comment 17 Kay Patzwald 2004-10-18 15:17:14 UTC
I don't want to wait for kde3.3.2. Is it possible to update only knotes? I need a rpm.

Kay
Comment 18 Michael Brade 2004-10-18 17:03:32 UTC
I don't know. That depends on your distributor. And there's always the 
possibility to use CVS or daily snapshots of kdepim and to only build knotes 
in it (yes, I know, inconvenient and work...).

Comment 19 Kay Patzwald 2004-10-18 17:18:51 UTC
Is there a tutorial how to build only knotes?
Comment 20 Michael Brade 2004-10-18 18:05:26 UTC
No, but "no" because it's easy :)

cvs co kdepim OR tar xzf kdepim-version.tar.gz
cd kdepim
make -f Makefile.cvs
./configure
cd libical
make install
cd libkcal
make install
cd knotes
make install

With unsermake the libkcal/libical bits are not needed. But don't worry if you 
don't know what unsermake is. Just do the above.

Of course, you have to install the kdelibs-dev package that comes with your 
distribution first (and all the other required -dev packages, they include 
the header files needed for compilation). ./configure will complain about any 
missing pieces.

Hope that helps.
Comment 21 Kay Patzwald 2004-10-18 20:20:47 UTC
Thanks, it works finally :-), but I have to install also the following:
libemailfunctions
ktnef

Kay
Comment 22 mail 2004-10-19 23:37:41 UTC
Sorry for replying that late, I had to pass my oral exam in the meantime! :-)

> Now, what I don't understand, and in fact I think this should not be possible
> at all, is that if there is an apps/knotes/notes.ics file and it is readable
> and writeable by KNotes, there can not be any knotesnotes.ics created. Are
> you _really_ sure about that? The file should only be created if apps/knotes
> is no directory, impossible to be created, or unreadable.

I checked it again, and knotesnotes.ics is definitely created when I proceed like described above. I also moved knotesnotes.ics to the notes.ics file, overwriting the latter, and doublechecked the permissions. After loading knotes, creating a new message and closing it, a knotesnotes.ics file is created, containing the old messages and the new one, while the notes.ics file is not changed and contains only the old messages.

> This problem has been fixed in the meantime, btw.

I kept updating the SUSE KDE 3.3 packages, but the problem still exists. However, SUSE still provides 3.3.1 only, so it's probably just a matter of time. My current version of kdepim is 3.3.1-3.

> > Another thing is that renaming
> > notes in kontact leads to changes in notes.ics, but the note is not renamed
> > in the kontact view. Only reloading kontact makes those changes visible
> > (until they are overwritten when closing knotes again).
> But that means you have an old Kontact, that is, a contact that does not have
> the iconview for the notes part?

I do have the iconview, the problem occurs when I right-click the icon and select "rename". A textfield is displayed in front of the original text and I can edit it, but when I hit Enter, the old text is displayed again. Only restarting kontact makes the changes visible.
Comment 23 Paulo Dias 2004-10-20 20:15:11 UTC
Hi... i also had the same problem with kde 3.3.1 (compiled from sources with slackware 10.0), and after i downloaded the kdepim-041020 snapshot, it fixed the bug:) also, the "simbolic link method" workaround also worked:)

i hope this nasty bug doesn't show up in kde 3.3.2:)
thanks for a very VERY useful proggie:) knotes rocks :)
Comment 24 Richard Fujimoto 2004-10-24 01:09:01 UTC
Wouldn't a patch be appropriate though?  I mean, this bug does render knotes useless....  That way packagers could re-package kde-pim with a patch.
Comment 25 Imre Tuske 2004-10-30 00:25:46 UTC
I have KDE 3.3.1 installed, and it seems that

- on startup, KNotes reads the ~/.kde/share/apps/knotesnotes.ics
- but on save/exit it saves to ~/.kde/share/apps/knotes/notes.ics

My suspicion would be that a '/' character was left out from the source code (code typo?), wasn't it? :)

I'm too lazy to recompile, rather go for the symlink workaround... thanks for the hints guys! :)
Comment 26 Imre Tuske 2004-10-30 00:29:33 UTC
(Oops, I've accidentally confused the start/exit files in my previous post, but I think still shows the idea...)
Comment 27 jeff pitman 2004-11-03 02:58:05 UTC
Dupe: http://bugs.kde.org/show_bug.cgi?id=92596
Comment 28 jeff pitman 2004-11-03 03:00:10 UTC
KDE 3.3.1, kde-redhat packages.  Confirmed same behavior.

Recommend status be upgraded to "Grave", as this constitutes Data Loss.  Patch should be pushed to vendors prior to 3.3.2 in an errata update.
Comment 29 Michael E. Stora, Ph.D. 2004-11-14 21:59:04 UTC
My experiance on a new SuSE 9.2 install:

Knotes does not save notes. knotes crashes on restoring sesion.

Cause and workaround:

Knotes is looking for notes in the file ~/.kde/share/apps/knotes/notes.ics (which I suspect is the correct location) but writting notes to ~/.kde/share/apps/knotesnotes.ics (I suspect a missing slash in the code).  Creating both files still leaves some bugs (can't delete notes, brings up new blank note on startup), but if you make ~/.kde/share/apps/knotes/notes.ics a symbolic link to ~/.kde/share/apps/knotesnotes.ics functionality is fully restored.

Mike
Comment 30 Alessandro Faustini 2004-11-24 20:23:33 UTC
I modified knotes source and now it seems working right.

in file 'resourcelocal.cpp', function 'ResourceLocal::save()' change 
  QString file = KGlobal::dirs()->saveLocation( "data", "knotes" ) + "notes.ics";
with
  QString file = KGlobal::dirs()->saveLocation( "data" ) + "knotes/notes.ics";
Comment 31 Michael Brade 2004-11-25 09:15:04 UTC
On Wednesday 24 November 2004 20:23, Alessandro Faustini wrote:
> I modified knotes source and now it seems working right.
Ah, I totally forgot that there's two bugreports about the same thing. Will 
close them on Saturday.

> in file 'resourcelocal.cpp', function 'ResourceLocal::save()' change
>   QString file = KGlobal::dirs()->saveLocation( "data", "knotes" ) +
> "notes.ics"; with
>   QString file = KGlobal::dirs()->saveLocation( "data" ) +
> "knotes/notes.ics";
No, this is wrong, see #92596. It has to be
QString file = KGlobal::dirs()->saveLocation( "data", "knotes/" )+"notes.ics";

Comment 32 Michael Brade 2004-11-28 17:05:06 UTC
On Tuesday 19 October 2004 23:37, mail@joerg-brenninkmeyer.de wrote:
> I do have the iconview, the problem occurs when I right-click the icon and
> select "rename". A textfield is displayed in front of the original text and
> I can edit it, but when I hit Enter, the old text is displayed again. Only
> restarting kontact makes the changes visible.
Has been fixed now as well.

Comment 33 Michael Brade 2004-11-28 17:07:15 UTC
CVS commit by brade: 

fixed #90744, #91702, #92596, #93499: save modified notes on quit, may
not have happened when the note still had focus. Also, the problem
with knotesnotes.ics should be gone now.

To #91702: I guess you were takling about modifying only one note, because
when changing to a second one the first one is saved immediately.

BUG: 90744, 91702, 92596, 93499

Will backport in a second.


  M +6 -0      ChangeLog   1.78.2.4
  M +5 -0      knote.cpp   1.120.2.4
  M +2 -0      knote.h   1.41.2.2
  M +6 -0      knotesapp.cpp   1.91.2.2


--- kdepim/knotes/ChangeLog  #1.78.2.3:1.78.2.4
@@ -2,4 +2,10 @@
 ====================
 
+2004/11/28  Michael Brade <brade@kde.org>
+
+    * fixed #90744, #91702, #92596, #93499: save modified notes on quit, may
+      not have happened when the note still had focus. Also, the problem
+      with knotesnotes.ics is gone now.
+
 2004/09/27  Michael Brade <brade@kde.org>
 

--- kdepim/knotes/knote.cpp  #1.120.2.3:1.120.2.4
@@ -408,4 +408,9 @@ void KNote::setText( const QString& text
 }
 
+bool KNote::isModified() const
+{
+    return m_editor->isModified();
+}
+
 // FIXME KDE 4.0: remove sync(), isNew() and isModified()
 void KNote::sync( const QString& app )

--- kdepim/knotes/knote.h  #1.41.2.1:1.41.2.2
@@ -66,4 +66,6 @@ public:
     void setText( const QString& text );
 
+    bool isModified() const;
+
     void sync( const QString& app );
     bool isNew( const QString& app ) const;

--- kdepim/knotes/knotesapp.cpp  #1.91.2.1:1.91.2.2
@@ -471,4 +471,10 @@ void KNotesApp::slotNoteKilled( KCal::Jo
 void KNotesApp::slotQuit()
 {
+    QDictIterator<KNote> it( m_noteList );
+
+    for ( ; *it; ++it )
+        if ( (*it)->isModified() )
+            (*it)->saveData();
+
     saveConfigs();
     kapp->quit();


Comment 34 Michael Brade 2005-05-17 13:18:55 UTC
*** Bug 105339 has been marked as a duplicate of this bug. ***