Changeset 1187 for trunk/camelot/view/controls/tableview.py
- Timestamp:
- 03/13/10 13:49:04 (6 months ago)
- Files:
-
- 1 modified
-
trunk/camelot/view/controls/tableview.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/camelot/view/controls/tableview.py
r1186 r1187 37 37 38 38 from camelot.view.proxy.queryproxy import QueryTableProxy 39 from camelot.view.controls.filterlist import filter_changed_signal 39 40 from camelot.view.controls.view import AbstractView 40 41 from camelot.view.controls.user_translatable_label import UserTranslatableLabel … … 113 114 def __init__( self, parent, admin ): 114 115 QtGui.QWidget.__init__( self, parent ) 116 self._admin = admin 115 117 layout = QtGui.QVBoxLayout() 116 118 widget_layout = QtGui.QHBoxLayout() … … 136 138 137 139 def _fill_expanded_search_options(self, columns): 140 from camelot.view.controls.filter_operator import FilterOperator 138 141 layout = QtGui.QHBoxLayout() 139 142 for field, attributes in columns: 140 143 if 'operators' in attributes: 141 widget = QtGui.QLabel(field) 144 widget = FilterOperator( self._admin.entity, field, attributes, self) 145 self.connect( widget, filter_changed_signal, self._filter_changed ) 142 146 layout.addWidget( widget ) 147 layout.addStretch() 143 148 self._expanded_search.setLayout( layout ) 144 149 150 def _filter_changed(self): 151 self.emit(QtCore.SIGNAL('filters_changed')) 145 152 153 def decorate_query(self, query): 154 """Apply expanded filters on the query""" 155 for i in range(self._expanded_search.layout().count()): 156 if self._expanded_search.layout().itemAt(i).widget(): 157 query = self._expanded_search.layout().itemAt(i).widget().decorate_query(query) 158 return query 159 146 160 def expand_search_options(self): 147 161 if self._expanded_search.isHidden(): … … 245 259 shortcut = QtGui.QShortcut(QtGui.QKeySequence(QtGui.QKeySequence.Find), self) 246 260 self.connect( shortcut, QtCore.SIGNAL( 'activated()' ), self.activate_search ) 261 self.connect( self.header, QtCore.SIGNAL('filters_changed'), self.rebuildQuery ) 247 262 # give the table widget focus to prevent the header and its search control to 248 263 # receive default focus, as this would prevent the displaying of 'Search...' in the … … 416 431 workspace.addSubWindow( form ) 417 432 form.show() 418 419 420 421 # @gui_function422 # def set_filters_and_actions( self, filters_and_actions ):423 # """sets filters for the tableview"""424 # filters, actions = filters_and_actions425 # from filterlist import FilterList426 # from actionsbox import ActionsBox427 # logger.debug( 'setting filters for tableview' )428 # if self.filters:429 # self.disconnect( self.filters, SIGNAL( 'filters_changed' ), self.rebuildQuery )430 # self.filters.deleteLater()431 # self.filters = None432 # if self.actions:433 # self.actions.deleteLater()434 # self.actions = None435 # if filters:436 # self.filters = FilterList( filters, parent=self )437 # self.splitter.insertWidget( 2, self.filters )438 # self.connect( self.filters, SIGNAL( 'filters_changed' ), self.rebuildQuery )439 # if actions:440 # self.actions = ActionsBox( self, self._table_model.collection_getter, lambda:[] )441 # self.actions.setActions( actions )442 # self.splitter.insertWidget( 2, self.filters )443 433 444 434 def toHtml( self ): … … 538 528 def rebuild_query(): 539 529 query = self.admin.entity.query 530 query = self.header.decorate_query(query) 540 531 if self.filters: 541 532 query = self.filters.decorate_query( query )
