filemanager/src/filemanager/src/fmdriverlistwidget.cpp
author hgs
Wed, 29 Sep 2010 10:37:03 +0800
changeset 46 d58987eac7e8
parent 37 15bc28c9dd51
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 * 
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *     Yong Zhang <yong.5.zhang@nokia.com>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * 
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 * Description:
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 *     The driver model file for file manager
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
 */
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "fmdriverlistwidget.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include "fmutils.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include "fmdlgutils.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "fmviewmanager.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "fmviewdetailsdialog.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "fmoperationbase.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "fmdrivemodel.h"
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "fmfiledialog.h"
37
hgs
parents: 16
diff changeset
    26
#include "fmoperationservice.h"
hgs
parents: 16
diff changeset
    27
#include <hbabstractviewitem.h>
hgs
parents: 16
diff changeset
    28
#include <QDir>
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <QGraphicsLinearLayout>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <QFileSystemWatcher>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <hblistview.h>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <hbmenu.h>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <hbaction.h>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <hbsearchpanel.h>
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
FmDriverListWidget::FmDriverListWidget( QGraphicsItem *parent )
37
hgs
parents: 16
diff changeset
    38
: HbWidget( parent ), mListView(0), mModel(0),
hgs
parents: 16
diff changeset
    39
  mCurrentItem(0), mSearchPanel(0),
