~ubuntu-branches/ubuntu/raring/screenlets/raring

« back to all changes in this revision

Viewing changes to docs/epydoc/screenlets.options.account_option-pysrc.html

  • Committer: Package Import Robot
  • Author(s): Julien Lavergne
  • Date: 2012-02-12 22:47:27 UTC
  • mto: This revision was merged to the branch mainline in revision 25.
  • Revision ID: package-import@ubuntu.com-20120212224727-kjobpgxp3tmw95qd
Tags: upstream-0.1.6
ImportĀ upstreamĀ versionĀ 0.1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
      <th class="navbar" align="right" width="100%">
35
35
        <table border="0" cellpadding="0" cellspacing="0">
36
36
          <tr><th class="navbar" align="center"
37
 
            >Screenlets 0.1.4</th>
 
37
            >Screenlets 0.1.6</th>
38
38
          </tr></table></th>
39
39
  </tr>
40
40
</table>
65
65
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
66
66
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># Copyright (C) 2009 Martin Owens (DoctorMO) &lt;doctormo@gmail.com&gt;</tt> </tt>
67
67
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
68
 
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># This program is free software; you can redistribute it and/or modify</tt> </tt>
 
68
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># This program is free software: you can redistribute it and/or modify</tt> </tt>
69
69
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
70
 
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># the Free Software Foundation; either version 3 of the License, or</tt> </tt>
 
70
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># the Free Software Foundation, either version 3 of the License, or</tt> </tt>
71
71
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># (at your option) any later version.</tt> </tt>
72
72
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
73
73
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
76
76
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
77
77
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
78
78
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
79
 
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># along with this program; if not, write to the Free Software</tt> </tt>
80
 
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"># Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</tt> </tt>
81
 
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
82
 
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
83
 
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">Account options, these classes will display a text box.</tt> </tt>
84
 
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
85
 
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
86
 
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gtk</tt> </tt>
87
 
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
88
 
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">gnomekeyring</tt> </tt>
89
 
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> <tt class="py-keyword">print</tt> <tt class="py-string">'No GNOME keyring, there will be problems with account options'</tt> </tt>
90
 
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
91
 
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package screenlets=screenlets-module.html"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-0', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package screenlets.options=screenlets.options-module.html"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-1', 'options', 'link-1');">options</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Function screenlets._()=screenlets-module.html#_,Function screenlets.backend._()=screenlets.backend-module.html#_,Function screenlets.install._()=screenlets.install-module.html#_,Function screenlets.menu._()=screenlets.menu-module.html#_,Function screenlets.options._()=screenlets.options-module.html#_,Function screenlets.sensors._()=screenlets.sensors-module.html#_,Function screenlets.services._()=screenlets.services-module.html#_,Function screenlets.session._()=screenlets.session-module.html#_,Function screenlets.utils._()=screenlets.utils-module.html#_"><a title="screenlets._
 
79
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
 
80
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
81
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
 
82
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">Account options, these classes will display a text box.</tt> </tt>
 
83
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
 
84
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
 
85
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gtk</tt> </tt>
 
86
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
87
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">gnomekeyring</tt> </tt>
 
88
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> <tt class="py-keyword">print</tt> <tt class="py-string">'No GNOME keyring, there will be problems with account options'</tt> </tt>
 
89
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
 
90
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package screenlets=screenlets-module.html"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-0', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package screenlets.options=screenlets.options-module.html"><a title="screenlets.options" class="py-name" href="#" onclick="return doclink('link-1', 'options', 'link-1');">options</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Function screenlets._()=screenlets-module.html#_,Function screenlets.backend._()=screenlets.backend-module.html#_,Function screenlets.install._()=screenlets.install-module.html#_,Function screenlets.menu._()=screenlets.menu-module.html#_,Function screenlets.options._()=screenlets.options-module.html#_,Function screenlets.sensors._()=screenlets.sensors-module.html#_,Function screenlets.services._()=screenlets.services-module.html#_,Function screenlets.session._()=screenlets.session-module.html#_,Function screenlets.utils._()=screenlets.utils-module.html#_"><a title="screenlets._
92
91
screenlets.backend._
93
92
screenlets.install._
94
93
screenlets.menu._
97
96
screenlets.services._
98
97
screenlets.session._
99
98
screenlets.utils._" class="py-name" href="#" onclick="return doclink('link-2', '_', 'link-2');">_</a></tt> </tt>
100
 
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module screenlets.options.base=screenlets.options.base-module.html"><a title="screenlets.options.base" class="py-name" href="#" onclick="return doclink('link-3', 'base', 'link-3');">base</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class screenlets.options.base.Option=screenlets.options.base.Option-class.html"><a title="screenlets.options.base.Option" class="py-name" href="#" onclick="return doclink('link-4', 'Option', 'link-4');">Option</a></tt> </tt>
101
 
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
102
 
