Esempio n. 1
0
 def add_number_new_contact(self,emission, source, param):
     print "add new number called"
     
     #number = emission.part_text_get('number-text')
     #me = 'mirko'
     new_edje = gui.edje_gui(self.main,'dialpad_numbers',self.edje_file)
     #new_edje.edj.part_text_set('num_field-text',number)
     new_edje.edj.signal_emit('new_contact_mode','*')
     new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     new_edje.edj.signal_callback_add("back", "*", new_edje.delete)
     new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit)
     new_edje.edj.signal_callback_add("next-button", "*", self.add_name_new_contact,first_window=new_edje)
     
     new_edje.edj.layer_set(4)
     new_edje.edj.show()
Esempio n. 2
0
 def edit_number(self,emission, source, param, number, contact, details_window,first_window):
     print "edit number called"
     
     #number = emission.part_text_get('number-text')
     #last_window = emission
     number_type = param
     new_edje = gui.edje_gui(self.main,'dialpad_numbers',self.edje_file)
     new_edje.edj.part_text_set('num_field-text',number)
     new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     new_edje.edj.signal_callback_add("back", "*", new_edje.delete)
     new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit)
     new_edje.edj.signal_callback_add("save-button", "*", self.save_contact_number, 'number' , number_type, contact, details_window)
     new_edje.edj.signal_callback_add("save_successful", "*", first_window.delete)
     
     new_edje.edj.layer_set(4)
     new_edje.edj.show()
Esempio n. 3
0
 def add_name_new_contact(self,emission, source, param,first_window=None):
     print "add new name called"
     #print name
     number = emission.part_text_get('num_field-text')
     
     new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file)
     name_field = gui.entry('Name',False)
     new_edje.text_field = name_field.entry
     box = gui.edje_box(self,'V',1)
     box.box.append(name_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0)
     new_edje.add(box.scrolled_view,box,"name-box")
     #new_edje.edj.part_text_set('num_field-text',number)
     new_edje.edj.signal_callback_add("close_w_textfield", "*", new_edje.close_extra_child)
     new_edje.edj.signal_callback_add("save_contact", "*", self.save_new_contact,name_object=new_edje,number=number,first_window=first_window)
     #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     
     new_edje.edj.layer_set(4)
     new_edje.edj.show()
Esempio n. 4
0
 def show_details(self, emission, source, param, message, canvas_obj):
     print "show details called"
     time = message.timestamp
     text = str(message.text).encode('utf8')
     print text
     new_edje = gui.edje_gui(self.main,'message_details',self.edje_file)
     new_edje.edj.part_text_set('name-text',str(message.peer).encode('utf8'))
     new_edje.edj.part_text_set('name-info',str(time))
     new_edje.edj.part_text_set('number-text',str(message.peer.value).encode('utf8'))
     new_edje.edj.part_text_set('message-text',text)
     new_edje.edj.signal_callback_add("reply", "*", self.reply, message, new_edje)
     new_edje.edj.signal_callback_add("forward", "*", self.forward, message, new_edje)
     new_edje.edj.signal_callback_add("close_details", "*", self.close)
     new_edje.edj.signal_callback_add("delete_message", "*", self.delete_message, message, new_edje,emission, canvas_obj)
     new_edje.edj.signal_callback_add("top-bar", "*", self.top_bar)
     message.read()
     new_edje.edj.layer_set(3)
     new_edje.edj.show()   
Esempio n. 5
0
    def edit_number_type(self, emission, source, param, contact,
                         details_window, graphic_objects):
        print "edit number type called"
        print str(graphic_objects)
        number = emission.part_text_get('number-text')

        new_edje = gui.edje_gui(self.main, 'edit-number-type', self.edje_file)
        new_edje.edj.signal_callback_add("top_bar", "*", self.top_bar)
        #new_edje.edj.part_text_set('num_field-text',number)
        new_edje.edj.signal_callback_add("num_type_clicked", "*",
                                         self.edit_number, number, contact,
                                         details_window, new_edje,
                                         graphic_objects)
        new_edje.edj.signal_callback_add("back", "*", new_edje.delete)
        #new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit)

        new_edje.edj.layer_set(4)
        new_edje.edj.show()
