From kde-commits Thu Jan 17 19:37:20 2008 From: Andreas Hartmetz Date: Thu, 17 Jan 2008 19:37:20 +0000 To: kde-commits Subject: KDE/kdepim Message-Id: <1200598640.354840.26756.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=120059865819636 SVN commit 762736 by ahartmetz: Recorded merge of revisions 729661-731333,731335-731356,731358-731361,731363-731652,731654-731669,731671-731690,731692-731700,731702-731715,731717-731719,731721-731734,731736-731867,731869-731870,731872-732022,732024-732421,732423-732439,732441-732793,732795-733047,733050-733088,733090-733100,733102-733148,733150-733158,733160-733463,733466-733468,733470-733482,733484-733494,733496-733510,733512-733518,733520-733685,733687,733689-733875,733877-733882,733884-734241,734243-734246,734248-734272,734274-734534,734536,734538-734579,734582,734586-734591,734593-734733,734735-735174,735176-735204,735206-735246,735248-735280,735283-735286,735288-735300,735302-735683,735685-736198,736200-736232,736235-736242,736244-736314,736316-736376,736378,736380-736390,736392-737034,737036-737071,737073-737092,737094-737468,737470,737472-737483,737485-737489,737492-737495,737497-738628,738630-739062,739064-739068,739070-739113,739115-739134,739136-739156,739158-739602,739604-739669,739671-739688,739 690-739993,739995-740022,740024-740109,740111-740116,740118-740147,740149-740152,740154-740441,740443-740446,740448-740459,740461-740471,740473-740475,740478-740487,740489-740519,740521-740528,740530-740535,740537-740574,740576-740588,740591-740607,740609-741781,741783-741805,741807-741832,741834-741901,741903-742150,742152-742213,742216-742229,742231-742288,742290-742291,742293,742296-742602,742604-742670,742673-742986,742988-742990,742994-742999,743001,743004,743006-743010,743012-743019,743021-743022,743024-743025,743027-743883,743885-743887,743889-744004,744006-744045,744047-744086,744088-744091,744093-744109,744111-744675,744678-744688,744690-744692,744694-744707,744709-745805,745808-745812,745815-746844,746846-746872,746875-746896,746898-746924,746926-746931,746933-746978,746980-747181,747183-747317,747319-747339,747341-747511,747513-747517,747519-747583,747585-747587,747589-747591,747593-747597,747599-747621,747623-747640,747642-747791,747793-747970,747972-748004 via s vnmerge from svn+ssh://ahartmetz@svn.kde.org/home/kde/branches/kdepim/enterprise/kdepim ........ r729661 | tilladam | 2007-10-26 17:04:54 +0200 (Fr, 26 Okt 2007) | 4 lines Allow attachments to be dragged out of composers. Prokde35-z Item 201. ........ r748004 | vkrause | 2007-12-13 11:46:15 +0100 (Do, 13 Dez 2007) | 2 lines Handle URL drags correctly. ........ _M . (directory) M +9 -3 kmail/attachmentlistview.cpp M +2 -0 kmail/attachmentlistview.h M +45 -4 kmail/kmcomposewin.cpp M +2 -0 kmail/kmcomposewin.h ** trunk/KDE/kdepim #property svnmerge-integrated - /branches/kdepim/enterprise/kdepim:1-708704,708706,708741,708749,708854,709032-709084,709134,710606-710610,711603-711604,711623,712056,714358,715112,715206-715217,715219-715232,715234-716226,716228-716287,716289-716299,716302-716375,716377-716392,716394-716414,716416-716437,716439-716475,716477-716776,716779-716881,716883-716899,716901-716903,716933-717190,717192-717213,717215-717251,717253,717255-717263,717265-717284,717287-717291,717294,717296-717303,717305-717312,717314-717317,717319-718340,718342-718505,718507-721121,721123-721406,721408-721424,721426-723030,723032-724381,724383-724384,724386-724443,724445-724768,724770-727625,727627-728016,728018-728089,728091-728450,728452-728558,728560-728580,728582-728814,728816-729239,729241-729283,729285-729580,729583-729660,729662-731333,731335-731356,731358-731361,731363-731669,731671-731700,731702-731719,731721-731734,731736-731867,731869-731870,731872-732022,732024-732421,732423-733047,733050-733088,733090-733100,733102-733 148,733150-733463,733466-733468,733470-733482,733484-733685,733687,733689-733875,733877-734534,734536,734538-734579,734582,734586-734591,734593-734733,734735-735174,735176-735204,735206-735246,735248-735280,735283-735286,735288-735300,735302-736198,736200-736232,736235-736242,736244-736314,736316-736376,736378,736380-736390,736392-737071,737073-737092,737094-737483,737485-737489,737492-737495,737497-739062,739064-739134,739136-739156,739158-739602,739604-739688,739690-739993,739995-740022,740024-740109,740111-740116,740118-740147,740149-740152,740154-740441,740443-740446,740448-740459,740461-740471,740473-740475,740478-740487,740489-740519,740521-740528,740530-740535,740537-740574,740576-740588,740591-740607,740609-741781,741783-741805,741807-741832,741834-741901,741903-742150,742152-742213,742216-742229,742231-742288,742290-742291,742293,742296-742602,742604-742670,742673-742986,742988-742990,742994-742999,743001,743004,743006-743010,743012-743019,743021-743022,743024-74302 5,743027-743887,743889-744004,744006-744086,744088-744091,744093-744109,744111-744675,744678-744692,744694-744707,744709-745805,745808-745812,745815-746844,746846-746872,746875-746896,746898-746924,746926-746931,746933-746978,746980-747511,747513-747517,747519-747583,747585-747587,747589-747591,747593-747597,747599-747621,747623-747640,747642-747791,747793-748003,748005-748349,748351-748424,748426-748496,748498-748500,748502-748528,748530-750092,750094-750561,750564-750566,750568-750610,750904-750920,758955,762653 /branches/work/kdab-post-4.0/kdepim:1-706050,708721,708760,709048,711609,717175,717749 + /branches/kdepim/enterprise/kdepim:1-708704,708706,708741,708749,708854,709032-709084,709134,710606-710610,711603-711604,711623,712056,714358,715112,715206-715217,715219-715232,715234-716226,716228-716287,716289-716299,716302-716375,716377-716392,716394-716414,716416-716437,716439-716475,716477-716776,716779-716881,716883-716899,716901-716903,716933-717190,717192-717213,717215-717251,717253,717255-717263,717265-717284,717287-717291,717294,717296-717303,717305-717312,717314-717317,717319-718340,718342-718505,718507-721121,721123-721406,721408-721424,721426-723030,723032-724381,724383-724384,724386-724443,724445-724768,724770-727625,727627-728016,728018-728089,728091-728450,728452-728558,728560-728580,728582-728814,728816-729239,729241-729283,729285-729580,729583-731333,731335-731356,731358-731361,731363-731669,731671-731700,731702-731719,731721-731734,731736-731867,731869-731870,731872-732022,732024-732421,732423-733047,733050-733088,733090-733100,733102-733148,733150-733 463,733466-733468,733470-733482,733484-733685,733687,733689-733875,733877-734534,734536,734538-734579,734582,734586-734591,734593-734733,734735-735174,735176-735204,735206-735246,735248-735280,735283-735286,735288-735300,735302-736198,736200-736232,736235-736242,736244-736314,736316-736376,736378,736380-736390,736392-737071,737073-737092,737094-737483,737485-737489,737492-737495,737497-739062,739064-739134,739136-739156,739158-739602,739604-739688,739690-739993,739995-740022,740024-740109,740111-740116,740118-740147,740149-740152,740154-740441,740443-740446,740448-740459,740461-740471,740473-740475,740478-740487,740489-740519,740521-740528,740530-740535,740537-740574,740576-740588,740591-740607,740609-741781,741783-741805,741807-741832,741834-741901,741903-742150,742152-742213,742216-742229,742231-742288,742290-742291,742293,742296-742602,742604-742670,742673-742986,742988-742990,742994-742999,743001,743004,743006-743010,743012-743019,743021-743022,743024-743025,743027-74388 7,743889-744004,744006-744086,744088-744091,744093-744109,744111-744675,744678-744692,744694-744707,744709-745805,745808-745812,745815-746844,746846-746872,746875-746896,746898-746924,746926-746931,746933-746978,746980-747511,747513-747517,747519-747583,747585-747587,747589-747591,747593-747597,747599-747621,747623-747640,747642-747791,747793-748349,748351-748424,748426-748496,748498-748500,748502-748528,748530-750092,750094-750561,750564-750566,750568-750610,750904-750920,758955,762653 /branches/work/kdab-post-4.0/kdepim:1-706050,708721,708760,709048,711609,717175,717749 --- trunk/KDE/kdepim/kmail/attachmentlistview.cpp #762735:762736 @@ -39,6 +39,7 @@ mComposer( composer ) { setAcceptDrops( true ); + setDragEnabled( true ); //H4X artifact of porting, revise! setObjectName( "attachment list view" ); setSelectionMode( QAbstractItemView::ExtendedSelection ); setIndentation( 0 ); @@ -157,7 +158,8 @@ void AttachmentListView::dragEnterEvent( QDragEnterEvent* e ) { - if( KPIM::MailList::canDecode( e->mimeData() ) ) + KUrl::List uriList = KUrl::List::fromMimeData( e->mimeData() ); + if( KPIM::MailList::canDecode( e->mimeData() ) || !uriList.isEmpty() ) e->setAccepted( true ); else QTreeWidget::dragEnterEvent( e ); @@ -167,7 +169,8 @@ void AttachmentListView::dragMoveEvent( QDragMoveEvent* e ) { - if( KPIM::MailList::canDecode( e->mimeData() ) ) + KUrl::List uriList = KUrl::List::fromMimeData( e->mimeData() ); + if( KPIM::MailList::canDecode( e->mimeData() ) || !uriList.isEmpty() ) e->setAccepted( true ); else QTreeWidget::dragMoveEvent( e ); @@ -228,7 +231,10 @@ } } -//----------------------------------------------------------------------------- +void AttachmentListView::startDrag( Qt::DropActions supportedActions ) +{ + emit dragStarted(); +} void AttachmentListView::contextMenuEvent( QContextMenuEvent* event ) { --- trunk/KDE/kdepim/kmail/attachmentlistview.h #762735:762736 @@ -46,6 +46,7 @@ protected: virtual void keyPressEvent( QKeyEvent * e ); virtual void contextMenuEvent( QContextMenuEvent * event ); + virtual void startDrag( Qt::DropActions supportedActions ); private: KMail::Composer * mComposer; @@ -56,6 +57,7 @@ signals: void attachmentDeleted(); void rightButtonPressed( QTreeWidgetItem * item ); + void dragStarted(); }; } // namespace KMail --- trunk/KDE/kdepim/kmail/kmcomposewin.cpp #762735:762736 @@ -96,8 +96,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -255,6 +257,9 @@ connect( mAtmListView, SIGNAL(attachmentDeleted()), SLOT(slotAttachRemove()) ); + connect( mAtmListView, + SIGNAL( dragStarted() ), + SLOT( slotAttachmentDragStarted() ) ); mAttachMenu = 0; readConfig(); @@ -340,6 +345,10 @@ qDeleteAll( mAtmList ); qDeleteAll( mAtmTempList ); + + foreach ( KTempDir *const dir, mTempDirs ) { + delete dir; + } } @@ -2086,8 +2095,8 @@ } const int maxAttachmentSize = GlobalSettings::maximumAttachmentSize(); - if ( maxAttachmentSize > 0 && - aUrl.isLocalFile() && QFileInfo( aUrl.pathOrUrl() ).size() > maxAttachmentSize*1024*1024 ) { + const uint maximumAttachmentSizeInBytes = maxAttachmentSize*1024*1024; + if ( aUrl.isLocalFile() && QFileInfo( aUrl.pathOrUrl() ).size() > maximumAttachmentSizeInBytes ) { KMessageBox::sorry( this, i18n( "

Your administrator has disallowed attaching files bigger than %1 MB.

", maxAttachmentSize ) ); return false; } @@ -2735,7 +2744,7 @@ if ( array.size() >= decoded.size() ) { if ( KMessageBox::questionYesNo( this, i18n( "The compressed file is larger " - "than the original. Do you want to keep the original one?" ), + "than the original. Do you want to keep the original one?" ), QString(), KGuiItem( i18nc("Do not compress", "Keep") ), KGuiItem( i18n("Compress") ) ) == KMessageBox::Yes ) { @@ -2925,7 +2934,7 @@ atmTempFile->open(); mAtmTempList.append( atmTempFile ); KPIMUtils::kByteArrayToFile( msgPart->bodyDecodedBinary(), atmTempFile->fileName(), - false, false, false ); + false, false, false ); KMReaderMainWin *win = new KMReaderMainWin( msgPart, false, atmTempFile->fileName(), pname, mCharset ); win->show(); @@ -4503,3 +4512,35 @@ } } } + +void KMComposeWin::slotAttachmentDragStarted() +{ + kDebug(5006); + int idx = 0; + QList urls; + foreach ( KMAtmListViewItem *const item, mAtmItemList ) { + if ( item->isSelected() ) { + KMMessagePart *msgPart = mAtmList.at( idx ); + KTempDir *tempDir = new KTempDir(); // will remove the directory on destruction + mTempDirs.append( tempDir ); + const QString fileName = tempDir->name() + '/' + msgPart->name(); + KPIMUtils::kByteArrayToFile( msgPart->bodyDecodedBinary(), + fileName, + false, false, false ); + QUrl url; + url.setProtocol( "file" ); + url.setPath( fileName ); + urls.append( url ); + idx++; + } + } + if ( urls.isEmpty() ) + return; + + QDrag *drag = new QDrag( mAtmListView ); + QMimeData *mimeData = new QMimeData(); + mimeData->setUrls( urls ); + drag->setMimeData( mimeData ); + drag->exec( Qt::CopyAction ); +} + --- trunk/KDE/kdepim/kmail/kmcomposewin.h #762735:762736 @@ -433,6 +433,7 @@ void slotAttachRemove(); void slotAttachSave(); void slotAttachProperties(); + void slotAttachmentDragStarted(); void slotCleanSpace(); void slotToggleMarkup(); @@ -851,6 +852,7 @@ QMap mEditorTempFiles; SnippetWidget *mSnippetWidget; + QList mTempDirs; }; #endif