ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 14:58:46 +0300
changeset 24 99ad1390cd33
parent 23 74c9f037fd5d
child 26 c499df2dbb33
permissions -rw-r--r--
Revision: 201011 Kit: 201015

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/

#ifndef GLXCOMMANDHANDLERNEWMEDIA_H
#define GLXCOMMANDHANDLERNEWMEDIA_H

#include <glxmpxcommandhandler.h>
#include <glxmediaid.h>

#ifdef BUILD_COMMONCOMMANDHANDLERS
#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT
#else
#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT
#endif

class HbInputDialog;

class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerNewMedia : public GlxMpxCommandHandler
	{
	Q_OBJECT    
public:
    GlxCommandHandlerNewMedia();
    ~GlxCommandHandlerNewMedia();

    TInt ExecuteLD(TGlxMediaId& aNewMediaId);

private:
    QString CompletionTextL() const;
    QString ProgressTextL() const; 

protected: // From MGlxMediaListObserver    
    /// See @ref MGlxMediaListObserver::HandleItemAddedL
    void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList);
    void HandleError(TInt aError);
    void HandleErrorL(TInt aErrorCode);
protected: // from GlxMpxCommandHandler

    CMPXCommand* CreateCommandL(TInt aCommandId, MGlxMediaList& aMediaList, TBool& aConsume) const ;

	void DoHandleCommandCompleteL(TAny* aSessionId, CMPXCommand* aCommandResult, 
            TInt aError, MGlxMediaList* aList);

private:
    QString GenerateNewMediaItemTitleL(QString newMediaTilte,MGlxMediaList& aMediaList) const;
public:
    /**
     *  Id of new media
     */
    TGlxMediaId iNewMediaId;
    
    /**
     *  Active scheduler wait object. (Owned)
     */
    CActiveSchedulerWait* iSchedulerWait;
    
    /**
     * Error set by DoHandleCommandCompleteL()
     */
    mutable TInt iNewMediaCreationError;
    
    mutable HBufC* iNewMediaItemTitle;
private:
    bool mShowConfirmation;

	};

class GlxTextInputDialog : public QObject
{
	Q_OBJECT    
public:
    GlxTextInputDialog();
    ~GlxTextInputDialog();
    QString getText(const QString &label,const QString &text = QString(),bool *ok = 0);

public slots:
    void textChanged(const QString &text);

private:
    HbInputDialog* mDialog;
};
    
    
#endif // GLXCOMMANDHANDLERNEWMEDIA_H