20 #include "collectionrequester.h"
21 #include "collectiondialog.h"
23 #include <klineedit.h>
25 #include <kpushbutton.h>
26 #include <kstandardshortcut.h>
28 #include <QtCore/QEvent>
29 #include <QtGui/QAction>
30 #include <QtGui/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 )
103 q->setCollection( collection );
104 emit q->collectionChanged( collection );
109 d( new Private( this ) )
117 d( new Private( this ) )
132 return d->collection;
139 d->edit->setText( collection.
isValid() ? collection.
name() : QString() );
145 if ( d->collectionDialog )
146 d->collectionDialog->setMimeTypeFilter( mimeTypes );
151 if ( d->collectionDialog )
152 return d->collectionDialog->mimeTypeFilter();
154 return QStringList();
159 if ( d->collectionDialog )
160 d->collectionDialog->setAccessRightsFilter( rights );
165 if ( d->collectionDialog )
166 return d->collectionDialog->accessRightsFilter();
171 void CollectionRequester::changeCollectionDialogOptions( CollectionDialog::CollectionDialogOptions options )
173 if ( d->collectionDialog )
174 d->collectionDialog->changeCollectionDialogOptions( options );
177 #include "collectionrequester.moc"