<a name="AccountOption"></a><div id="AccountOption-def"><a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="AccountOption-toggle" onclick="return toggle('AccountOption');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html">AccountOption</a><tt class="py-op">(</tt><tt class="py-base-class">Option</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
103
 
</div><div id="AccountOption-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AccountOption-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
104
 
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-docstring">    An Option-type for username/password combos. Stores the password in</tt> </tt>
105
 
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-docstring">    the gnome-keyring (if available) and only saves username and auth_token</tt> </tt>
106
 
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring">    through the screenlets-backend.</tt> </tt>
107
 
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-docstring">    TODO:</tt> </tt>
108
 
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring">    - not create new token for any change (use "set" instead of "create" if</tt> </tt>
109
 
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">      the given item already exists)</tt> </tt>
110
 
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">    - use usual storage if no keyring is available but output warning</tt> </tt>
111
 
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">    - on_delete-function for removing the data from keyring when the</tt> </tt>
112
 
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">      Screenlet holding the option gets deleted</tt> </tt>
113
 
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
114
 
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt id="link-5" class="py-name" targets="Variable screenlets.options.account_option.AccountOption.protected=screenlets.options.account_option.AccountOption-class.html#protected,Variable screenlets.options.base.Option.protected=screenlets.options.base.Option-class.html#protected"><a title="screenlets.options.account_option.AccountOption.protected
 
99
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name" targets="Module screenlets.options.base=screenlets.options.base-module.html"><a title="screenlets.options.base" class="py-name" href="#" onclick="return doclink('link-3', 'base', 'link-3');">base</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class screenlets.options.base.Option=screenlets.options.base.Option-class.html"><a title="screenlets.options.base.Option" class="py-name" href="#" onclick="return doclink('link-4', 'Option', 'link-4');">Option</a></tt> </tt>
 
100
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
 
101
<a name="AccountOption"></a><div id="AccountOption-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="AccountOption-toggle" onclick="return toggle('AccountOption');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html">AccountOption</a><tt class="py-op">(</tt><tt class="py-base-class">Option</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
102
</div><div id="AccountOption-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AccountOption-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
 
103
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-docstring">    An Option-type for username/password combos. Stores the password in</tt> </tt>
 
104
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-docstring">    the gnome-keyring (if available) and only saves username and auth_token</tt> </tt>
 
105
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-docstring">    through the screenlets-backend.</tt> </tt>
 
106
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring">    TODO:</tt> </tt>
 
107
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-docstring">    - not create new token for any change (use "set" instead of "create" if</tt> </tt>
 
108
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring">      the given item already exists)</tt> </tt>
 
109
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">    - use usual storage if no keyring is available but output warning</tt> </tt>
 
110
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">    - on_delete-function for removing the data from keyring when the</tt> </tt>
 
111
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">      Screenlet holding the option gets deleted</tt> </tt>
 
112
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 
113
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt id="link-5" class="py-name" targets="Variable screenlets.options.account_option.AccountOption.protected=screenlets.options.account_option.AccountOption-class.html#protected,Variable screenlets.options.base.Option.protected=screenlets.options.base.Option-class.html#protected"><a title="screenlets.options.account_option.AccountOption.protected
115
114
screenlets.options.base.Option.protected" class="py-name" href="#" onclick="return doclink('link-5', 'protected', 'link-5');">protected</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
116
 
<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
117
 
<a name="AccountOption.__init__"></a><div id="AccountOption.__init__-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="AccountOption.__init__-toggle" onclick="return toggle('AccountOption.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">group</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">attr</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
118
 
</div><div id="AccountOption.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.__init__-expanded"><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Class screenlets.options.account_option.AccountOption=screenlets.options.account_option.AccountOption-class.html"><a title="screenlets.options.account_option.AccountOption" class="py-name" href="#" onclick="return doclink('link-6', 'AccountOption', 'link-6');">AccountOption</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method screenlets.Notify.__init__()=screenlets.Notify-class.html#__init__,Method screenlets.Screenlet.__init__()=screenlets.Screenlet-class.html#__init__,Method screenlets.ScreenletTheme.__init__()=screenlets.ScreenletTheme-class.html#__init__,Method screenlets.ShapedWidget.__init__()=screenlets.ShapedWidget-class.html#__init__,Method screenlets.Tooltip.__init__()=screenlets.Tooltip-class.html#__init__,Method screenlets.WrapLabel.__init__()=screenlets.WrapLabel-class.html#__init__,Method screenlets.backend.CachingBackend.__init__()=screenlets.backend.CachingBackend-class.html#__init__,Method screenlets.backend.GconfBackend.__init__()=screenlets.backend.GconfBackend-class.html#__init__,Method screenlets.backend.ScreenletsBackend.__init__()=screenlets.backend.ScreenletsBackend-class.html#__init__,Method screenlets.install.ScreenletInstaller.__init__()=screenlets.install.ScreenletInstaller-class.html#__init__,Method screenlets.menu.ApplicationMenu.__init__()=screenlets.menu.ApplicationMenu-class.html#__init__,Method screenlets.menu.ImageMenuItem.__init__()=screenlets.menu.ImageMenuItem-class.html#__init__,Method screenlets.options.account_option.AccountOption.__init__()=screenlets.options.account_option.AccountOption-class.html#__init__,Method screenlets.options.base.EditableOptions.__init__()=screenlets.options.base.EditableOptions-class.html#__init__,Method screenlets.options.base.Option.__init__()=screenlets.options.base.Option-class.html#__init__,Method screenlets.options.base.OptionsDialog.__init__()=screenlets.options.base.OptionsDialog-class.html#__init__,Method screenlets.options.list_option.ListOptionDialog.__init__()=screenlets.options.list_option.ListOptionDialog-class.html#__init__,Method screenlets.plugins.Amarok.AmarokAPI.__init__()=screenlets.plugins.Amarok.AmarokAPI-class.html#__init__,Method screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch.__init__()=screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch-class.html#__init__,Method screenlets.plugins.Audacious.AudaciousAPI.__init__()=screenlets.plugins.Audacious.AudaciousAPI-class.html#__init__,Method screenlets.plugins.Banshee.BansheeAPI.__init__()=screenlets.plugins.Banshee.BansheeAPI-class.html#__init__,Method screenlets.plugins.Convert.Converter.__init__()=screenlets.plugins.Convert.Converter-class.html#__init__,Method screenlets.plugins.CoverSearch.CoverSearch.__init__()=screenlets.plugins.CoverSearch.CoverSearch-class.html#__init__,Method screenlets.plugins.Exaile.ExaileAPI.__init__()=screenlets.plugins.Exaile.ExaileAPI-class.html#__init__,Method screenlets.plugins.Flickr.Flickr.__init__()=screenlets.plugins.Flickr.Flickr-class.html#__init__,Method screenlets.plugins.GenericPlayer.GenericAPI.__init__()=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__init__,Method screenlets.plugins.Gstreamer.gstreamer.__init__()=screenlets.plugins.Gstreamer.gstreamer-class.html#__init__,Method screenlets.plugins.Juk.JukAPI.__init__()=screenlets.plugins.Juk.JukAPI-class.html#__init__,Method screenlets.plugins.Kaffeine.KaffeineAPI.__init__()=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__init__,Method screenlets.plugins.LastFMProxy.LastFMProxyAPI.__init__()=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__init__,Method screenlets.plugins.Listen.ListenAPI.__init__()=screenlets.plugins.Listen.ListenAPI-class.html#__init__,Method screenlets.plugins.Loader.GnomeVFSAsyncSrc.__init__()=screenlets.plugins.Loader.GnomeVFSAsyncSrc-class.html#__init__,Method screenlets.plugins.Mail.IMAPBackend.__init__()=screenlets.plugins.Mail.IMAPBackend-class.html#__init__,Method screenlets.plugins.Mail.MailCheckBackend.__init__()=screenlets.plugins.Mail.MailCheckBackend-class.html#__init__,Method screenlets.plugins.Mail.Mailer.__init__()=screenlets.plugins.Mail.Mailer-class.html#__init__,Method screenlets.plugins.Mail.POP3Backend.__init__()=screenlets.plugins.Mail.POP3Backend-class.html#__init__,Method screenlets.plugins.Mplayer.Mplayer.__init__()=screenlets.plugins.Mplayer.Mplayer-class.html#__init__,Method screenlets.plugins.Proxy.Proxy.__init__()=screenlets.plugins.Proxy.Proxy-class.html#__init__,Method screenlets.plugins.Quodlibet.QuodlibetAPI.__init__()=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__init__,Method screenlets.plugins.Rhythmbox.RhythmboxAPI.__init__()=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__init__,Method screenlets.plugins.Sonata.SonataAPI.__init__()=screenlets.plugins.Sonata.SonataAPI-class.html#__init__,Method screenlets.plugins.Songbird.SongbirdAPI.__init__()=screenlets.plugins.Songbird.SongbirdAPI-class.html#__init__,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.__init__()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__init__,Method screenlets.plugins.iCal.DateSet.__init__()=screenlets.plugins.iCal.DateSet-class.html#__init__,Method screenlets.plugins.iCal.ICalEvent.__init__()=screenlets.plugins.iCal.ICalEvent-class.html#__init__,Method screenlets.plugins.iCal.ICalReader.__init__()=screenlets.plugins.iCal.ICalReader-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.Key.__init__()=screenlets.plugins.keyring.KeyRing.Key-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.__init__()=screenlets.plugins.keyring.KeyRing-class.html#__init__,Method screenlets.plugins.mpdclient2.command_sender.__init__()=screenlets.plugins.mpdclient2.command_sender-class.html#__init__,Method screenlets.plugins.mpdclient2.mpd_connection.__init__()=screenlets.plugins.mpdclient2.mpd_connection-class.html#__init__,Method screenlets.plugins.mpdclient2.response_fetcher.__init__()=screenlets.plugins.mpdclient2.response_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.sender_n_fetcher.__init__()=screenlets.plugins.mpdclient2.sender_n_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.socket_talker.__init__()=screenlets.plugins.mpdclient2.socket_talker-class.html#__init__,Method screenlets.sensors.CPUSensor.__init__()=screenlets.sensors.CPUSensor-class.html#__init__,Method screenlets.sensors.MemorySensor.__init__()=screenlets.sensors.MemorySensor-class.html#__init__,Method screenlets.sensors.NetSensor.__init__()=screenlets.sensors.NetSensor-class.html#__init__,Method screenlets.sensors.Sensor.__init__()=screenlets.sensors.Sensor-class.html#__init__,Method screenlets.services.ScreenletService.__init__()=screenlets.services.ScreenletService-class.html#__init__,Method screenlets.session.ScreenletSession.__init__()=screenlets.session.ScreenletSession-class.html#__init__,Method screenlets.utils.FileMonitor.__init__()=screenlets.utils.FileMonitor-class.html#__init__,Method screenlets.utils.IniReader.__init__()=screenlets.utils.IniReader-class.html#__init__,Method screenlets.utils.MLStripper.__init__()=screenlets.utils.MLStripper-class.html#__init__,Method screenlets.utils.Notifier.__init__()=screenlets.utils.Notifier-class.html#__init__,Method screenlets.utils.ScreenletInfo.__init__()=screenlets.utils.ScreenletInfo-class.html#__init__"><a title="screenlets.Notify.__init__
 
115
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
 
116
<a name="AccountOption.__init__"></a><div id="AccountOption.__init__-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="AccountOption.__init__-toggle" onclick="return toggle('AccountOption.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">group</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">attr</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
117
</div><div id="AccountOption.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.__init__-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Class screenlets.options.account_option.AccountOption=screenlets.options.account_option.AccountOption-class.html"><a title="screenlets.options.account_option.AccountOption" class="py-name" href="#" onclick="return doclink('link-6', 'AccountOption', 'link-6');">AccountOption</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method screenlets.Notify.__init__()=screenlets.Notify-class.html#__init__,Method screenlets.Screenlet.__init__()=screenlets.Screenlet-class.html#__init__,Method screenlets.ScreenletTheme.__init__()=screenlets.ScreenletTheme-class.html#__init__,Method screenlets.ShapedWidget.__init__()=screenlets.ShapedWidget-class.html#__init__,Method screenlets.Tooltip.__init__()=screenlets.Tooltip-class.html#__init__,Method screenlets.WrapLabel.__init__()=screenlets.WrapLabel-class.html#__init__,Method screenlets.backend.CachingBackend.__init__()=screenlets.backend.CachingBackend-class.html#__init__,Method screenlets.backend.GconfBackend.__init__()=screenlets.backend.GconfBackend-class.html#__init__,Method screenlets.backend.ScreenletsBackend.__init__()=screenlets.backend.ScreenletsBackend-class.html#__init__,Method screenlets.install.ScreenletInstaller.__init__()=screenlets.install.ScreenletInstaller-class.html#__init__,Method screenlets.menu.ApplicationMenu.__init__()=screenlets.menu.ApplicationMenu-class.html#__init__,Method screenlets.menu.ImageMenuItem.__init__()=screenlets.menu.ImageMenuItem-class.html#__init__,Method screenlets.options.account_option.AccountOption.__init__()=screenlets.options.account_option.AccountOption-class.html#__init__,Method screenlets.options.base.EditableOptions.__init__()=screenlets.options.base.EditableOptions-class.html#__init__,Method screenlets.options.base.Option.__init__()=screenlets.options.base.Option-class.html#__init__,Method screenlets.options.base.OptionsDialog.__init__()=screenlets.options.base.OptionsDialog-class.html#__init__,Method screenlets.options.list_option.ListOptionDialog.__init__()=screenlets.options.list_option.ListOptionDialog-class.html#__init__,Method screenlets.plugins.Amarok.AmarokAPI.__init__()=screenlets.plugins.Amarok.AmarokAPI-class.html#__init__,Method screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch.__init__()=screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch-class.html#__init__,Method screenlets.plugins.Audacious.AudaciousAPI.__init__()=screenlets.plugins.Audacious.AudaciousAPI-class.html#__init__,Method screenlets.plugins.Banshee.BansheeAPI.__init__()=screenlets.plugins.Banshee.BansheeAPI-class.html#__init__,Method screenlets.plugins.Convert.Converter.__init__()=screenlets.plugins.Convert.Converter-class.html#__init__,Method screenlets.plugins.CoverSearch.CoverSearch.__init__()=screenlets.plugins.CoverSearch.CoverSearch-class.html#__init__,Method screenlets.plugins.Exaile.ExaileAPI.__init__()=screenlets.plugins.Exaile.ExaileAPI-class.html#__init__,Method screenlets.plugins.Flickr.Flickr.__init__()=screenlets.plugins.Flickr.Flickr-class.html#__init__,Method screenlets.plugins.GenericPlayer.GenericAPI.__init__()=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__init__,Method screenlets.plugins.Gstreamer.gstreamer.__init__()=screenlets.plugins.Gstreamer.gstreamer-class.html#__init__,Method screenlets.plugins.Juk.JukAPI.__init__()=screenlets.plugins.Juk.JukAPI-class.html#__init__,Method screenlets.plugins.Kaffeine.KaffeineAPI.__init__()=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__init__,Method screenlets.plugins.LastFMProxy.LastFMProxyAPI.__init__()=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__init__,Method screenlets.plugins.Listen.ListenAPI.__init__()=screenlets.plugins.Listen.ListenAPI-class.html#__init__,Method screenlets.plugins.Loader.GnomeVFSAsyncSrc.__init__()=screenlets.plugins.Loader.GnomeVFSAsyncSrc-class.html#__init__,Method screenlets.plugins.Mail.IMAPBackend.__init__()=screenlets.plugins.Mail.IMAPBackend-class.html#__init__,Method screenlets.plugins.Mail.MailCheckBackend.__init__()=screenlets.plugins.Mail.MailCheckBackend-class.html#__init__,Method screenlets.plugins.Mail.Mailer.__init__()=screenlets.plugins.Mail.Mailer-class.html#__init__,Method screenlets.plugins.Mail.POP3Backend.__init__()=screenlets.plugins.Mail.POP3Backend-class.html#__init__,Method screenlets.plugins.Mplayer.Mplayer.__init__()=screenlets.plugins.Mplayer.Mplayer-class.html#__init__,Method screenlets.plugins.Proxy.Proxy.__init__()=screenlets.plugins.Proxy.Proxy-class.html#__init__,Method screenlets.plugins.Quodlibet.QuodlibetAPI.__init__()=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__init__,Method screenlets.plugins.Rhythmbox.RhythmboxAPI.__init__()=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__init__,Method screenlets.plugins.Sonata.SonataAPI.__init__()=screenlets.plugins.Sonata.SonataAPI-class.html#__init__,Method screenlets.plugins.Songbird.SongbirdAPI.__init__()=screenlets.plugins.Songbird.SongbirdAPI-class.html#__init__,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.__init__()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__init__,Method screenlets.plugins.iCal.DateSet.__init__()=screenlets.plugins.iCal.DateSet-class.html#__init__,Method screenlets.plugins.iCal.ICalEvent.__init__()=screenlets.plugins.iCal.ICalEvent-class.html#__init__,Method screenlets.plugins.iCal.ICalReader.__init__()=screenlets.plugins.iCal.ICalReader-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.Key.__init__()=screenlets.plugins.keyring.KeyRing.Key-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.__init__()=screenlets.plugins.keyring.KeyRing-class.html#__init__,Method screenlets.plugins.mpdclient2.command_sender.__init__()=screenlets.plugins.mpdclient2.command_sender-class.html#__init__,Method screenlets.plugins.mpdclient2.mpd_connection.__init__()=screenlets.plugins.mpdclient2.mpd_connection-class.html#__init__,Method screenlets.plugins.mpdclient2.response_fetcher.__init__()=screenlets.plugins.mpdclient2.response_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.sender_n_fetcher.__init__()=screenlets.plugins.mpdclient2.sender_n_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.socket_talker.__init__()=screenlets.plugins.mpdclient2.socket_talker-class.html#__init__,Method screenlets.sensors.CPUSensor.__init__()=screenlets.sensors.CPUSensor-class.html#__init__,Method screenlets.sensors.MemorySensor.__init__()=screenlets.sensors.MemorySensor-class.html#__init__,Method screenlets.sensors.NetSensor.__init__()=screenlets.sensors.NetSensor-class.html#__init__,Method screenlets.sensors.Sensor.__init__()=screenlets.sensors.Sensor-class.html#__init__,Method screenlets.services.ScreenletService.__init__()=screenlets.services.ScreenletService-class.html#__init__,Method screenlets.session.ScreenletSession.__init__()=screenlets.session.ScreenletSession-class.html#__init__,Method screenlets.utils.FileMonitor.__init__()=screenlets.utils.FileMonitor-class.html#__init__,Method screenlets.utils.IniReader.__init__()=screenlets.utils.IniReader-class.html#__init__,Method screenlets.utils.MLStripper.__init__()=screenlets.utils.MLStripper-class.html#__init__,Method screenlets.utils.Notifier.__init__()=screenlets.utils.Notifier-class.html#__init__,Method screenlets.utils.ScreenletInfo.__init__()=screenlets.utils.ScreenletInfo-class.html#__init__"><a title="screenlets.Notify.__init__
119
118
screenlets.Screenlet.__init__
120
119
screenlets.ScreenletTheme.__init__
121
120
screenlets.ShapedWidget.__init__
179
178
screenlets.utils.MLStripper.__init__
180
179
screenlets.utils.Notifier.__init__
181
180
screenlets.utils.ScreenletInfo.__init__" class="py-name" href="#" onclick="return doclink('link-7', '__init__', 'link-7');">__init__</a></tt> <tt class="py-op">(</tt><tt class="py-name">group</tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name" targets="Variable screenlets.plugins.keyring.KeyRing.Key.name=screenlets.plugins.keyring.KeyRing.Key-class.html#name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-8', 'name', 'link-8');">name</a></tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">attr</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
182
 
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-comment"># check for availability of keyring</tt> </tt>
183
 
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">is_available</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
184
 
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'GnomeKeyring is not available!!'</tt><tt class="py-op">)</tt> </tt>
185
 
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS A WORKAROUND FOR A BUG IN KEYRING (usually we would use</tt> </tt>
186
 
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-comment"># gnomekeyring.get_default_keyring_sync() here):</tt> </tt>
187
 
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-comment"># find first available keyring</tt> </tt>
188
 
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">list_keyring_names_sync</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
189
 
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
190
 
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'No keyrings found. Please create one first!'</tt><tt class="py-op">)</tt> </tt>
191
 
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
192
 
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt class="py-comment"># we prefer the default keyring</tt> </tt>
193
 
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
194
 
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module screenlets.plugins.keyring=screenlets.plugins.keyring-module.html"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-9', 'keyring', 'link-9');">keyring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">get_default_keyring_sync</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
195
 
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
196
 
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">"session"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">:</tt> </tt>
197
 
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt> <tt class="py-string">"Warning: No default keyring found, using session keyring. Storage is not permanent!"</tt> </tt>
198
 
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-10', 'keyring', 'link-9');">keyring</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"session"</tt> </tt>
199
 
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
200
 
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt> <tt class="py-string">"Warning: Neither default nor session keyring found, assuming keyring %s!"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
201
 
<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-11', 'keyring', 'link-9');">keyring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
202
 
</div><a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
203
 
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
204
 
<a name="AccountOption.on_import"></a><div id="AccountOption.on_import-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="AccountOption.on_import-toggle" onclick="return toggle('AccountOption.on_import');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#on_import">on_import</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strvalue</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
205
 
</div><div id="AccountOption.on_import-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.on_import-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-docstring">"""Import account info from a string (like 'username:auth_token'),.</tt> </tt>
206
 
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-docstring">        retrieve the password from the storage and return a tuple containing</tt> </tt>
207
 
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-docstring">        username and password."""</tt> </tt>
208
 
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-comment"># split string into username/auth_token</tt> </tt>
209
 
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-comment">#data = strvalue.split(':', 1)</tt> </tt>
210
 
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt id="link-12" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-8');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">auth_token</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">strvalue</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
211
 
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-13" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-8');">name</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">auth_token</tt><tt class="py-op">:</tt> </tt>
212
 
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-comment"># read pass from storage</tt> </tt>
213
 
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
214
 
<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                <tt class="py-name">pw</tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">item_get_info_sync</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-14', 'keyring', 'link-9');">keyring</a></tt><tt class="py-op">,</tt>  </tt>
215
 
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                    <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">auth_token</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">get_secret</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
216
 
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
217
 
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-string">"ERROR: Unable to read password from keyring: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">ex</tt> </tt>
218
 
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                <tt class="py-name">pw</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
219
 
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-comment"># return</tt> </tt>
220
 
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-15', 'name', 'link-8');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pw</tt><tt class="py-op">)</tt> </tt>
221
 
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
222
 
<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Illegal value in AccountOption.on_import.'</tt><tt class="py-op">)</tt> </tt>
223
 
</div><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"> </tt>
224
 
<a name="AccountOption.on_export"></a><div id="AccountOption.on_export-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="AccountOption.on_export-toggle" onclick="return toggle('AccountOption.on_export');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#on_export">on_export</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
225
 
</div><div id="AccountOption.on_export-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.on_export-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-docstring">"""Export the given tuple/list containing a username and a password. The</tt> </tt>
226
 
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">        function stores the password in the gnomekeyring and returns a</tt> </tt>
227
 
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">        string in form 'username:auth_token'."""</tt> </tt>
228
 
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-comment"># store password in storage</tt> </tt>
229
 
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-16', 'name', 'link-8');">name</a></tt><tt class="py-op">=</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
230
 
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">auth_token</tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">item_create_sync</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-17', 'keyring', 'link-9');">keyring</a></tt><tt class="py-op">,</tt>  </tt>
231
 
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">            <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">ITEM_GENERIC_SECRET</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">attribs</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
232
 
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-comment"># build value from username and auth_token</tt> </tt>
233
 
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">':'</tt> <tt class="py-op">+</tt> <tt id="link-18" class="py-name" targets="Method screenlets.plugins.Convert.Converter.str()=screenlets.plugins.Convert.Converter-class.html#str"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-18', 'str', 'link-18');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">auth_token</tt><tt class="py-op">)</tt> </tt>
234
 
</div><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
235
 
<a name="AccountOption.generate_widget"></a><div id="AccountOption.generate_widget-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="AccountOption.generate_widget-toggle" onclick="return toggle('AccountOption.generate_widget');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#generate_widget">generate_widget</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
236
 
</div><div id="AccountOption.generate_widget-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.generate_widget-expanded"><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-docstring">"""Generate a textbox for a account options"""</tt> </tt>
237
 
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Variable screenlets.options.base.Option.widget=screenlets.options.base.Option-class.html#widget"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-19', 'widget', 'link-19');">widget</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">HBox</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
238
 
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">vb</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">VBox</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
239
 
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">Entry</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
240
 
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method screenlets.WrapLabel.set_text()=screenlets.WrapLabel-class.html#set_text"><a title="screenlets.WrapLabel.set_text" class="py-name" href="#" onclick="return doclink('link-20', 'set_text', 'link-20');">set_text</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
241
 
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method screenlets.Notify.show()=screenlets.Notify-class.html#show,Method screenlets.Screenlet.show()=screenlets.Screenlet-class.html#show,Method screenlets.Tooltip.show()=screenlets.Tooltip-class.html#show"><a title="screenlets.Notify.show
 
181
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-comment"># check for availability of keyring</tt> </tt>
 
182
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">is_available</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
183
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'GnomeKeyring is not available!!'</tt><tt class="py-op">)</tt> </tt>
 
184
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS A WORKAROUND FOR A BUG IN KEYRING (usually we would use</tt> </tt>
 
185
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-comment"># gnomekeyring.get_default_keyring_sync() here):</tt> </tt>
 
186
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-comment"># find first available keyring</tt> </tt>
 
187
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">list_keyring_names_sync</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
188
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 
189
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'No keyrings found. Please create one first!'</tt><tt class="py-op">)</tt> </tt>
 
190
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
191
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">            <tt class="py-comment"># we prefer the default keyring</tt> </tt>
 
192
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
193
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Module screenlets.plugins.keyring=screenlets.plugins.keyring-module.html"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-9', 'keyring', 'link-9');">keyring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">get_default_keyring_sync</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
194
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
 
195
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-string">"session"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">:</tt> </tt>
 
196
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt> <tt class="py-string">"Warning: No default keyring found, using session keyring. Storage is not permanent!"</tt> </tt>
 
197
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-10', 'keyring', 'link-9');">keyring</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"session"</tt> </tt>
 
198
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
199
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                    <tt class="py-keyword">print</tt> <tt class="py-string">"Warning: Neither default nor session keyring found, assuming keyring %s!"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
200
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-11', 'keyring', 'link-9');">keyring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">keyring_list</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 
201
</div><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"> </tt>
 
202
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
 
203
<a name="AccountOption.on_import"></a><div id="AccountOption.on_import-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="AccountOption.on_import-toggle" onclick="return toggle('AccountOption.on_import');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#on_import">on_import</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strvalue</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
204
</div><div id="AccountOption.on_import-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.on_import-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-docstring">"""Import account info from a string (like 'username:auth_token'),.</tt> </tt>
 
205
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring">        retrieve the password from the storage and return a tuple containing</tt> </tt>
 
206
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-docstring">        username and password."""</tt> </tt>
 
207
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-comment"># split string into username/auth_token</tt> </tt>
 
208
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-comment">#data = strvalue.split(':', 1)</tt> </tt>
 
209
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt id="link-12" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-12', 'name', 'link-8');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">auth_token</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">strvalue</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">':'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
 
210
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-13" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-8');">name</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">auth_token</tt><tt class="py-op">:</tt> </tt>
 
211
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt class="py-comment"># read pass from storage</tt> </tt>
 
212
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
213
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                <tt class="py-name">pw</tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">item_get_info_sync</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-14', 'keyring', 'link-9');">keyring</a></tt><tt class="py-op">,</tt>  </tt>
 
214
<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                    <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">auth_token</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">get_secret</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
215
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
 
216
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-string">"ERROR: Unable to read password from keyring: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">ex</tt> </tt>
 
217
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                <tt class="py-name">pw</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
218
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">            <tt class="py-comment"># return</tt> </tt>
 
219
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-15', 'name', 'link-8');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pw</tt><tt class="py-op">)</tt> </tt>
 
220
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
221
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Illegal value in AccountOption.on_import.'</tt><tt class="py-op">)</tt> </tt>
 
222
</div><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
 
223
<a name="AccountOption.on_export"></a><div id="AccountOption.on_export-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="AccountOption.on_export-toggle" onclick="return toggle('AccountOption.on_export');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#on_export">on_export</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
224
</div><div id="AccountOption.on_export-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.on_export-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-docstring">"""Export the given tuple/list containing a username and a password. The</tt> </tt>
 
225
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">        function stores the password in the gnomekeyring and returns a</tt> </tt>
 
226
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">        string in form 'username:auth_token'."""</tt> </tt>
 
227
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-comment"># store password in storage</tt> </tt>
 
228
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">attribs</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-16', 'name', 'link-8');">name</a></tt><tt class="py-op">=</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
229
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">auth_token</tt> <tt class="py-op">=</tt> <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">item_create_sync</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="screenlets.plugins.keyring" class="py-name" href="#" onclick="return doclink('link-17', 'keyring', 'link-9');">keyring</a></tt><tt class="py-op">,</tt>  </tt>
 
230
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">gnomekeyring</tt><tt class="py-op">.</tt><tt class="py-name">ITEM_GENERIC_SECRET</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">attribs</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 
231
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-comment"># build value from username and auth_token</tt> </tt>
 
232
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">':'</tt> <tt class="py-op">+</tt> <tt id="link-18" class="py-name" targets="Method screenlets.plugins.Convert.Converter.str()=screenlets.plugins.Convert.Converter-class.html#str"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-18', 'str', 'link-18');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">auth_token</tt><tt class="py-op">)</tt> </tt>
 
233
</div><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"> </tt>
 
234
<a name="AccountOption.generate_widget"></a><div id="AccountOption.generate_widget-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="AccountOption.generate_widget-toggle" onclick="return toggle('AccountOption.generate_widget');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#generate_widget">generate_widget</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
235
</div><div id="AccountOption.generate_widget-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.generate_widget-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-docstring">"""Generate a textbox for a account options"""</tt> </tt>
 
236
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Variable screenlets.options.base.Option.widget=screenlets.options.base.Option-class.html#widget"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-19', 'widget', 'link-19');">widget</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">HBox</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
237
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">vb</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">VBox</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
238
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">Entry</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
239
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method screenlets.WrapLabel.set_text()=screenlets.WrapLabel-class.html#set_text"><a title="screenlets.WrapLabel.set_text" class="py-name" href="#" onclick="return doclink('link-20', 'set_text', 'link-20');">set_text</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
240
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method screenlets.Notify.show()=screenlets.Notify-class.html#show,Method screenlets.Screenlet.show()=screenlets.Screenlet-class.html#show,Method screenlets.Tooltip.show()=screenlets.Tooltip-class.html#show"><a title="screenlets.Notify.show
242
241
screenlets.Screenlet.show
243
242
screenlets.Tooltip.show" class="py-name" href="#" onclick="return doclink('link-21', 'show', 'link-21');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
244
 
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">Entry</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
245
 
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt class="py-name">set_visibility</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt>    <tt class="py-comment"># password</tt> </tt>
246
 
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="screenlets.WrapLabel.set_text" class="py-name" href="#" onclick="return doclink('link-22', 'set_text', 'link-20');">set_text</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
247
 
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="screenlets.Notify.show
 
243
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">Entry</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
244
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt class="py-name">set_visibility</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt>    <tt class="py-comment"># password</tt> </tt>
 
245
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="screenlets.WrapLabel.set_text" class="py-name" href="#" onclick="return doclink('link-22', 'set_text', 'link-20');">set_text</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
246
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="screenlets.Notify.show
248
247
screenlets.Screenlet.show
249
248
screenlets.Tooltip.show" class="py-name" href="#" onclick="return doclink('link-23', 'show', 'link-21');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
250
 
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-name">but</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">Button</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="screenlets._
 
249
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">but</tt> <tt class="py-op">=</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">Button</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="screenlets._
251
250
screenlets.backend._
252
251
screenlets.install._
253
252
screenlets.menu._
256
255
screenlets.services._
257
256
screenlets.session._
258
257
screenlets.utils._" class="py-name" href="#" onclick="return doclink('link-24', '_', 'link-2');">_</a></tt><tt class="py-op">(</tt><tt class="py-string">'Apply'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">STOCK_APPLY</tt><tt class="py-op">)</tt> </tt>
259
 
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">but</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="screenlets.Notify.show
 
258
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-name">but</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="screenlets.Notify.show
260
259
screenlets.Screenlet.show
261
260
screenlets.Tooltip.show" class="py-name" href="#" onclick="return doclink('link-25', 'show', 'link-21');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
262
 
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">but</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method screenlets.plugins.Amarok.AmarokAPI.connect()=screenlets.plugins.Amarok.AmarokAPI-class.html#connect,Method screenlets.plugins.Audacious.AudaciousAPI.connect()=screenlets.plugins.Audacious.AudaciousAPI-class.html#connect,Method screenlets.plugins.Banshee.BansheeAPI.connect()=screenlets.plugins.Banshee.BansheeAPI-class.html#connect,Method screenlets.plugins.Exaile.ExaileAPI.connect()=screenlets.plugins.Exaile.ExaileAPI-class.html#connect,Method screenlets.plugins.GenericPlayer.GenericAPI.connect()=screenlets.plugins.GenericPlayer.GenericAPI-class.html#connect,Method screenlets.plugins.Juk.JukAPI.connect()=screenlets.plugins.Juk.JukAPI-class.html#connect,Method screenlets.plugins.Kaffeine.KaffeineAPI.connect()=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#connect,Method screenlets.plugins.LastFMProxy.LastFMProxyAPI.connect()=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#connect,Method screenlets.plugins.Listen.ListenAPI.connect()=screenlets.plugins.Listen.ListenAPI-class.html#connect,Method screenlets.plugins.Quodlibet.QuodlibetAPI.connect()=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#connect,Method screenlets.plugins.Rhythmbox.RhythmboxAPI.connect()=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#connect,Method screenlets.plugins.Sonata.SonataAPI.connect()=screenlets.plugins.Sonata.SonataAPI-class.html#connect,Method screenlets.plugins.Songbird.SongbirdAPI.connect()=screenlets.plugins.Songbird.SongbirdAPI-class.html#connect,Function screenlets.plugins.mpdclient2.connect()=screenlets.plugins.mpdclient2-module.html#connect"><a title="screenlets.plugins.Amarok.AmarokAPI.connect
 
261
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">but</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method screenlets.plugins.Amarok.AmarokAPI.connect()=screenlets.plugins.Amarok.AmarokAPI-class.html#connect,Method screenlets.plugins.Audacious.AudaciousAPI.connect()=screenlets.plugins.Audacious.AudaciousAPI-class.html#connect,Method screenlets.plugins.Banshee.BansheeAPI.connect()=screenlets.plugins.Banshee.BansheeAPI-class.html#connect,Method screenlets.plugins.Exaile.ExaileAPI.connect()=screenlets.plugins.Exaile.ExaileAPI-class.html#connect,Method screenlets.plugins.GenericPlayer.GenericAPI.connect()=screenlets.plugins.GenericPlayer.GenericAPI-class.html#connect,Method screenlets.plugins.Juk.JukAPI.connect()=screenlets.plugins.Juk.JukAPI-class.html#connect,Method screenlets.plugins.Kaffeine.KaffeineAPI.connect()=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#connect,Method screenlets.plugins.LastFMProxy.LastFMProxyAPI.connect()=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#connect,Method screenlets.plugins.Listen.ListenAPI.connect()=screenlets.plugins.Listen.ListenAPI-class.html#connect,Method screenlets.plugins.Quodlibet.QuodlibetAPI.connect()=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#connect,Method screenlets.plugins.Rhythmbox.RhythmboxAPI.connect()=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#connect,Method screenlets.plugins.Sonata.SonataAPI.connect()=screenlets.plugins.Sonata.SonataAPI-class.html#connect,Method screenlets.plugins.Songbird.SongbirdAPI.connect()=screenlets.plugins.Songbird.SongbirdAPI-class.html#connect,Function screenlets.plugins.mpdclient2.connect()=screenlets.plugins.mpdclient2-module.html#connect"><a title="screenlets.plugins.Amarok.AmarokAPI.connect
263
262
screenlets.plugins.Audacious.AudaciousAPI.connect
264
263
screenlets.plugins.Banshee.BansheeAPI.connect
265
264
screenlets.plugins.Exaile.ExaileAPI.connect
285
284
screenlets.options.number_option.IntOption.has_changed
286
285
screenlets.options.string_option.StringOption.has_changed
287
286
screenlets.options.time_option.TimeOption.has_changed" class="py-name" href="#" onclick="return doclink('link-27', 'has_changed', 'link-27');">has_changed</a></tt><tt class="py-op">)</tt> </tt>
288
 
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-name">vb</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method screenlets.services.ScreenletService.add()=screenlets.services.ScreenletService-class.html#add"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-28', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">input_name</tt><tt class="py-op">)</tt> </tt>
289
 
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">vb</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-29', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">input_pass</tt><tt class="py-op">)</tt> </tt>
290
 
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">vb</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="screenlets.Notify.show
 
287
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">vb</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method screenlets.services.ScreenletService.add()=screenlets.services.ScreenletService-class.html#add"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-28', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">input_name</tt><tt class="py-op">)</tt> </tt>
 
288
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-name">vb</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-29', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">input_pass</tt><tt class="py-op">)</tt> </tt>
 
