Mailinglist Archive: opensuse-commit (1426 mails)

< Previous Next >
commit kdepim3
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Wed, 21 Mar 2007 16:02:57 +0100
  • Message-id: <20070321150257.74F1E678179@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package kdepim3
checked in at Wed Mar 21 16:02:57 CET 2007.

--------
--- KDE/kdepim3/kdepim3.changes 2007-02-19 17:48:35.000000000 +0100
+++ /mounts/work_src_done/STABLE/kdepim3/kdepim3.changes 2007-03-21 15:27:45.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Mar 21 15:23:52 CET 2007 - wstephenson@xxxxxxx
+
+- Fix #200177 - kontact/kmail crash on startup
+ #208413 - kmail crash in slotGetNextMessage()
+
+-------------------------------------------------------------------

New:
----
kmail-stability-fixes-r644741:644903.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdepim3.spec ++++++
--- /var/tmp/diff_new_pack.n24733/_old 2007-03-21 16:02:18.000000000 +0100
+++ /var/tmp/diff_new_pack.n24733/_new 2007-03-21 16:02:18.000000000 +0100
@@ -29,7 +29,7 @@
Group: System/GUI/KDE
Summary: Personal Information Manager Software for KDE
Version: 3.5.6
-Release: 9
+Release: 13
URL: http://www.kde.org/
Requires: kdelibs3 >= %( echo `rpm -q --queryformat '%{VERSION}' kdelibs3` )
Requires: kdebase3 >= %( echo `rpm -q --queryformat '%{VERSION}' kdelibs3` )
@@ -55,6 +55,7 @@
Patch25: kmail-crash.diff
Patch27: disable-kitchensync.diff
Patch28: 3_5_BRANCH-r635257.diff
+Patch29: kmail-stability-fixes-r644741:644903.diff
Provides: cryptplug
Obsoletes: cryptplug
%if %suse_version > 1000
@@ -211,6 +212,7 @@
%patch25
%patch27
%patch28
+%patch29
. /etc/opt/kde3/common_options
update_admin

@@ -685,6 +687,9 @@
/opt/kde3/%_lib/kde3/plugins/designer/kpartsdesignerplugin.*

%changelog
+* Wed Mar 21 2007 - wstephenson@xxxxxxx
+- Fix #200177 - kontact/kmail crash on startup
+ [#208413] - kmail crash in slotGetNextMessage()
* Mon Feb 19 2007 - wstephenson@xxxxxxx
- Fix #200859 - Spurious reminders from korgac
* Fri Feb 02 2007 - dmueller@xxxxxxx


++++++ kmail-stability-fixes-r644741:644903.diff ++++++
Index: kmail/kmailicalifaceimpl.cpp
===================================================================
--- kmail/kmailicalifaceimpl.cpp (revision 644741)
+++ kmail/kmailicalifaceimpl.cpp (revision 644903)
@@ -555,6 +555,7 @@ QMap<Q_UINT32, QString> KMailICalIfaceIm
#endif
}
}
+ f->close();
return aMap;
}

Index: kmail/kmheaders.cpp
===================================================================
--- kmail/kmheaders.cpp (revision 644741)
+++ kmail/kmheaders.cpp (revision 644903)
@@ -15,6 +15,7 @@ using KMail::HeaderItem;
#include "kmmsgdict.h"
#include "kmdebug.h"
#include "kmfoldertree.h"
+#include "kmfolderimap.h"
#include "folderjob.h"
using KMail::FolderJob;
#include "actionscheduler.h"
@@ -215,6 +216,11 @@ KMHeaders::~KMHeaders ()
{
writeFolderConfig();
writeSortOrder();
+ if (mFolder->folderType() == KMFolderTypeImap)
+ {
+ KMFolderImap *imap = static_cast<KMFolderImap*>(mFolder->storage());
+ imap->setSelected( false );
+ }
mFolder->close();
}
writeConfig();
Index: kmail/kmmainwidget.cpp
===================================================================
--- kmail/kmmainwidget.cpp (revision 644741)
+++ kmail/kmmainwidget.cpp (revision 644903)
@@ -164,6 +164,7 @@ KMMainWidget::KMMainWidget(QWidget *pare
mJob = 0;
mConfig = config;
mGUIClient = aGUIClient;
+ mOpenedImapFolder = false;

mCustomReplyActionMenu = 0;
mCustomReplyAllActionMenu = 0;
@@ -853,7 +854,7 @@ void KMMainWidget::slotMailChecked( bool

KMFolder *folder = kmkernel->findFolderById( *it );

- if ( !folder->ignoreNewMail() ) {
+ if ( folder && !folder->ignoreNewMail() ) {
showNotification = true;
if ( GlobalSettings::self()->verboseNewMailNotification() ) {
summary += "<br>" + i18n( "1 new message in %1",
@@ -1875,8 +1876,11 @@ void KMMainWidget::folderSelected()
folderSelected( mFolder );
updateFolderMenu();
// opened() before the getAndCheckFolder() in folderSelected
- if ( mFolder && mFolder->folderType() == KMFolderTypeImap )
+ if ( mFolder && mFolder->folderType() == KMFolderTypeImap && mOpenedImapFolder )
+ {
mFolder->close();
+ mOpenedImapFolder = false;
+ }
}

//-----------------------------------------------------------------------------
@@ -1930,6 +1934,12 @@ void KMMainWidget::folderSelected( KMFol
this, SLOT( updateMarkAsReadAction() ) );
disconnect( mFolder, SIGNAL( msgRemoved( KMFolder * ) ),
this, SLOT( updateMarkAsReadAction() ) );
+ if ( mOpenedImapFolder && newFolder && mFolder->folderType() == KMFolderTypeImap ) {
+ mFolder->close();
+ KMFolderImap *imap = static_cast<KMFolderImap*>(mFolder->storage());
+ imap->setSelected( false );
+ mOpenedImapFolder = false;
+ }
}

mFolder = aFolder;
@@ -1944,6 +1954,7 @@ void KMMainWidget::folderSelected( KMFol
if ( newFolder && !mFolder->noContent() )
{
imap->open(); // will be closed in the folderSelected slot
+ mOpenedImapFolder = true;
// first get new headers before we select the folder
imap->setSelected( true );
connect( imap, SIGNAL( folderComplete( KMFolderImap*, bool ) ),
Index: kmail/kmcomposewin.cpp
===================================================================
--- kmail/kmcomposewin.cpp (revision 644741)
+++ kmail/kmcomposewin.cpp (revision 644903)
@@ -3928,12 +3928,11 @@ bool KMComposeWin::saveDraftOrTemplate(
if ( imapTheFolder && imapTheFolder->noContent() )
imapTheFolder = 0;

- if ( theFolder == 0 ) {
+ if ( theFolder == 0 )
theFolder = ( mSaveIn==KMComposeWin::Drafts ?
kmkernel->draftsFolder() : kmkernel->templatesFolder() );
- } else {
- theFolder->open();
- }
+
+ theFolder->open();
kdDebug(5006) << k_funcinfo << "theFolder=" << theFolder->name() << endl;
if ( imapTheFolder )
kdDebug(5006) << k_funcinfo << "imapTheFolder=" << imapTheFolder->name() << endl;
@@ -3951,6 +3950,7 @@ bool KMComposeWin::saveDraftOrTemplate(
(static_cast<KMFolderImap*>( imapTheFolder->storage() ))->getFolder();
}

+ theFolder->close();
return sentOk;
}

Index: kmail/kmfolderimap.cpp
===================================================================
--- kmail/kmfolderimap.cpp (revision 644741)
+++ kmail/kmfolderimap.cpp (revision 644903)
@@ -695,7 +695,6 @@ void KMFolderImap::slotCheckNamespace( c
KMFolderImap* f = static_cast<KMFolderImap*> ( fld->storage() );
f->initializeFrom( this, mAccount->addPathToNamespace( name ),
"inode/directory" );
- f->close();
if ( !mAccount->listOnlyOpenFolders() )
{
f->slotListResult( subfolderNames, subfolderPaths,
@@ -811,7 +810,6 @@ void KMFolderImap::slotListResult( const
KMFolder *fld = folder()->child()->createFolder(subfolderNames[i]);
if ( fld ) {
f = static_cast<KMFolderImap*> ( fld->storage() );
- f->close();
settingsChanged = true;
} else {
kdWarning(5006) << "can't create folder " << subfolderNames[i] << endl;
@@ -876,7 +874,6 @@ void KMFolderImap::initInbox()
if ( f )
{
f->folder()->setLabel( i18n("inbox") );
- f->close();
}
kmkernel->imapFolderMgr()->contentsChanged();
}
@@ -920,6 +917,9 @@ void KMFolderImap::checkFolders( const Q
const QString& myNamespace )
{
QPtrList<KMFolder> toRemove;
+ if (!folder()->child())
+ return;
+
KMFolderNode *node = folder()->child()->first();
while ( node )
{
@@ -996,7 +996,6 @@ void KMFolderImap::checkValidity()
{
if (!mAccount) {
emit folderComplete(this, false);
- close();
return;
}
KURL url = mAccount->getUrl();
@@ -1012,7 +1011,6 @@ void KMFolderImap::checkValidity()
kdDebug(5006) << "KMFolderImap::checkValidity - got no connection" << endl;
emit folderComplete(this, FALSE);
mContentState = imapNoInformation;
- close();
return;
} else if ( connectionState == ImapAccountBase::Connecting ) {
// We'll wait for the connectionResult signal from the account. If it
@@ -1025,7 +1023,6 @@ void KMFolderImap::checkValidity()
// Only check once at a time.
if (mCheckingValidity) {
kdDebug(5006) << "KMFolderImap::checkValidity - already checking" << endl;
- close();
return;
}
// otherwise we already are inside a mailcheck
@@ -1045,6 +1042,7 @@ void KMFolderImap::checkValidity()
if ( account()->mailCheckProgressItem() ) {
account()->mailCheckProgressItem()->setStatus( folder()->prettyURL() );
}
+ open();
ImapAccountBase::jobData jd( url.url() );
KIO::SimpleJob *job = KIO::get(url, FALSE, FALSE);
KIO::Scheduler::assignJobToSlave(mAccount->slave(), job);
@@ -1144,6 +1142,7 @@ void KMFolderImap::slotCheckValidityResu
mMailCheckProgressItem->setCompletedItems( 0 );
}
reallyGetFolder(startUid);
+ close();
}
}

@@ -1178,6 +1177,7 @@ void KMFolderImap::getFolder(bool force)
mCheckFlags = TRUE;
}
checkValidity();
+ close();
}


@@ -1189,7 +1189,6 @@ void KMFolderImap::reallyGetFolder(const
{
mContentState = imapNoInformation;
emit folderComplete(this, FALSE);
- close();
return;
}
quiet(true);
@@ -1199,6 +1198,7 @@ void KMFolderImap::reallyGetFolder(const
mMailCheckProgressItem->setStatus( i18n("Retrieving message status") );
url.setPath(imapPath() + ";SECTION=UID FLAGS");
KIO::SimpleJob *job = KIO::listDir(url, FALSE);
+ open();
KIO::Scheduler::assignJobToSlave(mAccount->slave(), job);
ImapAccountBase::jobData jd( url.url(), folder() );
jd.cancellable = true;
@@ -1218,6 +1218,7 @@ void KMFolderImap::reallyGetFolder(const
KIO::Scheduler::assignJobToSlave(mAccount->slave(), newJob);
ImapAccountBase::jobData jd( url.url(), folder() );
jd.cancellable = true;
+ open();
mAccount->insertJob(newJob, jd);
connect(newJob, SIGNAL(result(KIO::Job *)),
this, SLOT(slotGetLastMessagesResult(KIO::Job *)));
@@ -1310,6 +1311,9 @@ void KMFolderImap::slotListFolderResult(
else sets = makeSets( (*it).items );
mAccount->removeJob(it); // don't use *it below

+ if ( sets.isEmpty() )
+ close();
+
// Now kick off the getting of envelopes for the new mails in the folder
for (QStringList::Iterator i = sets.begin(); i != sets.end(); ++i)
{
@@ -1812,6 +1816,7 @@ void KMFolderImap::setStatus(int idx, KM

void KMFolderImap::setStatus(QValueList<int>& ids, KMMsgStatus status, bool toggle)
{
+ open();
FolderStorage::setStatus(ids, status, toggle);
if (mReadOnly) return;

@@ -1855,6 +1860,7 @@ void KMFolderImap::setStatus(QValueList<
quiet( false );
reallyGetFolder( QString::null );
}
+ close();
}

//-----------------------------------------------------------------------------
Index: kmail/kmacctimap.cpp
===================================================================
--- kmail/kmacctimap.cpp (revision 644741)
+++ kmail/kmacctimap.cpp (revision 644903)
@@ -342,7 +342,7 @@ void KMAcctImap::processNewMail(bool int
else {
connect(imapFolder, SIGNAL(numUnreadMsgsChanged(KMFolder*)),
this, SLOT(postProcessNewMail(KMFolder*)));
- bool ok = imapFolder->processNewMail(interactive);
+ bool ok = imapFolder->processNewMail(interactive); // this removes the local kmfolderimap if its imapPath is somehow empty, and removing it calls createFolderList, invalidating mMailCheckFolders, and causing a crash
if (!ok)
{
// there was an error so cancel
@@ -352,6 +352,8 @@ void KMAcctImap::processNewMail(bool int
mMailCheckProgressItem->incCompletedItems();
mMailCheckProgressItem->updateProgress();
}
+ // since the list of folders might have been updated at this point, mMailCheckFolders may be invalid, so break
+ break;
}
}
}
Index: kmail/kmmainwidget.h
===================================================================
--- kmail/kmmainwidget.h (revision 644741)
+++ kmail/kmmainwidget.h (revision 644903)
@@ -531,6 +531,7 @@ private:
KXMLGUIClient *mGUIClient;

static QValueList<KMMainWidget*>* s_mainWidgetList;
+ bool mOpenedImapFolder;
};

#endif

Property changes on: kmail
___________________________________________________________________
Name: svn:ignore
- Makefile
Makefile.in
kmail
+ composercryptoconfiguration.cpp
composercryptoconfiguration.h
custommimeheader.cpp
custommimeheader.h
customtemplates_base.cpp
customtemplates_base.h
customtemplates_kfg.cpp
customtemplates_kfg.h
.deps
encryptionconfigurationdialog.cpp
encryptionconfigurationdialog.h
folderIface.kidl
folderIface_skel.cpp
folderpropertiesdialog.cpp
folderpropertiesdialog.h
globalsettings_base.cpp
globalsettings_base.h
interfaces/Makefile
kmail
kmailicalIface.kidl
kmailicalIface_skel.cpp
kmailIface.kidl
kmailIface_skel.cpp
kmailpartIface.kidl
kmailpartIface_skel.cpp
korganizeriface.kidl
korganizeriface_stub.cpp
korganizeriface_stub.h
.libs
mailcomposerIface.kidl
mailcomposerIface_skel.cpp
Makefile
Makefile.in
*.moc
replyphrases.cpp
replyphrases.h
signatureconfigurationdialog.cpp
signatureconfigurationdialog.h
smimeconfiguration.cpp
smimeconfiguration.h
templatesconfiguration_base.cpp
templatesconfiguration_base.h
templatesconfiguration_kfg.cpp
templatesconfiguration_kfg.h
warningconfiguration.cpp
warningconfiguration.h




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread