Ejemplo n.º 1
0
def get_resource_image(*path_list):
    """Returns gtk.Image from resource path"""

    filename = get_resource(keepnote.IMAGE_DIR, *path_list)
    img = gtk.Image()
    img.set_from_file(filename)
    return img
Ejemplo n.º 2
0
def lookup_icon_filename(notebook, basename):
    """
    Lookup full filename of a icon from a notebook and builtins
    Returns None if not found
    notebook can be None
    """

    # try cache first
    if (notebook, basename) in _icon_basename_cache:
        return _icon_basename_cache[(notebook, basename)]

    # lookup in notebook icon store
    if notebook is not None:
        filename = notebook.get_icon_file(basename)
        if filename:
            _icon_basename_cache[(notebook, basename)] = filename
            return filename

    # lookup in builtins
    filename = get_resource(NODE_ICON_DIR, basename)
    if os.path.isfile(filename):
        _icon_basename_cache[(notebook, basename)] = filename
        return filename

    # lookup mime types
    filename = _g_mime_icons.get_icon_filename(basename)
    _icon_basename_cache[(notebook, basename)] = filename
    return filename
Ejemplo n.º 3
0
    def __init__(self, key, dialog, app, label=u"", icon="time.png"):
        Section.__init__(self, key, dialog, app, label, icon)

        self.date_xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                   "date_time_frame", keepnote.GETTEXT_DOMAIN)
        self.date_xml.signal_autoconnect(self)
        self.frame = self.date_xml.get_widget("date_time_frame")
Ejemplo n.º 4
0
    def __init__(self, key, dialog, app, notebook, label=u"",
                 icon="folder.png"):
        Section.__init__(self, key, dialog, app, label, icon)
        self.entries = {}

        self.notebook = notebook

        # add notebook font widget
        self.notebook_xml = gtk.glade.XML(
            get_resource("rc", "keepnote.glade"),
            "notebook_frame", keepnote.GETTEXT_DOMAIN)
        self.notebook_xml.signal_autoconnect(self)
        self.frame = self.notebook_xml.get_widget("notebook_frame")

        notebook_font_spot = self.notebook_xml.get_widget("notebook_font_spot")
        self.notebook_font_family = FontSelector()
        notebook_font_spot.add(self.notebook_font_family)
        self.notebook_font_family.show()

        # populate notebook font
        self.notebook_font_size = self.notebook_xml.get_widget(
            "notebook_font_size")
        self.notebook_font_size.set_value(10)
        self.notebook_index_dir = self.notebook_xml.get_widget(
            "index_dir_entry")
        self.notebook_xml.get_widget("index_dir_browse").connect(
            "clicked",
            lambda w: on_browse(
                self.dialog,
                _("Choose alternative notebook index directory"),
                "", self.notebook_index_dir,
                action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER))

        self.frame.show_all()
Ejemplo n.º 5
0
    def show(self, title, message, task, cancel=True):
        self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 "wait_dialog", keepnote.GETTEXT_DOMAIN)
        self.dialog = self.xml.get_widget("wait_dialog")
        self.xml.signal_autoconnect(self)
        self.dialog.connect("close", self._on_close)
        self.dialog.set_transient_for(self.parent_window)
        self.text = self.xml.get_widget("wait_text_label")
        self.progressbar = self.xml.get_widget("wait_progressbar")

        self.dialog.set_title(title)
        self.text.set_text(message)
        self._task = task
        self._task.change_event.add(self._on_task_update)

        cancel_button = self.xml.get_widget("cancel_button")
        cancel_button.set_sensitive(cancel)

        self.dialog.show()
        self._task.run()
        self._on_idle()
        self.dialog.run()
        self._task.join()

        self._task.change_event.remove(self._on_task_update)
Ejemplo n.º 6
0
def lookup_icon_filename(notebook, basename):
    """
    Lookup full filename of a icon from a notebook and builtins
    Returns None if not found
    notebook can be None
    """

    # try cache first
    if (notebook, basename) in _icon_basename_cache:
        return _icon_basename_cache[(notebook, basename)]

    # lookup in notebook icon store
    if notebook is not None:
        filename = notebook.get_icon_file(basename)
        if filename:
            _icon_basename_cache[(notebook, basename)] = filename
            return filename

    # lookup in builtins
    filename = get_resource(NODE_ICON_DIR, basename)
    if os.path.isfile(filename):
        _icon_basename_cache[(notebook, basename)] = filename
        return filename

    # lookup mime types
    filename = _g_mime_icons.get_icon_filename(basename)
    _icon_basename_cache[(notebook, basename)] = filename
    return filename
Ejemplo n.º 7
0
    def __init__(self, key, dialog, app, label=u"", icon="time.png"):
        Section.__init__(self, key, dialog, app, label, icon)

        self.date_xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                   "date_time_frame", keepnote.GETTEXT_DOMAIN)
        self.date_xml.signal_autoconnect(self)
        self.frame = self.date_xml.get_widget("date_time_frame")
Ejemplo n.º 8
0
    def show(self, title, message, task, cancel=True):
        self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 "wait_dialog", keepnote.GETTEXT_DOMAIN)
        self.dialog = self.xml.get_widget("wait_dialog")
        self.xml.signal_autoconnect(self)
        self.dialog.connect("close", self._on_close)
        self.dialog.set_transient_for(self.parent_window)
        self.text = self.xml.get_widget("wait_text_label")
        self.progressbar = self.xml.get_widget("wait_progressbar")

        self.dialog.set_title(title)
        self.text.set_text(message)
        self._task = task
        self._task.change_event.add(self._on_task_update)

        cancel_button = self.xml.get_widget("cancel_button")
        cancel_button.set_sensitive(cancel)

        self.dialog.show()
        self._task.run()
        self._on_idle()
        self.dialog.run()
        self._task.join()

        self._task.change_event.remove(self._on_task_update)
Ejemplo n.º 9
0
    def __init__(self, key, dialog, app, notebook, label=u"", 
                 icon="folder.png"):
        Section.__init__(self, key, dialog, app, label, icon)
        self.entries = {}

        self.notebook = notebook

        # add notebook font widget
        self.notebook_xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 "notebook_frame", keepnote.GETTEXT_DOMAIN)
        self.notebook_xml.signal_autoconnect(self)
        self.frame = self.notebook_xml.get_widget("notebook_frame")

        notebook_font_spot = self.notebook_xml.get_widget("notebook_font_spot")
        self.notebook_font_family = FontSelector()
        notebook_font_spot.add(self.notebook_font_family)
        self.notebook_font_family.show()        

        # populate notebook font
        self.notebook_font_size = self.notebook_xml.get_widget("notebook_font_size")
        self.notebook_font_size.set_value(10)
        self.notebook_index_dir = self.notebook_xml.get_widget("index_dir_entry")
        self.notebook_xml.get_widget("index_dir_browse").connect(
            "clicked",
            lambda w: on_browse(self.dialog,
                _("Choose alternative notebook index directory"),
                "", self.notebook_index_dir,
                action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER))

        self.frame.show_all()
Ejemplo n.º 10
0
def get_resource_image(*path_list):
    """Returns gtk.Image from resource path"""

    filename = get_resource(IMAGE_DIR, *path_list)
    img = gtk.Image()
    img.set_from_file(filename)
    return img
Ejemplo n.º 11
0
    def on_find(self, replace=False, forward=None):
        if self.find_dialog is not None:
            self.find_dialog.present()
            
            # could add find again behavior here            
            self.find_xml.get_widget("replace_checkbutton").set_active(replace)
            self.find_xml.get_widget("replace_entry").set_sensitive(replace)
            self.find_xml.get_widget("replace_button").set_sensitive(replace)
            self.find_xml.get_widget("replace_all_button").set_sensitive(replace)
            
            if not replace:
                if forward is None:
                    self.on_find_response("find")
                elif forward:
                    self.on_find_response("find_next")
                else:
                    self.on_find_response("find_prev")
            else:
                self.on_find_response("replace")
            
            return
        

        
        self.find_xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                      domain=keepnote.GETTEXT_DOMAIN)    
        self.find_dialog = self.find_xml.get_widget("find_dialog")
        self.find_dialog.connect("delete-event", lambda w,e: self.on_find_response("close"))
        self.find_last_pos = -1
        
            
        
        self.find_xml.signal_autoconnect({
            "on_find_dialog_key_release_event":
                self.on_find_key_released,
            "on_close_button_clicked": 
                lambda w: self.on_find_response("close"),
            "on_find_button_clicked": 
                lambda w: self.on_find_response("find"),
            "on_replace_button_clicked": 
                lambda w: self.on_find_response("replace"),
            "on_replace_all_button_clicked": 
                lambda w: self.on_find_response("replace_all"),
            "on_replace_checkbutton_toggled":
                lambda w: self.on_find_replace_toggled()
            })
        
        if self.find_text is not None:
            self.find_xml.get_widget("text_entry").set_text(self.find_text)
        
        if self.replace_text is not None:
            self.find_xml.get_widget("replace_entry").set_text(self.replace_text)
        
        self.find_xml.get_widget("replace_checkbutton").set_active(replace)
        self.find_xml.get_widget("replace_entry").set_sensitive(replace)
        self.find_xml.get_widget("replace_button").set_sensitive(replace)
        self.find_xml.get_widget("replace_all_button").set_sensitive(replace)
        
        self.find_dialog.show()
        self.find_dialog.move(*self.editor.get_toplevel().get_position())
