20 #include "collectionrequester.h"
21 #include "collectiondialog.h"
23 #include <klineedit.h>
25 #include <kpushbutton.h>
26 #include <kstandardshortcut.h>
28 #include <QtCore/QEvent>
30 #include <QApplication>
32 using namespace Akonadi;
34 class CollectionRequester::Private
52 void _k_slotOpenDialog();
62 void CollectionRequester::Private::init()
66 edit =
new KLineEdit( q );
67 edit->setReadOnly(
true );
68 edit->setClickMessage( i18n(
"No Folder" ) );
69 edit->setClearButtonShown(
false );
70 edit->setFocusPolicy( Qt::NoFocus );
72 button =
new KPushButton( q );
73 button->setIcon( KIcon( QLatin1String(
"document-open" ) ) );
74 const int buttonSize = edit->sizeHint().height();
75 button->setFixedSize( buttonSize, buttonSize );
76 button->setToolTip( i18n(
"Open collection dialog" ) );
80 edit->installEventFilter( q );
81 q->setFocusProxy( button );
82 q->setFocusPolicy( Qt::StrongFocus );
84 q->connect( button, SIGNAL(clicked()), q, SLOT(_k_slotOpenDialog()) );
86 QAction *openAction =
new QAction( q );
87 openAction->setShortcut( KStandardShortcut::Open );
88 q->connect( openAction, SIGNAL(triggered(
bool)), q, SLOT(_k_slotOpenDialog()) );
91 collectionDialog->setCaption( i18n(
"Select a collection" ) );
92 collectionDialog->setSelectionMode( QAbstractItemView::SingleSelection );
95 void CollectionRequester::Private::_k_slotOpenDialog()
99 if ( dlg->exec() != QDialog::Accepted ) {
104 q->setCollection( collection );
105 emit q->collectionChanged( collection );
110 d( new Private( this ) )
118 d( new Private( this ) )
133 return d->collection;
140 d->edit->setText( collection.
isValid() ? collection.
name() : QString() );
146 if ( d->collectionDialog ) {
147 d->collectionDialog->setMimeTypeFilter( mimeTypes );
153 if ( d->collectionDialog ) {
154 return d->collectionDialog->mimeTypeFilter();
156 return QStringList();
162 if ( d->collectionDialog ) {
163 d->collectionDialog->setAccessRightsFilter( rights );
169 if ( d->collectionDialog ) {
170 return d->collectionDialog->accessRightsFilter();
176 void CollectionRequester::changeCollectionDialogOptions( CollectionDialog::CollectionDialogOptions options )
178 if ( d->collectionDialog ) {
179 d->collectionDialog->changeCollectionDialogOptions( options );
183 #include "moc_collectionrequester.cpp"