mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from PySide2 import QtCore, QtGui
|
|
from PySide2.QtWidgets import QCalendarWidget
|
|
|
|
|
|
class QLiberationCalendar(QCalendarWidget):
|
|
def __init__(self, parent=None):
|
|
super(QLiberationCalendar, self).__init__(parent)
|
|
self.setVerticalHeaderFormat(QCalendarWidget.NoVerticalHeader)
|
|
self.setGridVisible(False)
|
|
|
|
# Overrride default QCalendar behaviour that is rendering week end days in red
|
|
for d in (
|
|
QtCore.Qt.Monday,
|
|
QtCore.Qt.Tuesday,
|
|
QtCore.Qt.Wednesday,
|
|
QtCore.Qt.Thursday,
|
|
QtCore.Qt.Friday,
|
|
QtCore.Qt.Saturday,
|
|
QtCore.Qt.Sunday,
|
|
):
|
|
fmt = self.weekdayTextFormat(d)
|
|
fmt.setForeground(QtCore.Qt.darkGray)
|
|
self.setWeekdayTextFormat(d, fmt)
|
|
|
|
def paintCell(self, painter, rect, date):
|
|
if date == self.selectedDate():
|
|
painter.save()
|
|
painter.fillRect(rect, QtGui.QColor("#D3D3D3"))
|
|
painter.setPen(QtCore.Qt.NoPen)
|
|
painter.setBrush(QtGui.QColor(52, 68, 85))
|
|
r = QtCore.QRect(
|
|
QtCore.QPoint(), min(rect.width(), rect.height()) * QtCore.QSize(1, 1)
|
|
)
|
|
r.moveCenter(rect.center())
|
|
painter.drawEllipse(r)
|
|
painter.setPen(QtGui.QPen(QtGui.QColor("white")))
|
|
painter.drawText(rect, QtCore.Qt.AlignCenter, str(date.day()))
|
|
painter.restore()
|
|
else:
|
|
super(QLiberationCalendar, self).paintCell(painter, rect, date)
|