[Uludag-commits] r15621 - trunk/staj-projeleri/scanner/src

uludag-commits at pardus.org.tr uludag-commits at pardus.org.tr
4 Eki 2007 Per 10:09:44 EEST


Author: asli.okur
Date: Thu Oct  4 10:09:44 2007
New Revision: 15621

Modified:
   trunk/staj-projeleri/scanner/src/scanevent.py
   trunk/staj-projeleri/scanner/src/scanresultmulti.py
   trunk/staj-projeleri/scanner/src/scanthread.py
Log:
Save ayrı threadde çalışıyor, save sırasında GUI kilitlenmiyor.

Modified: trunk/staj-projeleri/scanner/src/scanevent.py
=================================================================
--- trunk/staj-projeleri/scanner/src/scanevent.py	(original)
+++ trunk/staj-projeleri/scanner/src/scanevent.py	Thu Oct  4 10:09:44 2007
@@ -14,4 +14,11 @@
 		
 class StopEvent(QCustomEvent):
     def __init__(self):
-	QCustomEvent.__init__(self,1004)
\ No newline at end of file
+	QCustomEvent.__init__(self,1004)
+	
+class SaveEvent(QCustomEvent):
+    def __init__(self, total, saved):
+	QCustomEvent.__init__(self,1005)
+	self.total = total
+	self.saved = saved
+	 
\ No newline at end of file

Modified: trunk/staj-projeleri/scanner/src/scanresultmulti.py
=================================================================
--- trunk/staj-projeleri/scanner/src/scanresultmulti.py	(original)
+++ trunk/staj-projeleri/scanner/src/scanresultmulti.py	Thu Oct  4 10:09:44 2007
@@ -4,6 +4,7 @@
 from kdecore import *
 from kdeui import *
 from kfile import *
+from scanthread import *
 
 
 class ScanResultMulti(KDialog):
@@ -88,62 +89,24 @@
             self.pixmapLabel.setPixmap(self.pixmaps[item.index()])
         else:
             self.pixmapLabel.clear()
+
+    def customEvent(self,event):
+        if(event.type() == 1005):
+	    self.saveFinished(event.total, event.saved)
+
+    def saveFinished(self, total, saved):
+	    if total != 0:
+	    	KMessageBox.information(self,repr(saved) +" of "+ repr(total) + " file(s) successfully saved.","Save Result")
             
     def saveAll(self):
-        saved = 0
-        total = 0
-        outputFormats = QImageIO.outputFormats()
 	temp = "*.png|PNG-Files\n*.JPEG *.jpg|JPEG-Files"
 	fileName = unicode(KFileDialog.getSaveFileName("",temp,self,"Save As"))
-	if (fileName != ""):
-		tmp = fileName.rsplit('.',1)
-		for item in self.items:
-			total+=1
-			#tmp = fileName.rsplit('.',1)
-			format = None
-			if len(tmp) == 1:
-				fileName = tmp[0]
-			if len(tmp) == 2:
-				fileName, extension = tmp[0],tmp[1]
-				if extension.lower() == "jpg":
-					format = "JPEG"
-				if extension.upper() in outputFormats:
-					format = extension.upper()
-					fileName += saved.__str__() + "." + extension
-			if format == None:
-				format = "PNG"
-				fileName += saved.__str__() + "." + format.lower()
-			if self.pixmapLabel.pixmap().save(fileName,str(format)):
-				saved+=1
-			
-		KMessageBox.information(self,repr(saved) +" of "+ repr(total) + " file(s) successfully saved.","Save Result")
+	self.saveThread = SaveThread(self, fileName)
+	self.saveThread.start()
                 
     def saveSelected(self):
-        saved = 0
-        total = 0
-        outputFormats = QImageIO.outputFormats()
 	temp = "*.png|PNG-Files\n*.JPEG *.jpg|JPEG-Files"
 	fileName = unicode(KFileDialog.getSaveFileName("",temp,self,"Save As"))
