Skip to content

Commit

Permalink
Merge pull request #81 from Yida-Lin/EventDialogBug
Browse files Browse the repository at this point in the history
Changing color works again and there is no unknown group in XDF files anymore
  • Loading branch information
cbrnr committed May 2, 2017
2 parents 995123a + 8bc9c02 commit aef007f
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 12 deletions.
4 changes: 3 additions & 1 deletion src/file_handling_impl/biosig_basic_header.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ BiosigBasicHeader::BiosigBasicHeader (QString file_format, QString const& file_p
{
for (unsigned index = 0; index < XDFdata->dictionary.size(); index++)
{
user_defined_event_map_[index] = QString::fromStdString(XDFdata->dictionary[index]);
//below we use index+1 because in SigViewer, 0 is reserved for a special event type.
//thus we count from 1
user_defined_event_map_[index + 1] = QString::fromStdString(XDFdata->dictionary[index]);
}
}

Expand Down
5 changes: 3 additions & 2 deletions src/file_handling_impl/xdf_reader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -425,8 +425,9 @@ void XDFReader::bufferAllEvents () const
{
QSharedPointer<SignalEvent> event
(new SignalEvent (round ((XDFdata->eventMap[index].first.second - XDFdata->minTS) * XDFdata->majSR),
XDFdata->eventType[index],
XDFdata->majSR, XDFdata->eventMap[index].second));
XDFdata->eventType[index] + 1,//index+1 because in SigViewer and libbiosig
//0 is reserved for a special type of event. Thus we increment by 1
XDFdata->majSR, XDFdata->eventMap[index].second));

event->setChannel (UNDEFINED_CHANNEL);
event->setDuration (0);
Expand Down
38 changes: 29 additions & 9 deletions src/gui_impl/dialogs/event_types_selection_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ void EventTypesSelectionDialog::buildTree (bool only_existing_events)

QColor color = color_manager_->getEventColor(event_type);

event_item->setCheckState (CHECKBOX_COLUMN_INDEX_, Qt::Checked);
if (selected_types_.count(event_type))
event_item->setCheckState (CHECKBOX_COLUMN_INDEX_, Qt::Checked);
else
event_item->setCheckState (CHECKBOX_COLUMN_INDEX_, Qt::Unchecked);

event_item->setText (NAME_COLUMN_INDEX_, event_name);

Expand Down Expand Up @@ -131,7 +134,10 @@ void EventTypesSelectionDialog::buildTree (bool only_existing_events)

QColor color = color_manager_->getEventColor(event_type);

event_item->setCheckState (CHECKBOX_COLUMN_INDEX_, Qt::Checked);
if (selected_types_.count(event_type))
event_item->setCheckState (CHECKBOX_COLUMN_INDEX_, Qt::Checked);
else
event_item->setCheckState (CHECKBOX_COLUMN_INDEX_, Qt::Unchecked);

event_item->setText (NAME_COLUMN_INDEX_, event_name);

Expand Down Expand Up @@ -173,16 +179,30 @@ void EventTypesSelectionDialog::on_tree_widget__itemClicked(QTreeWidgetItem* ite
//-----------------------------------------------------------------------------
void EventTypesSelectionDialog::storeColors()
{
for (int group_nr = 0; group_nr < ui_.tree_widget_->topLevelItemCount(); group_nr++)
if (event_manager_->getFileType().startsWith("xdf", Qt::CaseInsensitive))
{
QTreeWidgetItem* group_item = ui_.tree_widget_->topLevelItem (group_nr);

for (int nr = 0; nr < group_item->childCount(); nr++)
// in XDF files we don't display libbiosig event groups, so top level items are events
for (int nr = 0; nr < ui_.tree_widget_->topLevelItemCount(); nr++)
{
QTreeWidgetItem* event_item = group_item->child(nr);
QTreeWidgetItem* event_item = ui_.tree_widget_->topLevelItem(nr);
EventType type = event_item->text(ID_COLUMN_INDEX_).toUInt();
color_manager_->setEventColor (type,
event_item->backgroundColor(ALPHA_COLUMN_INDEX_));
color_manager_->setEventColor (type, event_item->backgroundColor(ALPHA_COLUMN_INDEX_));
}
}
else
{
// in non-XDF files, top level items are libbiosig event groups
for (int group_nr = 0; group_nr < ui_.tree_widget_->topLevelItemCount(); group_nr++)
{
QTreeWidgetItem* group_item = ui_.tree_widget_->topLevelItem (group_nr);

for (int nr = 0; nr < group_item->childCount(); nr++)
{
QTreeWidgetItem* event_item = group_item->child(nr);
EventType type = event_item->text(ID_COLUMN_INDEX_).toUInt();
color_manager_->setEventColor (type,
event_item->backgroundColor(ALPHA_COLUMN_INDEX_));
}
}
}
color_manager_->saveSettings();
Expand Down

0 comments on commit aef007f

Please sign in to comment.