summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-08-24 19:33:28 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-08-24 19:33:28 +0000
commitc437f19f371b5678e0772a5f922fc3587864ca4e (patch)
treeab33a9046cd22c2ee69172eac02aa63d2ab7a3a1
parent90fb05e4f85dccfda4a6fb0b970f6f5c9f4b67d1 (diff)
downloadtdepim-c437f19f371b5678e0772a5f922fc3587864ca4e.tar.gz
tdepim-c437f19f371b5678e0772a5f922fc3587864ca4e.zip
Fixed CalDAV crash when event editor left open during automatic reload
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1167492 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
-rw-r--r--korganizer/kocore.cpp12
-rw-r--r--korganizer/kocore.h3
-rw-r--r--korganizer/koeditorgeneral.cpp3
-rw-r--r--kresources/caldav/Makefile.am2
-rw-r--r--kresources/caldav/resource.cpp4
5 files changed, 23 insertions, 1 deletions
diff --git a/korganizer/kocore.cpp b/korganizer/kocore.cpp
index b9d404e70..d5ed4f39b 100644
--- a/korganizer/kocore.cpp
+++ b/korganizer/kocore.cpp
@@ -41,6 +41,8 @@
#include <tqwidget.h>
+static bool m_editoropen = false;
+
KOCore *KOCore::mSelf = 0;
KOCore *KOCore::self()
@@ -62,6 +64,16 @@ KOCore::~KOCore()
mSelf = 0;
}
+bool KOCore::editorWindowOpen()
+{
+ return m_editoropen;
+}
+
+void KOCore::setEditorWindowOpen(bool open)
+{
+ m_editoropen = open;
+}
+
KTrader::OfferList KOCore::availablePlugins( const TQString &type, int version )
{
TQString constraint;
diff --git a/korganizer/kocore.h b/korganizer/kocore.h
index f28382635..1d6a4ebe6 100644
--- a/korganizer/kocore.h
+++ b/korganizer/kocore.h
@@ -84,6 +84,9 @@ class KDE_EXPORT KOCore
KPIM::IdentityManager* identityManager();
+ bool editorWindowOpen();
+ void setEditorWindowOpen(bool open);
+
protected:
KOCore();
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp
index adaea1252..26ec5a517 100644
--- a/korganizer/koeditorgeneral.cpp
+++ b/korganizer/koeditorgeneral.cpp
@@ -60,6 +60,7 @@
#include "koprefs.h"
#include "koglobals.h"
+#include "kocore.h"
#include "koeditorgeneral.h"
#include "koeditoralarms.h"
@@ -70,11 +71,13 @@
KOEditorGeneral::KOEditorGeneral(TQObject* parent, const char* name) :
TQObject( parent, name ), mAttachments(0)
{
+ KOCore::self()->setEditorWindowOpen(true);
mAlarmList.setAutoDelete( true );
}
KOEditorGeneral::~KOEditorGeneral()
{
+ KOCore::self()->setEditorWindowOpen(false);
}
diff --git a/kresources/caldav/Makefile.am b/kresources/caldav/Makefile.am
index 45c0f2c7c..604976cd7 100644
--- a/kresources/caldav/Makefile.am
+++ b/kresources/caldav/Makefile.am
@@ -15,7 +15,7 @@ libkcal_caldav_la_LDFLAGS = $(KDE_RPATH) $(all_libraries) \
libkcal_caldav_la_LIBADD = \
$(top_builddir)/libkcal/libkcal.la \
$(top_builddir)/libkdepim/libkdepim.la \
- -lcaldav
+ -lcaldav -lkorganizer
libkcal_caldav_la_COMPILE_FIRST = prefsskel.h
kde_module_LTLIBRARIES = kcal_caldav.la
diff --git a/kresources/caldav/resource.cpp b/kresources/caldav/resource.cpp
index 4e1542029..58ea5838e 100644
--- a/kresources/caldav/resource.cpp
+++ b/kresources/caldav/resource.cpp
@@ -38,6 +38,7 @@
#include "resource.h"
#include "reader.h"
#include "writer.h"
+#include <korganizer/kocore.h>
/*=========================================================================
| NAMESPACE
@@ -143,6 +144,9 @@ bool ResourceCalDav::isSaving() {
bool ResourceCalDav::doLoad() {
bool syncCache = true;
+ // Make sure no editor windows are open
+ if (KOCore::self()->editorWindowOpen() == true) return true;
+
if ((mLoadingQueueReady == false) || (mLoadingQueue.isEmpty() == false) || (mLoader->running() == true) || (isSaving() == true)) {
return true; // Silently fail; the user has obviously not responded to a dialog and we don't need to pop up more of them!
}