diff --git a/README.md b/README.md index c70c7172..24ac6fbe 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,6 @@ Although most dependencies can be found in the windows-dependencies directory, w * [Python,](http://python.org) version 2.7.14 If you want to build both x86 and x64 binaries, you can install python x86 to C:\python27 and python x64 to C:\python27x64, for example. -* [wxPython](http://www.wxpython.org) for Python 2.7, version 3.0.2.0 * [Python windows extensions (pywin32)](http://www.sourceforge.net/projects/pywin32/) for python 2.7, build 221 * [PyEnchant,](http://pythonhosted.org/pyenchant/) version 1.6.6. x64 version has been built by TWBlue developers, so you only will find it in windows-dependencies folder @@ -57,6 +56,7 @@ setuptools installs a script, called easy_install. You can find it in the python The -z switch unzips the package, instead of installing it compressed. If you add the --upgrade switch, you can upgrade a package to its latest version. The following packages need to be installed: +* wxpython * pypubsub==3.3.0 * configobj * requests-oauthlib @@ -74,7 +74,7 @@ setuptools installs a script, called easy_install. You can find it in the python easy_install will automatically get the additional libraries that these packages need to work properly. Run the following command to quickly install and upgrade all packages and their dependencies: -easy_install -Z --upgrade six configobj markdown future requests oauthlib requests-oauthlib requests-toolbelt pypubsub==3.3.0 pygeocoder arrow python-dateutil futures winpaths PySocks win_inet_pton yandex.translate idna chardet urllib3 youtube-dl python-vlc +easy_install -Z --upgrade wxpython six configobj markdown future requests oauthlib requests-oauthlib requests-toolbelt pypubsub==3.3.0 pygeocoder arrow python-dateutil futures winpaths PySocks win_inet_pton yandex.translate idna chardet urllib3 youtube-dl python-vlc #### Other dependencies diff --git a/src/controller/buffersController.py b/src/controller/buffersController.py index c563411b..79f1d2df 100644 --- a/src/controller/buffersController.py +++ b/src/controller/buffersController.py @@ -610,7 +610,7 @@ class baseBufferController(bufferController): # fix this: original_date = arrow.get(self.session.db[self.name][self.buffer.list.get_selected()]["created_at"], "ddd MMM D H:m:s Z YYYY", locale="en") ts = original_date.humanize(locale=languageHandler.getLanguage()) - self.buffer.list.list.SetStringItem(self.buffer.list.get_selected(), 2, ts) + self.buffer.list.list.SetItem(self.buffer.list.get_selected(), 2, ts) if self.session.settings['sound']['indicate_audio'] and utils.is_audio(tweet): self.session.sound.play("audio.ogg") if self.session.settings['sound']['indicate_geo'] and utils.is_geocoded(tweet): diff --git a/src/controller/messages.py b/src/controller/messages.py index c9d68d65..259e0505 100644 --- a/src/controller/messages.py +++ b/src/controller/messages.py @@ -29,8 +29,6 @@ class basicTweet(object): self.message = getattr(message, messageType)(title, caption, text, *args, **kwargs) widgetUtils.connect_event(self.message.spellcheck, widgetUtils.BUTTON_PRESSED, self.spellcheck) widgetUtils.connect_event(self.message.attach, widgetUtils.BUTTON_PRESSED, self.attach) -# if system == "Windows": -# if messageType != "dm": widgetUtils.connect_event(self.message.text, widgetUtils.ENTERED_TEXT, self.text_processor) widgetUtils.connect_event(self.message.shortenButton, widgetUtils.BUTTON_PRESSED, self.shorten) widgetUtils.connect_event(self.message.unshortenButton, widgetUtils.BUTTON_PRESSED, self.unshorten) @@ -201,6 +199,7 @@ class viewTweet(basicTweet): param tweetList: If is_tweet is set to True, this could be a list of quoted tweets. param is_tweet: True or false, depending wether the passed object is a tweet or not.""" if is_tweet == True: + self.title = _(u"Tweet") image_description = [] text = "" for i in xrange(0, len(tweetList)): @@ -255,6 +254,7 @@ class viewTweet(basicTweet): self.message.set_title(len(text)) [self.message.set_image_description(i) for i in image_description] else: + self.title = _(u"View item") text = tweet self.message = message.viewNonTweet(text) widgetUtils.connect_event(self.message.spellcheck, widgetUtils.BUTTON_PRESSED, self.spellcheck) diff --git a/src/multiplatform_widgets/widgets.py b/src/multiplatform_widgets/widgets.py index 13a50c1e..10c29166 100644 --- a/src/multiplatform_widgets/widgets.py +++ b/src/multiplatform_widgets/widgets.py @@ -37,9 +37,9 @@ class list(object): if self.system == "Windows": if reversed == False: items = self.list.GetItemCount() else: items = 0 - self.list.InsertStringItem(items, item[0]) - for i in xrange(1, len(self.columns)): - self.list.SetStringItem(items, i, item[i]) + self.list.InsertItem(items, item[0]) + for i in range(1, len(self.columns)): + self.list.SetItem(items, i, item[i]) else: self.list.Append(" ".join(item)) diff --git a/src/widgetUtils/wxUtils.py b/src/widgetUtils/wxUtils.py index a6247859..79577960 100644 --- a/src/widgetUtils/wxUtils.py +++ b/src/widgetUtils/wxUtils.py @@ -1,4 +1,5 @@ import wx +import wx.adv import paths import languageHandler import sys @@ -52,8 +53,8 @@ NOTEBOOK_PAGE_CHANGED = wx.EVT_TREEBOOK_PAGE_CHANGED RADIOBUTTON = wx.EVT_RADIOBUTTON # Taskbar mouse clicks. -TASKBAR_RIGHT_CLICK = wx.EVT_TASKBAR_RIGHT_DOWN -TASKBAR_LEFT_CLICK = wx.EVT_TASKBAR_LEFT_DOWN +TASKBAR_RIGHT_CLICK = wx.adv.EVT_TASKBAR_RIGHT_DOWN +TASKBAR_LEFT_CLICK = wx.adv.EVT_TASKBAR_LEFT_DOWN def exit_application(): """ Closes the current window cleanly. """ diff --git a/src/wxUI/dialogs/message.py b/src/wxUI/dialogs/message.py index f668975e..b8aef4c8 100644 --- a/src/wxUI/dialogs/message.py +++ b/src/wxUI/dialogs/message.py @@ -305,7 +305,7 @@ class viewTweet(widgetUtils.BaseDialog): self.text = wx.TextCtrl(panel, -1, text, style=wx.TE_READONLY|wx.TE_MULTILINE, size=(250, 180)) dc = wx.WindowDC(self.text) dc.SetFont(self.text.GetFont()) - (x, y, z) = dc.GetMultiLineTextExtent("0"*140) + (x, y) = dc.GetMultiLineTextExtent("0"*140) self.text.SetSize((x, y)) self.text.SetFocus() textBox = wx.BoxSizer(wx.HORIZONTAL) @@ -317,7 +317,7 @@ class viewTweet(widgetUtils.BaseDialog): self.image_description = wx.TextCtrl(panel, -1, style=wx.TE_READONLY|wx.TE_MULTILINE, size=(250, 180)) dc = wx.WindowDC(self.image_description) dc.SetFont(self.image_description.GetFont()) - (x, y, z) = dc.GetMultiLineTextExtent("0"*450) + (x, y) = dc.GetMultiLineTextExtent("0"*450) self.image_description.SetSize((x, y)) self.image_description.Enable(False) iBox = wx.BoxSizer(wx.HORIZONTAL) @@ -398,7 +398,7 @@ class viewNonTweet(widgetUtils.BaseDialog): self.text = wx.TextCtrl(parent=panel, id=-1, value=text, style=wx.TE_READONLY|wx.TE_MULTILINE, size=(250, 180)) dc = wx.WindowDC(self.text) dc.SetFont(self.text.GetFont()) - (x, y, z) = dc.GetMultiLineTextExtent("0"*140) + (x, y) = dc.GetMultiLineTextExtent("0"*140) self.text.SetSize((x, y)) self.text.SetFocus() textBox = wx.BoxSizer(wx.HORIZONTAL) diff --git a/src/wxUI/menus.py b/src/wxUI/menus.py index 2ea4cb6f..866816e7 100644 --- a/src/wxUI/menus.py +++ b/src/wxUI/menus.py @@ -5,93 +5,93 @@ class basePanelMenu(wx.Menu): def __init__(self): super(basePanelMenu, self).__init__() self.retweet = wx.MenuItem(self, wx.NewId(), _(u"&Retweet")) - self.AppendItem(self.retweet) + self.Append(self.retweet) self.reply = wx.MenuItem(self, wx.NewId(), _(u"Re&ply")) - self.AppendItem(self.reply) + self.Append(self.reply) self.fav = wx.MenuItem(self, wx.NewId(), _(u"&Like")) - self.AppendItem(self.fav) + self.Append(self.fav) self.unfav = wx.MenuItem(self, wx.NewId(), _(u"&Unlike")) - self.AppendItem(self.unfav) + self.Append(self.unfav) self.openUrl = wx.MenuItem(self, wx.NewId(), _(u"&Open URL")) - self.AppendItem(self.openUrl) + self.Append(self.openUrl) self.play = wx.MenuItem(self, wx.NewId(), _(u"&Play audio")) - self.AppendItem(self.play) + self.Append(self.play) self.view = wx.MenuItem(self, wx.NewId(), _(u"&Show tweet")) - self.AppendItem(self.view) + self.Append(self.view) self.copy = wx.MenuItem(self, wx.NewId(), _(u"&Copy to clipboard")) - self.AppendItem(self.copy) + self.Append(self.copy) self.remove = wx.MenuItem(self, wx.NewId(), _(u"&Delete")) - self.AppendItem(self.remove) + self.Append(self.remove) self.userActions = wx.MenuItem(self, wx.NewId(), _(u"&User actions...")) - self.AppendItem(self.userActions) + self.Append(self.userActions) class dmPanelMenu(wx.Menu): def __init__(self): super(dmPanelMenu, self).__init__() self.reply = wx.MenuItem(self, wx.NewId(), _(u"Re&ply")) - self.AppendItem(self.reply) + self.Append(self.reply) self.openUrl = wx.MenuItem(self, wx.NewId(), _(u"&Open URL")) - self.AppendItem(self.openUrl) + self.Append(self.openUrl) self.play = wx.MenuItem(self, wx.NewId(), _(u"&Play audio")) - self.AppendItem(self.play) + self.Append(self.play) self.view = wx.MenuItem(self, wx.NewId(), _(u"&Show direct message")) - self.AppendItem(self.view) + self.Append(self.view) self.copy = wx.MenuItem(self, wx.NewId(), _(u"&Copy to clipboard")) - self.AppendItem(self.copy) + self.Append(self.copy) self.remove = wx.MenuItem(self, wx.NewId(), _(u"&Delete")) - self.AppendItem(self.remove) + self.Append(self.remove) self.userActions = wx.MenuItem(self, wx.NewId(), _(u"&User actions...")) - self.AppendItem(self.userActions) + self.Append(self.userActions) class sentPanelMenu(wx.Menu): def __init__(self): super(sentPanelMenu, self).__init__() self.openUrl = wx.MenuItem(self, wx.NewId(), _(u"&Open URL")) - self.AppendItem(self.openUrl) + self.Append(self.openUrl) self.play = wx.MenuItem(self, wx.NewId(), _(u"&Play audio")) - self.AppendItem(self.play) + self.Append(self.play) self.view = wx.MenuItem(self, wx.NewId(), _(u"&Show tweet")) - self.AppendItem(self.view) + self.Append(self.view) self.copy = wx.MenuItem(self, wx.NewId(), _(u"&Copy to clipboard")) - self.AppendItem(self.copy) + self.Append(self.copy) self.remove = wx.MenuItem(self, wx.NewId(), _(u"&Delete")) - self.AppendItem(self.remove) + self.Append(self.remove) class eventsPanelMenu(wx.Menu): def __init__(self): super(eventsPanelMenu, self).__init__() self.view = wx.MenuItem(self, wx.NewId(), _(u"&Show event")) - self.AppendItem(self.view) + self.Append(self.view) self.copy = wx.MenuItem(self, wx.NewId(), _(u"&Copy to clipboard")) - self.AppendItem(self.copy) + self.Append(self.copy) self.remove = wx.MenuItem(self, wx.NewId(), _(u"&Delete")) - self.AppendItem(self.remove) + self.Append(self.remove) class peoplePanelMenu(wx.Menu): def __init__(self): super(peoplePanelMenu, self).__init__() self.reply = wx.MenuItem(self, wx.NewId(), _(u"Direct &message")) - self.AppendItem(self.reply) + self.Append(self.reply) self.lists = wx.MenuItem(self, wx.NewId(), _(u"&View lists")) - self.AppendItem(self.lists) + self.Append(self.lists) self.lists.Enable(False) self.details = wx.MenuItem(self, wx.NewId(), _(u"Show user &profile")) - self.AppendItem(self.details) + self.Append(self.details) self.view = wx.MenuItem(self, wx.NewId(), _(u"&Show user")) - self.AppendItem(self.view) + self.Append(self.view) self.copy = wx.MenuItem(self, wx.NewId(), _(u"&Copy to clipboard")) - self.AppendItem(self.copy) + self.Append(self.copy) self.userActions = wx.MenuItem(self, wx.NewId(), _(u"&User actions...")) - self.AppendItem(self.userActions) + self.Append(self.userActions) class trendsPanelMenu(wx.Menu): def __init__(self): super(trendsPanelMenu, self).__init__() self.search_topic = wx.MenuItem(self, wx.NewId(), _(u"Search topic")) - self.AppendItem(self.search_topic) + self.Append(self.search_topic) self.tweetThisTrend = wx.MenuItem(self, wx.NewId(), _(u"&Tweet about this trend")) - self.AppendItem(self.tweetThisTrend) + self.Append(self.tweetThisTrend) self.view = wx.MenuItem(self, wx.NewId(), _(u"&Show item")) - self.AppendItem(self.view) + self.Append(self.view) self.copy = wx.MenuItem(self, wx.NewId(), _(u"&Copy to clipboard")) - self.AppendItem(self.copy) + self.Append(self.copy) diff --git a/src/wxUI/sysTrayIcon.py b/src/wxUI/sysTrayIcon.py index b1221ee2..2ceffa25 100644 --- a/src/wxUI/sysTrayIcon.py +++ b/src/wxUI/sysTrayIcon.py @@ -19,11 +19,12 @@ ############################################################ import wx +import wx.adv import application import paths import os -class SysTrayIcon(wx.TaskBarIcon): +class SysTrayIcon(wx.adv.TaskBarIcon): def __init__(self): super(SysTrayIcon, self).__init__() diff --git a/src/wxUI/view.py b/src/wxUI/view.py index 5b179fb9..a7e34f43 100644 --- a/src/wxUI/view.py +++ b/src/wxUI/view.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- import wx +import wx.adv import application class mainFrame(wx.Frame): @@ -173,7 +174,7 @@ class mainFrame(wx.Frame): self.nb.DeletePage(pos) def about_dialog(self): - info = wx.AboutDialogInfo() + info = wx.adv.AboutDialogInfo() info.SetName(application.name) info.SetVersion(application.version) info.SetDescription(application.description) @@ -182,7 +183,8 @@ class mainFrame(wx.Frame): # info.SetLicence(application.licence) for i in application.authors: info.AddDeveloper(i) - wx.AboutBox(info) + wx.adv.AboutBox(info) + def set_focus(self): self.SetFocus()