57 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
58 bool setHeaderData(
int section, Qt::Orientation orientation,
const QVariant &value,
int role = Qt::EditRole)
override;
61 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
62 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
79 SolarRole = Qt::UserRole + 1,
93 QVariant
data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
96 bool setData(
const QModelIndex &index,
const QVariant &value,
97 int role = Qt::EditRole)
override;
99 Qt::ItemFlags flags(
const QModelIndex& index)
const override;
101 int showMonth(
int year,
int month,
bool bForce =
false);
102 int showWeek(
int year,
int week,
bool bForce =
false);
103 const int GetShowWeek()
const;
104 const int GetShowMonth()
const;
105 const int GetShowYear()
const;
106 const int GetWeeksOfYear(
int year = QDate::currentDate().day())
const;
107 int setDate(
const QDate &d);
108 const QDate GetDate()
const;
109 int SetMinimumDate(
const QDate &date);
110 const QDate GetMinimumDate()
const;
111 int SetMaximumDate(
const QDate &date);
112 const QDate GetMaximumDate()
const;
113 int setRange(
const QDate &min,
const QDate &max);
114 const Qt::DayOfWeek firstDayOfWeek()
const;
117 const QDate dateForCell(
int row,
int column)
const;
118 void cellForDate(
const QDate &date,
int *row,
int *column)
const;
120 void EnableToolTip(
bool enable);
121 bool EnableHolidays(
bool bEnable =
true);
122 bool EnableSolarTerm(
bool bEnable =
true);
124 int SetTaskHandle(QSharedPointer<CLunarCalendar::CTaskHandler> handler);
129 virtual int SetTaskHandle(std::function<uint (
const QDate &, QStringList &)> cbHandler);
140 void internalUpdate();
141 const QDate firstDateMonth()
const;
142 const QDate endDateMonth()
const;
143 const int WeeksOfMonth()
const;
144 const QDate dateForCellMonth(
int row,
int column)
const;
145 void cellForDateMonth(
const QDate &date,
int *row,
int *column)
const;
146 const QDate dateForCellWeek(
int row,
int column)
const;
147 void cellForDateWeek(
const QDate &date,
int *row,
int *column)
const;
148 const int columnForFirstOfMonth(
const QDate &date)
const;
149 const int columnForDayOfWeek(Qt::DayOfWeek day)
const;
150 const QTextCharFormat formatForCell(QDate d,
int row,
int col)
const;
151 const QColor GetHeight()
const;
162 int m_ColumnCount, m_RowCount;
163 Qt::DayOfWeek m_FirstDay;
165 enum class __WORK_DAY {
181 QStringList SolarHoliday;
182 QStringList LunarHoliday;
187 QString szImageBackgroup;
191 _DAY GetDay(
int row,
int col)
const;
193 bool m_bEnableHolidays;
194 bool m_bEnableSolarTerm;
199 bool m_bEnableToolTip;
201 QSharedPointer<CLunarCalendar::CTaskHandler> m_GetTaskHandler;
203 std::function<uint(
const QDate& date,
204 QStringList& tasks)> m_cbTaskHandler;
207 QSqlDatabase m_Database;
209 int ExecSqlFile(
const QString& szFile);
210 int InitTableHolidays();
216 const QStringList GetHoliday(
const QDate& d)
const;
217 const QStringList GetLunarHoliday(
int month,
int day)
const;
218 QSharedPointer<RabbitCommon::CDownload> m_DownloadHolidaysSql;
220 int DownloadHolidaysSqlFile(
const QVector<QUrl> &urls);
221 void CheckUpdateHolidaysTable();
223 void slotDownloadHolidaysSqlFileError(
int nErr,
const QString szError);
224 void slotDownloadHolidaysSqlFileFinished(
const QString szFile);
228 QSharedPointer<RabbitCommon::CDownload> m_DownloadChineseHolidaysSql;
229 QFile m_ChineseHolidaysSql;
230 int InitTableChineseHolidays();
231 void CheckUpdateChineseHolidaysTable();
237 int DownloadChineseHolidaysSqlFile(
const QVector<QUrl> &urls);
238 __WORK_DAY GetChineseHolidays(
const QDate& d);
241 void slotDownloadChineseHolidaysSqlFileError(
int nErr,
const QString szError);
242 void slotDownloadChineseHolidaysSqlFileFinished(
const QString szFile);