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
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
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")
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()
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)
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()
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
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())
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())
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")
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)
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)
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()
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()
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)
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)