void EventView::slotUpdateCurrent() { Event event = DATAMODEL->eventForId(m_event.id()); if (event != m_event) setCurrentEvent(event); slotUpdateTotal(); }
void EventView::setModel( ModelConnector* connector ) { EventModelFilter* model = connector->eventModel(); m_listView->setModel( model ); m_listView->setSelectionBehavior( QAbstractItemView::SelectRows ); m_listView->setSelectionMode( QAbstractItemView::SingleSelection ); connect( m_listView->selectionModel(), SIGNAL( currentChanged( const QModelIndex&, const QModelIndex& ) ), SLOT( slotCurrentItemChanged( const QModelIndex&, const QModelIndex& ) ) ); connect( model, SIGNAL( eventActivationNotice( EventId ) ), SLOT( slotEventActivated( EventId ) ) ); connect( model, SIGNAL( eventDeactivationNotice( EventId ) ), SLOT( slotEventDeactivated( EventId ) ) ); connect( model, SIGNAL( dataChanged( const QModelIndex&, const QModelIndex& ) ), SLOT( slotUpdateCurrent() ) ); connect( model, SIGNAL( rowsInserted( const QModelIndex&, int, int ) ), SLOT( slotUpdateTotal() ) ); connect( model, SIGNAL( rowsRemoved( const QModelIndex&, int, int ) ), SLOT( slotUpdateTotal() ) ); connect( model, SIGNAL( rowsInserted( const QModelIndex&, int, int ) ), SLOT( slotConfigureUi() ) ); connect( model, SIGNAL( rowsRemoved( const QModelIndex&, int, int ) ), SLOT( slotConfigureUi() ) ); connect( model, SIGNAL( layoutChanged() ), SLOT( slotUpdateCurrent() ) ); connect( model, SIGNAL( modelReset() ), SLOT( slotUpdateTotal() ) ); m_model = model; // normally, the model is set only once, so this should be no problem: EventEditorDelegate* delegate = new EventEditorDelegate( model, m_listView ); m_listView->setItemDelegate( delegate ); timeSpansChanged(); }