summaryrefslogtreecommitdiff
path: root/extra/kdepim/asynchronous-start.patch
blob: bc014116c43018e53720b3a85a1a1ce7856c412b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
commit cfa404b7188e4c26bddbc9579728f6d25f8cd214
Author: Stephen Kelly <steveire@gmail.com>
Date:   Tue Apr 5 11:09:43 2011 +0200

    Start kdepim 4.4 asynchronously if built against 4.6.
    
    The synchronous mechanism doesn't have enough time to start
    before it reports failure.

diff --git a/kaddressbook/main.cpp b/kaddressbook/main.cpp
index 4c8ca42..200f8ec 100644
--- a/kaddressbook/main.cpp
+++ b/kaddressbook/main.cpp
@@ -49,11 +49,13 @@ int main( int argc, char **argv )
   MainWindow *window = new MainWindow;
   window->show();
 
+#if !KDE_IS_VERSION(4,6,0)
   if ( !Akonadi::Control::start( window ) ) {
     //TODO: add message box after string freeze
     kWarning() << "Unable to start Akonadi server, exit application";
     return 1;
   }
+#endif
 
   return app.exec();
 }
diff --git a/kmail/kmmainwidget.cpp b/kmail/kmmainwidget.cpp
index a31973a..10b14e4 100644
--- a/kmail/kmmainwidget.cpp
+++ b/kmail/kmmainwidget.cpp
@@ -165,6 +165,9 @@ using KMail::TemplateParser;
 
 #include <errno.h> // ugh
 
+#include <akonadi/control.h>
+#include <akonadi/servermanager.h>
+
 #include "kmmainwidget.moc"
 
 K_GLOBAL_STATIC( KMMainWidget::PtrList, theMainWidgetList )
@@ -186,6 +189,10 @@ KMMainWidget::KMMainWidget( QWidget *parent, KXMLGUIClient *aGUIClient,
     mVacationIndicatorActive( false ),
     mGoToFirstUnreadMessageInSelectedFolder( false )
 {
+#if KDE_IS_VERSION(4,6,0)
+  Akonadi::Control::widgetNeedsAkonadi(this);
+  Akonadi::ServerManager::start();
+#endif
   // must be the first line of the constructor:
   mStartupDone = false;
   mWasEverShown = false;
diff --git a/kmail/main.cpp b/kmail/main.cpp
index f39ca5f..c2dd1c3 100644
--- a/kmail/main.cpp
+++ b/kmail/main.cpp
@@ -145,12 +145,14 @@ int main(int argc, char *argv[])
   app.setEventLoopReached();
   app.delayedInstanceCreation();
 
+#if !KDE_IS_VERSION(4,6,0)
   // Start Akonadi
   if ( !Akonadi::Control::start( kmkernel->getKMMainWidget() ) ) {
     //TODO: add message box after string freeze
     kWarning() << "Unable to start Akonadi server, exit application";
     return 1;
   }
+#endif
 
   // Go!
   int ret = qApp->exec();
diff --git a/kontact/src/main.cpp b/kontact/src/main.cpp
index 356aa57..cb4a235 100644
--- a/kontact/src/main.cpp
+++ b/kontact/src/main.cpp
@@ -199,9 +199,11 @@ int main( int argc, char **argv )
 
   KontactApp app;
 
+#if !KDE_IS_VERSION(4,6,0)
   // KDE 4.4: do akonadi startup before creating any window, since creating
   // the window loads kmail. In 4.5 we'll do this startup async instead.
   Akonadi::Control::start( 0 );
+#endif
 
   // Qt doesn't treat the system tray as a window, and therefore Qt would quit
   // the event loop when an error message is clicked away while Kontact is in the