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

kaddressbook

  • sources
  • kde-4.14
  • kdepim
  • kaddressbook
  • merge
  • manualmerge
mergecontactwidgetlist.cpp
Go to the documentation of this file.
1 /*
2  Copyright (c) 2014-2015 Montel Laurent <montel@kde.org>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License, version 2, as
6  published by the Free Software Foundation.
7 
8  This program is distributed in the hope that it will be useful, but
9  WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License along
14  with this program; if not, write to the Free Software Foundation, Inc.,
15  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 
18 #include "mergecontactwidgetlist.h"
19 
20 using namespace KABMergeContacts;
21 MergeContactWidgetList::MergeContactWidgetList(QWidget *parent)
22  : QListWidget(parent)
23 {
24 }
25 
26 MergeContactWidgetList::~MergeContactWidgetList()
27 {
28 
29 }
30 
31 QString MergeContactWidgetList::itemName(const KABC::Addressee &address) const
32 {
33  const QString realName = address.realName();
34  if (!realName.isEmpty()) {
35  return realName;
36  }
37  const QString name = address.name();
38  if (!name.isEmpty()) {
39  return name;
40  }
41  return address.fullEmail();
42 }
43 
44 void MergeContactWidgetList::fillListContact(const Akonadi::Item::List &items)
45 {
46  clear();
47  Q_FOREACH(const Akonadi::Item &item, items) {
48  if (item.hasPayload<KABC::Addressee>()) {
49  MergeContactWidgetListItem *widgetItem = new MergeContactWidgetListItem(item, this);
50  KABC::Addressee address = item.payload<KABC::Addressee>();
51 
52  widgetItem->setText(itemName(address));
53  }
54  }
55 }
56 
57 Akonadi::Item::List MergeContactWidgetList::listSelectedContacts() const
58 {
59  Akonadi::Item::List lstItems;
60  for (int i = 0; i < count(); ++i) {
61  QListWidgetItem *itemWidget = item(i);
62  if (itemWidget->checkState() == Qt::Checked) {
63  lstItems.append((static_cast<MergeContactWidgetListItem*>(itemWidget))->item());
64  }
65  }
66  return lstItems;
67 }
68 
69 Akonadi::Item MergeContactWidgetList::currentAkonadiItem() const
70 {
71  QListWidgetItem *curr = currentItem();
72  if (curr) {
73  return (static_cast<MergeContactWidgetListItem*>(curr))->item();
74  }
75  return Akonadi::Item();
76 }
77 
78 
79 
80 MergeContactWidgetListItem::MergeContactWidgetListItem(const Akonadi::Item &item, QListWidget *parent)
81  : QListWidgetItem(parent),
82  mItem(item)
83 {
84  setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable );
85  setCheckState( Qt::Unchecked );
86 }
87 
88 Akonadi::Item MergeContactWidgetListItem::item() const
89 {
90  return mItem;
91 }
92 
QWidget
QListWidgetItem::checkState
Qt::CheckState checkState() const
QListWidget::currentItem
QListWidgetItem * currentItem() const
KABMergeContacts::MergeContactWidgetList::fillListContact
void fillListContact(const Akonadi::Item::List &items)
Definition: mergecontactwidgetlist.cpp:44
KABMergeContacts::MergeContactWidgetList::listSelectedContacts
Akonadi::Item::List listSelectedContacts() const
Definition: mergecontactwidgetlist.cpp:57
KABMergeContacts::MergeContactWidgetListItem::item
Akonadi::Item item() const
Definition: mergecontactwidgetlist.cpp:88
QListWidgetItem
QListWidget
KABMergeContacts::MergeContactWidgetListItem::MergeContactWidgetListItem
MergeContactWidgetListItem(const Akonadi::Item &item, QListWidget *parent=0)
Definition: mergecontactwidgetlist.cpp:80
KABMergeContacts::MergeContactWidgetList::MergeContactWidgetList
MergeContactWidgetList(QWidget *parent=0)
Definition: mergecontactwidgetlist.cpp:21
QObject::name
const char * name() const
QListWidget::clear
void clear()
QListWidgetItem::setFlags
void setFlags(QFlags< Qt::ItemFlag > flags)
QString::isEmpty
bool isEmpty() const
KABMergeContacts::MergeContactWidgetList::currentAkonadiItem
Akonadi::Item currentAkonadiItem() const
Definition: mergecontactwidgetlist.cpp:69
QString
QListWidgetItem::setCheckState
void setCheckState(Qt::CheckState state)
QListWidget::item
QListWidgetItem * item(int row) const
QListWidget::count
int count() const
KABMergeContacts::MergeContactWidgetListItem
Definition: mergecontactwidgetlist.h:28
mergecontactwidgetlist.h
KABMergeContacts::MergeContactWidgetList::~MergeContactWidgetList
~MergeContactWidgetList()
Definition: mergecontactwidgetlist.cpp:26
QListWidget::itemWidget
QWidget * itemWidget(QListWidgetItem *item) const
QListWidgetItem::setText
void setText(const QString &text)
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:32:34 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kaddressbook

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

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