Example #1
0
	def mms_menu_button_clicked(self, button, fname):
		""" actions for mms menu """
		buttontext = button.get_label()
		if buttontext == self.headerstxt:
			ret = self.create_headers_dialog(fname)
		elif buttontext == self.replytxt:
			number = self.cont.get_replyuri_from_transid(fname)
			fMMSSenderUI.fMMS_SenderUI(spawner=self.window, tonumber=number).run()
		elif buttontext == self.replysmstxt:
			number = self.cont.get_replyuri_from_transid(fname)
			if "@" in number:
				note = osso.SystemNote(self.osso_c)
				note.system_note_dialog(gettext.ldgettext('rtcom-messaging-ui', "messaging_fi_smsc_invalid_chars") , 'notice')
			else:
				rpc = osso.Rpc(self.osso_c)
				nr = "sms:%s" % str(number)
				args = (nr, "")
				rpc.rpc_run('com.nokia.MessagingUI', '/com/nokia/MessagingUI', 'com.nokia.MessagingUI', 'messaging_ui_interface_start_sms', args, True, True)
		elif buttontext == self.forwardtxt:
			tbuffer = self.textview.get_buffer()
			msg = tbuffer.get_text(tbuffer.get_start_iter(), tbuffer.get_end_iter())
			fn = self.attachment
			fMMSSenderUI.fMMS_SenderUI(spawner=self.window, withfile=fn, message=msg, forward=True)
		elif buttontext == self.deletetxt:
			self.delete_dialog(fname)
		elif buttontext == self.copytxt:
			clip = gtk.Clipboard(display=gtk.gdk.display_get_default(), selection="CLIPBOARD")
			tbuffer = self.textview.get_buffer()
			msg = tbuffer.get_text(tbuffer.get_start_iter(), tbuffer.get_end_iter())
			clip.set_text(msg, -1)
		elif buttontext == self.saveattachments:
			self.save_attachments(fname)
Example #2
0
 def _send_mce_request(self, request):
     rpc = osso.Rpc(self._osso_context)
     rpc.rpc_run(self._MCE_SERVICE, \
                 self._MCE_REQUEST_PATH, \
                 self._MCE_REQUEST_IF, \
                 request, \
                 use_system_bus=True)
Example #3
0
 def test_set_rpc_default_callback(self):
     rpc = osso.Rpc(self.ctx)
     # register callback
     rpc.set_rpc_default_callback(lambda i, m, a, u: None, "abc")
     # unregister callback
     rpc.set_rpc_default_callback(None, "abc")
     # check for callable callback
     self.assertRaises(TypeError, rpc.set_rpc_default_callback, 123, "abc")
Example #4
0
 def test_rpc_run_with_defaults(self):
     # Delay for some time before calling rpc_run_with_defaults().
     # Otherwise, this error might occur:
     # Message did not receive a reply (timeout by message bus)
     import time
     time.sleep(0.5)
     rpc = osso.Rpc(self.ctx)
     ret = rpc.rpc_run_with_defaults(self.program, "do_something",
                                     ("xyz", -1, 1, True, False, 1.0), True)
Example #5
0
 def test_set_rpc_callback(self):
     self._set_dbus_data(self.program)
     rpc = osso.Rpc(self.ctx)
     # register callback
     rpc.set_rpc_callback(self.service, self.object_path, self.interface,
                          lambda i, m, a, u: None, "abc")
     # unregister callback
     rpc.set_rpc_callback(self.service, self.object_path, self.interface,
                          None, "abc")
     # check for callable callback
     self.assertRaises(TypeError, rpc.set_rpc_callback, self.service,
                       self.object_path, self.interface, 123, "abc")
Example #6
0
	def mms_img_clicked(self, widget, data):
		""" action on click on image/button """
		log.info("img clicked: %s", data)
		path = str("file://" + data)
		# gnomevfs seems to be better than mimetype when guessing mimetype for us
		file_mimetype = gnomevfs.get_mime_type(path)
		log.info("path: %s", path)
		log.info("mimetype: %s", file_mimetype)
		if file_mimetype != None:
			if file_mimetype.startswith("video") or file_mimetype.startswith("audio"):
				rpc = osso.Rpc(self.osso_c)
				rpc.rpc_run("com.nokia.mediaplayer", "/com/nokia/mediaplayer", "com.nokia.mediaplayer", "mime_open", (str, path))	
			elif file_mimetype.startswith("image"):
				rpc = osso.Rpc(self.osso_c)
				ret = rpc.rpc_run("com.nokia.image_viewer", "/com/nokia/image_viewer", "com.nokia.image_viewer", "mime_open", (str, path))
			elif "vcard" in file_mimetype:
				rpc = osso.Rpc(self.osso_c)
				ret = rpc.rpc_run("com.nokia.osso_addressbook", "/com/nokia/osso_addressbook", "com.nokia.osso_addressbook", "mime_open", (str, path))
		else:
			# TODO: how to solve this?
			# move .mms to ~/MyDocs? change button to copy file to ~/MyDocs?
			#rpc = osso.Rpc(self.osso_c)
			#path = os.path.dirname(path).replace("file://", "")
			log.info("path %s", str(path))
