/* Copyright 2010 Tobias Koenig This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef AKONADI_COLLECTIONDIALOG_MOBILE_P_H #define AKONADI_COLLECTIONDIALOG_MOBILE_P_H #include "collectiondialog.h" class KJob; class QDeclarativeView; class QSortFilterProxyModel; namespace Akonadi { class AsyncSelectionHandler; class EntityRightsFilterModel; class EntityTreeModel; class ChangeRecorder; class CollectionFilterProxyModel; class CollectionDialog::Private : public QObject { Q_OBJECT Q_PROPERTY(QString descriptionText READ descriptionText NOTIFY descriptionTextChanged) Q_PROPERTY(bool okButtonEnabled READ okButtonEnabled NOTIFY buttonStatusChanged) Q_PROPERTY(bool cancelButtonEnabled READ cancelButtonEnabled NOTIFY buttonStatusChanged) Q_PROPERTY(bool createButtonEnabled READ createButtonEnabled NOTIFY buttonStatusChanged) Q_PROPERTY(bool createButtonVisible READ createButtonVisible NOTIFY buttonStatusChanged) public: Private(QAbstractItemModel *customModel, CollectionDialog *parent, CollectionDialogOptions options); ~Private(); void slotSelectionChanged(); void slotAddChildCollection(); void slotCollectionCreationResult(KJob *job); void slotCollectionAvailable(const QModelIndex &index); bool canCreateCollection(const Akonadi::Collection &parentCollection) const; void changeCollectionDialogOptions(CollectionDialogOptions options); void setDescriptionText(const QString &text); QString descriptionText() const; bool okButtonEnabled() const; bool cancelButtonEnabled() const; bool createButtonEnabled() const; bool createButtonVisible() const; public Q_SLOTS: void okClicked(); void cancelClicked(); void createClicked(); void setCurrentIndex(int index); void setFilterText(const QString &text); void selectionChanged(const QItemSelection &, const QItemSelection &); Q_SIGNALS: void descriptionTextChanged(); void buttonStatusChanged(); void selectionChanged(int row); public: CollectionDialog *mParent; ChangeRecorder *mMonitor; EntityTreeModel *mModel; CollectionFilterProxyModel *mMimeTypeFilterModel; EntityRightsFilterModel *mRightsFilterModel; AsyncSelectionHandler *mSelectionHandler; QItemSelectionModel *mSelectionModel; QSortFilterProxyModel *mFilterModel; QAbstractItemView::SelectionMode mSelectionMode; QDeclarativeView *mView; bool mAllowToCreateNewChildCollection; QString mDescriptionText; bool mOkButtonEnabled; bool mCancelButtonEnabled; bool mCreateButtonEnabled; }; } #endif