diff options
| author | Loïc Guégan <loic.guegan@mailbox.org> | 2024-09-18 18:32:24 +0200 |
|---|---|---|
| committer | Loïc Guégan <loic.guegan@mailbox.org> | 2024-09-18 18:32:24 +0200 |
| commit | 76ddf4fe100d7023451eb3b3134de4a11a7ad852 (patch) | |
| tree | 5df054573ab4c7efc1c45bf1c977e37f94ff40fa /tropical/qt/caldrawer.py | |
| parent | 171fbd28a33bd71a2b17b35c558c2029f4b72a0a (diff) | |
Minor changes
Diffstat (limited to 'tropical/qt/caldrawer.py')
| -rw-r--r-- | tropical/qt/caldrawer.py | 42 |
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) + |
