summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorhikhvar2015-12-29 15:26:24 +0100
committerhikhvar2015-12-29 15:26:24 +0100
commit83bb418b3ad3fd4ac85c8c1f4549f750e65aebe7 (patch)
treeaaaae469e766e710764582b2d329f510d38a1937
parent7120fe0a8a5da606b5f50f51475696c49a63b0c4 (diff)
downloadaur-83bb418b3ad3fd4ac85c8c1f4549f750e65aebe7.tar.gz
Updated to version 0.7.1
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD17
-rw-r--r--wxglade_0.7.0+.diff770
3 files changed, 13 insertions, 786 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f5e71d0e8ffd..9212b72ea570 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,9 @@
+# Generated by mksrcinfo v8
+# Tue Dec 29 14:25:58 UTC 2015
pkgbase = wxglade
pkgdesc = GUI designer for wxWidgets that can generate Python, C++, Perl, Lisp and XRC code
- pkgver = 0.7.0
- pkgrel = 3
+ pkgver = 0.7.1
+ pkgrel = 1
url = http://wxglade.sourceforge.net/
install = wxglade.install
arch = any
@@ -11,12 +13,10 @@ pkgbase = wxglade
makedepends = imagemagick
depends = wxpython
depends = desktop-file-utils
- source = http://downloads.sourceforge.net/sourceforge/wxglade/wxGlade-0.7.0.tar.gz
+ source = http://downloads.sourceforge.net/sourceforge/wxglade/wxGlade-0.7.1.tar.gz
source = wxglade.sh
- source = wxglade_0.7.0+.diff
- sha256sums = 0e7f8dc48bc0da606dad5d5c65188b62b90702e9807b988ff023b460c5fa2f99
+ sha256sums = 07fa3d1f09fa54af4a6a0d8ec7f60bd27b1f873b9289ae5ffb797e8e90e3a8b5
sha256sums = 4549c2034453475f06265fa1c845db3b4c006ab9b17d0386aecd2a276577a6e0
- sha256sums = e3de27c537f082c3df416a0f0e85b503200b0681c9e710669de49dd6a4b1370d
pkgname = wxglade
diff --git a/PKGBUILD b/PKGBUILD
index da7586a8bbec..7977f704054f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,8 +6,8 @@
# Contributor: jht <stefano@inventati.org>
pkgname=wxglade
-pkgver=0.7.0
-pkgrel=3
+pkgver=0.7.1
+pkgrel=1
pkgdesc='GUI designer for wxWidgets that can generate Python, C++, Perl, Lisp and XRC code'
arch=('any')
license=('MIT')
@@ -16,11 +16,9 @@ depends=('wxpython' 'desktop-file-utils')
makedepends=('python2' 'gendesk' 'imagemagick')
install="$pkgname.install"
source=("http://downloads.sourceforge.net/sourceforge/wxglade/wxGlade-$pkgver.tar.gz"
- 'wxglade.sh'
- 'wxglade_0.7.0+.diff')
-sha256sums=('0e7f8dc48bc0da606dad5d5c65188b62b90702e9807b988ff023b460c5fa2f99'
- '4549c2034453475f06265fa1c845db3b4c006ab9b17d0386aecd2a276577a6e0'
- 'e3de27c537f082c3df416a0f0e85b503200b0681c9e710669de49dd6a4b1370d')
+ 'wxglade.sh' )
+sha256sums=('07fa3d1f09fa54af4a6a0d8ec7f60bd27b1f873b9289ae5ffb797e8e90e3a8b5'
+ '4549c2034453475f06265fa1c845db3b4c006ab9b17d0386aecd2a276577a6e0' )
prepare() {
gendesk -f -n --pkgname "$pkgname" --pkgdesc "$pkgdesc" --exec 'wxglade %F' \
@@ -31,7 +29,6 @@ prepare() {
package() {
mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/share/doc/wxGlade"
- patch -p1 -f -d "wxGlade-$pkgver" -i ../wxglade_0.7.0+.diff
install -Dm644 "wxGlade-$pkgver/docs/man/$pkgname.1" \
"$pkgdir/usr/share/man/man1/$pkgname.1"
rm -rf "wxGlade-$pkgver/docs/man"
@@ -41,8 +38,8 @@ package() {
python2 -m compileall "$pkgdir/usr/share/wxGlade/"
install -Dm755 "$srcdir/$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
- install -Dm644 "wxGlade-$pkgver/license.txt" \
- "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+ install -Dm644 "wxGlade-$pkgver/LICENSE.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt"
install -Dm644 "$pkgname.png" \
"$pkgdir/usr/share/pixmaps/$pkgname.png"
install -Dm644 "$pkgname.desktop" \
diff --git a/wxglade_0.7.0+.diff b/wxglade_0.7.0+.diff
deleted file mode 100644
index 4139105c59a1..000000000000
--- a/wxglade_0.7.0+.diff
+++ /dev/null
@@ -1,770 +0,0 @@
-diff --git a/application.py b/application.py
---- a/application.py
-+++ b/application.py
-@@ -694,17 +694,20 @@ class Application(object):
- self.notebook,
- )
-
-- out = misc.UnicodeStringIO(self.encoding)
-+ # temporary buffer for XML
-+ tmp_xml = misc.UnicodeStringIO('utf-8')
-
- from xml_parse import CodeWriter
- try:
- # generate the code from the xml buffer
-- cw = self.get_language()
-- if preview and cw == 'python': # of course cw == 'python', but...
-- overwrite = self.overwrite
-+ codewriter = self.get_language()
-+
-+ # save and overwrite some code generation settings
-+ if preview and codewriter == 'python':
-+ overwrite_save = self.overwrite
- self.overwrite = True
-- class_names = common.app_tree.write(out) # write the xml onto a
-- # temporary buffer
-+
-+ class_names = common.app_tree.write(tmp_xml)
-
- out_path = os.path.expanduser(self.output_path.strip())
- if not os.path.isabs(out_path) and self.filename:
-@@ -713,15 +716,15 @@ class Application(object):
- out_path = os.path.normpath(out_path)
- else:
- out_path = None
-- CodeWriter(
-- common.code_writers[cw],
-- out.getvalue(), True,
-- preview=preview,
-- out_path=out_path,
-- class_names=class_names,
-- )
-- if preview and cw == 'python':
-- self.overwrite = overwrite
-+
-+ CodeWriter(common.code_writers[codewriter], tmp_xml.getvalue(),
-+ True, preview=preview, out_path=out_path,
-+ class_names=class_names)
-+
-+ # restore saved settings
-+ if preview and codewriter == 'python':
-+ self.overwrite = overwrite_save
-+
- except (errors.WxgBaseException, IOError, OSError), inst:
- wx.MessageBox(
- _("Error generating code:\n%s") % inst,
-diff --git a/bugdialog_ui.py b/bugdialog_ui.py
---- a/bugdialog_ui.py
-+++ b/bugdialog_ui.py
-@@ -17,7 +17,7 @@ import gettext
- class UIBugDialog(wx.Dialog):
- def __init__(self, *args, **kwds):
- # begin wxGlade: UIBugDialog.__init__
-- kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.THICK_FRAME
-+ kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER
- wx.Dialog.__init__(self, *args, **kwds)
- self.notebook_1 = wx.Notebook(self, wx.ID_ANY, style=wx.NB_BOTTOM)
- self.nb1_pane_summary = wx.Panel(self.notebook_1, wx.ID_ANY)
-diff --git a/common.py b/common.py
---- a/common.py
-+++ b/common.py
-@@ -6,10 +6,13 @@ Global variables
- @license: MIT (see license.txt) - THIS PROGRAM COMES WITH NO WARRANTY
- """
-
-+import codecs
- import ConfigParser
- import logging
-+import os
- import os.path
- import sys
-+import types
- import zipfile
-
- import config
-@@ -988,23 +991,28 @@ def make_object_button(widget, icon_path
-
- def encode_from_xml(label, encoding=None):
- """\
-- Returns a str which is the encoded version of the unicode label
-+ Returns a str which is the encoded version of the unicode msg
- """
- if encoding is None:
- encoding = app_tree.app.encoding
- return label.encode(encoding, 'replace')
-
-
--def encode_to_xml(label, encoding=None):
-+def encode_to_xml(item):
- """\
-- returns a utf-8 encoded representation of label. This is equivalent to:
-- str(label).decode(encoding).encode('utf-8')
-+ Decode the item to a Unicode string. The encoding to UTF-8 will be done
-+ later.
-+
-+ Non-string items will be converted to string automatically.
-+
-+ @rtype: unicode
- """
-- if encoding is None:
-- encoding = app_tree.app.encoding
-- if type(label) == type(u''):
-- return label.encode('utf-8')
-- return str(label).decode(encoding).encode('utf-8')
-+ if isinstance(item, types.UnicodeType):
-+ return item
-+ if not isinstance(item, types.StringTypes):
-+ item = str(item)
-+ item = item.decode(app_tree.app.encoding)
-+ return item
-
-
- def save_file(filename, content, which='wxg'):
-@@ -1012,6 +1020,8 @@ def save_file(filename, content, which='
- Save I{content} to file named I{filename} and, if user's preferences say
- so and I{filename} exists, makes a backup copy of it.
-
-+ @note: The content of 'wxg' files must be Unicode always!
-+
- @note: Exceptions that may occur while performing the operations are not
- handled.
-
-@@ -1022,6 +1032,7 @@ def save_file(filename, content, which='
- @param which: Kind of backup: 'wxg' or 'codegen'
- """
- if which == 'wxg':
-+ assert isinstance(content, types.UnicodeType)
- do_backup = config.preferences.wxg_backup
- elif which == 'codegen':
- do_backup = config.preferences.codegen_backup
-@@ -1030,8 +1041,7 @@ def save_file(filename, content, which='
- 'Unknown value "%s" for parameter "which"!' % which
- )
- try:
-- if do_backup and \
-- filename not in config._backed_up and \
-+ if do_backup and filename not in config._backed_up and \
- os.path.isfile(filename):
- # make a backup copy of filename
- infile = open(filename)
-@@ -1044,13 +1054,20 @@ def save_file(filename, content, which='
- savecontent = True
- if os.path.isfile(filename):
- oldfile = open(filename)
-- savecontent = (oldfile.read() != content)
-+ oldcontent = oldfile.read()
-+ if which == 'wxg':
-+ # decode from utf-8 to unicode
-+ oldcontent = oldcontent.decode('utf-8')
-+ savecontent = (oldcontent != content)
- oldfile.close()
- if savecontent:
- directory = os.path.dirname(filename)
- if directory and not os.path.isdir(directory):
- os.makedirs(directory)
- outfile = open(filename, 'w')
-+ if which == 'wxg':
-+ # encode from unicode to utf-8
-+ content = content.encode('utf-8')
- outfile.write(content)
- outfile.close()
- finally:
-@@ -1226,9 +1243,16 @@ def init_paths():
- config.appdata_path, 'file_history.txt'
- )
-
-- config.log_file = os.path.join(
-- config.appdata_path, 'wxglade.log'
-- )
-+ config.log_file = os.path.join(config.appdata_path, 'wxglade.log')
-+
-+ # create missing application data directory, otherwise log initialisation
-+ # will failed with an IOError "No such file or directory"
-+ # The file logger will be initialised after this function returns.
-+ if not os.path.isdir(config.appdata_path):
-+ try:
-+ os.makedirs(config.appdata_path, 0700)
-+ except (IOError, OSError), e:
-+ logging.error(_('Failed to create config directory: "%s"'), e)
-
-
- def init_preferences():
-@@ -1255,16 +1279,12 @@ def save_preferences():
- os.makedirs(path)
- # always save the file history
- if config.use_file_history:
-- fh = palette.file_history
-- count = fh.GetCount()
-- encoding = 'utf-8'
-- filenames = [encode_to_xml(fh.GetHistoryFile(i), encoding)
-- for i in
-- range(min(config.preferences.number_history, count))]
-- outfile = open(config.history_file, 'w')
-- print >> outfile, "# -*- coding: %s -*-" % encoding
-- for filename in filenames:
-- print >> outfile, filename
-+ content = u'# -*- coding: utf-8 -*-\n'
-+ for pos in range(min(config.preferences.number_history,
-+ palette.file_history.GetCount())):
-+ content += u'%s\n' % palette.file_history.GetHistoryFile(pos)
-+ outfile = codecs.open(config.history_file, 'w', encoding='utf-8')
-+ outfile.write(content)
- outfile.close()
- if config.preferences.changed:
- outfile = open(config.rc_file, 'w')
-@@ -1280,22 +1300,14 @@ def load_history():
- @see: L{config.history_file}
- @see: L{config.use_file_history}
-
-- @rtype: list[str]
-+ @rtype: list[unicode]
- """
- try:
-- history = open(config.history_file)
-- lines = history.readlines()
-- if lines and lines[0].startswith('# -*- coding:'):
-- try:
-- encoding = 'utf-8'
-- lines = [e.decode(encoding) for e in lines[1:]]
-- except Exception:
-- logging.exception(_("Internal Error"))
-- lines = lines[1:]
-- history.close()
-- if config.use_gui:
-- import misc
-- lines = [misc.wxstr(e, 'utf-8') for e in lines]
-+ infile = codecs.open(config.history_file, encoding='utf-8')
-+ lines = infile.readlines()
-+ if lines and lines[0].startswith(u'# -*- coding:'):
-+ lines = lines[1:]
-+ infile.close()
- return lines
- except IOError:
- # don't consider this an error
-@@ -1389,6 +1401,15 @@ class Preferences(ConfigParser.ConfigPar
- self.changed = True
-
- def set_geometry(self, name, geometry):
-+ """\
-+ Save the current widget position and size
-+
-+ @param name: Widget name
-+ @type name: str
-+
-+ @param geometry: Position and Size
-+ @type geometry: (int, int, int, int)
-+ """
- if geometry is not None:
- section = 'geometry_%s' % name
- if not self.has_section(section):
-@@ -1399,14 +1420,25 @@ class Preferences(ConfigParser.ConfigPar
- self.set(section, 'h', geometry[3])
-
- def get_geometry(self, name):
-+ """\
-+ Return saved widget position and size.
-+
-+ @param name: Widget name
-+ @type name: str
-+
-+ @rtype: (int, int, int, int) | None
-+ """
- section = 'geometry_%s' % name
-- if self.has_section(section):
-- x = self.get(section, 'x')
-- y = self.get(section, 'y')
-- w = self.get(section, 'w')
-- h = self.get(section, 'h')
-+ if not self.has_section(section):
-+ return None
-+ try:
-+ x = int(self.get(section, 'x'))
-+ y = int(self.get(section, 'y'))
-+ w = int(self.get(section, 'w'))
-+ h = int(self.get(section, 'h'))
- return x, y, w, h
-- else:
-- return None
-+ except:
-+ pass
-+ return None
-
- # end of class Preferences
-diff --git a/config.py b/config.py
---- a/config.py
-+++ b/config.py
-@@ -385,11 +385,7 @@ def get_version(suffix=True):
- @see: L{read_version_file()}
- @see: L{get_hg_version()}
- """
-- release = read_version_file()
-- if not release:
-- release = get_hg_version()
-- if not release:
-- release = 'not found'
-+ release = '0.7.0'
-
- if suffix and hasattr(sys, 'frozen'):
- release = '%s (standalone edition)' % release
-diff --git a/log.py b/log.py
---- a/log.py
-+++ b/log.py
-@@ -374,15 +374,20 @@ def init(filename='wxglade.log', encodin
-
- # instantiate file handler
- if filename:
-- file_logger = logging.handlers.RotatingFileHandler(
-- filename,
-- maxBytes=100 * 1024,
-- encoding=encoding,
-- backupCount=1,
-- )
-- file_logger.setFormatter(file_formatter)
-- file_logger.setLevel(logging.NOTSET)
-- logger.addHandler(file_logger)
-+ log_directory = os.path.dirname(filename)
-+ if not os.path.isdir(log_directory):
-+ logging.warning(_('Logging directory "%s" does not exists. Skip '
-+ 'file logger initialisation!'), log_directory)
-+ else:
-+ file_logger = logging.handlers.RotatingFileHandler(
-+ filename,
-+ maxBytes=100 * 1024,
-+ encoding=encoding,
-+ backupCount=1,
-+ )
-+ file_logger.setFormatter(file_formatter)
-+ file_logger.setLevel(logging.NOTSET)
-+ logger.addHandler(file_logger)
-
- # instantiate string handler
- string_logger = StringHandler(storeAsUnicode=False)
-diff --git a/main.py b/main.py
---- a/main.py
-+++ b/main.py
-@@ -14,6 +14,7 @@ import os
- import os.path
- import sys
- import time
-+import types
- import wx
- from xml.sax import SAXParseException
-
-@@ -181,7 +182,7 @@ class wxGladeFrame(wx.Frame):
-
- # load the available code generators
- core_buttons, local_buttons, sizer_buttons = common.init_codegen()
--
-+
- append_item = misc.append_item
- self.TREE_ID = TREE_ID = wx.NewId()
- append_item(view_menu, TREE_ID, _("Show &Tree\tF2"))
-@@ -209,11 +210,11 @@ class wxGladeFrame(wx.Frame):
- GENERATE_CODE_ID = wx.NewId()
- append_item(file_menu, GENERATE_CODE_ID, _("&Generate Code\tCtrl+G"),
- wx.ART_EXECUTABLE_FILE)
--
-+
- file_menu.AppendSeparator()
- IMPORT_ID = wx.NewId()
- append_item(file_menu, IMPORT_ID, _("&Import from XRC...\tCtrl+I"))
--
-+
- EXIT_ID = wx.NewId()
- file_menu.AppendSeparator()
- append_item(file_menu, EXIT_ID, _('E&xit\tCtrl+Q'), wx.ART_QUIT)
-@@ -247,7 +248,7 @@ class wxGladeFrame(wx.Frame):
- files.reverse()
- for path in files:
- self.file_history.AddFileToHistory(path.strip())
--
-+
- def open_from_history(event):
- if not self.ask_save():
- return
-@@ -274,9 +275,9 @@ class wxGladeFrame(wx.Frame):
- else:
- common.remove_autosaved(filename)
- self._open_app(filename)
--
-+
- wx.EVT_MENU_RANGE(self, wx.ID_FILE1, wx.ID_FILE9, open_from_history)
--
-+
- wx.EVT_MENU(self, TREE_ID, self.show_tree)
- wx.EVT_MENU(self, PROPS_ID, self.show_props_window)
- wx.EVT_MENU(self, RAISE_ID, self.raise_all)
-@@ -375,7 +376,7 @@ class wxGladeFrame(wx.Frame):
- sizer.Add(sb)
- self.SetSizer(sizer)
- sizer.Fit(self)
--
-+
- # Properties window
- frame_style = wx.DEFAULT_FRAME_STYLE
- frame_tool_win = config.preferences.frame_tool_win
-@@ -383,13 +384,13 @@ class wxGladeFrame(wx.Frame):
- frame_style |= wx.FRAME_NO_TASKBAR | wx.FRAME_FLOAT_ON_PARENT
- frame_style &= ~wx.MINIMIZE_BOX
- if wx.Platform != '__WXGTK__': frame_style |= wx.FRAME_TOOL_WINDOW
--
-+
- self.frame2 = wx.Frame(self, -1, _('Properties - <%s>' % _('app')),
- style=frame_style)
- self.frame2.SetBackgroundColour(wx.SystemSettings_GetColour(
- wx.SYS_COLOUR_BTNFACE))
- self.frame2.SetIcon(icon)
--
-+
- sizer_tmp = wx.BoxSizer(wx.VERTICAL)
- property_panel = wxGladePropertyPanel(self.frame2, -1)
-
-@@ -402,7 +403,7 @@ class wxGladeFrame(wx.Frame):
- sz.Show(misc.hidden_property_panel, False)
- self.property_frame = self.frame2
- #--------------------------------------------------------
--
-+
- property_panel.SetAutoLayout(True)
- self.hidden_frame = wx.Frame(self, -1, "")
- self.hidden_frame.Hide()
-@@ -420,7 +421,7 @@ class wxGladeFrame(wx.Frame):
- self.tree_frame = wx.Frame(self, -1, _('wxGlade: Tree'),
- style=frame_style)
- self.tree_frame.SetIcon(icon)
--
-+
- app = application.Application(common.property_panel)
- common.app_tree = WidgetTree(self.tree_frame, app)
- self.tree_frame.SetSize((300, 300))
-@@ -436,45 +437,60 @@ class wxGladeFrame(wx.Frame):
- wx.EVT_CLOSE(self.tree_frame, on_tree_frame_close)
- # check to see if there are some remembered values
- prefs = config.preferences
-+
-+ self_geometry = None
-+ property_geomentry = None
-+ tree_geometry = None
-+
- if prefs.remember_geometry:
-- #self._logger.debug('initializing geometry')
-- try:
-- x, y, w, h = prefs.get_geometry('main')
-- misc.set_geometry(self, (x, y))
-- except Exception:
-- pass
-- misc.set_geometry(self.frame2, prefs.get_geometry('properties'))
-- misc.set_geometry(self.tree_frame, prefs.get_geometry('tree'))
-- else:
-+ self_geometry = prefs.get_geometry('main')
-+ if isinstance(self_geometry, types.TupleType):
-+ self_geometry = wx.Rect(*self_geometry)
-+
-+ property_geomentry = prefs.get_geometry('properties')
-+ if isinstance(property_geomentry, types.TupleType):
-+ property_geomentry = wx.Rect(*property_geomentry)
-+
-+ tree_geometry = prefs.get_geometry('tree')
-+ if isinstance(tree_geometry, types.TupleType):
-+ tree_geometry = wx.Rect(*tree_geometry)
-+
-+ if not self_geometry:
-+ self_geometry = wx.Rect()
-+ self_geometry.TopLeft = wx.Display().GetClientArea().GetTopLeft()
-+ self_geometry.Size = (-1, -1)
-+
-+ self._set_geometry(self, self_geometry)
-+ self.Show()
-+ self_geometry.Size = self.GetSize()
-+
-+ if not property_geomentry:
-+ property_geomentry = wx.Rect()
-+ property_geomentry.Position = self_geometry.BottomLeft
-+ property_geomentry.Size = (345, 350)
-+ # sometimes especially on GTK GetSize seems to ignore window
-+ # decorations (bug still exists on wx3)
-+ if wx.Platform != '__WXMSW__':
-+ property_geomentry.Y += 40
-+
-+ # set size on Mac manually
- if wx.Platform == '__WXMAC__':
-- self.frame2.SetSize((345, 384)) # I've been told this is OK...
-- self.SetPosition((0, 45)) # to avoid the OS X menubar
-- else:
-- self.frame2.SetSize((max(self.GetSize()[0], 250), 350))
-- self.SetPosition((0, 0))
-- x, y = self.GetPosition()
-- h = self.GetSize()[1]
-- w = self.frame2.GetSize()[0]
-+ property_geomentry.Size = (345, 384)
-+
-+ self._set_geometry(self.frame2, property_geomentry)
-+ self.frame2.Show()
-+
-+ if not tree_geometry:
-+ tree_geometry = wx.Rect()
-+ tree_geometry.Position = self_geometry.TopRight
-+ tree_geometry.Size = (250, 350)
-+ # sometimes especially on GTK GetSize seems to ignore window
-+ # decorations (bug still exists on wx3)
- if wx.Platform != '__WXMSW__':
-- # under X, IceWM (and Sawfish, too), GetSize seems to ignore
-- # window decorations
-- h += 60
-- w += 10
-- self.frame2.SetPosition((x, y+h))
-- self.tree_frame.SetPosition((x+w, y))
-- self.Show()
-+ tree_geometry.X += 10
-+
-+ self._set_geometry(self.tree_frame, tree_geometry)
- self.tree_frame.Show()
-- self.frame2.Show()
--
-- #self._skip_activate = False
--## if frame_tool_win:
--## def on_iconize(event):
--## if event.Iconized():
--## self.hide_all()
--## else:
--## self.show_and_raise()
--## event.Skip()
--## wx.EVT_ICONIZE(self, on_iconize)
-
- if wx.Platform == '__WXMSW__':
- import about
-@@ -522,7 +538,7 @@ class wxGladeFrame(wx.Frame):
- add_to_history=False):
- common.app_tree.app.saved = False
- common.app_tree.app.filename = None
-- self.user_message(_("Recovery from auto save complete"))
-+ self.user_message(_("Auto save loaded"))
- common.remove_autosaved()
- else:
- common.remove_autosaved()
-@@ -653,7 +669,7 @@ class wxGladeFrame(wx.Frame):
- wildcard="wxGlade files (*.wxg)|*.wxg|"
- "wxGlade Template files (*.wgt)|*.wgt|"
- "XML files (*.xml)|*.xml|All files|*",
-- flags=wx.OPEN|wx.FILE_MUST_EXIST,
-+ flags=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST,
- default_path=self.cur_dir)
- if infile:
- if common.check_autosaved(infile) and \
-@@ -764,10 +780,13 @@ class wxGladeFrame(wx.Frame):
- if config.preferences.autosave and self.autosave_timer is not None:
- self.autosave_timer.Start()
-
-- self.user_message(
-- _("Loaded %s (%.2f seconds)") %
-- (misc.wxstr(common.app_tree.app.filename), end - start)
-- )
-+ duration = end - start
-+ if infilename:
-+ self.user_message(
-+ _("Loaded %s in %.2f seconds") % (
-+ misc.wxstr(os.path.basename(infilename)), duration))
-+ else:
-+ self.user_message(_("Loaded in %.2f seconds") % duration)
-
- return True
-
-@@ -806,7 +825,7 @@ class wxGladeFrame(wx.Frame):
- if config.preferences.autosave and \
- self.autosave_timer is not None:
- self.autosave_timer.Start()
-- self.user_message(_("Saved %s") % filename)
-+ self.user_message(_("Saved %s") % os.path.basename(filename))
-
- def save_app_as(self, event):
- """\
-@@ -849,11 +868,11 @@ class wxGladeFrame(wx.Frame):
- # first, let's see if we have to save the geometry...
- prefs = config.preferences
- if prefs.remember_geometry:
-- prefs.set_geometry('main', misc.get_geometry(self))
-+ prefs.set_geometry('main', self._get_geometry(self))
- prefs.set_geometry('tree',
-- misc.get_geometry(self.tree_frame))
-+ self._get_geometry(self.tree_frame))
- prefs.set_geometry('properties',
-- misc.get_geometry(self.frame2))
-+ self._get_geometry(self.frame2))
- prefs.changed = True
- common.app_tree.clear()
- if self.about_box:
-@@ -919,7 +938,7 @@ class wxGladeFrame(wx.Frame):
- infilename = misc.FileSelector(
- _("Import file"),
- wildcard="XRC files (*.xrc)" "|*.xrc|All files|*",
-- flags=wx.OPEN | wx.FILE_MUST_EXIST,
-+ flags=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST,
- default_path=self.cur_dir)
- if infilename:
- ibuffer = StringIO.StringIO()
-@@ -945,6 +964,41 @@ class wxGladeFrame(wx.Frame):
- "File->Save As Template..."), _("Information"),
- style=wx.OK|wx.ICON_INFORMATION)
-
-+ def _set_geometry(self, win, geometry):
-+ """\
-+ Set position and/or size of widget.
-+
-+ @param win: Frame to set position and/or size
-+ @type win: wx.Frame
-+
-+ @param geometry: Position and Size
-+ @type geometry: (int, int, int, int)
-+ """
-+ assert isinstance(geometry, (wx.Point, wx.Rect))
-+
-+ if not geometry:
-+ return
-+
-+ if isinstance(geometry, wx.Point):
-+ win.SetPosition(geometry)
-+ else:
-+ win.SetDimensions(*geometry.Get())
-+
-+ def _get_geometry(self, widget):
-+ """\
-+ Return widgets position and size.
-+
-+ @param widget: Frame to return position and/or size
-+ @type widget: wx.Frame
-+
-+ @rtype: wx.Rect | None
-+ """
-+ pos_size = widget.Rect
-+ client_area = wx.Display().ClientArea
-+ if client_area.Contains(pos_size.TopLeft):
-+ return pos_size.Get()
-+ return None
-+
- # end of class wxGladeFrame
-
-
-diff --git a/misc.py b/misc.py
---- a/misc.py
-+++ b/misc.py
-@@ -462,28 +462,6 @@ def _reverse_dict(src):
- ret[val] = key
- return ret
-
--
--def get_geometry(win):
-- x, y = win.GetPosition()
-- w, h = win.GetSize()
-- if 0 <= x <= wx.SystemSettings_GetMetric(wx.SYS_SCREEN_X) and \
-- 0 <= y <= wx.SystemSettings_GetMetric(wx.SYS_SCREEN_Y):
-- return x, y, w, h
-- return None
--
--
--def set_geometry(win, geometry):
-- if geometry is None:
-- return
-- try:
-- if len(geometry) == 4:
-- win.SetDimensions(*[int(x) for x in geometry])
-- else:
-- win.SetPosition([int(x) for x in geometry])
-- except Exception:
-- logging.exception(_('Internal Error'))
--
--
- # snagged out of the Python cookbook
- def import_name(module_path, name):
- import imp
-diff --git a/templates_ui.py b/templates_ui.py
---- a/templates_ui.py
-+++ b/templates_ui.py
-@@ -21,7 +21,7 @@ except AttributeError:
- class TemplateInfoDialog(wx.Dialog):
- def __init__(self, *args, **kwds):
- # begin wxGlade: TemplateInfoDialog.__init__
-- kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.THICK_FRAME
-+ kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX
- wx.Dialog.__init__(self, *args, **kwds)
- self.template_name = wx.TextCtrl(self, wx.ID_ANY, "")
- self.author = wx.TextCtrl(self, wx.ID_ANY, "")
-diff --git a/widgets/bitmap_button/bitmap_button.py b/widgets/bitmap_button/bitmap_button.py
---- a/widgets/bitmap_button/bitmap_button.py
-+++ b/widgets/bitmap_button/bitmap_button.py
-@@ -40,10 +40,9 @@ class EditBitmapButton(ManagedBase, Edit
-
- # initialise properties remaining staff
- self.access_functions['bitmap'] = (self.get_bitmap, self.set_bitmap)
-- self.properties['bitmap'] = FileDialogProperty(self, 'bitmap', None,
-- style=wx.OPEN |
-- wx.FILE_MUST_EXIST,
-- can_disable=False, label=_("bitmap"))
-+ self.properties['bitmap'] = FileDialogProperty(
-+ self, 'bitmap', None, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST,
-+ can_disable=False, label=_("bitmap"))
- self.access_functions['default'] = (self.get_default, self.set_default)
- self.access_functions['style'] = (self.get_style, self.set_style)
- self.properties['default'] = CheckBoxProperty(self, 'default', None, label=_("default"))
-@@ -51,7 +50,9 @@ class EditBitmapButton(ManagedBase, Edit
- self.access_functions['disabled_bitmap'] = (self.get_disabled_bitmap,
- self.set_disabled_bitmap)
- self.properties['disabled_bitmap'] = FileDialogProperty(
-- self, 'disabled_bitmap', None, style=wx.OPEN|wx.FILE_MUST_EXIST, label=_("disabled bitmap"))
-+ self, 'disabled_bitmap', None,
-+ style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST,
-+ label=_("disabled bitmap"))
- self.properties['style'] = CheckListProperty(
- self, 'style', self.widget_writer)
-
-diff --git a/widgets/dialog/dialog.py b/widgets/dialog/dialog.py
---- a/widgets/dialog/dialog.py
-+++ b/widgets/dialog/dialog.py
-@@ -37,9 +37,9 @@ class EditDialog(TopLevelBase, EditStyle
- # icon property
- self.icon = ""
- self.access_functions['icon'] = (self.get_icon, self.set_icon)
-- prop['icon'] = FileDialogProperty(self, 'icon', None,
-- style=wx.OPEN|wx.FILE_MUST_EXIST,
-- can_disable=True, label=_("Icon"))
-+ prop['icon'] = FileDialogProperty(
-+ self, 'icon', None, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST,
-+ can_disable=True, label=_("Icon"))
- # centered property
- self.centered = False
- self.access_functions['centered'] = (self.get_centered,
-diff --git a/widgets/frame/frame.py b/widgets/frame/frame.py
---- a/widgets/frame/frame.py
-+++ b/widgets/frame/frame.py
-@@ -51,7 +51,7 @@ class EditFrame(TopLevelBase, EditStyles
- self, 'toolbar', label=_('Has ToolBar'))
- # icon property
- prop['icon'] = FileDialogProperty(
-- self, 'icon', style=wx.OPEN | wx.FILE_MUST_EXIST,
-+ self, 'icon', style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST,
- label=_("icon"))
- # centered property
- self.centered = False
-diff --git a/widgets/static_bitmap/static_bitmap.py b/widgets/static_bitmap/static_bitmap.py
---- a/widgets/static_bitmap/static_bitmap.py
-+++ b/widgets/static_bitmap/static_bitmap.py
-@@ -38,7 +38,7 @@ class EditStaticBitmap(ManagedBase, Edit
- self.access_functions['attribute'] = (self.get_attribute,
- self.set_attribute)
- self.bitmap_prop = FileDialogProperty(self, 'bitmap', None,
-- style=wx.OPEN | wx.FILE_MUST_EXIST, can_disable=False,
-+ style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST, can_disable=False,
- label=_("bitmap"))
- prop = self.properties
- prop['bitmap'] = self.bitmap_prop
-diff --git a/wxglade.py b/wxglade.py
---- a/wxglade.py
-+++ b/wxglade.py
-@@ -50,7 +50,7 @@ Copyright (C) 2007-2012 Alberto Griggio
- Copyright (C) 2011-2014 Carsten Grohmann
- License MIT: The MIT License
- <http://www.opensource.org/licenses/mit-license.php>""") %
-- config.version
-+ config.get_version()
- )
- parser.add_option(
- '-h',