#include "savetotemplate.h"
#include "ui_savetotemplate.h"

#include <QStyle>
#include <QFile>

#include "lhstylemanager.h"

SaveToTemplate::SaveToTemplate(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::SaveToTemplate)
{
    ui->setupUi(this);

    /* 设置隐藏边框 */
    this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);
    /* 设置底层样式表 */
    this->setAttribute(Qt::WA_TranslucentBackground);

    /* 加载样式表 */
    // QFile file(":/QSS/QSS/savetotemplate_light.qss");
    // if(file.open(QFile::ReadOnly))
    // {
    //     QString styleSheet = file.readAll();
    //     this->setStyleSheet(styleSheet);
    //     file.close();
    // }
    LHStyleManager::Instance()->AddWidget(this);

    m_templateNameList.clear();

    ui->label_warn->hide();

    /* 限制字数类型 */
    ui->lineEdit->setMaxLength(15);

    connect(ui->pBtn_close,SIGNAL(clicked()),this,SLOT(close()));
    connect(ui->pBtn_cancel,SIGNAL(clicked()),this,SLOT(close()));
    connect(ui->pBtn_ok,SIGNAL(clicked()),this,SLOT(do_ok()));
}

SaveToTemplate::~SaveToTemplate()
{
    delete ui;
}

/* 设置周几 */
void SaveToTemplate::setWeekDay(int weekDay)
{
    m_weekDay = weekDay;
}

/* 传入计划项是否为空 */
void SaveToTemplate::setItemEmpty(bool flag)
{
    m_itemEmpty = flag;
}


/* 传入所有的模板名称 */
void SaveToTemplate::setTemplateName(const QStringList &list)
{
    m_templateNameList = list;
}


/* 获取模板名称 */
QString SaveToTemplate::getTemplateName()
{
    return m_templateName;
}

void SaveToTemplate::do_ok()
{
    m_isOk = false;
    m_templateName.clear();
    ui->label_warn->hide();
    setWarning(false);
    /* 检查这一页的项是否为空 */
    if(m_itemEmpty)
    {
        ui->label_warn->setText("当前页没有计划项!");
        ui->label_warn->show();
        setWarning(true);
        return;
    }

    /* 检查名称是否是空的 */
    m_templateName = ui->lineEdit->text();
    if(m_templateName.isEmpty())
    {
        ui->label_warn->setText("请输入模版名称!");
        ui->label_warn->show();
        setWarning(true);
        return;
    }
    /* 检查模板名称是否重复 */
    bool flag = false;
    for(const auto& it : m_templateNameList)
    {
        if(it == m_templateName)
        {
            flag = true;
            break;
        }
    }

    if(flag)
    {
        ui->label_warn->setText("模版名称重复!");
        ui->label_warn->show();
        setWarning(true);
        return;
    }

    m_isOk = true;
    emit signal_templateName(m_templateName);
    this->close();
}

/* 设置报警 */
void SaveToTemplate::setWarning(bool flag)
{
    if(flag)
    {
        ui->lineEdit->setProperty("Warn", true);
    }else
    {
        ui->lineEdit->setProperty("Warn", false);
    }

    ui->lineEdit->style()->unpolish(ui->lineEdit);
    ui->lineEdit->style()->polish(ui->lineEdit);
}