289
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">vb</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="screenlets.Notify.show
291
290
screenlets.Screenlet.show
292
291
screenlets.Tooltip.show" class="py-name" href="#" onclick="return doclink('link-30', 'show', 'link-21');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
293
 
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-name">but</tt><tt class="py-op">.</tt><tt class="py-name">set_tooltip_text</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="screenlets._
 
292
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">but</tt><tt class="py-op">.</tt><tt class="py-name">set_tooltip_text</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="screenlets._
294
293
screenlets.backend._
295
294
screenlets.install._
296
295
screenlets.menu._
299
298
screenlets.services._
300
299
screenlets.session._
301
300
screenlets.utils._" class="py-name" href="#" onclick="return doclink('link-31', '_', 'link-2');">_</a></tt><tt class="py-op">(</tt><tt class="py-string">'Apply username/password ...'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
302
 
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt><tt class="py-op">.</tt><tt class="py-name">set_tooltip_text</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="screenlets._
 
301
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-name">input_name</tt><tt class="py-op">.</tt><tt class="py-name">set_tooltip_text</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="screenlets._
303
302
screenlets.backend._
304
303
screenlets.install._
305
304
screenlets.menu._
308
307
screenlets.services._
309
308
screenlets.session._
310
309
screenlets.utils._" class="py-name" href="#" onclick="return doclink('link-32', '_', 'link-2');">_</a></tt><tt class="py-op">(</tt><tt class="py-string">'Enter username here ...'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
311
 
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt class="py-name">set_tooltip_text</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="screenlets._
 