hgs
parents: 16
diff changeset
    40
  mFileSystemWatcher(0), mLayout(0), mContextMenu(0), mListLongPressed( false )
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
{
37
hgs
parents: 16
diff changeset
    42
	init();	
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    mFileSystemWatcher = new QFileSystemWatcher( this );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    connect( mFileSystemWatcher, SIGNAL( directoryChanged ( const QString & ) ), 
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
            this, SLOT( on_directoryChanged( const QString & ) ) ); 
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    QMetaObject::connectSlotsByName( this );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
FmDriverListWidget::~FmDriverListWidget()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
{
37
hgs
parents: 16
diff changeset
    52
	if (mContextMenu) {
hgs
parents: 16
diff changeset
    53
        mContextMenu->deleteLater();
hgs
parents: 16
diff changeset
    54
	}
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
void FmDriverListWidget::on_list_activated( const QModelIndex &index )
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
{
37
hgs
parents: 16
diff changeset
    59
    FM_LOG("FmDriverListWidget::on_list_activated");
hgs
parents: 16
diff changeset
    60
    if( mListLongPressed ) {
hgs
parents: 16
diff changeset
    61
        FM_LOG("FmDriverListWidget::on_list_activated return because long pressed");
hgs
parents: 16
diff changeset
    62
        return;
hgs
parents: 16
diff changeset
    63
    }
hgs
parents: 16
diff changeset
    64
    FM_LOG("FmDriverListWidget::on_list_activated emit activate to open drive");
hgs
parents: 16
diff changeset
    65
    emit activated( mModel->driveName( index ) );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
void FmDriverListWidget::init()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
{
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
	mLayout = new QGraphicsLinearLayout( this );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
	mLayout->setOrientation( Qt::Vertical );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
37
hgs
parents: 16
diff changeset
    73
	mListView = new HbListView( this );	
hgs
parents: 16
diff changeset
    74
	mListView->setLayoutName( "drive" );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
	mModel = new FmDriveModel( this,
37
hgs
parents: 16
diff changeset
    76
         FmDriveModel::FillWithVolume | FmDriveModel::FillWithDefaultVolume |
hgs
parents: 16
diff changeset
    77
         FmDriveModel::FillWithTotalSize | FmDriveModel::FillWithFreeSize );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
	mListView->setModel( mModel );
37
hgs
parents: 16
diff changeset
    79
	mLayout->addItem( mListView );	
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
	mSearchPanel = new HbSearchPanel( this );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
	mSearchPanel->setObjectName( "searchPanel" );
46
hgs
parents: 37
diff changeset
    82
	mSearchPanel->setSearchOptionsEnabled( false );
hgs
parents: 37
diff changeset
    83
	mSearchPanel->setProgressive( true );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
	mSearchPanel->hide();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
	connect( mListView, SIGNAL( activated( const QModelIndex & ) ),
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
		     this, SLOT( on_list_activated( const QModelIndex & ) ) );
37
hgs
parents: 16
diff changeset
    87
	connect( mListView, SIGNAL( pressed( const QModelIndex & ) ),
hgs
parents: 16
diff changeset
    88
	             this, SLOT( on_list_pressed( const QModelIndex & ) ) );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
    connect( mListView, SIGNAL( longPressed( HbAbstractViewItem *, const QPointF & ) ),
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
        this, SLOT( on_list_longPressed( HbAbstractViewItem *, const QPointF & ) ) );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
    
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    connect( mSearchPanel, SIGNAL( criteriaChanged( const QString & ) ),
46
hgs
parents: 37
diff changeset
    94
        this, SLOT( on_searchPanel_criteriaChanged( const QString & ) ), Qt::QueuedConnection );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
       
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    connect( mSearchPanel, SIGNAL( exitClicked() ),
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
        this, SLOT( on_searchPanel_exitClicked() ) );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    setLayout( mLayout );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
37
hgs
parents: 16
diff changeset
   102
void FmDriverListWidget::refreshDrive()
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
{
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
    mModel->refresh();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
void FmDriverListWidget::on_list_longPressed( HbAbstractViewItem *item, const QPointF &coords )
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
{   
37
hgs
parents: 16
diff changeset
   109
    FM_LOG("FmDriverListWidget::on_list_longPressed");
hgs
parents: 16
diff changeset
   110
    mListLongPressed = true;
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
    mCurrentItem = item;
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   112
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
37
hgs
parents: 16
diff changeset
   113
hgs
parents: 16
diff changeset
   114
	if( !mContextMenu ) {
hgs
parents: 16
diff changeset
   115
		mContextMenu = new HbMenu();
hgs
parents: 16
diff changeset
   116
	} else {
hgs
parents: 16
diff changeset
   117
		mContextMenu->clearActions();
hgs
parents: 16
diff changeset
   118
	}
hgs
parents: 16
diff changeset
   119
	FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName );
hgs
parents: 16
diff changeset
   120
	FmDriverInfo::DriveType driveType = driverInfo.driveType();
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   121
    FmDriverInfo::DriveState state = driverInfo.driveState();
37
hgs
parents: 16
diff changeset
   122
    if( !( state & FmDriverInfo::EDriveNotPresent ) ) {
hgs
parents: 16
diff changeset
   123
        if( state & FmDriverInfo::EDriveAvailable ) {
hgs
parents: 16
diff changeset
   124
            HbAction *viewAction = new HbAction();
hgs
parents: 16
diff changeset
   125
            viewAction->setObjectName( "viewAction" );
hgs
parents: 16
diff changeset
   126
            viewAction->setText( hbTrId( "txt_fmgr_menu_view_details_memory" ) );
hgs
parents: 16
diff changeset
   127
            mContextMenu->addAction( viewAction );
hgs
parents: 16
diff changeset
   128
            connect( viewAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   129
                this, SLOT( on_viewAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   130
            
hgs
parents: 16
diff changeset
   131
            if( driveType == FmDriverInfo::EDriveTypeMemoryCard || driveType == FmDriverInfo::EDriveTypeUsbMemory ) {
hgs
parents: 16
diff changeset
   132
                // MMC or Usb memory
hgs
parents: 16
diff changeset
   133
            
hgs
parents: 16
diff changeset
   134
                // Name/Rename action
hgs
parents: 16
diff changeset
   135
                if ( driverInfo.volumeName().length() ){
hgs
parents: 16
diff changeset
   136
                    HbAction *renameAction = new HbAction();
hgs
parents: 16
diff changeset
   137
                    renameAction->setObjectName( "renameAction" );
hgs
parents: 16
diff changeset
   138
                    renameAction->setText( hbTrId( "txt_fmgr_menu_rename" ) );
hgs
parents: 16
diff changeset
   139
                    mContextMenu->addAction( renameAction );
hgs
parents: 16
diff changeset
   140
        
hgs
parents: 16
diff changeset
   141
                    connect( renameAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   142
                     this, SLOT( on_renameAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   143
                } else {
hgs
parents: 16
diff changeset
   144
                    HbAction *nameAction = new HbAction();
hgs
parents: 16
diff changeset
   145
                    nameAction->setObjectName( "nameAction" );
hgs
parents: 16
diff changeset
   146
                    nameAction->setText( hbTrId( "txt_fmgr_menu_name" ) );
hgs
parents: 16
diff changeset
   147
                    mContextMenu->addAction( nameAction );
hgs
parents: 16
diff changeset
   148
        
hgs
parents: 16
diff changeset
   149
                    connect( nameAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   150
                     this, SLOT( on_nameAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   151
                }
hgs
parents: 16
diff changeset
   152
                
hgs
parents: 16
diff changeset
   153
                // Set/Change/Remove password action
hgs
parents: 16
diff changeset
   154
                if( driveType == FmDriverInfo::EDriveTypeMemoryCard ) { // MMC
hgs
parents: 16
diff changeset
   155
                    if( state & FmDriverInfo::EDrivePasswordProtected ){
hgs
parents: 16
diff changeset
   156
                        HbAction *changePwdAction = new HbAction();
hgs
parents: 16
diff changeset
   157
                        changePwdAction->setObjectName( "changePwdAction" );
hgs
parents: 16
diff changeset
   158
                        changePwdAction->setText( hbTrId( "txt_fmgr_menu_change_password" ) );
hgs
parents: 16
diff changeset
   159
                        mContextMenu->addAction( changePwdAction );
hgs
parents: 16
diff changeset
   160
            
hgs
parents: 16
diff changeset
   161
                        HbAction *removePwdAction = new HbAction();
hgs
parents: 16
diff changeset
   162
                        removePwdAction->setObjectName( "removePwdAction" );
hgs
parents: 16
diff changeset
   163
                        removePwdAction->setText( hbTrId( "txt_fmgr_menu_remove_password" ) );
hgs
parents: 16
diff changeset
   164
                        mContextMenu->addAction( removePwdAction );
hgs
parents: 16
diff changeset
   165
            
hgs
parents: 16
diff changeset
   166
                        connect( changePwdAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   167
                         this, SLOT( on_changePwdAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   168
                        connect( removePwdAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   169
                         this, SLOT( on_removePwdAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   170
                    }
hgs
parents: 16
diff changeset
   171
                    else{
hgs
parents: 16
diff changeset
   172
                        HbAction *setPwdAction = new HbAction();
hgs
parents: 16
diff changeset
   173
                        setPwdAction->setObjectName( "setPwdAction" );
hgs
parents: 16
diff changeset
   174
                        setPwdAction->setText( hbTrId( "txt_fmgr_menu_set_password" ) );
hgs
parents: 16
diff changeset
   175
                        mContextMenu->addAction( setPwdAction );
hgs
parents: 16
diff changeset
   176
            
hgs
parents: 16
diff changeset
   177
                        connect( setPwdAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   178
                         this, SLOT( on_setPwdAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   179
                    }
hgs
parents: 16
diff changeset
   180
                }
hgs
parents: 16
diff changeset
   181
            } //if( driveType == FmDriverInfo::EDriveTypeMemoryCard || driveType == FmDriverInfo::EDriveTypeUsbMemory )
hgs
parents: 16
diff changeset
   182
        } //if( state & FmDriverInfo::EDriveAvailable )
hgs
parents: 16
diff changeset
   183
        
hgs
parents: 16
diff changeset
   184
        // Eject action
hgs
parents: 16
diff changeset
   185
        // put outside of EDriveAvailable so that removable drive which is corrupted or locked can be removed
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
        if( state & FmDriverInfo::EDriveEjectable ){
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
            HbAction *ejectAction = new HbAction();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
            ejectAction->setObjectName( "ejectAction" );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   189
            ejectAction->setText( hbTrId( "txt_fmgr_menu_eject" ) );
37
hgs
parents: 16
diff changeset
   190
            mContextMenu->addAction( ejectAction );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
            
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
            connect( ejectAction, SIGNAL( triggered() ),
37
hgs
parents: 16
diff changeset
   193
            this, SLOT( on_ejectAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   194
        } 
hgs
parents: 16
diff changeset
   195
        
hgs
parents: 16
diff changeset
   196
        // Format action
hgs
parents: 16
diff changeset
   197
        if ( ( state & FmDriverInfo::EDriveRemovable ) || ( state & FmDriverInfo::EDriveCorrupted )
hgs
parents: 16
diff changeset
   198
             || ( state & FmDriverInfo::EDriveLocked ) ){
hgs
parents: 16
diff changeset
   199
                HbAction *formatAction = new HbAction();
hgs
parents: 16
diff changeset
   200
                formatAction->setObjectName( "formatAction" );
hgs
parents: 16
diff changeset
   201
                formatAction->setText( hbTrId( "txt_fmgr_menu_format" ) );
hgs
parents: 16
diff changeset
   202
                mContextMenu->addAction( formatAction );
hgs
parents: 16
diff changeset
   203
    
hgs
parents: 16
diff changeset
   204
                connect( formatAction, SIGNAL( triggered() ),
hgs
parents: 16
diff changeset
   205
                    this, SLOT( on_formatAction_triggered() ), Qt::QueuedConnection );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
        }
37
hgs
parents: 16
diff changeset
   207
    } //if( !( state & FmDriverInfo::EDriveNotPresent ) )
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    
37
hgs
parents: 16
diff changeset
   209
    // Unlock action
hgs
parents: 16
diff changeset
   210
    // put ouside of !EDriveNotPresent judgment so that
hgs
parents: 16
diff changeset
   211
    // user could unlock drive if connected to PC with mass storage mode
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
    if( state & FmDriverInfo::EDriveLocked ){
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
        HbAction *unLockedAction = new HbAction();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
        unLockedAction->setObjectName( "unLockedAction" );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   215
        unLockedAction->setText( hbTrId( "Unlock" ) );
37
hgs
parents: 16
diff changeset
   216
        mContextMenu->addAction( unLockedAction );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
        connect( unLockedAction, SIGNAL( triggered() ),
37
hgs
parents: 16
diff changeset
   219
         this, SLOT( on_unLockedAction_triggered() ), Qt::QueuedConnection );
hgs
parents: 16
diff changeset
   220
    }
hgs
parents: 16
diff changeset
   221
    
hgs
parents: 16
diff changeset
   222
    // Pop up menu or open drive
hgs
parents: 16
diff changeset
   223
	if( mContextMenu->actions().count() > 0 ) {
hgs
parents: 16
diff changeset
   224
		mContextMenu->setPreferredPos( coords );
hgs
parents: 16
diff changeset
   225
		mContextMenu->open();
hgs
parents: 16
diff changeset
   226
	} else {
hgs
parents: 16
diff changeset
   227
		emit activated( diskName );
hgs
parents: 16
diff changeset
   228
	}
hgs
parents: 16
diff changeset
   229
}
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
37
hgs
parents: 16
diff changeset
   231
void FmDriverListWidget::on_list_pressed( const QModelIndex &  index )
hgs
parents: 16
diff changeset
   232
{
hgs
parents: 16
diff changeset
   233
    Q_UNUSED( index );
hgs
parents: 16
diff changeset
   234
    mListLongPressed = false;
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
void FmDriverListWidget::on_viewAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
{
37
hgs
parents: 16
diff changeset
   239
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );    
hgs
parents: 16
diff changeset
   240
    FmViewManager::viewManager()->operationService()->asyncViewDriveDetails( diskName );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
void FmDriverListWidget::on_renameAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
{    
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   245
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   246
    
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   247
    FmDriverInfo::DriveState state = FmUtils::queryDriverInfo( diskName ).driveState();
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
    FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
    if ( state & FmDriverInfo::EDriveWriteProtected ){
46
hgs
parents: 37
diff changeset
   251
        FmDlgUtils::warning( hbTrId( "Unable to perform operation. Memory card is read only." ) );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
        return;
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
        }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
37
hgs
parents: 16
diff changeset
   255
    QString title( hbTrId( "Drive name ") );
hgs
parents: 16
diff changeset
   256
    //save the volume status, empty or set
hgs
parents: 16
diff changeset
   257
    bool needToSetVolume = false;
hgs
parents: 16
diff changeset
   258
    QString volumeName = FmUtils::getVolumeNameWithDefaultNameIfNull( diskName, needToSetVolume );    
hgs
parents: 16
diff changeset
   259
    QString oldVolumeName( volumeName );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   260
    QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
37
hgs
parents: 16
diff changeset
   261
    //use isReturnFalseWhenNoTextChanged = false in order that FmUtils::renameDrive( driveName, volumeName ) will
hgs
parents: 16
diff changeset
   262
    //be excuted at lease once to set the volume name.
hgs
parents: 16
diff changeset
   263
    while( FmDlgUtils::showTextQuery( title, volumeName, QStringList(), FmMaxLengthofDriveName, associatedDrives, false ) ){
hgs
parents: 16
diff changeset
   264
        //if volume is not set or oldVolumeName != volumeName , FmUtils::renameDrive will be called
hgs
parents: 16
diff changeset
   265
        if ( oldVolumeName == volumeName && !needToSetVolume ) {
hgs
parents: 16
diff changeset
   266
            break;
hgs
parents: 16
diff changeset
   267
        }
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   268
        int err = FmUtils::renameDrive( diskName, volumeName );
37
hgs
parents: 16
diff changeset
   269
        if ( err == FmErrNone ) {
46
hgs
parents: 37
diff changeset
   270
            FmDlgUtils::information( hbTrId( "The name has been changed!" ), HbMessageBox::Ok, true );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   271
            mModel->refresh();
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   272
            break;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   273
        } else if( err == FmErrBadName ) {
46
hgs
parents: 37
diff changeset
   274
            FmDlgUtils::warning( hbTrId( "Illegal characters! Use only letters and numbers." ), HbMessageBox::Ok, true );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   275
        } else{
46
hgs
parents: 37
diff changeset
   276
            FmDlgUtils::warning( hbTrId( "Error occurred, operation cancelled!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   277
            break;
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
        }                
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
    }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
void FmDriverListWidget::on_nameAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
{
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
    on_renameAction_triggered();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   287
void FmDriverListWidget::on_setPwdAction_triggered()
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
{
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   289
    QString firstLabel( hbTrId( "New Password: ") );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   290
    QString secondLabel( hbTrId( "Confirm new Password: ") );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
    QString oldPwd;
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
    QString newPwd;
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   295
    FmUtils::emptyPwd( oldPwd );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   296
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   297
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   298
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   299
    QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
37
hgs
parents: 16
diff changeset
   300
    if( FmDlgUtils::showMultiPasswordQuery( firstLabel, secondLabel, newPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) {
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   301
       if ( FmUtils::setDrivePwd( diskName, oldPwd, newPwd ) == 0 ){
46
hgs
parents: 37
diff changeset
   302
            FmDlgUtils::information( hbTrId( "The password has been set!" ), HbMessageBox::Ok, true );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   303
        }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   304
        else{
46
hgs
parents: 37
diff changeset
   305
            FmDlgUtils::warning( hbTrId( "Error occurred, operation cancelled!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   306
        }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   307
    }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   308
}
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   309
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   310
void FmDriverListWidget::on_changePwdAction_triggered()
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   311
{
37
hgs
parents: 16
diff changeset
   312
    QString title( hbTrId( "txt_common_dialog_password")  );
hgs
parents: 16
diff changeset
   313
    QString firstLabel( hbTrId( "txt_common_dialog_new_password") );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   314
    QString secondLabel( hbTrId( "Confirm new Password: ") );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   316
    QString oldPwd;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   317
    QString newPwd;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   318
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   319
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   320
    
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   321
    QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
37
hgs
parents: 16
diff changeset
   322
    while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) {
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   323
       if ( FmUtils::checkDrivePwd( diskName, oldPwd ) == 0 ){
37
hgs
parents: 16
diff changeset
   324
            if( FmDlgUtils::showMultiPasswordQuery( firstLabel, secondLabel, newPwd, FmMaxLengthofDrivePassword, associatedDrives ) ){
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   325
                if ( FmUtils::setDrivePwd( diskName, oldPwd, newPwd ) == 0 ){
37
hgs
parents: 16
diff changeset
   326
                    FmDlgUtils::information( hbTrId( "The password has been changed!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   327
                } else {
46
hgs
parents: 37
diff changeset
   328
                    FmDlgUtils::warning( hbTrId( "Error occurred, operation cancelled!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   329
                }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   330
                break;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   331
            } else {  
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   332
                //cancel muti password query
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   333
                break;
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
            }
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   335
       } else {
37
hgs
parents: 16
diff changeset
   336
            FmDlgUtils::information( hbTrId( "The password is incorrect, try again!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   337
       }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   338
         
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
    }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
void FmDriverListWidget::on_removePwdAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
{
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   344
    QString title( hbTrId( "Password: ")  );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
    QString oldPwd;
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   348
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
37
hgs
parents: 16
diff changeset
   349
    if( FmDlgUtils::question( hbTrId( "Do you want to remove the password? Memory card becomes unlocked." ) ) ){
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   350
        QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
37
hgs
parents: 16
diff changeset
   351
        while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword, associatedDrives ) ) {
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   352
            if ( FmUtils::checkDrivePwd( diskName, oldPwd ) == 0 ) {
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   353
                if ( FmUtils::removeDrivePwd( diskName, oldPwd ) == 0 ){
37
hgs
parents: 16
diff changeset
   354
                    FmDlgUtils::information( hbTrId( "The password has been removed!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   355
                }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   356
                else{
46
hgs
parents: 37
diff changeset
   357
                    FmDlgUtils::warning( hbTrId( "Error occurred, operation cancelled!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   358
                }
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   359
                break;
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
            }
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   361
            else {
46
hgs
parents: 37
diff changeset
   362
                FmDlgUtils::warning( hbTrId( "The password is incorrect, try again!" ), HbMessageBox::Ok, true );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
            }
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   364
            
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
        }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
    }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
void FmDriverListWidget::on_unLockedAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
{
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   371
    QString title( hbTrId( "Password: ")  );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
    QString oldPwd;
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   375
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
    
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   377
    //Do not add associatedDrives as Locked MMC is not available Drive but only present Drive
37
hgs
parents: 16
diff changeset
   378
    while( FmDlgUtils::showSinglePasswordQuery( title, oldPwd, FmMaxLengthofDrivePassword ) ) {
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   379
        int err = FmUtils::unlockDrive( diskName, oldPwd );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   380
        if( err == FmErrNone ) {
46
hgs
parents: 37
diff changeset
   381
            FmDlgUtils::warning( hbTrId( "The memory is unlocked!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   382
            break;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   383
        } else if ( err == FmErrAccessDenied ) {
46
hgs
parents: 37
diff changeset
   384
            FmDlgUtils::warning( hbTrId( "The password is incorrect, try again!" ), HbMessageBox::Ok, true );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   385
        } else if (err == FmErrAlreadyExists ) {
37
hgs
parents: 16
diff changeset
   386
            FmDlgUtils::information( hbTrId( "The disk has already been unlocked!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   387
            break;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   388
        } else if( err == FmErrNotSupported ) {
46
hgs
parents: 37
diff changeset
   389
            FmDlgUtils::warning( hbTrId( "The media does not support password locking!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   390
            break;
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   391
        } else {
46
hgs
parents: 37
diff changeset
   392
            FmDlgUtils::warning( hbTrId( "Error occurred, operation cancelled!" ) );
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   393
            break;
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
        }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
    }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
void FmDriverListWidget::on_formatAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
{
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   400
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   401
    
37
hgs
parents: 16
diff changeset
   402
    if( FmDlgUtils::question( hbTrId( "Format? Data will be deleted during formatting." ) ) ){
hgs
parents: 16
diff changeset
   403
        if( FmErrNone != FmViewManager::viewManager()->operationService()->asyncFormat( diskName ) )
hgs
parents: 16
diff changeset
   404
            FmDlgUtils::information( hbTrId( "Formatting failed." ) );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
        }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
void FmDriverListWidget::on_ejectAction_triggered()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
{
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   410
    QString diskName = mModel->driveName( mCurrentItem->modelIndex() );
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   411
    
37
hgs
parents: 16
diff changeset
   412
    if( FmDlgUtils::question( hbTrId( "Eject memory card? Some applications will be closed." ) ) ){
16
ada7962b4308 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 14
diff changeset
   413
        FmUtils::ejectDrive( diskName );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
    }
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
void FmDriverListWidget::on_directoryChanged( const QString &path )
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
{
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
    Q_UNUSED( path );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
    mModel->refresh();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
void FmDriverListWidget::activeSearchPanel()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
{
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
    mLayout->addItem( mSearchPanel );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
    mSearchPanel->show();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
void FmDriverListWidget::on_searchPanel_criteriaChanged( const QString &criteria )
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
{
46
hgs
parents: 37
diff changeset
   431
    emit startSearch( criteria );
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
    mSearchPanel->hide();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
    mLayout->removeItem( mSearchPanel );
46
hgs
parents: 37
diff changeset
   434
hgs
parents: 37
diff changeset
   435
    // clear keywords in searchpanel without signal criteriaChanged triggered again
hgs
parents: 37
diff changeset
   436
    mSearchPanel->setProgressive( false );
hgs
parents: 37
diff changeset
   437
    mSearchPanel->setCriteria( QString() );
hgs
parents: 37
diff changeset
   438
    mSearchPanel->setProgressive( true );
hgs
parents: 37
diff changeset
   439
    
14
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
}
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
void FmDriverListWidget::on_searchPanel_exitClicked()
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
{
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
    mSearchPanel->hide();
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
    mLayout->removeItem( mSearchPanel );
1957042d8c7e Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
}