[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kmail
From: Thomas McGuire <Thomas.McGuire () gmx ! net>
Date: 2008-04-30 23:00:13
Message-ID: 1209596413.917123.19577.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 802876 by tmcguire:
Bug fixes:
- Don't eat escape or enter keypresses, so that moving a message to a folder
with the keyboard works again
- actually return the correct folder, by setting the currentItem as well, instead of
only selecting an item.
Other stuff:
- Add some consts
- use QAction::setData instead of comparing the action names
- //< => ///<, so that doxygen recognises those
- some style fixes (identation, whitespace mainly)
- remove the ifdef'd out styleDependantFrameWidth
M +1 -1 folderselectiondialog.cpp
M +1 -1 folderselectiondialog.h
M +32 -31 folderselectiontreewidget.cpp
M +10 -10 folderselectiontreewidget.h
M +17 -63 kmmimeparttree.cpp
M +4 -12 kmmimeparttree.h
--- trunk/KDE/kdepim/kmail/folderselectiondialog.cpp #802875:802876
@@ -86,7 +86,7 @@
}
-KMFolder * FolderSelectionDialog::folder( void )
+KMFolder * FolderSelectionDialog::folder( void ) const
{
return mTreeView->folder();
}
--- trunk/KDE/kdepim/kmail/folderselectiondialog.h #802875:802876
@@ -78,7 +78,7 @@
/**
* Returns the currently selected folder, or 0 if no folder is selected (yet)
*/
- virtual KMFolder * folder();
+ KMFolder * folder() const;
/**
* Set the selected folder. Forwarded to FolderSelectionTreeWidget.
--- trunk/KDE/kdepim/kmail/folderselectiontreewidget.cpp #802875:802876
@@ -44,7 +44,7 @@
void setFolder( KMFolder * folder )
{ mFolder = folder; };
- KMFolder * folder()
+ KMFolder * folder() const
{ return mFolder; };
private:
@@ -62,10 +62,8 @@
mPathColumnIndex = addColumn( i18n( "Path" ) );
setContextMenuPolicy( Qt::CustomContextMenu );
- connect(
- this, SIGNAL( customContextMenuRequested( const QPoint & ) ),
- this, SLOT( slotContextMenuRequested( const QPoint & ) )
- );
+ connect( this, SIGNAL( customContextMenuRequested( const QPoint & ) ),
+ this, SLOT( slotContextMenuRequested( const QPoint & ) ) );
}
void FolderSelectionTreeWidget::recursiveReload( KMFolderTreeItem *fti , \
FolderSelectionTreeWidgetItem *parent ) @@ -83,19 +81,20 @@
return;
// top level
- FolderSelectionTreeWidgetItem *item = parent ? new FolderSelectionTreeWidgetItem( \
parent ) : new FolderSelectionTreeWidgetItem( this ); + \
FolderSelectionTreeWidgetItem *item = parent ? new FolderSelectionTreeWidgetItem( \
parent ) + : new \
FolderSelectionTreeWidgetItem( this );
// Build the path (ParentItemPath/CurrentItemName)
QString path;
if( parent )
- path = parent->text( mPathColumnIndex ) + "/";
+ path = parent->text( mPathColumnIndex ) + "/";
path += fti->text( 0 );
item->setText( mNameColumnIndex , fti->text( 0 ) );
item->setText( mPathColumnIndex , path );
- item->setProtocol( (KPIM::FolderTreeWidgetItem::Protocol)( fti->protocol() ) );
- item->setFolderType( (KPIM::FolderTreeWidgetItem::FolderType)( fti->type() ) );
- QPixmap pix = fti->normalIcon(KIconLoader::SizeSmall);
+ item->setProtocol( static_cast<KPIM::FolderTreeWidgetItem::Protocol>( \
fti->protocol() ) ); + item->setFolderType( \
static_cast<KPIM::FolderTreeWidgetItem::FolderType>( fti->type() ) ); + QPixmap pix \
= fti->normalIcon( KIconLoader::SizeSmall ); item->setIcon( mNameColumnIndex , \
pix.isNull() ? SmallIcon( "folder" ) : QIcon( pix ) ); item->setExpanded( true );
@@ -129,7 +128,7 @@
if ( selected.isEmpty() && folder() )
selected = folder()->idString();
- mFilter = "";
+ mFilter = QString();
for (
KMFolderTreeItem * fti = static_cast<KMFolderTreeItem *>( \
mFolderTree->firstChild() ) ; @@ -139,20 +138,21 @@
recursiveReload( fti , 0 );
if ( preSelection.isEmpty() )
- return; // nothing more to do
+ return; // nothing more to do
QTreeWidgetItemIterator it( this );
while ( FolderSelectionTreeWidgetItem * fitem = \
static_cast<FolderSelectionTreeWidgetItem *>( *it ) ) {
- if ( fitem->folder() ) {
- if ( fitem->folder()->idString() == preSelection ) {
- // found
- fitem->setSelected( true );
- scrollToItem( fitem );
- return;
- }
- }
- ++it;
+ if ( fitem->folder() ) {
+ if ( fitem->folder()->idString() == preSelection ) {
+ // found
+ fitem->setSelected( true );
+ scrollToItem( fitem );
+ setCurrentItem( fitem );
+ return;
+ }
+ }
+ ++it;
}
}
@@ -200,7 +200,7 @@
{
QTreeWidgetItem * lvi = itemAt( p );
- if (!lvi)
+ if ( !lvi )
return;
setCurrentItem( lvi );
lvi->setSelected( true );
@@ -257,7 +257,7 @@
// Now search...
QList<QTreeWidgetItem *> lItems = findItems( mFilter , Qt::MatchContains | \
Qt::MatchRecursive , mPathColumnIndex );
- for( QList<QTreeWidgetItem *>::Iterator it = lItems.begin(); it != lItems.end(); \
++it) + for( QList<QTreeWidgetItem *>::Iterator it = lItems.begin(); it != \
lItems.end(); ++it ) {
( *it )->setDisabled( false );
( *it )->setHidden( false );
@@ -274,12 +274,13 @@
// Iterate through the list to find the first selectable item
- QTreeWidgetItemIterator first ( this );
+ QTreeWidgetItemIterator first( this );
while ( FolderSelectionTreeWidgetItem * item = static_cast< \
FolderSelectionTreeWidgetItem* >( *first ) ) {
if ( ( !item->isHidden() ) && ( !item->isDisabled() ) && ( item->flags() & \
Qt::ItemIsSelectable ) ) {
item->setSelected( true );
+ setCurrentItem( item );
scrollToItem( item );
break;
}
@@ -303,7 +304,7 @@
QString s = e->text();
- switch(e->key())
+ switch( e->key() )
{
case Qt::Key_Backspace:
if ( mFilter.length() > 0 )
@@ -317,12 +318,12 @@
return;
break;
default:
- if ( !s.isEmpty() )
- {
- mFilter += s;
- applyFilter( mFilter );
- return;
- }
+ int ch = s.isEmpty() ? 0 : s[0].toAscii();
+ if ( !s.isEmpty() && ch >= 32 && ch <= 126 ) {
+ mFilter += s;
+ applyFilter( mFilter );
+ return;
+ }
break;
}
--- trunk/KDE/kdepim/kmail/folderselectiontreewidget.h #802875:802876
@@ -48,13 +48,13 @@
{
Q_OBJECT
private:
- int mNameColumnIndex; //< The index of the folder name column
- int mPathColumnIndex; //< The index of the path column
- KMFolderTree* mFolderTree; //< The KMFolderTree to fetch the data from
- QString mFilter; //< The current folder path filter string
- bool mLastMustBeReadWrite; //< Internal state for reload()
- bool mLastShowOutbox; //< Internal state for reload()
- bool mLastShowImapFolders; //< Internal state for reload()
+ int mNameColumnIndex; ///< The index of the folder name column
+ int mPathColumnIndex; ///< The index of the path column
+ KMFolderTree* mFolderTree; ///< The KMFolderTree to fetch the data from
+ QString mFilter; ///< The current folder path filter string
+ bool mLastMustBeReadWrite; ///< Internal state for reload()
+ bool mLastShowOutbox; ///< Internal state for reload()
+ bool mLastShowImapFolders; ///< Internal state for reload()
public:
/**
@@ -107,18 +107,18 @@
* Apply the given filter string.
* Folders NOT matching the string are hidden and disabled (can't be selected).
*/
- void applyFilter( const QString& filter );
+ void applyFilter( const QString &filter );
/**
* Returns the folder name column logical index.
*/
- int nameColumnIndex()
+ int nameColumnIndex() const
{ return mNameColumnIndex; };
/**
* Returns the folder path column logical index.
*/
- int pathColumnIndex()
+ int pathColumnIndex() const
{ return mPathColumnIndex; };
public slots:
--- trunk/KDE/kdepim/kmail/kmmimeparttree.cpp #802875:802876
@@ -46,7 +46,6 @@
#include <kmenu.h>
#include <QClipboard>
-#include <QStyle>
#include <QHeaderView>
@@ -55,17 +54,12 @@
: QTreeWidget( parent ),
mReaderWin( readerWin ), mLayoutColumnsOnFirstShow( false )
{
-#if 0
- /* FIXME: Remove this ifdefed code if nobody complains (2008.04.23) */
- setStyleDependantFrameWidth();
-#endif
-
// Setup the header
QStringList headerNames;
headerNames << i18n("Description") << i18n("Type")
- << i18n("Encoding") << i18n("Size");
+ << i18n("Encoding") << i18n("Size");
- QTreeWidgetItem * hitem = new QTreeWidgetItem( headerNames );
+ QTreeWidgetItem * hitem = new QTreeWidgetItem( headerNames );
hitem->setTextAlignment( 3 , Qt::AlignRight );
setHeaderItem( hitem );
@@ -170,6 +164,7 @@
int cc = hitem->columnCount();
for ( int i = 1 ; i < cc; i++ ) {
QAction * act = popup.addAction( hitem->text( i ) );
+ act->setData( i );
act->setCheckable( true );
if ( !header()->isSectionHidden( i ) )
act->setChecked( true );
@@ -183,32 +178,21 @@
void KMMimePartTree::slotToggleColumn( QAction* a )
{
+ Q_ASSERT( a );
if ( !a )
return; // hm ?
- // This is tricky: we actually trust translators to do the correct
- // job and the user's language to have different words for each
- // one of our column names :)
-
- QString columnName = a->text();
-
QTreeWidgetItem * hitem = headerItem();
if ( !hitem )
return; // oops..
- int cc = hitem->columnCount();
- for ( int i = 1; i < cc; i++ ) {
- if ( columnName == hitem->text( i ) ) {
- // got the column to hide/show
- if ( a->isChecked() )
- header()->showSection( i );
- else
- header()->hideSection( i );
- return;
- }
- }
-
- // oops.. found no column to hide/show ?
+ int column = a->data().toInt();
+ Q_ASSERT( column >= 0 && column < hitem->columnCount() );
+
+ if ( a->isChecked() )
+ header()->showSection( column );
+ else
+ header()->hideSection( column );
}
void KMMimePartTree::slotContextMenuRequested( const QPoint& p )
@@ -222,12 +206,12 @@
KMenu popup;
- popup.addAction( SmallIcon( "document-save-as" ),i18n( "Save &As..." ),
+ popup.addAction( SmallIcon( "document-save-as" ), i18n( "Save &As..." ),
this, SLOT( slotSaveAs() ) );
if ( isAttachment ) {
popup.addAction( SmallIcon( "document-open" ), i18nc( "to open", "Open" ),
- this, SLOT( slotOpen() ) );
+ this, SLOT( slotOpen() ) );
popup.addAction( i18n( "Open With..." ), this, SLOT( slotOpenWith() ) );
popup.addAction( i18nc( "to view something", "View" ), this, SLOT( slotView() ) \
); }
@@ -239,7 +223,7 @@
*/
popup.addAction( i18n( "Save All Attachments..." ), this,
- SLOT( slotSaveAll() ) );
+ SLOT( slotSaveAll() ) );
// edit + delete only for attachments
if ( isAttachment ) {
@@ -303,40 +287,10 @@
command->start();
}
-#if 0
- /* FIXME: Remove this ifdefed code if nobody complains (2008.04.23) */
-
//-----------------------------------------------------------------------------
-void KMMimePartTree::setStyleDependantFrameWidth()
-{
- // FIXME: This seems to be hack...Is it still needed with Qt4/KDE4 ?
-
- // set the width of the frame to a reasonable value for the current GUI style
- int frameWidth;
-#if 0 // is this hack still needed with kde4?
- if ( !qstrcmp( style()->metaObject()->className(), "KeramikStyle" ) )
- frameWidth = style()->pixelMetric( QStyle::PM_DefaultFrameWidth ) - 1;
- else
-#endif
- frameWidth = style()->pixelMetric( QStyle::PM_DefaultFrameWidth );
- if ( frameWidth < 0 )
- frameWidth = 0;
- if ( frameWidth != lineWidth() )
- setLineWidth( frameWidth );
-}
-
-//-----------------------------------------------------------------------------
-void KMMimePartTree::styleChange( QStyle& oldStyle )
-{
- setStyleDependantFrameWidth();
- QTreeWidget::styleChange( oldStyle );
-}
-#endif
-
-//-----------------------------------------------------------------------------
void KMMimePartTree::correctSize( QTreeWidgetItem * item )
{
- if (!item)
+ if ( !item )
return;
// Gather size for all the children
@@ -351,7 +305,7 @@
}
if ( totalSize > static_cast<KMMimePartTreeItem*>(item)->origSize() )
- item->setText( 3 , KIO::convertSize(totalSize) );
+ item->setText( 3 , KIO::convertSize( totalSize ) );
if ( item->parent() )
correctSize( item->parent() );
@@ -445,7 +399,7 @@
: QTreeWidgetItem( parent ),
mPartNode( node ), mOrigSize( size )
{
- Q_ASSERT(parent);
+ Q_ASSERT( parent );
if ( node )
node->setMimePartTreeItem( this );
setText( 0 , description );
--- trunk/KDE/kdepim/kmail/kmmimeparttree.h #802875:802876
@@ -60,6 +60,7 @@
virtual ~KMMimePartTree();
public:
+
/**
* Corrects the size displayed by the specified item
* by accounting for its current children.
@@ -85,21 +86,10 @@
void slotCopy();
protected:
-#if 0
- /* FIXME: Remove this ifdefed code if nobody complains (2008.04.23) */
- /** reimplemented in order to update the frame width in case of a changed
- GUI style FIXME: Still needed with Qt4 ? */
- virtual void styleChange( QStyle& oldStyle );
-#endif
+
virtual void startDrag( Qt::DropActions actions );
virtual void showEvent( QShowEvent* e );
-#if 0
- /* FIXME: Remove this ifdefed code if nobody complains (2008.04.23) */
- /** Set the width of the frame to a reasonable value for the current GUI
- style */
- void setStyleDependantFrameWidth();
-#endif
void restoreLayoutIfPresent();
void startHandleAttachmentCommand( int action );
void saveSelectedBodyParts( bool encoded );
@@ -140,10 +130,12 @@
* @returns a pointer to the partNode this item is displaying.
*/
partNode* node() const { return mPartNode; }
+
/**
* @returns the initial size of the tree node data.
*/
KIO::filesize_t origSize() const { return mOrigSize; }
+
/**
* Sets the initial size of the tree node data.
*/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic