filemanager/src/fmfiledialog/src/fmfiledialog_p.cpp
branchRCL_3
changeset 39 65326cf895ed
parent 38 491b3ed49290
child 42 f5c50b8af68c
--- a/filemanager/src/fmfiledialog/src/fmfiledialog_p.cpp	Tue Aug 31 15:06:05 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +0,0 @@
-/*
-* 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:
-*     The source file of the file dialog implement
-*
-*/
-
-#include "fmfiledialog_p.h"
-#include "fmfilewidget.h"
-#include "fmcommon.h"
-
-#include "hbfontspec.h"
-#include <hbaction.h>
-#include <hbpushbutton.h>
-#include <hblabel.h>
-#include <hblineedit.h>
-#include <QGraphicsLinearLayout>
-
-#define backButtonIcon  ":image/qtg_indi_status_back.svg"
-
-/*!
-    constructor
-*/
-FmFileDialogPrivate::FmFileDialogPrivate( FmFileDialog *fileDialog ) :
-    mFileDialog( fileDialog ),
-    mHeadingWidget( 0 ),
-    mCurrentPathLabel( 0 ),
-    mUpButton( 0 ),
-    mTitleLabel( 0 ),
-    mContentWidget( 0 ),
-    mContentLayout( 0 ),
-    mFileWidget( 0 ),
-    mOkAction( 0 ),
-    mCancelAction( 0 ),
-    mFileNameTitleLabel( 0 ),
-    mFileNameLineEdit( 0 )
-{
- }
-
-/*!
-    destructor
-*/
-FmFileDialogPrivate::~FmFileDialogPrivate()
-{
-
-}
-
-/*!
-    init
-    \param directory .
-*/
-void FmFileDialogPrivate::init( const FmFileDialogArgs &args )
-{
-    mArgs = args;
-    setProperties();
-    createHeadingWidget();
-    createContentWidget();
-    createBottomWidget();
-
-    if( !mFileDialog->primaryAction() && !mFileDialog->secondaryAction() ) {
-        createAndSetActions(mFileDialog->tr("Ok"),mFileDialog->tr("Cancel"));
-    }
-
-    makeConnections();
-    setRootPath( mArgs.mDirectory );
-    mFileWidget->setModelFilter( mArgs.mDirFilters );
-    mFileWidget->setNameFilters( mArgs.mNameFilters );
-}
-
-/*!
-    createAndSetActions
-
-    \param primaryActionText
-           secondaryActionText
-*/
-void FmFileDialogPrivate::createAndSetActions(const QString & primaryActionText,
-                                                       const QString & secondaryActionText)
-{
-    // Create action for ok button and assign it to the primary action of popup
-    mOkAction = new HbAction( primaryActionText, mFileDialog );
-    mOkAction->setObjectName( "okAction" );
-    Q_ASSERT( mOkAction );
-    mFileDialog->setPrimaryAction( mOkAction );
-
-    // Create action for cancel button and assign it to the secondary action of popup
-    mCancelAction = new HbAction( secondaryActionText, mFileDialog );
-    mCancelAction->setObjectName( "cancelAction" );
-    Q_ASSERT( mCancelAction );
-    mFileDialog->setSecondaryAction( mCancelAction );
-}
-
-/*!
-    setProperties
-    sets the properties of the file dialog like timeout,
-    Dismiss policy,modal etc.
-*/
-void FmFileDialogPrivate::setProperties()
-{
-    // set the file dialog as Modal.
-    mFileDialog->setModal(true);
-
-    // no dismiss for File dialog.
-    mFileDialog->setDismissPolicy( HbPopup::NoDismiss );
-
-    // File dialog will not time out.
-    mFileDialog->setTimeout( HbPopup::NoTimeout );
-}
-
-/*!
-    makeConnections
-*/
-void FmFileDialogPrivate::makeConnections()
-{
-    mFileDialog->connect( mUpButton,SIGNAL( clicked() ),
-        mFileDialog, SLOT( _q_handleUpButton() ) );
-
-    if( mFileNameLineEdit ) {
-        mFileDialog->connect( mFileNameLineEdit, SIGNAL( textChanged( QString ) ),
-            mFileDialog, SLOT( _q_handleTextChanged( QString ) ) );
-    }
-
-    mFileDialog->connect( mFileWidget, SIGNAL( pathChanged( QString ) ),
-        mFileDialog, SLOT( _q_handlePathChanged( QString ) ) );
-
-    mFileDialog->connect( mFileWidget, SIGNAL( fileActivated( QString ) ),
-        mFileDialog, SLOT( _q_handleFileActivated( QString ) ) );
-}
-
-/*!
-    creates the heading wiget elements that include
-    a label for showing the current path and a push button for
-    going to the parent directory.
-*/
-void FmFileDialogPrivate::createHeadingWidget()
-{
-    mHeadingWidget = new HbWidget( mFileDialog );
-    mHeadingWidget->setObjectName( "headingWidget" ); 
-
-    QGraphicsLinearLayout *headingLayout = new QGraphicsLinearLayout;
-    headingLayout->setOrientation(Qt::Horizontal);
-    mHeadingWidget->setLayout(headingLayout);
-    
-
-    QGraphicsLinearLayout *titleLayout = new QGraphicsLinearLayout;
-    titleLayout->setOrientation(Qt::Vertical);    
-
-    mTitleLabel = new HbLabel();
-    mTitleLabel->setObjectName( "titleLabel" );
-    if( mArgs.mTitle.isEmpty() ){
-        mTitleLabel->setPlainText( QString( FmPlaceholderString ) );
-    } else {
-        mTitleLabel->setPlainText( mArgs.mTitle );
-    }
-
-    mCurrentPathLabel = new HbLabel( QString( FmPlaceholderString ) );
-    mCurrentPathLabel->setObjectName( "currentPathLabel" );
-    mCurrentPathLabel->setElideMode(Qt::ElideRight);
-
-    mUpButton  = new HbPushButton;
-    mUpButton->setObjectName( "upButton" );
-    mUpButton->setIcon(HbIcon(backButtonIcon));
-
-    titleLayout->addItem( mTitleLabel );
-    titleLayout->setAlignment( mTitleLabel, Qt::AlignLeft);
-
-    titleLayout->addItem( mCurrentPathLabel );
-    titleLayout->setAlignment( mCurrentPathLabel, Qt::AlignLeft);
-
-    headingLayout->addItem(titleLayout);
-    headingLayout->addItem( mUpButton ) ;
-    headingLayout->setAlignment(mUpButton,Qt::AlignRight);
-
-    mFileDialog->setHeadingWidget( mHeadingWidget );
-}
-
-/*!
-    Creates the content widget. It includes the listview and model.
-
-*/
-
-void FmFileDialogPrivate::createContentWidget()
-{
-    mContentWidget = new HbWidget( mFileDialog );
-    mContentWidget->setObjectName( "contentWidget" );
-
-    mContentLayout = new QGraphicsLinearLayout;
-    mContentLayout->setOrientation(Qt::Vertical);
-    
-    mContentWidget->setLayout( mContentLayout );
-
-    mFileWidget = new FmFileWidget( mContentWidget );
-    mFileWidget->setObjectName( "fileWidget" );
-    mContentLayout->addItem( mFileWidget );
-
-    mFileDialog->setContentWidget( mContentWidget );
-}
-
-/*!
-    Creates the content widget. It includes the listview and model.
-
-*/
-
-void FmFileDialogPrivate::createBottomWidget()
-{
-    if( mArgs.mDialogMode == GetDirMode ) {
-        return;
-    }
-    HbWidget *bottomWidget = new HbWidget( mContentWidget );
-    bottomWidget->setObjectName( "bottomWidget" );
-    mContentLayout->addItem( bottomWidget );
-
-    QGraphicsLinearLayout *bottomLayout = new QGraphicsLinearLayout;
-    bottomLayout->setOrientation( Qt::Horizontal );
-
-    mFileNameTitleLabel = new HbLabel( mFileDialog->tr( "file name:" ), bottomWidget );
-    mFileNameTitleLabel->setObjectName( "fileNameTitleLabel" );
-    bottomLayout->addItem( mFileNameTitleLabel );
-
-    mFileNameLineEdit = new HbLineEdit( bottomWidget );
-    mFileNameLineEdit->setObjectName( "fileNameLineEdit" );
-    bottomLayout->addItem( mFileNameLineEdit );    
-
-    bottomWidget->setLayout( bottomLayout );
-
-}
-
-void FmFileDialogPrivate::checkUpButton()
-{
-    QString currentPath = mFileWidget->currentPath().absoluteFilePath();
-    bool isPreventDirUp = mArgs.mOptions & FmFileDialog::PreventDirUp;
-
-    if( mFileWidget->currentViewType() == FmFileWidget::DirView ) {
-        if( isPreventDirUp &&
-            mArgs.mDirectory.contains( currentPath, Qt::CaseInsensitive ) ) {
-            // disable up when client lock top leve folder
-            mUpButton->setEnabled( false );
-        } else {
-            mUpButton->setEnabled( true );
-        }
-    } else {
-        // disable up button when at drive view
-        mUpButton->setEnabled( false );
-    }
-}
-
-void FmFileDialogPrivate::checkBottomFileWidget()
-{
-    switch( mArgs.mDialogMode )
-    {
-    case GetDirMode:
-        break;
-    case GetFileMode:
-        if( mFileNameLineEdit ){
-            mFileNameLineEdit->setReadOnly( true );
-        }
-        break;
-    case SaveFileMode:
-        if( mFileNameLineEdit ){
-            if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ) {
-                mFileNameLineEdit->setReadOnly( true );
-            } else {
-                mFileNameLineEdit->setReadOnly( false );
-            }
-        }
-        break;
-    }
-}
-
-void FmFileDialogPrivate::checkActions()
-{
-    switch( mArgs.mDialogMode )
-    {
-    case GetDirMode:
-        if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ) {
-            mOkAction->setDisabled( true );
-        } else {
-            mOkAction->setDisabled( false );
-        }
-        break;
-    case GetFileMode:
-    case SaveFileMode:
-        if( mFileWidget->currentPath().absoluteFilePath().isEmpty() ||
-            ( mFileNameLineEdit && mFileNameLineEdit->text().isEmpty() ) ) {
-            mOkAction->setDisabled( true );
-        } else {
-            mOkAction->setDisabled( false );
-        }
-        break;
-    default:
-        Q_ASSERT( false );
-    }
-}
-
-void FmFileDialogPrivate::_q_handleUpButton()
-{
-    bool isPreventDirUp = mArgs.mOptions & FmFileDialog::PreventDirUp;
-    QString currentPath = mFileWidget->currentPath().absoluteFilePath();
-    if( isPreventDirUp &&
-        mArgs.mDirectory.contains( currentPath, Qt::CaseInsensitive ) ) {
-        return;
-    } else {
-        mFileWidget->cdUp();
-    }
-}
-
-void FmFileDialogPrivate::_q_handleTextChanged(const QString &text)
-{
-    Q_UNUSED( text );
-    checkActions();
-}
-
-void FmFileDialogPrivate::_q_handlePathChanged( const QString &path )
-{
-    if( path.isEmpty() ) {
-        mCurrentPathLabel->setPlainText( QString( FmPlaceholderString ) );
-    } else {
-        mCurrentPathLabel->setPlainText( path );
-    }
-    
-    if( mFileNameLineEdit && mArgs.mDialogMode == GetFileMode ) {
-        mFileNameLineEdit->setText( QString() );
-    }
-
-    checkUpButton();
-    checkBottomFileWidget();
-    checkActions();
-}
-
-void FmFileDialogPrivate::_q_handleFileActivated( const QString &path )
-{
-    if( mFileNameLineEdit ) {
-        mFileNameLineEdit->setText( path );
-    }
-    checkActions();
-}
-
-QString FmFileDialogPrivate::currentPath() const
-{
-    return mFileWidget->currentPath().absoluteFilePath();
-}
-
-QString FmFileDialogPrivate::selectedFile() const
-{
-    return mFileNameLineEdit->text();
-}
-
-void FmFileDialogPrivate::setRootPath( const QString &pathName )
-{
-    mFileWidget->setRootPath( pathName );
-}
-
-bool FmFileDialogPrivate::isOkAction( HbAction *action )
-{
-    if( mOkAction == action ) {
-        return true;
-    }
-
-    return false;
-}
-
-void FmFileDialogPrivate::setRetAction( HbAction *action )
-{
-    mRetAction = action;
-}
-
-HbAction *FmFileDialogPrivate::retAction()
-{
-    return mRetAction;
-}
-
-QEventLoop &FmFileDialogPrivate::eventLoop()
-{
-    return mEventLoop;
-}
-    
-#include "moc_fmfiledialog.cpp"