filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp
branchRCL_3
changeset 20 491b3ed49290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/backuprestore/fmrestorewidget.cpp	Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,160 @@
+/*
+ * 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 header file of the restore widget of file manager
+ */
+#include "fmrestorewidget.h"
+#include "fmrestoresettings.h"
+#include "fmbackupsettings.h"
+#include "fmrestoreviewitem.h"
+#include "fmoperationservice.h"
+#include "fmviewmanager.h"
+
+#include "fmbackupconfigloader.h"
+#include "fmbkupengine.h"
+#include "fmbackuprestorehandler.h"
+
+#include <QGraphicsLinearLayout>
+#include <QStringListModel>
+#include <QDateTime>
+
+#include <hblistview.h>
+
+
+
+FmRestoreWigdet::FmRestoreWigdet(  QGraphicsItem *parent )
+: HbWidget( parent )
+{
+    init();
+}
+
+FmRestoreWigdet::~FmRestoreWigdet()
+{
+}
+
+QList<int> FmRestoreWigdet::selectionIndexes()
+{
+    QList<int> selectionList;
+
+    for ( int i=0; i<mModel->rowCount(); i++ ) {
+        FmRestoreViewItem *item = static_cast<FmRestoreViewItem*>( 
+            mListView->itemByIndex( mModel->index( i ) ) );
+        if( item && item->getCheckBoxState() ) {
+            selectionList.push_back( i );
+        }
+    }
+
+    return selectionList;
+}
+
+void FmRestoreWigdet::init()
+{
+    QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout( this );
+    vLayout->setOrientation( Qt::Vertical );
+
+    mListView = new HbListView( this );
+    connect( mListView, SIGNAL( activated( const QModelIndex & ) ),
+             this, SLOT( on_list_activated( const QModelIndex & ) ) );
+
+    mListView->setSelectionMode( HbAbstractItemView::MultiSelection );
+
+    vLayout->addItem( mListView );
+
+    mModel = new QStringListModel();
+    mListView->setModel( mModel );    
+    mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL();
+    mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader();
+    
+    // load backup settings to refresh default target drive
+    FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->BackupSettingsL()->load();
+    mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() );
+
+    int index = 0;
+
+    QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList();
+    mModel->insertRows( 0, retoreEntryList.count() );
+
+    for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin(); 
+         it != retoreEntryList.end(); ++it ){
+             QString string = ( *it )->text();
+             QDateTime datetime = ( *it )->restoreInfo().dateTime();
+             string.append( '\t' );
+             string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") );
+             QString drive = ( *it )->restoreInfo().drive();             
+             string.append( '\t' );
+             string.append( drive );
+             QVariant variant( string );
+
+             mModel->setData( mModel->index( index ), variant, Qt::DisplayRole );
+
+             ++index;
+    }
+
+    mListView->setItemPrototype( new FmRestoreViewItem(this) );
+}
+
+void FmRestoreWigdet::on_list_activated( const QModelIndex &index )
+{
+    FmRestoreViewItem *restoreViewItem = static_cast< FmRestoreViewItem* >
+                                         ( mListView->itemByIndex( index ) );
+
+    restoreViewItem->setCheckBoxState();    
+}
+
+int FmRestoreWigdet::backupDataCount()
+{
+    return mModel->rowCount();
+}
+
+void FmRestoreWigdet::refresh()
+{
+    mListView->setModel( 0 );
+    if( !mModel ) {
+            mModel = new QStringListModel();
+        }
+    mModel->removeRows( 0, mModel->rowCount() );
+
+    mRestoreSettings = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->bkupEngine()->RestoreSettingsL();
+    mBackupConfigLoader = FmViewManager::viewManager()->operationService()->backupRestoreHandler()->backupConfigLoader();
+    mRestoreSettings->load( mBackupConfigLoader->driversAndOperationList() );
+
+    int index = 0;
+    QList< FmRestoreEntry* > retoreEntryList = mRestoreSettings->restoreEntryList();
+    mModel->insertRows( 0, retoreEntryList.count() );
+    for ( QList< FmRestoreEntry* >::iterator it = retoreEntryList.begin(); 
+        it != retoreEntryList.end(); ++it ){
+            QString string = ( *it )->text();
+            QDateTime datetime = ( *it )->restoreInfo().dateTime();
+            QString drive = ( *it )->restoreInfo().drive();
+            string.append( '\t' );
+            string.append( datetime.toString( "hh:mm ap dd/MM/yyyy") );
+            string.append( '\t' );
+            string.append( drive );
+            QVariant variant( string );             
+            mModel->setData( mModel->index( index ), variant, Qt::DisplayRole );
+            ++index;
+        }   
+    mListView->setModel( mModel );   
+    mListView->setItemPrototype( new FmRestoreViewItem( this ) );
+      
+    for (int i = 0; i < mModel->rowCount(); ++i) {
+        QModelIndex index = mModel->index(i);
+        FmRestoreViewItem* restoreViewItem = static_cast< FmRestoreViewItem* >
+                                                 (mListView->itemByIndex(index));
+        connect(restoreViewItem, SIGNAL(stateChanged(int)), this, SIGNAL(stateChanged(int)));               
+    }
+    emit stateChanged(0);
+    
+}