1
2008-04-09 Seif Lotfy <seif@lotfy.com>
3
* mayanna/mayanna_gmail.py: view gmail contacts under people
5
* mayanna/mayanna_evolution: view evolution contacts
7
* mayanna/mayanna_picasa: view picasa photos
9
* mayanna/mayanna_youtube: view youtube list of favorites
11
* mayanna/mayanna_flickr: view flcikr contacts
14
2007-12-06 Alex Graveley <alex@beatniksoftware.com>
16
(mayanna-0.2 branch, merged from trunk change 654)
18
* mayanna/mayanna_applications.py (MenuTree._queue_reload): Fix bug
19
#502197 by queueing a 3 second timeout when the gmenu monitor
20
callback fires to avoid CPU spikes if a bunch of callbacks are
23
2007-12-02 Alex Graveley <alex@beatniksoftware.com>
25
(mayanna-0.2 branch, merged from trunk change 562)
27
* mayanna/mayanna_computer.py
28
(PrinterItemCups._idle_connect_printer): Shot in the dark at
29
fixing libgnomecups crasher by connecting to printer signals in an
32
2007-10-31 Alex Graveley <alex@beatniksoftware.com>
34
* mayanna/mayanna_pidgin.py (PidginAccountReader): Patch from Alex
35
Gabriel to use a non-reload signal, status-changed for account
36
status changes, to avoid a big slow reload for those with a lot of
39
2007-10-30 Alex Graveley <alex@beatniksoftware.com>
43
* NEWS: Update for 0.2.8.
44
* AUTHORS: Add Alex & Seif.
46
* mayanna/mayanna_people.py (EverybodySource.get_items_uncached):
47
Only list gaim buddies if no pidgin buddies.
48
(AccountMenu.__init__): Make the menu items ImageMenuItems, like
49
pidgin uses in it's status selector. Comment out list of
50
accounts, since it doesn't do anything for now.
51
(PeopleTopic.do_reload): Only list gaim accounts if no pidgin
54
* mayanna/mayanna_pidgin.py (PidginAccountReader.__init__): Connect
55
to AccountStatusChanged and emit reload. set_status ->
56
set_global_status. Add get_global_status.
58
2007-10-30 Alex Graveley <alex@beatniksoftware.com>
62
* mayanna/mayanna_util.py (DBusWrapper.__getattr__): Don't force a
63
refetch of the dbus object on every dbus exception. This can
64
cause CPU spikes if dbus methods that cause exceptions are called
67
* mayanna/mayanna_trash.py (TrashItem.get_can_pin): Don't allow
68
pinning of the trash. Fixes crash reported by Seif Lotfy.
70
* mayanna/mayanna_library.py (DocumentsTopic.do_reload): Only add
71
the Attachments source if the Thunderbird downloads.rdf file
72
exists, and connect to it's reload to the topic's reload signal so
73
that if it gets created later, the category will be shown.
75
2007-10-24 Alex Graveley <alex@beatniksoftware.com>
79
* mayanna/mayanna_topicwin.py (ItemIconView._set_item): Workaround
80
icon sizing by basing the size chosen on the total number of
81
items, not just those currently visible. This has the negative
82
consequence of showing smaller icons than is neccessary, but fixes
83
the problem of mixed sizing as async-loaded items become visible.
85
2007-10-18 Alex Graveley <alex@beatniksoftware.com>
89
* mayanna/gnomecups/_gnomecups.override
90
(_gnomecups_notify_marshal): Use PyObject_CallObject instead of
91
PyEval_CallFunction, which is what the new gmenu bindings use.
93
2007-10-16 Alex Graveley <alex@beatniksoftware.com>
95
(mayanna-0.2 branch, merged from trunk@482)
97
* mayanna/mayanna_applet.py (TopicMenu.__init__): Pack an event box
98
next to the timebar, and set it's bg white (this is broken; should
99
respect style), to take up the empty space from the disabled
102
* mayanna/mayanna_topicwin.py (TimeBar): Disable the sparkline due
105
* mayanna/mayanna_util.py (DBusWrapper.__getattr__): Reset __obj on
106
dbus.DBusException. This should hopefully fix D-BUS reconnect
109
2007-10-13 Alex Graveley <alex@beatniksoftware.com>
113
* configure.in: Drop version to 0.2.8. Remove checks for
114
firefox-nss. Remove atom, data, pwdecrypt.
116
* mayanna/Makefile.am: Remove facebook.py, flickrapi.py,
117
lgconstants.py, libgmail.py, mayanna_facebook.py, mayanna_flickr.py,
118
mayanna_gmail.py, mayanna_googleoffice.py. Remove atom, data,
121
* mayanna/mayanna_people.py: Remove Facebook and Gmail contacts.
124
* mayanna/mayanna_library.py: Remove GOffice and Flickr. Clean up
127
2007-10-13 Alex Graveley <alex@beatniksoftware.com>
129
* mayanna/mayanna_computer.py (ComputerTopic.do_reload): Don't show
130
Printers sidebar if gnomecups isn't available.
132
2007-10-13 Alex Graveley <alex@beatniksoftware.com>
134
* mayanna/mayanna.in (FILEPATH): Fix devel runs by getting the
135
abspath of __file__ before changing to the user's homedir.
137
* mayanna/mayanna_util.py (DBusWrapper): Handle no bus or no object
138
registered at mayanna init by looking them up as needed.
140
2007-10-10 Seif Lotfy <seif@lotfy.com>
142
* mayanna/mayanna_flickr.py: Load friends pictures
144
* mayanna/mayanna_pidgin.py: Load Alias for MSN Contacts using d-bus
145
to make them viewable in the people dock. Also support IRC
148
* mayanna/mayanna_people.py: Change Pidgin status using d-bus.
150
2007-10-08 Alex Graveley <alex@beatniksoftware.com>
152
* mayanna/mayanna_googleoffice.py: Fixup gdata imports: only need
153
gdata.service and gdata.docs.service.
155
* mayanna/gdata/Makefile.am: Fix to not install the same files in
156
all the subdirectories. Doh!
158
2007-10-08 Alex Graveley <alex@beatniksoftware.com>
160
* mayanna/mayanna_googleoffice.py (GOfficeAccountReader._login): Fix
161
the attribute error causing GOffice login to fail by using the
162
proper Error class (gdata.docs.Error doesn't exist).
164
2007-10-08 Alex Graveley <alex@beatniksoftware.com>
166
* mayanna/mayanna.in: Work around various install and ltihooks.py
167
weirdness to make something which executes from the dev tree or
168
install path. GOffice is still broken for me though :-(
170
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
172
* data/GNOME_MAYANNAApplet.xml: Add EditMenus context menu item.
174
* mayanna/mayanna_applet.py (MAYANNAApplet.__init__): Add EditMenus
175
command, which launches "alacarte". (Fixes bug #419572, patch from
178
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
180
* mayanna/mayanna_applet.py (TopicButtonMod._show): Focus the search
181
entry by default when presenting the menu. Yay! (Fixes bug
182
#431193, patch from Adam Lofts).
184
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
186
* mayanna/mayanna.in: Fix the bundle-library loading to actually
187
work with installed versions. Gdata still doesn't work for
188
installed run, due to some AttributeError though.
190
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
192
* mayanna/gdata/docs/service.py (DocsService.GetDocumentListFeed):
193
Small bugfix to make this work without having the sys.path set up
196
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
198
* mayanna/mayanna.in: Temp hack to make sure we always use the
199
bundled gmenu, atom, and gdata over the system installed versions.
201
* mayanna/gmenu/Makefile.am:
202
* mayanna/gmenu/gmenu.c: Import Python bindings from
203
gnome-menus-2.20.0, licensed LGPL.
205
* mayanna/Makefile.am (SUBDIRS): Add gmenu.
206
(mayanna_PYTHON): Add forgotten mayanna_threads.py.
208
* configure.in: Depend on libgnome-menu and build the gmenu
211
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
213
* mayanna/mayanna_flickr.py: Start loading images after a successful
214
auth, not when asked for photos.
216
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
218
* mayanna/gdata/Makefile.am:
219
* mayanna/atom/Makefile.am: Add missing makefiles from last commit.
221
* data/images/Makefile.am (uninstall-hook): Pass distcheck by
224
2007-10-07 Alex Graveley <alex@beatniksoftware.com>
226
* mayanna/mayanna_library.py (DocumentsTopic.do_reload): Use
227
GOfficeSource instead of placeholder.
229
* mayanna/mayanna_googleoffice.py: Add init Google Office support
230
from Seif Lotfy and Alex Gabriel. Double Yay!
233
* mayanna/gdata: Add gdata-1.0.8, licensed as Apache 2.0.
235
* mayanna/Makefile.am (mayanna_PYTHON): Add mayanna_googleoffice.py.
236
Add gdata/atom to SUBIRS.
238
* configure.in: Add mayanna/atom/Makefile & mayanna/gdata/Makefile.
240
2007-10-06 Alex Graveley <alex@beatniksoftware.com>
242
* mayanna/mayanna_library.py (DocumentsTopic.do_reload): Use the
243
FlickrSource instead of the placeholder.
245
* mayanna/mayanna_flickr.py: Add initial Flick support from Seif
246
Lotfy and Alex Gabriel. Yay!
248
* mayanna/Makefile.am (mayanna_PYTHON): Add mayanna_flickr.py.
250
2007-10-06 Alex Graveley <alex@beatniksoftware.com>
252
* mayanna/flickrapi.py: Add flickrapi 0.14, using the Python
255
* mayanna/lgconstants.py:
256
* mayanna/libgmail.py: Add CVS libgmail, as of Oct5, 07. libgmail
259
* mayanna/Makefile.am (mayanna_PYTHON): Add libgmail, flickrapi.
261
2007-10-06 Alex Graveley <alex@beatniksoftware.com>
263
* mayanna/mayanna_computer.py (PrinterItem.__init__): Use the
264
"lambda *args" trick here to hopefully avoid callback bugs.
266
* mayanna/mayanna_applications.py (MenuTree.__init__): Reenable
267
gmenu update listening, as this has been fixed in gnome-menus (see
270
* mayanna/mayanna_facebook.py (FacebookAccountReader.load_friends):
271
Don't run in a thread, since the auth can still fail on
272
friends.get(), and we want the exception. Call users.getInfo in
273
load_friends, to better segment the work.
275
2007-10-05 Alex Graveley <alex@beatniksoftware.com>
277
Add pwdecrypt utility from Mozilla CVS, a standalone utility to
278
decrypt stored password files (signons2.txt) using a key file
281
2007-10-04 Alex Graveley <alex@beatniksoftware.com>
283
* mayanna/mayanna_running.py (RunningItemSource.queue_reload):
284
Actually fix stupid wnck version arrity mismatches with *args, and
285
passing the function directly (versus lambda).
286
* mayanna/mayanna_gui.py (FriendlyPager._workspace_changed): Ditto.
288
* mayanna/mayanna_facebook.py (facebook_threads): Use a single
289
4-thread pool for all async operations.
291
2007-10-04 Alex Graveley <alex@beatniksoftware.com>
293
* mayanna/mayanna_facebook.py (FacebookSource): Do all http requests
294
inside worker threads. Use a 4-thread pool for loading friend
295
data, each processing 10 friends at a time. Load the favicon in
296
thread, and pass it to the FacebookLogin item.
298
* mayanna/mayanna_topicwin.py (SidebarButton): Reload button
299
contents when source reloads.
301
* mayanna/mayanna_threads.py: New useful thread decorators.
303
* mayanna/mayanna_applet.py (main): Call threads_init earlier. This
304
was causing standalone mayanna_applet to freeze, as threads weren't
305
initialized before entering the main loop.
307
2007-10-03 Alex Graveley <alex@beatniksoftware.com>
309
* mayanna/mayanna_running.py: Fixes from Seif Lotfy and Alex Gabriel
310
to avoid lambda arrity errors, and to match "Pidgin" (not
311
"pidgin") window class names.
313
* mayanna/mayanna_util.py: Look for a -memdump/--memdump command
314
line arg to print the diff of running objects every 15 seconds.
316
* mayanna/mayanna_facebook.py
317
(FacebookAccountReader.load_existing_auth): Handle invalid
318
existing session keys better by resetting facebook object internal
321
2007-10-02 Alex Graveley <alex@beatniksoftware.com>
323
* mayanna/mayanna_gmail.py (GmailAccountReader.get_contacts): Don't
324
login here, which avoids showing the keyring access dialog
325
unexpectedly (e.g. when searching).
326
"Account Settings" -> "Login to Gmail".
328
* mayanna/mayanna_facebook.py (FacebookAccountReader.load_friends):
329
Convert uid to string, to avoid problems when using simplejson.
332
2007-09-28 Alex Graveley <alex@beatniksoftware.com>
334
* mayanna/mayanna_facebook.py (FacebookLogin.do_open): Connect to
335
the browser destroy event to finish the authentication and load
338
2007-09-27 Alex Graveley <alex@beatniksoftware.com>
340
* mayanna/mayanna_facebook.py: New. Adds the initial (synchronous)
341
Facebook friend source, using GtkMozEmbed to open a custom web
342
widget to complete the login process.
344
* mayanna/facebook.py: Add pyfacebook (LGPL) from
345
http://code.google.com/p/pyfacebook.
347
* mayanna/mayanna_people.py (PeopleTopic.do_reload): Add the
350
* mayanna/mayanna.in: Gross hack to work around GtkMozEmbed crashing
351
if the firefox libs are not already in LD_LIBRARY_PATH --
352
relauches __file__ with the same args and environ, with
353
/usr/lib/firefox appended to LD_LIBRARY_PATH.
355
2007-09-27 Alex Graveley <alex@beatniksoftware.com>
357
* mayanna/mayanna_people.py: Use calendar icon for recent people,
358
and generic "im" icon for Online Now, since one of gaim/pidgin
359
might not be present.
361
* mayanna/mayanna_running.py: Treat gaim and pidgin as equals.
363
* mayanna/mayanna_gmail.py: Set gmail_keyring_token gconf key as
364
int. Fixes bug #429518, patch from Thomas HAMEL.
366
* mayanna/mayanna_running.py: Fix lambda arity. Fixes bug #458048,
367
patch from Jesse Hallett.
368
* mayanna/mayanna_gui.py: Ditto.
370
2007-08-17 Alex Graveley <alex@beatniksoftware.com>
372
* mayanna/mayanna_library.py: Rename from mayanna_documents.py.
374
2007-08-17 Alex Graveley <alex@beatniksoftware.com>
376
* mayanna/mayanna_base.py (Topic.get_icon): Add this.
378
* mayanna/mayanna_computer.py (ComputerTopic.__init__): Set icon here.
379
* mayanna/mayanna_applications.py (ApplicationsTopic.__init__): Ditto.
380
* mayanna/mayanna_documents.py (DocumentsTopic.__init__): Ditto.
381
* mayanna/mayanna_people.py (PeopleTopic.__init__): Ditto.
383
* mayanna/mayanna_applet.py
384
(TopicButtonMod._button_style_pref_changed): Use icon from
385
Topic.get_icon, instead of hardcoding.
387
2007-08-12 Gabor Kelemen <kelmeng@gnome.hu>
389
* configure.in: Added missing cs, hu, oc, zh_CN to ALL_LINGUAS.
391
2007-07-27 Raphael Higino <raphaelh@svn.gnome.org>
393
* configure.in: Added pt_BR to ALL_LINGUAS.
395
2007-07-27 Raivis Dejus <orvils@gmail.com>
397
* configure.in: Added Latvian Translation.
399
2007-06-09 Alex Graveley <alex@beatniksoftware.com>
401
* mayanna/mayanna_topicwin.py (SparkLine._paint_cairo): Handle empty
404
2007-06-08 Alex Graveley <alex@beatniksoftware.com>
406
* configure.in: Bump to 0.3.0 for the unstable release cycle.
408
* mayanna/mayanna_topicwin.py (SparkLine._paint_cairo): First pass
409
at cairo-based drawing of the timeline bar.
411
* mayanna/*.py: Replace explicit superclass calls in signal
412
handlers with self.chain, at least for the cases where it chooses
415
2007-06-08 Alex Graveley <alex@beatniksoftware.com>
417
* configure.in: Bump to 0.2.7.
420
2007-06-06 James Ogley <james@usr-local-bin.org>
422
* mayanna/Makefile.am:
423
* mayanna/mayanna_people.py:
424
* mayanna/mayanna_pidgin.py: Add support for Pidgin as well as Gaim2.
426
2007-06-07 Alex Graveley <alex@beatniksoftware.com>
428
* mayanna/mayanna_applet.py (TopicMenu.set_gravity): Pack the
429
toolbar and sidebar buttons at the top for top/side panels, and
430
bottom for bottom panels, as determined by the window gravity.
432
* mayanna/mayanna_topicwin.py (SearchToolItem): Set entry size to 14
435
2007-03-26 Tony Tsui <tsui.tony@gmail.com>
438
* mayanna/mayanna_applet.py (MAYANNAApplet._show_about): Add me.
440
2007-05-01 Alex Graveley <alex@beatniksoftware.com>
442
* mayanna/mayanna_recent.py
443
(RecentlyUsedManagerGtk.get_items_uncached): Use the recent item's
444
modified time, instead of the visited time. Visited is actually
445
the time of the first visit. Confusing!
447
2007-03-24 Tony Tsui <tsui.tony@gmail.com>
449
* mayanna/mayanna_topicwin.py (ItemIconView): Highlight item when
450
mouse pointer is over it. When single click policy is enabled
451
change mouse cursor to hand icon when pointer is over an
452
item. Fixes bug #418036.
454
2007-04-30 Alex Graveley <alex@beatniksoftware.com>
456
* mayanna/mayanna_logout.py (LogoutDialog.__init__): Show the
457
Hibernate button as well as Sleep if it's supported. This is
458
lame, but there's not much for it (fixes bug #429394).
460
* mayanna/mayanna_documents.py (MozillaDownloadsSource.get_enabled):
461
Fix bug in last commit where enabled status would fail if
462
get_items() had not yet been called.
464
2007-04-30 Alex Graveley <alex@beatniksoftware.com>
466
* mayanna/mayanna_documents.py (EpiphanyDownloadsSource): New class
467
originally from Tony Tsui (see bug #418015) to list Epiphany's
468
downloads directory files and monitor the gconf key for changes.
469
(MozillaDownloadsSource): Split out downloads.rdf parsing to this
471
(DownloadsSource): Make this a simple RecentAggregate of
472
MozillaDownloadsSource, EpiphanyDownloadsSource and a
473
DirectorySource for ~/Downloads.
474
(ThunderbirdAttachmentsSource): Rename class to reflect that it
475
only deals with Thunderbird.
477
* mayanna/mayanna_recent.py (RecentAggregate.__init__): Take
480
* mayanna/mayanna_tomboy.py: Don't import thread.
482
2007-04-30 Alex Graveley <alex@beatniksoftware.com>
484
* mayanna/mayanna.in (bug_catcher): Include mayanna version in bug
485
content, and pass --package-ver="@VERSION@" to bug-buddy.
487
* mayanna/Makefile.am (mayanna mayanna_applet): Subst @VERSION@.
489
2007-04-28 James Ogley <james@usr-local-bin.org>
491
* mayanna/mayanna.py: Remove browser loading
493
* mayanna/Makefile.am: Remove reference to mayanna_browser.py
495
2007-04-27 Alex Graveley <alex@beatniksoftware.com>
497
* mayanna/mayanna_base.py (Item.get_icon): Use the new Thumbnailer
498
class to lookup Item icons.
500
* mayanna/mayanna_util.py (Thumbnailer.get_icon): Move FileItem's
501
get_icon logic to this new class.
503
* mayanna/mayanna_recent.py (RecentlyUsed.get_items_uncached): Don't
504
wrap result Items in FileItems, as subclasses now do this.
506
* mayanna/mayanna_file.py (FileItem): Remove get_icon et al as
507
this is supplied by Item now.
509
* mayanna/mayanna_documents.py (RecentlyUsedDocumentsSource,
510
RecentlyUsedMediaSource): Make document and media sources that
511
create FileItems from recently used Item data.
513
2007-04-26 Alex Graveley <alex@beatniksoftware.com>
515
* mayanna/mayanna_recent.py: Move recent handling to here.
517
* mayanna/mayanna_base.py (Item): Add add_tag, has_tag, get_tags,
520
* mayanna/mayanna_browser.py: Remove this old and busted code.
522
2007-04-12 Tony Tsui <tsui.tony@gmail.com>
524
* mayanna/mayanna_gaim.py (GaimAccount.get_dbus_obj): Use get_screenname()
525
instead of get_name(). Fix bug #405598. Patch from Thomas Hamel.
527
2007-04-08 Claude Paroz <claude@2xlibre.net>
529
* configure.in: Added fr to ALL_LINGUAS.
531
2007-03-22 Alex Graveley <alex@beatniksoftware.com>
533
* mayanna/mayanna_computer.py (DevicesSource.get_items_uncached):
534
Catch ValueError. Fixes bug #421620.
536
2007-03-22 Alex Graveley <alex@beatniksoftware.com>
538
* configure.in: Bump to 0.2.6.
542
* mayanna/mayanna_applications.py (MenuTree.__init__): Disable menu
543
change notification for now to avoid crashing all the time. See
546
2007-03-21 Alex Graveley <alex@beatniksoftware.com>
548
* mayanna/mayanna_computer.py (DriveItem.__init__): If the drive has
549
no activation URI, try to get one from its first mounted volume.
551
2007-03-21 Alex Graveley <alex@beatniksoftware.com>
553
Patch for bug #419561 originally from maxx@krakoa.dk.
555
* mayanna/mayanna_applications.py (ApplicationsTopic.do_reload):
556
Show toplevel applications in an "Other" folder.
558
* mayanna/mayanna_computer.py (ComputerTopic.do_reload): If using
559
the new gnomecc.menu which doesn't include administrative items,
560
load system-settings.menu in an Administration sidebar source.
562
2007-03-20 Alex Graveley <alex@beatniksoftware.com>
564
* mayanna/mayanna_tomboy.py (TomboySource._idle_load_notes): Switch
565
to using a low priority idle handler instead of worker thread to
566
avoid wierd thread crashes. Possible fix for bugs #419551 and
569
2007-03-20 Alex Graveley <alex@beatniksoftware.com>
571
* mayanna/mayanna_documents.py
572
(AttachmentsSource.get_download_rdf_paths): Glob ~/.*thunderbird:
573
Ubuntu names the directory .mozilla-thunderbird.
575
* mayanna/mayanna_tomboy.py (TomboySource.__init__): Start the note
576
parsing thread in an idle handler to avoid allocating gobjects too
579
* mayanna/mayanna_topicwin.py (SparkLine.do_expose_event): Make up a
580
cute log-of-height heuristic to smooth and multiply the graph.
581
Limit results to oldest zoom-level in days.
583
* mayanna/mayanna_documents.py (AttachmentsSource): Quick and dirty
584
new class to use DownloadsSource to parse Thunderbird's
585
downloads.rdf, just like for Mozilla. Yay! Why I didn't think of
586
this earlier, I don't know.
588
Major cleanup to move Topic toolbar items into discrete classes.
589
This should facilitate toolbar configurability. A lot of code
590
motion, so probably a lot of breakage too.
592
Also remove Topic context menu items and move novel ones to new
593
toolbar item classes. New options include: jump to printers,
594
trashcan, quick-access settings menu, show desktop, dummy network
595
location switch, and volume control. These are all commented out
596
by default but can be enabled easily.
598
2007-03-18 Alex Graveley <alex@beatniksoftware.com>
600
* mayanna/mayanna_documents.py (DownloadsSource.get_items_uncached):
601
Catch ExpatError when parsing downloads.rdf. Fixes bug #419830.
603
* mayanna/mayanna_tomboy.py (TomboySource._load_notes): Handle
604
~/.tomboy not existing. Fixes bug #419492.
606
2007-03-17 Alex Graveley <alex@beatniksoftware.com>
608
* mayanna/mayanna_applications.py (MenuTree.__init__): Pass a
609
correct lambda to add_monitor. Attempts to fix bug #419271.
611
2007-03-17 Tony Tsui <tsui.tony@gmail.com>
613
* mayanna/mayanna_gui.py (FriendlyPager): Don't hide pager if there is
614
only one workspace but viewports are used. Support cycling of viewports
617
2007-03-17 Alex Graveley <alex@beatniksoftware.com>
619
* mayanna/mayanna_applications.py (MenuLauncherItem.get_icon): Avoid
620
jitting assert loading None for icon if the .desktop file doesn't
621
define an Icon key. Fixes bug #419239.
623
2007-03-16 Alex Graveley <alex@beatniksoftware.com>
625
* configure.in: Bump to 0.2.5.
629
* mayanna/mayanna_topicwin.py (Sidebar.__init__): Attempt to work
630
around PyGtk bug (see #419107).
632
* mayanna/mayanna_computer.py (DriveItem.eject): Work around PyGtk
635
2007-03-16 Alex Graveley <alex@beatniksoftware.com>
637
* mayanna/mayanna_tomboy.py (TomboySource.__init__): Handle note
638
file events by reloading/creating the individual note, not
639
reloading all notes. Initially load notes in a thread (again).
641
* mayanna/mayanna_gaim.py (GaimAccount.__init__): Don't try to
642
support IRC, and strip jabber screenname resources if there's no
645
* mayanna/mayanna_applet.py (main): Call gtk.gdk.threads_init().
647
2007-03-16 Alex Graveley <alex@beatniksoftware.com>
649
* mayanna/mayanna_topicwin.py (TimeBar): Don't include Forever, add
650
This Year. Set the label width to longest label char count. Make
651
sure the sparkline is initialized with _default_zoom. Fixes bug
653
(SparkLine.do_button_press_event): Avoid divide by zero, fixes bug
656
2007-03-15 Alex Graveley <alex@beatniksoftware.com>
658
* mayanna/mayanna_topicwin.py (ItemIconView._compare_item_name):
659
Handle emptry item name in comparison. Fixes bug #418418.
661
* mayanna/mayanna_gui.py (TopicRunningList._reload):
662
source.get_items() can return a generator. Construct a list from
663
it that we can manipulate. Fixes bug #418272.
665
* mayanna/mayanna_recent.py (RecentlyUsed.__init__): Connect to the
666
changed signal of recent_model using a lambda that supports the
667
different signal signatures between Egg and Gtk. Fixes #417988.
669
2007-03-14 Alex Graveley <alex@beatniksoftware.com>
671
* mayanna/mayanna_base.py (ItemSource): Implement new async caching
673
(Topic.find_items): Yield found items.
675
* mayanna/mayanna_documents.py (DownloadsSource): Switch to the new
677
* mayanna/mayanna_tomboy.py (TomboySource): Ditto.
678
* mayanna/mayanna_applications.py (MenuSource): Ditto.
679
(RecentLaunchers): Ditto.
680
* mayanna/mayanna_gmail.py (GmailSource): Ditto. Moved here from
682
* mayanna/mayanna_people.py (EverybodySource): Ditto.
683
(OnlineBuddySource): Ditto.
685
* mayanna/mayanna_computer.py (FavoritesSource): Ditto.
686
(PlacesSource): Ditto.
687
(DevicesSource): Ditto.
688
(PrinterSource): Ditto.
689
(BonjourSource): Ditto.
690
(SettingsSource): New class to encapsulate flattened settings
692
(ComputerTopic.do_reload): Simplify ItemSource loading logic.
694
* mayanna/mayanna_recent.py: Move RecentAggregate to here, so it can
695
be used by the Computer topic, and yield results too.
697
2007-03-13 Alex Graveley <alex@beatniksoftware.com>
699
* mayanna/mayanna_applet.py (TopicMenu._scroll_get_best_size): Tweak
700
iconview sizing: Queue resize on vadjustment change, and don't
701
change the size request if we would request the current size, or
702
0. This seems to work a lot better.
704
2007-03-13 Alex Graveley <alex@beatniksoftware.com>
706
* mayanna/mayanna_base.py (CachingItemSource): Add new helper class
707
to be used by async-loading ItemSources.
709
* mayanna/mayanna_topicwin.py (ItemIconView): Listen for bookmarks
710
changes and call _reload_visible_items.
712
* mayanna/mayanna_util.py (FileMonitor): Queue file events for .25
713
seconds, to avoid unneccessary updates. Add "event" signal to
714
catch all monitor events. Add queue_changed to creapte a local
715
file monitor "changed" event.
716
(BookmarkManager): Listen to external file changes using
719
2007-03-09 Alex Graveley <alex@beatniksoftware.com>
721
* mayanna/mayanna_applet.py (TopicMenu._favorite_selection_changed):
722
Desensitize favorite button if selected item cannot be pinned.
725
2007-03-09 Alex Graveley <alex@beatniksoftware.com>
727
* mayanna/mayanna_applet.py (TopicMenu.__init__): Hopefully fix bug
730
* mayanna/mayanna_file.py (FileItem.get_name): Use filesystem
731
encoding to decode local file names.
733
* mayanna/mayanna_documents.py (DocumentsTopic.get_toolbar_items):
734
Rename Folders -> Places.
735
(DocumentsTopic.get_context_menu_items): Remove New Document
736
submenu. Fixes bug #413620.
738
* mayanna/mayanna_computer.py (DriveItem.__init__): Handle looking
739
up drive from URI so drives can be favorites too.
741
2007-03-09 Tony Tsui <tsui.tony@gmail.com>
743
* mayanna/mayanna_logout.py: Destroy logout dialog before
744
suspending/hibernating or else automatic shutdown timer may kick
747
2007-03-06 Alex Graveley <alex@beatniksoftware.com>
749
* mayanna/mayanna_documents.py
750
(DownloadsSource._get_download_rdf_paths): Look for mozilla
751
profile paths that have "default" anywhere in the title.
753
* mayanna/mayanna_applet.py (TopicMenu): Localize scrolled window
754
resizing here, so that topic windows in standalone dock mode don't
757
2007-03-06 Alex Graveley <alex@beatniksoftware.com>
759
* mayanna/mayanna_computer.py (DBusWrapper.__getattr__): Call
760
getattr first, so that builtin object methods don't raise a
761
DBusException. Fixes bug #413876.
763
2007-03-06 Alex Graveley <alex@beatniksoftware.com>
765
* mayanna/mayanna_computer.py (DriveItem.get_comment): Catch
766
generic gnomevfs.Error instead of more specific errors.
767
(DriveItem.get_comment): Ditto.
768
* mayanna/mayanna_file.py (FileItem.ensure_file_info): Ditto.
769
* mayanna/mayanna_util.py (FileMonitor.__init__): Ditto.
770
* mayanna/mayanna_trash.py (TrashDirectory._trash_dir_changed):
771
Ditto, fixes bug #413872.
773
* mayanna/mayanna_tomboy.py (NoteItem.do_open): Strip the .note
774
extension from file paths when trying to open note:// URIs. Fixes
775
bug #413913. Patch from Sandy Armstrong.
777
2007-03-01 Alex Graveley <alex@beatniksoftware.com>
779
* mayanna/mayanna_logout.py (LogoutDialog.__init__): Prevent crash
782
2007-03-01 Alex Graveley <alex@beatniksoftware.com>
784
* configure.in: Bump to 0.2.4.
788
* data/GNOME_MAYANNAApplet.server.in.in: Set other_binaries to
789
"mayanna_applet;mayanna", so bug-buddy works with the applet and
792
* mayanna/mayanna.in: Pass @MODULE@ as appname.
794
2007-03-01 James Ogley <james@usr-local-bin.org>
796
* mayanna/mayanna_applications.py: Use YaST to manage software if it
797
exists (ie if on openSUSE).
799
* mayanna/mayanna_running.py: Add gnomesu to list of gksu-type
802
2007-03-01 Alex Graveley <alex@beatniksoftware.com>
804
* data/mayanna.schemas.in: Add /apps/mayanna/click_policy schema.
806
* mayanna/mayanna_applet.py (MAYANNAApplet._use_colors_pref_changed):
807
When colors are disabled, make the applet content box
808
not-homogeneous. Rationale being that colored boxes look strange
809
when differently sized.
811
* mayanna/mayanna_prefs.py (Preferences): Try to show the Computer
812
topic name (i.e. the platform name).
814
2007-03-01 Alex Graveley <alex@beatniksoftware.com>
816
Add Preferences and About dialogs for applet. Patch originally
817
from Johannes Schmid <jhs@gnome.org>.
819
* data/GNOME_MAYANNAApplet.server.in.in: Set the correct keys for
820
bug-buddy to use Gnome Bugzilla when filing MAYANNA bugs.
822
* data/GNOME_MAYANNAApplet.xml: XML file describing Panel menu:
823
just Preferences and About for now.
825
* data/mayanna.schemas.in: Add this. Installs schema for the
826
applet preferences keys.
828
* data/Makefile.am: Generate and install mayanna.schemas, and
829
install GNOME_MAYANNAApplet.xml.
831
* mayanna/mayanna_applet.py: Added about dialog. Respect button
834
* mayanna/mayanna_prefs.py: New file, adds new preferences window to
835
setup button style and which buttons are shown.
837
* mayanna/mayanna_util.py (GConfBridge): Support using arbitrary
838
GConf prefix. Add change notification when a changed:: signal is
839
connected to. Determine vtype from default or value, and assert
842
* autogen.sh: Simplify this.
844
2007-02-27 Alex Graveley <alex@beatniksoftware.com>
846
* mayanna/mayanna_topicwin.py (SidebarButton._ignore_untoggle):
847
Disable context menu for now.
849
* mayanna/mayanna_base.py (Topic.get_running_source): Don't show the
850
topic label as bold/italic when a running item needs attention.
851
(ItemSource): Drop "reload-item" signal.
852
(Item.do_open): Don't try to launch an empty URI.
854
* mayanna/mayanna_gui.py (TooltipRaiser.do_raise): Don't do anything
855
if the target widget doesn't have a Gdk window yet. Fixes bug
857
Move FriendlyClock, FriendlyPager, and TrayManagerBox to here.
859
* mayanna/mayanna_tomboy.py (TomboySource.__init__): Turn on .tomboy
860
FileMonitor. Duh! Fixes bug #412065.
862
* mayanna/mayanna_gmail.py (GmailAccountReader): Catch
863
gnomekeyring.Error when accessing gnomekeyring. Fixes bug
866
2007-02-27 Alex Graveley <alex@beatniksoftware.com>
868
* mayanna/mayanna_util.py (DBusWrapper): Support newest dbus-python
869
0.80, which requires a mainloop when creating a bus used for
870
signal connection. Patch from Jan Alonzo <jmalonzo%40gmail.com>,
873
2007-02-26 Alex Graveley <alex@beatniksoftware.com>
875
* mayanna/mayanna_running.py: Localize all the running item stuff
876
from all the topics to here.
878
* mayanna/mayanna_topicwin.py (ItemIconView.load_items): Use a 0
879
timeout instead of idle to load items.
881
2007-02-21 Alex Graveley <alex@beatniksoftware.com>
883
* mayanna/mayanna_topicwin.py (ItemIconView): Make loading
884
completely async by using ListModel's builtin filtering and
885
sorting, with a final pass to resize icons correctly. Drop manual
886
sorting from all ItemSources.
888
* mayanna/mayanna.in: Chdir to the user's home directory. Pass
889
--appname="mayanna" to bug-buddy.
891
* mayanna/mayanna_file.py (FileItem.get_is_user_visible): Return
892
True if we have file info.
893
(FileItem.ensure_file_info): Always call gnomevfs asyncronous file
894
lookup, to avoid blocking for disconnected NFS paths.
896
* mayanna/mayanna_documents.py (DownloadsSource.do_reload): Don't
897
check the FileItem exists before adding.
898
* mayanna/mayanna_recent.py (RecentlyUsed.do_reload): Ditto.
900
* mayanna/mayanna_applications.py (DesktopFileItem.__init__): Pass
901
the full location uri from the gnomedesktop item to the
902
LauncherItem cons, so FileItem base methods will have the full
903
path for desktop files.
905
2007-02-20 Alex Graveley <alex@beatniksoftware.com>
907
* mayanna/mayanna_documents.py (DownloadsSource): Make this open the
908
default Mozilla profile's downloads.rdf, and read download paths
909
out of it. Monitor the file for changes and reload as well. Yay.
910
(DocumentsTopic.do_reload): Use video/* and audio/* mimetype
911
regexps for "Music & Movies". Add "Documents" category, since
912
this the topic is now called Library. Pass all the created
913
ItemSources to RecentAggregate, so it'll include them all. Remove
914
"Important Email" category for now. Rename Photos to "F-Spot
915
Photos", and use it's icon.
916
(DownloadsSource): Delete this.
918
* mayanna/mayanna_recent.py
919
(RecentlyUsedOfMimeType.include_recent_item): Call match on
920
members of the mimetype_list if defined, to support regex
923
2007-02-19 Alex Graveley <alex@beatniksoftware.com>
925
* mayanna/mayanna_logout.py (LogoutDialog): Show gnome-session icons
926
in shutdown/logout dialogs.
928
Play with some new topic naming:
929
* mayanna/mayanna_computer.py: Computer -> output of
930
platform.system_alias() or "Computer" if undetermined.
931
* mayanna/mayanna_documents.py: Documents -> Library.
932
* mayanna/mayanna_applications.py: Applications -> Programs.
934
2007-02-19 Alex Graveley <alex@beatniksoftware.com>
936
* mayanna/mayanna_topicwin.py (TimeBar._zoomlist): Tweak zoom levels
937
a bit: Today, This week, This month, Last 2 months, Last 3 months,
940
* mayanna/mayanna_base.py (Item.pretty_print_time_since): Add
941
include_today flag to avoid including the "Today" part of dates
944
* mayanna/mayanna_gaim.py: Use DBusWrapper. Connect to dbus signals
945
to notify of buddy status change, and emit reload on the buddy.
946
Do this instead of listing blist.xml changes and reloading
947
everything. Start tracking idle time when we receive a
948
BuddyIdleChanged signal, and show this time in buddy Item
951
* mayanna/mayanna_logout.py: More logout dialog awesomeness from
952
maxx@krakoa.dk: use gnome-power-manager's dbus interface to
953
suspend/hibernate. Patch from bug #407673.
955
* mayanna/mayanna_util.py (DBusWrapper): New helper to handle
956
raising a dbus.DBusException for older DBUS python bindings which
957
don't use unknown interface proxies.
959
2007-02-18 Tony Tsui <tsui.tony@gmail.com>
961
* mayanna/sexy/sexy.override: Add "kwargs" to "override
962
sexy_tooltip_position_to_rect" line. Fix bug #348658.
964
2007-02-16 Alex Graveley <alex@beatniksoftware.com>
966
* mayanna/mayanna_documents.py
967
(NewDocumentMenuButton._add_template_item): Break out the "New
968
Document" toolbar menu item into it's own subclass, and make
969
NewFromTemplateDialog handle it's own response.
971
* mayanna/mayanna_applet.py (TopicMenu._add_toolbar_items): Attach
972
to "clicked" signal on ToolButton items and "activate" on the menu
973
children of ToolMenuButton toolbar items, and in both cases hide
974
the menu to cause an ungrab.
976
* mayanna/mayanna_file.py (FileItem.get_mimetype): Return
977
application/octet-stream if no mimetype could be found.
979
* mayanna/mayanna_util.py (LaunchManager.make_recent_item): Rename
980
from make_egg_recent, and assert if no mimetype is given.
982
* mayanna/mayanna_computer.py (DriveItem.get_comment): Handle
983
gnomevfs.get_volume_free_space raising gnomevfs.NotSupportedError.
985
* mayanna/mayanna_util.py (LaunchManager.launch_uri):
986
gtk_recent_manager_add_full requiresa mimetype for the URI, so
987
look it up using xdg.Mime.
988
(ToolMenuButton._get_menu_position): Fix to handle menus that
989
would display off the bottom edge, by using size_request on the
990
menu instead of get_size_request.
992
* mayanna/mayanna_logout.py (LogoutDialog): Make the logout dialog
993
match the Gnome default better, and avoid being modal so the menu
994
does not steal the click.
996
2007-02-15 Alex Graveley <alex@beatniksoftware.com>
998
* mayanna/mayanna_topicwin.py (SparkLine): New class to add simple
999
bar graphing of recent history next to the +/- zoom buttons.
1000
(TimeBar.__init__): Pack in a SparkLine.
1001
(TopicView.load_items): Resize the window to fit the icon view.
1002
This has to work around GtkIconView's bunk size request by looking
1003
at the scrolled window's vadjustment upper bound. Currently the
1004
window height is limited to 70% of the screen height. Partial fix
1006
(ItemIconView._set_item): Adjust sizing a bit to use smaller text
1009
* mayanna/mayanna_applet.py (TopicMenu.show_hide_zoomer): Set
1010
TimeBar's item list so the sparkline has correct data.
1012
* mayanna/mayanna_computer.py (ComputerTopic.__init__): Try to load
1013
the new (as of Gnome 2.17.91) gnomecc.menu file. This is
1014
preferred over the old settings.menu file if available. Fixes
1017
2007-02-08 Alex Graveley <alex@beatniksoftware.com>
1019
* mayanna/mayanna_gmail.py (GmailContact): Open using GMail composer
1020
URL instead of a mailto: URL. Fixes bug #405599.
1022
2007-02-06 Alex Graveley <alex@beatniksoftware.com>
1024
* mayanna/mayanna_gaim.py: If the Gaim DBUS interface cannot be
1025
found, use a simple helper class that raises dbus.DBusException on
1026
any attribute access. Fixes #404909.
1028
* configure.in: Bump to 0.2.3.
1032
2007-02-06 Alex Graveley <alex@beatniksoftware.com>
1034
* configure.in: Bump to 0.2.2.
1036
* NEWS: Update for pending 0.2.2.
1038
2007-02-05 Alex Graveley <alex@beatniksoftware.com>
1040
* mayanna/mayanna_tomboy.py (NoteItem): Use file: URIs instead of
1041
note: URIs so we can find the file for parsing if created as a
1044
* mayanna/mayanna_trash.py: Simplify trash handling by putting
1045
directory monitoring into a TrashDirectory helper class.
1047
* mayanna/mayanna_applet.py
1048
(GrabOnShowWindow.do_button_press_event): Call event on the
1049
destination widget, instead of do_button_press_event, as some
1050
widgets don't implement it.
1052
* mayanna/mayanna_file.py (FileItem.ensure_file_info): Pass
1053
gnomevfs.FILE_INFO_GET_MIME_TYPE, so mimetypes for directories are
1054
returned. Fixes #398796.
1056
2007-01-31 Alex Graveley <alex@beatniksoftware.com>
1058
* mayanna/mayanna_applet.py: Add support for different panel
1059
orientations. Original patch from Markus Jonsson.
1061
2007-01-30 Tony Tsui <tsui.tony@gmail.com>
1063
* mayanna_util.py (LaunchManager.launch_command): Wait for child
1064
process to terminate to prevent zombie processes.
1066
2007-01-29 Tony Tsui <tsui.tony@gmail.com>
1068
* mayanna_util.py (FileMonitor.event_mapping): Add
1069
gnomevfs.MONITOR_EVENT_METADATA_CHANGED to event_mapping dict.
1072
2007-01-27 Alex Graveley <alex@beatniksoftware.com>
1074
* mayanna/mayanna_gaim.py (GaimBuddy.get_name_markup): Append heart
1075
last if pinned item.
1076
(GaimBuddyUri): Make this horribly complex. Listen to gaim_reader
1077
for changes to refind the buddy for this uri, and emit reload.
1078
Override __getattribute__ to implement complex attr lookups:
1079
Any attr which exists in object.GObject is returned, to allow for
1080
signal connect. Otherwise, return the attr from the gaim_buddy.
1082
* mayanna/mayanna_base.py (Item.pin): Emit reload on pin/unpin.
1084
2007-01-26 Alex Graveley <alex@beatniksoftware.com>
1086
* mayanna/mayanna_applet.py: Remove hash-bang initial line, and drop
1087
executable perm. People should run this via the generated wrapper
1089
* mayanna/mayanna.py: Ditto.
1091
* mayanna/mayanna.in: If the parent directory contains a
1092
mayanna/mayanna[_applet].py file, add parent to PYTHONPATH. This
1093
enables running uninstalled out of the source tree.
1095
2007-01-26 Alex Graveley <alex@beatniksoftware.com>
1097
* mayanna_topicwin.py (TopicView.find_first_button): Add special
1098
case handling for FavoritesSource so that it is always chosen
1099
first, despite the number of items it contains.
1101
* mayanna_base.py (Item.get_name_markup): Append a red unicode
1102
heart to the markup name if the item is pinned, as an indicator of
1105
2007-01-25 Alex Graveley <alex@beatniksoftware.com>
1107
* mayanna_applications.py (MenuLauncherItem.pin): Override to pin a
1108
created DesktopFileItem for the same file URI. This allows
1109
bookmarking application menu items.
1111
* mayanna_gaim.py (GaimBuddy.pin): Override to pin a created
1112
GaimBuddyUri. GaimBuddyUri locates the GaimBuddy for a given uri,
1113
and passes all calls along to it. This allows bookmarking Gaim
1116
* mayanna_base.py: Split set_is_pinned -> pin, unpin to allow
1117
easier override of pin. "Keep Around" -> "Add to Favorites".
1119
2007-01-26 Tony Tsui <tsui.tony@gmail.com>
1121
* mayanna_util.py (BookmarkManager.get_bookmarks): Use the correct
1122
variable to check if the mime type is in mime_type_list. Fix
1125
2007-01-24 Alex Graveley <alex@beatniksoftware.com>
1127
* mayanna_recent.py (RecentlyUsed._model_changed): Work around
1128
incompat in "changed" signal args between gtk/egg recent
1130
* mayanna_util.py (RecentlyUsedManager._model_changed): Ditto.
1132
2007-01-24 Alex Graveley <alex@beatniksoftware.com>
1134
* configure.in: Only check for egg.recent if gtk.RecentManager not
1135
available. This fixes Fedora 5, which doesn't include egg.recent
1136
in it's python-gnome-extras package.
1138
* mayanna_util.py (RecentlyUsedManager): Add GTK 2.10 RecentManager
1139
support, with fallback to egg.RecentModel. Patch from James
1142
* mayanna_computer.py (FavoritesSource.do_reload): Use
1143
DisabledItemSource if gnomecups not available.
1145
2007-01-24 Alex Graveley <alex@beatniksoftware.com>
1147
Add MAYANNA icons from Drew Kerr.
1149
* data/images/Makefile.am: Install MAYANNA icons into
1150
/usr/share/pixmaps and hicolor icon dir. Currently 32x32, 48x48,
1151
and the svg are installed.
1153
2007-01-24 Alex Graveley <alex@beatniksoftware.com>
1155
* data/GNOME_MAYANNAApplet.server.in.in: Include bugzilla component
1158
* mayanna_applet.py (main): Pass --window to run inside a window by
1159
default when not run as an applet.
1161
2007-01-24 Alex Graveley <alex@beatniksoftware.com>
1163
* mayanna_util.py (BookmarkManager.DEFAULT_BOOKMARKS): Use the
1164
classname as it will appear once installed, which includes a
1167
* mayanna_computer.py (FavoritesSource.do_reload): Pass a fromlist
1168
to __import__ so the correct submodule will be returned in the
1169
case of "mayanna.mayanna_applications.DesktopFileItem".
1171
2007-01-23 Alex Graveley <alex@beatniksoftware.com>
1173
* configure.in: Drop pkg-config dependencies drastically: we now
1174
only check for gtk+-2.0 and pygtk-2.0. Make libgnomecups
1175
optional. Use AM_CHECK_PYMOD for all used python modules, so that
1176
people don't need to install python dev packages.
1178
* Makefile.am (SUBDIRS): Conditionally include gnomecups.
1180
* mayanna_computer.py: Import gnomecups safely, and use an
1181
EmptySource in it's place if not available.
1183
* mayanna_trash.py (TrashMonitor._find_directory): Check for
1184
gnomevfs.GenericError which can happen with wonky NFS mounts.
1186
2007-01-23 Alex Graveley <alex@beatniksoftware.com>
1188
* mayanna_util.py (BookmarkManager): Set the classname of the
1191
2007-01-22 Alex Graveley <alex@beatniksoftware.com>
1193
* mayanna_topicwin.py (ItemIconView): IconView bug doesn't send
1194
selection-changed when setting a new model, so call unselect_all
1195
so the Favorite button sensitivity can update.
1196
(ItemIconView._set_item): Show pinned/favorite/bookmark items with
1199
* mayanna_util.py (BookmarkManager): Change the bookmark
1200
serialization to include the Item classname used to represent the
1201
bookmark (mayanna_file.FileItem by default), add API to support
1202
fetching this. Existing API needs to be reworked, and all the
1203
callers updated to use the new version.
1205
* mayanna_computer.py (FavoritesSource): Add basic support for
1206
favorites, by creating a class instance dynamically for the
1209
* mayanna_applet.py (TopicMenu): Make the favorites button work, so
1210
that clicking it adds the selected item as a favorite.
1211
Desensitize the button when nothing is selected. Make the icon
1212
greyscale for unfavorited items, to make it a little more clear.
1214
2007-01-20 Alex Graveley <alex@beatniksoftware.com>
1216
* mayanna_util.py (PlacesManager.do_reload): Handle ioerror when
1217
loading ~/.gtk-bookmarks.
1219
* mayanna_file.py (FileItem.ensure_file_info): Handle
1220
gnomevfs.NotFoundError. Should fix bug #398327.
1222
* mayanna_applet.py (TopicMenu._add_toolbar_items): Show the label
1223
"Favorite" next to the heart tool item.
1225
2007-01-20 Alex Graveley <alex@beatniksoftware.com>
1227
* mayanna_topicwin.py (TopicWindow.__init__): Move TimeBar to here
1228
from mayanna_applet.py. Rename TopicWindowBase to TopicView, and
1229
abstract duplicated zoom-related functions from it's two
1232
2007-01-19 Christian Hammond <chipx86@chipx86.com>
1234
* mayanna_applet.py: Mark the background of the applet as transparent.
1236
2007-01-18 Alex Graveley <alex@beatniksoftware.com>
1238
* configure.in: Bump version to 0.2.1.
1240
* mayanna_applet.py (GrabOnShowWindow): Fix nasty bug where
1241
submenus shown inside a topic window cause it to never ungrab
1242
(without using Escape).
1244
2007-01-18 Alex Graveley <alex@beatniksoftware.com>
1246
* configure.in: Bump version to 0.2.0.
1248
2006-01-18 Tony Tsui <tsui.tony@gmail.com>
1250
* mayanna_gmail.py (GMailContact, GMailAccountReader): Add a class
1251
for representing a GMail contact. Add a class for connecting to
1252
GMail account and retreiving contact information.
1254
* mayanna_people.py (GMailSource): Add GMailSource class for GMail
1257
* mayanna_utils.py (GConfBridge): Add "gmail_accounts" setting.
1260
2007-01-18 Alex Graveley <alex@beatniksoftware.com>
1262
Install `mayanna` to start the standalone version. Install
1263
GNOME_MAYANNAApplet.server to start `mayanna_applet` in libexec.
1264
Install all the .py and subdirectories into $(pyexecdir)/mayanna.
1266
* mayanna_applet.py: Add main(), which can be called by the
1267
bug-buddy wrapper script.
1268
* mayanna.py: Ditto.
1270
2007-01-17 Alex Graveley <alex@beatniksoftware.com>
1272
* mayanna_applet.py: Add this, the panel applet engine. Test this
1273
with `./mayanna_applet.py window` until we add a .server file.
1275
* mayanna_computer.py (ComputerTopic.do_reload): Add
1276
FavoritesSource to sidebar, which doesn't do much, followed by a
1278
(ComputerTopic.get_toolbar_items): Add Help toolbar submenu, hide
1279
the Audio item if a panel applet (people already have an applet
1282
* mayanna_base.py (Topic.set_running_source_factory): Set a lamdba
1283
for the running source instead of an instance so we don't create
1284
running sources needlessly.
1286
* mayanna_people.py (PeopleTopic.get_toolbar_items): Remove "Add
1287
Group" button: groups are lame.
1289
2007-01-18 Alex Graveley <alex@beatniksoftware.com>
1291
Remove egg, wnck, gnomedesktop, since most people have these now,
1292
and the bugs have been fixed (I hope).
1294
Move egg to traymanager, and remove everything except the
1297
* mayanna.py: Don't import pygtk.
1299
* mayanna_util.py: Use egg.recent, instead of egg, which is what
1300
gnome-python2-desktop calls it.
1302
* mayanna_computer.py (ComputerRunningSource.__init__): Handle
1303
failure creating traymanager.TrayManager.
1305
2007-01-10 Pema Geyleg <pema.geyleg@gmail.com>
1307
* configure.in: Added 'dz' to ALL_LINGUAS.
1309
2007-01-09 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
1311
* configure.in: Added 'gl' to ALL_LINGUAS.
1313
2006-12-20 Tony Tsui <tsui.tony@gmail.com>
1315
* mayanna_applications.py (RunningApplications):
1316
* mayanna_file.py (FileItem, LauncherItem):
1317
* mayanna_documents.py (RunningDocuments):
1318
* mayanna_running.py (RunningItem):
1319
* mayanna_gaim.py (GaimBuddy):
1320
* mayanna_people.py (RunningChat, RunningChats): Add
1321
handle_drag_data_received() method to handle drag and drop.
1323
* mayanna_bar.py (MAYANNABarDock.layout): Set drag destination for
1324
running_btn widget and connect drag-data-received signal. Also set
1325
the window which FocusRaiser watches to running_btn so other drag
1326
signals can be hooked into it.
1328
* mayanna_documents.py (RunningDocuments.get_item_for_uri): Return
1329
None if item mime type is None.
1331
* mayanna_file.py (FileItem.get_mimetype): Only convert return
1332
value of xdg.Mime.get_type_by_name() to string if it is not None.
1334
* mayanna_util.py (FocusRaiser._connect_drag): Don't set drag dest
1335
set for watch_win because it is done elsewhere.
1337
* mayanna_util.py (FocusRaiser._drag_motion): Don't set drag status
1338
or else we can't get drag data received signals.
1340
* mayanna_util.py (BookmarkManager.add_bookmark): Don't bookmark
1343
* mayanna_people.py (RunningChats.get_item_for_uri): Return None if
1344
self._get_screenname_from_uri() returns None.
1346
2006-11-08 Todd Berman <tberman@imeem.com>
1348
* gimme_applications.py: Small fix to window creation to check for
1349
the existance of gnome-app-install
1351
2006-10-08 Dav <dcoeurjo@liris.cnrs.fr>
1353
* mayanna_documents.py (RecentAggregate.get_items):
1354
* mayanna_file.py (FileItem.get_name): Perform UTF-8 decoding for
1355
filenames to avoid crashing on badly encoded files.
1357
2006-10-08 David Trowbridge <trowbrds@gmail.com>
1359
* mayanna_applications.py (MenuSource): don't assume that gmenu items
1360
which aren't directories are entries. This fixes bug #354415.
1362
2006-10-08 Patrick Wagstrom <pwagstro@andrew.cmu.edu>
1364
* mayanna.py: on some (most?) platforms ltihooks.py was not being
1367
2006-10-08 David Trowbridge <trowbrds@gmail.com>
1369
* po/Makefile.in.in: This file is autogenerated, so it shouldn't be in
1372
2006-10-08 Patrick Wagstrom <pwagstro@andrew.cmu.edu>
1374
* mayanna_computer.py (TrayManagerBox): squashed bug that misplaced
1375
multiple icons in the tray. Sorta looked at by David Trowbridge.
1377
2006-09-13 David Lodge <dave@cirt.net>
1379
* configure.in: Added "en_GB" to ALL_LINGUAS.
1381
2006-09-04 Tony Tsui <tsui.tony@gmail.com>
1383
* mayanna_people.py (RunningChat.__init__): Listen to urgency hints
1384
and add _win_state_changed() and get_demands_attention() method.
1386
2006-08-21 Clytie Siddall <clytie@riverland.net.au>
1388
* configure.in Added vi in ALL_LINGUAS line.
1390
2006-08-06 Jovan Naumovski <jovan@lugola.net>
1392
* configure.in: Added "mk" to ALL_LINGUAS.
1394
2006-07-24 Alex Graveley <alex@beatniksoftware.com>
1396
* mayanna_trash.py (TrashItem.do_empty): Use a single string for
1397
secondary dlg text instead of several split into lines, so we
1398
don't confuse the gettext parser.
1400
2006-07-22 Tony Tsui <tsui.tony@gmail.com>
1402
* mayanna_topicwin.py (ItemIconView): Add support for following
1403
Nautilus' click_policy gconf value.
1404
* mayanna_util.py (GConfBridge): Add more detailed comment about
1407
2006-07-21 Josep Puigdemont i Casamajó
1409
* configure.in: Added ca to ALL_LINGUAS.
1411
2006-07-18 Sigurd Gartmann <sigurdga@yahoo-inc.com>
1413
* configure.in: Added Norwegian Bokmål (nb) to ALL_LINGUAS.
1415
2006-07-17 Takeshi AIHANA <aihana@gnome.gr.jp>
1417
* configure.in: Add 'ja' (Japanese) to ALL_LINGUAS.
1419
2006-07-16 Alex Graveley <alex@beatniksoftware.com>
1421
* mayanna_base.py (Topic.find_items): Do AND matching of all search
1424
2006-07-15 Tom Insam <tom@jerakeen.org>
1426
* mayanna_computer.py (FriendlyPager._reload_workspaces): Hide the
1427
pager if there is only one workspace.
1429
2006-07-11 Francisco Javier F. Serrador <serrador@openshine.com>
1431
* configure.in: Added Spanish to ALL_LINGUAS.
1433
2006-07-07 Stu Hood <stuhood@gmail.com>
1435
* mayanna_documents.py (DocumentsTopic._add_templates): Fix a crasher
1436
when ~/Templates doesn't exist.
1438
2006-07-05 Chris Scobell <chris.scobell@gmail.com>
1440
* mayanna_documents.py: Implement "New Document".
1442
2006-07-04 Johan Dahlin <jdahlin@async.com.br>
1444
* mayanna_util.py (PlacesManager): Refactoring: Handle bookmark aliases
1445
which have a space in them, bookmark files which don't exist, and broken
1446
.gtk-bookmarks. Always rebuild places, so removed bookmarks are
1447
properly handled. Mark instance private variables with a leading
1448
underscore (PEP-8). Do not save a reference to the FileMonitor.
1450
2006-07-03 Ilkka Tuohela <hile@iki.fi>
1452
* configure.in: Added Finnish "fi" to ALL_LINGUAS
1454
2006-07-03 Tony Tsui <tsui.tony@gmail.com>
1456
* mayanna_topicwin.py (ItemIconView): Connect button-release-event for
1457
single click activation support.
1458
* mayanna_util.py (GConfBridge): Add "click_policy".
1460
2006-06-30 Alex Graveley <alex@beatniksoftware.com>
1462
* mayanna_util.py (BookmarkManager.do_reload): Make the list
1463
generator work for other versions of python.
1465
* README: Update a little bit.
1467
2006-06-29 Hendrik Brandt <heb@gnome-de.org>
1469
* configure.in: Added German "de" to ALL_LINGUAS.
1471
2006-06-28 Alex Graveley <alex@beatniksoftware.com>
1473
* mayanna_documents.py (RecentAggregate.get_items): Handle
1474
UnicodeDecodeError when sorting items by calling decode on each
1475
name and trying again.
1477
* mayanna_tomboy.py (TomboySource.do_reload): Name the error.
1479
* mayanna_file.py (FileItem.get_name): Use urllib.unquote when
1480
falling back to URL for the name.
1482
2006-06-28 Simos Xenitellis <simos@gnome.org>
1484
* configure.in: Added el to ALL_LINGUAS.
1486
2006-06-28 Alex Graveley <alex@beatniksoftware.com>
1488
* configure.in: Update to 0.1.1.
1490
* NEWS: Update a bit.
1492
* mayanna_applications.py (DesktopFileItem.__init__): Call
1493
gnomedesktop.item_new_from_basename if uri has no dirname.
1495
* mayanna_util.py (BookmarkManager.DEFAULT_BOOKMARKS): Add some
1496
default bookmarks: Firefox, Nautilus, MAYANNA's README, and
1497
my orphennui AIM (me).
1499
2006-06-28 Alex Graveley <alex@beatniksoftware.com>
1501
* mayanna_base.py (Item.pretty_print_time_since):
1502
* mayanna_trash.py (TrashItem.__init__): gettext fixes from Zygmunt Krynicki.
1504
2006-06-28 Alex Graveley <alex@beatniksoftware.com>
1506
* mayanna_gui.py (EdgeWindow.do_size_request): Use up to 100% of
1509
* mayanna_file.py (FileItem.get_location_comment): Use a more
1512
* mayanna_bar.py (MAYANNABarDock.layout): Just use padding between
1513
topics, not above/below.
1515
* TODO: Update a little for release.
1517
* mayanna_gaim.py (gaim_dbus): Set to None on error.
1519
* mayanna_documents.py (DirectorySource): Monitor a directory for
1520
changes and list all it's contents.
1521
(DownloadsDirectorySource): A DirectorySource for $DOWNLOAD_PATH
1523
(DocumentsTopic.do_reload): Use a DownloadsDirectorySource at
1526
2006-06-27 Alex Graveley <alex@beatniksoftware.com>
1528
* mayanna_topicwin.py (TopicWindow.__init__): Remove one-page
1529
notebook only used to create a bevel, after prodding from Karl
1532
2006-06-26 Pedro Villavicencio Garrido <pvillavi@gnome.org>
1534
* configure.in: correct the recent Added "da".
1536
2006-06-26 Martin Willemoes Hansen <mwh@sysrq.dk>
1538
* configure.in: Addd "da" Danish to ALL_LINGUAS.
1540
2006-06-26 Christian Rose <menthos@menthos.com>
1542
* configure.in: Added "sv" to ALL_LINGUAS.
1544
2006-06-25 Alex Graveley <alex@beatniksoftware.com>
1546
* mayanna_people.py (RunningChats._get_screenname_from_uri): Be a
1547
bit smarter about trimming quotes in URIs.
1548
(RunningChats._get_buddy_for_screenname): Lowercase the screenname
1549
before looking for a matching buddy. Fixes bookmarking screenname
1550
which are mixed case.
1552
* mayanna_gui.py (TopicButton.do_clicked): Call
1553
do_set_wm_icon_geometry after creating window. TopicWindows
1554
weren't minimizing to the correct location initially.
1556
2006-06-24 Alex Graveley <alex@beatniksoftware.com>
1558
* mayanna_applications.py (DesktopFileItem.__init__): Raise
1559
ValueError if gnomedesktop.item_new_from_uri returns None.
1561
2006-06-24 Alex Graveley <alex@beatniksoftware.com>
1563
* mayanna_computer.py (FriendlyPager._pager_scroll_event): Cycle
1564
desktops on scroll event. Patch originally from Frederic Back.
1566
2006-06-24 David Trowbridge <trowbrds@gmail.com>
1568
* mayanna_gui.py (TopicButton.do_button_press_event): Destroy the menu
1569
on selection-done, to avoid leaking gtk.MenuItems
1571
2006-06-22 Alex Graveley <alex@beatniksoftware.com>
1573
* mayanna_util.py (IconFactory.colorshift): Add this to colorshit
1576
* mayanna_gui.py (RunningItemTile._load_icons): Colorshift the
1577
highlight icon for running items.
1578
(DockWindow.do_set_wm_strut): Don't set the strut if it would
1579
occupy the entire screen.
1580
(TopicRunningList._reload): Only append items which are not
1581
already present in the running item list.
1583
* mayanna_computer.py (RunningSettingsApplications): Subclass of
1584
RunningApplications, but which masks items which are not settings.
1585
Aggregate this into the running computer source.
1586
(ComputerRunningSource.__init__): Create the pager, tray mgr, and
1588
(ComputerTopic.get_toolbar_items): Hide the network item.
1590
* mayanna_applications.py (RunningNoSettingsApplications): Subclass
1591
of RunningApplications, but which masks items which are settings.
1592
Use this for the running applications source.
1594
* Makefile.am (mayanna_PYTHON): Update with missing files.
1595
(CLEANFILES): Add mayanna_globals.py.
1596
(EXTRA_DIST): Add mayanna_globals.py.in.
1598
* po/ChangeLog: Add this. Needed for make dist.
1600
2006-06-21 Alex Graveley <alex@beatniksoftware.com>
1602
* mayanna_topicwin.py (HideOnDeleteWindow.do_delete_event): Hide
1603
instead of iconify on delete. New metacity (2.14.5) will think
1604
the window is not responding.
1606
* mayanna_util.py (IconFactory.load_icon): Don't choke on unfound
1609
2006-06-22 Tony Tsui <tsui.tony@gmail.com>
1611
* gnomedesktop/_gnomedesktop.defs: Fix mem leak with GnomeDesktopItem.
1612
* egg/_egg.defs: Fix mem leak with EggRecentItem objects.
1614
2006-06-21 Alex Graveley <alex@beatniksoftware.com>
1616
* mayanna_util.py (IconFactory.load_icon): Work around a Pixbuf
1617
leak in gtk.IconTheme. Also work around broken
1618
gtk.IconInfo.get_builtin_pixbuf. Pixbufs no longer leak for me.
1620
(DebugHelper.count_running_objects): Add this helper which can
1621
print the number of active objects of a list of types.
1622
(DebugHelper.diff_running_objects): This helper prints the count
1623
of newly created objects since the last call.
1625
2006-06-20 Alex Graveley <alex@beatniksoftware.com>
1627
* mayanna_gui.py (RunningItemTile): Disconnect the reload
1628
connection on destroy, fixes leaking RunningItemTiles.
1629
(TooltipRaiser.__init__): Cleanup on widget destroy, fixes leaking
1632
2006-06-19 Alex Graveley <alex@beatniksoftware.com>
1634
* mayanna.py (_setup_session_manager): Set the restart style after
1635
the restart command. I've been seeing two instances of mayanna
1636
show up, and this was a random guess and now I don't see it
1639
* mayanna_running.py (RunningItem.get_is_active): Implement this by
1640
looking through the app group's windows for one that is currently
1643
2006-06-20 Tony Tsui <tsui.tony@gmail.com>
1645
* mayanna.py: Handle broken Fedora gnome-python wrapper for session
1646
managment set_restart_command() function.
1648
2006-06-19 Alex Graveley <alex@beatniksoftware.com>
1650
* mayanna_tomboy.py (TomboySource.__init__): Call
1651
os.path.expanduser for TOMBOY_PATH.
1653
* mayanna.py: Don't restart after a SIGTERM.
1655
2006-06-19 Alex Graveley <alex@beatniksoftware.com>
1657
* mayanna.py: Recreate the mayannabar on relevent setting change.
1658
Rather broken at the moment.
1660
* mayanna_bar.py (MAYANNABar.destroy): Store the edge window, and
1663
* mayanna_computer.py (ComputerRunningSource): Manage clockapplet
1664
display directly via gconf setting.
1665
(ComputerTopic.get_button_content): Listen for clockapplet
1666
settings changes, and display the time in the topic button if the
1667
clockapplet is disabled.
1669
2006-06-18 Alex Graveley <alex@beatniksoftware.com>
1671
* mayanna_bar.py: Kill MAYANNABarButtonsOnEdge.
1673
* mayanna_util.py (GConfBridge.DEFAULTS): Add "clockapplet".
1675
2006-06-19 Chris Lord <chris@openedhand.com>
1677
* mayanna_bar.py (MAYANNABarDock.layout): Integrate
1678
MAYANNABarButtonsOnEdge with MAYANNABarDock.
1680
* mayanna.py: Make the clock-applet visibility configurable and use
1681
MAYANNABarDock instead of MAYANNABarButtonsOnEdge.
1683
2006-06-18 Alex Graveley <alex@beatniksoftware.com>
1685
* mayanna.py: Setup gnome.ui's session restart stuff, so mayanna is
1686
restarted after logout or after a crash. Ctrl-C on the command
1687
line will avoid restarting. Developers can run with --sm-disable
1688
to avoid restart altogether.
1690
* mayanna_file.py (FileItem.get_comment): Show the hostname and
1691
directory name of the file in the comment.
1693
* mayanna_util.py: egg.recent -> egg.
1694
(GConfBridge): Some superficial variable name cleanups.
1696
* mayanna_computer.py (ComputerRunningSource.do_reload): Add an
1697
hbox containing tray icons.
1699
* configure.in: Remove checks for python-bonobo. We don't need
1700
them any more with a simplified egg-recent.
1702
2006-06-16 Alex Graveley <alex@beatniksoftware.com>
1704
* mayanna_computer.py (PrinterItem.get_timestamp): Return the
1705
recent manager's timestamp, so printers show up in recently used.
1706
(PrinterItem.get_icon): Copy the icon before compositing emblems
1708
(RemoteMountItem): Add basic Item subclass to open a remote
1711
2006-06-15 Alex Graveley <alex@beatniksoftware.com>
1713
* mayanna_topicwin.py (TopicWindow._find_first_button): Set the
1714
zoom level before loading the items. This fixes the initial
1715
auto-zooming of at least 5 items.
1717
2006-06-14 Alex Graveley <alex@beatniksoftware.com>
1719
* mayanna_file.py (FileItem.ensure_file_info): Check gnome-vfs can
1720
parse the item URI before calling get_file_info. This avoids the
1721
null URI error spew which can exit for glib devel builds.
1723
* mayanna_computer.py (PrinterItem.get_comment): Don't repeat the
1724
printer name in the comment. The printer name is sometimes set as
1726
(PrinterItem.get_uri): Don't call gnome_cups_printer_get_uri if
1727
the printer doesn't have attributes yet.
1728
(RecentComputerItems._listen_to_source): Use connect_after for
1729
reload and reload-item signals.
1731
* mayanna_gaim.py (GaimBuddy.matches_text): Override
1732
Item.matches_text to avoid searching the comment, since it can be
1733
slow do fetch with D-BUS, and isn't reliable anyway.
1735
2006-06-14 Alex Graveley <alex@beatniksoftware.com>
1737
* mayanna_computer.py: Make add bluetooth, cd burner, add printer,
1738
connect to, and windows network items special.
1740
* mayanna_tomboy.py (TomboySource.do_reload): List create note item
1741
first, and make it special.
1743
* mayanna_topicwin.py (TopicWindow._filter_items_num_days_ago):
1744
Always include special items.
1746
* mayanna_base.py (Item.is_special): New, tells if the item is
1749
2006-06-14 Alex Graveley <alex@beatniksoftware.com>
1751
* mayanna_tomboy.py (TomboySource.do_reload): Sort the notes by
1752
title, and lower the body text ahead of time.
1754
* mayanna_topicwin.py (TopicWindow._search): Sort search results
1757
* mayanna_base.py (Topic.find_items): Handle items without a URI.
1759
* mayanna_applications.py (MenuLauncherItem.__init__): Prepend
1760
"file://" to the desktop file path to make a real uri, so that
1761
searching avoids duplicate launchers correctly.
1763
2006-06-14 Alex Graveley <alex@beatniksoftware.com>
1765
* mayanna_documents.py (DocumentsTopic.__init__): Create
1766
TomboySource here, so worker thread has a chance to run.
1768
* mayanna_computer.py (PrinterItem.get_icon): Don't load emblems
1769
for small (< 32px) icon sizes, as it crashes pixbuf composite.
1771
2006-06-14 Alex Graveley <alex@beatniksoftware.com>
1773
* mayanna_topicwin.py (TopicWindow._filter_items_num_days_ago): Do
1774
filtering based on item's timestamp here, instead of in ItemSources.
1776
* mayanna_tomboy.py (TomboySource.__init__): Load NoteItems in a
1779
* mayanna_base.py (ItemSource.get_allow_filter_by_date): Drop
1780
get/set_days_filter in favor of this, allowing get_items to be
1783
* mayanna_applications.py (RunningApplications.do_reload): Try to
1784
clean this up a little and handle a few corner cases.
1786
2006-06-12 Alex Graveley <alex@beatniksoftware.com>
1788
* mayanna_util.py (PlacesManager.do_reload): Filter duplicate
1791
* mayanna_topicwin.py (Sidebar.add_sources): Use the ItemSource's
1792
URI to reselect the previously active sidebar ItemSource.
1794
* mayanna_people.py: Add URIs for ItemSources, so they can be
1795
reloaded without losing the focused sidebar.
1797
* mayanna_computer.py (ComputerRunningSource.set_orientation): Use
1798
the orientation to set alignment manually.
1799
(DevicesSource): Add Item to launch CD Creator.
1801
* mayanna_documents.py (RecentDocuments.include_recent_item):
1802
Filter out "x-tomboy/note" recent entries.
1803
(RecentAggregate): New class to aggregate multiple ItemSources
1804
into a single listing, used for Recently Used.
1806
2006-06-12 Alex Graveley <alex@beatniksoftware.com>
1808
* Makefile.am: Update for recently added files.
1810
* W3CDate.py: Add this little helper to parse the ISO date formats
1811
that Tomboy XML uses. From
1812
http://www.shearersoftware.com/software/developers/w3cdate/.
1814
* mayanna_tomboy.py (TomboySource.do_reload): Don't reload all the
1815
notes on set_days_filter, but rather check the date in get_items.
1816
Add "Create New Note" item that calls "tomboy --new-note". Use
1817
W3CDate to parse <last-change-date>.
1819
2006-06-11 Tiago Cogumbreiro <cogumbreiro@users.sf.net>
1821
* mayanna_computer.py (DriveItem.get_comment): When GnomeVfs
1822
doesn't know the URI it raises a TypeError, handle it gracefully.
1824
* mayanna_file.py (FileItem.ensure_file_info): Handle
1825
gnomefvs.NotSupportedError.
1827
* mayanna_tomboy.py: Importing missing reference to 'launcher'.
1828
(NoteItem.do_reload):
1829
(TomboySource.do_reload): Handle malformed XML files.
1830
(NoteItem.do_reload): Handle files with no 'last-change-date'
1831
gracefully (use AttributeError when None is returned).
1833
2006-06-11 David Trowbridge <trowbrds@gmail.com>
1835
* mayanna_util.py (GConfVariable): Add a helper class for using gconf
1838
* mayanna.py (main): Use the GConfBridge for swapbar, autohide and
1839
vertical, rather than environment variables.
1841
2006-06-11 David Trowbridge <trowbrds@gmail.com>
1843
* mayanna_bar.py (MAYANNABarDock): Add size groups for each topic within
1844
the mayannabar to fix sizing issues when running in dock mode.
1846
2006-06-07 Alex Graveley <alex@beatniksoftware.com>
1848
* mayanna_tomboy.py: New brute force attempt at a Tomboy
1849
ItemSource. Looks in $TOMBOY_PATH for notes, followed by ~/.tomboy.
1851
* mayanna_documents.py: Replace "Office Documents" item source with
1852
a "Notes" TomboySource.
1854
* mayanna_applications.py (RecentLaunchers.get_items): Construct
1855
DesktopFileItems with uris, not file paths, since the code handles
1856
this and it is somewhat more correct.
1858
* mayanna_gaim.py (GaimBuddy.get_name_markup): Show unavailable
1859
buddy names in italic, not grey.
1861
2006-06-06 Alex Graveley <alex@beatniksoftware.com>
1863
* mayanna_applications.py (RecentLaunchers.get_items): Handle
1864
ValueError when adding items.
1866
2006-06-05 Alex Graveley <alex@beatniksoftware.com>
1868
* mayanna_gaim.py (GaimBuddy.get_icon): Greyscale the icon if a
1869
dbus error occurs (or Gaim2 is not running).
1871
2006-06-04 Alex Graveley <alex@beatniksoftware.com>
1873
* mayanna_file.py (FileItem.is_local): gnome_vfs_uri_is_local can
1874
hang, so just look it up in a hardcoded list for now.
1876
* mayanna_computer.py (FriendlyPager): Set 2px border, and show the
1879
2006-06-04 Alex Graveley <alex@beatniksoftware.com>
1881
* mayanna_util.py (KillFocusPadding): Simple no-method helper class
1882
to parse a no-padding style and apply it to the widget.
1884
* mayanna_gui.py (TopicButton): Use KillFocusPadding.
1885
* mayanna_computer.py (FriendlyClock): Ditto.
1887
2006-06-03 Alex Graveley <alex@beatniksoftware.com>
1889
Dump lots of MAYANNABar and ther changes.
1891
2006-05-31 Alex Graveley <alex@beatniksoftware.com>
1893
* sexy/sexy.override (_wrap_sexy_tooltip_position_to_rect): Work
1894
around segfault in pygdk_rectangle_from_pyobject. Replace with
1897
2006-05-31 Alex Graveley <alex@beatniksoftware.com>
1899
* Makefile.am (SUBDIRS): Include sexy.
1900
* configure.in: Ditto.
1902
* sexy/Makefile.am: Build and bind libsexy's tooltip and icon
1905
2006-05-31 Alex Graveley <alex@beatniksoftware.com>
1907
* mayanna_util.py (FocusRaiser.queue_raise): Simplify gravity
1908
checking to support only NSEW.
1910
* mayanna_gaim.py (GaimBuddy.get_comment): Show Idle/Away if no
1911
away message. Remove last chat date.
1912
(GaimBuddy.get_name_markup): Show offline buddies in italics.
1914
* mayanna_file.py (FileItem.is_local): Handle remote files better
1915
by asyncronously loading the file info (for remote files). Use
1916
xdg.Mime to peek at mime-type for remote files, since pygnomevfs
1917
does not bind the mime lookup calls yet.
1919
2006-05-31 Alex Graveley <alex@beatniksoftware.com>
1921
* mayanna_base.py (IOrientationAware): New interface.
1923
* mayanna_computer.py (FriendlyPager.__init__): Support setting an
1924
orientation, and only show labels if horizontal.
1925
(FriendlyClock): Add this clock widget which displays the day and
1926
time, and allows showing a calendar on click. No e-d-s
1927
integration here yet.
1928
(ComputerTopic.get_toolbar_items): Show the ~/.face icon in the
1929
toolbar, and monitor it for changes.
1931
2006-05-31 Alex Graveley <alex@beatniksoftware.com>
1933
* mayanna_applications.py
1934
(RunningApplications.munge_command_and_wmclass): Hack around gksu
1936
(RunningApplications.do_reload): Skip windows with a non-launcher
1937
startup-id set. Skip gaim conversation windows.
1938
(LauncherItem.get_comment_markup): Override to return the command
1939
if there is no other comment.
1940
(MenuTree): Add reload signal, so the topic window can reload on
1943
2006-05-29 Alex Graveley <alex@beatniksoftware.com>
1945
* mayanna_gaim.py (GaimBuddy.get_is_opened): Use
1946
GaimFindConversationWithAccount.
1947
(GaimBuddy.get_name_markup): Grey out name for away buddies, use
1948
italic grey for offline buddies.
1949
(GaimBuddy.get_comment): Remove away message html tags with a
1950
'<.*?>' regexp replacement.
1952
2006-05-24 Alex Graveley <alex@beatniksoftware.com>
1954
* mayanna_topicwin.py (ItemIconView._set_item): Use
1955
Item.get_name/comment_markup to get the display markup. Clear the
1956
search X button when cancelling a search by clicking a sidebar
1959
* mayanna_gaim.py (GaimBuddy): Show the away message in the
1960
comment, grey out the icon for offline buddies, markup the name
1961
with a green/red dot to hint at availability and color it grey if
1964
* mayanna_base.py (Item): Add get_comment_markup and
1965
get_name_markup to allow subclasses to override the display
1966
formatting in the TopicWindow.
1968
2006-05-15 Tony Tsui <tsui.tony@gmail.com>
1970
* mayanna_base.py (Item): Add a default drag-recieved handler.
1972
* mayanna_gui.py (RunningItemTile): Set up drag-recieved handler.
1974
* mayanna_trash.py: Handle drag-to-trash.
1976
2006-05-14 Alex Graveley <alex@beatniksoftware.com>
1978
* mayanna_util.py (FocusRaiser): Add support for hiding the raised
1979
window, and support fast raising for all gravity settings.
1981
* mayanna_people.py (OnlineBuddySource): DIRTY -> _DIRTY.
1983
2006-05-14 Alex Graveley <alex@beatniksoftware.com>
1985
* mayanna_documents.py (RecentDocuments.include_recent_item): Tweak
1986
document filter to avoid octet-streams mimetypes, and ipp and
1989
* mayanna_topicwin.py (SidebarButton): Let the button set it's own
1992
* mayanna_people.py (RunningChats.do_reload): Hacky tabbed
1993
conversation support. Look for a new buddy match when the window
1996
2006-05-12 Alex Graveley <alex@beatniksoftware.com>
1998
* mayanna_people.py (OnlineBuddySource.get_items): Avoid long DBUS
1999
delays by marking the ItemSource dirty on Gaim file write (via the
2000
do_reload signal handler), delaying the actual work of looking up
2001
online people on-demand to here.
2002
(RunningChats.do_reload): Strip parenthesis from window titles
2003
which gaim uses to indicate offline-mode. Match window titles to
2004
bookmarked person's screenname or alias.
2006
2006-05-10 Alex Graveley <alex@beatniksoftware.com>
2008
* gnomecups/_gnomecups.override: Don't include
2009
gnome-cups-permission.h which is supplied by libgnomecupsui, which
2012
2006-05-07 Alex Graveley <alex@beatniksoftware.com>
2014
* mayanna_gaim.py (GaimAccountReader.do_reload): Try to be a bit
2015
faster when looking for buddy name clashes.
2017
* mayanna_base.py (Topic.find_items): Handle NotImplementedError,
2018
so searching doesn't bork for ItemSources that don't implement
2021
2006-05-01 Alex Graveley <alex@beatniksoftware.com>
2023
* gnomecups/_gnomecups.override: Fix kwlist -> kwargs typo in the
2024
method descriptors for notify functions, which caused crashes due
2025
to using junk argument pointers.
2027
2006-05-01 Alex Graveley <alex@beatniksoftware.com>
2029
* mayanna_people.py (PeopleTopic): Disable "GMail" and
2030
"Friendster". Set Availability menu contents insensitive.
2032
* mayanna_documents.py (DocumentsTopic): Disable "Important Email",
2033
"Attachments", "Downloads", and "Photos".
2035
* mayanna_topicwin.py (Sidebar.add_sources): Desensitize the
2036
sidebar button if the sidebar source is not enabled.
2038
* mayanna_base.py (ItemSource): Add get_enabled.
2039
(DisabledItemSource): ItemSource subclass that is always disabled,
2040
used for unimplemented features.
2042
2006-05-01 Alex Graveley <alex@beatniksoftware.com>
2044
* mayanna_applications.py (RunningApplications.do_reload): Use
2045
WnckWindow.is_on_workspace, since it accounts for pinnded windows.
2046
* mayanna_documents.py (RunningDocuments.do_reload): Ditto.
2047
* mayanna_people.py (RunningChats.do_reload): Ditto.
2048
* mayanna_running.py (RunningItem.do_open): Ditto.
2050
* mayanna_gaim.py (GaimAccount.get_log_path): Jabber logdirs do not
2051
include the jabber account resource, so strip it out.
2052
(GaimBuddy): Use alias as the name if it exists, and show the
2053
screenname in the comment if there are name clashes.
2055
2006-04-29 Alex Graveley <alex@beatniksoftware.com>
2057
* mayanna_util.py (FocusRaiser): Retweak this code to only queue a
2058
raise of the window when the pointer is over the bottom two pixels
2059
of the lower window, and drop the raise timeout to 100ms.
2061
2006-04-29 Alex Graveley <alex@beatniksoftware.com>
2063
* mayanna_util.py (FocusRaiser): Fiddle with auto-raising...
2064
- Make raising work when dragging an item over the button bar.
2065
- Reset the timeout for raising whenever a motion even occurs,
2066
meaning the pointer must stabalize before raising; hopefully
2067
improving unintended raises when e.g. grabbing a window border.
2068
- Up the raise timeout to 300ms.
2070
2006-04-29 Alex Graveley <alex@beatniksoftware.com>
2072
Drop libgnomecupsui dependecy, since the auth handling it was
2073
being used for is commented out anyway, and printing a test page
2074
is present in the Properties dialog.
2076
* gnomecups/Makefile.am (.defs.c): Don't include gtk defs.
2078
* gnomecups/_gnomecups.override: Don't include headers.
2080
* gnomecups/_gnomecupsmodule.c (init_gnomecups): Call
2081
gnome_cups_init with a NULL auth function.
2083
* gnomecups/_gnomecups.defs (CupsPrinter): Remove defs.
2085
* mayanna_computer.py: Don't call gnomecups.ui_init.
2087
* configure.in: Require libgnomecups 0.2.2.
2089
2006-04-29 Alex Graveley <alex@beatniksoftware.com>
2091
* mayanna_topicwin.py (TopicWindow._find_first_button): Handle
2092
None in the source list.
2094
2006-04-28 Alex Graveley <alex@beatniksoftware.com>
2096
* mayanna_base.py: Explicitly check self.items == None before
2097
forcing an initial reload, this avoids a possible infinite
2098
recursion if the reload sets the items to an empty list.
2100
* mayanna_computer.py (ComputerTopic._add_user_items): Add "About
2101
Me" to username dropdown menu in toolbar.
2103
2006-04-27 Alex Graveley <alex@beatniksoftware.com>
2105
* mayanna_computer.py (RecentComputerItems): Clean this up by
2106
making the item matching logic generic, and make it a subclass of
2107
RecentlyUsedOfMimeType.
2108
(PrinterItem.do_open): Add an egg.recent item with mime-type of
2109
"x-mayanna/printer".
2111
2006-04-27 Alex Graveley <alex@beatniksoftware.com>
2113
* mayanna_topicwin.py: Reorganize this code by spliting the sidebar
2114
logic into Sidebar and SidebarButton classes, and making the
2115
interface between these and the TopicWindow very light.
2117
2006-04-27 Alex Graveley <alex@beatniksoftware.com>
2119
Original patch from Tom Insam <tom@jerakeen.org>.
2121
* mayanna_gaim.py (GaimBuddy): Look for an "alias" tag, and return
2123
* mayanna_people.py (RunningChats._get_buddy_for_screenname):
2124
Support matching alias as screenname.
2126
2006-04-26 Alex Graveley <alex@beatniksoftware.com>
2128
* mayanna_computer.py (BonjourSource): Make this do something by
2129
running nautilus-connect-server for the Connect To item, add a
2130
Windows Network item which opens smb://, and list any mounted
2131
volumes were the volumetype is "connected server".
2133
2006-04-25 Alex Graveley <alex@beatniksoftware.com>
2135
* mayanna_running.py (RunningItem._win_state_changed): Always emit
2136
reload signal on window state change (don't filter for requesting
2139
* mayanna_base.py (Item.pretty_print_time_since): Don't include
2140
time of day for timestamps older than 3 days, and get the day
2143
* mayanna_file.py (FileItem.get_comment): Don't include "Last
2144
seen/changed" in comment.
2146
2006-04-25 Alex Graveley <alex@beatniksoftware.com>
2148
* mayanna_people.py: Catch TypeError from older d-bus bindings.
2149
* mayanna_gaim.py: Ditto.
2151
* mayanna_computer.py: Use the volume icon and display name if the
2152
drive has only one volume.
2154
2006-04-25 Alex Graveley <alex@beatniksoftware.com>
2156
* mayanna_util.py (RecentlyUsedManager.add_full): Override
2157
RecentModel's add_full call, to replace our cached RecentItem with
2158
the newly added one. This works around egg recent not signalling
2159
a change for in-process adds.
2161
2006-04-24 Alex Graveley <alex@beatniksoftware.com>
2163
* mayanna_base.py (Topic): Cache sidebar sources, which speeds up
2164
search considerably since all the sources aren't being recreated.
2165
Call Topic.set_sidebar_sources in the reload handler for all
2167
(Topic.get_topic_window): Creates and caches the TopicWindow for
2169
(Topic.get_source_for_uri): Returns the source with the matching
2172
* mayanna_recent.py (RecentlyUsedOfMimeType): Move here from
2173
mayanna_documents.py.
2175
* mayanna_computer.py (RecentComputerItems): New class to collate
2176
all the recently used computer items.
2177
(DriveItem.get_icon): Transparentize icon if drive not mounted.
2178
(PrinterSource): List out printers using the newly added gnomecups
2180
(BonjourSource): Beginnings of Avahi computer listing.
2182
* mayanna_documents.py: Places -> Go, and list mounted drives using
2183
the devices source. Don't include folders as documents.
2185
* mayanna_topicwin.py (HideOnDeleteWindow.__init__): Override the
2186
key-press-event signal so that handlers can interrupt the
2187
escape-to-close behavior.
2188
(SearchToolItem._entry_key_press): Implement wicked awesome Escape
2189
behavior: clear the search text, or minimize the window if already
2191
(TopicWindow._toggle_first_button): Set the
2192
zoom level on the first item displayed, so that we avoid showing
2193
an empty list if possible.
2194
(mayanna_get_topic_window): Remove this and use
2195
Topic.get_topic_window instead.
2197
* mayanna_documents.py (RecentDocuments.include_recent_item): Don't
2198
include directories as Documents. Rename Places tool menu to Go,
2199
and list the drives, places, and trash.
2201
* mayanna_util.py (IconFactory.transparentize, greyscale): Move
2202
here from RunningItemTile.
2204
* mayanna_running.py (RunningItem.get_is_user_visible): Add:
2205
returns True if the window group has windows on the current
2208
* mayanna_people.py (RunningChats): Don't look for gaim/log
2209
bookmarks, since we don't use the log directory hack anymore.
2210
People will have to update their ~/.mayanna-bookmarks files.
2212
2006-04-20 Alex Graveley <alex@beatniksoftware.com>
2214
* mayanna_file.py (FileItem.get_icon): If the url has a valid
2215
failed icon, don't try to generate a new thumbnail. Fix from Tom
2218
2006-04-14 Alex Graveley <alex@beatniksoftware.com>
2220
* mayanna_applications.py: Add Settings toolbar item that opens the
2221
Settings sidebar in Computer.
2223
* mayanna_base.py: Make Item a more abstract base, and most of the
2224
file specific bits into FileItem (in mayanna_file.c). Add an
2225
"open" signal. Add Item get_is_user_visible, get_can_pin,
2226
set_screen_position.
2228
* mayanna_computer.py: Add a TrashItem to places. Use gnomevfs's
2229
Drives to populate the devices list, and make a bunch of bunk
2230
guesses at kind of device. Add URIs to Printers, Timeline, and
2233
* mayanna_documents.py: Use FileItem instead of RecentlyUsedItem.
2234
Switch "New Smart Folder" for "New Document". Open the Printers
2235
sidebar when pressing the Printers toolbar button.
2237
* mayanna_gaim.py (GaimBuddy): Get the last chat time by looking at
2238
the mtime of the log directory, use this in get_comment.
2240
* mayanna_gui.py (RunningItemTile): Call the item's
2241
set_screen_position on size allocate.
2243
* mayanna_people.py: Use the gaim account reader for everything,
2244
instead of manually reading the log files. This makes people more
2245
awesome, since search results are now unique. Make add person and
2246
add group just call the gaim dbus calls to present the relevent
2249
* mayanna_recent.py: Kill RecentlyUsedItem and use FileItem
2252
* mayanna_running.py (RunningItem): Implement set_screen_position()
2253
to set the class group window's icon geometry.
2255
* mayanna_topicwin.py (TopicWindow): block the changed handler when
2256
clearing "Seach" text. Make search go fast by dropping the typing
2257
timeout from 400 to 50ms, now that we load (mostly) asyncronously.
2258
Don't set a default height. Make "show timeline" focus the
2259
timeline sidebar in Computer. Reload the sidebar when the topic
2260
emits reload. Don't iconify windows initially.
2262
* mayanna_trash.py: Use names I can understand, and some code
2263
cleanups. Make TrashItem be awesome.
2265
* mayanna_util.py (ImplementMe): Helper to show a dialog for
2266
unimplemented features, that lets users open an editor to the file
2267
needing the feature.
2268
(RecentlyUsedManager): Wrapper around egg.recent that supplies a
2269
cache-backed get_item for a uri.
2270
(IconFactory): Move make_icon_frame here from Item, allow blending
2271
a 1 pixel grey border with the image's contents. Default to
2272
forcing icon sizing in load_image/icon.
2273
(FocusRaiser): Raise after a 200ms timeout. This doesn't work
2276
2006-04-06 David Trowbridge <trowbrds@gmail.com>
2278
* mayanna_logout.py (LogoutDialog): Get rid of the silly 10-second
2279
quantization, because it was silly.
2281
2006-04-05 Alex Graveley <alex@beatniksoftware.com>
2283
* mayanna_logout.py (LogoutDialog): "System" -> "Computer".
2285
2006-04-05 David Trowbridge <trowbrds@gmail.com>
2287
* mayanna_logout.py (LogoutDialog.__init__): Use set_markup instead
2288
of the text property, since it's not bound properly.
2290
2006-04-04 Alex Graveley <alex@beatniksoftware.com>
2292
* mayanna_logout.py (LogoutDialog): Don't use a custom icon, as
2293
this can crash Gtk (see bug #337306). Instead use icons on the
2294
buttons, where possible. Set the "text" property instead of the
2295
label, since it's really private and a binding bug that it is
2296
exposed. Rename some variables so I don't get confused. Kill
2297
current_logout, since the dialog is modal.
2299
* mayanna_computer.py (ComputerTopic.get_toolbar_items): Don't
2300
switch user on click of the tool menu item.
2302
2006-04-04 David Trowbridge <trowbrds@gmail.com>
2304
* mayanna_computer.py: Whoops -- unbreak
2306
2006-04-04 David Trowbridge <trowbrds@gmail.com>
2308
* mayanna_logout.py: Add a LogoutDialog, ported from gnome-panel
2309
* gdmlient/*: Add a small library for talking to GDM
2310
* Makefile.am: Ditto
2311
* configure.in: Ditto
2312
* mayanna_computer.py: Use LogoutDialog to hook up all the
2313
logout/shutdown buttons and context menu items.
2315
2006-04-03 Alex Graveley <alex@beatniksoftware.com>
2317
* mayanna_people.py (PeopleTopic.get_toolbar_items): Use
2318
GaimBlistRequestAddGroup and GaimBlistRequestAddBuddy Gaim2 dbus
2319
calls to do simple person adding. Gaim2 handles presenting the
2322
2006-04-03 Alex Graveley <alex@beatniksoftware.com>
2324
* mayanna_topicwin.py: More IconView tweaking... Don't alter the
2325
view's sizing until ready to set the model. Use non-large text
2326
for >60 items, and 24px icons for 31-60 items.
2328
2006-04-03 Alex Graveley <alex@beatniksoftware.com>
2330
* mayanna_topicwin.py: Create IconView subclass to handle loading
2331
items asynchronously using an idle timeout. Alter layout to better
2332
match Nautilus's horizonal mode, where icons are right aligned and
2333
each column is of a uniform width.
2335
* mayanna_base.py (Item.make_icon_frame): Don't draw the border if
2336
the icon_size is <24.
2338
2006-03-31 Alex Graveley <alex@beatniksoftware.com>
2340
* mayanna_gui.py (TopicRunningList._reload): Call destroy after
2341
removing from the parent.
2343
* mayanna_gaim.py (GaimBuddy.do_open): Call GaimConversationPresent
2344
to focus the tab if a conversation is already in progress.
2346
2006-03-31 Alex Graveley <alex@beatniksoftware.com>
2348
* mayanna_people.py (OnlineBuddySource): New simple online buddy
2351
* mayanna_gaim.py: Bare bones support of Gaim2 through the D-BUS
2352
interface. Use it for getting buddy online status, and opening a
2355
* mayanna_gui.py (TopicRunningList._reload): Hack to avoid a
2356
memleak by calling destroy() on child items.
2358
* mayanna_computer.py (PlacesSource._get_timestamp): Quit the loop
2361
* mayanna.py (topics): Use a single bottom bar.
2363
2006-03-26 Alex Graveley <alex@beatniksoftware.com>
2365
* mayanna_base.py (Item, ItemSource, Topic): Cleanup ungency hints
2366
by adding an "reload-item" signal to ItemSource, which the Topic
2367
listens to for it's running item source. When recieved, the Topic
2368
looks for a running item with urgency set, using
2369
Item.get_demands_attention(), and updates it's label accordingly.
2371
* mayanna_running.py (RunningItem.get_demands_attention): Look in
2372
the app-group's windows for one with urgency set.
2374
* tests/test_urgent.py: Add Mike's test application.
2376
2006-03-25 Alex Graveley <alex@beatniksoftware.com>
2378
Cleanup ungency hints by adding an "reload-item" signal to
2379
ItemSource, which the Topic listens to for it's running item
2380
source. When recieved, the Topic iterates the children looking
2381
for one with with urgency, and updates it's label accordingly.
2383
2006-03-25 Alex Graveley <alex@beatniksoftware.com>
2385
* mayanna_util.py (FileMonitor.__init__): Catch
2386
gnomevfs.NotFoundError.
2388
2006-03-23 Alex Graveley <alex@beatniksoftware.com>
2390
* mayanna_people.py: Use the "gaim" icon for gaim groups.
2392
* mayanna_computer.py: Shuffle sidebar contents a little.
2394
2006-03-23 Alex Graveley <alex@beatniksoftware.com>
2396
Initial urgent notification support from Mike Hearn.
2398
* AUTHORS: Add Mike.
2400
2006-03-22 Alex Graveley <alex@beatniksoftware.com>
2402
* mayanna_util.py (PlacesManager): Rename _reload to do_reload, so
2403
it becomes the default signal handler, and emit the reload signal
2406
* mayanna_people.py (EverybodySource.__init__): Emit reload signal
2407
on Gaim account reader reload.
2408
(RunningChats.__init__): Ditto.
2410
* mayanna_gaim.py (GaimAccountReader.__gsignals__): Emit reload
2411
signal on ~/.gaim/accounts.xml or ~/.gaim/blist.xml alteration.
2413
* mayanna_computer.py (PlacesSource.__init__): Emit reload signal
2416
2006-03-22 Alex Graveley <alex@beatniksoftware.com>
2418
* mayanna_util.py: Random minor cleanups.
2419
* mayanna_computer.py: Ditto.
2421
2006-03-22 David Trowbridge <trowbrds@gmail.com>
2423
* mayanna_util.py: Add a FileMonitor object which can be used to
2424
easily watch files on disk. Add a PlacesManager object (and
2425
associated global) for keeping a list of important places, using
2427
* mayanna_documents.py (DocumentsTopic._add_places): Use new
2428
PlacesManager to get list of places rather than parsing gtk-bookmarks.
2429
* mayanna_computer.py: Add a places category inside the computer topic
2430
which just contains places.
2432
2006-03-21 Alex Graveley <alex@beatniksoftware.com>
2434
* mayanna_applications.py (LauncherItem.__init__): Raise a
2435
ValueError if the path does not exist.
2437
2006-03-20 Alex Graveley <alex@beatniksoftware.com>
2439
* mayanna_topicwin.py (TopicWindow._set_item): Use 32 as the
2440
"normal" icon size. Cap icon width to 2x the height. Use icon
2441
width and text wrap-width properties set in the model to minimize
2444
* mayanna_gui.py (RunningItemTile): Avoid loading icons twice, and
2445
clean up the code somewhat.
2447
* mayanna.py: Comment out browser loading.
2449
2006-03-20 Alex Graveley <alex@beatniksoftware.com>
2451
* mayanna_browser.py (MAYANNABrowser): Flush this multi-pane browser
2452
view I've had in my tree for a while. It is very broken, but you
2455
* mayanna.py: Create a MAYANNABrowser, minimized, for the hell of it.
2457
2006-03-19 Alex Graveley <alex@beatniksoftware.com>
2459
* mayanna_gaim.py (GaimAccountReader): Clean up accounts.xml DOM immediately.
2460
(GaimAccount): Add get_protocol and get_nice_protocol calls.
2462
2006-03-19 Alex Graveley <alex@beatniksoftware.com>
2464
* mayanna_computer.py (FriendlyPager): Add a friendly desktop pager
2465
that shows the label "Desk #" above the workspace contents. It
2466
supports a compact layout (accessed from the context menu) which
2467
uses 2 rows, and no labels, and defaults to this mode if the
2468
number of workspaces exceeds 4.
2470
* mayanna_topicwin.py (TopicWindow.__init__): Use WORD_CHAR
2471
wrap-mode in the icon view.
2473
* TODO: Update a bit.
2475
2006-03-17 David Trowbridge <trowbrds@gmail.com>
2477
* mayanna_applications.py (LauncherItem): Use the recent-files
2478
timestamp if available when initializing, and update the timestamp
2479
when the launcher is opened.
2480
* mayanna_topicwin.py: Listen to reload signals for items, and update
2481
the contents of the icon view when they're fired.
2483
2006-03-16 Alex Graveley <alex@beatniksoftware.com>
2485
* mayanna_topicwin.py: pygtk before 2.8.4 (maybe 2.8.3?) doesn't
2486
expose the CellLayout interface to GtkIconView, so revert to the
2487
old buggier usage in this case.
2489
2006-03-16 David Trowbridge <trowbrds@gmail.com>
2491
* autogen.sh: Fix problem with aclocal sometimes not looking in m4 for
2494
2006-03-16 Alex Graveley <alex@beatniksoftware.com>
2496
* mayanna_trash.py: Handle a gnomevfs.NotSupportedError by ignoring
2497
the found directory. Fixes running with my NFS home directory.
2499
2006-03-16 David Trowbridge <trowbrds@gmail.com>
2501
* mayanna_topicwin.py (TopicWindow.__init__): Use custom cells rather
2502
than gtk.IconView's default ones, to work around some bugs in the
2504
(TopicWindow.load_items): Make icon sizes a little more robus. Load
2505
large icons at 48x48 and small icons at 24x24. If there are more than
2506
60 items, load large icons at 32x32 and small ones at 16x16.
2508
2006-03-15 Alex Graveley <alex@beatniksoftware.com>
2510
* mayanna_trash.py (TrashItem.populate_popup): Always show the
2511
"Empty Trash" item, but set it's sensitivity correctly.
2512
(TrashItem.do_empty): If dialog is not accepted, don't delete
2513
anything, also make it a warning dialog.
2515
2006-03-15 David Trowbridge <trowbrds@gmail.com>
2517
* mayanna_base.py (Item): Add a "reload" signal which causes the tile
2518
in the mayannabar to update.
2519
* mayanna_gui.py (RunningItemTile): Listen for "reload" on Items and
2520
re-query the icon when appropriate.
2521
* mayanna_trash.py: Add a TrashMonitor object (ported from the
2522
gnome-applets trashapplet) and a TrashItem which uses it.
2523
* mayanna_computer.py (ComputerItemSource): Use new TrashItem
2524
* mayanna_documents.py (DocumentsTopic._add_places): Use TrashMonitor to
2525
show the proper icon on the "trash" item in the places menu.
2526
* mayanna_recent.py (RecentlyUsedItem): Use TrashMonitor to use the
2527
show the proper icon.
2529
2006-03-14 Alex Graveley <alex@beatniksoftware.com>
2531
* mayanna_topicwin.py (HideOnDeleteWindow): Iconify on delete or on
2532
Escape keypress, and hide from the tasklist when unmapped. This
2533
makes topic windows always minimize on close, but never clog up
2536
2006-03-14 Alex Graveley <alex@beatniksoftware.com>
2538
* mayanna_gui.py (TopicButton.do_set_wm_icon_geometry): Set the
2539
icon geometry of topic windows to the dimensions of the topic
2542
2006-03-12 Alex Graveley <alex@beatniksoftware.com>
2544
* mayanna_gaim.py (GaimAccountReader): Free the accounts.xml and
2545
blist.xml DOM trees after parsing to save memory.
2547
* mayanna_gui.py (DockWindow): Set _NET_WM_STRUT correctly for
2550
2006-03-10 Alex Graveley <alex@beatniksoftware.com>
2552
* mayanna.py, mayanna_gui.py: Initial support for MAYANNABars with
2553
East/West orientation.
2555
* mayanna_base.py: Rotate button labels for East/West orientation.
2557
* mayanna_applications.py: Remove outmoded context Loutout/Shutdown
2560
* mayanna_computer.py: Use a single flat "Settings" sidebar entry.
2562
2006-03-05 Alex Graveley <alex@beatniksoftware.com>
2564
* mayanna_computer.py (ComputerTopic.get_sidebar_source_list): Move
2565
Recently Used to the top. Eventually this should list all the
2566
objects in this topic.
2568
* mayanna_applications.py: Rename MenuItem to MenuLauncherItem.
2570
2006-03-05 Alex Graveley <alex@beatniksoftware.com>
2572
* mayanna_topicwin.py (TopicWindow._open_item): Iconfiy the topic
2573
window when opening an item. Not sure about this one.
2575
* mayanna_gui.py: Adjust icon height based on screensize, 48 for
2576
bigger screens, 32 for smaller. Support edge gravity placement,
2577
instead of assuming bottom of screen.
2579
* mayanna_base.py (Item.pretty_print_time_since): Use gnomevfs to
2582
* mayanna_applications.py (RunningApplications.do_reload):
2584
* mayanna.py: Place computer topic in a separate bar the the south
2585
east corner. Fixup MAYANNABar to support different gravities.
2587
* mayanna_computer.py (ComputerTopic.get_sidebar_source_list): Add
2590
* mayanna_applications.py: Sort MenuSource items alphabetically.
2591
Drop the Settings sidebar items, and the switch-user/logout
2592
toolbar items, all moved to mayanna_computer.py. Add back
2593
RecentApplicationLaunchers and RecentSettingsLaunchers classes, so
2594
we can split out settings from applications.
2596
* mayanna_user.py: Delete in favor of Computer topic. I find this
2597
unfortunate, because a topic with a calendar/tasklist would be
2600
2006-03-02 Alex Graveley <alex@beatniksoftware.com>
2602
* mayanna.py: If $MAYANNA_USER_TOPIC is set, show a "user topic",
2603
spaced out a little from the other topics.
2605
* mayanna_user.py (UserTopic): New topic to support catch-all
2606
stuff. Currently this means a trashcan and a window switcher, and
2607
soon a tray. Show the username and date/time in the MAYANNAButton.
2609
* mayanna_gui.py (RunningItemTile._button_release): Check press_x
2610
exists before checking the drag threshold.
2611
(TopicRunningList._reload): If a source's child is a regular
2612
widget, just add it.
2613
(TopicButton.__init__): Call Topic.get_button_content() to get
2614
the button's content.
2616
* mayanna_applications.py (ApplicationsTopic.get_toolbar_items):
2617
Only add "Switch User" and "Log out" if not showing user topic.
2619
* mayanna_base.py: Add Topic.get_button_content() which can be
2620
overridden to supply a custom label widget for the topic's
2623
2006-03-01 Alex Graveley <alex@beatniksoftware.com>
2625
* mayanna_topicwin.py (SearchToolItem): Patch from Mike Hearn:
2626
Clear the "Search" string on focus in.
2628
2006-02-28 Alex Graveley <alex@beatniksoftware.com>
2630
* mayanna_gui.py (RunningItemTile.greyscale/transparentize): Cast
2631
pixel values using int(). This fixes the crash some people found
2632
with pygtk, where the pixel values seemed to require an additional
2633
1-element array access.
2635
2006-02-26 Alex Graveley <alex@beatniksoftware.com>
2637
* mayanna_applications.py (MenuSource.__init__): Use
2638
"gnome-fs-directory" for the icon if not defined for the menu
2641
2006-02-25 Alex Graveley <alex@beatniksoftware.com>
2643
* mayanna_people.py: Add some fixes from Mike Hearn, like opening a
2644
chat for any kind of account using aim: URIs, and parsing the
2645
screenname from logfile paths.
2647
2006-02-24 Alex Graveley <alex@beatniksoftware.com>
2649
* mayanna_gui.py (RunningItemTile): Make button press not interfere
2650
with DnD. Use 40% transparent drag icon. Set the drag data as
2651
uri-list containing the item's URI.
2653
* mayanna_topicwin.py (TopicWindow._item_drag_data_get): Set the
2654
drag data as uri-list, instead of text.
2656
2006-02-23 Alex Graveley <alex@beatniksoftware.com>
2658
* mayanna_applications.py (ApplicationsTopic.__init__): Some
2659
distros rename applications.menu and settings.menu in
2660
/etc/xdg/menus to gnome- prefixed versions.
2662
2006-02-22 Alex Graveley <alex@beatniksoftware.com>
2664
* BUILDING: Update for simplified building instructions. They are
2665
pretty much drop-dead simple now.
2667
2006-02-22 Alex Graveley <alex@beatniksoftware.com>
2669
* mayanna_gaim.py (GaimBuddy.get_icon): Override to return the
2670
buddy icon with a border if it exists, or "stock_person" of not.
2672
* mayanna_running.py: Beginnings of running item support, almost
2673
entirely overridden by each topic.
2675
* mayanna_applications.py (RunningApplications): Subclass
2676
RunningItemSource and reimplement do_reload, and add basic
2678
* mayanna_documents.py (RunningDocuments): Ditto.
2680
* mayanna_gui.py: Rename RunningItem to RunningItemTile. Use new
2681
Item.get_tooltip(), so Item subclasses can override. If an item
2682
is not running (a bookamrk), show it as greyscale and mostly
2683
transparent, and switch with only greyscale version on mouseover.
2685
* mayanna_util.py: Add BookmarkManager class to
2686
handle reading/writing bookmarks in ~/.mayanna-bookmarks, and
2687
export an instance as "bookmarks". Add Launcher.parse_startup_id.
2689
2006-02-14 Alex Graveley <alex@beatniksoftware.com>
2691
* mayanna_applications.py: Use gnomedesktop to parse desktop files
2692
instead of ConfigParser. Make LauncherItem baseclass of
2693
DesktopFileItem and MenuItem, it provides setting a running app
2696
2006-02-13 Alex Graveley <alex@beatniksoftware.com>
2698
* mayanna_base.py (ItemSource.get_items): Return empty list if no
2701
* mayanna_util.py (Launcher.launch_command): Return the child pid
2702
and startup id as a tuple.
2703
* mayanna_people.py (RecentConversations.do_reload): Ditto.
2705
* mayanna_gaim.py (GaimAccountReader.__init__): Handle failure in
2706
parsing ~/.gaim xml files.
2708
2006-02-12 Alex Graveley <alex@beatniksoftware.com>
2710
* mayanna_recent.py (RecentlyUsedItem.fixup_thumb): Don't constrain
2711
thumbnail dimensions.
2713
* mayanna_gui.py: Make a RunningItem class, used for all the items
2716
* mayanna_gaim.py (GaimBuddy.__init__): Quote screennames passed to
2717
gaim-remote, because they may contain spaces.
2719
* mayanna_documents.py (RecentDocumentsByTimestamp.get_items): Hack
2720
supporting running documents that works only for documents opened
2721
via mayanna. Change up the sidebar rather drastically.
2723
* mayanna_applications.py (RunningApp.get_icon): Hard code Gaim's icon.
2725
* mayanna_people.py (RecentConversation.get_icon): Simplify person
2726
icon loading, and quote screennames passed to gaim-remote. Add a
2727
hack to support running Gaim chats, by looking at the window's
2728
class group and window title.
2730
* mayanna_topicwin.py (TopicWindow._show_item_popup): Add item
2731
right-click menu, and set up items to be draggable, sending their
2732
URIs as a text/uri-list.
2734
* mayanna_base.py (Item.get_mimetype): Lookup mimetype with
2735
gnomevfs if it isn't known. Drop unused set_mimetype and
2736
set_timestamp calls. Add unused get_is_pinned. Add
2737
populate_popup, which defaults to adding "Open" and "Keep Around"
2740
2006-02-10 Alex Graveley <alex@beatniksoftware.com>
2742
Import all external python dependencies (gnomedesktop, egg.recent,
2743
wnck, iconentry), and generate bindings ourself. The only
2744
external python dependency is now the "gmenu" module.
2746
Call ltihooks.py from __init__ to allow loading uninstalled
2749
Reorg configure.in and autogen.sh, ripping off lots of stuff from
2752
2006-02-04 Alex Graveley <alex@beatniksoftware.com>
2754
* mayanna_gui.py (ButtonWindow.do_size_request): Clamp mayannabar
2755
width to >50% and <90% of screen width.
2757
* mayanna_applications.py: Drop separate Settings topicwin and
2758
menubutton from toolbar, and add a sidebar source instead. Add an
2759
"Install & Update" toolbar button instead, which runs
2762
* mayanna_topicwin.py: Make parts of the window draggable, like
2763
chrome windows in OSX. Make secondary icon text foreground
2764
"darkgrey". Add unusd code for an "+" button at the bottom of the
2767
2006-01-16 Alex Graveley <alex@beatniksoftware.com>
2769
* mayanna_recent.py (RecentlyUsedItem.get_icon): Handle trash://
2770
specially (as usual). Pass "" to icon_lookup for an item with no
2773
* mayanna_applications.py (LauncherItem.do_open): Use
2774
launcher.launch_command_with_uris, which will escape the command.
2776
* mayanna_topicwin.py (TopicWindow): "Last 1 week" -> "Last week",
2777
and never allow a horizontal scrollbar.
2779
* mayanna_util.py (Launcher): Outfit with simple (read: broken) Exec
2780
escape handling, and setting of DESKTOP_STARTUP_ID.
2782
2006-01-12 Alex Graveley <alex@beatniksoftware.com>
2784
* mayanna_base.py (Item.pretty_print_time_since): Simple datetime
2785
pretty printer, similar to the one used in Tomboy.
2786
(Item.get_comment): Prefer seen to changed date if seen is more
2789
* mayanna_people.py (PeopleTopic.make_availability_menu): Move
2790
"Accounts..." above the toggleable account items in the
2792
(RecentConversation.get_comment): Use
2793
Item.pretty_print_time_since.
2795
2006-01-11 Alex Graveley <alex@beatniksoftware.com>
2797
* mayanna_applications.py (LauncherItem.__init__): Parse Categories
2798
out of .desktop files.
2799
(RecentApplicationLaunchers): New RecentLaunchers subclass which
2800
lists only launchers which are not in the "Settings" category.
2801
(RecentSettingsLaunchers): Ditto, but only launchers which are in
2802
the "Settings" category.
2803
(ApplicationsTopic): Use a MenuToolButton with the menu being a
2804
fancy columned menu and the button opening a TopicWindow listing
2805
only the settings launchers.
2806
(SettingsTopic): Topic used to display launchers in the
2807
settings.menu vfolder.
2809
2006-01-11 Alex Graveley <alex@beatniksoftware.com>
2811
* mayanna_base.py (Item.make_icon_frame): Only border with 1 pixel.
2812
(Item.get_name): Handle trash:// urls specially, since they have
2814
(Item.get_comment): Show last seen time if last changed time
2817
* mayanna_gaim.py: Fixup a few interface bugs.
2819
* mayanna_people.py (GroupSource): New class to wrap a Gaim group.
2820
(PeopleTopic.get_sidebar_source_list): Add Gaim groups, as long as
2821
they contain buddies that belong to accounts which are auto-login
2822
(until this is hooked up to the menu items). Fill out the
2823
Availability menu with online status, a list of accounts, and away
2824
message submenu, none of which yet do anything.
2826
2006-01-05 Alex Graveley <alex@beatniksoftware.com>
2828
* mayanna_util.py: Add Launcher class that handles spawning apps
2829
and URIs correctly, and adding them to ~/.recently-used. Add a
2830
global Launcher instance. Move the global recent_model instance
2833
* mayanna_topicwin.py: Major changes. Move TopicWindow here, add
2834
helper toolbar item classes for a zoom drop-down menu, and a
2835
search bar, and hook them up. Use the iconentry class from
2836
desktop, with find and clear icons, if it is installed, otherwise
2837
fall back to a gtk.Entry. Use smaller icons in the iconview for a
2838
large number of items.
2840
* mayanna_recent.py (RecentlyUsed): Support setting a days filter.
2841
(RecentlyUsedItem.get_icon): Clean up icon handling a bit. Move
2842
recent_model global to mayanna_utils.py.
2844
* mayanna_people.py (RecentConversation): Use launcher class to
2845
open recent conversations with gaim-remote. Clean up icon
2847
(RecentConversations): Support setting a days filter.
2849
* mayanna_gui.py: Clean up icon handling for icon list somewhat.
2850
Show friendlier tooltips for file-based items in the mayannabar.
2851
(DockWindow): Handle being placed explicitly to track sizing
2852
changes, and force the move using override_redirect.
2853
(ButtonWindow): Set the _NET_WM_STRUT property to cause the topic
2854
buttons to be avoided when a window is maximized. This rules.
2855
(ItemWindow): Track the parent window resize and movements more
2858
* mayanna_gaim.py (GaimBuddy.do_open): Use launcher class to call
2861
* mayanna_documents.py (RecentDocumentsByTimestamp): Add this
2862
RecentDocuments subclass that sorts Items by timestamp, and use it
2863
for listing in the mayannabar.
2864
(DocumentsTopic.get_toolbar_items): Add Trash to the toolbar. Use
2865
the launcher class to start apps and uris.
2867
* mayanna_base.py (Item): Remove leading slashes in
2868
get_local_path(). Use the launcher class to open documents.
2869
(Item.matches_text): Default search impl looks for text substring
2870
inside name or comment.
2871
(ItemSource): Add get/set_days_filter default impls that raise
2873
(Topic.find_items): Simple search implementation, calls
2874
matches_text on each sidebar source's Items, and returns the
2877
* mayanna_applications.py (ApplicationsTopic): Dock window
2878
appearance shouldn't cause a reload. Use the launcher class to
2881
* mayanna.py (MAYANNABar): Use separate windows for the icon lists.
2882
This allows mousing over a topic button to not obscure the entire
2883
bottom of the screen.
2885
2005-12-20 Alex Graveley <alex@beatniksoftware.com>
2887
* mayanna_applications.py
2888
(ApplicationsTopic.get_context_menu_items): Add Show/Hide All to
2889
the Applications right-click menu. This is the same as "Show
2892
* mayanna_documents.py (DocumentsTopic._add_places): Add Trash to Places.
2894
2005-12-20 Alex Graveley <alex@beatniksoftware.com>
2896
* BUILDING: Add simple build instructions.
2898
2005-12-20 Alex Graveley <alex@beatniksoftware.com>
2900
* mayanna_gui.py (TopicButton): Pass a Topic to __init__. Show a
2901
context menu with items populated from the Topic's
2902
get_context_menu_items().
2903
(TopicWindow): Switch the More/Less tool items to a menu with
2904
descriptions, and change the label to reflect the current zoom
2906
(TopicWindow.__init__): Grudgingly, change the scroll policy to
2907
automatic. We really want to minimize scrollbar usage, but we
2908
can't while GtkIconView is so broken. Help needed here.
2909
(TopicWindow._load_items): If more than 30 items, show only the
2910
item name, and use a smaller icon.
2911
(TopicWindow.add_sources): Call _reload_source on sidebar
2912
ItemSource reload. If the source has items, this calls
2913
_load_items, or desensitizes the sidebar button if not.
2915
* mayanna_util.py (ToolMenuButton): Add get/set_label() methods.
2917
* mayanna_recent.py (RecentlyUsed.do_reload): Ignore private recent
2920
* mayanna_people.py (PeopleTopic.get_context_menu_items): Add
2921
"Available" placeholder context menu items. Add "GMail" and
2922
"Friendster" sidebar placeholders. Switch "Accounts" toolbar menu
2923
to "Available", which should allow toggling online status.
2925
* mayanna_documents.py (DocumentsTopic.get_context_menu_items): Add
2926
"Places" submenu, "New Document" submenu, and "Printers" context
2929
* mayanna_base.py: Add get_context_menu_items() to Topic and Item
2932
* mayanna_applications.py
2933
(ApplicationsTopic.get_context_menu_items): Add "Switch User" and
2934
"Log Out" mayanna bar context menu items.
2936
2005-12-13 Alex Graveley <alex@beatniksoftware.com>
2938
* mayanna_applications.py (LauncherItem.do_open): Call popen in a
2939
forked process, so apps don't die on MAYANNA exit.
2941
2005-12-13 Alex Graveley <alex@beatniksoftware.com>
2943
* mayanna_applications.py (LauncherItem.__init__): Handle parsing
2944
.desktop file a tiny bit better. Try $LANG variant of Name and
2945
Comment, and if Comment doesn't exist, use GenericName.
2947
* mayanna_documents.py (DocumentsTopic._add_places): Unquote the
2948
URLs in ~/.gtk-bookmarks.
2950
2005-12-12 Alex Graveley <alex@beatniksoftware.com>
2952
* mayanna_gui.py (TopicWindow.__init__): Default size of 730x530.
2954
* mayanna_recent.py (RecentlyUsed.do_reload): Use Python 2.4 "key"
2955
sort on lists. This is such an awesome feature.
2956
* mayanna_people.py (EverybodySource.do_reload): Ditto.
2957
* mayanna_applications.py (RecentLaunchers.get_items): Ditto.
2959
* mayanna_gaim.py (GaimBuddy.do_open): Fix typo.
2961
* mayanna_documents.py: Add gnumeric and ooimpress mime-types.
2963
2005-12-11 Alex Graveley <alex@beatniksoftware.com>
2965
* mayanna_gaim.py: Initial support for parsing GAIM's accounts.xml
2966
and blist.xml files, to get a list of groups, accounts, and
2967
contacts to be used in the People topic.
2969
* Makefile.am (mayanna_PYTHON): Add mayanna_gaim.py.
2971
* mayanna_people.py: Use the new GaimAccountReader to get a list of
2972
all gaim contacts, and populate the "Everybody" source with it.
2973
Use the new EmptySource for the other mockup groups, since these
2974
don't work yet. Add a toolbar menu placeholder to allow toggling
2975
the accounts whose contacts we are showing.
2977
2005-12-11 Alex Graveley <alex@beatniksoftware.com>
2979
* mayanna_recent.py: Rename DocumentItem to RecentlyUsedItem.
2980
Since we now rely on gnome-python-extras head, which has the
2981
egg.recent bindings fixed, stop using the hand rolled
2982
~/.recently-used parser (for now). The Egg version should be
2983
faster, and less buggy.
2984
Pass EggRecentItem to include_recent_item, and if successful,
2985
create a RecentlyUsedItem for it.
2987
* mayanna_documents.py (RecentDocuments.include_recent_item): Item
2988
argument is now an EggRecentItem, so use
2989
item.in_group("Launchers").
2990
(RecentDocumentsOfMimeType): Move this here from mayanna_recent.py.
2991
(DocumentsTopic.get_sidebar_source_list): Add
2992
application/vnd.oasis.opendocument.presentation and
2993
application/vnd.sun.xml.impress mime-types to "Presentations"
2996
* mayanna_applications.py (MenuSource.add_recurse): Fix typo to use
2997
self.add_recurse, this was causing a crash for application menus
2998
more than one level deep.
2999
(RecentLaunchers.include_recent_item): Item argument is now an
3000
EggRecentItem, so use item.in_group("Launchers").
3002
2005-12-08 Alex Graveley <alex@beatniksoftware.com>
3004
* configure.in: New file.