Changeset 8643
- Timestamp:
- 08/30/07 23:05:00 (15 months ago)
- Location:
- branches/gajim_0.11.1/src
- Files:
-
- 2 modified
-
common/dataforms.py (modified) (4 diffs)
-
dataforms_widget.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/gajim_0.11.1/src/common/dataforms.py
r7984 r8643 64 64 'list-single': ListSingleField, 65 65 'text-multi': TextMultiField, 66 }[typ](extend=node) 67 return f 66 } 67 if typ not in f: 68 typ = 'text-single' 69 return f[typ](extend=node) 68 70 69 71 def ExtendForm(node): 70 72 ''' Helper function to extend a node to form of appropriate type. ''' 71 if node.getTag('re corded') is not None:73 if node.getTag('reported') is not None: 72 74 return MultipleDataForm(extend=node) 73 75 else: … … 386 388 387 389 class MultipleDataForm(DataForm): 388 def __init__(self): 390 def __init__(self, type=None, title=None, instructions=None, items=None, extend=None): 391 DataForm.__init__(self, type=type, title=title, instructions=instructions, extend=extend) 389 392 # all records, recorded into DataRecords 390 pass 393 if extend is None: 394 # we have to build this object from scratch 395 xmpp.Node.__init__(self) 396 397 if items is not None: self.items = items 398 else: 399 # we already have xmpp.Node inside - try to convert all 400 # fields into DataField objects 401 if items is None: 402 self.items = list(self.iterTags('item')) 403 else: 404 for item in self.getTags('item'): 405 self.delChild(item) 406 self.items = items 407 reported_tag = self.getTag('reported') 408 self.reported = DataRecord(extend = reported_tag) 391 409 392 410 @nested_property … … 402 420 self.addChild(node=record) 403 421 def fdel(self): 404 for record in self.getTags(' record'):422 for record in self.getTags('item'): 405 423 self.delChild(record) 406 424 return locals() … … 410 428 yield record 411 429 412 @nested_property413 def recorded():414 ''' DataRecord that contains descriptions of fields in records.'''415 def fget(self):416 return self.getTag('recorded')417 def fset(self, record):418 try:419 self.delChild('recorded')420 except:421 pass422 423 record.setName('recorded')424 self.addChild(node=record)425 return locals()426 430 # @nested_property 431 # def reported(): 432 # ''' DataRecord that contains descriptions of fields in records.''' 433 # def fget(self): 434 # return self.getTag('reported') 435 # def fset(self, record): 436 # try: 437 # self.delChild('reported') 438 # except: 439 # pass 440 # 441 # record.setName('reported') 442 # self.addChild(node=record) 443 # return locals() 444 -
branches/gajim_0.11.1/src/dataforms_widget.py
r7677 r8643 17 17 """ This module contains widget that can display data form (JEP-0004). 18 18 Words single and multiple refers here to types of data forms: 19 single means these with one record of data (without <re corded/> element),20 multiple - these which may contain more data (with <re corded/> element)."""19 single means these with one record of data (without <reported/> element), 20 multiple - these which may contain more data (with <reported/> element).""" 21 21 22 22 import gtk … … 42 42 'single_form_viewport', 'data_form_types_notebook', 43 43 'single_form_scrolledwindow', 'multiple_form_hbox', 44 'records_treeview', ' add_button', 'remove_button',44 'records_treeview', 'buttons_vbox', 'add_button', 'remove_button', 45 45 'edit_button', 'up_button', 'down_button', 'clear_button'): 46 46 self.__dict__[name] = self.xml.get_widget(name) … … 142 142 # creating model for form... 143 143 fieldtypes = [] 144 for field in self._data_form.re corded.iter_fields():144 for field in self._data_form.reported.iter_fields(): 145 145 # note: we store also text-private and hidden fields, 146 146 # we just do not display them. … … 158 158 159 159 # constructing columns... 160 for field, counter in zip(self._data_form.iter_fields(), itertools.count()): 161 print repr(field), repr(counter) 160 for field, counter in zip(self._data_form.reported.iter_fields(), itertools.count()): 162 161 self.records_treeview.append_column( 163 162 gtk.TreeViewColumn(field.label, gtk.CellRendererText(), … … 173 172 self.clean_data_form = self.clean_multiple_data_form 174 173 175 # refresh list look 176 self.refresh_multiple_buttons() 174 readwrite = self._data_form.type != 'result' 175 if not readwrite: 176 self.buttons_vbox.set_no_show_all(True) 177 self.buttons_vbox.hide() 178 else: 179 self.buttons_vbox.set_no_show_all(False) 180 # refresh list look 181 self.refresh_multiple_buttons() 177 182 178 183 def clean_multiple_data_form(self): … … 187 192 model = self.records_treeview.get_model() 188 193 count = selection.count_selected_rows() 189 if count ==0:194 if count == 0: 190 195 self.remove_button.set_sensitive(False) 191 196 self.edit_button.set_sensitive(False) 192 197 self.up_button.set_sensitive(False) 193 198 self.down_button.set_sensitive(False) 194 elif count ==1:199 elif count == 1: 195 200 self.remove_button.set_sensitive(True) 196 201 self.edit_button.set_sensitive(True) … … 200 205 self.up_button.set_sensitive(True) 201 206 self.down_button.set_sensitive(False) 202 elif path ==(0,):207 elif path == (0, ): 203 208 self.up_button.set_sensitive(False) 204 209 self.down_button.set_sensitive(True) … … 212 217 self.down_button.set_sensitive(False) 213 218 214 if len(model) ==0:219 if len(model) == 0: 215 220 self.clear_button.set_sensitive(False) 216 221 else:
