Ejemplo n.º 1
0
def register_stock_icons():
    ''' This function registers our custom toolbar icons, so they
        can be themed.
    '''
    items = [('demo-gtk-logo', '_GTK!', 0, 0, '')]
    # Register our stock items
    gtk.stock_add(items)

    # Add our custom icon factory to the list of defaults
    factory = gtk.IconFactory()
    factory.add_default()

    import os
    img_dir = os.path.join(os.path.dirname(__file__), 'images')
    img_path = os.path.join(img_dir, 'gtk-logo-rgb.gif')
    try:
        pixbuf = gtk.gdk.pixbuf_new_from_file(img_path)

        # Register icon to accompany stock item

        # The gtk-logo-rgb icon has a white background, make it transparent
        # the call is wrapped to (gboolean, guchar, guchar, guchar)
        transparent = pixbuf.add_alpha(True, chr(255), chr(255),chr(255))
        icon_set = gtk.IconSet(transparent)
        factory.add('demo-gtk-logo', icon_set)

    except gobject.GError, error:
        nuclasses.log_error('failed to load GTK logo for toolbar')
Ejemplo n.º 2
0
 def login(self, login_id, password):
     urlstring = "https://accounts.zoho.com/login?servicename=ZohoPlanner&silent=true&LOGIN_ID=%s&PASSWORD=%s&FROM_AGENT=true" %(login_id, password)
     response = urllib.urlopen(urlstring).read()
     ticket = self.parse_login_response(response)
     if ticket:
         self.current_ticket = ticket
         return ticket
     else:
         nuclasses.log_error("No ticket!")
Ejemplo n.º 3
0
 def parse_login_response(self, response):
     #Do some stuff here and return either they key or None
     response_rows = response.split("\n")
     for entry in response_rows:
             entry = entry.split("=")
             if entry[0] == "RESULT":
                 if entry[1] == "FALSE":
                     return None #This means we didn't log in correctly, so we return so
             elif entry[0] == "TICKET":
                 return entry[1]
     nuclasses.log_error("Unable to determine ticket... Here is our debug output:\n%s" % response_rows)
     return None
Ejemplo n.º 4
0
 def addItem(self, widget, entry):
     #text = entry.get_text()
     entryText = self.quickListEntry.get_text()
     comboText = self.quickListCombo.get_active()
     #print widget, entry, "Text is: ", entry.get_text()
     if comboText == OPTION_ADD_TASK:
         nuclasses.task(entryText)
     elif comboText == OPTION_ADD_EVENT:
         nuclasses.event(entryText)
     else:
         nuclasses.log_error("A weird error occured... Neither a task nor an event was selected")
     self.treeview_both.set_model(self.__create_model_both(nuclasses.tasks, nuclasses.events))
     self.treeview.set_model(self.__create_model_tasks(nuclasses.tasks))
Ejemplo n.º 5
0
 def activate_remove(self, action):
     page = self.theNotebook.get_current_page()
     if page == NOTEBOOK_BOTH:
         (store, iter) = self.treeview_both.get_selection().get_selected()
         uid = store.get(iter, COLUMN_BOTH_UID)
         column_name = COLUMN_BOTH_NAME
         type = store.get(iter, COLUMN_BOTH_TYPE)[0]
         if type == "Task": #Yes, it's only capitalized in this instance
             type = "task"
             item = nuclasses.taskFromUid(uid[0])
         elif type == "Event":
             type = "event"
             item = nuclasses.eventFromUid(uid[0])
         else:
             nuclasses.log_error("Error: Could not determine type. Item '%s' did not match either Task or Event." % type)
     elif page == NOTEBOOK_TASKS:
         (store, iter) = self.treeview.get_selection().get_selected()
         uid = store.get(iter, COLUMN_TASKS_UID)
         column_name = COLUMN_TASKS_NAME
         item = nuclasses.taskFromUid(uid[0])
     elif page == NOTEBOOK_EVENTS:
         pass
     else:
         nuclasses.log_error("No page selected? Error with determining the active notebook page")
     dialog = gtk.MessageDialog(self, gtk.DIALOG_DESTROY_WITH_PARENT,
         gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, 
         'Do you really want to remove the %s: "%s"' % (item.__name__, store.get(iter, column_name)[0]))
     def do_response(d, r):
         d.destroy()
         if r == -9:
             pass
         elif r == -8:
             try:
                 nuclasses.tasks.remove(item)
             except:
                 nuclasses.events.remove(item)
             self.treeview_both.set_model(self.__create_model_both(nuclasses.tasks, nuclasses.events))
             self.treeview.set_model(self.__create_model_tasks(nuclasses.tasks))
     dialog.connect("response", do_response)
     dialog.show()
Ejemplo n.º 6
0
    def __init__(self, parent=None):
        register_stock_icons()

        # Create the toplevel window
        gtk.Window.__init__(self)
        try:
            self.set_screen(parent.get_screen())
        except AttributeError:
            self.connect('destroy', lambda *w: gtk.main_quit())

        self.set_title(self.__class__.__name__)
        self.set_default_size(500, 400)

        merge = gtk.UIManager()
        self.set_data("ui-manager", merge)
        merge.insert_action_group(self.__create_action_group(), 0)
        self.add_accel_group(merge.get_accel_group())

        try:
            mergeid = merge.add_ui_from_string(ui_info)
        except gobject.GError, msg:
            nuclasses.log_error("building menus failed: %s" % msg)