Premier commit : Code et doc (état de publication)
[gedit/flake8] / doc / build / html / _modules / flake8_integration / tree.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8     
9     <title>flake8_integration.tree &mdash; gedit Flake8 integration 0.1 documentation</title>
10     
11     <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
12     <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
13     
14     <script type="text/javascript">
15       var DOCUMENTATION_OPTIONS = {
16         URL_ROOT:    '../../',
17         VERSION:     '0.1',
18         COLLAPSE_INDEX: false,
19         FILE_SUFFIX: '.html',
20         HAS_SOURCE:  true
21       };
22     </script>
23     <script type="text/javascript" src="../../_static/jquery.js"></script>
24     <script type="text/javascript" src="../../_static/underscore.js"></script>
25     <script type="text/javascript" src="../../_static/doctools.js"></script>
26     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27     <link rel="top" title="gedit Flake8 integration 0.1 documentation" href="../../index.html" />
28     <link rel="up" title="Module code" href="../index.html" /> 
29   </head>
30   <body>
31     <div class="related">
32       <h3>Navigation</h3>
33       <ul>
34         <li class="right" style="margin-right: 10px">
35           <a href="../../genindex.html" title="General Index"
36              accesskey="I">index</a></li>
37         <li class="right" >
38           <a href="../../py-modindex.html" title="Python Module Index"
39              >modules</a> |</li>
40         <li><a href="../../index.html">gedit Flake8 integration 0.1 documentation</a> &raquo;</li>
41           <li><a href="../index.html" accesskey="U">Module code</a> &raquo;</li> 
42       </ul>
43     </div>  
44
45     <div class="document">
46       <div class="documentwrapper">
47         <div class="bodywrapper">
48           <div class="body">
49             
50   <h1>Source code for flake8_integration.tree</h1><div class="highlight"><pre>
51 <span class="c">#-*- coding: utf-8 -*-</span>
52
53 <span class="sd">&quot;&quot;&quot;Module managing the tree and all stuff around it</span>
54
55 <span class="sd">:author: Sébastien CHAZALLET &lt;s.chazallet@gmail.com&gt;</span>
56 <span class="sd">:organization: InsPyration EURL</span>
57 <span class="sd">:copyright: Copyright © InsPyration EURL &lt;www.inspyration.org&gt;</span>
58 <span class="sd">:license: GPL 3 &lt;http://www.gnu.org/licenses/gpl.html&gt;</span>
59
60 <span class="sd">:version: 0.1</span>
61 <span class="sd">&quot;&quot;&quot;</span>
62
63
64 <span class="kn">from</span> <span class="nn">gettext</span> <span class="kn">import</span> <span class="n">gettext</span> <span class="k">as</span> <span class="n">_</span>
65
66 <span class="kn">from</span> <span class="nn">gi.repository</span> <span class="kn">import</span> <span class="n">Gtk</span>
67
68 <span class="n">SP_COL_TITLES</span> <span class="o">=</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Code&quot;</span><span class="p">),</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;L&quot;</span><span class="p">),</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;C&quot;</span><span class="p">),</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;Errors / Warnings&quot;</span><span class="p">))</span>
69 <span class="n">SP_COL_TYPES</span> <span class="o">=</span> <span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
70
71 <span class="n">PYTHON_ICON</span> <span class="o">=</span> <span class="s">&#39;gnome-mime-text-x-python&#39;</span>
72
73
74 <div class="viewcode-block" id="GeditFlake8Tree"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.tree.GeditFlake8Tree">[docs]</a><span class="k">class</span> <span class="nc">GeditFlake8Tree</span><span class="p">(</span><span class="n">Gtk</span><span class="o">.</span><span class="n">TreeView</span><span class="p">):</span>
75     <span class="sd">&quot;&quot;&quot;Tree inside gedit side panel containing all flake8 warnings&quot;&quot;&quot;</span>
76
77 <div class="viewcode-block" id="GeditFlake8Tree.__init__"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.tree.GeditFlake8Tree.__init__">[docs]</a>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">window</span><span class="p">):</span>
78         <span class="sd">&quot;&quot;&quot;Configure tree columns, tree selection and add it to side panel</span>
79
80 <span class="sd">        :type  self: GeditFlake8Tree</span>
81 <span class="sd">        :param self: Current tree</span>
82 <span class="sd">        :type  window: Gedit.Window</span>
83 <span class="sd">        :param window: GEdit window object</span>
84
85 <span class="sd">        :rtype: None</span>
86 <span class="sd">        &quot;&quot;&quot;</span>
87
88         <span class="c"># use a list store to manage warnings</span>
89         <span class="n">Gtk</span><span class="o">.</span><span class="n">TreeView</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">ListStore</span><span class="p">(</span><span class="o">*</span><span class="n">SP_COL_TYPES</span><span class="p">))</span>
90
91         <span class="c"># compose window</span>
92         <span class="bp">self</span><span class="o">.</span><span class="n">window</span> <span class="o">=</span> <span class="n">window</span>
93
94         <span class="c"># create columns</span>
95         <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">title</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">SP_COL_TITLES</span><span class="p">):</span>
96             <span class="bp">self</span><span class="o">.</span><span class="n">append_column</span><span class="p">(</span><span class="n">Gtk</span><span class="o">.</span><span class="n">TreeViewColumn</span><span class="p">(</span>
97                 <span class="n">_</span><span class="p">(</span><span class="n">title</span><span class="p">),</span>
98                 <span class="n">Gtk</span><span class="o">.</span><span class="n">CellRendererText</span><span class="p">(),</span>
99                 <span class="n">text</span><span class="o">=</span><span class="n">index</span><span class="p">))</span>
100
101         <span class="c"># Allow to do something when a tree line is selected</span>
102         <span class="bp">self</span><span class="o">.</span><span class="n">get_selection</span><span class="p">()</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s">&quot;changed&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">on_tree_selection</span><span class="p">)</span>
103
104         <span class="c"># create an icon for the side panel</span>
105         <span class="n">image</span> <span class="o">=</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">Image</span><span class="p">()</span>
106         <span class="n">image</span><span class="o">.</span><span class="n">set_from_icon_name</span><span class="p">(</span><span class="n">PYTHON_ICON</span><span class="p">,</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">IconSize</span><span class="o">.</span><span class="n">MENU</span><span class="p">)</span>
107
108         <span class="c"># get the side panel (created by GEdit)</span>
109         <span class="n">sp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">get_side_panel</span><span class="p">()</span>
110
111         <span class="c"># Add the tree in the side panel</span>
112         <span class="n">sp</span><span class="o">.</span><span class="n">add_item</span><span class="p">(</span>
113             <span class="bp">self</span><span class="p">,</span>
114             <span class="s">&#39;flake8_results&#39;</span><span class="p">,</span>
115             <span class="n">_</span><span class="p">(</span><span class="s">&quot;Flake8 results&quot;</span><span class="p">),</span>
116             <span class="n">image</span>
117         <span class="p">)</span>
118
119         <span class="c"># set the side panel invisible</span>
120         <span class="n">sp</span><span class="o">.</span><span class="n">set_property</span><span class="p">(</span><span class="s">&quot;visible&quot;</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
121 </div>
122 <div class="viewcode-block" id="GeditFlake8Tree.remove"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.tree.GeditFlake8Tree.remove">[docs]</a>    <span class="k">def</span> <span class="nf">remove</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
123         <span class="sd">&quot;&quot;&quot;remove the tree from the side panel</span>
124
125 <span class="sd">        :type  self: GeditFlake8Tree</span>
126 <span class="sd">        :param self: Current tree</span>
127
128 <span class="sd">        :rtype: None</span>
129 <span class="sd">        &quot;&quot;&quot;</span>
130
131         <span class="c"># get the side panel (created by GEdit)</span>
132         <span class="n">sp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">get_side_panel</span><span class="p">()</span>
133         <span class="n">sp</span><span class="o">.</span><span class="n">remove_item</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
134 </div>
135 <div class="viewcode-block" id="GeditFlake8Tree.activate"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.tree.GeditFlake8Tree.activate">[docs]</a>    <span class="k">def</span> <span class="nf">activate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
136         <span class="sd">&quot;&quot;&quot;show the tree in the side panel</span>
137 <span class="sd">        </span>
138 <span class="sd">        :type  self: GeditFlake8Tree</span>
139 <span class="sd">        :param self: Current tree</span>
140 <span class="sd">        </span>
141 <span class="sd">        :rtype: None</span>
142 <span class="sd">        &quot;&quot;&quot;</span>
143
144         <span class="n">sp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">get_side_panel</span><span class="p">()</span>
145         <span class="n">sp</span><span class="o">.</span><span class="n">set_property</span><span class="p">(</span><span class="s">&quot;visible&quot;</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span>
146         <span class="n">sp</span><span class="o">.</span><span class="n">activate_item</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
147 </div>
148 <div class="viewcode-block" id="GeditFlake8Tree.on_tree_selection"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.tree.GeditFlake8Tree.on_tree_selection">[docs]</a>    <span class="k">def</span> <span class="nf">on_tree_selection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">selection</span><span class="p">):</span>
149         <span class="sd">&quot;&quot;&quot;When a tree line is selected, go to the file linked line</span>
150
151 <span class="sd">        :type  self: GeditFlake8Tree</span>
152 <span class="sd">        :param self: Current tree</span>
153 <span class="sd">        :type  selection: Gtk.TreeSelection</span>
154 <span class="sd">        :param selection: Current selection</span>
155
156 <span class="sd">        :rtype: None</span>
157 <span class="sd">        &quot;&quot;&quot;</span>
158
159         <span class="n">doc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">get_active_document</span><span class="p">()</span>
160         <span class="k">if</span> <span class="ow">not</span> <span class="n">doc</span><span class="p">:</span>
161             <span class="k">return</span>
162
163         <span class="c"># get the tree line selected and put the cursor to the file linked line</span>
164         <span class="n">model</span><span class="p">,</span> <span class="n">treeiter</span> <span class="o">=</span> <span class="n">selection</span><span class="o">.</span><span class="n">get_selected</span><span class="p">()</span>
165         <span class="n">doc</span><span class="o">.</span><span class="n">goto_line</span><span class="p">(</span><span class="n">model</span><span class="p">[</span><span class="n">treeiter</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
166
167         <span class="c"># scroll the view to the cursor</span>
168         <span class="bp">self</span><span class="o">.</span><span class="n">window</span><span class="o">.</span><span class="n">get_active_view</span><span class="p">()</span><span class="o">.</span><span class="n">scroll_to_cursor</span><span class="p">()</span>
169 </div>
170 <div class="viewcode-block" id="GeditFlake8Tree.update_model"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.tree.GeditFlake8Tree.update_model">[docs]</a>    <span class="k">def</span> <span class="nf">update_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">datas</span><span class="p">):</span>
171         <span class="sd">&quot;&quot;&quot;Update the tree with new datas</span>
172
173 <span class="sd">        :type  self: GeditFlake8Tree</span>
174 <span class="sd">        :param self: Current tree</span>
175 <span class="sd">        :type  datas: list</span>
176 <span class="sd">        :param datas: list of ready to use (str, int, int, str) tuples</span>
177
178 <span class="sd">        :rtype: None</span>
179 <span class="sd">        &quot;&quot;&quot;</span>
180
181         <span class="c"># get the model (Gtk.ListStore)</span>
182         <span class="n">model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_model</span><span class="p">()</span>
183
184         <span class="c"># Empty model</span>
185         <span class="n">model</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
186
187         <span class="c"># Fill model with new values</span>
188         <span class="k">for</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">datas</span><span class="p">:</span>
189             <span class="n">model</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></div></div>
190 </pre></div>
191
192           </div>
193         </div>
194       </div>
195       <div class="sphinxsidebar">
196         <div class="sphinxsidebarwrapper">
197 <div id="searchbox" style="display: none">
198   <h3>Quick search</h3>
199     <form class="search" action="../../search.html" method="get">
200       <input type="text" name="q" />
201       <input type="submit" value="Go" />
202       <input type="hidden" name="check_keywords" value="yes" />
203       <input type="hidden" name="area" value="default" />
204     </form>
205     <p class="searchtip" style="font-size: 90%">
206     Enter search terms or a module, class or function name.
207     </p>
208 </div>
209 <script type="text/javascript">$('#searchbox').show(0);</script>
210         </div>
211       </div>
212       <div class="clearer"></div>
213     </div>
214     <div class="related">
215       <h3>Navigation</h3>
216       <ul>
217         <li class="right" style="margin-right: 10px">
218           <a href="../../genindex.html" title="General Index"
219              >index</a></li>
220         <li class="right" >
221           <a href="../../py-modindex.html" title="Python Module Index"
222              >modules</a> |</li>
223         <li><a href="../../index.html">gedit Flake8 integration 0.1 documentation</a> &raquo;</li>
224           <li><a href="../index.html" >Module code</a> &raquo;</li> 
225       </ul>
226     </div>
227     <div class="footer">
228         &copy; Copyright 2013, Sébastien CHAZALLET.
229       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b1.
230     </div>
231   </body>
232 </html>