//
//     Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace Akonadi
{

class StandardActionManager : QObject
{
%TypeHeaderCode
#include <akonadi/standardactionmanager.h>
%End


public:
    enum Type
    {
        CreateCollection,
        CopyCollections,
        DeleteCollections,
        SynchronizeCollections,
        CollectionProperties,
        CopyItems,
        Paste,
        DeleteItems,
        ManageLocalSubscriptions,
        AddToFavoriteCollections,
        RemoveFromFavoriteCollections,
        RenameFavoriteCollection,
        CopyCollectionToMenu,
        CopyItemToMenu,
        MoveItemToMenu,
        MoveCollectionToMenu,
        CutItems,
        CutCollections,
        CreateResource,
        DeleteResources,
        ResourceProperties,
        SynchronizeResources,
        ToggleWorkOffline,
        CopyCollectionToDialog,
        MoveCollectionToDialog,
        CopyItemToDialog,
        MoveItemToDialog,
        SynchronizeCollectionsRecursive,
        MoveCollectionsToTrash,
        MoveItemsToTrash,
        RestoreCollectionsFromTrash,
        RestoreItemsFromTrash,
        MoveToTrashRestoreCollection,
        MoveToTrashRestoreCollectionAlternative,
        MoveToTrashRestoreItem,
        MoveToTrashRestoreItemAlternative,
        SynchronizeFavoriteCollections,
        LastType
    };

    explicit                StandardActionManager (KActionCollection* actionCollection, QWidget* parent /TransferThis/ = 0);
    void                    setCollectionSelectionModel (QItemSelectionModel* selectionModel);
    void                    setItemSelectionModel (QItemSelectionModel* selectionModel);
    KAction*                createAction (Akonadi::StandardActionManager::Type type);
    void                    createAllActions ();
    KAction*                action (Akonadi::StandardActionManager::Type type) const;
    void                    setActionText (Akonadi::StandardActionManager::Type type, const KLocalizedString& text);

signals:
    void                    actionStateUpdated ();
public:
    ~StandardActionManager ();
    void                    setFavoriteCollectionsModel (Akonadi::FavoriteCollectionsModel* favoritesModel);
    void                    setFavoriteSelectionModel (QItemSelectionModel* selectionModel);
    enum TextContext
    {
        DialogTitle,
        DialogText,
        MessageBoxTitle,
        MessageBoxText,
        MessageBoxAlternativeText,
        ErrorMessageTitle,
        ErrorMessageText
    };
    void                    interceptAction (Akonadi::StandardActionManager::Type type, bool intercept = 1);
    Akonadi::Collection::List  selectedCollections () const;
    Akonadi::Item::List     selectedItems () const;
    void                    setContextText (Akonadi::StandardActionManager::Type type, Akonadi::StandardActionManager::TextContext context, const QString& text);
    void                    setContextText (Akonadi::StandardActionManager::Type type, Akonadi::StandardActionManager::TextContext context, const KLocalizedString& text);
    void                    setMimeTypeFilter (const QStringList& mimeTypes);
    void                    setCapabilityFilter (const QStringList& capabilities);
    void                    setCollectionPropertiesPageNames (const QStringList& names);
    void                    createActionFolderMenu (QMenu* menu, Akonadi::StandardActionManager::Type type);
};
// StandardActionManager

};
// Akonadi


