void UI_SignalChooser::signalInvert() { int i, n, selected_signals[MAXSIGNALS]; n = get_selectionlist(selected_signals); if(n < 1) { return; } for(i=0; i<n; i++) { mainwindow->signalcomp[selected_signals[i]]->polarity *= -1; mainwindow->signalcomp[selected_signals[i]]->screen_offset *= -1; } load_signalcomps(); for(i=0; i<n; i++) { list->item(selected_signals[i])->setSelected(true); } mainwindow->setup_viewbuf(); }
UI_ECGExport::UI_ECGExport(QWidget *w_parent) { mainwindow = (UI_Mainwindow *)w_parent; myobjectDialog = new QDialog(w_parent); myobjectDialog->setMinimumSize(QSize(400, 445)); myobjectDialog->setMaximumSize(QSize(400, 445)); myobjectDialog->setWindowTitle("Export RR-intervals"); myobjectDialog->setModal(TRUE); myobjectDialog->setAttribute(Qt::WA_DeleteOnClose, TRUE); list = new QListWidget(myobjectDialog); list->setGeometry(20, 20, 130, 350); list->setSelectionBehavior(QAbstractItemView::SelectRows); list->setSelectionMode(QAbstractItemView::SingleSelection); groupBox1 = new QGroupBox(myobjectDialog); groupBox1->setGeometry(170, 20, 210, 120); groupBox1->setTitle("Output format"); radioButton1 = new QRadioButton("RR interval"); radioButton2 = new QRadioButton("R Onset + RR interval"); radioButton3 = new QRadioButton("R Onset"); radioButton2->setChecked(TRUE); checkBox1 = new QCheckBox("Whole recording", myobjectDialog); checkBox1->setGeometry(170, 160, 210, 25); checkBox1->setTristate(FALSE); checkBox2 = new QCheckBox("Don't write to file,\n" "import as annotations instead", myobjectDialog); checkBox2->setGeometry(170, 200, 210, 40); checkBox2->setTristate(FALSE); vbox1 = new QVBoxLayout; vbox1->addWidget(radioButton1); vbox1->addWidget(radioButton2); vbox1->addWidget(radioButton3); groupBox1->setLayout(vbox1); startButton = new QPushButton(myobjectDialog); startButton->setGeometry(20, 400, 150, 25); startButton->setText("Import/Export"); cancelButton = new QPushButton(myobjectDialog); cancelButton->setGeometry(280, 400, 100, 25); cancelButton->setText("Cancel"); load_signalcomps(); QObject::connect(cancelButton, SIGNAL(clicked()), myobjectDialog, SLOT(close())); QObject::connect(startButton, SIGNAL(clicked()), this, SLOT(Export_RR_intervals())); //myobjectDialog->exec(); Export_RR_intervals(); }
void UI_SignalChooser::signalDown() { int i, n, size, sigcomp_nr, selected_signals[MAXSIGNALS]; struct signalcompblock *signalcomp; n = get_selectionlist(selected_signals); if(n < 1) { return; } size = list->count(); if(size < (n + 1)) { return; } if(selected_signals[n-1] > (size - 2)) { return; } for(i=(n-1); i>=0; i--) { sigcomp_nr = selected_signals[i]; signalcomp = mainwindow->signalcomp[sigcomp_nr]; mainwindow->signalcomp[sigcomp_nr] = mainwindow->signalcomp[sigcomp_nr + 1]; mainwindow->signalcomp[sigcomp_nr + 1] = signalcomp; selected_signals[i] = sigcomp_nr; } load_signalcomps(); for(i=0; i<n; i++) { list->item(selected_signals[i] + 1)->setSelected(true); } mainwindow->setup_viewbuf(); }
UI_SignalChooser::UI_SignalChooser(QWidget *w_parent, int job, int *sgnl_nr) { task = job; signal_nr = sgnl_nr; mainwindow = (UI_Mainwindow *)w_parent; signalchooser_dialog = new QDialog(w_parent); if(task == 3) { signalchooser_dialog->setMinimumSize(QSize(265, 400)); signalchooser_dialog->setMaximumSize(QSize(265, 400)); signalchooser_dialog->setWindowTitle("Organize signals"); } else { signalchooser_dialog->setMinimumSize(QSize(200, 400)); signalchooser_dialog->setMaximumSize(QSize(200, 400)); signalchooser_dialog->setWindowTitle("Signals"); } signalchooser_dialog->setModal(true); signalchooser_dialog->setAttribute(Qt::WA_DeleteOnClose, true); list = new QListWidget(signalchooser_dialog); list->setGeometry(5, 5, 130, 365); list->setSelectionBehavior(QAbstractItemView::SelectRows); if(task == 3) { list->setSelectionMode(QAbstractItemView::ExtendedSelection); } else { list->setSelectionMode(QAbstractItemView::SingleSelection); } CloseButton = new QPushButton(signalchooser_dialog); CloseButton->setGeometry(5, 375, 130, 20); CloseButton->setText("Close"); if(task == 3) { UpButton = new QPushButton(signalchooser_dialog); UpButton->setGeometry(150, 180, 100, 20); UpButton->setText("Up"); DownButton = new QPushButton(signalchooser_dialog); DownButton->setGeometry(150, 220, 100, 20); DownButton->setText("Down"); InvertButton = new QPushButton(signalchooser_dialog); InvertButton->setGeometry(150, 260, 100, 20); InvertButton->setText("Invert"); DeleteButton = new QPushButton(signalchooser_dialog); DeleteButton->setGeometry(150, 300, 100, 20); DeleteButton->setText("Remove"); } load_signalcomps(); QObject::connect(CloseButton, SIGNAL(clicked()), signalchooser_dialog, SLOT(close())); if(task == 3) { if(list->count() > 0) { list->setCurrentRow(0); QObject::connect(UpButton, SIGNAL(clicked()), this, SLOT(signalUp())); QObject::connect(DownButton, SIGNAL(clicked()), this, SLOT(signalDown())); QObject::connect(InvertButton, SIGNAL(clicked()), this, SLOT(signalInvert())); QObject::connect(DeleteButton, SIGNAL(clicked()), this, SLOT(signalDelete())); } } else { QObject::connect(list, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(call_sidemenu(QListWidgetItem *))); } signalchooser_dialog->exec(); }
void UI_SignalChooser::signalDelete() { int i, j, k, n, p, sigcomp_nr, selected_signr[MAXSIGNALS]; n = get_selectionlist(selected_signr); if(n < 1) { return; } for(k=0; k<n; k++) { sigcomp_nr = selected_signr[k]; sigcomp_nr -= k; for(i=0; i<MAXSPECTRUMDOCKS; i++) { if(mainwindow->spectrumdock[i]->signalcomp == mainwindow->signalcomp[sigcomp_nr]) { mainwindow->spectrumdock[i]->clear(); mainwindow->spectrumdock[i]->dock->hide(); } } for(i=0; i<MAXSPECTRUMDIALOGS; i++) { p = mainwindow->signalcomp[sigcomp_nr]->spectr_dialog[i]; if(p != 0) { delete mainwindow->spectrumdialog[p - 1]; mainwindow->spectrumdialog[p - 1] = NULL; } } for(i=0; i<MAXAVERAGECURVEDIALOGS; i++) { p = mainwindow->signalcomp[sigcomp_nr]->avg_dialog[i]; if(p != 0) { delete mainwindow->averagecurvedialog[p - 1]; mainwindow->averagecurvedialog[p - 1] = NULL; } } for(i=0; i<MAXZSCOREDIALOGS; i++) { p = mainwindow->signalcomp[sigcomp_nr]->zscoredialog[i]; if(p != 0) { delete mainwindow->zscoredialog[p - 1]; mainwindow->zscoredialog[p - 1] = NULL; } } if(mainwindow->signalcomp[sigcomp_nr]->hascursor2) { mainwindow->maincurve->crosshair_2.active = 0; mainwindow->maincurve->crosshair_2.moving = 0; } if(mainwindow->signalcomp[sigcomp_nr]->hascursor1) { mainwindow->maincurve->crosshair_1.active = 0; mainwindow->maincurve->crosshair_2.active = 0; mainwindow->maincurve->crosshair_1.moving = 0; mainwindow->maincurve->crosshair_2.moving = 0; for(i=0; i<mainwindow->signalcomps; i++) { mainwindow->signalcomp[i]->hascursor2 = 0; } } if(mainwindow->signalcomp[sigcomp_nr]->hasruler) { mainwindow->maincurve->ruler_active = 0; mainwindow->maincurve->ruler_moving = 0; } for(j=0; j<mainwindow->signalcomp[sigcomp_nr]->filter_cnt; j++) { free(mainwindow->signalcomp[sigcomp_nr]->filter[j]); } mainwindow->signalcomp[sigcomp_nr]->filter_cnt = 0; if(mainwindow->signalcomp[sigcomp_nr]->spike_filter != NULL) { free_spike_filter(mainwindow->signalcomp[sigcomp_nr]->spike_filter); } mainwindow->signalcomp[sigcomp_nr]->spike_filter = NULL; for(j=0; j<mainwindow->signalcomp[sigcomp_nr]->ravg_filter_cnt; j++) { free_ravg_filter(mainwindow->signalcomp[sigcomp_nr]->ravg_filter[j]); } mainwindow->signalcomp[sigcomp_nr]->ravg_filter_cnt = 0; if(mainwindow->signalcomp[sigcomp_nr]->ecg_filter != NULL) { free_ecg_filter(mainwindow->signalcomp[sigcomp_nr]->ecg_filter); mainwindow->signalcomp[sigcomp_nr]->ecg_filter = NULL; strcpy(mainwindow->signalcomp[sigcomp_nr]->signallabel, mainwindow->signalcomp[sigcomp_nr]->signallabel_bu); mainwindow->signalcomp[sigcomp_nr]->signallabellen = mainwindow->signalcomp[sigcomp_nr]->signallabellen_bu; strcpy(mainwindow->signalcomp[sigcomp_nr]->physdimension, mainwindow->signalcomp[sigcomp_nr]->physdimension_bu); } for(j=0; j<mainwindow->signalcomp[sigcomp_nr]->fidfilter_cnt; j++) { free(mainwindow->signalcomp[sigcomp_nr]->fidfilter[j]); fid_run_free(mainwindow->signalcomp[sigcomp_nr]->fid_run[j]); fid_run_freebuf(mainwindow->signalcomp[sigcomp_nr]->fidbuf[j]); fid_run_freebuf(mainwindow->signalcomp[sigcomp_nr]->fidbuf2[j]); } mainwindow->signalcomp[sigcomp_nr]->fidfilter_cnt = 0; free(mainwindow->signalcomp[sigcomp_nr]); for(i=sigcomp_nr; i<mainwindow->signalcomps - 1; i++) { mainwindow->signalcomp[i] = mainwindow->signalcomp[i + 1]; } mainwindow->signalcomps--; } load_signalcomps(); mainwindow->setup_viewbuf(); }