2 # -*- coding: utf-8 -*-
7 from subprocess import *
9 class UssdConfigDialog(gtk.Dialog):
10 def __init__(self, queryNumber):
11 gtk.Dialog.__init__(self, "Hello World", None,
12 gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_NO_SEPARATOR,
13 ("Close", gtk.RESPONSE_OK))
14 self.ussdNumber = hildon.Entry(gtk.HILDON_SIZE_AUTO)
15 self.ussdNumber.set_text(queryNumber)
16 self.vbox.add(gtk.Label("USSD number"))
17 self.vbox.add(self.ussdNumber)
21 def get_ussd_number():
23 config = open(os.getenv("HOME")+"/.ussdWidget.conf","r")
26 number = config.readline().strip()
32 def ussd_renew(button):
33 query = get_ussd_number()
35 p = Popen(['sudo', 'python', '/usr/bin/ussdquery.py', query], stdout=PIPE)
36 reply = p.communicate()[0].strip()
40 reply = " Bad config "
41 button.set_label(reply)
43 def on_show_settings(widget):
44 queryNumber = get_ussd_number()
45 if queryNumber == None :
48 dialog = UssdConfigDialog(queryNumber)
51 config = open(os.getenv("HOME")+"/.ussdWidget.conf","w")
52 config.writelines(["# Parameters are taken by line number, do not move them\n", "# USSD query to be run by widget\n", dialog.ussdNumber.get_text(), "\n"])
57 class UssdWidgetPlugin(hildondesktop.HomePluginItem):
59 hildondesktop.HomePluginItem.__init__(self)
60 button = gtk.Button(" Error ")
61 button.connect("clicked", ussd_renew)
65 self.set_settings(True)
66 self.connect("show-settings", on_show_settings)
70 hd_plugin_type = UssdWidgetPlugin
72 # The code below is just for testing purposes.
73 # It allows to run the widget as a standalone process.
74 if __name__ == "__main__":
76 gobject.type_register(hd_plugin_type)