Robot Framework Integrated Development Environment (RIDE)
__init__.py
Go to the documentation of this file.
1 # -*- coding: utf-8 -*-
2 # Copyright 2008-2015 Nokia Networks
3 # Copyright 2016- Robot Framework Foundation
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 
17 import os
18 import sys
19 import wx
20 
21 from . import logger
22 from ..robotapi import ROBOT_LOGGER
23 from ..version import VERSION
24 
25 APP = None
27 ROBOT_LOGGER.unregister_console_logger()
28 ROBOT_LOGGER.register_logger(LOG)
29 
30 IS_WINDOWS = os.sep == '\\'
31 IS_MAC = sys.platform == 'darwin'
32 IS_LINUX = sys.platform == 'linux'
33 WX_VERSION = wx.VERSION_STRING
34 
35 if IS_WINDOWS:
36  SETTINGS_DIRECTORY = os.path.join(
37  os.environ['APPDATA'], 'RobotFramework', 'ride')
38 else:
39  SETTINGS_DIRECTORY = os.path.join(
40  os.path.expanduser('~/.robotframework'), 'ride')
41 LIBRARY_XML_DIRECTORY = os.path.join(SETTINGS_DIRECTORY, 'library_xmls')
42 if not os.path.isdir(LIBRARY_XML_DIRECTORY):
43  os.makedirs(LIBRARY_XML_DIRECTORY)
44 
45 SETTING_EDITOR_WIDTH = 450
46 SETTING_LABEL_WIDTH = 150
47 SETTING_ROW_HEIGHT = 25
48 # TODO: Make this colour configurable
49 POPUP_BACKGROUND = (240, 242, 80) # (255, 255, 187)
50 POPUP_FOREGROUND = (40, 40, 0) # (255, 255, 187)
51 
52 pyversion = '.'.join(str(v) for v in sys.version_info[:3])
53 SYSTEM_INFO = "Started RIDE %s using python version %s with wx version %s in %s." % \
54  (VERSION, pyversion, WX_VERSION, sys.platform)
55 ABOUT_RIDE = '''<h3>RIDE -- Robot Framework Test Data Editor</h3>
56 <p>RIDE %s running on Python %s.</p>
57 <p>RIDE is a test data editor for <a href="http://robotframework.org">Robot Framework</a>.
58 For more information, see project pages at
59 <a href="https://github.com/robotframework/RIDE">https://github.com/robotframework/RIDE</a>.</p>
60 <p>Some of the icons are from <a href="http://www.famfamfam.com/lab/icons/silk/">Silk Icons</a>.</p>
61 <p><br/><br/><a href="https://github.com/HelioGuilherme66">Hélio Guilherme</a> the maintainer of the project thanks the
62 original authors and all users and collaborators.<br/>
63 A very special thanks to <b><a href="https://github.com/Nyral">Nyral</a></b> and <b><a href="https://github.com/jnhyperi
64 on">Johnny.H</a></b> the most commited in helping RIDE development and maintenance.</p>
65 ''' % (VERSION, pyversion)
66 
67 
69  if IS_MAC:
70  return wx.ACCEL_CMD
71  return wx.ACCEL_CTRL
72 
73 
74 def bind_keys_to_evt_menu(target, actions):
75  accelrators = []
76  for accel, keycode, handler in actions:
77 
80  _id = wx.NewIdRef()
81  target.Bind(wx.EVT_MENU, handler, id=_id)
82  accelrators.append((accel, keycode, _id))
83  target.SetAcceleratorTable(wx.AcceleratorTable(accelrators))
84 
85 
86 SHORTCUT_KEYS = '''\
87 <h2>Shortcut keys in RIDE</h2>
88 <table>
89  <tr align="left">
90  <th><b>Shortcut</b></th>
91  <th><b>What it does</b></th>
92  </tr>
93  <tr>
94  <td>CtrlCmd-S</td>
95  <td>Save</td>
96  </tr>
97  <tr>
98  <td>CtrlCmd-Shift-S</td>
99  <td>Save all</td>
100  </tr>
101  <tr>
102  <td>CtrlCmd-O</td>
103  <td>Open</td>
104  </tr>
105  <tr>
106  <td>CtrlCmd-Shift-O</td>
107  <td>Open directory</td>
108  </tr>
109  <tr>
110  <td>CtrlCmd-R</td>
111  <td>Open resource</td>
112  </tr>
113  <tr>
114  <td>CtrlCmd-Shift-R</td>
115  <td>Refresh directory</td>
116  </tr>
117  <tr>
118  <td>CtrlCmd-N</td>
119  <td>New project</td>
120  </tr>
121  <tr>
122  <td>CtrlCmd-Shift-N</td>
123  <td>New resource</td>
124  </tr>
125  <tr>
126  <td>CtrlCmd-Q</td>
127  <td>Quit RIDE</td>
128  </tr>
129  <tr>
130  <td>Alt-X</td>
131  <td>Go Forward</td>
132  </tr>
133  <tr>
134  <td>Alt-Z</td>
135  <td>Go Back</td>
136  </tr>
137  <tr>
138  <td>F6</td>
139  <td>Open preview</td>
140  </tr>
141  <tr>
142  <td>F5</td>
143  <td>Open search keywords dialog</td>
144  </tr>
145  <tr>
146  <td>F3</td>
147  <td>Open search tests dialog</td>
148  </tr>
149  <tr>
150  <td>F8</td>
151  <td>Run test suite</td>
152  </tr>
153  <tr>
154  <td>CtrlCmd-F8</td>
155  <td>Stop running test suite</td>
156  </tr>
157 </table>
158 
159 <h3>Grid</h3>
160 <table>
161  <tr align="left">
162  <th><b>Shortcut</b></th>
163  <th><b>What it does</b></th>
164  </tr>
165  <tr>
166  <td>Ctrl-Space or Alt-Space</td>
167  <td>Suggestions and auto completion</td>
168  </tr>
169  <tr>
170  <td>CtrlCmd</td>
171  <td>Help for cell content</td>
172  </tr>
173  <tr>
174  <td>CtrlCmd-Shift-J</td>
175  <td>Pop-up JSON Editor</td>
176  </tr>
177  <tr>
178  <td>CtrlCmd-B</td>
179  <td>Go to Definition</td>
180  </tr>
181  <tr>
182  <td>CtrlCmd-Z</td>
183  <td>Undo</td>
184  </tr>
185  <tr>
186  <td>CtrlCmd-Y</td>
187  <td>Redo</td>
188  </tr>
189  <tr>
190  <td>CtrlCmd-1</td>
191  <td>Make scalar variable body</td>
192  </tr>
193  <tr>
194  <td>CtrlCmd-2</td>
195  <td>Make list variable body</td>
196  </tr>
197  <tr>
198  <td>CtrlCmd-5</td>
199  <td>Make dictionary variable body</td>
200  </tr>
201  <tr>
202  <td>CtrlCmd-Shift-3</td>
203  <td>Comment content with #</td>
204  </tr>
205  <tr>
206  <td>CtrlCmd-Shift-4</td>
207  <td>Uncomment content from #</td>
208  </tr>
209  <tr>
210  <td>Alt-Enter</td>
211  <td>Move cursor down</td>
212  </tr>
213  <tr>
214  <td>CtrlCmd-3</td>
215  <td>Comment row(s)</td>
216  </tr>
217  <tr>
218  <td>CtrlCmd-4</td>
219  <td>Uncomment row(s)</td>
220  </tr>
221  <tr>
222  <td>Alt-Up</td>
223  <td>Move row(s) up</td>
224  </tr>
225  <tr>
226  <td>Alt-Down</td>
227  <td>Move row(s) down</td>
228  </tr>
229  <tr>
230  <td>CtrlCmd-T</td>
231  <td>Swap row up</td>
232  </tr>
233  <tr>
234  <td>CtrlCmd-Shift-I</td>
235  <td>Insert cell(s)</td>
236  </tr>
237  <tr>
238  <td>CtrlCmd-Shift-D</td>
239  <td>Delete cell(s)</td>
240  </tr>
241  <tr>
242  <td>CtrlCmd-I</td>
243  <td>Insert row(s)</td>
244  </tr>
245  <tr>
246  <td>CtrlCmd-D</td>
247  <td>Delete row(s)</td>
248  </tr>
249  <tr>
250  <td>CtrlCmd-A</td>
251  <td>Select all</td>
252  </tr>
253  <tr>
254  <td>CtrlCmd-X</td>
255  <td>Cut (does not remove cells or rows)</td>
256  </tr>
257  <tr>
258  <td>CtrlCmd-C</td>
259  <td>Copy</td>
260  </tr>
261  <tr>
262  <td>CtrlCmd-V</td>
263  <td>Paste (does not move cells or rows)</td>
264  </tr>
265  <tr>
266  <td>CtrlCmd-Shift-V</td>
267  <td>Insert (adds empty rows and pastes data)</td>
268  </tr>
269  <tr>
270  <td>Del</td>
271  <td>Remove cell content</td>
272  </tr>
273 </table>
274 
275 <h3>Tree view</h3>
276 <table>
277  <tr align="left">
278  <th><b>Shortcut</b></th>
279  <th><b>What it does</b></th>
280  </tr>
281  <tr>
282  <td>CtrlCmd-Shift-T</td>
283  <td>Add new test case</td>
284  </tr>
285  <tr>
286  <td>CtrlCmd-Shift-K</td>
287  <td>Add new keyword</td>
288  </tr>
289  <tr>
290  <td>CtrlCmd-Shift-V</td>
291  <td>Add new scalar variable</td>
292  </tr>
293  <tr>
294  <td>CtrlCmd-Shift-L</td>
295  <td>Add new list variable</td>
296  </tr>
297  <tr>
298  <td>F2</td>
299  <td>Rename</td>
300  </tr>
301  <tr>
302  <td>CtrlCmd-Shift-C</td>
303  <td>Clone/Copy selected keyword/test case</td>
304  </tr>
305  <tr>
306  <td>CtrlCmd-Up</td>
307  <td>Move item up</td>
308  </tr>
309  <tr>
310  <td>CtrlCmd-Down</td>
311  <td>Move item down</td>
312  </tr>
313 </table>
314 
315 <h3>Text editor</h3>
316 
317 <table>
318  <tr align="left">
319  <th><b>Shortcut</b></th>
320  <th><b>What it does</b></th>
321  </tr>
322  <tr>
323  <td>Ctrl-Space or Alt-Space</td>
324  <td>Suggestions and auto completion</td>
325  </tr>
326  <tr>
327  <td>CtrlCmd-T</td>
328  <td>Swap current row up</td>
329  </tr>
330  <tr>
331  <td>Tab</td>
332  <td>Inserts the defined number of spaces</td>
333  </tr>
334  <tr>
335  <td>Shift-Tab</td>
336  <td>Moves cursor to the left the defined number of spaces</td>
337  </tr>
338  <tr>
339  <td>Ctrl-MouseWheel Roll</td>
340  <td>Increases or Decreases font size (Zoom +/-)</td>
341  </tr>
342  <tr>
343  <td>CtrlCmd-F</td>
344  <td>Find in text</td>
345  </tr>
346  <tr>
347  <td>CtrlCmd-G</td>
348  <td>Find next search result</td>
349  </tr>
350  <tr>
351  <td>CtrlCmd-Shift-G</td>
352  <td>Find previous search result</td>
353  </tr>
354  <tr>
355  <td>CtrlCmd-1</td>
356  <td>Make scalar variable body</td>
357  </tr>
358  <tr>
359  <td>CtrlCmd-2</td>
360  <td>Make list variable body</td>
361  </tr>
362  <tr>
363  <td>Alt-Up</td>
364  <td>Move row(s) up</td>
365  </tr>
366  <tr>
367  <td>Alt-Down</td>
368  <td>Move row(s) down</td>
369  </tr>
370  <tr>
371  <td>CtrlCmd-D</td>
372  <td>Delete row(s)</td>
373  </tr>
374  <tr>
375  <td>CtrlCmd-I</td>
376  <td>Insert row(s)</td>
377  </tr>
378  <tr>
379  <td>CtrlCmd-3</td>
380  <td>Comment row(s)</td>
381  </tr>
382  <tr>
383  <td>CtrlCmd-Shift-3</td>
384  <td>Comment content with #</td>
385  </tr>
386  <tr>
387  <td>CtrlCmd-4</td>
388  <td>Uncomment row(s)</td>
389  </tr>
390  <tr>
391  <td>CtrlCmd-Shift-4</td>
392  <td>Uncomment content with #</td>
393  </tr>
394  <tr>
395  <td>CtrlCmd-5</td>
396  <td>Make dictionary variable body</td>
397  </tr>
398  <tr>
399  <td>Enter</td>
400  <td>When focus is in the search field, find next search result</td>
401  </tr>
402  <tr>
403  <td>Shift-Enter</td>
404  <td>When focus is in the search field, find previous search result</td>
405  </tr>
406 </table>
407 
408 <h3>Run tab</h3>
409 
410 <table>
411  <tr align="left">
412  <th><b>Shortcut</b></th>
413  <th><b>What it does</b></th>
414  </tr>
415  <tr>
416  <td>CtrlCmd-C</td>
417  <td>Copy from text output when text selected</td>
418  </tr>
419  <tr>
420  <td>CtrlCmd-L</td>
421  <td>Open HTML log</td>
422  </tr>
423  <tr>
424  <td>CtrlCmd-R</td>
425  <td>Show HTML report</td>
426  </tr>
427  <tr>
428  <td>Ctrl-MouseWheel Roll</td>
429  <td>Increases or Decreases font size (Zoom +/-)</td>
430  </tr>
431 </table>
432 '''
def bind_keys_to_evt_menu(target, actions)
Definition: __init__.py:74
def ctrl_or_cmd()
Definition: __init__.py:68