|
|
|
@ -57,8 +57,9 @@ org.kde.kdialog.ProgressDialog'
|
|
|
|
|
|
|
|
|
|
def openDialog(self,title):
|
|
|
|
|
self.title = title
|
|
|
|
|
pipe = popen2.Popen4(self.execenv+" LANG=ru_RU.UTF-8 "+
|
|
|
|
|
'/usr/bin/kdialog --progressbar "%s" %d' % (\
|
|
|
|
|
self.label ="LOGINKDIALOG=%d" % os.getpid()
|
|
|
|
|
pipe = popen2.Popen4(self.execenv + " %s " % self.label +\
|
|
|
|
|
'/usr/bin/kdialog --progressbar "%s" %d' % (\
|
|
|
|
|
" "*len(title),self.max))
|
|
|
|
|
if pipe.poll() != 0:
|
|
|
|
|
time.sleep(0.5)
|
|
|
|
@ -67,9 +68,21 @@ org.kde.kdialog.ProgressDialog'
|
|
|
|
|
while not "org.kde.kdialog" in self.kdialog:
|
|
|
|
|
s = fout.fromchild.readline()
|
|
|
|
|
if s == "":
|
|
|
|
|
self.kdialog = None
|
|
|
|
|
self.shutdownDialog()
|
|
|
|
|
self.kdialog = s.strip()
|
|
|
|
|
self.setTitle(self.title)
|
|
|
|
|
else:
|
|
|
|
|
self.shutdownDialog()
|
|
|
|
|
|
|
|
|
|
def shutdownDialog(self):
|
|
|
|
|
'''Принудительно уничтожить процесс kdialog'''
|
|
|
|
|
self.kdialog = None
|
|
|
|
|
for s in os.popen('/bin/ps axeo pid,cmd'):
|
|
|
|
|
if self.label in s:
|
|
|
|
|
try:
|
|
|
|
|
os.kill( int(s.split()[0]), 9 )
|
|
|
|
|
except (OSError,ValueError):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
def setValue(self,value):
|
|
|
|
|
'''Установить текущее значения для прогресса'''
|
|
|
|
|