Example #7
0
def open_website(url):
    """
    Opens the specified URL using the default system web
    browser. This uses Python's "webbrowser" module, so
    make sure your system is set up correctly.
    """
    if gpodder.ui.maemo:
        import osso
        context = osso.Context('gPodder', gpodder.__version__, False)
        rpc = osso.Rpc(context)
        rpc.rpc_run_with_defaults('osso_browser', \
                                  'open_new_window', \
                                  (url,))
    else:
        threading.Thread(target=webbrowser.open, args=(url,)).start()
Example #8
0
def gui_open(filename):
    """
    Open a file or folder with the default application set
    by the Desktop environment. This uses "xdg-open" on all
    systems with a few exceptions:

       on Win32, os.startfile() is used
       on Maemo, osso is used to communicate with Nokia Media Player
    """
    try:
        if gpodder.ui.maemo:
            try:
                import osso
            except ImportError, ie:
                log('Cannot import osso module on maemo.')
                return False

            log('Using Nokia Media Player to open %s', filename)
            context = osso.Context('gPodder', gpodder.__version__, False)
            filename = filename.encode('utf-8')

            # Fix for Maemo bug 7162 (for local files with "#" in filename)
            if filename.startswith('/'):
                filename = 'file://' + urllib.quote(filename)

            rpc = osso.Rpc(context)
            app = 'mediaplayer'

            _unneeded, extension = os.path.splitext(filename.lower())

            # Fix for Maemo bug 5588 (use PDF viewer and images app)
            if extension == '.pdf':
                app = 'osso_pdfviewer'
            elif extension in ('.jpg', '.jpeg', '.png'):
                app = 'image_viewer'

            svc, path = (x % app for x in ('com.nokia.%s', '/com/nokia/%s'))
            rpc.rpc_run(svc, path, svc, 'mime_open', (filename,))
        elif gpodder.win32:
            os.startfile(filename)
Example #9
0
	def get_sim_imsi(self):
		osso_c = osso.Context('fMMSconfig', '1.0', False)
		rpc = osso.Rpc(osso_c)
		imsi = rpc.rpc_run('com.nokia.phone.SIM', '/com/nokia/phone/SIM', 'Phone.Sim', 'get_imsi', (), True, True)
		return imsi
Example #10
0
    global count

    try:
        plugin = plugins.pop()
    except:
        return

    print "executing:", plugin
    plug.plugin_execute(plugin, True, app)
    print "saving..."
    plug.plugin_save_state(plugin)

c = osso.Context("test_client", "0.0.0", False)
as = osso.Autosave(c)
applic = osso.Application(c)
rpc = osso.Rpc(c)
print "as.get_name() ->", as.get_name()
print "as.get_version() ->", as.get_version()
print "rpc.get_rpc_timeout() ->", rpc.get_rpc_timeout()
print "rpc.set_rpc_timeout(15) ->", rpc.set_rpc_timeout(15)
print "rpc.get_rpc_timeout() ->", rpc.get_rpc_timeout()
timenot = osso.TimeNotification(c)
timenot.set_time_notification_callback(handler_test_time_notification, "Notification Callback!")
timenot.set_time(time.localtime())
plug = osso.Plugin(c)
ss = osso.StateSaving(c)

local = osso.Locale(c)

# Interface
app = hildon.App()
def send_rpc(widget, osso_c):
    osso_rpc = osso.Rpc(osso_c)
    osso_rpc.rpc_run("spam.eggs.osso_test_receiver",
                     "/spam/eggs/osso_test_receiver",
                     "spam.eggs.osso_test_receiver", "do_something")
    print "RPC sent"
