Remove the "print_label" construct from the reports. The only label is "Open with default viewer". No need to check the mime type or to look for the default application because Gramps uses the host OS to figure it out for the user.

svn: r12351
This commit is contained in:
Brian Matherly
2009-03-16 04:22:12 +00:00
parent be898d84a9
commit 0214b842cd
16 changed files with 62 additions and 114 deletions

View File

@ -66,7 +66,7 @@ class BookFormatComboBox(gtk.ComboBox):
self.data.append(item) self.data.append(item)
name = item[0] name = item[0]
self.store.append(row=[name]) self.store.append(row=[name])
if item[6] == active: if item[5] == active:
active_index = index active_index = index
elif not active and name == out_pref: elif not active and name == out_pref:
active_index = index active_index = index
@ -85,8 +85,8 @@ class BookFormatComboBox(gtk.ComboBox):
def get_ext(self): def get_ext(self):
return self.data[self.get_active()][4] return self.data[self.get_active()][4]
def get_printable(self): def is_file_output(self):
return self.data[self.get_active()][5] return len(self.get_ext()) > 0
def get_clname(self): def get_clname(self):
return self.data[self.get_active()][6] return self.data[self.get_active()][5]

View File

@ -94,7 +94,7 @@ class DocReportDialog(ReportDialog):
self.options.set_document(self.doc) self.options.set_document(self.doc)
if self.print_report.get_active(): if self.open_with_app.get_active():
self.doc.open_requested() self.doc.open_requested()
def doc_type_changed(self, obj): def doc_type_changed(self, obj):
@ -104,14 +104,10 @@ class DocReportDialog(ReportDialog):
file format. For example, a HTML document doesn't need any file format. For example, a HTML document doesn't need any
paper size/orientation options, but it does need a template paper size/orientation options, but it does need a template
file. Those chances are made here.""" file. Those chances are made here."""
if obj.is_file_output():
label = obj.get_printable() self.open_with_app.set_sensitive (True)
if label:
self.print_report.set_label (label)
self.print_report.set_sensitive (True)
else: else:
self.print_report.set_label (_("Open with default viewer")) self.open_with_app.set_sensitive (False)
self.print_report.set_sensitive (False)
# Is this to be a printed report or an electronic report # Is this to be a printed report or an electronic report
# (i.e. a set of web pages) # (i.e. a set of web pages)
@ -129,6 +125,7 @@ class DocReportDialog(ReportDialog):
self.notebook.insert_page(self.html_table,self.html_label,0) self.notebook.insert_page(self.html_table,self.html_label,0)
self.html_table.show_all() self.html_table.show_all()
if obj.is_file_output():
fname = self.target_fileentry.get_full_path(0) fname = self.target_fileentry.get_full_path(0)
(spath, ext) = os.path.splitext(fname) (spath, ext) = os.path.splitext(fname)
@ -138,6 +135,10 @@ class DocReportDialog(ReportDialog):
else: else:
fname = spath fname = spath
self.target_fileentry.set_filename(fname) self.target_fileentry.set_filename(fname)
self.target_fileentry.set_sensitive(True)
else:
self.target_fileentry.set_filename("")
self.target_fileentry.set_sensitive(False)
# Does this report format use styles? # Does this report format use styles?
if self.style_button: if self.style_button:
@ -159,8 +160,8 @@ class DocReportDialog(ReportDialog):
yoptions=gtk.SHRINK) yoptions=gtk.SHRINK)
self.row += 1 self.row += 1
self.print_report = gtk.CheckButton (_("Print a copy")) self.open_with_app = gtk.CheckButton(_("Open with default viewer"))
self.tbl.attach(self.print_report,2,4,self.row,self.row+1, self.tbl.attach(self.open_with_app, 2, 4, self.row, self.row+1,
yoptions=gtk.SHRINK) yoptions=gtk.SHRINK)
self.row += 1 self.row += 1

View File

@ -56,7 +56,7 @@ class DrawFormatComboBox(gtk.ComboBox):
self.store.append(row=[name]) self.store.append(row=[name])
#if callback: #if callback:
# menuitem.connect("activate",callback) # menuitem.connect("activate",callback)
if item[6] == active: if item[5] == active:
active_index = index active_index = index
elif not active and name == out_pref: elif not active and name == out_pref:
active_index = index active_index = index
@ -78,8 +78,8 @@ class DrawFormatComboBox(gtk.ComboBox):
def get_ext(self): def get_ext(self):
return self.__drawdoc_list[self.get_active()][4] return self.__drawdoc_list[self.get_active()][4]
def get_printable(self): def is_file_output(self):
return self.__drawdoc_list[self.get_active()][5] return len(self.get_ext()) > 0
def get_clname(self): def get_clname(self):
return self.__drawdoc_list[self.get_active()][6] return self.__drawdoc_list[self.get_active()][5]