Ejemplo n.º 12
0
    def on_find(self, replace=False, forward=None):
        if self.find_dialog is not None:
            self.find_dialog.present()

            # could add find again behavior here
            self.find_xml.get_widget("replace_checkbutton").set_active(replace)
            self.find_xml.get_widget("replace_entry").set_sensitive(replace)
            self.find_xml.get_widget("replace_button").set_sensitive(replace)
            self.find_xml.get_widget("replace_all_button").set_sensitive(
                replace)

            if not replace:
                if forward is None:
                    self.on_find_response("find")
                elif forward:
                    self.on_find_response("find_next")
                else:
                    self.on_find_response("find_prev")
            else:
                self.on_find_response("replace")

            return

        self.find_xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                      domain=keepnote.GETTEXT_DOMAIN)
        self.find_dialog = self.find_xml.get_widget("find_dialog")
        self.find_dialog.connect("delete-event",
                                 lambda w, e: self.on_find_response("close"))
        self.find_last_pos = -1

        self.find_xml.signal_autoconnect({
            "on_find_dialog_key_release_event":
            self.on_find_key_released,
            "on_close_button_clicked":
            lambda w: self.on_find_response("close"),
            "on_find_button_clicked":
            lambda w: self.on_find_response("find"),
            "on_replace_button_clicked":
            lambda w: self.on_find_response("replace"),
            "on_replace_all_button_clicked":
            lambda w: self.on_find_response("replace_all"),
            "on_replace_checkbutton_toggled":
            lambda w: self.on_find_replace_toggled()
        })

        if self.find_text is not None:
            self.find_xml.get_widget("text_entry").set_text(self.find_text)

        if self.replace_text is not None:
            self.find_xml.get_widget("replace_entry").set_text(
                self.replace_text)

        self.find_xml.get_widget("replace_checkbutton").set_active(replace)
        self.find_xml.get_widget("replace_entry").set_sensitive(replace)
        self.find_xml.get_widget("replace_button").set_sensitive(replace)
        self.find_xml.get_widget("replace_all_button").set_sensitive(replace)

        self.find_dialog.show()
        self.find_dialog.move(*self.editor.get_toplevel().get_position())
Ejemplo n.º 13
0
    def __init__(self, key, dialog, app, label=u"", icon="keepnote-16x16.png"):
        Section.__init__(self, key, dialog, app, label, icon)

        self.notebook = None

        self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 "general_frame", keepnote.GETTEXT_DOMAIN)
        self.xml.signal_autoconnect(self)
        self.xml.signal_autoconnect({
            "on_default_notebook_button_clicked":
            lambda w: on_browse(self.dialog, _("Choose Default Notebook"), "",
                                self.xml.get_widget("default_notebook_entry")),
        })
        self.frame = self.xml.get_widget("general_frame")
Ejemplo n.º 14
0
    def on_resize(self, image):
        """Launch resize dialog"""
        if not image.is_valid():
            self.main_window.error(
                "Cannot resize image that is not properly loaded")
            return

        self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 domain=keepnote.GETTEXT_DOMAIN)
        self.dialog = self.xml.get_widget("image_resize_dialog")
        self.dialog.set_transient_for(self.main_window)
        self.dialog.connect("response", lambda d, r: self.on_response(r))

        # TODO: convert to run
        self.dialog.show()

        self.image = image
        self.aspect = True
        width, height = image.get_size(True)
        self.init_width, self.init_height = width, height
        self.owidth, self.oheight = image.get_original_size()

        # get widgets
        self.width_entry = self.xml.get_widget("width_entry")
        self.height_entry = self.xml.get_widget("height_entry")
        self.size_width_scale = self.xml.get_widget("size_width_scale")
        self.size_height_scale = self.xml.get_widget("size_height_scale")
        self.aspect_check = self.xml.get_widget("aspect_check")
        self.snap_check = self.xml.get_widget("img_snap_check")
        self.snap_entry = self.xml.get_widget("img_snap_amount_entry")

        # populate info
        self.width_entry.set_text(str(width))
        self.height_entry.set_text(str(height))
        self.size_width_scale.set_value(width)
        self.size_height_scale.set_value(height)
        self.snap_check.set_active(self.snap_enabled)
        self.snap_entry.set_text(str(self.snap_size))

        # callback
        self.xml.signal_autoconnect({
            "on_width_entry_changed":
            lambda w: self.on_size_changed("width"),
            "on_height_entry_changed":
            lambda w: self.on_size_changed("height")})

        self.xml.signal_autoconnect(self)
Ejemplo n.º 15
0
 def __init__(self, key, dialog, app,
              label=u"", icon="keepnote-16x16.png"):
     Section.__init__(self, key, dialog, app, label, icon)
     
     self.notebook = None
     
     self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                              "general_frame", keepnote.GETTEXT_DOMAIN)
     self.xml.signal_autoconnect(self)
     self.xml.signal_autoconnect({
         "on_default_notebook_button_clicked":
             lambda w: on_browse(self.dialog,
                 _("Choose Default Notebook"),
                 "",
                 self.xml.get_widget("default_notebook_entry")),
         })
     self.frame = self.xml.get_widget("general_frame")
