~rohangarg/kdepim/ubuntu

« back to all changes in this revision

Viewing changes to debian/patches/kubuntu_02_kalarm_kstatusnotifieritem.diff

  • Committer: Rohan Garg
  • Date: 2011-06-12 11:34:23 UTC
  • Revision ID: rohangarg@kubuntu.org-20110612113423-dx2ihr6iwrqhe5q2
* Merge from debian, remaining changes
  - Update debian/patches/debianize_akregator_default.diff for Ubuntu
    defaults and rename to kubuntu_debianize_akregator_default.diff
  - Remove kleopatra and akdonadiconsole from kdepim metapackage due to
    their being in Universe
  - Simplify kmail and kleopatra pinentry recommends:
  - Remove pinentry-x11 since it does not exist
  - Remove pinentry-qt since this package has been removed from Ubuntu
  - Adjust other kmail recommends/suggests:
    - Drop Suggests on f-prot-installer and annoyance-filter since they are
    not in the archive
  - Consolidate all documentation in kdepim-doc for all packages in kdepim
  - Add kdepim-doc.install
  - debian/akregator,kaddressbook,kalarm,kjots,kmail,knode,knotes,kontact,
    ktimetracker,korganizer{.install}, do not add documentation
  - Add kdepim-dev package (it is not stable, but we rebuild the reverse
    build-depends to account for this)
    - Add kdepim-dev to debian/control
    - Add kdepim-dev.install
  - Provide debian/kalarm-icons and adjust debian/rules to install
  - Do not build-depend on libgnokii-dev because it is in Universe
  - Build against version of Boost in Main, libboost1.46-dev and
    libboost-graph1.46-dev
  - Add libindicate-qt-dev, libxml2-dev, sharutils to build-deps
  - Add kdepim-runtime to depends in kdepim, knode, knotes, konsolekalendar,
    kontact, and korganizer
  - Add kjots depends on akonadi-server
  - Adjust version requirements for Ubuntu packages for conflict/replaces

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
commit b99e2f5e28d569e9bc254ada26baa3f0242924ce
2
 
Author: Aurelien Gateau <agateau@kde.org>
3
 
Date:   Fri Apr 9 11:27:08 2010 +0200
4
 
 
5
 
    Ported to KStatusNotifierItem
6
 
 
7
 
Index: kdepim-4.4.8/kalarm/kalarmapp.cpp
8
 
===================================================================
9
 
--- kdepim-4.4.8.orig/kalarm/kalarmapp.cpp      2010-12-04 00:56:58.000000000 +0000
10
 
+++ kdepim-4.4.8/kalarm/kalarmapp.cpp   2010-12-06 16:07:20.114221481 +0000
11
 
@@ -56,6 +56,7 @@
12
 
 #include <netwm.h>
13
 
 #include <kdebug.h>
14
 
 #include <kshell.h>
15
 
+#include <ksystemtrayicon.h>
16
 
 
17
 
 #include <QObject>
18
 
 #include <QTimer>
19
 
@@ -769,7 +770,6 @@
20
 
                        }
21
 
                        mTrayWindow = new TrayWindow(parent ? parent : MainWindow::firstWindow());
22
 
                        connect(mTrayWindow, SIGNAL(deleted()), SIGNAL(trayIconToggled()));
23
 
-                       mTrayWindow->show();
24
 
                        emit trayIconToggled();
25
 
 
26
 
                        if (!checkSystemTray())
27
 
Index: kdepim-4.4.8/kalarm/kalarmconfig.kcfg
28
 
===================================================================
29
 
--- kdepim-4.4.8.orig/kalarm/kalarmconfig.kcfg  2010-12-04 00:56:58.000000000 +0000
30
 
+++ kdepim-4.4.8/kalarm/kalarmconfig.kcfg       2010-12-06 16:07:20.138221481 +0000
31
 
@@ -47,6 +47,8 @@
32
 
   <signal name="feb29TypeChanged">
33
 
     <argument type="Enum">DefaultFeb29Type</argument>
34
 
   </signal>
35
 
+  <signal name="tooltipPreferencesChanged">
36
 
+  </signal>
37
 
 
38
 
   <group name="General">
39
 
     <entry name="Version" type="String" hidden="true">
40
 
@@ -125,21 +127,25 @@
41
 
       </whatsthis>
42
 
       <default>5</default>
43
 
       <min>-1</min>
44
 
+      <emit signal="tooltipPreferencesChanged"/>
45
 
     </entry>
46
 
     <entry name="ShowTooltipAlarmTime" type="Bool">
47
 
       <label context="@label">Show alarm times in system tray tooltip</label>
48
 
       <whatsthis context="@info:whatsthis">Specify whether to show in the system tray tooltip, the time at which each alarm is due.</whatsthis>
49
 
       <default>true</default>
50
 
+      <emit signal="tooltipPreferencesChanged"/>
51
 
     </entry>
52
 
     <entry name="ShowTooltipTimeToAlarm" type="Bool">
53
 
       <label context="@label">Show time to alarms in system tray tooltip</label>
54
 
       <whatsthis context="@info:whatsthis">Specify whether to show in the system tray tooltip, how long until each alarm is due.</whatsthis>
55
 
       <default>true</default>
56
 
+      <emit signal="tooltipPreferencesChanged"/>
57
 
     </entry>
58
 
     <entry name="TooltipTimeToPrefix" type="String">
59
 
       <label context="@label">Time-to-alarm prefix in system tray tooltip</label>
60
 
       <whatsthis context="@info:whatsthis">Enter the text to be displayed in front of the time until the alarm, in the system tray tooltip.</whatsthis>
61
 
       <default code="true">QLatin1String("+")</default>
62
 
+      <emit signal="tooltipPreferencesChanged"/>
63
 
     </entry>
64
 
     <entry name="EmailClient" key="EmailClient" type="Enum">
65
 
       <label context="@label">Email client</label>
66
 
Index: kdepim-4.4.8/kalarm/mainwindow.cpp
67
 
===================================================================
68
 
--- kdepim-4.4.8.orig/kalarm/mainwindow.cpp     2010-12-04 00:56:58.000000000 +0000
69
 
+++ kdepim-4.4.8/kalarm/mainwindow.cpp  2010-12-06 16:07:20.142221481 +0000
70
 
@@ -60,6 +60,7 @@
71
 
 #include <kaction.h>
72
 
 #include <kactioncollection.h>
73
 
 #include <kinputdialog.h>
74
 
+#include <ksystemtrayicon.h>
75
 
 
76
 
 #include <kstandardaction.h>
77
 
 #include <kiconloader.h>
78
 
Index: kdepim-4.4.8/kalarm/traywindow.cpp
79
 
===================================================================
80
 
--- kdepim-4.4.8.orig/kalarm/traywindow.cpp     2010-12-04 00:56:58.000000000 +0000
81
 
+++ kdepim-4.4.8/kalarm/traywindow.cpp  2010-12-06 16:08:28.206221481 +0000
82
 
@@ -32,6 +32,7 @@
83
 
 #include "newalarmaction.h"
84
 
 #include "prefdlg.h"
85
 
 #include "preferences.h"
86
 
+#include "synchtimer.h"
87
 
 #include "templatemenuaction.h"
88
 
 
89
 
 #include <stdlib.h>
90
 
@@ -69,30 +70,15 @@
91
 
 =============================================================================*/
92
 
 
93
 
 TrayWindow::TrayWindow(MainWindow* parent)
94
 
-       : KSystemTrayIcon(parent),
95
 
+       : KStatusNotifierItem(parent),
96
 
          mAssocMainWindow(parent),
97
 
          mHaveDisabledAlarms(false)
98
 
 {
99
 
        kDebug();
100
 
-       // Set up GUI icons
101
 
-       mIconEnabled  = loadIcon("kalarm");
102
 
-       mIconDisabled = loadIcon("kalarm-disabled");
103
 
-       if (mIconEnabled.isNull())
104
 
-               KMessageBox::sorry(parent, i18nc("@info", "Cannot load system tray icon."));
105
 
-       else
106
 
-       {
107
 
-               // Create the partially disabled icon, by overlaying the normal icon
108
 
-               // with a disabled indication
109
 
-               KIconLoader* loader = KIconLoader::global();
110
 
-               QImage icon = mIconEnabled.pixmap(loader->currentSize(KIconLoader::Panel)).toImage();
111
 
-               QImage disabled = loader->loadIcon("partdisabled", KIconLoader::Panel, icon.width(), KIconLoader::DefaultState, QStringList("emblems")).toImage();
112
 
-               KIconEffect::overlay(icon, disabled);
113
 
-               mIconSomeDisabled = QIcon(QPixmap::fromImage(icon));
114
 
-       }
115
 
-#ifdef __GNUC__
116
 
-#warning How to implement drag-and-drop?
117
 
-#endif
118
 
-       //setAcceptDrops(true);         // allow drag-and-drop onto this window
119
 
+       setToolTipIconByName("kalarm");
120
 
+       setToolTipTitle(KGlobal::mainComponent().aboutData()->programName());
121
 
+       setIconByName("kalarm");
122
 
+       setStatus(Active);
123
 
 
124
 
        // Set up the context menu
125
 
        KActionCollection* actions = actionCollection();
126
 
@@ -131,14 +117,40 @@
127
 
        a = KStandardAction::quit(0, 0, actions);
128
 
        connect(a, SIGNAL(triggered(bool)), SLOT(slotQuit()), Qt::QueuedConnection);
129
 
 
130
 
-       // Set icon to correspond with the alarms enabled menu status
131
 
-       setEnabledStatus(theApp()->alarmsEnabled());
132
 
-
133
 
        connect(AlarmResources::instance(), SIGNAL(resourceStatusChanged(AlarmResource*, AlarmResources::Change)), SLOT(slotResourceStatusChanged()));
134
 
        connect(AlarmCalendar::resources(), SIGNAL(haveDisabledAlarmsChanged(bool)), SLOT(slotHaveDisabledAlarms(bool)));
135
 
-       connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(slotActivated(QSystemTrayIcon::ActivationReason)));
136
 
+       connect(this, SIGNAL(activateRequested(bool, const QPoint&)), SLOT(slotActivateRequested()));
137
 
+       connect(this, SIGNAL(secondaryActivateRequested(const QPoint&)), SLOT(slotSecondaryActivateRequested()));
138
 
        slotResourceStatusChanged();   // initialise action states
139
 
        slotHaveDisabledAlarms(AlarmCalendar::resources()->haveDisabledAlarms());
140
 
+
141
 
+       // Hack: KSNI does not let us know when it is about to show the tooltip,
142
 
+       // so we need to update it whenever something change in it.
143
 
+
144
 
+       // This timer ensure updateToolTip() is not called several times in a row
145
 
+       mToolTipUpdateTimer = new QTimer(this);
146
 
+       mToolTipUpdateTimer->setInterval(0);
147
 
+       mToolTipUpdateTimer->setSingleShot(true);
148
 
+       connect(mToolTipUpdateTimer, SIGNAL(timeout()), SLOT(updateToolTip()));
149
 
+
150
 
+       // Update every minute to show accurate deadlines
151
 
+       MinuteTimer::connect(mToolTipUpdateTimer, SLOT(start()));
152
 
+
153
 
+       // Update when alarms are modified
154
 
+       connect(EventListModel::alarms(), SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
155
 
+               mToolTipUpdateTimer, SLOT(start()));
156
 
