#include "calendarnav.h"
#include "PaintHelper/painthelper.h"
#include "ui_calendarnav.h"
#include "StyleManager/lhstylemanager.h"
#include <QDebug>
#include <QFile>


//#pragma execution_character_set("utf-8")
CalendarNav::CalendarNav(QCalendarWidget *pCalendar, QWidget *parent)
   : QWidget(parent)
   , ui(new Ui::CalendarNav)
   , m_pCalendar(pCalendar)
{
    ui->setupUi(this);

    /* 加载qss */
    QFile file = QString(":/Calendar/CalendarNav.qss");
    if(!file.open(QIODevice::ReadOnly))
    {
        qDebug() << "CalendarNav.cpp:QSS打开失败";
    }
    QString  ss = file.readAll();

    this->setStyleSheet(ss);

    connect(ui->btnPrevYear, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showPreviousYear);
    connect(ui->btnPrevMonth, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showPreviousMonth);
    connect(ui->btnNextMonth, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showNextMonth);
    connect(ui->btnNextYear, &QPushButton::clicked, m_pCalendar, &QCalendarWidget::showNextYear);
    
    connect(m_pCalendar, &QCalendarWidget::currentPageChanged, this, &CalendarNav::SetYearMonth);
    
    //默认显示当天, QCalendarWidget的默认选中日期也是当天
    SetYearMonth(QDate::currentDate().year(), QDate::currentDate().month());
    LHStyleManager::Instance()->AddWidget(this);
}

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

void CalendarNav::hidePreYear(bool flag)
{
    ui->btnPrevYear->setVisible(!flag);
}

void CalendarNav::hidePreMonth(bool flag)
{
    ui->btnPrevMonth->setVisible(!flag);
}

void CalendarNav::hideNextYear(bool flag)
{
    ui->btnNextYear->setVisible(!flag);
}

void CalendarNav::hideNextMonth(bool flag)
{
    ui->btnNextMonth->setVisible(!flag);
}

void CalendarNav::SetYearMonth(int year, int month)
{
    ui->labelYearMonth->setText(QString("%1 年 %2 月").arg(year).arg(month));
}