-	if (fileName != ""):
-		tmp = fileName.rsplit('.',1)
-		for item in self.items:
-			if item.isSelected():
-				total+=1
-				#tmp = fileName.rsplit('.',1)
-				format = None
-				if len(tmp) == 1:
-					fileName = tmp[0]
-				if len(tmp) == 2:
-					fileName, extension = tmp[0],tmp[1]
-					if extension.lower() == "jpg":
-						format = "JPEG"
-					if extension.upper() in outputFormats:
-						format = extension.upper()
-						fileName += saved.__str__() + "." + extension
-				if format == None:
-					format = "PNG"
-					fileName += saved.__str__() + "." + format.lower()
-				if self.pixmapLabel.pixmap().save(fileName,str(format)):
-					saved+=1
-				
-		KMessageBox.information(self,repr(saved) +" of "+ repr(total) + " file(s) successfully saved.","Save Result")
\ No newline at end of file
+	self.saveThread = SaveSelectedThread(self, fileName)
+	self.saveThread.start()
+	
\ No newline at end of file

Modified: trunk/staj-projeleri/scanner/src/scanthread.py
=================================================================
--- trunk/staj-projeleri/scanner/src/scanthread.py	(original)
+++ trunk/staj-projeleri/scanner/src/scanthread.py	Thu Oct  4 10:09:44 2007
@@ -48,4 +48,83 @@
 	
     def run(self):
 	self.device.cancel()
-	qApp.postEvent(self.parent,StopEvent())
\ No newline at end of file
+	qApp.postEvent(self.parent,StopEvent())
+	
+class SaveThread(QThread):
+    def __init__(self, parent, fileName):
+	QThread.__init__(self)
+	self.parent = parent
+	self.fileName = fileName
+	self.total = 0
+	self.saved = 0
+	
+    def run(self):
+	outputFormats = QImageIO.outputFormats()
+	if (self.fileName != ""):
+		tmp = self.fileName.rsplit('.',1)
+		for item in self.parent.items:
+			self.total+=1
+			#tmp = fileName.rsplit('.',1)
+			format = None
+			if len(tmp) == 1:
+				fileName = tmp[0]
+			if len(tmp) == 2:
+				fileName, extension = tmp[0],tmp[1]
+				if extension.lower() == "jpg":
+					format = "JPEG"
+				if extension.upper() in outputFormats:
+					format = extension.upper()
+					if self.saved == 0:
+						fileName += "." + extension
+					else:
+						fileName += self.saved.__str__() + "." + extension
+			if format == None:
+				format = "PNG"
+				if self.saved == 0:
+					fileName += "." + format.lower()
+				else:
+					fileName += self.saved.__str__() + "." + format.lower()
+			if self.parent.pixmapLabel.pixmap().save(fileName,str(format)):
+				self.saved+=1
+	
+	qApp.postEvent(self.parent, SaveEvent(self.total, self.saved))
+	
+class SaveSelectedThread(QThread):
+    def __init__(self, parent, fileName):
+	QThread.__init__(self)
+	self.parent = parent
+	self.fileName = fileName
+	self.total = 0
+	self.saved = 0
+	
+    def run(self):
+	outputFormats = QImageIO.outputFormats()
+	if (self.fileName != ""):
+		tmp = self.fileName.rsplit('.',1)
+		for item in self.parent.items:
+			if item.isSelected():
+				self.total+=1
+				#tmp = fileName.rsplit('.',1)
+				format = None
+				if len(tmp) == 1:
+					fileName = tmp[0]
+				if len(tmp) == 2:
+					fileName, extension = tmp[0],tmp[1]
+					if extension.lower() == "jpg":
+						format = "JPEG"
+					if extension.upper() in outputFormats:
+						format = extension.upper()
+						if self.saved == 0:
+							fileName += "." + extension
+						else:
+							fileName += self.saved.__str__() + "." + extension
+				if format == None:
+					format = "PNG"
+					if self.saved == 0:
+						fileName += "." + format.lower()
+					else:
+						fileName += self.saved.__str__() + "." + format.lower()
+				if self.parent.pixmapLabel.pixmap().save(fileName,str(format)):
+					self.saved+=1
+	
+	qApp.postEvent(self.parent, SaveEvent(self.total, self.saved))
\ No newline at end of file


Uludag-commits mesaj listesiyle ilgili daha fazla bilgi