• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdepimlibs-4.11.3 API Reference
  • KDE Home
  • Contact Us
 

akonadi

  • akonadi
collectionrequester.cpp
1 /*
2  Copyright 2008 Ingo Klöcker <kloecker@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 #include "collectionrequester.h"
21 #include "collectiondialog.h"
22 #include "entitydisplayattribute.h"
23 
24 #include <klineedit.h>
25 #include <klocalizedstring.h>
26 #include <kpushbutton.h>
27 #include <kicon.h>
28 #include <kstandardshortcut.h>
29 
30 #include <QtCore/QEvent>
31 #include <QAction>
32 #include <QApplication>
33 
34 using namespace Akonadi;
35 
36 class CollectionRequester::Private
37 {
38  public:
39  Private( CollectionRequester *parent )
40  : q( parent ),
41  edit( 0 ),
42  button( 0 ),
43  collectionDialog( 0 )
44  {
45  }
46 
47  ~Private()
48  {
49  }
50 
51  void init();
52 
53  // slots
54  void _k_slotOpenDialog();
55 
56  CollectionRequester *q;
57  Collection collection;
58  KLineEdit *edit;
59  KPushButton *button;
60  CollectionDialog *collectionDialog;
61 };
62 
63 
64 void CollectionRequester::Private::init()
65 {
66  q->setMargin( 0 );
67 
68  edit = new KLineEdit( q );
69  edit->setReadOnly( true );
70  edit->setClickMessage( i18n( "No Folder" ) );
71  edit->setClearButtonShown( false );
72  edit->setFocusPolicy( Qt::NoFocus );
73 
74  button = new KPushButton( q );
75  button->setIcon( KIcon( QLatin1String( "document-open" ) ) );
76  const int buttonSize = edit->sizeHint().height();
77  button->setFixedSize( buttonSize, buttonSize );
78  button->setToolTip( i18n( "Open collection dialog" ) );
79 
80  q->setSpacing( -1 );
81 
82  edit->installEventFilter( q );
83  q->setFocusProxy( button );
84  q->setFocusPolicy( Qt::StrongFocus );
85 
86  q->connect( button, SIGNAL(clicked()), q, SLOT(_k_slotOpenDialog()) );
87 
88  QAction *openAction = new QAction( q );
89  openAction->setShortcut( KStandardShortcut::Open );
90  q->connect( openAction, SIGNAL(triggered(bool)), q, SLOT(_k_slotOpenDialog()) );
91 
92  collectionDialog = new CollectionDialog( q );
93  collectionDialog->setWindowIcon( KIcon( QLatin1String( "akonadi" ) ) );
94  collectionDialog->setCaption( i18n( "Select a collection" ) );
95  collectionDialog->setSelectionMode( QAbstractItemView::SingleSelection );
96 }
97 
98 void CollectionRequester::Private::_k_slotOpenDialog()
99 {
100  CollectionDialog *dlg = collectionDialog;
101 
102  if ( dlg->exec() != QDialog::Accepted ) {
103  return;
104  }
105 
106  const Akonadi::Collection collection = dlg->selectedCollection();
107  q->setCollection( collection );
108  emit q->collectionChanged( collection );
109 }
110 
111 CollectionRequester::CollectionRequester( QWidget *parent )
112  : KHBox( parent ),
113  d( new Private( this ) )
114 {
115  d->init();
116 }
117 
118 
119 CollectionRequester::CollectionRequester( const Akonadi::Collection &collection, QWidget *parent )
120  : KHBox( parent ),
121  d( new Private( this ) )
122 {
123  d->init();
124  setCollection( collection );
125 }
126 
127 
128 CollectionRequester::~CollectionRequester()
129 {
130  delete d;
131 }
132 
133 
134 Collection CollectionRequester::collection() const
135 {
136  return d->collection;
137 }
138 
139 
140 void CollectionRequester::setCollection( const Collection& collection )
141 {
142  d->collection = collection;
143  QString name;
144  if ( collection.isValid() ) {
145  name = collection.displayName();
146  }
147 
148  d->edit->setText( name );
149  emit collectionChanged( collection );
150 }
151 
152 void CollectionRequester::setMimeTypeFilter( const QStringList &mimeTypes )
153 {
154  if ( d->collectionDialog ) {
155  d->collectionDialog->setMimeTypeFilter( mimeTypes );
156  }
157 }
158 
159 QStringList CollectionRequester::mimeTypeFilter() const
160 {
161  if ( d->collectionDialog ) {
162  return d->collectionDialog->mimeTypeFilter();
163  } else {
164  return QStringList();
165  }
166 }
167 
168 void CollectionRequester::setAccessRightsFilter( Collection::Rights rights )
169 {
170  if ( d->collectionDialog ) {
171  d->collectionDialog->setAccessRightsFilter( rights );
172  }
173 }
174 
175 Collection::Rights CollectionRequester::accessRightsFilter() const
176 {
177  if ( d->collectionDialog ) {
178  return d->collectionDialog->accessRightsFilter();
179  } else {
180  return Akonadi::Collection::ReadOnly;
181  }
182 }
183 
184 void CollectionRequester::changeCollectionDialogOptions( CollectionDialog::CollectionDialogOptions options )
185 {
186  if ( d->collectionDialog ) {
187  d->collectionDialog->changeCollectionDialogOptions( options );
188  }
189 }
190 
191 #include "moc_collectionrequester.cpp"
Akonadi::CollectionDialog::selectedCollection
Akonadi::Collection selectedCollection() const
Returns the selected collection if the selection mode is QAbstractItemView::SingleSelection.
Definition: collectiondialog_desktop.cpp:256
Akonadi::Collection::displayName
QString displayName() const
Returns the display name (EntityDisplayAttribute::displayName()) if set, and Collection::name() other...
Definition: collection.cpp:86
Akonadi::CollectionRequester::collection
Akonadi::Collection collection() const
Returns the currently chosen collection, or an empty collection if none none was chosen.
Definition: collectionrequester.cpp:134
Akonadi::CollectionRequester::mimeTypeFilter
QStringList mimeTypeFilter() const
Returns the mime types any of which the selected collection shall support.
Definition: collectionrequester.cpp:159
Akonadi::CollectionDialog
A collection selection dialog.
Definition: collectiondialog.h:67
Akonadi::CollectionRequester::setMimeTypeFilter
void setMimeTypeFilter(const QStringList &mimeTypes)
Sets the mime types any of which the selected collection shall support.
Definition: collectionrequester.cpp:152
Akonadi::CollectionRequester::collectionChanged
void collectionChanged(const Akonadi::Collection &collection)
This signal is emitted when the selected collection has changed.
Akonadi::Collection
Represents a collection of PIM items.
Definition: collection.h:75
Akonadi::CollectionRequester
A widget to request an Akonadi collection from the user.
Definition: collectionrequester.h:58
Akonadi::CollectionRequester::setAccessRightsFilter
void setAccessRightsFilter(Collection::Rights rights)
Sets the access rights that the listed collections shall match with.
Definition: collectionrequester.cpp:168
Akonadi::Collection::ReadOnly
Can only read items or subcollection of this collection.
Definition: collection.h:87
Akonadi::CollectionRequester::setCollection
void setCollection(const Akonadi::Collection &collection)
Sets the collection of the requester.
Definition: collectionrequester.cpp:140
Akonadi::CollectionRequester::accessRightsFilter
Collection::Rights accessRightsFilter() const
Returns the access rights that the listed collections shall match with.
Definition: collectionrequester.cpp:175
Akonadi::CollectionRequester::CollectionRequester
CollectionRequester(QWidget *parent=0)
Creates a collection requester.
Definition: collectionrequester.cpp:111
Akonadi::CollectionRequester::changeCollectionDialogOptions
void changeCollectionDialogOptions(CollectionDialog::CollectionDialogOptions options)
Definition: collectionrequester.cpp:184
Akonadi::CollectionRequester::~CollectionRequester
~CollectionRequester()
Destroys the collection requester.
Definition: collectionrequester.cpp:128
Akonadi::Entity::isValid
bool isValid() const
Returns whether the entity is valid.
Definition: entity.cpp:97
This file is part of the KDE documentation.
Documentation copyright © 1996-2013 The KDE developers.
Generated on Tue Nov 26 2013 09:03:16 by doxygen 1.8.5 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

akonadi

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

kdepimlibs-4.11.3 API Reference

Skip menu "kdepimlibs-4.11.3 API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
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