browserui/browser/FeedsSrc/FeedsFolderContainer.cpp
changeset 11 16a119033e3e
parent 10 4530440261a8
child 24 868cceedabd3
equal deleted inserted replaced
10:4530440261a8 11:16a119033e3e
  1218     {
  1218     {
  1219     if (iMoveActive)
  1219     if (iMoveActive)
  1220         {
  1220         {
  1221         // Clear the move state and update the Cba.
  1221         // Clear the move state and update the Cba.
  1222         iMoveActive = EFalse;
  1222         iMoveActive = EFalse;
       
  1223 		// Remove the marks.
       
  1224         iListBox->View()->ClearSelection();
  1223         UpdateCbaL();
  1225         UpdateCbaL();
  1224         // Un-Dim Toolbar
  1226         // Un-Dim Toolbar
  1225         DimToolbar(EFalse);
  1227         DimToolbar(EFalse);
  1226         
       
  1227         // Remove the marks.
       
  1228         iListBox->View()->ClearSelection();
       
  1229         }
  1228         }
  1230     }
  1229     }
  1231 
  1230 
  1232 // -----------------------------------------------------------------------------
  1231 // -----------------------------------------------------------------------------
  1233 // CFeedsFolderContainer::HandleExportL
  1232 // CFeedsFolderContainer::HandleExportL
  1854 // -----------------------------------------------------------------------------
  1853 // -----------------------------------------------------------------------------
  1855 //
  1854 //
  1856 void CFeedsFolderContainer::MoveToFolderMoveL(const CFeedsEntity& aTargetFolder)
  1855 void CFeedsFolderContainer::MoveToFolderMoveL(const CFeedsEntity& aTargetFolder)
  1857     {
  1856     {
  1858     RPointerArray<const CFeedsEntity>  markedItems(10);
  1857     RPointerArray<const CFeedsEntity>  markedItems(10);
       
  1858     RPointerArray<const CFeedsEntity>  removedItems(10);
       
  1859     const RPointerArray<CFeedsEntity>&  folderItems = aTargetFolder.GetChildren();
  1859     const CArrayFix<TInt>*            markedIndexes = NULL;
  1860     const CArrayFix<TInt>*            markedIndexes = NULL;
  1860     const CFeedsEntity*                folder = NULL;
  1861     const CFeedsEntity*                folder = NULL;
  1861 
  1862 
  1862     CleanupClosePushL(markedItems);
  1863     CleanupClosePushL(markedItems);
  1863 
  1864     CleanupClosePushL(removedItems);
  1864     // Get the array of marked items.
  1865     // Get the array of marked items.
  1865     markedIndexes = MarkedItems();
  1866     markedIndexes = MarkedItems();
  1866     if ((markedIndexes == NULL) || (markedIndexes->Count() == 0))
  1867     if ((markedIndexes == NULL) || (markedIndexes->Count() == 0))
  1867         {
  1868         {
  1868         iListBox->View()->SelectItemL(CurrentItemIndex());
  1869         iListBox->View()->SelectItemL(CurrentItemIndex());
  1871 
  1872 
  1872     // Copy the marked items into a temp array.
  1873     // Copy the marked items into a temp array.
  1873     for (TInt i = 0; i < markedIndexes->Count(); i++)
  1874     for (TInt i = 0; i < markedIndexes->Count(); i++)
  1874         {
  1875         {
  1875         folder = iCurrentFolder->GetChildren()[((*markedIndexes)[i])];
  1876         folder = iCurrentFolder->GetChildren()[((*markedIndexes)[i])];
  1876         User::LeaveIfError(markedItems.Append(folder));
  1877         // if the target folder already has some feed
  1877         }
  1878         if(folderItems.Count() > 0)
  1878     
  1879             {
  1879     // Move the items.
  1880             TPtrC item;
  1880     iApiProvider.FeedsClientUtilities().MoveFolderItemsToL(markedItems, aTargetFolder);
  1881             TPtrC url;
  1881         
  1882             folder->GetStringValue(EFeedAttributeTitle, item);
       
  1883             const CFeedsEntity*  otherItem = iApiProvider.FeedsClientUtilities().Search(item, aTargetFolder);
       
  1884             if(!(otherItem == CurrentItem())&& otherItem != NULL)
       
  1885                 {
       
  1886                 otherItem->GetStringValue(EFeedAttributeLink, url);
       
  1887                 iApiProvider.FeedsClientUtilities().AddFolderItemL(item,url,EFalse,aTargetFolder,0);
       
  1888                 User::LeaveIfError(removedItems.Append(folder));
       
  1889                 }
       
  1890             else
       
  1891                 {
       
  1892                 // feed not present in target folder
       
  1893                 User::LeaveIfError(markedItems.Append(folder));
       
  1894                 }
       
  1895             }
       
  1896         // if the target folder is empty
       
  1897         else
       
  1898             {
       
  1899             // Move the items.
       
  1900             User::LeaveIfError(markedItems.Append(folder));
       
  1901             }
       
  1902         }
       
  1903     if(removedItems.Count())
       
  1904         {
       
  1905         iApiProvider.FeedsClientUtilities().DeleteFolderItemsL(removedItems);
       
  1906         }
       
  1907     if(markedItems.Count())
       
  1908         {
       
  1909         // Move the items.
       
  1910         iApiProvider.FeedsClientUtilities().MoveFolderItemsToL(markedItems, aTargetFolder);
       
  1911         }
  1882     // Clean up
  1912     // Clean up
       
  1913     CleanupStack::PopAndDestroy(/*removedItems*/);
  1883     CleanupStack::PopAndDestroy(/*markedItems*/);
  1914     CleanupStack::PopAndDestroy(/*markedItems*/);
  1884     }
  1915     }
  1885 
  1916 
  1886 
  1917 
  1887 // -----------------------------------------------------------------------------
  1918 // -----------------------------------------------------------------------------