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

libkdepim

  • sources
  • kde-4.14
  • kdepim
  • libkdepim
  • addressline
  • blacklistbaloocompletion
blacklistbalooemaillist.cpp
Go to the documentation of this file.
1 /*
2  Copyright (c) 2015 Montel Laurent <montel@kde.org>
3 
4  This library is free software; you can redistribute it and/or modify it
5  under the terms of the GNU Library General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or (at your
7  option) any later version.
8 
9  This library is distributed in the hope that it will be useful, but WITHOUT
10  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12  License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to the
16  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  02110-1301, USA.
18 
19 */
20 
21 #include "blacklistbalooemaillist.h"
22 #include <QDebug>
23 #include <QPainter>
24 #include <KGlobalSettings>
25 #include <KPIMUtils/Email>
26 using namespace KPIM;
27 
28 BlackListBalooEmailList::BlackListBalooEmailList(QWidget *parent)
29  : QListWidget(parent),
30  mFirstResult(false)
31 {
32  setSelectionMode(QAbstractItemView::ExtendedSelection);
33  connect( KGlobalSettings::self(), SIGNAL(kdisplayPaletteChanged()),
34  this, SLOT(slotGeneralPaletteChanged()));
35 
36 }
37 
38 BlackListBalooEmailList::~BlackListBalooEmailList()
39 {
40 
41 }
42 
43 void BlackListBalooEmailList::setEmailBlackList(const QStringList &list)
44 {
45  mEmailBlackList = list;
46 }
47 
48 QHash<QString, bool> BlackListBalooEmailList::blackListItemChanged() const
49 {
50  QHash<QString, bool> result;
51  for (int i = 0; i < count(); ++i) {
52  QListWidgetItem *element = item(i);
53  KPIM::BlackListBalooEmailListItem *blackListItem = static_cast<KPIM::BlackListBalooEmailListItem *>(element);
54  bool currentStatus = (blackListItem->checkState() == Qt::Checked);
55  if (blackListItem->initializeStatus() != currentStatus) {
56  result.insert(blackListItem->text(), currentStatus);
57  }
58  }
59  return result;
60 }
61 
62 void BlackListBalooEmailList::setExcludeDomain(const QStringList &domain)
63 {
64  mExcludeDomain = domain;
65 }
66 
67 void BlackListBalooEmailList::slotEmailFound(const QStringList &list)
68 {
69  mFirstResult = true;
70  clear();
71  QStringList emailsAdded;
72  Q_FOREACH(const QString & mail, list) {
73  bool excludeDomain = false;
74  QString email, name;
75  KPIMUtils::extractEmailAddressAndName( mail, email, name );
76 
77  Q_FOREACH (const QString &domain, mExcludeDomain) {
78  if (email.endsWith(domain)) {
79  excludeDomain = true;
80  break;
81  }
82  }
83  if (excludeDomain) {
84  continue;
85  }
86  if (!emailsAdded.contains(mail)) {
87  BlackListBalooEmailListItem *item = new BlackListBalooEmailListItem(this);
88  if (mEmailBlackList.contains(mail)) {
89  item->setCheckState(Qt::Checked);
90  item->setInitializeStatus(true);
91  } else {
92  item->setCheckState(Qt::Unchecked);
93  }
94  item->setText(mail);
95  emailsAdded << mail;
96  }
97  }
98 }
99 
100 void BlackListBalooEmailList::slotGeneralPaletteChanged()
101 {
102  const QPalette palette = viewport()->palette();
103  QColor color = palette.text().color();
104  color.setAlpha( 128 );
105  mTextColor = color;
106 }
107 
108 void BlackListBalooEmailList::paintEvent( QPaintEvent *event )
109 {
110  if ( mFirstResult && (!model() || model()->rowCount() == 0) ) {
111  QPainter p( viewport() );
112 
113  QFont font = p.font();
114  font.setItalic( true );
115  p.setFont( font );
116 
117  if (!mTextColor.isValid()) {
118  slotGeneralPaletteChanged();
119  }
120  p.setPen( mTextColor );
121 
122  //Add i18n
123  p.drawText( QRect( 0, 0, width(), height() ), Qt::AlignCenter, QLatin1String( "No result found" ) );
124  } else {
125  QListWidget::paintEvent( event );
126  }
127 }
128 
129 
130 BlackListBalooEmailListItem::BlackListBalooEmailListItem(QListWidget *parent)
131  : QListWidgetItem(parent),
132  mInitializeStatus(false)
133 {
134  setFlags(Qt::ItemIsEnabled|Qt::ItemIsUserCheckable|Qt::ItemIsSelectable);
135 }
136 
137 BlackListBalooEmailListItem::~BlackListBalooEmailListItem()
138 {
139 
140 }
141 
142 bool BlackListBalooEmailListItem::initializeStatus() const
143 {
144  return mInitializeStatus;
145 }
146 
147 void BlackListBalooEmailListItem::setInitializeStatus(bool initializeStatus)
148 {
149  mInitializeStatus = initializeStatus;
150 }
151 
KPIM::BlackListBalooEmailListItem::~BlackListBalooEmailListItem
~BlackListBalooEmailListItem()
Definition: blacklistbalooemaillist.cpp:137
QWidget
blacklistbalooemaillist.h
QWidget::palette
const QPalette & palette() const
QHash::insert
iterator insert(const Key &key, const T &value)
QListWidgetItem::checkState
Qt::CheckState checkState() const
QPalette::text
const QBrush & text() const
QAbstractItemView::setSelectionMode
void setSelectionMode(QAbstractItemView::SelectionMode mode)
QPainter::font
const QFont & font() const
QFont
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
QListWidgetItem
QAbstractScrollArea::viewport
QWidget * viewport() const
QColor::setAlpha
void setAlpha(int alpha)
QListWidget
QWidget::width
int width() const
QBrush::color
const QColor & color() const
QObject::name
const char * name() const
QRect
QPainter::setFont
void setFont(const QFont &font)
KPIM::BlackListBalooEmailList::blackListItemChanged
QHash< QString, bool > blackListItemChanged() const
Definition: blacklistbalooemaillist.cpp:48
KPIM::BlackListBalooEmailList::setEmailBlackList
void setEmailBlackList(const QStringList &list)
Definition: blacklistbalooemaillist.cpp:43
QListWidget::clear
void clear()
KPIM::BlackListBalooEmailList::BlackListBalooEmailList
BlackListBalooEmailList(QWidget *parent=0)
Definition: blacklistbalooemaillist.cpp:28
QHash< QString, bool >
QPainter::setPen
void setPen(const QColor &color)
QPainter
QListWidgetItem::setFlags
void setFlags(QFlags< Qt::ItemFlag > flags)
KPIM::BlackListBalooEmailListItem
Definition: blacklistbalooemaillist.h:31
KPIM::BlackListBalooEmailListItem::setInitializeStatus
void setInitializeStatus(bool initializeStatus)
Definition: blacklistbalooemaillist.cpp:147
KPIM::BlackListBalooEmailList::setExcludeDomain
void setExcludeDomain(const QStringList &domain)
Definition: blacklistbalooemaillist.cpp:62
QPainter::drawText
void drawText(const QPointF &position, const QString &text)
QString::endsWith
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const
QString
QListWidgetItem::setCheckState
void setCheckState(Qt::CheckState state)
QColor
QListWidget::item
QListWidgetItem * item(int row) const
QListWidget::count
int count() const
KPIM::BlackListBalooEmailList::slotEmailFound
void slotEmailFound(const QStringList &)
Definition: blacklistbalooemaillist.cpp:67
QStringList
QListView::paintEvent
virtual void paintEvent(QPaintEvent *e)
QWidget::font
const QFont & font() const
QFont::setItalic
void setItalic(bool enable)
QLatin1String
KPIM::BlackListBalooEmailList::~BlackListBalooEmailList
~BlackListBalooEmailList()
Definition: blacklistbalooemaillist.cpp:38
KPIM::BlackListBalooEmailList::paintEvent
void paintEvent(QPaintEvent *event)
Definition: blacklistbalooemaillist.cpp:108
KPIM::BlackListBalooEmailListItem::initializeStatus
bool initializeStatus() const
Definition: blacklistbalooemaillist.cpp:142
QPaintEvent
QAbstractItemView::model
QAbstractItemModel * model() const
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
KPIM::BlackListBalooEmailListItem::BlackListBalooEmailListItem
BlackListBalooEmailListItem(QListWidget *parent=0)
Definition: blacklistbalooemaillist.cpp:130
QListWidgetItem::text
QString text() const
QPalette
QWidget::height
int height() const
QListWidgetItem::setText
void setText(const QString &text)
QColor::isValid
bool isValid() const
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:33:50 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdepim

Skip menu "libkdepim"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules

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
  • pimprint

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