[tomboy-list] Watching Plugin for Tomboy

José Sánchez Moreno jose at oxigenow.com
Fri Jan 12 08:21:19 PST 2007


Actually, I have to check unison syncs to indicate what is the newer
version of the note.

Of course, a approach like conduit is much better. 

Regards


On vie, 2007-01-12 at 09:15 -0700, Boyd Timothy wrote:

> Looks cool!
> 
> Like I've said before though, there's still conflicts to deal with.
> While they might not happen often, what happens if you edit the same
> note on two different machines before Unison has had a chance to
> synchronize? 
> 
> -Boyd
> 
> 
> On 1/12/07, José Sánchez Moreno <jose at oxigenow.com> wrote:
> 
>         Now the plugin works. Detect new files, deleted files and
>         files changed. 
>         
>         I can use unison to sync my notes.
>         Thanks for reply my question.
>         
>         using System;
>         using System.IO;
>         using System.Collections;
>         using System.Runtime.InteropServices;
>         using Mono.Unix;
>         
>         using Tomboy;
>         
>         public class InotifyPlugin : NotePlugin
>         { 
>         static FileSystemWatcher dir_watcher = null; 
>         const string GCONF_ENABLED_KEY =
>         "/apps/tomboy/inotify/enable_inotify";
>         
>         protected override void Initialize ()
>         {
>         // Inotify code. Monitor changes in .notes files
>         if(dir_watcher == null) {
>         try {
>         Logger.Log("Watching " +
>         Path.GetDirectoryName(Note.FilePath));
>         dir_watcher = new FileSystemWatcher
>         (Path.GetDirectoryName(Note.FilePath), "*.note");
>         dir_watcher.Changed += OnChangedNote;
>         dir_watcher.Deleted += OnDeletedNote;
>         dir_watcher.Created += OnCreatedNote;
>         dir_watcher.EnableRaisingEvents = true;
>         } catch (ArgumentException e) { 
>         Console.WriteLine ("Error creating a FileSystemWatcher {0}",
>         e);
>         }
>         }
>         
>         }
>         
>         void OnCreatedNote(object sender, FileSystemEventArgs args)
>         { 
>         NoteArchiver archiver =  NoteArchiver.Instance;
>         NoteData data =  archiver.ReadFile(args.FullPath,
>         "note://tomboy/" + Path.GetFileNameWithoutExtension
>         (args.FullPath));
>         Note new_note = Note.Load (args.FullPath, Note.Manager); 
>         Note.Manager.Notes.Add(new_note); 
>         }
>         
>         void OnDeletedNote(object sender, FileSystemEventArgs args)
>         {
>         foreach (Note note in Note.Manager.Notes) {
>         if(args.FullPath == note.FilePath) { 
>         Note.Manager.Notes.Remove(note);
>         note.Delete();
>         }
>         } 
>         }
>         
>         void OnChangedNote (object sender, FileSystemEventArgs args)
>         { 
>         foreach (Note note in Note.Manager.Notes) {
>         if(args.FullPath == note.FilePath) {
>         NoteArchiver archiver =  NoteArchiver.Instance;
>         NoteData modified =  archiver.ReadFile(args.FullPath,
>         "note://tomboy/" + Path.GetFileNameWithoutExtension
>         (args.FullPath)); 
>         note.XmlContent = modified.Text;
>         note.Title = modified.Title;
>         }
>         }
>         }
>         
>         protected override void Shutdown ()
>         { 
>         //Preferences.SettingChanged -= OnSettingChanged; 
>         }
>         
>         protected override void OnNoteOpened () 
>         {
>         // Do nothing.
>         }
>         }
>         -- 
>         José Sánchez Moreno <jose at oxigenow.com>
>         
>         
>         
>         
>         _______________________________________________
>         tomboy-list mailing list
>         tomboy-list at lists.beatniksoftware.com
>         http://lists.beatniksoftware.com/listinfo.cgi/tomboy-list-beatniksoftware.com
>         
>         
>         

-- 
José Sánchez Moreno <jose at oxigenow.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.beatniksoftware.com/pipermail/tomboy-list-beatniksoftware.com/attachments/20070112/e54fa7d6/attachment.html 


More information about the tomboy-list mailing list