Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: grit/tool/toolbar_postprocess.py

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « grit/tool/test.py ('k') | grit/tool/toolbar_preprocess.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 ''' Toolbar postprocessing class. Modifies the previously processed GRD tree
7 by creating separate message groups for each of the IDS_COMMAND macros.
8 Also adds some identifiers nodes to declare specific ids to be included
9 in the generated grh file.
10 '''
11
12 import postprocess_interface
13 from grit import lazy_re
14 import grit.node.empty
15 from grit.node import misc
16
17 class ToolbarPostProcessor(postprocess_interface.PostProcessor):
18 ''' Defines message groups within the grd file for each of the
19 IDS_COMMAND stuff.
20 '''
21
22 _IDS_COMMAND = lazy_re.compile(r'IDS_COMMAND_')
23 _GRAB_PARAMETERS = lazy_re.compile(
24 r'(IDS_COMMAND_[a-zA-Z0-9]+)_([a-zA-z0-9]+)')
25
26 def Process(self, rctext, rcpath, grdnode):
27 ''' Processes the data in rctext and grdnode.
28 Args:
29 rctext: string containing the contents of the RC file being processed.
30 rcpath: the path used to access the file.
31 grdnode: the root node of the grd xml data generated by
32 the rc2grd tool.
33
34 Return:
35 The root node of the processed GRD tree.
36 '''
37
38 release = grdnode.children[2]
39 messages = release.children[2]
40
41 identifiers = grit.node.empty.IdentifiersNode()
42 identifiers.StartParsing('identifiers', release)
43 identifiers.EndParsing()
44 release.AddChild(identifiers)
45
46
47 #
48 # Turn the IDS_COMMAND messages into separate message groups
49 # with ids that are offsetted to the message group's first id
50 #
51 previous_name_attr = ''
52 previous_prefix = ''
53 previous_node = ''
54 new_messages_node = self.ConstructNewMessages(release)
55 for node in messages.children[:]:
56 name_attr = node.attrs['name']
57 if self._IDS_COMMAND.search(name_attr):
58 mo = self._GRAB_PARAMETERS.search(name_attr)
59 mp = self._GRAB_PARAMETERS.search(previous_name_attr)
60 if mo and mp:
61 prefix = mo.group(1)
62 previous_prefix = mp.group(1)
63 new_message_id = mp.group(2)
64 if prefix == previous_prefix:
65 messages.RemoveChild(previous_name_attr)
66 previous_node.attrs['offset'] = 'PCI_' + new_message_id
67 del previous_node.attrs['name']
68 new_messages_node.AddChild(previous_node)
69 else:
70 messages.RemoveChild(previous_name_attr)
71 previous_node.attrs['offset'] = 'PCI_' + new_message_id
72 del previous_node.attrs['name']
73 new_messages_node.AddChild(previous_node)
74 new_messages_node.attrs['first_id'] = previous_prefix
75 new_messages_node = self.ConstructNewMessages(release)
76 else:
77 if self._IDS_COMMAND.search(previous_name_attr):
78 messages.RemoveChild(previous_name_attr)
79 previous_prefix = mp.group(1)
80 new_message_id = mp.group(2)
81 previous_node.attrs['offset'] = 'PCI_' + new_message_id
82 del previous_node.attrs['name']
83 new_messages_node.AddChild(previous_node)
84 new_messages_node.attrs['first_id'] = previous_prefix
85 new_messages_node = self.ConstructNewMessages(release)
86 else:
87 if self._IDS_COMMAND.search(previous_name_attr):
88 messages.RemoveChild(previous_name_attr)
89 mp = self._GRAB_PARAMETERS.search(previous_name_attr)
90 previous_prefix = mp.group(1)
91 new_message_id = mp.group(2)
92 previous_node.attrs['offset'] = 'PCI_' + new_message_id
93 del previous_node.attrs['name']
94 new_messages_node.AddChild(previous_node)
95 new_messages_node.attrs['first_id'] = previous_prefix
96 new_messages_node = self.ConstructNewMessages(release)
97 previous_name_attr = name_attr
98 previous_node = node
99
100
101 self.AddIdentifiers(rctext, identifiers)
102 return grdnode
103
104 def ConstructNewMessages(self, parent):
105 new_node = grit.node.empty.MessagesNode()
106 new_node.StartParsing('messages', parent)
107 new_node.EndParsing()
108 parent.AddChild(new_node)
109 return new_node
110
111 def AddIdentifiers(self, rctext, node):
112 node.AddChild(misc.IdentifierNode.Construct(node, 'IDS_COMMAND_gcFirst', '12 000', ''))
113 node.AddChild(misc.IdentifierNode.Construct(node,
114 'IDS_COMMAND_PCI_SPACE', '16', ' '))
115 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_BUTTON', '0', ''))
116 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_MENU', '1', ''))
117 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_TIP', '2', ''))
118 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_OPTIONS_TEXT', '3', ' '))
119 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_TIP_DISABLED', '4', ' '))
120 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_TIP_MENU', '5', ''))
121 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_TIP_MENU_DISABLED', ' 6', ''))
122 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_TIP_OPTIONS', '7', '' ))
123 node.AddChild(misc.IdentifierNode.Construct(node, 'PCI_TIP_OPTIONS_DISABLED' , '8', ''))
124 node.AddChild(misc.IdentifierNode.Construct(node,
125 'PCI_TIP_DISABLED_BY_POLICY', '9 ', ''))
126
OLDNEW
« no previous file with comments | « grit/tool/test.py ('k') | grit/tool/toolbar_preprocess.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698