0000995: Don't have write access on import/open in paths containing non-ASCII characters.
svn: r8367
This commit is contained in:
parent
8ed86bc145
commit
044e38b129
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2007-04-08 Brian Matherly <brian@gramps-project.org>
|
||||
* src\Exporter.py
|
||||
* src\ReportBase\_FileEntry.py
|
||||
* src\Editors\_EditMedia.py
|
||||
* src\plugins\WriteCD.py
|
||||
* src\plugins\WritePkg.py
|
||||
* src\plugins\Check.py
|
||||
* src\plugins\EventCmp.py
|
||||
* src\AddMedia.py
|
||||
* src\Utils.py
|
||||
* src\ArgHandler.py
|
||||
* src\DbLoader.py
|
||||
0000995: Don't have write access on import/open in paths containing
|
||||
non-ASCII characters.
|
||||
|
||||
2007-04-08 Brian Matherly <brian@gramps-project.org>
|
||||
* src/plugins/NarrativeWeb.py: 0001006: Narrative Web: Media objects missing
|
||||
title (description), mime_type, or path, are displayed poorly.
|
||||
|
@ -131,8 +131,7 @@ class AddMediaObject(ManagedWindow.ManagedWindow):
|
||||
mobj.set_handle(Utils.create_id())
|
||||
mobj.set_mime_type(None)
|
||||
else:
|
||||
filename = unicode(self.file_text.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(self.file_text.get_filename())
|
||||
full_file = filename
|
||||
|
||||
if self.relpath.get_active():
|
||||
@ -176,7 +175,7 @@ class AddMediaObject(ManagedWindow.ManagedWindow):
|
||||
fn = self.file_text.get_filename()
|
||||
if not fn:
|
||||
return
|
||||
filename = unicode(fn, sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(fn)
|
||||
basename = os.path.basename(filename)
|
||||
(root,ext) = os.path.splitext(basename)
|
||||
old_title = unicode(self.description.get_text())
|
||||
|
@ -743,8 +743,7 @@ class NewNativeDbPrompter:
|
||||
while (True):
|
||||
response = choose.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
filename = unicode(choose.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(choose.get_filename())
|
||||
if filename == None:
|
||||
continue
|
||||
if os.path.splitext(filename)[1] != ".grdb":
|
||||
|
@ -99,8 +99,7 @@ class DbLoader:
|
||||
choose.set_current_folder(get_default_dir())
|
||||
response = choose.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
filename = unicode(choose.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(choose.get_filename())
|
||||
if self.check_errors(filename):
|
||||
return ('','')
|
||||
|
||||
@ -156,8 +155,7 @@ class DbLoader:
|
||||
while (True):
|
||||
response = choose.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
filename = unicode(choose.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(choose.get_filename())
|
||||
if self.check_errors(filename):
|
||||
return ('','')
|
||||
|
||||
@ -219,8 +217,7 @@ class DbLoader:
|
||||
|
||||
response = choose.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
filename = unicode(choose.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(choose.get_filename())
|
||||
if self.check_errors(filename):
|
||||
return ('','')
|
||||
|
||||
@ -311,8 +308,7 @@ class DbLoader:
|
||||
choose.set_current_folder(default_dir)
|
||||
response = choose.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
filename = unicode(choose.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(choose.get_filename())
|
||||
if self.check_errors(filename):
|
||||
return False
|
||||
|
||||
|
@ -46,6 +46,7 @@ import Config
|
||||
import RelLib
|
||||
import Mime
|
||||
import ImgManip
|
||||
import Utils
|
||||
from _EditPrimary import EditPrimary
|
||||
|
||||
from GrampsWidgets import *
|
||||
@ -217,8 +218,7 @@ class EditMedia(EditPrimary):
|
||||
|
||||
status = f.run()
|
||||
if status == gtk.RESPONSE_OK:
|
||||
self.file_path.set_text(unicode(f.get_filename(),
|
||||
sys.getfilesystemencoding()))
|
||||
self.file_path.set_text(Utils.get_unicode_path(f.get_filename()))
|
||||
f.destroy()
|
||||
|
||||
def setup_filepath(self):
|
||||
|
@ -152,8 +152,7 @@ class Exporter:
|
||||
the selected options (format, filename) and present the summary
|
||||
of the proposed action.
|
||||
"""
|
||||
filename = unicode(self.chooser.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(self.chooser.get_filename())
|
||||
name = os.path.split(filename)[1]
|
||||
folder = os.path.split(filename)[0]
|
||||
ix = self.get_selected_format_index()
|
||||
@ -174,8 +173,7 @@ class Exporter:
|
||||
Perform the actual Save As/Export operation.
|
||||
Depending on the success status, set the text for the final page.
|
||||
"""
|
||||
filename = unicode(self.chooser.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
filename = Utils.get_unicode_path(self.chooser.get_filename())
|
||||
Config.set(Config.RECENT_EXPORT_DIR,os.path.split(filename)[0])
|
||||
ix = self.get_selected_format_index()
|
||||
self.pre_save()
|
||||
|
@ -23,6 +23,7 @@
|
||||
import os
|
||||
import sys
|
||||
import gtk
|
||||
import Utils
|
||||
|
||||
class FileEntry(gtk.HBox):
|
||||
def __init__(self,defname,title):
|
||||
@ -68,8 +69,7 @@ class FileEntry(gtk.HBox):
|
||||
f.present()
|
||||
status = f.run()
|
||||
if status == gtk.RESPONSE_OK:
|
||||
self.set_filename(unicode(f.get_filename(),
|
||||
sys.getfilesystemencoding()))
|
||||
self.set_filename(Utils.get_unicode_path(f.get_filename()))
|
||||
f.destroy()
|
||||
|
||||
def set_filename(self,path):
|
||||
|
14
src/Utils.py
14
src/Utils.py
@ -335,6 +335,20 @@ def find_folder( filename):
|
||||
# not found
|
||||
return ''
|
||||
|
||||
def get_unicode_path(path):
|
||||
"""
|
||||
Return the Unicode version of a path string.
|
||||
|
||||
@type path: str
|
||||
@param path: The path to be converted to Unicode
|
||||
@rtype: unicode
|
||||
@return: The Unicode version of path.
|
||||
"""
|
||||
if os.sys.platform == "win32":
|
||||
return unicode(path)
|
||||
else:
|
||||
return unicode(path,sys.getfilesystemencoding())
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
|
@ -502,8 +502,7 @@ class CheckIntegrity:
|
||||
self.bad_photo.append(ObjectId)
|
||||
|
||||
def fs_ok_clicked(obj):
|
||||
name = unicode(fs_top.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
name = Utils.get_unicode_path(fs_top.get_filename())
|
||||
if os.path.isfile(name):
|
||||
obj = self.db.get_object_from_handle(ObjectId)
|
||||
obj.set_path(name)
|
||||
|
@ -417,8 +417,7 @@ class DisplayChart(ManagedWindow.ManagedWindow):
|
||||
f.hide()
|
||||
|
||||
if status == gtk.RESPONSE_OK:
|
||||
name = unicode(f.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
name = Utils.get_unicode_path(f.get_filename())
|
||||
pstyle = BaseDoc.PaperStyle("junk",10,10)
|
||||
doc = ODSDoc.ODSDoc(pstyle,BaseDoc.PAPER_PORTRAIT)
|
||||
doc.creator(self.db.get_researcher().get_name())
|
||||
|
@ -71,6 +71,7 @@ import Mime
|
||||
import const
|
||||
import QuestionDialog
|
||||
import ImgManip
|
||||
import Utils
|
||||
from PluginUtils import register_export
|
||||
|
||||
_title_string = _("Export to CD")
|
||||
@ -235,8 +236,7 @@ class PackageWriter:
|
||||
pass
|
||||
|
||||
def fs_ok_clicked(obj):
|
||||
newfile = unicode(fs_top.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
newfile = Utils.get_unicode_path(fs_top.get_filename())
|
||||
if os.path.isfile(newfile):
|
||||
self.copy_file(newfile,'burn:///%s/%s' % (base,obase))
|
||||
ntype = Mime.get_type(newfile)
|
||||
|
@ -140,8 +140,7 @@ class PackageWriter:
|
||||
pass
|
||||
|
||||
def fs_ok_clicked(obj):
|
||||
name = unicode(fs_top.get_filename(),
|
||||
sys.getfilesystemencoding())
|
||||
name = Utils.get_unicode_path(fs_top.get_filename())
|
||||
if os.path.isfile(name):
|
||||
archive.add(name)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user