Author: duncan
Date: Sun Jan 28 17:08:56 2007
New Revision: 9063

Modified:
   branches/rel-1/freevo/src/item.py
   branches/rel-1/freevo/src/plugins/shoppingcart.py

Log:
[ 1645468 ] shoppingcart: Copying directories fails
Fix applied


Modified: branches/rel-1/freevo/src/item.py
==============================================================================
--- branches/rel-1/freevo/src/item.py   (original)
+++ branches/rel-1/freevo/src/item.py   Sun Jan 28 17:08:56 2007
@@ -95,7 +95,11 @@
                     d = destdir
                 if not os.path.isdir(d):
                     os.makedirs(d)
-                shutil.copy(f, d)
+                if os.path.isdir(f):
+                    dst = os.path.join(d, os.path.split(f)[1])
+                    shutil.copytree(f, dst)
+                else:
+                    shutil.copy2(f, d)
 
 
     def move_possible(self):

Modified: branches/rel-1/freevo/src/plugins/shoppingcart.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/shoppingcart.py   (original)
+++ branches/rel-1/freevo/src/plugins/shoppingcart.py   Sun Jan 28 17:08:56 2007
@@ -40,7 +40,7 @@
 import config
 import shutil
 import util
-from gui.PopupBox import PopupBox
+from gui import PopupBox, AlertBox
 import rc
 import event as em
 import menu
@@ -62,8 +62,11 @@
     def moveHere(self, arg=None, menuw=None):
         popup = PopupBox(text=_('Moving files...'))
         popup.show()
-        for cartfile in self.cart:
-            cartfile.files.move(self.item.dir)
+        try:
+            for cartfile in self.cart:
+                cartfile.files.move(self.item.dir)
+        except OSError, e:
+            print 'Mode failed \'%s\'' % e
         popup.destroy()
         self.cart = []
         rc.post_event(em.MENU_BACK_ONE_MENU)
@@ -72,8 +75,11 @@
     def copyHere(self, arg=None, menuw=None):
         popup = PopupBox(text=_('Copying files...'))
         popup.show()
-        for cartfile in self.cart:
-            cartfile.files.copy(self.item.dir)
+        try:
+            for cartfile in self.cart:
+                cartfile.files.copy(self.item.dir)
+        except OSError, e:
+            print 'Copy failed \'%s\'' % e
         popup.destroy()
         self.cart = []
         rc.post_event(em.MENU_BACK_ONE_MENU)
@@ -101,7 +107,7 @@
         self.item = item
         myactions = []
 
-        if self.item.parent and self.item.parent.type != 'dir':
+        if self.item.parent and self.item.parent.type not in 
('dir','mediamenu'):
             # only activate this for directory items
             return []
 
@@ -115,7 +121,8 @@
                 myactions.append((self.copyHere, _('Cart: Copy Files Here')))
 
             if not item in self.cart:
-                myactions.append((self.addToCart, _('Add Directory to Cart'), 
'cart:add'))
+                if self.item.parent and self.item.parent.type == 'dir':
+                    myactions.append((self.addToCart, _('Add Directory to 
Cart'), 'cart:add'))
 
         elif hasattr(item, 'files') and item.files and 
item.files.copy_possible() and \
                  not item in self.cart:

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to