#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QWidget>
#include <QDir>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_symbol.h>
#include <QTimer>
#include <QMenu>
#include <QAction>
#include <QTextStream>
#include <QFileDialog>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "rs232/qextserialport.h"
#include "scansettings.h"
#include "limitssettings.h"
#include "lbtsettings.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void slot_MainWindow_save();
    void slot_MainWindow_open();

    void slot_MainWindow_scan();

    void slot_MainWindow_scan_settings();
    void slot_MainWindow_limits_settings();
    void slot_MainWindow_serial_port(QAction* act);

    void slot_MainWindow_rs232_read();

    void slot_MainWindow_set_scan_ok();
    void slot_MainWindow_set_limits_ok();

protected:
    void changeEvent(QEvent *e);

private:
    //proměnné pro vytvoření menu k výběru portů
    QMenu *port_menu;
    QAction **port_actions;
    QActionGroup *port_group;
    //přístup k portu
    QextSerialPort *port;
    PortSettings port_settings;
    //nastavení
    ScanSettings *scan_set_dialog;
    LimitsSettings *limits_set_dialog;
    LbtSettings program_settings;
    //timer kontrolující příchozí data (knihovna ve stabilní verzi nepodporuje signál readyRead()
    QTimer *read_timer;
    Ui::MainWindow *ui;

    void postprocessing();
};

void resizeArray(int s);

#endif // MAINWINDOW_H
