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

kopete/libkopete

  • sources
  • kde-4.14
  • kdenetwork
  • kopete
  • libkopete
  • ui
addressbookselectorwidget.cpp
Go to the documentation of this file.
1 /*
2  AddressBookSelectorWidget
3 
4  Copyright (c) 2005 by Duncan Mac-Vicar Prett <duncan@kde.org>
5 
6  Based on LinkAddressBookUI whose code was shamelessly stolen from
7  kopete's add new contact wizard, used in Konversation, and then
8  reappropriated by Kopete.
9 
10  LinkAddressBookUI:
11  Copyright (c) 2004 by John Tapsell <john@geola.co.uk>
12  Copyright (c) 2003-2005 by Will Stephenson <will@stevello.free-online.co.uk>
13  Copyright (c) 2002 by Nick Betcher <nbetcher@kde.org>
14  Copyright (c) 2002 by Duncan Mac-Vicar Prett <duncan@kde.org>
15 
16  Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>
17 
18  *************************************************************************
19  * *
20  * This program is free software; you can redistribute it and/or modify *
21  * it under the terms of the GNU General Public License as published by *
22  * the Free Software Foundation; either version 2 of the License, or *
23  * (at your option) any later version. *
24  * *
25  *************************************************************************
26 */
27 #include "addressbookselectorwidget.h"
28 
29 #include <qcheckbox.h>
30 #include <kconfig.h>
31 #include <klocale.h>
32 #include <kiconloader.h>
33 
34 #include <kdeversion.h>
35 #include <kinputdialog.h>
36 
37 #include <kpushbutton.h>
38 #include <k3activelabel.h>
39 #include <kdebug.h>
40 #include <k3listview.h>
41 #include <k3listviewsearchline.h>
42 #include <qlabel.h>
43 
44 
45 #include <addresseeitem.h>
46 #include "kabcpersistence.h"
47 
48 using namespace Kopete::UI;
49 
50 namespace Kopete
51 {
52 namespace UI
53 {
54 
55 AddressBookSelectorWidget::AddressBookSelectorWidget( QWidget *parent, const char *name )
56  : QWidget(parent), Ui::AddressBookSelectorWidget_Base()
57 {
58  setObjectName(name);
59  setupUi(this);
60 
61  m_addressBook = Kopete::KABCPersistence::self()->addressBook();
62 
63  // Addressee validation connections
64  connect( addAddresseeButton, SIGNAL(clicked()), SLOT(slotAddAddresseeClicked()) );
65  connect( addAddresseeButton, SIGNAL(clicked()), SIGNAL(addAddresseeClicked()) );
66 
67  connect( addresseeListView, SIGNAL(clicked(Q3ListViewItem*)),
68  SIGNAL(addresseeListClicked(Q3ListViewItem*)) );
69  connect( addresseeListView, SIGNAL(selectionChanged(Q3ListViewItem*)),
70  SIGNAL(addresseeListClicked(Q3ListViewItem*)) );
71  connect( addresseeListView, SIGNAL(spacePressed(Q3ListViewItem*)),
72  SIGNAL(addresseeListClicked(Q3ListViewItem*)) );
73 
74  connect( m_addressBook, SIGNAL(addressBookChanged(AddressBook*)), this, SLOT(slotLoadAddressees()) );
75 
76  //We should add a clear KAction here. But we can't really do that with a designer file :\ this sucks
77 
78  addresseeListView->setColumnText(2, KIcon(QLatin1String("internet-mail")), i18n("Email"));
79 
80  kListViewSearchLine->setListView(addresseeListView);
81  slotLoadAddressees();
82 
83  addresseeListView->setColumnWidthMode(0, Q3ListView::Manual);
84  addresseeListView->setColumnWidth(0, 63); //Photo is 60, and it's nice to have a small gap, imho
85 }
86 
87 
88 AddressBookSelectorWidget::~AddressBookSelectorWidget()
89 {
90  disconnect( m_addressBook, SIGNAL(addressBookChanged(AddressBook*)), this, SLOT(slotLoadAddressees()) );
91 }
92 
93 
94 KABC::Addressee AddressBookSelectorWidget::addressee()
95 {
96  AddresseeItem *item = 0L;
97  item = static_cast<AddresseeItem *>( addresseeListView->selectedItem() );
98 
99  if ( item )
100  m_addressee = item->addressee();
101 
102  return m_addressee;
103 }
104 
105 void AddressBookSelectorWidget::selectAddressee( const QString &uid )
106 {
107  // iterate trough list view
108  Q3ListViewItemIterator it( addresseeListView );
109  while( it.current() )
110  {
111  AddresseeItem *addrItem = (AddresseeItem *) it.current();
112  if ( addrItem->addressee().uid() == uid )
113  {
114  // select the contact item
115  addresseeListView->setSelected( addrItem, true );
116  addresseeListView->ensureItemVisible( addrItem );
117  }
118  ++it;
119  }
120 }
121 
122 bool AddressBookSelectorWidget::addresseeSelected()
123 {
124  return addresseeListView->selectedItem() ? true : false;
125 }
126 
128 void AddressBookSelectorWidget::slotLoadAddressees()
129 {
130  addresseeListView->clear();
131  KABC::AddressBook::Iterator it;
132  for( it = m_addressBook->begin(); it != m_addressBook->end(); ++it )
133  {
134  new AddresseeItem( addresseeListView, (*it));
135  }
136 
137 }
138 
139 void AddressBookSelectorWidget::setLabelMessage( const QString &msg )
140 {
141  lblHeader->setPlainText(msg);
142 }
143 
144 void AddressBookSelectorWidget::slotAddAddresseeClicked()
145 {
146  // Pop up add addressee dialog
147  QString addresseeName = KInputDialog::getText( i18n( "New Address Book Entry" ), i18n( "Name the new entry:" ), QString::null, 0, this ); //krazy:exclude=nullstrassign for old broken gcc
148 
149  if ( !addresseeName.isEmpty() )
150  {
151  KABC::Addressee addr;
152  addr.setNameFromString( addresseeName );
153  m_addressBook->insertAddressee(addr);
154  Kopete::KABCPersistence::self()->writeAddressBook( 0 );
155  slotLoadAddressees();
156  // select the addressee we just added
157  Q3ListViewItem * added = addresseeListView->findItem( addresseeName, 1 );
158  kListViewSearchLine->clear();
159  kListViewSearchLine->updateSearch();
160  kListViewSearchLine->clear();
161  kListViewSearchLine->updateSearch();
162  addresseeListView->setSelected( added, true );
163  addresseeListView->ensureItemVisible( added );
164  }
165 }
166 
167 } // namespace UI
168 } // namespace Kopete
169 
170 #include "addressbookselectorwidget.moc"
171 
172 // vim: set noet ts=4 sts=4 sw=4:
173 
QWidget
QWidget::setupUi
void setupUi(QWidget *widget)
Kopete::UI::AddressBookSelectorWidget::addressee
KABC::Addressee addressee()
Definition: addressbookselectorwidget.cpp:94
kabcpersistence.h
AddresseeItem
Special ListViewItem.
Definition: addresseeitem.h:32
QObject::disconnect
bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
Q3ListViewItemIterator
Q3ListViewItemIterator::current
Q3ListViewItem * current() const
addressbookselectorwidget.h
Q3ListViewItem::setSelected
virtual void setSelected(bool s)
Q3ListViewItem
Kopete::UI::AddressBookSelectorWidget::addresseeSelected
bool addresseeSelected()
Definition: addressbookselectorwidget.cpp:122
QObject::setObjectName
void setObjectName(const QString &name)
Kopete::UI::AddressBookSelectorWidget::selectAddressee
void selectAddressee(const QString &uid)
pre-selects a contact
Definition: addressbookselectorwidget.cpp:105
QString::isEmpty
bool isEmpty() const
Kopete::UI::AddressBookSelectorWidget::addAddresseeClicked
void addAddresseeClicked()
Kopete::UI::AddressBookSelectorWidget::setLabelMessage
void setLabelMessage(const QString &msg)
sets the widget label message example: Please select a contact or, Choose a contact to delete ...
Definition: addressbookselectorwidget.cpp:139
QString
Kopete::UI::AddressBookSelectorWidget::addresseeListClicked
void addresseeListClicked(Q3ListViewItem *addressee)
addresseeitem.h
Kopete::UI::AddressBookSelectorWidget::~AddressBookSelectorWidget
~AddressBookSelectorWidget()
Definition: addressbookselectorwidget.cpp:88
Kopete::UI::AddressBookSelectorWidget::slotLoadAddressees
void slotLoadAddressees()
Utility function, populates the addressee list.
Definition: addressbookselectorwidget.cpp:128
Kopete::UI::AddressBookSelectorWidget::AddressBookSelectorWidget
AddressBookSelectorWidget(QWidget *parent=0, const char *name=0)
Definition: addressbookselectorwidget.cpp:55
QLatin1String
Kopete::KABCPersistence::addressBook
static KABC::AddressBook * addressBook()
Access Kopete's KDE address book instance.
Definition: kabcpersistence.cpp:92
AddresseeItem::addressee
KABC::Addressee addressee() const
Returns the addressee.
Definition: addresseeitem.h:54
Kopete::KABCPersistence::writeAddressBook
void writeAddressBook(KABC::Resource *res)
Request an address book write, will be delayed to bundle any others happening around the same time...
Definition: kabcpersistence.cpp:177
Kopete::KABCPersistence::self
static KABCPersistence * self()
Retrieve the instance of AccountManager.
Definition: kabcpersistence.cpp:86
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Kopete::UI::AddressBookSelectorWidget::slotAddAddresseeClicked
void slotAddAddresseeClicked()
Definition: addressbookselectorwidget.cpp:144
name
const char * name
Definition: kopeteonlinestatus.cpp:104
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:29:19 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kopete/libkopete

Skip menu "kopete/libkopete"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

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