gget r26 - in trunk: data gget



Author: johans
Date: Wed Jul  9 17:40:18 2008
New Revision: 26
URL: http://svn.gnome.org/viewvc/gget?rev=26&view=rev

Log:
Enabled extension based download folders.

Modified:
   trunk/data/gget.glade
   trunk/gget/AddDownloadDialog.py
   trunk/gget/Download.py
   trunk/gget/MainWindow.py
   trunk/gget/Utils.py

Modified: trunk/data/gget.glade
==============================================================================
--- trunk/data/gget.glade	(original)
+++ trunk/data/gget.glade	Wed Jul  9 17:40:18 2008
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Sat Jul  5 00:14:15 2008 -->
+<!--Generated with glade3 3.4.5 on Wed Jul  9 16:13:04 2008 -->
 <glade-interface>
   <widget class="GtkWindow" id="main_window">
     <property name="width_request">800</property>
@@ -612,6 +612,9 @@
                                         <property name="draw_indicator">True</property>
                                         <property name="group">ask_folder_radiobutton</property>
                                       </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                      </packing>
                                     </child>
                                     <child>
                                       <widget class="GtkAlignment" id="default_folder_alignment">
@@ -621,13 +624,14 @@
                                           <widget class="GtkFileChooserButton" id="default_folder_filechooserbutton">
                                             <property name="visible">True</property>
                                             <property name="sensitive">False</property>
-                                            <property name="local_only">False</property>
                                             <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+                                            <property name="local_only">False</property>
                                             <property name="title" translatable="yes">Select download folder</property>
                                           </widget>
                                         </child>
                                       </widget>
                                       <packing>
+                                        <property name="expand">False</property>
                                         <property name="position">1</property>
                                       </packing>
                                     </child>
@@ -649,6 +653,9 @@
                                         <property name="response_id">0</property>
                                         <property name="draw_indicator">True</property>
                                       </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                      </packing>
                                     </child>
                                     <child>
                                       <widget class="GtkAlignment" id="extensions_alignment">
@@ -718,20 +725,28 @@
                                                     <property name="stock">gtk-dialog-info</property>
                                                     <property name="icon_size">6</property>
                                                   </widget>
+                                                  <packing>
+                                                    <property name="expand">False</property>
+                                                    <property name="fill">False</property>
+                                                  </packing>
                                                 </child>
                                                 <child>
                                                   <widget class="GtkLabel" id="label5">
                                                     <property name="visible">True</property>
                                                     <property name="xalign">0</property>
-                                                    <property name="label" translatable="yes">Use a regular expression for the extension
+                                                    <property name="label" translatable="yes">Use a Unix shell-style wildcard for the extension
 For example: *.tar.gz</property>
                                                   </widget>
                                                   <packing>
+                                                    <property name="expand">False</property>
+                                                    <property name="fill">False</property>
                                                     <property name="position">1</property>
                                                   </packing>
                                                 </child>
                                               </widget>
                                               <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
                                                 <property name="position">2</property>
                                               </packing>
                                             </child>
@@ -766,9 +781,6 @@
                       </widget>
                     </child>
                   </widget>
-                  <packing>
-                    <property name="expand">False</property>
-                  </packing>
                 </child>
               </widget>
               <packing>
@@ -942,6 +954,9 @@
                                                     <property name="use_underline">True</property>
                                                     <property name="mnemonic_widget">proxy_user_entry</property>
                                                   </widget>
+                                                  <packing>
+                                                    <property name="expand">False</property>
+                                                  </packing>
                                                 </child>
                                                 <child>
                                                   <widget class="GtkEntry" id="proxy_user_entry">
@@ -960,6 +975,7 @@
                                                     <property name="mnemonic_widget">proxy_password_entry</property>
                                                   </widget>
                                                   <packing>
+                                                    <property name="expand">False</property>
                                                     <property name="position">2</property>
                                                   </packing>
                                                 </child>

Modified: trunk/gget/AddDownloadDialog.py
==============================================================================
--- trunk/gget/AddDownloadDialog.py	(original)
+++ trunk/gget/AddDownloadDialog.py	Wed Jul  9 17:40:18 2008
@@ -23,6 +23,7 @@
 import gtk
 
 import GUI
+import Utils
 from Configuration import Configuration
 from DownloadList import DownloadList
 from gget import NAME
@@ -43,7 +44,10 @@
         else:
             self.__set_url_from_clipboard(self.clipboard)
 
-        self.download_filechooserbutton.set_current_folder(self.config.default_folder)
+        folder = Utils.get_folder_for_extension(uri)
+        if not folder:
+            folder = self.config.default_folder
+        self.download_filechooserbutton.set_current_folder(folder)
 
     def __get_widgets(self):
         xml = gtk.glade.XML(GUI.glade_file, domain=NAME.lower())

Modified: trunk/gget/Download.py
==============================================================================
--- trunk/gget/Download.py	(original)
+++ trunk/gget/Download.py	Wed Jul  9 17:40:18 2008
@@ -27,6 +27,7 @@
 import Utils
 import GUI
 import metalink
+from Configuration import Configuration
 from gget import NAME
 
 CONNECTING = 0
@@ -44,16 +45,24 @@
 
     def __init__(self, uri, path):
         gobject.GObject.__init__(self)
+        self.config = Configuration()
+
         self.uri = uri
+        self.file_name = os.path.basename(self.uri)
+
         self.path = path
 
+        if not self.config.ask_for_location:
+            folder = Utils.get_folder_for_extension(uri)
+            if folder:
+                self.path = folder
+
         if uri.endswith(".metalink") or metalink.urlhead(uri,
                 metalink=True)["content-type"].startswith(metalink.MIME_TYPE):
             self.is_metalink = True
         else:
             self.is_metalink = False
 
-        self.file_name = os.path.basename(self.uri)
         self.file = os.path.join(path, self.file_name)
 
         self.total_size = 0

Modified: trunk/gget/MainWindow.py
==============================================================================
--- trunk/gget/MainWindow.py	(original)
+++ trunk/gget/MainWindow.py	Wed Jul  9 17:40:18 2008
@@ -609,7 +609,7 @@
             self.eta_treeview_column.props.visible = True
 
     def __download_added(self, download_list, download):
-        """Called when a new download is added to DownloadManager. Adds the
+        """Called when a new download is added to DownloadList. Adds the
         download to the treeview model and sets up the update handler."""
         self.downloads_model.append([download])
         download.connect("update", self.__download_update)

Modified: trunk/gget/Utils.py
==============================================================================
--- trunk/gget/Utils.py	(original)
+++ trunk/gget/Utils.py	Wed Jul  9 17:40:18 2008
@@ -18,6 +18,8 @@
 # along with gget; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 
+import fnmatch
+import os.path
 import time
 
 from Configuration import Configuration
@@ -35,6 +37,15 @@
         print("[%s] %s" % (time.strftime("%Y/%m/%d %H:%M:%S", time.localtime()),
                 message))
 
+def get_folder_for_extension(uri):
+    config = Configuration()
+    if config.check_extensions:
+        for extension, folder in zip(config.extensions,
+                config.extension_folders):
+            if fnmatch.fnmatch(os.path.basename(uri), extension):
+                return folder
+    return None
+
 def indent(element, level=0):
     """Indents a xml.ElementTree starting from element."""
     i = "\n" + level*"  "



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]