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

List:       kde-panel-devel
Subject:    Configuring time and date from context menu of digital-clock applet
From:       Gökçen_Eraslan <gokcen () pardus ! org ! tr>
Date:       2009-05-28 9:14:05
Message-ID: 200905281214.11476.gokcen () pardus ! org ! tr
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/mixed)]


Hi,

A patch for $subject is attached. This was the default behaviour in KDE3, now 
users have to open systemsettings to configure date/time.

Any reviews, comments?

PS: By the way, there is a bug about time configuration. By default, update 
interval of digital-clock plasmoid is 60 seconds when showSeconds is false, 
and 1 second if it's true. If you change time from clock kcm and showSeconds 
is false, digital-clock applet refreshes itself 1 minute later. Maybe 
updateInterval should be hardcoded as 1 second regardless of showSeconds 
variable.

-- 
Gökçen Eraslan
Pardus Developer

["configure-dateandtime-contextmenu.diff" (text/x-patch)]

diff -Naur plasma/applets-orig/digital-clock/clock.cpp \
                plasma/applets/digital-clock/clock.cpp
--- plasma/applets-orig/digital-clock/clock.cpp	2009-05-28 10:59:16.709906950 +0300
+++ plasma/applets/digital-clock/clock.cpp	2009-05-28 11:28:03.219156713 +0300
@@ -41,6 +41,7 @@
 #include <KGlobalSettings>
 #include <KConfigDialog>
 #include <KDatePicker>
+#include <KToolInvocation>
 #include <Plasma/Theme>
 #include <Plasma/Dialog>
 #include <Plasma/ToolTipManager>
@@ -71,6 +72,8 @@
 
 void Clock::init()
 {
+    createMenu();
+
     ClockApplet::init();
 
     KConfigGroup cg = config();
@@ -302,6 +305,24 @@
     return myRect;
 }
 
+void Clock::createMenu()
+{
+        QAction* configureDateTime = new \
QAction(SmallIcon("configure"),i18n("&Configure date and time..."), this); +        \
m_actions.append(configureDateTime); +        connect(configureDateTime, \
SIGNAL(triggered(bool)), this , SLOT(slotConfigureDateTime())); +}
+
+void Clock::slotConfigureDateTime()
+{
+      QString error;
+      KToolInvocation::startServiceByDesktopName("clock", QStringList(), &error);
+}
+
+QList<QAction*> Clock::contextualActions()
+{
+      return m_actions;
+}
+
 void Clock::paintInterface(QPainter *p, const QStyleOptionGraphicsItem *option, \
const QRect &contentsRect)  {
     Q_UNUSED(option);
diff -Naur plasma/applets-orig/digital-clock/clock.h \
                plasma/applets/digital-clock/clock.h
--- plasma/applets-orig/digital-clock/clock.h	2009-05-28 10:59:16.718906674 +0300
+++ plasma/applets/digital-clock/clock.h	2009-05-28 11:19:13.494156510 +0300
@@ -23,6 +23,8 @@
 
 #include <QtCore/QTime>
 #include <QtCore/QDate>
+#include <QtCore/QDate>
+#include <QList>
 
 #include <Plasma/Applet>
 #include <Plasma/DataEngine>
@@ -40,6 +42,7 @@
 
         void init();
         void paintInterface(QPainter *painter, const QStyleOptionGraphicsItem \
*option, const QRect &contentsRect); +        virtual QList<QAction*> \
contextualActions();  
     public slots:
         void dataUpdated(const QString &name, const Plasma::DataEngine::Data &data);
@@ -47,9 +50,11 @@
 
     protected slots:
         void clockConfigAccepted();
+        void slotConfigureDateTime();
         void constraintsEvent(Plasma::Constraints constraints);
 
     protected:
+        void createMenu();
         void createClockConfigurationInterface(KConfigDialog *parent);
         void changeEngineTimezone(const QString &oldTimezone, const QString \
&newTimezone);  
@@ -72,6 +77,7 @@
         bool m_showSeconds;
         bool m_showTimezone;
         bool m_dateTimezoneBesides;
+        QList<QAction*> m_actions;
 
         int updateInterval() const;
         Plasma::IntervalAlignment intervalAlignment() const;
diff -Naur kcontrol-orig/dateandtime/clock.desktop kcontrol/dateandtime/clock.desktop
--- kcontrol-orig/dateandtime/clock.desktop	2009-05-28 11:27:20.899156540 +0300
+++ kcontrol/dateandtime/clock.desktop	2009-05-28 11:27:33.742157080 +0300
@@ -1,5 +1,5 @@
 [Desktop Entry]
-Exec=kcmshell4 kde-clock.desktop
+Exec=kcmshell4 clock.desktop
 Icon=preferences-system-time
 Type=Service
 X-KDE-ServiceTypes=KCModule


["signature.asc" (application/pgp-signature)]

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


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

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