diff -Nru cloudsn-0.8.14/cloudsn-local cloudsn-0.10.2/cloudsn-local --- cloudsn-0.8.14/cloudsn-local 2010-12-27 00:19:07.000000000 +0000 +++ cloudsn-0.10.2/cloudsn-local 2012-05-20 22:00:26.000000000 +0000 @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python2 import os, sys srcpath = os.path.abspath("src") sys.path.insert(0,srcpath) diff -Nru cloudsn-0.8.14/data/gmail-account.ui cloudsn-0.10.2/data/gmail-account.ui --- cloudsn-0.8.14/data/gmail-account.ui 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/data/gmail-account.ui 2012-05-20 22:00:26.000000000 +0000 @@ -1,7 +1,6 @@ - + - - + @@ -10,26 +9,29 @@ True - vertical + False True + False 0 none True + False 12 True + False 2 2 True True - + 1 @@ -41,7 +43,7 @@ True True False - + 1 @@ -53,12 +55,14 @@ True + False Username: True + False Password: @@ -73,6 +77,7 @@ True + False <b>Account information</b> True @@ -87,21 +92,22 @@ True + False 0 none True + False 12 True + False True True - automatic - automatic in @@ -110,13 +116,16 @@ labels_store False 0 + + + Label True - + 0 @@ -128,21 +137,25 @@ + True + True 0 True - vertical + False gtk-add + False True True True + False True - + False @@ -153,11 +166,13 @@ gtk-delete + False True True True + False True - + False @@ -179,12 +194,15 @@ True + False <b>Labels to check</b> True + True + True 1 diff -Nru cloudsn-0.8.14/data/greader-account.ui cloudsn-0.10.2/data/greader-account.ui --- cloudsn-0.8.14/data/greader-account.ui 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/data/greader-account.ui 2012-05-20 22:00:26.000000000 +0000 @@ -0,0 +1,58 @@ + + + + + True + False + 2 + 2 + + + True + False + Set permissions on Google: + + + + + Go to Google + False + True + True + True + True + False + none + http://glade.gnome.org + + + 1 + 2 + + + + + True + False + Set the Google PIN: + + + 1 + 2 + + + + + True + True + + + + 1 + 2 + 1 + 2 + + + + diff -Nru cloudsn-0.8.14/data/imap-account.ui cloudsn-0.10.2/data/imap-account.ui --- cloudsn-0.8.14/data/imap-account.ui 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/data/imap-account.ui 2012-05-20 22:00:26.000000000 +0000 @@ -1,7 +1,6 @@ - + - - + @@ -10,26 +9,29 @@ True - vertical + False True + False 0 none True + False 12 True + False 5 2 True True - + 1 @@ -43,7 +45,7 @@ True True False - + 1 @@ -55,6 +57,7 @@ True + False Username @@ -65,6 +68,7 @@ True + False Password @@ -75,12 +79,14 @@ True + False Host True + False Port @@ -91,6 +97,7 @@ True + False Use SSL @@ -102,7 +109,7 @@ True True - + 1 @@ -113,7 +120,7 @@ True True - + 1 @@ -124,9 +131,11 @@ + False True True False + False True @@ -143,6 +152,7 @@ True + False <b>Account information</b> True @@ -157,21 +167,22 @@ True + False 0 none True + False 12 True + False True True - automatic - automatic in @@ -180,13 +191,16 @@ labels_store False 0 + + + Label True - + 0 @@ -198,21 +212,25 @@ + True + True 0 True - vertical + False gtk-add + False True True True + False True - + False @@ -223,11 +241,13 @@ gtk-delete + False True True True + False True - + False @@ -249,12 +269,15 @@ True + False <b>Labels to check</b> True + True + True 1 diff -Nru cloudsn-0.8.14/data/preferences.ui cloudsn-0.10.2/data/preferences.ui --- cloudsn-0.8.14/data/preferences.ui 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/data/preferences.ui 2012-05-20 22:00:26.000000000 +0000 @@ -1,372 +1,99 @@ - + - - - - 60 - 1 - 10 - - - 60 - 60 - 1 - 10 - - - - - - - - - - - - - - + + + gtk-about + - - 550 - 400 + + False 5 - Preferences + New Account + True center True - dialog - False + normal + preferences_dialog - + True - 2 - - + False + 8 + + True - True + False + end - - True - 10 - - - True - 10 - - - True - 5 - - - True - 0.43000000715255737 - Check interval - - - - - - 0 - - - - - True - - - True - Minutes: - - - 0 - - - - - True - True - 60 - - adjustment_minutes - 1 - True - True - True - - - 1 - - - - - 1 - - - - - False - False - 0 - - - - - True - 5 - - - True - 0.43000000715255737 - Maximum notifications - - - - - - 0 - - - - - True - - - True - By account: - - - 0 - - - - - True - True - - adjustment_max_not - 1 - True - True - True - - - 1 - - - - - 1 - - - - - False - False - 5 - 1 - - - - - False - False - 0 - - - - - True - - - True - Indicate status with: - - - False - False - 0 - - - - - True - indicators_store - - - - 0 - - - - - False - False - 1 - - - - - False - False - 1 - - - - - True - - - True - Password manager: - - - False - False - 0 - - - - - True - keyring_store - - - - 0 - - - - - False - False - 1 - - - - - False - False - 2 - - - - - Run application on startup - True - True - False - True - - - False - False - 3 - - - - - Play sound on notifications - True - True - False - True - - - False - False - 4 - - - - - - + + gtk-cancel + False True - General + True + True + False + True - False + False + False + 0 - - - - - - - - 1 - - - - - True - end - - - gtk-close + + gtk-ok + False True True True + False True False False - 0 + 1 False + True end 0 - - - - close_button - - - - 5 - New Account - True - center - True - normal - preferences_dialog - False - - - True - 8 True + False 8 10 True + False 0 <b>New Account</b> True + True + True 0 True + False 2 2 True + False 1 Provider: @@ -374,6 +101,7 @@ True + False 1 Account name: @@ -385,8 +113,9 @@ True + False providers_store - + @@ -409,7 +138,7 @@ True True - + 1 @@ -421,12 +150,14 @@ False + True 1 False + True 1 @@ -438,6 +169,7 @@ True + False 8 @@ -447,6 +179,7 @@ True + False Account data @@ -456,9 +189,11 @@ True + False True + False 8 2 2 @@ -466,6 +201,7 @@ True + False Command: @@ -477,7 +213,7 @@ True True - + 1 @@ -489,6 +225,7 @@ True + False Execute command when the account is opened @@ -498,6 +235,7 @@ False + True 0 @@ -509,6 +247,7 @@ True + False Advanced @@ -518,46 +257,9 @@ - 2 - - - - - True - end - - - gtk-cancel - True - True - True - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - - - False - False - 1 - - - - False - end - 0 + True + 2 @@ -567,56 +269,104 @@ button1 + + + + + + + + + + + + + + 100 1 10 - + + 60 + 1 + 10 + + + 60 + 60 + 1 + 10 + + + gtk-close + + + + gtk-edit + + + - - - + - - - + - - - - + + gtk-new + + + + gtk-preferences + + + + gtk-quit + + + + gtk-refresh + + + False center 530 300 True + False True + False + False True + False _File True True + False gtk-close - True close_action + True + False True True @@ -624,13 +374,15 @@ True + False gtk-quit - True quit_action + True + False True True @@ -641,17 +393,21 @@ + False True + False _Edit True True + False gtk-preferences - True preferences_action + True + False True True @@ -662,17 +418,21 @@ + False True + False _Help True True + False gtk-about - True about_action + True + False True True @@ -684,19 +444,23 @@ False + True 0 True + False + False True - True + False + False Stop/Play True - + False @@ -705,10 +469,11 @@ + update_all_action True + False Update all accounts update_all_action - True Update True @@ -720,6 +485,7 @@ True + False False @@ -728,10 +494,11 @@ + preferences_action True + False Show preferences preferences_action - True toolbutton3 True @@ -742,7 +509,9 @@ + quit_action True + False quit_action toolbutton1 True @@ -756,18 +525,18 @@ False + True 1 True + False True True - automatic - automatic True @@ -777,13 +546,16 @@ False False 1 - + + + + Active - + 3 @@ -814,47 +586,356 @@ - - Unread + + Unread + + + + 4 + + + + + + + Last Update + + + + 2 + + + + + + + + + True + True + 0 + + + + + True + False + + + gtk-add + new_action + True + True + True + Add a new account + new_action + True + + + False + False + 0 + + + + + gtk-edit + edit_action + True + True + True + Edit the selected account + edit_action + True + + + False + False + 1 + + + + + gtk-delete + False + True + True + True + Delete the selected account + False + True + + + + False + False + 2 + + + + + gtk-refresh + False + True + True + True + Update the selected account + False + True + + + + False + False + end + 3 + + + + + gtk-clear + False + True + False + True + True + Mark all messages as read + False + True + + + + False + False + end + 4 + + + + + False + True + 1 + + + + + True + True + 2 + + + + + True + False + 2 + + + False + True + 3 + + + + + + + 550 + 400 + False + 5 + Preferences + center + True + dialog + + + True + False + 2 + + + True + False + end + + + gtk-close + False + True + True + True + False + True + + + False + False + 0 + + + + + False + True + end + 0 + + + + + True + True + + + True + False + 10 + + + True + False + 10 + + + True + False + 5 + + + True + False + 0.43000000715255737 + Check interval + + + + + + True + True + 0 + + + + + True + False + + + True + False + Minutes: + + + True + True + 0 + + + + + True + True + 60 + + adjustment_minutes + 1 + True + True + True + + + True + True + 1 + + + + + True + True + 1 + + + + + False + False + 0 + + + + + True + False + 5 - - - 4 - + + True + False + 0.43000000715255737 + Maximum notifications + + + + + + True + True + 0 + - - - - - Last Update - - - 2 - + + True + False + + + True + False + By account: + + + True + True + 0 + + + + + True + True + + adjustment_max_not + 1 + True + True + True + + + True + True + 1 + + + + + True + True + 1 + + + False + False + 5 + 1 + - - - - 0 - - - - - True - - - gtk-add - True - True - True - Add a new account - new_action - True - False False @@ -862,14 +943,39 @@ - - gtk-edit + True - True - True - Edit the selected account - edit_action - True + False + + + True + False + Indicate status with: + + + False + False + 0 + + + + + True + False + indicators_store + + + + 0 + + + + + False + False + 1 + + False @@ -878,14 +984,39 @@ - - gtk-delete + True - True - True - Delete the selected account - True - + False + + + True + False + Password manager: + + + False + False + 0 + + + + + True + False + keyring_store + + + + 0 + + + + + False + False + 1 + + False @@ -894,90 +1025,74 @@ - - gtk-clear + + Run application on startup + False True - False True - True - Mark all messages as read - True - + False + False + True False False - end - 4 + 3 - - gtk-refresh + + Play sound on notifications + False True True - True - Update the selected account - True - + False + False + True False False - end - 3 + 4 + + + + True + False + General + - False - 1 + False - - - 2 - - - - - True - 2 + + + + + + False - 3 + True + 1 + + close_button + - - gtk-preferences - - - - gtk-about - - - - gtk-quit - - - - gtk-new - - - - gtk-edit - - - - gtk-refresh - - - - gtk-close - + + + + + + + diff -Nru cloudsn-0.8.14/data/twitter-account.ui cloudsn-0.10.2/data/twitter-account.ui --- cloudsn-0.8.14/data/twitter-account.ui 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/data/twitter-account.ui 2012-05-20 22:00:26.000000000 +0000 @@ -1,24 +1,27 @@ - + - - + True + False 2 2 True + False Set permissions on Twitter: Go to Twitter + False True True True True + False none http://glade.gnome.org @@ -30,6 +33,7 @@ True + False Set the Twitter PIN: @@ -41,7 +45,7 @@ True True - + 1 diff -Nru cloudsn-0.8.14/debian/changelog cloudsn-0.10.2/debian/changelog --- cloudsn-0.8.14/debian/changelog 2012-05-06 12:40:29.000000000 +0000 +++ cloudsn-0.10.2/debian/changelog 2012-05-22 21:34:25.000000000 +0000 @@ -1,3 +1,23 @@ +cloudsn (0.10.2) precise; urgency=low + + * Migrated to gtk3 and gobject introspection + * Using gsettings instead of gconf + * Better gnome shell support + * Indicator selection is smart looking the current desktop + + + -- Jesús Barbero Rodríguez Wed, 22 may 2012 23:30:00 +0200 + +cloudsn (0.10.0) precise; urgency=low + + * Migrated to gtk3 and gobject introspection + * Using gsettings instead of gconf + * Better gnome shell support + * Indicator selection is smart looking the current desktop + + + -- Jesús Barbero Rodríguez Wed, 20 may 2012 00:05:00 +0200 + cloudsn (0.8.14) precise; urgency=low * Precise package @@ -5,6 +25,15 @@ -- Jesús Barbero Rodríguez Mon, 06 may 2012 14:30:00 +0200 +cloudsn (0.8.12) oneiric; urgency=low + + * Oneiric package + * Fixed bugs with new gnome changes + * Fixed authentication bug with Google Reader + + + -- Jesús Barbero Rodríguez Wed, 19 oct 2011 23:32:00 +0200 + cloudsn (0.8.8) natty; urgency=low * Natty package @@ -13,7 +42,6 @@ -- Jesús Barbero Rodríguez Mon, 27 jun 2011 10:15:35 +0200 - cloudsn (0.8.6) maverick; urgency=low * Reimplemented pop3 provider. Now it is fast! diff -Nru cloudsn-0.8.14/debian/cloudsnpackaging.txt cloudsn-0.10.2/debian/cloudsnpackaging.txt --- cloudsn-0.8.14/debian/cloudsnpackaging.txt 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/debian/cloudsnpackaging.txt 2012-05-20 22:00:26.000000000 +0000 @@ -0,0 +1,18 @@ +#Modificar versión +vi src/cloudsn/const.py + +#commit cerrando versión + +#tag de la nueva versión + +#Modificar changelog +vi debian/changelog + +#Construir binario +debuild + +#Construir para subir +debuild -S + +#Subir paquete al PPA +dput cloudsn-ppa ../cloudsn_0.5.8_source.changes diff -Nru cloudsn-0.8.14/debian/control cloudsn-0.10.2/debian/control --- cloudsn-0.8.14/debian/control 2012-05-06 12:42:35.000000000 +0000 +++ cloudsn-0.10.2/debian/control 2012-05-20 22:03:15.000000000 +0000 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Jesús Barbero Rodríguez Build-Depends: debhelper (>=7.0.0), python-support (>= 0.6), cdbs (>= 0.4.49), - python, python-gtk2, python-gconf, python-notify, + python, python-gtk2, python-notify, python-xdg, python-dbus, python-indicate XS-Python-Version: >=2.5 Standards-Version: 3.9.0 @@ -13,7 +13,7 @@ Homepage: http://github.com/chuchiperriman XB-Python-Version: ${python:Versions} Depends: ${misc:Depends}, ${python:Depends}, - python-gtk2, python-gconf, python-notify, python-xdg, + python-gtk2, python-notify, python-xdg, python-dbus, python-indicate Description: Check for notifications on network services like gmail, google reader, pop3 etc. It uses indicator applet to show unread items and libnotify diff -Nru cloudsn-0.8.14/debian/pycompat cloudsn-0.10.2/debian/pycompat --- cloudsn-0.8.14/debian/pycompat 2010-04-19 22:53:25.000000000 +0000 +++ cloudsn-0.10.2/debian/pycompat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2 diff -Nru cloudsn-0.8.14/doc/cloudsnpackaging.txt cloudsn-0.10.2/doc/cloudsnpackaging.txt --- cloudsn-0.8.14/doc/cloudsnpackaging.txt 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/doc/cloudsnpackaging.txt 2012-05-20 22:00:26.000000000 +0000 @@ -0,0 +1,18 @@ +#Modificar versión +vi src/cloudsn/const.py + +#commit cerrando versión + +#tag de la nueva versión + +#Modificar changelog +vi debian/changelog + +#Construir binario +debuild + +#Construir para subir +debuild -S + +#Subir paquete al PPA +dput cloudsn-ppa ../cloudsn_x.y.z_source.changes diff -Nru cloudsn-0.8.14/.git/COMMIT_EDITMSG cloudsn-0.10.2/.git/COMMIT_EDITMSG --- cloudsn-0.8.14/.git/COMMIT_EDITMSG 2012-05-06 12:38:26.000000000 +0000 +++ cloudsn-0.10.2/.git/COMMIT_EDITMSG 2012-05-20 22:07:41.000000000 +0000 @@ -1,15 +1,6 @@ -Closed 0.8.14 version + # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master -# Changes to be committed: -# (use "git reset HEAD ..." to unstage) +# Your branch is ahead of 'origin/master' by 13 commits. # -# modified: src/cloudsn/const.py -# -# Untracked files: -# (use "git add ..." to include in what will be committed) -# -# debian/pycompat -# src/cloudsn/cloudsn.py~ -# src/cloudsn/core/notification.py~ diff -Nru cloudsn-0.8.14/.git/config cloudsn-0.10.2/.git/config --- cloudsn-0.8.14/.git/config 2010-12-25 16:41:28.000000000 +0000 +++ cloudsn-0.10.2/.git/config 2012-05-13 21:06:18.000000000 +0000 @@ -15,3 +15,6 @@ [branch "tweepy"] remote = origin merge = refs/heads/tweepy +[branch "gtk3"] + remote = origin + merge = refs/heads/gtk3 diff -Nru cloudsn-0.8.14/.git/FETCH_HEAD cloudsn-0.10.2/.git/FETCH_HEAD --- cloudsn-0.8.14/.git/FETCH_HEAD 2012-04-08 15:40:04.000000000 +0000 +++ cloudsn-0.10.2/.git/FETCH_HEAD 2012-05-13 21:06:29.000000000 +0000 @@ -1,3 +1,4 @@ -c4896056f6a63380e8aed48bd018e3c747b9d720 branch 'master' of github.com:chuchiperriman/cloud-services-notifications +48842dbf07214213e4d26f35edfc0a9a16b8b5fd branch 'gtk3' of github.com:chuchiperriman/cloud-services-notifications c815a1734d850a4e981ce88e5986abaa2b520315 not-for-merge branch 'gh-pages' of github.com:chuchiperriman/cloud-services-notifications +a2ed76df68c01c4f435ada807de357192fa26800 not-for-merge branch 'master' of github.com:chuchiperriman/cloud-services-notifications af800b10f85bf78a0d3e89e00452b174f1bf4a5b not-for-merge branch 'tweepy' of github.com:chuchiperriman/cloud-services-notifications Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/index and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/index differ diff -Nru cloudsn-0.8.14/.git/logs/HEAD cloudsn-0.10.2/.git/logs/HEAD --- cloudsn-0.8.14/.git/logs/HEAD 2012-05-06 12:38:27.000000000 +0000 +++ cloudsn-0.10.2/.git/logs/HEAD 2012-05-20 22:06:10.000000000 +0000 @@ -139,3 +139,19 @@ 12643705706e59f145e3c3bf37e5ca3362654f36 7ecf0542005805408cb3c7218233e2c253f13a12 Jesús Barbero Rodríguez 1333899743 +0200 checkout: moving from master to gtk3 7ecf0542005805408cb3c7218233e2c253f13a12 12643705706e59f145e3c3bf37e5ca3362654f36 Jesús Barbero Rodríguez 1336306145 +0200 checkout: moving from gtk3 to master 12643705706e59f145e3c3bf37e5ca3362654f36 be072432c53f321fc35403bbcd9883180493f4e6 Jesús Barbero Rodríguez 1336307890 +0200 commit: Closed 0.8.14 version +be072432c53f321fc35403bbcd9883180493f4e6 c191f324bde3968db2bda61a4e5eb5fc478dc0b0 Jesús Barbero Rodríguez 1336308704 +0200 commit: Dependency of python-indicate. Precise package +c191f324bde3968db2bda61a4e5eb5fc478dc0b0 a2ed76df68c01c4f435ada807de357192fa26800 Jesús Barbero Rodríguez 1336308758 +0200 commit: Open 0.8.15 development version +a2ed76df68c01c4f435ada807de357192fa26800 7ecf0542005805408cb3c7218233e2c253f13a12 Jesús Barbero Rodríguez 1336312860 +0200 checkout: moving from master to gtk3 +7ecf0542005805408cb3c7218233e2c253f13a12 52a05aefcdd63575647ef0a13459dc441e419383 Jesús Barbero Rodríguez 1336319173 +0200 commit: pynotify migrated and GdkPixbuf +52a05aefcdd63575647ef0a13459dc441e419383 16b2e228e1de1db659c0adb9fc5e8916760c90c1 Jesús Barbero Rodríguez 1336517714 +0200 commit: All working but the sound is disabled. There is a warnning to fix +16b2e228e1de1db659c0adb9fc5e8916760c90c1 ee01bad0ce07bb138fc4cae02b2a90621eb3629d Jesús Barbero Rodríguez 1336647258 +0200 commit: Fixed bugs migrating to gtk-3/gir +ee01bad0ce07bb138fc4cae02b2a90621eb3629d 48842dbf07214213e4d26f35edfc0a9a16b8b5fd Jesús Barbero Rodríguez 1336943189 +0200 checkout: moving from gtk3 to 48842dbf07214213e4d26f35edfc0a9a16b8b5fd^0 +48842dbf07214213e4d26f35edfc0a9a16b8b5fd 48842dbf07214213e4d26f35edfc0a9a16b8b5fd Jesús Barbero Rodríguez 1336943189 +0200 rebase finished: returning to refs/heads/gtk3 +48842dbf07214213e4d26f35edfc0a9a16b8b5fd 7b70b1beb1b51c40dc1d384ddc84a4b05e2047bf Jesús Barbero Rodríguez 1336944080 +0200 commit: Only load indicator applet if the desktop is ubuntu +7b70b1beb1b51c40dc1d384ddc84a4b05e2047bf ff3e8d2f518c0ecd494201db0f52ef2add3cf0f0 Jesús Barbero Rodríguez 1336945198 +0200 commit: Fixed bug in the main menu (status icon) +ff3e8d2f518c0ecd494201db0f52ef2add3cf0f0 869a2774901fecfbed079173e7b8b97a679f5f9b Jesús Barbero Rodríguez 1336945500 +0200 commit: Fixed preferences menu (status icon) +869a2774901fecfbed079173e7b8b97a679f5f9b e4eabf5311f8de96018be0f8afaba023a973ddd1 Jesús Barbero Rodríguez 1336951316 +0200 commit: Use gi with gnome-keyring. A lot of fixs with dialogs +e4eabf5311f8de96018be0f8afaba023a973ddd1 ee80e6e346b7d0d3cde4bbcace2f04d284a8030a Jesús Barbero Rodríguez 1337520640 +0200 commit: 0.10.0 and packaging +ee80e6e346b7d0d3cde4bbcace2f04d284a8030a bc9c7fc1960dfeb07e454ef5569c1268c2a53b93 Jesús Barbero Rodríguez 1337520659 +0200 commit: Development version +bc9c7fc1960dfeb07e454ef5569c1268c2a53b93 a2ed76df68c01c4f435ada807de357192fa26800 Jesús Barbero Rodríguez 1337550460 +0200 checkout: moving from gtk3 to master +a2ed76df68c01c4f435ada807de357192fa26800 90c2973c349961a901fc265722e22eb36b331da9 Jesús Barbero Rodríguez 1337551554 +0200 commit (merge): Merge branch 'gtk3' diff -Nru cloudsn-0.8.14/.git/logs/refs/heads/gtk3 cloudsn-0.10.2/.git/logs/refs/heads/gtk3 --- cloudsn-0.8.14/.git/logs/refs/heads/gtk3 2012-04-08 15:37:18.000000000 +0000 +++ cloudsn-0.10.2/.git/logs/refs/heads/gtk3 2012-05-20 13:31:06.000000000 +0000 @@ -1,3 +1,13 @@ 0000000000000000000000000000000000000000 24e4f21ece354937c544d8f55ddd37f4845316c1 Jesús Barbero Rodríguez 1333898787 +0200 branch: Created from master 24e4f21ece354937c544d8f55ddd37f4845316c1 6fc01b6ad0f51e1ba42038a4810749aa285fa878 Jesús Barbero Rodríguez 1333898804 +0200 commit: Starting the port to gtk+ 3 6fc01b6ad0f51e1ba42038a4810749aa285fa878 7ecf0542005805408cb3c7218233e2c253f13a12 Jesús Barbero Rodríguez 1333899437 +0200 commit (merge): Merge branch 'master' of github.com:chuchiperriman/cloud-services-notifications into gtk3 +7ecf0542005805408cb3c7218233e2c253f13a12 52a05aefcdd63575647ef0a13459dc441e419383 Jesús Barbero Rodríguez 1336319173 +0200 commit: pynotify migrated and GdkPixbuf +52a05aefcdd63575647ef0a13459dc441e419383 16b2e228e1de1db659c0adb9fc5e8916760c90c1 Jesús Barbero Rodríguez 1336517714 +0200 commit: All working but the sound is disabled. There is a warnning to fix +16b2e228e1de1db659c0adb9fc5e8916760c90c1 ee01bad0ce07bb138fc4cae02b2a90621eb3629d Jesús Barbero Rodríguez 1336647258 +0200 commit: Fixed bugs migrating to gtk-3/gir +ee01bad0ce07bb138fc4cae02b2a90621eb3629d 48842dbf07214213e4d26f35edfc0a9a16b8b5fd Jesús Barbero Rodríguez 1336943189 +0200 rebase finished: refs/heads/gtk3 onto 48842dbf07214213e4d26f35edfc0a9a16b8b5fd +48842dbf07214213e4d26f35edfc0a9a16b8b5fd 7b70b1beb1b51c40dc1d384ddc84a4b05e2047bf Jesús Barbero Rodríguez 1336944080 +0200 commit: Only load indicator applet if the desktop is ubuntu +7b70b1beb1b51c40dc1d384ddc84a4b05e2047bf ff3e8d2f518c0ecd494201db0f52ef2add3cf0f0 Jesús Barbero Rodríguez 1336945198 +0200 commit: Fixed bug in the main menu (status icon) +ff3e8d2f518c0ecd494201db0f52ef2add3cf0f0 869a2774901fecfbed079173e7b8b97a679f5f9b Jesús Barbero Rodríguez 1336945500 +0200 commit: Fixed preferences menu (status icon) +869a2774901fecfbed079173e7b8b97a679f5f9b e4eabf5311f8de96018be0f8afaba023a973ddd1 Jesús Barbero Rodríguez 1336951316 +0200 commit: Use gi with gnome-keyring. A lot of fixs with dialogs +e4eabf5311f8de96018be0f8afaba023a973ddd1 ee80e6e346b7d0d3cde4bbcace2f04d284a8030a Jesús Barbero Rodríguez 1337520640 +0200 commit: 0.10.0 and packaging +ee80e6e346b7d0d3cde4bbcace2f04d284a8030a bc9c7fc1960dfeb07e454ef5569c1268c2a53b93 Jesús Barbero Rodríguez 1337520659 +0200 commit: Development version diff -Nru cloudsn-0.8.14/.git/logs/refs/heads/master cloudsn-0.10.2/.git/logs/refs/heads/master --- cloudsn-0.8.14/.git/logs/refs/heads/master 2012-05-06 12:38:27.000000000 +0000 +++ cloudsn-0.10.2/.git/logs/refs/heads/master 2012-05-20 22:06:10.000000000 +0000 @@ -96,3 +96,6 @@ c58178d4e94860c2b2d65b37a5ae3d22ec517ca9 24e4f21ece354937c544d8f55ddd37f4845316c1 Jesús Barbero Rodríguez 1319059756 +0200 commit: Closed version 0.8.12 24e4f21ece354937c544d8f55ddd37f4845316c1 12643705706e59f145e3c3bf37e5ca3362654f36 Jesús Barbero Rodríguez 1333899637 +0200 commit (merge): Merge branch 'master' of github.com:chuchiperriman/cloud-services-notifications 12643705706e59f145e3c3bf37e5ca3362654f36 be072432c53f321fc35403bbcd9883180493f4e6 Jesús Barbero Rodríguez 1336307890 +0200 commit: Closed 0.8.14 version +be072432c53f321fc35403bbcd9883180493f4e6 c191f324bde3968db2bda61a4e5eb5fc478dc0b0 Jesús Barbero Rodríguez 1336308704 +0200 commit: Dependency of python-indicate. Precise package +c191f324bde3968db2bda61a4e5eb5fc478dc0b0 a2ed76df68c01c4f435ada807de357192fa26800 Jesús Barbero Rodríguez 1336308758 +0200 commit: Open 0.8.15 development version +a2ed76df68c01c4f435ada807de357192fa26800 90c2973c349961a901fc265722e22eb36b331da9 Jesús Barbero Rodríguez 1337551554 +0200 commit (merge): Merge branch 'gtk3' diff -Nru cloudsn-0.8.14/.git/logs/refs/remotes/origin/gtk3 cloudsn-0.10.2/.git/logs/refs/remotes/origin/gtk3 --- cloudsn-0.8.14/.git/logs/refs/remotes/origin/gtk3 2012-04-08 15:42:30.000000000 +0000 +++ cloudsn-0.10.2/.git/logs/refs/remotes/origin/gtk3 2012-05-20 13:31:32.000000000 +0000 @@ -1 +1,7 @@ 0000000000000000000000000000000000000000 7ecf0542005805408cb3c7218233e2c253f13a12 Jesús Barbero Rodríguez 1333899750 +0200 update by push +7ecf0542005805408cb3c7218233e2c253f13a12 52a05aefcdd63575647ef0a13459dc441e419383 Jesús Barbero Rodríguez 1336319206 +0200 update by push +52a05aefcdd63575647ef0a13459dc441e419383 16b2e228e1de1db659c0adb9fc5e8916760c90c1 Jesús Barbero Rodríguez 1336517763 +0200 update by push +16b2e228e1de1db659c0adb9fc5e8916760c90c1 ee01bad0ce07bb138fc4cae02b2a90621eb3629d Jesús Barbero Rodríguez 1336647288 +0200 update by push +ee01bad0ce07bb138fc4cae02b2a90621eb3629d 48842dbf07214213e4d26f35edfc0a9a16b8b5fd Jesús Barbero Rodríguez 1336942825 +0200 pull --rebase: fast-forward +48842dbf07214213e4d26f35edfc0a9a16b8b5fd e4eabf5311f8de96018be0f8afaba023a973ddd1 Jesús Barbero Rodríguez 1336951345 +0200 update by push +e4eabf5311f8de96018be0f8afaba023a973ddd1 bc9c7fc1960dfeb07e454ef5569c1268c2a53b93 Jesús Barbero Rodríguez 1337520692 +0200 update by push diff -Nru cloudsn-0.8.14/.git/logs/refs/remotes/origin/master cloudsn-0.10.2/.git/logs/refs/remotes/origin/master --- cloudsn-0.8.14/.git/logs/refs/remotes/origin/master 2012-04-08 15:41:12.000000000 +0000 +++ cloudsn-0.10.2/.git/logs/refs/remotes/origin/master 2012-05-06 12:53:01.000000000 +0000 @@ -75,3 +75,4 @@ b0c5f074fee9521e85100f5944bf8d14da357dea c58178d4e94860c2b2d65b37a5ae3d22ec517ca9 Jesús Barbero Rodríguez 1319059486 +0200 update by push c58178d4e94860c2b2d65b37a5ae3d22ec517ca9 c4896056f6a63380e8aed48bd018e3c747b9d720 Jesús Barbero Rodríguez 1333898864 +0200 pull --rebase: fast-forward c4896056f6a63380e8aed48bd018e3c747b9d720 12643705706e59f145e3c3bf37e5ca3362654f36 Jesús Barbero Rodríguez 1333899672 +0200 update by push +12643705706e59f145e3c3bf37e5ca3362654f36 a2ed76df68c01c4f435ada807de357192fa26800 Jesús Barbero Rodríguez 1336308781 +0200 update by push Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/01/c7a6a530e16b5d4a0575101eee7d664bb386a2 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/01/c7a6a530e16b5d4a0575101eee7d664bb386a2 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/08/05dda39a4dddf023ded5c8f7f2c58874589ea6 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/08/05dda39a4dddf023ded5c8f7f2c58874589ea6 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/0b/3c805099dbd0028c46557fa18b70807ee66c4a and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/0b/3c805099dbd0028c46557fa18b70807ee66c4a differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/0c/39b29c920a88b4c6273f1bc7edceb5db17aeed and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/0c/39b29c920a88b4c6273f1bc7edceb5db17aeed differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/0c/fbf08886fca9a91cb753ec8734c84fcbe52c9f and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/0c/fbf08886fca9a91cb753ec8734c84fcbe52c9f differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/0d/424f96952c31d347b4b745bf4346fda1bba5a8 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/0d/424f96952c31d347b4b745bf4346fda1bba5a8 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/0e/1a9bb2ef7ad79dc0968f33faf35d66681983ac and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/0e/1a9bb2ef7ad79dc0968f33faf35d66681983ac differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/0f/3bc7ff91bcc2c3de17887fa047180359d140d8 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/0f/3bc7ff91bcc2c3de17887fa047180359d140d8 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/11/4dd5d2243f86647e0b30fa76c627a02a9d0110 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/11/4dd5d2243f86647e0b30fa76c627a02a9d0110 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/12/6ec1ab4d6b77a038cefabee3f2925ce2ae6a89 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/12/6ec1ab4d6b77a038cefabee3f2925ce2ae6a89 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/13/cd73dbe19232afca78ac39ff81b1acf873a384 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/13/cd73dbe19232afca78ac39ff81b1acf873a384 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/13/fc089490af56d8b49e4afa625b44e01de5b081 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/13/fc089490af56d8b49e4afa625b44e01de5b081 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/14/b93ef2ab2455a16dbde82327e01c5ed0c38faf and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/14/b93ef2ab2455a16dbde82327e01c5ed0c38faf differ diff -Nru cloudsn-0.8.14/.git/objects/16/b2e228e1de1db659c0adb9fc5e8916760c90c1 cloudsn-0.10.2/.git/objects/16/b2e228e1de1db659c0adb9fc5e8916760c90c1 --- cloudsn-0.8.14/.git/objects/16/b2e228e1de1db659c0adb9fc5e8916760c90c1 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/.git/objects/16/b2e228e1de1db659c0adb9fc5e8916760c90c1 2012-05-08 22:55:52.000000000 +0000 @@ -0,0 +1,2 @@ +x1j0ES˒<2Lr42ِ;ib!Ճ}YTA+P8hCy;x +\H8W8zm9C(6jN7׹vdd)Q~ϻӅEJeZ)-'_gPZV!*m׶aוky]9KDzm' 9g<4!+$baru}IKae2TXoЫoM@! WZg}LUKdC> \ No newline at end of file Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/8a/71294215dc0439eafd45cfaf1a97d56d15897e and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/8a/71294215dc0439eafd45cfaf1a97d56d15897e differ diff -Nru cloudsn-0.8.14/.git/objects/90/c2973c349961a901fc265722e22eb36b331da9 cloudsn-0.10.2/.git/objects/90/c2973c349961a901fc265722e22eb36b331da9 --- cloudsn-0.8.14/.git/objects/90/c2973c349961a901fc265722e22eb36b331da9 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/.git/objects/90/c2973c349961a901fc265722e22eb36b331da9 2012-05-20 22:06:10.000000000 +0000 @@ -0,0 +1,3 @@ +x;N0Eiǫp7Ҍ?ۗޘ!ERsV!GyFIx@jRh"i1-;.=H2H{kwޞ?\n>kl_py9Z. +@2f4ҟRc=;O|D~ރۖ"~a( \ No newline at end of file Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/a5/f579f98ad285e428536a39d34d64a7a495db04 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/a5/f579f98ad285e428536a39d34d64a7a495db04 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/a7/052d19733f80f00957064a6e6189f377cd8629 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/a7/052d19733f80f00957064a6e6189f377cd8629 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/a7/60957fd104c74bf8f0741541836589aaa7ef68 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/a7/60957fd104c74bf8f0741541836589aaa7ef68 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/aa/4577f150f51d980dab73536c3adf6b15247fb7 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/aa/4577f150f51d980dab73536c3adf6b15247fb7 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/ab/f4ab74e12fdd29a516c978dab5b21bd8988a84 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/ab/f4ab74e12fdd29a516c978dab5b21bd8988a84 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/b0/8f6975b15dd2b0b5759ca724041454ddd0777d and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/b0/8f6975b15dd2b0b5759ca724041454ddd0777d differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/b0/fdf821ddc2ca749b612042d4a19e9fbb2319f1 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/b0/fdf821ddc2ca749b612042d4a19e9fbb2319f1 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/b2/02f1f385b35c6395875c2cda0dc148d2c32f9a and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/b2/02f1f385b35c6395875c2cda0dc148d2c32f9a differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/ba/7079581ef8340bcdeef38ab8a5d5dde0862ef6 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/ba/7079581ef8340bcdeef38ab8a5d5dde0862ef6 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/bb/31dfe94e1d1b39f2fc80a0c032a65f1ed8036f and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/bb/31dfe94e1d1b39f2fc80a0c032a65f1ed8036f differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/bb/581c35d24d79d5df0aaaa36c77dca552619ea5 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/bb/581c35d24d79d5df0aaaa36c77dca552619ea5 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/bc/9c7fc1960dfeb07e454ef5569c1268c2a53b93 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/bc/9c7fc1960dfeb07e454ef5569c1268c2a53b93 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c0/4014a902ad5cb8cd94d2b0a8688371e64aba6f and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c0/4014a902ad5cb8cd94d2b0a8688371e64aba6f differ diff -Nru cloudsn-0.8.14/.git/objects/c1/91f324bde3968db2bda61a4e5eb5fc478dc0b0 cloudsn-0.10.2/.git/objects/c1/91f324bde3968db2bda61a4e5eb5fc478dc0b0 --- cloudsn-0.8.14/.git/objects/c1/91f324bde3968db2bda61a4e5eb5fc478dc0b0 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/.git/objects/c1/91f324bde3968db2bda61a4e5eb5fc478dc0b0 2012-05-06 12:52:07.000000000 +0000 @@ -0,0 +1 @@ +x1N0@QbzjXB!** 8 v8r'.@#㲮rU6 A jkCuA4)6IhxrHQ2thK&w_eox%mRkZ}~W.\'Ѣ{TYOuuI$JzZCSbU8O?K։e \ No newline at end of file Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c2/2f3983f5e241c47b145bc3f0e4086d3dbf444e and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c2/2f3983f5e241c47b145bc3f0e4086d3dbf444e differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c3/54da381d0a6e802b8595a603f15f17bf642541 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c3/54da381d0a6e802b8595a603f15f17bf642541 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c4/1470b5821040f9cffa830079dc154ac78cfe8f and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c4/1470b5821040f9cffa830079dc154ac78cfe8f differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c5/5838b075fc544012808b1630d0584d25fe2c0a and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c5/5838b075fc544012808b1630d0584d25fe2c0a differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c5/d273ed280cebf157e497ddee135f3d10a90128 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c5/d273ed280cebf157e497ddee135f3d10a90128 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c6/4ae6c130d0ceadbf2538561493651c24f2ca95 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c6/4ae6c130d0ceadbf2538561493651c24f2ca95 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c6/c82a3ed83d9306e520ba2ce997a17b4205c008 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c6/c82a3ed83d9306e520ba2ce997a17b4205c008 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/c6/d69b217db90c9ba7c19fab6685f628be61c20c and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/c6/d69b217db90c9ba7c19fab6685f628be61c20c differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/ca/bd4d54b7d7e092320f51e1b7af3567823af8e1 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/ca/bd4d54b7d7e092320f51e1b7af3567823af8e1 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/cb/e53ffdfb3be1a2d307c702c809b4152da6d88d and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/cb/e53ffdfb3be1a2d307c702c809b4152da6d88d differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/ce/e47597517c9b7bd96429ba27a57b4809203538 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/ce/e47597517c9b7bd96429ba27a57b4809203538 differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/d2/54f0b98c5c17416beb44ea02db690aadc6e56b and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/d2/54f0b98c5c17416beb44ea02db690aadc6e56b differ Binary files /tmp/DT9VE5sqkV/cloudsn-0.8.14/.git/objects/d7/e93fdb9e6075518804dbaf283fe33638a7f660 and /tmp/zE1DBhsB5c/cloudsn-0.10.2/.git/objects/d7/e93fdb9e6075518804dbaf283fe33638a7f660 differ diff -Nru cloudsn-0.8.14/.git/objects/d8/df00bc27aef4bc8fec88c89fd2836dd4d3dfab cloudsn-0.10.2/.git/objects/d8/df00bc27aef4bc8fec88c89fd2836dd4d3dfab --- cloudsn-0.8.14/.git/objects/d8/df00bc27aef4bc8fec88c89fd2836dd4d3dfab 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/.git/objects/d8/df00bc27aef4bc8fec88c89fd2836dd4d3dfab 2012-05-08 22:55:14.000000000 +0000 @@ -0,0 +1,6 @@ +xVM6Sa֦E@EI @K#XHjUI&{Auص8o ~n`b lƣ9H mgޚ=z\(̖ [/wVw;.Sr=Rs#0JeoDf5Z-F* jo`2`M#'arrs.*: +KdΕ6AE& QVMϴHn{4PF +i悛.5 }kx +?0(JGC0`vѱ 6cfR겈ϰXd׾$ n9;֨QQK>jvWSlM]ee1TmJΪ)Ɣ߶\=;ԋnvם-#Ǻ=fkۚG[r~AgzT-} )4 +mR4so|z sv=9`* JGZ-'@[ñ YJ M;YTݸ֎J̱,,?M4Ύ ܠU[# IpmNx.9u,$ wxHlF5Ea6Ɠt{!ʝ]RRH#ʜ&z[9 ϛ"#v!gG2ftpۀHs8kVeF:bvN(E$yI-]\ +M?et]޶[f Q.Z/mS_`Hp?.n6x{«k[g Ot :҅[Kٕ=@5?ضG+qE\f;_w/8;`2gw} c~ \ No newline at end of file diff -Nru cloudsn-0.8.14/.git/ORIG_HEAD cloudsn-0.10.2/.git/ORIG_HEAD --- cloudsn-0.8.14/.git/ORIG_HEAD 2012-04-08 15:40:05.000000000 +0000 +++ cloudsn-0.10.2/.git/ORIG_HEAD 2012-05-20 21:59:03.000000000 +0000 @@ -1 +1 @@ -24e4f21ece354937c544d8f55ddd37f4845316c1 +a2ed76df68c01c4f435ada807de357192fa26800 diff -Nru cloudsn-0.8.14/.git/refs/heads/gtk3 cloudsn-0.10.2/.git/refs/heads/gtk3 --- cloudsn-0.8.14/.git/refs/heads/gtk3 2012-04-08 15:37:18.000000000 +0000 +++ cloudsn-0.10.2/.git/refs/heads/gtk3 2012-05-20 13:31:06.000000000 +0000 @@ -1 +1 @@ -7ecf0542005805408cb3c7218233e2c253f13a12 +bc9c7fc1960dfeb07e454ef5569c1268c2a53b93 diff -Nru cloudsn-0.8.14/.git/refs/heads/master cloudsn-0.10.2/.git/refs/heads/master --- cloudsn-0.8.14/.git/refs/heads/master 2012-05-06 12:38:27.000000000 +0000 +++ cloudsn-0.10.2/.git/refs/heads/master 2012-05-20 22:06:10.000000000 +0000 @@ -1 +1 @@ -be072432c53f321fc35403bbcd9883180493f4e6 +90c2973c349961a901fc265722e22eb36b331da9 diff -Nru cloudsn-0.8.14/.git/refs/remotes/origin/gtk3 cloudsn-0.10.2/.git/refs/remotes/origin/gtk3 --- cloudsn-0.8.14/.git/refs/remotes/origin/gtk3 2012-04-08 15:42:30.000000000 +0000 +++ cloudsn-0.10.2/.git/refs/remotes/origin/gtk3 2012-05-20 13:31:32.000000000 +0000 @@ -1 +1 @@ -7ecf0542005805408cb3c7218233e2c253f13a12 +bc9c7fc1960dfeb07e454ef5569c1268c2a53b93 diff -Nru cloudsn-0.8.14/.git/refs/remotes/origin/master cloudsn-0.10.2/.git/refs/remotes/origin/master --- cloudsn-0.8.14/.git/refs/remotes/origin/master 2012-04-08 15:41:12.000000000 +0000 +++ cloudsn-0.10.2/.git/refs/remotes/origin/master 2012-05-06 12:53:01.000000000 +0000 @@ -1 +1 @@ -12643705706e59f145e3c3bf37e5ca3362654f36 +a2ed76df68c01c4f435ada807de357192fa26800 diff -Nru cloudsn-0.8.14/.git/refs/tags/0.10.0 cloudsn-0.10.2/.git/refs/tags/0.10.0 --- cloudsn-0.8.14/.git/refs/tags/0.10.0 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/.git/refs/tags/0.10.0 2012-05-20 13:26:00.000000000 +0000 @@ -0,0 +1 @@ +e4eabf5311f8de96018be0f8afaba023a973ddd1 diff -Nru cloudsn-0.8.14/.gitignore cloudsn-0.10.2/.gitignore --- cloudsn-0.8.14/.gitignore 2010-05-25 22:24:16.000000000 +0000 +++ cloudsn-0.10.2/.gitignore 2012-05-20 22:00:26.000000000 +0000 @@ -1 +1,2 @@ *.pyc +*~ diff -Nru cloudsn-0.8.14/setup.py cloudsn-0.10.2/setup.py --- cloudsn-0.8.14/setup.py 2010-12-27 19:05:20.000000000 +0000 +++ cloudsn-0.10.2/setup.py 2012-05-20 22:00:26.000000000 +0000 @@ -16,7 +16,7 @@ const = load_module("const", *find_module("const",["src/cloudsn"])) #check dependencies -DEPENDENCIES = ['gtk', 'pynotify', 'xdg', 'gconf', 'dbus'] +DEPENDENCIES = ['gtk', 'pynotify', 'xdg', 'dbus'] DEP_OPTIONALS = ['indicate'] diff -Nru cloudsn-0.8.14/src/cloudsn/cloudsn.py cloudsn-0.10.2/src/cloudsn/cloudsn.py --- cloudsn-0.8.14/src/cloudsn/cloudsn.py 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/cloudsn.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,21 +1,21 @@ #!/usr/bin/python -from .core.controller import Controller -from .core import config, utils, notification from . import logger +from core import config, utils, notification +from core.controller import Controller from os.path import join, abspath import gettext import locale from const import * def setup_locale_and_gettext(): - """Set up localization with gettext""" + #Set up localization with gettext localedir = join (config.get_base_data_prefix(),"locale") # Install _() builtin for gettext; always returning unicode objects # also install ngettext() gettext.install(APP_NAME, localedir=localedir, unicode=True, names=("ngettext",)) - # For gtk.Builder, we need to call the C library gettext functions + # For Gtk.Builder, we need to call the C library gettext functions # As well as set the codeset to avoid locale-dependent translation # of the message catalog locale.bindtextdomain(APP_NAME, localedir) @@ -27,14 +27,17 @@ pass def start (): + logger.info("1") try: setup_locale_and_gettext() except Exception, e: logger.exception("Error loading the internationalitation: %s", e) try: + logger.debug("aaaww") cr = Controller.get_instance() cr.start() + logger.debug("aaaasdas") except Exception, e: logger.exception("Error starting cloudsn: %s", e) #We not traduce this notification because the problem can be gettext @@ -43,6 +46,7 @@ utils.get_error_pixbuf()) if __name__ == "__main__": + logger.debug("0") start() diff -Nru cloudsn-0.8.14/src/cloudsn/const.py cloudsn-0.10.2/src/cloudsn/const.py --- cloudsn-0.8.14/src/cloudsn/const.py 2012-05-06 12:37:39.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/const.py 2012-05-22 21:31:56.000000000 +0000 @@ -1,6 +1,6 @@ #encoding: utf-8 APP_NAME="cloudsn" -APP_VERSION="0.8.14" +APP_VERSION="0.10.2" APP_LONG_NAME="Cloud Services Notifications" APP_COPYRIGHT="Copyright © 2009-2011 Jesús Barbero Rodríguez" APP_DESCRIPTION="Notify when new mail (POP3/IMAP/Gmail), feed items, tweets or items from other cloud services arrive." diff -Nru cloudsn-0.8.14/src/cloudsn/core/account.py cloudsn-0.10.2/src/cloudsn/core/account.py --- cloudsn-0.8.14/src/cloudsn/core/account.py 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/account.py 2012-05-20 22:00:26.000000000 +0000 @@ -2,7 +2,7 @@ from cloudsn.core import config, utils, keyring from cloudsn import logger from cloudsn.core.keyring import Credentials -import gobject +from gi.repository import GObject from datetime import datetime import gettext @@ -136,21 +136,21 @@ def get_new_unread_notifications(self): return self.new_unread -class AccountManager (gobject.GObject): +class AccountManager (GObject.Object): __default = None __gtype_name__ = "AccountManager" - __gsignals__ = { "account-added" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), - "account-deleted" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), - "account-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), - "account-active-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))} + __gsignals__ = { "account-added" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,)), + "account-deleted" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,)), + "account-changed" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,)), + "account-active-changed" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,))} def __init__(self): if AccountManager.__default: raise AccountManager.__default - gobject.GObject.__init__(self) + GObject.Object.__init__(self) from cloudsn.core.provider import ProviderManager self.accounts = {} self.sc = config.SettingsController.get_instance() diff -Nru cloudsn-0.8.14/src/cloudsn/core/config.py cloudsn-0.10.2/src/cloudsn/core/config.py --- cloudsn-0.8.14/src/cloudsn/core/config.py 2012-05-06 12:09:04.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/config.py 2012-05-20 22:00:26.000000000 +0000 @@ -7,8 +7,7 @@ import sys from os import mkdir from os.path import isdir, join, dirname, abspath -import gobject -import gtk +from gi.repository import GObject, Gtk, GdkPixbuf import gettext @@ -59,15 +58,15 @@ def add_apps_prefix(subpath): return join (get_apps_prefix(), subpath) -class SettingsController(gobject.GObject): +class SettingsController(GObject.Object): __default = None __gtype_name__ = "SettingsController" # Section, Key, Value - __gsignals__ = { "value-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, - (gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT))} + __gsignals__ = { "value-changed" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_BOOLEAN, + (GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_PYOBJECT))} CONFIG_HOME = bd.xdg_config_home + '/cloud-services-notifications' CONFIG_PREFERENCES = CONFIG_HOME + '/preferences' @@ -86,7 +85,7 @@ def __init__(self): if SettingsController.__default: raise SettingsController.__default - gobject.GObject.__init__(self) + GObject.Object.__init__(self) self.ensure_config() self.prefs = self.config_to_dict(self.config_prefs) self.accounts = self.config_to_dict(self.config_accs) @@ -191,7 +190,7 @@ def get_cloudsn_icon(): global __cloudsn_icon if not __cloudsn_icon: - __cloudsn_icon = gtk.gdk.pixbuf_new_from_file(add_data_prefix('cloudsn.png')) + __cloudsn_icon = GdkPixbuf.Pixbuf.new_from_file(add_data_prefix('cloudsn.png')) return __cloudsn_icon def get_startup_file_dir(): diff -Nru cloudsn-0.8.14/src/cloudsn/core/controller.py cloudsn-0.10.2/src/cloudsn/core/controller.py --- cloudsn-0.8.14/src/cloudsn/core/controller.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/controller.py 2012-05-20 22:00:26.000000000 +0000 @@ -2,21 +2,20 @@ from cloudsn.core.provider import Provider, ProviderManager from cloudsn.core import account, config, networkmanager, notification, utils, indicator from cloudsn import logger -from ..ui.authwarning import check_auth_configuration +from cloudsn.ui.authwarning import check_auth_configuration from time import time -import gtk -import gobject +from gi.repository import Gtk, GObject import gettext import thread -class Controller (gobject.GObject): +class Controller (GObject.Object): __default = None __gtype_name__ = "Controller" - __gsignals__ = { "account-checked" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), - "account-check-error" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))} + __gsignals__ = { "account-checked" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,)), + "account-check-error" : (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,))} timeout_id = -1 interval = 60 @@ -37,7 +36,7 @@ print message sys.exit(-1) - gobject.GObject.__init__(self) + GObject.Object.__init__(self) self.started = False self.config = config.SettingsController.get_instance() self.config.connect("value-changed", self._settings_changed) @@ -92,13 +91,13 @@ if self.timeout_id < 0: logger.debug("new source: "+str(self.timeout_id)) - self.timeout_id = gobject.timeout_add_seconds(self.interval, + self.timeout_id = GObject.timeout_add_seconds(self.interval, self.update_accounts, None) elif self.interval != old: logger.debug("removed source: "+str(self.timeout_id)) - gobject.source_remove(self.timeout_id) + GObject.source_remove(self.timeout_id) logger.debug("restart source: "+str(self.timeout_id)) - self.timeout_id = gobject.timeout_add_seconds(self.interval, + self.timeout_id = GObject.timeout_add_seconds(self.interval, self.update_accounts, None) def on_nm_state_changed (self): @@ -111,11 +110,11 @@ def set_active(self, active): if active and not self.get_active(): - self.timeout_id = gobject.timeout_add_seconds(self.interval, + self.timeout_id = GObject.timeout_add_seconds(self.interval, self.update_accounts, None) logger.debug("activated source: "+str(self.timeout_id)) elif not active and self.get_active(): - gobject.source_remove(self.timeout_id) + GObject.source_remove(self.timeout_id) logger.debug("deactivated source "+str(self.timeout_id)) self.timeout_id = -1 @@ -156,8 +155,8 @@ logger.debug('Updating account: ' + acc.get_name()) #Process events to show the main icon - while gtk.events_pending(): - gtk.main_iteration(False) + while Gtk.events_pending(): + Gtk.main_iteration(False) self.am.update_account(acc) @@ -168,8 +167,8 @@ #Process events to show the indicator menu - while gtk.events_pending(): - gtk.main_iteration(False) + while Gtk.events_pending(): + Gtk.main_iteration(False) if acc.get_provider().has_notifications() and \ acc.get_show_notifications(): @@ -216,8 +215,11 @@ def _start_idle(self): try: + logger.debug("aaa") check_auth_configuration() + logger.debug("aaab") self.nm.set_statechange_callback(self.on_nm_state_changed) + logger.debug("aaac") self.set_active (True) self.update_accounts() self.started = True @@ -233,10 +235,11 @@ return False def start(self): - gobject.threads_init() - gobject.idle_add(self._start_idle) + logger.debug("aaasss") + GObject.threads_init() + GObject.idle_add(self._start_idle) try: - gtk.main() + Gtk.main() except KeyboardInterrupt: logger.info ('KeyboardInterrupt the main loop') diff -Nru cloudsn-0.8.14/src/cloudsn/core/indicator.py cloudsn-0.10.2/src/cloudsn/core/indicator.py --- cloudsn-0.8.14/src/cloudsn/core/indicator.py 2011-10-16 12:20:59.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/indicator.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,3 +1,4 @@ +import os from cloudsn.core import config, utils, notification from cloudsn import logger @@ -55,7 +56,9 @@ _("The indicator named %s is configured but it cannot be found") % (indicator_conf), utils.get_error_pixbuf()) if not self.indicator: - if indiapplet: + if "DESKTOP_SESSION" in os.environ\ + and os.environ["DESKTOP_SESSION"] == 'ubuntu'\ + and indiapplet: self.indicator = indiapplet else: self.indicator = statusindi diff -Nru cloudsn-0.8.14/src/cloudsn/core/keyring.py cloudsn-0.10.2/src/cloudsn/core/keyring.py --- cloudsn-0.8.14/src/cloudsn/core/keyring.py 2011-10-16 12:20:59.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/keyring.py 2012-05-20 22:00:26.000000000 +0000 @@ -43,11 +43,13 @@ self.config = config.SettingsController.get_instance() from keyrings.plainkeyring import PlainKeyring self.__add_manager (PlainKeyring()) + try: from keyrings.base64keyring import Base64Keyring self.__add_manager (Base64Keyring()) except Exception, e: logger.exception("Cannot load base64 keyring: %s", e) + try: from keyrings.gkeyring import GnomeKeyring self.__add_manager (GnomeKeyring()) diff -Nru cloudsn-0.8.14/src/cloudsn/core/keyrings/base64keyring.py cloudsn-0.10.2/src/cloudsn/core/keyrings/base64keyring.py --- cloudsn-0.8.14/src/cloudsn/core/keyrings/base64keyring.py 2010-07-28 23:53:55.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/keyrings/base64keyring.py 2012-05-20 22:00:26.000000000 +0000 @@ -2,7 +2,7 @@ import base64 import gettext from cloudsn import logger -from ..keyring import Keyring, KeyringException, Credentials +from cloudsn.core.keyring import Keyring, KeyringException, Credentials class Base64Keyring(Keyring): diff -Nru cloudsn-0.8.14/src/cloudsn/core/keyrings/gkeyring.py cloudsn-0.10.2/src/cloudsn/core/keyrings/gkeyring.py --- cloudsn-0.8.14/src/cloudsn/core/keyrings/gkeyring.py 2010-09-07 23:09:36.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/keyrings/gkeyring.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,6 +1,6 @@ # -*- mode: python; tab-width: 4; indent-tabs-mode: nil -*- -import gnomekeyring as gk -from ..keyring import Keyring, KeyringException, Credentials +from gi.repository import GnomeKeyring as gk +from cloudsn.core.keyring import Keyring, KeyringException, Credentials from cloudsn import logger import threading @@ -12,7 +12,7 @@ def __init__(self): self._protocol = "network" - self._key = gk.ITEM_NETWORK_PASSWORD + self._key = gk.ItemType.NETWORK_PASSWORD if not gk.is_available(): raise KeyringException("The Gnome keyring is not available") logger.debug("default keyring ok") @@ -39,16 +39,23 @@ self.lock.acquire() try: logger.debug("Getting credentials with gnome keyring for account %s" % (acc.get_name())) - attrs = {"account_name": acc.get_name()} + attrs = gk.Attribute.list_new() + gk.Attribute.list_append_string(attrs, 'account_name', acc.get_name()) try: - items = gk.find_items_sync(gk.ITEM_NETWORK_PASSWORD, attrs) + (result, items) = gk.find_items_sync(gk.ItemType.NETWORK_PASSWORD, attrs) except gk.NoMatchError, e: items = list() + if len(items) < 1: raise KeyringException("Cannot find the keyring data for the account %s" % (acc.get_name())) logger.debug("items ok") - return Credentials (items[0].attributes["username"], items[0].secret) + + username = '' + for attr in gk.Attribute.list_to_glist(items[0].attributes): + if attr.name == 'username': + username = attr.get_string() + return Credentials (username, items[0].secret) finally: self.lock.release() @@ -71,12 +78,13 @@ self.__check_keyring() #Remove the old info and create a new item with the new info self.remove_credentials(acc) - attrs = { - "account_name": acc.get_name(), - "username": credentials.username, - } - id = gk.item_create_sync(self._KEYRING_NAME, \ - gk.ITEM_NETWORK_PASSWORD, acc.get_name(), attrs, credentials.password, True) + + attrs = gk.Attribute.list_new() + gk.Attribute.list_append_string(attrs, 'account_name', acc.get_name()) + gk.Attribute.list_append_string(attrs, 'username', credentials.username) + + (result, id) = gk.item_create_sync(self._KEYRING_NAME, \ + gk.ItemType.NETWORK_PASSWORD, acc.get_name(), attrs, credentials.password, True) logger.debug("credentials stored with id: %i" % (id)) finally: self.lock.release() diff -Nru cloudsn-0.8.14/src/cloudsn/core/keyrings/plainkeyring.py cloudsn-0.10.2/src/cloudsn/core/keyrings/plainkeyring.py --- cloudsn-0.8.14/src/cloudsn/core/keyrings/plainkeyring.py 2010-07-28 23:53:55.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/keyrings/plainkeyring.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,5 +1,5 @@ # -*- mode: python; tab-width: 4; indent-tabs-mode: nil -*- -from ..keyring import Keyring, KeyringException, Credentials +from cloudsn.core.keyring import Keyring, KeyringException, Credentials from cloudsn import logger import gettext diff -Nru cloudsn-0.8.14/src/cloudsn/core/notification.py cloudsn-0.10.2/src/cloudsn/core/notification.py --- cloudsn-0.8.14/src/cloudsn/core/notification.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/notification.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,3 +1,5 @@ +#Edited by Michele Bovo +#Changed notification system for better integrating it into Gnome-shell from cloudsn import logger from cloudsn.core.sound import Sound from cloudsn.core import config @@ -9,22 +11,22 @@ last_notify = tstart = datetime.now() try: - import pynotify - if pynotify.init("Cloud Services Notifications"): + from gi.repository import Notify + if Notify.init("Cloud Services Notifications"): disable = False else: logger.error("Cannot initialize libnotify") except Exception, e: - logger.exception ("there was a problem initializing the pynotify module: %s" % (e)) + logger.exception ("there was a problem initializing the Notify module: %s" % (e)) -def notify_closed_cb (n, data=None): - global notifications, notifying - notifying = False - if n in notifications: - notifications.remove (n) - n = None - notify_process() +#def notify_closed_cb (n, data=None): +# global notifications, notifying +# notifying = False +# if n in notifications: +# notifications.remove (n) +# n = None +# notify_process() def notify_process (): global notifications, notifying, last_notify @@ -32,18 +34,19 @@ if len(notifications) == 0: return; - if notifying == True: - #See Bug #622021 on gnome - diff = datetime.now() - last_notify - if diff.seconds > 30: - logger.debug("30 seconds from the last notification, reactivating") - notifying = False - else: - return - - n = notifications[0] - n.connect("closed", notify_closed_cb) - n.show() +# if notifying == True: +# #See Bug #622021 on gnome +# diff = datetime.now() - last_notify +# if diff.seconds > 30: +# logger.debug("30 seconds from the last notification, reactivating") +# notifying = False +# else: +# return + + while len(notifications) > 0: + n = notifications.pop(0) + #n.connect("closed", notify_closed_cb) + n.show() notifying= True last_notify = datetime.now() @@ -53,12 +56,12 @@ def notify (title, message, icon = None): if disable == True: - raise NotificationError ("there was a problem initializing the pynotify module") + raise NotificationError ("there was a problem initializing the Notify module") global notifications - n = pynotify.Notification(title, message) - n.set_urgency(pynotify.URGENCY_LOW) - n.set_timeout(8000) + n = Notify.Notification.new(title, message, None) + n.set_urgency(Notify.Urgency.LOW) + #n.set_timeout(3000) if icon: n.set_icon_from_pixbuf(icon) @@ -67,4 +70,3 @@ notify_process() class NotificationError(Exception): pass - diff -Nru cloudsn-0.8.14/src/cloudsn/core/sound.py cloudsn-0.10.2/src/cloudsn/core/sound.py --- cloudsn-0.8.14/src/cloudsn/core/sound.py 2010-09-26 20:11:01.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/sound.py 2012-05-20 22:00:26.000000000 +0000 @@ -14,6 +14,8 @@ enabled = False try: + #TODO Disabled because I need study how to do it with gtk-3 + raise Exception("Sound is unsuported by the moment") import pygst pygst.require("0.10") import gst diff -Nru cloudsn-0.8.14/src/cloudsn/core/utils.py cloudsn-0.10.2/src/cloudsn/core/utils.py --- cloudsn-0.8.14/src/cloudsn/core/utils.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/core/utils.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,5 +1,5 @@ -import gconf -import gtk +#import gconf +from gi.repository import Gtk, Gio, Gdk, GdkPixbuf import os import subprocess from email.header import decode_header @@ -10,20 +10,21 @@ def show_url(url): """Open any @url with default viewer""" - from gtk import show_uri, get_current_event_time - from gtk.gdk import screen_get_default - from glib import GError + #from Gtk import show_uri, get_current_event_time + #from Gtk.gdk import screen_get_default + #from glib import GError try: - show_uri(screen_get_default(), url, get_current_event_time()) - except GError, e: - logger.exception("Error in gtk.show_uri: %s", e) + Gtk.show_uri(Gdk.Screen.get_default(), url, Gtk.get_current_event_time()) + except: + logger.exception("Error in Gtk.show_uri: %s") def invoke_subprocess(cmdline): setsid = getattr(os, 'setsid', None) subprocess.Popen(cmdline, close_fds = True, preexec_fn = setsid) def get_default_mail_reader(): - client = gconf.client_get_default() + #client = gconf.client_get_default() + client = Gio.Settings.new() cmd = client.get_string("/desktop/gnome/url-handlers/mailto/command") return cmd.split()[0] @@ -46,14 +47,14 @@ return False def get_error_pixbuf(): - icons = gtk.icon_theme_get_default() - l = gtk.ICON_LOOKUP_USE_BUILTIN - return icons.load_icon(gtk.STOCK_DIALOG_ERROR, 32, l) + icons = Gtk.IconTheme.get_default() + #TODO How can I set this value with gir ? l = Gtk.ICON_LOOKUP_USE_BUILTIN + return icons.load_icon(Gtk.STOCK_DIALOG_ERROR, 32, 0) def get_account_error_pixbuf (acc): original = acc.get_provider().get_icon().copy() - error = gtk.gdk.pixbuf_new_from_file(config.add_data_prefix('error.png')) - error.composite(original, 10, 10, 22, 22, 10, 10, 1.0, 1.0, gtk.gdk.INTERP_HYPER, 220) + error = GdkPixbuf.Pixbuf.new_from_file(config.add_data_prefix('error.png')) + error.composite(original, 10, 10, 22, 22, 10, 10, 1.0, 1.0, GdkPixbuf.InterpType.HYPER, 220) return original def download_image_to_tmp(url): @@ -74,7 +75,7 @@ def download_image_to_pixbuf(url): path = download_image_to_tmp(url) - return gtk.gdk.pixbuf_new_from_file(path) + return GdkPixbuf.Pixbuf.new_from_file(path) def execute_command(acc, command): open_command = replace_variables(acc, command) diff -Nru cloudsn-0.8.14/src/cloudsn/providers/feedsprovider.py cloudsn-0.10.2/src/cloudsn/providers/feedsprovider.py --- cloudsn-0.8.14/src/cloudsn/providers/feedsprovider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/feedsprovider.py 2012-05-20 22:00:26.000000000 +0000 @@ -7,7 +7,7 @@ from cloudsn import logger from os.path import join import os -import gtk +from gi.repository import Gtk, GdkPixbuf import urllib2 import csv @@ -27,7 +27,7 @@ if FeedsProvider.__default: raise FeedsProvider.__default ProviderUtilsBuilder.__init__(self, _("RSS news"), 'rss') - self.icon = gtk.gdk.pixbuf_new_from_file(config.add_data_prefix('rss.png')) + self.icon = GdkPixbuf.Pixbuf.new_from_file(config.add_data_prefix('rss.png')) @staticmethod def get_instance(): diff -Nru cloudsn-0.8.14/src/cloudsn/providers/gmailprovider.py cloudsn-0.10.2/src/cloudsn/providers/gmailprovider.py --- cloudsn-0.8.14/src/cloudsn/providers/gmailprovider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/gmailprovider.py 2012-05-20 22:00:26.000000000 +0000 @@ -8,7 +8,7 @@ from cloudsn import logger from xml.sax.handler import ContentHandler from xml import sax -import gtk +from gi.repository import Gtk, GdkPixbuf import urllib2 class GMailProvider(Provider): @@ -19,7 +19,7 @@ if GMailProvider.__default: raise GMailProvider.__default Provider.__init__(self, "GMail") - self.icon = gtk.gdk.pixbuf_new_from_file(config.add_data_prefix('gmail.png')) + self.icon = GdkPixbuf.Pixbuf.new_from_file(config.add_data_prefix('gmail.png')) @staticmethod def get_instance(): @@ -90,7 +90,7 @@ return labels_string[:len(labels_string)-1] def get_account_data_widget (self, account=None): - self.builder=gtk.Builder() + self.builder=Gtk.Builder() self.builder.set_translation_domain("cloudsn") self.builder.add_from_file(config.add_data_prefix("gmail-account.ui")) box = self.builder.get_object("container") diff -Nru cloudsn-0.8.14/src/cloudsn/providers/greaderprovider.py cloudsn-0.10.2/src/cloudsn/providers/greaderprovider.py --- cloudsn-0.8.14/src/cloudsn/providers/greaderprovider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/greaderprovider.py 2012-05-20 22:00:26.000000000 +0000 @@ -7,7 +7,7 @@ import re import urllib import xml.dom.minidom -import gtk +from gi.repository import Gtk class GReaderProvider(ProviderUtilsBuilder): diff -Nru cloudsn-0.8.14/src/cloudsn/providers/identicaprovider.py cloudsn-0.10.2/src/cloudsn/providers/identicaprovider.py --- cloudsn-0.8.14/src/cloudsn/providers/identicaprovider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/identicaprovider.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,11 +1,12 @@ from cloudsn.providers import tweepy from providersbase import ProviderUtilsBuilder +from cloudsn import logger from cloudsn.core.account import AccountCacheMails, AccountManager, Notification from cloudsn.core.keyring import Credentials from cloudsn.core.provider import Provider from cloudsn.core import utils -import gobject -import gtk +from gi.repository import GObject +from gi.repository import Gtk class IdenticaProvider(ProviderUtilsBuilder): @@ -87,7 +88,7 @@ account.new_unread = news; account["since_id"] = messages[0].id - gobject.idle_add(self.__save_account, account) + GObject.idle_add(self.__save_account, account) def __save_account(self, account): AccountManager.get_instance().save_account(account) @@ -98,7 +99,7 @@ try: icon = utils.download_image_to_pixbuf(m.user.profile_image_url) except Exception, e: - logger.exception("Error loading the user avatar",e) + logger.exception("Error loading the user avatar") return icon diff -Nru cloudsn-0.8.14/src/cloudsn/providers/imapprovider.py cloudsn-0.10.2/src/cloudsn/providers/imapprovider.py --- cloudsn-0.8.14/src/cloudsn/providers/imapprovider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/imapprovider.py 2012-05-20 22:00:26.000000000 +0000 @@ -14,7 +14,7 @@ from cloudsn import logger import imaplib from email.Parser import HeaderParser -import gtk +from gi.repository import Gtk, GdkPixbuf class ImapProvider(ProviderBase): __default = None @@ -23,7 +23,7 @@ if ImapProvider.__default: raise ImapProvider.__default ProviderBase.__init__(self, "Imap") - self.icon = gtk.gdk.pixbuf_new_from_file(config.add_data_prefix('imap.png')) + self.icon = GdkPixbuf.Pixbuf.new_from_file(config.add_data_prefix('imap.png')) @staticmethod def get_instance(): @@ -80,7 +80,7 @@ self.provider = provider def load(self): - self.builder=gtk.Builder() + self.builder=Gtk.Builder() self.builder.set_translation_domain("cloudsn") self.builder.add_from_file(config.add_data_prefix("imap-account.ui")) self.box = self.builder.get_object("container") diff -Nru cloudsn-0.8.14/src/cloudsn/providers/pop3provider.py cloudsn-0.10.2/src/cloudsn/providers/pop3provider.py --- cloudsn-0.8.14/src/cloudsn/providers/pop3provider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/pop3provider.py 2012-05-20 22:00:26.000000000 +0000 @@ -9,7 +9,7 @@ import poplib from email.Parser import Parser as EmailParser from email.header import decode_header -import gtk +from gi.repository import Gtk class Pop3Provider(ProviderUtilsBuilder): diff -Nru cloudsn-0.8.14/src/cloudsn/providers/providersbase.py cloudsn-0.10.2/src/cloudsn/providers/providersbase.py --- cloudsn-0.8.14/src/cloudsn/providers/providersbase.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/providersbase.py 2012-05-20 22:00:26.000000000 +0000 @@ -6,7 +6,7 @@ from cloudsn.ui.utils import create_provider_widget, get_widget_by_label from xml.sax.handler import ContentHandler from xml import sax -import gtk +from gi.repository import Gtk, GdkPixbuf import urllib2 class ProviderBase(Provider): @@ -17,7 +17,7 @@ if not id_provider: self.id_provider = name self.id_provider = self.id_provider.lower() - self.icon = gtk.gdk.pixbuf_new_from_file(config.add_data_prefix(self.id_provider + '.png')) + self.icon = GdkPixbuf.Pixbuf.new_from_file(config.add_data_prefix(self.id_provider + '.png')) class ProviderGtkBuilder(ProviderBase): @@ -27,7 +27,7 @@ self._builder = None def _create_dialog(self, parent): - self._builder=gtk.Builder() + self._builder=Gtk.Builder() self._builder.set_translation_domain("cloudsn") self._builder.add_from_file(config.add_data_prefix(self.id_provider + ".ui")) dialog = self._builder.get_object("main") diff -Nru cloudsn-0.8.14/src/cloudsn/providers/twitterprovider.py cloudsn-0.10.2/src/cloudsn/providers/twitterprovider.py --- cloudsn-0.8.14/src/cloudsn/providers/twitterprovider.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/providers/twitterprovider.py 2012-05-20 22:00:26.000000000 +0000 @@ -3,7 +3,7 @@ from cloudsn.core.account import AccountCacheMails from cloudsn.core import config from cloudsn.providers import tweepy -import gtk +from gi.repository import Gtk CONSUMER_KEY = 'uRPdgq7wqkiKmWzs9rneJA' CONSUMER_SECRET = 'ZwwhbUl2mwdreaiGFd8IqUhfsZignBJIYknVA867Ieg' @@ -44,7 +44,7 @@ self.provider = provider def load(self): - self.builder=gtk.Builder() + self.builder=Gtk.Builder() self.builder.set_translation_domain("cloudsn") self.builder.add_from_file(config.add_data_prefix("twitter-account.ui")) self.box = self.builder.get_object("container") diff -Nru cloudsn-0.8.14/src/cloudsn/ui/about.py cloudsn-0.10.2/src/cloudsn/ui/about.py --- cloudsn-0.8.14/src/cloudsn/ui/about.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/ui/about.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,16 +1,16 @@ #encoding: utf-8 -import gtk +from gi.repository import Gtk, GdkPixbuf from cloudsn import const from cloudsn.core import config def show_about_dialog(): - dialog = gtk.AboutDialog() + dialog = Gtk.AboutDialog() dialog.set_name(const.APP_LONG_NAME) dialog.set_version(const.APP_VERSION) dialog.set_copyright (const.APP_COPYRIGHT) dialog.set_comments(const.APP_DESCRIPTION) dialog.set_website (const.APP_WEBSITE) - dialog.set_logo(gtk.gdk.pixbuf_new_from_file(config.add_data_prefix('cloudsn120.png'))) + dialog.set_logo(GdkPixbuf.Pixbuf.new_from_file(config.add_data_prefix('cloudsn120.png'))) dialog.set_authors (["Jesús Barbero Rodríguez"]) dialog.run() dialog.hide() diff -Nru cloudsn-0.8.14/src/cloudsn/ui/authwarning.py cloudsn-0.10.2/src/cloudsn/ui/authwarning.py --- cloudsn-0.8.14/src/cloudsn/ui/authwarning.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/ui/authwarning.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,10 +1,10 @@ -import gtk +from gi.repository import Gtk import gettext from cloudsn import logger -from ..core.config import SettingsController, get_cloudsn_icon -from ..core.utils import get_boolean -from ..const import * -from ..core.keyring import get_keyring +from cloudsn.core.config import SettingsController, get_cloudsn_icon +from cloudsn.core.utils import get_boolean +from cloudsn.const import * +from cloudsn.core.keyring import get_keyring AUTH_DONT_ASK_KEY = "auth_dont_ask" @@ -24,7 +24,7 @@ if get_keyring().get_id() == gkeyring.GNOME_KEYRING_ID: return - label = gtk.Label() + label = Gtk.Label() label.set_markup(_("""Security warning You have gnome-keyring installed but your are using plain text encryption @@ -32,15 +32,15 @@ in the preferences dialog. """)) - dialog = gtk.Dialog(APP_LONG_NAME, + dialog = Gtk.Dialog(APP_LONG_NAME, None, - gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, - (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) + Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, + (Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT)) dialog.set_icon(get_cloudsn_icon()) - dialog.vbox.pack_start(label) - checkbox = gtk.CheckButton(_("Don't ask me again")) + dialog.vbox.pack_start(label, False, False, 10) + checkbox = Gtk.CheckButton(_("Don't ask me again")) checkbox.show() - dialog.vbox.pack_end(checkbox) + dialog.vbox.pack_end(checkbox, False, False, 0) label.show() response = dialog.run() dialog.destroy() diff -Nru cloudsn-0.8.14/src/cloudsn/ui/indicators/indicatorapplet.py cloudsn-0.10.2/src/cloudsn/ui/indicators/indicatorapplet.py --- cloudsn-0.8.14/src/cloudsn/ui/indicators/indicatorapplet.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/ui/indicators/indicatorapplet.py 2012-05-22 21:36:38.000000000 +0000 @@ -1,12 +1,9 @@ # -*- mode: python; tab-width: 4; indent-tabs-mode: nil -*- #!/usr/bin/python -import pygtk -pygtk.require('2.0') -import gtk +from gi.repository import Gtk, Indicate from cloudsn.core import config, utils, account from cloudsn.ui import window from cloudsn.core.indicator import Indicator -import indicate from cloudsn.const import * from cloudsn import logger @@ -20,7 +17,7 @@ def set_active(self, active): if active: - self.server = indicate.indicate_server_ref_default() + self.server = Indicate.Server.ref_default() self.server.set_type("message.im") self.server.connect("server-display", self.on_server_display_cb) self.server.set_desktop_file(config.add_apps_prefix("cloudsn.desktop")) @@ -31,10 +28,10 @@ logger.debug("deactivate Not implemented") def create_indicator(self, acc): - indicator = indicate.Indicator() + indicator = Indicate.Indicator() indicator.set_property("name", acc.get_name()) indicator.set_property("count", str(acc.get_total_unread())) - indicator.set_property_icon("icon", acc.get_icon()) + #TODO indicator.set_property_icon("icon", acc.get_icon()) indicator.show() indicator.connect("user-display", self.on_indicator_display_cb) acc.indicator = indicator @@ -44,7 +41,7 @@ def update_account(self, acc): #We had a previous error but now the update works. if acc.is_error_icon: - acc.indicator.set_property_icon("icon", acc.get_icon()) + #acc.indicator.set_property_icon("icon", acc.get_icon()) acc.is_error_icon = False else: if len(acc.get_new_unread_notifications()) > 0: @@ -57,7 +54,7 @@ def update_error(self, acc): if not acc.is_error_icon: - acc.indicator.set_property_icon("icon", acc.get_icon()) + #TODO acc.indicator.set_property_icon("icon", acc.get_icon()) acc.is_error_icon = True acc.indicator.set_property("count", "0") diff -Nru cloudsn-0.8.14/src/cloudsn/ui/indicators/statusicon.py cloudsn-0.10.2/src/cloudsn/ui/indicators/statusicon.py --- cloudsn-0.8.14/src/cloudsn/ui/indicators/statusicon.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/ui/indicators/statusicon.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,6 +1,4 @@ -import pygtk -pygtk.require('2.0') -import gtk +from gi.repository import Gtk, Gdk, GdkPixbuf from cloudsn import const from cloudsn.core import config, controller, utils from cloudsn.ui import window, about @@ -13,10 +11,10 @@ def set_active(self, active): if active: - self.statusIcon = gtk.StatusIcon() + self.statusIcon = Gtk.StatusIcon() self.statusIcon.set_from_pixbuf(config.get_cloudsn_icon()) self.statusIcon.set_visible(True) - self.statusIcon.set_tooltip(APP_LONG_NAME) + self.statusIcon.set_tooltip_text(APP_LONG_NAME) self.statusIcon.connect('activate', self.main_cb, self.statusIcon) self.menu = self.create_pref_menu() @@ -32,8 +30,8 @@ return _("Status Icon") def create_main_menu(self): - indmenu = gtk.Menu() - indmenuItem = gtk.MenuItem("") + indmenu = Gtk.Menu() + indmenuItem = Gtk.MenuItem("") indmenuItem.get_child().set_markup("%s" % (APP_LONG_NAME)) indmenuItem.connect('activate', self.preferences_cb, self.statusIcon) #indmenuItem.set_sensitive(False) @@ -42,41 +40,33 @@ return indmenu def create_pref_menu(self): - menu = gtk.Menu() - menuItem = gtk.ImageMenuItem(gtk.STOCK_REFRESH) + menu = Gtk.Menu() + menuItem = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_REFRESH, None) menuItem.get_child().set_text(_("Update accounts")) menuItem.connect('activate', self.update_accounts_cb, self.statusIcon) menu.append(menuItem) - menuItem = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES) + menuItem = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_PREFERENCES, None) menuItem.connect('activate', self.preferences_cb, self.statusIcon) menu.append(menuItem) - menuItem = gtk.SeparatorMenuItem() + menuItem = Gtk.SeparatorMenuItem.new() menu.append(menuItem) - menuItem = gtk.ImageMenuItem(gtk.STOCK_ABOUT) + menuItem = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_ABOUT, None) menuItem.connect('activate', self.about_cb, self.statusIcon) menu.append(menuItem) - menuItem = gtk.ImageMenuItem(gtk.STOCK_QUIT) + menuItem = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_QUIT, None) menuItem.connect('activate', self.quit_cb, self.statusIcon) menu.append(menuItem) return menu def create_indicator(self, acc): - indmenuItem = gtk.ImageMenuItem(gtk.STOCK_QUIT) pix = self.scale_pixbuf(acc.get_icon()) - - """ - indmenuItem.set_image(gtk.image_new_from_pixbuf(pix)) - indmenuItem.get_child().set_label(("%s (%i)") % (acc.get_name(),acc.get_total_unread())) - indmenuItem.connect('activate', self.acc_activate_cb, acc) - indmenuItem.set_always_show_image (True) - """ - indmenuItem = gtk.MenuItem() - box = gtk.HBox() - menu_icon = gtk.image_new_from_pixbuf(pix) - box.pack_start(menu_icon, False, False) - box.pack_start(gtk.Label(acc.get_name()), False, True, 10) - total_label = gtk.Label(("(%i)") % (acc.get_total_unread())) - box.pack_end(total_label, False, False) + indmenuItem = Gtk.MenuItem.new() + box = Gtk.HBox() + menu_icon = Gtk.Image.new_from_pixbuf(pix) + box.pack_start(menu_icon, False, False, 0) + box.pack_start(Gtk.Label(acc.get_name()), False, True, 10) + total_label = Gtk.Label(("(%i)") % (acc.get_total_unread())) + box.pack_end(total_label, False, False, 0) indmenuItem.add(box) indmenuItem.connect('activate', self.acc_activate_cb, acc) self.indmenu.append(indmenuItem) @@ -120,11 +110,11 @@ def main_cb(self, widget, data = None): self.indmenu.show_all() - self.indmenu.popup(None, None, gtk.status_icon_position_menu, - 1, gtk.get_current_event_time(), self.statusIcon) + self.indmenu.popup(None, None, Gtk.StatusIcon.position_menu, + self.statusIcon, 1, Gtk.get_current_event_time()) def quit_cb(self, widget, data = None): - gtk.main_quit() + Gtk.main_quit() def about_cb (self, widget, data = None): about.show_about_dialog() @@ -133,8 +123,8 @@ if button == 3: if data: data.show_all() - data.popup(None, None, gtk.status_icon_position_menu, - 3, time, self.statusIcon) + data.popup(None, None, Gtk.StatusIcon.position_menu, + self.statusIcon, 3, time) def scale_pixbuf (self, pix): - return pix.scale_simple(16,16,gtk.gdk.INTERP_BILINEAR) + return pix.scale_simple(16,16,GdkPixbuf.InterpType.BILINEAR) diff -Nru cloudsn-0.8.14/src/cloudsn/ui/utils.py cloudsn-0.10.2/src/cloudsn/ui/utils.py --- cloudsn-0.8.14/src/cloudsn/ui/utils.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/ui/utils.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,20 +1,20 @@ # -*- mode: python; tab-width: 4; indent-tabs-mode: nil -*- -import gtk +from gi.repository import Gtk def create_provider_widget(fields): - table = gtk.Table(len(fields), 2) + table = Gtk.Table(len(fields), 2) table.widgets = {} i = 0 for f in fields: - hbox = gtk.HBox() - label = gtk.Label(f["label"]) + hbox = Gtk.HBox() + label = Gtk.Label(f["label"]) if f["type"] == "pwd": - entry = gtk.Entry() + entry = Gtk.Entry() entry.set_visibility(False) elif f["type"] == "check": - entry = gtk.CheckButton() + entry = Gtk.CheckButton() else: - entry = gtk.Entry() + entry = Gtk.Entry() entry.set_name(f["label"]) table.attach(label, 0, 1, i, i+1) diff -Nru cloudsn-0.8.14/src/cloudsn/ui/window.py cloudsn-0.10.2/src/cloudsn/ui/window.py --- cloudsn-0.8.14/src/cloudsn/ui/window.py 2012-05-06 12:09:05.000000000 +0000 +++ cloudsn-0.10.2/src/cloudsn/ui/window.py 2012-05-20 22:00:26.000000000 +0000 @@ -1,12 +1,11 @@ # -*- mode: python; tab-width: 4; indent-tabs-mode: nil -*- -import gtk +from gi.repository import Gtk import os import shutil import gettext from cloudsn.core import config, provider, account, indicator, keyring from cloudsn import logger import cloudsn.core.utils as coreutils -from cloudsn.ui import about, utils STOP_RESPONSE = 1 @@ -36,12 +35,13 @@ def get_main_account_selected (self): selection = self.main_account_tree.get_selection() - model, paths = selection.get_selected_rows() - for path in paths: - citer = self.main_store.get_iter(path) - account_name = self.main_store.get_value(citer, 1) - acc = self.am.get_account(account_name) - return acc, citer + if selection: + model, paths = selection.get_selected_rows() + for path in paths: + citer = self.main_store.get_iter(path) + account_name = self.main_store.get_value(citer, 1) + acc = self.am.get_account(account_name) + return acc, citer return None, None @@ -65,7 +65,7 @@ def load_window(self): from cloudsn.core.controller import Controller - self.builder=gtk.Builder() + self.builder=Gtk.Builder() self.builder.set_translation_domain("cloudsn") self.builder.add_from_file(config.add_data_prefix("preferences.ui")) self.builder.connect_signals(self) @@ -105,11 +105,11 @@ def set_play_active(self, active): self.play_button.set_active(active) if active: - self.play_button.set_stock_id(gtk.STOCK_MEDIA_PAUSE) + self.play_button.set_stock_id(Gtk.STOCK_MEDIA_PAUSE) self.play_button.set_tooltip_text( _("Press to pause the checker daemon")) else: - self.play_button.set_stock_id(gtk.STOCK_MEDIA_PLAY) + self.play_button.set_stock_id(Gtk.STOCK_MEDIA_PLAY) self.play_button.set_tooltip_text( _("Press to start the checker daemon")) @@ -188,11 +188,11 @@ about.show_about_dialog() def quit_action_activate_cb (self, widget, data=None): - gtk.main_quit() + Gtk.main_quit() def close_action_activate_cb (self, widget, data=None): if self.dialog_only: - gtk.main_quit() + Gtk.main_quit() else: self.window.hide() @@ -203,13 +203,13 @@ msg = (_('Are you sure you want to delete the account %s?')) % (acc.get_name()); - dia = gtk.MessageDialog(self.window, - gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, - gtk.MESSAGE_QUESTION, - gtk.BUTTONS_YES_NO, + dia = Gtk.MessageDialog(self.window, + Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, + Gtk.MessageType.QUESTION, + Gtk.ButtonsType.YES_NO, msg) dia.show_all() - if dia.run() == gtk.RESPONSE_YES: + if dia.run() == Gtk.ResponseType.YES: self.am.del_account(acc, True) dia.hide() @@ -238,14 +238,16 @@ Controller.get_instance().set_active(widget.get_active()) def account_deleted_cb(self, widget, acc): - for i in range(len(self.main_store)): - if self.main_store[i][1] == acc.get_name(): - del self.main_store[i] - break + selection = self.main_account_tree.get_selection() + if selection: + model, paths = selection.get_selected_rows() + for path in paths: + citer = self.main_store.get_iter(path) + self.main_store.remove(citer) def window_delete_event_cb (self, widget, event, data=None): if self.dialog_only: - gtk.main_quit() + Gtk.main_quit() else: self.window.hide() @@ -298,9 +300,9 @@ end = True except Exception, e: logger.error ('Error adding a new account: %s', e) - md = gtk.MessageDialog(self.window, - gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, - gtk.BUTTONS_CLOSE, + md = Gtk.MessageDialog(self.window, + Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, + Gtk.ButtonsType.CLOSE, _('Error adding a new account: ') + str(e)) md.run() md.destroy() @@ -351,9 +353,9 @@ end = True except Exception, e: logger.exception ('Error editing the account: %s', e) - md = gtk.MessageDialog(self.window, - gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, - gtk.BUTTONS_CLOSE, + md = Gtk.MessageDialog(self.window, + Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, + Gtk.ButtonsType.CLOSE, _('Error editing the account: ') + str(e)) md.run() md.destroy() @@ -379,9 +381,9 @@ provider = self.pm.get_provider(provider_name) if provider.get_import_error(): - md = gtk.MessageDialog(self.window, - gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, - gtk.BUTTONS_CLOSE, + md = Gtk.MessageDialog(self.window, + Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, + Gtk.ButtonsType.CLOSE, _('Error loading the provider: ') + str(provider.get_import_error())) md.run() md.destroy() @@ -416,7 +418,7 @@ win = MainWindow.get_instance() win.dialog_only = True win.run() - gtk.main() + Gtk.main() if __name__ == "__main__": main() diff -Nru cloudsn-0.8.14/tests/greader.py cloudsn-0.10.2/tests/greader.py --- cloudsn-0.8.14/tests/greader.py 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/tests/greader.py 2012-05-20 22:00:26.000000000 +0000 @@ -0,0 +1,79 @@ +import os, sys, re + +srcpath = os.path.abspath("../src") +sys.path.insert(0,srcpath) + +import traceback, urllib2, httplib, urllib, simplejson +import cookielib +import webbrowser +from cloudsn.providers.greaderprovider import * + + +SCOPE = 'https://www.google.com/reader/api' +def main(): + #Ask for permissions and set the pin + #password = raw_input('password: ').strip() + cookiejar = cookielib.CookieJar() + _cproc = urllib2.HTTPCookieProcessor(cookiejar) + opener = urllib2.build_opener(_cproc) + urllib2.install_opener(opener) + url = 'https://accounts.google.com/o/oauth2/auth?client_id=%s&redirect_uri=%s&response_type=%s&scope=%s' \ + % (CLIENT_ID, REDIRECT_URI, \ + 'code', SCOPE) + + webbrowser.open (url) + pin = raw_input('PIN: ').strip() + + params = {'client_id' : CLIENT_ID, + 'client_secret': CLIENT_SECRET, + 'code': pin, + 'redirect_uri': REDIRECT_URI, + 'grant_type' : 'authorization_code', + 'scope' : SCOPE, + } + f = opener.open ('https://accounts.google.com/o/oauth2/token', urllib.urlencode(params)) + data = f.read() + print data + data = simplejson.loads(data) + + params = {'client_id' : CLIENT_ID, + 'client_secret': CLIENT_SECRET, + 'grant_type' : 'refresh_token', + 'refresh_token' : data['refresh_token'], + } + f = opener.open ('https://accounts.google.com/o/oauth2/token', urllib.urlencode(params)) + data = f.read() + print data + data = simplejson.loads(data) + + """ + request = urllib2.Request(r"https://www.google.com/reader/api/0/unread-count") + request.add_header("Authorization", "Bearer " + data["access_token"]) + + data = urllib2.urlopen(request).read() + print data + return + """ + + url = SCOPE + '?access_token='+ data['access_token'] + print url + f = opener.open(url) + data = f.read() + print data + return + match_obj = re.search(r'SID=(.*)', data, re.IGNORECASE) + sid = match_obj.group(1) if match_obj.group(1) is not None else '' + print sid + match_obj = re.search(r'LSID=(.*)', data, re.IGNORECASE) + lsid = match_obj.group(1) if match_obj.group(1) is not None else '' + print lsid + + cookiejar.add_cookie(req, 'cname2', 'cval2', + {'expires': int(time.time()) + 3600,}) + + f = opener.open('http://www.google.com/reader/api/0/token') + print f.read() + + +if __name__ == '__main__': + main() diff -Nru cloudsn-0.8.14/tests/poptest.py cloudsn-0.10.2/tests/poptest.py --- cloudsn-0.8.14/tests/poptest.py 1970-01-01 00:00:00.000000000 +0000 +++ cloudsn-0.10.2/tests/poptest.py 2012-05-20 22:00:26.000000000 +0000 @@ -0,0 +1,70 @@ +import os, sys + +srcpath = os.path.abspath("../src") +sys.path.insert(0,srcpath) + +import poplib +from email.Parser import Parser as EmailParser +from email.header import decode_header +from cloudsn.core import utils + +class PopBox: + def __init__(self, user, password, host, port = 110, ssl = False): + self.user = user + self.password = password + self.host = host + self.port = int(port) + self.ssl = ssl + + self.mbox = None + self.parser = EmailParser() + + def __connect(self): + if not self.ssl: + self.mbox = poplib.POP3(self.host, self.port) + else: + self.mbox = poplib.POP3_SSL(self.host, self.port) + + self.mbox.user(self.user) + self.mbox.pass_(self.password) + + def get_mails(self): + self.__connect() + + messages = [] + print "Starting reading POP messages" + msgs = self.mbox.list()[1] + print "POP messages readed: %i" % (len(msgs)) + for msg in msgs: + msgNum = int(msg.split(" ")[0]) + msgSize = int(msg.split(" ")[1]) + + # retrieve only the header + st = "\n".join(self.mbox.top(msgNum, 0)[1]) + print st + print "----------------------------------------" + msg = self.parser.parsestr(st, True) # header only + sub = utils.mime_decode(msg.get("Subject")) + msgid = msg.get("Message-Id") + if not msgid: + msgid = hash(msg.get("Received") + sub) + fr = utils.mime_decode(msg.get("From")) + messages.append( [msgid, sub, fr] ) + + self.mbox.quit() + return messages + +def main(): + g = PopBox ("chuchiperriman@gmail.com", , + "pop.gmail.com", 995, True) + mails = g.get_mails() + for mail_id, sub, fr in mails: + print mail_id, sub + notifications[mail_id] = sub + if mail_id not in account.notifications: + n = Notification(mail_id, sub, fr) + account.new_unread.append (n) + account.notifications = notifications + +if __name__ == '__main__': + main()