// -*- mode: C++; c-file-style: "gnu" -*- // kmcomposewin.cpp // Author: Markus Wuebben // This code is published under the GPL. #include #include "kmatmlistview.h" #include "kmmainwin.h" #include "kmreadermainwin.h" #include "messagesender.h" #include "kmmsgpartdlg.h" #include #include #include "kmaddrbook.h" #include "kmmsgdict.h" #include "kmfolderimap.h" #include "kmfoldermgr.h" #include "kmfoldercombobox.h" #include "kmtransport.h" #include "kmcommands.h" #include "kcursorsaver.h" #include "partNode.h" #include "attachmentlistview.h" #include "transportmanager.h" using KMail::AttachmentListView; #include "dictionarycombobox.h" using KMail::DictionaryComboBox; #include "addressesdialog.h" using KPIM::AddressesDialog; #include "addresseeemailselection.h" using KPIM::AddresseeEmailSelection; using KPIM::AddresseeSelectorDialog; #include using KPIM::MailListDrag; #include "recentaddresses.h" using KRecentAddress::RecentAddresses; #include "kleo_util.h" #include "stl_util.h" #include "recipientseditor.h" #include "attachmentcollector.h" #include "objecttreeparser.h" #include "kmfoldermaildir.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "klistboxdialog.h" #include "messagecomposer.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include "globalsettings.h" #include "replyphrases.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include KMAtmListViewItem::KMAtmListViewItem(Q3ListView *parent) : QObject(), Q3ListViewItem( parent ), mListview( parent ), mCBSignEnabled( false ), mCBEncryptEnabled( false ) { mCBEncrypt = new QCheckBox( mListview->viewport() ); mCBSign = new QCheckBox( mListview->viewport() ); mCBCompress = new QCheckBox( mListview->viewport() ); connect( mCBCompress, SIGNAL( clicked() ), this, SLOT( slotCompress() ) ); mCBEncrypt->hide(); mCBSign->hide(); } KMAtmListViewItem::~KMAtmListViewItem() { delete mCBEncrypt; mCBEncrypt = 0; delete mCBSign; mCBSign = 0; delete mCBCompress; mCBCompress = 0; } void KMAtmListViewItem::paintCell( QPainter * p, const QColorGroup & cg, int column, int width, int align ) { // this is also called for the encrypt/sign columns to assure that the // background is cleared Q3ListViewItem::paintCell( p, cg, column, width, align ); if ( 4 == column ) { QRect r = mListview->itemRect( this ); if ( !r.size().isValid() ) { mListview->ensureItemVisible( this ); mListview->repaintContents( FALSE ); r = mListview->itemRect( this ); } int colWidth = mListview->header()->sectionSize( column ); r.setX( mListview->header()->sectionPos( column ) - mListview->header()->offset() + colWidth / 2 - r.height() / 2 - 1 ); r.setY( r.y() + 1 ); r.setWidth( r.height() - 2 ); r.setHeight( r.height() - 2 ); r = QRect( mListview->viewportToContents( r.topLeft() ), r.size() ); mCBCompress->resize( r.size() ); mListview->moveChild( mCBCompress, r.x(), r.y() ); QColor bg; if (isSelected()) bg = cg.highlight(); else bg = cg.base(); mCBCompress->setPaletteBackgroundColor(bg); mCBCompress->show(); } if( 5 == column || 6 == column ) { QRect r = mListview->itemRect( this ); if ( !r.size().isValid() ) { mListview->ensureItemVisible( this ); mListview->repaintContents( FALSE ); r = mListview->itemRect( this ); } int colWidth = mListview->header()->sectionSize( column ); r.setX( mListview->header()->sectionPos( column ) + colWidth / 2 - r.height() / 2 - 1 ); r.setY( r.y() + 1 ); r.setWidth( r.height() - 2 ); r.setHeight( r.height() - 2 ); r = QRect( mListview->viewportToContents( r.topLeft() ), r.size() ); QCheckBox* cb = (5 == column) ? mCBEncrypt : mCBSign; cb->resize( r.size() ); mListview->moveChild( cb, r.x(), r.y() ); QColor bg; if (isSelected()) bg = cg.highlight(); else bg = cg.base(); bool enabled = (5 == column) ? mCBEncryptEnabled : mCBSignEnabled; cb->setPaletteBackgroundColor(bg); if (enabled) cb->show(); } } void KMAtmListViewItem::enableCryptoCBs(bool on) { if( mCBEncrypt ) { mCBEncryptEnabled = on; mCBEncrypt->setEnabled( on ); mCBEncrypt->setShown( on ); } if( mCBSign ) { mCBSignEnabled = on; mCBSign->setEnabled( on ); mCBSign->setShown( on ); } } void KMAtmListViewItem::setEncrypt(bool on) { if( mCBEncrypt ) mCBEncrypt->setChecked( on ); } bool KMAtmListViewItem::isEncrypt() { if( mCBEncrypt ) return mCBEncrypt->isChecked(); else return false; } void KMAtmListViewItem::setSign(bool on) { if( mCBSign ) mCBSign->setChecked( on ); } bool KMAtmListViewItem::isSign() { if( mCBSign ) return mCBSign->isChecked(); else return false; } void KMAtmListViewItem::setCompress(bool on) { mCBCompress->setChecked( on ); } bool KMAtmListViewItem::isCompress() { return mCBCompress->isChecked(); } void KMAtmListViewItem::slotCompress() { if ( mCBCompress->isChecked() ) emit compress( itemPos() ); else emit uncompress( itemPos() ); } #include "kmatmlistview.moc"