Esempio n. 6
0
    def run(self, parent=None, text=""):
        if isinstance(text, str):
            text = tichy.Text(text)
        #self.window = parent
        #print dir(parent.etk_obj)
        #self.window.etk_obj.hide()
        ##create main evas
        #self.main = gui.main_edje()
        self.main = parent
        ##set title
        self.main.etk_obj.title_set('Paroli Dialer')

        ##set edje_file
        self.edje_file = os.path.join(os.path.dirname(__file__),
                                      'paroli-dialer.edj')

        ##connect to tichy's contacts service
        self.contact_service = Service('Contacts')

        ##get contacts list
        self.phone_book = self.contact_service.contacts

        ##create list for edje objects
        self.contact_objects_list = None

        ##create main window
        self.edje_obj = gui.edje_gui(self.main, 'tele', self.edje_file)
        self.edje_obj.edj.layer_set(2)
        self.edje_obj.edj.name_set('main_dialer_window')
        self.edje_obj.edj.show()
        self.edje_obj.edj.signal_callback_add("func_btn", "*", self.func_btn)
        self.edje_obj.edj.signal_callback_add("top_bar", "*", self.top_bar)
        self.edje_obj.edj.signal_callback_add("add_digit", "*", self.add_digit)
        self.edje_obj.edj.signal_callback_add("num_field_pressed", "*",
                                              self.num_field)

        ##wait until main object emits back signal
        yield tichy.Wait(self.main, 'back')

        ##remove all children -- edje elements
        for i in self.main.children:
            i.remove()
        self.main.etk_obj.hide()  # Don't forget to close the window
Esempio n. 7
0
 def edit_name(self,emission, source, param, contact, first_window):
     print "edit name called"
     
     name = emission.part_text_get('name-text')
     
     new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file)
     name_field = gui.entry(name,False)
     new_edje.text_field = name_field.entry
     box = gui.edje_box(self,'V',1)
     box.box.append(name_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0)
     new_edje.add(box.scrolled_view,box,"name-box")
     new_edje.edj.signal_emit('new_contact_mode','*')
     #new_edje.edj.part_text_set('num_field-text',number)
     new_edje.edj.signal_callback_add("next_step", "*", self.edit_name_info, contact, first_window,new_edje)
     new_edje.edj.signal_callback_add("close_w_textfield", "*", new_edje.close_extra_child)
     #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     
     new_edje.edj.layer_set(4)
     new_edje.edj.show()
Esempio n. 8
0
 def show_details(self, emission, source, param, contact, graphic_objects):
     print "show details called"
     self.main.etk_obj.x_window_virtual_keyboard_state_set(ecore.x.ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF)
     #number = emission.part_text_get('label-number')
     #name = emission.part_text_get('label')
     number = str(contact.tel)
     name = str(contact.name)
     info = str(contact.note) if hasattr(contact, 'note') else "" # The sim contact don't have a note
     new_edje = gui.edje_gui(self.main,'contacts_details',self.edje_file)
     new_edje.edj.part_text_set('number-text',number)
     new_edje.edj.part_text_set('name-text',name)
     
     new_edje.edj.signal_callback_add("call_contact", "*", self.call_contact)
     new_edje.edj.signal_callback_add("close_details", "*", self._close)
     new_edje.edj.signal_callback_add("edit_number", "*", self.edit_number_type, contact,new_edje, graphic_objects)
     new_edje.edj.signal_callback_add("edit_name", "*", self.edit_name, contact, new_edje, graphic_objects)
     new_edje.edj.signal_callback_add("delete_contact", "*", self.delete_contact, contact, new_edje,emission, graphic_objects)
     new_edje.edj.layer_set(3)
     new_edje.edj.show()   
