static void menu_select_callback(MenuLayer *menu_layer, MenuIndex *cell_index, void *data) {
  show_schedule(((WaitTime *)wait_times.data[cell_index->row])->id);
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    int maxblock = 250;
    automation = new Automation(this);
    ip_config = new configure(this);
    readSettings();

    connect(ui->sendBtn, SIGNAL(clicked()),this, SLOT(sendMail()));
    connect(ui->browseBtn, SIGNAL(clicked()), this, SLOT(browse()));


    connect(ip_config,SIGNAL(accepted()),this,SLOT(process_config_dialog()));
    ad_ch.clear();
    ad_ch.append(ui->comboBox->currentIndex()+1);
    eas_ch.clear();
    eas_ch.append(1);
    eas_ch.append(2);
    eas_ch.append(3);
    eas_ch.append(4);
    eas_ch.append(5);
    eas_ch.append(6);
    eas_ch.append(7);
    id_ch.clear();
    id_ch.append(1);
    id_ch.append(2);
    id_ch.append(3);
    id_ch.append(4);
    id_ch.append(5);
    id_ch.append(6);
    id_ch.append(7);
    ui->mux_log_display->ensureCursorVisible();
    ui->mux_log_display->moveCursor(QTextCursor::End);
    ui->mux_log_display->verticalScrollBar()->setValue( ui->mux_log_display->verticalScrollBar()->maximum() );

    ui->mux_log_display_2->ensureCursorVisible();
    ui->mux_log_display_2->moveCursor(QTextCursor::End);
    ui->mux_log_display_2->verticalScrollBar()->setValue( ui->mux_log_display_2->verticalScrollBar()->maximum() );

    ui->event_log_display->ensureCursorVisible();
    ui->event_log_display->moveCursor(QTextCursor::End);
    ui->event_log_display->verticalScrollBar()->setValue( ui->event_log_display->verticalScrollBar()->maximum() );

    ui->encoder_display->ensureCursorVisible();
    ui->encoder_display->moveCursor(QTextCursor::End);
    ui->encoder_display->verticalScrollBar()->setValue( ui->encoder_display->verticalScrollBar()->maximum() );
    connect(automation,SIGNAL(encoder_display(QString)),ui->encoder_display,SLOT(insertPlainText(QString)));


    ui->eas_detect->ensureCursorVisible();
    ui->eas_detect->moveCursor(QTextCursor::End);
    ui->eas_detect->verticalScrollBar()->setValue( ui->eas_detect->verticalScrollBar()->maximum() );
    connect(automation,SIGNAL(eas_status(QString)),ui->stream_status_display,SLOT(insertPlainText(QString)));

    ui->ingest_display->ensureCursorVisible();
    ui->ingest_display->moveCursor(QTextCursor::End);
    ui->ingest_display->verticalScrollBar()->setValue( ui->ingest_display->verticalScrollBar()->maximum() );
    connect(automation,SIGNAL(ingest_disp(QString)),ui->ingest_display,SLOT(insertPlainText(QString)));

    ui->stream_status_display->ensureCursorVisible();
    ui->stream_status_display->moveCursor(QTextCursor::End);
    ui->stream_status_display->verticalScrollBar()->setValue( ui->stream_status_display->verticalScrollBar()->maximum() );

    QTextDocument * doc = ui->mux_log_display->document();
    doc->setMaximumBlockCount(maxblock);
    connect(automation,SIGNAL(mux_eas_log(QString)),ui->mux_log_display,SLOT( insertPlainText(QString) ) );
    connect(automation,SIGNAL(mux_log(QString)),ui->mux_log_display_2,SLOT( insertPlainText(QString) ) );
    connect(automation,SIGNAL(event_log_output(QString)),ui->event_log_display,SLOT(insertPlainText(QString)));
    connect(automation,SIGNAL(stream_status(QString)),ui->stream_status_display,SLOT(insertPlainText(QString)));
    connect(automation,SIGNAL(ingest_finished()),this,SLOT(ingest_finished()));
    connect(automation,SIGNAL(show_schedule(QList<QString>)),this,SLOT(show_schedule(QList<QString>)));
    automation->restart_eas_engine();
    ///automation->restart_mux_control();
}