Ejemplo n.º 16
0
def lookup_icon_filename(notebook, basename):
    """
    Lookup full filename of a icon from a notebook and builtins
    Returns None if not found
    notebook can be None
    """

    # lookup in notebook icon store
    if notebook is not None:
        filename = notebook.get_icon_file(basename)
        if filename:
            return filename

    # lookup in builtins
    filename = get_resource(keepnote.NODE_ICON_DIR, basename)
    if os.path.isfile(filename):
        return filename

    # lookup mime types
    return _g_mime_icons.get_icon_filename(basename)
Ejemplo n.º 17
0
def lookup_icon_filename(notebook, basename):
    """
    Lookup full filename of a icon from a notebook and builtins
    Returns None if not found
    notebook can be None
    """

    # lookup in notebook icon store
    if notebook is not None:
        filename = notebook.get_icon_file(basename)
        if filename:
            return filename

    # lookup in builtins
    filename = get_resource(keepnote.NODE_ICON_DIR, basename)
    if os.path.isfile(filename):
        return filename

    # lookup mime types
    return _g_mime_icons.get_icon_filename(basename)
Ejemplo n.º 18
0
    def __init__(self, app):
        self.app = app
        self.parent = None

        self._sections = []

        self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 "app_options_dialog", keepnote.GETTEXT_DOMAIN)
        self.dialog = self.xml.get_widget("app_options_dialog")
        self.dialog.connect("delete-event", self._on_delete_event)
        self.tabs = self.xml.get_widget("app_options_tabs")
        self.xml.signal_autoconnect({
            "on_cancel_button_clicked":
            lambda w: self.on_cancel_button_clicked(),
            "on_ok_button_clicked":
            lambda w: self.on_ok_button_clicked(),
            "on_apply_button_clicked":
            lambda w: self.on_apply_button_clicked()
        })

        # setup treeview
        self.overview = self.xml.get_widget("app_config_treeview")
        self.overview_store = gtk.TreeStore(str, object, gdk.Pixbuf)
        self.overview.set_model(self.overview_store)
        self.overview.connect("cursor-changed", self.on_overview_select)

        # create the treeview column
        column = gtk.TreeViewColumn()
        self.overview.append_column(column)
        cell_text = gtk.CellRendererText()
        cell_icon = gtk.CellRendererPixbuf()
        column.pack_start(cell_icon, True)
        column.add_attribute(cell_icon, 'pixbuf', 2)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'text', 0)

        # add tabs
        self.add_default_sections()
Ejemplo n.º 19
0
    def __init__(self, app):
        self.app = app
        self.parent = None

        self._sections = []

        self.xml = gtk.glade.XML(get_resource("rc", "keepnote.glade"),
                                 "app_options_dialog", keepnote.GETTEXT_DOMAIN)
        self.dialog = self.xml.get_widget("app_options_dialog")
        self.dialog.connect("delete-event", self._on_delete_event)
        self.tabs = self.xml.get_widget("app_options_tabs")
        self.xml.signal_autoconnect({
            "on_cancel_button_clicked":
            lambda w: self.on_cancel_button_clicked(),
            "on_ok_button_clicked":
            lambda w: self.on_ok_button_clicked(),
            "on_apply_button_clicked":
            lambda w: self.on_apply_button_clicked()})

        # setup treeview
        self.overview = self.xml.get_widget("app_config_treeview")
        self.overview_store = gtk.TreeStore(str, object, gdk.Pixbuf)
        self.overview.set_model(self.overview_store)
        self.overview.connect("cursor-changed", self.on_overview_select)

        # create the treeview column
        column = gtk.TreeViewColumn()
        self.overview.append_column(column)
        cell_text = gtk.CellRendererText()
        cell_icon = gtk.CellRendererPixbuf()
        column.pack_start(cell_icon, True)
        column.add_attribute(cell_icon, 'pixbuf', 2)
        column.pack_start(cell_text, True)
        column.add_attribute(cell_text, 'text', 0)

        # add tabs
        self.add_default_sections()
Ejemplo n.º 20
0
def get_resource_pixbuf(*path_list, **options):
    """Returns cached pixbuf from resource path"""
    # raises GError
    return pixbufs.get_pixbuf(get_resource(keepnote.IMAGE_DIR, *path_list),
                              **options)
Ejemplo n.º 21
0
def get_resource_pixbuf(*path_list, **options):
    """Returns cached pixbuf from resource path"""
    # raises GError
    return pixbufs.get_pixbuf(get_resource(IMAGE_DIR, *path_list), **options)