• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

knode

  • sources
  • kde-4.12
  • kdepim
  • knode
kncollectionviewitem.cpp
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 1999-2006 the KNode authors.
4  See file AUTHORS for details
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 
15 #include "kncollectionviewitem.h"
16 
17 #include "kncollectionview.h"
18 #include "kngroup.h"
19 #include "knfolder.h"
20 #include "knconfigmanager.h"
21 
22 #include <kiconloader.h>
23 
24 
25 KNCollectionViewItem::KNCollectionViewItem( FolderTreeWidget *parent, Protocol protocol, FolderType type) :
26  FolderTreeWidgetItem( parent, QString(), protocol, type )
27 {
28  setUp();
29 }
30 
31 
32 KNCollectionViewItem::KNCollectionViewItem( FolderTreeWidgetItem *parent, Protocol protocol, FolderType type, int unread, int total ) :
33  FolderTreeWidgetItem( parent, QString(), protocol, type )
34 {
35  setUp();
36  setUnreadCount( unread );
37  setTotalCount( total );
38 }
39 
40 
41 KNCollectionViewItem::~KNCollectionViewItem()
42 {
43  if(coll) coll->setListItem(0);
44 }
45 
46 
47 void KNCollectionViewItem::setUp()
48 {
49  // Label edition
50  setFlags( flags() | Qt::ItemIsEditable );
51 
52  // Icons
53  if ( protocol() == FolderTreeWidgetItem::News ) {
54  // news servers/groups
55  switch ( folderType() ) {
56  case FolderTreeWidgetItem::Root:
57  setIcon( 0, KIcon("network-server") );
58  break;
59  default:
60  setIcon( 0, KIcon("group") );
61  }
62  } else {
63  // local folders
64  switch ( folderType() ) {
65  case FolderTreeWidgetItem::Outbox:
66  setIcon( 0, KIcon("mail-folder-outbox") );
67  break;
68  case FolderTreeWidgetItem::Drafts:
69  setIcon( 0, KIcon("document-properties") );
70  break;
71  case FolderTreeWidgetItem::SentMail:
72  setIcon( 0, KIcon("mail-folder-sent") );
73  break;
74  default:
75  setIcon( 0, KIcon("folder") );
76  }
77  }
78 }
79 
80 
81 bool KNCollectionViewItem::operator<( const QTreeWidgetItem &other ) const
82 {
83  const FolderTreeWidgetItem &otherFolder = static_cast<const FolderTreeWidgetItem&>( other );
84 
85  if( protocol() == FolderTreeWidgetItem::Local ) {
86  if( otherFolder.protocol() == FolderTreeWidgetItem::News) {
87  return false;
88  }
89  }
90 
91  if( protocol() == FolderTreeWidgetItem::News ) {
92  if( otherFolder.protocol() == FolderTreeWidgetItem::Local ) {
93  return true;
94  }
95  }
96  return FolderTreeWidgetItem::operator<( other );
97 }
98 
99 
100 void KNCollectionViewItem::setCollection( KNCollection::Ptr c )
101 {
102  coll = c;
103  setUp();
104 }
105 
106 
107 QString KNCollectionViewItem::elidedLabelText( const QFontMetrics &fm, unsigned int width ) const
108 {
109  if (protocol() == FolderTreeWidgetItem::News && folderType() == FolderTreeWidgetItem::Other) {
110  QString t( labelText() );
111  int curPos = 0, nextPos = 0;
112  QString temp;
113  while ( (uint)fm.width(t) > width && nextPos != -1 ) {
114  nextPos = t.indexOf( '.', curPos );
115  if ( nextPos != -1 ) {
116  temp = t[curPos];
117  t.replace( curPos, nextPos - curPos, temp );
118  curPos += 2;
119  }
120  }
121  if ( (uint)fm.width( t ) > width )
122  t = fm.elidedText( t, Qt::ElideRight, width );
123  return t;
124  } else {
125  return FolderTreeWidgetItem::elidedLabelText( fm, width );
126  }
127 }
KNCollectionViewItem::elidedLabelText
virtual QString elidedLabelText(const QFontMetrics &fm, unsigned int width) const
Elid names of group according to usenet habit.
Definition: kncollectionviewitem.cpp:107
KNCollectionViewItem::operator<
bool operator<(const QTreeWidgetItem &other) const
Sort newsgroups before local folders.
Definition: kncollectionviewitem.cpp:81
KPIM::FolderTreeWidgetItem
A folder tree node to be used with FolderTreeWidget.
Definition: foldertreewidget.h:225
KPIM::FolderTreeWidget
A tree widget useful for displaying a tree of folders containing messages.
Definition: foldertreewidget.h:73
knfolder.h
KNCollectionViewItem::~KNCollectionViewItem
~KNCollectionViewItem()
Definition: kncollectionviewitem.cpp:41
KPIM::FolderTreeWidgetItem::folderType
FolderType folderType() const
Returns the type of the folder.
Definition: foldertreewidget.h:396
KNCollectionViewItem::setCollection
void setCollection(KNCollection::Ptr c)
Sets the collection this item represents.
Definition: kncollectionviewitem.cpp:100
kngroup.h
KPIM::FolderTreeWidgetItem::setUnreadCount
void setUnreadCount(int unreadCount)
Sets the unread message count to be displayed in the special "Unread" column.
Definition: foldertreewidget.cpp:453
KPIM::FolderTreeWidgetItem::FolderType
FolderType
Folder type information Please note that this list should be kept in the order of items that one want...
Definition: foldertreewidget.h:245
kncollectionview.h
kncollectionviewitem.h
KPIM::FolderTreeWidgetItem::protocol
Protocol protocol() const
Returns the protocol associated to the folder item.
Definition: foldertreewidget.h:379
QTreeWidgetItem
KPIM::FolderTreeWidgetItem::Protocol
Protocol
Protocol information associated to the item.
Definition: foldertreewidget.h:234
KNCollection::Ptr
boost::shared_ptr< KNCollection > Ptr
Shared pointer to a KNCollection.
Definition: kncollection.h:40
KPIM::FolderTreeWidgetItem::labelText
const QString & labelText() const
Returns the textual data for the "Label" column of the parent FolderTreeWidget.
Definition: foldertreewidget.h:300
KNCollectionViewItem::KNCollectionViewItem
KNCollectionViewItem(FolderTreeWidget *parent, Protocol protocol=NONE, FolderType type=Root)
Definition: kncollectionviewitem.cpp:25
knconfigmanager.h
KPIM::FolderTreeWidgetItem::setTotalCount
void setTotalCount(int totalCount)
Sets the total message count to be displayed in the special "Total" column.
Definition: foldertreewidget.cpp:476
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal