[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2008-06-02 20:55:20
Message-ID: 1212440120.360848.15927.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 815934 by aseigo:

show the date for the timezone the clock is set to when pulling up the calendar; make \
analog clock use the standard calendar facility as well


 M  +2 -1      analog-clock/CMakeLists.txt  
 M  +39 -1     analog-clock/clock.cpp  
 M  +9 -5      analog-clock/clock.h  
 M  +2 -2      digital-clock/clock.cpp  


--- trunk/KDE/kdebase/workspace/plasma/applets/analog-clock/CMakeLists.txt \
#815933:815934 @@ -4,7 +4,8 @@
 
 kde4_add_ui_files(clock_SRCS clockConfig.ui )
 kde4_add_plugin(plasma_applet_clock ${clock_SRCS})
-target_link_libraries(plasma_applet_clock plasma ${KDE4_KIO_LIBS})
+include_directories( ../libplasmaclock/ \
${CMAKE_CURRENT_BINARY_DIR}/../libplasmaclock/) \
+target_link_libraries(plasma_applet_clock plasma plasmaclock ${KDE4_KIO_LIBS})  
 install(TARGETS plasma_applet_clock DESTINATION ${PLUGIN_INSTALL_DIR})
 install(FILES plasma-applet-analogclock.desktop DESTINATION ${SERVICES_INSTALL_DIR})
--- trunk/KDE/kdebase/workspace/plasma/applets/analog-clock/clock.cpp #815933:815934
@@ -46,6 +46,7 @@
 #include <KTimeZoneWidget>
 #include <KDialog>
 
+#include <plasma/dialog.h>
 #include <plasma/svg.h>
 #include <plasma/theme.h>
 
@@ -53,7 +54,8 @@
     : Plasma::Containment(parent, args),
       m_showTimeString(false),
       m_showSecondHand(false),
-      m_secondHandUpdateTimer(0)
+      m_secondHandUpdateTimer(0),
+      m_calendar(0)
 {
     setHasConfigurationInterface(true);
     resize(125, 125);
@@ -315,4 +317,40 @@
     m_theme->paint(p, rect, "Glass");
 }
 
+void Clock::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+    if (event->buttons() == Qt::LeftButton) {
+        showCalendar(event);
+    } else {
+        event->ignore();
+    }
+}
+
+void Clock::showCalendar(QGraphicsSceneMouseEvent *event)
+{
+    Q_UNUSED(event);
+
+    if (m_calendar == 0) {
+        m_calendar = new Plasma::Dialog();
+        //m_calendar->setStyleSheet("{ border : 0px }"); // FIXME: crashes
+        QVBoxLayout *layout = new QVBoxLayout();
+        layout->setSpacing(0);
+        layout->setMargin(0);
+
+        m_calendarUi.setupUi(m_calendar);
+        m_calendar->setLayout(layout);
+        m_calendar->setWindowFlags(Qt::Popup);
+        m_calendar->adjustSize();
+    }
+
+    if (m_calendar->isVisible()) {
+        m_calendar->hide();
+    } else {
+        Plasma::DataEngine::Data data = dataEngine("time")->query(m_timezone);
+        m_calendarUi.kdatepicker->setDate(data["Date"].toDate());
+        m_calendar->move(popupPosition(m_calendar->sizeHint()));
+        m_calendar->show();
+    }
+}
+
 #include "clock.moc"
--- trunk/KDE/kdebase/workspace/plasma/applets/analog-clock/clock.h #815933:815934
@@ -35,12 +35,14 @@
 #include <plasma/containment.h>
 #include <plasma/dataengine.h>
 #include "ui_clockConfig.h"
+#include "ui_calendar.h"
 
 class QTimer;
 
 namespace Plasma
 {
     class Svg;
+    class Dialog;
 }
 
 class Clock : public Plasma::Containment
@@ -59,15 +61,15 @@
     public slots:
         void dataUpdated(const QString &name, const Plasma::DataEngine::Data &data);
 
+    protected:
+        void createConfigurationInterface(KConfigDialog *parent);
+        void mousePressEvent(QGraphicsSceneMouseEvent *event);
+
     protected slots:
-//         void acceptedTimeStringState(bool);
         void configAccepted();
         void moveSecondHand();
+        void showCalendar(QGraphicsSceneMouseEvent *event);
 
-    protected:
-        void createConfigurationInterface(KConfigDialog *parent);
-
-
     private:
         void drawHand(QPainter *p, qreal rotation, const QString &handName);
         void connectToEngine();
@@ -83,6 +85,8 @@
         int m_animationStart;
         /// Designer Config file
         Ui::clockConfig ui;
+        Plasma::Dialog *m_calendar;
+        Ui::calendar m_calendarUi;
 };
 
 K_EXPORT_PLASMA_APPLET(clock, Clock)
--- trunk/KDE/kdebase/workspace/plasma/applets/digital-clock/clock.cpp #815933:815934
@@ -176,8 +176,8 @@
     if (m_calendar->isVisible()) {
         m_calendar->hide();
     } else {
-        kDebug();
-        m_calendarUi.kdatepicker->setDate(QDate::currentDate());
+        Plasma::DataEngine::Data data = dataEngine("time")->query(m_timezone);
+        m_calendarUi.kdatepicker->setDate(data["Date"].toDate());
         m_calendar->move(popupPosition(m_calendar->sizeHint()));
         m_calendar->show();
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic