- integrate several patches:

* from openSUSE RPM: kmail-avoid-crash-on-startup.diff
* from KDE src repo:
  don't crash after changing the layout and replying;
  more guards against not yet set accounts;
  don't crash when trying to create a subfolder of a calendar folder in
    a new account

from brad@
This commit is contained in:
ajacoutot 2008-05-29 11:58:52 +00:00
parent 2250aefc17
commit 5ed9331ede
4 changed files with 64 additions and 2 deletions

View File

@ -1,11 +1,11 @@
# $OpenBSD: Makefile,v 1.55 2008/03/26 09:15:47 espie Exp $ # $OpenBSD: Makefile,v 1.56 2008/05/29 11:58:52 ajacoutot Exp $
COMMENT= KDE personal information applications COMMENT= KDE personal information applications
COMMENT-kpilot= KDE interface to sync with Palm Pilot COMMENT-kpilot= KDE interface to sync with Palm Pilot
CATEGORIES= x11 x11/kde productivity CATEGORIES= x11 x11/kde productivity
VERSION= 3.5.9 VERSION= 3.5.9
DISTNAME= kdepim-${VERSION} DISTNAME= kdepim-${VERSION}
PKGNAME= ${DISTNAME} PKGNAME= ${DISTNAME}p0
MODKDE_VERSION= 3.5.8 MODKDE_VERSION= 3.5.8
SHARED_LIBS += index 1.0 # .0.0 SHARED_LIBS += index 1.0 # .0.0
SHARED_LIBS += kgantt 1.0 # .0.2 SHARED_LIBS += kgantt 1.0 # .0.2

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-kmail_kmfoldertree_cpp,v 1.1 2008/05/29 11:58:52 ajacoutot Exp $
--- kmail/kmfoldertree.cpp.orig Fri Apr 18 17:42:59 2008
+++ kmail/kmfoldertree.cpp Fri Apr 18 17:43:49 2008
@@ -1540,8 +1540,8 @@ void KMFolderTree::slotFolderExpanded( QListViewItem *
{
KMFolderImap *folder = static_cast<KMFolderImap*>( fti->folder()->storage() );
// if we should list all folders we limit this to the root folder
- if ( !folder->account()->listOnlyOpenFolders() &&
- fti->parent() )
+ if ( !folder->account() || ( !folder->account()->listOnlyOpenFolders() &&
+ fti->parent() ) )
return;
if ( folder->getSubfolderState() == KMFolderImap::imapNoInformation )
{

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-kmail_kmmainwidget_cpp,v 1.1 2008/05/29 11:58:52 ajacoutot Exp $
--- kmail/kmmainwidget.cpp.orig Fri Apr 18 17:47:56 2008
+++ kmail/kmmainwidget.cpp Fri Apr 18 17:49:33 2008
@@ -152,6 +152,7 @@ KMMainWidget::KMMainWidget(QWidget *parent, const char
mQuickSearchLine( 0 ),
mShowBusySplashTimer( 0 ),
mShowingOfflineScreen( false ),
+ mMsgActions( 0 ),
mVacationIndicatorActive( false )
{
// must be the first line of the constructor:
@@ -642,6 +643,9 @@ void KMMainWidget::createWidgets(void)
if (mReaderWindowActive) {
mMsgView = new KMReaderWin(messageParent, this, actionCollection(), 0 );
+ if ( mMsgActions ) {
+ mMsgActions->setMessageView( mMsgView );
+ }
connect(mMsgView, SIGNAL(replaceMsgByUnencryptedVersion()),
this, SLOT(slotReplaceMsgByUnencryptedVersion()));

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-kmail_newfolderdialog_cpp,v 1.1 2008/05/29 11:58:52 ajacoutot Exp $
--- kmail/newfolderdialog.cpp.orig Fri Apr 18 17:51:33 2008
+++ kmail/newfolderdialog.cpp Fri Apr 18 17:53:44 2008
@@ -148,7 +148,7 @@ NewFolderDialog::NewFolderDialog( QWidget* parent, KMF
}
if ( mFolder->folderType() == KMFolderTypeCachedImap ) {
ImapAccountBase* ai = static_cast<KMFolderCachedImap*>(mFolder->storage())->account();
- if ( mFolder->storage() == ai->rootFolder() ) {
+ if ( ai && mFolder->storage() == ai->rootFolder() ) {
rootFolder = true;
namespaces = ai->namespaces()[ImapAccountBase::PersonalNS];
}
@@ -212,10 +212,12 @@ void NewFolderDialog::slotOk()
QString delimiter;
if ( mFolder->folderType() == KMFolderTypeImap ) {
KMAcctImap* ai = static_cast<KMFolderImap*>( mFolder->storage() )->account();
- delimiter = ai->delimiterForFolder( mFolder->storage() );
+ if ( ai )
+ delimiter = ai->delimiterForFolder( mFolder->storage() );
} else {
KMAcctCachedImap* ai = static_cast<KMFolderCachedImap*>( mFolder->storage() )->account();
- delimiter = ai->delimiterForFolder( mFolder->storage() );
+ if ( ai )
+ delimiter = ai->delimiterForFolder( mFolder->storage() );
}
if ( !delimiter.isEmpty() && fldName.find( delimiter ) != -1 ) {
KMessageBox::error( this, i18n( "Your IMAP server does not allow the character '%1'; please choose another folder name." ).arg( delimiter ) );