+       connect(EventListModel::alarms(), SIGNAL(rowsInserted(const QModelIndex&, int, int)),
157
 
+               mToolTipUpdateTimer, SLOT(start()));
158
 
+       connect(EventListModel::alarms(), SIGNAL(rowsMoved(const QModelIndex&, int, int, const QModelIndex&, int)),
159
 
+               mToolTipUpdateTimer, SLOT(start()));
160
 
+       connect(EventListModel::alarms(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)),
161
 
+               mToolTipUpdateTimer, SLOT(start()));
162
 
+       connect(EventListModel::alarms(), SIGNAL(modelReset()),
163
 
+               mToolTipUpdateTimer, SLOT(start()));
164
 
+
165
 
+       // Update when tooltip preferences are modified
166
 
+       Preferences::connect(SIGNAL(tooltipPreferencesChanged()),
167
 
+               mToolTipUpdateTimer, SLOT(start()));
168
 
 }
169
 
 
170
 
 TrayWindow::~TrayWindow()
171
 
@@ -192,7 +204,8 @@
172
 
 */
173
 
 void TrayWindow::slotQuit()
174
 
 {
175
 
-       theApp()->doQuit(parentWidget());
176
 
+       // FIXME: Do we really need a slotQuit()?
177
 
+       theApp()->doQuit(static_cast<QWidget*>(parent()));
178
 
 }
179
 
 
180
 
 /******************************************************************************
181
 
@@ -202,7 +215,8 @@
182
 
 void TrayWindow::setEnabledStatus(bool status)
183
 
 {
184
 
        kDebug() << (int)status;
185
 
-       setIcon(status ? (mHaveDisabledAlarms ? mIconSomeDisabled : mIconEnabled) : mIconDisabled);
186
 
+       updateIcon();
187
 
+       updateToolTip();
188
 
 }
189
 
 
190
 
 /******************************************************************************
191
 
@@ -213,75 +227,74 @@
192
 
 {
193
 
        kDebug() << haveDisabled;
194
 
        mHaveDisabledAlarms = haveDisabled;
195
 
-       if (mActionEnabled->isChecked())
196
 
-               setIcon(haveDisabled ? mIconSomeDisabled : mIconEnabled);
197
 
+       updateIcon();
198
 
+       updateToolTip();
199
 
 }
200
 
 
201
 
 /******************************************************************************
202
 
-*  Called when the mouse is clicked over the panel icon.
203
 
 *  A left click displays the KAlarm main window.
204
 
-*  A middle button click displays the New Alarm window.
205
 
 */
206
 
-void TrayWindow::slotActivated(QSystemTrayIcon::ActivationReason reason)
207
 
+void TrayWindow::slotActivateRequested()
208
 
 {
209
 
-       if (reason == QSystemTrayIcon::Trigger)
210
 
-       {
211
 
-               // Left click: display/hide the first main window
212
 
-               if (mAssocMainWindow  &&  mAssocMainWindow->isVisible())
213
 
-               {
214
 
-                       mAssocMainWindow->raise();
215
 
-                       mAssocMainWindow->activateWindow();
216
 
-               }
217
 
-       }
218
 
-       else if (reason == QSystemTrayIcon::MiddleClick)
219
 
+       // Left click: display/hide the first main window
220
 
+       if (mAssocMainWindow  &&  mAssocMainWindow->isVisible())
221
 
        {
222
 
-               if (mActionNew->isEnabled())
223
 
-                       mActionNew->trigger();    // display a New Alarm dialog
224
 
+               mAssocMainWindow->raise();
225
 
+               mAssocMainWindow->activateWindow();
226
 
        }
227
 
 }
228
 
 
229
 
 /******************************************************************************
230
 
-*  Called when the drag cursor enters the panel icon.
231
 
+*  A middle button click displays the New Alarm window.
232
 
 */
233
 
-void TrayWindow::dragEnterEvent(QDragEnterEvent* e)
234
 
