60 , ui(new
Ui::EventWindowDockWidget)
61 , m_pMainWindow(static_cast<
MainWindow*>(parent))
62 , m_pColordialog(new QColorDialog(this))
67 m_pColordialog->hide();
72 if(m_pMainWindow->m_qEventFile.exists())
73 m_pEventModel =
new EventModel(m_pMainWindow->m_qEventFile,
this);
103 return ui->m_tableView_eventTableView;
111 return m_pEventModel;
119 return m_pEventDelegate;
125 void EventWindow::initMVCSettings()
133 ui->m_tableView_eventTableView->setModel(m_pEventModel);
137 ui->m_tableView_eventTableView->setItemDelegate(m_pEventDelegate);
140 ui->m_tableView_eventTableView->resizeColumnsToContents();
141 ui->m_tableView_eventTableView->adjustSize();
144 connect(ui->m_tableView_eventTableView->selectionModel(),&QItemSelectionModel::currentRowChanged,
148 connect(m_pEventModel,&EventModel::dataChanged,
155 void EventWindow::initCheckBoxes()
157 connect(ui->m_checkBox_activateEvents,&QCheckBox::stateChanged, [=](
int state){
158 m_pMainWindow->m_pDataWindow->getDataDelegate()->m_bActivateEvents = state;
159 jumpToEvent(ui->m_tableView_eventTableView->selectionModel()->currentIndex(), QModelIndex());
160 m_pMainWindow->m_pDataWindow->updateDataTableViews();
163 connect(ui->m_checkBox_showSelectedEventsOnly,&QCheckBox::stateChanged, [=](
int state){
164 m_pMainWindow->m_pDataWindow->getDataDelegate()->m_bShowSelectedEventsOnly = state;
165 jumpToEvent(ui->m_tableView_eventTableView->selectionModel()->currentIndex(), QModelIndex());
166 m_pMainWindow->m_pDataWindow->updateDataTableViews();
173 void EventWindow::initComboBoxes()
175 ui->m_comboBox_filterTypes->addItem(
"All");
177 ui->m_comboBox_filterTypes->setCurrentText(
"All");
180 connect(ui->m_comboBox_filterTypes, &QComboBox::currentTextChanged,[=](QString
string){
181 m_pEventModel->setEventFilterType(string);
182 m_pMainWindow->m_pDataWindow->updateDataTableViews();
186 this, &EventWindow::updateComboBox);
192 void EventWindow::initToolButtons()
194 QToolBar *toolBar =
new QToolBar(
this);
195 toolBar->setOrientation(Qt::Vertical);
196 toolBar->setMovable(
false);
199 QAction* addEventAction =
new QAction(QIcon(
":/Resources/Images/addEvent.png"),tr(
"Add event"),
this);
200 addEventAction->setStatusTip(tr(
"Add an event to the event list"));
201 toolBar->addAction(addEventAction);
202 connect(addEventAction, &QAction::triggered,
206 QAction* removeEvent =
new QAction(QIcon(
":/Resources/Images/removeEvent.png"),tr(
"Remove event"),
this);
207 removeEvent->setStatusTip(tr(
"Remove an event from the event list"));
208 toolBar->addAction(removeEvent);
209 connect(removeEvent, &QAction::triggered,
212 ui->m_gridLayout_Main->addWidget(toolBar,0,1,1,1);
218 void EventWindow::initPushButtons()
220 connect(ui->m_pushButton_addEventType, &QPushButton::clicked,
227 void EventWindow::updateComboBox(
const QString ¤tEventType)
229 ui->m_comboBox_filterTypes->clear();
230 ui->m_comboBox_filterTypes->addItem(
"All");
233 ui->m_comboBox_filterTypes->setCurrentText(currentEventType);
239 bool EventWindow::event(QEvent * event)
242 if(event->type() == QEvent::Resize) {
244 jumpToEvent(ui->m_tableView_eventTableView->selectionModel()->currentIndex(), QModelIndex());
248 if(event->type() == QEvent::KeyPress && ui->m_tableView_eventTableView->hasFocus()) {
249 QKeyEvent *keyEvent =
static_cast<QKeyEvent *
>(event);
250 if(keyEvent->key() == Qt::Key_Delete)
254 return QDockWidget::event(event);
264 if(ui->m_checkBox_activateEvents->isChecked()) {
266 QModelIndex index = m_pEventModel->index(current.row(), 0);
269 int sample = m_pEventModel->data(index, Qt::DisplayRole).toInt();
272 int rawTableViewColumnWidth = m_pMainWindow->m_pDataWindow->
getDataTableView()->viewport()->width();
274 if(sample-rawTableViewColumnWidth/2 < rawTableViewColumnWidth/2)
275 m_pMainWindow->m_pDataWindow->
getDataTableView()->horizontalScrollBar()->setValue(0);
276 else if(sample+rawTableViewColumnWidth/2 > m_pMainWindow->m_pDataWindow->
getDataModel()->
lastSample()-rawTableViewColumnWidth/2)
279 m_pMainWindow->m_pDataWindow->
getDataTableView()->horizontalScrollBar()->setValue(sample-rawTableViewColumnWidth/2);
281 qDebug()<<
"Jumping to Event at sample "<<sample<<
"rawTableViewColumnWidth"<<rawTableViewColumnWidth;
292 QModelIndexList indexList = ui->m_tableView_eventTableView->selectionModel()->selectedIndexes();
294 for(
int i = 0; i<indexList.size(); i++)
295 m_pEventModel->removeRow(indexList.at(i).row() - i);
303 m_pEventModel->insertRow(0, QModelIndex());
312 m_pEventModel->
addNewEventType(QString().number(ui->m_spinBox_addEventType->value()), m_pColordialog->getColor(Qt::black,
this));
313 m_pEventModel->
setEventFilterType(QString().number(ui->m_spinBox_addEventType->value()));
EventModel * getEventModel()
void removeEventfromEventModel()
RawModel * getDataModel()
void setFirstLastSample(int firstSample, int lastSample)
Contains the implementation of the EventWindow class.
QStringList getEventTypeList() const
void addEventToEventModel()
QTableView * getDataTableView()
void addNewEventType(const QString &eventType, const QColor &typeColor)
EventWindow(QWidget *parent=0)
void setEventFilterType(const QString eventType)
qint32 firstSample() const
void jumpToEvent(const QModelIndex ¤t, const QModelIndex &previous)
void updateEventTypes(const QString ¤tFilterType)
void setFiffInfo(FiffInfo &fiffInfo)
EventDelegate * getEventDelegate()
qint32 lastSample() const
void updateDataTableViews()
QTableView * getEventTableView()