diff -r 21239b3bcd78 -r 9711e452b5e9 notepad/notepad1/LibSrc/NpdListDialog.cpp --- a/notepad/notepad1/LibSrc/NpdListDialog.cpp Wed Apr 14 15:55:57 2010 +0300 +++ b/notepad/notepad1/LibSrc/NpdListDialog.cpp Tue Apr 27 16:36:22 2010 +0300 @@ -176,22 +176,19 @@ { iFlags &= ~ENotepadItemAdded; } - if ( aEagerSync ) + if ( aEagerSync && iClockValueChange ) { - if(iClockValueChange) - { - iModel->SetItemArrayFlags(); - iClockValueChange = EFalse; - } - iModel->SyncL(EFalse); - RestoreCurrentAndSelectionsL(); - DrawNow(); + iModel->SetItemArrayFlags(); + iClockValueChange = EFalse; } if (aStatOfSave == CNotepadModel::ENotepadModelRowDeleted) { iListBox->HandleItemRemovalL(); DrawNow(); } + iModel->SyncL(EFalse); + RestoreCurrentAndSelectionsL(); + DrawNow(); // MSK MiddleSoftKeyL(); } @@ -875,10 +872,10 @@ } iModel->SyncL(EFalse); CNotepadDialogBase::DynInitMenuPaneL( aResourceId, aMenuPane ); - const TInt memoCount( iModel->MdcaCount() ); - const TInt markCount( iListBox->SelectionIndexes()->Count() ); - TInt index; - switch ( aResourceId ) + const TInt memoCount( iModel->MdcaCount() - 1 ); + const TInt markCount(iListBox->SelectionIndexes()->Count()); + TInt index; + switch (aResourceId ) { case R_SENDUI_MENU: index = 2; @@ -965,13 +962,27 @@ // this must after InsertSendMenuItemAfterL aMenuPane->DeleteMenuItem(ENotepadCmdOpen); } - } + if ( iListBox->CurrentItemIndex() == 0 && IsNotepad() && memoCount > 0) + { + aMenuPane->SetItemDimmed( ENotepadCmdDelete, ETrue ); + aMenuPane->SetItemDimmed( ENotepadCmdSend, ETrue ); + } + } break; default: - AknSelectionService::HandleMarkableListDynInitMenuPane( - aResourceId, aMenuPane, iListBox); - break; - } + { + if ( IsTemplates() ) + { + AknSelectionService::HandleMarkableListDynInitMenuPane( + aResourceId, aMenuPane, iListBox ); + } + else + { + HandleMarkListDynInitMenuPane( aResourceId, aMenuPane, iListBox ); + } + break; + } + } } // ----------------------------------------------------------------------------- @@ -1025,6 +1036,28 @@ case ENotepadCmdSend: OnCmdSendL(aCommandId); break; + case EAknMarkAll: + { + if ( IsNotepad() ) + { + iListBox->ClearSelection(); + TInt num = iListBox->Model()->NumberOfItems(); + if ( num < 2 ) + return; + TInt ii = 0; + CArrayFixFlat* array = new (ELeave) CArrayFixFlat ( + 20 ); + CleanupStack::PushL(array); + array->SetReserveL(num); + for ( ii = 1; ii < num; ii++ ) + { + array->AppendL( ii ); + } + iListBox->SetSelectionIndexesL( array ); + CleanupStack::PopAndDestroy(); //array + break; + } + } default: { const TInt aiwServiceCmd( iServiceHandler ? iServiceHandler->ServiceCmdByMenuCmd( aCommandId ) : 0 ); @@ -1299,15 +1332,22 @@ OnCmdOpenL(aListBox->CurrentItemIndex()); break; case EEventItemSingleClicked: - if ( aListBox->Model()->NumberOfItems() != 0 - && aListBox->SelectionIndexes()->Count() == 0 ) - { - HandleListBoxPointerEventL( CNotepadListDialog::EOpenListBoxItem ); - } - else - { - HandleListBoxPointerEventL( CNotepadListDialog::EOpenListBoxContextMenu ); - } + if ( IsNotepad() ) + { + if ( aListBox->Model()->NumberOfItems() != 0 + && aListBox->SelectionIndexes()->Count() == 0 ) + { + + HandleListBoxPointerEventL( + CNotepadListDialog::EOpenListBoxItem); + } + else + { + HandleListBoxPointerEventL( + CNotepadListDialog::EOpenListBoxContextMenu ); + } + } + if( IsTemplates() && AknLayoutUtils::PenEnabled() ) { if( !aListBox->SelectionIndexes()->Count() ) @@ -1572,7 +1612,11 @@ { if(aEvent == EOpenListBoxContextMenu && !MenuShowing()) { - if(iEditorFlag==EFalse) + if (iListBox->CurrentItemIndex() == 0) + { + OnCmdAddL(); + } + else if (iEditorFlag == EFalse) { iFlags |= ENotepadMenuByOkKey; iMskFlag=ETrue; @@ -1581,7 +1625,11 @@ } else if(aEvent == EOpenListBoxItem) { - if ( !iEditorDialog&& !IsTemplates() ) + if ( iListBox->CurrentItemIndex() == 0 ) + { + OnCmdAddL(); + } + else if (!iEditorDialog && !IsTemplates()) { OnCmdOpenL( iListBox->CurrentItemIndex() ); } @@ -1599,7 +1647,7 @@ if( !IsTemplates() ) // Notepad ListView { - if( (iModel->MdcaCount() == 0)) + if( (iModel->MdcaCount() == 1)) { ButtonGroupContainer().SetCommandSetL( R_NOTEPAD_SOFTKEYS_OPTIONS_EXIT_NEW ); } @@ -1672,6 +1720,35 @@ return KErrNone; } +// ----------------------------------------------------------------------------- +// CNotepadListDialog::HandleMarkListDynInitMenuPane +// ----------------------------------------------------------------------------- +// +void CNotepadListDialog::HandleMarkListDynInitMenuPane( TInt aResourceId, CEikMenuPane *aMenu, CEikListBox *aListBox ) + { + if ( aResourceId == R_MENUPANE_MARKABLE_LIST_IMPLEMENTATION ) + { + TInt currentItemIndex = aListBox->View()->CurrentItemIndex(); + TBool markHidden = aListBox->View()->ItemIsSelected( currentItemIndex ) || currentItemIndex == 0; + TBool unmarkHidden = + !aListBox->View()->ItemIsSelected(currentItemIndex) || currentItemIndex == 0; + TBool markAllHidden = aListBox->Model()->NumberOfItems() == 0 + || aListBox->SelectionIndexes()->Count() + == aListBox->Model()->NumberOfItems() - 1; + TBool unmarkAllHidden = aListBox->Model()->NumberOfItems() == 0 + || aListBox->SelectionIndexes()->Count() == 0; + aMenu->SetItemDimmed(EAknCmdMark, markHidden); + aMenu->SetItemDimmed(EAknCmdUnmark, unmarkHidden); + aMenu->SetItemDimmed(EAknMarkAll, markAllHidden); + aMenu->SetItemDimmed(EAknUnmarkAll, unmarkAllHidden); + } + if ( aResourceId == R_MENUPANE_MARKABLE_LIST_EDIT_LIST_IMPLEMENTATION ) + { + TBool editListHidden = aListBox->Model()->NumberOfItems() == 0; + + aMenu->SetItemDimmed(EAknCmdEditListMenu, editListHidden); + } + } // End of File