Make XML writer gtk independant again.
svn: r8144
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2007-02-17 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||||
|
* src/GrampsDb/_GrampsDbWriteXML.py: add non-gtk xml writer
|
||||||
|
* src/GrampsDb/__init__.py: export non-gtk writer
|
||||||
|
* src/GrampsDb/_GrampsDbExceptions.py: add WriteFailure exception
|
||||||
|
* src/GrampsDb/_LongOpStatus.py: protect against div by zero
|
||||||
|
* src/GrampsDb/_ProgressMonitor.py: workaround gtk issues
|
||||||
|
* src/ProgressDialog.py: work around gtk issues
|
||||||
|
* src/GrampsDbUtils/_WriteXML.py: make gtk wrapper for non-gtk version
|
||||||
|
|
||||||
2007-02-17 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
2007-02-17 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||||
* src/ViewManager.py: add progress monitor
|
* src/ViewManager.py: add progress monitor
|
||||||
* src/GrampsDb/_GrampsDbBase.py: add get_length to cursors
|
* src/GrampsDb/_GrampsDbBase.py: add get_length to cursors
|
||||||
|
@ -31,6 +31,16 @@ class GrampsDbException(Exception):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return repr(self.value)
|
return repr(self.value)
|
||||||
|
|
||||||
|
class GrampsDbWriteFailure(Exception):
|
||||||
|
"""
|
||||||
|
Error used to indicate that a write to a database has failed.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __int__(self, value):
|
||||||
|
self.value = value
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return repr(self.value)
|
||||||
|
|
||||||
class FileVersionError(Exception):
|
class FileVersionError(Exception):
|
||||||
"""
|
"""
|
||||||
|
1079
src/GrampsDb/_GrampsDbWriteXML.py
Normal file
1079
src/GrampsDb/_GrampsDbWriteXML.py
Normal file
File diff suppressed because it is too large
Load Diff
@ -83,7 +83,8 @@ class LongOpStatus(GrampsDBCallback):
|
|||||||
GrampsDBCallback.__init__(self)
|
GrampsDBCallback.__init__(self)
|
||||||
self._msg = msg
|
self._msg = msg
|
||||||
self._total_steps = total_steps
|
self._total_steps = total_steps
|
||||||
self._interval = interval
|
# don't allow intervals less that 1
|
||||||
|
self._interval = max(interval,1)
|
||||||
self._can_cancel = can_cancel
|
self._can_cancel = can_cancel
|
||||||
|
|
||||||
self._cancel = False
|
self._cancel = False
|
||||||
|
@ -74,7 +74,7 @@ class ProgressMonitor(object):
|
|||||||
self._dlg = self._dialog_class(self._dialog_class_params,
|
self._dlg = self._dialog_class(self._dialog_class_params,
|
||||||
self._title)
|
self._title)
|
||||||
|
|
||||||
self._dlg.show()
|
#self._dlg.show()
|
||||||
|
|
||||||
return self._dlg
|
return self._dlg
|
||||||
|
|
||||||
@ -117,6 +117,7 @@ class ProgressMonitor(object):
|
|||||||
if facade.pbar_idx == None:
|
if facade.pbar_idx == None:
|
||||||
facade.pbar_idx = dlg.add(facade.status_obj)
|
facade.pbar_idx = dlg.add(facade.status_obj)
|
||||||
|
|
||||||
|
dlg.show()
|
||||||
dlg.step(facade.pbar_idx)
|
dlg.step(facade.pbar_idx)
|
||||||
|
|
||||||
def _end(self, idx):
|
def _end(self, idx):
|
||||||
@ -138,46 +139,3 @@ class ProgressMonitor(object):
|
|||||||
del self._status_stack[idx]
|
del self._status_stack[idx]
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
import time
|
|
||||||
from GrampsDb import LongOpStatus
|
|
||||||
|
|
||||||
def test(a,b):
|
|
||||||
d = ProgressDialog(_GtkProgressDialog, "Test Progress")
|
|
||||||
|
|
||||||
s = LongOpStatus("Doing very long operation", 100, 10)
|
|
||||||
|
|
||||||
d.add_op(s)
|
|
||||||
|
|
||||||
for i in xrange(0, 99):
|
|
||||||
time.sleep(0.1)
|
|
||||||
if i == 30:
|
|
||||||
t = LongOpStatus("doing a shorter one", 100, 10,
|
|
||||||
can_cancel=True)
|
|
||||||
d.add_op(t)
|
|
||||||
for j in xrange(0, 99):
|
|
||||||
if t.should_cancel():
|
|
||||||
break
|
|
||||||
time.sleep(0.1)
|
|
||||||
t.heartbeat()
|
|
||||||
t.end()
|
|
||||||
if i == 60:
|
|
||||||
t = LongOpStatus("doing another shorter one", 100, 10)
|
|
||||||
d.add_op(t)
|
|
||||||
for j in xrange(0, 99):
|
|
||||||
time.sleep(0.1)
|
|
||||||
t.heartbeat()
|
|
||||||
t.end()
|
|
||||||
s.heartbeat()
|
|
||||||
s.end()
|
|
||||||
|
|
||||||
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
|
||||||
w.connect('destroy', gtk.main_quit)
|
|
||||||
button = gtk.Button("Test")
|
|
||||||
button.connect("clicked", test, None)
|
|
||||||
w.add(button)
|
|
||||||
button.show()
|
|
||||||
w.show()
|
|
||||||
gtk.main()
|
|
||||||
print 'done'
|
|
||||||
|
|
@ -43,7 +43,7 @@ from _GrampsDbBase import GrampsDbBase
|
|||||||
from _GrampsDbFactories import \
|
from _GrampsDbFactories import \
|
||||||
gramps_db_factory
|
gramps_db_factory
|
||||||
|
|
||||||
from _GrampsDbExceptions import GrampsDbException, FileVersionError
|
from _GrampsDbExceptions import *
|
||||||
|
|
||||||
from _GrampsDBCallback import GrampsDBCallback
|
from _GrampsDBCallback import GrampsDBCallback
|
||||||
|
|
||||||
@ -51,6 +51,9 @@ from _DbUtils import *
|
|||||||
|
|
||||||
import _GrampsDbConst as GrampsDbConst
|
import _GrampsDbConst as GrampsDbConst
|
||||||
|
|
||||||
|
from _GrampsDbWriteXML import GrampsDbXmlWriter, \
|
||||||
|
exportData, quick_write
|
||||||
|
|
||||||
from _LongOpStatus import LongOpStatus
|
from _LongOpStatus import LongOpStatus
|
||||||
from _ProgressMonitor import ProgressMonitor
|
from _ProgressMonitor import ProgressMonitor
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -82,14 +82,8 @@ class GtkProgressDialog(gtk.Dialog):
|
|||||||
self.connect('delete_event', self._warn)
|
self.connect('delete_event', self._warn)
|
||||||
self.set_has_separator(False)
|
self.set_has_separator(False)
|
||||||
self.set_title(title)
|
self.set_title(title)
|
||||||
#self.set_border_width(12)
|
#self.set_resize_mode(gtk.RESIZE_IMMEDIATE)
|
||||||
#self.vbox.set_spacing(10)
|
#self.show()
|
||||||
#lbl = gtk.Label('<span size="larger" weight="bold">%s</span>' % title)
|
|
||||||
#lbl.set_use_markup(True)
|
|
||||||
#self.vbox.pack_start(lbl)
|
|
||||||
#self.set_size_request(350,125)
|
|
||||||
self.set_resize_mode(gtk.RESIZE_IMMEDIATE)
|
|
||||||
self.show_all()
|
|
||||||
|
|
||||||
self._progress_bars = []
|
self._progress_bars = []
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user