summaryrefslogtreecommitdiff
path: root/tropical/qt/caldrawer.py
diff options
context:
space:
mode:
authorLoïc Guégan <loic.guegan@mailbox.org>2024-09-18 18:32:24 +0200
committerLoïc Guégan <loic.guegan@mailbox.org>2024-09-18 18:32:24 +0200
commit76ddf4fe100d7023451eb3b3134de4a11a7ad852 (patch)
tree5df054573ab4c7efc1c45bf1c977e37f94ff40fa /tropical/qt/caldrawer.py
parent171fbd28a33bd71a2b17b35c558c2029f4b72a0a (diff)
Minor changes
Diffstat (limited to 'tropical/qt/caldrawer.py')
-rw-r--r--tropical/qt/caldrawer.py42
1 files changed, 30 insertions, 12 deletions
diff --git a/tropical/qt/caldrawer.py b/tropical/qt/caldrawer.py
index 39f72a1..b7a7502 100644
--- a/tropical/qt/caldrawer.py
+++ b/tropical/qt/caldrawer.py
@@ -21,7 +21,7 @@ class CalQGraphicsView(QGraphicsView):
class CalDrawerScene(QGraphicsScene):
- def __init__(self, parent, calState):
+ def __init__(self, parent, env):
self.parent=parent
self.gridWidth=2
self.daysLabelBG="#dddddd"
@@ -31,9 +31,11 @@ class CalDrawerScene(QGraphicsScene):
self.daysRect=list()
self.eventsRect=list()
self.mouseOver=-1
- self.calState=calState
+ self.env=env
+ self.calState=env.calState
self.daysNames=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
-
+ self.pullState()
+ self.selection=self.today
def drawForeground(self, painter, rect):
origXF, origYF, widthF, heightF = rect.getRect()
@@ -141,11 +143,12 @@ class CalDrawerScene(QGraphicsScene):
labelH=metric.boundingRect("1234567890").height()
margin=0
offsetY=int(labelH/2)+int(labelH/4)+margin
+ today=self.calState.today()
# Draw labels
for i in range(0,len(self.daysRect)):
r=self.daysRect[i]
d=days[i]
- dayLabel=str(d[2])
+ dayLabel="["+str(d[2])+"]" if d == today else str(d[2])
labelW=metric.boundingRect(dayLabel).width()
offsetX=int(r.width()/2-labelW/2)
painter.setPen(Qt.PenStyle.NoPen)
@@ -175,14 +178,16 @@ class CalDrawerScene(QGraphicsScene):
colMark=5
colMarkPadding=2
offsetY=int(labelH/2)+int(labelH/4)+margin
+ offsetX=colMark+colMarkPadding
# Draw
po=int(self.gridWidth/2) # Pen offset
- for r in self.eventsRect:
- offsetX=colMark+colMarkPadding
- painter.drawText(r.x()+po+offsetX,r.y(),r.width()-offsetX-po*2,r.height(),0,"event testddddddddddddd")
- painter.setPen(Qt.PenStyle.NoPen)
- painter.drawRect(r.x(),r.y(),colMark,labelH) # Remember r is within grid stroke
- painter.setPen(pen)
+ for i in range(0,len(self.eventsRect)):
+ r=self.eventsRect[i]
+ for e in self.events[i]:
+ painter.drawText(r.x()+po+offsetX,r.y(),r.width()-offsetX-po*2,r.height(),0,"event testddddddddddddd")
+ painter.setPen(Qt.PenStyle.NoPen)
+ painter.drawRect(r.x(),r.y(),colMark,labelH) # Remember r is within grid stroke
+ painter.setPen(pen)
def mouseMoveEvent(self, event):
"""
@@ -203,14 +208,23 @@ class CalDrawerScene(QGraphicsScene):
b=event.button()
if self.mouseOver>=0 and b==Qt.MouseButton.LeftButton:
event.accept()
+ self.selection=self.calState.getMonthDays()[self.mouseOver]
event = QEvent(DaySelectedEvent)
QCoreApplication.postEvent(self.parent, event)
+ def pullState(self):
+ self.monthDays=self.calState.getMonthDays()
+ self.today=self.calState.today()
+ self.events=list()
+ for yy, mm, dd, ww in self.monthDays:
+ self.events.append(self.env.listEventsOn(yy,mm,dd))
+
class CalDrawer():
- def __init__(self, parent, layout, calState):
- self.gs=CalDrawerScene(parent, calState)
+ def __init__(self, parent, layout, env):
+ self.env=env
+ self.gs=CalDrawerScene(parent, env)
self.gv=CalQGraphicsView(self.gs)
# Setup propertion
spLeft=QSizePolicy(QSizePolicy.Policy.Preferred,QSizePolicy.Policy.Preferred);
@@ -227,3 +241,7 @@ class CalDrawer():
# self.gv.setSizePolicy(spLeft);
layout.addWidget(self.gv)
+ def getSelectionEvents(self):
+ (yy,mm,dd,ww)=self.gs.selection
+ return self.env.listEventsOn(yy,mm,dd)
+