310
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-name">input_pass</tt><tt class="py-op">.</tt><tt class="py-name">set_tooltip_text</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="screenlets._
312
311
screenlets.backend._
313
312
screenlets.install._
314
313
screenlets.menu._
317
316
screenlets.services._
318
317
screenlets.session._
319
318
screenlets.utils._" class="py-name" href="#" onclick="return doclink('link-33', '_', 'link-2');">_</a></tt><tt class="py-op">(</tt><tt class="py-string">'Enter password here ...'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
320
 
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-34', 'widget', 'link-19');">widget</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-35', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">vb</tt><tt class="py-op">)</tt> </tt>
321
 
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-36', 'widget', 'link-19');">widget</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-37', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">but</tt><tt class="py-op">)</tt> </tt>
322
 
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-38', 'widget', 'link-19');">widget</a></tt> </tt>
323
 
</div><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
324
 
<a name="AccountOption.set_value"></a><div id="AccountOption.set_value-def"><a name="L123"></a><tt class="py-lineno">123</tt> <a class="py-toggle" href="#" id="AccountOption.set_value-toggle" onclick="return toggle('AccountOption.set_value');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#set_value">set_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
325
 
</div><div id="AccountOption.set_value-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.set_value-expanded"><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-docstring">"""Set the account value as required."""</tt> </tt>
326
 
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
327
 
</div><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
328
 
<a name="AccountOption.has_changed"></a><div id="AccountOption.has_changed-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="AccountOption.has_changed-toggle" onclick="return toggle('AccountOption.has_changed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#has_changed">has_changed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">widget</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
329
 
</div><div id="AccountOption.has_changed-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.has_changed-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-docstring">"""Executed when the widget event kicks off."""</tt> </tt>
330
 
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-comment"># the widget is a HBox containing a VBox containing two Entries</tt> </tt>
331
 
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-comment"># (ideally we should have a custom widget for the AccountOption)</tt> </tt>
332
 
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-39', 'widget', 'link-19');">widget</a></tt><tt class="py-op">.</tt><tt class="py-name">get_children</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
333
 
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> <tt class="py-op">==</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">VBox</tt><tt class="py-op">:</tt> </tt>
334
 
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">               <tt class="py-name">c2</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">get_children</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
335
 
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">get_text</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">get_text</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
336
 
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="screenlets.options.account_option.AccountOption" class="py-name" href="#" onclick="return doclink('link-40', 'AccountOption', 'link-6');">AccountOption</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="screenlets.options.account_option.AccountOption.has_changed
 
319
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-34', 'widget', 'link-19');">widget</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-35', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">vb</tt><tt class="py-op">)</tt> </tt>
 
320
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-36', 'widget', 'link-19');">widget</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="screenlets.services.ScreenletService.add" class="py-name" href="#" onclick="return doclink('link-37', 'add', 'link-28');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">but</tt><tt class="py-op">)</tt> </tt>
 
321
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-38', 'widget', 'link-19');">widget</a></tt> </tt>
 
322
</div><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
 
323
<a name="AccountOption.set_value"></a><div id="AccountOption.set_value-def"><a name="L122"></a><tt class="py-lineno">122</tt> <a class="py-toggle" href="#" id="AccountOption.set_value-toggle" onclick="return toggle('AccountOption.set_value');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#set_value">set_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
324
</div><div id="AccountOption.set_value-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.set_value-expanded"><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-docstring">"""Set the account value as required."""</tt> </tt>
 
325
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
 
326
</div><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
 
327
<a name="AccountOption.has_changed"></a><div id="AccountOption.has_changed-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="AccountOption.has_changed-toggle" onclick="return toggle('AccountOption.has_changed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.options.account_option.AccountOption-class.html#has_changed">has_changed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">widget</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
328
</div><div id="AccountOption.has_changed-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AccountOption.has_changed-expanded"><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-docstring">"""Executed when the widget event kicks off."""</tt> </tt>
 
329
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-comment"># the widget is a HBox containing a VBox containing two Entries</tt> </tt>
 
330
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-comment"># (ideally we should have a custom widget for the AccountOption)</tt> </tt>
 
331
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="screenlets.options.base.Option.widget" class="py-name" href="#" onclick="return doclink('link-39', 'widget', 'link-19');">widget</a></tt><tt class="py-op">.</tt><tt class="py-name">get_children</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
332
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt> <tt class="py-op">==</tt> <tt class="py-name">gtk</tt><tt class="py-op">.</tt><tt class="py-name">VBox</tt><tt class="py-op">:</tt> </tt>
 
333
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">               <tt class="py-name">c2</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">get_children</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
334
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">get_text</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c2</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">get_text</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
335
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="screenlets.options.account_option.AccountOption" class="py-name" href="#" onclick="return doclink('link-40', 'AccountOption', 'link-6');">AccountOption</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="screenlets.options.account_option.AccountOption.has_changed
337
336
screenlets.options.base.Option.has_changed
338
337
screenlets.options.boolean_option.BoolOption.has_changed
339
338
screenlets.options.colour_option.ColorOption.has_changed
346
345
screenlets.options.number_option.IntOption.has_changed
347
346
screenlets.options.string_option.StringOption.has_changed
348
347
screenlets.options.time_option.TimeOption.has_changed" class="py-name" href="#" onclick="return doclink('link-41', 'has_changed', 'link-27');">has_changed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
349
 
</div></div><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"> </tt>
350
 
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-string">"""#TEST:</tt> </tt>
351
 
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-string">o = AccountOption('None', 'pop3_account', ('',''), 'Username/Password', 'Enter username/password here ...')</tt> </tt>
352
 
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-string"># save option to keyring</tt> </tt>
353
 
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-string">exported_account = o.on_export(('RYX', 'mysecretpassword'))</tt> </tt>
354
 
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-string">print exported_account</tt> </tt>
355
 
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-string"># and read option back from keyring</tt> </tt>
356
 
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-string">print o.on_import(exported_account)</tt> </tt>
357
 
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-string">"""</tt> </tt>
358
 
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 
348
</div></div><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"> </tt>
 
