#ifndef EDITSCREEN_H
#define EDITSCREEN_H

#include <QWidget>


class MainWindowController;

namespace Ui {
class EditScreen;
}

/*!
 * \brief The EditScreen class.
 */
class EditScreen : public QWidget
{
    Q_OBJECT

public:
    /*!
     * \brief EditScreen constructor.
     * \param parent Edit screen parent widget.
     */
    explicit EditScreen(QWidget *parent = 0);    
    ~EditScreen();

    /*!
     * \brief setController Specifies the edit screen controller.
     * \param controller Edit screen controller.
     */
    void setController(MainWindowController *controller);

private:

    /*!
     * \brief enableDragAndDrop Enables drag and drop into the screen.
     */
    void enableDragAndDrop();

    /*!
     * \brief showDragError Shows error image.
     */
    void showDragError();

    /*!
     * \brief showImageAnimation Shows an image animation.
     * \param start Start animation value.
     * \param end End animation value.
     */
    void showImageAnimation(int start, int end);

private slots:

    /*!
     * \brief on_browseBtn_clicked This slot is executed when the browse button is clicked.
     */
    void on_browseBtn_clicked();

    /*!
     * \brief dragEnterEvent This slot is executed when the file enter into the screen.
     * \param event Drag enter event.
     */
    void dragEnterEvent(QDragEnterEvent *event);

    /*!
     * \brief dropEvent This slot is executed when the file is drop into the screen.
     * \param event Drop event.
     */
    void dropEvent(QDropEvent *event);

private:

    /*!
     * \brief ui
     */
    Ui::EditScreen *ui;

    /*!
     * \brief controller Edit screen controller.
     */
    MainWindowController *controller;
};

#endif // EDITSCREEN_H
