#ifndef UPDATENOTIFYWIDGET_H
#define UPDATENOTIFYWIDGET_H

#include <QDialog>
#include <QWidget>
#include <QLabel>

#include <Data/FileData.h>
#include <Core/versioncontainer.h>

namespace Ui {
class UpdateNotifyWidget;
}


class UpdateNotifyWidget : public QWidget
{
    Q_OBJECT

public:
    explicit UpdateNotifyWidget(QWidget *parent = nullptr);
    ~UpdateNotifyWidget();
    void initialize(QPoint startPos);
    void addToList(FileData fileData);
    void showWithFill();
    void showTryChangeBase();
    void setVersionContainer(VersionContainer *versionContainer);
signals:
    void sigLoadToServerBehaviour();
    void sigUndoCurrentChanges();
    void sigStartUnityClient();
    void sigShowMainFrame(bool flag);

private slots:
    void on_closeButton_clicked();
    void on_loadToServerButton_clicked();
    void on_undoChangesButton_clicked();
    void on_startWithCurrentChangesButton_clicked();

private:
    Ui::UpdateNotifyWidget *ui;
    VersionContainer *versionContainer;
    int currentLoadingCount;
    QLabel* createLabel(QString text);
    void clearList();
    void setUpdateState();
    void setCantUpdateState();
};

#endif // UPDATENOTIFYWIDGET_H
