* src/docgen/PdfDoc.py: add the ability to open the document in the

default viewer
* src/docgen/AbiWord2Doc.py: add the ability to open the document in AbiWord
* src/docgen/OpenOfficeDoc.py: fixed the search for default viewer
* src/docgen/RTFDoc.py: add the ability to open the document in the default viewer
* src/docgen/HtmlDoc.py: add the ability to open the document in the default viewer
* src/docgen/KwordDoc.py: add comment


svn: r2575
This commit is contained in:
Don Allingham 2004-01-01 18:17:47 +00:00
parent f085ad7013
commit 2582bec96c
6 changed files with 118 additions and 12 deletions

View File

@ -31,6 +31,7 @@ Provides a BaseDoc based interface to the AbiWord document format.
#-------------------------------------------------------------------------
import base64
import string
import os
import BaseDoc
import Errors
@ -175,6 +176,14 @@ class AbiWordDoc(BaseDoc.BaseDoc):
self.f.write('</abiword>\n')
self.f.close()
if self.print_req:
import grampslib
apptype = 'application/x-abiword'
prog = grampslib.default_application_command(apptype)
os.environ["FILE"] = self.filename
os.system ('%s "$FILE" &' % prog)
def add_photo(self,name,pos,x_cm,y_cm):
try:
@ -297,4 +306,20 @@ class AbiWordDoc(BaseDoc.BaseDoc):
def end_cell(self):
self.f.write('</cell>\n')
Plugins.register_text_doc(_("AbiWord"),AbiWordDoc,1,1,1,".abw")
#--------------------------------------------------------------------------
#
# Register plugins
#
#--------------------------------------------------------------------------
try:
import grampslib
import Utils
prog = grampslib.default_application_command("application/x-abiword")
if Utils.search_for(prog):
print_label=_("Open in AbiWord")
except:
print_label = None
Plugins.register_text_doc(_("AbiWord"),AbiWordDoc,1,1,1,".abw", print_label)

View File

@ -333,6 +333,14 @@ class HtmlDoc(BaseDoc.BaseDoc):
self.f.close()
self.write_support_files()
if self.print_req:
import grampslib
apptype = 'text/html'
prog = grampslib.default_application_command(apptype)
os.environ["FILE"] = self.filename
os.system ('%s "$FILE" &' % prog)
def write_support_files(self):
if self.map:
for name in self.map.keys():
@ -457,4 +465,21 @@ class HtmlDoc(BaseDoc.BaseDoc):
self.empty = 0
self.f.write(text)
Plugins.register_text_doc(_("HTML"),HtmlDoc,1,0,1,".html")
#------------------------------------------------------------------------
#
# Register the document generator with the GRAMPS plugin system
#
#------------------------------------------------------------------------
try:
import grampslib
import Utils
prog = grampslib.default_application_command("text/html")
desc = grampslib.default_application_name("text/html")
if Utils.search_for(prog):
print_label=_("Open in %s") % desc
except:
print_label = None
Plugins.register_text_doc(_("HTML"),HtmlDoc,1,0,1,".html", print_label)

View File

@ -476,4 +476,10 @@ class KwordDoc(BaseDoc.BaseDoc):
self.text = self.text + text
#------------------------------------------------------------------------
#
# Register the document generator with the GRAMPS plugin system
#
#------------------------------------------------------------------------
Plugins.register_text_doc(_("KWord"),KwordDoc,1,1,1,".kwd")

View File

@ -967,16 +967,21 @@ class OpenOfficeDoc(BaseDoc.BaseDoc):
#
#--------------------------------------------------------------------------
print_label = None
if os.access ("/usr/bin/oowriter", os.X_OK):
print_label = _("Open in OpenOffice.org")
try:
import grampslib
import Utils
apptype = 'application/vnd.sun.xml.writer'
prog = grampslib.default_application_command(apptype)
if Utils.search_for(prog):
print_label = _("Open in OpenOffice.org")
except:
pass
Plugins.register_text_doc(_("OpenOffice.org Writer"),OpenOfficeDoc,1,1,1,
".sxw",print_label)
Plugins.register_book_doc(_("OpenOffice.org Writer"),OpenOfficeDoc,1,1,1,".sxw")
print_label = None
if os.access ("/usr/bin/oodraw", os.X_OK):
print_label = _("Open in OpenOffice.org")
Plugins.register_draw_doc(_("OpenOffice.org Draw"),OpenOfficeDoc,1,1,".sxd",
print_label);

View File

@ -175,7 +175,14 @@ class PdfDoc(BaseDoc.BaseDoc):
except:
import DisplayTrace
DisplayTrace.DisplayTrace()
# raise Errors.ReportError(_("Could not create %s") % self.filename)
if self.print_req:
import grampslib
apptype = 'application/pdf'
prog = grampslib.default_application_command(apptype)
os.environ["FILE"] = self.filename
os.system ('%s "$FILE" &' % prog)
def page_break(self):
self.story.append(PageBreak())
@ -565,12 +572,24 @@ def make_color(c):
#
#------------------------------------------------------------------------
try:
import grampslib
import Utils
prog = grampslib.default_application_command("application/pdf")
desc = grampslib.default_application_name("application/pdf")
if Utils.search_for(prog):
print_label=_("Open in %s") % desc
except:
print_label = None
Plugins.register_draw_doc(
_("PDF"),
PdfDoc,
1,
1,
".pdf"
".pdf",
print_label
)
Plugins.register_text_doc(
@ -579,7 +598,8 @@ Plugins.register_text_doc(
table=1,
paper=1,
style=1,
ext=".pdf"
ext=".pdf",
print_report_label=print_label
)
Plugins.register_book_doc(

View File

@ -26,6 +26,7 @@
#
#------------------------------------------------------------------------
import string
import os
#------------------------------------------------------------------------
#
@ -124,6 +125,14 @@ class RTFDoc(BaseDoc.BaseDoc):
self.f.write('}\n')
self.f.close()
if self.print_req:
import grampslib
apptype = 'application/rtf'
prog = grampslib.default_application_command(apptype)
os.environ["FILE"] = self.filename
os.system ('%s "$FILE" &' % prog)
#--------------------------------------------------------------------
#
# Force a section page break
@ -402,4 +411,20 @@ class RTFDoc(BaseDoc.BaseDoc):
self.text = self.text.replace('<super>','{{\*\updnprop5801}\up10 ')
self.text = self.text.replace('</super>','}')
Plugins.register_text_doc(_("Rich Text Format (RTF)"),RTFDoc,1,1,1,".rtf")
#------------------------------------------------------------------------
#
# Register the document generator with the GRAMPS plugin system
#
#------------------------------------------------------------------------
try:
import grampslib
import Utils
prog = grampslib.default_application_command("application/rtf")
desc = grampslib.default_application_name("application/rtf")
if Utils.search_for(prog):
print_label=_("Open in %s") % desc
except:
print_label = None
Plugins.register_text_doc(_("Rich Text Format (RTF)"),RTFDoc,1,1,1,".rtf", print_label)