Esempio n. 9
0
 def edit_name(self,emission, source, param, contact, first_window, graphic_objects):
     print "edit name called"
     
     name = emission.part_text_get('name-text')
     
     new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file)
     name_field = gui.entry(name,False)
     new_edje.text_field = name_field.entry
     box = gui.edje_box(self,'V',1)
     name_field.entry.focus()
     box.box.append(name_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0)
     new_edje.add(box.scrolled_view,box,"name-box")
     new_edje.edj.signal_emit('new_contact_mode','*')
     #new_edje.edj.part_text_set('num_field-text',number)
     new_edje.edj.signal_callback_add("next_step", "*", self.edit_name_info, contact, first_window,new_edje, graphic_objects)
     new_edje.edj.signal_callback_add("save_successful", "*", new_edje.close_extra_child)
     new_edje.edj.signal_callback_add("save_successful", "*", self.close_keyboard)
     #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     self.main.etk_obj.x_window_virtual_keyboard_state_set(ecore.x.ECORE_X_VIRTUAL_KEYBOARD_STATE_ON)
     new_edje.edj.layer_set(4)
     new_edje.edj.show()
Esempio n. 10
0
 def edit_name_info(self,emission, source, param, contact, first_window, last_window):
     print "edit info called"
     
     #name = emission.part_text_get('name-text')
     
     new_edje = gui.edje_gui(self.main,'edit-name',self.edje_file)
     info_field = gui.entry('info',False)
     new_edje.text_field = info_field.entry
     box = gui.edje_box(self,'V',1)
     box.box.append(info_field.entry, gui.etk.VBox.START, gui.etk.VBox.NONE,0)
     new_edje.add(box.scrolled_view,box,"name-box")
     #new_edje.edj.part_text_set('num_field-text',number)
     new_edje.edj.part_text_set('name-text','info')
     info = new_edje.text_field
     name = last_window.text_field
     #print name.text_get()
     new_edje.edj.signal_callback_add("save_contact", "*", self.save_contact_number, 'name' , new_edje.text_field, contact, first_window, name)
     new_edje.edj.signal_callback_add("close_w_textfield", "*", last_window.close_extra_child)
     new_edje.edj.signal_callback_add("save_successful", "*", new_edje.close_extra_child)
     #new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     
     new_edje.edj.layer_set(4)
     new_edje.edj.show()
Esempio n. 11
0
 def create_message(self, emission, source, param, original_message=None, text=''):
     #print dir(emission)
     print "create message called"
     ##load main gui
     new_edje = gui.edje_gui(self.main,'dialpad_numbers',self.edje_file)
     
     ##set dialpad value to '' to not have NoneType problems
     new_edje.edj.part_text_set('num_field-text','')
     ## show main gui
     new_edje.edj.layer_set(3)
     new_edje.edj.show()   
     ##add num-pad actions
     ##delete digit
     new_edje.edj.signal_callback_add("del-button", "*", self.number_edit_del)
     ##add digit
     new_edje.edj.signal_callback_add("add_digit", "*", self.add_digit)
     ##add window actions
     ##close window
     new_edje.edj.signal_callback_add("close_details", "*", self.close)
     ##add contact from phonebook
     new_edje.edj.signal_callback_add("num_field_pressed", "*", self.load_phone_book)
     ##go to next step
     new_edje.edj.signal_callback_add("next-button", "*", self.create_message_2, new_edje,'num_field-text',text, original_message)
     new_edje.edj.signal_callback_add("top_bar", "*", self.top_bar)
Esempio n. 12
0
    def run(self, parent, number, name=None):
        """show the Caller window

        :Parameters:
        
            parent : `tichy.gui.Widget`
                The parent window

            number : str | `tichy.Text` | Call object

                If the number is a string, we consider it to the
                number to call, otherwise we consider it to be a Call
                object that is already active.
        """
        # We open a new window for a call
        #logger.info("Caller run")

        print "caller run"
        print "in caller: ", name
        self.gsm_service = tichy.Service('GSM')

        #print parent
        #print dir(parent)
        main = parent
        #main = parent
        #main.etk_obj.visibility_set(1)
        #main = parent
        main.etk_obj.title_set('Paroli Call')

        self.edje_file = os.path.join(os.path.dirname(__file__),
                                      'paroli-dialer.edj')
        self.edje_obj = gui.edje_gui(main, 'tele', self.edje_file)
        self.edje_obj.edj.signal_callback_add("func_btn", "*", self.func_btn)
        self.edje_obj.edj.signal_callback_add("add_digit", "*", self.add_digit)
        self.edje_obj.edj.signal_callback_add("*", "*", self.gui_signals)
        #self.edje_obj.edj.signal_callback_add("num_field_pressed", "*", self.num_field_pressed)

        #self.window = gui.Window(parent)
        #frame = self.view(self.window, title='Dialer')
        #vbox = gui.Box(frame, axis=1)

        #text = tichy.Text("Initialization")
        #text.view(vbox)

        try:
            # The case when we have an incoming call
            # XXX: we should use an other way to check for a call object !
            if not isinstance(number, (basestring, tichy.Text)):
                call = number
                #print dir(call)
                self.edje_obj.edj.signal_emit('to_incoming_state', "*")
                #self.edje_obj.edj.part_text_set('active-call',call.__id)
                self.edje_obj.edj.part_text_set('num_field-text',
                                                str(call.number))
                self.edje_obj.edj.layer_set(2)
                self.edje_obj.edj.show()

                def make_active(emission, source, param):
                    call.activate()
                    print "making active"

                self.edje_obj.edj.signal_callback_add("activate_call", "*",
                                                      make_active)

            else:  # If not it means we want to initiate the call first
                if name:
                    self.edje_obj.edj.part_text_set('num_field-text',
                                                    str(name))
                else:
                    self.edje_obj.edj.part_text_set('num_field-text',
                                                    str(number))
                self.edje_obj.edj.signal_emit('to_dialing_state', "*")
                self.edje_obj.edj.layer_set(2)
                self.edje_obj.edj.show()
                #try:
                call = self.gsm_service.create_call(number)
                call.initiate()

                #except Exception,e :
                #print e

                def call_release_pre(emission, source, param):
                    try:
                        call.release()
                    except Exception, e:
                        print "exception here in pre state"
                        call.emit('released')

                self.edje_obj.edj.signal_callback_add("release_call", "*",
                                                      call_release_pre)

            i, args = yield tichy.WaitFirst(tichy.Wait(call, 'activated'),
                                            tichy.Wait(call, 'released'))
            if i == 0:  #activated
                print "call activated"
                self.edje_obj.edj.signal_emit('to_active_state', "*")
                self.edje_obj.edj.part_text_set('num_field-text',
                                                str(call.number))

                #print 'should be an active call here: ', self.gsm_service.gsm_call.ListCalls().__contains__('active')
                def call_release(emission, source, param):
                    print "call releasing"
                    try:
                        call.release()
                    except Exception, e:
                        print e
                        print "exception here"
                        call.emit('released')
                        #self.edje_obj.edj.signal_emit('notfound',"*")
                        #yield tichy.Wait(call, 'released')

                self.edje_obj.edj.signal_callback_add("release_call", "*",
                                                      call_release)
                yield tichy.WaitFirst(tichy.Wait(call, 'released'))
