[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: [PATCH] Korganizer crash with multiple windows
From: Waldo Bastian <bastian () kde ! org>
Date: 2002-03-12 6:02:16
[Download RAW message or body]
[Please cc me, I'm not subscribed to kde-pim]
KOrganizer tries to share the same part between multiple windows which leads
to crashes: start korganizer, new window, close window, new window *boom*
I don't think a part is supposed to be shared so this patch makes sure every
window gets its own parts.
Cheers,
Waldo
--
bastian@kde.org | SuSE Labs KDE Developer | bastian@suse.com
["korganizer.patch" (text/x-diff)]
Index: kocore.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/kocore.cpp,v
retrieving revision 1.8
diff -u -p -r1.8 kocore.cpp
--- kocore.cpp 2002/01/19 01:30:02 1.8
+++ kocore.cpp 2002/03/12 05:57:02
@@ -48,7 +48,7 @@ KOCore *KOCore::self()
KOCore::KOCore() :
mCalendarDecorationsLoaded(false),
- mPartsLoaded(false), mHolidaysLoaded(false)
+ mHolidaysLoaded(false)
{
}
@@ -179,16 +179,13 @@ KOrg::CalendarDecoration::List KOCore::c
return mCalendarDecorations;
}
-KOrg::Part::List KOCore::parts(KOrg::MainWindow *parent)
+KOrg::Part::List KOCore::loadParts(KOrg::MainWindow *parent)
{
- if (!mPartsLoaded) {
- mParts.clear();
- KTrader::OfferList plugins = availablePlugins("KOrganizer/Part");
- KTrader::OfferList::ConstIterator it;
- for(it = plugins.begin(); it != plugins.end(); ++it) {
- mParts.append(loadPart(*it,parent));
- }
- mPartsLoaded = true;
+ mParts.clear();
+ KTrader::OfferList plugins = availablePlugins("KOrganizer/Part");
+ KTrader::OfferList::ConstIterator it;
+ for(it = plugins.begin(); it != plugins.end(); ++it) {
+ mParts.append(loadPart(*it,parent));
}
return mParts;
Index: kocore.h
===================================================================
RCS file: /home/kde/kdepim/korganizer/kocore.h,v
retrieving revision 1.7
diff -u -p -r1.7 kocore.h
--- kocore.h 2002/01/19 01:30:02 1.7
+++ kocore.h 2002/03/12 05:57:02
@@ -45,7 +45,7 @@ class KOCore {
KOrg::Part *loadPart(const QString &,KOrg::MainWindow *parent);
KOrg::CalendarDecoration::List calendarDecorations();
- KOrg::Part::List parts(KOrg::MainWindow *parent);
+ KOrg::Part::List loadParts(KOrg::MainWindow *parent);
void reloadPlugins();
@@ -61,7 +61,6 @@ class KOCore {
bool mCalendarDecorationsLoaded;
KOrg::Part::List mParts;
- bool mPartsLoaded;
KOrg::CalendarDecoration *mHolidays;
bool mHolidaysLoaded;
Index: korganizer.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/korganizer.cpp,v
retrieving revision 1.100
diff -u -p -r1.100 korganizer.cpp
--- korganizer.cpp 2002/03/02 11:59:47 1.100
+++ korganizer.cpp 2002/03/12 05:57:03
@@ -507,7 +507,7 @@ void KOrganizer::initParts()
{
kdDebug() << "KOrganizer::initParts()" << endl;
- KOrg::Part::List parts = KOCore::self()->parts(this);
+ KOrg::Part::List parts = KOCore::self()->loadParts(this);
KOrg::Part *it;
for( it=parts.first(); it; it=parts.next() ) {
guiFactory()->addClient(it);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic