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 // ----------------------------------------------------------------------------- |