Index: /trunk/src/CreateKit.py
===================================================================
--- /trunk/src/CreateKit.py (revision 2)
+++ /trunk/src/CreateKit.py (revision 3)
@@ -31,4 +31,23 @@
 apt_pkg.init()
 
+class ProgressBar():
+    def __init__(self, dialogName, pbobj):
+        self._progressbar = pbobj
+        self._dialog = dialogName
+    
+    def progressbarTimeout(self, pbobj):
+        pbobj.pulse()
+        return True
+    
+    def start(self):
+        self._dialog.show()
+        self._timer = gobject.timeout_add(100, self.progressbarTimeout, self._progressbar)
+        
+    def stop(self):
+        gobject.source_remove(self._timer)
+        self._timer = 0
+        self._dialog.hide()
+
+
 class CreateKitGTK(threading.Thread):
     
@@ -45,33 +64,12 @@
     #
     # Package list
-    #
-    def progressbarTimeout(pbobj, val):
-        print pbobj
-        print val
-        if pbobj.activity_check.get_active():
-            pbobj.pulse()
-        else:
-            # Calculate the value of the progress bar using the
-            # value range set in the adjustment object
-            new_val = pbobj.get_fraction() + 0.01
-            if new_val > 1.0:
-                new_val = 0.0
-            # Set the new value
-            pbobj.set_fraction(new_val)
-    
-        # As this is a timeout function, return TRUE so that it
-        # continues to get called
-        return True
-
+    #        
     def setupPackageList(self, ignore=True):
-        self.window.set_sensitive(False)
+        self.cpbar = ProgressBar(self.dialogProgress, self.pbar)
+        self.cpbar.start()
+            
         self.treeStore = gtk.TreeStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
-        self.dialogProgress.show()
-        self.pbar.pulse()
-        self.pbar.set_fraction(0.0)
-        #t = gobject.timeout_add(100, self.progressbarTimeout, self.pbar)
         
         time.sleep(1)
-        self.stopthread = threading.Event()
         cache = apt_pkg.GetCache(progress.TextProgress())
         records = apt_pkg.GetPkgRecords(cache)
@@ -79,13 +77,19 @@
         pkgList = []
         #while not self.stopthread.isSet():
-
+        count=0
         gtk.gdk.threads_enter()
         for pkg in packages:
             for pkgInfo in pkg.VersionList:
                 for packFile, index in pkgInfo.FileList:
+                    count += 1
+                    print count
                     records.Lookup((packFile,index))
                     if packFile.IndexType != 'Debian Package Index' and ignore:
                         continue
                     pkgList.append((None,(None, pkg.Name, pkgInfo.VerStr, records.ShortDesc)))
+                    
+                    #self.pbar.set_fraction(util.pbarFraction(count, cache.PackageCount))
+                    #print self.pbar.get_fraction()
+                    
                     #print (None, pkg.Name, pkgInfo.VerStr, records.ShortDesc, packFile.IndexType)              
         
@@ -114,7 +118,9 @@
         
         gtk.gdk.threads_leave()
-        self.dialogProgress.hide()
-        self.window.set_sensitive(True)
-        #self.stopthread.set()
+        self.stopthread.set()
+        
+        self.stopthread.set()
+        
+        #self.window.set_sensitive(True)
         
     def colToggledClicked( self, cell, path, model ):
@@ -163,4 +169,6 @@
         self.gladefile = "CreateKit.glade"
         self.wTree = gtk.glade.XML(self.gladefile)
+        
+        self.stopthread = threading.Event()
         
         #botoes do notebook
@@ -229,6 +237,8 @@
             
             #treeview
-            #self.setupPackageList()
+            #self.cpbar = ProgressBar(self.dialogProgress, self.pbar)
+            #self.cpbar.start()
             threading.Thread(name="self.setupPackageList", target=self.setupPackageList).start()
+            
             #self.ProgTest()
         
