~rohangarg/kdepim/ubuntu

« back to all changes in this revision

Viewing changes to debian/patches/kubuntu_kalarm_kstatusnotifier.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