Change the way we "launch" files using their default application. Instead of trying to find the application ourselves, use the OS built in functions to open a file with its default application. We no longer show the name of the application that we will open the file with because we don't know.
svn: r11781
This commit is contained in:
@@ -1135,7 +1135,7 @@ class BookReportDialog(DocReportDialog):
|
||||
self.doc.open(self.target_path)
|
||||
|
||||
if self.print_report.get_active():
|
||||
self.doc.print_requested ()
|
||||
self.doc.open_requested ()
|
||||
|
||||
def make_report(self):
|
||||
"""The actual book report. Start it out, then go through the item list
|
||||
|
||||
@@ -153,10 +153,8 @@ class AsciiDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
def close(self):
|
||||
self.f.close()
|
||||
|
||||
if self.print_req:
|
||||
apptype = 'text/plain'
|
||||
prog = Mime.get_application(apptype)
|
||||
Utils.launch(prog[0],self.filename)
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self.filename)
|
||||
|
||||
def get_usable_width(self):
|
||||
return _WIDTH_IN_CHARS
|
||||
@@ -375,16 +373,6 @@ class AsciiDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
#------------------------------------------------------------------------
|
||||
print_label = None
|
||||
pmgr = PluginManager.get_instance()
|
||||
try:
|
||||
mprog = Mime.get_application("text/plain")
|
||||
mtype = Mime.get_description('text/plain')
|
||||
|
||||
if Utils.search_for(mprog[0]):
|
||||
print_label=_("Open in %s") % mprog[1]
|
||||
else:
|
||||
print_label=None
|
||||
|
||||
pmgr.register_text_doc(mtype, AsciiDoc, 1, 1, ".txt", print_label)
|
||||
except:
|
||||
pmgr.register_text_doc(_("Plain Text"), AsciiDoc, 1, 1, ".txt", None)
|
||||
pmgr.register_text_doc(_("Plain Text"), AsciiDoc, 1, 1, ".txt",
|
||||
_("Open with default viewer"))
|
||||
|
||||
|
||||
@@ -336,10 +336,8 @@ class HtmlDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
self.f.close()
|
||||
self.write_support_files()
|
||||
|
||||
if self.print_req:
|
||||
apptype = 'text/html'
|
||||
app = Mime.get_application(apptype)
|
||||
Utils.launch(app[0],self.filename)
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self.filename)
|
||||
|
||||
def write_support_files(self):
|
||||
if self.map:
|
||||
@@ -482,18 +480,5 @@ class HtmlDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
#------------------------------------------------------------------------
|
||||
print_label = None
|
||||
pmgr = PluginManager.get_instance()
|
||||
try:
|
||||
prog = Mime.get_application("text/html")
|
||||
mtype = Mime.get_description("text/html")
|
||||
|
||||
if Utils.search_for(prog[0]):
|
||||
print_label=_("Open in %s") % prog[1]
|
||||
else:
|
||||
print_label=None
|
||||
|
||||
if mtype == _("unknown"):
|
||||
mtype = _('HTML')
|
||||
|
||||
pmgr.register_text_doc(mtype, HtmlDoc, 0, 1, ".html", print_label)
|
||||
except:
|
||||
pmgr.register_text_doc(_('HTML'), HtmlDoc, 0, 1, ".html", None)
|
||||
pmgr.register_text_doc(_('HTML'), HtmlDoc, 0, 1, ".html",
|
||||
_("Open with default viewer"))
|
||||
|
||||
@@ -303,9 +303,8 @@ class LaTeXDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
self.f.write('\\end{enumerate}\n')
|
||||
self.f.write('\n\\end{document}\n')
|
||||
self.f.close()
|
||||
if self.print_req:
|
||||
app = Mime.get_application(_apptype)
|
||||
Utils.launch(app[0], self.filename)
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self.filename)
|
||||
|
||||
def end_page(self):
|
||||
"""Issue a new page command"""
|
||||
|
||||
@@ -434,9 +434,8 @@ class ODFDoc(BaseDoc.BaseDoc, BaseDoc.TextDoc, BaseDoc.DrawDoc):
|
||||
self._write_meta_file()
|
||||
self._write_mimetype_file()
|
||||
self._write_zip()
|
||||
if self.print_req:
|
||||
app = Mime.get_application(_apptype)
|
||||
Utils.launch(app[0], self.filename)
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self.filename)
|
||||
|
||||
def add_media_object(self, file_name, pos, x_cm, y_cm):
|
||||
|
||||
@@ -1147,18 +1146,8 @@ class ODFDoc(BaseDoc.BaseDoc, BaseDoc.TextDoc, BaseDoc.DrawDoc):
|
||||
# Register plugins
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
print_label = None
|
||||
print_label = _("Open with default viewer")
|
||||
pmgr = PluginManager.get_instance()
|
||||
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
|
||||
|
||||
pmgr.register_text_doc(_('Open Document Text'),
|
||||
ODFDoc, 1, 1, ".odt", print_label)
|
||||
|
||||
@@ -46,22 +46,6 @@ def lrgb(grp):
|
||||
|
||||
def coords(grp):
|
||||
return (gformat(grp[0]),gformat(grp[1]))
|
||||
|
||||
_apptype = 'application/postscript'
|
||||
print_label = None
|
||||
|
||||
try:
|
||||
# First try to find a viewer program
|
||||
mprog = Mime.get_application(_apptype)
|
||||
if Utils.search_for(mprog[0]):
|
||||
print_label = _("Open in %(program_name)s") % {'program_name': mprog[1]}
|
||||
except:
|
||||
pass
|
||||
|
||||
if print_label is None:
|
||||
# Second, try to print directly
|
||||
if get_print_dialog_app() is not None:
|
||||
print_label = _("Print a copy")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -152,15 +136,8 @@ class PSDrawDoc(BaseDoc.BaseDoc,BaseDoc.DrawDoc):
|
||||
self.f.write('%d\n' % self.page)
|
||||
self.f.write('%%EOF\n')
|
||||
self.f.close()
|
||||
if self.print_req:
|
||||
if print_label == _("Print a copy"):
|
||||
run_print_dialog (self.filename)
|
||||
elif print_label:
|
||||
app = Mime.get_application(_apptype)
|
||||
Utils.launch(app[0],self.filename)
|
||||
else:
|
||||
# This should never happen
|
||||
print "Invalid print request"
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self.filename)
|
||||
|
||||
def write_text(self,text,mark=None):
|
||||
pass
|
||||
@@ -368,4 +345,5 @@ class PSDrawDoc(BaseDoc.BaseDoc,BaseDoc.DrawDoc):
|
||||
self.f.write('grestore\n')
|
||||
|
||||
pmgr = PluginManager.get_instance()
|
||||
pmgr.register_draw_doc(_("PostScript"), PSDrawDoc, 1, 1, ".ps", print_label);
|
||||
pmgr.register_draw_doc(_("PostScript"), PSDrawDoc, 1, 1, ".ps",
|
||||
_("Open with default viewer"))
|
||||
|
||||
@@ -125,9 +125,8 @@ class PdfDoc(CairoDoc):
|
||||
fontmap.set_resolution(saved_resolution)
|
||||
|
||||
# load the result into an external viewer
|
||||
if self.print_req:
|
||||
app = Mime.get_application('application/pdf')
|
||||
Utils.launch(app[0], self._filename)
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self._filename)
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
@@ -137,17 +136,8 @@ class PdfDoc(CairoDoc):
|
||||
def register_docgen():
|
||||
"""Register the docgen with the GRAMPS plugin system.
|
||||
"""
|
||||
try:
|
||||
mprog = Mime.get_application("application/pdf")
|
||||
mtype = Mime.get_description("application/pdf")
|
||||
|
||||
if Utils.search_for(mprog[0]):
|
||||
print_label = _("Open in %s") % mprog[1]
|
||||
else:
|
||||
print_label = None
|
||||
except:
|
||||
mtype = _('PDF document')
|
||||
print_label = None
|
||||
mtype = _('PDF document')
|
||||
print_label = _("Open with default viewer")
|
||||
|
||||
pmgr = PluginManager.get_instance()
|
||||
pmgr.register_text_doc(mtype, PdfDoc, 1, 1, ".pdf", print_label)
|
||||
|
||||
@@ -129,12 +129,8 @@ class RTFDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
self.f.write('}\n')
|
||||
self.f.close()
|
||||
|
||||
if self.print_req:
|
||||
try:
|
||||
app = Mime.get_application(mime_type)[0]
|
||||
Utils.launch(app,self.filename)
|
||||
except:
|
||||
pass
|
||||
if self.open_req:
|
||||
Utils.open_file_with_default_application(self.filename)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -443,14 +439,5 @@ class RTFDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
pmgr = PluginManager.get_instance()
|
||||
try:
|
||||
mprog = Mime.get_application(mime_type)
|
||||
mtype = Mime.get_description(mime_type)
|
||||
|
||||
if Utils.search_for(mprog[0]):
|
||||
print_label=_("Open in %s") % mprog[1]
|
||||
else:
|
||||
print_label=None
|
||||
pmgr.register_text_doc(mtype, RTFDoc, 1, 1, ".rtf", print_label)
|
||||
except:
|
||||
pmgr.register_text_doc(_('RTF document'), RTFDoc, 1, 1, ".rtf", None)
|
||||
pmgr.register_text_doc(_('RTF document'), RTFDoc, 1, 1, ".rtf",
|
||||
_("Open with default viewer"))
|
||||
|
||||
@@ -263,5 +263,5 @@ def units(val):
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
pmgr = PluginManager.get_instance()
|
||||
pmgr.register_draw_doc(_("SVG (Scalable Vector Graphics)"),
|
||||
SvgDrawDoc, 1, 1, ".svg");
|
||||
pmgr.register_draw_doc(_("SVG (Scalable Vector Graphics)"), SvgDrawDoc, 1, 1,
|
||||
".svg", _("Open with default viewer"))
|
||||
|
||||
Reference in New Issue
Block a user