• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeutils API Reference
  • KDE Home
  • Contact Us
 

superkaramba

  • sources
  • kde-4.12
  • kdeutils
  • superkaramba
  • src
  • sensors
date.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2003 by Hans Karlsson *
3  * karlsson.h@home.se *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  ***************************************************************************/
10 
11 #include "date.h"
12 
13 #include <QApplication>
14 #include <QDesktopWidget>
15 #include <QVBoxLayout>
16 
17 DateSensor::DateSensor(int interval) : Sensor(interval)
18 {
19  hidden = true;
20 }
21 DateSensor::~DateSensor()
22 {}
23 
24 void DateSensor::update()
25 {
26  QDateTime qdt = QDateTime::currentDateTime();
27  QString format;
28  SensorParams *sp;
29  Meter *meter;
30 
31  QObject *obj;
32  foreach(obj, *objList) {
33  sp = (SensorParams*)(obj);
34  meter = sp->getMeter();
35  format = sp->getParam("FORMAT");
36 
37  if (format.length() == 0) {
38  format = "hh:mm";
39  }
40  meter->setValue(qdt.toString(format));
41  }
42 }
43 
44 void DateSensor::slotCalendarDeleted()
45 {
46  hidden = true;
47  cal = 0L;
48 }
49 
50 
51 DatePicker::DatePicker(QWidget *parent)
52  : QWidget(parent, Qt::Window | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint)
53 {
54  setAttribute(Qt::WA_DeleteOnClose);
55 
56  picker = new KDatePicker();
57  picker->setCloseButton(true);
58 
59  QVBoxLayout *layout = new QVBoxLayout;
60  layout->addWidget(picker);
61  setLayout(layout);
62 
63  /* name and icon for kicker's taskbar */
64  //setCaption(i18n("Calendar"));
65  //setIcon(SmallIcon("date"));
66 }
67 
68 void DatePicker::keyReleaseEvent(QKeyEvent *e)
69 {
70  QWidget::keyReleaseEvent(e);
71  if (e->key() == Qt::Key_Escape)
72  close();
73 }
74 
75 void DateSensor::toggleCalendar(QMouseEvent *ev)
76 {
77  QObject *obj;
78  foreach(obj, *objList) {
79  SensorParams *sp = (SensorParams*)(obj);
80  Meter *meter = sp->getMeter();
81  QString width = sp->getParam("CALWIDTH");
82  QString height = sp->getParam("CALHEIGHT");
83 
84  QRect rect(meter->getX(), meter->getY(), width.toInt(), height.toInt());
85  if (rect.contains(ev->x(), ev->y())) {
86  if (hidden) {
87  hidden = false;
88  cal = new DatePicker(0);
89 
90  connect(cal, SIGNAL(destroyed()), SLOT(slotCalendarDeleted()));
91  QPoint c = (QPoint(ev->x(), ev->y()));
92 
93  int w = cal->sizeHint().width();
94  int h = cal->sizeHint().height();
95 
96  // make calendar fully visible
97  QRect deskR = QApplication::desktop()->screenGeometry(QApplication::desktop()->screenNumber(c));
98 
99 
100  if (c.y() + h > deskR.bottom()) c.setY(deskR.bottom() - h - 1);
101  if (c.x() + w > deskR.right()) c.setX(deskR.right() - w - 1);
102  cal->move(c);
103  cal->show();
104 
105  } else {
106  cal->close();
107  }
108  }
109  }
110 }
111 
112 void DateSensor::mousePressEvent(QMouseEvent *ev)
113 {
114  switch (ev->button()) {
115  case Qt::LeftButton:
116  toggleCalendar(ev);
117  break;
118  default:
119  break;
120  }
121 }
122 
123 
124 #include "date.moc"
DatePicker
Definition: date.h:18
DateSensor::update
void update()
Definition: date.cpp:24
DateSensor::slotCalendarDeleted
void slotCalendarDeleted()
Definition: date.cpp:44
Meter::getY
virtual int getY() const
Definition: meters/meter.cpp:69
QWidget
DateSensor::~DateSensor
~DateSensor()
Definition: date.cpp:21
SensorParams::getMeter
Meter * getMeter() const
Definition: sensorparams.cpp:31
QObject
Sensor
Definition: sensor.h:17
SensorParams
Hans Karlsson.
Definition: sensorparams.h:30
DateSensor::mousePressEvent
void mousePressEvent(QMouseEvent *ev)
Definition: date.cpp:112
DateSensor::toggleCalendar
void toggleCalendar(QMouseEvent *ev)
Definition: date.cpp:75
SensorParams::getParam
QString getParam(const QString &) const
Definition: sensorparams.cpp:26
Meter
Definition: meters/meter.h:23
Meter::getX
virtual int getX() const
Definition: meters/meter.cpp:55
Meter::setValue
virtual void setValue(int)
Definition: meters/meter.cpp:136
DateSensor::DateSensor
DateSensor(int interval)
Definition: date.cpp:17
date.h
DatePicker::DatePicker
DatePicker(QWidget *)
Definition: date.cpp:51
Sensor::objList
QList< QObject * > * objList
Definition: sensor.h:39
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:07:19 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

superkaramba

Skip menu "superkaramba"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • kremotecontrol
  • ktimer
  • kwallet
  • superkaramba
  • sweeper

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal