Files
pyfa/tests/test_locale/file_dialog.py
2019-08-10 01:56:43 +03:00

96 lines
3.4 KiB
Python

# noinspection PyPackageRequirements
import os
import sys
import wx
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root to python paths, this allows us to import submodules
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..')))
from _development.helpers_locale import GetPath, GetUnicodePath
class MyForm(wx.Frame):
# ----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "CTRL-O to open, CTRL-S to save", size=(500, 500))
# Add a panel so it looks the correct on all platforms
panel = wx.Panel(self, wx.ID_ANY)
SAVE_FILE_ID = wx.NewId()
self.Bind(wx.EVT_MENU, self.saveFile, id=SAVE_FILE_ID)
LOAD_FILE_ID = wx.NewId()
self.Bind(wx.EVT_MENU, self.loadFile, id=LOAD_FILE_ID)
accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('O'), LOAD_FILE_ID),
(wx.ACCEL_CTRL, ord('S'), SAVE_FILE_ID)]
)
self.SetAcceleratorTable(accel_tbl)
# ----------------------------------------------------------------------
def loadFile(self, event):
with wx.FileDialog(
self, "Open", "", "",
"Python files (*.py)|*.py",
wx.FD_OPEN | wx.FD_FILE_MUST_EXIST
) as dlg:
dlg.ShowModal()
path = dlg.GetPath()
try:
os_walk_without_codec = GetPath(path)
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_without_codec = e
try:
os_walk_with_system_codec = GetPath(path, None, sys.getdefaultencoding())
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_with_system_codec = e
try:
os_walk_unicode_without_codec = GetUnicodePath(path)
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_unicode_without_codec = e
try:
os_walk_unicode_with_system_codec = GetUnicodePath(path, None, sys.getdefaultencoding())
except (UnicodeEncodeError, UnicodeTranslateError, UnicodeError, UnicodeDecodeError, UnicodeWarning, TypeError) as e:
os_walk_unicode_with_system_codec = e
print("Simple print:")
print(path)
print("Type:")
print((type(path)))
print("OS Walk: No Codec:")
print(os_walk_without_codec)
print("OS Walk: Default System Codec:")
print(os_walk_with_system_codec)
print("OS Unicode Walk: No Codec:")
print(os_walk_unicode_without_codec)
print("OS Unicode Walk: Default System Codec:")
print(os_walk_unicode_with_system_codec)
# ----------------------------------------------------------------------
def saveFile(self, event):
with wx.FileDialog(
self, "Save As", "", "",
"Python files (*.py)|*.py",
wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT
) as dlg:
dlg.ShowModal()
dlg.GetPath()
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()