+void TrayWindow::slotSecondaryActivateRequested()
235
 
 {
236
 
-       MainWindow::executeDragEnterEvent(e);
237
 
+       if (mActionNew->isEnabled())
238
 
+               mActionNew->trigger();    // display a New Alarm dialog
239
 
 }
240
 
 
241
 
 /******************************************************************************
242
 
-*  Called when an object is dropped on the panel icon.
243
 
-*  If the object is recognised, the edit alarm dialog is opened appropriately.
244
 
+*  Adjust tooltip according to the app state.
245
 
+*  The tooltip text shows alarms due in the next 24 hours. The limit of 24
246
 
+*  hours is because only times, not dates, are displayed.
247
 
 */
248
 
-void TrayWindow::dropEvent(QDropEvent* e)
249
 
+void TrayWindow::updateToolTip()
250
 
 {
251
 
-       MainWindow::executeDropEvent(0, e);
252
 
+       bool enabled = theApp()->alarmsEnabled();
253
 
+       QString subTitle;
254
 
+       if (enabled  &&  Preferences::tooltipAlarmCount())
255
 
+               subTitle = tooltipAlarmText();
256
 
+       if (!enabled) {
257
 
+               //text = i18nc("@info:tooltip 'KAlarm - disabled'", "%1 - disabled", KGlobal::mainComponent().aboutData()->programName());
258
 
+               subTitle = i18n("Disabled");
259
 
+       } else if (mHaveDisabledAlarms) {
260
 
+               if (!subTitle.isEmpty()) {
261
 
+                       subTitle += "<br/>";
262
 
+               }
263
 
+               #if 0
264
 
+               subTitle += i18nc("@info:tooltip Brief: some alarms are disabled", "(Some alarms disabled)");
265
 
+               #else
266
 
+               // FIXME: Hack to avoid introducing new strings
267
 
+               QString text = i18nc("@info:tooltip Brief: some alarms are disabled", "%1<nl/>(Some alarms disabled)%2", QString(), QString());
268
 
+               // i18n() turns "<nl/>" into "<br/>"
269
 
+               text = text.mid(text.indexOf("<br/>") + 5);
270
 
+               subTitle += text;
271
 
+               #endif
272
 
+       }
273
 
+       kDebug() << subTitle;
274
 
+       setToolTipSubTitle(subTitle);
275
 
 }
276
 
 
277
 
 /******************************************************************************
278
 
-*  Called when any event occurs.
279
 
-*  If it's a tooltip event, display the tooltip text showing alarms due in the
280
 
-*  next 24 hours. The limit of 24 hours is because only times, not dates, are
281
 
-*  displayed.
282
 
+*  Adjust icon according to the app state.
283
 
 */
284
 
-bool TrayWindow::event(QEvent* e)
285
 
+void TrayWindow::updateIcon()
286
 
 {
287
 
-       if (e->type() != QEvent::ToolTip)
288
 
-               return KSystemTrayIcon::event(e);
289
 
-       QHelpEvent* he = (QHelpEvent*)e;
290
 
-       bool enabled = theApp()->alarmsEnabled();
291
 
-       QString altext;
292
 
-       if (enabled  &&  Preferences::tooltipAlarmCount())
293
 
-               altext = tooltipAlarmText();
294
 
-       QString text;
295
 
-       if (!enabled)
296
 
-               text = i18nc("@info:tooltip 'KAlarm - disabled'", "%1 - disabled", KGlobal::mainComponent().aboutData()->programName());
297
 
-       else if (mHaveDisabledAlarms)
298
 
-               text = i18nc("@info:tooltip Brief: some alarms are disabled", "%1<nl/>(Some alarms disabled)%2", KGlobal::mainComponent().aboutData()->programName(), altext);
299
 
-       else
300
 
-               text = i18nc("@info:tooltip", "%1%2", KGlobal::mainComponent().aboutData()->programName(), altext);
301
 
-       kDebug() << text;
302
 
-       QToolTip::showText(he->globalPos(), text);
303
 
-       return true;
304
 
+       if (theApp()->alarmsEnabled()) {
305
 
+               setOverlayIconByName(mHaveDisabledAlarms ? "partdisabled" : QString());
306
 
+       } else {
307
 
+               setOverlayIconByName("disabled");
308
 
+       }
309
 
 }