Example #12
0
    def __init__(self):
        """ Initializes the GUI, creating all widgets. """
        self.cont = fMMSController.fMMS_controllerGTK()
        self.config = self.cont.config
        self.ch = ContactH.ContactHandler()

        self.osso_c = osso.Context("se.frals.fmms", self.config.get_version(),
                                   False)
        self.osso_rpc = osso.Rpc(self.osso_c)
        self.osso_rpc.set_rpc_callback("se.frals.fmms", "/se/frals/fmms",
                                       "se.frals.fmms", self.cb_open_fmms,
                                       self.osso_c)

        self.refreshlistview = True
        self.viewerimported = False
        self.senderimported = False
        self._screenwidth = 800

        self.avatarlist = {}
        self.namelist = {}
        self.nrlist = {}

        hildon.Program.__init__(self)
        program = hildon.Program.get_instance()

        self.window = hildon.StackableWindow()
        hildon.hildon_gtk_window_set_portrait_flags(
            self.window, hildon.PORTRAIT_MODE_SUPPORT)
        gtk.set_application_name("fMMS")
        self.window.set_title("fMMS")
        program.add_window(self.window)
        self.window.connect("delete_event", self.quit)

        self.pan = hildon.PannableArea()
        self.pan.set_property("mov-mode", hildon.MOVEMENT_MODE_VERT)

        # wonder how much memory this is wasting
        self.iconcell = gtk.CellRendererPixbuf()
        self.photocell = gtk.CellRendererPixbuf()
        self.textcell = gtk.CellRendererText()
        self.photocell.set_property('xalign', 1.0)
        self.textcell.set_property('mode', gtk.CELL_RENDERER_MODE_INERT)
        self.textcell.set_property('xalign', 0.0)

        self.liststore = gtk.ListStore(gtk.gdk.Pixbuf, str, gtk.gdk.Pixbuf,
                                       str, str, str)
        self.treeview = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL)
        self.treeview.set_property("fixed-height-mode", True)
        self.treeview.set_model(self.liststore)

        # create ui
        self._create_ui()

        self.treeview.tap_and_hold_setup(self.liststore_mms_menu())
        self.treeview.tap_and_hold_setup(None)
        self.tapsignal = self.treeview.connect('hildon-row-tapped',
                                               self.show_mms)
        self.treeview.connect('button-press-event', self.cb_button_press)

        mmsBox = gtk.HBox()
        icon_theme = gtk.icon_theme_get_default()
        envelopePixbuf = icon_theme.load_icon("general_sms_button", 48, 0)
        envelopeImage = gtk.Image()
        envelopeImage.set_from_pixbuf(envelopePixbuf)
        envelopeImage.set_alignment(1, 0.5)
        mmsLabel = gtk.Label(
            gettext.ldgettext('rtcom-messaging-ui', "messaging_ti_new_mms"))
        mmsLabel.set_alignment(0, 0.5)

        mmsBox.pack_start(envelopeImage, True, True, 0)
        mmsBox.pack_start(mmsLabel, True, True, 0)
        newMsgButton = hildon.Button(gtk.HILDON_SIZE_FINGER_HEIGHT,
                                     hildon.BUTTON_ARRANGEMENT_HORIZONTAL)

        newMsgButton.add(mmsBox)
        newMsgButton.connect('clicked', self.new_mms_button_clicked)
        """ gets the newMsgButton on top of the treeview """
        actionbox = self.treeview.get_action_area_box()
        self.treeview.set_action_area_visible(True)
        actionbox.add(newMsgButton)

        self.pan.add(self.treeview)

        self.livefilter = hildon.LiveSearch()
        modelfilter = self.liststore.filter_new()
        modelfilter.set_visible_func(self.cb_filter_row)
        self.treeview.set_model(modelfilter)
        self.livefilter.set_filter(modelfilter)
        self.livefilter.widget_hook(self.window, self.treeview)

        contBox = gtk.VBox()
        contBox.pack_start(self.pan, True, True, 0)
        contBox.pack_start(self.livefilter, False, False, 0)

        align = gtk.Alignment(1, 1, 1, 1)
        align.set_padding(2, 2, 10, 10)
        align.add(contBox)
        self.window.add(align)

        menu = self.cont.create_menu(self.window)
        self.window.set_app_menu(menu)
        self.window.connect('focus-in-event', self.cb_on_focus)
        self.window.connect('configure-event', self._onOrientationChange)
        self.window.show_all()
        self.add_window(self.window)
Example #13
0
#!/usr/bin/python2.5
import osso
import gtk


def callback_func(interface, method, arguments, user_data):
    print "RPC received"
    osso_c = user_data
    osso_sysnote = osso.SystemNote(osso_c)
    osso_sysnote.system_note_infoprint(
        "osso_test_receiver: Received an RPC to %s." % method)


osso_c = osso.Context("osso_test_receiver", "0.0.1", False)
print "osso_test_receiver started"
osso_rpc = osso.Rpc(osso_c)
osso_rpc.set_rpc_callback("spam.eggs.osso_test_receiver",
                          "/spam/eggs/osso_test_receiver",
                          "spam.eggs.osso_test_receiver", callback_func,
                          osso_c)
gtk.main()
Example #14
0
 def test_rpc_async_run(self):
     self._set_dbus_data(self.async_program)
     rpc = osso.Rpc(self.ctx)
     rpc.rpc_async_run(self.service, self.object_path, self.interface,
                       "do_something", test_async_cb, "abc",
                       ("xyz", -1, 1, True, False, 1.0))
Example #15
0
 def test_constructor(self):
     rpc = osso.Rpc(self.ctx)
     self.assertTrue(isinstance(rpc, osso.Rpc))
Example #16
0
 def test_get_set_timeout(self):
     rpc = osso.Rpc(self.ctx)
     rpc.set_rpc_timeout(100)
     i = rpc.get_rpc_timeout()
     self.assertEqual(i, 100)