Esempio n. 13
0
 def run(self, parent, text = ""):
     if isinstance(text, str):
         text = tichy.Text(text)
     
     ##create main edje object, the evas object used to generate edje objects
     self.main = parent
     
     ##set the title of the window
     self.main.etk_obj.title_set('Paroli Msgs')
     
     ##direct connection to framework -- ONLY for TESTING
     
     #bus = dbus.SystemBus(mainloop=tichy.mainloop.dbus_loop)
     #self.gsm = bus.get_object('org.freesmartphone.ogsmd','/org/freesmartphone/GSM/Device')
     #self.gsm_service = tichy.Service('GSM')
     self.msgs_service = tichy.Service('Messages')
     inbox = self.msgs_service.inbox
     outbox = self.msgs_service.outbox
     all_list = inbox + outbox
     
     def comp(m1, m2):
       return cmp(m2.timestamp, m1.timestamp)
     
     all_list.sort(comp)
     #for e in all_list:
       #print e
       
     messages = all_list
     
     ##connect to tichy's contacts service
     self.contact_service = Service('Contacts')
     
     ##get contacts list
     self.phone_book = self.contact_service.contacts
     
     ## list used for messages TODO : Rename
     self.contact_objects_list = None
     
     ##set edje file to be used
     ##TODO: make one edje file per plugin
     self.edje_file = os.path.join(os.path.dirname(__file__),'paroli-msgs.edj')
     
     ##create application main window
     self.edje_obj = gui.edje_gui(self.main,'messages',self.edje_file)
     
     ##create scrollable box for contacts list
     contacts_box = gui.edje_box(self,'V',1)
     
     ##create list and populate box
     #print dir(self.phone_book)
     self.contact_objects_list = gui.contact_list(messages,contacts_box,self.main.etk_obj.evas,self.edje_file,'message_item',self,'msgs')
     
     ##add populated box to main window
     self.edje_obj.add(contacts_box.scrolled_view,contacts_box,"message-items")
     
     self.edje_obj.edj.signal_callback_add("create_message", "*", self.create_message)
     #self.edje_obj.edj.signal_callback_add("add_contact", "*", self.add_number_new_contact)
     self.edje_obj.edj.signal_callback_add("top_bar", "*", self.top_bar)
     self.edje_obj.edj.layer_set(2)
     self.edje_obj.edj.show()
     
     try: 
         contacts_box.box.show()
     except Exception,e:
         print e      
Esempio n. 14
0
    def run(self, parent=None, text=""):
        if isinstance(text, str):
            text = tichy.Text(text)
        #print dir(parent.etk_obj)
        #parent.etk_obj.title_set('parent')
        #parent.etk_obj.hide_all()
        self.main = parent
        self.main.etk_obj.title_set('Paroli I/O')
        self.history_items = []
        self.edje_file = os.path.join(os.path.dirname(__file__),
                                      'paroli-i-o.edj')
        #dir(main.etk_obj)
        #print dir(main)
        #self.window = gui.Window(parent, modal=True)
        #self.window.etk_obj.theme_file_set('../tichy/gui_p/edje/paroli-in-tichy.edj')
        #print self.window.etk_obj.theme_file_get()
        #self.window.etk_obj.theme_group_set('tele')
        #print self.window.etk_obj.theme_group_get()
        #self.window.etk_obj.title_set('paroli dialer')
        #self.window.etk_obj.show_all()
        #print dir(self.window.etk_obj)
        #self.window.show()
        #self.window.etk_obj.propagate_color_set(0)
        #print self.window.etk_obj.children_get()
        self.gsm_service = tichy.Service('GSM')
        #print dir(gsm_service.logs)
        #print "printing of dir done"
        #print str(gsm_service.logs)
        #for i in gsm_service.logs:
        #print dir(i)

        print "logs done"
        #self.history = [('Ali', '099872394'),('bachus', '098953214'),('julius', '059321894'),('zacharias', '04326953214'),('zuberio', '09922153214'),('oliver', '03322153214'),('Paula', '0225623614')]
        self.history = self.gsm_service.logs

        self.history_scroller = [
            'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'i'
        ]
        #,'i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i','i'
        self.edje_obj = gui.edje_gui(self.main, 'i-o', self.edje_file)
        self.edje_obj.edj.layer_set(2)
        self.edje_obj.edj.show()

        self.edje_obj.edj.signal_callback_add("edit_btn_clicked", "*",
                                              self.edit_mode)
        self.edje_obj.edj.signal_callback_add("top-bar", "*", self.top_bar)

        history_box = gui.edje_box(self, 'V', 1)
        self.lists = gui.lists()
        try:
            #self.lists.generate_list(self,self.main.etk_obj.evas,self.history_scroller,history_edje,self.edje_obj,'history_item')
            self.history_objects_list = gui.contact_list(
                self.history,
                history_box,
                self.main.etk_obj.evas,
                self.edje_file,
                'history_item',
                self,
                kind='history')
        except Exception, e:
            print e