349
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-string">"""#TEST:</tt> </tt>
 
350
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-string">o = AccountOption('None', 'pop3_account', ('',''), 'Username/Password', 'Enter username/password here ...')</tt> </tt>
 
351
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-string"># save option to keyring</tt> </tt>
 
352
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-string">exported_account = o.on_export(('RYX', 'mysecretpassword'))</tt> </tt>
 
353
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-string">print exported_account</tt> </tt>
 
354
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-string"># and read option back from keyring</tt> </tt>
 
355
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-string">print o.on_import(exported_account)</tt> </tt>
 
356
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-string">"""</tt> </tt>
 
357
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt><script type="text/javascript">
359
358
<!--
360
359
expandto(location.href);
361
360
// -->
386
385
      <th class="navbar" align="right" width="100%">
387
386
        <table border="0" cellpadding="0" cellspacing="0">
388
387
          <tr><th class="navbar" align="center"
389
 
            >Screenlets 0.1.4</th>
 
388
            >Screenlets 0.1.6</th>
390
389
          </tr></table></th>
391
390
  </tr>
392
391
</table>
393
392
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
394
393
  <tr>
395
394
    <td align="left" class="footer">
396
 
    Generated by Epydoc 3.0.1 on Mon Jun  6 10:56:39 2011
 
395
    Generated by Epydoc 3.0.1 on Wed Jan  4 16:58:27 2012
397
396
    </td>
398
397
    <td align="right" class="footer">
399
398
      <a target="mainFrame" href="http://epydoc.sourceforge.net"