diff options
-rw-r--r-- | plugins/new_version.xml | 13 | ||||
-rw-r--r-- | portato/gui/windows/main.py | 1 | ||||
-rw-r--r-- | portato/plugins/new_version.py | 29 |
3 files changed, 43 insertions, 0 deletions
diff --git a/plugins/new_version.xml b/plugins/new_version.xml new file mode 100644 index 0000000..7bf9947 --- /dev/null +++ b/plugins/new_version.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<plugin xmlns="http://portato.sourceforge.net/plugin" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://portato.sourceforge.net/plugin http://portato.sourceforge.net/plugin.xsd"> + + <author>René 'Necoro' Neumann</author> + <name>New Version Reminder</name> + + <import>portato.plugins.new_version</import> + + <hooks> + <hook type="after_startup" call="find_version" /> + </hooks> + +</plugin> diff --git a/portato/gui/windows/main.py b/portato/gui/windows/main.py index 30f31a1..d459bb4 100644 --- a/portato/gui/windows/main.py +++ b/portato/gui/windows/main.py @@ -779,6 +779,7 @@ class MainWindow (Window): splash(_("Finishing startup")) self.window.show_all() + plugin.hook("after_startup")(lambda x:pass)() def show_package (self, *args, **kwargs): self.packageTable.update(*args, **kwargs) diff --git a/portato/plugins/new_version.py b/portato/plugins/new_version.py new file mode 100644 index 0000000..d06d58d --- /dev/null +++ b/portato/plugins/new_version.py @@ -0,0 +1,29 @@ +try: + from bzrlib import plugin, branch +except ImportError: + plugin = branch = None + +from threading import Thread + +from portato.helper import debug, _ +from portato import get_listener +from portato.constants import VERSION, APP_ICON, APP + +def find_thread (rev): + b = branch.Branch.open("lp:portato") + + if int(rev) < int(b.revno()): + get_listener().send_notify(base = "New Portato Live Version Found", descr = "You have rev. %s, but the most recent revision is %s." % (rev, b.revno()), icon = APP_ICON) + +def find_version (*args, **kwargs): + if not all((plugin, branch)): + return + + v = VERSION.split() + if len(v) != 3 and v[0] != "9999": + return + + rev = v[-1] + + plugin.load_plugins() # to have lp: addresses parsed + Thread(target = find_thread, args=(rev,)).start() |