View File

@ -46,7 +46,6 @@ import gobject
# GRAMPS modules # GRAMPS modules
# #
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
import Mime
import Utils import Utils
import BaseDoc import BaseDoc
import Config import Config
@ -892,19 +891,8 @@ class GraphvizFormatComboBox(gtk.ComboBox):
def get_format_str(self): def get_format_str(self):
return _FORMATS[self.get_active()]["type"] return _FORMATS[self.get_active()]["type"]
def get_printable(self): def is_file_output(self):
_apptype = _FORMATS[self.get_active()]["mime"] return True
print_label = None
try:
mprog = Mime.get_application(_apptype)
if Utils.search_for(mprog[0]):
print_label = _("Open in %(program_name)s") % { 'program_name':
mprog[1] }
else:
print_label = None
except:
print_label = None
return print_label
def get_clname(self): def get_clname(self):
return _FORMATS[self.get_active()]["type"] return _FORMATS[self.get_active()]["type"]
@ -1083,8 +1071,8 @@ class GraphvizReportDialog(ReportDialog):
yoptions=gtk.SHRINK) yoptions=gtk.SHRINK)
self.row += 1 self.row += 1
self.print_report = gtk.CheckButton(_("Open with application")) self.open_with_app = gtk.CheckButton(_("Open with default viewer"))
self.tbl.attach(self.print_report, 2, 4, self.row, self.row+1, self.tbl.attach(self.open_with_app, 2, 4, self.row, self.row+1,
yoptions=gtk.SHRINK) yoptions=gtk.SHRINK)
self.row += 1 self.row += 1
@ -1122,8 +1110,7 @@ class GraphvizReportDialog(ReportDialog):
paper size/orientation options, but it does need a template paper size/orientation options, but it does need a template
file. Those chances are made here. file. Those chances are made here.
""" """
self.print_report.set_label (_("Open with default application")) self.open_with_app.set_sensitive(True)
self.print_report.set_sensitive(True)
fname = self.target_fileentry.get_full_path(0) fname = self.target_fileentry.get_full_path(0)
(spath, ext) = os.path.splitext(fname) (spath, ext) = os.path.splitext(fname)
@ -1144,7 +1131,7 @@ class GraphvizReportDialog(ReportDialog):
self.options.set_document(self.doc) self.options.set_document(self.doc)
if self.print_report.get_active(): if self.open_with_app.get_active():
self.doc.open_requested() self.doc.open_requested()
def on_ok_clicked(self, obj): def on_ok_clicked(self, obj):

View File

@ -52,7 +52,7 @@ class TextFormatComboBox(gtk.ComboBox):
for item in self.__text_doc_list: for item in self.__text_doc_list:
name = item[0] name = item[0]
self.store.append(row=[name]) self.store.append(row=[name])
if item[6] == active: if item[5] == active:
active_index = index active_index = index
elif not active and name == out_pref: elif not active and name == out_pref:
active_index = index active_index = index
@ -74,8 +74,8 @@ class TextFormatComboBox(gtk.ComboBox):
def get_ext(self): def get_ext(self):
return self.__text_doc_list[self.get_active()][4] return self.__text_doc_list[self.get_active()][4]
def get_printable(self): def is_file_output(self):
return self.__text_doc_list[self.get_active()][5] return len(self.get_ext()) > 0
def get_clname(self): def get_clname(self):
return self.__text_doc_list[self.get_active()][6] return self.__text_doc_list[self.get_active()][5]

View File

@ -461,8 +461,7 @@ class PluginManager(gen.utils.Callback):
self.__cl_list.append( (name, category, report_class, options_class, self.__cl_list.append( (name, category, report_class, options_class,
translated_name, unsupported, require_active) ) translated_name, unsupported, require_active) )
def register_text_doc(self, name, classref, paper, style, ext, def register_text_doc(self, name, classref, paper, style, ext, clname=''):
print_report_label=None, clname=''):
""" """
Register a text document generator. Register a text document generator.
""" """
@ -478,11 +477,10 @@ class PluginManager(gen.utils.Callback):
clname = ext[1:] clname = ext[1:]
self.__textdoc_list.append( (name, classref, paper, style, self.__textdoc_list.append( (name, classref, paper, style,
ext, print_report_label, clname) ) ext, clname) )
self.__mod2text[classref.__module__] = name self.__mod2text[classref.__module__] = name
def register_book_doc(self, name, classref, paper, style, ext, def register_book_doc(self, name, classref, paper, style, ext, clname=''):
print_report_label=None, clname=''):
""" """
Register a text document generator. Register a text document generator.
""" """
@ -497,10 +495,9 @@ class PluginManager(gen.utils.Callback):
if not clname: if not clname:
clname = ext[1:] clname = ext[1:]
self.__bookdoc_list.append( (name, classref, paper, style, ext, self.__bookdoc_list.append( (name, classref, paper, style, ext,
print_report_label, clname) ) clname) )
def register_draw_doc(self, name, classref, paper, style, ext, def register_draw_doc(self, name, classref, paper, style, ext, clname=''):
print_report_label=None, clname=''):
""" """
Register a drawing document generator. Register a drawing document generator.
""" """
@ -514,7 +511,7 @@ class PluginManager(gen.utils.Callback):
if not clname: if not clname:
clname = ext[1:] clname = ext[1:]
self.__drawdoc_list.append( (name, classref, paper, style, ext, self.__drawdoc_list.append( (name, classref, paper, style, ext,
print_report_label, clname) ) clname) )
self.__mod2text[classref.__module__] = name self.__mod2text[classref.__module__] = name
def register_quick_report(self, name, category, run_func, translated_name, def register_quick_report(self, name, category, run_func, translated_name,

View File

@ -1134,7 +1134,7 @@ class BookReportDialog(DocReportDialog):
self.rptlist.append(obj) self.rptlist.append(obj)
self.doc.open(self.target_path) self.doc.open(self.target_path)
if self.print_report.get_active(): if self.open_with_app.get_active():
self.doc.open_requested() self.doc.open_requested()
def make_report(self): def make_report(self):

View File

@ -37,10 +37,8 @@ from gettext import gettext as _
import BaseDoc import BaseDoc
from gen.plug import PluginManager from gen.plug import PluginManager
import Errors import Errors
import Mime
import Utils import Utils
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Constants # Constants
@ -372,6 +370,5 @@ class AsciiDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
#------------------------------------------------------------------------ #------------------------------------------------------------------------
print_label = None print_label = None
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_text_doc(_("Plain Text"), AsciiDoc, 1, 1, ".txt", pmgr.register_text_doc(_("Plain Text"), AsciiDoc, 1, 1, ".txt")
_("Open with default viewer"))

View File

@ -620,6 +620,6 @@ class GtkPrint(CairoDoc):
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_text_doc(_('Print...'), GtkPrint, 1, 1, "", None) pmgr.register_text_doc(_('Print...'), GtkPrint, 1, 1, "")
pmgr.register_draw_doc(_('Print...'), GtkPrint, 1, 1, "", None) pmgr.register_draw_doc(_('Print...'), GtkPrint, 1, 1, "")
pmgr.register_book_doc(_('Print...'), GtkPrint, 1, 1, "", None) pmgr.register_book_doc(_('Print...'), GtkPrint, 1, 1, "")

View File

@ -44,10 +44,8 @@ import const
import Errors import Errors
import BaseDoc import BaseDoc
from QuestionDialog import ErrorDialog, WarningDialog from QuestionDialog import ErrorDialog, WarningDialog
import Mime
import Utils import Utils
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Constant regular expressions # Constant regular expressions
@ -477,7 +475,5 @@ class HtmlDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
# Register the document generator with the GRAMPS plugin system # Register the document generator with the GRAMPS plugin system
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
print_label = None
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_text_doc(_('HTML'), HtmlDoc, 0, 1, ".html", pmgr.register_text_doc(_('HTML'), HtmlDoc, 0, 1, ".html")
_("Open with default viewer"))

View File

@ -43,11 +43,8 @@ import BaseDoc
from gen.plug import PluginManager from gen.plug import PluginManager
import ImgManip import ImgManip
import Errors import Errors
import Mime
import Utils import Utils
_apptype = 'text/x-tex'
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Convert from roman to arabic numbers # Convert from roman to arabic numbers
@ -646,17 +643,5 @@ class LaTeXDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
# Register plugins # Register plugins
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
print_label = None
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
try: pmgr.register_text_doc(_('LaTeX'), LaTeXDoc, 1, 0, ".tex")
mprog = Mime.get_application(_apptype)
if Utils.search_for(mprog[0]):
print_label = _("Open in %(program_name)s") % { 'program_name':
mprog[1]}
else:
print_label = None
except:
print_label = None
pmgr.register_text_doc(_('LaTeX'), LaTeXDoc, 1, 0, ".tex", print_label)

View File

@ -50,7 +50,6 @@ from gen.plug import PluginManager
from ReportBase import ReportUtils from ReportBase import ReportUtils
import ImgManip import ImgManip
import FontScale import FontScale
import Mime
import Utils import Utils
import Errors import Errors
@ -1144,12 +1143,7 @@ class ODFDoc(BaseDoc.BaseDoc, BaseDoc.TextDoc, BaseDoc.DrawDoc):
# Register plugins # Register plugins
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
print_label = _("Open with default viewer")
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_text_doc(_('Open Document Text'), ODFDoc, 1, 1, ".odt")
pmgr.register_text_doc(_('Open Document Text'), pmgr.register_book_doc(_("Open Document Text"), ODFDoc, 1, 1, ".odt")
ODFDoc, 1, 1, ".odt", print_label) pmgr.register_draw_doc(_("Open Document Text"), ODFDoc, 1, 1, ".odt")
pmgr.register_book_doc(_("Open Document Text"),
ODFDoc, 1, 1, ".odt", print_label)
pmgr.register_draw_doc(_("Open Document Text"),
ODFDoc, 1, 1, ".odt", print_label);

View File

@ -37,7 +37,6 @@ import BaseDoc
import Errors import Errors
from Utils import gformat from Utils import gformat
import Mime
import Utils import Utils
def lrgb(grp): def lrgb(grp):
@ -345,5 +344,4 @@ class PSDrawDoc(BaseDoc.BaseDoc,BaseDoc.DrawDoc):
self.f.write('grestore\n') self.f.write('grestore\n')
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_draw_doc(_("PostScript"), PSDrawDoc, 1, 1, ".ps", pmgr.register_draw_doc(_("PostScript"), PSDrawDoc, 1, 1, ".ps")
_("Open with default viewer"))

View File

@ -39,7 +39,6 @@ from gettext import gettext as _
from CairoDoc import CairoDoc from CairoDoc import CairoDoc
from gen.plug import PluginManager from gen.plug import PluginManager
import Utils import Utils
import Mime
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -136,12 +135,10 @@ class PdfDoc(CairoDoc):
def register_docgen(): def register_docgen():
"""Register the docgen with the GRAMPS plugin system. """Register the docgen with the GRAMPS plugin system.
""" """
mtype = _('PDF document') doc_name = _('PDF document')
print_label = _("Open with default viewer")
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_text_doc(mtype, PdfDoc, 1, 1, ".pdf", print_label) pmgr.register_text_doc(doc_name, PdfDoc, 1, 1, ".pdf")
pmgr.register_draw_doc(mtype, PdfDoc, 1, 1, ".pdf", print_label) pmgr.register_draw_doc(doc_name, PdfDoc, 1, 1, ".pdf")
pmgr.register_book_doc(mtype, PdfDoc, 1, 1, ".pdf", print_label) pmgr.register_book_doc(doc_name, PdfDoc, 1, 1, ".pdf")
register_docgen() register_docgen()

View File

@ -38,11 +38,8 @@ import BaseDoc
from gen.plug import PluginManager from gen.plug import PluginManager
import ImgManip import ImgManip
import Errors import Errors
import Mime
import Utils import Utils
mime_type = "application/rtf"
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# RTF uses a unit called "twips" for its measurements. According to the # RTF uses a unit called "twips" for its measurements. According to the
@ -441,5 +438,4 @@ class RTFDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_text_doc(_('RTF document'), RTFDoc, 1, 1, ".rtf", pmgr.register_text_doc(_('RTF document'), RTFDoc, 1, 1, ".rtf")
_("Open with default viewer"))

View File

@ -264,4 +264,4 @@ def units(val):
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
pmgr = PluginManager.get_instance() pmgr = PluginManager.get_instance()
pmgr.register_draw_doc(_("SVG (Scalable Vector Graphics)"), SvgDrawDoc, 1, 1, pmgr.register_draw_doc(_("SVG (Scalable Vector Graphics)"), SvgDrawDoc, 1, 1,
".svg", _("Open with default viewer")) ".svg")