[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