310
 
 
311
 
 /******************************************************************************
312
 
@@ -349,7 +362,9 @@
313
 
        for (i = 0, iend = items.count();  i < iend;  ++i)
314
 
        {
315
 
                kDebug() << "--" << (count+1) << ")" << items[i].text;
316
 
-               text += "<br />" + items[i].text;
317
 
+               if (i > 0)
318
 
+                       text += "<br />";
319
 
+               text += items[i].text;
320
 
                if (++count == maxCount)
321
 
                        break;
322
 
        }
323
 
Index: kdepim-4.4.8/kalarm/traywindow.h
324
 
===================================================================
325
 
--- kdepim-4.4.8.orig/kalarm/traywindow.h       2010-12-04 00:56:58.000000000 +0000
326
 
+++ kdepim-4.4.8/kalarm/traywindow.h    2010-12-06 16:07:20.166221481 +0000
327
 
@@ -23,7 +23,7 @@
328
 
 
329
 
 #include "editdlg.h"
330
 
 #include "kaevent.h"
331
 
-#include <ksystemtrayicon.h>
332
 
+#include <kstatusnotifieritem.h>
333
 
 #include <QIcon>
334
 
 
335
 
 class QEvent;
336
 
@@ -36,7 +36,7 @@
337
 
 class NewAlarmAction;
338
 
 class TemplateMenuAction;
339
 
 
340
 
-class TrayWindow : public KSystemTrayIcon
341
 
+class TrayWindow : public KStatusNotifierItem
342
 
 {
343
 
                Q_OBJECT
344
 
        public:
345
 
@@ -49,13 +49,9 @@
346
 
        signals:
347
 
                void         deleted();
348
 
 
349
 
-       protected:
350
 
-               virtual void dragEnterEvent(QDragEnterEvent*);
351
 
-               virtual void dropEvent(QDropEvent*);
352
 
-               virtual bool event(QEvent*);
353
 
-
354
 
        private slots:
355
 
-               void         slotActivated(QSystemTrayIcon::ActivationReason reason);
356
 
+               void         slotActivateRequested();
357
 
+               void         slotSecondaryActivateRequested();
358
 
                void         slotNewAlarm(EditAlarmDlg::Type);
359
 
                void         slotNewFromTemplate(const KAEvent*);
360
 
                void         slotPreferences();
361
 
@@ -63,18 +59,18 @@
362
 
                void         slotHaveDisabledAlarms(bool disabled);
363
 
                void         slotResourceStatusChanged();
364
 
                void         slotQuit();
365
 
+               void         updateToolTip();
366
 
 
367
 
        private:
368
 
                QString      tooltipAlarmText() const;
369
 
+               void         updateIcon();
370
 
 
371
 
                MainWindow*     mAssocMainWindow;     // main window associated with this, or null
372
 
-               QIcon           mIconEnabled;         // normal status icon
373
 
-               QIcon           mIconDisabled;        // icon indicating all alarms disabled
374
 
-               QIcon           mIconSomeDisabled;    // icon indicating individual alarms disabled
375
 
                KToggleAction*  mActionEnabled;
376
 
                NewAlarmAction* mActionNew;
377
 
                TemplateMenuAction* mActionNewFromTemplate;
378
 
                bool            mHaveDisabledAlarms;  // some individually disabled alarms exist
379
 
+               QTimer*         mToolTipUpdateTimer;
380
 
 };
381
 
 
382
 
 #endif // TRAYWINDOW_H